@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,264 @@
|
|
|
1
|
+
import type { ARIAButtonSlotProps } from '@fluentui/react-aria';
|
|
2
|
+
import type { ComponentProps } from '@fluentui/react-utilities';
|
|
3
|
+
import type { ComponentState } from '@fluentui/react-utilities';
|
|
4
|
+
import type { Context } from '@fluentui/react-context-selector';
|
|
5
|
+
import type { ForwardRefComponent } from '@fluentui/react-utilities';
|
|
6
|
+
import * as React_2 from 'react';
|
|
7
|
+
import type { Slot } from '@fluentui/react-utilities';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Define a styled Accordion, using the `useAccordion_unstable` and `useAccordionStyles_unstable` hooks.
|
|
11
|
+
*/
|
|
12
|
+
export declare const Accordion: ForwardRefComponent<AccordionProps>;
|
|
13
|
+
|
|
14
|
+
export declare const accordionClassName = "fui-Accordion";
|
|
15
|
+
|
|
16
|
+
declare type AccordionCommons = {
|
|
17
|
+
/**
|
|
18
|
+
* Indicates if keyboard navigation is available and gives two options,
|
|
19
|
+
* linear or circular navigation
|
|
20
|
+
*/
|
|
21
|
+
navigation?: 'linear' | 'circular';
|
|
22
|
+
/**
|
|
23
|
+
* Indicates if Accordion support multiple Panels opened at the same time
|
|
24
|
+
*/
|
|
25
|
+
multiple: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Indicates if Accordion support multiple Panels closed at the same time
|
|
28
|
+
*/
|
|
29
|
+
collapsible: boolean;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export declare const AccordionContext: Context<AccordionContextValue>;
|
|
33
|
+
|
|
34
|
+
export declare type AccordionContextValue = Omit<AccordionCommons, 'multiple'> & {
|
|
35
|
+
/**
|
|
36
|
+
* The list of opened panels by index
|
|
37
|
+
*/
|
|
38
|
+
openItems: AccordionItemValue[];
|
|
39
|
+
/**
|
|
40
|
+
* Callback used by AccordionItem to request a change on it's own opened state
|
|
41
|
+
* Should be used to toggle AccordionItem
|
|
42
|
+
*/
|
|
43
|
+
requestToggle: (event: AccordionToggleEvent, data: AccordionToggleData) => void;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export declare type AccordionContextValues = {
|
|
47
|
+
accordion: AccordionContextValue;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Define a styled AccordionHeader, using the `useAccordionHeader_unstable` and `useAccordionHeaderStyles_unstable`
|
|
52
|
+
* hooks.
|
|
53
|
+
*/
|
|
54
|
+
export declare const AccordionHeader: ForwardRefComponent<AccordionHeaderProps>;
|
|
55
|
+
|
|
56
|
+
export declare const accordionHeaderClassName = "fui-AccordionHeader";
|
|
57
|
+
|
|
58
|
+
declare type AccordionHeaderCommons = {
|
|
59
|
+
/**
|
|
60
|
+
* Size of spacing in the heading
|
|
61
|
+
*/
|
|
62
|
+
size: AccordionHeaderSize;
|
|
63
|
+
/**
|
|
64
|
+
* The position of the expand icon slot in heading
|
|
65
|
+
*/
|
|
66
|
+
expandIconPosition: AccordionHeaderExpandIconPosition;
|
|
67
|
+
/**
|
|
68
|
+
* Indicates if the AccordionHeader should be rendered inline
|
|
69
|
+
*/
|
|
70
|
+
inline: boolean;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export declare type AccordionHeaderContextValue = {
|
|
74
|
+
disabled: boolean;
|
|
75
|
+
open: boolean;
|
|
76
|
+
expandIconPosition: AccordionHeaderExpandIconPosition;
|
|
77
|
+
size: AccordionHeaderSize;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export declare type AccordionHeaderContextValues = {
|
|
81
|
+
accordionHeader: AccordionHeaderContextValue;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export declare type AccordionHeaderExpandIconPosition = 'start' | 'end';
|
|
85
|
+
|
|
86
|
+
export declare type AccordionHeaderProps = ComponentProps<Partial<AccordionHeaderSlots>> & Partial<AccordionHeaderCommons>;
|
|
87
|
+
|
|
88
|
+
export declare type AccordionHeaderSize = 'small' | 'medium' | 'large' | 'extra-large';
|
|
89
|
+
|
|
90
|
+
export declare type AccordionHeaderSlots = {
|
|
91
|
+
/**
|
|
92
|
+
* The element wrapping the button. By default this is a div, but can be a heading.
|
|
93
|
+
*/
|
|
94
|
+
root: Slot<'div', 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'>;
|
|
95
|
+
/**
|
|
96
|
+
* The component to be used as button in heading
|
|
97
|
+
*/
|
|
98
|
+
button: NonNullable<Slot<ARIAButtonSlotProps>>;
|
|
99
|
+
/**
|
|
100
|
+
* Expand icon slot rendered before (or after) children content in heading
|
|
101
|
+
*/
|
|
102
|
+
expandIcon: Slot<'span'>;
|
|
103
|
+
/**
|
|
104
|
+
* Expand icon slot rendered before (or after) children content in heading
|
|
105
|
+
*/
|
|
106
|
+
icon?: Slot<'div'>;
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
export declare type AccordionHeaderState = ComponentState<AccordionHeaderSlots> & AccordionHeaderCommons & AccordionHeaderContextValue;
|
|
110
|
+
|
|
111
|
+
export declare type AccordionIndex = number | number[];
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Define a styled AccordionItem, using the `useAccordionItem_unstable` and `useAccordionItemStyles_unstable` hooks.
|
|
115
|
+
*/
|
|
116
|
+
export declare const AccordionItem: ForwardRefComponent<AccordionItemProps>;
|
|
117
|
+
|
|
118
|
+
export declare const accordionItemClassName = "fui-AccordionItem";
|
|
119
|
+
|
|
120
|
+
declare type AccordionItemCommons = {
|
|
121
|
+
/**
|
|
122
|
+
* Disables opening/closing of panel
|
|
123
|
+
*/
|
|
124
|
+
disabled: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* required value that identifies this item inside an Accordion component
|
|
127
|
+
*/
|
|
128
|
+
value: AccordionItemValue;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export declare const AccordionItemContext: React_2.Context<AccordionItemContextValue>;
|
|
132
|
+
|
|
133
|
+
export declare type AccordionItemContextValue = Omit<AccordionItemCommons, 'value'> & {
|
|
134
|
+
open: boolean;
|
|
135
|
+
onHeaderClick(ev: React_2.MouseEvent | React_2.KeyboardEvent): void;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export declare type AccordionItemContextValues = {
|
|
139
|
+
accordionItem: AccordionItemContextValue;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
export declare type AccordionItemProps = ComponentProps<AccordionItemSlots> & Partial<AccordionItemCommons> & Pick<AccordionItemCommons, 'value'>;
|
|
143
|
+
|
|
144
|
+
export declare type AccordionItemSlots = {
|
|
145
|
+
root: Slot<'div'>;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
export declare type AccordionItemState = ComponentState<AccordionItemSlots> & AccordionItemCommons & AccordionItemContextValue;
|
|
149
|
+
|
|
150
|
+
export declare type AccordionItemValue = unknown;
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Define a styled AccordionPanel, using the `useAccordionPanel_unstable` and `useAccordionPanelStyles_unstable` hooks.
|
|
154
|
+
*/
|
|
155
|
+
export declare const AccordionPanel: ForwardRefComponent<AccordionPanelProps>;
|
|
156
|
+
|
|
157
|
+
export declare const accordionPanelClassName = "fui-AccordionPanel";
|
|
158
|
+
|
|
159
|
+
export declare type AccordionPanelProps = ComponentProps<AccordionPanelSlots>;
|
|
160
|
+
|
|
161
|
+
export declare type AccordionPanelSlots = {
|
|
162
|
+
root: Slot<'div'>;
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
export declare type AccordionPanelState = ComponentState<AccordionPanelSlots> & {
|
|
166
|
+
/**
|
|
167
|
+
* Internal open state, provided by context
|
|
168
|
+
*/
|
|
169
|
+
open: boolean;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
export declare type AccordionProps = ComponentProps<AccordionSlots> & Partial<AccordionCommons> & {
|
|
173
|
+
/**
|
|
174
|
+
* Controls the state of the panel
|
|
175
|
+
*/
|
|
176
|
+
openItems?: AccordionItemValue | AccordionItemValue[];
|
|
177
|
+
/**
|
|
178
|
+
* Default value for the uncontrolled state of the panel
|
|
179
|
+
*/
|
|
180
|
+
defaultOpenItems?: AccordionItemValue | AccordionItemValue[];
|
|
181
|
+
onToggle?: AccordionToggleEventHandler;
|
|
182
|
+
};
|
|
183
|
+
|
|
184
|
+
export declare type AccordionSlots = {
|
|
185
|
+
root: Slot<'div'>;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export declare type AccordionState = ComponentState<AccordionSlots> & AccordionCommons & AccordionContextValue;
|
|
189
|
+
|
|
190
|
+
export declare type AccordionToggleData = {
|
|
191
|
+
value: AccordionItemValue;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
export declare type AccordionToggleEvent<E = HTMLElement> = React_2.MouseEvent<E> | React_2.KeyboardEvent<E>;
|
|
195
|
+
|
|
196
|
+
export declare type AccordionToggleEventHandler = (event: AccordionToggleEvent, data: AccordionToggleData) => void;
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Function that renders the final JSX of the component
|
|
200
|
+
*/
|
|
201
|
+
export declare const renderAccordion_unstable: (state: AccordionState, contextValues: AccordionContextValues) => JSX.Element;
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Function that renders the final JSX of the component
|
|
205
|
+
*/
|
|
206
|
+
export declare const renderAccordionHeader_unstable: (state: AccordionHeaderState, contextValues: AccordionHeaderContextValues) => JSX.Element;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Function that renders the final JSX of the component
|
|
210
|
+
*/
|
|
211
|
+
export declare const renderAccordionItem_unstable: (state: AccordionItemState, contextValues: AccordionItemContextValues) => JSX.Element;
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Function that renders the final JSX of the component
|
|
215
|
+
*/
|
|
216
|
+
export declare const renderAccordionPanel_unstable: (state: AccordionPanelState) => JSX.Element | null;
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Returns the props and state required to render the component
|
|
220
|
+
* @param props - Accordion properties
|
|
221
|
+
* @param ref - reference to root HTMLElement of Accordion
|
|
222
|
+
*/
|
|
223
|
+
export declare const useAccordion_unstable: (props: AccordionProps, ref: React_2.Ref<HTMLElement>) => AccordionState;
|
|
224
|
+
|
|
225
|
+
export declare function useAccordionContextValues_unstable(state: AccordionState): AccordionContextValues;
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Returns the props and state required to render the component
|
|
229
|
+
* @param props - AccordionHeader properties
|
|
230
|
+
* @param ref - reference to root HTMLElement of AccordionHeader
|
|
231
|
+
*/
|
|
232
|
+
export declare const useAccordionHeader_unstable: (props: AccordionHeaderProps, ref: React_2.Ref<HTMLElement>) => AccordionHeaderState;
|
|
233
|
+
|
|
234
|
+
export declare function useAccordionHeaderContextValues_unstable(state: AccordionHeaderState): AccordionHeaderContextValues;
|
|
235
|
+
|
|
236
|
+
/** Applies style classnames to slots */
|
|
237
|
+
export declare const useAccordionHeaderStyles_unstable: (state: AccordionHeaderState) => AccordionHeaderState;
|
|
238
|
+
|
|
239
|
+
/**
|
|
240
|
+
* Returns the props and state required to render the component
|
|
241
|
+
* @param props - AccordionItem properties
|
|
242
|
+
* @param ref - reference to root HTMLElement of AccordionItem
|
|
243
|
+
*/
|
|
244
|
+
export declare const useAccordionItem_unstable: (props: AccordionItemProps, ref: React_2.Ref<HTMLElement>) => AccordionItemState;
|
|
245
|
+
|
|
246
|
+
export declare const useAccordionItemContext_unstable: () => AccordionItemContextValue;
|
|
247
|
+
|
|
248
|
+
export declare function useAccordionItemContextValues_unstable(state: AccordionItemState): AccordionItemContextValues;
|
|
249
|
+
|
|
250
|
+
export declare const useAccordionItemStyles_unstable: (state: AccordionItemState) => AccordionItemState;
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Returns the props and state required to render the component
|
|
254
|
+
* @param props - AccordionPanel properties
|
|
255
|
+
* @param ref - reference to root HTMLElement of AccordionPanel
|
|
256
|
+
*/
|
|
257
|
+
export declare const useAccordionPanel_unstable: (props: AccordionPanelProps, ref: React_2.Ref<HTMLElement>) => AccordionPanelState;
|
|
258
|
+
|
|
259
|
+
/** Applies style classnames to slots */
|
|
260
|
+
export declare const useAccordionPanelStyles_unstable: (state: AccordionPanelState) => AccordionPanelState;
|
|
261
|
+
|
|
262
|
+
export declare const useAccordionStyles_unstable: (state: AccordionState) => AccordionState;
|
|
263
|
+
|
|
264
|
+
export { }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components/Accordion/index';
|
package/lib/Accordion.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Accordion.js","sourceRoot":"../src/","sources":["Accordion.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC","sourcesContent":["export * from './components/Accordion/index';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components/AccordionHeader/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionHeader.js","sourceRoot":"../src/","sources":["AccordionHeader.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC","sourcesContent":["export * from './components/AccordionHeader/index';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components/AccordionItem/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionItem.js","sourceRoot":"../src/","sources":["AccordionItem.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC","sourcesContent":["export * from './components/AccordionItem/index';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components/AccordionPanel/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionPanel.js","sourceRoot":"../src/","sources":["AccordionPanel.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC","sourcesContent":["export * from './components/AccordionPanel/index';\n"]}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { AccordionProps } from './Accordion.types';
|
|
2
|
+
import type { ForwardRefComponent } from '@fluentui/react-utilities';
|
|
3
|
+
/**
|
|
4
|
+
* Define a styled Accordion, using the `useAccordion_unstable` and `useAccordionStyles_unstable` hooks.
|
|
5
|
+
*/
|
|
6
|
+
export declare const Accordion: ForwardRefComponent<AccordionProps>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { renderAccordion_unstable } from './renderAccordion';
|
|
3
|
+
import { useAccordion_unstable } from './useAccordion';
|
|
4
|
+
import { useAccordionContextValues_unstable } from './useAccordionContextValues';
|
|
5
|
+
import { useAccordionStyles_unstable } from './useAccordionStyles';
|
|
6
|
+
/**
|
|
7
|
+
* Define a styled Accordion, using the `useAccordion_unstable` and `useAccordionStyles_unstable` hooks.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export const Accordion = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
11
|
+
const state = useAccordion_unstable(props, ref);
|
|
12
|
+
const contextValues = useAccordionContextValues_unstable(state);
|
|
13
|
+
useAccordionStyles_unstable(state);
|
|
14
|
+
return renderAccordion_unstable(state, contextValues);
|
|
15
|
+
});
|
|
16
|
+
Accordion.displayName = 'Accordion';
|
|
17
|
+
//# sourceMappingURL=Accordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,wBAAT,QAAyC,mBAAzC;AACA,SAAS,qBAAT,QAAsC,gBAAtC;AACA,SAAS,kCAAT,QAAmD,6BAAnD;AAGA,SAAS,2BAAT,QAA4C,sBAA5C;AAEA;;AAEG;;AACH,OAAO,MAAM,SAAS,gBAAwC,KAAK,CAAC,UAAN,CAC5D,CAAC,KAAD,EAAQ,GAAR,KAAe;AACb,QAAM,KAAK,GAAG,qBAAqB,CAAC,KAAD,EAAQ,GAAR,CAAnC;AACA,QAAM,aAAa,GAAG,kCAAkC,CAAC,KAAD,CAAxD;AAEA,EAAA,2BAA2B,CAAC,KAAD,CAA3B;AAEA,SAAO,wBAAwB,CAAC,KAAD,EAAQ,aAAR,CAA/B;AACD,CAR2D,CAAvD;AAWP,SAAS,CAAC,WAAV,GAAwB,WAAxB","sourcesContent":["import * as React from 'react';\nimport { renderAccordion_unstable } from './renderAccordion';\nimport { useAccordion_unstable } from './useAccordion';\nimport { useAccordionContextValues_unstable } from './useAccordionContextValues';\nimport type { AccordionProps } from './Accordion.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useAccordionStyles_unstable } from './useAccordionStyles';\n\n/**\n * Define a styled Accordion, using the `useAccordion_unstable` and `useAccordionStyles_unstable` hooks.\n */\nexport const Accordion: ForwardRefComponent<AccordionProps> = React.forwardRef<HTMLDivElement, AccordionProps>(\n (props, ref) => {\n const state = useAccordion_unstable(props, ref);\n const contextValues = useAccordionContextValues_unstable(state);\n\n useAccordionStyles_unstable(state);\n\n return renderAccordion_unstable(state, contextValues);\n },\n);\n\nAccordion.displayName = 'Accordion';\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';
|
|
3
|
+
import type { AccordionItemValue } from '../AccordionItem/AccordionItem.types';
|
|
4
|
+
export declare type AccordionIndex = number | number[];
|
|
5
|
+
export declare type AccordionToggleEvent<E = HTMLElement> = React.MouseEvent<E> | React.KeyboardEvent<E>;
|
|
6
|
+
export declare type AccordionToggleEventHandler = (event: AccordionToggleEvent, data: AccordionToggleData) => void;
|
|
7
|
+
declare type AccordionCommons = {
|
|
8
|
+
/**
|
|
9
|
+
* Indicates if keyboard navigation is available and gives two options,
|
|
10
|
+
* linear or circular navigation
|
|
11
|
+
*/
|
|
12
|
+
navigation?: 'linear' | 'circular';
|
|
13
|
+
/**
|
|
14
|
+
* Indicates if Accordion support multiple Panels opened at the same time
|
|
15
|
+
*/
|
|
16
|
+
multiple: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Indicates if Accordion support multiple Panels closed at the same time
|
|
19
|
+
*/
|
|
20
|
+
collapsible: boolean;
|
|
21
|
+
};
|
|
22
|
+
export declare type AccordionContextValue = Omit<AccordionCommons, 'multiple'> & {
|
|
23
|
+
/**
|
|
24
|
+
* The list of opened panels by index
|
|
25
|
+
*/
|
|
26
|
+
openItems: AccordionItemValue[];
|
|
27
|
+
/**
|
|
28
|
+
* Callback used by AccordionItem to request a change on it's own opened state
|
|
29
|
+
* Should be used to toggle AccordionItem
|
|
30
|
+
*/
|
|
31
|
+
requestToggle: (event: AccordionToggleEvent, data: AccordionToggleData) => void;
|
|
32
|
+
};
|
|
33
|
+
export declare type AccordionContextValues = {
|
|
34
|
+
accordion: AccordionContextValue;
|
|
35
|
+
};
|
|
36
|
+
export declare type AccordionSlots = {
|
|
37
|
+
root: Slot<'div'>;
|
|
38
|
+
};
|
|
39
|
+
export declare type AccordionToggleData = {
|
|
40
|
+
value: AccordionItemValue;
|
|
41
|
+
};
|
|
42
|
+
export declare type AccordionProps = ComponentProps<AccordionSlots> & Partial<AccordionCommons> & {
|
|
43
|
+
/**
|
|
44
|
+
* Controls the state of the panel
|
|
45
|
+
*/
|
|
46
|
+
openItems?: AccordionItemValue | AccordionItemValue[];
|
|
47
|
+
/**
|
|
48
|
+
* Default value for the uncontrolled state of the panel
|
|
49
|
+
*/
|
|
50
|
+
defaultOpenItems?: AccordionItemValue | AccordionItemValue[];
|
|
51
|
+
onToggle?: AccordionToggleEventHandler;
|
|
52
|
+
};
|
|
53
|
+
export declare type AccordionState = ComponentState<AccordionSlots> & AccordionCommons & AccordionContextValue;
|
|
54
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Accordion.types.js","sourceRoot":"../src/","sources":["components/Accordion/Accordion.types.ts"],"names":[],"mappings":"","sourcesContent":["import * as React from 'react';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { AccordionItemValue } from '../AccordionItem/AccordionItem.types';\n\nexport type AccordionIndex = number | number[];\n\nexport type AccordionToggleEvent<E = HTMLElement> = React.MouseEvent<E> | React.KeyboardEvent<E>;\n\nexport type AccordionToggleEventHandler = (event: AccordionToggleEvent, data: AccordionToggleData) => void;\n\ntype AccordionCommons = {\n /**\n * Indicates if keyboard navigation is available and gives two options,\n * linear or circular navigation\n */\n navigation?: 'linear' | 'circular';\n /**\n * Indicates if Accordion support multiple Panels opened at the same time\n */\n multiple: boolean;\n /**\n * Indicates if Accordion support multiple Panels closed at the same time\n */\n collapsible: boolean;\n};\n\nexport type AccordionContextValue = Omit<AccordionCommons, 'multiple'> & {\n /**\n * The list of opened panels by index\n */\n openItems: AccordionItemValue[];\n /**\n * Callback used by AccordionItem to request a change on it's own opened state\n * Should be used to toggle AccordionItem\n */\n requestToggle: (event: AccordionToggleEvent, data: AccordionToggleData) => void;\n};\n\nexport type AccordionContextValues = {\n accordion: AccordionContextValue;\n};\n\nexport type AccordionSlots = {\n root: Slot<'div'>;\n};\n\nexport type AccordionToggleData = {\n value: AccordionItemValue;\n};\n\nexport type AccordionProps = ComponentProps<AccordionSlots> &\n Partial<AccordionCommons> & {\n /**\n * Controls the state of the panel\n */\n openItems?: AccordionItemValue | AccordionItemValue[];\n /**\n * Default value for the uncontrolled state of the panel\n */\n defaultOpenItems?: AccordionItemValue | AccordionItemValue[];\n onToggle?: AccordionToggleEventHandler;\n };\n\nexport type AccordionState = ComponentState<AccordionSlots> & AccordionCommons & AccordionContextValue;\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createContext } from '@fluentui/react-context-selector';
|
|
2
|
+
export const AccordionContext = /*#__PURE__*/createContext({
|
|
3
|
+
openItems: [],
|
|
4
|
+
collapsible: false,
|
|
5
|
+
|
|
6
|
+
requestToggle() {
|
|
7
|
+
/* noop */
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=AccordionContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Accordion/AccordionContext.ts"],"names":[],"mappings":"AAAA,SAAS,aAAT,QAA8B,kCAA9B;AAIA,OAAO,MAAM,gBAAgB,gBAAmC,aAAa,CAAwB;AACnG,EAAA,SAAS,EAAE,EADwF;AAEnG,EAAA,WAAW,EAAE,KAFsF;;AAGnG,EAAA,aAAa,GAAA;AACX;AACD;;AALkG,CAAxB,CAAtE","sourcesContent":["import { createContext } from '@fluentui/react-context-selector';\nimport type { Context } from '@fluentui/react-context-selector';\nimport type { AccordionContextValue } from './Accordion.types';\n\nexport const AccordionContext: Context<AccordionContextValue> = createContext<AccordionContextValue>({\n openItems: [],\n collapsible: false,\n requestToggle() {\n /* noop */\n },\n});\n"],"sourceRoot":"../src/"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './Accordion';
|
|
2
|
+
export * from './Accordion.types';
|
|
3
|
+
export * from './renderAccordion';
|
|
4
|
+
export * from './useAccordion';
|
|
5
|
+
export * from './useAccordionStyles';
|
|
6
|
+
export * from './useAccordionContextValues';
|
|
7
|
+
export * from './AccordionContext';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"../src/","sources":["components/Accordion/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC","sourcesContent":["export * from './Accordion';\nexport * from './Accordion.types';\nexport * from './renderAccordion';\nexport * from './useAccordion';\nexport * from './useAccordionStyles';\nexport * from './useAccordionContextValues';\nexport * from './AccordionContext';\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AccordionState, AccordionContextValues } from './Accordion.types';
|
|
2
|
+
/**
|
|
3
|
+
* Function that renders the final JSX of the component
|
|
4
|
+
*/
|
|
5
|
+
export declare const renderAccordion_unstable: (state: AccordionState, contextValues: AccordionContextValues) => JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { getSlots } from '@fluentui/react-utilities';
|
|
3
|
+
import { AccordionContext } from './AccordionContext';
|
|
4
|
+
/**
|
|
5
|
+
* Function that renders the final JSX of the component
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export const renderAccordion_unstable = (state, contextValues) => {
|
|
9
|
+
const {
|
|
10
|
+
slots,
|
|
11
|
+
slotProps
|
|
12
|
+
} = getSlots(state);
|
|
13
|
+
return /*#__PURE__*/React.createElement(slots.root, { ...slotProps.root
|
|
14
|
+
}, /*#__PURE__*/React.createElement(AccordionContext.Provider, {
|
|
15
|
+
value: contextValues.accordion
|
|
16
|
+
}, slotProps.root.children));
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=renderAccordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Accordion/renderAccordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAEA,SAAS,gBAAT,QAAiC,oBAAjC;AAGA;;AAEG;;AACH,OAAO,MAAM,wBAAwB,GAAG,CAAC,KAAD,EAAwB,aAAxB,KAAiE;AACvG,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,QAAQ,CAAiB,KAAjB,CAArC;AAEA,sBACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,eACE,KAAA,CAAA,aAAA,CAAC,gBAAgB,CAAC,QAAlB,EAA0B;AAAC,IAAA,KAAK,EAAE,aAAa,CAAC;AAAtB,GAA1B,EAA4D,SAAS,CAAC,IAAV,CAAe,QAA3E,CADF,CADF;AAKD,CARM","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,108 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { getNativeElementProps, useControllableState, useEventCallback } from '@fluentui/react-utilities';
|
|
3
|
+
import { useArrowNavigationGroup } from '@fluentui/react-tabster';
|
|
4
|
+
/**
|
|
5
|
+
* Returns the props and state required to render the component
|
|
6
|
+
* @param props - Accordion properties
|
|
7
|
+
* @param ref - reference to root HTMLElement of Accordion
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export const useAccordion_unstable = (props, ref) => {
|
|
11
|
+
const {
|
|
12
|
+
openItems: controlledOpenItems,
|
|
13
|
+
defaultOpenItems,
|
|
14
|
+
multiple = false,
|
|
15
|
+
collapsible = false,
|
|
16
|
+
onToggle,
|
|
17
|
+
navigation
|
|
18
|
+
} = props;
|
|
19
|
+
const [openItems, setOpenItems] = useControllableState({
|
|
20
|
+
state: React.useMemo(() => normalizeValues(controlledOpenItems), [controlledOpenItems]),
|
|
21
|
+
defaultState: () => initializeUncontrolledOpenItems({
|
|
22
|
+
defaultOpenItems,
|
|
23
|
+
multiple
|
|
24
|
+
}),
|
|
25
|
+
initialState: []
|
|
26
|
+
});
|
|
27
|
+
const arrowNavigationProps = useArrowNavigationGroup({
|
|
28
|
+
circular: navigation === 'circular'
|
|
29
|
+
});
|
|
30
|
+
const requestToggle = useEventCallback((event, data) => {
|
|
31
|
+
onToggle === null || onToggle === void 0 ? void 0 : onToggle(event, data);
|
|
32
|
+
setOpenItems(previousOpenItems => updateOpenItems(data.value, previousOpenItems, {
|
|
33
|
+
collapsible,
|
|
34
|
+
multiple
|
|
35
|
+
}));
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
multiple,
|
|
39
|
+
collapsible,
|
|
40
|
+
navigation,
|
|
41
|
+
openItems,
|
|
42
|
+
requestToggle,
|
|
43
|
+
components: {
|
|
44
|
+
root: 'div'
|
|
45
|
+
},
|
|
46
|
+
root: getNativeElementProps('div', { ...props,
|
|
47
|
+
...(navigation ? arrowNavigationProps : {}),
|
|
48
|
+
ref
|
|
49
|
+
})
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Initial value for the uncontrolled case of the list of open indexes
|
|
54
|
+
*/
|
|
55
|
+
|
|
56
|
+
function initializeUncontrolledOpenItems({
|
|
57
|
+
defaultOpenItems,
|
|
58
|
+
multiple
|
|
59
|
+
}) {
|
|
60
|
+
if (defaultOpenItems !== undefined) {
|
|
61
|
+
if (Array.isArray(defaultOpenItems)) {
|
|
62
|
+
return multiple ? defaultOpenItems : [defaultOpenItems[0]];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return [defaultOpenItems];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return [];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Updates the list of open indexes based on an index that changes
|
|
72
|
+
* @param value - the index that will change
|
|
73
|
+
* @param previousOpenItems - list of current open indexes
|
|
74
|
+
* @param param2 - {multiple, collapsible}
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
function updateOpenItems(value, previousOpenItems, {
|
|
79
|
+
multiple,
|
|
80
|
+
collapsible
|
|
81
|
+
}) {
|
|
82
|
+
if (multiple) {
|
|
83
|
+
if (previousOpenItems.includes(value)) {
|
|
84
|
+
if (previousOpenItems.length > 1 || collapsible) {
|
|
85
|
+
return previousOpenItems.filter(i => i !== value);
|
|
86
|
+
}
|
|
87
|
+
} else {
|
|
88
|
+
return [...previousOpenItems, value].sort();
|
|
89
|
+
}
|
|
90
|
+
} else {
|
|
91
|
+
return previousOpenItems[0] === value && collapsible ? [] : [value];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return previousOpenItems;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Normalizes Accordion index into an array of indexes
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
function normalizeValues(index) {
|
|
102
|
+
if (index === undefined) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return Array.isArray(index) ? index : [index];
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=useAccordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Accordion/useAccordion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,qBAAT,EAAgC,oBAAhC,EAAsD,gBAAtD,QAA8E,2BAA9E;AAGA,SAAS,uBAAT,QAAwC,yBAAxC;AAEA;;;;AAIG;;AACH,OAAO,MAAM,qBAAqB,GAAG,CAAC,KAAD,EAAwB,GAAxB,KAAuE;AAC1G,QAAM;AACJ,IAAA,SAAS,EAAE,mBADP;AAEJ,IAAA,gBAFI;AAGJ,IAAA,QAAQ,GAAG,KAHP;AAIJ,IAAA,WAAW,GAAG,KAJV;AAKJ,IAAA,QALI;AAMJ,IAAA;AANI,MAOF,KAPJ;AAQA,QAAM,CAAC,SAAD,EAAY,YAAZ,IAA4B,oBAAoB,CAAC;AACrD,IAAA,KAAK,EAAE,KAAK,CAAC,OAAN,CAAc,MAAM,eAAe,CAAC,mBAAD,CAAnC,EAA0D,CAAC,mBAAD,CAA1D,CAD8C;AAErD,IAAA,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAAE,MAAA,gBAAF;AAAoB,MAAA;AAApB,KAAD,CAFE;AAGrD,IAAA,YAAY,EAAE;AAHuC,GAAD,CAAtD;AAMA,QAAM,oBAAoB,GAAG,uBAAuB,CAAC;AACnD,IAAA,QAAQ,EAAE,UAAU,KAAK;AAD0B,GAAD,CAApD;AAIA,QAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,KAAD,EAA8B,IAA9B,KAA2D;AAChG,IAAA,QAAQ,KAAA,IAAR,IAAA,QAAQ,KAAA,KAAA,CAAR,GAAQ,KAAA,CAAR,GAAA,QAAQ,CAAG,KAAH,EAAU,IAAV,CAAR;AACA,IAAA,YAAY,CAAC,iBAAiB,IAC5B,eAAe,CAAC,IAAI,CAAC,KAAN,EAAa,iBAAb,EAAgC;AAC7C,MAAA,WAD6C;AAE7C,MAAA;AAF6C,KAAhC,CADL,CAAZ;AAMD,GARqC,CAAtC;AAUA,SAAO;AACL,IAAA,QADK;AAEL,IAAA,WAFK;AAGL,IAAA,UAHK;AAIL,IAAA,SAJK;AAKL,IAAA,aALK;AAML,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE;AADI,KANP;AASL,IAAA,IAAI,EAAE,qBAAqB,CAAC,KAAD,EAAQ,EACjC,GAAG,KAD8B;AAEjC,UAAI,UAAU,GAAG,oBAAH,GAA0B,EAAxC,CAFiC;AAGjC,MAAA;AAHiC,KAAR;AATtB,GAAP;AAeD,CA5CM;AA8CP;;AAEG;;AACH,SAAS,+BAAT,CAAyC;AACvC,EAAA,gBADuC;AAEvC,EAAA;AAFuC,CAAzC,EAGwD;AACtD,MAAI,gBAAgB,KAAK,SAAzB,EAAoC;AAClC,QAAI,KAAK,CAAC,OAAN,CAAc,gBAAd,CAAJ,EAAqC;AACnC,aAAO,QAAQ,GAAG,gBAAH,GAAsB,CAAC,gBAAgB,CAAC,CAAD,CAAjB,CAArC;AACD;;AACD,WAAO,CAAC,gBAAD,CAAP;AACD;;AACD,SAAO,EAAP;AACD;AAED;;;;;AAKG;;;AACH,SAAS,eAAT,CACE,KADF,EAEE,iBAFF,EAGE;AAAE,EAAA,QAAF;AAAY,EAAA;AAAZ,CAHF,EAG6E;AAE3E,MAAI,QAAJ,EAAc;AACZ,QAAI,iBAAiB,CAAC,QAAlB,CAA2B,KAA3B,CAAJ,EAAuC;AACrC,UAAI,iBAAiB,CAAC,MAAlB,GAA2B,CAA3B,IAAgC,WAApC,EAAiD;AAC/C,eAAO,iBAAiB,CAAC,MAAlB,CAAyB,CAAC,IAAI,CAAC,KAAK,KAApC,CAAP;AACD;AACF,KAJD,MAIO;AACL,aAAO,CAAC,GAAG,iBAAJ,EAAuB,KAAvB,EAA8B,IAA9B,EAAP;AACD;AACF,GARD,MAQO;AACL,WAAO,iBAAiB,CAAC,CAAD,CAAjB,KAAyB,KAAzB,IAAkC,WAAlC,GAAgD,EAAhD,GAAqD,CAAC,KAAD,CAA5D;AACD;;AACD,SAAO,iBAAP;AACD;AAED;;AAEG;;;AACH,SAAS,eAAT,CAAyB,KAAzB,EAA0E;AACxE,MAAI,KAAK,KAAK,SAAd,EAAyB;AACvB,WAAO,SAAP;AACD;;AACD,SAAO,KAAK,CAAC,OAAN,CAAc,KAAd,IAAuB,KAAvB,GAA+B,CAAC,KAAD,CAAtC;AACD","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,19 @@
|
|
|
1
|
+
export function useAccordionContextValues_unstable(state) {
|
|
2
|
+
const {
|
|
3
|
+
navigation,
|
|
4
|
+
openItems,
|
|
5
|
+
requestToggle,
|
|
6
|
+
collapsible
|
|
7
|
+
} = state; // This context is created with "@fluentui/react-context-selector", these is no sense to memoize it
|
|
8
|
+
|
|
9
|
+
const accordion = {
|
|
10
|
+
navigation,
|
|
11
|
+
openItems,
|
|
12
|
+
requestToggle,
|
|
13
|
+
collapsible
|
|
14
|
+
};
|
|
15
|
+
return {
|
|
16
|
+
accordion
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=useAccordionContextValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["components/Accordion/useAccordionContextValues.ts"],"names":[],"mappings":"AAEA,OAAM,SAAU,kCAAV,CAA6C,KAA7C,EAAkE;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","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/"}
|