{"version":3,"file":"index-dc8695b1.js","sources":["../../src/components/IconButton/index.tsx","../../src/icons/Close.tsx","../../src/components/Transition/index.tsx","../../src/components/Modal/index.tsx"],"sourcesContent":["import { useMemo, ReactNode } from 'react';\nimport clsx from 'clsx';\n\nimport { Button } from 'components/Button';\n\ntype Props = {\n label: string;\n showPlaceholder?: boolean;\n component: (props: T) => JSX.Element;\n children: ReactNode;\n className: string;\n};\n\n// Enhancement: Provide placeholder function, so that developer can decide the logic.\nfunction IconButton(props: Props) {\n const { label, showPlaceholder = false, component: Component = Button, children, className, ...restProps } = props;\n\n const placeholderText = useMemo(() => {\n if (!showPlaceholder) return '';\n\n return label\n .split(' ')\n .map((w) => w[0])\n .join('')\n .substring(0, 2)\n .trim();\n }, [label, showPlaceholder]);\n\n return (\n \n {children}\n {showPlaceholder ? placeholderText : null}\n \n );\n}\n\nexport { IconButton };\n","import IconProps from './IconProps';\n\nfunction Close(props: IconProps) {\n const { width = 17, height = 17, ariaLabel} = props;\n\n return (\n \n \n \n \n );\n}\n\nexport default Close;\n","import { Transition, animated } from '@react-spring/web';\n\n// Enhancement: Add typescript support and try to re-use some pieces for each animation type\nfunction TransitionCustom(props) {\n const { children, className, ElementProps, ...rest } = props;\n\n return (\n \n {(style, isOpen) => {\n return (\n isOpen && (\n \n {children}\n \n )\n );\n }}\n \n );\n}\n\nfunction TransitionUp(props) {\n return (\n \n );\n}\n\nfunction TransitionDown(props) {\n return (\n \n );\n}\n\nfunction TransitionLeft(props) {\n return (\n \n );\n}\n\nfunction TransitionRight(props) {\n return (\n \n );\n}\n\nfunction TransitionFade(props) {\n return ;\n}\n\nfunction TransitionUpDownNoFade(props) {\n return (\n \n );\n}\n\nexport { TransitionCustom, TransitionUp, TransitionDown, TransitionLeft, TransitionRight, TransitionFade, TransitionUpDownNoFade };\n","import { ReactNode, ElementType } from 'react';\nimport clsx from 'clsx';\nimport { FocusTrap } from 'libs/focus-trap';\n\nimport { TransitionFade } from 'components/Transition';\n\ninterface ModalProps {\n className?: string;\n show: boolean;\n fullScreen?: boolean;\n showBackdrop?: boolean;\n onClose?: () => void;\n TransitionComponent?: ElementType;\n FocusTrapProps?: Record;\n children?: ReactNode | string;\n}\n\ninterface NoTransitionProps {\n items: boolean;\n ElementProps?: Record;\n children?: ReactNode | string;\n}\n\nfunction NoTransition(props: NoTransitionProps) {\n const { items, children, ElementProps, ...restProps } = props;\n\n return items ? (\n
\n {children}\n
\n ) : null;\n}\n\nfunction Modal(props: ModalProps) {\n const { className, show, fullScreen = false, showBackdrop = !fullScreen, onClose, TransitionComponent = NoTransition, FocusTrapProps = {}, children, ...restProps } = props;\n\n const Component = TransitionComponent as ElementType;\n const { className: lockClassName, ...restLockProps } = FocusTrapProps;\n\n return (\n <>\n \n \n \n {children}\n \n \n \n );\n}\n\nexport { Modal };\n"],"names":["useMemo","importShared","IconButton","props","label","showPlaceholder","Component","Button","children","className","restProps","placeholderText","w","jsxs","clsx","Close","width","height","ariaLabel","jsx","TransitionCustom","ElementProps","rest","Transition","style","isOpen","animated","TransitionUp","TransitionRight","TransitionFade","TransitionUpDownNoFade","NoTransition","items","Modal","show","fullScreen","showBackdrop","onClose","TransitionComponent","FocusTrapProps","lockClassName","restLockProps","Fragment","FocusTrap"],"mappings":"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"}