@laerdal/life-react-components 1.2.2-dev.14.full → 1.2.2-dev.16.full
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/esm/Accordion/AccordionItem.js +46 -0
- package/dist/esm/Accordion/AccordionItem.js.map +1 -0
- package/dist/esm/Accordion/AccordionMenu.js +35 -0
- package/dist/esm/Accordion/AccordionMenu.js.map +1 -0
- package/dist/esm/Accordion/__tests__/AccordionMenu.test.js +53 -0
- package/dist/esm/Accordion/__tests__/AccordionMenu.test.js.map +1 -0
- package/dist/esm/Accordion/index.js +4 -0
- package/dist/esm/Accordion/index.js.map +1 -0
- package/dist/esm/Accordion/styles.js +59 -0
- package/dist/esm/Accordion/styles.js.map +1 -0
- package/dist/esm/HyperLink/HyperLink.js +20 -17
- package/dist/esm/HyperLink/HyperLink.js.map +1 -1
- package/dist/esm/InputFields/Checkbox.js +27 -16
- package/dist/esm/InputFields/Checkbox.js.map +1 -1
- package/dist/esm/InputFields/RadioButton.js +21 -14
- package/dist/esm/InputFields/RadioButton.js.map +1 -1
- package/dist/esm/Modals/ModalDialog.js +53 -14
- package/dist/esm/Modals/ModalDialog.js.map +1 -1
- package/dist/esm/Modals/ModalStyles.js +14 -1
- package/dist/esm/Modals/ModalStyles.js.map +1 -1
- package/dist/esm/Modals/ModalTypes.js +2 -0
- package/dist/esm/Modals/ModalTypes.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/js/Accordion/AccordionItem.d.ts +9 -0
- package/dist/js/Accordion/AccordionItem.js +58 -0
- package/dist/js/Accordion/AccordionItem.js.map +1 -0
- package/dist/js/Accordion/AccordionMenu.d.ts +15 -0
- package/dist/js/Accordion/AccordionMenu.js +55 -0
- package/dist/js/Accordion/AccordionMenu.js.map +1 -0
- package/dist/js/Accordion/__tests__/AccordionMenu.test.js +101 -0
- package/dist/js/Accordion/__tests__/AccordionMenu.test.js.map +1 -0
- package/dist/js/Accordion/index.d.ts +3 -0
- package/dist/js/Accordion/index.js +30 -0
- package/dist/js/Accordion/index.js.map +1 -0
- package/dist/js/Accordion/styles.d.ts +10 -0
- package/dist/js/Accordion/styles.js +50 -0
- package/dist/js/Accordion/styles.js.map +1 -0
- package/dist/js/HyperLink/HyperLink.d.ts +2 -2
- package/dist/js/HyperLink/HyperLink.js +19 -15
- package/dist/js/HyperLink/HyperLink.js.map +1 -1
- package/dist/js/InputFields/Checkbox.js +9 -5
- package/dist/js/InputFields/Checkbox.js.map +1 -1
- package/dist/js/InputFields/RadioButton.js +3 -3
- package/dist/js/InputFields/RadioButton.js.map +1 -1
- package/dist/js/Modals/ModalDialog.d.ts +2 -6
- package/dist/js/Modals/ModalDialog.js +54 -16
- package/dist/js/Modals/ModalDialog.js.map +1 -1
- package/dist/js/Modals/ModalStyles.js +7 -3
- package/dist/js/Modals/ModalStyles.js.map +1 -1
- package/dist/js/Modals/ModalTypes.d.ts +18 -0
- package/dist/js/Modals/ModalTypes.js +6 -0
- package/dist/js/Modals/ModalTypes.js.map +1 -0
- package/dist/js/index.d.ts +1 -0
- package/dist/js/index.js +13 -0
- package/dist/js/index.js.map +1 -1
- package/dist/umd/Accordion/AccordionItem.js +70 -0
- package/dist/umd/Accordion/AccordionItem.js.map +1 -0
- package/dist/umd/Accordion/AccordionMenu.js +112 -0
- package/dist/umd/Accordion/AccordionMenu.js.map +1 -0
- package/dist/umd/Accordion/__tests__/AccordionMenu.test.js +74 -0
- package/dist/umd/Accordion/__tests__/AccordionMenu.test.js.map +1 -0
- package/dist/umd/Accordion/index.js +44 -0
- package/dist/umd/Accordion/index.js.map +1 -0
- package/dist/umd/Accordion/styles.js +85 -0
- package/dist/umd/Accordion/styles.js.map +1 -0
- package/dist/umd/HyperLink/HyperLink.js +68 -17
- package/dist/umd/HyperLink/HyperLink.js.map +1 -1
- package/dist/umd/InputFields/Checkbox.js +27 -16
- package/dist/umd/InputFields/Checkbox.js.map +1 -1
- package/dist/umd/InputFields/RadioButton.js +21 -14
- package/dist/umd/InputFields/RadioButton.js.map +1 -1
- package/dist/umd/Modals/ModalDialog.js +56 -18
- package/dist/umd/Modals/ModalDialog.js.map +1 -1
- package/dist/umd/Modals/ModalStyles.js +14 -1
- package/dist/umd/Modals/ModalStyles.js.map +1 -1
- package/dist/umd/Modals/ModalTypes.js +20 -0
- package/dist/umd/Modals/ModalTypes.js.map +1 -0
- package/dist/umd/index.js +13 -4
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import _pt from "prop-types";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { COLORS, ComponentM, ComponentS } from '..';
|
|
4
|
+
import { SystemIcons } from '../icons';
|
|
5
|
+
import { AccordionItemContainer, ItemBodyContainer, ItemHeaderContainer } from './styles';
|
|
6
|
+
|
|
7
|
+
const AccordionItem = props => {
|
|
8
|
+
const {
|
|
9
|
+
id,
|
|
10
|
+
onSelect,
|
|
11
|
+
isActive,
|
|
12
|
+
title,
|
|
13
|
+
icon,
|
|
14
|
+
disabled,
|
|
15
|
+
isLast
|
|
16
|
+
} = props;
|
|
17
|
+
return /*#__PURE__*/React.createElement(AccordionItemContainer, {
|
|
18
|
+
id: id,
|
|
19
|
+
displaySeparator: !isActive && !isLast,
|
|
20
|
+
isDisabled: disabled ?? false
|
|
21
|
+
}, /*#__PURE__*/React.createElement(ItemHeaderContainer, {
|
|
22
|
+
tabIndex: !disabled ? 0 : -1,
|
|
23
|
+
onClick: () => {
|
|
24
|
+
if (!disabled) {
|
|
25
|
+
onSelect(id);
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
isDisabled: disabled ?? false
|
|
29
|
+
}, icon && /*#__PURE__*/React.cloneElement(icon, {
|
|
30
|
+
size: '24px'
|
|
31
|
+
}), /*#__PURE__*/React.createElement(ComponentM, {
|
|
32
|
+
color: disabled ? COLORS.neutral_300 : undefined
|
|
33
|
+
}, title), isActive ? /*#__PURE__*/React.createElement(SystemIcons.ChevronUp, {
|
|
34
|
+
size: "24px"
|
|
35
|
+
}) : /*#__PURE__*/React.createElement(SystemIcons.ChevronDown, {
|
|
36
|
+
size: "24px"
|
|
37
|
+
})), isActive && /*#__PURE__*/React.createElement(ItemBodyContainer, null, /*#__PURE__*/React.createElement(ComponentS, null, props.children)));
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
AccordionItem.propTypes = {
|
|
41
|
+
onSelect: _pt.func.isRequired,
|
|
42
|
+
isActive: _pt.bool.isRequired,
|
|
43
|
+
isLast: _pt.bool.isRequired
|
|
44
|
+
};
|
|
45
|
+
export default AccordionItem;
|
|
46
|
+
//# sourceMappingURL=AccordionItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Accordion/AccordionItem.tsx"],"names":["React","COLORS","ComponentM","ComponentS","SystemIcons","AccordionItemContainer","ItemBodyContainer","ItemHeaderContainer","AccordionItem","props","id","onSelect","isActive","title","icon","disabled","isLast","cloneElement","size","neutral_300","undefined","children"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,MAAT,EAAiBC,UAAjB,EAA6BC,UAA7B,QAA+C,IAA/C;AACA,SAASC,WAAT,QAA4B,UAA5B;AAEA,SAASC,sBAAT,EAAsDC,iBAAtD,EAAyEC,mBAAzE,QAAoG,UAApG;;AAQA,MAAMC,aAA+D,GAAIC,KAAD,IAAoC;AAC1G,QAAM;AAAEC,IAAAA,EAAF;AAAMC,IAAAA,QAAN;AAAgBC,IAAAA,QAAhB;AAA0BC,IAAAA,KAA1B;AAAiCC,IAAAA,IAAjC;AAAuCC,IAAAA,QAAvC;AAAiDC,IAAAA;AAAjD,MAA4DP,KAAlE;AACA,sBACE,oBAAC,sBAAD;AAAwB,IAAA,EAAE,EAAEC,EAA5B;AAAgC,IAAA,gBAAgB,EAAE,CAACE,QAAD,IAAa,CAACI,MAAhE;AAAwE,IAAA,UAAU,EAAED,QAAQ,IAAI;AAAhG,kBACE,oBAAC,mBAAD;AACE,IAAA,QAAQ,EAAE,CAACA,QAAD,GAAY,CAAZ,GAAgB,CAAC,CAD7B;AAEE,IAAA,OAAO,EAAE,MAAM;AACb,UAAI,CAACA,QAAL,EAAe;AACbJ,QAAAA,QAAQ,CAACD,EAAD,CAAR;AACD;AACF,KANH;AAOE,IAAA,UAAU,EAAEK,QAAQ,IAAI;AAP1B,KAQGD,IAAI,iBAAId,KAAK,CAACiB,YAAN,CAAmBH,IAAnB,EAA+C;AAAEI,IAAAA,IAAI,EAAE;AAAR,GAA/C,CARX,eASE,oBAAC,UAAD;AAAY,IAAA,KAAK,EAAEH,QAAQ,GAAGd,MAAM,CAACkB,WAAV,GAAwBC;AAAnD,KAA+DP,KAA/D,CATF,EAUGD,QAAQ,gBAAG,oBAAC,WAAD,CAAa,SAAb;AAAuB,IAAA,IAAI,EAAC;AAA5B,IAAH,gBAA2C,oBAAC,WAAD,CAAa,WAAb;AAAyB,IAAA,IAAI,EAAC;AAA9B,IAVtD,CADF,EAaGA,QAAQ,iBACP,oBAAC,iBAAD,qBACE,oBAAC,UAAD,QAAaH,KAAK,CAACY,QAAnB,CADF,CAdJ,CADF;AAqBD,CAvBD;;;AALEV,EAAAA,Q;AACAC,EAAAA,Q;AACAI,EAAAA,M;;AA4BF,eAAeR,aAAf","sourcesContent":["import React from 'react';\nimport { COLORS, ComponentM, ComponentS } from '..';\nimport { SystemIcons } from '../icons';\nimport { AccordionItemProps } from './AccordionMenu';\nimport { AccordionItemContainer, HeaderIconContainer, ItemBodyContainer, ItemHeaderContainer } from './styles';\n\ninterface AccordionItemPropsInner extends AccordionItemProps {\n onSelect: (id: string) => void;\n isActive: boolean;\n isLast: boolean;\n}\n\nconst AccordionItem: React.FunctionComponent<AccordionItemPropsInner> = (props: AccordionItemPropsInner) => {\n const { id, onSelect, isActive, title, icon, disabled, isLast } = props;\n return (\n <AccordionItemContainer id={id} displaySeparator={!isActive && !isLast} isDisabled={disabled ?? false}>\n <ItemHeaderContainer\n tabIndex={!disabled ? 0 : -1}\n onClick={() => {\n if (!disabled) {\n onSelect(id);\n }\n }}\n isDisabled={disabled ?? false}>\n {icon && React.cloneElement(icon as React.ReactElement, { size: '24px' })}\n <ComponentM color={disabled ? COLORS.neutral_300 : undefined}>{title}</ComponentM>\n {isActive ? <SystemIcons.ChevronUp size=\"24px\" /> : <SystemIcons.ChevronDown size=\"24px\" />}\n </ItemHeaderContainer>\n {isActive && (\n <ItemBodyContainer>\n <ComponentS>{props.children}</ComponentS>\n </ItemBodyContainer>\n )}\n </AccordionItemContainer>\n );\n};\n\nexport default AccordionItem;\n"],"file":"AccordionItem.js"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import _pt from "prop-types";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import AccordionItem from './AccordionItem';
|
|
4
|
+
import { AccordionMenuWrapper } from './styles';
|
|
5
|
+
|
|
6
|
+
const AccordionMenu = ({
|
|
7
|
+
items,
|
|
8
|
+
selectedItemId,
|
|
9
|
+
onSelect
|
|
10
|
+
}) => {
|
|
11
|
+
return /*#__PURE__*/React.createElement(AccordionMenuWrapper, null, items.map(item => /*#__PURE__*/React.createElement(AccordionItem, {
|
|
12
|
+
key: item.id,
|
|
13
|
+
disabled: item.disabled,
|
|
14
|
+
id: item.id,
|
|
15
|
+
title: item.title,
|
|
16
|
+
icon: item.icon,
|
|
17
|
+
isActive: item.id === selectedItemId,
|
|
18
|
+
isLast: items.indexOf(item) === items.length - 1,
|
|
19
|
+
onSelect: onSelect
|
|
20
|
+
}, item.children)));
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
AccordionMenu.propTypes = {
|
|
24
|
+
items: _pt.arrayOf(_pt.shape({
|
|
25
|
+
id: _pt.string.isRequired,
|
|
26
|
+
disabled: _pt.bool,
|
|
27
|
+
title: _pt.string.isRequired,
|
|
28
|
+
icon: _pt.node,
|
|
29
|
+
children: _pt.node.isRequired
|
|
30
|
+
})).isRequired,
|
|
31
|
+
selectedItemId: _pt.string,
|
|
32
|
+
onSelect: _pt.func.isRequired
|
|
33
|
+
};
|
|
34
|
+
export default AccordionMenu;
|
|
35
|
+
//# sourceMappingURL=AccordionMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Accordion/AccordionMenu.tsx"],"names":["React","AccordionItem","AccordionMenuWrapper","AccordionMenu","items","selectedItemId","onSelect","map","item","id","disabled","title","icon","indexOf","length","children"],"mappings":";AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,aAAP,MAA0B,iBAA1B;AACA,SAASC,oBAAT,QAAqC,UAArC;;AAgBA,MAAMC,aAAsD,GAAG,CAAC;AAAEC,EAAAA,KAAF;AAASC,EAAAA,cAAT;AAAyBC,EAAAA;AAAzB,CAAD,KAAyD;AACtH,sBACE,oBAAC,oBAAD,QACGF,KAAK,CAACG,GAAN,CAAWC,IAAD,iBACT,oBAAC,aAAD;AACE,IAAA,GAAG,EAAEA,IAAI,CAACC,EADZ;AAEE,IAAA,QAAQ,EAAED,IAAI,CAACE,QAFjB;AAGE,IAAA,EAAE,EAAEF,IAAI,CAACC,EAHX;AAIE,IAAA,KAAK,EAAED,IAAI,CAACG,KAJd;AAKE,IAAA,IAAI,EAAEH,IAAI,CAACI,IALb;AAME,IAAA,QAAQ,EAAEJ,IAAI,CAACC,EAAL,KAAYJ,cANxB;AAOE,IAAA,MAAM,EAAED,KAAK,CAACS,OAAN,CAAcL,IAAd,MAAwBJ,KAAK,CAACU,MAAN,GAAe,CAPjD;AAQE,IAAA,QAAQ,EAAER;AARZ,KASGE,IAAI,CAACO,QATR,CADD,CADH,CADF;AAiBD,CAlBD;;;AAbEX,EAAAA,K;AAMAK,IAAAA,E;AACAC,IAAAA,Q;AACAC,IAAAA,K;AACAC,IAAAA,I;AACAG,IAAAA,Q;;AATAV,EAAAA,c;AACAC,EAAAA,Q;;AA+BF,eAAeH,aAAf","sourcesContent":["import * as React from 'react';\nimport AccordionItem from './AccordionItem';\nimport { AccordionMenuWrapper } from './styles';\n\nexport interface AccordionProps {\n items: AccordionItemProps[];\n selectedItemId?: string;\n onSelect: (id: string) => void;\n}\n\nexport interface AccordionItemProps {\n id: string;\n disabled?: boolean;\n title: string;\n icon?: React.ReactNode;\n children: React.ReactNode;\n}\n\nconst AccordionMenu: React.FunctionComponent<AccordionProps> = ({ items, selectedItemId, onSelect }: AccordionProps) => {\n return (\n <AccordionMenuWrapper>\n {items.map((item) => (\n <AccordionItem\n key={item.id}\n disabled={item.disabled}\n id={item.id}\n title={item.title}\n icon={item.icon}\n isActive={item.id === selectedItemId}\n isLast={items.indexOf(item) === items.length - 1}\n onSelect={onSelect}>\n {item.children}\n </AccordionItem>\n ))}\n </AccordionMenuWrapper>\n );\n};\n\nexport default AccordionMenu;\n"],"file":"AccordionMenu.js"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render } from '@testing-library/react';
|
|
3
|
+
import 'jest-styled-components';
|
|
4
|
+
import { COLORS } from '../../styles';
|
|
5
|
+
import AccordionMenu from '../AccordionMenu';
|
|
6
|
+
const accordionItems = [{
|
|
7
|
+
id: 'test1_id',
|
|
8
|
+
title: 'Item label with text 1',
|
|
9
|
+
children: /*#__PURE__*/React.createElement("div", null, "content test1")
|
|
10
|
+
}, {
|
|
11
|
+
id: 'test2_id',
|
|
12
|
+
title: 'Item label with text 2',
|
|
13
|
+
children: /*#__PURE__*/React.createElement("div", null, "content test2")
|
|
14
|
+
}];
|
|
15
|
+
describe('<AccordionMenu />', () => {
|
|
16
|
+
it('Check correct text placed on labels', async () => {
|
|
17
|
+
const {
|
|
18
|
+
queryByText
|
|
19
|
+
} = render( /*#__PURE__*/React.createElement(AccordionMenu, {
|
|
20
|
+
items: accordionItems,
|
|
21
|
+
onSelect: () => {}
|
|
22
|
+
}));
|
|
23
|
+
expect(queryByText('Item label with text 1')).toBeDefined();
|
|
24
|
+
expect(queryByText('Item label with text 2')).toBeDefined();
|
|
25
|
+
expect(queryByText('content test1')).toBeNull();
|
|
26
|
+
});
|
|
27
|
+
it('Check item label element color and label', async () => {
|
|
28
|
+
const {
|
|
29
|
+
container
|
|
30
|
+
} = render( /*#__PURE__*/React.createElement(AccordionMenu, {
|
|
31
|
+
items: accordionItems,
|
|
32
|
+
onSelect: () => {}
|
|
33
|
+
}));
|
|
34
|
+
const headerItem = container.querySelector('#test2_id');
|
|
35
|
+
expect(headerItem).toBeDefined();
|
|
36
|
+
expect(headerItem?.children[0]).toHaveStyleRule('background', COLORS.neutral_20);
|
|
37
|
+
expect(headerItem?.textContent).toContain('Item label with text 2');
|
|
38
|
+
});
|
|
39
|
+
it('Check expanded item text', async () => {
|
|
40
|
+
const {
|
|
41
|
+
container
|
|
42
|
+
} = render( /*#__PURE__*/React.createElement(AccordionMenu, {
|
|
43
|
+
items: accordionItems,
|
|
44
|
+
onSelect: () => {},
|
|
45
|
+
selectedItemId: 'test1_id'
|
|
46
|
+
}));
|
|
47
|
+
const headerItem = container.querySelector('#test1_id'); //check item expanded
|
|
48
|
+
|
|
49
|
+
expect(headerItem?.children[1]).toBeDefined();
|
|
50
|
+
expect(headerItem?.children[1]?.textContent).toContain('content test1');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=AccordionMenu.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/Accordion/__tests__/AccordionMenu.test.tsx"],"names":["React","render","COLORS","AccordionMenu","accordionItems","id","title","children","describe","it","queryByText","expect","toBeDefined","toBeNull","container","headerItem","querySelector","toHaveStyleRule","neutral_20","textContent","toContain"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,MAAT,QAAuB,wBAAvB;AACA,OAAO,wBAAP;AACA,SAASC,MAAT,QAAuB,cAAvB;AACA,OAAOC,aAAP,MAA0B,kBAA1B;AAEA,MAAMC,cAAc,GAAG,CACrB;AACEC,EAAAA,EAAE,EAAE,UADN;AAEEC,EAAAA,KAAK,EAAE,wBAFT;AAGEC,EAAAA,QAAQ,eAAE;AAHZ,CADqB,EAMrB;AACEF,EAAAA,EAAE,EAAE,UADN;AAEEC,EAAAA,KAAK,EAAE,wBAFT;AAGEC,EAAAA,QAAQ,eAAE;AAHZ,CANqB,CAAvB;AAaAC,QAAQ,CAAC,mBAAD,EAAsB,MAAM;AAClCC,EAAAA,EAAE,CAAC,qCAAD,EAAwC,YAAY;AACpD,UAAM;AAAEC,MAAAA;AAAF,QAAkBT,MAAM,eAAC,oBAAC,aAAD;AAAe,MAAA,KAAK,EAAEG,cAAtB;AAAsC,MAAA,QAAQ,EAAE,MAAM,CAAE;AAAxD,MAAD,CAA9B;AACAO,IAAAA,MAAM,CAACD,WAAW,CAAC,wBAAD,CAAZ,CAAN,CAA8CE,WAA9C;AACAD,IAAAA,MAAM,CAACD,WAAW,CAAC,wBAAD,CAAZ,CAAN,CAA8CE,WAA9C;AACAD,IAAAA,MAAM,CAACD,WAAW,CAAC,eAAD,CAAZ,CAAN,CAAqCG,QAArC;AACD,GALC,CAAF;AAOAJ,EAAAA,EAAE,CAAC,0CAAD,EAA6C,YAAY;AACzD,UAAM;AAAEK,MAAAA;AAAF,QAAgBb,MAAM,eAAC,oBAAC,aAAD;AAAe,MAAA,KAAK,EAAEG,cAAtB;AAAsC,MAAA,QAAQ,EAAE,MAAM,CAAE;AAAxD,MAAD,CAA5B;AACA,UAAMW,UAAU,GAAGD,SAAS,CAACE,aAAV,CAAwB,WAAxB,CAAnB;AACAL,IAAAA,MAAM,CAACI,UAAD,CAAN,CAAmBH,WAAnB;AACAD,IAAAA,MAAM,CAACI,UAAU,EAAER,QAAZ,CAAqB,CAArB,CAAD,CAAN,CAAgCU,eAAhC,CAAgD,YAAhD,EAA8Df,MAAM,CAACgB,UAArE;AACAP,IAAAA,MAAM,CAACI,UAAU,EAAEI,WAAb,CAAN,CAAgCC,SAAhC,CAA0C,wBAA1C;AACD,GANC,CAAF;AAQAX,EAAAA,EAAE,CAAC,0BAAD,EAA6B,YAAY;AACzC,UAAM;AAAEK,MAAAA;AAAF,QAAgBb,MAAM,eAAC,oBAAC,aAAD;AAAe,MAAA,KAAK,EAAEG,cAAtB;AAAsC,MAAA,QAAQ,EAAE,MAAM,CAAE,CAAxD;AAA0D,MAAA,cAAc,EAAE;AAA1E,MAAD,CAA5B;AACA,UAAMW,UAAU,GAAGD,SAAS,CAACE,aAAV,CAAwB,WAAxB,CAAnB,CAFyC,CAGzC;;AACAL,IAAAA,MAAM,CAACI,UAAU,EAAER,QAAZ,CAAqB,CAArB,CAAD,CAAN,CAAgCK,WAAhC;AACAD,IAAAA,MAAM,CAACI,UAAU,EAAER,QAAZ,CAAqB,CAArB,GAAyBY,WAA1B,CAAN,CAA6CC,SAA7C,CAAuD,eAAvD;AACD,GANC,CAAF;AAOD,CAvBO,CAAR","sourcesContent":["import React from 'react';\nimport { render } from '@testing-library/react';\nimport 'jest-styled-components';\nimport { COLORS } from '../../styles';\nimport AccordionMenu from '../AccordionMenu';\n\nconst accordionItems = [\n {\n id: 'test1_id',\n title: 'Item label with text 1',\n children: <div>content test1</div>,\n },\n {\n id: 'test2_id',\n title: 'Item label with text 2',\n children: <div>content test2</div>,\n },\n];\n\ndescribe('<AccordionMenu />', () => {\n it('Check correct text placed on labels', async () => {\n const { queryByText } = render(<AccordionMenu items={accordionItems} onSelect={() => {}}></AccordionMenu>);\n expect(queryByText('Item label with text 1')).toBeDefined();\n expect(queryByText('Item label with text 2')).toBeDefined();\n expect(queryByText('content test1')).toBeNull();\n });\n\n it('Check item label element color and label', async () => {\n const { container } = render(<AccordionMenu items={accordionItems} onSelect={() => {}}></AccordionMenu>);\n const headerItem = container.querySelector('#test2_id');\n expect(headerItem).toBeDefined();\n expect(headerItem?.children[0]).toHaveStyleRule('background', COLORS.neutral_20);\n expect(headerItem?.textContent).toContain('Item label with text 2');\n });\n\n it('Check expanded item text', async () => {\n const { container } = render(<AccordionMenu items={accordionItems} onSelect={() => {}} selectedItemId={'test1_id'}></AccordionMenu>);\n const headerItem = container.querySelector('#test1_id');\n //check item expanded\n expect(headerItem?.children[1]).toBeDefined();\n expect(headerItem?.children[1]?.textContent).toContain('content test1');\n });\n});\n"],"file":"AccordionMenu.test.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Accordion/index.ts"],"names":["default","AccordionMenu","AccordionMenuItem","AccordionMenuWrapper"],"mappings":"AAAA,SAASA,OAAO,IAAIC,aAApB,QAAyC,iBAAzC;AACA,SAASD,OAAO,IAAIE,iBAApB,QAA6C,iBAA7C;AACA,SAASC,oBAAT,QAAqC,UAArC","sourcesContent":["export { default as AccordionMenu } from './AccordionMenu';\nexport { default as AccordionMenuItem } from './AccordionMenu';\nexport { AccordionMenuWrapper } from './styles';\n"],"file":"index.js"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import styled, { css } from 'styled-components';
|
|
2
|
+
import { COLORS } from '../styles';
|
|
3
|
+
import { Z_INDEXES } from '../styles/z-indexes';
|
|
4
|
+
export const AccordionMenuWrapper = styled.div`
|
|
5
|
+
min-width: 320px;
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
box-sizing: border-box;
|
|
9
|
+
`;
|
|
10
|
+
export const AccordionItemContainer = styled.div`
|
|
11
|
+
width: 100%;
|
|
12
|
+
display: flex;
|
|
13
|
+
flex-direction: column;
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
border-bottom: ${props => props.displaySeparator ? `1px solid ${COLORS.neutral_100}` : ''};
|
|
16
|
+
cursor: ${props => props.isDisabled ? 'not-allowed' : 'pointer'};
|
|
17
|
+
`;
|
|
18
|
+
const disabledState = css`
|
|
19
|
+
background: ${COLORS.white}!important;
|
|
20
|
+
color: ${COLORS.neutral_300};
|
|
21
|
+
pointer-events: none;
|
|
22
|
+
svg {
|
|
23
|
+
color: ${COLORS.neutral_300}!important;
|
|
24
|
+
}
|
|
25
|
+
`;
|
|
26
|
+
export const ItemHeaderContainer = styled.div`
|
|
27
|
+
position: relative;
|
|
28
|
+
display: flex;
|
|
29
|
+
align-items: center;
|
|
30
|
+
gap: 8px;
|
|
31
|
+
padding: 12px 16px 11px 16px;
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
background: ${COLORS.neutral_20};
|
|
34
|
+
svg:last-child {
|
|
35
|
+
margin-left: auto;
|
|
36
|
+
}
|
|
37
|
+
:focus {
|
|
38
|
+
outline: none;
|
|
39
|
+
z-index: ${Z_INDEXES.focus};
|
|
40
|
+
box-shadow: 0px 4px 12px ${COLORS.primary_500}, 0px 0px 8px ${COLORS.primary_500};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
${props => props.isDisabled ? disabledState : ''}
|
|
44
|
+
:hover {
|
|
45
|
+
background: ${COLORS.primary_20};
|
|
46
|
+
}
|
|
47
|
+
:active {
|
|
48
|
+
background: ${COLORS.primary_100};
|
|
49
|
+
}
|
|
50
|
+
`;
|
|
51
|
+
export const HeaderIconContainer = styled.div`
|
|
52
|
+
margin-left: auto;
|
|
53
|
+
`;
|
|
54
|
+
export const ItemBodyContainer = styled.div`
|
|
55
|
+
padding: 0px 24px;
|
|
56
|
+
margin: 12px 0;
|
|
57
|
+
background: ${COLORS.white};
|
|
58
|
+
`;
|
|
59
|
+
//# sourceMappingURL=styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Accordion/styles.ts"],"names":["styled","css","COLORS","Z_INDEXES","AccordionMenuWrapper","div","AccordionItemContainer","props","displaySeparator","neutral_100","isDisabled","disabledState","white","neutral_300","ItemHeaderContainer","neutral_20","focus","primary_500","primary_20","primary_100","HeaderIconContainer","ItemBodyContainer"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AACA,SAASC,MAAT,QAAuB,WAAvB;AACA,SAASC,SAAT,QAA0B,qBAA1B;AAEA,OAAO,MAAMC,oBAAoB,GAAGJ,MAAM,CAACK,GAAI;AAC/C;AACA;AACA;AACA;AACA,CALO;AAOP,OAAO,MAAMC,sBAAsB,GAAGN,MAAM,CAACK,GAAwD;AACrG;AACA;AACA;AACA;AACA,mBAAoBE,KAAD,IAAYA,KAAK,CAACC,gBAAN,GAA0B,aAAYN,MAAM,CAACO,WAAY,EAAzD,GAA6D,EAAI;AAChG,YAAaF,KAAD,IAAYA,KAAK,CAACG,UAAN,GAAmB,aAAnB,GAAmC,SAAW;AACtE,CAPO;AASP,MAAMC,aAAa,GAAGV,GAAI;AAC1B,gBAAgBC,MAAM,CAACU,KAAM;AAC7B,WAAWV,MAAM,CAACW,WAAY;AAC9B;AACA;AACA,aAAaX,MAAM,CAACW,WAAY;AAChC;AACA,CAPA;AASA,OAAO,MAAMC,mBAAmB,GAAGd,MAAM,CAACK,GAA6B;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgBH,MAAM,CAACa,UAAW;AAClC;AACA;AACA;AACA;AACA;AACA,eAAeZ,SAAS,CAACa,KAAM;AAC/B,+BAA+Bd,MAAM,CAACe,WAAY,iBAAgBf,MAAM,CAACe,WAAY;AACrF;AACA;AACA,IAAKV,KAAD,IAAYA,KAAK,CAACG,UAAN,GAAmBC,aAAnB,GAAmC,EAAI;AACvD;AACA,kBAAkBT,MAAM,CAACgB,UAAW;AACpC;AACA;AACA,kBAAkBhB,MAAM,CAACiB,WAAY;AACrC;AACA,CAxBO;AA0BP,OAAO,MAAMC,mBAAmB,GAAGpB,MAAM,CAACK,GAAI;AAC9C;AACA,CAFO;AAIP,OAAO,MAAMgB,iBAAiB,GAAGrB,MAAM,CAACK,GAAI;AAC5C;AACA;AACA,gBAAgBH,MAAM,CAACU,KAAM;AAC7B,CAJO","sourcesContent":["import styled, { css } from 'styled-components';\nimport { COLORS } from '../styles';\nimport { Z_INDEXES } from '../styles/z-indexes';\n\nexport const AccordionMenuWrapper = styled.div`\n min-width: 320px;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n`;\n\nexport const AccordionItemContainer = styled.div<{ displaySeparator: boolean; isDisabled: boolean }>`\n width: 100%;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n border-bottom: ${(props) => (props.displaySeparator ? `1px solid ${COLORS.neutral_100}` : '')};\n cursor: ${(props) => (props.isDisabled ? 'not-allowed' : 'pointer')};\n`;\n\nconst disabledState = css`\n background: ${COLORS.white}!important;\n color: ${COLORS.neutral_300};\n pointer-events: none;\n svg {\n color: ${COLORS.neutral_300}!important;\n }\n`;\n\nexport const ItemHeaderContainer = styled.div<{ isDisabled: boolean }>`\n position: relative;\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 12px 16px 11px 16px;\n cursor: pointer;\n background: ${COLORS.neutral_20};\n svg:last-child {\n margin-left: auto;\n }\n :focus {\n outline: none;\n z-index: ${Z_INDEXES.focus};\n box-shadow: 0px 4px 12px ${COLORS.primary_500}, 0px 0px 8px ${COLORS.primary_500};\n }\n\n ${(props) => (props.isDisabled ? disabledState : '')}\n :hover {\n background: ${COLORS.primary_20};\n }\n :active {\n background: ${COLORS.primary_100};\n }\n`;\n\nexport const HeaderIconContainer = styled.div`\n margin-left: auto;\n`;\n\nexport const ItemBodyContainer = styled.div`\n padding: 0px 24px;\n margin: 12px 0;\n background: ${COLORS.white};\n`;\n"],"file":"styles.js"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
import _pt from "prop-types";
|
|
2
|
+
const _excluded = ["children", "target", "variant"];
|
|
3
|
+
|
|
4
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
5
|
+
|
|
6
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
7
|
+
|
|
8
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
9
|
+
|
|
2
10
|
import * as React from 'react';
|
|
3
11
|
import styled from 'styled-components';
|
|
4
12
|
import { defaultStyle, invertedStyle } from './styling';
|
|
@@ -7,24 +15,19 @@ const StyledLink = styled.a`
|
|
|
7
15
|
${props => props.margin ? `margin: ${props.margin};` : ''}
|
|
8
16
|
`;
|
|
9
17
|
|
|
10
|
-
const HyperLink =
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
return /*#__PURE__*/React.createElement(StyledLink, {
|
|
20
|
-
id: id,
|
|
21
|
-
className: className,
|
|
18
|
+
const HyperLink = _ref => {
|
|
19
|
+
let {
|
|
20
|
+
children,
|
|
21
|
+
target = '_blank',
|
|
22
|
+
variant = 'default'
|
|
23
|
+
} = _ref,
|
|
24
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
25
|
+
|
|
26
|
+
return /*#__PURE__*/React.createElement(StyledLink, _extends({}, props, {
|
|
22
27
|
variant: variant,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
margin: margin
|
|
27
|
-
}, children);
|
|
28
|
+
target: target,
|
|
29
|
+
rel: "noopener noreferrer"
|
|
30
|
+
}), children);
|
|
28
31
|
};
|
|
29
32
|
|
|
30
33
|
HyperLink.propTypes = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/HyperLink/HyperLink.tsx"],"names":["React","styled","defaultStyle","invertedStyle","StyledLink","a","props","variant","margin","HyperLink","
|
|
1
|
+
{"version":3,"sources":["../../../src/HyperLink/HyperLink.tsx"],"names":["React","styled","defaultStyle","invertedStyle","StyledLink","a","props","variant","margin","HyperLink","children","target","id","href","disabled","className"],"mappings":";;;;;;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,SAASC,YAAT,EAAuBC,aAAvB,QAA4C,WAA5C;AAEA,MAAMC,UAAU,GAAGH,MAAM,CAACI,CAGvB;AACH,IAAKC,KAAD,IAAYA,KAAK,CAACC,OAAN,KAAkB,UAAlB,GAA+BJ,aAA/B,GAA+CD,YAAc;AAC7E,IAAKI,KAAD,IAAYA,KAAK,CAACE,MAAN,GAAgB,WAAUF,KAAK,CAACE,MAAO,GAAvC,GAA4C,EAAI;AAChE,CANA;;AAkBA,MAAMC,SAAkD,GAAG,QAAoF;AAAA,MAAnF;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,MAAM,GAAG,QAArB;AAA+BJ,IAAAA,OAAO,GAAG;AAAzC,GAAmF;AAAA,MAA5BD,KAA4B;;AAC7I,sBACE,oBAAC,UAAD,eAAgBA,KAAhB;AAAuB,IAAA,OAAO,EAAEC,OAAhC;AAAyC,IAAA,MAAM,EAAEI,MAAjD;AAAyD,IAAA,GAAG,EAAC;AAA7D,MACGD,QADH,CADF;AAKD,CAND;;;AATEE,EAAAA,E;AACAL,EAAAA,O,aAAS,S,EAAY,U;AACrBM,EAAAA,I;AACAC,EAAAA,Q;AACAN,EAAAA,M;AACAE,EAAAA,Q;AACAK,EAAAA,S;;AAWF,eAAeN,SAAf","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport { defaultStyle, invertedStyle } from './styling';\n\nconst StyledLink = styled.a<{\n variant: 'default' | 'inverted';\n margin?: string;\n}>`\n ${(props) => (props.variant === 'inverted' ? invertedStyle : defaultStyle)}\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n`;\n\nexport interface HyperlinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n id: string;\n variant: 'default' | 'inverted';\n href: string;\n disabled?: boolean;\n margin?: string;\n children?: any;\n className?: string;\n}\n\nconst HyperLink: React.FunctionComponent<HyperlinkProps> = ({ children, target = '_blank', variant = 'default', ...props }: HyperlinkProps) => {\n return (\n <StyledLink {...props} variant={variant} target={target} rel=\"noopener noreferrer\">\n {children}\n </StyledLink>\n );\n};\n\nexport default HyperLink;\n"],"file":"HyperLink.js"}
|
|
@@ -7,11 +7,9 @@ import { Size } from '../types';
|
|
|
7
7
|
import { ComponentLStyling, ComponentMStyling, ComponentSStyling } from '../styles/typography';
|
|
8
8
|
const StyledCheckBox = styled.div`
|
|
9
9
|
display: flex;
|
|
10
|
-
flex-direction: row;
|
|
11
10
|
width: 100%;
|
|
12
11
|
min-height: 48px;
|
|
13
12
|
min-width: 48px;
|
|
14
|
-
align-items: center;
|
|
15
13
|
|
|
16
14
|
${props => props.margin ? `margin: ${props.margin};` : ''}
|
|
17
15
|
cursor: pointer;
|
|
@@ -22,14 +20,14 @@ const StyledCheckBox = styled.div`
|
|
|
22
20
|
pointer-events: none;
|
|
23
21
|
}
|
|
24
22
|
|
|
25
|
-
.icon {
|
|
23
|
+
.checkbox-icon {
|
|
26
24
|
margin: 6px;
|
|
27
25
|
display: flex;
|
|
28
26
|
align-items: center;
|
|
29
27
|
justify-content: center;
|
|
30
28
|
box-sizing: border-box;
|
|
31
|
-
width: 36px;
|
|
32
29
|
height: 36px;
|
|
30
|
+
min-width: 36px;
|
|
33
31
|
border-radius: 50%;
|
|
34
32
|
|
|
35
33
|
svg {
|
|
@@ -37,27 +35,36 @@ const StyledCheckBox = styled.div`
|
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
37
|
|
|
40
|
-
.label {
|
|
38
|
+
.checkbox-label {
|
|
41
39
|
user-select: none;
|
|
42
40
|
cursor: inherit;
|
|
43
41
|
}
|
|
44
42
|
|
|
45
43
|
&.small {
|
|
46
44
|
${ComponentSStyling(ComponentTextStyle.Regular, COLORS.black)}
|
|
45
|
+
.checkbox-label {
|
|
46
|
+
padding-top: 14px;
|
|
47
|
+
}
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
&.medium {
|
|
50
51
|
${ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}
|
|
52
|
+
.checkbox-label {
|
|
53
|
+
padding-top: 12px;
|
|
54
|
+
}
|
|
51
55
|
}
|
|
52
56
|
|
|
53
57
|
&.large {
|
|
54
58
|
${ComponentLStyling(ComponentTextStyle.Regular, COLORS.black)}
|
|
59
|
+
.checkbox-label {
|
|
60
|
+
padding-top: 12px;
|
|
61
|
+
}
|
|
55
62
|
}
|
|
56
63
|
|
|
57
64
|
&:not(.disabled):focus {
|
|
58
65
|
outline: none;
|
|
59
66
|
|
|
60
|
-
.icon {
|
|
67
|
+
.checkbox-icon {
|
|
61
68
|
background-color: ${COLORS.white};
|
|
62
69
|
box-shadow: 0 0 8px ${COLORS.primary_500}, 0px 4px 12px rgba(46, 127, 161, 0.25);
|
|
63
70
|
|
|
@@ -68,7 +75,7 @@ const StyledCheckBox = styled.div`
|
|
|
68
75
|
}
|
|
69
76
|
|
|
70
77
|
&:not(.disabled):hover {
|
|
71
|
-
.icon {
|
|
78
|
+
.checkbox-icon {
|
|
72
79
|
background-color: ${COLORS.primary_20};
|
|
73
80
|
|
|
74
81
|
svg {
|
|
@@ -78,7 +85,7 @@ const StyledCheckBox = styled.div`
|
|
|
78
85
|
}
|
|
79
86
|
|
|
80
87
|
&:not(.disabled):active {
|
|
81
|
-
.icon {
|
|
88
|
+
.checkbox-icon {
|
|
82
89
|
background: ${COLORS.primary_100};
|
|
83
90
|
box-shadow: none;
|
|
84
91
|
|
|
@@ -94,16 +101,16 @@ const StyledCheckBox = styled.div`
|
|
|
94
101
|
|
|
95
102
|
color: ${COLORS.neutral_300};
|
|
96
103
|
|
|
97
|
-
.icon,
|
|
98
|
-
.label {
|
|
104
|
+
.checkbox-icon,
|
|
105
|
+
.checkbox-label {
|
|
99
106
|
pointer-events: none;
|
|
100
107
|
}
|
|
101
108
|
|
|
102
|
-
.icon{
|
|
109
|
+
.checkbox-icon{
|
|
103
110
|
background-color: ${COLORS.white};
|
|
104
111
|
}
|
|
105
112
|
|
|
106
|
-
.icon svg {
|
|
113
|
+
.checkbox-icon svg {
|
|
107
114
|
color: ${COLORS.neutral_300};
|
|
108
115
|
}
|
|
109
116
|
}
|
|
@@ -118,7 +125,8 @@ const Checkbox = /*#__PURE__*/React.forwardRef(({
|
|
|
118
125
|
disabled,
|
|
119
126
|
margin,
|
|
120
127
|
size,
|
|
121
|
-
semiSelected
|
|
128
|
+
semiSelected,
|
|
129
|
+
children
|
|
122
130
|
}, ref) => {
|
|
123
131
|
const onKeyPress = e => {
|
|
124
132
|
if (e.keyCode === 13 && !disabled) {
|
|
@@ -149,7 +157,7 @@ const Checkbox = /*#__PURE__*/React.forwardRef(({
|
|
|
149
157
|
onMouseDown: e => e.preventDefault()
|
|
150
158
|
}, /*#__PURE__*/React.createElement("div", {
|
|
151
159
|
id: id,
|
|
152
|
-
className: 'icon'
|
|
160
|
+
className: 'checkbox-icon'
|
|
153
161
|
}, selected ? /*#__PURE__*/React.createElement(CheckboxOn, {
|
|
154
162
|
className: iconPointerEventsTransparent ? "pointerTransparent" : "",
|
|
155
163
|
size: "24px"
|
|
@@ -160,9 +168,12 @@ const Checkbox = /*#__PURE__*/React.forwardRef(({
|
|
|
160
168
|
className: iconPointerEventsTransparent ? "pointerTransparent" : "",
|
|
161
169
|
size: "24px"
|
|
162
170
|
})), label && /*#__PURE__*/React.createElement("label", {
|
|
163
|
-
className: 'label',
|
|
171
|
+
className: 'checkbox-label',
|
|
172
|
+
htmlFor: id
|
|
173
|
+
}, label), !label && /*#__PURE__*/React.createElement("label", {
|
|
174
|
+
className: 'checkbox-label',
|
|
164
175
|
htmlFor: id
|
|
165
|
-
},
|
|
176
|
+
}, children));
|
|
166
177
|
});
|
|
167
178
|
Checkbox.propTypes = {
|
|
168
179
|
id: _pt.string.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/InputFields/Checkbox.tsx"],"names":["React","styled","CheckboxOff","CheckboxOn","CheckboxSemi","COLORS","ComponentTextStyle","Size","ComponentLStyling","ComponentMStyling","ComponentSStyling","StyledCheckBox","div","props","margin","black","selected","primary_500","showWarning","warning_400","neutral_600","Regular","white","primary_20","primary_700","primary_100","primary_800","neutral_300","Checkbox","forwardRef","id","select","label","iconPointerEventsTransparent","disabled","size","semiSelected","ref","onKeyPress","e","keyCode","handleClick","Medium","toString","toLowerCase","concat","preventDefault"],"mappings":";AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,SAAQC,WAAR,EAAqBC,UAArB,EAAiCC,YAAjC,QAAoD,kCAApD;AACA,SAAQC,MAAR,EAAgBC,kBAAhB,QAAyC,WAAzC;AACA,SAASC,IAAT,QAAqB,UAArB;AACA,SAAQC,iBAAR,EAA2BC,iBAA3B,EAA8CC,iBAA9C,QAAsE,sBAAtE;AAEA,MAAMC,cAAc,GAAGV,MAAM,CAACW,GAAwF;AACtH;AACA;AACA;AACA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["../../../src/InputFields/Checkbox.tsx"],"names":["React","styled","CheckboxOff","CheckboxOn","CheckboxSemi","COLORS","ComponentTextStyle","Size","ComponentLStyling","ComponentMStyling","ComponentSStyling","StyledCheckBox","div","props","margin","black","selected","primary_500","showWarning","warning_400","neutral_600","Regular","white","primary_20","primary_700","primary_100","primary_800","neutral_300","Checkbox","forwardRef","id","select","label","iconPointerEventsTransparent","disabled","size","semiSelected","children","ref","onKeyPress","e","keyCode","handleClick","Medium","toString","toLowerCase","concat","preventDefault"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {CheckboxOff, CheckboxOn, CheckboxSemi} from '../icons/systemicons/SystemIcons';\nimport {COLORS, ComponentTextStyle} from '../styles';\nimport { Size } from '../types';\nimport {ComponentLStyling, ComponentMStyling, ComponentSStyling} from '../styles/typography';\n\nconst StyledCheckBox = styled.div<{ disabled?: boolean; showWarning?: boolean; selected?: boolean; margin?: string }>`\n display: flex;\n width: 100%;\n min-height: 48px;\n min-width: 48px;\n\n ${props => (props.margin ? `margin: ${props.margin};` : '')}\n cursor: pointer;\n\n color: ${COLORS.black};\n\n .pointerTransparent {\n pointer-events: none;\n }\n\n .checkbox-icon {\n margin: 6px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n height: 36px;\n min-width: 36px;\n border-radius: 50%;\n\n svg {\n color: ${props => (props.selected ? COLORS.primary_500 : props.showWarning ? COLORS.warning_400 : COLORS.neutral_600)};\n }\n }\n\n .checkbox-label {\n user-select: none;\n cursor: inherit;\n }\n\n &.small {\n ${ComponentSStyling(ComponentTextStyle.Regular, COLORS.black)}\n .checkbox-label {\n padding-top: 14px;\n }\n }\n\n &.medium {\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}\n .checkbox-label {\n padding-top: 12px;\n }\n }\n\n &.large {\n ${ComponentLStyling(ComponentTextStyle.Regular, COLORS.black)}\n .checkbox-label {\n padding-top: 12px;\n }\n }\n\n &:not(.disabled):focus {\n outline: none;\n\n .checkbox-icon {\n background-color: ${COLORS.white};\n box-shadow: 0 0 8px ${COLORS.primary_500}, 0px 4px 12px rgba(46, 127, 161, 0.25);\n\n svg {\n color: ${COLORS.neutral_600};\n }\n }\n }\n\n &:not(.disabled):hover {\n .checkbox-icon {\n background-color: ${COLORS.primary_20};\n\n svg {\n color: ${COLORS.primary_700};\n }\n }\n }\n\n &:not(.disabled):active {\n .checkbox-icon {\n background: ${COLORS.primary_100};\n box-shadow: none;\n\n svg {\n color: ${COLORS.primary_800};\n }\n }\n }\n\n &.disabled {\n box-shadow: none;\n cursor: not-allowed;\n\n color: ${COLORS.neutral_300};\n\n .checkbox-icon,\n .checkbox-label {\n pointer-events: none;\n }\n\n .checkbox-icon{\n background-color: ${COLORS.white};\n }\n\n .checkbox-icon svg {\n color: ${COLORS.neutral_300};\n }\n }\n`;\n\ninterface Props {\n id: string;\n selected: boolean;\n select: (selected: boolean) => void;\n label?: string;\n showWarning?: boolean;\n disabled?: boolean;\n margin?: string;\n size?: Size;\n iconPointerEventsTransparent?: boolean;\n semiSelected?: boolean;\n}\n\nconst Checkbox = React.forwardRef<HTMLDivElement, Props>(({\n id,\n selected,\n select,\n label,\n showWarning,\n iconPointerEventsTransparent,\n disabled,\n margin,\n size,\n semiSelected,\n children\n }, ref) => {\n const onKeyPress = (e: any) => {\n if (e.keyCode === 13 && !disabled) {\n select(!selected);\n }\n };\n\n const handleClick = () => {\n if (disabled) {\n return;\n }\n select(!selected);\n };\n\n size = size ?? Size.Medium;\n\n return (\n <StyledCheckBox key={id}\n ref={ref}\n disabled={disabled}\n className={size.toString().toLowerCase().concat(disabled ? ' disabled' : '')}\n selected={selected}\n tabIndex={disabled ? -1 : 0}\n showWarning={showWarning}\n margin={margin}\n onClick={handleClick}\n onKeyDown={onKeyPress}\n onMouseDown={e => e.preventDefault()}>\n <div id={id} className={'checkbox-icon'}>\n {\n selected\n ? <CheckboxOn className={iconPointerEventsTransparent ? \"pointerTransparent\" : \"\"} size=\"24px\"/>\n : semiSelected\n ? <CheckboxSemi className={iconPointerEventsTransparent ? \"pointerTransparent\" : \"\"} size=\"24px\"/>\n : <CheckboxOff className={iconPointerEventsTransparent ? \"pointerTransparent\" : \"\"} size=\"24px\"/>\n }\n </div>\n {\n label &&\n (\n <label className={'checkbox-label'}\n htmlFor={id}>\n {label}\n </label>\n )\n }\n {\n !label &&\n <label className={'checkbox-label'}\n htmlFor={id}>\n {children}\n </label>\n }\n </StyledCheckBox>\n );\n});\n\nexport default Checkbox;\n"],"file":"Checkbox.js"}
|
|
@@ -7,11 +7,9 @@ import { Size } from '../types';
|
|
|
7
7
|
import { ComponentLStyling, ComponentMStyling, ComponentSStyling, ComponentXXSStyling } from '../styles/typography';
|
|
8
8
|
const StyledRadioButton = styled.div`
|
|
9
9
|
display: flex;
|
|
10
|
-
flex-direction: row;
|
|
11
10
|
width: 100%;
|
|
12
11
|
min-height: 48px;
|
|
13
12
|
min-width: 48px;
|
|
14
|
-
align-items: center;
|
|
15
13
|
|
|
16
14
|
${props => props.margin ? `margin: ${props.margin};` : ''}
|
|
17
15
|
cursor: pointer;
|
|
@@ -22,14 +20,14 @@ const StyledRadioButton = styled.div`
|
|
|
22
20
|
pointer-events: none;
|
|
23
21
|
}
|
|
24
22
|
|
|
25
|
-
.icon {
|
|
23
|
+
.radio-button-icon {
|
|
26
24
|
margin: 6px;
|
|
27
25
|
display: flex;
|
|
28
26
|
align-items: center;
|
|
29
27
|
justify-content: center;
|
|
30
28
|
box-sizing: border-box;
|
|
31
|
-
width: 36px;
|
|
32
29
|
height: 36px;
|
|
30
|
+
min-width: 36px;
|
|
33
31
|
border-radius: 50%;
|
|
34
32
|
|
|
35
33
|
svg {
|
|
@@ -37,7 +35,7 @@ const StyledRadioButton = styled.div`
|
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
37
|
|
|
40
|
-
.label {
|
|
38
|
+
.radio-button-label {
|
|
41
39
|
user-select: none;
|
|
42
40
|
display: flex;
|
|
43
41
|
flex-direction: column;
|
|
@@ -53,20 +51,29 @@ const StyledRadioButton = styled.div`
|
|
|
53
51
|
|
|
54
52
|
&.small {
|
|
55
53
|
${ComponentSStyling(ComponentTextStyle.Regular, COLORS.black)}
|
|
54
|
+
.radio-button-label {
|
|
55
|
+
padding-top: 14px;
|
|
56
|
+
}
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
&.medium {
|
|
59
60
|
${ComponentMStyling(ComponentTextStyle.Regular, COLORS.black)}
|
|
61
|
+
.radio-button-label {
|
|
62
|
+
padding-top: 12px;
|
|
63
|
+
}
|
|
60
64
|
}
|
|
61
65
|
|
|
62
66
|
&.large {
|
|
63
67
|
${ComponentLStyling(ComponentTextStyle.Regular, COLORS.black)}
|
|
68
|
+
.radio-button-label {
|
|
69
|
+
padding-top: 12px;
|
|
70
|
+
}
|
|
64
71
|
}
|
|
65
72
|
|
|
66
73
|
&:not(.disabled):focus {
|
|
67
74
|
outline: none;
|
|
68
75
|
|
|
69
|
-
.icon {
|
|
76
|
+
.radio-button-icon {
|
|
70
77
|
background-color: ${COLORS.white};
|
|
71
78
|
box-shadow: 0 0 8px ${COLORS.primary_500}, 0px 4px 12px rgba(46, 127, 161, 0.25);
|
|
72
79
|
|
|
@@ -77,7 +84,7 @@ const StyledRadioButton = styled.div`
|
|
|
77
84
|
}
|
|
78
85
|
|
|
79
86
|
&:not(.disabled):hover {
|
|
80
|
-
.icon {
|
|
87
|
+
.radio-button-icon {
|
|
81
88
|
background-color: ${COLORS.primary_20};
|
|
82
89
|
|
|
83
90
|
svg {
|
|
@@ -87,7 +94,7 @@ const StyledRadioButton = styled.div`
|
|
|
87
94
|
}
|
|
88
95
|
|
|
89
96
|
&:not(.disabled):active {
|
|
90
|
-
.icon {
|
|
97
|
+
.radio-button-icon {
|
|
91
98
|
background: ${COLORS.primary_100};
|
|
92
99
|
box-shadow: none;
|
|
93
100
|
|
|
@@ -103,16 +110,16 @@ const StyledRadioButton = styled.div`
|
|
|
103
110
|
|
|
104
111
|
color: ${COLORS.neutral_300};
|
|
105
112
|
|
|
106
|
-
.icon,
|
|
107
|
-
.label {
|
|
113
|
+
.radio-button-icon,
|
|
114
|
+
.radio-button-label {
|
|
108
115
|
pointer-events: none;
|
|
109
116
|
}
|
|
110
117
|
|
|
111
|
-
.icon{
|
|
118
|
+
.radio-button-icon{
|
|
112
119
|
background-color: ${COLORS.white};
|
|
113
120
|
}
|
|
114
121
|
|
|
115
|
-
.icon svg {
|
|
122
|
+
.radio-button-icon svg {
|
|
116
123
|
color: ${COLORS.neutral_300};
|
|
117
124
|
}
|
|
118
125
|
}
|
|
@@ -149,7 +156,7 @@ const RadioButton = /*#__PURE__*/React.forwardRef(({
|
|
|
149
156
|
showWarning: showWarning,
|
|
150
157
|
selected: selected
|
|
151
158
|
}, /*#__PURE__*/React.createElement("div", {
|
|
152
|
-
className: 'icon',
|
|
159
|
+
className: 'radio-button-icon',
|
|
153
160
|
id: id
|
|
154
161
|
}, selected && /*#__PURE__*/React.createElement(RadioButtonOn, {
|
|
155
162
|
className: iconPointerEventsTransparent ? "pointerTransparent" : "",
|
|
@@ -158,7 +165,7 @@ const RadioButton = /*#__PURE__*/React.forwardRef(({
|
|
|
158
165
|
className: iconPointerEventsTransparent ? "pointerTransparent" : "",
|
|
159
166
|
size: "24px"
|
|
160
167
|
})), /*#__PURE__*/React.createElement("div", {
|
|
161
|
-
className: 'label'
|
|
168
|
+
className: 'radio-button-label'
|
|
162
169
|
}, label && /*#__PURE__*/React.createElement("label", {
|
|
163
170
|
htmlFor: id
|
|
164
171
|
}, label), additionalLabel !== undefined && /*#__PURE__*/React.createElement("span", null, additionalLabel)));
|