@chayns-components/core 5.5.34 → 5.5.36
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/AGENTS.md +6 -0
- package/lib/cjs/components/accordion/accordion-group/AccordionGroup.js +4 -3
- package/lib/cjs/components/accordion/accordion-group/AccordionGroup.js.map +1 -1
- package/lib/esm/components/accordion/accordion-group/AccordionGroup.js +4 -3
- package/lib/esm/components/accordion/accordion-group/AccordionGroup.js.map +1 -1
- package/lib/types/components/accordion/accordion-group/AccordionGroup.d.ts +5 -0
- package/package.json +2 -2
package/AGENTS.md
CHANGED
|
@@ -26,7 +26,8 @@ const AccordionGroup = ({
|
|
|
26
26
|
children,
|
|
27
27
|
isWrapped,
|
|
28
28
|
onClose,
|
|
29
|
-
onOpen
|
|
29
|
+
onOpen,
|
|
30
|
+
shouldDisableInternalHandling = false
|
|
30
31
|
}) => {
|
|
31
32
|
const [openAccordionUuid, setOpenAccordionUuid] = (0, _react2.useState)(undefined);
|
|
32
33
|
const [accordionUuids, setAccordionUuids] = (0, _react2.useState)();
|
|
@@ -87,14 +88,14 @@ const AccordionGroup = ({
|
|
|
87
88
|
isWrapped: shouldWrap,
|
|
88
89
|
openAccordionUuid,
|
|
89
90
|
setOpenAccordionUuid,
|
|
90
|
-
updateOpenAccordionUuid,
|
|
91
|
+
updateOpenAccordionUuid: shouldDisableInternalHandling ? undefined : updateOpenAccordionUuid,
|
|
91
92
|
accordionUuids,
|
|
92
93
|
registerAccordionUuid,
|
|
93
94
|
unregisterAccordionUuid,
|
|
94
95
|
activeAccordionUuid,
|
|
95
96
|
updateActiveAccordionUuid,
|
|
96
97
|
accordionGroupUuid: accordionGroupId
|
|
97
|
-
}), [accordionGroupId, accordionUuids, shouldWrap, openAccordionUuid, registerAccordionUuid, unregisterAccordionUuid, updateOpenAccordionUuid, activeAccordionUuid, updateActiveAccordionUuid]);
|
|
98
|
+
}), [accordionGroupId, accordionUuids, shouldWrap, openAccordionUuid, registerAccordionUuid, unregisterAccordionUuid, updateOpenAccordionUuid, activeAccordionUuid, updateActiveAccordionUuid, shouldDisableInternalHandling]);
|
|
98
99
|
return /*#__PURE__*/_react2.default.createElement(AccordionGroupContext.Provider, {
|
|
99
100
|
value: providerValue
|
|
100
101
|
}, /*#__PURE__*/_react2.default.createElement(_react.MotionConfig, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionGroup.js","names":["_react","require","_react2","_interopRequireWildcard","_uuid","_AreaContextProvider","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AccordionGroupContext","exports","React","createContext","isWrapped","undefined","openAccordionUuid","setOpenAccordionUuid","updateOpenAccordionUuid","accordionUuids","registerAccordionUuid","unregisterAccordionUuid","activeAccordionUuid","updateActiveAccordionUuid","accordionGroupUuid","displayName","AccordionGroup","children","onClose","onOpen","useState","setAccordionUuids","setActiveAccordionUuid","accordionGroupId","useUuid","isInitialRenderRef","useRef","areaProvider","useContext","AreaContext","shouldWrap","shouldChangeColor","useCallback","uuid","shouldOnlyOpen","currentOpenAccordionUuid","sortAccordionUuidsByDom","uuids","document","domOrderedUuids","Array","from","querySelectorAll","map","element","_element$getAttribute","getAttribute","split","filter","Boolean","includes","currentAccordionUuids","nextAccordionUuids","currentUuid","useEffect","length","currentActiveAccordionUuid","current","providerValue","useMemo","createElement","Provider","value","MotionConfig","transition","type","AnimatePresence","initial","_default"],"sources":["../../../../../src/components/accordion/accordion-group/AccordionGroup.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'motion/react';\nimport React, {\n Dispatch,\n FC,\n ReactNode,\n SetStateAction,\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';\n\ntype IUpdateOpenAccordionUuid = (uuid: string, options?: { shouldOnlyOpen?: boolean }) => void;\ntype IUpdateActiveAccordionUuid = (uuid?: string) => void;\ntype IRegisterAccordionUuid = (uuid: string) => void;\ntype IUnregisterAccordionUuid = (uuid: string) => void;\n\ninterface IAccordionGroupContext {\n isWrapped?: boolean;\n openAccordionUuid?: string;\n setOpenAccordionUuid?: Dispatch<SetStateAction<string | undefined>>;\n updateOpenAccordionUuid?: IUpdateOpenAccordionUuid;\n accordionUuids?: string[];\n registerAccordionUuid?: IRegisterAccordionUuid;\n unregisterAccordionUuid?: IUnregisterAccordionUuid;\n activeAccordionUuid?: string;\n updateActiveAccordionUuid?: IUpdateActiveAccordionUuid;\n accordionGroupUuid?: string;\n}\n\nexport const AccordionGroupContext = React.createContext<IAccordionGroupContext>({\n isWrapped: undefined,\n openAccordionUuid: undefined,\n setOpenAccordionUuid: undefined,\n updateOpenAccordionUuid: undefined,\n accordionUuids: undefined,\n registerAccordionUuid: undefined,\n unregisterAccordionUuid: undefined,\n activeAccordionUuid: undefined,\n updateActiveAccordionUuid: undefined,\n accordionGroupUuid: undefined,\n});\n\nAccordionGroupContext.displayName = 'AccordionGroupContext';\n\ntype AccordionGroupProps = {\n /**\n * The Accordions that should be grouped. Accordions with the same group are\n * automatically closed when an `Accordion` of the group is opened.\n */\n children: ReactNode;\n /**\n * This value must be set for nested AccordionGroup components. This adjusts the style of\n * the head and the padding of the content accordions.\n */\n isWrapped?: boolean;\n /**\n * Function that is executed when all accordions in group are closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when any accordion in group will be opened.\n */\n onOpen?: VoidFunction;\n};\n\nconst AccordionGroup: FC<AccordionGroupProps> = ({ children, isWrapped, onClose, onOpen }) => {\n const [openAccordionUuid, setOpenAccordionUuid] =\n useState<IAccordionGroupContext['openAccordionUuid']>(undefined);\n const [accordionUuids, setAccordionUuids] = useState<string[]>();\n const [activeAccordionUuid, setActiveAccordionUuid] =\n useState<IAccordionGroupContext['activeAccordionUuid']>(undefined);\n\n const accordionGroupId = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const areaProvider = useContext(AreaContext);\n\n const shouldWrap = areaProvider.shouldChangeColor ? true : isWrapped;\n\n const updateOpenAccordionUuid = useCallback<IUpdateOpenAccordionUuid>(\n (uuid, { shouldOnlyOpen } = {}) => {\n setOpenAccordionUuid((currentOpenAccordionUuid) => {\n if (currentOpenAccordionUuid === uuid && shouldOnlyOpen !== true) {\n return undefined;\n }\n\n return uuid;\n });\n },\n [setOpenAccordionUuid],\n );\n\n const sortAccordionUuidsByDom = useCallback(\n (uuids: string[]) => {\n if (typeof document === 'undefined') return uuids;\n\n const domOrderedUuids = Array.from(\n document.querySelectorAll<HTMLElement>(`[data-uuid^=\"${accordionGroupId}---\"]`),\n )\n .map((element) => element.getAttribute('data-uuid')?.split('---')[1])\n .filter((uuid): uuid is string => Boolean(uuid));\n\n return domOrderedUuids.filter((uuid) => uuids.includes(uuid));\n },\n [accordionGroupId],\n );\n\n const registerAccordionUuid = useCallback<IRegisterAccordionUuid>(\n (uuid) => {\n setAccordionUuids((currentAccordionUuids = []) => {\n const nextAccordionUuids = currentAccordionUuids.includes(uuid)\n ? currentAccordionUuids\n : [...currentAccordionUuids, uuid];\n\n return sortAccordionUuidsByDom(nextAccordionUuids);\n });\n },\n [sortAccordionUuidsByDom],\n );\n\n const unregisterAccordionUuid = useCallback<IUnregisterAccordionUuid>((uuid) => {\n setAccordionUuids((currentAccordionUuids = []) =>\n currentAccordionUuids.filter((currentUuid) => currentUuid !== uuid),\n );\n }, []);\n\n const updateActiveAccordionUuid = useCallback<IUpdateActiveAccordionUuid>((uuid) => {\n setActiveAccordionUuid(uuid);\n }, []);\n\n useEffect(() => {\n if (!accordionUuids?.length) {\n setActiveAccordionUuid(undefined);\n return;\n }\n\n setActiveAccordionUuid((currentActiveAccordionUuid) =>\n currentActiveAccordionUuid && accordionUuids.includes(currentActiveAccordionUuid)\n ? currentActiveAccordionUuid\n : undefined,\n );\n }, [accordionUuids]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (typeof openAccordionUuid === 'string') {\n if (typeof onOpen === 'function') {\n onOpen();\n }\n } else if (typeof onClose === 'function') {\n onClose();\n }\n }, [onClose, onOpen, openAccordionUuid]);\n\n const providerValue = useMemo<IAccordionGroupContext>(\n () => ({\n isWrapped: shouldWrap,\n openAccordionUuid,\n setOpenAccordionUuid,\n updateOpenAccordionUuid,\n accordionUuids,\n registerAccordionUuid,\n unregisterAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n accordionGroupUuid: accordionGroupId,\n }),\n [\n accordionGroupId,\n accordionUuids,\n shouldWrap,\n openAccordionUuid,\n registerAccordionUuid,\n unregisterAccordionUuid,\n updateOpenAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n ],\n );\n\n return (\n <AccordionGroupContext.Provider value={providerValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AnimatePresence initial={false}>{children}</AnimatePresence>\n </MotionConfig>\n </AccordionGroupContext.Provider>\n );\n};\n\nAccordionGroup.displayName = 'AccordionGroup';\n\nexport default AccordionGroup;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AccordionGroup.js","names":["_react","require","_react2","_interopRequireWildcard","_uuid","_AreaContextProvider","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AccordionGroupContext","exports","React","createContext","isWrapped","undefined","openAccordionUuid","setOpenAccordionUuid","updateOpenAccordionUuid","accordionUuids","registerAccordionUuid","unregisterAccordionUuid","activeAccordionUuid","updateActiveAccordionUuid","accordionGroupUuid","displayName","AccordionGroup","children","onClose","onOpen","shouldDisableInternalHandling","useState","setAccordionUuids","setActiveAccordionUuid","accordionGroupId","useUuid","isInitialRenderRef","useRef","areaProvider","useContext","AreaContext","shouldWrap","shouldChangeColor","useCallback","uuid","shouldOnlyOpen","currentOpenAccordionUuid","sortAccordionUuidsByDom","uuids","document","domOrderedUuids","Array","from","querySelectorAll","map","element","_element$getAttribute","getAttribute","split","filter","Boolean","includes","currentAccordionUuids","nextAccordionUuids","currentUuid","useEffect","length","currentActiveAccordionUuid","current","providerValue","useMemo","createElement","Provider","value","MotionConfig","transition","type","AnimatePresence","initial","_default"],"sources":["../../../../../src/components/accordion/accordion-group/AccordionGroup.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'motion/react';\nimport React, {\n Dispatch,\n FC,\n ReactNode,\n SetStateAction,\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';\n\ntype IUpdateOpenAccordionUuid = (uuid: string, options?: { shouldOnlyOpen?: boolean }) => void;\ntype IUpdateActiveAccordionUuid = (uuid?: string) => void;\ntype IRegisterAccordionUuid = (uuid: string) => void;\ntype IUnregisterAccordionUuid = (uuid: string) => void;\n\ninterface IAccordionGroupContext {\n isWrapped?: boolean;\n openAccordionUuid?: string;\n setOpenAccordionUuid?: Dispatch<SetStateAction<string | undefined>>;\n updateOpenAccordionUuid?: IUpdateOpenAccordionUuid;\n accordionUuids?: string[];\n registerAccordionUuid?: IRegisterAccordionUuid;\n unregisterAccordionUuid?: IUnregisterAccordionUuid;\n activeAccordionUuid?: string;\n updateActiveAccordionUuid?: IUpdateActiveAccordionUuid;\n accordionGroupUuid?: string;\n}\n\nexport const AccordionGroupContext = React.createContext<IAccordionGroupContext>({\n isWrapped: undefined,\n openAccordionUuid: undefined,\n setOpenAccordionUuid: undefined,\n updateOpenAccordionUuid: undefined,\n accordionUuids: undefined,\n registerAccordionUuid: undefined,\n unregisterAccordionUuid: undefined,\n activeAccordionUuid: undefined,\n updateActiveAccordionUuid: undefined,\n accordionGroupUuid: undefined,\n});\n\nAccordionGroupContext.displayName = 'AccordionGroupContext';\n\ntype AccordionGroupProps = {\n /**\n * The Accordions that should be grouped. Accordions with the same group are\n * automatically closed when an `Accordion` of the group is opened.\n */\n children: ReactNode;\n /**\n * This value must be set for nested AccordionGroup components. This adjusts the style of\n * the head and the padding of the content accordions.\n */\n isWrapped?: boolean;\n /**\n * Disables the group's internal open-state handling while keeping the group context available\n * for styling and keyboard navigation.\n */\n shouldDisableInternalHandling?: boolean;\n /**\n * Function that is executed when all accordions in group are closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when any accordion in group will be opened.\n */\n onOpen?: VoidFunction;\n};\n\nconst AccordionGroup: FC<AccordionGroupProps> = ({\n children,\n isWrapped,\n onClose,\n onOpen,\n shouldDisableInternalHandling = false,\n}) => {\n const [openAccordionUuid, setOpenAccordionUuid] =\n useState<IAccordionGroupContext['openAccordionUuid']>(undefined);\n const [accordionUuids, setAccordionUuids] = useState<string[]>();\n const [activeAccordionUuid, setActiveAccordionUuid] =\n useState<IAccordionGroupContext['activeAccordionUuid']>(undefined);\n\n const accordionGroupId = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const areaProvider = useContext(AreaContext);\n\n const shouldWrap = areaProvider.shouldChangeColor ? true : isWrapped;\n\n const updateOpenAccordionUuid = useCallback<IUpdateOpenAccordionUuid>(\n (uuid, { shouldOnlyOpen } = {}) => {\n setOpenAccordionUuid((currentOpenAccordionUuid) => {\n if (currentOpenAccordionUuid === uuid && shouldOnlyOpen !== true) {\n return undefined;\n }\n\n return uuid;\n });\n },\n [setOpenAccordionUuid],\n );\n\n const sortAccordionUuidsByDom = useCallback(\n (uuids: string[]) => {\n if (typeof document === 'undefined') return uuids;\n\n const domOrderedUuids = Array.from(\n document.querySelectorAll<HTMLElement>(`[data-uuid^=\"${accordionGroupId}---\"]`),\n )\n .map((element) => element.getAttribute('data-uuid')?.split('---')[1])\n .filter((uuid): uuid is string => Boolean(uuid));\n\n return domOrderedUuids.filter((uuid) => uuids.includes(uuid));\n },\n [accordionGroupId],\n );\n\n const registerAccordionUuid = useCallback<IRegisterAccordionUuid>(\n (uuid) => {\n setAccordionUuids((currentAccordionUuids = []) => {\n const nextAccordionUuids = currentAccordionUuids.includes(uuid)\n ? currentAccordionUuids\n : [...currentAccordionUuids, uuid];\n\n return sortAccordionUuidsByDom(nextAccordionUuids);\n });\n },\n [sortAccordionUuidsByDom],\n );\n\n const unregisterAccordionUuid = useCallback<IUnregisterAccordionUuid>((uuid) => {\n setAccordionUuids((currentAccordionUuids = []) =>\n currentAccordionUuids.filter((currentUuid) => currentUuid !== uuid),\n );\n }, []);\n\n const updateActiveAccordionUuid = useCallback<IUpdateActiveAccordionUuid>((uuid) => {\n setActiveAccordionUuid(uuid);\n }, []);\n\n useEffect(() => {\n if (!accordionUuids?.length) {\n setActiveAccordionUuid(undefined);\n return;\n }\n\n setActiveAccordionUuid((currentActiveAccordionUuid) =>\n currentActiveAccordionUuid && accordionUuids.includes(currentActiveAccordionUuid)\n ? currentActiveAccordionUuid\n : undefined,\n );\n }, [accordionUuids]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (typeof openAccordionUuid === 'string') {\n if (typeof onOpen === 'function') {\n onOpen();\n }\n } else if (typeof onClose === 'function') {\n onClose();\n }\n }, [onClose, onOpen, openAccordionUuid]);\n\n const providerValue = useMemo<IAccordionGroupContext>(\n () => ({\n isWrapped: shouldWrap,\n openAccordionUuid,\n setOpenAccordionUuid,\n updateOpenAccordionUuid: shouldDisableInternalHandling\n ? undefined\n : updateOpenAccordionUuid,\n accordionUuids,\n registerAccordionUuid,\n unregisterAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n accordionGroupUuid: accordionGroupId,\n }),\n [\n accordionGroupId,\n accordionUuids,\n shouldWrap,\n openAccordionUuid,\n registerAccordionUuid,\n unregisterAccordionUuid,\n updateOpenAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n shouldDisableInternalHandling,\n ],\n );\n\n return (\n <AccordionGroupContext.Provider value={providerValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AnimatePresence initial={false}>{children}</AnimatePresence>\n </MotionConfig>\n </AccordionGroupContext.Provider>\n );\n};\n\nAccordionGroup.displayName = 'AccordionGroup';\n\nexport default AccordionGroup;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,7 +19,8 @@ const AccordionGroup = ({
|
|
|
19
19
|
children,
|
|
20
20
|
isWrapped,
|
|
21
21
|
onClose,
|
|
22
|
-
onOpen
|
|
22
|
+
onOpen,
|
|
23
|
+
shouldDisableInternalHandling = false
|
|
23
24
|
}) => {
|
|
24
25
|
const [openAccordionUuid, setOpenAccordionUuid] = useState(undefined);
|
|
25
26
|
const [accordionUuids, setAccordionUuids] = useState();
|
|
@@ -77,14 +78,14 @@ const AccordionGroup = ({
|
|
|
77
78
|
isWrapped: shouldWrap,
|
|
78
79
|
openAccordionUuid,
|
|
79
80
|
setOpenAccordionUuid,
|
|
80
|
-
updateOpenAccordionUuid,
|
|
81
|
+
updateOpenAccordionUuid: shouldDisableInternalHandling ? undefined : updateOpenAccordionUuid,
|
|
81
82
|
accordionUuids,
|
|
82
83
|
registerAccordionUuid,
|
|
83
84
|
unregisterAccordionUuid,
|
|
84
85
|
activeAccordionUuid,
|
|
85
86
|
updateActiveAccordionUuid,
|
|
86
87
|
accordionGroupUuid: accordionGroupId
|
|
87
|
-
}), [accordionGroupId, accordionUuids, shouldWrap, openAccordionUuid, registerAccordionUuid, unregisterAccordionUuid, updateOpenAccordionUuid, activeAccordionUuid, updateActiveAccordionUuid]);
|
|
88
|
+
}), [accordionGroupId, accordionUuids, shouldWrap, openAccordionUuid, registerAccordionUuid, unregisterAccordionUuid, updateOpenAccordionUuid, activeAccordionUuid, updateActiveAccordionUuid, shouldDisableInternalHandling]);
|
|
88
89
|
return /*#__PURE__*/React.createElement(AccordionGroupContext.Provider, {
|
|
89
90
|
value: providerValue
|
|
90
91
|
}, /*#__PURE__*/React.createElement(MotionConfig, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccordionGroup.js","names":["AnimatePresence","MotionConfig","React","useCallback","useContext","useEffect","useMemo","useRef","useState","useUuid","AreaContext","AccordionGroupContext","createContext","isWrapped","undefined","openAccordionUuid","setOpenAccordionUuid","updateOpenAccordionUuid","accordionUuids","registerAccordionUuid","unregisterAccordionUuid","activeAccordionUuid","updateActiveAccordionUuid","accordionGroupUuid","displayName","AccordionGroup","children","onClose","onOpen","setAccordionUuids","setActiveAccordionUuid","accordionGroupId","isInitialRenderRef","areaProvider","shouldWrap","shouldChangeColor","uuid","shouldOnlyOpen","currentOpenAccordionUuid","sortAccordionUuidsByDom","uuids","document","domOrderedUuids","Array","from","querySelectorAll","map","element","getAttribute","split","filter","Boolean","includes","currentAccordionUuids","nextAccordionUuids","currentUuid","length","currentActiveAccordionUuid","current","providerValue","createElement","Provider","value","transition","type","initial"],"sources":["../../../../../src/components/accordion/accordion-group/AccordionGroup.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'motion/react';\nimport React, {\n Dispatch,\n FC,\n ReactNode,\n SetStateAction,\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';\n\ntype IUpdateOpenAccordionUuid = (uuid: string, options?: { shouldOnlyOpen?: boolean }) => void;\ntype IUpdateActiveAccordionUuid = (uuid?: string) => void;\ntype IRegisterAccordionUuid = (uuid: string) => void;\ntype IUnregisterAccordionUuid = (uuid: string) => void;\n\ninterface IAccordionGroupContext {\n isWrapped?: boolean;\n openAccordionUuid?: string;\n setOpenAccordionUuid?: Dispatch<SetStateAction<string | undefined>>;\n updateOpenAccordionUuid?: IUpdateOpenAccordionUuid;\n accordionUuids?: string[];\n registerAccordionUuid?: IRegisterAccordionUuid;\n unregisterAccordionUuid?: IUnregisterAccordionUuid;\n activeAccordionUuid?: string;\n updateActiveAccordionUuid?: IUpdateActiveAccordionUuid;\n accordionGroupUuid?: string;\n}\n\nexport const AccordionGroupContext = React.createContext<IAccordionGroupContext>({\n isWrapped: undefined,\n openAccordionUuid: undefined,\n setOpenAccordionUuid: undefined,\n updateOpenAccordionUuid: undefined,\n accordionUuids: undefined,\n registerAccordionUuid: undefined,\n unregisterAccordionUuid: undefined,\n activeAccordionUuid: undefined,\n updateActiveAccordionUuid: undefined,\n accordionGroupUuid: undefined,\n});\n\nAccordionGroupContext.displayName = 'AccordionGroupContext';\n\ntype AccordionGroupProps = {\n /**\n * The Accordions that should be grouped. Accordions with the same group are\n * automatically closed when an `Accordion` of the group is opened.\n */\n children: ReactNode;\n /**\n * This value must be set for nested AccordionGroup components. This adjusts the style of\n * the head and the padding of the content accordions.\n */\n isWrapped?: boolean;\n /**\n * Function that is executed when all accordions in group are closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when any accordion in group will be opened.\n */\n onOpen?: VoidFunction;\n};\n\nconst AccordionGroup: FC<AccordionGroupProps> = ({ children, isWrapped, onClose, onOpen }) => {\n const [openAccordionUuid, setOpenAccordionUuid] =\n useState<IAccordionGroupContext['openAccordionUuid']>(undefined);\n const [accordionUuids, setAccordionUuids] = useState<string[]>();\n const [activeAccordionUuid, setActiveAccordionUuid] =\n useState<IAccordionGroupContext['activeAccordionUuid']>(undefined);\n\n const accordionGroupId = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const areaProvider = useContext(AreaContext);\n\n const shouldWrap = areaProvider.shouldChangeColor ? true : isWrapped;\n\n const updateOpenAccordionUuid = useCallback<IUpdateOpenAccordionUuid>(\n (uuid, { shouldOnlyOpen } = {}) => {\n setOpenAccordionUuid((currentOpenAccordionUuid) => {\n if (currentOpenAccordionUuid === uuid && shouldOnlyOpen !== true) {\n return undefined;\n }\n\n return uuid;\n });\n },\n [setOpenAccordionUuid],\n );\n\n const sortAccordionUuidsByDom = useCallback(\n (uuids: string[]) => {\n if (typeof document === 'undefined') return uuids;\n\n const domOrderedUuids = Array.from(\n document.querySelectorAll<HTMLElement>(`[data-uuid^=\"${accordionGroupId}---\"]`),\n )\n .map((element) => element.getAttribute('data-uuid')?.split('---')[1])\n .filter((uuid): uuid is string => Boolean(uuid));\n\n return domOrderedUuids.filter((uuid) => uuids.includes(uuid));\n },\n [accordionGroupId],\n );\n\n const registerAccordionUuid = useCallback<IRegisterAccordionUuid>(\n (uuid) => {\n setAccordionUuids((currentAccordionUuids = []) => {\n const nextAccordionUuids = currentAccordionUuids.includes(uuid)\n ? currentAccordionUuids\n : [...currentAccordionUuids, uuid];\n\n return sortAccordionUuidsByDom(nextAccordionUuids);\n });\n },\n [sortAccordionUuidsByDom],\n );\n\n const unregisterAccordionUuid = useCallback<IUnregisterAccordionUuid>((uuid) => {\n setAccordionUuids((currentAccordionUuids = []) =>\n currentAccordionUuids.filter((currentUuid) => currentUuid !== uuid),\n );\n }, []);\n\n const updateActiveAccordionUuid = useCallback<IUpdateActiveAccordionUuid>((uuid) => {\n setActiveAccordionUuid(uuid);\n }, []);\n\n useEffect(() => {\n if (!accordionUuids?.length) {\n setActiveAccordionUuid(undefined);\n return;\n }\n\n setActiveAccordionUuid((currentActiveAccordionUuid) =>\n currentActiveAccordionUuid && accordionUuids.includes(currentActiveAccordionUuid)\n ? currentActiveAccordionUuid\n : undefined,\n );\n }, [accordionUuids]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (typeof openAccordionUuid === 'string') {\n if (typeof onOpen === 'function') {\n onOpen();\n }\n } else if (typeof onClose === 'function') {\n onClose();\n }\n }, [onClose, onOpen, openAccordionUuid]);\n\n const providerValue = useMemo<IAccordionGroupContext>(\n () => ({\n isWrapped: shouldWrap,\n openAccordionUuid,\n setOpenAccordionUuid,\n updateOpenAccordionUuid,\n accordionUuids,\n registerAccordionUuid,\n unregisterAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n accordionGroupUuid: accordionGroupId,\n }),\n [\n accordionGroupId,\n accordionUuids,\n shouldWrap,\n openAccordionUuid,\n registerAccordionUuid,\n unregisterAccordionUuid,\n updateOpenAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n ],\n );\n\n return (\n <AccordionGroupContext.Provider value={providerValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AnimatePresence initial={false}>{children}</AnimatePresence>\n </MotionConfig>\n </AccordionGroupContext.Provider>\n );\n};\n\nAccordionGroup.displayName = 'AccordionGroup';\n\nexport default AccordionGroup;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AccordionGroup.js","names":["AnimatePresence","MotionConfig","React","useCallback","useContext","useEffect","useMemo","useRef","useState","useUuid","AreaContext","AccordionGroupContext","createContext","isWrapped","undefined","openAccordionUuid","setOpenAccordionUuid","updateOpenAccordionUuid","accordionUuids","registerAccordionUuid","unregisterAccordionUuid","activeAccordionUuid","updateActiveAccordionUuid","accordionGroupUuid","displayName","AccordionGroup","children","onClose","onOpen","shouldDisableInternalHandling","setAccordionUuids","setActiveAccordionUuid","accordionGroupId","isInitialRenderRef","areaProvider","shouldWrap","shouldChangeColor","uuid","shouldOnlyOpen","currentOpenAccordionUuid","sortAccordionUuidsByDom","uuids","document","domOrderedUuids","Array","from","querySelectorAll","map","element","getAttribute","split","filter","Boolean","includes","currentAccordionUuids","nextAccordionUuids","currentUuid","length","currentActiveAccordionUuid","current","providerValue","createElement","Provider","value","transition","type","initial"],"sources":["../../../../../src/components/accordion/accordion-group/AccordionGroup.tsx"],"sourcesContent":["import { AnimatePresence, MotionConfig } from 'motion/react';\nimport React, {\n Dispatch,\n FC,\n ReactNode,\n SetStateAction,\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';\n\ntype IUpdateOpenAccordionUuid = (uuid: string, options?: { shouldOnlyOpen?: boolean }) => void;\ntype IUpdateActiveAccordionUuid = (uuid?: string) => void;\ntype IRegisterAccordionUuid = (uuid: string) => void;\ntype IUnregisterAccordionUuid = (uuid: string) => void;\n\ninterface IAccordionGroupContext {\n isWrapped?: boolean;\n openAccordionUuid?: string;\n setOpenAccordionUuid?: Dispatch<SetStateAction<string | undefined>>;\n updateOpenAccordionUuid?: IUpdateOpenAccordionUuid;\n accordionUuids?: string[];\n registerAccordionUuid?: IRegisterAccordionUuid;\n unregisterAccordionUuid?: IUnregisterAccordionUuid;\n activeAccordionUuid?: string;\n updateActiveAccordionUuid?: IUpdateActiveAccordionUuid;\n accordionGroupUuid?: string;\n}\n\nexport const AccordionGroupContext = React.createContext<IAccordionGroupContext>({\n isWrapped: undefined,\n openAccordionUuid: undefined,\n setOpenAccordionUuid: undefined,\n updateOpenAccordionUuid: undefined,\n accordionUuids: undefined,\n registerAccordionUuid: undefined,\n unregisterAccordionUuid: undefined,\n activeAccordionUuid: undefined,\n updateActiveAccordionUuid: undefined,\n accordionGroupUuid: undefined,\n});\n\nAccordionGroupContext.displayName = 'AccordionGroupContext';\n\ntype AccordionGroupProps = {\n /**\n * The Accordions that should be grouped. Accordions with the same group are\n * automatically closed when an `Accordion` of the group is opened.\n */\n children: ReactNode;\n /**\n * This value must be set for nested AccordionGroup components. This adjusts the style of\n * the head and the padding of the content accordions.\n */\n isWrapped?: boolean;\n /**\n * Disables the group's internal open-state handling while keeping the group context available\n * for styling and keyboard navigation.\n */\n shouldDisableInternalHandling?: boolean;\n /**\n * Function that is executed when all accordions in group are closed.\n */\n onClose?: VoidFunction;\n /**\n * Function that is executed when any accordion in group will be opened.\n */\n onOpen?: VoidFunction;\n};\n\nconst AccordionGroup: FC<AccordionGroupProps> = ({\n children,\n isWrapped,\n onClose,\n onOpen,\n shouldDisableInternalHandling = false,\n}) => {\n const [openAccordionUuid, setOpenAccordionUuid] =\n useState<IAccordionGroupContext['openAccordionUuid']>(undefined);\n const [accordionUuids, setAccordionUuids] = useState<string[]>();\n const [activeAccordionUuid, setActiveAccordionUuid] =\n useState<IAccordionGroupContext['activeAccordionUuid']>(undefined);\n\n const accordionGroupId = useUuid();\n\n const isInitialRenderRef = useRef(true);\n\n const areaProvider = useContext(AreaContext);\n\n const shouldWrap = areaProvider.shouldChangeColor ? true : isWrapped;\n\n const updateOpenAccordionUuid = useCallback<IUpdateOpenAccordionUuid>(\n (uuid, { shouldOnlyOpen } = {}) => {\n setOpenAccordionUuid((currentOpenAccordionUuid) => {\n if (currentOpenAccordionUuid === uuid && shouldOnlyOpen !== true) {\n return undefined;\n }\n\n return uuid;\n });\n },\n [setOpenAccordionUuid],\n );\n\n const sortAccordionUuidsByDom = useCallback(\n (uuids: string[]) => {\n if (typeof document === 'undefined') return uuids;\n\n const domOrderedUuids = Array.from(\n document.querySelectorAll<HTMLElement>(`[data-uuid^=\"${accordionGroupId}---\"]`),\n )\n .map((element) => element.getAttribute('data-uuid')?.split('---')[1])\n .filter((uuid): uuid is string => Boolean(uuid));\n\n return domOrderedUuids.filter((uuid) => uuids.includes(uuid));\n },\n [accordionGroupId],\n );\n\n const registerAccordionUuid = useCallback<IRegisterAccordionUuid>(\n (uuid) => {\n setAccordionUuids((currentAccordionUuids = []) => {\n const nextAccordionUuids = currentAccordionUuids.includes(uuid)\n ? currentAccordionUuids\n : [...currentAccordionUuids, uuid];\n\n return sortAccordionUuidsByDom(nextAccordionUuids);\n });\n },\n [sortAccordionUuidsByDom],\n );\n\n const unregisterAccordionUuid = useCallback<IUnregisterAccordionUuid>((uuid) => {\n setAccordionUuids((currentAccordionUuids = []) =>\n currentAccordionUuids.filter((currentUuid) => currentUuid !== uuid),\n );\n }, []);\n\n const updateActiveAccordionUuid = useCallback<IUpdateActiveAccordionUuid>((uuid) => {\n setActiveAccordionUuid(uuid);\n }, []);\n\n useEffect(() => {\n if (!accordionUuids?.length) {\n setActiveAccordionUuid(undefined);\n return;\n }\n\n setActiveAccordionUuid((currentActiveAccordionUuid) =>\n currentActiveAccordionUuid && accordionUuids.includes(currentActiveAccordionUuid)\n ? currentActiveAccordionUuid\n : undefined,\n );\n }, [accordionUuids]);\n\n useEffect(() => {\n if (isInitialRenderRef.current) {\n isInitialRenderRef.current = false;\n } else if (typeof openAccordionUuid === 'string') {\n if (typeof onOpen === 'function') {\n onOpen();\n }\n } else if (typeof onClose === 'function') {\n onClose();\n }\n }, [onClose, onOpen, openAccordionUuid]);\n\n const providerValue = useMemo<IAccordionGroupContext>(\n () => ({\n isWrapped: shouldWrap,\n openAccordionUuid,\n setOpenAccordionUuid,\n updateOpenAccordionUuid: shouldDisableInternalHandling\n ? undefined\n : updateOpenAccordionUuid,\n accordionUuids,\n registerAccordionUuid,\n unregisterAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n accordionGroupUuid: accordionGroupId,\n }),\n [\n accordionGroupId,\n accordionUuids,\n shouldWrap,\n openAccordionUuid,\n registerAccordionUuid,\n unregisterAccordionUuid,\n updateOpenAccordionUuid,\n activeAccordionUuid,\n updateActiveAccordionUuid,\n shouldDisableInternalHandling,\n ],\n );\n\n return (\n <AccordionGroupContext.Provider value={providerValue}>\n <MotionConfig transition={{ type: 'tween' }}>\n <AnimatePresence initial={false}>{children}</AnimatePresence>\n </MotionConfig>\n </AccordionGroupContext.Provider>\n );\n};\n\nAccordionGroup.displayName = 'AccordionGroup';\n\nexport default AccordionGroup;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -29,6 +29,11 @@ type AccordionGroupProps = {
|
|
|
29
29
|
* the head and the padding of the content accordions.
|
|
30
30
|
*/
|
|
31
31
|
isWrapped?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Disables the group's internal open-state handling while keeping the group context available
|
|
34
|
+
* for styling and keyboard navigation.
|
|
35
|
+
*/
|
|
36
|
+
shouldDisableInternalHandling?: boolean;
|
|
32
37
|
/**
|
|
33
38
|
* Function that is executed when all accordions in group are closed.
|
|
34
39
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chayns-components/core",
|
|
3
|
-
"version": "5.5.
|
|
3
|
+
"version": "5.5.36",
|
|
4
4
|
"description": "A set of beautiful React components for developing your own applications with chayns.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"browserslist": [
|
|
@@ -93,5 +93,5 @@
|
|
|
93
93
|
"publishConfig": {
|
|
94
94
|
"access": "public"
|
|
95
95
|
},
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "04298731e030f82c8968665dee540ab3bb6277d5"
|
|
97
97
|
}
|