@chayns-components/core 5.0.0-beta.636 → 5.0.0-beta.638

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.
@@ -128,6 +128,7 @@ const Accordion = ({
128
128
  type: 'tween'
129
129
  }
130
130
  }, /*#__PURE__*/_react.default.createElement(_AccordionHead.default, {
131
+ uuid: uuid,
131
132
  icon: icon,
132
133
  isOpen: isOpen,
133
134
  isFixed: isFixed,
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","names":["_framerMotion","require","_react","_interopRequireWildcard","_uuid","_AreaContextProvider","_AccordionBody","_interopRequireDefault","_AccordionGroup","_AccordionHead","_Accordion","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","AccordionContext","exports","React","createContext","isWrapped","Accordion","bodyMaxHeight","children","icon","isDefaultOpen","isDisabled","isFixed","isOpened","isTitleGreyed","onBodyScroll","onClose","onOpen","onSearchChange","rightElement","searchIcon","searchPlaceholder","searchValue","shouldForceBackground","shouldHideBackground","shouldRenderClosed","shouldRotateIcon","title","titleElement","openAccordionUuid","updateOpenAccordionUuid","useContext","AccordionGroupContext","isParentWrapped","isAccordionOpen","setIsAccordionOpen","useState","uuid","useUuid","isInitialRenderRef","useRef","isInGroup","isOpen","isOpenRef","onCloseRef","onOpenRef","useEffect","current","handleHeadClick","useCallback","currentIsAccordionOpen","shouldOnlyOpen","accordionContextProviderValue","useMemo","createElement","StyledAccordion","className","$isOpen","$isParentWrapped","$isWrapped","$shouldForceBackground","$shouldHideBackground","Provider","value","MotionConfig","transition","type","onClick","AnimatePresence","initial","maxHeight","onScroll","shouldHideBody","AreaContext","shouldChangeColor","displayName","_default"],"sources":["../../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'framer-motion';\nimport React, {\n ChangeEventHandler,\n FC,\n ReactNode,\n UIEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport AccordionBody from './accordion-body/AccordionBody';\nimport { AccordionGroupContext } from './accordion-group/AccordionGroup';\nimport AccordionHead from './accordion-head/AccordionHead';\nimport { StyledAccordion } from './Accordion.styles';\n\nexport const AccordionContext = React.createContext({ isWrapped: false });\n\nexport type AccordionProps = {\n /**\n * Maximum height of the accordion body element. This automatically makes the content of the\n * body element scrollable.\n */\n bodyMaxHeight?: number;\n /**\n * The content of the accordion body\n */\n children: ReactNode;\n /**\n * The icon that is displayed in front of the title\n */\n icon?: string;\n /**\n * This can be used to automatically expand the Accordion during the first render.\n */\n isDefaultOpen?: boolean;\n /**\n * This will disable the Accordion so that it cannot be opened and will gray out the title. Does not work with isOpened.\n */\n isDisabled?: boolean;\n /**\n * This can be used so that the Accordion cannot be opened or closed.\n * In addition, in this case the icon is exchanged to mark the Accordions.\n */\n isFixed?: boolean;\n /**\n * This can be used to open the Accordion from the outside.\n */\n isOpened?: boolean;\n /**\n * This will gray out the title of the Accordion to indicate hidden content, for example.\n */\n isTitleGreyed?: boolean;\n /**\n * Function that is executed when the accordion body will be scrolled\n */\n onBodyScroll?: (event: UIEvent<HTMLDivElement>) => void;\n /**\n * Function that is executed when the accordion will be closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when the accordion will be opened.\n */\n onOpen?: VoidFunction;\n /**\n * Function that is executed when the text of the search in the accordion\n * head changes. When this function is given, the search field is displayed\n * in the Accordion Head.\n */\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Content to be displayed on the right side in the head of the Accordion\n */\n rightElement?: ReactNode;\n /**\n * Icon to be displayed on the right side in the search input\n */\n searchIcon?: string[];\n /**\n * The placeholder to be used for the search\n */\n searchPlaceholder?: string;\n /**\n * The value that is displayed inside the search\n */\n searchValue?: string;\n /**\n * This will force the background color of the accordion to be used even if it is closed and not hovered.\n */\n shouldForceBackground?: boolean;\n /**\n * This will hide the background color of the accordion\n */\n shouldHideBackground?: boolean;\n /**\n * This will render the Accordion closed on the first render.\n */\n shouldRenderClosed?: boolean;\n /**\n * Whether the icon should be rotating.\n */\n shouldRotateIcon?: boolean;\n /**\n * Title of the Accordion displayed in the head\n */\n title: string;\n /**\n * Additional elements to be displayed in the header next to the title.\n */\n titleElement?: ReactNode;\n};\n\nconst Accordion: FC<AccordionProps> = ({\n bodyMaxHeight,\n children,\n icon,\n isDefaultOpen = false,\n isDisabled = false,\n isFixed = false,\n isOpened,\n isTitleGreyed = false,\n onBodyScroll,\n onClose,\n onOpen,\n onSearchChange,\n rightElement,\n searchIcon,\n searchPlaceholder,\n searchValue,\n shouldForceBackground = false,\n shouldHideBackground = false,\n shouldRenderClosed = false,\n shouldRotateIcon = true,\n title,\n titleElement,\n}) => {\n const { isWrapped, openAccordionUuid, updateOpenAccordionUuid } =\n useContext(AccordionGroupContext);\n const { isWrapped: isParentWrapped } = useContext(AccordionContext);\n\n const [isAccordionOpen, setIsAccordionOpen] = useState<boolean>(isDefaultOpen ?? isOpened);\n\n const uuid = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const isInGroup = typeof updateOpenAccordionUuid === 'function';\n\n const isOpen = isInGroup ? openAccordionUuid === uuid : isAccordionOpen;\n\n const isOpenRef = useRef(isOpen);\n const onCloseRef = useRef(onClose);\n const onOpenRef = useRef(onOpen);\n\n useEffect(() => {\n isOpenRef.current = isOpen;\n onCloseRef.current = onClose;\n onOpenRef.current = onOpen;\n }, [isOpen, onClose, onOpen]);\n\n const handleHeadClick = useCallback(() => {\n if (isDisabled) {\n return;\n }\n\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }, [isDisabled, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isDisabled && isOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }\n }, [isDisabled, isOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (isOpen) {\n if (typeof onOpenRef.current === 'function') {\n onOpenRef.current();\n }\n } else if (typeof onCloseRef.current === 'function') {\n onCloseRef.current();\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (isDefaultOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid, { shouldOnlyOpen: true });\n } else {\n setIsAccordionOpen(true);\n }\n }\n }, [isDefaultOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (typeof isOpened === 'boolean') {\n if (typeof updateOpenAccordionUuid === 'function' && isOpened !== isOpenRef.current) {\n updateOpenAccordionUuid(uuid);\n } else {\n setIsAccordionOpen(isOpened);\n }\n }\n }, [isOpened, updateOpenAccordionUuid, uuid]);\n\n const accordionContextProviderValue = useMemo(\n () => ({ isWrapped: isWrapped === true }),\n [isWrapped],\n );\n\n return (\n <StyledAccordion\n className=\"beta-chayns-accordion\"\n $isOpen={isOpen}\n $isParentWrapped={isParentWrapped}\n $isWrapped={isWrapped}\n $shouldForceBackground={shouldForceBackground}\n $shouldHideBackground={shouldHideBackground}\n >\n <AccordionContext.Provider value={accordionContextProviderValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AccordionHead\n icon={icon}\n isOpen={isOpen}\n isFixed={isFixed}\n isTitleGreyed={isTitleGreyed || isDisabled}\n isWrapped={isWrapped === true}\n onClick={handleHeadClick}\n onSearchChange={onSearchChange}\n rightElement={rightElement}\n searchIcon={searchIcon}\n searchPlaceholder={searchPlaceholder}\n searchValue={searchValue}\n shouldRotateIcon={shouldRotateIcon}\n title={title}\n titleElement={titleElement}\n />\n <AnimatePresence initial={false}>\n {(isOpen || shouldRenderClosed) && (\n <AccordionBody\n maxHeight={bodyMaxHeight}\n onScroll={onBodyScroll}\n shouldHideBody={shouldRenderClosed && !isOpen}\n >\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n {children}\n </AreaContext.Provider>\n </AccordionBody>\n )}\n </AnimatePresence>\n </MotionConfig>\n </AccordionContext.Provider>\n </StyledAccordion>\n );\n};\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Accordion.js","names":["_framerMotion","require","_react","_interopRequireWildcard","_uuid","_AreaContextProvider","_AccordionBody","_interopRequireDefault","_AccordionGroup","_AccordionHead","_Accordion","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","AccordionContext","exports","React","createContext","isWrapped","Accordion","bodyMaxHeight","children","icon","isDefaultOpen","isDisabled","isFixed","isOpened","isTitleGreyed","onBodyScroll","onClose","onOpen","onSearchChange","rightElement","searchIcon","searchPlaceholder","searchValue","shouldForceBackground","shouldHideBackground","shouldRenderClosed","shouldRotateIcon","title","titleElement","openAccordionUuid","updateOpenAccordionUuid","useContext","AccordionGroupContext","isParentWrapped","isAccordionOpen","setIsAccordionOpen","useState","uuid","useUuid","isInitialRenderRef","useRef","isInGroup","isOpen","isOpenRef","onCloseRef","onOpenRef","useEffect","current","handleHeadClick","useCallback","currentIsAccordionOpen","shouldOnlyOpen","accordionContextProviderValue","useMemo","createElement","StyledAccordion","className","$isOpen","$isParentWrapped","$isWrapped","$shouldForceBackground","$shouldHideBackground","Provider","value","MotionConfig","transition","type","onClick","AnimatePresence","initial","maxHeight","onScroll","shouldHideBody","AreaContext","shouldChangeColor","displayName","_default"],"sources":["../../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'framer-motion';\nimport React, {\n ChangeEventHandler,\n FC,\n ReactNode,\n UIEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport AccordionBody from './accordion-body/AccordionBody';\nimport { AccordionGroupContext } from './accordion-group/AccordionGroup';\nimport AccordionHead from './accordion-head/AccordionHead';\nimport { StyledAccordion } from './Accordion.styles';\n\nexport const AccordionContext = React.createContext({ isWrapped: false });\n\nexport type AccordionProps = {\n /**\n * Maximum height of the accordion body element. This automatically makes the content of the\n * body element scrollable.\n */\n bodyMaxHeight?: number;\n /**\n * The content of the accordion body\n */\n children: ReactNode;\n /**\n * The icon that is displayed in front of the title\n */\n icon?: string;\n /**\n * This can be used to automatically expand the Accordion during the first render.\n */\n isDefaultOpen?: boolean;\n /**\n * This will disable the Accordion so that it cannot be opened and will gray out the title. Does not work with isOpened.\n */\n isDisabled?: boolean;\n /**\n * This can be used so that the Accordion cannot be opened or closed.\n * In addition, in this case the icon is exchanged to mark the Accordions.\n */\n isFixed?: boolean;\n /**\n * This can be used to open the Accordion from the outside.\n */\n isOpened?: boolean;\n /**\n * This will gray out the title of the Accordion to indicate hidden content, for example.\n */\n isTitleGreyed?: boolean;\n /**\n * Function that is executed when the accordion body will be scrolled\n */\n onBodyScroll?: (event: UIEvent<HTMLDivElement>) => void;\n /**\n * Function that is executed when the accordion will be closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when the accordion will be opened.\n */\n onOpen?: VoidFunction;\n /**\n * Function that is executed when the text of the search in the accordion\n * head changes. When this function is given, the search field is displayed\n * in the Accordion Head.\n */\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Content to be displayed on the right side in the head of the Accordion\n */\n rightElement?: ReactNode;\n /**\n * Icon to be displayed on the right side in the search input\n */\n searchIcon?: string[];\n /**\n * The placeholder to be used for the search\n */\n searchPlaceholder?: string;\n /**\n * The value that is displayed inside the search\n */\n searchValue?: string;\n /**\n * This will force the background color of the accordion to be used even if it is closed and not hovered.\n */\n shouldForceBackground?: boolean;\n /**\n * This will hide the background color of the accordion\n */\n shouldHideBackground?: boolean;\n /**\n * This will render the Accordion closed on the first render.\n */\n shouldRenderClosed?: boolean;\n /**\n * Whether the icon should be rotating.\n */\n shouldRotateIcon?: boolean;\n /**\n * Title of the Accordion displayed in the head\n */\n title: string;\n /**\n * Additional elements to be displayed in the header next to the title.\n */\n titleElement?: ReactNode;\n};\n\nconst Accordion: FC<AccordionProps> = ({\n bodyMaxHeight,\n children,\n icon,\n isDefaultOpen = false,\n isDisabled = false,\n isFixed = false,\n isOpened,\n isTitleGreyed = false,\n onBodyScroll,\n onClose,\n onOpen,\n onSearchChange,\n rightElement,\n searchIcon,\n searchPlaceholder,\n searchValue,\n shouldForceBackground = false,\n shouldHideBackground = false,\n shouldRenderClosed = false,\n shouldRotateIcon = true,\n title,\n titleElement,\n}) => {\n const { isWrapped, openAccordionUuid, updateOpenAccordionUuid } =\n useContext(AccordionGroupContext);\n const { isWrapped: isParentWrapped } = useContext(AccordionContext);\n\n const [isAccordionOpen, setIsAccordionOpen] = useState<boolean>(isDefaultOpen ?? isOpened);\n\n const uuid = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const isInGroup = typeof updateOpenAccordionUuid === 'function';\n\n const isOpen = isInGroup ? openAccordionUuid === uuid : isAccordionOpen;\n\n const isOpenRef = useRef(isOpen);\n const onCloseRef = useRef(onClose);\n const onOpenRef = useRef(onOpen);\n\n useEffect(() => {\n isOpenRef.current = isOpen;\n onCloseRef.current = onClose;\n onOpenRef.current = onOpen;\n }, [isOpen, onClose, onOpen]);\n\n const handleHeadClick = useCallback(() => {\n if (isDisabled) {\n return;\n }\n\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }, [isDisabled, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isDisabled && isOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }\n }, [isDisabled, isOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (isOpen) {\n if (typeof onOpenRef.current === 'function') {\n onOpenRef.current();\n }\n } else if (typeof onCloseRef.current === 'function') {\n onCloseRef.current();\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (isDefaultOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid, { shouldOnlyOpen: true });\n } else {\n setIsAccordionOpen(true);\n }\n }\n }, [isDefaultOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (typeof isOpened === 'boolean') {\n if (typeof updateOpenAccordionUuid === 'function' && isOpened !== isOpenRef.current) {\n updateOpenAccordionUuid(uuid);\n } else {\n setIsAccordionOpen(isOpened);\n }\n }\n }, [isOpened, updateOpenAccordionUuid, uuid]);\n\n const accordionContextProviderValue = useMemo(\n () => ({ isWrapped: isWrapped === true }),\n [isWrapped],\n );\n\n return (\n <StyledAccordion\n className=\"beta-chayns-accordion\"\n $isOpen={isOpen}\n $isParentWrapped={isParentWrapped}\n $isWrapped={isWrapped}\n $shouldForceBackground={shouldForceBackground}\n $shouldHideBackground={shouldHideBackground}\n >\n <AccordionContext.Provider value={accordionContextProviderValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AccordionHead\n uuid={uuid}\n icon={icon}\n isOpen={isOpen}\n isFixed={isFixed}\n isTitleGreyed={isTitleGreyed || isDisabled}\n isWrapped={isWrapped === true}\n onClick={handleHeadClick}\n onSearchChange={onSearchChange}\n rightElement={rightElement}\n searchIcon={searchIcon}\n searchPlaceholder={searchPlaceholder}\n searchValue={searchValue}\n shouldRotateIcon={shouldRotateIcon}\n title={title}\n titleElement={titleElement}\n />\n <AnimatePresence initial={false}>\n {(isOpen || shouldRenderClosed) && (\n <AccordionBody\n maxHeight={bodyMaxHeight}\n onScroll={onBodyScroll}\n shouldHideBody={shouldRenderClosed && !isOpen}\n >\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n {children}\n </AreaContext.Provider>\n </AccordionBody>\n )}\n </AnimatePresence>\n </MotionConfig>\n </AccordionContext.Provider>\n </StyledAccordion>\n );\n};\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n"],"mappings":"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","ignoreList":[]}
@@ -27,7 +27,8 @@ const AccordionHead = ({
27
27
  searchValue,
28
28
  shouldRotateIcon,
29
29
  title,
30
- titleElement
30
+ titleElement,
31
+ uuid
31
32
  }) => {
32
33
  const [headHeight, setHeadHeight] = (0, _react.useState)({
33
34
  closed: isWrapped ? 40 : 33,
@@ -67,22 +68,30 @@ const AccordionHead = ({
67
68
  height: isOpen ? headHeight.open : headHeight.closed
68
69
  },
69
70
  className: "beta-chayns-accordion-head",
70
- initial: false
71
+ initial: false,
72
+ key: `accordionHead--${uuid}`
71
73
  }, /*#__PURE__*/_react.default.createElement(_AccordionHead.StyledMotionIconWrapper, {
72
74
  animate: {
73
75
  rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0
74
76
  },
75
77
  initial: false,
76
- onClick: !isFixed ? onClick : undefined
78
+ onClick: !isFixed ? onClick : undefined,
79
+ key: `accordionHeadIcon--${uuid}`
77
80
  }, iconElement), /*#__PURE__*/_react.default.createElement(_AccordionHead.StyledMotionContentWrapper, {
78
81
  animate: {
79
82
  opacity: isTitleGreyed ? 0.5 : 1
80
83
  },
81
84
  initial: false,
82
85
  onClick: !isFixed ? onClick : undefined,
83
- ref: titleWrapperRef
84
- }, /*#__PURE__*/_react.default.createElement(_framerMotion.LayoutGroup, null, /*#__PURE__*/_react.default.createElement(_AccordionHead.StyledMotionTitleWrapper, null, /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, {
85
- initial: false
86
+ ref: titleWrapperRef,
87
+ key: `accordionHeadContentWrapper--${uuid}`
88
+ }, /*#__PURE__*/_react.default.createElement(_framerMotion.LayoutGroup, {
89
+ key: `accordionHeadLayoutGroup--${uuid}`
90
+ }, /*#__PURE__*/_react.default.createElement(_AccordionHead.StyledMotionTitleWrapper, {
91
+ key: `accordionHeadTitleWrapperWrapper--${uuid}`
92
+ }, /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, {
93
+ initial: false,
94
+ key: `accordionHeadTitleWrapper--${uuid}`
86
95
  }, /*#__PURE__*/_react.default.createElement(_AccordionHead.StyledMotionTitle, {
87
96
  animate: {
88
97
  scale: 1
@@ -100,11 +109,13 @@ const AccordionHead = ({
100
109
  duration: 0
101
110
  }
102
111
  },
103
- key: isOpen && !isWrapped ? 'accordionHeadTitleBig' : 'accordionHeadTitle'
112
+ key: isOpen && !isWrapped ? `accordionHeadTitleBig--${uuid}` : `accordionHeadTitle--${uuid}`
104
113
  }, title))), titleElement && /*#__PURE__*/_react.default.createElement(_AccordionHead.StyledMotionTitleElementWrapper, {
105
- layout: true
114
+ layout: true,
115
+ key: `accordionTitleElement--${uuid}`
106
116
  }, titleElement))), (typeof onSearchChange === 'function' || rightElement) && /*#__PURE__*/_react.default.createElement(_AccordionHead.StyledRightWrapper, null, /*#__PURE__*/_react.default.createElement(_framerMotion.AnimatePresence, {
107
- initial: false
117
+ initial: false,
118
+ key: `accordionRightWrapper--${uuid}`
108
119
  }, typeof onSearchChange === 'function' && isOpen ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_AccordionHead.StyledMotionRightInput, {
109
120
  animate: {
110
121
  opacity: 1,
@@ -120,7 +131,7 @@ const AccordionHead = ({
120
131
  opacity: 0,
121
132
  width: 0
122
133
  },
123
- key: "rightInput",
134
+ key: `rightInput--${uuid}`,
124
135
  onChange: onSearchChange,
125
136
  placeholder: searchPlaceholder,
126
137
  type: "text",
@@ -135,7 +146,7 @@ const AccordionHead = ({
135
146
  initial: {
136
147
  opacity: 0
137
148
  },
138
- key: "rightInputIcon"
149
+ key: `rightInputIcon-${uuid}`
139
150
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
140
151
  icons: searchIcon
141
152
  }))) : /*#__PURE__*/_react.default.createElement(_AccordionHead.StyledMotionRightElementWrapper, {
@@ -148,7 +159,7 @@ const AccordionHead = ({
148
159
  initial: {
149
160
  opacity: 0
150
161
  },
151
- key: "rightElementWrapper"
162
+ key: `rightElementWrapper--${uuid}`
152
163
  }, rightElement))));
153
164
  };
154
165
  AccordionHead.displayName = 'AccordionHead';
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionHead.js","names":["_framerMotion","require","_react","_interopRequireWildcard","_styledComponents","_accordion","_Icon","_interopRequireDefault","_AccordionHead","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","AccordionHead","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchIcon","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","headHeight","setHeadHeight","useState","closed","open","theme","useTheme","titleWrapperRef","useRef","hasSearchIcon","Array","isArray","useEffect","_titleWrapperRef$curr","getAccordionHeadHeight","width","current","clientWidth","fontSize","iconElement","useMemo","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","StyledAccordionIcon","className","$icon","StyledMotionAccordionHead","animate","height","initial","StyledMotionIconWrapper","rotate","undefined","StyledMotionContentWrapper","opacity","ref","LayoutGroup","StyledMotionTitleWrapper","AnimatePresence","StyledMotionTitle","scale","exit","$isOpen","$isWrapped","transition","duration","key","StyledMotionTitleElementWrapper","layout","StyledRightWrapper","Fragment","StyledMotionRightInput","autoComplete","$hasIcon","onChange","placeholder","type","value","StyledMotionRightInputIconWrapper","StyledMotionRightElementWrapper","displayName","_default","exports"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'framer-motion';\nimport React, {\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { getAccordionHeadHeight } from '../../../utils/accordion';\nimport Icon from '../../icon/Icon';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionRightInput,\n StyledMotionRightInputIconWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\ntype AccordionHeadProps = {\n icon?: string;\n isOpen: boolean;\n isFixed: boolean;\n isTitleGreyed: boolean;\n isWrapped: boolean;\n onClick: MouseEventHandler<HTMLDivElement>;\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n rightElement?: ReactNode;\n searchIcon?: string[];\n searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n};\n\ninterface HeadHeight {\n closed: number;\n open: number;\n}\n\nconst AccordionHead: FC<AccordionHeadProps> = ({\n icon,\n isOpen,\n isFixed,\n isTitleGreyed,\n isWrapped,\n onClick,\n onSearchChange,\n rightElement,\n searchIcon,\n searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 33,\n open: isWrapped ? 40 : 33,\n });\n\n const theme = useTheme();\n\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const hasSearchIcon = Array.isArray(searchIcon);\n\n useEffect(() => {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) - 10,\n }),\n );\n // The fontSize need to be included to trigger a new calculation.\n // After the size is increased, the Title is cut at the bottom.\n }, [isWrapped, title, theme.fontSize]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon icons={[isFixed ? 'fa fa-horizontal-rule' : icon ?? 'fa fa-chevron-right']} />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n theme.accordionIcon !== 110 &&\n theme.accordionIcon !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? (theme.iconStyle as string) : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: isOpen ? headHeight.open : headHeight.closed }}\n className=\"beta-chayns-accordion-head\"\n initial={false}\n >\n <StyledMotionIconWrapper\n animate={{ rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n >\n {iconElement}\n </StyledMotionIconWrapper>\n <StyledMotionContentWrapper\n animate={{ opacity: isTitleGreyed ? 0.5 : 1 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n ref={titleWrapperRef}\n >\n <LayoutGroup>\n <StyledMotionTitleWrapper>\n <AnimatePresence initial={false}>\n <StyledMotionTitle\n animate={{ scale: 1 }}\n initial={{ scale: isOpen && !isWrapped ? 1 / 1.3 : 1.3 }}\n exit={{ opacity: 0 }}\n $isOpen={isOpen}\n $isWrapped={isWrapped}\n transition={{\n opacity: {\n duration: 0,\n },\n }}\n key={\n isOpen && !isWrapped\n ? 'accordionHeadTitleBig'\n : 'accordionHeadTitle'\n }\n >\n {title}\n </StyledMotionTitle>\n </AnimatePresence>\n </StyledMotionTitleWrapper>\n {titleElement && (\n <StyledMotionTitleElementWrapper layout>\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper>\n <AnimatePresence initial={false}>\n {typeof onSearchChange === 'function' && isOpen ? (\n <>\n <StyledMotionRightInput\n animate={{ opacity: 1, width: '165px' }}\n autoComplete=\"off\"\n exit={{ opacity: 0, width: 0 }}\n $hasIcon={hasSearchIcon}\n initial={{ opacity: 0, width: 0 }}\n key=\"rightInput\"\n onChange={onSearchChange}\n placeholder={searchPlaceholder}\n type=\"text\"\n value={searchValue}\n />\n {hasSearchIcon && (\n <StyledMotionRightInputIconWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key=\"rightInputIcon\"\n >\n <Icon icons={searchIcon} />\n </StyledMotionRightInputIconWrapper>\n )}\n </>\n ) : (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key=\"rightElementWrapper\"\n >\n {rightElement}\n </StyledMotionRightElementWrapper>\n )}\n </AnimatePresence>\n </StyledRightWrapper>\n )}\n </StyledMotionAccordionHead>\n );\n};\n\nAccordionHead.displayName = 'AccordionHead';\n\nexport default AccordionHead;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AccordionHead.js","names":["_framerMotion","require","_react","_interopRequireWildcard","_styledComponents","_accordion","_Icon","_interopRequireDefault","_AccordionHead","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","AccordionHead","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchIcon","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","uuid","headHeight","setHeadHeight","useState","closed","open","theme","useTheme","titleWrapperRef","useRef","hasSearchIcon","Array","isArray","useEffect","_titleWrapperRef$curr","getAccordionHeadHeight","width","current","clientWidth","fontSize","iconElement","useMemo","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","StyledAccordionIcon","className","$icon","StyledMotionAccordionHead","animate","height","initial","key","StyledMotionIconWrapper","rotate","undefined","StyledMotionContentWrapper","opacity","ref","LayoutGroup","StyledMotionTitleWrapper","AnimatePresence","StyledMotionTitle","scale","exit","$isOpen","$isWrapped","transition","duration","StyledMotionTitleElementWrapper","layout","StyledRightWrapper","Fragment","StyledMotionRightInput","autoComplete","$hasIcon","onChange","placeholder","type","value","StyledMotionRightInputIconWrapper","StyledMotionRightElementWrapper","displayName","_default","exports"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'framer-motion';\nimport React, {\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { getAccordionHeadHeight } from '../../../utils/accordion';\nimport Icon from '../../icon/Icon';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionRightInput,\n StyledMotionRightInputIconWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\ntype AccordionHeadProps = {\n icon?: string;\n isOpen: boolean;\n isFixed: boolean;\n isTitleGreyed: boolean;\n isWrapped: boolean;\n onClick: MouseEventHandler<HTMLDivElement>;\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n rightElement?: ReactNode;\n searchIcon?: string[];\n searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n uuid: string;\n};\n\ninterface HeadHeight {\n closed: number;\n open: number;\n}\n\nconst AccordionHead: FC<AccordionHeadProps> = ({\n icon,\n isOpen,\n isFixed,\n isTitleGreyed,\n isWrapped,\n onClick,\n onSearchChange,\n rightElement,\n searchIcon,\n searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n uuid,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 33,\n open: isWrapped ? 40 : 33,\n });\n\n const theme = useTheme();\n\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const hasSearchIcon = Array.isArray(searchIcon);\n\n useEffect(() => {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) - 10,\n }),\n );\n // The fontSize need to be included to trigger a new calculation.\n // After the size is increased, the Title is cut at the bottom.\n }, [isWrapped, title, theme.fontSize]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon icons={[isFixed ? 'fa fa-horizontal-rule' : icon ?? 'fa fa-chevron-right']} />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n theme.accordionIcon !== 110 &&\n theme.accordionIcon !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? (theme.iconStyle as string) : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: isOpen ? headHeight.open : headHeight.closed }}\n className=\"beta-chayns-accordion-head\"\n initial={false}\n key={`accordionHead--${uuid}`}\n >\n <StyledMotionIconWrapper\n animate={{ rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n key={`accordionHeadIcon--${uuid}`}\n >\n {iconElement}\n </StyledMotionIconWrapper>\n <StyledMotionContentWrapper\n animate={{ opacity: isTitleGreyed ? 0.5 : 1 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n ref={titleWrapperRef}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <StyledMotionTitleWrapper key={`accordionHeadTitleWrapperWrapper--${uuid}`}>\n <AnimatePresence initial={false} key={`accordionHeadTitleWrapper--${uuid}`}>\n <StyledMotionTitle\n animate={{ scale: 1 }}\n initial={{ scale: isOpen && !isWrapped ? 1 / 1.3 : 1.3 }}\n exit={{ opacity: 0 }}\n $isOpen={isOpen}\n $isWrapped={isWrapped}\n transition={{\n opacity: {\n duration: 0,\n },\n }}\n key={\n isOpen && !isWrapped\n ? `accordionHeadTitleBig--${uuid}`\n : `accordionHeadTitle--${uuid}`\n }\n >\n {title}\n </StyledMotionTitle>\n </AnimatePresence>\n </StyledMotionTitleWrapper>\n {titleElement && (\n <StyledMotionTitleElementWrapper\n layout\n key={`accordionTitleElement--${uuid}`}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen ? (\n <>\n <StyledMotionRightInput\n animate={{ opacity: 1, width: '165px' }}\n autoComplete=\"off\"\n exit={{ opacity: 0, width: 0 }}\n $hasIcon={hasSearchIcon}\n initial={{ opacity: 0, width: 0 }}\n key={`rightInput--${uuid}`}\n onChange={onSearchChange}\n placeholder={searchPlaceholder}\n type=\"text\"\n value={searchValue}\n />\n {hasSearchIcon && (\n <StyledMotionRightInputIconWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightInputIcon-${uuid}`}\n >\n <Icon icons={searchIcon} />\n </StyledMotionRightInputIconWrapper>\n )}\n </>\n ) : (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n >\n {rightElement}\n </StyledMotionRightElementWrapper>\n )}\n </AnimatePresence>\n </StyledRightWrapper>\n )}\n </StyledMotionAccordionHead>\n );\n};\n\nAccordionHead.displayName = 'AccordionHead';\n\nexport default AccordionHead;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandableContent.js","names":["_framerMotion","require","_react","_interopRequireWildcard","_ExpandableContent","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ExpandableContent","children","id","exit","type","initial","animate","style","duration","useMemo","createElement","AnimatePresence","StyledMotionExpandableContent","transition","key","displayName","_default","exports"],"sources":["../../../../src/components/expandable-content/ExpandableContent.tsx"],"sourcesContent":["import {\n AnimatePresence,\n type AnimationControls,\n type TargetAndTransition,\n type VariantLabels,\n} from 'framer-motion';\nimport React, { CSSProperties, FC, ReactNode, useMemo } from 'react';\nimport { StyledMotionExpandableContent } from './ExpandableContent.styles';\n\nexport type ExpandableContentProps = {\n children: ReactNode;\n style?: CSSProperties;\n duration?: number;\n animate?: boolean | AnimationControls | TargetAndTransition | VariantLabels;\n exit?: TargetAndTransition | VariantLabels;\n initial?: boolean | VariantLabels;\n id: string;\n type?: 'just' | 'inertia' | 'tween' | 'spring' | 'keyframes';\n};\n\nconst ExpandableContent: FC<ExpandableContentProps> = ({\n children,\n id,\n exit,\n type = 'tween',\n initial,\n animate,\n style,\n duration = 0.2,\n}) =>\n useMemo(\n () => (\n <AnimatePresence initial={false}>\n <StyledMotionExpandableContent\n animate={animate}\n initial={initial}\n exit={exit}\n transition={{ duration, type }}\n key={id}\n style={{ ...style }}\n >\n {children}\n </StyledMotionExpandableContent>\n </AnimatePresence>\n ),\n [animate, children, duration, exit, id, initial, style, type],\n );\n\nExpandableContent.displayName = 'ExpandableContent';\n\nexport default ExpandableContent;\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAMA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAA2E,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAa3E,MAAMW,iBAA6C,GAAGA,CAAC;EACnDC,QAAQ;EACRC,EAAE;EACFC,IAAI;EACJC,IAAI,GAAG,OAAO;EACdC,OAAO;EACPC,OAAO;EACPC,KAAK;EACLC,QAAQ,GAAG;AACf,CAAC,KACG,IAAAC,cAAO,EACH,mBACIhC,MAAA,CAAAS,OAAA,CAAAwB,aAAA,CAACnC,aAAA,CAAAoC,eAAe;EAACN,OAAO,EAAE;AAAM,gBAC5B5B,MAAA,CAAAS,OAAA,CAAAwB,aAAA,CAAC/B,kBAAA,CAAAiC,6BAA6B;EAC1BN,OAAO,EAAEA,OAAQ;EACjBD,OAAO,EAAEA,OAAQ;EACjBF,IAAI,EAAEA,IAAK;EACXU,UAAU,EAAE;IAAEL,QAAQ;IAAEJ;EAAK,CAAE;EAC/BU,GAAG,EAAEZ,EAAG;EACRK,KAAK,EAAE;IAAE,GAAGA;EAAM;AAAE,GAEnBN,QAC0B,CAClB,CACpB,EACD,CAACK,OAAO,EAAEL,QAAQ,EAAEO,QAAQ,EAAEL,IAAI,EAAED,EAAE,EAAEG,OAAO,EAAEE,KAAK,EAAEH,IAAI,CAChE,CAAC;AAELJ,iBAAiB,CAACe,WAAW,GAAG,mBAAmB;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA/B,OAAA,GAErCc,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"ExpandableContent.js","names":["_framerMotion","require","_react","_interopRequireWildcard","_ExpandableContent","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ExpandableContent","children","id","exit","type","initial","animate","style","duration","useMemo","createElement","AnimatePresence","StyledMotionExpandableContent","transition","key","displayName","_default","exports"],"sources":["../../../../src/components/expandable-content/ExpandableContent.tsx"],"sourcesContent":["import {\n AnimatePresence,\n type AnimationControls,\n type TargetAndTransition,\n type VariantLabels,\n} from 'framer-motion';\nimport React, { CSSProperties, FC, ReactNode, useMemo } from 'react';\nimport { StyledMotionExpandableContent } from './ExpandableContent.styles';\n\nexport type ExpandableContentProps = {\n /**\n * The styles that should be animated.\n */\n animate?: boolean | AnimationControls | TargetAndTransition | VariantLabels;\n /**\n * The children that should be animated.\n */\n children: ReactNode;\n /**\n * How long the animation last.\n */\n duration?: number;\n /**\n * the exit animation.\n */\n exit?: TargetAndTransition | VariantLabels;\n /**\n * the id of the element.\n */\n id: string;\n /**\n * the initial animation.\n */\n initial?: boolean | VariantLabels;\n /**\n * The style of the wrapper.\n */\n style?: CSSProperties;\n /**\n * The type of the animation.\n */\n type?: 'just' | 'inertia' | 'tween' | 'spring' | 'keyframes';\n};\n\nconst ExpandableContent: FC<ExpandableContentProps> = ({\n children,\n id,\n exit,\n type = 'tween',\n initial,\n animate,\n style,\n duration = 0.2,\n}) =>\n useMemo(\n () => (\n <AnimatePresence initial={false}>\n <StyledMotionExpandableContent\n animate={animate}\n initial={initial}\n exit={exit}\n transition={{ duration, type }}\n key={id}\n style={{ ...style }}\n >\n {children}\n </StyledMotionExpandableContent>\n </AnimatePresence>\n ),\n [animate, children, duration, exit, id, initial, style, type],\n );\n\nExpandableContent.displayName = 'ExpandableContent';\n\nexport default ExpandableContent;\n"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAMA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAA2E,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAqC3E,MAAMW,iBAA6C,GAAGA,CAAC;EACnDC,QAAQ;EACRC,EAAE;EACFC,IAAI;EACJC,IAAI,GAAG,OAAO;EACdC,OAAO;EACPC,OAAO;EACPC,KAAK;EACLC,QAAQ,GAAG;AACf,CAAC,KACG,IAAAC,cAAO,EACH,mBACIhC,MAAA,CAAAS,OAAA,CAAAwB,aAAA,CAACnC,aAAA,CAAAoC,eAAe;EAACN,OAAO,EAAE;AAAM,gBAC5B5B,MAAA,CAAAS,OAAA,CAAAwB,aAAA,CAAC/B,kBAAA,CAAAiC,6BAA6B;EAC1BN,OAAO,EAAEA,OAAQ;EACjBD,OAAO,EAAEA,OAAQ;EACjBF,IAAI,EAAEA,IAAK;EACXU,UAAU,EAAE;IAAEL,QAAQ;IAAEJ;EAAK,CAAE;EAC/BU,GAAG,EAAEZ,EAAG;EACRK,KAAK,EAAE;IAAE,GAAGA;EAAM;AAAE,GAEnBN,QAC0B,CAClB,CACpB,EACD,CAACK,OAAO,EAAEL,QAAQ,EAAEO,QAAQ,EAAEL,IAAI,EAAED,EAAE,EAAEG,OAAO,EAAEE,KAAK,EAAEH,IAAI,CAChE,CAAC;AAELJ,iBAAiB,CAACe,WAAW,GAAG,mBAAmB;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA/B,OAAA,GAErCc,iBAAiB","ignoreList":[]}
@@ -120,6 +120,7 @@ const Accordion = _ref => {
120
120
  type: 'tween'
121
121
  }
122
122
  }, /*#__PURE__*/React.createElement(AccordionHead, {
123
+ uuid: uuid,
123
124
  icon: icon,
124
125
  isOpen: isOpen,
125
126
  isFixed: isFixed,
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","names":["AnimatePresence","MotionConfig","React","useCallback","useContext","useEffect","useMemo","useRef","useState","useUuid","AreaContext","AccordionBody","AccordionGroupContext","AccordionHead","StyledAccordion","AccordionContext","createContext","isWrapped","Accordion","_ref","bodyMaxHeight","children","icon","isDefaultOpen","isDisabled","isFixed","isOpened","isTitleGreyed","onBodyScroll","onClose","onOpen","onSearchChange","rightElement","searchIcon","searchPlaceholder","searchValue","shouldForceBackground","shouldHideBackground","shouldRenderClosed","shouldRotateIcon","title","titleElement","openAccordionUuid","updateOpenAccordionUuid","isParentWrapped","isAccordionOpen","setIsAccordionOpen","uuid","isInitialRenderRef","isInGroup","isOpen","isOpenRef","onCloseRef","onOpenRef","current","handleHeadClick","currentIsAccordionOpen","shouldOnlyOpen","accordionContextProviderValue","createElement","className","$isOpen","$isParentWrapped","$isWrapped","$shouldForceBackground","$shouldHideBackground","Provider","value","transition","type","onClick","initial","maxHeight","onScroll","shouldHideBody","shouldChangeColor","displayName"],"sources":["../../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'framer-motion';\nimport React, {\n ChangeEventHandler,\n FC,\n ReactNode,\n UIEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport AccordionBody from './accordion-body/AccordionBody';\nimport { AccordionGroupContext } from './accordion-group/AccordionGroup';\nimport AccordionHead from './accordion-head/AccordionHead';\nimport { StyledAccordion } from './Accordion.styles';\n\nexport const AccordionContext = React.createContext({ isWrapped: false });\n\nexport type AccordionProps = {\n /**\n * Maximum height of the accordion body element. This automatically makes the content of the\n * body element scrollable.\n */\n bodyMaxHeight?: number;\n /**\n * The content of the accordion body\n */\n children: ReactNode;\n /**\n * The icon that is displayed in front of the title\n */\n icon?: string;\n /**\n * This can be used to automatically expand the Accordion during the first render.\n */\n isDefaultOpen?: boolean;\n /**\n * This will disable the Accordion so that it cannot be opened and will gray out the title. Does not work with isOpened.\n */\n isDisabled?: boolean;\n /**\n * This can be used so that the Accordion cannot be opened or closed.\n * In addition, in this case the icon is exchanged to mark the Accordions.\n */\n isFixed?: boolean;\n /**\n * This can be used to open the Accordion from the outside.\n */\n isOpened?: boolean;\n /**\n * This will gray out the title of the Accordion to indicate hidden content, for example.\n */\n isTitleGreyed?: boolean;\n /**\n * Function that is executed when the accordion body will be scrolled\n */\n onBodyScroll?: (event: UIEvent<HTMLDivElement>) => void;\n /**\n * Function that is executed when the accordion will be closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when the accordion will be opened.\n */\n onOpen?: VoidFunction;\n /**\n * Function that is executed when the text of the search in the accordion\n * head changes. When this function is given, the search field is displayed\n * in the Accordion Head.\n */\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Content to be displayed on the right side in the head of the Accordion\n */\n rightElement?: ReactNode;\n /**\n * Icon to be displayed on the right side in the search input\n */\n searchIcon?: string[];\n /**\n * The placeholder to be used for the search\n */\n searchPlaceholder?: string;\n /**\n * The value that is displayed inside the search\n */\n searchValue?: string;\n /**\n * This will force the background color of the accordion to be used even if it is closed and not hovered.\n */\n shouldForceBackground?: boolean;\n /**\n * This will hide the background color of the accordion\n */\n shouldHideBackground?: boolean;\n /**\n * This will render the Accordion closed on the first render.\n */\n shouldRenderClosed?: boolean;\n /**\n * Whether the icon should be rotating.\n */\n shouldRotateIcon?: boolean;\n /**\n * Title of the Accordion displayed in the head\n */\n title: string;\n /**\n * Additional elements to be displayed in the header next to the title.\n */\n titleElement?: ReactNode;\n};\n\nconst Accordion: FC<AccordionProps> = ({\n bodyMaxHeight,\n children,\n icon,\n isDefaultOpen = false,\n isDisabled = false,\n isFixed = false,\n isOpened,\n isTitleGreyed = false,\n onBodyScroll,\n onClose,\n onOpen,\n onSearchChange,\n rightElement,\n searchIcon,\n searchPlaceholder,\n searchValue,\n shouldForceBackground = false,\n shouldHideBackground = false,\n shouldRenderClosed = false,\n shouldRotateIcon = true,\n title,\n titleElement,\n}) => {\n const { isWrapped, openAccordionUuid, updateOpenAccordionUuid } =\n useContext(AccordionGroupContext);\n const { isWrapped: isParentWrapped } = useContext(AccordionContext);\n\n const [isAccordionOpen, setIsAccordionOpen] = useState<boolean>(isDefaultOpen ?? isOpened);\n\n const uuid = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const isInGroup = typeof updateOpenAccordionUuid === 'function';\n\n const isOpen = isInGroup ? openAccordionUuid === uuid : isAccordionOpen;\n\n const isOpenRef = useRef(isOpen);\n const onCloseRef = useRef(onClose);\n const onOpenRef = useRef(onOpen);\n\n useEffect(() => {\n isOpenRef.current = isOpen;\n onCloseRef.current = onClose;\n onOpenRef.current = onOpen;\n }, [isOpen, onClose, onOpen]);\n\n const handleHeadClick = useCallback(() => {\n if (isDisabled) {\n return;\n }\n\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }, [isDisabled, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isDisabled && isOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }\n }, [isDisabled, isOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (isOpen) {\n if (typeof onOpenRef.current === 'function') {\n onOpenRef.current();\n }\n } else if (typeof onCloseRef.current === 'function') {\n onCloseRef.current();\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (isDefaultOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid, { shouldOnlyOpen: true });\n } else {\n setIsAccordionOpen(true);\n }\n }\n }, [isDefaultOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (typeof isOpened === 'boolean') {\n if (typeof updateOpenAccordionUuid === 'function' && isOpened !== isOpenRef.current) {\n updateOpenAccordionUuid(uuid);\n } else {\n setIsAccordionOpen(isOpened);\n }\n }\n }, [isOpened, updateOpenAccordionUuid, uuid]);\n\n const accordionContextProviderValue = useMemo(\n () => ({ isWrapped: isWrapped === true }),\n [isWrapped],\n );\n\n return (\n <StyledAccordion\n className=\"beta-chayns-accordion\"\n $isOpen={isOpen}\n $isParentWrapped={isParentWrapped}\n $isWrapped={isWrapped}\n $shouldForceBackground={shouldForceBackground}\n $shouldHideBackground={shouldHideBackground}\n >\n <AccordionContext.Provider value={accordionContextProviderValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AccordionHead\n icon={icon}\n isOpen={isOpen}\n isFixed={isFixed}\n isTitleGreyed={isTitleGreyed || isDisabled}\n isWrapped={isWrapped === true}\n onClick={handleHeadClick}\n onSearchChange={onSearchChange}\n rightElement={rightElement}\n searchIcon={searchIcon}\n searchPlaceholder={searchPlaceholder}\n searchValue={searchValue}\n shouldRotateIcon={shouldRotateIcon}\n title={title}\n titleElement={titleElement}\n />\n <AnimatePresence initial={false}>\n {(isOpen || shouldRenderClosed) && (\n <AccordionBody\n maxHeight={bodyMaxHeight}\n onScroll={onBodyScroll}\n shouldHideBody={shouldRenderClosed && !isOpen}\n >\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n {children}\n </AreaContext.Provider>\n </AccordionBody>\n )}\n </AnimatePresence>\n </MotionConfig>\n </AccordionContext.Provider>\n </StyledAccordion>\n );\n};\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Accordion.js","names":["AnimatePresence","MotionConfig","React","useCallback","useContext","useEffect","useMemo","useRef","useState","useUuid","AreaContext","AccordionBody","AccordionGroupContext","AccordionHead","StyledAccordion","AccordionContext","createContext","isWrapped","Accordion","_ref","bodyMaxHeight","children","icon","isDefaultOpen","isDisabled","isFixed","isOpened","isTitleGreyed","onBodyScroll","onClose","onOpen","onSearchChange","rightElement","searchIcon","searchPlaceholder","searchValue","shouldForceBackground","shouldHideBackground","shouldRenderClosed","shouldRotateIcon","title","titleElement","openAccordionUuid","updateOpenAccordionUuid","isParentWrapped","isAccordionOpen","setIsAccordionOpen","uuid","isInitialRenderRef","isInGroup","isOpen","isOpenRef","onCloseRef","onOpenRef","current","handleHeadClick","currentIsAccordionOpen","shouldOnlyOpen","accordionContextProviderValue","createElement","className","$isOpen","$isParentWrapped","$isWrapped","$shouldForceBackground","$shouldHideBackground","Provider","value","transition","type","onClick","initial","maxHeight","onScroll","shouldHideBody","shouldChangeColor","displayName"],"sources":["../../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'framer-motion';\nimport React, {\n ChangeEventHandler,\n FC,\n ReactNode,\n UIEvent,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useUuid } from '../../hooks/uuid';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport AccordionBody from './accordion-body/AccordionBody';\nimport { AccordionGroupContext } from './accordion-group/AccordionGroup';\nimport AccordionHead from './accordion-head/AccordionHead';\nimport { StyledAccordion } from './Accordion.styles';\n\nexport const AccordionContext = React.createContext({ isWrapped: false });\n\nexport type AccordionProps = {\n /**\n * Maximum height of the accordion body element. This automatically makes the content of the\n * body element scrollable.\n */\n bodyMaxHeight?: number;\n /**\n * The content of the accordion body\n */\n children: ReactNode;\n /**\n * The icon that is displayed in front of the title\n */\n icon?: string;\n /**\n * This can be used to automatically expand the Accordion during the first render.\n */\n isDefaultOpen?: boolean;\n /**\n * This will disable the Accordion so that it cannot be opened and will gray out the title. Does not work with isOpened.\n */\n isDisabled?: boolean;\n /**\n * This can be used so that the Accordion cannot be opened or closed.\n * In addition, in this case the icon is exchanged to mark the Accordions.\n */\n isFixed?: boolean;\n /**\n * This can be used to open the Accordion from the outside.\n */\n isOpened?: boolean;\n /**\n * This will gray out the title of the Accordion to indicate hidden content, for example.\n */\n isTitleGreyed?: boolean;\n /**\n * Function that is executed when the accordion body will be scrolled\n */\n onBodyScroll?: (event: UIEvent<HTMLDivElement>) => void;\n /**\n * Function that is executed when the accordion will be closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when the accordion will be opened.\n */\n onOpen?: VoidFunction;\n /**\n * Function that is executed when the text of the search in the accordion\n * head changes. When this function is given, the search field is displayed\n * in the Accordion Head.\n */\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Content to be displayed on the right side in the head of the Accordion\n */\n rightElement?: ReactNode;\n /**\n * Icon to be displayed on the right side in the search input\n */\n searchIcon?: string[];\n /**\n * The placeholder to be used for the search\n */\n searchPlaceholder?: string;\n /**\n * The value that is displayed inside the search\n */\n searchValue?: string;\n /**\n * This will force the background color of the accordion to be used even if it is closed and not hovered.\n */\n shouldForceBackground?: boolean;\n /**\n * This will hide the background color of the accordion\n */\n shouldHideBackground?: boolean;\n /**\n * This will render the Accordion closed on the first render.\n */\n shouldRenderClosed?: boolean;\n /**\n * Whether the icon should be rotating.\n */\n shouldRotateIcon?: boolean;\n /**\n * Title of the Accordion displayed in the head\n */\n title: string;\n /**\n * Additional elements to be displayed in the header next to the title.\n */\n titleElement?: ReactNode;\n};\n\nconst Accordion: FC<AccordionProps> = ({\n bodyMaxHeight,\n children,\n icon,\n isDefaultOpen = false,\n isDisabled = false,\n isFixed = false,\n isOpened,\n isTitleGreyed = false,\n onBodyScroll,\n onClose,\n onOpen,\n onSearchChange,\n rightElement,\n searchIcon,\n searchPlaceholder,\n searchValue,\n shouldForceBackground = false,\n shouldHideBackground = false,\n shouldRenderClosed = false,\n shouldRotateIcon = true,\n title,\n titleElement,\n}) => {\n const { isWrapped, openAccordionUuid, updateOpenAccordionUuid } =\n useContext(AccordionGroupContext);\n const { isWrapped: isParentWrapped } = useContext(AccordionContext);\n\n const [isAccordionOpen, setIsAccordionOpen] = useState<boolean>(isDefaultOpen ?? isOpened);\n\n const uuid = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const isInGroup = typeof updateOpenAccordionUuid === 'function';\n\n const isOpen = isInGroup ? openAccordionUuid === uuid : isAccordionOpen;\n\n const isOpenRef = useRef(isOpen);\n const onCloseRef = useRef(onClose);\n const onOpenRef = useRef(onOpen);\n\n useEffect(() => {\n isOpenRef.current = isOpen;\n onCloseRef.current = onClose;\n onOpenRef.current = onOpen;\n }, [isOpen, onClose, onOpen]);\n\n const handleHeadClick = useCallback(() => {\n if (isDisabled) {\n return;\n }\n\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }, [isDisabled, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isDisabled && isOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid);\n }\n\n setIsAccordionOpen((currentIsAccordionOpen) => !currentIsAccordionOpen);\n }\n }, [isDisabled, isOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (isOpen) {\n if (typeof onOpenRef.current === 'function') {\n onOpenRef.current();\n }\n } else if (typeof onCloseRef.current === 'function') {\n onCloseRef.current();\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (isDefaultOpen) {\n if (typeof updateOpenAccordionUuid === 'function') {\n updateOpenAccordionUuid(uuid, { shouldOnlyOpen: true });\n } else {\n setIsAccordionOpen(true);\n }\n }\n }, [isDefaultOpen, updateOpenAccordionUuid, uuid]);\n\n useEffect(() => {\n if (typeof isOpened === 'boolean') {\n if (typeof updateOpenAccordionUuid === 'function' && isOpened !== isOpenRef.current) {\n updateOpenAccordionUuid(uuid);\n } else {\n setIsAccordionOpen(isOpened);\n }\n }\n }, [isOpened, updateOpenAccordionUuid, uuid]);\n\n const accordionContextProviderValue = useMemo(\n () => ({ isWrapped: isWrapped === true }),\n [isWrapped],\n );\n\n return (\n <StyledAccordion\n className=\"beta-chayns-accordion\"\n $isOpen={isOpen}\n $isParentWrapped={isParentWrapped}\n $isWrapped={isWrapped}\n $shouldForceBackground={shouldForceBackground}\n $shouldHideBackground={shouldHideBackground}\n >\n <AccordionContext.Provider value={accordionContextProviderValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AccordionHead\n uuid={uuid}\n icon={icon}\n isOpen={isOpen}\n isFixed={isFixed}\n isTitleGreyed={isTitleGreyed || isDisabled}\n isWrapped={isWrapped === true}\n onClick={handleHeadClick}\n onSearchChange={onSearchChange}\n rightElement={rightElement}\n searchIcon={searchIcon}\n searchPlaceholder={searchPlaceholder}\n searchValue={searchValue}\n shouldRotateIcon={shouldRotateIcon}\n title={title}\n titleElement={titleElement}\n />\n <AnimatePresence initial={false}>\n {(isOpen || shouldRenderClosed) && (\n <AccordionBody\n maxHeight={bodyMaxHeight}\n onScroll={onBodyScroll}\n shouldHideBody={shouldRenderClosed && !isOpen}\n >\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n {children}\n </AreaContext.Provider>\n </AccordionBody>\n )}\n </AnimatePresence>\n </MotionConfig>\n </AccordionContext.Provider>\n </StyledAccordion>\n );\n};\n\nAccordion.displayName = 'Accordion';\n\nexport default Accordion;\n"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,8 @@ const AccordionHead = _ref => {
19
19
  searchValue,
20
20
  shouldRotateIcon,
21
21
  title,
22
- titleElement
22
+ titleElement,
23
+ uuid
23
24
  } = _ref;
24
25
  const [headHeight, setHeadHeight] = useState({
25
26
  closed: isWrapped ? 40 : 33,
@@ -58,22 +59,30 @@ const AccordionHead = _ref => {
58
59
  height: isOpen ? headHeight.open : headHeight.closed
59
60
  },
60
61
  className: "beta-chayns-accordion-head",
61
- initial: false
62
+ initial: false,
63
+ key: `accordionHead--${uuid}`
62
64
  }, /*#__PURE__*/React.createElement(StyledMotionIconWrapper, {
63
65
  animate: {
64
66
  rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0
65
67
  },
66
68
  initial: false,
67
- onClick: !isFixed ? onClick : undefined
69
+ onClick: !isFixed ? onClick : undefined,
70
+ key: `accordionHeadIcon--${uuid}`
68
71
  }, iconElement), /*#__PURE__*/React.createElement(StyledMotionContentWrapper, {
69
72
  animate: {
70
73
  opacity: isTitleGreyed ? 0.5 : 1
71
74
  },
72
75
  initial: false,
73
76
  onClick: !isFixed ? onClick : undefined,
74
- ref: titleWrapperRef
75
- }, /*#__PURE__*/React.createElement(LayoutGroup, null, /*#__PURE__*/React.createElement(StyledMotionTitleWrapper, null, /*#__PURE__*/React.createElement(AnimatePresence, {
76
- initial: false
77
+ ref: titleWrapperRef,
78
+ key: `accordionHeadContentWrapper--${uuid}`
79
+ }, /*#__PURE__*/React.createElement(LayoutGroup, {
80
+ key: `accordionHeadLayoutGroup--${uuid}`
81
+ }, /*#__PURE__*/React.createElement(StyledMotionTitleWrapper, {
82
+ key: `accordionHeadTitleWrapperWrapper--${uuid}`
83
+ }, /*#__PURE__*/React.createElement(AnimatePresence, {
84
+ initial: false,
85
+ key: `accordionHeadTitleWrapper--${uuid}`
77
86
  }, /*#__PURE__*/React.createElement(StyledMotionTitle, {
78
87
  animate: {
79
88
  scale: 1
@@ -91,11 +100,13 @@ const AccordionHead = _ref => {
91
100
  duration: 0
92
101
  }
93
102
  },
94
- key: isOpen && !isWrapped ? 'accordionHeadTitleBig' : 'accordionHeadTitle'
103
+ key: isOpen && !isWrapped ? `accordionHeadTitleBig--${uuid}` : `accordionHeadTitle--${uuid}`
95
104
  }, title))), titleElement && /*#__PURE__*/React.createElement(StyledMotionTitleElementWrapper, {
96
- layout: true
105
+ layout: true,
106
+ key: `accordionTitleElement--${uuid}`
97
107
  }, titleElement))), (typeof onSearchChange === 'function' || rightElement) && /*#__PURE__*/React.createElement(StyledRightWrapper, null, /*#__PURE__*/React.createElement(AnimatePresence, {
98
- initial: false
108
+ initial: false,
109
+ key: `accordionRightWrapper--${uuid}`
99
110
  }, typeof onSearchChange === 'function' && isOpen ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledMotionRightInput, {
100
111
  animate: {
101
112
  opacity: 1,
@@ -111,7 +122,7 @@ const AccordionHead = _ref => {
111
122
  opacity: 0,
112
123
  width: 0
113
124
  },
114
- key: "rightInput",
125
+ key: `rightInput--${uuid}`,
115
126
  onChange: onSearchChange,
116
127
  placeholder: searchPlaceholder,
117
128
  type: "text",
@@ -126,7 +137,7 @@ const AccordionHead = _ref => {
126
137
  initial: {
127
138
  opacity: 0
128
139
  },
129
- key: "rightInputIcon"
140
+ key: `rightInputIcon-${uuid}`
130
141
  }, /*#__PURE__*/React.createElement(Icon, {
131
142
  icons: searchIcon
132
143
  }))) : /*#__PURE__*/React.createElement(StyledMotionRightElementWrapper, {
@@ -139,7 +150,7 @@ const AccordionHead = _ref => {
139
150
  initial: {
140
151
  opacity: 0
141
152
  },
142
- key: "rightElementWrapper"
153
+ key: `rightElementWrapper--${uuid}`
143
154
  }, rightElement))));
144
155
  };
145
156
  AccordionHead.displayName = 'AccordionHead';
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionHead.js","names":["AnimatePresence","LayoutGroup","React","useEffect","useMemo","useRef","useState","useTheme","getAccordionHeadHeight","Icon","StyledAccordionIcon","StyledMotionAccordionHead","StyledMotionContentWrapper","StyledMotionIconWrapper","StyledMotionRightElementWrapper","StyledMotionRightInput","StyledMotionRightInputIconWrapper","StyledMotionTitle","StyledMotionTitleElementWrapper","StyledMotionTitleWrapper","StyledRightWrapper","AccordionHead","_ref","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchIcon","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","headHeight","setHeadHeight","closed","open","theme","titleWrapperRef","hasSearchIcon","Array","isArray","width","current","clientWidth","fontSize","iconElement","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","className","$icon","animate","height","initial","rotate","undefined","opacity","ref","scale","exit","$isOpen","$isWrapped","transition","duration","key","layout","Fragment","autoComplete","$hasIcon","onChange","placeholder","type","value","displayName"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'framer-motion';\nimport React, {\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { getAccordionHeadHeight } from '../../../utils/accordion';\nimport Icon from '../../icon/Icon';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionRightInput,\n StyledMotionRightInputIconWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\ntype AccordionHeadProps = {\n icon?: string;\n isOpen: boolean;\n isFixed: boolean;\n isTitleGreyed: boolean;\n isWrapped: boolean;\n onClick: MouseEventHandler<HTMLDivElement>;\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n rightElement?: ReactNode;\n searchIcon?: string[];\n searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n};\n\ninterface HeadHeight {\n closed: number;\n open: number;\n}\n\nconst AccordionHead: FC<AccordionHeadProps> = ({\n icon,\n isOpen,\n isFixed,\n isTitleGreyed,\n isWrapped,\n onClick,\n onSearchChange,\n rightElement,\n searchIcon,\n searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 33,\n open: isWrapped ? 40 : 33,\n });\n\n const theme = useTheme();\n\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const hasSearchIcon = Array.isArray(searchIcon);\n\n useEffect(() => {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) - 10,\n }),\n );\n // The fontSize need to be included to trigger a new calculation.\n // After the size is increased, the Title is cut at the bottom.\n }, [isWrapped, title, theme.fontSize]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon icons={[isFixed ? 'fa fa-horizontal-rule' : icon ?? 'fa fa-chevron-right']} />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n theme.accordionIcon !== 110 &&\n theme.accordionIcon !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? (theme.iconStyle as string) : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: isOpen ? headHeight.open : headHeight.closed }}\n className=\"beta-chayns-accordion-head\"\n initial={false}\n >\n <StyledMotionIconWrapper\n animate={{ rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n >\n {iconElement}\n </StyledMotionIconWrapper>\n <StyledMotionContentWrapper\n animate={{ opacity: isTitleGreyed ? 0.5 : 1 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n ref={titleWrapperRef}\n >\n <LayoutGroup>\n <StyledMotionTitleWrapper>\n <AnimatePresence initial={false}>\n <StyledMotionTitle\n animate={{ scale: 1 }}\n initial={{ scale: isOpen && !isWrapped ? 1 / 1.3 : 1.3 }}\n exit={{ opacity: 0 }}\n $isOpen={isOpen}\n $isWrapped={isWrapped}\n transition={{\n opacity: {\n duration: 0,\n },\n }}\n key={\n isOpen && !isWrapped\n ? 'accordionHeadTitleBig'\n : 'accordionHeadTitle'\n }\n >\n {title}\n </StyledMotionTitle>\n </AnimatePresence>\n </StyledMotionTitleWrapper>\n {titleElement && (\n <StyledMotionTitleElementWrapper layout>\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper>\n <AnimatePresence initial={false}>\n {typeof onSearchChange === 'function' && isOpen ? (\n <>\n <StyledMotionRightInput\n animate={{ opacity: 1, width: '165px' }}\n autoComplete=\"off\"\n exit={{ opacity: 0, width: 0 }}\n $hasIcon={hasSearchIcon}\n initial={{ opacity: 0, width: 0 }}\n key=\"rightInput\"\n onChange={onSearchChange}\n placeholder={searchPlaceholder}\n type=\"text\"\n value={searchValue}\n />\n {hasSearchIcon && (\n <StyledMotionRightInputIconWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key=\"rightInputIcon\"\n >\n <Icon icons={searchIcon} />\n </StyledMotionRightInputIconWrapper>\n )}\n </>\n ) : (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key=\"rightElementWrapper\"\n >\n {rightElement}\n </StyledMotionRightElementWrapper>\n )}\n </AnimatePresence>\n </StyledRightWrapper>\n )}\n </StyledMotionAccordionHead>\n );\n};\n\nAccordionHead.displayName = 'AccordionHead';\n\nexport default AccordionHead;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AccordionHead.js","names":["AnimatePresence","LayoutGroup","React","useEffect","useMemo","useRef","useState","useTheme","getAccordionHeadHeight","Icon","StyledAccordionIcon","StyledMotionAccordionHead","StyledMotionContentWrapper","StyledMotionIconWrapper","StyledMotionRightElementWrapper","StyledMotionRightInput","StyledMotionRightInputIconWrapper","StyledMotionTitle","StyledMotionTitleElementWrapper","StyledMotionTitleWrapper","StyledRightWrapper","AccordionHead","_ref","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchIcon","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","uuid","headHeight","setHeadHeight","closed","open","theme","titleWrapperRef","hasSearchIcon","Array","isArray","width","current","clientWidth","fontSize","iconElement","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","className","$icon","animate","height","initial","key","rotate","undefined","opacity","ref","scale","exit","$isOpen","$isWrapped","transition","duration","layout","Fragment","autoComplete","$hasIcon","onChange","placeholder","type","value","displayName"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'framer-motion';\nimport React, {\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { getAccordionHeadHeight } from '../../../utils/accordion';\nimport Icon from '../../icon/Icon';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionRightInput,\n StyledMotionRightInputIconWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\ntype AccordionHeadProps = {\n icon?: string;\n isOpen: boolean;\n isFixed: boolean;\n isTitleGreyed: boolean;\n isWrapped: boolean;\n onClick: MouseEventHandler<HTMLDivElement>;\n onSearchChange?: ChangeEventHandler<HTMLInputElement>;\n rightElement?: ReactNode;\n searchIcon?: string[];\n searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n uuid: string;\n};\n\ninterface HeadHeight {\n closed: number;\n open: number;\n}\n\nconst AccordionHead: FC<AccordionHeadProps> = ({\n icon,\n isOpen,\n isFixed,\n isTitleGreyed,\n isWrapped,\n onClick,\n onSearchChange,\n rightElement,\n searchIcon,\n searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n uuid,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 33,\n open: isWrapped ? 40 : 33,\n });\n\n const theme = useTheme();\n\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const hasSearchIcon = Array.isArray(searchIcon);\n\n useEffect(() => {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) - 10,\n }),\n );\n // The fontSize need to be included to trigger a new calculation.\n // After the size is increased, the Title is cut at the bottom.\n }, [isWrapped, title, theme.fontSize]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon icons={[isFixed ? 'fa fa-horizontal-rule' : icon ?? 'fa fa-chevron-right']} />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n theme.accordionIcon !== 110 &&\n theme.accordionIcon !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? (theme.iconStyle as string) : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: isOpen ? headHeight.open : headHeight.closed }}\n className=\"beta-chayns-accordion-head\"\n initial={false}\n key={`accordionHead--${uuid}`}\n >\n <StyledMotionIconWrapper\n animate={{ rotate: (isOpen || isFixed) && shouldRotateIcon ? 90 : 0 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n key={`accordionHeadIcon--${uuid}`}\n >\n {iconElement}\n </StyledMotionIconWrapper>\n <StyledMotionContentWrapper\n animate={{ opacity: isTitleGreyed ? 0.5 : 1 }}\n initial={false}\n onClick={!isFixed ? onClick : undefined}\n ref={titleWrapperRef}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <StyledMotionTitleWrapper key={`accordionHeadTitleWrapperWrapper--${uuid}`}>\n <AnimatePresence initial={false} key={`accordionHeadTitleWrapper--${uuid}`}>\n <StyledMotionTitle\n animate={{ scale: 1 }}\n initial={{ scale: isOpen && !isWrapped ? 1 / 1.3 : 1.3 }}\n exit={{ opacity: 0 }}\n $isOpen={isOpen}\n $isWrapped={isWrapped}\n transition={{\n opacity: {\n duration: 0,\n },\n }}\n key={\n isOpen && !isWrapped\n ? `accordionHeadTitleBig--${uuid}`\n : `accordionHeadTitle--${uuid}`\n }\n >\n {title}\n </StyledMotionTitle>\n </AnimatePresence>\n </StyledMotionTitleWrapper>\n {titleElement && (\n <StyledMotionTitleElementWrapper\n layout\n key={`accordionTitleElement--${uuid}`}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen ? (\n <>\n <StyledMotionRightInput\n animate={{ opacity: 1, width: '165px' }}\n autoComplete=\"off\"\n exit={{ opacity: 0, width: 0 }}\n $hasIcon={hasSearchIcon}\n initial={{ opacity: 0, width: 0 }}\n key={`rightInput--${uuid}`}\n onChange={onSearchChange}\n placeholder={searchPlaceholder}\n type=\"text\"\n value={searchValue}\n />\n {hasSearchIcon && (\n <StyledMotionRightInputIconWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightInputIcon-${uuid}`}\n >\n <Icon icons={searchIcon} />\n </StyledMotionRightInputIconWrapper>\n )}\n </>\n ) : (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n >\n {rightElement}\n </StyledMotionRightElementWrapper>\n )}\n </AnimatePresence>\n </StyledRightWrapper>\n )}\n </StyledMotionAccordionHead>\n );\n};\n\nAccordionHead.displayName = 'AccordionHead';\n\nexport default AccordionHead;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandableContent.js","names":["AnimatePresence","React","useMemo","StyledMotionExpandableContent","ExpandableContent","_ref","children","id","exit","type","initial","animate","style","duration","createElement","transition","key","displayName"],"sources":["../../../../src/components/expandable-content/ExpandableContent.tsx"],"sourcesContent":["import {\n AnimatePresence,\n type AnimationControls,\n type TargetAndTransition,\n type VariantLabels,\n} from 'framer-motion';\nimport React, { CSSProperties, FC, ReactNode, useMemo } from 'react';\nimport { StyledMotionExpandableContent } from './ExpandableContent.styles';\n\nexport type ExpandableContentProps = {\n children: ReactNode;\n style?: CSSProperties;\n duration?: number;\n animate?: boolean | AnimationControls | TargetAndTransition | VariantLabels;\n exit?: TargetAndTransition | VariantLabels;\n initial?: boolean | VariantLabels;\n id: string;\n type?: 'just' | 'inertia' | 'tween' | 'spring' | 'keyframes';\n};\n\nconst ExpandableContent: FC<ExpandableContentProps> = ({\n children,\n id,\n exit,\n type = 'tween',\n initial,\n animate,\n style,\n duration = 0.2,\n}) =>\n useMemo(\n () => (\n <AnimatePresence initial={false}>\n <StyledMotionExpandableContent\n animate={animate}\n initial={initial}\n exit={exit}\n transition={{ duration, type }}\n key={id}\n style={{ ...style }}\n >\n {children}\n </StyledMotionExpandableContent>\n </AnimatePresence>\n ),\n [animate, children, duration, exit, id, initial, style, type],\n );\n\nExpandableContent.displayName = 'ExpandableContent';\n\nexport default ExpandableContent;\n"],"mappings":"AAAA,SACIA,eAAe,QAIZ,eAAe;AACtB,OAAOC,KAAK,IAAkCC,OAAO,QAAQ,OAAO;AACpE,SAASC,6BAA6B,QAAQ,4BAA4B;AAa1E,MAAMC,iBAA6C,GAAGC,IAAA;EAAA,IAAC;IACnDC,QAAQ;IACRC,EAAE;IACFC,IAAI;IACJC,IAAI,GAAG,OAAO;IACdC,OAAO;IACPC,OAAO;IACPC,KAAK;IACLC,QAAQ,GAAG;EACf,CAAC,GAAAR,IAAA;EAAA,OACGH,OAAO,CACH,mBACID,KAAA,CAAAa,aAAA,CAACd,eAAe;IAACU,OAAO,EAAE;EAAM,gBAC5BT,KAAA,CAAAa,aAAA,CAACX,6BAA6B;IAC1BQ,OAAO,EAAEA,OAAQ;IACjBD,OAAO,EAAEA,OAAQ;IACjBF,IAAI,EAAEA,IAAK;IACXO,UAAU,EAAE;MAAEF,QAAQ;MAAEJ;IAAK,CAAE;IAC/BO,GAAG,EAAET,EAAG;IACRK,KAAK,EAAE;MAAE,GAAGA;IAAM;EAAE,GAEnBN,QAC0B,CAClB,CACpB,EACD,CAACK,OAAO,EAAEL,QAAQ,EAAEO,QAAQ,EAAEL,IAAI,EAAED,EAAE,EAAEG,OAAO,EAAEE,KAAK,EAAEH,IAAI,CAChE,CAAC;AAAA;AAELL,iBAAiB,CAACa,WAAW,GAAG,mBAAmB;AAEnD,eAAeb,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"ExpandableContent.js","names":["AnimatePresence","React","useMemo","StyledMotionExpandableContent","ExpandableContent","_ref","children","id","exit","type","initial","animate","style","duration","createElement","transition","key","displayName"],"sources":["../../../../src/components/expandable-content/ExpandableContent.tsx"],"sourcesContent":["import {\n AnimatePresence,\n type AnimationControls,\n type TargetAndTransition,\n type VariantLabels,\n} from 'framer-motion';\nimport React, { CSSProperties, FC, ReactNode, useMemo } from 'react';\nimport { StyledMotionExpandableContent } from './ExpandableContent.styles';\n\nexport type ExpandableContentProps = {\n /**\n * The styles that should be animated.\n */\n animate?: boolean | AnimationControls | TargetAndTransition | VariantLabels;\n /**\n * The children that should be animated.\n */\n children: ReactNode;\n /**\n * How long the animation last.\n */\n duration?: number;\n /**\n * the exit animation.\n */\n exit?: TargetAndTransition | VariantLabels;\n /**\n * the id of the element.\n */\n id: string;\n /**\n * the initial animation.\n */\n initial?: boolean | VariantLabels;\n /**\n * The style of the wrapper.\n */\n style?: CSSProperties;\n /**\n * The type of the animation.\n */\n type?: 'just' | 'inertia' | 'tween' | 'spring' | 'keyframes';\n};\n\nconst ExpandableContent: FC<ExpandableContentProps> = ({\n children,\n id,\n exit,\n type = 'tween',\n initial,\n animate,\n style,\n duration = 0.2,\n}) =>\n useMemo(\n () => (\n <AnimatePresence initial={false}>\n <StyledMotionExpandableContent\n animate={animate}\n initial={initial}\n exit={exit}\n transition={{ duration, type }}\n key={id}\n style={{ ...style }}\n >\n {children}\n </StyledMotionExpandableContent>\n </AnimatePresence>\n ),\n [animate, children, duration, exit, id, initial, style, type],\n );\n\nExpandableContent.displayName = 'ExpandableContent';\n\nexport default ExpandableContent;\n"],"mappings":"AAAA,SACIA,eAAe,QAIZ,eAAe;AACtB,OAAOC,KAAK,IAAkCC,OAAO,QAAQ,OAAO;AACpE,SAASC,6BAA6B,QAAQ,4BAA4B;AAqC1E,MAAMC,iBAA6C,GAAGC,IAAA;EAAA,IAAC;IACnDC,QAAQ;IACRC,EAAE;IACFC,IAAI;IACJC,IAAI,GAAG,OAAO;IACdC,OAAO;IACPC,OAAO;IACPC,KAAK;IACLC,QAAQ,GAAG;EACf,CAAC,GAAAR,IAAA;EAAA,OACGH,OAAO,CACH,mBACID,KAAA,CAAAa,aAAA,CAACd,eAAe;IAACU,OAAO,EAAE;EAAM,gBAC5BT,KAAA,CAAAa,aAAA,CAACX,6BAA6B;IAC1BQ,OAAO,EAAEA,OAAQ;IACjBD,OAAO,EAAEA,OAAQ;IACjBF,IAAI,EAAEA,IAAK;IACXO,UAAU,EAAE;MAAEF,QAAQ;MAAEJ;IAAK,CAAE;IAC/BO,GAAG,EAAET,EAAG;IACRK,KAAK,EAAE;MAAE,GAAGA;IAAM;EAAE,GAEnBN,QAC0B,CAClB,CACpB,EACD,CAACK,OAAO,EAAEL,QAAQ,EAAEO,QAAQ,EAAEL,IAAI,EAAED,EAAE,EAAEG,OAAO,EAAEE,KAAK,EAAEH,IAAI,CAChE,CAAC;AAAA;AAELL,iBAAiB,CAACa,WAAW,GAAG,mBAAmB;AAEnD,eAAeb,iBAAiB","ignoreList":[]}
@@ -14,6 +14,7 @@ type AccordionHeadProps = {
14
14
  shouldRotateIcon?: boolean;
15
15
  title: string;
16
16
  titleElement?: ReactNode;
17
+ uuid: string;
17
18
  };
18
19
  declare const AccordionHead: FC<AccordionHeadProps>;
19
20
  export default AccordionHead;
@@ -1,13 +1,37 @@
1
1
  import { type AnimationControls, type TargetAndTransition, type VariantLabels } from 'framer-motion';
2
2
  import { CSSProperties, FC, ReactNode } from 'react';
3
3
  export type ExpandableContentProps = {
4
+ /**
5
+ * The styles that should be animated.
6
+ */
7
+ animate?: boolean | AnimationControls | TargetAndTransition | VariantLabels;
8
+ /**
9
+ * The children that should be animated.
10
+ */
4
11
  children: ReactNode;
5
- style?: CSSProperties;
12
+ /**
13
+ * How long the animation last.
14
+ */
6
15
  duration?: number;
7
- animate?: boolean | AnimationControls | TargetAndTransition | VariantLabels;
16
+ /**
17
+ * the exit animation.
18
+ */
8
19
  exit?: TargetAndTransition | VariantLabels;
9
- initial?: boolean | VariantLabels;
20
+ /**
21
+ * the id of the element.
22
+ */
10
23
  id: string;
24
+ /**
25
+ * the initial animation.
26
+ */
27
+ initial?: boolean | VariantLabels;
28
+ /**
29
+ * The style of the wrapper.
30
+ */
31
+ style?: CSSProperties;
32
+ /**
33
+ * The type of the animation.
34
+ */
11
35
  type?: 'just' | 'inertia' | 'tween' | 'spring' | 'keyframes';
12
36
  };
13
37
  declare const ExpandableContent: FC<ExpandableContentProps>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/core",
3
- "version": "5.0.0-beta.636",
3
+ "version": "5.0.0-beta.638",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -85,5 +85,5 @@
85
85
  "publishConfig": {
86
86
  "access": "public"
87
87
  },
88
- "gitHead": "07eae11d45028dfd72e1f4e8b9e8eb013a2af91b"
88
+ "gitHead": "68842819715664187ebe986780ef6717ab7d52bb"
89
89
  }