@chayns-components/core 5.0.0-beta.1114 → 5.0.0-beta.1116
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/lib/cjs/components/accordion/Accordion.styles.js +7 -3
- package/lib/cjs/components/accordion/Accordion.styles.js.map +1 -1
- package/lib/cjs/components/accordion/accordion-head/AccordionHead.js +2 -2
- package/lib/cjs/components/accordion/accordion-head/AccordionHead.js.map +1 -1
- package/lib/cjs/components/tag-input/TagInput.js +8 -4
- package/lib/cjs/components/tag-input/TagInput.js.map +1 -1
- package/lib/esm/components/accordion/Accordion.styles.js +7 -3
- package/lib/esm/components/accordion/Accordion.styles.js.map +1 -1
- package/lib/esm/components/accordion/accordion-head/AccordionHead.js +2 -2
- package/lib/esm/components/accordion/accordion-head/AccordionHead.js.map +1 -1
- package/lib/esm/components/tag-input/TagInput.js +8 -4
- package/lib/esm/components/tag-input/TagInput.js.map +1 -1
- package/lib/types/components/tag-input/TagInput.d.ts +5 -1
- package/package.json +2 -2
|
@@ -38,6 +38,8 @@ const StyledMotionAccordion = exports.StyledMotionAccordion = (0, _styledCompone
|
|
|
38
38
|
margin-bottom 0.3s ease;
|
|
39
39
|
will-change: unset !important;
|
|
40
40
|
|
|
41
|
+
margin-top: 10px;
|
|
42
|
+
|
|
41
43
|
${({
|
|
42
44
|
$isOpen,
|
|
43
45
|
$isWrapped,
|
|
@@ -68,9 +70,11 @@ const StyledMotionAccordion = exports.StyledMotionAccordion = (0, _styledCompone
|
|
|
68
70
|
`}
|
|
69
71
|
${({
|
|
70
72
|
$isWrapped
|
|
71
|
-
}) => !$isWrapped
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
}) => !$isWrapped ? (0, _styledComponents.css)`
|
|
74
|
+
margin-top: 5px;
|
|
75
|
+
` : (0, _styledComponents.css)`
|
|
76
|
+
margin: 0;
|
|
77
|
+
`}
|
|
74
78
|
${({
|
|
75
79
|
$isWrapped,
|
|
76
80
|
$shouldHideBackground,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.styles.js","names":["_react","require","_styledComponents","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledMotionAccordion","exports","styled","motion","div","$isOpen","$isWrapped","$shouldForceBackground","$shouldHideBackground","theme","css","cardBackgroundOpacity","cardBorderRadius","cardShadow","accordionLines","$shouldShowLines","$shouldHideBottomLine","undefined","$isParentWrapped"],"sources":["../../../../src/components/accordion/Accordion.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMotionAccordionProps = WithTheme<{\n $isOpen: boolean;\n $isParentWrapped?: boolean;\n $isWrapped?: boolean;\n $shouldForceBackground?: boolean;\n $shouldHideBackground?: boolean;\n $shouldShowLines?: boolean;\n $shouldHideBottomLine: boolean;\n}>;\n\nexport const StyledMotionAccordion = styled(motion.div)<StyledMotionAccordionProps>`\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldHideBackground,\n theme,\n }: StyledMotionAccordionProps) =>\n ($isOpen || $shouldForceBackground) &&\n !$isWrapped &&\n !$shouldHideBackground &&\n css`\n background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});\n border-radius: ${theme.cardBorderRadius}px;\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, ${theme.cardShadow});\n `}\n\n ${({ theme }: StyledMotionAccordionProps) =>\n theme.accordionLines &&\n css`\n border-bottom: 1px solid transparent;\n `}\n\n margin-bottom: ${({ $isOpen, $isWrapped }: StyledMotionAccordionProps) =>\n $isOpen && !$isWrapped ? '30px' : '0px'};\n transition:\n background-color 0.3s ease,\n border-bottom-color 0.3s ease,\n border-radius 0.3s ease,\n box-shadow 0.3s ease,\n margin-bottom 0.3s ease;\n will-change: unset !important;\n\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldShowLines,\n $shouldHideBottomLine,\n theme,\n }: StyledMotionAccordionProps) => {\n if ($shouldForceBackground || $shouldHideBottomLine) return undefined;\n\n if (theme.accordionLines) {\n if ($isWrapped && $shouldShowLines) {\n return css`\n border-bottom-color: rgba(${theme['headline-rgb']}, 0.5);\n `;\n }\n\n if (!$isOpen && $shouldShowLines) {\n return css`\n border-bottom-color: rgba(${theme['headline-rgb']}, 0.5);\n `;\n }\n }\n\n return undefined;\n }}\n ${({ $isParentWrapped }: StyledMotionAccordionProps) =>\n $isParentWrapped &&\n css`\n padding-left: 17px;\n `}\n ${({ $isWrapped }: StyledMotionAccordionProps) =>\n !$isWrapped
|
|
1
|
+
{"version":3,"file":"Accordion.styles.js","names":["_react","require","_styledComponents","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledMotionAccordion","exports","styled","motion","div","$isOpen","$isWrapped","$shouldForceBackground","$shouldHideBackground","theme","css","cardBackgroundOpacity","cardBorderRadius","cardShadow","accordionLines","$shouldShowLines","$shouldHideBottomLine","undefined","$isParentWrapped"],"sources":["../../../../src/components/accordion/Accordion.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMotionAccordionProps = WithTheme<{\n $isOpen: boolean;\n $isParentWrapped?: boolean;\n $isWrapped?: boolean;\n $shouldForceBackground?: boolean;\n $shouldHideBackground?: boolean;\n $shouldShowLines?: boolean;\n $shouldHideBottomLine: boolean;\n}>;\n\nexport const StyledMotionAccordion = styled(motion.div)<StyledMotionAccordionProps>`\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldHideBackground,\n theme,\n }: StyledMotionAccordionProps) =>\n ($isOpen || $shouldForceBackground) &&\n !$isWrapped &&\n !$shouldHideBackground &&\n css`\n background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});\n border-radius: ${theme.cardBorderRadius}px;\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, ${theme.cardShadow});\n `}\n\n ${({ theme }: StyledMotionAccordionProps) =>\n theme.accordionLines &&\n css`\n border-bottom: 1px solid transparent;\n `}\n\n margin-bottom: ${({ $isOpen, $isWrapped }: StyledMotionAccordionProps) =>\n $isOpen && !$isWrapped ? '30px' : '0px'};\n transition:\n background-color 0.3s ease,\n border-bottom-color 0.3s ease,\n border-radius 0.3s ease,\n box-shadow 0.3s ease,\n margin-bottom 0.3s ease;\n will-change: unset !important;\n\n margin-top: 10px;\n\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldShowLines,\n $shouldHideBottomLine,\n theme,\n }: StyledMotionAccordionProps) => {\n if ($shouldForceBackground || $shouldHideBottomLine) return undefined;\n\n if (theme.accordionLines) {\n if ($isWrapped && $shouldShowLines) {\n return css`\n border-bottom-color: rgba(${theme['headline-rgb']}, 0.5);\n `;\n }\n\n if (!$isOpen && $shouldShowLines) {\n return css`\n border-bottom-color: rgba(${theme['headline-rgb']}, 0.5);\n `;\n }\n }\n\n return undefined;\n }}\n ${({ $isParentWrapped }: StyledMotionAccordionProps) =>\n $isParentWrapped &&\n css`\n padding-left: 17px;\n `}\n ${({ $isWrapped }: StyledMotionAccordionProps) =>\n !$isWrapped\n ? css`\n margin-top: 5px;\n `\n : css`\n margin: 0;\n `}\n ${({ $isWrapped, $shouldHideBackground, theme }: StyledMotionAccordionProps) =>\n !$isWrapped &&\n !$shouldHideBackground &&\n css`\n &:hover {\n background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});\n }\n `};\n`;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -37,8 +37,8 @@ const AccordionHead = ({
|
|
|
37
37
|
titleColor
|
|
38
38
|
}) => {
|
|
39
39
|
const [headHeight, setHeadHeight] = (0, _react2.useState)({
|
|
40
|
-
closed: isWrapped ? 40 :
|
|
41
|
-
open: isWrapped ? 40 :
|
|
40
|
+
closed: isWrapped ? 40 : 32,
|
|
41
|
+
open: isWrapped ? 40 : 32
|
|
42
42
|
});
|
|
43
43
|
const [isSearchActive, setIsSearchActive] = (0, _react2.useState)(false);
|
|
44
44
|
const theme = (0, _styledComponents.useTheme)();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionHead.js","names":["_react","require","_react2","_interopRequireWildcard","_styledComponents","_useElementSize","_accordion","_AreaContextProvider","_Icon","_interopRequireDefault","_Input","_SearchInput","_AccordionHead","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","AccordionHead","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","uuid","titleInputProps","onTitleInputChange","titleColor","headHeight","setHeadHeight","useState","closed","open","isSearchActive","setIsSearchActive","theme","useTheme","titleElementWrapperRef","useRef","titleWrapperRef","internalSearchValue","setInternalSearchValue","useEffect","handleOnSearchChance","event","target","value","titleElementChildrenSize","useElementSize","shouldUseChildElement","shouldPreventRightElementClick","useMemo","getElementClickEvent","_titleWrapperRef$curr","getAccordionHeadHeight","width","current","clientWidth","hasSearch","fontSize","iconElement","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","StyledAccordionIcon","className","$icon","accordionHeadHeight","height","StyledMotionAccordionHead","animate","initial","key","StyledMotionIconWrapper","rotate","undefined","StyledMotionContentWrapper","opacity","ref","$isWrapped","AreaContext","Provider","shouldChangeColor","onChange","LayoutGroup","StyledMotionTitleWrapper","AnimatePresence","StyledMotionTitle","scale","exit","$isOpen","$color","$hasSearch","transition","duration","StyledMotionTitleElementWrapper","layout","StyledRightWrapper","$isSearchActive","StyledMotionSearchWrapper","onActiveChange","isActive","placeholder","size","InputSize","Small","StyledMotionRightElementWrapper","displayName","_default","exports"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { useElementSize } from '../../../hooks/useElementSize';\nimport { getAccordionHeadHeight, getElementClickEvent } from '../../../utils/accordion';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\nimport type { Theme } from '../../color-scheme-provider/ColorSchemeProvider';\nimport Icon from '../../icon/Icon';\nimport Input, { InputSize, type InputProps } from '../../input/Input';\nimport SearchInput from '../../search-input/SearchInput';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionSearchWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\nexport type 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 searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n uuid: string;\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n titleInputProps?: InputProps;\n titleColor?: CSSProperties['color'];\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 searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n uuid,\n titleInputProps,\n onTitleInputChange,\n titleColor,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 33,\n open: isWrapped ? 40 : 33,\n });\n\n const [isSearchActive, setIsSearchActive] = useState(false);\n\n const theme = useTheme() as Theme;\n\n const titleElementWrapperRef = useRef<HTMLDivElement>(null);\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const [internalSearchValue, setInternalSearchValue] = useState<string>();\n\n useEffect(() => {\n setInternalSearchValue(searchValue);\n }, [searchValue]);\n\n const handleOnSearchChance = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalSearchValue(event.target.value);\n if (typeof onSearchChange === 'function') {\n onSearchChange(event);\n }\n };\n\n const titleElementChildrenSize = useElementSize(titleElementWrapperRef, {\n shouldUseChildElement: true,\n });\n\n const shouldPreventRightElementClick = useMemo(\n () => getElementClickEvent(rightElement),\n [rightElement],\n );\n\n useEffect(() => {\n if (typeof onTitleInputChange === 'function') {\n setHeadHeight({ closed: 50, open: 50 });\n } else {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) + 10,\n hasSearch: typeof onSearchChange === 'function',\n }),\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, onSearchChange, onTitleInputChange, theme.fontSize, title]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon\n icons={[isFixed ? 'fa fa-horizontal-rule' : (icon ?? 'fa fa-chevron-right')]}\n />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n (theme.accordionIcon as unknown as number) !== 110 &&\n (theme.accordionIcon as unknown as number) !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as unknown as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? theme.iconStyle : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n let accordionHeadHeight = isOpen ? headHeight.open : headHeight.closed;\n\n if (titleElementChildrenSize && titleElementChildrenSize.height > accordionHeadHeight) {\n // If the titleElement is bigger than the title, the height of the accordion head should be increased.\n // The height of the titleElement is increased by 8px because of the padding of the accordion head element.\n accordionHeadHeight = titleElementChildrenSize.height + 8;\n }\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: accordionHeadHeight }}\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 $isWrapped={isWrapped}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n {typeof onTitleInputChange === 'function' ? (\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <Input {...titleInputProps} value={title} onChange={onTitleInputChange} />\n </AreaContext.Provider>\n ) : (\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <StyledMotionTitleWrapper key={`accordionHeadTitleWrapperWrapper--${uuid}`}>\n <AnimatePresence\n initial={false}\n key={`accordionHeadTitleWrapper--${uuid}`}\n >\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 $color={titleColor}\n $hasSearch={typeof onSearchChange === 'function'}\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 ref={titleElementWrapperRef}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n )}\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper $isSearchActive={isSearchActive}>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen && (\n <StyledMotionSearchWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`searchWrapper--${uuid}`}\n >\n <SearchInput\n onChange={handleOnSearchChance}\n onActiveChange={(isActive) => setIsSearchActive(isActive)}\n placeholder={searchPlaceholder}\n size={InputSize.Small}\n value={internalSearchValue}\n />\n </StyledMotionSearchWrapper>\n )}\n {rightElement && (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n onClick={\n !isFixed && !shouldPreventRightElementClick\n ? onClick\n : undefined\n }\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":["_react","require","_react2","_interopRequireWildcard","_styledComponents","_useElementSize","_accordion","_AreaContextProvider","_Icon","_interopRequireDefault","_Input","_SearchInput","_AccordionHead","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","AccordionHead","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","uuid","titleInputProps","onTitleInputChange","titleColor","headHeight","setHeadHeight","useState","closed","open","isSearchActive","setIsSearchActive","theme","useTheme","titleElementWrapperRef","useRef","titleWrapperRef","internalSearchValue","setInternalSearchValue","useEffect","handleOnSearchChance","event","target","value","titleElementChildrenSize","useElementSize","shouldUseChildElement","shouldPreventRightElementClick","useMemo","getElementClickEvent","_titleWrapperRef$curr","getAccordionHeadHeight","width","current","clientWidth","hasSearch","fontSize","iconElement","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","StyledAccordionIcon","className","$icon","accordionHeadHeight","height","StyledMotionAccordionHead","animate","initial","key","StyledMotionIconWrapper","rotate","undefined","StyledMotionContentWrapper","opacity","ref","$isWrapped","AreaContext","Provider","shouldChangeColor","onChange","LayoutGroup","StyledMotionTitleWrapper","AnimatePresence","StyledMotionTitle","scale","exit","$isOpen","$color","$hasSearch","transition","duration","StyledMotionTitleElementWrapper","layout","StyledRightWrapper","$isSearchActive","StyledMotionSearchWrapper","onActiveChange","isActive","placeholder","size","InputSize","Small","StyledMotionRightElementWrapper","displayName","_default","exports"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { useElementSize } from '../../../hooks/useElementSize';\nimport { getAccordionHeadHeight, getElementClickEvent } from '../../../utils/accordion';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\nimport type { Theme } from '../../color-scheme-provider/ColorSchemeProvider';\nimport Icon from '../../icon/Icon';\nimport Input, { InputSize, type InputProps } from '../../input/Input';\nimport SearchInput from '../../search-input/SearchInput';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionSearchWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\nexport type 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 searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n uuid: string;\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n titleInputProps?: InputProps;\n titleColor?: CSSProperties['color'];\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 searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n uuid,\n titleInputProps,\n onTitleInputChange,\n titleColor,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 32,\n open: isWrapped ? 40 : 32,\n });\n\n const [isSearchActive, setIsSearchActive] = useState(false);\n\n const theme = useTheme() as Theme;\n\n const titleElementWrapperRef = useRef<HTMLDivElement>(null);\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const [internalSearchValue, setInternalSearchValue] = useState<string>();\n\n useEffect(() => {\n setInternalSearchValue(searchValue);\n }, [searchValue]);\n\n const handleOnSearchChance = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalSearchValue(event.target.value);\n if (typeof onSearchChange === 'function') {\n onSearchChange(event);\n }\n };\n\n const titleElementChildrenSize = useElementSize(titleElementWrapperRef, {\n shouldUseChildElement: true,\n });\n\n const shouldPreventRightElementClick = useMemo(\n () => getElementClickEvent(rightElement),\n [rightElement],\n );\n\n useEffect(() => {\n if (typeof onTitleInputChange === 'function') {\n setHeadHeight({ closed: 50, open: 50 });\n } else {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) + 10,\n hasSearch: typeof onSearchChange === 'function',\n }),\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, onSearchChange, onTitleInputChange, theme.fontSize, title]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon\n icons={[isFixed ? 'fa fa-horizontal-rule' : (icon ?? 'fa fa-chevron-right')]}\n />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n (theme.accordionIcon as unknown as number) !== 110 &&\n (theme.accordionIcon as unknown as number) !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as unknown as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? theme.iconStyle : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n let accordionHeadHeight = isOpen ? headHeight.open : headHeight.closed;\n\n if (titleElementChildrenSize && titleElementChildrenSize.height > accordionHeadHeight) {\n // If the titleElement is bigger than the title, the height of the accordion head should be increased.\n // The height of the titleElement is increased by 8px because of the padding of the accordion head element.\n accordionHeadHeight = titleElementChildrenSize.height + 8;\n }\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: accordionHeadHeight }}\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 $isWrapped={isWrapped}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n {typeof onTitleInputChange === 'function' ? (\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <Input {...titleInputProps} value={title} onChange={onTitleInputChange} />\n </AreaContext.Provider>\n ) : (\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <StyledMotionTitleWrapper key={`accordionHeadTitleWrapperWrapper--${uuid}`}>\n <AnimatePresence\n initial={false}\n key={`accordionHeadTitleWrapper--${uuid}`}\n >\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 $color={titleColor}\n $hasSearch={typeof onSearchChange === 'function'}\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 ref={titleElementWrapperRef}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n )}\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper $isSearchActive={isSearchActive}>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen && (\n <StyledMotionSearchWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`searchWrapper--${uuid}`}\n >\n <SearchInput\n onChange={handleOnSearchChance}\n onActiveChange={(isActive) => setIsSearchActive(isActive)}\n placeholder={searchPlaceholder}\n size={InputSize.Small}\n value={internalSearchValue}\n />\n </StyledMotionSearchWrapper>\n )}\n {rightElement && (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n onClick={\n !isFixed && !shouldPreventRightElementClick\n ? onClick\n : undefined\n }\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":[]}
|
|
@@ -17,7 +17,8 @@ const TagInput = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
17
17
|
placeholder,
|
|
18
18
|
tags,
|
|
19
19
|
onRemove,
|
|
20
|
-
onAdd
|
|
20
|
+
onAdd,
|
|
21
|
+
onChange
|
|
21
22
|
}, ref) => {
|
|
22
23
|
const [internalTags, setInternalTags] = (0, _react.useState)();
|
|
23
24
|
const [currentValue, setCurrentValue] = (0, _react.useState)('');
|
|
@@ -80,12 +81,15 @@ const TagInput = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
80
81
|
});
|
|
81
82
|
}
|
|
82
83
|
}, [currentValue, internalTags, onAdd, onRemove, selectedId]);
|
|
83
|
-
const handleChange = event => {
|
|
84
|
+
const handleChange = (0, _react.useCallback)(event => {
|
|
84
85
|
setCurrentValue(event.target.value);
|
|
86
|
+
if (typeof onChange === 'function') {
|
|
87
|
+
onChange(event);
|
|
88
|
+
}
|
|
85
89
|
if (event.target.value !== '') {
|
|
86
90
|
setSelectedId(undefined);
|
|
87
91
|
}
|
|
88
|
-
};
|
|
92
|
+
}, [onChange]);
|
|
89
93
|
const handleIconClick = (0, _react.useCallback)(id => {
|
|
90
94
|
setInternalTags(prevState => {
|
|
91
95
|
const updatedTags = (prevState ?? []).filter(tag => tag.id !== id);
|
|
@@ -121,7 +125,7 @@ const TagInput = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
121
125
|
onKeyDown: handleKeyDown,
|
|
122
126
|
onChange: handleChange,
|
|
123
127
|
value: currentValue
|
|
124
|
-
})), [content, currentValue, handleKeyDown, placeholder, shouldChangeColor, tags]);
|
|
128
|
+
})), [content, currentValue, handleChange, handleKeyDown, placeholder, shouldChangeColor, tags]);
|
|
125
129
|
});
|
|
126
130
|
var _default = exports.default = TagInput;
|
|
127
131
|
//# sourceMappingURL=TagInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagInput.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_uuid","_Badge","_interopRequireDefault","_Icon","_TagInput","_AreaContextProvider","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TagInput","forwardRef","placeholder","tags","onRemove","onAdd","ref","internalTags","setInternalTags","useState","currentValue","setCurrentValue","selectedId","setSelectedId","areaProvider","useContext","AreaContext","theme","useTheme","useEffect","shouldChangeColor","useMemo","useImperativeHandle","getUnsavedTagText","undefined","handleKeyDown","useCallback","event","key","prevValue","prevTags","newTag","id","uuidv4","text","_internalTags","newSelectedId","length","prevState","_prevState","removedId","updatedTags","filter","tag","handleChange","target","value","handleIconClick","content","items","forEach","push","createElement","backgroundColor","StyledTagInputTagWrapper","StyledTagInputTagWrapperText","icons","onClick","StyledTagInput","$shouldChangeColor","StyledTagInputTagInput","onKeyDown","onChange","_default","exports"],"sources":["../../../../src/components/tag-input/TagInput.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type ChangeEvent,\n type KeyboardEvent,\n type ReactElement,\n useImperativeHandle,\n useContext,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\nimport type { Tag } from '../../types/tagInput';\nimport Badge from '../badge/Badge';\nimport Icon from '../icon/Icon';\nimport {\n StyledTagInput,\n StyledTagInputTagInput,\n StyledTagInputTagWrapper,\n StyledTagInputTagWrapperText,\n} from './TagInput.styles';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport type { Theme } from '../color-scheme-provider/ColorSchemeProvider';\n\nexport type TagInputProps = {\n /**\n * Function to be executed when a tag is added.\n */\n onAdd?: (tag: Tag) => void;\n /**\n * Function to be executed when a tag is removed.\n */\n onRemove?: (id: string) => void;\n /**\n * The placeholder that should be displayed.\n */\n placeholder?: string;\n /**\n * The tags that should be displayed.\n */\n tags?: Tag[];\n};\n\nexport type TagInputRef = {\n getUnsavedTagText: Tag['text'] | undefined;\n};\n\nconst TagInput = forwardRef<TagInputRef, TagInputProps>(\n ({ placeholder, tags, onRemove, onAdd }, ref) => {\n const [internalTags, setInternalTags] = useState<Tag[]>();\n const [currentValue, setCurrentValue] = useState('');\n const [selectedId, setSelectedId] = useState<Tag['id']>();\n\n const areaProvider = useContext(AreaContext);\n\n const theme = useTheme() as Theme;\n\n useEffect(() => {\n if (tags) {\n setInternalTags(tags);\n }\n }, [tags]);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n getUnsavedTagText: currentValue !== '' ? currentValue : undefined,\n }),\n [currentValue],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n setCurrentValue((prevValue) => {\n if (!prevValue) {\n return '';\n }\n\n setInternalTags((prevTags) => {\n const newTag = { id: uuidv4(), text: prevValue };\n\n if (typeof onAdd === 'function') {\n onAdd(newTag);\n }\n\n return prevTags ? [...prevTags, newTag] : [newTag];\n });\n\n return '';\n });\n }\n\n if (event.key === 'Backspace' && currentValue === '') {\n if (!selectedId) {\n if (!internalTags) {\n return;\n }\n\n const newSelectedId = internalTags[internalTags.length - 1]?.id;\n\n setSelectedId(newSelectedId);\n\n return;\n }\n\n setInternalTags((prevState) => {\n if (!prevState) {\n return prevState;\n }\n\n const removedId = prevState[prevState.length - 1]?.id;\n\n if (!removedId) {\n return prevState;\n }\n\n const updatedTags = (prevState ?? []).filter((tag) => tag.id !== removedId);\n\n if (typeof onRemove === 'function') {\n onRemove(removedId);\n }\n\n setSelectedId(undefined);\n\n return updatedTags;\n });\n }\n },\n [currentValue, internalTags, onAdd, onRemove, selectedId],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setCurrentValue(event.target.value);\n\n if (event.target.value !== '') {\n setSelectedId(undefined);\n }\n };\n\n const handleIconClick = useCallback(\n (id: string) => {\n setInternalTags((prevState) => {\n const updatedTags = (prevState ?? []).filter((tag) => tag.id !== id);\n\n if (typeof onRemove === 'function') {\n onRemove(id);\n }\n\n return updatedTags;\n });\n },\n [onRemove],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!internalTags) {\n return items;\n }\n\n internalTags.forEach(({ text, id }) => {\n items.push(\n <Badge\n key={`tag-input-${id}`}\n backgroundColor={\n id === selectedId ? ((theme['206'] as string) ?? undefined) : undefined\n }\n >\n <StyledTagInputTagWrapper>\n <StyledTagInputTagWrapperText>{text}</StyledTagInputTagWrapperText>\n <Icon icons={['ts-wrong']} onClick={() => handleIconClick(id)} />\n </StyledTagInputTagWrapper>\n </Badge>,\n );\n });\n\n return items;\n }, [handleIconClick, internalTags, selectedId, theme]);\n\n return useMemo(\n () => (\n <StyledTagInput $shouldChangeColor={shouldChangeColor}>\n {content}\n <StyledTagInputTagInput\n placeholder={tags && tags.length > 0 ? undefined : placeholder}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n value={currentValue}\n />\n </StyledTagInput>\n ),\n [content, currentValue, handleKeyDown, placeholder, shouldChangeColor, tags],\n );\n },\n);\n\nexport default TagInput;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TagInput.js","names":["_react","_interopRequireWildcard","require","_styledComponents","_uuid","_Badge","_interopRequireDefault","_Icon","_TagInput","_AreaContextProvider","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TagInput","forwardRef","placeholder","tags","onRemove","onAdd","onChange","ref","internalTags","setInternalTags","useState","currentValue","setCurrentValue","selectedId","setSelectedId","areaProvider","useContext","AreaContext","theme","useTheme","useEffect","shouldChangeColor","useMemo","useImperativeHandle","getUnsavedTagText","undefined","handleKeyDown","useCallback","event","key","prevValue","prevTags","newTag","id","uuidv4","text","_internalTags","newSelectedId","length","prevState","_prevState","removedId","updatedTags","filter","tag","handleChange","target","value","handleIconClick","content","items","forEach","push","createElement","backgroundColor","StyledTagInputTagWrapper","StyledTagInputTagWrapperText","icons","onClick","StyledTagInput","$shouldChangeColor","StyledTagInputTagInput","onKeyDown","_default","exports"],"sources":["../../../../src/components/tag-input/TagInput.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type ChangeEvent,\n type KeyboardEvent,\n type ReactElement,\n useImperativeHandle,\n useContext,\n ChangeEventHandler,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\nimport type { Tag } from '../../types/tagInput';\nimport Badge from '../badge/Badge';\nimport Icon from '../icon/Icon';\nimport {\n StyledTagInput,\n StyledTagInputTagInput,\n StyledTagInputTagWrapper,\n StyledTagInputTagWrapperText,\n} from './TagInput.styles';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport type { Theme } from '../color-scheme-provider/ColorSchemeProvider';\n\nexport type TagInputProps = {\n /**\n * Function to be executed when a tag is added.\n */\n onAdd?: (tag: Tag) => void;\n /**\n * Function to be executed when the value of the input is changed.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when a tag is removed.\n */\n onRemove?: (id: string) => void;\n /**\n * The placeholder that should be displayed.\n */\n placeholder?: string;\n /**\n * The tags that should be displayed.\n */\n tags?: Tag[];\n};\n\nexport type TagInputRef = {\n getUnsavedTagText: Tag['text'] | undefined;\n};\n\nconst TagInput = forwardRef<TagInputRef, TagInputProps>(\n ({ placeholder, tags, onRemove, onAdd, onChange }, ref) => {\n const [internalTags, setInternalTags] = useState<Tag[]>();\n const [currentValue, setCurrentValue] = useState('');\n const [selectedId, setSelectedId] = useState<Tag['id']>();\n\n const areaProvider = useContext(AreaContext);\n\n const theme = useTheme() as Theme;\n\n useEffect(() => {\n if (tags) {\n setInternalTags(tags);\n }\n }, [tags]);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n getUnsavedTagText: currentValue !== '' ? currentValue : undefined,\n }),\n [currentValue],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n setCurrentValue((prevValue) => {\n if (!prevValue) {\n return '';\n }\n\n setInternalTags((prevTags) => {\n const newTag = { id: uuidv4(), text: prevValue };\n\n if (typeof onAdd === 'function') {\n onAdd(newTag);\n }\n\n return prevTags ? [...prevTags, newTag] : [newTag];\n });\n\n return '';\n });\n }\n\n if (event.key === 'Backspace' && currentValue === '') {\n if (!selectedId) {\n if (!internalTags) {\n return;\n }\n\n const newSelectedId = internalTags[internalTags.length - 1]?.id;\n\n setSelectedId(newSelectedId);\n\n return;\n }\n\n setInternalTags((prevState) => {\n if (!prevState) {\n return prevState;\n }\n\n const removedId = prevState[prevState.length - 1]?.id;\n\n if (!removedId) {\n return prevState;\n }\n\n const updatedTags = (prevState ?? []).filter((tag) => tag.id !== removedId);\n\n if (typeof onRemove === 'function') {\n onRemove(removedId);\n }\n\n setSelectedId(undefined);\n\n return updatedTags;\n });\n }\n },\n [currentValue, internalTags, onAdd, onRemove, selectedId],\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setCurrentValue(event.target.value);\n\n if (typeof onChange === 'function') {\n onChange(event);\n }\n\n if (event.target.value !== '') {\n setSelectedId(undefined);\n }\n },\n [onChange],\n );\n\n const handleIconClick = useCallback(\n (id: string) => {\n setInternalTags((prevState) => {\n const updatedTags = (prevState ?? []).filter((tag) => tag.id !== id);\n\n if (typeof onRemove === 'function') {\n onRemove(id);\n }\n\n return updatedTags;\n });\n },\n [onRemove],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!internalTags) {\n return items;\n }\n\n internalTags.forEach(({ text, id }) => {\n items.push(\n <Badge\n key={`tag-input-${id}`}\n backgroundColor={\n id === selectedId ? ((theme['206'] as string) ?? undefined) : undefined\n }\n >\n <StyledTagInputTagWrapper>\n <StyledTagInputTagWrapperText>{text}</StyledTagInputTagWrapperText>\n <Icon icons={['ts-wrong']} onClick={() => handleIconClick(id)} />\n </StyledTagInputTagWrapper>\n </Badge>,\n );\n });\n\n return items;\n }, [handleIconClick, internalTags, selectedId, theme]);\n\n return useMemo(\n () => (\n <StyledTagInput $shouldChangeColor={shouldChangeColor}>\n {content}\n <StyledTagInputTagInput\n placeholder={tags && tags.length > 0 ? undefined : placeholder}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n value={currentValue}\n />\n </StyledTagInput>\n ),\n [\n content,\n currentValue,\n handleChange,\n handleKeyDown,\n placeholder,\n shouldChangeColor,\n tags,\n ],\n );\n },\n);\n\nexport default TagInput;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -40,6 +40,8 @@ export const StyledMotionAccordion = styled(motion.div)`
|
|
|
40
40
|
margin-bottom 0.3s ease;
|
|
41
41
|
will-change: unset !important;
|
|
42
42
|
|
|
43
|
+
margin-top: 10px;
|
|
44
|
+
|
|
43
45
|
${_ref4 => {
|
|
44
46
|
let {
|
|
45
47
|
$isOpen,
|
|
@@ -76,9 +78,11 @@ export const StyledMotionAccordion = styled(motion.div)`
|
|
|
76
78
|
let {
|
|
77
79
|
$isWrapped
|
|
78
80
|
} = _ref6;
|
|
79
|
-
return !$isWrapped
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
return !$isWrapped ? css`
|
|
82
|
+
margin-top: 5px;
|
|
83
|
+
` : css`
|
|
84
|
+
margin: 0;
|
|
85
|
+
`;
|
|
82
86
|
}}
|
|
83
87
|
${_ref7 => {
|
|
84
88
|
let {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Accordion.styles.js","names":["motion","styled","css","StyledMotionAccordion","div","_ref","$isOpen","$isWrapped","$shouldForceBackground","$shouldHideBackground","theme","cardBackgroundOpacity","cardBorderRadius","cardShadow","_ref2","accordionLines","_ref3","_ref4","$shouldShowLines","$shouldHideBottomLine","undefined","_ref5","$isParentWrapped","_ref6","_ref7"],"sources":["../../../../src/components/accordion/Accordion.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMotionAccordionProps = WithTheme<{\n $isOpen: boolean;\n $isParentWrapped?: boolean;\n $isWrapped?: boolean;\n $shouldForceBackground?: boolean;\n $shouldHideBackground?: boolean;\n $shouldShowLines?: boolean;\n $shouldHideBottomLine: boolean;\n}>;\n\nexport const StyledMotionAccordion = styled(motion.div)<StyledMotionAccordionProps>`\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldHideBackground,\n theme,\n }: StyledMotionAccordionProps) =>\n ($isOpen || $shouldForceBackground) &&\n !$isWrapped &&\n !$shouldHideBackground &&\n css`\n background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});\n border-radius: ${theme.cardBorderRadius}px;\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, ${theme.cardShadow});\n `}\n\n ${({ theme }: StyledMotionAccordionProps) =>\n theme.accordionLines &&\n css`\n border-bottom: 1px solid transparent;\n `}\n\n margin-bottom: ${({ $isOpen, $isWrapped }: StyledMotionAccordionProps) =>\n $isOpen && !$isWrapped ? '30px' : '0px'};\n transition:\n background-color 0.3s ease,\n border-bottom-color 0.3s ease,\n border-radius 0.3s ease,\n box-shadow 0.3s ease,\n margin-bottom 0.3s ease;\n will-change: unset !important;\n\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldShowLines,\n $shouldHideBottomLine,\n theme,\n }: StyledMotionAccordionProps) => {\n if ($shouldForceBackground || $shouldHideBottomLine) return undefined;\n\n if (theme.accordionLines) {\n if ($isWrapped && $shouldShowLines) {\n return css`\n border-bottom-color: rgba(${theme['headline-rgb']}, 0.5);\n `;\n }\n\n if (!$isOpen && $shouldShowLines) {\n return css`\n border-bottom-color: rgba(${theme['headline-rgb']}, 0.5);\n `;\n }\n }\n\n return undefined;\n }}\n ${({ $isParentWrapped }: StyledMotionAccordionProps) =>\n $isParentWrapped &&\n css`\n padding-left: 17px;\n `}\n ${({ $isWrapped }: StyledMotionAccordionProps) =>\n !$isWrapped
|
|
1
|
+
{"version":3,"file":"Accordion.styles.js","names":["motion","styled","css","StyledMotionAccordion","div","_ref","$isOpen","$isWrapped","$shouldForceBackground","$shouldHideBackground","theme","cardBackgroundOpacity","cardBorderRadius","cardShadow","_ref2","accordionLines","_ref3","_ref4","$shouldShowLines","$shouldHideBottomLine","undefined","_ref5","$isParentWrapped","_ref6","_ref7"],"sources":["../../../../src/components/accordion/Accordion.styles.ts"],"sourcesContent":["import { motion } from 'motion/react';\nimport styled, { css } from 'styled-components';\nimport type { WithTheme } from '../color-scheme-provider/ColorSchemeProvider';\n\ntype StyledMotionAccordionProps = WithTheme<{\n $isOpen: boolean;\n $isParentWrapped?: boolean;\n $isWrapped?: boolean;\n $shouldForceBackground?: boolean;\n $shouldHideBackground?: boolean;\n $shouldShowLines?: boolean;\n $shouldHideBottomLine: boolean;\n}>;\n\nexport const StyledMotionAccordion = styled(motion.div)<StyledMotionAccordionProps>`\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldHideBackground,\n theme,\n }: StyledMotionAccordionProps) =>\n ($isOpen || $shouldForceBackground) &&\n !$isWrapped &&\n !$shouldHideBackground &&\n css`\n background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});\n border-radius: ${theme.cardBorderRadius}px;\n box-shadow: 0 2px 6px 0 rgba(0, 0, 0, ${theme.cardShadow});\n `}\n\n ${({ theme }: StyledMotionAccordionProps) =>\n theme.accordionLines &&\n css`\n border-bottom: 1px solid transparent;\n `}\n\n margin-bottom: ${({ $isOpen, $isWrapped }: StyledMotionAccordionProps) =>\n $isOpen && !$isWrapped ? '30px' : '0px'};\n transition:\n background-color 0.3s ease,\n border-bottom-color 0.3s ease,\n border-radius 0.3s ease,\n box-shadow 0.3s ease,\n margin-bottom 0.3s ease;\n will-change: unset !important;\n\n margin-top: 10px;\n\n ${({\n $isOpen,\n $isWrapped,\n $shouldForceBackground,\n $shouldShowLines,\n $shouldHideBottomLine,\n theme,\n }: StyledMotionAccordionProps) => {\n if ($shouldForceBackground || $shouldHideBottomLine) return undefined;\n\n if (theme.accordionLines) {\n if ($isWrapped && $shouldShowLines) {\n return css`\n border-bottom-color: rgba(${theme['headline-rgb']}, 0.5);\n `;\n }\n\n if (!$isOpen && $shouldShowLines) {\n return css`\n border-bottom-color: rgba(${theme['headline-rgb']}, 0.5);\n `;\n }\n }\n\n return undefined;\n }}\n ${({ $isParentWrapped }: StyledMotionAccordionProps) =>\n $isParentWrapped &&\n css`\n padding-left: 17px;\n `}\n ${({ $isWrapped }: StyledMotionAccordionProps) =>\n !$isWrapped\n ? css`\n margin-top: 5px;\n `\n : css`\n margin: 0;\n `}\n ${({ $isWrapped, $shouldHideBackground, theme }: StyledMotionAccordionProps) =>\n !$isWrapped &&\n !$shouldHideBackground &&\n css`\n &:hover {\n background-color: rgba(${theme['100-rgb']}, ${theme.cardBackgroundOpacity});\n }\n `};\n`;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,cAAc;AACrC,OAAOC,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAa/C,OAAO,MAAMC,qBAAqB,GAAGF,MAAM,CAACD,MAAM,CAACI,GAAG,CAA6B;AACnF,MAAMC,IAAA;EAAA,IAAC;IACCC,OAAO;IACPC,UAAU;IACVC,sBAAsB;IACtBC,qBAAqB;IACrBC;EACwB,CAAC,GAAAL,IAAA;EAAA,OACzB,CAACC,OAAO,IAAIE,sBAAsB,KAClC,CAACD,UAAU,IACX,CAACE,qBAAqB,IACtBP,GAAG;AACX,qCAAqCQ,KAAK,CAAC,SAAS,CAAC,KAAKA,KAAK,CAACC,qBAAqB;AACrF,6BAA6BD,KAAK,CAACE,gBAAgB;AACnD,oDAAoDF,KAAK,CAACG,UAAU;AACpE,SAAS;AAAA;AACT;AACA,MAAMC,KAAA;EAAA,IAAC;IAAEJ;EAAkC,CAAC,GAAAI,KAAA;EAAA,OACpCJ,KAAK,CAACK,cAAc,IACpBb,GAAG;AACX;AACA,SAAS;AAAA;AACT;AACA,qBAAqBc,KAAA;EAAA,IAAC;IAAEV,OAAO;IAAEC;EAAuC,CAAC,GAAAS,KAAA;EAAA,OACjEV,OAAO,IAAI,CAACC,UAAU,GAAG,MAAM,GAAG,KAAK;AAAA;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMU,KAAA,IAOgC;EAAA,IAP/B;IACCX,OAAO;IACPC,UAAU;IACVC,sBAAsB;IACtBU,gBAAgB;IAChBC,qBAAqB;IACrBT;EACwB,CAAC,GAAAO,KAAA;EACzB,IAAIT,sBAAsB,IAAIW,qBAAqB,EAAE,OAAOC,SAAS;EAErE,IAAIV,KAAK,CAACK,cAAc,EAAE;IACtB,IAAIR,UAAU,IAAIW,gBAAgB,EAAE;MAChC,OAAOhB,GAAG;AAC1B,gDAAgDQ,KAAK,CAAC,cAAc,CAAC;AACrE,iBAAiB;IACL;IAEA,IAAI,CAACJ,OAAO,IAAIY,gBAAgB,EAAE;MAC9B,OAAOhB,GAAG;AAC1B,gDAAgDQ,KAAK,CAAC,cAAc,CAAC;AACrE,iBAAiB;IACL;EACJ;EAEA,OAAOU,SAAS;AACpB,CAAC;AACL,MAAMC,KAAA;EAAA,IAAC;IAAEC;EAA6C,CAAC,GAAAD,KAAA;EAAA,OAC/CC,gBAAgB,IAChBpB,GAAG;AACX;AACA,SAAS;AAAA;AACT,MAAMqB,KAAA;EAAA,IAAC;IAAEhB;EAAuC,CAAC,GAAAgB,KAAA;EAAA,OACzC,CAAChB,UAAU,GACLL,GAAG;AACjB;AACA,eAAe,GACDA,GAAG;AACjB;AACA,eAAe;AAAA;AACf,MAAMsB,KAAA;EAAA,IAAC;IAAEjB,UAAU;IAAEE,qBAAqB;IAAEC;EAAkC,CAAC,GAAAc,KAAA;EAAA,OACvE,CAACjB,UAAU,IACX,CAACE,qBAAqB,IACtBP,GAAG;AACX;AACA,yCAAyCQ,KAAK,CAAC,SAAS,CAAC,KAAKA,KAAK,CAACC,qBAAqB;AACzF;AACA,SAAS;AAAA;AACT,CAAC","ignoreList":[]}
|
|
@@ -30,8 +30,8 @@ const AccordionHead = _ref => {
|
|
|
30
30
|
titleColor
|
|
31
31
|
} = _ref;
|
|
32
32
|
const [headHeight, setHeadHeight] = useState({
|
|
33
|
-
closed: isWrapped ? 40 :
|
|
34
|
-
open: isWrapped ? 40 :
|
|
33
|
+
closed: isWrapped ? 40 : 32,
|
|
34
|
+
open: isWrapped ? 40 : 32
|
|
35
35
|
});
|
|
36
36
|
const [isSearchActive, setIsSearchActive] = useState(false);
|
|
37
37
|
const theme = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionHead.js","names":["AnimatePresence","LayoutGroup","React","useEffect","useMemo","useRef","useState","useTheme","useElementSize","getAccordionHeadHeight","getElementClickEvent","AreaContext","Icon","Input","InputSize","SearchInput","StyledAccordionIcon","StyledMotionAccordionHead","StyledMotionContentWrapper","StyledMotionIconWrapper","StyledMotionRightElementWrapper","StyledMotionSearchWrapper","StyledMotionTitle","StyledMotionTitleElementWrapper","StyledMotionTitleWrapper","StyledRightWrapper","AccordionHead","_ref","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","uuid","titleInputProps","onTitleInputChange","titleColor","headHeight","setHeadHeight","closed","open","isSearchActive","setIsSearchActive","theme","titleElementWrapperRef","titleWrapperRef","internalSearchValue","setInternalSearchValue","handleOnSearchChance","event","target","value","titleElementChildrenSize","shouldUseChildElement","shouldPreventRightElementClick","width","current","clientWidth","hasSearch","fontSize","iconElement","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","className","$icon","accordionHeadHeight","height","animate","initial","key","rotate","undefined","opacity","ref","$isWrapped","Provider","shouldChangeColor","_extends","onChange","scale","exit","$isOpen","$color","$hasSearch","transition","duration","layout","$isSearchActive","onActiveChange","isActive","placeholder","size","Small","displayName"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { useElementSize } from '../../../hooks/useElementSize';\nimport { getAccordionHeadHeight, getElementClickEvent } from '../../../utils/accordion';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\nimport type { Theme } from '../../color-scheme-provider/ColorSchemeProvider';\nimport Icon from '../../icon/Icon';\nimport Input, { InputSize, type InputProps } from '../../input/Input';\nimport SearchInput from '../../search-input/SearchInput';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionSearchWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\nexport type 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 searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n uuid: string;\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n titleInputProps?: InputProps;\n titleColor?: CSSProperties['color'];\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 searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n uuid,\n titleInputProps,\n onTitleInputChange,\n titleColor,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 33,\n open: isWrapped ? 40 : 33,\n });\n\n const [isSearchActive, setIsSearchActive] = useState(false);\n\n const theme = useTheme() as Theme;\n\n const titleElementWrapperRef = useRef<HTMLDivElement>(null);\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const [internalSearchValue, setInternalSearchValue] = useState<string>();\n\n useEffect(() => {\n setInternalSearchValue(searchValue);\n }, [searchValue]);\n\n const handleOnSearchChance = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalSearchValue(event.target.value);\n if (typeof onSearchChange === 'function') {\n onSearchChange(event);\n }\n };\n\n const titleElementChildrenSize = useElementSize(titleElementWrapperRef, {\n shouldUseChildElement: true,\n });\n\n const shouldPreventRightElementClick = useMemo(\n () => getElementClickEvent(rightElement),\n [rightElement],\n );\n\n useEffect(() => {\n if (typeof onTitleInputChange === 'function') {\n setHeadHeight({ closed: 50, open: 50 });\n } else {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) + 10,\n hasSearch: typeof onSearchChange === 'function',\n }),\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, onSearchChange, onTitleInputChange, theme.fontSize, title]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon\n icons={[isFixed ? 'fa fa-horizontal-rule' : (icon ?? 'fa fa-chevron-right')]}\n />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n (theme.accordionIcon as unknown as number) !== 110 &&\n (theme.accordionIcon as unknown as number) !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as unknown as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? theme.iconStyle : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n let accordionHeadHeight = isOpen ? headHeight.open : headHeight.closed;\n\n if (titleElementChildrenSize && titleElementChildrenSize.height > accordionHeadHeight) {\n // If the titleElement is bigger than the title, the height of the accordion head should be increased.\n // The height of the titleElement is increased by 8px because of the padding of the accordion head element.\n accordionHeadHeight = titleElementChildrenSize.height + 8;\n }\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: accordionHeadHeight }}\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 $isWrapped={isWrapped}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n {typeof onTitleInputChange === 'function' ? (\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <Input {...titleInputProps} value={title} onChange={onTitleInputChange} />\n </AreaContext.Provider>\n ) : (\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <StyledMotionTitleWrapper key={`accordionHeadTitleWrapperWrapper--${uuid}`}>\n <AnimatePresence\n initial={false}\n key={`accordionHeadTitleWrapper--${uuid}`}\n >\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 $color={titleColor}\n $hasSearch={typeof onSearchChange === 'function'}\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 ref={titleElementWrapperRef}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n )}\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper $isSearchActive={isSearchActive}>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen && (\n <StyledMotionSearchWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`searchWrapper--${uuid}`}\n >\n <SearchInput\n onChange={handleOnSearchChance}\n onActiveChange={(isActive) => setIsSearchActive(isActive)}\n placeholder={searchPlaceholder}\n size={InputSize.Small}\n value={internalSearchValue}\n />\n </StyledMotionSearchWrapper>\n )}\n {rightElement && (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n onClick={\n !isFixed && !shouldPreventRightElementClick\n ? onClick\n : undefined\n }\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","useElementSize","getAccordionHeadHeight","getElementClickEvent","AreaContext","Icon","Input","InputSize","SearchInput","StyledAccordionIcon","StyledMotionAccordionHead","StyledMotionContentWrapper","StyledMotionIconWrapper","StyledMotionRightElementWrapper","StyledMotionSearchWrapper","StyledMotionTitle","StyledMotionTitleElementWrapper","StyledMotionTitleWrapper","StyledRightWrapper","AccordionHead","_ref","icon","isOpen","isFixed","isTitleGreyed","isWrapped","onClick","onSearchChange","rightElement","searchPlaceholder","searchValue","shouldRotateIcon","title","titleElement","uuid","titleInputProps","onTitleInputChange","titleColor","headHeight","setHeadHeight","closed","open","isSearchActive","setIsSearchActive","theme","titleElementWrapperRef","titleWrapperRef","internalSearchValue","setInternalSearchValue","handleOnSearchChance","event","target","value","titleElementChildrenSize","shouldUseChildElement","shouldPreventRightElementClick","width","current","clientWidth","hasSearch","fontSize","iconElement","createElement","icons","internalIcon","accordionIcon","toString","internalIconStyle","iconStyle","className","$icon","accordionHeadHeight","height","animate","initial","key","rotate","undefined","opacity","ref","$isWrapped","Provider","shouldChangeColor","_extends","onChange","scale","exit","$isOpen","$color","$hasSearch","transition","duration","layout","$isSearchActive","onActiveChange","isActive","placeholder","size","Small","displayName"],"sources":["../../../../../src/components/accordion/accordion-head/AccordionHead.tsx"],"sourcesContent":["import { AnimatePresence, LayoutGroup } from 'motion/react';\nimport React, {\n ChangeEvent,\n ChangeEventHandler,\n FC,\n MouseEventHandler,\n ReactNode,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { useElementSize } from '../../../hooks/useElementSize';\nimport { getAccordionHeadHeight, getElementClickEvent } from '../../../utils/accordion';\nimport { AreaContext } from '../../area-provider/AreaContextProvider';\nimport type { Theme } from '../../color-scheme-provider/ColorSchemeProvider';\nimport Icon from '../../icon/Icon';\nimport Input, { InputSize, type InputProps } from '../../input/Input';\nimport SearchInput from '../../search-input/SearchInput';\nimport {\n StyledAccordionIcon,\n StyledMotionAccordionHead,\n StyledMotionContentWrapper,\n StyledMotionIconWrapper,\n StyledMotionRightElementWrapper,\n StyledMotionSearchWrapper,\n StyledMotionTitle,\n StyledMotionTitleElementWrapper,\n StyledMotionTitleWrapper,\n StyledRightWrapper,\n} from './AccordionHead.styles';\n\nexport type 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 searchPlaceholder?: string;\n searchValue?: string;\n shouldRotateIcon?: boolean;\n title: string;\n titleElement?: ReactNode;\n uuid: string;\n onTitleInputChange?: ChangeEventHandler<HTMLInputElement>;\n titleInputProps?: InputProps;\n titleColor?: CSSProperties['color'];\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 searchPlaceholder,\n searchValue,\n shouldRotateIcon,\n title,\n titleElement,\n uuid,\n titleInputProps,\n onTitleInputChange,\n titleColor,\n}) => {\n const [headHeight, setHeadHeight] = useState<HeadHeight>({\n closed: isWrapped ? 40 : 32,\n open: isWrapped ? 40 : 32,\n });\n\n const [isSearchActive, setIsSearchActive] = useState(false);\n\n const theme = useTheme() as Theme;\n\n const titleElementWrapperRef = useRef<HTMLDivElement>(null);\n const titleWrapperRef = useRef<HTMLDivElement>(null);\n\n const [internalSearchValue, setInternalSearchValue] = useState<string>();\n\n useEffect(() => {\n setInternalSearchValue(searchValue);\n }, [searchValue]);\n\n const handleOnSearchChance = (event: ChangeEvent<HTMLInputElement>) => {\n setInternalSearchValue(event.target.value);\n if (typeof onSearchChange === 'function') {\n onSearchChange(event);\n }\n };\n\n const titleElementChildrenSize = useElementSize(titleElementWrapperRef, {\n shouldUseChildElement: true,\n });\n\n const shouldPreventRightElementClick = useMemo(\n () => getElementClickEvent(rightElement),\n [rightElement],\n );\n\n useEffect(() => {\n if (typeof onTitleInputChange === 'function') {\n setHeadHeight({ closed: 50, open: 50 });\n } else {\n setHeadHeight(\n getAccordionHeadHeight({\n isWrapped,\n title,\n width: (titleWrapperRef.current?.clientWidth ?? 0) + 10,\n hasSearch: typeof onSearchChange === 'function',\n }),\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, onSearchChange, onTitleInputChange, theme.fontSize, title]);\n\n const iconElement = useMemo(() => {\n if (icon || isFixed) {\n return (\n <Icon\n icons={[isFixed ? 'fa fa-horizontal-rule' : (icon ?? 'fa fa-chevron-right')]}\n />\n );\n }\n\n let internalIcon = 'f105';\n\n if (\n theme?.accordionIcon &&\n (theme.accordionIcon as unknown as number) !== 110 &&\n (theme.accordionIcon as unknown as number) !== 1110100\n ) {\n internalIcon = (theme.accordionIcon as unknown as number).toString(16);\n }\n\n const internalIconStyle = theme?.iconStyle ? theme.iconStyle : 'fa-regular';\n\n return <StyledAccordionIcon className={internalIconStyle} $icon={internalIcon} />;\n }, [icon, theme, isFixed]);\n\n let accordionHeadHeight = isOpen ? headHeight.open : headHeight.closed;\n\n if (titleElementChildrenSize && titleElementChildrenSize.height > accordionHeadHeight) {\n // If the titleElement is bigger than the title, the height of the accordion head should be increased.\n // The height of the titleElement is increased by 8px because of the padding of the accordion head element.\n accordionHeadHeight = titleElementChildrenSize.height + 8;\n }\n\n return (\n <StyledMotionAccordionHead\n animate={{ height: accordionHeadHeight }}\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 $isWrapped={isWrapped}\n key={`accordionHeadContentWrapper--${uuid}`}\n >\n {typeof onTitleInputChange === 'function' ? (\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n <AreaContext.Provider value={{ shouldChangeColor: true }}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <Input {...titleInputProps} value={title} onChange={onTitleInputChange} />\n </AreaContext.Provider>\n ) : (\n <LayoutGroup key={`accordionHeadLayoutGroup--${uuid}`}>\n <StyledMotionTitleWrapper key={`accordionHeadTitleWrapperWrapper--${uuid}`}>\n <AnimatePresence\n initial={false}\n key={`accordionHeadTitleWrapper--${uuid}`}\n >\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 $color={titleColor}\n $hasSearch={typeof onSearchChange === 'function'}\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 ref={titleElementWrapperRef}\n >\n {titleElement}\n </StyledMotionTitleElementWrapper>\n )}\n </LayoutGroup>\n )}\n </StyledMotionContentWrapper>\n {(typeof onSearchChange === 'function' || rightElement) && (\n <StyledRightWrapper $isSearchActive={isSearchActive}>\n <AnimatePresence initial={false} key={`accordionRightWrapper--${uuid}`}>\n {typeof onSearchChange === 'function' && isOpen && (\n <StyledMotionSearchWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`searchWrapper--${uuid}`}\n >\n <SearchInput\n onChange={handleOnSearchChance}\n onActiveChange={(isActive) => setIsSearchActive(isActive)}\n placeholder={searchPlaceholder}\n size={InputSize.Small}\n value={internalSearchValue}\n />\n </StyledMotionSearchWrapper>\n )}\n {rightElement && (\n <StyledMotionRightElementWrapper\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n initial={{ opacity: 0 }}\n key={`rightElementWrapper--${uuid}`}\n onClick={\n !isFixed && !shouldPreventRightElementClick\n ? onClick\n : undefined\n }\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":[]}
|
|
@@ -10,7 +10,8 @@ const TagInput = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
10
10
|
placeholder,
|
|
11
11
|
tags,
|
|
12
12
|
onRemove,
|
|
13
|
-
onAdd
|
|
13
|
+
onAdd,
|
|
14
|
+
onChange
|
|
14
15
|
} = _ref;
|
|
15
16
|
const [internalTags, setInternalTags] = useState();
|
|
16
17
|
const [currentValue, setCurrentValue] = useState('');
|
|
@@ -71,12 +72,15 @@ const TagInput = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
71
72
|
});
|
|
72
73
|
}
|
|
73
74
|
}, [currentValue, internalTags, onAdd, onRemove, selectedId]);
|
|
74
|
-
const handleChange = event => {
|
|
75
|
+
const handleChange = useCallback(event => {
|
|
75
76
|
setCurrentValue(event.target.value);
|
|
77
|
+
if (typeof onChange === 'function') {
|
|
78
|
+
onChange(event);
|
|
79
|
+
}
|
|
76
80
|
if (event.target.value !== '') {
|
|
77
81
|
setSelectedId(undefined);
|
|
78
82
|
}
|
|
79
|
-
};
|
|
83
|
+
}, [onChange]);
|
|
80
84
|
const handleIconClick = useCallback(id => {
|
|
81
85
|
setInternalTags(prevState => {
|
|
82
86
|
const updatedTags = (prevState ?? []).filter(tag => tag.id !== id);
|
|
@@ -113,7 +117,7 @@ const TagInput = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
113
117
|
onKeyDown: handleKeyDown,
|
|
114
118
|
onChange: handleChange,
|
|
115
119
|
value: currentValue
|
|
116
|
-
})), [content, currentValue, handleKeyDown, placeholder, shouldChangeColor, tags]);
|
|
120
|
+
})), [content, currentValue, handleChange, handleKeyDown, placeholder, shouldChangeColor, tags]);
|
|
117
121
|
});
|
|
118
122
|
export default TagInput;
|
|
119
123
|
//# sourceMappingURL=TagInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TagInput.js","names":["React","forwardRef","useCallback","useEffect","useMemo","useState","useImperativeHandle","useContext","useTheme","v4","uuidv4","Badge","Icon","StyledTagInput","StyledTagInputTagInput","StyledTagInputTagWrapper","StyledTagInputTagWrapperText","AreaContext","TagInput","_ref","ref","placeholder","tags","onRemove","onAdd","internalTags","setInternalTags","currentValue","setCurrentValue","selectedId","setSelectedId","areaProvider","theme","shouldChangeColor","getUnsavedTagText","undefined","handleKeyDown","event","key","prevValue","prevTags","newTag","id","text","newSelectedId","length","prevState","removedId","updatedTags","filter","tag","handleChange","target","value","handleIconClick","content","items","forEach","_ref2","push","createElement","backgroundColor","icons","onClick","$shouldChangeColor","onKeyDown","onChange"],"sources":["../../../../src/components/tag-input/TagInput.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type ChangeEvent,\n type KeyboardEvent,\n type ReactElement,\n useImperativeHandle,\n useContext,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\nimport type { Tag } from '../../types/tagInput';\nimport Badge from '../badge/Badge';\nimport Icon from '../icon/Icon';\nimport {\n StyledTagInput,\n StyledTagInputTagInput,\n StyledTagInputTagWrapper,\n StyledTagInputTagWrapperText,\n} from './TagInput.styles';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport type { Theme } from '../color-scheme-provider/ColorSchemeProvider';\n\nexport type TagInputProps = {\n /**\n * Function to be executed when a tag is added.\n */\n onAdd?: (tag: Tag) => void;\n /**\n * Function to be executed when a tag is removed.\n */\n onRemove?: (id: string) => void;\n /**\n * The placeholder that should be displayed.\n */\n placeholder?: string;\n /**\n * The tags that should be displayed.\n */\n tags?: Tag[];\n};\n\nexport type TagInputRef = {\n getUnsavedTagText: Tag['text'] | undefined;\n};\n\nconst TagInput = forwardRef<TagInputRef, TagInputProps>(\n ({ placeholder, tags, onRemove, onAdd }, ref) => {\n const [internalTags, setInternalTags] = useState<Tag[]>();\n const [currentValue, setCurrentValue] = useState('');\n const [selectedId, setSelectedId] = useState<Tag['id']>();\n\n const areaProvider = useContext(AreaContext);\n\n const theme = useTheme() as Theme;\n\n useEffect(() => {\n if (tags) {\n setInternalTags(tags);\n }\n }, [tags]);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n getUnsavedTagText: currentValue !== '' ? currentValue : undefined,\n }),\n [currentValue],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n setCurrentValue((prevValue) => {\n if (!prevValue) {\n return '';\n }\n\n setInternalTags((prevTags) => {\n const newTag = { id: uuidv4(), text: prevValue };\n\n if (typeof onAdd === 'function') {\n onAdd(newTag);\n }\n\n return prevTags ? [...prevTags, newTag] : [newTag];\n });\n\n return '';\n });\n }\n\n if (event.key === 'Backspace' && currentValue === '') {\n if (!selectedId) {\n if (!internalTags) {\n return;\n }\n\n const newSelectedId = internalTags[internalTags.length - 1]?.id;\n\n setSelectedId(newSelectedId);\n\n return;\n }\n\n setInternalTags((prevState) => {\n if (!prevState) {\n return prevState;\n }\n\n const removedId = prevState[prevState.length - 1]?.id;\n\n if (!removedId) {\n return prevState;\n }\n\n const updatedTags = (prevState ?? []).filter((tag) => tag.id !== removedId);\n\n if (typeof onRemove === 'function') {\n onRemove(removedId);\n }\n\n setSelectedId(undefined);\n\n return updatedTags;\n });\n }\n },\n [currentValue, internalTags, onAdd, onRemove, selectedId],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setCurrentValue(event.target.value);\n\n if (event.target.value !== '') {\n setSelectedId(undefined);\n }\n };\n\n const handleIconClick = useCallback(\n (id: string) => {\n setInternalTags((prevState) => {\n const updatedTags = (prevState ?? []).filter((tag) => tag.id !== id);\n\n if (typeof onRemove === 'function') {\n onRemove(id);\n }\n\n return updatedTags;\n });\n },\n [onRemove],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!internalTags) {\n return items;\n }\n\n internalTags.forEach(({ text, id }) => {\n items.push(\n <Badge\n key={`tag-input-${id}`}\n backgroundColor={\n id === selectedId ? ((theme['206'] as string) ?? undefined) : undefined\n }\n >\n <StyledTagInputTagWrapper>\n <StyledTagInputTagWrapperText>{text}</StyledTagInputTagWrapperText>\n <Icon icons={['ts-wrong']} onClick={() => handleIconClick(id)} />\n </StyledTagInputTagWrapper>\n </Badge>,\n );\n });\n\n return items;\n }, [handleIconClick, internalTags, selectedId, theme]);\n\n return useMemo(\n () => (\n <StyledTagInput $shouldChangeColor={shouldChangeColor}>\n {content}\n <StyledTagInputTagInput\n placeholder={tags && tags.length > 0 ? undefined : placeholder}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n value={currentValue}\n />\n </StyledTagInput>\n ),\n [content, currentValue, handleKeyDown, placeholder, shouldChangeColor, tags],\n );\n },\n);\n\nexport default TagInput;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TagInput.js","names":["React","forwardRef","useCallback","useEffect","useMemo","useState","useImperativeHandle","useContext","useTheme","v4","uuidv4","Badge","Icon","StyledTagInput","StyledTagInputTagInput","StyledTagInputTagWrapper","StyledTagInputTagWrapperText","AreaContext","TagInput","_ref","ref","placeholder","tags","onRemove","onAdd","onChange","internalTags","setInternalTags","currentValue","setCurrentValue","selectedId","setSelectedId","areaProvider","theme","shouldChangeColor","getUnsavedTagText","undefined","handleKeyDown","event","key","prevValue","prevTags","newTag","id","text","newSelectedId","length","prevState","removedId","updatedTags","filter","tag","handleChange","target","value","handleIconClick","content","items","forEach","_ref2","push","createElement","backgroundColor","icons","onClick","$shouldChangeColor","onKeyDown"],"sources":["../../../../src/components/tag-input/TagInput.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useState,\n type ChangeEvent,\n type KeyboardEvent,\n type ReactElement,\n useImperativeHandle,\n useContext,\n ChangeEventHandler,\n} from 'react';\nimport { useTheme } from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\nimport type { Tag } from '../../types/tagInput';\nimport Badge from '../badge/Badge';\nimport Icon from '../icon/Icon';\nimport {\n StyledTagInput,\n StyledTagInputTagInput,\n StyledTagInputTagWrapper,\n StyledTagInputTagWrapperText,\n} from './TagInput.styles';\nimport { AreaContext } from '../area-provider/AreaContextProvider';\nimport type { Theme } from '../color-scheme-provider/ColorSchemeProvider';\n\nexport type TagInputProps = {\n /**\n * Function to be executed when a tag is added.\n */\n onAdd?: (tag: Tag) => void;\n /**\n * Function to be executed when the value of the input is changed.\n */\n onChange?: ChangeEventHandler<HTMLInputElement>;\n /**\n * Function to be executed when a tag is removed.\n */\n onRemove?: (id: string) => void;\n /**\n * The placeholder that should be displayed.\n */\n placeholder?: string;\n /**\n * The tags that should be displayed.\n */\n tags?: Tag[];\n};\n\nexport type TagInputRef = {\n getUnsavedTagText: Tag['text'] | undefined;\n};\n\nconst TagInput = forwardRef<TagInputRef, TagInputProps>(\n ({ placeholder, tags, onRemove, onAdd, onChange }, ref) => {\n const [internalTags, setInternalTags] = useState<Tag[]>();\n const [currentValue, setCurrentValue] = useState('');\n const [selectedId, setSelectedId] = useState<Tag['id']>();\n\n const areaProvider = useContext(AreaContext);\n\n const theme = useTheme() as Theme;\n\n useEffect(() => {\n if (tags) {\n setInternalTags(tags);\n }\n }, [tags]);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n getUnsavedTagText: currentValue !== '' ? currentValue : undefined,\n }),\n [currentValue],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.key === 'Enter') {\n setCurrentValue((prevValue) => {\n if (!prevValue) {\n return '';\n }\n\n setInternalTags((prevTags) => {\n const newTag = { id: uuidv4(), text: prevValue };\n\n if (typeof onAdd === 'function') {\n onAdd(newTag);\n }\n\n return prevTags ? [...prevTags, newTag] : [newTag];\n });\n\n return '';\n });\n }\n\n if (event.key === 'Backspace' && currentValue === '') {\n if (!selectedId) {\n if (!internalTags) {\n return;\n }\n\n const newSelectedId = internalTags[internalTags.length - 1]?.id;\n\n setSelectedId(newSelectedId);\n\n return;\n }\n\n setInternalTags((prevState) => {\n if (!prevState) {\n return prevState;\n }\n\n const removedId = prevState[prevState.length - 1]?.id;\n\n if (!removedId) {\n return prevState;\n }\n\n const updatedTags = (prevState ?? []).filter((tag) => tag.id !== removedId);\n\n if (typeof onRemove === 'function') {\n onRemove(removedId);\n }\n\n setSelectedId(undefined);\n\n return updatedTags;\n });\n }\n },\n [currentValue, internalTags, onAdd, onRemove, selectedId],\n );\n\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setCurrentValue(event.target.value);\n\n if (typeof onChange === 'function') {\n onChange(event);\n }\n\n if (event.target.value !== '') {\n setSelectedId(undefined);\n }\n },\n [onChange],\n );\n\n const handleIconClick = useCallback(\n (id: string) => {\n setInternalTags((prevState) => {\n const updatedTags = (prevState ?? []).filter((tag) => tag.id !== id);\n\n if (typeof onRemove === 'function') {\n onRemove(id);\n }\n\n return updatedTags;\n });\n },\n [onRemove],\n );\n\n const content = useMemo(() => {\n const items: ReactElement[] = [];\n\n if (!internalTags) {\n return items;\n }\n\n internalTags.forEach(({ text, id }) => {\n items.push(\n <Badge\n key={`tag-input-${id}`}\n backgroundColor={\n id === selectedId ? ((theme['206'] as string) ?? undefined) : undefined\n }\n >\n <StyledTagInputTagWrapper>\n <StyledTagInputTagWrapperText>{text}</StyledTagInputTagWrapperText>\n <Icon icons={['ts-wrong']} onClick={() => handleIconClick(id)} />\n </StyledTagInputTagWrapper>\n </Badge>,\n );\n });\n\n return items;\n }, [handleIconClick, internalTags, selectedId, theme]);\n\n return useMemo(\n () => (\n <StyledTagInput $shouldChangeColor={shouldChangeColor}>\n {content}\n <StyledTagInputTagInput\n placeholder={tags && tags.length > 0 ? undefined : placeholder}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n value={currentValue}\n />\n </StyledTagInput>\n ),\n [\n content,\n currentValue,\n handleChange,\n handleKeyDown,\n placeholder,\n shouldChangeColor,\n tags,\n ],\n );\n },\n);\n\nexport default TagInput;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { ChangeEventHandler } from 'react';
|
|
2
2
|
import type { Tag } from '../../types/tagInput';
|
|
3
3
|
export type TagInputProps = {
|
|
4
4
|
/**
|
|
5
5
|
* Function to be executed when a tag is added.
|
|
6
6
|
*/
|
|
7
7
|
onAdd?: (tag: Tag) => void;
|
|
8
|
+
/**
|
|
9
|
+
* Function to be executed when the value of the input is changed.
|
|
10
|
+
*/
|
|
11
|
+
onChange?: ChangeEventHandler<HTMLInputElement>;
|
|
8
12
|
/**
|
|
9
13
|
* Function to be executed when a tag is removed.
|
|
10
14
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chayns-components/core",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.1116",
|
|
4
4
|
"description": "A set of beautiful React components for developing your own applications with chayns.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"browserslist": [
|
|
@@ -86,5 +86,5 @@
|
|
|
86
86
|
"publishConfig": {
|
|
87
87
|
"access": "public"
|
|
88
88
|
},
|
|
89
|
-
"gitHead": "
|
|
89
|
+
"gitHead": "6a2633f5e255424ee74e97b2525c3e6a23923f1c"
|
|
90
90
|
}
|