@elliemae/ds-dialog 3.35.0 → 3.36.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/config/useDialog.js +2 -4
- package/dist/cjs/config/useDialog.js.map +1 -1
- package/dist/cjs/parts/dialogContent/DSDialogContent.js +1 -2
- package/dist/cjs/parts/dialogContent/DSDialogContent.js.map +1 -1
- package/dist/cjs/parts/dialogContent/useDialogContent.js +2 -4
- package/dist/cjs/parts/dialogContent/useDialogContent.js.map +1 -1
- package/dist/cjs/styles.js.map +1 -1
- package/dist/cjs/utils.js.map +1 -1
- package/dist/esm/config/useDialog.js +2 -4
- package/dist/esm/config/useDialog.js.map +1 -1
- package/dist/esm/parts/dialogContent/DSDialogContent.js +1 -2
- package/dist/esm/parts/dialogContent/DSDialogContent.js.map +1 -1
- package/dist/esm/parts/dialogContent/useDialogContent.js +2 -4
- package/dist/esm/parts/dialogContent/useDialogContent.js.map +1 -1
- package/dist/esm/styles.js.map +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/package.json +8 -8
|
@@ -50,10 +50,8 @@ const useDialog = (props) => {
|
|
|
50
50
|
});
|
|
51
51
|
const portalClassName = (0, import_react.useMemo)(() => `ds-dialog-${(0, import_uid.uid)(8)}`, []);
|
|
52
52
|
(0, import_react.useEffect)(() => {
|
|
53
|
-
if (portalRef)
|
|
54
|
-
|
|
55
|
-
else
|
|
56
|
-
actualPortalRef.current = document.getElementsByTagName("body")["0"];
|
|
53
|
+
if (portalRef) actualPortalRef.current = portalRef.current;
|
|
54
|
+
else actualPortalRef.current = document.getElementsByTagName("body")["0"];
|
|
57
55
|
}, [portalRef]);
|
|
58
56
|
(0, import_react.useLayoutEffect)(() => {
|
|
59
57
|
if (actualPortalRef.current) {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/config/useDialog.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["import { useEffect, useMemo, useState, useCallback, useRef, useLayoutEffect } from 'react';\nimport { debounce } from 'lodash';\nimport { uid } from 'uid';\nimport { useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';\nimport { defaultProps, propTypes } from '../react-desc-prop-types.js';\nimport { getScrollbarWidth, getCurrentRightPadding } from '../utils.js';\nimport type { DSDialogT } from '../react-desc-prop-types.js';\nimport type { DSDialogInternalsT } from '../sharedTypes.js';\n\nexport const useDialog = (props: DSDialogT.Props): DSDialogInternalsT.DSDialogContext => {\n useValidateTypescriptPropTypes<DSDialogT.Props>(props, propTypes, 'DSDialog');\n const propsWithDefault = useMemoMergePropsWithDefault<DSDialogT.InternalProps>(props, defaultProps);\n const { portalRef, isOpen } = propsWithDefault;\n\n const actualPortalRef = useRef<HTMLElement | null>(null);\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n const [portalInfo, setPortalInfo] = useState<DSDialogInternalsT.PortalInfo>({\n paddingRight: '0px',\n scrollbarWidth: '0px',\n });\n\n const portalClassName = useMemo(() => `ds-dialog-${uid(8)}`, []);\n\n useEffect(() => {\n if (portalRef) actualPortalRef.current = portalRef.current;\n else actualPortalRef.current = document.getElementsByTagName('body')['0'];\n }, [portalRef]);\n\n useLayoutEffect(() => {\n if (actualPortalRef.current) {\n if (isOpen) {\n actualPortalRef.current.classList.add(portalClassName);\n } else {\n actualPortalRef.current.classList.remove(portalClassName);\n }\n }\n }, [actualPortalRef, isOpen, portalClassName]);\n\n useEffect(() => {\n if (actualPortalRef.current) {\n setPortalInfo((prev) => ({\n ...prev,\n paddingRight: getCurrentRightPadding(actualPortalRef.current as HTMLElement),\n }));\n }\n }, []);\n\n const calculateScrollbar = useCallback(() => {\n if (actualPortalRef.current && !isOpen) {\n setPortalInfo((prev) => ({\n ...prev,\n scrollbarWidth: getScrollbarWidth(actualPortalRef.current as HTMLElement),\n }));\n }\n }, [isOpen]);\n\n const debouncedCalculateScrollbar = useMemo(() => debounce(calculateScrollbar, 300), [calculateScrollbar]);\n\n useEffect(() => {\n window.addEventListener('resize', debouncedCalculateScrollbar);\n return () => {\n window.removeEventListener('resize', debouncedCalculateScrollbar);\n };\n }, [calculateScrollbar, debouncedCalculateScrollbar]);\n\n useEffect(() => {\n calculateScrollbar();\n }, [calculateScrollbar, isOpen]);\n\n const ctx = useMemo(\n () => ({\n props: propsWithDefault,\n actualPortalRef,\n containerRef,\n portalInfo,\n portalClassName,\n }),\n [portalClassName, portalInfo, propsWithDefault],\n );\n\n return ctx;\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAmF;AACnF,oBAAyB;AACzB,iBAAoB;AACpB,8BAA6E;AAC7E,mCAAwC;AACxC,mBAA0D;AAInD,MAAM,YAAY,CAAC,UAA+D;AACvF,8DAAgD,OAAO,wCAAW,UAAU;AAC5E,QAAM,uBAAmB,sDAAsD,OAAO,yCAAY;AAClG,QAAM,EAAE,WAAW,OAAO,IAAI;AAE9B,QAAM,sBAAkB,qBAA2B,IAAI;AACvD,QAAM,mBAAe,qBAA8B,IAAI;AAEvD,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAwC;AAAA,IAC1E,cAAc;AAAA,IACd,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,sBAAkB,sBAAQ,MAAM,iBAAa,gBAAI,CAAC,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAmF;AACnF,oBAAyB;AACzB,iBAAoB;AACpB,8BAA6E;AAC7E,mCAAwC;AACxC,mBAA0D;AAInD,MAAM,YAAY,CAAC,UAA+D;AACvF,8DAAgD,OAAO,wCAAW,UAAU;AAC5E,QAAM,uBAAmB,sDAAsD,OAAO,yCAAY;AAClG,QAAM,EAAE,WAAW,OAAO,IAAI;AAE9B,QAAM,sBAAkB,qBAA2B,IAAI;AACvD,QAAM,mBAAe,qBAA8B,IAAI;AAEvD,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAwC;AAAA,IAC1E,cAAc;AAAA,IACd,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,sBAAkB,sBAAQ,MAAM,iBAAa,gBAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAE/D,8BAAU,MAAM;AACd,QAAI,UAAW,iBAAgB,UAAU,UAAU;AAAA,QAC9C,iBAAgB,UAAU,SAAS,qBAAqB,MAAM,EAAE,GAAG;AAAA,EAC1E,GAAG,CAAC,SAAS,CAAC;AAEd,oCAAgB,MAAM;AACpB,QAAI,gBAAgB,SAAS;AAC3B,UAAI,QAAQ;AACV,wBAAgB,QAAQ,UAAU,IAAI,eAAe;AAAA,MACvD,OAAO;AACL,wBAAgB,QAAQ,UAAU,OAAO,eAAe;AAAA,MAC1D;AAAA,IACF;AAAA,EACF,GAAG,CAAC,iBAAiB,QAAQ,eAAe,CAAC;AAE7C,8BAAU,MAAM;AACd,QAAI,gBAAgB,SAAS;AAC3B,oBAAc,CAAC,UAAU;AAAA,QACvB,GAAG;AAAA,QACH,kBAAc,qCAAuB,gBAAgB,OAAsB;AAAA,MAC7E,EAAE;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,yBAAqB,0BAAY,MAAM;AAC3C,QAAI,gBAAgB,WAAW,CAAC,QAAQ;AACtC,oBAAc,CAAC,UAAU;AAAA,QACvB,GAAG;AAAA,QACH,oBAAgB,gCAAkB,gBAAgB,OAAsB;AAAA,MAC1E,EAAE;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,kCAA8B,sBAAQ,UAAM,wBAAS,oBAAoB,GAAG,GAAG,CAAC,kBAAkB,CAAC;AAEzG,8BAAU,MAAM;AACd,WAAO,iBAAiB,UAAU,2BAA2B;AAC7D,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,2BAA2B;AAAA,IAClE;AAAA,EACF,GAAG,CAAC,oBAAoB,2BAA2B,CAAC;AAEpD,8BAAU,MAAM;AACd,uBAAmB;AAAA,EACrB,GAAG,CAAC,oBAAoB,MAAM,CAAC;AAE/B,QAAM,UAAM;AAAA,IACV,OAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,iBAAiB,YAAY,gBAAgB;AAAA,EAChD;AAEA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/dialogContent/DSDialogContent.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["import React, { useCallback, useContext } from 'react';\nimport { useGetGlobalAttributes } from '@elliemae/ds-props-helpers';\nimport { PortalStyles, StyledDialogBackground, StyledDialogContainer } from '../../styles.js';\nimport { getSpaceProps } from '../../utils.js';\nimport { DSDialogDatatestid } from '../../DSDialogDatatestid.js';\nimport { DSDialogContext } from '../../DSDialogCTX.js';\nimport { useDialogContent } from './useDialogContent.js';\n\nexport const DSDialogContent = () => {\n const { handleOutsideClick, handleOnKeyDown } = useDialogContent();\n const { props, containerRef, portalInfo, portalClassName } = useContext(DSDialogContext);\n\n const { removeAutoFocus, zIndex, centered, size, width, children, ...rest } = props;\n\n const { className, ...restOfGlobalAttributes } = useGetGlobalAttributes(props, {\n onClick: handleOutsideClick,\n onKeyDown: handleOnKeyDown,\n });\n\n const refCallback = useCallback(\n (_ref: HTMLDivElement | null) => {\n if (_ref) {\n containerRef.current = _ref;\n if (!removeAutoFocus) _ref.focus();\n }\n },\n [containerRef, removeAutoFocus],\n );\n\n return (\n <StyledDialogBackground\n className={className}\n onClick={handleOutsideClick}\n data-portalbg\n data-testid={DSDialogDatatestid.BACKGROUND}\n zIndex={zIndex}\n >\n <PortalStyles portalInfo={portalInfo} portalClassName={portalClassName} />\n <StyledDialogContainer\n role=\"dialog\"\n aria-modal\n innerRef={refCallback}\n tabIndex={!removeAutoFocus ? 0 : undefined}\n onKeyDown={handleOnKeyDown}\n {...getSpaceProps(rest as unknown as Record<string, unknown>)}\n centered={centered}\n data-testid={DSDialogDatatestid.CONTAINER}\n {...restOfGlobalAttributes}\n size={size}\n width={width}\n >\n {children}\n </StyledDialogContainer>\n </StyledDialogBackground>\n );\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD8BnB;AA9BJ,mBAA+C;AAC/C,8BAAuC;AACvC,oBAA4E;AAC5E,mBAA8B;AAC9B,gCAAmC;AACnC,yBAAgC;AAChC,8BAAiC;AAE1B,MAAM,kBAAkB,MAAM;AACnC,QAAM,EAAE,oBAAoB,gBAAgB,QAAI,0CAAiB;AACjE,QAAM,EAAE,OAAO,cAAc,YAAY,gBAAgB,QAAI,yBAAW,kCAAe;AAEvF,QAAM,EAAE,iBAAiB,QAAQ,UAAU,MAAM,OAAO,UAAU,GAAG,KAAK,IAAI;AAE9E,QAAM,EAAE,WAAW,GAAG,uBAAuB,QAAI,gDAAuB,OAAO;AAAA,IAC7E,SAAS;AAAA,IACT,WAAW;AAAA,EACb,CAAC;AAED,QAAM,kBAAc;AAAA,IAClB,CAAC,SAAgC;AAC/B,UAAI,MAAM;AACR,qBAAa,UAAU;AACvB,YAAI,CAAC
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;AD8BnB;AA9BJ,mBAA+C;AAC/C,8BAAuC;AACvC,oBAA4E;AAC5E,mBAA8B;AAC9B,gCAAmC;AACnC,yBAAgC;AAChC,8BAAiC;AAE1B,MAAM,kBAAkB,MAAM;AACnC,QAAM,EAAE,oBAAoB,gBAAgB,QAAI,0CAAiB;AACjE,QAAM,EAAE,OAAO,cAAc,YAAY,gBAAgB,QAAI,yBAAW,kCAAe;AAEvF,QAAM,EAAE,iBAAiB,QAAQ,UAAU,MAAM,OAAO,UAAU,GAAG,KAAK,IAAI;AAE9E,QAAM,EAAE,WAAW,GAAG,uBAAuB,QAAI,gDAAuB,OAAO;AAAA,IAC7E,SAAS;AAAA,IACT,WAAW;AAAA,EACb,CAAC;AAED,QAAM,kBAAc;AAAA,IAClB,CAAC,SAAgC;AAC/B,UAAI,MAAM;AACR,qBAAa,UAAU;AACvB,YAAI,CAAC,gBAAiB,MAAK,MAAM;AAAA,MACnC;AAAA,IACF;AAAA,IACA,CAAC,cAAc,eAAe;AAAA,EAChC;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAS;AAAA,MACT,iBAAa;AAAA,MACb,eAAa,6CAAmB;AAAA,MAChC;AAAA,MAEA;AAAA,oDAAC,8BAAa,YAAwB,iBAAkC;AAAA,QACxE;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAU;AAAA,YACV,UAAU;AAAA,YACV,UAAU,CAAC,kBAAkB,IAAI;AAAA,YACjC,WAAW;AAAA,YACV,OAAG,4BAAc,IAA0C;AAAA,YAC5D;AAAA,YACA,eAAa,6CAAmB;AAAA,YAC/B,GAAG;AAAA,YACJ;AAAA,YACA;AAAA,YAEC;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -40,15 +40,13 @@ const useDialogContent = () => {
|
|
|
40
40
|
} = (0, import_react.useContext)(import_DSDialogCTX.DSDialogContext);
|
|
41
41
|
const handleOutsideClick = (0, import_react.useCallback)(
|
|
42
42
|
(e) => {
|
|
43
|
-
if (e.target.dataset.portalbg)
|
|
44
|
-
onClickOutside();
|
|
43
|
+
if (e.target.dataset.portalbg) onClickOutside();
|
|
45
44
|
},
|
|
46
45
|
[onClickOutside]
|
|
47
46
|
);
|
|
48
47
|
const handleOnKeyDown = (0, import_react.useCallback)(
|
|
49
48
|
(e) => {
|
|
50
|
-
if (e.key === "Escape")
|
|
51
|
-
onClose();
|
|
49
|
+
if (e.key === "Escape") onClose();
|
|
52
50
|
},
|
|
53
51
|
[onClose]
|
|
54
52
|
);
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/parts/dialogContent/useDialogContent.tsx", "../../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["import type React from 'react';\nimport { useCallback, useContext } from 'react';\nimport { DSDialogContext } from '../../DSDialogCTX.js';\n\nexport const useDialogContent = () => {\n const {\n props: { onClickOutside, onClose },\n } = useContext(DSDialogContext);\n\n const handleOutsideClick = useCallback(\n (e: React.MouseEvent) => {\n if ((e.target as HTMLDivElement).dataset.portalbg) onClickOutside();\n },\n [onClickOutside],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n },\n [onClose],\n );\n\n return {\n handleOutsideClick,\n handleOnKeyDown,\n };\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAwC;AACxC,yBAAgC;AAEzB,MAAM,mBAAmB,MAAM;AACpC,QAAM;AAAA,IACJ,OAAO,EAAE,gBAAgB,QAAQ;AAAA,EACnC,QAAI,yBAAW,kCAAe;AAE9B,QAAM,yBAAqB;AAAA,IACzB,CAAC,MAAwB;AACvB,UAAK,EAAE,OAA0B,QAAQ
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAwC;AACxC,yBAAgC;AAEzB,MAAM,mBAAmB,MAAM;AACpC,QAAM;AAAA,IACJ,OAAO,EAAE,gBAAgB,QAAQ;AAAA,EACnC,QAAI,yBAAW,kCAAe;AAE9B,QAAM,yBAAqB;AAAA,IACzB,CAAC,MAAwB;AACvB,UAAK,EAAE,OAA0B,QAAQ,SAAU,gBAAe;AAAA,IACpE;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,sBAAkB;AAAA,IACtB,CAAC,MAA2B;AAC1B,UAAI,EAAE,QAAQ,SAAU,SAAQ;AAAA,IAClC;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/styles.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/styles.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable max-lines */\nimport { styled, createGlobalStyle, xStyledCommonProps } from '@elliemae/ds-system';\nimport type { XstyledProps } from '@elliemae/ds-props-helpers';\nimport { allSizes } from './utils.js';\nimport type { DSDialogT } from './react-desc-prop-types.js';\nimport type { DSDialogInternalsT } from './sharedTypes.js';\n\ninterface PortalStylesT {\n portalInfo: DSDialogInternalsT.PortalInfo;\n portalClassName: string;\n}\n\ninterface StyledDialogBackgroundT {\n zIndex?: number;\n}\n\ninterface StyledDialogContainerT {\n size: DSDialogT.Sizes;\n centered: boolean;\n width: number | string;\n}\n\nexport const PortalStyles = createGlobalStyle<PortalStylesT>`\n ${({ portalClassName }) => `.${portalClassName}`} {\n overflow: hidden;\n ${({ portalInfo }) =>\n portalInfo.scrollbarWidth !== '0px'\n ? `padding-right: calc( ${portalInfo.paddingRight} + ${portalInfo.scrollbarWidth} ) !important;`\n : ``}\n }\n`;\n\nexport const StyledDialogBackground = styled.div<StyledDialogBackgroundT>`\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(37, 41, 47, 50%);\n overflow-y: auto;\n z-index: ${({ zIndex, theme }) => zIndex ?? theme.zIndex.dialog};\n`;\n\nexport const StyledDialogContainer = styled.div<StyledDialogContainerT>`\n height: fit-content;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: ${({ centered }) => (centered ? 'auto' : '20vh auto auto auto')};\n width: ${({ size, width }) => (width === '' ? allSizes[size] : width)};\n min-width: 300px;\n box-shadow: 0 10px 20px 0 ${({ theme }) => theme.colors.neutral[500]};\n background: ${({ theme }) => theme.colors.neutral['000']};\n overflow-y: auto;\n &:focus {\n outline: none;\n }\n max-height: 100vh;\n`;\n\nexport const DSDialogTitle = styled.h3`\n font-size: ${({ theme }) => theme.fontSizes.title[700]};\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n line-height: 28px;\n margin: 0;\n`;\n\nexport const DSDialogAddon = styled.div``;\n\nexport const DSDialogHeader = styled('div')<React.PropsWithChildren & XstyledProps>`\n display: grid;\n align-items: center;\n grid-auto-flow: column;\n min-height: ${({ theme }) => theme.space.m};\n padding: 10px ${({ theme }) => theme.space.xs};\n & ${DSDialogTitle} + ${DSDialogAddon} {\n align-self: flex-start;\n justify-self: flex-end;\n }\n & ${DSDialogAddon}:only-child {\n justify-self: flex-end;\n }\n ${xStyledCommonProps}\n`;\n\nexport const DSDialogSeparator = styled.hr.attrs(() => ({ 'aria-hidden': true }))`\n margin: 0;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral['080']};\n`;\n\nexport const DSDialogBody = styled('div')`\n padding: ${({ theme }) => theme.space.xs};\n overflow-y: auto;\n ${xStyledCommonProps}\n`;\n\nexport const DSDialogPrimaryMessage = styled.h3`\n margin: 0;\n`;\n\nexport const DSDialogSecondaryMessage = styled.p`\n margin: 0;\n color: ${({ theme }) => theme.colors.neutral[500]};\n`;\n\nexport const DSDialogDefaultLayout = styled('div')<React.PropsWithChildren>`\n display: grid;\n grid-auto-flow: row;\n justify-items: center;\n align-items: center;\n grid-gap: ${({ theme }) => theme.space.xxs};\n\n ${DSDialogSecondaryMessage} {\n text-align: center;\n }\n`;\n\nexport const DSDialogFooter = styled('div')`\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n justify-content: flex-end;\n grid-gap: ${({ theme }) => theme.space.xxs};\n min-height: ${({ theme }) => theme.space.m};\n padding: 0 ${({ theme }) => theme.space.xs};\n ${xStyledCommonProps}\n`;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,uBAA8D;AAE9D,mBAAyB;AAmBlB,MAAM,eAAe;AAAA,IACxB,CAAC,EAAE,gBAAgB,MAAM,IAAI;AAAA;AAAA,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,uBAA8D;AAE9D,mBAAyB;AAmBlB,MAAM,eAAe;AAAA,IACxB,CAAC,EAAE,gBAAgB,MAAM,IAAI,eAAe,EAAE;AAAA;AAAA,MAE5C,CAAC,EAAE,WAAW,MACd,WAAW,mBAAmB,QAC1B,wBAAwB,WAAW,YAAY,MAAM,WAAW,cAAc,mBAC9E,EAAE;AAAA;AAAA;AAIL,MAAM,yBAAyB,wBAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAShC,CAAC,EAAE,QAAQ,MAAM,MAAM,UAAU,MAAM,OAAO,MAAM;AAAA;AAG1D,MAAM,wBAAwB,wBAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAOhC,CAAC,EAAE,SAAS,MAAO,WAAW,SAAS,qBAAsB;AAAA,WAC9D,CAAC,EAAE,MAAM,MAAM,MAAO,UAAU,KAAK,sBAAS,IAAI,IAAI,KAAM;AAAA;AAAA,8BAEzC,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,GAAG,CAAC;AAAA,gBACtD,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQnD,MAAM,gBAAgB,wBAAO;AAAA,eACrB,CAAC,EAAE,MAAM,MAAM,MAAM,UAAU,MAAM,GAAG,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASjD,MAAM,gBAAgB,wBAAO;AAE7B,MAAM,qBAAiB,yBAAO,KAAK;AAAA;AAAA;AAAA;AAAA,gBAI1B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,CAAC;AAAA,kBAC1B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,EAAE;AAAA,MACzC,aAAa,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA,MAIhC,aAAa;AAAA;AAAA;AAAA,IAGf,mCAAkB;AAAA;AAGf,MAAM,oBAAoB,wBAAO,GAAG,MAAM,OAAO,EAAE,eAAe,KAAK,EAAE;AAAA;AAAA,0BAEtD,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA;AAG7D,MAAM,mBAAe,yBAAO,KAAK;AAAA,aAC3B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,EAAE;AAAA;AAAA,IAEtC,mCAAkB;AAAA;AAGf,MAAM,yBAAyB,wBAAO;AAAA;AAAA;AAItC,MAAM,2BAA2B,wBAAO;AAAA;AAAA,WAEpC,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,GAAG,CAAC;AAAA;AAG5C,MAAM,4BAAwB,yBAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,cAKnC,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,GAAG;AAAA;AAAA,IAExC,wBAAwB;AAAA;AAAA;AAAA;AAKrB,MAAM,qBAAiB,yBAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,cAK5B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,GAAG;AAAA,gBAC5B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,CAAC;AAAA,eAC7B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,EAAE;AAAA,IACxC,mCAAkB;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
4
|
"sourcesContent": ["export const getSpaceProps = (props: Record<string, unknown>) =>\n Object.fromEntries(Object.entries(props).filter(([key]) => /^[pm][xytblr]?$/.exec(key)));\n\nexport const DSDialogSizes = {\n DEFAULT: 'default' as const,\n SMALL: 'small' as const,\n MEDIUM: 'medium' as const,\n LARGE: 'large' as const,\n XLARGE: 'x-large' as const,\n XXLARGE: 'xx-large' as const,\n};\n\nexport const DSDialogSizesArrayValues = Object.values(DSDialogSizes);\n\nexport const allSizes = {\n default: '576px',\n small: '320px',\n medium: '656px',\n large: '848px',\n 'x-large': '1042px',\n 'xx-large': '1440px',\n};\n\nexport const getScrollbarWidth = (element: HTMLElement) =>\n element.tagName === 'BODY'\n ? `${window.innerWidth - element.clientWidth}px`\n : `${element.offsetWidth - element.clientWidth}px`;\n\nexport const getCurrentRightPadding = (element: HTMLElement) =>\n window.getComputedStyle(element, null)?.getPropertyValue('padding-right');\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAhB,MAAM,gBAAgB,CAAC,UAC5B,OAAO,YAAY,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,kBAAkB,KAAK,GAAG,CAAC,CAAC;AAElF,MAAM,gBAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,MAAM,2BAA2B,OAAO,OAAO,aAAa;AAE5D,MAAM,WAAW;AAAA,EACtB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AACd;AAEO,MAAM,oBAAoB,CAAC,YAChC,QAAQ,YAAY,SAChB,GAAG,OAAO,aAAa,QAAQ,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAhB,MAAM,gBAAgB,CAAC,UAC5B,OAAO,YAAY,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,kBAAkB,KAAK,GAAG,CAAC,CAAC;AAElF,MAAM,gBAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,MAAM,2BAA2B,OAAO,OAAO,aAAa;AAE5D,MAAM,WAAW;AAAA,EACtB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AACd;AAEO,MAAM,oBAAoB,CAAC,YAChC,QAAQ,YAAY,SAChB,GAAG,OAAO,aAAa,QAAQ,WAAW,OAC1C,GAAG,QAAQ,cAAc,QAAQ,WAAW;AAE3C,MAAM,yBAAyB,CAAC,YACrC,OAAO,iBAAiB,SAAS,IAAI,GAAG,iBAAiB,eAAe;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -17,10 +17,8 @@ const useDialog = (props) => {
|
|
|
17
17
|
});
|
|
18
18
|
const portalClassName = useMemo(() => `ds-dialog-${uid(8)}`, []);
|
|
19
19
|
useEffect(() => {
|
|
20
|
-
if (portalRef)
|
|
21
|
-
|
|
22
|
-
else
|
|
23
|
-
actualPortalRef.current = document.getElementsByTagName("body")["0"];
|
|
20
|
+
if (portalRef) actualPortalRef.current = portalRef.current;
|
|
21
|
+
else actualPortalRef.current = document.getElementsByTagName("body")["0"];
|
|
24
22
|
}, [portalRef]);
|
|
25
23
|
useLayoutEffect(() => {
|
|
26
24
|
if (actualPortalRef.current) {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../scripts/build/transpile/react-shim.js", "../../../src/config/useDialog.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import { useEffect, useMemo, useState, useCallback, useRef, useLayoutEffect } from 'react';\nimport { debounce } from 'lodash';\nimport { uid } from 'uid';\nimport { useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';\nimport { defaultProps, propTypes } from '../react-desc-prop-types.js';\nimport { getScrollbarWidth, getCurrentRightPadding } from '../utils.js';\nimport type { DSDialogT } from '../react-desc-prop-types.js';\nimport type { DSDialogInternalsT } from '../sharedTypes.js';\n\nexport const useDialog = (props: DSDialogT.Props): DSDialogInternalsT.DSDialogContext => {\n useValidateTypescriptPropTypes<DSDialogT.Props>(props, propTypes, 'DSDialog');\n const propsWithDefault = useMemoMergePropsWithDefault<DSDialogT.InternalProps>(props, defaultProps);\n const { portalRef, isOpen } = propsWithDefault;\n\n const actualPortalRef = useRef<HTMLElement | null>(null);\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n const [portalInfo, setPortalInfo] = useState<DSDialogInternalsT.PortalInfo>({\n paddingRight: '0px',\n scrollbarWidth: '0px',\n });\n\n const portalClassName = useMemo(() => `ds-dialog-${uid(8)}`, []);\n\n useEffect(() => {\n if (portalRef) actualPortalRef.current = portalRef.current;\n else actualPortalRef.current = document.getElementsByTagName('body')['0'];\n }, [portalRef]);\n\n useLayoutEffect(() => {\n if (actualPortalRef.current) {\n if (isOpen) {\n actualPortalRef.current.classList.add(portalClassName);\n } else {\n actualPortalRef.current.classList.remove(portalClassName);\n }\n }\n }, [actualPortalRef, isOpen, portalClassName]);\n\n useEffect(() => {\n if (actualPortalRef.current) {\n setPortalInfo((prev) => ({\n ...prev,\n paddingRight: getCurrentRightPadding(actualPortalRef.current as HTMLElement),\n }));\n }\n }, []);\n\n const calculateScrollbar = useCallback(() => {\n if (actualPortalRef.current && !isOpen) {\n setPortalInfo((prev) => ({\n ...prev,\n scrollbarWidth: getScrollbarWidth(actualPortalRef.current as HTMLElement),\n }));\n }\n }, [isOpen]);\n\n const debouncedCalculateScrollbar = useMemo(() => debounce(calculateScrollbar, 300), [calculateScrollbar]);\n\n useEffect(() => {\n window.addEventListener('resize', debouncedCalculateScrollbar);\n return () => {\n window.removeEventListener('resize', debouncedCalculateScrollbar);\n };\n }, [calculateScrollbar, debouncedCalculateScrollbar]);\n\n useEffect(() => {\n calculateScrollbar();\n }, [calculateScrollbar, isOpen]);\n\n const ctx = useMemo(\n () => ({\n props: propsWithDefault,\n actualPortalRef,\n containerRef,\n portalInfo,\n portalClassName,\n }),\n [portalClassName, portalInfo, propsWithDefault],\n );\n\n return ctx;\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,WAAW,SAAS,UAAU,aAAa,QAAQ,uBAAuB;AACnF,SAAS,gBAAgB;AACzB,SAAS,WAAW;AACpB,SAAS,8BAA8B,sCAAsC;AAC7E,SAAS,cAAc,iBAAiB;AACxC,SAAS,mBAAmB,8BAA8B;AAInD,MAAM,YAAY,CAAC,UAA+D;AACvF,iCAAgD,OAAO,WAAW,UAAU;AAC5E,QAAM,mBAAmB,6BAAsD,OAAO,YAAY;AAClG,QAAM,EAAE,WAAW,OAAO,IAAI;AAE9B,QAAM,kBAAkB,OAA2B,IAAI;AACvD,QAAM,eAAe,OAA8B,IAAI;AAEvD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAwC;AAAA,IAC1E,cAAc;AAAA,IACd,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,kBAAkB,QAAQ,MAAM,aAAa,IAAI,CAAC,
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAvB,SAAS,WAAW,SAAS,UAAU,aAAa,QAAQ,uBAAuB;AACnF,SAAS,gBAAgB;AACzB,SAAS,WAAW;AACpB,SAAS,8BAA8B,sCAAsC;AAC7E,SAAS,cAAc,iBAAiB;AACxC,SAAS,mBAAmB,8BAA8B;AAInD,MAAM,YAAY,CAAC,UAA+D;AACvF,iCAAgD,OAAO,WAAW,UAAU;AAC5E,QAAM,mBAAmB,6BAAsD,OAAO,YAAY;AAClG,QAAM,EAAE,WAAW,OAAO,IAAI;AAE9B,QAAM,kBAAkB,OAA2B,IAAI;AACvD,QAAM,eAAe,OAA8B,IAAI;AAEvD,QAAM,CAAC,YAAY,aAAa,IAAI,SAAwC;AAAA,IAC1E,cAAc;AAAA,IACd,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,kBAAkB,QAAQ,MAAM,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAE/D,YAAU,MAAM;AACd,QAAI,UAAW,iBAAgB,UAAU,UAAU;AAAA,QAC9C,iBAAgB,UAAU,SAAS,qBAAqB,MAAM,EAAE,GAAG;AAAA,EAC1E,GAAG,CAAC,SAAS,CAAC;AAEd,kBAAgB,MAAM;AACpB,QAAI,gBAAgB,SAAS;AAC3B,UAAI,QAAQ;AACV,wBAAgB,QAAQ,UAAU,IAAI,eAAe;AAAA,MACvD,OAAO;AACL,wBAAgB,QAAQ,UAAU,OAAO,eAAe;AAAA,MAC1D;AAAA,IACF;AAAA,EACF,GAAG,CAAC,iBAAiB,QAAQ,eAAe,CAAC;AAE7C,YAAU,MAAM;AACd,QAAI,gBAAgB,SAAS;AAC3B,oBAAc,CAAC,UAAU;AAAA,QACvB,GAAG;AAAA,QACH,cAAc,uBAAuB,gBAAgB,OAAsB;AAAA,MAC7E,EAAE;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,qBAAqB,YAAY,MAAM;AAC3C,QAAI,gBAAgB,WAAW,CAAC,QAAQ;AACtC,oBAAc,CAAC,UAAU;AAAA,QACvB,GAAG;AAAA,QACH,gBAAgB,kBAAkB,gBAAgB,OAAsB;AAAA,MAC1E,EAAE;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,8BAA8B,QAAQ,MAAM,SAAS,oBAAoB,GAAG,GAAG,CAAC,kBAAkB,CAAC;AAEzG,YAAU,MAAM;AACd,WAAO,iBAAiB,UAAU,2BAA2B;AAC7D,WAAO,MAAM;AACX,aAAO,oBAAoB,UAAU,2BAA2B;AAAA,IAClE;AAAA,EACF,GAAG,CAAC,oBAAoB,2BAA2B,CAAC;AAEpD,YAAU,MAAM;AACd,uBAAmB;AAAA,EACrB,GAAG,CAAC,oBAAoB,MAAM,CAAC;AAE/B,QAAM,MAAM;AAAA,IACV,OAAO;AAAA,MACL,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA,CAAC,iBAAiB,YAAY,gBAAgB;AAAA,EAChD;AAEA,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/dialogContent/DSDialogContent.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useCallback, useContext } from 'react';\nimport { useGetGlobalAttributes } from '@elliemae/ds-props-helpers';\nimport { PortalStyles, StyledDialogBackground, StyledDialogContainer } from '../../styles.js';\nimport { getSpaceProps } from '../../utils.js';\nimport { DSDialogDatatestid } from '../../DSDialogDatatestid.js';\nimport { DSDialogContext } from '../../DSDialogCTX.js';\nimport { useDialogContent } from './useDialogContent.js';\n\nexport const DSDialogContent = () => {\n const { handleOutsideClick, handleOnKeyDown } = useDialogContent();\n const { props, containerRef, portalInfo, portalClassName } = useContext(DSDialogContext);\n\n const { removeAutoFocus, zIndex, centered, size, width, children, ...rest } = props;\n\n const { className, ...restOfGlobalAttributes } = useGetGlobalAttributes(props, {\n onClick: handleOutsideClick,\n onKeyDown: handleOnKeyDown,\n });\n\n const refCallback = useCallback(\n (_ref: HTMLDivElement | null) => {\n if (_ref) {\n containerRef.current = _ref;\n if (!removeAutoFocus) _ref.focus();\n }\n },\n [containerRef, removeAutoFocus],\n );\n\n return (\n <StyledDialogBackground\n className={className}\n onClick={handleOutsideClick}\n data-portalbg\n data-testid={DSDialogDatatestid.BACKGROUND}\n zIndex={zIndex}\n >\n <PortalStyles portalInfo={portalInfo} portalClassName={portalClassName} />\n <StyledDialogContainer\n role=\"dialog\"\n aria-modal\n innerRef={refCallback}\n tabIndex={!removeAutoFocus ? 0 : undefined}\n onKeyDown={handleOnKeyDown}\n {...getSpaceProps(rest as unknown as Record<string, unknown>)}\n centered={centered}\n data-testid={DSDialogDatatestid.CONTAINER}\n {...restOfGlobalAttributes}\n size={size}\n width={width}\n >\n {children}\n </StyledDialogContainer>\n </StyledDialogBackground>\n );\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;AC8BnB,SAOE,KAPF;AA9BJ,SAAgB,aAAa,kBAAkB;AAC/C,SAAS,8BAA8B;AACvC,SAAS,cAAc,wBAAwB,6BAA6B;AAC5E,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AAE1B,MAAM,kBAAkB,MAAM;AACnC,QAAM,EAAE,oBAAoB,gBAAgB,IAAI,iBAAiB;AACjE,QAAM,EAAE,OAAO,cAAc,YAAY,gBAAgB,IAAI,WAAW,eAAe;AAEvF,QAAM,EAAE,iBAAiB,QAAQ,UAAU,MAAM,OAAO,UAAU,GAAG,KAAK,IAAI;AAE9E,QAAM,EAAE,WAAW,GAAG,uBAAuB,IAAI,uBAAuB,OAAO;AAAA,IAC7E,SAAS;AAAA,IACT,WAAW;AAAA,EACb,CAAC;AAED,QAAM,cAAc;AAAA,IAClB,CAAC,SAAgC;AAC/B,UAAI,MAAM;AACR,qBAAa,UAAU;AACvB,YAAI,CAAC
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;AC8BnB,SAOE,KAPF;AA9BJ,SAAgB,aAAa,kBAAkB;AAC/C,SAAS,8BAA8B;AACvC,SAAS,cAAc,wBAAwB,6BAA6B;AAC5E,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AAE1B,MAAM,kBAAkB,MAAM;AACnC,QAAM,EAAE,oBAAoB,gBAAgB,IAAI,iBAAiB;AACjE,QAAM,EAAE,OAAO,cAAc,YAAY,gBAAgB,IAAI,WAAW,eAAe;AAEvF,QAAM,EAAE,iBAAiB,QAAQ,UAAU,MAAM,OAAO,UAAU,GAAG,KAAK,IAAI;AAE9E,QAAM,EAAE,WAAW,GAAG,uBAAuB,IAAI,uBAAuB,OAAO;AAAA,IAC7E,SAAS;AAAA,IACT,WAAW;AAAA,EACb,CAAC;AAED,QAAM,cAAc;AAAA,IAClB,CAAC,SAAgC;AAC/B,UAAI,MAAM;AACR,qBAAa,UAAU;AACvB,YAAI,CAAC,gBAAiB,MAAK,MAAM;AAAA,MACnC;AAAA,IACF;AAAA,IACA,CAAC,cAAc,eAAe;AAAA,EAChC;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAS;AAAA,MACT,iBAAa;AAAA,MACb,eAAa,mBAAmB;AAAA,MAChC;AAAA,MAEA;AAAA,4BAAC,gBAAa,YAAwB,iBAAkC;AAAA,QACxE;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAU;AAAA,YACV,UAAU;AAAA,YACV,UAAU,CAAC,kBAAkB,IAAI;AAAA,YACjC,WAAW;AAAA,YACV,GAAG,cAAc,IAA0C;AAAA,YAC5D;AAAA,YACA,eAAa,mBAAmB;AAAA,YAC/B,GAAG;AAAA,YACJ;AAAA,YACA;AAAA,YAEC;AAAA;AAAA,QACH;AAAA;AAAA;AAAA,EACF;AAEJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -7,15 +7,13 @@ const useDialogContent = () => {
|
|
|
7
7
|
} = useContext(DSDialogContext);
|
|
8
8
|
const handleOutsideClick = useCallback(
|
|
9
9
|
(e) => {
|
|
10
|
-
if (e.target.dataset.portalbg)
|
|
11
|
-
onClickOutside();
|
|
10
|
+
if (e.target.dataset.portalbg) onClickOutside();
|
|
12
11
|
},
|
|
13
12
|
[onClickOutside]
|
|
14
13
|
);
|
|
15
14
|
const handleOnKeyDown = useCallback(
|
|
16
15
|
(e) => {
|
|
17
|
-
if (e.key === "Escape")
|
|
18
|
-
onClose();
|
|
16
|
+
if (e.key === "Escape") onClose();
|
|
19
17
|
},
|
|
20
18
|
[onClose]
|
|
21
19
|
);
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../../scripts/build/transpile/react-shim.js", "../../../../src/parts/dialogContent/useDialogContent.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import type React from 'react';\nimport { useCallback, useContext } from 'react';\nimport { DSDialogContext } from '../../DSDialogCTX.js';\n\nexport const useDialogContent = () => {\n const {\n props: { onClickOutside, onClose },\n } = useContext(DSDialogContext);\n\n const handleOutsideClick = useCallback(\n (e: React.MouseEvent) => {\n if ((e.target as HTMLDivElement).dataset.portalbg) onClickOutside();\n },\n [onClickOutside],\n );\n\n const handleOnKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n },\n [onClose],\n );\n\n return {\n handleOutsideClick,\n handleOnKeyDown,\n };\n};\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACCvB,SAAS,aAAa,kBAAkB;AACxC,SAAS,uBAAuB;AAEzB,MAAM,mBAAmB,MAAM;AACpC,QAAM;AAAA,IACJ,OAAO,EAAE,gBAAgB,QAAQ;AAAA,EACnC,IAAI,WAAW,eAAe;AAE9B,QAAM,qBAAqB;AAAA,IACzB,CAAC,MAAwB;AACvB,UAAK,EAAE,OAA0B,QAAQ
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACCvB,SAAS,aAAa,kBAAkB;AACxC,SAAS,uBAAuB;AAEzB,MAAM,mBAAmB,MAAM;AACpC,QAAM;AAAA,IACJ,OAAO,EAAE,gBAAgB,QAAQ;AAAA,EACnC,IAAI,WAAW,eAAe;AAE9B,QAAM,qBAAqB;AAAA,IACzB,CAAC,MAAwB;AACvB,UAAK,EAAE,OAA0B,QAAQ,SAAU,gBAAe;AAAA,IACpE;AAAA,IACA,CAAC,cAAc;AAAA,EACjB;AAEA,QAAM,kBAAkB;AAAA,IACtB,CAAC,MAA2B;AAC1B,UAAI,EAAE,QAAQ,SAAU,SAAQ;AAAA,IAClC;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/styles.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/styles.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport { styled, createGlobalStyle, xStyledCommonProps } from '@elliemae/ds-system';\nimport type { XstyledProps } from '@elliemae/ds-props-helpers';\nimport { allSizes } from './utils.js';\nimport type { DSDialogT } from './react-desc-prop-types.js';\nimport type { DSDialogInternalsT } from './sharedTypes.js';\n\ninterface PortalStylesT {\n portalInfo: DSDialogInternalsT.PortalInfo;\n portalClassName: string;\n}\n\ninterface StyledDialogBackgroundT {\n zIndex?: number;\n}\n\ninterface StyledDialogContainerT {\n size: DSDialogT.Sizes;\n centered: boolean;\n width: number | string;\n}\n\nexport const PortalStyles = createGlobalStyle<PortalStylesT>`\n ${({ portalClassName }) => `.${portalClassName}`} {\n overflow: hidden;\n ${({ portalInfo }) =>\n portalInfo.scrollbarWidth !== '0px'\n ? `padding-right: calc( ${portalInfo.paddingRight} + ${portalInfo.scrollbarWidth} ) !important;`\n : ``}\n }\n`;\n\nexport const StyledDialogBackground = styled.div<StyledDialogBackgroundT>`\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: rgba(37, 41, 47, 50%);\n overflow-y: auto;\n z-index: ${({ zIndex, theme }) => zIndex ?? theme.zIndex.dialog};\n`;\n\nexport const StyledDialogContainer = styled.div<StyledDialogContainerT>`\n height: fit-content;\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n margin: ${({ centered }) => (centered ? 'auto' : '20vh auto auto auto')};\n width: ${({ size, width }) => (width === '' ? allSizes[size] : width)};\n min-width: 300px;\n box-shadow: 0 10px 20px 0 ${({ theme }) => theme.colors.neutral[500]};\n background: ${({ theme }) => theme.colors.neutral['000']};\n overflow-y: auto;\n &:focus {\n outline: none;\n }\n max-height: 100vh;\n`;\n\nexport const DSDialogTitle = styled.h3`\n font-size: ${({ theme }) => theme.fontSizes.title[700]};\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n line-height: 28px;\n margin: 0;\n`;\n\nexport const DSDialogAddon = styled.div``;\n\nexport const DSDialogHeader = styled('div')<React.PropsWithChildren & XstyledProps>`\n display: grid;\n align-items: center;\n grid-auto-flow: column;\n min-height: ${({ theme }) => theme.space.m};\n padding: 10px ${({ theme }) => theme.space.xs};\n & ${DSDialogTitle} + ${DSDialogAddon} {\n align-self: flex-start;\n justify-self: flex-end;\n }\n & ${DSDialogAddon}:only-child {\n justify-self: flex-end;\n }\n ${xStyledCommonProps}\n`;\n\nexport const DSDialogSeparator = styled.hr.attrs(() => ({ 'aria-hidden': true }))`\n margin: 0;\n border-top: 1px solid ${({ theme }) => theme.colors.neutral['080']};\n`;\n\nexport const DSDialogBody = styled('div')`\n padding: ${({ theme }) => theme.space.xs};\n overflow-y: auto;\n ${xStyledCommonProps}\n`;\n\nexport const DSDialogPrimaryMessage = styled.h3`\n margin: 0;\n`;\n\nexport const DSDialogSecondaryMessage = styled.p`\n margin: 0;\n color: ${({ theme }) => theme.colors.neutral[500]};\n`;\n\nexport const DSDialogDefaultLayout = styled('div')<React.PropsWithChildren>`\n display: grid;\n grid-auto-flow: row;\n justify-items: center;\n align-items: center;\n grid-gap: ${({ theme }) => theme.space.xxs};\n\n ${DSDialogSecondaryMessage} {\n text-align: center;\n }\n`;\n\nexport const DSDialogFooter = styled('div')`\n display: grid;\n grid-auto-flow: column;\n align-items: center;\n justify-content: flex-end;\n grid-gap: ${({ theme }) => theme.space.xxs};\n min-height: ${({ theme }) => theme.space.m};\n padding: 0 ${({ theme }) => theme.space.xs};\n ${xStyledCommonProps}\n`;\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACCvB,SAAS,QAAQ,mBAAmB,0BAA0B;AAE9D,SAAS,gBAAgB;AAmBlB,MAAM,eAAe;AAAA,IACxB,CAAC,EAAE,gBAAgB,MAAM,IAAI;AAAA;AAAA,
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACCvB,SAAS,QAAQ,mBAAmB,0BAA0B;AAE9D,SAAS,gBAAgB;AAmBlB,MAAM,eAAe;AAAA,IACxB,CAAC,EAAE,gBAAgB,MAAM,IAAI,eAAe,EAAE;AAAA;AAAA,MAE5C,CAAC,EAAE,WAAW,MACd,WAAW,mBAAmB,QAC1B,wBAAwB,WAAW,YAAY,MAAM,WAAW,cAAc,mBAC9E,EAAE;AAAA;AAAA;AAIL,MAAM,yBAAyB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAShC,CAAC,EAAE,QAAQ,MAAM,MAAM,UAAU,MAAM,OAAO,MAAM;AAAA;AAG1D,MAAM,wBAAwB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAOhC,CAAC,EAAE,SAAS,MAAO,WAAW,SAAS,qBAAsB;AAAA,WAC9D,CAAC,EAAE,MAAM,MAAM,MAAO,UAAU,KAAK,SAAS,IAAI,IAAI,KAAM;AAAA;AAAA,8BAEzC,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,GAAG,CAAC;AAAA,gBACtD,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQnD,MAAM,gBAAgB,OAAO;AAAA,eACrB,CAAC,EAAE,MAAM,MAAM,MAAM,UAAU,MAAM,GAAG,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASjD,MAAM,gBAAgB,OAAO;AAE7B,MAAM,iBAAiB,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA,gBAI1B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,CAAC;AAAA,kBAC1B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,EAAE;AAAA,MACzC,aAAa,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA,MAIhC,aAAa;AAAA;AAAA;AAAA,IAGf,kBAAkB;AAAA;AAGf,MAAM,oBAAoB,OAAO,GAAG,MAAM,OAAO,EAAE,eAAe,KAAK,EAAE;AAAA;AAAA,0BAEtD,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,KAAK,CAAC;AAAA;AAG7D,MAAM,eAAe,OAAO,KAAK;AAAA,aAC3B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,EAAE;AAAA;AAAA,IAEtC,kBAAkB;AAAA;AAGf,MAAM,yBAAyB,OAAO;AAAA;AAAA;AAItC,MAAM,2BAA2B,OAAO;AAAA;AAAA,WAEpC,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,QAAQ,GAAG,CAAC;AAAA;AAG5C,MAAM,wBAAwB,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,cAKnC,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,GAAG;AAAA;AAAA,IAExC,wBAAwB;AAAA;AAAA;AAAA;AAKrB,MAAM,iBAAiB,OAAO,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,cAK5B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,GAAG;AAAA,gBAC5B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,CAAC;AAAA,eAC7B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,EAAE;AAAA,IACxC,kBAAkB;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/utils.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../src/utils.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export const getSpaceProps = (props: Record<string, unknown>) =>\n Object.fromEntries(Object.entries(props).filter(([key]) => /^[pm][xytblr]?$/.exec(key)));\n\nexport const DSDialogSizes = {\n DEFAULT: 'default' as const,\n SMALL: 'small' as const,\n MEDIUM: 'medium' as const,\n LARGE: 'large' as const,\n XLARGE: 'x-large' as const,\n XXLARGE: 'xx-large' as const,\n};\n\nexport const DSDialogSizesArrayValues = Object.values(DSDialogSizes);\n\nexport const allSizes = {\n default: '576px',\n small: '320px',\n medium: '656px',\n large: '848px',\n 'x-large': '1042px',\n 'xx-large': '1440px',\n};\n\nexport const getScrollbarWidth = (element: HTMLElement) =>\n element.tagName === 'BODY'\n ? `${window.innerWidth - element.clientWidth}px`\n : `${element.offsetWidth - element.clientWidth}px`;\n\nexport const getCurrentRightPadding = (element: HTMLElement) =>\n window.getComputedStyle(element, null)?.getPropertyValue('padding-right');\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACAhB,MAAM,gBAAgB,CAAC,UAC5B,OAAO,YAAY,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,kBAAkB,KAAK,GAAG,CAAC,CAAC;AAElF,MAAM,gBAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,MAAM,2BAA2B,OAAO,OAAO,aAAa;AAE5D,MAAM,WAAW;AAAA,EACtB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AACd;AAEO,MAAM,oBAAoB,CAAC,YAChC,QAAQ,YAAY,SAChB,GAAG,OAAO,aAAa,QAAQ,
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACAhB,MAAM,gBAAgB,CAAC,UAC5B,OAAO,YAAY,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,kBAAkB,KAAK,GAAG,CAAC,CAAC;AAElF,MAAM,gBAAgB;AAAA,EAC3B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AACX;AAEO,MAAM,2BAA2B,OAAO,OAAO,aAAa;AAE5D,MAAM,WAAW;AAAA,EACtB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,YAAY;AACd;AAEO,MAAM,oBAAoB,CAAC,YAChC,QAAQ,YAAY,SAChB,GAAG,OAAO,aAAa,QAAQ,WAAW,OAC1C,GAAG,QAAQ,cAAc,QAAQ,WAAW;AAE3C,MAAM,yBAAyB,CAAC,YACrC,OAAO,iBAAiB,SAAS,IAAI,GAAG,iBAAiB,eAAe;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-dialog",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.36.0-next.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Dialog",
|
|
6
6
|
"files": [
|
|
@@ -70,17 +70,17 @@
|
|
|
70
70
|
"dependencies": {
|
|
71
71
|
"lodash": "~4.17.21",
|
|
72
72
|
"uid": "~2.0.1",
|
|
73
|
-
"@elliemae/ds-button": "3.
|
|
74
|
-
"@elliemae/ds-
|
|
75
|
-
"@elliemae/ds-
|
|
76
|
-
"@elliemae/ds-system": "3.
|
|
77
|
-
"@elliemae/ds-
|
|
78
|
-
"@elliemae/ds-utilities": "3.
|
|
73
|
+
"@elliemae/ds-button": "3.36.0-next.1",
|
|
74
|
+
"@elliemae/ds-props-helpers": "3.36.0-next.1",
|
|
75
|
+
"@elliemae/ds-typescript-helpers": "3.36.0-next.1",
|
|
76
|
+
"@elliemae/ds-system": "3.36.0-next.1",
|
|
77
|
+
"@elliemae/ds-icons": "3.36.0-next.1",
|
|
78
|
+
"@elliemae/ds-utilities": "3.36.0-next.1"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
81
81
|
"@elliemae/pui-cli": "~9.0.0-next.31",
|
|
82
82
|
"styled-components": "~5.3.9",
|
|
83
|
-
"@elliemae/ds-monorepo-devops": "3.
|
|
83
|
+
"@elliemae/ds-monorepo-devops": "3.36.0-next.1"
|
|
84
84
|
},
|
|
85
85
|
"peerDependencies": {
|
|
86
86
|
"react": "^17.0.2",
|