@availity/mui-accordion 2.0.2 → 2.1.0
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.md +19 -0
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +35 -2
- package/dist/index.mjs +35 -2
- package/package.json +1 -1
- package/src/lib/Accordion.stories.tsx +48 -8
- package/src/lib/Accordion.tsx +43 -10
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
|
4
4
|
|
|
5
|
+
## [2.1.0](https://github.com/Availity/element/compare/@availity/mui-accordion@2.0.2...@availity/mui-accordion@2.1.0) (2025-12-31)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* added expanded flush variant to states as well as flush option to spacing, UXDS-999 ([0e43b14](https://github.com/Availity/element/commit/0e43b143f7a6afa64aede0066fae4ac9acaf6b2f))
|
|
11
|
+
* added flush variant for accordion component, UXDS-999 ([31e6a5b](https://github.com/Availity/element/commit/31e6a5b21a7cf47d9f6eded41f57baaafe2cea26))
|
|
12
|
+
* rounded the corners of nested accordions to 4px, UXDS-999 ([9e9013c](https://github.com/Availity/element/commit/9e9013c1a342b2a5cadba88ca8c6a09f3ec71a45))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
* added flush as an option for variants on accordion storybook page, UXDS-999 ([3ad5734](https://github.com/Availity/element/commit/3ad5734da5f53e0ebc28846345ba616836e3f215))
|
|
18
|
+
* fixed accidental paste, UXDS-999 ([d12a542](https://github.com/Availity/element/commit/d12a54212456090e00ec9072fb0811025ff6e34c))
|
|
19
|
+
* fixed another naming issue, UXDS-999 ([fe02598](https://github.com/Availity/element/commit/fe0259892eca9f569a7d0cb5a6012455f638c5c3))
|
|
20
|
+
* fixed naming issue, UXDS-999 ([ddd24d2](https://github.com/Availity/element/commit/ddd24d299e6d953771b170e207386e65696684c5))
|
|
21
|
+
* fixed spacing between button and header, UXDS-999 ([a5be06f](https://github.com/Availity/element/commit/a5be06fd731e0d55a34165f359d7fc22c5cdb1bc))
|
|
22
|
+
* removed shared styles, UXDS-999 ([b150b28](https://github.com/Availity/element/commit/b150b28d2da33e0dc1e6b68f1e660e9de1d7b27f))
|
|
23
|
+
|
|
5
24
|
## [2.0.2](https://github.com/Availity/element/compare/@availity/mui-accordion@2.0.1...@availity/mui-accordion@2.0.2) (2025-12-09)
|
|
6
25
|
|
|
7
26
|
### Dependency Updates
|
package/dist/index.d.mts
CHANGED
|
@@ -6,9 +6,10 @@ import { AccordionDetailsProps as AccordionDetailsProps$1 } from '@mui/material/
|
|
|
6
6
|
import { AccordionSummaryProps as AccordionSummaryProps$1 } from '@mui/material/AccordionSummary';
|
|
7
7
|
import { TypographyProps as TypographyProps$1 } from '@mui/material/Typography';
|
|
8
8
|
|
|
9
|
+
type Variant = 'filled' | 'outlined' | 'flush';
|
|
9
10
|
type AccordionProps = {
|
|
10
11
|
/** @default "filled" */
|
|
11
|
-
variant?:
|
|
12
|
+
variant?: Variant;
|
|
12
13
|
/**
|
|
13
14
|
* Disable nested styling for child `Accordions`
|
|
14
15
|
* @default false
|
package/dist/index.d.ts
CHANGED
|
@@ -6,9 +6,10 @@ import { AccordionDetailsProps as AccordionDetailsProps$1 } from '@mui/material/
|
|
|
6
6
|
import { AccordionSummaryProps as AccordionSummaryProps$1 } from '@mui/material/AccordionSummary';
|
|
7
7
|
import { TypographyProps as TypographyProps$1 } from '@mui/material/Typography';
|
|
8
8
|
|
|
9
|
+
type Variant = 'filled' | 'outlined' | 'flush';
|
|
9
10
|
type AccordionProps = {
|
|
10
11
|
/** @default "filled" */
|
|
11
|
-
variant?:
|
|
12
|
+
variant?: Variant;
|
|
12
13
|
/**
|
|
13
14
|
* Disable nested styling for child `Accordions`
|
|
14
15
|
* @default false
|
package/dist/index.js
CHANGED
|
@@ -94,10 +94,43 @@ var OutlinedAccordion = (0, import_styles.styled)(import_Accordion.default, {
|
|
|
94
94
|
borderTop: `1px solid ${theme.palette.divider}`
|
|
95
95
|
}
|
|
96
96
|
}));
|
|
97
|
+
var FlushAccordion = (0, import_styles.styled)(import_Accordion.default, {
|
|
98
|
+
name: "MuiAccordion",
|
|
99
|
+
slot: "AvFlush",
|
|
100
|
+
overridesResolver: (props, styles) => styles.avFlush
|
|
101
|
+
})(({ theme }) => ({
|
|
102
|
+
border: 0,
|
|
103
|
+
borderBottom: `1px solid ${theme.palette.divider}`,
|
|
104
|
+
"&&": {
|
|
105
|
+
borderRadius: 0
|
|
106
|
+
},
|
|
107
|
+
"&:first-of-type": {
|
|
108
|
+
borderTop: `1px solid ${theme.palette.divider}`
|
|
109
|
+
},
|
|
110
|
+
"> .MuiAccordion-heading .MuiAccordionSummary-root:not(.Mui-focusVisible, :hover, :active)": {
|
|
111
|
+
backgroundColor: "transparent"
|
|
112
|
+
},
|
|
113
|
+
"> .MuiAccordion-heading .MuiAccordionSummary-root": {
|
|
114
|
+
padding: 8,
|
|
115
|
+
minHeight: 40
|
|
116
|
+
},
|
|
117
|
+
"> .MuiAccordion-heading .MuiAccordionSummary-root .MuiAccordionSummary-content": {
|
|
118
|
+
margin: 0
|
|
119
|
+
},
|
|
120
|
+
"& .MuiAccordionDetails-root .MuiAccordion-heading": {
|
|
121
|
+
borderRadius: 4
|
|
122
|
+
}
|
|
123
|
+
}));
|
|
124
|
+
var VariantComponent = {
|
|
125
|
+
filled: FilledAccordion,
|
|
126
|
+
outlined: OutlinedAccordion,
|
|
127
|
+
flush: FlushAccordion
|
|
128
|
+
};
|
|
97
129
|
var Accordion = (0, import_react.forwardRef)((allProps, ref) => {
|
|
98
130
|
const _a = allProps, { variant = "filled", disableNestedStyling = false, className } = _a, props = __objRest(_a, ["variant", "disableNestedStyling", "className"]);
|
|
99
|
-
const
|
|
100
|
-
|
|
131
|
+
const Variant = VariantComponent[variant];
|
|
132
|
+
const classnames = `MuiAccordion-av${variant.charAt(0).toUpperCase() + variant.slice(1)}${disableNestedStyling ? " Av-disableNested" : ""} ${className || ""}`;
|
|
133
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Variant, __spreadProps(__spreadValues({ className: classnames }, props), { ref }));
|
|
101
134
|
});
|
|
102
135
|
|
|
103
136
|
// src/lib/AccordionActions.tsx
|
package/dist/index.mjs
CHANGED
|
@@ -58,10 +58,43 @@ var OutlinedAccordion = styled(MuiAccordion, {
|
|
|
58
58
|
borderTop: `1px solid ${theme.palette.divider}`
|
|
59
59
|
}
|
|
60
60
|
}));
|
|
61
|
+
var FlushAccordion = styled(MuiAccordion, {
|
|
62
|
+
name: "MuiAccordion",
|
|
63
|
+
slot: "AvFlush",
|
|
64
|
+
overridesResolver: (props, styles) => styles.avFlush
|
|
65
|
+
})(({ theme }) => ({
|
|
66
|
+
border: 0,
|
|
67
|
+
borderBottom: `1px solid ${theme.palette.divider}`,
|
|
68
|
+
"&&": {
|
|
69
|
+
borderRadius: 0
|
|
70
|
+
},
|
|
71
|
+
"&:first-of-type": {
|
|
72
|
+
borderTop: `1px solid ${theme.palette.divider}`
|
|
73
|
+
},
|
|
74
|
+
"> .MuiAccordion-heading .MuiAccordionSummary-root:not(.Mui-focusVisible, :hover, :active)": {
|
|
75
|
+
backgroundColor: "transparent"
|
|
76
|
+
},
|
|
77
|
+
"> .MuiAccordion-heading .MuiAccordionSummary-root": {
|
|
78
|
+
padding: 8,
|
|
79
|
+
minHeight: 40
|
|
80
|
+
},
|
|
81
|
+
"> .MuiAccordion-heading .MuiAccordionSummary-root .MuiAccordionSummary-content": {
|
|
82
|
+
margin: 0
|
|
83
|
+
},
|
|
84
|
+
"& .MuiAccordionDetails-root .MuiAccordion-heading": {
|
|
85
|
+
borderRadius: 4
|
|
86
|
+
}
|
|
87
|
+
}));
|
|
88
|
+
var VariantComponent = {
|
|
89
|
+
filled: FilledAccordion,
|
|
90
|
+
outlined: OutlinedAccordion,
|
|
91
|
+
flush: FlushAccordion
|
|
92
|
+
};
|
|
61
93
|
var Accordion = forwardRef((allProps, ref) => {
|
|
62
94
|
const _a = allProps, { variant = "filled", disableNestedStyling = false, className } = _a, props = __objRest(_a, ["variant", "disableNestedStyling", "className"]);
|
|
63
|
-
const
|
|
64
|
-
|
|
95
|
+
const Variant = VariantComponent[variant];
|
|
96
|
+
const classnames = `MuiAccordion-av${variant.charAt(0).toUpperCase() + variant.slice(1)}${disableNestedStyling ? " Av-disableNested" : ""} ${className || ""}`;
|
|
97
|
+
return /* @__PURE__ */ jsx(Variant, __spreadProps(__spreadValues({ className: classnames }, props), { ref }));
|
|
65
98
|
});
|
|
66
99
|
|
|
67
100
|
// src/lib/AccordionActions.tsx
|
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@ const meta: Meta<typeof Accordion> = {
|
|
|
13
13
|
tags: ['autodocs'],
|
|
14
14
|
argTypes: {
|
|
15
15
|
variant: {
|
|
16
|
-
options: ['filled', 'outlined'],
|
|
16
|
+
options: ['filled', 'outlined', 'flush'],
|
|
17
17
|
},
|
|
18
18
|
},
|
|
19
19
|
};
|
|
@@ -85,6 +85,28 @@ export const _Variants: StoryObj<typeof Accordion> = {
|
|
|
85
85
|
</AccordionDetails>
|
|
86
86
|
</Accordion>
|
|
87
87
|
</Grid>
|
|
88
|
+
<Grid size={{ xs: 12 }}>
|
|
89
|
+
<Accordion {...args} variant='flush'>
|
|
90
|
+
<AccordionSummary aria-controls="flush-summary-content" id="flush-summary-header" secondary="Secondary">
|
|
91
|
+
Flush
|
|
92
|
+
</AccordionSummary>
|
|
93
|
+
<AccordionDetails>
|
|
94
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
|
|
95
|
+
leo lobortis eget.
|
|
96
|
+
<Box sx={{ mt: 2 }}>
|
|
97
|
+
<Accordion {...args} variant='flush'>
|
|
98
|
+
<AccordionSummary aria-controls="flush-nested-content" id="flush-nested-header">
|
|
99
|
+
Flush Nested Accordion
|
|
100
|
+
</AccordionSummary>
|
|
101
|
+
<AccordionDetails>
|
|
102
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet
|
|
103
|
+
blandit leo lobortis eget.
|
|
104
|
+
</AccordionDetails>
|
|
105
|
+
</Accordion>
|
|
106
|
+
</Box>
|
|
107
|
+
</AccordionDetails>
|
|
108
|
+
</Accordion>
|
|
109
|
+
</Grid>
|
|
88
110
|
</Grid>
|
|
89
111
|
),
|
|
90
112
|
};
|
|
@@ -97,13 +119,13 @@ export const _Variants: StoryObj<typeof Accordion> = {
|
|
|
97
119
|
* this is due to Material's default gutter behavior when expanded along with how they overwrite the behavior when disabling the gutters.
|
|
98
120
|
*/
|
|
99
121
|
export const _Spacing: StoryObj<typeof Accordion> = {
|
|
100
|
-
render: () => (
|
|
122
|
+
render: (args: AccordionProps) => (
|
|
101
123
|
<div>
|
|
102
124
|
<Typography variant="h5" component="h2">
|
|
103
125
|
Grouped
|
|
104
126
|
</Typography>
|
|
105
127
|
<div>
|
|
106
|
-
<Accordion>
|
|
128
|
+
<Accordion {...args}>
|
|
107
129
|
<AccordionSummary aria-controls="grouped-panel1-content" id="grouped-panel1-header">
|
|
108
130
|
Accordion 1
|
|
109
131
|
</AccordionSummary>
|
|
@@ -112,7 +134,7 @@ export const _Spacing: StoryObj<typeof Accordion> = {
|
|
|
112
134
|
leo lobortis eget.
|
|
113
135
|
</AccordionDetails>
|
|
114
136
|
</Accordion>
|
|
115
|
-
<Accordion>
|
|
137
|
+
<Accordion {...args}>
|
|
116
138
|
<AccordionSummary aria-controls="grouped-panel2-content" id="grouped-panel2-header">
|
|
117
139
|
Accordion 2
|
|
118
140
|
</AccordionSummary>
|
|
@@ -121,7 +143,7 @@ export const _Spacing: StoryObj<typeof Accordion> = {
|
|
|
121
143
|
leo lobortis eget.
|
|
122
144
|
</AccordionDetails>
|
|
123
145
|
</Accordion>
|
|
124
|
-
<Accordion>
|
|
146
|
+
<Accordion {...args}>
|
|
125
147
|
<AccordionSummary aria-controls="grouped-panel3-content" id="grouped-panel3-header">
|
|
126
148
|
Accordion 3 with Actions
|
|
127
149
|
</AccordionSummary>
|
|
@@ -140,7 +162,7 @@ export const _Spacing: StoryObj<typeof Accordion> = {
|
|
|
140
162
|
Separated in a Grid
|
|
141
163
|
</Typography>
|
|
142
164
|
<Grid size={{ xs: 12 }}>
|
|
143
|
-
<Accordion>
|
|
165
|
+
<Accordion {...args}>
|
|
144
166
|
<AccordionSummary aria-controls="panel1-content" id="panel1-header">
|
|
145
167
|
Accordion 4
|
|
146
168
|
</AccordionSummary>
|
|
@@ -151,7 +173,7 @@ export const _Spacing: StoryObj<typeof Accordion> = {
|
|
|
151
173
|
</Accordion>
|
|
152
174
|
</Grid>
|
|
153
175
|
<Grid size={{ xs: 12 }}>
|
|
154
|
-
<Accordion>
|
|
176
|
+
<Accordion {...args}>
|
|
155
177
|
<AccordionSummary aria-controls="panel2-content" id="panel2-header">
|
|
156
178
|
Accordion 5
|
|
157
179
|
</AccordionSummary>
|
|
@@ -162,7 +184,7 @@ export const _Spacing: StoryObj<typeof Accordion> = {
|
|
|
162
184
|
</Accordion>
|
|
163
185
|
</Grid>
|
|
164
186
|
<Grid size={{ xs: 12 }}>
|
|
165
|
-
<Accordion>
|
|
187
|
+
<Accordion {...args}>
|
|
166
188
|
<AccordionSummary aria-controls="panel3-content" id="panel3-header">
|
|
167
189
|
Accordion 6 with Actions
|
|
168
190
|
</AccordionSummary>
|
|
@@ -220,6 +242,24 @@ export const _States: StoryObj<typeof Accordion> = {
|
|
|
220
242
|
</AccordionDetails>
|
|
221
243
|
</Accordion>
|
|
222
244
|
</Grid>
|
|
245
|
+
<Grid size={{ xs: 12 }}>
|
|
246
|
+
<Accordion {...args} variant="flush" defaultExpanded>
|
|
247
|
+
<AccordionSummary aria-controls="flushexpanded-content" id="flushexpanded-header">
|
|
248
|
+
Flush Expanded
|
|
249
|
+
</AccordionSummary>
|
|
250
|
+
<AccordionDetails>
|
|
251
|
+
<Accordion>
|
|
252
|
+
<AccordionSummary aria-controls="flushexpanded-nested-content" id="flushexpanded-nested-header">
|
|
253
|
+
Flush Nested Accordion
|
|
254
|
+
</AccordionSummary>
|
|
255
|
+
<AccordionDetails>
|
|
256
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet
|
|
257
|
+
blandit leo lobortis eget.
|
|
258
|
+
</AccordionDetails>
|
|
259
|
+
</Accordion>
|
|
260
|
+
</AccordionDetails>
|
|
261
|
+
</Accordion>
|
|
262
|
+
</Grid>
|
|
223
263
|
<Grid size={{ xs: 12 }}>
|
|
224
264
|
<Accordion {...args}>
|
|
225
265
|
<AccordionSummary aria-controls="focused-content" id="focused-header" className="Mui-focusVisible">
|
package/src/lib/Accordion.tsx
CHANGED
|
@@ -2,9 +2,11 @@ import MuiAccordion, { AccordionProps as MuiAccordionProps } from '@mui/material
|
|
|
2
2
|
import { styled } from '@mui/material/styles';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
|
|
5
|
+
type Variant = 'filled' | 'outlined' | 'flush';
|
|
6
|
+
|
|
5
7
|
export type AccordionProps = {
|
|
6
8
|
/** @default "filled" */
|
|
7
|
-
variant?:
|
|
9
|
+
variant?: Variant
|
|
8
10
|
/**
|
|
9
11
|
* Disable nested styling for child `Accordions`
|
|
10
12
|
* @default false
|
|
@@ -33,19 +35,50 @@ const OutlinedAccordion = styled(MuiAccordion, {
|
|
|
33
35
|
backgroundColor: theme.palette.background.paper,
|
|
34
36
|
},
|
|
35
37
|
'> .MuiCollapse-root > .MuiCollapse-wrapper > .MuiCollapse-wrapperInner > .MuiAccordion-region > .MuiAccordionDetails-root:first-of-type':
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
{
|
|
39
|
+
borderTop: `1px solid ${theme.palette.divider}`,
|
|
40
|
+
},
|
|
41
|
+
}));
|
|
42
|
+
|
|
43
|
+
const FlushAccordion = styled(MuiAccordion, {
|
|
44
|
+
name: 'MuiAccordion',
|
|
45
|
+
slot: 'AvFlush',
|
|
46
|
+
overridesResolver: (props, styles) => styles.avFlush,
|
|
47
|
+
})(({ theme }) => ({
|
|
48
|
+
border: 0,
|
|
49
|
+
borderBottom: `1px solid ${theme.palette.divider}`,
|
|
50
|
+
'&&': {
|
|
51
|
+
borderRadius: 0,
|
|
52
|
+
},
|
|
53
|
+
'&:first-of-type': {
|
|
54
|
+
borderTop: `1px solid ${theme.palette.divider}`,
|
|
55
|
+
},
|
|
56
|
+
'> .MuiAccordion-heading .MuiAccordionSummary-root:not(.Mui-focusVisible, :hover, :active)': {
|
|
57
|
+
backgroundColor: 'transparent'
|
|
58
|
+
},
|
|
59
|
+
'> .MuiAccordion-heading .MuiAccordionSummary-root': {
|
|
60
|
+
padding: 8,
|
|
61
|
+
minHeight: 40,
|
|
62
|
+
},
|
|
63
|
+
'> .MuiAccordion-heading .MuiAccordionSummary-root .MuiAccordionSummary-content': {
|
|
64
|
+
margin: 0
|
|
65
|
+
},
|
|
66
|
+
'& .MuiAccordionDetails-root .MuiAccordion-heading': {
|
|
67
|
+
borderRadius: 4,
|
|
68
|
+
}
|
|
39
69
|
}));
|
|
40
70
|
|
|
71
|
+
const VariantComponent: Record<Variant, typeof FilledAccordion> = {
|
|
72
|
+
filled: FilledAccordion,
|
|
73
|
+
outlined: OutlinedAccordion,
|
|
74
|
+
flush: FlushAccordion
|
|
75
|
+
}
|
|
76
|
+
|
|
41
77
|
export const Accordion = forwardRef<HTMLDivElement, AccordionProps>((allProps, ref) => {
|
|
42
78
|
const { variant = 'filled', disableNestedStyling = false, className, ...props } = allProps;
|
|
79
|
+
const Variant = VariantComponent[variant]
|
|
43
80
|
|
|
44
|
-
const classnames =
|
|
81
|
+
const classnames = `MuiAccordion-av${variant.charAt(0).toUpperCase() + variant.slice(1)}${disableNestedStyling ? ' Av-disableNested' : ''} ${className || ''}`;
|
|
45
82
|
|
|
46
|
-
return
|
|
47
|
-
<FilledAccordion className={classnames} {...props} ref={ref} />
|
|
48
|
-
) : (
|
|
49
|
-
<OutlinedAccordion className={classnames} {...props} ref={ref} />
|
|
50
|
-
);
|
|
83
|
+
return <Variant className={classnames} {...props} ref={ref} />;
|
|
51
84
|
});
|