@xylabs/react-accordion 4.0.3 → 4.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/AccordionGroup.d.ts +25 -0
- package/dist/browser/AccordionGroup.d.ts.map +1 -0
- package/dist/browser/index.d.ts +2 -25
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.mjs +9 -6
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +34 -34
- package/src/AccordionGroup.stories.tsx +1 -5
- package/src/AccordionGroup.tsx +7 -2
- package/xy.config.ts +1 -3
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AccordionProps } from '@mui/material';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
type Override<T1, T2> = Omit<T1, keyof T2> & T2;
|
|
5
|
+
interface SimpleAccordionCardAdditionalProps extends AccordionProps {
|
|
6
|
+
description?: string;
|
|
7
|
+
expanded?: boolean;
|
|
8
|
+
href?: string;
|
|
9
|
+
linkText?: string;
|
|
10
|
+
name: string;
|
|
11
|
+
onChange?: () => void;
|
|
12
|
+
to?: string;
|
|
13
|
+
}
|
|
14
|
+
interface OptionalChildren {
|
|
15
|
+
children?: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
export type SimpleAccordionCardProps = Override<SimpleAccordionCardAdditionalProps, OptionalChildren>;
|
|
18
|
+
interface AccordionGroupProps {
|
|
19
|
+
data?: SimpleAccordionCardProps[];
|
|
20
|
+
defaultExpandedIndex?: number;
|
|
21
|
+
}
|
|
22
|
+
export declare const AccordionGroup: React.FC<AccordionGroupProps>;
|
|
23
|
+
export declare const SimpleAccordion: React.FC<SimpleAccordionCardProps>;
|
|
24
|
+
export {};
|
|
25
|
+
//# sourceMappingURL=AccordionGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccordionGroup.d.ts","sourceRoot":"","sources":["../../src/AccordionGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAKnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,KAAK,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,CAAA;AAE/C,UAAU,kCAAmC,SAAQ,cAAc;IACjE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,MAAM,wBAAwB,GAAG,QAAQ,CAAC,kCAAkC,EAAE,gBAAgB,CAAC,CAAA;AAErG,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,wBAAwB,EAAE,CAAA;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAWxD,CAAA;AACD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA2B9D,CAAA"}
|
package/dist/browser/index.d.ts
CHANGED
|
@@ -1,25 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
type Override<T1, T2> = Omit<T1, keyof T2> & T2;
|
|
5
|
-
interface SimpleAccordionCardAdditionalProps extends AccordionProps {
|
|
6
|
-
description?: string;
|
|
7
|
-
expanded?: boolean;
|
|
8
|
-
href?: string;
|
|
9
|
-
linkText?: string;
|
|
10
|
-
name: string;
|
|
11
|
-
onChange?: () => void;
|
|
12
|
-
to?: string;
|
|
13
|
-
}
|
|
14
|
-
interface OptionalChildren {
|
|
15
|
-
children?: ReactNode;
|
|
16
|
-
}
|
|
17
|
-
type SimpleAccordionCardProps = Override<SimpleAccordionCardAdditionalProps, OptionalChildren>;
|
|
18
|
-
interface AccordionGroupProps {
|
|
19
|
-
data?: SimpleAccordionCardProps[];
|
|
20
|
-
defaultExpandedIndex?: number;
|
|
21
|
-
}
|
|
22
|
-
declare const AccordionGroup: React.FC<AccordionGroupProps>;
|
|
23
|
-
declare const SimpleAccordion: React.FC<SimpleAccordionCardProps>;
|
|
24
|
-
|
|
25
|
-
export { AccordionGroup, SimpleAccordion, type SimpleAccordionCardProps };
|
|
1
|
+
export * from './AccordionGroup.tsx';
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAA"}
|
package/dist/browser/index.mjs
CHANGED
|
@@ -8,12 +8,15 @@ import { ButtonEx } from "@xylabs/react-button";
|
|
|
8
8
|
import React, { useState } from "react";
|
|
9
9
|
var AccordionGroup = /* @__PURE__ */ __name(({ defaultExpandedIndex, data }) => {
|
|
10
10
|
const [expandedIndex, setExpandedIndex] = useState(defaultExpandedIndex ?? 0);
|
|
11
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, data?.map((item, index) =>
|
|
12
|
-
key
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, data?.map((item, index) => (
|
|
12
|
+
// eslint-disable-next-line @eslint-react/no-duplicate-key
|
|
13
|
+
/* @__PURE__ */ React.createElement(SimpleAccordion, {
|
|
14
|
+
key: index,
|
|
15
|
+
...item,
|
|
16
|
+
expanded: index === expandedIndex,
|
|
17
|
+
onChange: /* @__PURE__ */ __name(() => setExpandedIndex(index), "onChange")
|
|
18
|
+
})
|
|
19
|
+
)));
|
|
17
20
|
}, "AccordionGroup");
|
|
18
21
|
var SimpleAccordion = /* @__PURE__ */ __name(({ name, linkText, to, href, description, expanded, onChange, children }) => {
|
|
19
22
|
const theme = useTheme();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/AccordionGroup.tsx"],"sourcesContent":["import { ExpandMoreRounded } from '@mui/icons-material'\nimport type { AccordionProps } from '@mui/material'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/AccordionGroup.tsx"],"sourcesContent":["import { ExpandMoreRounded } from '@mui/icons-material'\nimport type { AccordionProps } from '@mui/material'\nimport {\n Accordion, AccordionDetails, AccordionSummary, Typography, useMediaQuery, useTheme,\n} from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { ReactNode } from 'react'\nimport React, { useState } from 'react'\n\ntype Override<T1, T2> = Omit<T1, keyof T2> & T2\n\ninterface SimpleAccordionCardAdditionalProps extends AccordionProps {\n description?: string\n expanded?: boolean\n href?: string\n linkText?: string\n name: string\n onChange?: () => void\n to?: string\n}\n\ninterface OptionalChildren {\n children?: ReactNode\n}\n// this makes the requirement for children from AccordionProps go away\nexport type SimpleAccordionCardProps = Override<SimpleAccordionCardAdditionalProps, OptionalChildren>\n\ninterface AccordionGroupProps {\n data?: SimpleAccordionCardProps[]\n defaultExpandedIndex?: number\n}\n\nexport const AccordionGroup: React.FC<AccordionGroupProps> = ({ defaultExpandedIndex, data }) => {\n const [expandedIndex, setExpandedIndex] = useState(defaultExpandedIndex ?? 0)\n\n return (\n <>\n {data?.map((item, index) => (\n // eslint-disable-next-line @eslint-react/no-duplicate-key\n <SimpleAccordion key={index} {...item} expanded={index === expandedIndex} onChange={() => setExpandedIndex(index)} />\n ))}\n </>\n )\n}\nexport const SimpleAccordion: React.FC<SimpleAccordionCardProps> = ({\n name, linkText, to, href, description, expanded, onChange, children,\n}) => {\n const theme = useTheme()\n const isMobile = useMediaQuery(theme.breakpoints.down('md'))\n return (\n <Accordion expanded={expanded} onChange={() => onChange?.()}>\n <AccordionSummary expandIcon={<ExpandMoreRounded />} aria-controls=\"panel1bh-content\" id=\"panel1bh-header\">\n <Typography variant=\"h6\" textAlign=\"left\" gutterBottom={isMobile ? true : false}>\n {name}\n </Typography>\n </AccordionSummary>\n <AccordionDetails>\n {description && (\n <Typography variant=\"body1\" fontWeight={400} textAlign=\"left\">\n {description}\n </Typography>\n )}\n {children}\n {(href || to) && (\n <ButtonEx href={href} to={to} target={href ?? '_blank'}>\n {linkText ?? 'Learn More'}\n </ButtonEx>\n )}\n </AccordionDetails>\n </Accordion>\n )\n}\n"],"mappings":";;;;AAAA,SAASA,yBAAyB;AAElC,SACEC,WAAWC,kBAAkBC,kBAAkBC,YAAYC,eAAeC,gBACrE;AACP,SAASC,gBAAgB;AAEzB,OAAOC,SAASC,gBAAgB;AAyBzB,IAAMC,iBAAgD,wBAAC,EAAEC,sBAAsBC,KAAI,MAAE;AAC1F,QAAM,CAACC,eAAeC,gBAAAA,IAAoBC,SAASJ,wBAAwB,CAAA;AAE3E,SACE,sBAAA,cAAA,MAAA,UAAA,MACGC,MAAMI,IAAI,CAACC,MAAMC;;IAEhB,sBAAA,cAACC,iBAAAA;MAAgBC,KAAKF;MAAQ,GAAGD;MAAMI,UAAUH,UAAUL;MAAeS,UAAU,6BAAMR,iBAAiBI,KAAAA,GAAvB;;;AAI5F,GAX6D;AAYtD,IAAMC,kBAAsD,wBAAC,EAClEI,MAAMC,UAAUC,IAAIC,MAAMC,aAAaN,UAAUC,UAAUM,SAAQ,MACpE;AACC,QAAMC,QAAQC,SAAAA;AACd,QAAMC,WAAWC,cAAcH,MAAMI,YAAYC,KAAK,IAAA,CAAA;AACtD,SACE,sBAAA,cAACC,WAAAA;IAAUd;IAAoBC,UAAU,6BAAMA,WAAAA,GAAN;KACvC,sBAAA,cAACc,kBAAAA;IAAiBC,YAAY,sBAAA,cAACC,mBAAAA,IAAAA;IAAsBC,iBAAc;IAAmBC,IAAG;KACvF,sBAAA,cAACC,YAAAA;IAAWC,SAAQ;IAAKC,WAAU;IAAOC,cAAcb,WAAW,OAAO;KACvER,IAAAA,CAAAA,GAGL,sBAAA,cAACsB,kBAAAA,MACElB,eACC,sBAAA,cAACc,YAAAA;IAAWC,SAAQ;IAAQI,YAAY;IAAKH,WAAU;KACpDhB,WAAAA,GAGJC,WACCF,QAAQD,OACR,sBAAA,cAACsB,UAAAA;IAASrB;IAAYD;IAAQuB,QAAQtB,QAAQ;KAC3CF,YAAY,YAAA,CAAA,CAAA;AAMzB,GA3BmE;","names":["ExpandMoreRounded","Accordion","AccordionDetails","AccordionSummary","Typography","useMediaQuery","useTheme","ButtonEx","React","useState","AccordionGroup","defaultExpandedIndex","data","expandedIndex","setExpandedIndex","useState","map","item","index","SimpleAccordion","key","expanded","onChange","name","linkText","to","href","description","children","theme","useTheme","isMobile","useMediaQuery","breakpoints","down","Accordion","AccordionSummary","expandIcon","ExpandMoreRounded","aria-controls","id","Typography","variant","textAlign","gutterBottom","AccordionDetails","fontWeight","ButtonEx","target"]}
|
package/package.json
CHANGED
|
@@ -1,29 +1,52 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xylabs/react-accordion",
|
|
3
|
+
"version": "4.0.4",
|
|
4
|
+
"description": "Common React library for all XY Labs projects that use React",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"utility",
|
|
7
|
+
"typescript",
|
|
8
|
+
"react"
|
|
9
|
+
],
|
|
10
|
+
"homepage": "https://xylabs.com",
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "git+https://github.com/xylabs/sdk-react/issues",
|
|
13
|
+
"email": "support@xylabs.com"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/xylabs/sdk-react.git"
|
|
18
|
+
},
|
|
19
|
+
"license": "LGPL-3.0-only",
|
|
3
20
|
"author": {
|
|
4
|
-
"email": "support@xylabs.com",
|
|
5
21
|
"name": "XY Labs Development Team",
|
|
22
|
+
"email": "support@xylabs.com",
|
|
6
23
|
"url": "https://xylabs.com"
|
|
7
24
|
},
|
|
8
|
-
"
|
|
9
|
-
|
|
10
|
-
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"type": "module",
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/browser/index.d.ts",
|
|
30
|
+
"default": "./dist/browser/index.mjs"
|
|
31
|
+
},
|
|
32
|
+
"./package.json": "./package.json"
|
|
11
33
|
},
|
|
34
|
+
"module": "./dist/browser/index.mjs",
|
|
35
|
+
"types": "dist/browser/index.d.ts",
|
|
12
36
|
"workspaces": [
|
|
13
37
|
"packages/*"
|
|
14
38
|
],
|
|
15
39
|
"dependencies": {
|
|
16
|
-
"@xylabs/react-button": "^4.0.
|
|
40
|
+
"@xylabs/react-button": "^4.0.4"
|
|
17
41
|
},
|
|
18
|
-
"description": "Common React library for all XY Labs projects that use React",
|
|
19
42
|
"devDependencies": {
|
|
20
43
|
"@mui/icons-material": "^5.16.7",
|
|
21
44
|
"@mui/material": "^5.16.7",
|
|
22
45
|
"@storybook/react": "^8.2.9",
|
|
23
|
-
"@types/react": "^18.3.
|
|
24
|
-
"@xylabs/react-flexbox": "^4.0.
|
|
25
|
-
"@xylabs/ts-scripts-yarn3": "^4.0.
|
|
26
|
-
"@xylabs/tsconfig-react": "^4.0.
|
|
46
|
+
"@types/react": "^18.3.4",
|
|
47
|
+
"@xylabs/react-flexbox": "^4.0.4",
|
|
48
|
+
"@xylabs/ts-scripts-yarn3": "^4.0.7",
|
|
49
|
+
"@xylabs/tsconfig-react": "^4.0.7",
|
|
27
50
|
"react": "^18.3.1",
|
|
28
51
|
"react-dom": "^18.3.1",
|
|
29
52
|
"storybook": "^8.2.9",
|
|
@@ -35,31 +58,8 @@
|
|
|
35
58
|
"react": "^18",
|
|
36
59
|
"react-dom": "^18"
|
|
37
60
|
},
|
|
38
|
-
"docs": "dist/docs.json",
|
|
39
|
-
"exports": {
|
|
40
|
-
".": {
|
|
41
|
-
"types": "./dist/browser/index.d.ts",
|
|
42
|
-
"default": "./dist/browser/index.mjs"
|
|
43
|
-
},
|
|
44
|
-
"./package.json": "./package.json"
|
|
45
|
-
},
|
|
46
|
-
"types": "dist/browser/index.d.ts",
|
|
47
|
-
"module": "./dist/browser/index.mjs",
|
|
48
|
-
"homepage": "https://xylabs.com",
|
|
49
|
-
"keywords": [
|
|
50
|
-
"utility",
|
|
51
|
-
"typescript",
|
|
52
|
-
"react"
|
|
53
|
-
],
|
|
54
|
-
"license": "LGPL-3.0-only",
|
|
55
61
|
"publishConfig": {
|
|
56
62
|
"access": "public"
|
|
57
63
|
},
|
|
58
|
-
"
|
|
59
|
-
"type": "git",
|
|
60
|
-
"url": "git+https://github.com/xylabs/sdk-react.git"
|
|
61
|
-
},
|
|
62
|
-
"sideEffects": false,
|
|
63
|
-
"version": "4.0.3",
|
|
64
|
-
"type": "module"
|
|
64
|
+
"docs": "dist/docs.json"
|
|
65
65
|
}
|
|
@@ -8,11 +8,7 @@ import { AccordionGroup } from './AccordionGroup.tsx'
|
|
|
8
8
|
const StorybookEntry: Meta<typeof AccordionGroup> = {
|
|
9
9
|
argTypes: {},
|
|
10
10
|
component: AccordionGroup,
|
|
11
|
-
parameters: {
|
|
12
|
-
docs: {
|
|
13
|
-
page: null,
|
|
14
|
-
},
|
|
15
|
-
},
|
|
11
|
+
parameters: { docs: { page: null } },
|
|
16
12
|
title: 'Components/AccordionGroup',
|
|
17
13
|
} as Meta<typeof AccordionGroup>
|
|
18
14
|
|
package/src/AccordionGroup.tsx
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { ExpandMoreRounded } from '@mui/icons-material'
|
|
2
2
|
import type { AccordionProps } from '@mui/material'
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
Accordion, AccordionDetails, AccordionSummary, Typography, useMediaQuery, useTheme,
|
|
5
|
+
} from '@mui/material'
|
|
4
6
|
import { ButtonEx } from '@xylabs/react-button'
|
|
5
7
|
import type { ReactNode } from 'react'
|
|
6
8
|
import React, { useState } from 'react'
|
|
@@ -34,12 +36,15 @@ export const AccordionGroup: React.FC<AccordionGroupProps> = ({ defaultExpandedI
|
|
|
34
36
|
return (
|
|
35
37
|
<>
|
|
36
38
|
{data?.map((item, index) => (
|
|
39
|
+
// eslint-disable-next-line @eslint-react/no-duplicate-key
|
|
37
40
|
<SimpleAccordion key={index} {...item} expanded={index === expandedIndex} onChange={() => setExpandedIndex(index)} />
|
|
38
41
|
))}
|
|
39
42
|
</>
|
|
40
43
|
)
|
|
41
44
|
}
|
|
42
|
-
export const SimpleAccordion: React.FC<SimpleAccordionCardProps> = ({
|
|
45
|
+
export const SimpleAccordion: React.FC<SimpleAccordionCardProps> = ({
|
|
46
|
+
name, linkText, to, href, description, expanded, onChange, children,
|
|
47
|
+
}) => {
|
|
43
48
|
const theme = useTheme()
|
|
44
49
|
const isMobile = useMediaQuery(theme.breakpoints.down('md'))
|
|
45
50
|
return (
|