@popsure/dirty-swan 0.55.3 → 0.56.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.
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +2688 -882
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/components/modal/fullScreenModal/index.d.ts +3 -0
- package/dist/cjs/lib/components/modal/index.d.ts +2 -1
- package/dist/cjs/lib/components/modal/index.stories.d.ts +4 -0
- package/dist/cjs/lib/hooks/useEscapeKey.d.ts +1 -0
- package/dist/cjs/lib/hooks/useFocusWithin.d.ts +1 -0
- package/dist/cjs/lib/index.d.ts +4 -2
- package/dist/esm/{Calendar-3239814b.js → Calendar-d39056f4.js} +9 -9
- package/dist/esm/{Calendar-3239814b.js.map → Calendar-d39056f4.js.map} +1 -1
- package/dist/esm/{TableSection-a1be2bd3.js → TableSection-24337bc7.js} +1 -1
- package/dist/esm/{TableSection-a1be2bd3.js.map → TableSection-24337bc7.js.map} +1 -1
- package/dist/esm/components/accordion/index.js +1 -1
- package/dist/esm/components/accordion/index.stories.js +1 -1
- package/dist/esm/components/autocompleteAddress/index.test.js +1 -1
- package/dist/esm/components/badge/index.test.js +1 -1
- package/dist/esm/components/button/index.js +4 -4
- package/dist/esm/components/button/index.js.map +1 -1
- package/dist/esm/components/button/index.test.js +1 -1
- package/dist/esm/components/comparisonTable/components/AccordionItem/AccordionItem.js +1 -1
- package/dist/esm/components/comparisonTable/components/AccordionItem/index.js +1 -1
- package/dist/esm/components/comparisonTable/components/Row/index.js +2 -2
- package/dist/esm/components/comparisonTable/components/Row/index.js.map +1 -1
- package/dist/esm/components/comparisonTable/components/TableButton/index.test.js +2 -2
- package/dist/esm/components/comparisonTable/components/TableRowHeader/index.test.js +2 -2
- package/dist/esm/components/comparisonTable/index.js +2 -2
- package/dist/esm/components/comparisonTable/index.stories.js +2 -2
- package/dist/esm/components/dateSelector/components/Calendar.js +1 -1
- package/dist/esm/components/dateSelector/index.js +1 -1
- package/dist/esm/components/dateSelector/index.stories.js +1 -1
- package/dist/esm/components/dateSelector/index.test.js +2 -2
- package/dist/esm/components/informationBox/index.test.js +1 -1
- package/dist/esm/components/input/autoSuggestInput/index.js +8 -998
- package/dist/esm/components/input/autoSuggestInput/index.js.map +1 -1
- package/dist/esm/components/input/autoSuggestInput/index.stories.js +1 -0
- package/dist/esm/components/input/autoSuggestInput/index.stories.js.map +1 -1
- package/dist/esm/components/input/autoSuggestMultiSelect/index.js +1 -0
- package/dist/esm/components/input/autoSuggestMultiSelect/index.js.map +1 -1
- package/dist/esm/components/input/autoSuggestMultiSelect/index.stories.js +1 -0
- package/dist/esm/components/input/autoSuggestMultiSelect/index.stories.js.map +1 -1
- package/dist/esm/components/input/checkbox/index.test.js +1 -1
- package/dist/esm/components/input/currency/index.test.js +1 -1
- package/dist/esm/components/input/index.js +2 -2
- package/dist/esm/components/input/index.js.map +1 -1
- package/dist/esm/components/input/radio/index.test.js +1 -1
- package/dist/esm/components/input/toggle/index.test.js +1 -1
- package/dist/esm/components/modal/bottomModal/index.js +2 -0
- package/dist/esm/components/modal/bottomModal/index.js.map +1 -1
- package/dist/esm/components/modal/bottomOrRegularModal/index.js +2 -0
- package/dist/esm/components/modal/bottomOrRegularModal/index.js.map +1 -1
- package/dist/esm/components/modal/fullScreenModal/index.js +33 -0
- package/dist/esm/components/modal/fullScreenModal/index.js.map +1 -0
- package/dist/esm/components/modal/genericModal/index.js +1751 -13
- package/dist/esm/components/modal/genericModal/index.js.map +1 -1
- package/dist/esm/components/modal/index.stories.js +20 -7
- package/dist/esm/components/modal/index.stories.js.map +1 -1
- package/dist/esm/components/modal/regularModal/index.js +2 -0
- package/dist/esm/components/modal/regularModal/index.js.map +1 -1
- package/dist/esm/components/multiDropzone/index.js +3 -3
- package/dist/esm/components/multiDropzone/index.js.map +1 -1
- package/dist/esm/components/multiDropzone/index.stories.js +1 -1
- package/dist/esm/components/multiDropzone/index.test.js +3 -3
- package/dist/esm/components/segmentedControl/index.test.js +1 -1
- package/dist/esm/components/signaturePad/index.js +2 -2
- package/dist/esm/components/signaturePad/index.js.map +1 -1
- package/dist/esm/components/spinner/index.test.js +1 -1
- package/dist/esm/components/table/Table.js +4 -2
- package/dist/esm/components/table/Table.js.map +1 -1
- package/dist/esm/components/table/Table.stories.js +4 -2
- package/dist/esm/components/table/Table.stories.js.map +1 -1
- package/dist/esm/components/table/Table.test.js +5 -3
- package/dist/esm/components/table/Table.test.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.js +1 -1
- package/dist/esm/components/table/components/TableCell/BaseCell/BaseCell.stories.js +1 -1
- package/dist/esm/components/table/components/TableCell/TableCell.js +3 -3
- package/dist/esm/components/table/components/TableCell/TableCell.js.map +1 -1
- package/dist/esm/components/table/components/TableCell/TableCell.test.js +2 -2
- package/dist/esm/components/table/components/TableContents/TableContents.js +2 -2
- package/dist/esm/components/table/components/TableContents/TableContents.test.js +3 -3
- package/dist/esm/components/table/components/TableControls/TableControls.test.js +1 -1
- package/dist/esm/components/table/components/TableSection/TableSection.js +2 -2
- package/dist/esm/components/table/components/TableSection/TableSection.test.js +3 -3
- package/dist/esm/components/toast/index.js +1 -1
- package/dist/esm/components/toast/index.stories.js +1 -1
- package/dist/esm/components/toast/index.test.js +2 -2
- package/dist/esm/{customRender-d03c10b6.js → customRender-be47569b.js} +4 -4
- package/dist/esm/{customRender-d03c10b6.js.map → customRender-be47569b.js.map} +1 -1
- package/dist/esm/index-171a0108.js +997 -0
- package/dist/esm/index-171a0108.js.map +1 -0
- package/dist/esm/{index-3aa7e697.js → index-4b19aafb.js} +4 -4
- package/dist/esm/{index-3aa7e697.js.map → index-4b19aafb.js.map} +1 -1
- package/dist/esm/{index-6f567b0b.js → index-86558de6.js} +2 -2
- package/dist/esm/{index-6f567b0b.js.map → index-86558de6.js.map} +1 -1
- package/dist/esm/{index-3d286178.js → index-af1860d8.js} +3 -3
- package/dist/esm/{index-3d286178.js.map → index-af1860d8.js.map} +1 -1
- package/dist/esm/{index-a0ef2ab4.js → index-e27b50cf.js} +4 -4
- package/dist/esm/{index-a0ef2ab4.js.map → index-e27b50cf.js.map} +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +36 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib/components/modal/fullScreenModal/index.d.ts +3 -0
- package/dist/esm/lib/components/modal/index.d.ts +2 -1
- package/dist/esm/lib/components/modal/index.stories.d.ts +4 -0
- package/dist/esm/lib/hooks/useEscapeKey.d.ts +1 -0
- package/dist/esm/lib/hooks/useFocusWithin.d.ts +1 -0
- package/dist/esm/lib/index.d.ts +4 -2
- package/dist/esm/util/testUtils/customRender.js +1 -1
- package/package.json +2 -1
- package/src/index.tsx +4 -1
- package/src/lib/components/modal/fullScreenModal/index.tsx +24 -0
- package/src/lib/components/modal/fullScreenModal/style.module.scss +49 -0
- package/src/lib/components/modal/genericModal/index.tsx +71 -78
- package/src/lib/components/modal/hooks/useOnClose.ts +10 -8
- package/src/lib/components/modal/index.stories.tsx +54 -6
- package/src/lib/components/modal/index.ts +2 -1
- package/src/lib/hooks/useEscapeKey.ts +18 -0
- package/src/lib/hooks/useFocusWithin.ts +22 -0
- package/src/lib/index.tsx +6 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-a0ef2ab4.js","sources":["../../node_modules/react-animate-height/dist/esm/index.js"],"sourcesContent":["var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\n// ------------------ Helpers\nfunction isNumber(n) {\n const number = parseFloat(n);\n return !isNaN(number) && isFinite(number);\n}\nfunction isPercentage(height) {\n // Percentage height\n return (typeof height === 'string' &&\n height[height.length - 1] === '%' &&\n isNumber(height.substring(0, height.length - 1)));\n}\nfunction hideContent(element, height) {\n // Check for element?.style is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n if (height === 0 && (element === null || element === void 0 ? void 0 : element.style)) {\n element.style.display = 'none';\n }\n}\nfunction showContent(element, height) {\n // Check for element?.style is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n if (height === 0 && (element === null || element === void 0 ? void 0 : element.style)) {\n element.style.display = '';\n }\n}\nconst ANIMATION_STATE_CLASSES = {\n animating: 'rah-animating',\n animatingUp: 'rah-animating--up',\n animatingDown: 'rah-animating--down',\n animatingToHeightZero: 'rah-animating--to-height-zero',\n animatingToHeightAuto: 'rah-animating--to-height-auto',\n animatingToHeightSpecific: 'rah-animating--to-height-specific',\n static: 'rah-static',\n staticHeightZero: 'rah-static--height-zero',\n staticHeightAuto: 'rah-static--height-auto',\n staticHeightSpecific: 'rah-static--height-specific',\n};\nfunction getStaticStateClasses(animationStateClasses, height) {\n return classNames({\n [animationStateClasses.static]: true,\n [animationStateClasses.staticHeightZero]: height === 0,\n [animationStateClasses.staticHeightSpecific]: height > 0,\n [animationStateClasses.staticHeightAuto]: height === 'auto',\n });\n}\nconst AnimateHeight = (_a) => {\n var { animateOpacity = false, animationStateClasses = {}, applyInlineTransitions = true, children, className = '', contentClassName, delay: userDelay = 0, duration: userDuration = 500, easing = 'ease', height, onHeightAnimationEnd, onHeightAnimationStart, style } = _a, props = __rest(_a, [\"animateOpacity\", \"animationStateClasses\", \"applyInlineTransitions\", \"children\", \"className\", \"contentClassName\", \"delay\", \"duration\", \"easing\", \"height\", \"onHeightAnimationEnd\", \"onHeightAnimationStart\", \"style\"]);\n // ------------------ Initialization\n const prevHeight = useRef(height);\n const contentElement = useRef(null);\n const animationClassesTimeoutID = useRef();\n const timeoutID = useRef();\n const stateClasses = useRef(Object.assign(Object.assign({}, ANIMATION_STATE_CLASSES), animationStateClasses));\n const isBrowser = typeof window !== 'undefined';\n const prefersReducedMotion = useRef(isBrowser && window.matchMedia\n ? window.matchMedia('(prefers-reduced-motion)').matches\n : false);\n const delay = prefersReducedMotion.current ? 0 : userDelay;\n const duration = prefersReducedMotion.current ? 0 : userDuration;\n let initHeight = height;\n let initOverflow = 'visible';\n if (typeof initHeight === 'number') {\n // Reset negative height to 0\n initHeight = height < 0 ? 0 : height;\n initOverflow = 'hidden';\n }\n else if (isPercentage(initHeight)) {\n // If value is string \"0%\" make sure we convert it to number 0\n initHeight = height === '0%' ? 0 : height;\n initOverflow = 'hidden';\n }\n const [currentHeight, setCurrentHeight] = useState(initHeight);\n const [overflow, setOverflow] = useState(initOverflow);\n const [useTransitions, setUseTransitions] = useState(false);\n const [animationStateClassNames, setAnimationStateClassNames] = useState(getStaticStateClasses(stateClasses.current, height));\n // ------------------ Did mount\n useEffect(() => {\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, currentHeight);\n // This should be explicitly run only on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n // ------------------ Height update\n useEffect(() => {\n if (height !== prevHeight.current && contentElement.current) {\n showContent(contentElement.current, prevHeight.current);\n // Cache content height\n contentElement.current.style.overflow = 'hidden';\n const contentHeight = contentElement.current.offsetHeight;\n contentElement.current.style.overflow = '';\n // set total animation time\n const totalDuration = duration + delay;\n let newHeight;\n let timeoutHeight;\n let timeoutOverflow = 'hidden';\n let timeoutUseTransitions;\n const isCurrentHeightAuto = prevHeight.current === 'auto';\n if (typeof height === 'number') {\n // Reset negative height to 0\n newHeight = height < 0 ? 0 : height;\n timeoutHeight = newHeight;\n }\n else if (isPercentage(height)) {\n // If value is string \"0%\" make sure we convert it to number 0\n newHeight = height === '0%' ? 0 : height;\n timeoutHeight = newHeight;\n }\n else {\n // If not, animate to content height\n // and then reset to auto\n newHeight = contentHeight; // TODO solve contentHeight = 0\n timeoutHeight = 'auto';\n timeoutOverflow = undefined;\n }\n if (isCurrentHeightAuto) {\n // This is the height to be animated to\n timeoutHeight = newHeight;\n // If previous height was 'auto'\n // set starting height explicitly to be able to use transition\n newHeight = contentHeight;\n }\n // Animation classes\n const newAnimationStateClassNames = classNames({\n [stateClasses.current.animating]: true,\n [stateClasses.current.animatingUp]: prevHeight.current === 'auto' || height < prevHeight.current,\n [stateClasses.current.animatingDown]: height === 'auto' || height > prevHeight.current,\n [stateClasses.current.animatingToHeightZero]: timeoutHeight === 0,\n [stateClasses.current.animatingToHeightAuto]: timeoutHeight === 'auto',\n [stateClasses.current.animatingToHeightSpecific]: timeoutHeight > 0,\n });\n // Animation classes to be put after animation is complete\n const timeoutAnimationStateClasses = getStaticStateClasses(stateClasses.current, timeoutHeight);\n // Set starting height and animating classes\n // When animating from 'auto' we first need to set fixed height\n // that change should be animated\n setCurrentHeight(newHeight);\n setOverflow('hidden');\n setUseTransitions(!isCurrentHeightAuto);\n setAnimationStateClassNames(newAnimationStateClassNames);\n // Clear timeouts\n clearTimeout(timeoutID.current);\n clearTimeout(animationClassesTimeoutID.current);\n if (isCurrentHeightAuto) {\n // When animating from 'auto' we use a short timeout to start animation\n // after setting fixed height above\n timeoutUseTransitions = true;\n // Short timeout to allow rendering of the initial animation state first\n timeoutID.current = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(timeoutUseTransitions);\n // ANIMATION STARTS, run a callback if it exists\n onHeightAnimationStart === null || onHeightAnimationStart === void 0 ? void 0 : onHeightAnimationStart(timeoutHeight);\n }, 50);\n // Set static classes and remove transitions when animation ends\n animationClassesTimeoutID.current = setTimeout(() => {\n setUseTransitions(false);\n setAnimationStateClassNames(timeoutAnimationStateClasses);\n // ANIMATION ENDS\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, timeoutHeight);\n // Run a callback if it exists\n onHeightAnimationEnd === null || onHeightAnimationEnd === void 0 ? void 0 : onHeightAnimationEnd(timeoutHeight);\n }, totalDuration);\n }\n else {\n // ANIMATION STARTS, run a callback if it exists\n onHeightAnimationStart === null || onHeightAnimationStart === void 0 ? void 0 : onHeightAnimationStart(newHeight);\n // Set end height, classes and remove transitions when animation is complete\n timeoutID.current = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(false);\n setAnimationStateClassNames(timeoutAnimationStateClasses);\n // ANIMATION ENDS\n // If height is auto, don't hide the content\n // (case when element is empty, therefore height is 0)\n if (height !== 'auto') {\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, newHeight); // TODO solve newHeight = 0\n }\n // Run a callback if it exists\n onHeightAnimationEnd === null || onHeightAnimationEnd === void 0 ? void 0 : onHeightAnimationEnd(newHeight);\n }, totalDuration);\n }\n }\n prevHeight.current = height;\n return () => {\n clearTimeout(timeoutID.current);\n clearTimeout(animationClassesTimeoutID.current);\n };\n // This should be explicitly run only on height change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [height]);\n // ------------------ Render\n const componentStyle = Object.assign(Object.assign({}, style), { height: currentHeight, overflow: overflow || (style === null || style === void 0 ? void 0 : style.overflow) });\n if (useTransitions && applyInlineTransitions) {\n componentStyle.transition = `height ${duration}ms ${easing} ${delay}ms`;\n // Include transition passed through styles\n if (style === null || style === void 0 ? void 0 : style.transition) {\n componentStyle.transition = `${style.transition}, ${componentStyle.transition}`;\n }\n // Add webkit vendor prefix still used by opera, blackberry...\n componentStyle.WebkitTransition = componentStyle.transition;\n }\n const contentStyle = {};\n if (animateOpacity) {\n contentStyle.transition = `opacity ${duration}ms ${easing} ${delay}ms`;\n // Add webkit vendor prefix still used by opera, blackberry...\n contentStyle.WebkitTransition = contentStyle.transition;\n if (currentHeight === 0) {\n contentStyle.opacity = 0;\n }\n }\n // Check if user passed aria-hidden prop\n const hasAriaHiddenProp = typeof props['aria-hidden'] !== 'undefined';\n const ariaHidden = hasAriaHiddenProp ? props['aria-hidden'] : height === 0;\n return (React.createElement(\"div\", Object.assign({}, props, { \"aria-hidden\": ariaHidden, className: `${animationStateClassNames} ${className}`, style: componentStyle }),\n React.createElement(\"div\", { className: contentClassName, style: contentStyle, ref: contentElement }, children)));\n};\nexport default AnimateHeight;\n"],"names":["this","React"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-e27b50cf.js","sources":["../../node_modules/react-animate-height/dist/esm/index.js"],"sourcesContent":["var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\n// ------------------ Helpers\nfunction isNumber(n) {\n const number = parseFloat(n);\n return !isNaN(number) && isFinite(number);\n}\nfunction isPercentage(height) {\n // Percentage height\n return (typeof height === 'string' &&\n height[height.length - 1] === '%' &&\n isNumber(height.substring(0, height.length - 1)));\n}\nfunction hideContent(element, height) {\n // Check for element?.style is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n if (height === 0 && (element === null || element === void 0 ? void 0 : element.style)) {\n element.style.display = 'none';\n }\n}\nfunction showContent(element, height) {\n // Check for element?.style is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n if (height === 0 && (element === null || element === void 0 ? void 0 : element.style)) {\n element.style.display = '';\n }\n}\nconst ANIMATION_STATE_CLASSES = {\n animating: 'rah-animating',\n animatingUp: 'rah-animating--up',\n animatingDown: 'rah-animating--down',\n animatingToHeightZero: 'rah-animating--to-height-zero',\n animatingToHeightAuto: 'rah-animating--to-height-auto',\n animatingToHeightSpecific: 'rah-animating--to-height-specific',\n static: 'rah-static',\n staticHeightZero: 'rah-static--height-zero',\n staticHeightAuto: 'rah-static--height-auto',\n staticHeightSpecific: 'rah-static--height-specific',\n};\nfunction getStaticStateClasses(animationStateClasses, height) {\n return classNames({\n [animationStateClasses.static]: true,\n [animationStateClasses.staticHeightZero]: height === 0,\n [animationStateClasses.staticHeightSpecific]: height > 0,\n [animationStateClasses.staticHeightAuto]: height === 'auto',\n });\n}\nconst AnimateHeight = (_a) => {\n var { animateOpacity = false, animationStateClasses = {}, applyInlineTransitions = true, children, className = '', contentClassName, delay: userDelay = 0, duration: userDuration = 500, easing = 'ease', height, onHeightAnimationEnd, onHeightAnimationStart, style } = _a, props = __rest(_a, [\"animateOpacity\", \"animationStateClasses\", \"applyInlineTransitions\", \"children\", \"className\", \"contentClassName\", \"delay\", \"duration\", \"easing\", \"height\", \"onHeightAnimationEnd\", \"onHeightAnimationStart\", \"style\"]);\n // ------------------ Initialization\n const prevHeight = useRef(height);\n const contentElement = useRef(null);\n const animationClassesTimeoutID = useRef();\n const timeoutID = useRef();\n const stateClasses = useRef(Object.assign(Object.assign({}, ANIMATION_STATE_CLASSES), animationStateClasses));\n const isBrowser = typeof window !== 'undefined';\n const prefersReducedMotion = useRef(isBrowser && window.matchMedia\n ? window.matchMedia('(prefers-reduced-motion)').matches\n : false);\n const delay = prefersReducedMotion.current ? 0 : userDelay;\n const duration = prefersReducedMotion.current ? 0 : userDuration;\n let initHeight = height;\n let initOverflow = 'visible';\n if (typeof initHeight === 'number') {\n // Reset negative height to 0\n initHeight = height < 0 ? 0 : height;\n initOverflow = 'hidden';\n }\n else if (isPercentage(initHeight)) {\n // If value is string \"0%\" make sure we convert it to number 0\n initHeight = height === '0%' ? 0 : height;\n initOverflow = 'hidden';\n }\n const [currentHeight, setCurrentHeight] = useState(initHeight);\n const [overflow, setOverflow] = useState(initOverflow);\n const [useTransitions, setUseTransitions] = useState(false);\n const [animationStateClassNames, setAnimationStateClassNames] = useState(getStaticStateClasses(stateClasses.current, height));\n // ------------------ Did mount\n useEffect(() => {\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, currentHeight);\n // This should be explicitly run only on mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n // ------------------ Height update\n useEffect(() => {\n if (height !== prevHeight.current && contentElement.current) {\n showContent(contentElement.current, prevHeight.current);\n // Cache content height\n contentElement.current.style.overflow = 'hidden';\n const contentHeight = contentElement.current.offsetHeight;\n contentElement.current.style.overflow = '';\n // set total animation time\n const totalDuration = duration + delay;\n let newHeight;\n let timeoutHeight;\n let timeoutOverflow = 'hidden';\n let timeoutUseTransitions;\n const isCurrentHeightAuto = prevHeight.current === 'auto';\n if (typeof height === 'number') {\n // Reset negative height to 0\n newHeight = height < 0 ? 0 : height;\n timeoutHeight = newHeight;\n }\n else if (isPercentage(height)) {\n // If value is string \"0%\" make sure we convert it to number 0\n newHeight = height === '0%' ? 0 : height;\n timeoutHeight = newHeight;\n }\n else {\n // If not, animate to content height\n // and then reset to auto\n newHeight = contentHeight; // TODO solve contentHeight = 0\n timeoutHeight = 'auto';\n timeoutOverflow = undefined;\n }\n if (isCurrentHeightAuto) {\n // This is the height to be animated to\n timeoutHeight = newHeight;\n // If previous height was 'auto'\n // set starting height explicitly to be able to use transition\n newHeight = contentHeight;\n }\n // Animation classes\n const newAnimationStateClassNames = classNames({\n [stateClasses.current.animating]: true,\n [stateClasses.current.animatingUp]: prevHeight.current === 'auto' || height < prevHeight.current,\n [stateClasses.current.animatingDown]: height === 'auto' || height > prevHeight.current,\n [stateClasses.current.animatingToHeightZero]: timeoutHeight === 0,\n [stateClasses.current.animatingToHeightAuto]: timeoutHeight === 'auto',\n [stateClasses.current.animatingToHeightSpecific]: timeoutHeight > 0,\n });\n // Animation classes to be put after animation is complete\n const timeoutAnimationStateClasses = getStaticStateClasses(stateClasses.current, timeoutHeight);\n // Set starting height and animating classes\n // When animating from 'auto' we first need to set fixed height\n // that change should be animated\n setCurrentHeight(newHeight);\n setOverflow('hidden');\n setUseTransitions(!isCurrentHeightAuto);\n setAnimationStateClassNames(newAnimationStateClassNames);\n // Clear timeouts\n clearTimeout(timeoutID.current);\n clearTimeout(animationClassesTimeoutID.current);\n if (isCurrentHeightAuto) {\n // When animating from 'auto' we use a short timeout to start animation\n // after setting fixed height above\n timeoutUseTransitions = true;\n // Short timeout to allow rendering of the initial animation state first\n timeoutID.current = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(timeoutUseTransitions);\n // ANIMATION STARTS, run a callback if it exists\n onHeightAnimationStart === null || onHeightAnimationStart === void 0 ? void 0 : onHeightAnimationStart(timeoutHeight);\n }, 50);\n // Set static classes and remove transitions when animation ends\n animationClassesTimeoutID.current = setTimeout(() => {\n setUseTransitions(false);\n setAnimationStateClassNames(timeoutAnimationStateClasses);\n // ANIMATION ENDS\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, timeoutHeight);\n // Run a callback if it exists\n onHeightAnimationEnd === null || onHeightAnimationEnd === void 0 ? void 0 : onHeightAnimationEnd(timeoutHeight);\n }, totalDuration);\n }\n else {\n // ANIMATION STARTS, run a callback if it exists\n onHeightAnimationStart === null || onHeightAnimationStart === void 0 ? void 0 : onHeightAnimationStart(newHeight);\n // Set end height, classes and remove transitions when animation is complete\n timeoutID.current = setTimeout(() => {\n setCurrentHeight(timeoutHeight);\n setOverflow(timeoutOverflow);\n setUseTransitions(false);\n setAnimationStateClassNames(timeoutAnimationStateClasses);\n // ANIMATION ENDS\n // If height is auto, don't hide the content\n // (case when element is empty, therefore height is 0)\n if (height !== 'auto') {\n // Hide content if height is 0 (to prevent tabbing into it)\n hideContent(contentElement.current, newHeight); // TODO solve newHeight = 0\n }\n // Run a callback if it exists\n onHeightAnimationEnd === null || onHeightAnimationEnd === void 0 ? void 0 : onHeightAnimationEnd(newHeight);\n }, totalDuration);\n }\n }\n prevHeight.current = height;\n return () => {\n clearTimeout(timeoutID.current);\n clearTimeout(animationClassesTimeoutID.current);\n };\n // This should be explicitly run only on height change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [height]);\n // ------------------ Render\n const componentStyle = Object.assign(Object.assign({}, style), { height: currentHeight, overflow: overflow || (style === null || style === void 0 ? void 0 : style.overflow) });\n if (useTransitions && applyInlineTransitions) {\n componentStyle.transition = `height ${duration}ms ${easing} ${delay}ms`;\n // Include transition passed through styles\n if (style === null || style === void 0 ? void 0 : style.transition) {\n componentStyle.transition = `${style.transition}, ${componentStyle.transition}`;\n }\n // Add webkit vendor prefix still used by opera, blackberry...\n componentStyle.WebkitTransition = componentStyle.transition;\n }\n const contentStyle = {};\n if (animateOpacity) {\n contentStyle.transition = `opacity ${duration}ms ${easing} ${delay}ms`;\n // Add webkit vendor prefix still used by opera, blackberry...\n contentStyle.WebkitTransition = contentStyle.transition;\n if (currentHeight === 0) {\n contentStyle.opacity = 0;\n }\n }\n // Check if user passed aria-hidden prop\n const hasAriaHiddenProp = typeof props['aria-hidden'] !== 'undefined';\n const ariaHidden = hasAriaHiddenProp ? props['aria-hidden'] : height === 0;\n return (React.createElement(\"div\", Object.assign({}, props, { \"aria-hidden\": ariaHidden, className: `${animationStateClassNames} ${className}`, style: componentStyle }),\n React.createElement(\"div\", { className: contentClassName, style: contentStyle, ref: contentElement }, children)));\n};\nexport default AnimateHeight;\n"],"names":["this","React"],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { Accordion, DateSelector, SignaturePad, AutocompleteAddress, Input, MultiDropzone, IbanInput, CurrencyInput, BottomModal, RegularModal, BottomOrRegularModal, InfoCard, CardButton, Card, Button, AutoSuggestMultiSelect, Chip, AutoSuggestInput, ComparisonTable, TableRating, TableTrueFalse, TableRowHeader, TableButton, TableInfoButton, SegmentedControl, DownloadButton, Checkbox, Radio, Link, InformationBox, Badge, images, illustrations, Spinner, Table, Toggle, Toaster, toast, } from './lib';
|
|
1
|
+
export { Accordion, DateSelector, SignaturePad, AutocompleteAddress, Input, MultiDropzone, IbanInput, CurrencyInput, BottomModal, RegularModal, BottomOrRegularModal, FullScreenModal, InfoCard, CardButton, Card, Button, AutoSuggestMultiSelect, Chip, AutoSuggestInput, ComparisonTable, TableRating, TableTrueFalse, TableRowHeader, TableButton, TableInfoButton, SegmentedControl, DownloadButton, Checkbox, Radio, Link, InformationBox, Badge, images, illustrations, Spinner, Table, Toggle, Toaster, toast, useEscapeKey, useFocusWithin, } from './lib';
|
|
2
2
|
export * from './lib/components/icon';
|
|
3
|
-
export type { AccordionProps, DownloadStatus, InformationBoxProps, InputProps, IllustrationKeys, FileType, MultiDropzoneProps, TableHeader, UploadedFile, UploadStatus, CardProps, IconWrapperProps, TableData, TableProps } from './lib';
|
|
3
|
+
export type { AccordionProps, DownloadStatus, InformationBoxProps, InputProps, IllustrationKeys, FileType, MultiDropzoneProps, TableHeader, UploadedFile, UploadStatus, CardProps, IconWrapperProps, TableData, TableProps, } from './lib';
|
package/dist/esm/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export { Radio } from './components/input/radio/index.js';
|
|
|
13
13
|
export { BottomModal } from './components/modal/bottomModal/index.js';
|
|
14
14
|
export { RegularModal } from './components/modal/regularModal/index.js';
|
|
15
15
|
export { BottomOrRegularModal } from './components/modal/bottomOrRegularModal/index.js';
|
|
16
|
+
export { FullScreenModal } from './components/modal/fullScreenModal/index.js';
|
|
16
17
|
export { InfoCard } from './components/cards/index.js';
|
|
17
18
|
export { CardButton } from './components/cards/cardButton/index.js';
|
|
18
19
|
export { Card } from './components/cards/card/index.js';
|
|
@@ -26,9 +27,10 @@ export { Link } from './components/link/index.js';
|
|
|
26
27
|
export { i as illustrations, a as images } from './index-29e6f39e.js';
|
|
27
28
|
export { Spinner } from './components/spinner/index.js';
|
|
28
29
|
export { Toggle } from './components/input/toggle/index.js';
|
|
29
|
-
export { a as Toaster, t as toast } from './index-
|
|
30
|
+
export { a as Toaster, t as toast } from './index-4b19aafb.js';
|
|
30
31
|
export { Accordion } from './components/accordion/index.js';
|
|
31
32
|
export { Table } from './components/table/Table.js';
|
|
33
|
+
import { useCallback, useEffect } from 'react';
|
|
32
34
|
export { default as Svg1Icon } from './components/icon/icons/1.js';
|
|
33
35
|
export { default as Svg2Icon } from './components/icon/icons/2.js';
|
|
34
36
|
export { default as Svg3Icon } from './components/icon/icons/3.js';
|
|
@@ -418,8 +420,7 @@ export { default as TableButton } from './components/comparisonTable/components/
|
|
|
418
420
|
export { default as TableInfoButton } from './components/comparisonTable/components/TableInfoButton/index.js';
|
|
419
421
|
import './tslib.es6-a39f91fc.js';
|
|
420
422
|
import 'react/jsx-runtime';
|
|
421
|
-
import '
|
|
422
|
-
import './Calendar-3239814b.js';
|
|
423
|
+
import './Calendar-d39056f4.js';
|
|
423
424
|
import './_commonjsHelpers-4730bd53.js';
|
|
424
425
|
import './style-inject.es-1f59c1d0.js';
|
|
425
426
|
import './index-6ea95111.js';
|
|
@@ -427,10 +428,11 @@ import './components/icon/IconWrapper/IconWrapper.js';
|
|
|
427
428
|
import './index-69a46657.js';
|
|
428
429
|
import './index-5e72c3d4.js';
|
|
429
430
|
import './index-dd80248b.js';
|
|
430
|
-
import './index-
|
|
431
|
+
import './index-e27b50cf.js';
|
|
431
432
|
import './components/multiDropzone/UploadFileCell/index.js';
|
|
432
433
|
import './components/modal/genericModal/index.js';
|
|
433
|
-
import './index-
|
|
434
|
+
import './index-171a0108.js';
|
|
435
|
+
import './index-af1860d8.js';
|
|
434
436
|
import './components/comparisonTable/components/Chevron.js';
|
|
435
437
|
import './components/comparisonTable/components/Row/index.js';
|
|
436
438
|
import './components/comparisonTable/components/TableArrows/index.js';
|
|
@@ -445,10 +447,38 @@ import './components/table/components/TableCell/CTACell/CTACell.js';
|
|
|
445
447
|
import './components/table/components/IconRenderer/IconRenderer.js';
|
|
446
448
|
import './components/table/components/TableCell/CardCell/CardCell.js';
|
|
447
449
|
import './components/table/components/TableCell/ButtonCell/ButtonCell.js';
|
|
448
|
-
import './TableSection-
|
|
450
|
+
import './TableSection-24337bc7.js';
|
|
449
451
|
import './components/table/components/TableContents/TableContents.js';
|
|
450
452
|
import './components/table/components/TableContents/Collapsible.js';
|
|
451
453
|
import './useTableNavigation-f929fbc9.js';
|
|
452
454
|
import './components/table/components/TableControls/TableControls.js';
|
|
453
455
|
import './useScrollSync-b2d28bed.js';
|
|
456
|
+
|
|
457
|
+
var useEscapeKey = function (callback) {
|
|
458
|
+
var handleOnEscape = useCallback(function (e) {
|
|
459
|
+
if (e.key === 'Escape') {
|
|
460
|
+
callback();
|
|
461
|
+
}
|
|
462
|
+
}, [callback]);
|
|
463
|
+
useEffect(function () {
|
|
464
|
+
window.addEventListener('keydown', handleOnEscape);
|
|
465
|
+
return function () { return window.removeEventListener('keydown', handleOnEscape); };
|
|
466
|
+
}, [handleOnEscape]);
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
var useFocusWithin = function (ref, callback) {
|
|
470
|
+
useEffect(function () {
|
|
471
|
+
var handleOnFocusIn = function () {
|
|
472
|
+
if (!ref) {
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
475
|
+
var hasFocus = ref === null || ref === void 0 ? void 0 : ref.contains(document.activeElement);
|
|
476
|
+
callback(Boolean(hasFocus));
|
|
477
|
+
};
|
|
478
|
+
document.addEventListener('focusin', handleOnFocusIn);
|
|
479
|
+
return function () { return document === null || document === void 0 ? void 0 : document.removeEventListener('focusin', handleOnFocusIn); };
|
|
480
|
+
}, [callback, ref]);
|
|
481
|
+
};
|
|
482
|
+
|
|
483
|
+
export { useEscapeKey, useFocusWithin };
|
|
454
484
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/lib/hooks/useEscapeKey.ts","../../../src/lib/hooks/useFocusWithin.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\n\nexport const useEscapeKey = (callback: () => void) => {\n const handleOnEscape = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n callback();\n }\n },\n [callback]\n );\n\n useEffect(() => {\n window.addEventListener('keydown', handleOnEscape);\n\n return () => window.removeEventListener('keydown', handleOnEscape);\n }, [handleOnEscape]);\n};\n","import { useEffect } from 'react';\n\nexport const useFocusWithin = (\n ref: HTMLElement | null,\n callback: (isFocusWithin: boolean) => void\n) => {\n useEffect(() => {\n const handleOnFocusIn = () => {\n if (!ref) {\n return;\n }\n\n const hasFocus = ref?.contains(document.activeElement);\n\n callback(Boolean(hasFocus));\n };\n\n document.addEventListener('focusin', handleOnFocusIn);\n\n return () => document?.removeEventListener('focusin', handleOnFocusIn);\n }, [callback, ref]);\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEa,YAAY,GAAG,UAAC,QAAoB;IAC/C,IAAM,cAAc,GAAG,WAAW,CAChC,UAAC,CAAgB;QACf,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,QAAQ,EAAE,CAAC;SACZ;KACF,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,SAAS,CAAC;QACR,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAEnD,OAAO,cAAM,OAAA,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,GAAA,CAAC;KACpE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;AACvB;;ICfa,cAAc,GAAG,UAC5B,GAAuB,EACvB,QAA0C;IAE1C,SAAS,CAAC;QACR,IAAM,eAAe,GAAG;YACtB,IAAI,CAAC,GAAG,EAAE;gBACR,OAAO;aACR;YAED,IAAM,QAAQ,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAEvD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC7B,CAAC;QAEF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAEtD,OAAO,cAAM,OAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,GAAA,CAAC;KACxE,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AACtB;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BottomModal } from './bottomModal';
|
|
2
2
|
import { RegularModal } from './regularModal';
|
|
3
3
|
import { BottomOrRegularModal } from './bottomOrRegularModal';
|
|
4
|
+
import { FullScreenModal } from './fullScreenModal';
|
|
4
5
|
import { ReactNode } from 'react';
|
|
5
6
|
export interface Props {
|
|
6
7
|
title?: ReactNode;
|
|
@@ -13,4 +14,4 @@ export interface Props {
|
|
|
13
14
|
size?: 'default' | 'large';
|
|
14
15
|
footer?: ReactNode;
|
|
15
16
|
}
|
|
16
|
-
export { BottomModal, RegularModal, BottomOrRegularModal };
|
|
17
|
+
export { BottomModal, RegularModal, BottomOrRegularModal, FullScreenModal };
|
|
@@ -76,6 +76,10 @@ export declare const BottomModalStory: {
|
|
|
76
76
|
({ children, isOpen, onClose, title, }: Props): JSX.Element;
|
|
77
77
|
storyName: string;
|
|
78
78
|
};
|
|
79
|
+
export declare const FullScreenModalStory: {
|
|
80
|
+
({ children, isOpen, onClose, title, }: Props): JSX.Element;
|
|
81
|
+
storyName: string;
|
|
82
|
+
};
|
|
79
83
|
export declare const NonDismissibleModal: ({ children, isOpen, onClose, title, }: Props) => JSX.Element;
|
|
80
84
|
export declare const ModalWithFooter: ({ children, isOpen, onClose, title, }: Props) => JSX.Element;
|
|
81
85
|
export declare const ModalWithFooterAndScroll: ({ children, isOpen, onClose, title, }: Props) => JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useEscapeKey: (callback: () => void) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useFocusWithin: (ref: HTMLElement | null, callback: (isFocusWithin: boolean) => void) => void;
|
package/dist/esm/lib/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { CurrencyInput } from './components/input/currency';
|
|
|
10
10
|
import { Badge } from './components/badge';
|
|
11
11
|
import { Checkbox } from './components/input/checkbox';
|
|
12
12
|
import { Radio } from './components/input/radio';
|
|
13
|
-
import { BottomModal, RegularModal, BottomOrRegularModal } from './components/modal';
|
|
13
|
+
import { BottomModal, RegularModal, BottomOrRegularModal, FullScreenModal } from './components/modal';
|
|
14
14
|
import { InfoCard, CardButton } from './components/cards';
|
|
15
15
|
import { Card, CardProps } from './components/cards/card';
|
|
16
16
|
import { Button } from './components/button';
|
|
@@ -27,7 +27,9 @@ import { Toaster, toast } from './components/toast';
|
|
|
27
27
|
import { IconWrapperProps } from './components/icon/IconWrapper';
|
|
28
28
|
import { Accordion, AccordionProps } from './components/accordion';
|
|
29
29
|
import { Table, TableData, TableProps } from './components/table/Table';
|
|
30
|
+
import { useEscapeKey } from './hooks/useEscapeKey';
|
|
31
|
+
import { useFocusWithin } from './hooks/useFocusWithin';
|
|
30
32
|
export * from './components/icon';
|
|
31
|
-
export { Accordion, DateSelector, SignaturePad, AutocompleteAddress, Input, MultiDropzone, DownloadButton, IbanInput, BottomModal, RegularModal, BottomOrRegularModal, InfoCard, Card, CardButton, Button, CurrencyInput, AutoSuggestMultiSelect, Chip, AutoSuggestInput, ComparisonTable, TableRating, TableTrueFalse, TableRowHeader, TableButton, TableInfoButton, SegmentedControl, Checkbox, Radio, Link, InformationBox, Badge, images, illustrations, Spinner, Table, Toggle, Toaster, toast, };
|
|
33
|
+
export { Accordion, DateSelector, SignaturePad, AutocompleteAddress, Input, MultiDropzone, DownloadButton, IbanInput, BottomModal, RegularModal, BottomOrRegularModal, FullScreenModal, InfoCard, Card, CardButton, Button, CurrencyInput, AutoSuggestMultiSelect, Chip, AutoSuggestInput, ComparisonTable, TableRating, TableTrueFalse, TableRowHeader, TableButton, TableInfoButton, SegmentedControl, Checkbox, Radio, Link, InformationBox, Badge, images, illustrations, Spinner, Table, Toggle, Toaster, toast, useEscapeKey, useFocusWithin, };
|
|
32
34
|
export type { AccordionProps, IllustrationKeys, InformationBoxProps, InputProps, FileType, MultiDropzoneProps, TableHeader, UploadedFile, UploadStatus, CardProps, IconWrapperProps, TableData, TableProps, };
|
|
33
35
|
export type { DownloadStatus } from './models/download';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@popsure/dirty-swan",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.56.0",
|
|
4
4
|
"author": "Vincent Audoire <vincent@getpopsure.com>",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"private": false,
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
"react-autosuggest": "^10.1.0",
|
|
34
34
|
"react-day-picker": "^7.4.10",
|
|
35
35
|
"react-dropzone": "^14.2.2",
|
|
36
|
+
"react-focus-lock": "^2.13.2",
|
|
36
37
|
"react-hot-toast": "^2.4.1",
|
|
37
38
|
"react-scroll-sync": "^0.11.2",
|
|
38
39
|
"sass": "^1.35.1",
|
package/src/index.tsx
CHANGED
|
@@ -13,6 +13,7 @@ export {
|
|
|
13
13
|
BottomModal,
|
|
14
14
|
RegularModal,
|
|
15
15
|
BottomOrRegularModal,
|
|
16
|
+
FullScreenModal,
|
|
16
17
|
InfoCard,
|
|
17
18
|
CardButton,
|
|
18
19
|
Card,
|
|
@@ -40,6 +41,8 @@ export {
|
|
|
40
41
|
Toggle,
|
|
41
42
|
Toaster,
|
|
42
43
|
toast,
|
|
44
|
+
useEscapeKey,
|
|
45
|
+
useFocusWithin,
|
|
43
46
|
} from './lib';
|
|
44
47
|
|
|
45
48
|
export * from './lib/components/icon';
|
|
@@ -58,7 +61,7 @@ export type {
|
|
|
58
61
|
CardProps,
|
|
59
62
|
IconWrapperProps,
|
|
60
63
|
TableData,
|
|
61
|
-
TableProps
|
|
64
|
+
TableProps,
|
|
62
65
|
} from './lib';
|
|
63
66
|
|
|
64
67
|
ReactDOM.render(<App />, document.getElementById('root'));
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Props } from "..";
|
|
2
|
+
import styles from "./style.module.scss";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import { GenericModal } from "../genericModal";
|
|
5
|
+
|
|
6
|
+
const FullScreenModal = ({ className, ...rest }: Props) => (
|
|
7
|
+
<GenericModal
|
|
8
|
+
titleSize="small"
|
|
9
|
+
classNames={{
|
|
10
|
+
wrapper: "w100",
|
|
11
|
+
container: ({ isClosing }) => classNames(
|
|
12
|
+
"bg-white d-flex fd-column w100",
|
|
13
|
+
className,
|
|
14
|
+
styles.container, {
|
|
15
|
+
[styles.containerClose]: isClosing,
|
|
16
|
+
}
|
|
17
|
+
),
|
|
18
|
+
body: styles.body,
|
|
19
|
+
}}
|
|
20
|
+
{...rest}
|
|
21
|
+
/>
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
export { FullScreenModal };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
@use '../../../scss/public/grid' as *;
|
|
2
|
+
@use '../../../scss/public/colors' as *;
|
|
3
|
+
|
|
4
|
+
@keyframes appear-in {
|
|
5
|
+
0% {
|
|
6
|
+
opacity: 0;
|
|
7
|
+
visibility: hidden;
|
|
8
|
+
}
|
|
9
|
+
100% {
|
|
10
|
+
opacity: 1;
|
|
11
|
+
visibility: visible;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@keyframes disappear-out {
|
|
16
|
+
0% {
|
|
17
|
+
opacity: 1;
|
|
18
|
+
visibility: visible;
|
|
19
|
+
}
|
|
20
|
+
100% {
|
|
21
|
+
opacity: 0;
|
|
22
|
+
visibility: hidden;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
.container {
|
|
26
|
+
max-height: 100vh;
|
|
27
|
+
top: 0;
|
|
28
|
+
bottom: 0;
|
|
29
|
+
position: fixed;
|
|
30
|
+
|
|
31
|
+
animation-name: appear-in;
|
|
32
|
+
animation-duration: 0.4s;
|
|
33
|
+
animation-fill-mode: both;
|
|
34
|
+
animation-timing-function: ease-out;
|
|
35
|
+
|
|
36
|
+
&Close {
|
|
37
|
+
animation-name: disappear-out;
|
|
38
|
+
animation-duration: 0.4s;
|
|
39
|
+
animation-delay: 0s;
|
|
40
|
+
animation-fill-mode: both;
|
|
41
|
+
animation-timing-function: ease-out;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.body {
|
|
46
|
+
@include p-size-mobile {
|
|
47
|
+
padding-bottom: 48px;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -6,6 +6,7 @@ import classNamesUtil from 'classnames';
|
|
|
6
6
|
import { Button } from '../../button';
|
|
7
7
|
import { XIcon } from '../../icon';
|
|
8
8
|
import { useRef, useEffect } from 'react';
|
|
9
|
+
import FocusLock from 'react-focus-lock';
|
|
9
10
|
|
|
10
11
|
interface GenericModalProps extends Props {
|
|
11
12
|
classNames?: {
|
|
@@ -43,12 +44,12 @@ const InnerModal = ({
|
|
|
43
44
|
}
|
|
44
45
|
const handleOnScroll = () => {
|
|
45
46
|
if (modalBodyRef.current) {
|
|
46
|
-
onModalScroll(modalBodyRef.current.scrollTop, modalBodyRef.current)
|
|
47
|
+
onModalScroll(modalBodyRef.current.scrollTop, modalBodyRef.current);
|
|
47
48
|
}
|
|
48
|
-
}
|
|
49
|
-
|
|
49
|
+
};
|
|
50
|
+
|
|
50
51
|
modalBodyRef.current.addEventListener('scroll', handleOnScroll);
|
|
51
|
-
|
|
52
|
+
|
|
52
53
|
return () => {
|
|
53
54
|
modalBodyRef.current?.removeEventListener('scroll', handleOnScroll);
|
|
54
55
|
};
|
|
@@ -56,105 +57,97 @@ const InnerModal = ({
|
|
|
56
57
|
|
|
57
58
|
return (
|
|
58
59
|
<div
|
|
59
|
-
className={classNamesUtil(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
[styles.overlayClose]: isClosing,
|
|
63
|
-
}
|
|
64
|
-
)}
|
|
60
|
+
className={classNamesUtil(classNames?.overlay, styles.overlay, {
|
|
61
|
+
[styles.overlayClose]: isClosing,
|
|
62
|
+
})}
|
|
65
63
|
onAnimationEnd={handleOnCloseAnimationEnded}
|
|
66
64
|
onClick={handleOnOverlayClick}
|
|
67
65
|
>
|
|
68
|
-
<div
|
|
66
|
+
<div
|
|
69
67
|
className={
|
|
70
|
-
typeof classNames?.wrapper === 'string'
|
|
71
|
-
? classNames?.wrapper
|
|
68
|
+
typeof classNames?.wrapper === 'string'
|
|
69
|
+
? classNames?.wrapper
|
|
72
70
|
: classNames?.wrapper?.({ isClosing })
|
|
73
71
|
}
|
|
74
72
|
>
|
|
75
73
|
<div
|
|
74
|
+
aria-modal="true"
|
|
75
|
+
role="dialog"
|
|
76
76
|
className={
|
|
77
|
-
typeof classNames?.container === 'string'
|
|
78
|
-
|
|
79
|
-
|
|
77
|
+
typeof classNames?.container === 'string'
|
|
78
|
+
? classNames?.container
|
|
79
|
+
: classNames?.container?.({ isClosing })
|
|
80
80
|
}
|
|
81
81
|
onClick={handleContainerClick}
|
|
82
82
|
>
|
|
83
|
+
<FocusLock returnFocus>
|
|
84
|
+
<div
|
|
85
|
+
className={classNamesUtil(
|
|
86
|
+
'bg-white d-flex ai-center w100 px24 pt24 pb16',
|
|
87
|
+
styles.header,
|
|
88
|
+
{
|
|
89
|
+
'jc-between': !!title,
|
|
90
|
+
'jc-end': !title,
|
|
91
|
+
}
|
|
92
|
+
)}
|
|
93
|
+
>
|
|
94
|
+
{title && (
|
|
95
|
+
<div
|
|
96
|
+
className={classNamesUtil(
|
|
97
|
+
styles.title,
|
|
98
|
+
titleSize === 'small' ? 'p-h4' : 'p-h2'
|
|
99
|
+
)}
|
|
100
|
+
>
|
|
101
|
+
{title}
|
|
102
|
+
</div>
|
|
103
|
+
)}
|
|
83
104
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
105
|
+
{dismissible && (
|
|
106
|
+
<Button
|
|
107
|
+
hideLabel
|
|
108
|
+
leftIcon={<XIcon color="grey-700" />}
|
|
109
|
+
onClick={handleOnClose}
|
|
110
|
+
type="button"
|
|
111
|
+
variant="textColor"
|
|
112
|
+
className={classNamesUtil(
|
|
113
|
+
classNames?.closeButton,
|
|
114
|
+
'p0',
|
|
115
|
+
styles.closeButton
|
|
116
|
+
)}
|
|
117
|
+
>
|
|
118
|
+
Close modal
|
|
119
|
+
</Button>
|
|
120
|
+
)}
|
|
121
|
+
</div>
|
|
122
|
+
|
|
123
|
+
<div
|
|
124
|
+
className={classNamesUtil('w100', classNames?.body, styles.body)}
|
|
125
|
+
ref={modalBodyRef}
|
|
126
|
+
>
|
|
127
|
+
{children}
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
{footer && (
|
|
94
131
|
<div
|
|
95
132
|
className={classNamesUtil(
|
|
96
|
-
|
|
97
|
-
|
|
133
|
+
classNames?.footer,
|
|
134
|
+
'w100 bg-white',
|
|
135
|
+
styles.footer
|
|
98
136
|
)}
|
|
99
137
|
>
|
|
100
|
-
{
|
|
138
|
+
<div className="p24 pt16">{footer}</div>
|
|
101
139
|
</div>
|
|
102
140
|
)}
|
|
103
|
-
|
|
104
|
-
{dismissible && (
|
|
105
|
-
<Button
|
|
106
|
-
hideLabel
|
|
107
|
-
leftIcon={<XIcon color="grey-700" />}
|
|
108
|
-
onClick={handleOnClose}
|
|
109
|
-
type="button"
|
|
110
|
-
variant="textColor"
|
|
111
|
-
className={classNamesUtil(
|
|
112
|
-
classNames?.closeButton,
|
|
113
|
-
'p0',
|
|
114
|
-
styles.closeButton
|
|
115
|
-
)}
|
|
116
|
-
>
|
|
117
|
-
Close modal
|
|
118
|
-
</Button>
|
|
119
|
-
)}
|
|
120
|
-
</div>
|
|
121
|
-
|
|
122
|
-
<div
|
|
123
|
-
className={classNamesUtil(
|
|
124
|
-
'w100',
|
|
125
|
-
classNames?.body,
|
|
126
|
-
styles.body
|
|
127
|
-
)}
|
|
128
|
-
ref={modalBodyRef}
|
|
129
|
-
>
|
|
130
|
-
{children}
|
|
131
|
-
</div>
|
|
132
|
-
|
|
133
|
-
{footer && (
|
|
134
|
-
<div
|
|
135
|
-
className={classNamesUtil(
|
|
136
|
-
classNames?.footer,
|
|
137
|
-
'w100 bg-white',
|
|
138
|
-
styles.footer
|
|
139
|
-
)}
|
|
140
|
-
>
|
|
141
|
-
<div className="p24 pt16">
|
|
142
|
-
{footer}
|
|
143
|
-
</div>
|
|
144
|
-
</div>
|
|
145
|
-
)}
|
|
141
|
+
</FocusLock>
|
|
146
142
|
</div>
|
|
147
143
|
</div>
|
|
148
144
|
</div>
|
|
149
145
|
);
|
|
150
|
-
}
|
|
146
|
+
};
|
|
151
147
|
|
|
152
148
|
export const GenericModal = (props: GenericModalProps) => {
|
|
153
|
-
const { isOpen, onClose, dismissible = true } = props;
|
|
154
|
-
const {
|
|
155
|
-
isVisible,
|
|
156
|
-
...rest
|
|
157
|
-
} = useOnClose(onClose, isOpen, dismissible);
|
|
149
|
+
const { isOpen, onClose, dismissible = true } = props;
|
|
150
|
+
const { isVisible, ...rest } = useOnClose(onClose, isOpen, dismissible);
|
|
158
151
|
|
|
159
152
|
if (!isVisible) {
|
|
160
153
|
return null;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import React, { useCallback, useEffect, useState } from 'react';
|
|
1
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
2
|
|
|
3
3
|
export interface OnCloseReturn {
|
|
4
4
|
isClosing: boolean;
|
|
5
5
|
isVisible: boolean;
|
|
6
6
|
handleOnCloseAnimationEnded: () => void;
|
|
7
|
-
handleContainerClick: (
|
|
7
|
+
handleContainerClick: (
|
|
8
|
+
event: React.MouseEvent<HTMLDivElement, MouseEvent>
|
|
9
|
+
) => void;
|
|
8
10
|
handleOnClose: () => void;
|
|
9
11
|
handleOnOverlayClick: () => void;
|
|
10
12
|
}
|
|
@@ -39,9 +41,9 @@ const useOnClose = (
|
|
|
39
41
|
|
|
40
42
|
const handleEscKey = useCallback(
|
|
41
43
|
(e: KeyboardEvent) => {
|
|
42
|
-
if (e.code !== 'Escape')
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
if (e.code !== 'Escape' || !dismissable || !isOpen) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
45
47
|
|
|
46
48
|
handleOnClose();
|
|
47
49
|
},
|
|
@@ -60,8 +62,8 @@ const useOnClose = (
|
|
|
60
62
|
if (isOpen) {
|
|
61
63
|
setIsVisible(true);
|
|
62
64
|
}
|
|
63
|
-
|
|
64
|
-
if (!isOpen && isVisible){
|
|
65
|
+
|
|
66
|
+
if (!isOpen && isVisible) {
|
|
65
67
|
handleOnClose();
|
|
66
68
|
}
|
|
67
69
|
|
|
@@ -84,7 +86,7 @@ const useOnClose = (
|
|
|
84
86
|
handleContainerClick,
|
|
85
87
|
handleOnCloseAnimationEnded,
|
|
86
88
|
handleOnClose,
|
|
87
|
-
handleOnOverlayClick
|
|
89
|
+
handleOnOverlayClick,
|
|
88
90
|
};
|
|
89
91
|
};
|
|
90
92
|
|