@cdx-ui/primitives 0.0.1-beta.171 → 0.0.1-beta.173
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/commonjs/accordion/Accordion.js +59 -0
- package/lib/commonjs/accordion/Accordion.js.map +1 -0
- package/lib/commonjs/accordion/AccordionItem.js +68 -0
- package/lib/commonjs/accordion/AccordionItem.js.map +1 -0
- package/lib/commonjs/accordion/AccordionPanel.js +71 -0
- package/lib/commonjs/accordion/AccordionPanel.js.map +1 -0
- package/lib/commonjs/accordion/AccordionTrigger.js +122 -0
- package/lib/commonjs/accordion/AccordionTrigger.js.map +1 -0
- package/lib/commonjs/accordion/context.js +26 -0
- package/lib/commonjs/accordion/context.js.map +1 -0
- package/lib/commonjs/accordion/index.js +59 -0
- package/lib/commonjs/accordion/index.js.map +1 -0
- package/lib/commonjs/accordion/types.js +6 -0
- package/lib/commonjs/accordion/types.js.map +1 -0
- package/lib/commonjs/accordion/utils.js +24 -0
- package/lib/commonjs/accordion/utils.js.map +1 -0
- package/lib/commonjs/index.js +12 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/accordion/Accordion.js +55 -0
- package/lib/module/accordion/Accordion.js.map +1 -0
- package/lib/module/accordion/AccordionItem.js +64 -0
- package/lib/module/accordion/AccordionItem.js.map +1 -0
- package/lib/module/accordion/AccordionPanel.js +67 -0
- package/lib/module/accordion/AccordionPanel.js.map +1 -0
- package/lib/module/accordion/AccordionTrigger.js +118 -0
- package/lib/module/accordion/AccordionTrigger.js.map +1 -0
- package/lib/module/accordion/context.js +20 -0
- package/lib/module/accordion/context.js.map +1 -0
- package/lib/module/accordion/index.js +8 -0
- package/lib/module/accordion/index.js.map +1 -0
- package/lib/module/accordion/types.js +4 -0
- package/lib/module/accordion/types.js.map +1 -0
- package/lib/module/accordion/utils.js +19 -0
- package/lib/module/accordion/utils.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/accordion/Accordion.d.ts +8 -0
- package/lib/typescript/accordion/Accordion.d.ts.map +1 -0
- package/lib/typescript/accordion/AccordionItem.d.ts +8 -0
- package/lib/typescript/accordion/AccordionItem.d.ts.map +1 -0
- package/lib/typescript/accordion/AccordionPanel.d.ts +7 -0
- package/lib/typescript/accordion/AccordionPanel.d.ts.map +1 -0
- package/lib/typescript/accordion/AccordionTrigger.d.ts +6 -0
- package/lib/typescript/accordion/AccordionTrigger.d.ts.map +1 -0
- package/lib/typescript/accordion/context.d.ts +6 -0
- package/lib/typescript/accordion/context.d.ts.map +1 -0
- package/lib/typescript/accordion/index.d.ts +7 -0
- package/lib/typescript/accordion/index.d.ts.map +1 -0
- package/lib/typescript/accordion/types.d.ts +50 -0
- package/lib/typescript/accordion/types.d.ts.map +1 -0
- package/lib/typescript/accordion/utils.d.ts +4 -0
- package/lib/typescript/accordion/utils.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/package.json +5 -3
- package/src/accordion/Accordion.tsx +72 -0
- package/src/accordion/AccordionItem.tsx +70 -0
- package/src/accordion/AccordionPanel.tsx +72 -0
- package/src/accordion/AccordionTrigger.tsx +120 -0
- package/src/accordion/context.tsx +22 -0
- package/src/accordion/index.ts +21 -0
- package/src/accordion/types.ts +56 -0
- package/src/accordion/utils.ts +22 -0
- package/src/index.ts +1 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef, useCallback, useId, useMemo } from 'react';
|
|
4
|
+
import { View } from 'react-native';
|
|
5
|
+
import { Slot } from '../slot';
|
|
6
|
+
import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
|
|
7
|
+
import { AccordionItemContext, useAccordionContext } from './context';
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
export const AccordionItemRoot = /*#__PURE__*/forwardRef(({
|
|
10
|
+
asChild,
|
|
11
|
+
children,
|
|
12
|
+
className,
|
|
13
|
+
style,
|
|
14
|
+
value,
|
|
15
|
+
disabled = false,
|
|
16
|
+
...props
|
|
17
|
+
}, ref) => {
|
|
18
|
+
const {
|
|
19
|
+
groupState,
|
|
20
|
+
type,
|
|
21
|
+
collapsible,
|
|
22
|
+
isDisabled: groupDisabled
|
|
23
|
+
} = useAccordionContext();
|
|
24
|
+
const reactId = useId().replace(/[^a-zA-Z0-9_-]/g, '');
|
|
25
|
+
const triggerId = `accordion-${reactId}-trigger`;
|
|
26
|
+
const panelId = `accordion-${reactId}-panel`;
|
|
27
|
+
const isExpanded = groupState.expandedKeys.has(value);
|
|
28
|
+
const isDisabled = disabled || groupDisabled;
|
|
29
|
+
const toggle = useCallback(() => {
|
|
30
|
+
if (isDisabled) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (type === 'single' && !collapsible && isExpanded) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
groupState.toggleKey(value);
|
|
37
|
+
}, [isDisabled, type, collapsible, isExpanded, groupState, value]);
|
|
38
|
+
const contextValue = useMemo(() => ({
|
|
39
|
+
value,
|
|
40
|
+
isExpanded,
|
|
41
|
+
isDisabled,
|
|
42
|
+
triggerId,
|
|
43
|
+
panelId,
|
|
44
|
+
toggle
|
|
45
|
+
}), [value, isExpanded, isDisabled, triggerId, panelId, toggle]);
|
|
46
|
+
const Comp = asChild ? Slot : View;
|
|
47
|
+
return /*#__PURE__*/_jsx(AccordionItemContext.Provider, {
|
|
48
|
+
value: contextValue,
|
|
49
|
+
children: /*#__PURE__*/_jsx(Comp, {
|
|
50
|
+
ref: ref,
|
|
51
|
+
className: className,
|
|
52
|
+
style: style,
|
|
53
|
+
...props,
|
|
54
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
55
|
+
slot: 'accordion-item',
|
|
56
|
+
state: isExpanded ? 'open' : 'closed',
|
|
57
|
+
disabled: isDisabled
|
|
58
|
+
})),
|
|
59
|
+
children: children
|
|
60
|
+
})
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
AccordionItemRoot.displayName = 'AccordionItemRoot';
|
|
64
|
+
//# sourceMappingURL=AccordionItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useCallback","useId","useMemo","View","Slot","dataAttributes","mergeDataAttributes","AccordionItemContext","useAccordionContext","jsx","_jsx","AccordionItemRoot","asChild","children","className","style","value","disabled","props","ref","groupState","type","collapsible","isDisabled","groupDisabled","reactId","replace","triggerId","panelId","isExpanded","expandedKeys","has","toggle","toggleKey","contextValue","Comp","Provider","slot","state","displayName"],"sourceRoot":"../../../src","sources":["accordion/AccordionItem.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,WAAW,EAAEC,KAAK,EAAEC,OAAO,QAAQ,OAAO;AAC/D,SAASC,IAAI,QAAQ,cAAc;AACnC,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC7E,SAASC,oBAAoB,EAAEC,mBAAmB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAQtE,OAAO,MAAMC,iBAAiB,gBAAGZ,UAAU,CACzC,CAAC;EAAEa,OAAO;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,KAAK;EAAEC,KAAK;EAAEC,QAAQ,GAAG,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EACnF,MAAM;IAAEC,UAAU;IAAEC,IAAI;IAAEC,WAAW;IAAEC,UAAU,EAAEC;EAAc,CAAC,GAAGhB,mBAAmB,CAAC,CAAC;EAC1F,MAAMiB,OAAO,GAAGxB,KAAK,CAAC,CAAC,CAACyB,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;EACtD,MAAMC,SAAS,GAAG,aAAaF,OAAO,UAAU;EAChD,MAAMG,OAAO,GAAG,aAAaH,OAAO,QAAQ;EAE5C,MAAMI,UAAU,GAAGT,UAAU,CAACU,YAAY,CAACC,GAAG,CAACf,KAAK,CAAC;EACrD,MAAMO,UAAU,GAAGN,QAAQ,IAAIO,aAAa;EAE5C,MAAMQ,MAAM,GAAGhC,WAAW,CAAC,MAAM;IAC/B,IAAIuB,UAAU,EAAE;MACd;IACF;IACA,IAAIF,IAAI,KAAK,QAAQ,IAAI,CAACC,WAAW,IAAIO,UAAU,EAAE;MACnD;IACF;IACAT,UAAU,CAACa,SAAS,CAACjB,KAAK,CAAC;EAC7B,CAAC,EAAE,CAACO,UAAU,EAAEF,IAAI,EAAEC,WAAW,EAAEO,UAAU,EAAET,UAAU,EAAEJ,KAAK,CAAC,CAAC;EAElE,MAAMkB,YAAY,GAAGhC,OAAO,CAC1B,OAAO;IACLc,KAAK;IACLa,UAAU;IACVN,UAAU;IACVI,SAAS;IACTC,OAAO;IACPI;EACF,CAAC,CAAC,EACF,CAAChB,KAAK,EAAEa,UAAU,EAAEN,UAAU,EAAEI,SAAS,EAAEC,OAAO,EAAEI,MAAM,CAC5D,CAAC;EAED,MAAMG,IAAI,GAAGvB,OAAO,GAAGR,IAAI,GAAGD,IAAI;EAElC,oBACEO,IAAA,CAACH,oBAAoB,CAAC6B,QAAQ;IAACpB,KAAK,EAAEkB,YAAa;IAAArB,QAAA,eACjDH,IAAA,CAACyB,IAAI;MACHhB,GAAG,EAAEA,GAAI;MACTL,SAAS,EAAEA,SAAU;MACrBC,KAAK,EAAEA,KAAM;MAAA,GACTG,KAAK;MAAA,GACLZ,mBAAmB,CACrBY,KAAK,EACLb,cAAc,CAAC;QACbgC,IAAI,EAAE,gBAAgB;QACtBC,KAAK,EAAET,UAAU,GAAG,MAAM,GAAG,QAAQ;QACrCZ,QAAQ,EAAEM;MACZ,CAAC,CACH,CAAC;MAAAV,QAAA,EAEAA;IAAQ,CACL;EAAC,CACsB,CAAC;AAEpC,CACF,CAAC;AAEDF,iBAAiB,CAAC4B,WAAW,GAAG,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef } from 'react';
|
|
4
|
+
import { Platform, View } from 'react-native';
|
|
5
|
+
import { useDisclosure } from '@react-native-aria/disclosure';
|
|
6
|
+
import { Slot } from '../slot';
|
|
7
|
+
import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
|
|
8
|
+
import { useAccordionItemContext } from './context';
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
export const AccordionPanelRoot = /*#__PURE__*/forwardRef(({
|
|
11
|
+
asChild,
|
|
12
|
+
children,
|
|
13
|
+
className,
|
|
14
|
+
style,
|
|
15
|
+
...props
|
|
16
|
+
}, ref) => {
|
|
17
|
+
const {
|
|
18
|
+
isExpanded,
|
|
19
|
+
isDisabled,
|
|
20
|
+
triggerId,
|
|
21
|
+
panelId,
|
|
22
|
+
toggle
|
|
23
|
+
} = useAccordionItemContext();
|
|
24
|
+
const toggleState = {
|
|
25
|
+
isSelected: isExpanded,
|
|
26
|
+
defaultSelected: false,
|
|
27
|
+
setSelected: selected => {
|
|
28
|
+
if (selected !== isExpanded) {
|
|
29
|
+
toggle();
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
toggle
|
|
33
|
+
};
|
|
34
|
+
const {
|
|
35
|
+
disclosureProps
|
|
36
|
+
} = useDisclosure({}, toggleState);
|
|
37
|
+
const Comp = asChild ? Slot : View;
|
|
38
|
+
if (!isExpanded) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
const platformA11yProps = Platform.OS === 'web' ? {
|
|
42
|
+
id: panelId,
|
|
43
|
+
nativeID: panelId,
|
|
44
|
+
role: 'region',
|
|
45
|
+
'aria-labelledby': triggerId
|
|
46
|
+
} : {
|
|
47
|
+
nativeID: panelId,
|
|
48
|
+
accessibilityLabelledBy: triggerId,
|
|
49
|
+
accessibilityRole: 'none'
|
|
50
|
+
};
|
|
51
|
+
return /*#__PURE__*/_jsx(Comp, {
|
|
52
|
+
ref: ref,
|
|
53
|
+
className: className,
|
|
54
|
+
style: style,
|
|
55
|
+
...disclosureProps,
|
|
56
|
+
...props,
|
|
57
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
58
|
+
slot: 'accordion-panel',
|
|
59
|
+
state: 'open',
|
|
60
|
+
disabled: isDisabled
|
|
61
|
+
})),
|
|
62
|
+
...platformA11yProps,
|
|
63
|
+
children: children
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
AccordionPanelRoot.displayName = 'AccordionPanelRoot';
|
|
67
|
+
//# sourceMappingURL=AccordionPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","Platform","View","useDisclosure","Slot","dataAttributes","mergeDataAttributes","useAccordionItemContext","jsx","_jsx","AccordionPanelRoot","asChild","children","className","style","props","ref","isExpanded","isDisabled","triggerId","panelId","toggle","toggleState","isSelected","defaultSelected","setSelected","selected","disclosureProps","Comp","platformA11yProps","OS","id","nativeID","role","accessibilityLabelledBy","accessibilityRole","slot","state","disabled","displayName"],"sourceRoot":"../../../src","sources":["accordion/AccordionPanel.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,OAAO;AAClC,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC7C,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,yBAAyB;AAC7E,SAASC,uBAAuB,QAAQ,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOpD,OAAO,MAAMC,kBAAkB,gBAAGV,UAAU,CAC1C,CAAC;EAAEW,OAAO;EAAEC,QAAQ;EAAEC,SAAS;EAAEC,KAAK;EAAE,GAAGC;AAAM,CAAC,EAAEC,GAAG,KAAK;EAC1D,MAAM;IAAEC,UAAU;IAAEC,UAAU;IAAEC,SAAS;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGd,uBAAuB,CAAC,CAAC;EAExF,MAAMe,WAAW,GAAG;IAClBC,UAAU,EAAEN,UAAU;IACtBO,eAAe,EAAE,KAAK;IACtBC,WAAW,EAAGC,QAAiB,IAAK;MAClC,IAAIA,QAAQ,KAAKT,UAAU,EAAE;QAC3BI,MAAM,CAAC,CAAC;MACV;IACF,CAAC;IACDA;EACF,CAAC;EAED,MAAM;IAAEM;EAAgB,CAAC,GAAGxB,aAAa,CAAC,CAAC,CAAC,EAAEmB,WAAW,CAAC;EAC1D,MAAMM,IAAI,GAAGjB,OAAO,GAAGP,IAAI,GAAGF,IAAI;EAElC,IAAI,CAACe,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,MAAMY,iBAAiB,GACrB5B,QAAQ,CAAC6B,EAAE,KAAK,KAAK,GACjB;IACEC,EAAE,EAAEX,OAAO;IACXY,QAAQ,EAAEZ,OAAO;IACjBa,IAAI,EAAE,QAAiB;IACvB,iBAAiB,EAAEd;EACrB,CAAC,GACD;IACEa,QAAQ,EAAEZ,OAAO;IACjBc,uBAAuB,EAAEf,SAAS;IAClCgB,iBAAiB,EAAE;EACrB,CAAC;EAEP,oBACE1B,IAAA,CAACmB,IAAI;IACHZ,GAAG,EAAEA,GAAI;IACTH,SAAS,EAAEA,SAAU;IACrBC,KAAK,EAAEA,KAAM;IAAA,GACTa,eAAe;IAAA,GACfZ,KAAK;IAAA,GACLT,mBAAmB,CACrBS,KAAK,EACLV,cAAc,CAAC;MACb+B,IAAI,EAAE,iBAAiB;MACvBC,KAAK,EAAE,MAAM;MACbC,QAAQ,EAAEpB;IACZ,CAAC,CACH,CAAC;IAAA,GACGW,iBAAiB;IAAAjB,QAAA,EAEpBA;EAAQ,CACL,CAAC;AAEX,CACF,CAAC;AAEDF,kBAAkB,CAAC6B,WAAW,GAAG,oBAAoB","ignoreList":[]}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { forwardRef, useMemo } from 'react';
|
|
4
|
+
import { Platform, Pressable } from 'react-native';
|
|
5
|
+
import { composeEventHandlers } from '@cdx-ui/utils';
|
|
6
|
+
import { useFocus, useFocusRing } from '@react-native-aria/focus';
|
|
7
|
+
import { usePress, useHover } from '@react-native-aria/interactions';
|
|
8
|
+
import { useDisclosureButton } from '@react-native-aria/disclosure';
|
|
9
|
+
import { Slot } from '../slot';
|
|
10
|
+
import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
|
|
11
|
+
import { useAccordionItemContext } from './context';
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
export const AccordionTriggerRoot = /*#__PURE__*/forwardRef(({
|
|
14
|
+
asChild,
|
|
15
|
+
children,
|
|
16
|
+
className,
|
|
17
|
+
style,
|
|
18
|
+
onPress,
|
|
19
|
+
onPressIn,
|
|
20
|
+
onPressOut,
|
|
21
|
+
onHoverIn,
|
|
22
|
+
onHoverOut,
|
|
23
|
+
onFocus,
|
|
24
|
+
onBlur,
|
|
25
|
+
accessibilityLabel,
|
|
26
|
+
...props
|
|
27
|
+
}, ref) => {
|
|
28
|
+
const {
|
|
29
|
+
isExpanded,
|
|
30
|
+
isDisabled,
|
|
31
|
+
triggerId,
|
|
32
|
+
panelId,
|
|
33
|
+
toggle
|
|
34
|
+
} = useAccordionItemContext();
|
|
35
|
+
const toggleState = useMemo(() => ({
|
|
36
|
+
isSelected: isExpanded,
|
|
37
|
+
defaultSelected: false,
|
|
38
|
+
setSelected: selected => {
|
|
39
|
+
if (selected !== isExpanded) {
|
|
40
|
+
toggle();
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
toggle
|
|
44
|
+
}), [isExpanded, toggle]);
|
|
45
|
+
const {
|
|
46
|
+
buttonProps
|
|
47
|
+
} = useDisclosureButton({}, toggleState);
|
|
48
|
+
const {
|
|
49
|
+
focusProps,
|
|
50
|
+
isFocused
|
|
51
|
+
} = useFocus();
|
|
52
|
+
const {
|
|
53
|
+
focusProps: focusRingProps,
|
|
54
|
+
isFocusVisible
|
|
55
|
+
} = useFocusRing();
|
|
56
|
+
const {
|
|
57
|
+
pressProps,
|
|
58
|
+
isPressed
|
|
59
|
+
} = usePress({
|
|
60
|
+
isDisabled
|
|
61
|
+
});
|
|
62
|
+
const {
|
|
63
|
+
hoverProps,
|
|
64
|
+
isHovered
|
|
65
|
+
} = useHover({
|
|
66
|
+
isDisabled
|
|
67
|
+
});
|
|
68
|
+
const Comp = asChild ? Slot : Pressable;
|
|
69
|
+
const platformA11yProps = Platform.OS === 'web' ? {
|
|
70
|
+
id: triggerId,
|
|
71
|
+
role: 'button',
|
|
72
|
+
'aria-expanded': isExpanded,
|
|
73
|
+
'aria-disabled': isDisabled || undefined,
|
|
74
|
+
'aria-controls': isExpanded ? panelId : undefined
|
|
75
|
+
} : {
|
|
76
|
+
nativeID: triggerId,
|
|
77
|
+
accessibilityRole: 'button',
|
|
78
|
+
accessibilityState: {
|
|
79
|
+
expanded: isExpanded,
|
|
80
|
+
disabled: isDisabled
|
|
81
|
+
},
|
|
82
|
+
accessibilityControls: isExpanded ? panelId : undefined
|
|
83
|
+
};
|
|
84
|
+
const {
|
|
85
|
+
onPress: disclosureOnPress,
|
|
86
|
+
...disclosureRestProps
|
|
87
|
+
} = buttonProps;
|
|
88
|
+
const disclosureProps = Platform.OS === 'web' ? {} : disclosureRestProps;
|
|
89
|
+
return /*#__PURE__*/_jsx(Comp, {
|
|
90
|
+
ref: ref,
|
|
91
|
+
disabled: isDisabled,
|
|
92
|
+
accessibilityLabel: accessibilityLabel,
|
|
93
|
+
className: className,
|
|
94
|
+
style: style,
|
|
95
|
+
...props,
|
|
96
|
+
...disclosureProps,
|
|
97
|
+
...platformA11yProps,
|
|
98
|
+
...mergeDataAttributes(props, dataAttributes({
|
|
99
|
+
slot: 'accordion-trigger',
|
|
100
|
+
state: isExpanded ? 'open' : 'closed',
|
|
101
|
+
disabled: isDisabled,
|
|
102
|
+
hover: isHovered,
|
|
103
|
+
active: isPressed,
|
|
104
|
+
focus: isFocused,
|
|
105
|
+
focusVisible: isFocusVisible
|
|
106
|
+
})),
|
|
107
|
+
onPressIn: composeEventHandlers(onPressIn, pressProps.onPressIn),
|
|
108
|
+
onPressOut: composeEventHandlers(onPressOut, pressProps.onPressOut),
|
|
109
|
+
onHoverIn: composeEventHandlers(onHoverIn, hoverProps.onHoverIn),
|
|
110
|
+
onHoverOut: composeEventHandlers(onHoverOut, hoverProps.onHoverOut),
|
|
111
|
+
onPress: composeEventHandlers(onPress, disclosureOnPress),
|
|
112
|
+
onFocus: composeEventHandlers(onFocus, focusProps.onFocus, focusRingProps.onFocus),
|
|
113
|
+
onBlur: composeEventHandlers(onBlur, focusProps.onBlur, focusRingProps.onBlur),
|
|
114
|
+
children: children
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
AccordionTriggerRoot.displayName = 'AccordionTriggerRoot';
|
|
118
|
+
//# sourceMappingURL=AccordionTrigger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["forwardRef","useMemo","Platform","Pressable","composeEventHandlers","useFocus","useFocusRing","usePress","useHover","useDisclosureButton","Slot","dataAttributes","mergeDataAttributes","useAccordionItemContext","jsx","_jsx","AccordionTriggerRoot","asChild","children","className","style","onPress","onPressIn","onPressOut","onHoverIn","onHoverOut","onFocus","onBlur","accessibilityLabel","props","ref","isExpanded","isDisabled","triggerId","panelId","toggle","toggleState","isSelected","defaultSelected","setSelected","selected","buttonProps","focusProps","isFocused","focusRingProps","isFocusVisible","pressProps","isPressed","hoverProps","isHovered","Comp","platformA11yProps","OS","id","role","undefined","nativeID","accessibilityRole","accessibilityState","expanded","disabled","accessibilityControls","disclosureOnPress","disclosureRestProps","disclosureProps","slot","state","hover","active","focus","focusVisible","displayName"],"sourceRoot":"../../../src","sources":["accordion/AccordionTrigger.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createContext, useContext } from 'react';
|
|
4
|
+
export const AccordionContext = /*#__PURE__*/createContext(null);
|
|
5
|
+
export const AccordionItemContext = /*#__PURE__*/createContext(null);
|
|
6
|
+
export function useAccordionContext() {
|
|
7
|
+
const context = useContext(AccordionContext);
|
|
8
|
+
if (!context) {
|
|
9
|
+
throw new Error('Accordion compound components must be used within Accordion');
|
|
10
|
+
}
|
|
11
|
+
return context;
|
|
12
|
+
}
|
|
13
|
+
export function useAccordionItemContext() {
|
|
14
|
+
const context = useContext(AccordionItemContext);
|
|
15
|
+
if (!context) {
|
|
16
|
+
throw new Error('Accordion.Item sub-components must be used within Accordion.Item');
|
|
17
|
+
}
|
|
18
|
+
return context;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContext","useContext","AccordionContext","AccordionItemContext","useAccordionContext","context","Error","useAccordionItemContext"],"sourceRoot":"../../../src","sources":["accordion/context.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAGjD,OAAO,MAAMC,gBAAgB,gBAAGF,aAAa,CAAgC,IAAI,CAAC;AAElF,OAAO,MAAMG,oBAAoB,gBAAGH,aAAa,CAAoC,IAAI,CAAC;AAE1F,OAAO,SAASI,mBAAmBA,CAAA,EAA2B;EAC5D,MAAMC,OAAO,GAAGJ,UAAU,CAACC,gBAAgB,CAAC;EAC5C,IAAI,CAACG,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,6DAA6D,CAAC;EAChF;EACA,OAAOD,OAAO;AAChB;AAEA,OAAO,SAASE,uBAAuBA,CAAA,EAA+B;EACpE,MAAMF,OAAO,GAAGJ,UAAU,CAACE,oBAAoB,CAAC;EAChD,IAAI,CAACE,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,kEAAkE,CAAC;EACrF;EACA,OAAOD,OAAO;AAChB","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export { AccordionContext, AccordionItemContext, useAccordionContext, useAccordionItemContext } from './context';
|
|
4
|
+
export { AccordionRoot } from './Accordion';
|
|
5
|
+
export { AccordionItemRoot } from './AccordionItem';
|
|
6
|
+
export { AccordionTriggerRoot } from './AccordionTrigger';
|
|
7
|
+
export { AccordionPanelRoot } from './AccordionPanel';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AccordionContext","AccordionItemContext","useAccordionContext","useAccordionItemContext","AccordionRoot","AccordionItemRoot","AccordionTriggerRoot","AccordionPanelRoot"],"sourceRoot":"../../../src","sources":["accordion/index.ts"],"mappings":";;AAUA,SACEA,gBAAgB,EAChBC,oBAAoB,EACpBC,mBAAmB,EACnBC,uBAAuB,QAClB,WAAW;AAElB,SAASC,aAAa,QAAiC,aAAa;AACpE,SAASC,iBAAiB,QAAqC,iBAAiB;AAChF,SAASC,oBAAoB,QAAwC,oBAAoB;AACzF,SAASC,kBAAkB,QAAsC,kBAAkB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["accordion/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export function toExpandedKeys(value) {
|
|
4
|
+
if (value === undefined) {
|
|
5
|
+
return undefined;
|
|
6
|
+
}
|
|
7
|
+
if (Array.isArray(value)) {
|
|
8
|
+
return new Set(value);
|
|
9
|
+
}
|
|
10
|
+
if (value === '') {
|
|
11
|
+
return new Set();
|
|
12
|
+
}
|
|
13
|
+
return new Set([value]);
|
|
14
|
+
}
|
|
15
|
+
export function fromExpandedKeys(keys, type) {
|
|
16
|
+
const values = Array.from(keys).map(String);
|
|
17
|
+
return type === 'single' ? values[0] ?? '' : values;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["toExpandedKeys","value","undefined","Array","isArray","Set","fromExpandedKeys","keys","type","values","from","map","String"],"sourceRoot":"../../../src","sources":["accordion/utils.ts"],"mappings":";;AAEA,OAAO,SAASA,cAAcA,CAACC,KAAoC,EAA2B;EAC5F,IAAIA,KAAK,KAAKC,SAAS,EAAE;IACvB,OAAOA,SAAS;EAClB;EACA,IAAIC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,EAAE;IACxB,OAAO,IAAII,GAAG,CAACJ,KAAK,CAAC;EACvB;EACA,IAAIA,KAAK,KAAK,EAAE,EAAE;IAChB,OAAO,IAAII,GAAG,CAAS,CAAC;EAC1B;EACA,OAAO,IAAIA,GAAG,CAAS,CAACJ,KAAK,CAAC,CAAC;AACjC;AAEA,OAAO,SAASK,gBAAgBA,CAC9BC,IAA+B,EAC/BC,IAAmB,EACA;EACnB,MAAMC,MAAM,GAAGN,KAAK,CAACO,IAAI,CAACH,IAAI,CAAC,CAACI,GAAG,CAACC,MAAM,CAAC;EAC3C,OAAOJ,IAAI,KAAK,QAAQ,GAAIC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,GAAIA,MAAM;AACvD","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -34,6 +34,7 @@ export * from './tooltip';
|
|
|
34
34
|
export * from './portal';
|
|
35
35
|
export * from './progress-bar';
|
|
36
36
|
export * from './radio';
|
|
37
|
+
export * from './accordion';
|
|
37
38
|
export * from './slider';
|
|
38
39
|
export { FormControlContext, useFormControlContext } from '@cdx-ui/utils';
|
|
39
40
|
export { dataAttributes, mergeDataAttributes } from './utils/dataAttributes';
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MODAL_OVERLAY_Z_INDEX","NOTIFICATION_OVERLAY_Z_INDEX","OVERLAY_PLACEMENTS","getAnchoredOverlayPosition","OverlayContainer","OverlayInsetsProvider","OverlayStackProvider","useAnchorPosition","useAnchoredOverlay","useDismissOverlay","useEscapeKey","useOverlayStackRegistration","useOverlayPosition","FormControlContext","useFormControlContext","dataAttributes","mergeDataAttributes","domDataAttributes","mergeDomDataAttributes","assignRef","createPortalFn","Slot"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,uBAAuB;AACrC,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,eAAe;AAC7B,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,oBAAoB;AAClC,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,SACEA,qBAAqB,EACrBC,4BAA4B,EAC5BC,kBAAkB,EAElBC,0BAA0B,EAC1BC,gBAAgB,EAChBC,qBAAqB,EACrBC,oBAAoB,EACpBC,iBAAiB,EACjBC,kBAAkB,EAClBC,iBAAiB,EACjBC,YAAY,EACZC,2BAA2B,EAC3BC,kBAAkB,QAmBb,WAAW;AAClB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,gBAAgB;AAC9B,cAAc,SAAS;AACvB,cAAc,UAAU;AAExB,SAASC,kBAAkB,EAAEC,qBAAqB,QAAQ,eAAe;AACzE,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,wBAAwB;AAC5E,SACEC,iBAAiB,EACjBC,sBAAsB,QAEjB,2BAA2B;AAClC,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,IAAI,QAAQ,QAAQ","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["MODAL_OVERLAY_Z_INDEX","NOTIFICATION_OVERLAY_Z_INDEX","OVERLAY_PLACEMENTS","getAnchoredOverlayPosition","OverlayContainer","OverlayInsetsProvider","OverlayStackProvider","useAnchorPosition","useAnchoredOverlay","useDismissOverlay","useEscapeKey","useOverlayStackRegistration","useOverlayPosition","FormControlContext","useFormControlContext","dataAttributes","mergeDataAttributes","domDataAttributes","mergeDomDataAttributes","assignRef","createPortalFn","Slot"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,UAAU;AACxB,cAAc,eAAe;AAC7B,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,uBAAuB;AACrC,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,eAAe;AAC7B,cAAc,qBAAqB;AACnC,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC,cAAc,kBAAkB;AAChC,cAAc,oBAAoB;AAClC,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,SACEA,qBAAqB,EACrBC,4BAA4B,EAC5BC,kBAAkB,EAElBC,0BAA0B,EAC1BC,gBAAgB,EAChBC,qBAAqB,EACrBC,oBAAoB,EACpBC,iBAAiB,EACjBC,kBAAkB,EAClBC,iBAAiB,EACjBC,YAAY,EACZC,2BAA2B,EAC3BC,kBAAkB,QAmBb,WAAW;AAClB,cAAc,UAAU;AACxB,cAAc,UAAU;AACxB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,UAAU;AACxB,cAAc,gBAAgB;AAC9B,cAAc,SAAS;AACvB,cAAc,aAAa;AAC3B,cAAc,UAAU;AAExB,SAASC,kBAAkB,EAAEC,qBAAqB,QAAQ,eAAe;AACzE,SAASC,cAAc,EAAEC,mBAAmB,QAAQ,wBAAwB;AAC5E,SACEC,iBAAiB,EACjBC,sBAAsB,QAEjB,2BAA2B;AAClC,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,IAAI,QAAQ,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { View } from 'react-native';
|
|
2
|
+
import type { IAccordionProps } from './types';
|
|
3
|
+
export interface AccordionRootProps extends IAccordionProps {
|
|
4
|
+
asChild?: boolean;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const AccordionRoot: import("react").ForwardRefExoticComponent<AccordionRootProps & import("react").RefAttributes<View>>;
|
|
8
|
+
//# sourceMappingURL=Accordion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/accordion/Accordion.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,qGAuDzB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { View } from 'react-native';
|
|
2
|
+
import type { IAccordionItemProps } from './types';
|
|
3
|
+
export interface AccordionItemRootProps extends IAccordionItemProps {
|
|
4
|
+
asChild?: boolean;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const AccordionItemRoot: import("react").ForwardRefExoticComponent<AccordionItemRootProps & import("react").RefAttributes<View>>;
|
|
8
|
+
//# sourceMappingURL=AccordionItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionItem.d.ts","sourceRoot":"","sources":["../../../src/accordion/AccordionItem.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIpC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,yGAuD7B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { View } from 'react-native';
|
|
2
|
+
import type { IAccordionPanelProps } from './types';
|
|
3
|
+
export interface AccordionPanelRootProps extends IAccordionPanelProps {
|
|
4
|
+
asChild?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare const AccordionPanelRoot: import("react").ForwardRefExoticComponent<AccordionPanelRootProps & import("react").RefAttributes<View>>;
|
|
7
|
+
//# sourceMappingURL=AccordionPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionPanel.d.ts","sourceRoot":"","sources":["../../../src/accordion/AccordionPanel.tsx"],"names":[],"mappings":"AACA,OAAO,EAAY,IAAI,EAAE,MAAM,cAAc,CAAC;AAK9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACnE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,0GAyD9B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IAccordionTriggerProps } from './types';
|
|
2
|
+
export interface AccordionTriggerRootProps extends IAccordionTriggerProps {
|
|
3
|
+
className?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare const AccordionTriggerRoot: import("react").ForwardRefExoticComponent<AccordionTriggerRootProps & import("react").RefAttributes<import("react-native").View>>;
|
|
6
|
+
//# sourceMappingURL=AccordionTrigger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionTrigger.d.ts","sourceRoot":"","sources":["../../../src/accordion/AccordionTrigger.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,oBAAoB,mIAsGhC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { IAccordionContextValue, IAccordionItemContextValue } from './types';
|
|
2
|
+
export declare const AccordionContext: import("react").Context<IAccordionContextValue | null>;
|
|
3
|
+
export declare const AccordionItemContext: import("react").Context<IAccordionItemContextValue | null>;
|
|
4
|
+
export declare function useAccordionContext(): IAccordionContextValue;
|
|
5
|
+
export declare function useAccordionItemContext(): IAccordionItemContextValue;
|
|
6
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/accordion/context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAElF,eAAO,MAAM,gBAAgB,wDAAqD,CAAC;AAEnF,eAAO,MAAM,oBAAoB,4DAAyD,CAAC;AAE3F,wBAAgB,mBAAmB,IAAI,sBAAsB,CAM5D;AAED,wBAAgB,uBAAuB,IAAI,0BAA0B,CAMpE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { IAccordionProps, IAccordionItemProps, IAccordionTriggerProps, IAccordionPanelProps, IAccordionContextValue, IAccordionItemContextValue, AccordionType, } from './types';
|
|
2
|
+
export { AccordionContext, AccordionItemContext, useAccordionContext, useAccordionItemContext, } from './context';
|
|
3
|
+
export { AccordionRoot, type AccordionRootProps } from './Accordion';
|
|
4
|
+
export { AccordionItemRoot, type AccordionItemRootProps } from './AccordionItem';
|
|
5
|
+
export { AccordionTriggerRoot, type AccordionTriggerRootProps } from './AccordionTrigger';
|
|
6
|
+
export { AccordionPanelRoot, type AccordionPanelRootProps } from './AccordionPanel';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/accordion/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,aAAa,GACd,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,KAAK,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { PressableProps, ViewProps } from 'react-native';
|
|
3
|
+
import type { DisclosureGroupState } from '@react-stately/disclosure';
|
|
4
|
+
export type AccordionType = 'single' | 'multiple';
|
|
5
|
+
export interface IAccordionProps extends ViewProps {
|
|
6
|
+
/** Controlled expanded item value(s). */
|
|
7
|
+
value?: string | string[];
|
|
8
|
+
/** Default expanded value(s) for uncontrolled usage. */
|
|
9
|
+
defaultValue?: string | string[];
|
|
10
|
+
/** Called when expanded items change. */
|
|
11
|
+
onValueChange?: (value: string | string[]) => void;
|
|
12
|
+
/** Single-select (accordion) vs multi-select (disclosure group). @default 'single' */
|
|
13
|
+
type?: AccordionType;
|
|
14
|
+
/** When `type="single"`, allow closing the open item. @default true */
|
|
15
|
+
collapsible?: boolean;
|
|
16
|
+
/** Disables expansion for all items. */
|
|
17
|
+
isDisabled?: boolean;
|
|
18
|
+
'aria-label'?: string;
|
|
19
|
+
'aria-labelledby'?: string;
|
|
20
|
+
}
|
|
21
|
+
export interface IAccordionItemProps extends ViewProps {
|
|
22
|
+
/** Required stable id within the Accordion. */
|
|
23
|
+
value: string;
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface IAccordionTriggerProps extends PressableProps {
|
|
27
|
+
children?: ReactNode;
|
|
28
|
+
asChild?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface IAccordionPanelProps extends ViewProps {
|
|
31
|
+
children?: ReactNode;
|
|
32
|
+
className?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface IAccordionContextValue {
|
|
35
|
+
groupState: DisclosureGroupState;
|
|
36
|
+
type: AccordionType;
|
|
37
|
+
collapsible: boolean;
|
|
38
|
+
isDisabled: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface IAccordionItemContextValue {
|
|
41
|
+
value: string;
|
|
42
|
+
isExpanded: boolean;
|
|
43
|
+
isDisabled: boolean;
|
|
44
|
+
triggerId: string;
|
|
45
|
+
panelId: string;
|
|
46
|
+
toggle: () => void;
|
|
47
|
+
disableGutters?: boolean;
|
|
48
|
+
showSeparator?: boolean;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/accordion/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElD,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,yCAAyC;IACzC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;IACnD,sFAAsF;IACtF,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,uEAAuE;IACvE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAqB,SAAQ,SAAS;IACrD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,oBAAoB,CAAC;IACjC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { AccordionType } from './types';
|
|
2
|
+
export declare function toExpandedKeys(value: string | string[] | undefined): Set<string> | undefined;
|
|
3
|
+
export declare function fromExpandedKeys(keys: Iterable<string | number>, type: AccordionType): string | string[];
|
|
4
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/accordion/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,CAW5F;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,EAC/B,IAAI,EAAE,aAAa,GAClB,MAAM,GAAG,MAAM,EAAE,CAGnB"}
|
|
@@ -32,6 +32,7 @@ export * from './tooltip';
|
|
|
32
32
|
export * from './portal';
|
|
33
33
|
export * from './progress-bar';
|
|
34
34
|
export * from './radio';
|
|
35
|
+
export * from './accordion';
|
|
35
36
|
export * from './slider';
|
|
36
37
|
export type { InteractionState } from './types';
|
|
37
38
|
export { FormControlContext, useFormControlContext } from '@cdx-ui/utils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,KAAK,UAAU,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,2BAA2B,EAC3B,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,WAAW,CAAC;AACnB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,uBAAuB,CAAC;AACtC,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,kBAAkB,EAClB,KAAK,UAAU,EACf,0BAA0B,EAC1B,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,2BAA2B,EAC3B,kBAAkB,EAClB,KAAK,YAAY,EACjB,KAAK,uBAAuB,EAC5B,KAAK,8BAA8B,EACnC,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACnC,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,WAAW,CAAC;AACnB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdx-ui/primitives",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.173",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -61,14 +61,16 @@
|
|
|
61
61
|
"@react-aria/utils": "^3.33.0",
|
|
62
62
|
"@react-aria/visually-hidden": "3.8.30",
|
|
63
63
|
"@react-native-aria/checkbox": "0.2.10",
|
|
64
|
+
"@react-native-aria/disclosure": "0.2.8",
|
|
64
65
|
"@react-native-aria/focus": "^0.2.9",
|
|
65
66
|
"@react-native-aria/interactions": "^0.2.16",
|
|
66
67
|
"@react-native-aria/radio": "0.2.13",
|
|
67
68
|
"@react-stately/checkbox": "3.7.4",
|
|
69
|
+
"@react-stately/disclosure": "3.1.1",
|
|
68
70
|
"@react-stately/radio": "3.12.0",
|
|
69
71
|
"@react-stately/toggle": "3.9.4",
|
|
70
|
-
"@cdx-ui/
|
|
71
|
-
"@cdx-ui/
|
|
72
|
+
"@cdx-ui/utils": "0.0.1-beta.173",
|
|
73
|
+
"@cdx-ui/formatters": "0.0.1-beta.173"
|
|
72
74
|
},
|
|
73
75
|
"devDependencies": {
|
|
74
76
|
"@types/react": "19.1.17",
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { forwardRef, useMemo } from 'react';
|
|
2
|
+
import { View } from 'react-native';
|
|
3
|
+
import { useDisclosureGroupState } from '@react-stately/disclosure';
|
|
4
|
+
import { Slot } from '../slot';
|
|
5
|
+
import { dataAttributes, mergeDataAttributes } from '../utils/dataAttributes';
|
|
6
|
+
import { AccordionContext } from './context';
|
|
7
|
+
import type { IAccordionProps } from './types';
|
|
8
|
+
import { fromExpandedKeys, toExpandedKeys } from './utils';
|
|
9
|
+
|
|
10
|
+
export interface AccordionRootProps extends IAccordionProps {
|
|
11
|
+
asChild?: boolean;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const AccordionRoot = forwardRef<View, AccordionRootProps>(
|
|
16
|
+
(
|
|
17
|
+
{
|
|
18
|
+
asChild,
|
|
19
|
+
children,
|
|
20
|
+
className,
|
|
21
|
+
style,
|
|
22
|
+
type = 'single',
|
|
23
|
+
collapsible = true,
|
|
24
|
+
isDisabled = false,
|
|
25
|
+
value,
|
|
26
|
+
defaultValue,
|
|
27
|
+
onValueChange,
|
|
28
|
+
...props
|
|
29
|
+
},
|
|
30
|
+
ref,
|
|
31
|
+
) => {
|
|
32
|
+
const groupState = useDisclosureGroupState({
|
|
33
|
+
allowsMultipleExpanded: type === 'multiple',
|
|
34
|
+
isDisabled,
|
|
35
|
+
expandedKeys: toExpandedKeys(value),
|
|
36
|
+
defaultExpandedKeys: toExpandedKeys(defaultValue),
|
|
37
|
+
onExpandedChange: onValueChange
|
|
38
|
+
? (keys) => {
|
|
39
|
+
onValueChange(fromExpandedKeys(keys, type));
|
|
40
|
+
}
|
|
41
|
+
: undefined,
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
const contextValue = useMemo(
|
|
45
|
+
() => ({
|
|
46
|
+
groupState,
|
|
47
|
+
type,
|
|
48
|
+
collapsible,
|
|
49
|
+
isDisabled,
|
|
50
|
+
}),
|
|
51
|
+
[groupState, type, collapsible, isDisabled],
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
const Comp = asChild ? Slot : View;
|
|
55
|
+
|
|
56
|
+
return (
|
|
57
|
+
<AccordionContext.Provider value={contextValue}>
|
|
58
|
+
<Comp
|
|
59
|
+
ref={ref}
|
|
60
|
+
className={className}
|
|
61
|
+
style={style}
|
|
62
|
+
{...props}
|
|
63
|
+
{...mergeDataAttributes(props, dataAttributes({ slot: 'accordion' }))}
|
|
64
|
+
>
|
|
65
|
+
{children}
|
|
66
|
+
</Comp>
|
|
67
|
+
</AccordionContext.Provider>
|
|
68
|
+
);
|
|
69
|
+
},
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
AccordionRoot.displayName = 'AccordionRoot';
|