@fluentui/react-accordion 0.0.0-nightly-20220302-0405.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/CHANGELOG.json +3236 -0
- package/CHANGELOG.md +1098 -0
- package/LICENSE +15 -0
- package/README.md +5 -0
- package/Spec.md +447 -0
- package/dist/react-accordion.d.ts +264 -0
- package/lib/Accordion.d.ts +1 -0
- package/lib/Accordion.js +2 -0
- package/lib/Accordion.js.map +1 -0
- package/lib/AccordionHeader.d.ts +1 -0
- package/lib/AccordionHeader.js +2 -0
- package/lib/AccordionHeader.js.map +1 -0
- package/lib/AccordionItem.d.ts +1 -0
- package/lib/AccordionItem.js +2 -0
- package/lib/AccordionItem.js.map +1 -0
- package/lib/AccordionPanel.d.ts +1 -0
- package/lib/AccordionPanel.js +2 -0
- package/lib/AccordionPanel.js.map +1 -0
- package/lib/components/Accordion/Accordion.d.ts +6 -0
- package/lib/components/Accordion/Accordion.js +17 -0
- package/lib/components/Accordion/Accordion.js.map +1 -0
- package/lib/components/Accordion/Accordion.types.d.ts +54 -0
- package/lib/components/Accordion/Accordion.types.js +2 -0
- package/lib/components/Accordion/Accordion.types.js.map +1 -0
- package/lib/components/Accordion/AccordionContext.d.ts +3 -0
- package/lib/components/Accordion/AccordionContext.js +11 -0
- package/lib/components/Accordion/AccordionContext.js.map +1 -0
- package/lib/components/Accordion/index.d.ts +7 -0
- package/lib/components/Accordion/index.js +8 -0
- package/lib/components/Accordion/index.js.map +1 -0
- package/lib/components/Accordion/renderAccordion.d.ts +5 -0
- package/lib/components/Accordion/renderAccordion.js +18 -0
- package/lib/components/Accordion/renderAccordion.js.map +1 -0
- package/lib/components/Accordion/useAccordion.d.ts +8 -0
- package/lib/components/Accordion/useAccordion.js +108 -0
- package/lib/components/Accordion/useAccordion.js.map +1 -0
- package/lib/components/Accordion/useAccordionContextValues.d.ts +2 -0
- package/lib/components/Accordion/useAccordionContextValues.js +19 -0
- package/lib/components/Accordion/useAccordionContextValues.js.map +1 -0
- package/lib/components/Accordion/useAccordionStyles.d.ts +3 -0
- package/lib/components/Accordion/useAccordionStyles.js +7 -0
- package/lib/components/Accordion/useAccordionStyles.js.map +1 -0
- package/lib/components/AccordionHeader/AccordionHeader.d.ts +7 -0
- package/lib/components/AccordionHeader/AccordionHeader.js +18 -0
- package/lib/components/AccordionHeader/AccordionHeader.js.map +1 -0
- package/lib/components/AccordionHeader/AccordionHeader.types.d.ts +48 -0
- package/lib/components/AccordionHeader/AccordionHeader.types.js +2 -0
- package/lib/components/AccordionHeader/AccordionHeader.types.js.map +1 -0
- package/lib/components/AccordionHeader/AccordionHeaderContext.d.ts +4 -0
- package/lib/components/AccordionHeader/AccordionHeaderContext.js +9 -0
- package/lib/components/AccordionHeader/AccordionHeaderContext.js.map +1 -0
- package/lib/components/AccordionHeader/index.d.ts +6 -0
- package/lib/components/AccordionHeader/index.js +7 -0
- package/lib/components/AccordionHeader/index.js.map +1 -0
- package/lib/components/AccordionHeader/renderAccordionHeader.d.ts +5 -0
- package/lib/components/AccordionHeader/renderAccordionHeader.js +22 -0
- package/lib/components/AccordionHeader/renderAccordionHeader.js.map +1 -0
- package/lib/components/AccordionHeader/useAccordionHeader.d.ts +8 -0
- package/lib/components/AccordionHeader/useAccordionHeader.js +97 -0
- package/lib/components/AccordionHeader/useAccordionHeader.js.map +1 -0
- package/lib/components/AccordionHeader/useAccordionHeaderContextValues.d.ts +2 -0
- package/lib/components/AccordionHeader/useAccordionHeaderContextValues.js +19 -0
- package/lib/components/AccordionHeader/useAccordionHeaderContextValues.js.map +1 -0
- package/lib/components/AccordionHeader/useAccordionHeaderStyles.d.ts +4 -0
- package/lib/components/AccordionHeader/useAccordionHeaderStyles.js +141 -0
- package/lib/components/AccordionHeader/useAccordionHeaderStyles.js.map +1 -0
- package/lib/components/AccordionItem/AccordionItem.d.ts +6 -0
- package/lib/components/AccordionItem/AccordionItem.js +17 -0
- package/lib/components/AccordionItem/AccordionItem.js.map +1 -0
- package/lib/components/AccordionItem/AccordionItem.types.d.ts +26 -0
- package/lib/components/AccordionItem/AccordionItem.types.js +2 -0
- package/lib/components/AccordionItem/AccordionItem.types.js.map +1 -0
- package/lib/components/AccordionItem/AccordionItemContext.d.ts +4 -0
- package/lib/components/AccordionItem/AccordionItemContext.js +12 -0
- package/lib/components/AccordionItem/AccordionItemContext.js.map +1 -0
- package/lib/components/AccordionItem/index.d.ts +7 -0
- package/lib/components/AccordionItem/index.js +8 -0
- package/lib/components/AccordionItem/index.js.map +1 -0
- package/lib/components/AccordionItem/renderAccordionItem.d.ts +5 -0
- package/lib/components/AccordionItem/renderAccordionItem.js +18 -0
- package/lib/components/AccordionItem/renderAccordionItem.js.map +1 -0
- package/lib/components/AccordionItem/useAccordionItem.d.ts +8 -0
- package/lib/components/AccordionItem/useAccordionItem.js +39 -0
- package/lib/components/AccordionItem/useAccordionItem.js.map +1 -0
- package/lib/components/AccordionItem/useAccordionItemContextValues.d.ts +2 -0
- package/lib/components/AccordionItem/useAccordionItemContextValues.js +17 -0
- package/lib/components/AccordionItem/useAccordionItemContextValues.js.map +1 -0
- package/lib/components/AccordionItem/useAccordionItemStyles.d.ts +3 -0
- package/lib/components/AccordionItem/useAccordionItemStyles.js +7 -0
- package/lib/components/AccordionItem/useAccordionItemStyles.js.map +1 -0
- package/lib/components/AccordionPanel/AccordionPanel.d.ts +6 -0
- package/lib/components/AccordionPanel/AccordionPanel.js +15 -0
- package/lib/components/AccordionPanel/AccordionPanel.js.map +1 -0
- package/lib/components/AccordionPanel/AccordionPanel.types.d.ts +11 -0
- package/lib/components/AccordionPanel/AccordionPanel.types.js +2 -0
- package/lib/components/AccordionPanel/AccordionPanel.types.js.map +1 -0
- package/lib/components/AccordionPanel/index.d.ts +5 -0
- package/lib/components/AccordionPanel/index.js +6 -0
- package/lib/components/AccordionPanel/index.js.map +1 -0
- package/lib/components/AccordionPanel/renderAccordionPanel.d.ts +5 -0
- package/lib/components/AccordionPanel/renderAccordionPanel.js +15 -0
- package/lib/components/AccordionPanel/renderAccordionPanel.js.map +1 -0
- package/lib/components/AccordionPanel/useAccordionPanel.d.ts +8 -0
- package/lib/components/AccordionPanel/useAccordionPanel.js +24 -0
- package/lib/components/AccordionPanel/useAccordionPanel.js.map +1 -0
- package/lib/components/AccordionPanel/useAccordionPanelStyles.d.ts +4 -0
- package/lib/components/AccordionPanel/useAccordionPanelStyles.js +23 -0
- package/lib/components/AccordionPanel/useAccordionPanelStyles.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/tsdoc-metadata.json +11 -0
- package/lib-commonjs/Accordion.d.ts +1 -0
- package/lib-commonjs/Accordion.js +10 -0
- package/lib-commonjs/Accordion.js.map +1 -0
- package/lib-commonjs/AccordionHeader.d.ts +1 -0
- package/lib-commonjs/AccordionHeader.js +10 -0
- package/lib-commonjs/AccordionHeader.js.map +1 -0
- package/lib-commonjs/AccordionItem.d.ts +1 -0
- package/lib-commonjs/AccordionItem.js +10 -0
- package/lib-commonjs/AccordionItem.js.map +1 -0
- package/lib-commonjs/AccordionPanel.d.ts +1 -0
- package/lib-commonjs/AccordionPanel.js +10 -0
- package/lib-commonjs/AccordionPanel.js.map +1 -0
- package/lib-commonjs/components/Accordion/Accordion.d.ts +6 -0
- package/lib-commonjs/components/Accordion/Accordion.js +29 -0
- package/lib-commonjs/components/Accordion/Accordion.js.map +1 -0
- package/lib-commonjs/components/Accordion/Accordion.types.d.ts +54 -0
- package/lib-commonjs/components/Accordion/Accordion.types.js +6 -0
- package/lib-commonjs/components/Accordion/Accordion.types.js.map +1 -0
- package/lib-commonjs/components/Accordion/AccordionContext.d.ts +3 -0
- package/lib-commonjs/components/Accordion/AccordionContext.js +19 -0
- package/lib-commonjs/components/Accordion/AccordionContext.js.map +1 -0
- package/lib-commonjs/components/Accordion/index.d.ts +7 -0
- package/lib-commonjs/components/Accordion/index.js +22 -0
- package/lib-commonjs/components/Accordion/index.js.map +1 -0
- package/lib-commonjs/components/Accordion/renderAccordion.d.ts +5 -0
- package/lib-commonjs/components/Accordion/renderAccordion.js +30 -0
- package/lib-commonjs/components/Accordion/renderAccordion.js.map +1 -0
- package/lib-commonjs/components/Accordion/useAccordion.d.ts +8 -0
- package/lib-commonjs/components/Accordion/useAccordion.js +120 -0
- package/lib-commonjs/components/Accordion/useAccordion.js.map +1 -0
- package/lib-commonjs/components/Accordion/useAccordionContextValues.d.ts +2 -0
- package/lib-commonjs/components/Accordion/useAccordionContextValues.js +28 -0
- package/lib-commonjs/components/Accordion/useAccordionContextValues.js.map +1 -0
- package/lib-commonjs/components/Accordion/useAccordionStyles.d.ts +3 -0
- package/lib-commonjs/components/Accordion/useAccordionStyles.js +18 -0
- package/lib-commonjs/components/Accordion/useAccordionStyles.js.map +1 -0
- package/lib-commonjs/components/AccordionHeader/AccordionHeader.d.ts +7 -0
- package/lib-commonjs/components/AccordionHeader/AccordionHeader.js +30 -0
- package/lib-commonjs/components/AccordionHeader/AccordionHeader.js.map +1 -0
- package/lib-commonjs/components/AccordionHeader/AccordionHeader.types.d.ts +48 -0
- package/lib-commonjs/components/AccordionHeader/AccordionHeader.types.js +6 -0
- package/lib-commonjs/components/AccordionHeader/AccordionHeader.types.js.map +1 -0
- package/lib-commonjs/components/AccordionHeader/AccordionHeaderContext.d.ts +4 -0
- package/lib-commonjs/components/AccordionHeader/AccordionHeaderContext.js +20 -0
- package/lib-commonjs/components/AccordionHeader/AccordionHeaderContext.js.map +1 -0
- package/lib-commonjs/components/AccordionHeader/index.d.ts +6 -0
- package/lib-commonjs/components/AccordionHeader/index.js +20 -0
- package/lib-commonjs/components/AccordionHeader/index.js.map +1 -0
- package/lib-commonjs/components/AccordionHeader/renderAccordionHeader.d.ts +5 -0
- package/lib-commonjs/components/AccordionHeader/renderAccordionHeader.js +34 -0
- package/lib-commonjs/components/AccordionHeader/renderAccordionHeader.js.map +1 -0
- package/lib-commonjs/components/AccordionHeader/useAccordionHeader.d.ts +8 -0
- package/lib-commonjs/components/AccordionHeader/useAccordionHeader.js +114 -0
- package/lib-commonjs/components/AccordionHeader/useAccordionHeader.js.map +1 -0
- package/lib-commonjs/components/AccordionHeader/useAccordionHeaderContextValues.d.ts +2 -0
- package/lib-commonjs/components/AccordionHeader/useAccordionHeaderContextValues.js +29 -0
- package/lib-commonjs/components/AccordionHeader/useAccordionHeaderContextValues.js.map +1 -0
- package/lib-commonjs/components/AccordionHeader/useAccordionHeaderStyles.d.ts +4 -0
- package/lib-commonjs/components/AccordionHeader/useAccordionHeaderStyles.js +153 -0
- package/lib-commonjs/components/AccordionHeader/useAccordionHeaderStyles.js.map +1 -0
- package/lib-commonjs/components/AccordionItem/AccordionItem.d.ts +6 -0
- package/lib-commonjs/components/AccordionItem/AccordionItem.js +29 -0
- package/lib-commonjs/components/AccordionItem/AccordionItem.js.map +1 -0
- package/lib-commonjs/components/AccordionItem/AccordionItem.types.d.ts +26 -0
- package/lib-commonjs/components/AccordionItem/AccordionItem.types.js +6 -0
- package/lib-commonjs/components/AccordionItem/AccordionItem.types.js.map +1 -0
- package/lib-commonjs/components/AccordionItem/AccordionItemContext.d.ts +4 -0
- package/lib-commonjs/components/AccordionItem/AccordionItemContext.js +23 -0
- package/lib-commonjs/components/AccordionItem/AccordionItemContext.js.map +1 -0
- package/lib-commonjs/components/AccordionItem/index.d.ts +7 -0
- package/lib-commonjs/components/AccordionItem/index.js +22 -0
- package/lib-commonjs/components/AccordionItem/index.js.map +1 -0
- package/lib-commonjs/components/AccordionItem/renderAccordionItem.d.ts +5 -0
- package/lib-commonjs/components/AccordionItem/renderAccordionItem.js +30 -0
- package/lib-commonjs/components/AccordionItem/renderAccordionItem.js.map +1 -0
- package/lib-commonjs/components/AccordionItem/useAccordionItem.d.ts +8 -0
- package/lib-commonjs/components/AccordionItem/useAccordionItem.js +53 -0
- package/lib-commonjs/components/AccordionItem/useAccordionItem.js.map +1 -0
- package/lib-commonjs/components/AccordionItem/useAccordionItemContextValues.d.ts +2 -0
- package/lib-commonjs/components/AccordionItem/useAccordionItemContextValues.js +27 -0
- package/lib-commonjs/components/AccordionItem/useAccordionItemContextValues.js.map +1 -0
- package/lib-commonjs/components/AccordionItem/useAccordionItemStyles.d.ts +3 -0
- package/lib-commonjs/components/AccordionItem/useAccordionItemStyles.js +18 -0
- package/lib-commonjs/components/AccordionItem/useAccordionItemStyles.js.map +1 -0
- package/lib-commonjs/components/AccordionPanel/AccordionPanel.d.ts +6 -0
- package/lib-commonjs/components/AccordionPanel/AccordionPanel.js +26 -0
- package/lib-commonjs/components/AccordionPanel/AccordionPanel.js.map +1 -0
- package/lib-commonjs/components/AccordionPanel/AccordionPanel.types.d.ts +11 -0
- package/lib-commonjs/components/AccordionPanel/AccordionPanel.types.js +6 -0
- package/lib-commonjs/components/AccordionPanel/AccordionPanel.types.js.map +1 -0
- package/lib-commonjs/components/AccordionPanel/index.d.ts +5 -0
- package/lib-commonjs/components/AccordionPanel/index.js +18 -0
- package/lib-commonjs/components/AccordionPanel/index.js.map +1 -0
- package/lib-commonjs/components/AccordionPanel/renderAccordionPanel.d.ts +5 -0
- package/lib-commonjs/components/AccordionPanel/renderAccordionPanel.js +26 -0
- package/lib-commonjs/components/AccordionPanel/renderAccordionPanel.js.map +1 -0
- package/lib-commonjs/components/AccordionPanel/useAccordionPanel.d.ts +8 -0
- package/lib-commonjs/components/AccordionPanel/useAccordionPanel.js +35 -0
- package/lib-commonjs/components/AccordionPanel/useAccordionPanel.js.map +1 -0
- package/lib-commonjs/components/AccordionPanel/useAccordionPanelStyles.d.ts +4 -0
- package/lib-commonjs/components/AccordionPanel/useAccordionPanelStyles.js +33 -0
- package/lib-commonjs/components/AccordionPanel/useAccordionPanelStyles.js.map +1 -0
- package/lib-commonjs/index.d.ts +4 -0
- package/lib-commonjs/index.js +16 -0
- package/lib-commonjs/index.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.renderAccordion_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
|
|
11
|
+
|
|
12
|
+
const AccordionContext_1 = /*#__PURE__*/require("./AccordionContext");
|
|
13
|
+
/**
|
|
14
|
+
* Function that renders the final JSX of the component
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
const renderAccordion_unstable = (state, contextValues) => {
|
|
19
|
+
const {
|
|
20
|
+
slots,
|
|
21
|
+
slotProps
|
|
22
|
+
} = react_utilities_1.getSlots(state);
|
|
23
|
+
return React.createElement(slots.root, { ...slotProps.root
|
|
24
|
+
}, React.createElement(AccordionContext_1.AccordionContext.Provider, {
|
|
25
|
+
value: contextValues.accordion
|
|
26
|
+
}, slotProps.root.children));
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.renderAccordion_unstable = renderAccordion_unstable;
|
|
30
|
+
//# sourceMappingURL=renderAccordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Accordion/renderAccordion.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AAEA,MAAA,kBAAA,gBAAA,OAAA,CAAA,oBAAA,CAAA;AAGA;;AAEG;;;AACI,MAAM,wBAAwB,GAAG,CAAC,KAAD,EAAwB,aAAxB,KAAiE;AACvG,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,iBAAA,CAAA,QAAA,CAAyB,KAAzB,CAA7B;AAEA,SACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,EACE,KAAA,CAAA,aAAA,CAAC,kBAAA,CAAA,gBAAA,CAAiB,QAAlB,EAA0B;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAA1B,EAA4D,SAAS,CAAC,IAAV,CAAe,QAA3E,CADF,CADF;AAKD,CARM;;AAAM,OAAA,CAAA,wBAAA,GAAwB,wBAAxB","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\n\nimport { AccordionContext } from './AccordionContext';\nimport type { AccordionState, AccordionSlots, AccordionContextValues } from './Accordion.types';\n\n/**\n * Function that renders the final JSX of the component\n */\nexport const renderAccordion_unstable = (state: AccordionState, contextValues: AccordionContextValues) => {\n const { slots, slotProps } = getSlots<AccordionSlots>(state);\n\n return (\n <slots.root {...slotProps.root}>\n <AccordionContext.Provider value={contextValues.accordion}>{slotProps.root.children}</AccordionContext.Provider>\n </slots.root>\n );\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AccordionProps, AccordionState } from './Accordion.types';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the props and state required to render the component
|
|
5
|
+
* @param props - Accordion properties
|
|
6
|
+
* @param ref - reference to root HTMLElement of Accordion
|
|
7
|
+
*/
|
|
8
|
+
export declare const useAccordion_unstable: (props: AccordionProps, ref: React.Ref<HTMLElement>) => AccordionState;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAccordion_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
|
|
11
|
+
|
|
12
|
+
const react_tabster_1 = /*#__PURE__*/require("@fluentui/react-tabster");
|
|
13
|
+
/**
|
|
14
|
+
* Returns the props and state required to render the component
|
|
15
|
+
* @param props - Accordion properties
|
|
16
|
+
* @param ref - reference to root HTMLElement of Accordion
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
const useAccordion_unstable = (props, ref) => {
|
|
21
|
+
const {
|
|
22
|
+
openItems: controlledOpenItems,
|
|
23
|
+
defaultOpenItems,
|
|
24
|
+
multiple = false,
|
|
25
|
+
collapsible = false,
|
|
26
|
+
onToggle,
|
|
27
|
+
navigation
|
|
28
|
+
} = props;
|
|
29
|
+
const [openItems, setOpenItems] = react_utilities_1.useControllableState({
|
|
30
|
+
state: React.useMemo(() => normalizeValues(controlledOpenItems), [controlledOpenItems]),
|
|
31
|
+
defaultState: () => initializeUncontrolledOpenItems({
|
|
32
|
+
defaultOpenItems,
|
|
33
|
+
multiple
|
|
34
|
+
}),
|
|
35
|
+
initialState: []
|
|
36
|
+
});
|
|
37
|
+
const arrowNavigationProps = react_tabster_1.useArrowNavigationGroup({
|
|
38
|
+
circular: navigation === 'circular'
|
|
39
|
+
});
|
|
40
|
+
const requestToggle = react_utilities_1.useEventCallback((event, data) => {
|
|
41
|
+
onToggle === null || onToggle === void 0 ? void 0 : onToggle(event, data);
|
|
42
|
+
setOpenItems(previousOpenItems => updateOpenItems(data.value, previousOpenItems, {
|
|
43
|
+
collapsible,
|
|
44
|
+
multiple
|
|
45
|
+
}));
|
|
46
|
+
});
|
|
47
|
+
return {
|
|
48
|
+
multiple,
|
|
49
|
+
collapsible,
|
|
50
|
+
navigation,
|
|
51
|
+
openItems,
|
|
52
|
+
requestToggle,
|
|
53
|
+
components: {
|
|
54
|
+
root: 'div'
|
|
55
|
+
},
|
|
56
|
+
root: react_utilities_1.getNativeElementProps('div', { ...props,
|
|
57
|
+
...(navigation ? arrowNavigationProps : {}),
|
|
58
|
+
ref
|
|
59
|
+
})
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
exports.useAccordion_unstable = useAccordion_unstable;
|
|
64
|
+
/**
|
|
65
|
+
* Initial value for the uncontrolled case of the list of open indexes
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
function initializeUncontrolledOpenItems({
|
|
69
|
+
defaultOpenItems,
|
|
70
|
+
multiple
|
|
71
|
+
}) {
|
|
72
|
+
if (defaultOpenItems !== undefined) {
|
|
73
|
+
if (Array.isArray(defaultOpenItems)) {
|
|
74
|
+
return multiple ? defaultOpenItems : [defaultOpenItems[0]];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return [defaultOpenItems];
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Updates the list of open indexes based on an index that changes
|
|
84
|
+
* @param value - the index that will change
|
|
85
|
+
* @param previousOpenItems - list of current open indexes
|
|
86
|
+
* @param param2 - {multiple, collapsible}
|
|
87
|
+
*/
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
function updateOpenItems(value, previousOpenItems, {
|
|
91
|
+
multiple,
|
|
92
|
+
collapsible
|
|
93
|
+
}) {
|
|
94
|
+
if (multiple) {
|
|
95
|
+
if (previousOpenItems.includes(value)) {
|
|
96
|
+
if (previousOpenItems.length > 1 || collapsible) {
|
|
97
|
+
return previousOpenItems.filter(i => i !== value);
|
|
98
|
+
}
|
|
99
|
+
} else {
|
|
100
|
+
return [...previousOpenItems, value].sort();
|
|
101
|
+
}
|
|
102
|
+
} else {
|
|
103
|
+
return previousOpenItems[0] === value && collapsible ? [] : [value];
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return previousOpenItems;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Normalizes Accordion index into an array of indexes
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
function normalizeValues(index) {
|
|
114
|
+
if (index === undefined) {
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return Array.isArray(index) ? index : [index];
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=useAccordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Accordion/useAccordion.ts"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport type { AccordionProps, AccordionState, AccordionToggleData, AccordionToggleEvent } from './Accordion.types';\nimport type { AccordionItemValue } from '../AccordionItem/AccordionItem.types';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\n\n/**\n * Returns the props and state required to render the component\n * @param props - Accordion properties\n * @param ref - reference to root HTMLElement of Accordion\n */\nexport const useAccordion_unstable = (props: AccordionProps, ref: React.Ref<HTMLElement>): AccordionState => {\n const {\n openItems: controlledOpenItems,\n defaultOpenItems,\n multiple = false,\n collapsible = false,\n onToggle,\n navigation,\n } = props;\n const [openItems, setOpenItems] = useControllableState({\n state: React.useMemo(() => normalizeValues(controlledOpenItems), [controlledOpenItems]),\n defaultState: () => initializeUncontrolledOpenItems({ defaultOpenItems, multiple }),\n initialState: [],\n });\n\n const arrowNavigationProps = useArrowNavigationGroup({\n circular: navigation === 'circular',\n });\n\n const requestToggle = useEventCallback((event: AccordionToggleEvent, data: AccordionToggleData) => {\n onToggle?.(event, data);\n setOpenItems(previousOpenItems =>\n updateOpenItems(data.value, previousOpenItems, {\n collapsible,\n multiple,\n }),\n );\n });\n\n return {\n multiple,\n collapsible,\n navigation,\n openItems,\n requestToggle,\n components: {\n root: 'div',\n },\n root: getNativeElementProps('div', {\n ...props,\n ...(navigation ? arrowNavigationProps : {}),\n ref,\n }),\n };\n};\n\n/**\n * Initial value for the uncontrolled case of the list of open indexes\n */\nfunction initializeUncontrolledOpenItems({\n defaultOpenItems,\n multiple,\n}: Pick<AccordionProps, 'defaultOpenItems' | 'multiple'>): AccordionItemValue[] {\n if (defaultOpenItems !== undefined) {\n if (Array.isArray(defaultOpenItems)) {\n return multiple ? defaultOpenItems : [defaultOpenItems[0]];\n }\n return [defaultOpenItems];\n }\n return [];\n}\n\n/**\n * Updates the list of open indexes based on an index that changes\n * @param value - the index that will change\n * @param previousOpenItems - list of current open indexes\n * @param param2 - {multiple, collapsible}\n */\nfunction updateOpenItems(\n value: AccordionItemValue,\n previousOpenItems: AccordionItemValue[],\n { multiple, collapsible }: Pick<AccordionState, 'multiple' | 'collapsible'>,\n) {\n if (multiple) {\n if (previousOpenItems.includes(value)) {\n if (previousOpenItems.length > 1 || collapsible) {\n return previousOpenItems.filter(i => i !== value);\n }\n } else {\n return [...previousOpenItems, value].sort();\n }\n } else {\n return previousOpenItems[0] === value && collapsible ? [] : [value];\n }\n return previousOpenItems;\n}\n\n/**\n * Normalizes Accordion index into an array of indexes\n */\nfunction normalizeValues(index?: AccordionItemValue | AccordionItemValue[]): AccordionItemValue[] | undefined {\n if (index === undefined) {\n return undefined;\n }\n return Array.isArray(index) ? index : [index];\n}\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAccordionContextValues_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
function useAccordionContextValues_unstable(state) {
|
|
9
|
+
const {
|
|
10
|
+
navigation,
|
|
11
|
+
openItems,
|
|
12
|
+
requestToggle,
|
|
13
|
+
collapsible
|
|
14
|
+
} = state; // This context is created with "@fluentui/react-context-selector", these is no sense to memoize it
|
|
15
|
+
|
|
16
|
+
const accordion = {
|
|
17
|
+
navigation,
|
|
18
|
+
openItems,
|
|
19
|
+
requestToggle,
|
|
20
|
+
collapsible
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
accordion
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
exports.useAccordionContextValues_unstable = useAccordionContextValues_unstable;
|
|
28
|
+
//# sourceMappingURL=useAccordionContextValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Accordion/useAccordionContextValues.ts"],"names":[],"mappings":";;;;;;;AAEA,SAAgB,kCAAhB,CAAmD,KAAnD,EAAwE;AACtE,QAAM;AAAE,IAAA,UAAF;AAAc,IAAA,SAAd;AAAyB,IAAA,aAAzB;AAAwC,IAAA;AAAxC,MAAwD,KAA9D,CADsE,CAGtE;;AACA,QAAM,SAAS,GAA0B;AACvC,IAAA,UADuC;AAEvC,IAAA,SAFuC;AAGvC,IAAA,aAHuC;AAIvC,IAAA;AAJuC,GAAzC;AAOA,SAAO;AAAE,IAAA;AAAF,GAAP;AACD;;AAZD,OAAA,CAAA,kCAAA,GAAA,kCAAA","sourcesContent":["import type { AccordionContextValue, AccordionContextValues, AccordionState } from './Accordion.types';\n\nexport function useAccordionContextValues_unstable(state: AccordionState): AccordionContextValues {\n const { navigation, openItems, requestToggle, collapsible } = state;\n\n // This context is created with \"@fluentui/react-context-selector\", these is no sense to memoize it\n const accordion: AccordionContextValue = {\n navigation,\n openItems,\n requestToggle,\n collapsible,\n };\n\n return { accordion };\n}\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAccordionStyles_unstable = exports.accordionClassName = void 0;
|
|
7
|
+
|
|
8
|
+
const react_1 = /*#__PURE__*/require("@griffel/react");
|
|
9
|
+
|
|
10
|
+
exports.accordionClassName = 'fui-Accordion';
|
|
11
|
+
|
|
12
|
+
const useAccordionStyles_unstable = state => {
|
|
13
|
+
state.root.className = react_1.mergeClasses(exports.accordionClassName, state.root.className);
|
|
14
|
+
return state;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
exports.useAccordionStyles_unstable = useAccordionStyles_unstable;
|
|
18
|
+
//# sourceMappingURL=useAccordionStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Accordion/useAccordionStyles.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,OAAA,gBAAA,OAAA,CAAA,gBAAA,CAAA;;AAGa,OAAA,CAAA,kBAAA,GAAqB,eAArB;;AAEN,MAAM,2BAA2B,GAAI,KAAD,IAA0B;AACnE,EAAA,KAAK,CAAC,IAAN,CAAW,SAAX,GAAuB,OAAA,CAAA,YAAA,CAAa,OAAA,CAAA,kBAAb,EAAiC,KAAK,CAAC,IAAN,CAAW,SAA5C,CAAvB;AAEA,SAAO,KAAP;AACD,CAJM;;AAAM,OAAA,CAAA,2BAAA,GAA2B,2BAA3B","sourcesContent":["import { mergeClasses } from '@griffel/react';\nimport type { AccordionState } from './Accordion.types';\n\nexport const accordionClassName = 'fui-Accordion';\n\nexport const useAccordionStyles_unstable = (state: AccordionState) => {\n state.root.className = mergeClasses(accordionClassName, state.root.className);\n\n return state;\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AccordionHeaderProps } from './AccordionHeader.types';
|
|
2
|
+
import type { ForwardRefComponent } from '@fluentui/react-utilities';
|
|
3
|
+
/**
|
|
4
|
+
* Define a styled AccordionHeader, using the `useAccordionHeader_unstable` and `useAccordionHeaderStyles_unstable`
|
|
5
|
+
* hooks.
|
|
6
|
+
*/
|
|
7
|
+
export declare const AccordionHeader: ForwardRefComponent<AccordionHeaderProps>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.AccordionHeader = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const useAccordionHeader_1 = /*#__PURE__*/require("./useAccordionHeader");
|
|
11
|
+
|
|
12
|
+
const renderAccordionHeader_1 = /*#__PURE__*/require("./renderAccordionHeader");
|
|
13
|
+
|
|
14
|
+
const useAccordionHeaderStyles_1 = /*#__PURE__*/require("./useAccordionHeaderStyles");
|
|
15
|
+
|
|
16
|
+
const useAccordionHeaderContextValues_1 = /*#__PURE__*/require("./useAccordionHeaderContextValues");
|
|
17
|
+
/**
|
|
18
|
+
* Define a styled AccordionHeader, using the `useAccordionHeader_unstable` and `useAccordionHeaderStyles_unstable`
|
|
19
|
+
* hooks.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
exports.AccordionHeader = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
24
|
+
const state = useAccordionHeader_1.useAccordionHeader_unstable(props, ref);
|
|
25
|
+
const contextValues = useAccordionHeaderContextValues_1.useAccordionHeaderContextValues_unstable(state);
|
|
26
|
+
useAccordionHeaderStyles_1.useAccordionHeaderStyles_unstable(state);
|
|
27
|
+
return renderAccordionHeader_1.renderAccordionHeader_unstable(state, contextValues);
|
|
28
|
+
});
|
|
29
|
+
exports.AccordionHeader.displayName = 'AccordionHeader';
|
|
30
|
+
//# sourceMappingURL=AccordionHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/AccordionHeader/AccordionHeader.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,oBAAA,gBAAA,OAAA,CAAA,sBAAA,CAAA;;AACA,MAAA,uBAAA,gBAAA,OAAA,CAAA,yBAAA,CAAA;;AACA,MAAA,0BAAA,gBAAA,OAAA,CAAA,4BAAA,CAAA;;AACA,MAAA,iCAAA,gBAAA,OAAA,CAAA,mCAAA,CAAA;AAIA;;;AAGG;;;AACU,OAAA,CAAA,eAAA,gBAA6D,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;AACxG,QAAM,KAAK,GAAG,oBAAA,CAAA,2BAAA,CAA4B,KAA5B,EAAmC,GAAnC,CAAd;AACA,QAAM,aAAa,GAAG,iCAAA,CAAA,wCAAA,CAAyC,KAAzC,CAAtB;AAEA,EAAA,0BAAA,CAAA,iCAAA,CAAkC,KAAlC;AAEA,SAAO,uBAAA,CAAA,8BAAA,CAA+B,KAA/B,EAAsC,aAAtC,CAAP;AACD,CAPyE,CAA7D;AASb,OAAA,CAAA,eAAA,CAAgB,WAAhB,GAA8B,iBAA9B","sourcesContent":["import * as React from 'react';\nimport { useAccordionHeader_unstable } from './useAccordionHeader';\nimport { renderAccordionHeader_unstable } from './renderAccordionHeader';\nimport { useAccordionHeaderStyles_unstable } from './useAccordionHeaderStyles';\nimport { useAccordionHeaderContextValues_unstable } from './useAccordionHeaderContextValues';\nimport type { AccordionHeaderProps } from './AccordionHeader.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n\n/**\n * Define a styled AccordionHeader, using the `useAccordionHeader_unstable` and `useAccordionHeaderStyles_unstable`\n * hooks.\n */\nexport const AccordionHeader: ForwardRefComponent<AccordionHeaderProps> = React.forwardRef((props, ref) => {\n const state = useAccordionHeader_unstable(props, ref);\n const contextValues = useAccordionHeaderContextValues_unstable(state);\n\n useAccordionHeaderStyles_unstable(state);\n\n return renderAccordionHeader_unstable(state, contextValues);\n});\n\nAccordionHeader.displayName = 'AccordionHeader';\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';
|
|
2
|
+
import type { ARIAButtonSlotProps } from '@fluentui/react-aria';
|
|
3
|
+
export declare type AccordionHeaderSize = 'small' | 'medium' | 'large' | 'extra-large';
|
|
4
|
+
export declare type AccordionHeaderExpandIconPosition = 'start' | 'end';
|
|
5
|
+
export declare type AccordionHeaderContextValue = {
|
|
6
|
+
disabled: boolean;
|
|
7
|
+
open: boolean;
|
|
8
|
+
expandIconPosition: AccordionHeaderExpandIconPosition;
|
|
9
|
+
size: AccordionHeaderSize;
|
|
10
|
+
};
|
|
11
|
+
export declare type AccordionHeaderContextValues = {
|
|
12
|
+
accordionHeader: AccordionHeaderContextValue;
|
|
13
|
+
};
|
|
14
|
+
export declare type AccordionHeaderSlots = {
|
|
15
|
+
/**
|
|
16
|
+
* The element wrapping the button. By default this is a div, but can be a heading.
|
|
17
|
+
*/
|
|
18
|
+
root: Slot<'div', 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'>;
|
|
19
|
+
/**
|
|
20
|
+
* The component to be used as button in heading
|
|
21
|
+
*/
|
|
22
|
+
button: NonNullable<Slot<ARIAButtonSlotProps>>;
|
|
23
|
+
/**
|
|
24
|
+
* Expand icon slot rendered before (or after) children content in heading
|
|
25
|
+
*/
|
|
26
|
+
expandIcon: Slot<'span'>;
|
|
27
|
+
/**
|
|
28
|
+
* Expand icon slot rendered before (or after) children content in heading
|
|
29
|
+
*/
|
|
30
|
+
icon?: Slot<'div'>;
|
|
31
|
+
};
|
|
32
|
+
declare type AccordionHeaderCommons = {
|
|
33
|
+
/**
|
|
34
|
+
* Size of spacing in the heading
|
|
35
|
+
*/
|
|
36
|
+
size: AccordionHeaderSize;
|
|
37
|
+
/**
|
|
38
|
+
* The position of the expand icon slot in heading
|
|
39
|
+
*/
|
|
40
|
+
expandIconPosition: AccordionHeaderExpandIconPosition;
|
|
41
|
+
/**
|
|
42
|
+
* Indicates if the AccordionHeader should be rendered inline
|
|
43
|
+
*/
|
|
44
|
+
inline: boolean;
|
|
45
|
+
};
|
|
46
|
+
export declare type AccordionHeaderProps = ComponentProps<Partial<AccordionHeaderSlots>> & Partial<AccordionHeaderCommons>;
|
|
47
|
+
export declare type AccordionHeaderState = ComponentState<AccordionHeaderSlots> & AccordionHeaderCommons & AccordionHeaderContextValue;
|
|
48
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","sourceRoot":"../src/"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AccordionHeaderContextValue } from './AccordionHeader.types';
|
|
3
|
+
export declare const AccordionHeaderContext: React.Context<AccordionHeaderContextValue>;
|
|
4
|
+
export declare const useAccordionHeaderContext: () => AccordionHeaderContextValue;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAccordionHeaderContext = exports.AccordionHeaderContext = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
exports.AccordionHeaderContext = /*#__PURE__*/React.createContext({
|
|
11
|
+
open: false,
|
|
12
|
+
disabled: false,
|
|
13
|
+
size: 'medium',
|
|
14
|
+
expandIconPosition: 'start'
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
const useAccordionHeaderContext = () => React.useContext(exports.AccordionHeaderContext);
|
|
18
|
+
|
|
19
|
+
exports.useAccordionHeaderContext = useAccordionHeaderContext;
|
|
20
|
+
//# sourceMappingURL=AccordionHeaderContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/AccordionHeader/AccordionHeaderContext.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AAGa,OAAA,CAAA,sBAAA,gBAAyB,KAAK,CAAC,aAAN,CAAiD;AACrF,EAAA,IAAI,EAAE,KAD+E;AAErF,EAAA,QAAQ,EAAE,KAF2E;AAGrF,EAAA,IAAI,EAAE,QAH+E;AAIrF,EAAA,kBAAkB,EAAE;AAJiE,CAAjD,CAAzB;;AAON,MAAM,yBAAyB,GAAG,MAAM,KAAK,CAAC,UAAN,CAAiB,OAAA,CAAA,sBAAjB,CAAxC;;AAAM,OAAA,CAAA,yBAAA,GAAyB,yBAAzB","sourcesContent":["import * as React from 'react';\nimport type { AccordionHeaderContextValue } from './AccordionHeader.types';\n\nexport const AccordionHeaderContext = React.createContext<AccordionHeaderContextValue>({\n open: false,\n disabled: false,\n size: 'medium',\n expandIconPosition: 'start',\n});\n\nexport const useAccordionHeaderContext = () => React.useContext(AccordionHeaderContext);\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
const tslib_1 = /*#__PURE__*/require("tslib");
|
|
8
|
+
|
|
9
|
+
tslib_1.__exportStar(require("./AccordionHeader"), exports);
|
|
10
|
+
|
|
11
|
+
tslib_1.__exportStar(require("./AccordionHeader.types"), exports);
|
|
12
|
+
|
|
13
|
+
tslib_1.__exportStar(require("./renderAccordionHeader"), exports);
|
|
14
|
+
|
|
15
|
+
tslib_1.__exportStar(require("./useAccordionHeader"), exports);
|
|
16
|
+
|
|
17
|
+
tslib_1.__exportStar(require("./useAccordionHeaderContextValues"), exports);
|
|
18
|
+
|
|
19
|
+
tslib_1.__exportStar(require("./useAccordionHeaderStyles"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/AccordionHeader/index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,mBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,yBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,yBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,sBAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,mCAAA,CAAA,EAAA,OAAA;;AACA,OAAA,CAAA,YAAA,CAAA,OAAA,CAAA,4BAAA,CAAA,EAAA,OAAA","sourcesContent":["export * from './AccordionHeader';\nexport * from './AccordionHeader.types';\nexport * from './renderAccordionHeader';\nexport * from './useAccordionHeader';\nexport * from './useAccordionHeaderContextValues';\nexport * from './useAccordionHeaderStyles';\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AccordionHeaderState, AccordionHeaderContextValues } from './AccordionHeader.types';
|
|
2
|
+
/**
|
|
3
|
+
* Function that renders the final JSX of the component
|
|
4
|
+
*/
|
|
5
|
+
export declare const renderAccordionHeader_unstable: (state: AccordionHeaderState, contextValues: AccordionHeaderContextValues) => JSX.Element;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.renderAccordionHeader_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
|
|
11
|
+
|
|
12
|
+
const AccordionHeaderContext_1 = /*#__PURE__*/require("./AccordionHeaderContext");
|
|
13
|
+
/**
|
|
14
|
+
* Function that renders the final JSX of the component
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
const renderAccordionHeader_unstable = (state, contextValues) => {
|
|
19
|
+
const {
|
|
20
|
+
slots,
|
|
21
|
+
slotProps
|
|
22
|
+
} = react_utilities_1.getSlots(state);
|
|
23
|
+
return React.createElement(AccordionHeaderContext_1.AccordionHeaderContext.Provider, {
|
|
24
|
+
value: contextValues.accordionHeader
|
|
25
|
+
}, React.createElement(slots.root, { ...slotProps.root
|
|
26
|
+
}, React.createElement(slots.button, { ...slotProps.button
|
|
27
|
+
}, state.expandIconPosition === 'start' && React.createElement(slots.expandIcon, { ...slotProps.expandIcon
|
|
28
|
+
}), slots.icon && React.createElement(slots.icon, { ...slotProps.icon
|
|
29
|
+
}), slotProps.root.children, state.expandIconPosition === 'end' && React.createElement(slots.expandIcon, { ...slotProps.expandIcon
|
|
30
|
+
}))));
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
exports.renderAccordionHeader_unstable = renderAccordionHeader_unstable;
|
|
34
|
+
//# sourceMappingURL=renderAccordionHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/AccordionHeader/renderAccordionHeader.tsx"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AACA,MAAA,iBAAA,gBAAA,OAAA,CAAA,2BAAA,CAAA;;AACA,MAAA,wBAAA,gBAAA,OAAA,CAAA,0BAAA,CAAA;AAGA;;AAEG;;;AACI,MAAM,8BAA8B,GAAG,CAC5C,KAD4C,EAE5C,aAF4C,KAG1C;AACF,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,iBAAA,CAAA,QAAA,CAA+B,KAA/B,CAA7B;AAEA,SACE,KAAA,CAAA,aAAA,CAAC,wBAAA,CAAA,sBAAA,CAAuB,QAAxB,EAAgC;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAAhC,EACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,EACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,MAAP,EAAa,EAAA,GAAK,SAAS,CAAC;AAAf,GAAb,EACG,KAAK,CAAC,kBAAN,KAA6B,OAA7B,IAAwC,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,UAAP,EAAiB,EAAA,GAAK,SAAS,CAAC;AAAf,GAAjB,CAD3C,EAEG,KAAK,CAAC,IAAN,IAAc,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,CAFjB,EAGG,SAAS,CAAC,IAAV,CAAe,QAHlB,EAIG,KAAK,CAAC,kBAAN,KAA6B,KAA7B,IAAsC,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,UAAP,EAAiB,EAAA,GAAK,SAAS,CAAC;AAAf,GAAjB,CAJzC,CADF,CADF,CADF;AAYD,CAlBM;;AAAM,OAAA,CAAA,8BAAA,GAA8B,8BAA9B","sourcesContent":["import * as React from 'react';\nimport { getSlots } from '@fluentui/react-utilities';\nimport { AccordionHeaderContext } from './AccordionHeaderContext';\nimport type { AccordionHeaderState, AccordionHeaderSlots, AccordionHeaderContextValues } from './AccordionHeader.types';\n\n/**\n * Function that renders the final JSX of the component\n */\nexport const renderAccordionHeader_unstable = (\n state: AccordionHeaderState,\n contextValues: AccordionHeaderContextValues,\n) => {\n const { slots, slotProps } = getSlots<AccordionHeaderSlots>(state);\n\n return (\n <AccordionHeaderContext.Provider value={contextValues.accordionHeader}>\n <slots.root {...slotProps.root}>\n <slots.button {...slotProps.button}>\n {state.expandIconPosition === 'start' && <slots.expandIcon {...slotProps.expandIcon} />}\n {slots.icon && <slots.icon {...slotProps.icon} />}\n {slotProps.root.children}\n {state.expandIconPosition === 'end' && <slots.expandIcon {...slotProps.expandIcon} />}\n </slots.button>\n </slots.root>\n </AccordionHeaderContext.Provider>\n );\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { AccordionHeaderProps, AccordionHeaderState } from './AccordionHeader.types';
|
|
3
|
+
/**
|
|
4
|
+
* Returns the props and state required to render the component
|
|
5
|
+
* @param props - AccordionHeader properties
|
|
6
|
+
* @param ref - reference to root HTMLElement of AccordionHeader
|
|
7
|
+
*/
|
|
8
|
+
export declare const useAccordionHeader_unstable: (props: AccordionHeaderProps, ref: React.Ref<HTMLElement>) => AccordionHeaderState;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAccordionHeader_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
const react_utilities_1 = /*#__PURE__*/require("@fluentui/react-utilities");
|
|
11
|
+
|
|
12
|
+
const index_1 = /*#__PURE__*/require("../AccordionItem/index");
|
|
13
|
+
|
|
14
|
+
const react_aria_1 = /*#__PURE__*/require("@fluentui/react-aria");
|
|
15
|
+
|
|
16
|
+
const react_context_selector_1 = /*#__PURE__*/require("@fluentui/react-context-selector");
|
|
17
|
+
|
|
18
|
+
const AccordionContext_1 = /*#__PURE__*/require("../Accordion/AccordionContext");
|
|
19
|
+
|
|
20
|
+
const react_icons_1 = /*#__PURE__*/require("@fluentui/react-icons");
|
|
21
|
+
|
|
22
|
+
const react_shared_contexts_1 = /*#__PURE__*/require("@fluentui/react-shared-contexts");
|
|
23
|
+
/**
|
|
24
|
+
* Returns the props and state required to render the component
|
|
25
|
+
* @param props - AccordionHeader properties
|
|
26
|
+
* @param ref - reference to root HTMLElement of AccordionHeader
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
const useAccordionHeader_unstable = (props, ref) => {
|
|
31
|
+
const {
|
|
32
|
+
as,
|
|
33
|
+
icon,
|
|
34
|
+
button,
|
|
35
|
+
expandIcon,
|
|
36
|
+
inline = false,
|
|
37
|
+
size = 'medium',
|
|
38
|
+
expandIconPosition = 'start'
|
|
39
|
+
} = props;
|
|
40
|
+
const {
|
|
41
|
+
onHeaderClick: onAccordionHeaderClick,
|
|
42
|
+
disabled,
|
|
43
|
+
open
|
|
44
|
+
} = index_1.useAccordionItemContext_unstable();
|
|
45
|
+
/**
|
|
46
|
+
* force disabled state on button if accordion isn't collapsible
|
|
47
|
+
* and this is the only item opened
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
const disabledFocusable = react_context_selector_1.useContextSelector(AccordionContext_1.AccordionContext, ctx => !ctx.collapsible && ctx.openItems.length === 1 && open);
|
|
51
|
+
const {
|
|
52
|
+
dir
|
|
53
|
+
} = react_shared_contexts_1.useFluent(); // Calculate how to rotate the expand icon [>] (ChevronRightRegular)
|
|
54
|
+
|
|
55
|
+
let expandIconRotation;
|
|
56
|
+
|
|
57
|
+
if (expandIconPosition === 'end') {
|
|
58
|
+
// If expand icon is at the end, the chevron points up [^] when open, and down [v] when closed
|
|
59
|
+
expandIconRotation = open ? -90 : 90;
|
|
60
|
+
} else {
|
|
61
|
+
// Otherwise, the chevron points down [v] when open, and right [>] (or left [<] in RTL) when closed
|
|
62
|
+
expandIconRotation = open ? 90 : dir !== 'rtl' ? 0 : 180;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
const buttonShorthand = react_aria_1.useARIAButton(button, {
|
|
66
|
+
required: true,
|
|
67
|
+
defaultProps: {
|
|
68
|
+
disabled,
|
|
69
|
+
disabledFocusable,
|
|
70
|
+
'aria-expanded': open
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
return {
|
|
74
|
+
disabled,
|
|
75
|
+
open,
|
|
76
|
+
size,
|
|
77
|
+
inline,
|
|
78
|
+
expandIconPosition,
|
|
79
|
+
components: {
|
|
80
|
+
root: 'div',
|
|
81
|
+
button: 'button',
|
|
82
|
+
expandIcon: 'span',
|
|
83
|
+
icon: 'div'
|
|
84
|
+
},
|
|
85
|
+
root: react_utilities_1.getNativeElementProps(as || 'div', {
|
|
86
|
+
ref,
|
|
87
|
+
...props
|
|
88
|
+
}),
|
|
89
|
+
icon: react_utilities_1.resolveShorthand(icon),
|
|
90
|
+
expandIcon: react_utilities_1.resolveShorthand(expandIcon, {
|
|
91
|
+
required: true,
|
|
92
|
+
defaultProps: {
|
|
93
|
+
children: React.createElement(react_icons_1.ChevronRightRegular, {
|
|
94
|
+
transform: `rotate(${expandIconRotation})`
|
|
95
|
+
}),
|
|
96
|
+
'aria-hidden': true
|
|
97
|
+
}
|
|
98
|
+
}),
|
|
99
|
+
button: { ...buttonShorthand,
|
|
100
|
+
onClick: react_utilities_1.useEventCallback(ev => {
|
|
101
|
+
var _a;
|
|
102
|
+
|
|
103
|
+
(_a = buttonShorthand.onClick) === null || _a === void 0 ? void 0 : _a.call(buttonShorthand, ev);
|
|
104
|
+
|
|
105
|
+
if (!ev.defaultPrevented) {
|
|
106
|
+
onAccordionHeaderClick(ev);
|
|
107
|
+
}
|
|
108
|
+
})
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
exports.useAccordionHeader_unstable = useAccordionHeader_unstable;
|
|
114
|
+
//# sourceMappingURL=useAccordionHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/AccordionHeader/useAccordionHeader.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getNativeElementProps, resolveShorthand, useEventCallback } from '@fluentui/react-utilities';\nimport { useAccordionItemContext_unstable } from '../AccordionItem/index';\nimport { useARIAButton } from '@fluentui/react-aria';\nimport type { AccordionHeaderProps, AccordionHeaderState } from './AccordionHeader.types';\nimport { useContextSelector } from '@fluentui/react-context-selector';\nimport { AccordionContext } from '../Accordion/AccordionContext';\nimport { ChevronRightRegular } from '@fluentui/react-icons';\nimport { useFluent } from '@fluentui/react-shared-contexts';\n\n/**\n * Returns the props and state required to render the component\n * @param props - AccordionHeader properties\n * @param ref - reference to root HTMLElement of AccordionHeader\n */\nexport const useAccordionHeader_unstable = (\n props: AccordionHeaderProps,\n ref: React.Ref<HTMLElement>,\n): AccordionHeaderState => {\n const { as, icon, button, expandIcon, inline = false, size = 'medium', expandIconPosition = 'start' } = props;\n const { onHeaderClick: onAccordionHeaderClick, disabled, open } = useAccordionItemContext_unstable();\n\n /**\n * force disabled state on button if accordion isn't collapsible\n * and this is the only item opened\n */\n const disabledFocusable = useContextSelector(\n AccordionContext,\n ctx => !ctx.collapsible && ctx.openItems.length === 1 && open,\n );\n\n const { dir } = useFluent();\n\n // Calculate how to rotate the expand icon [>] (ChevronRightRegular)\n let expandIconRotation: 0 | 90 | -90 | 180;\n if (expandIconPosition === 'end') {\n // If expand icon is at the end, the chevron points up [^] when open, and down [v] when closed\n expandIconRotation = open ? -90 : 90;\n } else {\n // Otherwise, the chevron points down [v] when open, and right [>] (or left [<] in RTL) when closed\n expandIconRotation = open ? 90 : dir !== 'rtl' ? 0 : 180;\n }\n\n const buttonShorthand = useARIAButton(button, {\n required: true,\n defaultProps: {\n disabled,\n disabledFocusable,\n 'aria-expanded': open,\n },\n });\n\n return {\n disabled,\n open,\n size,\n inline,\n expandIconPosition,\n components: {\n root: 'div',\n button: 'button',\n expandIcon: 'span',\n icon: 'div',\n },\n root: getNativeElementProps(as || 'div', {\n ref,\n ...props,\n }),\n icon: resolveShorthand(icon),\n expandIcon: resolveShorthand(expandIcon, {\n required: true,\n defaultProps: {\n children: <ChevronRightRegular transform={`rotate(${expandIconRotation})`} />,\n 'aria-hidden': true,\n },\n }),\n button: {\n ...buttonShorthand,\n onClick: useEventCallback(\n (ev: React.MouseEvent<HTMLButtonElement & HTMLDivElement & HTMLSpanElement & HTMLAnchorElement>) => {\n buttonShorthand.onClick?.(ev);\n if (!ev.defaultPrevented) {\n onAccordionHeaderClick(ev);\n }\n },\n ),\n },\n };\n};\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAccordionHeaderContextValues_unstable = void 0;
|
|
7
|
+
|
|
8
|
+
const React = /*#__PURE__*/require("react");
|
|
9
|
+
|
|
10
|
+
function useAccordionHeaderContextValues_unstable(state) {
|
|
11
|
+
const {
|
|
12
|
+
disabled,
|
|
13
|
+
expandIconPosition,
|
|
14
|
+
open,
|
|
15
|
+
size
|
|
16
|
+
} = state;
|
|
17
|
+
const accordionHeader = React.useMemo(() => ({
|
|
18
|
+
disabled,
|
|
19
|
+
expandIconPosition,
|
|
20
|
+
open,
|
|
21
|
+
size
|
|
22
|
+
}), [disabled, expandIconPosition, open, size]);
|
|
23
|
+
return {
|
|
24
|
+
accordionHeader
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
exports.useAccordionHeaderContextValues_unstable = useAccordionHeaderContextValues_unstable;
|
|
29
|
+
//# sourceMappingURL=useAccordionHeaderContextValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/AccordionHeader/useAccordionHeaderContextValues.ts"],"names":[],"mappings":";;;;;;;AAAA,MAAA,KAAA,gBAAA,OAAA,CAAA,OAAA,CAAA;;AAOA,SAAgB,wCAAhB,CAAyD,KAAzD,EAAoF;AAClF,QAAM;AAAE,IAAA,QAAF;AAAY,IAAA,kBAAZ;AAAgC,IAAA,IAAhC;AAAsC,IAAA;AAAtC,MAA+C,KAArD;AAEA,QAAM,eAAe,GAAG,KAAK,CAAC,OAAN,CACtB,OAAO;AACL,IAAA,QADK;AAEL,IAAA,kBAFK;AAGL,IAAA,IAHK;AAIL,IAAA;AAJK,GAAP,CADsB,EAOtB,CAAC,QAAD,EAAW,kBAAX,EAA+B,IAA/B,EAAqC,IAArC,CAPsB,CAAxB;AAUA,SAAO;AAAE,IAAA;AAAF,GAAP;AACD;;AAdD,OAAA,CAAA,wCAAA,GAAA,wCAAA","sourcesContent":["import * as React from 'react';\nimport type {\n AccordionHeaderContextValue,\n AccordionHeaderState,\n AccordionHeaderContextValues,\n} from './AccordionHeader.types';\n\nexport function useAccordionHeaderContextValues_unstable(state: AccordionHeaderState): AccordionHeaderContextValues {\n const { disabled, expandIconPosition, open, size } = state;\n\n const accordionHeader = React.useMemo<AccordionHeaderContextValue>(\n () => ({\n disabled,\n expandIconPosition,\n open,\n size,\n }),\n [disabled, expandIconPosition, open, size],\n );\n\n return { accordionHeader };\n}\n"],"sourceRoot":"../src/"}
|