@tamagui/accordion 2.7.7 → 3.0.0-beta.643.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Accordion.cjs +362 -454
- package/dist/cjs/Accordion.native.cjs +440 -0
- package/dist/cjs/Accordion.native.js +394 -488
- package/dist/cjs/Accordion.native.js.map +1 -1
- package/dist/cjs/index.cjs +10 -11
- package/dist/cjs/index.native.cjs +21 -0
- package/dist/cjs/index.native.js +10 -10
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/Accordion.mjs +345 -428
- package/dist/esm/Accordion.mjs.map +1 -1
- package/dist/esm/Accordion.native.js +378 -464
- package/dist/esm/Accordion.native.js.map +1 -1
- package/dist/esm/index.js +1 -2
- package/dist/esm/index.mjs +1 -2
- package/dist/esm/index.native.js +1 -2
- package/dist/jsx/Accordion.mjs +345 -428
- package/dist/jsx/Accordion.mjs.map +1 -1
- package/dist/jsx/Accordion.native.cjs +440 -0
- package/dist/jsx/Accordion.native.js +394 -488
- package/dist/jsx/Accordion.native.js.map +1 -1
- package/dist/jsx/index.js +1 -2
- package/dist/jsx/index.mjs +1 -2
- package/dist/jsx/index.native.cjs +21 -0
- package/dist/jsx/index.native.js +10 -10
- package/dist/jsx/index.native.js.map +1 -1
- package/package.json +14 -14
- package/src/Accordion.tsx +66 -91
- package/types/Accordion.d.ts +45 -28
- package/types/Accordion.d.ts.map +1 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js.map +0 -1
- package/dist/jsx/index.js.map +0 -1
- package/dist/jsx/index.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Collapsible","createCollection","useComposedRefs","isWeb","useIsomorphicLayoutEffect","View","createStyledContext","styled","composeEventHandlers","withStaticProperties","YStack","H1","useControllableState","useDirection","React","jsx","ACCORDION_NAME","ACCORDION_KEYS","Collection","useCollection","ACCORDION_CONTEXT","AccordionComponent","forwardRef","props","forwardedRef","type","accordionProps","singleProps","multipleProps","Provider","scope","__scopeAccordion","children","AccordionImplMultiple","ref","AccordionImplSingle","displayName","propTypes","value","defaultValue","includes","Error","Array","isArray","AccordionValueProvider","useStyledContext","useAccordionValueContext","AccordionCollapsibleProvider","useAccordionCollapsibleContext","valueProp","control","onValueChange","collapsible","accordionSingleProps","setValue","prop","defaultProp","onChange","onItemOpen","onItemClose","useCallback","AccordionImpl","accordionMultipleProps","handleItemOpen","itemValue","prevValue","handleItemClose","filter","value2","AccordionImplProvider","useAccordionContext","disabled","dir","orientation","accordionRef","useRef","composedRef","getItems","direction","isDirectionLTR","handleKeyDown","onKeyDown","event","key","target","triggerCollection","item","el","current","triggerIndex","findIndex","triggerCount","length","preventDefault","nextIndex","homeIndex","endIndex","moveNext","movePrev","clampedIndex","focus","Slot","ITEM_NAME","AccordionItemProvider","useAccordionItemContext","AccordionItem","accordionItemProps","accordionContext","valueContext","triggerId","useId","open","__scopeCollapsible","onOpenChange","open2","HEADER_NAME","AccordionHeader","headerProps","itemContext","getState","AccordionTriggerFrame","Trigger","variants","unstyled","false","cursor","backgroundColor","padding","hoverStyle","focusStyle","pressStyle","defaultVariants","process","env","TAMAGUI_HEADLESS","AccordionTrigger","styleable","triggerProps","collapsibleContext","ItemSlot","id","AccordionContentFrame","Content","AccordionHeightAnimatorContext","createContext","AccordionContent","forceMount","contentProps","heightAnimatorPresent","useContext","role","HeightAnimator","transition","rest","fixed","setFixed","useState","pinned","setPinned","contentPresent","setContentPresent","contentHeight","setContentHeight","outerRef","innerRef","lastOuterHeightRef","pinnedHeightRef","settleTimerRef","prevOpenRef","clearTimeout","offsetHeight","frame","requestAnimationFrame","cancelAnimationFrame","useEffect","naturalHeight","getBoundingClientRect","height","minHeight","position","overflow","onLayout","nativeEvent","outerHeight","layout","Math","abs","setTimeout","onDidAnimate","top","left","right","Accordion","Header","Item"],"sources":["../../src/Accordion.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Accordion.js","names":[],"sources":["jsx/Accordion.js"],"sourcesContent":["import { createStyledHOC, createRefComponent } from \"@tamagui/core\";\nimport { Collapsible } from \"@tamagui/collapsible\";\nimport { createCollection } from \"@tamagui/collection\";\nimport { useComposedRefs } from \"@tamagui/compose-refs\";\nimport { isWeb, useIsomorphicLayoutEffect } from \"@tamagui/constants\";\nimport { View, createStyledContext, styled } from \"@tamagui/core\";\nimport { composeEventHandlers, withStaticProperties } from \"@tamagui/helpers\";\nimport { YStack } from \"@tamagui/stacks\";\nimport { H1 } from \"@tamagui/text\";\nimport { useControllableState } from \"@tamagui/use-controllable-state\";\nimport { useDirection } from \"@tamagui/use-direction\";\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nconst ACCORDION_NAME = \"Accordion\";\nconst ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\nconst [Collection, useCollection] = createCollection(ACCORDION_NAME);\nconst ACCORDION_CONTEXT = \"Accordion\";\nconst AccordionComponent = createRefComponent((props, forwardedRef) => {\n const { type, ...accordionProps } = props;\n const singleProps = accordionProps;\n const multipleProps = accordionProps;\n return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeAccordion || ACCORDION_CONTEXT, children: type === \"multiple\" ? /* @__PURE__ */ jsx(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n});\nAccordionComponent.displayName = ACCORDION_NAME;\nAccordionComponent.propTypes = {\n type(props) {\n const value = props.value || props.defaultValue;\n if (props.type && ![\"single\", \"multiple\"].includes(props.type)) {\n return new Error(\n \"Invalid prop `type` supplied to `Accordion`. Expected one of `single | multiple`.\"\n );\n }\n if (props.type === \"multiple\" && typeof value === \"string\") {\n return new Error(\n \"Invalid prop `type` supplied to `Accordion`. Expected `single` when `defaultValue` or `value` is type `string`.\"\n );\n }\n if (props.type === \"single\" && Array.isArray(value)) {\n return new Error(\n \"Invalid prop `type` supplied to `Accordion`. Expected `multiple` when `defaultValue` or `value` is type `string[]`.\"\n );\n }\n return null;\n }\n};\nconst { Provider: AccordionValueProvider, useStyledContext: useAccordionValueContext } = createStyledContext();\nconst {\n Provider: AccordionCollapsibleProvider,\n useStyledContext: useAccordionCollapsibleContext\n} = createStyledContext();\nconst AccordionImplSingle = createRefComponent((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n control,\n onValueChange = () => {\n },\n collapsible = false,\n ...accordionSingleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue || \"\",\n onChange: onValueChange\n });\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value: value ? [value] : [],\n onItemOpen: setValue,\n onItemClose: React.useCallback(\n () => collapsible && setValue(\"\"),\n [setValue, collapsible]\n ),\n children: /* @__PURE__ */ jsx(\n AccordionCollapsibleProvider,\n {\n scope: props.__scopeAccordion,\n collapsible,\n children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef })\n }\n )\n }\n );\n});\nconst AccordionImplMultiple = createRefComponent((props, forwardedRef) => {\n const {\n value: valueProp,\n defaultValue,\n onValueChange = () => {\n },\n ...accordionMultipleProps\n } = props;\n const [value, setValue] = useControllableState({\n prop: valueProp,\n defaultProp: defaultValue || [],\n onChange: onValueChange\n });\n const handleItemOpen = React.useCallback(\n (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n [setValue]\n );\n const handleItemClose = React.useCallback(\n (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n [setValue]\n );\n return /* @__PURE__ */ jsx(\n AccordionValueProvider,\n {\n scope: props.__scopeAccordion,\n value: value || [],\n onItemOpen: handleItemOpen,\n onItemClose: handleItemClose,\n children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n }\n );\n});\nconst { Provider: AccordionImplProvider, useStyledContext: useAccordionContext } = createStyledContext();\nconst AccordionImpl = createRefComponent(\n (props, forwardedRef) => {\n const {\n __scopeAccordion,\n disabled,\n dir,\n orientation = \"vertical\",\n ...accordionProps\n } = props;\n const accordionRef = React.useRef(null);\n const composedRef = useComposedRefs(accordionRef, forwardedRef);\n const getItems = useCollection(__scopeAccordion || ACCORDION_CONTEXT);\n const direction = useDirection(dir);\n const isDirectionLTR = direction === \"ltr\";\n const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n if (!ACCORDION_KEYS.includes(event.key)) return;\n const target = event.target;\n const triggerCollection = getItems().filter((item) => {\n const el = item.ref.current;\n return !el?.disabled;\n });\n const triggerIndex = triggerCollection.findIndex(\n (item) => item.ref.current === target\n );\n const triggerCount = triggerCollection.length;\n if (triggerIndex === -1) return;\n event.preventDefault();\n let nextIndex = triggerIndex;\n const homeIndex = 0;\n const endIndex = triggerCount - 1;\n const moveNext = () => {\n nextIndex = triggerIndex + 1;\n if (nextIndex > endIndex) {\n nextIndex = homeIndex;\n }\n };\n const movePrev = () => {\n nextIndex = triggerIndex - 1;\n if (nextIndex < homeIndex) {\n nextIndex = endIndex;\n }\n };\n switch (event.key) {\n case \"Home\":\n nextIndex = homeIndex;\n break;\n case \"End\":\n nextIndex = endIndex;\n break;\n case \"ArrowRight\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n moveNext();\n } else {\n movePrev();\n }\n }\n break;\n case \"ArrowDown\":\n if (orientation === \"vertical\") {\n moveNext();\n }\n break;\n case \"ArrowLeft\":\n if (orientation === \"horizontal\") {\n if (isDirectionLTR) {\n movePrev();\n } else {\n moveNext();\n }\n }\n break;\n case \"ArrowUp\":\n if (orientation === \"vertical\") {\n movePrev();\n }\n break;\n }\n const clampedIndex = nextIndex % triggerCount;\n triggerCollection[clampedIndex].ref.current?.focus();\n });\n return /* @__PURE__ */ jsx(\n AccordionImplProvider,\n {\n scope: __scopeAccordion,\n disabled,\n direction: dir,\n orientation,\n children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeAccordion || ACCORDION_CONTEXT, children: /* @__PURE__ */ jsx(\n YStack,\n {\n \"data-orientation\": orientation,\n ref: composedRef,\n ...accordionProps,\n ...isWeb && {\n onKeyDown: handleKeyDown\n }\n }\n ) })\n }\n );\n }\n);\nconst ITEM_NAME = \"AccordionItem\";\nconst { Provider: AccordionItemProvider, useStyledContext: useAccordionItemContext } = createStyledContext();\nconst AccordionItem = createRefComponent(\n (props, forwardedRef) => {\n const { __scopeAccordion, value, ...accordionItemProps } = props;\n const accordionContext = useAccordionContext(__scopeAccordion);\n const valueContext = useAccordionValueContext(__scopeAccordion);\n const triggerId = React.useId();\n const open = value && valueContext.value.includes(value) || false;\n const disabled = accordionContext.disabled || props.disabled;\n return /* @__PURE__ */ jsx(\n AccordionItemProvider,\n {\n scope: __scopeAccordion,\n open,\n disabled,\n triggerId,\n children: /* @__PURE__ */ jsx(\n Collapsible,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": open ? \"open\" : \"closed\",\n __scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,\n ...accordionItemProps,\n ref: forwardedRef,\n disabled,\n open,\n onOpenChange: (open2) => {\n if (open2) {\n valueContext.onItemOpen(value);\n } else {\n valueContext.onItemClose(value);\n }\n }\n }\n )\n }\n );\n }\n);\nAccordionItem.displayName = ITEM_NAME;\nconst HEADER_NAME = \"AccordionHeader\";\nconst AccordionHeader = createRefComponent(\n (props, forwardedRef) => {\n const { __scopeAccordion, ...headerProps } = props;\n const accordionContext = useAccordionContext(__scopeAccordion);\n const itemContext = useAccordionItemContext(__scopeAccordion);\n return /* @__PURE__ */ jsx(\n H1,\n {\n \"data-orientation\": accordionContext.orientation,\n \"data-state\": getState(itemContext.open),\n \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n ...headerProps,\n ref: forwardedRef\n }\n );\n }\n);\nAccordionHeader.displayName = HEADER_NAME;\nconst AccordionTriggerFrame = styled(Collapsible.Trigger, {\n displayName: \"AccordionTrigger\"\n});\nconst AccordionTrigger = createStyledHOC(\n AccordionTriggerFrame,\n function AccordionTrigger2(props, forwardedRef) {\n const { __scopeAccordion, ...triggerProps } = props;\n const accordionContext = useAccordionContext(__scopeAccordion);\n const itemContext = useAccordionItemContext(__scopeAccordion);\n const collapsibleContext = useAccordionCollapsibleContext(__scopeAccordion);\n return /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeAccordion || ACCORDION_CONTEXT, children: /* @__PURE__ */ jsx(\n AccordionTriggerFrame,\n {\n __scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,\n \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n \"data-orientation\": accordionContext.orientation,\n id: itemContext.triggerId,\n ...triggerProps,\n ref: forwardedRef\n }\n ) });\n }\n);\nconst AccordionContentFrame = styled(Collapsible.Content, {\n displayName: \"AccordionContent\"\n});\nconst AccordionHeightAnimatorContext = React.createContext(false);\nconst AccordionContent = createStyledHOC(\n AccordionContentFrame,\n function AccordionContent2(props, forwardedRef) {\n const { __scopeAccordion, forceMount, ...contentProps } = props;\n const accordionContext = useAccordionContext(__scopeAccordion);\n const itemContext = useAccordionItemContext(__scopeAccordion);\n const heightAnimatorPresent = React.useContext(AccordionHeightAnimatorContext);\n return /* @__PURE__ */ jsx(\n AccordionContentFrame,\n {\n role: \"region\",\n \"aria-labelledby\": itemContext.triggerId,\n \"data-orientation\": accordionContext.orientation,\n __scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,\n ...contentProps,\n forceMount: forceMount || heightAnimatorPresent,\n ref: forwardedRef\n }\n );\n }\n);\nconst HeightAnimator = createStyledHOC(View, (props, ref) => {\n const itemContext = useAccordionItemContext();\n const { children, transition, ...rest } = props;\n const open = !!itemContext.open;\n const [fixed, setFixed] = React.useState(!open);\n const [pinned, setPinned] = React.useState(false);\n const [contentPresent, setContentPresent] = React.useState(open);\n const [contentHeight, setContentHeight] = React.useState(0);\n const outerRef = React.useRef(null);\n const innerRef = React.useRef(null);\n const composedRef = useComposedRefs(outerRef, ref);\n const lastOuterHeightRef = React.useRef(0);\n const pinnedHeightRef = React.useRef(0);\n const settleTimerRef = React.useRef(\n void 0\n );\n const prevOpenRef = React.useRef(open);\n if (prevOpenRef.current !== open) {\n prevOpenRef.current = open;\n clearTimeout(settleTimerRef.current);\n if (open) {\n setContentPresent(true);\n } else if (lastOuterHeightRef.current < 1) {\n setContentPresent(false);\n }\n if (!fixed) {\n pinnedHeightRef.current = lastOuterHeightRef.current;\n setFixed(true);\n setPinned(true);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (!pinned) return;\n if (isWeb) {\n void outerRef.current?.offsetHeight;\n setPinned(false);\n return;\n }\n const frame = requestAnimationFrame(() => setPinned(false));\n return () => cancelAnimationFrame(frame);\n }, [pinned]);\n React.useEffect(() => () => clearTimeout(settleTimerRef.current), []);\n useIsomorphicLayoutEffect(() => {\n if (!fixed || !open) return;\n const el = innerRef.current;\n const naturalHeight = el?.getBoundingClientRect?.().height;\n if (naturalHeight && naturalHeight > 0 && naturalHeight !== contentHeight) {\n setContentHeight(naturalHeight);\n }\n });\n const minHeight = pinned ? pinnedHeightRef.current : open ? contentHeight : 0;\n return /* @__PURE__ */ jsx(\n View,\n {\n ref: composedRef,\n position: \"relative\",\n ...rest,\n transition: fixed ? transition : void 0,\n height: \"auto\",\n minHeight,\n overflow: \"hidden\",\n onLayout: ({ nativeEvent }) => {\n const outerHeight = nativeEvent.layout.height;\n lastOuterHeightRef.current = outerHeight;\n if (isWeb && !open && contentPresent && outerHeight < 1) {\n setContentPresent(false);\n }\n clearTimeout(settleTimerRef.current);\n if (fixed && !pinned && open && contentHeight > 0) {\n if (Math.abs(outerHeight - contentHeight) < 1) {\n settleTimerRef.current = setTimeout(() => setFixed(false), 100);\n }\n }\n },\n onTransition: (event) => {\n if (event.phase !== \"end\" || event.cause !== \"update\" || !event.finished) return;\n if (!prevOpenRef.current && !pinned) {\n setContentPresent(false);\n }\n },\n children: /* @__PURE__ */ jsx(\n View,\n {\n ref: innerRef,\n position: fixed ? \"absolute\" : \"relative\",\n top: fixed ? 0 : void 0,\n left: fixed ? 0 : void 0,\n right: fixed ? 0 : void 0,\n onLayout: ({ nativeEvent }) => {\n const naturalHeight = nativeEvent.layout.height;\n if (open && naturalHeight !== contentHeight) {\n setContentHeight(naturalHeight);\n }\n },\n children: /* @__PURE__ */ jsx(AccordionHeightAnimatorContext.Provider, { value: contentPresent, children })\n }\n )\n }\n );\n});\nfunction getState(open) {\n return open ? \"open\" : \"closed\";\n}\nconst Accordion = withStaticProperties(AccordionComponent, {\n Trigger: AccordionTrigger,\n Header: AccordionHeader,\n Content: AccordionContent,\n Item: AccordionItem,\n HeightAnimator\n});\nexport {\n Accordion\n};\n//# sourceMappingURL=Accordion.js.map\n"],"mappings":"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"}
|
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __export = (target, all) => {
|
|
11
|
+
for (var name in all) __defProp(target, name, {
|
|
12
|
+
get: all[name],
|
|
13
|
+
enumerable: true
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var __copyProps = (to, from, except, desc) => {
|
|
17
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
18
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
19
|
+
get: () => from[key],
|
|
20
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return to;
|
|
24
|
+
};
|
|
25
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
26
|
+
value: mod,
|
|
27
|
+
enumerable: true
|
|
28
|
+
}) : target, mod));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var Accordion_exports = {};
|
|
31
|
+
__export(Accordion_exports, { Accordion: () => Accordion });
|
|
32
|
+
module.exports = __toCommonJS(Accordion_exports);
|
|
33
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
34
|
+
var import_core = require("@tamagui/core");
|
|
35
|
+
var import_collapsible = require("@tamagui/collapsible");
|
|
36
|
+
var import_collection = require("@tamagui/collection");
|
|
37
|
+
var import_compose_refs = require("@tamagui/compose-refs");
|
|
38
|
+
var import_constants = require("@tamagui/constants");
|
|
39
|
+
var import_core2 = require("@tamagui/core");
|
|
40
|
+
var import_helpers = require("@tamagui/helpers");
|
|
41
|
+
var import_stacks = require("@tamagui/stacks");
|
|
42
|
+
var import_text = require("@tamagui/text");
|
|
43
|
+
var import_use_controllable_state = require("@tamagui/use-controllable-state");
|
|
44
|
+
var import_use_direction = require("@tamagui/use-direction");
|
|
45
|
+
var React = __toESM(require("react"), 1);
|
|
46
|
+
var ACCORDION_NAME = "Accordion";
|
|
47
|
+
var ACCORDION_KEYS = [
|
|
48
|
+
"Home",
|
|
49
|
+
"End",
|
|
50
|
+
"ArrowDown",
|
|
51
|
+
"ArrowUp",
|
|
52
|
+
"ArrowLeft",
|
|
53
|
+
"ArrowRight"
|
|
54
|
+
];
|
|
55
|
+
var [Collection, useCollection] = (0, import_collection.createCollection)(ACCORDION_NAME);
|
|
56
|
+
var ACCORDION_CONTEXT = "Accordion";
|
|
57
|
+
var AccordionComponent = (0, import_core.createRefComponent)(function(props, forwardedRef) {
|
|
58
|
+
var { type, ...accordionProps } = props;
|
|
59
|
+
var singleProps = accordionProps;
|
|
60
|
+
var multipleProps = accordionProps;
|
|
61
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Provider, {
|
|
62
|
+
scope: props.__scopeAccordion || ACCORDION_CONTEXT,
|
|
63
|
+
children: type === "multiple" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionImplMultiple, {
|
|
64
|
+
...multipleProps,
|
|
65
|
+
ref: forwardedRef
|
|
66
|
+
}) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionImplSingle, {
|
|
67
|
+
...singleProps,
|
|
68
|
+
ref: forwardedRef
|
|
69
|
+
})
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
AccordionComponent.displayName = ACCORDION_NAME;
|
|
73
|
+
AccordionComponent.propTypes = { type(props) {
|
|
74
|
+
var value = props.value || props.defaultValue;
|
|
75
|
+
if (props.type && !["single", "multiple"].includes(props.type)) {
|
|
76
|
+
return new Error("Invalid prop `type` supplied to `Accordion`. Expected one of `single | multiple`.");
|
|
77
|
+
}
|
|
78
|
+
if (props.type === "multiple" && typeof value === "string") {
|
|
79
|
+
return new Error("Invalid prop `type` supplied to `Accordion`. Expected `single` when `defaultValue` or `value` is type `string`.");
|
|
80
|
+
}
|
|
81
|
+
if (props.type === "single" && Array.isArray(value)) {
|
|
82
|
+
return new Error("Invalid prop `type` supplied to `Accordion`. Expected `multiple` when `defaultValue` or `value` is type `string[]`.");
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
} };
|
|
86
|
+
var { Provider: AccordionValueProvider, useStyledContext: useAccordionValueContext } = (0, import_core2.createStyledContext)();
|
|
87
|
+
var { Provider: AccordionCollapsibleProvider, useStyledContext: useAccordionCollapsibleContext } = (0, import_core2.createStyledContext)();
|
|
88
|
+
var AccordionImplSingle = (0, import_core.createRefComponent)(function(props, forwardedRef) {
|
|
89
|
+
var { value: valueProp, defaultValue, control, onValueChange = function() {}, collapsible = false, ...accordionSingleProps } = props;
|
|
90
|
+
var [value, setValue] = (0, import_use_controllable_state.useControllableState)({
|
|
91
|
+
prop: valueProp,
|
|
92
|
+
defaultProp: defaultValue || "",
|
|
93
|
+
onChange: onValueChange
|
|
94
|
+
});
|
|
95
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionValueProvider, {
|
|
96
|
+
scope: props.__scopeAccordion,
|
|
97
|
+
value: value ? [value] : [],
|
|
98
|
+
onItemOpen: setValue,
|
|
99
|
+
onItemClose: React.useCallback(function() {
|
|
100
|
+
return collapsible && setValue("");
|
|
101
|
+
}, [setValue, collapsible]),
|
|
102
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionCollapsibleProvider, {
|
|
103
|
+
scope: props.__scopeAccordion,
|
|
104
|
+
collapsible,
|
|
105
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionImpl, {
|
|
106
|
+
...accordionSingleProps,
|
|
107
|
+
ref: forwardedRef
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
var AccordionImplMultiple = (0, import_core.createRefComponent)(function(props, forwardedRef) {
|
|
113
|
+
var { value: valueProp, defaultValue, onValueChange = function() {}, ...accordionMultipleProps } = props;
|
|
114
|
+
var [value, setValue] = (0, import_use_controllable_state.useControllableState)({
|
|
115
|
+
prop: valueProp,
|
|
116
|
+
defaultProp: defaultValue || [],
|
|
117
|
+
onChange: onValueChange
|
|
118
|
+
});
|
|
119
|
+
var handleItemOpen = React.useCallback(function(itemValue) {
|
|
120
|
+
return setValue(function() {
|
|
121
|
+
var prevValue = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
122
|
+
return [...prevValue, itemValue];
|
|
123
|
+
});
|
|
124
|
+
}, [setValue]);
|
|
125
|
+
var handleItemClose = React.useCallback(function(itemValue) {
|
|
126
|
+
return setValue(function() {
|
|
127
|
+
var prevValue = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : [];
|
|
128
|
+
return prevValue.filter(function(value2) {
|
|
129
|
+
return value2 !== itemValue;
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
}, [setValue]);
|
|
133
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionValueProvider, {
|
|
134
|
+
scope: props.__scopeAccordion,
|
|
135
|
+
value: value || [],
|
|
136
|
+
onItemOpen: handleItemOpen,
|
|
137
|
+
onItemClose: handleItemClose,
|
|
138
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionCollapsibleProvider, {
|
|
139
|
+
scope: props.__scopeAccordion,
|
|
140
|
+
collapsible: true,
|
|
141
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionImpl, {
|
|
142
|
+
...accordionMultipleProps,
|
|
143
|
+
ref: forwardedRef
|
|
144
|
+
})
|
|
145
|
+
})
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
var { Provider: AccordionImplProvider, useStyledContext: useAccordionContext } = (0, import_core2.createStyledContext)();
|
|
149
|
+
var AccordionImpl = (0, import_core.createRefComponent)(function(props, forwardedRef) {
|
|
150
|
+
var { __scopeAccordion, disabled, dir, orientation = "vertical", ...accordionProps } = props;
|
|
151
|
+
var accordionRef = React.useRef(null);
|
|
152
|
+
var composedRef = (0, import_compose_refs.useComposedRefs)(accordionRef, forwardedRef);
|
|
153
|
+
var getItems = useCollection(__scopeAccordion || ACCORDION_CONTEXT);
|
|
154
|
+
var direction = (0, import_use_direction.useDirection)(dir);
|
|
155
|
+
var isDirectionLTR = direction === "ltr";
|
|
156
|
+
var handleKeyDown = (0, import_helpers.composeEventHandlers)(props.onKeyDown, function(event) {
|
|
157
|
+
var _triggerCollection_clampedIndex_ref_current;
|
|
158
|
+
if (!ACCORDION_KEYS.includes(event.key)) return;
|
|
159
|
+
var target = event.target;
|
|
160
|
+
var triggerCollection = getItems().filter(function(item) {
|
|
161
|
+
var el = item.ref.current;
|
|
162
|
+
return !(el === null || el === void 0 ? void 0 : el.disabled);
|
|
163
|
+
});
|
|
164
|
+
var triggerIndex = triggerCollection.findIndex(function(item) {
|
|
165
|
+
return item.ref.current === target;
|
|
166
|
+
});
|
|
167
|
+
var triggerCount = triggerCollection.length;
|
|
168
|
+
if (triggerIndex === -1) return;
|
|
169
|
+
event.preventDefault();
|
|
170
|
+
var nextIndex = triggerIndex;
|
|
171
|
+
var homeIndex = 0;
|
|
172
|
+
var endIndex = triggerCount - 1;
|
|
173
|
+
var moveNext = function() {
|
|
174
|
+
nextIndex = triggerIndex + 1;
|
|
175
|
+
if (nextIndex > endIndex) {
|
|
176
|
+
nextIndex = homeIndex;
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
var movePrev = function() {
|
|
180
|
+
nextIndex = triggerIndex - 1;
|
|
181
|
+
if (nextIndex < homeIndex) {
|
|
182
|
+
nextIndex = endIndex;
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
switch (event.key) {
|
|
186
|
+
case "Home":
|
|
187
|
+
nextIndex = homeIndex;
|
|
188
|
+
break;
|
|
189
|
+
case "End":
|
|
190
|
+
nextIndex = endIndex;
|
|
191
|
+
break;
|
|
192
|
+
case "ArrowRight":
|
|
193
|
+
if (orientation === "horizontal") {
|
|
194
|
+
if (isDirectionLTR) {
|
|
195
|
+
moveNext();
|
|
196
|
+
} else {
|
|
197
|
+
movePrev();
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
break;
|
|
201
|
+
case "ArrowDown":
|
|
202
|
+
if (orientation === "vertical") {
|
|
203
|
+
moveNext();
|
|
204
|
+
}
|
|
205
|
+
break;
|
|
206
|
+
case "ArrowLeft":
|
|
207
|
+
if (orientation === "horizontal") {
|
|
208
|
+
if (isDirectionLTR) {
|
|
209
|
+
movePrev();
|
|
210
|
+
} else {
|
|
211
|
+
moveNext();
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
break;
|
|
215
|
+
case "ArrowUp":
|
|
216
|
+
if (orientation === "vertical") {
|
|
217
|
+
movePrev();
|
|
218
|
+
}
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
var clampedIndex = nextIndex % triggerCount;
|
|
222
|
+
(_triggerCollection_clampedIndex_ref_current = triggerCollection[clampedIndex].ref.current) === null || _triggerCollection_clampedIndex_ref_current === void 0 ? void 0 : _triggerCollection_clampedIndex_ref_current.focus();
|
|
223
|
+
});
|
|
224
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionImplProvider, {
|
|
225
|
+
scope: __scopeAccordion,
|
|
226
|
+
disabled,
|
|
227
|
+
direction: dir,
|
|
228
|
+
orientation,
|
|
229
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.Slot, {
|
|
230
|
+
scope: __scopeAccordion || ACCORDION_CONTEXT,
|
|
231
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
|
|
232
|
+
"data-orientation": orientation,
|
|
233
|
+
ref: composedRef,
|
|
234
|
+
...accordionProps,
|
|
235
|
+
...import_constants.isWeb && { onKeyDown: handleKeyDown }
|
|
236
|
+
})
|
|
237
|
+
})
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
var ITEM_NAME = "AccordionItem";
|
|
241
|
+
var { Provider: AccordionItemProvider, useStyledContext: useAccordionItemContext } = (0, import_core2.createStyledContext)();
|
|
242
|
+
var AccordionItem = (0, import_core.createRefComponent)(function(props, forwardedRef) {
|
|
243
|
+
var { __scopeAccordion, value, ...accordionItemProps } = props;
|
|
244
|
+
var accordionContext = useAccordionContext(__scopeAccordion);
|
|
245
|
+
var valueContext = useAccordionValueContext(__scopeAccordion);
|
|
246
|
+
var triggerId = React.useId();
|
|
247
|
+
var open = value && valueContext.value.includes(value) || false;
|
|
248
|
+
var disabled = accordionContext.disabled || props.disabled;
|
|
249
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionItemProvider, {
|
|
250
|
+
scope: __scopeAccordion,
|
|
251
|
+
open,
|
|
252
|
+
disabled,
|
|
253
|
+
triggerId,
|
|
254
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_collapsible.Collapsible, {
|
|
255
|
+
"data-orientation": accordionContext.orientation,
|
|
256
|
+
"data-state": open ? "open" : "closed",
|
|
257
|
+
__scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,
|
|
258
|
+
...accordionItemProps,
|
|
259
|
+
ref: forwardedRef,
|
|
260
|
+
disabled,
|
|
261
|
+
open,
|
|
262
|
+
onOpenChange: function(open2) {
|
|
263
|
+
if (open2) {
|
|
264
|
+
valueContext.onItemOpen(value);
|
|
265
|
+
} else {
|
|
266
|
+
valueContext.onItemClose(value);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
})
|
|
270
|
+
});
|
|
271
|
+
});
|
|
272
|
+
AccordionItem.displayName = ITEM_NAME;
|
|
273
|
+
var HEADER_NAME = "AccordionHeader";
|
|
274
|
+
var AccordionHeader = (0, import_core.createRefComponent)(function(props, forwardedRef) {
|
|
275
|
+
var { __scopeAccordion, ...headerProps } = props;
|
|
276
|
+
var accordionContext = useAccordionContext(__scopeAccordion);
|
|
277
|
+
var itemContext = useAccordionItemContext(__scopeAccordion);
|
|
278
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_text.H1, {
|
|
279
|
+
"data-orientation": accordionContext.orientation,
|
|
280
|
+
"data-state": getState(itemContext.open),
|
|
281
|
+
"data-disabled": itemContext.disabled ? "" : void 0,
|
|
282
|
+
...headerProps,
|
|
283
|
+
ref: forwardedRef
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
AccordionHeader.displayName = HEADER_NAME;
|
|
287
|
+
var AccordionTriggerFrame = (0, import_core2.styled)(import_collapsible.Collapsible.Trigger, { displayName: "AccordionTrigger" });
|
|
288
|
+
var AccordionTrigger = (0, import_core.createStyledHOC)(AccordionTriggerFrame, function AccordionTrigger2(props, forwardedRef) {
|
|
289
|
+
var { __scopeAccordion, ...triggerProps } = props;
|
|
290
|
+
var accordionContext = useAccordionContext(__scopeAccordion);
|
|
291
|
+
var itemContext = useAccordionItemContext(__scopeAccordion);
|
|
292
|
+
var collapsibleContext = useAccordionCollapsibleContext(__scopeAccordion);
|
|
293
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Collection.ItemSlot, {
|
|
294
|
+
scope: __scopeAccordion || ACCORDION_CONTEXT,
|
|
295
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionTriggerFrame, {
|
|
296
|
+
__scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,
|
|
297
|
+
"aria-disabled": itemContext.open && !collapsibleContext.collapsible || void 0,
|
|
298
|
+
"data-orientation": accordionContext.orientation,
|
|
299
|
+
id: itemContext.triggerId,
|
|
300
|
+
...triggerProps,
|
|
301
|
+
ref: forwardedRef
|
|
302
|
+
})
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
var AccordionContentFrame = (0, import_core2.styled)(import_collapsible.Collapsible.Content, { displayName: "AccordionContent" });
|
|
306
|
+
var AccordionHeightAnimatorContext = /* @__PURE__ */ React.createContext(false);
|
|
307
|
+
var AccordionContent = (0, import_core.createStyledHOC)(AccordionContentFrame, function AccordionContent2(props, forwardedRef) {
|
|
308
|
+
var { __scopeAccordion, forceMount, ...contentProps } = props;
|
|
309
|
+
var accordionContext = useAccordionContext(__scopeAccordion);
|
|
310
|
+
var itemContext = useAccordionItemContext(__scopeAccordion);
|
|
311
|
+
var heightAnimatorPresent = React.useContext(AccordionHeightAnimatorContext);
|
|
312
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionContentFrame, {
|
|
313
|
+
role: "region",
|
|
314
|
+
"aria-labelledby": itemContext.triggerId,
|
|
315
|
+
"data-orientation": accordionContext.orientation,
|
|
316
|
+
__scopeCollapsible: __scopeAccordion || ACCORDION_CONTEXT,
|
|
317
|
+
...contentProps,
|
|
318
|
+
forceMount: forceMount || heightAnimatorPresent,
|
|
319
|
+
ref: forwardedRef
|
|
320
|
+
});
|
|
321
|
+
});
|
|
322
|
+
var HeightAnimator = (0, import_core.createStyledHOC)(import_core2.View, function(props, ref) {
|
|
323
|
+
var itemContext = useAccordionItemContext();
|
|
324
|
+
var { children, transition, ...rest } = props;
|
|
325
|
+
var open = !!itemContext.open;
|
|
326
|
+
var [fixed, setFixed] = React.useState(!open);
|
|
327
|
+
var [pinned, setPinned] = React.useState(false);
|
|
328
|
+
var [contentPresent, setContentPresent] = React.useState(open);
|
|
329
|
+
var [contentHeight, setContentHeight] = React.useState(0);
|
|
330
|
+
var outerRef = React.useRef(null);
|
|
331
|
+
var innerRef = React.useRef(null);
|
|
332
|
+
var composedRef = (0, import_compose_refs.useComposedRefs)(outerRef, ref);
|
|
333
|
+
var lastOuterHeightRef = React.useRef(0);
|
|
334
|
+
var pinnedHeightRef = React.useRef(0);
|
|
335
|
+
var settleTimerRef = React.useRef(void 0);
|
|
336
|
+
var prevOpenRef = React.useRef(open);
|
|
337
|
+
if (prevOpenRef.current !== open) {
|
|
338
|
+
prevOpenRef.current = open;
|
|
339
|
+
clearTimeout(settleTimerRef.current);
|
|
340
|
+
if (open) {
|
|
341
|
+
setContentPresent(true);
|
|
342
|
+
} else if (lastOuterHeightRef.current < 1) {
|
|
343
|
+
setContentPresent(false);
|
|
344
|
+
}
|
|
345
|
+
if (!fixed) {
|
|
346
|
+
pinnedHeightRef.current = lastOuterHeightRef.current;
|
|
347
|
+
setFixed(true);
|
|
348
|
+
setPinned(true);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
(0, import_constants.useIsomorphicLayoutEffect)(function() {
|
|
352
|
+
if (!pinned) return;
|
|
353
|
+
if (import_constants.isWeb) {
|
|
354
|
+
var _outerRef_current;
|
|
355
|
+
void ((_outerRef_current = outerRef.current) === null || _outerRef_current === void 0 ? void 0 : _outerRef_current.offsetHeight);
|
|
356
|
+
setPinned(false);
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
var frame = requestAnimationFrame(function() {
|
|
360
|
+
return setPinned(false);
|
|
361
|
+
});
|
|
362
|
+
return function() {
|
|
363
|
+
return cancelAnimationFrame(frame);
|
|
364
|
+
};
|
|
365
|
+
}, [pinned]);
|
|
366
|
+
React.useEffect(function() {
|
|
367
|
+
return function() {
|
|
368
|
+
return clearTimeout(settleTimerRef.current);
|
|
369
|
+
};
|
|
370
|
+
}, []);
|
|
371
|
+
(0, import_constants.useIsomorphicLayoutEffect)(function() {
|
|
372
|
+
var _el_getBoundingClientRect;
|
|
373
|
+
if (!fixed || !open) return;
|
|
374
|
+
var el = innerRef.current;
|
|
375
|
+
var naturalHeight = el === null || el === void 0 ? void 0 : (_el_getBoundingClientRect = el.getBoundingClientRect) === null || _el_getBoundingClientRect === void 0 ? void 0 : _el_getBoundingClientRect.call(el).height;
|
|
376
|
+
if (naturalHeight && naturalHeight > 0 && naturalHeight !== contentHeight) {
|
|
377
|
+
setContentHeight(naturalHeight);
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
var minHeight = pinned ? pinnedHeightRef.current : open ? contentHeight : 0;
|
|
381
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core2.View, {
|
|
382
|
+
ref: composedRef,
|
|
383
|
+
position: "relative",
|
|
384
|
+
...rest,
|
|
385
|
+
transition: fixed ? transition : void 0,
|
|
386
|
+
height: "auto",
|
|
387
|
+
minHeight,
|
|
388
|
+
overflow: "hidden",
|
|
389
|
+
onLayout: function(param) {
|
|
390
|
+
var { nativeEvent } = param;
|
|
391
|
+
var outerHeight = nativeEvent.layout.height;
|
|
392
|
+
lastOuterHeightRef.current = outerHeight;
|
|
393
|
+
if (import_constants.isWeb && !open && contentPresent && outerHeight < 1) {
|
|
394
|
+
setContentPresent(false);
|
|
395
|
+
}
|
|
396
|
+
clearTimeout(settleTimerRef.current);
|
|
397
|
+
if (fixed && !pinned && open && contentHeight > 0) {
|
|
398
|
+
if (Math.abs(outerHeight - contentHeight) < 1) {
|
|
399
|
+
settleTimerRef.current = setTimeout(function() {
|
|
400
|
+
return setFixed(false);
|
|
401
|
+
}, 100);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
onTransition: function(event) {
|
|
406
|
+
if (event.phase !== "end" || event.cause !== "update" || !event.finished) return;
|
|
407
|
+
if (!prevOpenRef.current && !pinned) {
|
|
408
|
+
setContentPresent(false);
|
|
409
|
+
}
|
|
410
|
+
},
|
|
411
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core2.View, {
|
|
412
|
+
ref: innerRef,
|
|
413
|
+
position: fixed ? "absolute" : "relative",
|
|
414
|
+
top: fixed ? 0 : void 0,
|
|
415
|
+
left: fixed ? 0 : void 0,
|
|
416
|
+
right: fixed ? 0 : void 0,
|
|
417
|
+
onLayout: function(param) {
|
|
418
|
+
var { nativeEvent } = param;
|
|
419
|
+
var naturalHeight = nativeEvent.layout.height;
|
|
420
|
+
if (open && naturalHeight !== contentHeight) {
|
|
421
|
+
setContentHeight(naturalHeight);
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AccordionHeightAnimatorContext.Provider, {
|
|
425
|
+
value: contentPresent,
|
|
426
|
+
children
|
|
427
|
+
})
|
|
428
|
+
})
|
|
429
|
+
});
|
|
430
|
+
});
|
|
431
|
+
function getState(open) {
|
|
432
|
+
return open ? "open" : "closed";
|
|
433
|
+
}
|
|
434
|
+
var Accordion = (0, import_helpers.withStaticProperties)(AccordionComponent, {
|
|
435
|
+
Trigger: AccordionTrigger,
|
|
436
|
+
Header: AccordionHeader,
|
|
437
|
+
Content: AccordionContent,
|
|
438
|
+
Item: AccordionItem,
|
|
439
|
+
HeightAnimator
|
|
440
|
+
});
|