@artsy/palette 40.0.0-canary.1408.31249.0 → 40.0.0-canary.1408.31262.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -11,6 +11,7 @@ var _styledSystem = require("styled-system");
|
|
|
11
11
|
var _usePortal2 = require("../../utils/usePortal");
|
|
12
12
|
var _Flex = require("../Flex");
|
|
13
13
|
var _reactFocusOn = require("react-focus-on");
|
|
14
|
+
var _utils = require("../../utils");
|
|
14
15
|
var _excluded = ["children", "zIndex", "dialogProps", "onClose"];
|
|
15
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
@@ -57,7 +58,8 @@ var DEFAULT_MODAL_Z_INDEX = 9999;
|
|
|
57
58
|
*/
|
|
58
59
|
exports.DEFAULT_MODAL_Z_INDEX = DEFAULT_MODAL_Z_INDEX;
|
|
59
60
|
var ModalBase = function ModalBase(props) {
|
|
60
|
-
|
|
61
|
+
var isClient = (0, _utils.useDidMount)();
|
|
62
|
+
if (!isClient) {
|
|
61
63
|
return null;
|
|
62
64
|
}
|
|
63
65
|
return /*#__PURE__*/_react.default.createElement(_ModalBase, props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModalBase.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_styledSystem","_usePortal2","_Flex","_reactFocusOn","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","Focus","styled","FocusOn","withConfig","displayName","componentId","Backdrop","div","Container","Flex","systemZIndex","Dialog","attrs","role","DEFAULT_MODAL_Z_INDEX","exports","ModalBase","props","window","createElement","_ModalBase","_ref","children","_ref$zIndex","zIndex","_ref$dialogProps","dialogProps","_ref$onClose","onClose","rest","focusEl","useRef","backdropEl","handleMouseDown","event","current","useEffect","handleKeydown","preventDefault","stopPropagation","document","addEventListener","removeEventListener","_useState","useState","innerHeight","_useState2","maxHeight","setMaxHeight","updateMaxHeight","setTimeout","dispatchEvent","Event","passive","_usePortal","usePortal","createPortal","ref","onMouseDown"],"sources":["../../../src/elements/Modal/ModalBase.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\"\nimport styled from \"styled-components\"\nimport { zIndex as systemZIndex, ZIndexProps } from \"styled-system\"\nimport { usePortal } from \"../../utils/usePortal\"\nimport { Flex, FlexProps } from \"../Flex\"\nimport { FocusOn } from \"react-focus-on\"\n\nconst Focus = styled(FocusOn)`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nconst Backdrop = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nconst Container = styled(Flex)`\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n ${systemZIndex}\n`\n\nconst Dialog = styled(Flex).attrs({ role: \"dialog\" })`\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n\n > * {\n max-height: 100%;\n }\n`\n\n/** BaseModal */\nexport type ModalBaseProps = React.HTMLAttributes<HTMLDivElement> &\n FlexProps &\n ZIndexProps & {\n children?: React.ReactNode\n dialogProps?: FlexProps\n onClose?(): void\n }\n\n/**\n * It seems we've landed on this value as the 'top'\n */\nexport const DEFAULT_MODAL_Z_INDEX = 9999\n\n/**\n * BaseModal\n * Low-level modal that has no opinions about layout/overlay\n * Modals content using a portal, locks scroll.\n */\nexport const ModalBase: React.FC<React.PropsWithChildren<ModalBaseProps>> = (props) => {\n if (typeof window === \"undefined\") {\n return null\n }\n return <_ModalBase {...props} />\n}\n\nexport const _ModalBase: React.FC<React.PropsWithChildren<ModalBaseProps>> = ({\n children,\n zIndex = DEFAULT_MODAL_Z_INDEX,\n dialogProps = {},\n onClose = () => null,\n ...rest\n}) => {\n const focusEl = useRef<HTMLDivElement | null>(null)\n const backdropEl = useRef<HTMLDivElement | null>(null)\n\n const handleMouseDown = (\n event: React.MouseEvent<HTMLDivElement, MouseEvent>\n ) => {\n if (event.target === backdropEl.current) {\n onClose()\n }\n }\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n switch (event.key) {\n case \"Escape\":\n // Prevent <esc> from interfering with the returned focus\n event.preventDefault()\n event.stopPropagation()\n\n // Handle close\n return onClose()\n default:\n break\n }\n }\n\n document.addEventListener(\"keydown\", handleKeydown)\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown)\n }\n }, [onClose])\n\n // Sets to `innerHeight` so as to simulate `100vh` on iOS\n const [maxHeight, setMaxHeight] = useState(window.innerHeight)\n\n // Keeps `maxHeight` in sync\n useEffect(() => {\n const updateMaxHeight = () => {\n setMaxHeight(window.innerHeight)\n }\n\n // Due to the dialog being portaled; we need to wait until the next tick\n // before we can perform any operations that rely on the sizing of elements.\n // Presumably anything that relies on this also listens to resize for updates.\n setTimeout(() => {\n window.dispatchEvent(new Event(\"resize\"))\n }, 0)\n\n window.addEventListener(\"resize\", updateMaxHeight, { passive: true })\n\n return () => {\n window.removeEventListener(\"resize\", updateMaxHeight)\n }\n }, [])\n\n const { createPortal } = usePortal()\n\n return createPortal(\n <Container zIndex={zIndex} {...rest}>\n <Focus ref={focusEl as any}>\n <Backdrop ref={backdropEl as any} onMouseDown={handleMouseDown}>\n <Dialog maxHeight={maxHeight} {...dialogProps}>\n {children}\n </Dialog>\n </Backdrop>\n </Focus>\n </Container>\n )\n}\n\nModalBase.displayName = \"ModalBase\"\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,KAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AAAwC,IAAAO,SAAA;AAAA,SAAAL,uBAAAM,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAb,wBAAAS,GAAA,EAAAI,WAAA,SAAAA,WAAA,IAAAJ,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAQ,OAAA,CAAAR,GAAA,yBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAS,KAAA,GAAAN,wBAAA,CAAAC,WAAA,OAAAK,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAV,GAAA,YAAAS,KAAA,CAAAE,GAAA,CAAAX,GAAA,SAAAY,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAjB,GAAA,QAAAiB,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAApB,GAAA,EAAAiB,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAhB,GAAA,EAAAiB,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAjB,GAAA,CAAAiB,GAAA,SAAAL,MAAA,CAAAV,OAAA,GAAAF,GAAA,MAAAS,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAtB,GAAA,EAAAY,MAAA,YAAAA,MAAA;AAAA,SAAAW,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,GAAAF,SAAA,CAAAD,CAAA,YAAAV,GAAA,IAAAa,MAAA,QAAAhB,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAb,GAAA,KAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,gBAAAS,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAH,SAAA;AAAA,SAAAI,eAAAC,GAAA,EAAAN,CAAA,WAAAO,eAAA,CAAAD,GAAA,KAAAE,qBAAA,CAAAF,GAAA,EAAAN,CAAA,KAAAS,2BAAA,CAAAH,GAAA,EAAAN,CAAA,KAAAU,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAG,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAA5B,MAAA,CAAAI,SAAA,CAAAyB,QAAA,CAAAvB,IAAA,CAAAmB,CAAA,EAAAK,KAAA,aAAAF,CAAA,iBAAAH,CAAA,CAAAM,WAAA,EAAAH,CAAA,GAAAH,CAAA,CAAAM,WAAA,CAAAC,IAAA,MAAAJ,CAAA,cAAAA,CAAA,mBAAAK,KAAA,CAAAC,IAAA,CAAAT,CAAA,OAAAG,CAAA,+DAAAO,IAAA,CAAAP,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAR,GAAA,EAAAiB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAjB,GAAA,CAAAJ,MAAA,EAAAqB,GAAA,GAAAjB,GAAA,CAAAJ,MAAA,WAAAF,CAAA,MAAAwB,IAAA,OAAAJ,KAAA,CAAAG,GAAA,GAAAvB,CAAA,GAAAuB,GAAA,EAAAvB,CAAA,MAAAwB,IAAA,CAAAxB,CAAA,IAAAM,GAAA,CAAAN,CAAA,YAAAwB,IAAA;AAAA,SAAAhB,sBAAAF,GAAA,EAAAN,CAAA,QAAAyB,EAAA,WAAAnB,GAAA,gCAAAoB,MAAA,IAAApB,GAAA,CAAAoB,MAAA,CAAAC,QAAA,KAAArB,GAAA,4BAAAmB,EAAA,QAAAG,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,IAAA,OAAAC,EAAA,OAAAC,EAAA,iBAAAJ,EAAA,IAAAL,EAAA,GAAAA,EAAA,CAAAhC,IAAA,CAAAa,GAAA,GAAA6B,IAAA,QAAAnC,CAAA,QAAAb,MAAA,CAAAsC,EAAA,MAAAA,EAAA,UAAAQ,EAAA,uBAAAA,EAAA,IAAAL,EAAA,GAAAE,EAAA,CAAArC,IAAA,CAAAgC,EAAA,GAAAW,IAAA,MAAAJ,IAAA,CAAAK,IAAA,CAAAT,EAAA,CAAAU,KAAA,GAAAN,IAAA,CAAA9B,MAAA,KAAAF,CAAA,GAAAiC,EAAA,sBAAAM,GAAA,IAAAL,EAAA,OAAAL,EAAA,GAAAU,GAAA,yBAAAN,EAAA,YAAAR,EAAA,CAAAe,MAAA,KAAAT,EAAA,GAAAN,EAAA,CAAAe,MAAA,IAAArD,MAAA,CAAA4C,EAAA,MAAAA,EAAA,2BAAAG,EAAA,QAAAL,EAAA,aAAAG,IAAA;AAAA,SAAAzB,gBAAAD,GAAA,QAAAc,KAAA,CAAAqB,OAAA,CAAAnC,GAAA,UAAAA,GAAA;AAAA,SAAAoC,yBAAAvC,MAAA,EAAAwC,QAAA,QAAAxC,MAAA,yBAAAJ,MAAA,GAAA6C,6BAAA,CAAAzC,MAAA,EAAAwC,QAAA,OAAArD,GAAA,EAAAU,CAAA,MAAAb,MAAA,CAAA0D,qBAAA,QAAAC,gBAAA,GAAA3D,MAAA,CAAA0D,qBAAA,CAAA1C,MAAA,QAAAH,CAAA,MAAAA,CAAA,GAAA8C,gBAAA,CAAA5C,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAAwD,gBAAA,CAAA9C,CAAA,OAAA2C,QAAA,CAAAI,OAAA,CAAAzD,GAAA,uBAAAH,MAAA,CAAAI,SAAA,CAAAyD,oBAAA,CAAAvD,IAAA,CAAAU,MAAA,EAAAb,GAAA,aAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,cAAAS,MAAA;AAAA,SAAA6C,8BAAAzC,MAAA,EAAAwC,QAAA,QAAAxC,MAAA,yBAAAJ,MAAA,WAAAkD,UAAA,GAAA9D,MAAA,CAAA+D,IAAA,CAAA/C,MAAA,OAAAb,GAAA,EAAAU,CAAA,OAAAA,CAAA,MAAAA,CAAA,GAAAiD,UAAA,CAAA/C,MAAA,EAAAF,CAAA,MAAAV,GAAA,GAAA2D,UAAA,CAAAjD,CAAA,OAAA2C,QAAA,CAAAI,OAAA,CAAAzD,GAAA,kBAAAS,MAAA,CAAAT,GAAA,IAAAa,MAAA,CAAAb,GAAA,YAAAS,MAAA;AAExC,IAAMoD,KAAK,GAAG,IAAAC,yBAAM,EAACC,qBAAO,CAAC,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,sFAM5B;AAED,IAAMC,QAAQ,GAAGL,yBAAM,CAACM,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,sFAM1B;AAED,IAAMG,SAAS,GAAG,IAAAP,yBAAM,EAACQ,UAAI,CAAC,CAAAN,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oGAQ1BK,oBAAY,CACf;AAED,IAAMC,MAAM,GAAG,IAAAV,yBAAM,EAACQ,UAAI,CAAC,CAACG,KAAK,CAAC;EAAEC,IAAI,EAAE;AAAS,CAAC,CAAC,CAAAV,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8EAOpD;;AAED;;AASA;AACA;AACA;AACO,IAAMS,qBAAqB,GAAG,IAAI;;AAEzC;AACA;AACA;AACA;AACA;AAJAC,OAAA,CAAAD,qBAAA,GAAAA,qBAAA;AAKO,IAAME,SAA4D,GAAG,SAA/DA,SAA4DA,CAAIC,KAAK,EAAK;EACrF,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IACjC,OAAO,IAAI;EACb;EACA,oBAAO1G,MAAA,CAAAY,OAAA,CAAA+F,aAAA,CAACC,UAAU,EAAKH,KAAK,CAAI;AAClC,CAAC;AAAAF,OAAA,CAAAC,SAAA,GAAAA,SAAA;AALYA,SAA4D,CAAAZ,WAAA;AAOlE,IAAMgB,UAA6D,GAAG,SAAhEA,UAA6DA,CAAAC,IAAA,EAMpE;EAAA,IALJC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAAC,WAAA,GAAAF,IAAA,CACRG,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAGT,qBAAqB,GAAAS,WAAA;IAAAE,gBAAA,GAAAJ,IAAA,CAC9BK,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,CAAC,CAAC,GAAAA,gBAAA;IAAAE,YAAA,GAAAN,IAAA,CAChBO,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG;MAAA,OAAM,IAAI;IAAA,IAAAA,YAAA;IACjBE,IAAI,GAAAtC,wBAAA,CAAA8B,IAAA,EAAApG,SAAA;EAEP,IAAM6G,OAAO,GAAG,IAAAC,aAAM,EAAwB,IAAI,CAAC;EACnD,IAAMC,UAAU,GAAG,IAAAD,aAAM,EAAwB,IAAI,CAAC;EAEtD,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CACnBC,KAAmD,EAChD;IACH,IAAIA,KAAK,CAACtF,MAAM,KAAKoF,UAAU,CAACG,OAAO,EAAE;MACvCP,OAAO,EAAE;IACX;EACF,CAAC;EAED,IAAAQ,gBAAS,EAAC,YAAM;IACd,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIH,KAAoB,EAAK;MAC9C,QAAQA,KAAK,CAAC/F,GAAG;QACf,KAAK,QAAQ;UACX;UACA+F,KAAK,CAACI,cAAc,EAAE;UACtBJ,KAAK,CAACK,eAAe,EAAE;;UAEvB;UACA,OAAOX,OAAO,EAAE;QAClB;UACE;MAAK;IAEX,CAAC;IAEDY,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEJ,aAAa,CAAC;IACnD,OAAO,YAAM;MACXG,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEL,aAAa,CAAC;IACxD,CAAC;EACH,CAAC,EAAE,CAACT,OAAO,CAAC,CAAC;;EAEb;EACA,IAAAe,SAAA,GAAkC,IAAAC,eAAQ,EAAC1B,MAAM,CAAC2B,WAAW,CAAC;IAAAC,UAAA,GAAA5F,cAAA,CAAAyF,SAAA;IAAvDI,SAAS,GAAAD,UAAA;IAAEE,YAAY,GAAAF,UAAA;;EAE9B;EACA,IAAAV,gBAAS,EAAC,YAAM;IACd,IAAMa,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;MAC5BD,YAAY,CAAC9B,MAAM,CAAC2B,WAAW,CAAC;IAClC,CAAC;;IAED;IACA;IACA;IACAK,UAAU,CAAC,YAAM;MACfhC,MAAM,CAACiC,aAAa,CAAC,IAAIC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,CAAC;IAELlC,MAAM,CAACuB,gBAAgB,CAAC,QAAQ,EAAEQ,eAAe,EAAE;MAAEI,OAAO,EAAE;IAAK,CAAC,CAAC;IAErE,OAAO,YAAM;MACXnC,MAAM,CAACwB,mBAAmB,CAAC,QAAQ,EAAEO,eAAe,CAAC;IACvD,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAK,UAAA,GAAyB,IAAAC,qBAAS,GAAE;IAA5BC,YAAY,GAAAF,UAAA,CAAZE,YAAY;EAEpB,OAAOA,YAAY,eACjBhJ,MAAA,CAAAY,OAAA,CAAA+F,aAAA,CAACX,SAAS,EAAA/D,QAAA;IAAC+E,MAAM,EAAEA;EAAO,GAAKK,IAAI,gBACjCrH,MAAA,CAAAY,OAAA,CAAA+F,aAAA,CAACnB,KAAK;IAACyD,GAAG,EAAE3B;EAAe,gBACzBtH,MAAA,CAAAY,OAAA,CAAA+F,aAAA,CAACb,QAAQ;IAACmD,GAAG,EAAEzB,UAAkB;IAAC0B,WAAW,EAAEzB;EAAgB,gBAC7DzH,MAAA,CAAAY,OAAA,CAAA+F,aAAA,CAACR,MAAM,EAAAlE,QAAA;IAACsG,SAAS,EAAEA;EAAU,GAAKrB,WAAW,GAC1CJ,QAAQ,CACF,CACA,CACL,CACE,CACb;AACH,CAAC;AAAAP,OAAA,CAAAK,UAAA,GAAAA,UAAA;AAEDJ,SAAS,CAACZ,WAAW,GAAG,WAAW"}
|
|
1
|
+
{"version":3,"file":"ModalBase.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_interopRequireDefault","_styledSystem","_usePortal2","_Flex","_reactFocusOn","_utils","_excluded","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","Focus","styled","FocusOn","withConfig","displayName","componentId","Backdrop","div","Container","Flex","systemZIndex","Dialog","attrs","role","DEFAULT_MODAL_Z_INDEX","exports","ModalBase","props","isClient","useDidMount","createElement","_ModalBase","_ref","children","_ref$zIndex","zIndex","_ref$dialogProps","dialogProps","_ref$onClose","onClose","rest","focusEl","useRef","backdropEl","handleMouseDown","event","current","useEffect","handleKeydown","preventDefault","stopPropagation","document","addEventListener","removeEventListener","_useState","useState","window","innerHeight","_useState2","maxHeight","setMaxHeight","updateMaxHeight","setTimeout","dispatchEvent","Event","passive","_usePortal","usePortal","createPortal","ref","onMouseDown"],"sources":["../../../src/elements/Modal/ModalBase.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\"\nimport styled from \"styled-components\"\nimport { zIndex as systemZIndex, ZIndexProps } from \"styled-system\"\nimport { usePortal } from \"../../utils/usePortal\"\nimport { Flex, FlexProps } from \"../Flex\"\nimport { FocusOn } from \"react-focus-on\"\nimport { useDidMount } from \"../../utils\"\n\nconst Focus = styled(FocusOn)`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nconst Backdrop = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n`\n\nconst Container = styled(Flex)`\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n align-items: center;\n justify-content: center;\n ${systemZIndex}\n`\n\nconst Dialog = styled(Flex).attrs({ role: \"dialog\" })`\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n\n > * {\n max-height: 100%;\n }\n`\n\n/** BaseModal */\nexport type ModalBaseProps = React.HTMLAttributes<HTMLDivElement> &\n FlexProps &\n ZIndexProps & {\n children?: React.ReactNode\n dialogProps?: FlexProps\n onClose?(): void\n }\n\n/**\n * It seems we've landed on this value as the 'top'\n */\nexport const DEFAULT_MODAL_Z_INDEX = 9999\n\n/**\n * BaseModal\n * Low-level modal that has no opinions about layout/overlay\n * Modals content using a portal, locks scroll.\n */\nexport const ModalBase: React.FC<React.PropsWithChildren<ModalBaseProps>> = (\n props\n) => {\n const isClient = useDidMount()\n\n if (!isClient) {\n return null\n }\n return <_ModalBase {...props} />\n}\n\nexport const _ModalBase: React.FC<React.PropsWithChildren<ModalBaseProps>> = ({\n children,\n zIndex = DEFAULT_MODAL_Z_INDEX,\n dialogProps = {},\n onClose = () => null,\n ...rest\n}) => {\n const focusEl = useRef<HTMLDivElement | null>(null)\n const backdropEl = useRef<HTMLDivElement | null>(null)\n\n const handleMouseDown = (\n event: React.MouseEvent<HTMLDivElement, MouseEvent>\n ) => {\n if (event.target === backdropEl.current) {\n onClose()\n }\n }\n\n useEffect(() => {\n const handleKeydown = (event: KeyboardEvent) => {\n switch (event.key) {\n case \"Escape\":\n // Prevent <esc> from interfering with the returned focus\n event.preventDefault()\n event.stopPropagation()\n\n // Handle close\n return onClose()\n default:\n break\n }\n }\n\n document.addEventListener(\"keydown\", handleKeydown)\n return () => {\n document.removeEventListener(\"keydown\", handleKeydown)\n }\n }, [onClose])\n\n // Sets to `innerHeight` so as to simulate `100vh` on iOS\n const [maxHeight, setMaxHeight] = useState(window.innerHeight)\n\n // Keeps `maxHeight` in sync\n useEffect(() => {\n const updateMaxHeight = () => {\n setMaxHeight(window.innerHeight)\n }\n\n // Due to the dialog being portaled; we need to wait until the next tick\n // before we can perform any operations that rely on the sizing of elements.\n // Presumably anything that relies on this also listens to resize for updates.\n setTimeout(() => {\n window.dispatchEvent(new Event(\"resize\"))\n }, 0)\n\n window.addEventListener(\"resize\", updateMaxHeight, { passive: true })\n\n return () => {\n window.removeEventListener(\"resize\", updateMaxHeight)\n }\n }, [])\n\n const { createPortal } = usePortal()\n\n return createPortal(\n <Container zIndex={zIndex} {...rest}>\n <Focus ref={focusEl as any}>\n <Backdrop ref={backdropEl as any} onMouseDown={handleMouseDown}>\n <Dialog maxHeight={maxHeight} {...dialogProps}>\n {children}\n </Dialog>\n </Backdrop>\n </Focus>\n </Container>\n )\n}\n\nModalBase.displayName = \"ModalBase\"\n"],"mappings":"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"}
|
package/dist/utils/usePortal.js
CHANGED
|
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.usePortal = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _reactDom = require("react-dom");
|
|
9
|
+
var _useDidMount = require("./useDidMount");
|
|
9
10
|
var usePortal = function usePortal() {
|
|
11
|
+
var isClient = (0, _useDidMount.useDidMount)();
|
|
10
12
|
var appendEl = (0, _react.useRef)(null);
|
|
11
13
|
(0, _react.useEffect)(function () {
|
|
12
14
|
var _appendEl$current;
|
|
@@ -23,13 +25,13 @@ var usePortal = function usePortal() {
|
|
|
23
25
|
}, []);
|
|
24
26
|
var createPortal = (0, _react.useCallback)(function (children) {
|
|
25
27
|
var _appendEl$current2;
|
|
26
|
-
if (
|
|
28
|
+
if (!isClient) return null;
|
|
27
29
|
|
|
28
30
|
// May execute before effect runs and appendEl is set
|
|
29
31
|
var el = (_appendEl$current2 = appendEl.current) !== null && _appendEl$current2 !== void 0 ? _appendEl$current2 : document.createElement("div");
|
|
30
32
|
appendEl.current = el;
|
|
31
33
|
return /*#__PURE__*/(0, _reactDom.createPortal)(children, el);
|
|
32
|
-
}, []);
|
|
34
|
+
}, [isClient]);
|
|
33
35
|
return {
|
|
34
36
|
createPortal: createPortal
|
|
35
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePortal.js","names":["_react","require","_reactDom","usePortal","appendEl","useRef","useEffect","_appendEl$current","el","current","document","createElement","body","appendChild","removeChild","e","createPortal","useCallback","children","_appendEl$current2","
|
|
1
|
+
{"version":3,"file":"usePortal.js","names":["_react","require","_reactDom","_useDidMount","usePortal","isClient","useDidMount","appendEl","useRef","useEffect","_appendEl$current","el","current","document","createElement","body","appendChild","removeChild","e","createPortal","useCallback","children","_appendEl$current2","__createPortal__","exports"],"sources":["../../src/utils/usePortal.ts"],"sourcesContent":["import React, { useEffect, useRef, useCallback } from \"react\"\nimport { createPortal as __createPortal__ } from \"react-dom\"\nimport { useDidMount } from \"./useDidMount\"\n\nexport const usePortal = () => {\n const isClient = useDidMount()\n\n const appendEl = useRef<HTMLDivElement | null>(null)\n\n useEffect(() => {\n const el = appendEl.current ?? document.createElement(\"div\")\n appendEl.current = el\n\n document.body.appendChild(el)\n\n return () => {\n try {\n document.body.removeChild(el)\n } catch (e) {\n // Ignore\n }\n }\n }, [])\n\n const createPortal = useCallback(\n (children: React.ReactNode): React.ReactPortal | null => {\n if (!isClient) return null\n\n // May execute before effect runs and appendEl is set\n const el = appendEl.current ?? document.createElement(\"div\")\n appendEl.current = el\n\n return __createPortal__(children, el)\n },\n [isClient]\n )\n\n return { createPortal }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAEO,IAAMG,SAAS,GAAG,SAAZA,SAASA,CAAA,EAAS;EAC7B,IAAMC,QAAQ,GAAG,IAAAC,wBAAW,GAAE;EAE9B,IAAMC,QAAQ,GAAG,IAAAC,aAAM,EAAwB,IAAI,CAAC;EAEpD,IAAAC,gBAAS,EAAC,YAAM;IAAA,IAAAC,iBAAA;IACd,IAAMC,EAAE,IAAAD,iBAAA,GAAGH,QAAQ,CAACK,OAAO,cAAAF,iBAAA,cAAAA,iBAAA,GAAIG,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;IAC5DP,QAAQ,CAACK,OAAO,GAAGD,EAAE;IAErBE,QAAQ,CAACE,IAAI,CAACC,WAAW,CAACL,EAAE,CAAC;IAE7B,OAAO,YAAM;MACX,IAAI;QACFE,QAAQ,CAACE,IAAI,CAACE,WAAW,CAACN,EAAE,CAAC;MAC/B,CAAC,CAAC,OAAOO,CAAC,EAAE;QACV;MAAA;IAEJ,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,YAAY,GAAG,IAAAC,kBAAW,EAC9B,UAACC,QAAyB,EAA+B;IAAA,IAAAC,kBAAA;IACvD,IAAI,CAACjB,QAAQ,EAAE,OAAO,IAAI;;IAE1B;IACA,IAAMM,EAAE,IAAAW,kBAAA,GAAGf,QAAQ,CAACK,OAAO,cAAAU,kBAAA,cAAAA,kBAAA,GAAIT,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;IAC5DP,QAAQ,CAACK,OAAO,GAAGD,EAAE;IAErB,oBAAO,IAAAY,sBAAgB,EAACF,QAAQ,EAAEV,EAAE,CAAC;EACvC,CAAC,EACD,CAACN,QAAQ,CAAC,CACX;EAED,OAAO;IAAEc,YAAY,EAAZA;EAAa,CAAC;AACzB,CAAC;AAAAK,OAAA,CAAApB,SAAA,GAAAA,SAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artsy/palette",
|
|
3
|
-
"version": "40.0.0-canary.1408.
|
|
3
|
+
"version": "40.0.0-canary.1408.31262.0",
|
|
4
4
|
"description": "Design system library for react components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -189,5 +189,5 @@
|
|
|
189
189
|
"url": "http://localhost"
|
|
190
190
|
}
|
|
191
191
|
},
|
|
192
|
-
"gitHead": "
|
|
192
|
+
"gitHead": "5ca904036aaedbbf071b9cd99809c6c1f8598294"
|
|
193
193
|
}
|