@webiny/ui 0.0.0-unstable.990c3ab1b6 → 0.0.0-unstable.aa00eecd97
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/Accordion/Accordion.d.ts +1 -1
- package/Accordion/Accordion.js +1 -5
- package/Accordion/Accordion.js.map +1 -1
- package/Accordion/Accordion.stories.js.map +1 -1
- package/Accordion/AccordionItem.d.ts +21 -2
- package/Accordion/AccordionItem.js +46 -48
- package/Accordion/AccordionItem.js.map +1 -1
- package/Accordion/AccordionItemActions.d.ts +8 -0
- package/Accordion/AccordionItemActions.js +28 -0
- package/Accordion/AccordionItemActions.js.map +1 -0
- package/Alert/Alert.d.ts +1 -1
- package/Alert/Alert.js +1 -1
- package/Alert/Alert.js.map +1 -1
- package/Alert/Alert.stories.js.map +1 -1
- package/AutoComplete/AutoComplete.js.map +1 -1
- package/AutoComplete/MultiAutoComplete.js.map +1 -1
- package/Button/Button.d.ts +30 -1
- package/Button/Button.js +4 -8
- package/Button/Button.js.map +1 -1
- package/Button/CopyButton/CopyButton.stories.js.map +1 -1
- package/Button/IconButton/IconButton.js +1 -2
- package/Button/IconButton/IconButton.js.map +1 -1
- package/Button/IconButton/IconButton.stories.js.map +1 -1
- package/Checkbox/Checkbox.d.ts +1 -0
- package/Checkbox/Checkbox.js +2 -1
- package/Checkbox/Checkbox.js.map +1 -1
- package/Chips/Chips.stories.js.map +1 -1
- package/CodeEditor/CodeEditor.d.ts +2 -0
- package/CodeEditor/CodeEditor.js +2 -0
- package/CodeEditor/CodeEditor.js.map +1 -1
- package/ConfirmationDialog/ConfirmationDialog.js +33 -36
- package/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/ConfirmationDialog/ConfirmationDialog.stories.js.map +1 -1
- package/DataTable/DataTable.d.ts +16 -1
- package/DataTable/DataTable.js +59 -16
- package/DataTable/DataTable.js.map +1 -1
- package/DataTable/styled.d.ts +30 -1
- package/DataTable/styled.js +25 -3
- package/DataTable/styled.js.map +1 -1
- package/DelayedOnChange/DelayedOnChange.js +3 -0
- package/DelayedOnChange/DelayedOnChange.js.map +1 -1
- package/Dialog/Dialog.js +4 -1
- package/Dialog/Dialog.js.map +1 -1
- package/Dialog/Dialog.stories.js.map +1 -1
- package/Drawer/Drawer.stories.js.map +1 -1
- package/Elevation/Elevation.stories.js.map +1 -1
- package/Grid/Grid.stories.js.map +1 -1
- package/Icon/Icon.stories.js.map +1 -1
- package/ImageEditor/ImageEditor.js +42 -46
- package/ImageEditor/ImageEditor.js.map +1 -1
- package/ImageEditor/toolbar/crop.js.map +1 -1
- package/ImageEditor/toolbar/filter.js.map +1 -1
- package/ImageEditor/toolbar/flip.js.map +1 -1
- package/ImageEditor/toolbar/rotate.js +8 -10
- package/ImageEditor/toolbar/rotate.js.map +1 -1
- package/ImageUpload/ImageEditorDialog.js +4 -2
- package/ImageUpload/ImageEditorDialog.js.map +1 -1
- package/ImageUpload/MultiImageUpload.js +93 -103
- package/ImageUpload/MultiImageUpload.js.map +1 -1
- package/ImageUpload/SingleImageUpload.js +21 -23
- package/ImageUpload/SingleImageUpload.js.map +1 -1
- package/ImageUpload/styled.d.ts +27 -17
- package/Input/Input.d.ts +2 -12
- package/Input/Input.js +86 -112
- package/Input/Input.js.map +1 -1
- package/List/DataList/DataList.js +11 -49
- package/List/DataList/DataList.js.map +1 -1
- package/List/DataList/DataList.stories.js.map +1 -1
- package/List/DataList/DataListModalOverlay/DataListModalOverlay.d.ts +8 -6
- package/List/DataList/DataListModalOverlay/DataListModalOverlay.js +3 -2
- package/List/DataList/DataListModalOverlay/DataListModalOverlay.js.map +1 -1
- package/List/DataList/NoData.js.map +1 -1
- package/List/List.stories.js.map +1 -1
- package/Menu/Menu.js +2 -1
- package/Menu/Menu.js.map +1 -1
- package/Menu/Menu.stories.js.map +1 -1
- package/RichTextEditor/RichTextEditor.js +23 -25
- package/RichTextEditor/RichTextEditor.js.map +1 -1
- package/Ripple/Ripple.stories.js.map +1 -1
- package/Scrollbar/Scrollbar.stories.js.map +1 -1
- package/Section/Section.stories.js.map +1 -1
- package/Select/Select.stories.js.map +1 -1
- package/Skeleton/Skeleton.d.ts +6 -2
- package/Skeleton/Skeleton.js +8 -4
- package/Skeleton/Skeleton.js.map +1 -1
- package/Snackbar/Snackbar.stories.js.map +1 -1
- package/Switch/Switch.d.ts +1 -1
- package/Switch/Switch.js.map +1 -1
- package/Tabs/Tab.d.ts +1 -0
- package/Tabs/Tab.js +3 -1
- package/Tabs/Tab.js.map +1 -1
- package/Tabs/Tabs.d.ts +1 -0
- package/Tabs/Tabs.js +13 -1
- package/Tabs/Tabs.js.map +1 -1
- package/Tabs/Tabs.stories.js.map +1 -1
- package/Tags/Tags.d.ts +8 -15
- package/Tags/Tags.js +77 -95
- package/Tags/Tags.js.map +1 -1
- package/Tooltip/Tooltip.stories.js.map +1 -1
- package/TopProgressBar/TopProgressBar.stories.js.map +1 -1
- package/Typography/Typography.d.ts +2 -2
- package/Typography/Typography.js.map +1 -1
- package/Typography/Typography.stories.js.map +1 -1
- package/package.json +44 -42
- package/types.d.ts +3 -3
- package/types.js.map +1 -1
package/Accordion/Accordion.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface AccordionProps {
|
|
|
5
5
|
/**
|
|
6
6
|
* Element displayed when accordion is expanded.
|
|
7
7
|
*/
|
|
8
|
-
children: React.ReactElement<typeof ListItem>[] | React.ReactElement<typeof AccordionItem>[];
|
|
8
|
+
children: React.ReactElement<typeof ListItem>[] | React.ReactElement<typeof AccordionItem> | React.ReactElement<typeof AccordionItem>[];
|
|
9
9
|
/**
|
|
10
10
|
* Elevation number, default set to 2
|
|
11
11
|
*/
|
package/Accordion/Accordion.js
CHANGED
|
@@ -12,11 +12,7 @@ var _Elevation = require("../Elevation");
|
|
|
12
12
|
var _emotion = require("emotion");
|
|
13
13
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
14
|
var _excluded = ["children", "elevation", "className"];
|
|
15
|
-
var listStyle = /*#__PURE__*/(0, _emotion.css)({
|
|
16
|
-
"&.mdc-list": {
|
|
17
|
-
padding: 0
|
|
18
|
-
}
|
|
19
|
-
}, "label:listStyle;");
|
|
15
|
+
var listStyle = /*#__PURE__*/(0, _emotion.css)("&.mdc-list{padding:0;&.mdc-list--two-line .mdc-list-item{height:48px;padding:8px 20px;}}label:listStyle;");
|
|
20
16
|
var Accordion = function Accordion(props) {
|
|
21
17
|
var children = props.children,
|
|
22
18
|
_props$elevation = props.elevation,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["listStyle","css","
|
|
1
|
+
{"version":3,"names":["listStyle","css","Accordion","props","children","elevation","className","other","classNames"],"sources":["Accordion.tsx"],"sourcesContent":["import React from \"react\";\nimport { List, ListItem } from \"../List\";\nimport { AccordionItem } from \"./AccordionItem\";\nimport { Elevation } from \"../Elevation\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\n\nexport interface AccordionProps {\n /**\n * Element displayed when accordion is expanded.\n */\n children:\n | React.ReactElement<typeof ListItem>[]\n | React.ReactElement<typeof AccordionItem>\n | React.ReactElement<typeof AccordionItem>[];\n\n /**\n * Elevation number, default set to 2\n */\n elevation?: number;\n\n /**\n * Append a class name\n */\n className?: string;\n}\n\nconst listStyle = css`\n &.mdc-list {\n padding: 0;\n &.mdc-list--two-line .mdc-list-item {\n height: 48px;\n padding: 8px 20px;\n }\n }\n`;\n\nconst Accordion: React.FC<AccordionProps> = props => {\n const { children, elevation = 2, className, ...other } = props;\n return (\n <Elevation z={elevation} className={classNames(\"webiny-ui-accordion\", className)}>\n <List twoLine className={listStyle} {...other}>\n {children}\n </List>\n </Elevation>\n );\n};\n\nexport { Accordion };\n"],"mappings":";;;;;;;;AAAA;AACA;AAEA;AACA;AACA;AAAoC;AAsBpC,IAAMA,SAAS,oBAAGC,YAAG,6GAQpB;AAED,IAAMC,SAAmC,GAAG,SAAtCA,SAAmC,CAAGC,KAAK,EAAI;EACjD,IAAQC,QAAQ,GAAyCD,KAAK,CAAtDC,QAAQ;IAAA,mBAAyCD,KAAK,CAA5CE,SAAS;IAATA,SAAS,iCAAG,CAAC;IAAEC,SAAS,GAAeH,KAAK,CAA7BG,SAAS;IAAKC,KAAK,0CAAKJ,KAAK;EAC9D,oBACI,6BAAC,oBAAS;IAAC,CAAC,EAAEE,SAAU;IAAC,SAAS,EAAE,IAAAG,mBAAU,EAAC,qBAAqB,EAAEF,SAAS;EAAE,gBAC7E,6BAAC,UAAI;IAAC,OAAO;IAAC,SAAS,EAAEN;EAAU,GAAKO,KAAK,GACxCH,QAAQ,CACN,CACC;AAEpB,CAAC;AAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["story","storiesOf","module","add","readme","info","propTables","Accordion","AccordionItem"],"sources":["Accordion.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport {\n Story,\n StoryReadme,\n StorySandboxCode,\n StorySandbox,\n StorySandboxExample\n} from \"@webiny/storybook-utils/Story\";\nimport readme from \"./README.md\";\nimport { Accordion } from \"./Accordion\";\nimport { AccordionItem } from \"./AccordionItem\";\nimport { ReactComponent as SettingsIcon } from \"./icons/round-settings-24px.svg\";\n\nconst story = storiesOf(\"Components/Accordion\", module);\n\nstory.add(\n \"usage\",\n () => {\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox title={\"Accordion\"}>\n <StorySandboxExample>\n <Accordion>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 1\"\n description=\"Settings description\"\n open\n >\n <div>Inner child 1</div>\n </AccordionItem>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 2\"\n description=\"Settings description\"\n >\n <div>Inner child 2</div>\n </AccordionItem>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 3\"\n description=\"Settings description\"\n >\n <div>Inner child 3</div>\n </AccordionItem>\n </Accordion>\n </StorySandboxExample>\n <StorySandboxCode>\n <div>\n <Accordion>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 1\"\n description=\"Settings description\"\n open\n >\n <div>Inner child 1</div>\n </AccordionItem>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 2\"\n description=\"Settings description\"\n >\n <div>Inner child 2</div>\n </AccordionItem>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 3\"\n description=\"Settings description\"\n >\n <div>Inner child 3</div>\n </AccordionItem>\n </Accordion>\n </div>\n </StorySandboxCode>\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [Accordion, AccordionItem] } }\n);\n"],"mappings":";;;AAAA;AACA;AACA;AAOA;AACA;AACA;AACA;AAEA,IAAMA,KAAK,GAAG,IAAAC,iBAAS,EAAC,sBAAsB,EAAEC,MAAM,CAAC;AAEvDF,KAAK,CAACG,GAAG,CACL,OAAO,EACP,YAAM;EACF,oBACI,6BAAC,YAAK,qBACF,6BAAC,kBAAW,QAAEC,eAAM,CAAe,eACnC,6BAAC,mBAAY;IAAC,KAAK,EAAE;EAAY,gBAC7B,6BAAC,0BAAmB,qBAChB,6BAAC,oBAAS,qBACN,6BAAC,4BAAa;IACV,IAAI,eAAE,6BAAC,iCAAY,OAAI;IACvB,KAAK,EAAC,YAAY;IAClB,WAAW,EAAC,sBAAsB;IAClC,IAAI;EAAA,gBAEJ,
|
|
1
|
+
{"version":3,"names":["story","storiesOf","module","add","readme","info","propTables","Accordion","AccordionItem"],"sources":["Accordion.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport {\n Story,\n StoryReadme,\n StorySandboxCode,\n StorySandbox,\n StorySandboxExample\n} from \"@webiny/storybook-utils/Story\";\nimport readme from \"./README.md\";\nimport { Accordion } from \"./Accordion\";\nimport { AccordionItem } from \"./AccordionItem\";\nimport { ReactComponent as SettingsIcon } from \"./icons/round-settings-24px.svg\";\n\nconst story = storiesOf(\"Components/Accordion\", module);\n\nstory.add(\n \"usage\",\n () => {\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox title={\"Accordion\"}>\n <StorySandboxExample>\n <Accordion>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 1\"\n description=\"Settings description\"\n open\n >\n <div>Inner child 1</div>\n </AccordionItem>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 2\"\n description=\"Settings description\"\n >\n <div>Inner child 2</div>\n </AccordionItem>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 3\"\n description=\"Settings description\"\n >\n <div>Inner child 3</div>\n </AccordionItem>\n </Accordion>\n </StorySandboxExample>\n <StorySandboxCode>\n <div>\n <Accordion>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 1\"\n description=\"Settings description\"\n open\n >\n <div>Inner child 1</div>\n </AccordionItem>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 2\"\n description=\"Settings description\"\n >\n <div>Inner child 2</div>\n </AccordionItem>\n <AccordionItem\n icon={<SettingsIcon />}\n title=\"Settings 3\"\n description=\"Settings description\"\n >\n <div>Inner child 3</div>\n </AccordionItem>\n </Accordion>\n </div>\n </StorySandboxCode>\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [Accordion, AccordionItem] } }\n);\n"],"mappings":";;;AAAA;AACA;AACA;AAOA;AACA;AACA;AACA;AAEA,IAAMA,KAAK,GAAG,IAAAC,iBAAS,EAAC,sBAAsB,EAAEC,MAAM,CAAC;AAEvDF,KAAK,CAACG,GAAG,CACL,OAAO,EACP,YAAM;EACF,oBACI,6BAAC,YAAK,qBACF,6BAAC,kBAAW,QAAEC,eAAM,CAAe,eACnC,6BAAC,mBAAY;IAAC,KAAK,EAAE;EAAY,gBAC7B,6BAAC,0BAAmB,qBAChB,6BAAC,oBAAS,qBACN,6BAAC,4BAAa;IACV,IAAI,eAAE,6BAAC,iCAAY,OAAI;IACvB,KAAK,EAAC,YAAY;IAClB,WAAW,EAAC,sBAAsB;IAClC,IAAI;EAAA,gBAEJ,0CAAK,eAAa,CAAM,CACZ,eAChB,6BAAC,4BAAa;IACV,IAAI,eAAE,6BAAC,iCAAY,OAAI;IACvB,KAAK,EAAC,YAAY;IAClB,WAAW,EAAC;EAAsB,gBAElC,0CAAK,eAAa,CAAM,CACZ,eAChB,6BAAC,4BAAa;IACV,IAAI,eAAE,6BAAC,iCAAY,OAAI;IACvB,KAAK,EAAC,YAAY;IAClB,WAAW,EAAC;EAAsB,gBAElC,0CAAK,eAAa,CAAM,CACZ,CACR,CACM,eACtB,6BAAC,uBAAgB,qBACb,uDACI,6BAAC,oBAAS,qBACN,6BAAC,4BAAa;IACV,IAAI,eAAE,6BAAC,iCAAY,OAAI;IACvB,KAAK,EAAC,YAAY;IAClB,WAAW,EAAC,sBAAsB;IAClC,IAAI;EAAA,gBAEJ,0CAAK,eAAa,CAAM,CACZ,eAChB,6BAAC,4BAAa;IACV,IAAI,eAAE,6BAAC,iCAAY,OAAI;IACvB,KAAK,EAAC,YAAY;IAClB,WAAW,EAAC;EAAsB,gBAElC,0CAAK,eAAa,CAAM,CACZ,eAChB,6BAAC,4BAAa;IACV,IAAI,eAAE,6BAAC,iCAAY,OAAI;IACvB,KAAK,EAAC,YAAY;IAClB,WAAW,EAAC;EAAsB,gBAElC,0CAAK,eAAa,CAAM,CACZ,CACR,CACV,CACS,CACR,CACX;AAEhB,CAAC,EACD;EAAEC,IAAI,EAAE;IAAEC,UAAU,EAAE,CAACC,oBAAS,EAAEC,4BAAa;EAAE;AAAE,CAAC,CACvD"}
|
|
@@ -1,5 +1,19 @@
|
|
|
1
|
+
/// <reference types="web" />
|
|
1
2
|
import React from "react";
|
|
3
|
+
import { AccordionItemAction, AccordionItemActions } from "./AccordionItemActions";
|
|
4
|
+
declare const Divider: import("@emotion/styled").StyledComponent<{
|
|
5
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
6
|
+
as?: React.ElementType<any> | undefined;
|
|
7
|
+
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
2
8
|
export interface AccordionItemProps {
|
|
9
|
+
/**
|
|
10
|
+
* Can user toggle the accordion item by clicking it? Defaults to `true`.
|
|
11
|
+
*/
|
|
12
|
+
interactive?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Actions to show on the right side of the accordion item
|
|
15
|
+
*/
|
|
16
|
+
actions?: React.ReactElement | null;
|
|
3
17
|
/**
|
|
4
18
|
* Left side icon
|
|
5
19
|
*/
|
|
@@ -29,5 +43,10 @@ export interface AccordionItemProps {
|
|
|
29
43
|
*/
|
|
30
44
|
iconClassName?: string;
|
|
31
45
|
}
|
|
32
|
-
declare
|
|
33
|
-
|
|
46
|
+
declare type AccordionItem = React.FC<AccordionItemProps> & {
|
|
47
|
+
Divider: typeof Divider;
|
|
48
|
+
Actions: typeof AccordionItemActions;
|
|
49
|
+
Action: typeof AccordionItemAction;
|
|
50
|
+
};
|
|
51
|
+
export declare const AccordionItem: AccordionItem;
|
|
52
|
+
export {};
|
|
@@ -19,48 +19,26 @@ var _Typography = require("../Typography");
|
|
|
19
19
|
var _roundKeyboard_arrow_up24px = require("./icons/round-keyboard_arrow_up-24px.svg");
|
|
20
20
|
var _roundKeyboard_arrow_down24px = require("./icons/round-keyboard_arrow_down-24px.svg");
|
|
21
21
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
22
|
+
var _AccordionItemActions = require("./AccordionItemActions");
|
|
22
23
|
var Content = /*#__PURE__*/(0, _styled.default)("div", {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
})({
|
|
26
|
-
|
|
27
|
-
borderRight: "1px solid var(--mdc-theme-background)",
|
|
28
|
-
borderBottom: "1px solid var(--mdc-theme-background)",
|
|
29
|
-
borderLeft: "1px solid var(--mdc-theme-background)",
|
|
30
|
-
boxSizing: "border-box"
|
|
31
|
-
});
|
|
32
|
-
var listItem = /*#__PURE__*/(0, _emotion.css)({
|
|
33
|
-
padding: "15px 20px",
|
|
34
|
-
cursor: "pointer",
|
|
35
|
-
borderBottom: "1px solid var(--mdc-theme-background)",
|
|
36
|
-
"&:last-child": {
|
|
37
|
-
borderBottom: "none"
|
|
38
|
-
},
|
|
39
|
-
".mdc-list-item__graphic": {
|
|
40
|
-
marginRight: 20
|
|
41
|
-
}
|
|
42
|
-
}, "label:listItem;");
|
|
24
|
+
label: "Content",
|
|
25
|
+
target: "eypjd5u0"
|
|
26
|
+
})("width:100%;border-right:1px solid var(--mdc-theme-background);border-bottom:1px solid var(--mdc-theme-background);border-left:1px solid var(--mdc-theme-background);box-sizing:border-box;> .mdc-layout-grid{margin:-24px;}");
|
|
27
|
+
var listItem = /*#__PURE__*/(0, _emotion.css)("cursor:pointer;border-bottom:1px solid var(--mdc-theme-background);&:last-child{border-bottom:none;}.mdc-list-item__graphic{margin-right:20px;}label:listItem;");
|
|
43
28
|
var ListItemTitle = /*#__PURE__*/(0, _styled.default)("div", {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
})(
|
|
47
|
-
fontWeight: 600,
|
|
48
|
-
marginBottom: 5
|
|
49
|
-
});
|
|
29
|
+
label: "ListItemTitle",
|
|
30
|
+
target: "eypjd5u1"
|
|
31
|
+
})("font-weight:600;line-height:100%;");
|
|
50
32
|
var ListItemDescription = /*#__PURE__*/(0, _styled.default)("div", {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
})(
|
|
33
|
+
label: "ListItemDescription",
|
|
34
|
+
target: "eypjd5u2"
|
|
35
|
+
})("line-height:100%;");
|
|
54
36
|
var TitleContent = /*#__PURE__*/(0, _styled.default)("div", {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
})(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
});
|
|
61
|
-
var openedState = /*#__PURE__*/(0, _emotion.css)({
|
|
62
|
-
backgroundColor: "var(--mdc-theme-on-background)"
|
|
63
|
-
}, "label:openedState;");
|
|
37
|
+
label: "TitleContent",
|
|
38
|
+
target: "eypjd5u3"
|
|
39
|
+
})("display:flex;flex-direction:column;");
|
|
40
|
+
var openedState = /*#__PURE__*/(0, _emotion.css)("background-color:var(--mdc-theme-on-background);label:openedState;");
|
|
41
|
+
var nonInteractive = /*#__PURE__*/(0, _emotion.css)("background-color:var(--mdc-theme-surface);label:nonInteractive;");
|
|
64
42
|
var duration = 150;
|
|
65
43
|
var defaultStyle = {
|
|
66
44
|
transition: "all ".concat(duration, "ms ease-in-out"),
|
|
@@ -76,40 +54,57 @@ var transitionStyles = {
|
|
|
76
54
|
entering: {
|
|
77
55
|
opacity: 0,
|
|
78
56
|
height: 0,
|
|
79
|
-
padding: "20px
|
|
57
|
+
padding: "20px",
|
|
80
58
|
pointerEvents: "auto",
|
|
81
59
|
overflow: "initial"
|
|
82
60
|
},
|
|
83
61
|
entered: {
|
|
84
62
|
opacity: 1,
|
|
85
63
|
height: "auto",
|
|
86
|
-
padding: "20px
|
|
64
|
+
padding: "20px",
|
|
87
65
|
pointerEvents: "auto",
|
|
88
66
|
overflow: "initial"
|
|
89
67
|
},
|
|
90
68
|
exiting: {
|
|
91
69
|
height: "auto",
|
|
92
|
-
padding: "20px
|
|
70
|
+
padding: "20px",
|
|
93
71
|
pointerEvents: "auto",
|
|
94
72
|
overflow: "initial"
|
|
95
73
|
}
|
|
96
74
|
};
|
|
97
|
-
var
|
|
75
|
+
var Divider = /*#__PURE__*/(0, _styled.default)("span", {
|
|
76
|
+
label: "Divider",
|
|
77
|
+
target: "eypjd5u4"
|
|
78
|
+
})("width:1px;margin:0 15px;height:100%;background-color:var(--mdc-theme-on-background);");
|
|
79
|
+
var Actions = /*#__PURE__*/(0, _styled.default)(_List.ListItemMeta, {
|
|
80
|
+
label: "Actions",
|
|
81
|
+
target: "eypjd5u5"
|
|
82
|
+
})("display:flex;height:40%;align-items:center;");
|
|
83
|
+
var AccordionItemComponent = function AccordionItemComponent(props) {
|
|
98
84
|
var _useState = (0, _react.useState)(props.open ? props.open : false),
|
|
99
85
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
100
86
|
open = _useState2[0],
|
|
101
87
|
setState = _useState2[1];
|
|
88
|
+
var _props$interactive = props.interactive,
|
|
89
|
+
interactive = _props$interactive === void 0 ? true : _props$interactive,
|
|
90
|
+
actions = props.actions;
|
|
102
91
|
var toggleState = (0, _react.useCallback)(function () {
|
|
103
92
|
setState(!open);
|
|
104
93
|
}, [open]);
|
|
94
|
+
var onClick = interactive ? toggleState : undefined;
|
|
95
|
+
var divider = interactive && actions ? /*#__PURE__*/_react.default.createElement(Divider, null) : null;
|
|
96
|
+
var arrowIcon = interactive ? /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
97
|
+
icon: !open ? /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_down24px.ReactComponent, null) : /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_up24px.ReactComponent, null)
|
|
98
|
+
}) : null;
|
|
105
99
|
(0, _react.useEffect)(function () {
|
|
106
|
-
setState(props.open
|
|
100
|
+
setState(!!props.open);
|
|
107
101
|
}, [props.open]);
|
|
108
102
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
109
103
|
className: (0, _classnames.default)("webiny-ui-accordion-item", props.className)
|
|
110
104
|
}, /*#__PURE__*/_react.default.createElement(_List.ListItem, {
|
|
111
|
-
|
|
112
|
-
|
|
105
|
+
disabled: !interactive,
|
|
106
|
+
className: (0, _classnames.default)(listItem, (0, _defineProperty2.default)({}, openedState, open), (0, _defineProperty2.default)({}, nonInteractive, !interactive), "webiny-ui-accordion-item__list-item"),
|
|
107
|
+
onClick: onClick,
|
|
113
108
|
"data-testid": props["data-testid"]
|
|
114
109
|
}, props.icon && /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
|
|
115
110
|
icon: props.icon,
|
|
@@ -118,9 +113,7 @@ var AccordionItem = function AccordionItem(props) {
|
|
|
118
113
|
className: "webiny-ui-accordion-item__title"
|
|
119
114
|
}, /*#__PURE__*/_react.default.createElement(ListItemTitle, null, props.title), props.description && /*#__PURE__*/_react.default.createElement(ListItemDescription, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
120
115
|
use: "body2"
|
|
121
|
-
}, props.description))), /*#__PURE__*/_react.default.createElement(
|
|
122
|
-
icon: !open ? /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_down24px.ReactComponent, null) : /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_up24px.ReactComponent, null)
|
|
123
|
-
}))), /*#__PURE__*/_react.default.createElement(_Transition.default, {
|
|
116
|
+
}, props.description))), /*#__PURE__*/_react.default.createElement(Actions, null, props.actions ? props.actions : null, divider, arrowIcon)), /*#__PURE__*/_react.default.createElement(_Transition.default, {
|
|
124
117
|
in: open,
|
|
125
118
|
timeout: duration
|
|
126
119
|
}, function (state) {
|
|
@@ -130,4 +123,9 @@ var AccordionItem = function AccordionItem(props) {
|
|
|
130
123
|
}, props.children);
|
|
131
124
|
}));
|
|
132
125
|
};
|
|
126
|
+
var AccordionItem = Object.assign(AccordionItemComponent, {
|
|
127
|
+
Divider: Divider,
|
|
128
|
+
Action: _AccordionItemActions.AccordionItemAction,
|
|
129
|
+
Actions: _AccordionItemActions.AccordionItemActions
|
|
130
|
+
});
|
|
133
131
|
exports.AccordionItem = AccordionItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Content","styled","width","borderRight","borderBottom","borderLeft","boxSizing","listItem","css","padding","cursor","marginRight","ListItemTitle","fontWeight","marginBottom","ListItemDescription","TitleContent","display","flexDirection","openedState","backgroundColor","duration","defaultStyle","transition","opacity","height","pointerEvents","overflow","transitionStyles","entering","entered","exiting","AccordionItem","props","useState","open","setState","toggleState","useCallback","useEffect","classNames","className","icon","iconClassName","title","description","state","children"],"sources":["AccordionItem.tsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from \"react\";\nimport { ListItem, ListItemGraphic, ListItemMeta } from \"../List\";\nimport Transition from \"react-transition-group/Transition\";\nimport { Icon } from \"~/Icon\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { Typography } from \"~/Typography\";\n\nimport { ReactComponent as UpArrow } from \"./icons/round-keyboard_arrow_up-24px.svg\";\nimport { ReactComponent as DownArrow } from \"./icons/round-keyboard_arrow_down-24px.svg\";\nimport classNames from \"classnames\";\n\nconst Content = styled(\"div\")({\n width: \"100%\",\n borderRight: \"1px solid var(--mdc-theme-background)\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n borderLeft: \"1px solid var(--mdc-theme-background)\",\n boxSizing: \"border-box\"\n});\n\nconst listItem = css({\n padding: \"15px 20px\",\n cursor: \"pointer\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n \"&:last-child\": {\n borderBottom: \"none\"\n },\n \".mdc-list-item__graphic\": {\n marginRight: 20\n }\n});\n\nconst ListItemTitle = styled(\"div\")({\n fontWeight: 600,\n marginBottom: 5\n});\n\nconst ListItemDescription = styled(\"div\")({});\n\nconst TitleContent = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\"\n});\n\nconst openedState = css({\n backgroundColor: \"var(--mdc-theme-on-background)\"\n});\n\nconst duration = 150;\nconst defaultStyle = {\n transition: `all ${duration}ms ease-in-out`,\n opacity: 0,\n height: 0,\n pointerEvents: \"none\",\n overflow: \"hidden\"\n};\n\ntype TransitionStylesState = \"entering\" | \"entered\" | \"exiting\";\n\n/**\n * We are casting pointerEvents as any because csstype does not have PointerEvents exported. Or at least, that is the error.\n */\nconst transitionStyles = {\n entering: {\n opacity: 0,\n height: 0,\n padding: \"20px 20px 20px 65px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n },\n entered: {\n opacity: 1,\n height: \"auto\",\n padding: \"20px 20px 20px 65px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n },\n exiting: {\n height: \"auto\",\n padding: \"20px 20px 20px 65px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n }\n};\n\nexport interface AccordionItemProps {\n /**\n * Left side icon\n */\n icon?: React.ReactElement | null;\n\n /**\n * Accordion title\n */\n title?: React.ReactNode;\n\n /**\n * Optional description\n */\n description?: string;\n\n /**\n * Append a class name\n */\n className?: string;\n\n /**\n * Render item opened by default\n */\n open?: boolean;\n /**\n * For testing purpose\n */\n \"data-testid\"?: string;\n /**\n * Append a class name to Icon\n */\n iconClassName?: string;\n}\n\nconst AccordionItem: React.FC<AccordionItemProps> = props => {\n const [open, setState] = useState<boolean>(props.open ? props.open : false);\n\n const toggleState = useCallback(() => {\n setState(!open);\n }, [open]);\n\n useEffect(() => {\n setState(props.open ? true : false);\n }, [props.open]);\n\n return (\n <div className={classNames(\"webiny-ui-accordion-item\", props.className)}>\n <ListItem\n className={classNames(\n listItem,\n { [openedState]: open },\n \"webiny-ui-accordion-item__list-item\"\n )}\n onClick={toggleState}\n data-testid={props[\"data-testid\"]}\n >\n {props.icon && (\n <ListItemGraphic>\n <Icon icon={props.icon} className={props.iconClassName} />\n </ListItemGraphic>\n )}\n\n <TitleContent className=\"webiny-ui-accordion-item__title\">\n <ListItemTitle>{props.title}</ListItemTitle>\n {props.description && (\n <ListItemDescription>\n <Typography use={\"body2\"}>{props.description}</Typography>\n </ListItemDescription>\n )}\n </TitleContent>\n <ListItemMeta>\n <Icon icon={!open ? <DownArrow /> : <UpArrow />} />\n </ListItemMeta>\n </ListItem>\n <Transition in={open} timeout={duration}>\n {(state: TransitionStylesState) => (\n <Content\n style={{ ...defaultStyle, ...transitionStyles[state] }}\n className=\"webiny-ui-accordion-item__content\"\n >\n {props.children}\n </Content>\n )}\n </Transition>\n </div>\n );\n};\n\nexport { AccordionItem };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Content","styled","listItem","css","ListItemTitle","ListItemDescription","TitleContent","openedState","nonInteractive","duration","defaultStyle","transition","opacity","height","pointerEvents","overflow","transitionStyles","entering","padding","entered","exiting","Divider","Actions","ListItemMeta","AccordionItemComponent","props","useState","open","setState","interactive","actions","toggleState","useCallback","onClick","undefined","divider","arrowIcon","useEffect","classNames","className","icon","iconClassName","title","description","state","children","AccordionItem","Object","assign","Action","AccordionItemAction","AccordionItemActions"],"sources":["AccordionItem.tsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from \"react\";\nimport { ListItem, ListItemGraphic, ListItemMeta } from \"~/List\";\nimport Transition from \"react-transition-group/Transition\";\nimport { Icon } from \"~/Icon\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { Typography } from \"~/Typography\";\n\nimport { ReactComponent as UpArrow } from \"./icons/round-keyboard_arrow_up-24px.svg\";\nimport { ReactComponent as DownArrow } from \"./icons/round-keyboard_arrow_down-24px.svg\";\nimport classNames from \"classnames\";\nimport { AccordionItemAction, AccordionItemActions } from \"~/Accordion/AccordionItemActions\";\n\nconst Content = styled.div`\n width: 100%;\n border-right: 1px solid var(--mdc-theme-background);\n border-bottom: 1px solid var(--mdc-theme-background);\n border-left: 1px solid var(--mdc-theme-background);\n box-sizing: border-box;\n > .mdc-layout-grid {\n margin: -24px;\n }\n`;\n\nconst listItem = css`\n cursor: pointer;\n border-bottom: 1px solid var(--mdc-theme-background);\n &:last-child {\n border-bottom: none;\n }\n .mdc-list-item__graphic {\n margin-right: 20px;\n }\n`;\n\nconst ListItemTitle = styled.div`\n font-weight: 600;\n line-height: 100%;\n`;\n\nconst ListItemDescription = styled.div`\n line-height: 100%;\n`;\n\nconst TitleContent = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst openedState = css`\n background-color: var(--mdc-theme-on-background);\n`;\n\nconst nonInteractive = css`\n background-color: var(--mdc-theme-surface);\n`;\n\nconst duration = 150;\nconst defaultStyle = {\n transition: `all ${duration}ms ease-in-out`,\n opacity: 0,\n height: 0,\n pointerEvents: \"none\",\n overflow: \"hidden\"\n};\n\ntype TransitionStylesState = \"entering\" | \"entered\" | \"exiting\";\n\n/**\n * We are casting pointerEvents as any because csstype does not have PointerEvents exported. Or at least, that is the error.\n */\nconst transitionStyles = {\n entering: {\n opacity: 0,\n height: 0,\n padding: \"20px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n },\n entered: {\n opacity: 1,\n height: \"auto\",\n padding: \"20px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n },\n exiting: {\n height: \"auto\",\n padding: \"20px\",\n pointerEvents: \"auto\" as any,\n overflow: \"initial\"\n }\n};\n\nconst Divider = styled.span`\n width: 1px;\n margin: 0 15px;\n height: 100%;\n background-color: var(--mdc-theme-on-background);\n`;\n\nconst Actions = styled(ListItemMeta)`\n display: flex;\n height: 40%;\n align-items: center;\n`;\n\nexport interface AccordionItemProps {\n /**\n * Can user toggle the accordion item by clicking it? Defaults to `true`.\n */\n interactive?: boolean;\n /**\n * Actions to show on the right side of the accordion item\n */\n actions?: React.ReactElement | null;\n /**\n * Left side icon\n */\n icon?: React.ReactElement | null;\n\n /**\n * Accordion title\n */\n title?: React.ReactNode;\n\n /**\n * Optional description\n */\n description?: string;\n\n /**\n * Append a class name\n */\n className?: string;\n\n /**\n * Render item opened by default\n */\n open?: boolean;\n /**\n * For testing purpose\n */\n \"data-testid\"?: string;\n /**\n * Append a class name to Icon\n */\n iconClassName?: string;\n}\n\nconst AccordionItemComponent: React.FC<AccordionItemProps> = props => {\n const [open, setState] = useState<boolean>(props.open ? props.open : false);\n const { interactive = true, actions } = props;\n\n const toggleState = useCallback(() => {\n setState(!open);\n }, [open]);\n\n const onClick = interactive ? toggleState : undefined;\n const divider = interactive && actions ? <Divider /> : null;\n const arrowIcon = interactive ? <Icon icon={!open ? <DownArrow /> : <UpArrow />} /> : null;\n\n useEffect(() => {\n setState(!!props.open);\n }, [props.open]);\n\n return (\n <div className={classNames(\"webiny-ui-accordion-item\", props.className)}>\n <ListItem\n disabled={!interactive}\n className={classNames(\n listItem,\n { [openedState]: open },\n { [nonInteractive]: !interactive },\n \"webiny-ui-accordion-item__list-item\"\n )}\n onClick={onClick}\n data-testid={props[\"data-testid\"]}\n >\n {props.icon && (\n <ListItemGraphic>\n <Icon icon={props.icon} className={props.iconClassName} />\n </ListItemGraphic>\n )}\n\n <TitleContent className=\"webiny-ui-accordion-item__title\">\n <ListItemTitle>{props.title}</ListItemTitle>\n {props.description && (\n <ListItemDescription>\n <Typography use={\"body2\"}>{props.description}</Typography>\n </ListItemDescription>\n )}\n </TitleContent>\n <Actions>\n {props.actions ? props.actions : null}\n {divider}\n {arrowIcon}\n </Actions>\n </ListItem>\n <Transition in={open} timeout={duration}>\n {(state: TransitionStylesState) => (\n <Content\n style={{ ...defaultStyle, ...transitionStyles[state] }}\n className=\"webiny-ui-accordion-item__content\"\n >\n {props.children}\n </Content>\n )}\n </Transition>\n </div>\n );\n};\n\ntype AccordionItem = React.FC<AccordionItemProps> & {\n Divider: typeof Divider;\n Actions: typeof AccordionItemActions;\n Action: typeof AccordionItemAction;\n};\n\nexport const AccordionItem: AccordionItem = Object.assign(AccordionItemComponent, {\n Divider,\n Action: AccordionItemAction,\n Actions: AccordionItemActions\n});\n"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const AccordionItemActions: React.FC;
|
|
3
|
+
export interface AccordionItemActionProps {
|
|
4
|
+
icon: JSX.Element;
|
|
5
|
+
onClick: () => void;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const AccordionItemAction: ({ icon, onClick, disabled }: AccordionItemActionProps) => JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.AccordionItemActions = exports.AccordionItemAction = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _Button = require("../Button");
|
|
10
|
+
var AccordionItemActions = function AccordionItemActions(_ref) {
|
|
11
|
+
var children = _ref.children;
|
|
12
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
|
|
13
|
+
};
|
|
14
|
+
exports.AccordionItemActions = AccordionItemActions;
|
|
15
|
+
var AccordionItemAction = function AccordionItemAction(_ref2) {
|
|
16
|
+
var icon = _ref2.icon,
|
|
17
|
+
_onClick = _ref2.onClick,
|
|
18
|
+
disabled = _ref2.disabled;
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
|
|
20
|
+
disabled: disabled,
|
|
21
|
+
icon: icon,
|
|
22
|
+
onClick: function onClick(e) {
|
|
23
|
+
e.stopPropagation();
|
|
24
|
+
_onClick();
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
exports.AccordionItemAction = AccordionItemAction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AccordionItemActions","children","AccordionItemAction","icon","onClick","disabled","e","stopPropagation"],"sources":["AccordionItemActions.tsx"],"sourcesContent":["import React from \"react\";\nimport { IconButton } from \"~/Button\";\n\nexport const AccordionItemActions: React.FC = ({ children }) => {\n return <>{children}</>;\n};\n\nexport interface AccordionItemActionProps {\n icon: JSX.Element;\n onClick: () => void;\n disabled?: boolean;\n}\n\nexport const AccordionItemAction = ({ icon, onClick, disabled }: AccordionItemActionProps) => {\n return (\n <IconButton\n disabled={disabled}\n icon={icon}\n onClick={e => {\n e.stopPropagation();\n onClick();\n }}\n />\n );\n};\n"],"mappings":";;;;;;;AAAA;AACA;AAEO,IAAMA,oBAA8B,GAAG,SAAjCA,oBAA8B,OAAqB;EAAA,IAAfC,QAAQ,QAARA,QAAQ;EACrD,oBAAO,4DAAGA,QAAQ,CAAI;AAC1B,CAAC;AAAC;AAQK,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmB,QAA8D;EAAA,IAAxDC,IAAI,SAAJA,IAAI;IAAEC,QAAO,SAAPA,OAAO;IAAEC,QAAQ,SAARA,QAAQ;EACzD,oBACI,6BAAC,kBAAU;IACP,QAAQ,EAAEA,QAAS;IACnB,IAAI,EAAEF,IAAK;IACX,OAAO,EAAE,iBAAAG,CAAC,EAAI;MACVA,CAAC,CAACC,eAAe,EAAE;MACnBH,QAAO,EAAE;IACb;EAAE,EACJ;AAEV,CAAC;AAAC"}
|
package/Alert/Alert.d.ts
CHANGED
package/Alert/Alert.js
CHANGED
package/Alert/Alert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["alertStyles","css","borderLeft","margin","padding","fontWeight","lineHeight","color","marginBottom","fontSize","borderColor","Alert","props","title","type","children","rest"],"sources":["Alert.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\n\nconst alertStyles = css({\n borderLeft: \"3px solid red\",\n margin: \"5px 0 15px 0\",\n padding: \"2px 0 2px 10px\",\n \".webiny-ui-alert__title\": {\n fontWeight: 600,\n lineHeight: \"150%\",\n color: \"var(--mdc-theme-on-surface)\",\n marginBottom: 5\n },\n \".webiny-ui-alert__message\": {\n lineHeight: \"
|
|
1
|
+
{"version":3,"names":["alertStyles","css","borderLeft","margin","padding","fontWeight","lineHeight","color","marginBottom","fontSize","borderColor","Alert","props","title","type","children","rest"],"sources":["Alert.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\n\nconst alertStyles = css({\n borderLeft: \"3px solid red\",\n margin: \"5px 0 15px 0\",\n padding: \"2px 0 2px 10px\",\n \".webiny-ui-alert__title\": {\n fontWeight: 600,\n lineHeight: \"150%\",\n color: \"var(--mdc-theme-on-surface)\",\n marginBottom: 5\n },\n \".webiny-ui-alert__message\": {\n lineHeight: \"120%\",\n fontSize: 14,\n color: \"var(--mdc-theme-on-surface)\"\n },\n \"&.webiny-ui-alert--success\": {\n borderColor: \"#21CEAF\"\n },\n \"&.webiny-ui-alert--info\": {\n borderColor: \"#29A9DB\"\n },\n \"&.webiny-ui-alert--warning\": {\n borderColor: \"#F45C3C\"\n },\n \"&.webiny-ui-alert--danger\": {\n borderColor: \"#E4495C\"\n }\n});\n\nexport type AlertType = \"success\" | \"info\" | \"warning\" | \"danger\";\n\nexport interface AlertProps {\n // Alert title.\n title: string;\n\n // Alert type.\n type: AlertType;\n\n // Alert message.\n children?: React.ReactNode;\n\n // CSS class name\n className?: string;\n\n // Style object\n style?: React.CSSProperties;\n}\n\n/**\n * Use Alert component to display user's avatar.\n */\nconst Alert: React.FC<AlertProps> = props => {\n const { title, type, children, ...rest } = props;\n\n return (\n <div {...rest} className={alertStyles + \" webiny-ui-alert webiny-ui-alert--\" + type}>\n <p className={\"webiny-ui-alert__title\"}>{title}</p>\n <p className={\"webiny-ui-alert__message\"}>{children}</p>\n </div>\n );\n};\n\nexport { Alert };\n"],"mappings":";;;;;;;;AAAA;AACA;AAA8B;AAE9B,IAAMA,WAAW,gBAAG,IAAAC,YAAG,EAAC;EACpBC,UAAU,EAAE,eAAe;EAC3BC,MAAM,EAAE,cAAc;EACtBC,OAAO,EAAE,gBAAgB;EACzB,yBAAyB,EAAE;IACvBC,UAAU,EAAE,GAAG;IACfC,UAAU,EAAE,MAAM;IAClBC,KAAK,EAAE,6BAA6B;IACpCC,YAAY,EAAE;EAClB,CAAC;EACD,2BAA2B,EAAE;IACzBF,UAAU,EAAE,MAAM;IAClBG,QAAQ,EAAE,EAAE;IACZF,KAAK,EAAE;EACX,CAAC;EACD,4BAA4B,EAAE;IAC1BG,WAAW,EAAE;EACjB,CAAC;EACD,yBAAyB,EAAE;IACvBA,WAAW,EAAE;EACjB,CAAC;EACD,4BAA4B,EAAE;IAC1BA,WAAW,EAAE;EACjB,CAAC;EACD,2BAA2B,EAAE;IACzBA,WAAW,EAAE;EACjB;AACJ,CAAC,uBAAC;AAqBF;AACA;AACA;AACA,IAAMC,KAA2B,GAAG,SAA9BA,KAA2B,CAAGC,KAAK,EAAI;EACzC,IAAQC,KAAK,GAA8BD,KAAK,CAAxCC,KAAK;IAAEC,IAAI,GAAwBF,KAAK,CAAjCE,IAAI;IAAEC,QAAQ,GAAcH,KAAK,CAA3BG,QAAQ;IAAKC,IAAI,0CAAKJ,KAAK;EAEhD,oBACI,sDAASI,IAAI;IAAE,SAAS,EAAEhB,WAAW,GAAG,oCAAoC,GAAGc;EAAK,iBAChF;IAAG,SAAS,EAAE;EAAyB,GAAED,KAAK,CAAK,eACnD;IAAG,SAAS,EAAE;EAA2B,GAAEE,QAAQ,CAAK,CACtD;AAEd,CAAC;AAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["story","storiesOf","module","add","readme","info","propTables","Alert"],"sources":["Alert.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport {\n Story,\n StoryReadme,\n StorySandboxCode,\n StorySandbox,\n StorySandboxExample\n} from \"@webiny/storybook-utils/Story\";\nimport readme from \"./README.md\";\n\nimport { Alert } from \"./Alert\";\n\nconst story = storiesOf(\"Components/Alert\", module);\n\nstory.add(\n \"usage\",\n () => {\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox>\n <StorySandboxExample title={\"Info\"}>\n <Alert title={\"Something went wrong!\"} type={\"info\"}>\n We failed to fetch your data.\n </Alert>\n </StorySandboxExample>\n <StorySandboxCode>\n <Alert title={\"Something went wrong!\"} type={\"info\"}>\n We failed to fetch your data.\n </Alert>\n </StorySandboxCode>\n </StorySandbox>\n <StorySandbox>\n <StorySandboxExample title={\"Danger\"}>\n <Alert title={\"Something went wrong!\"} type={\"danger\"}>\n Please contact support!\n </Alert>\n </StorySandboxExample>\n <StorySandboxCode>\n <Alert title={\"Something went wrong!\"} type={\"danger\"}>\n Please contact support!\n </Alert>\n </StorySandboxCode>\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [Alert] } }\n);\n"],"mappings":";;;AAAA;AACA;AACA;AAOA;AAEA;AAEA,IAAMA,KAAK,GAAG,IAAAC,iBAAS,EAAC,kBAAkB,EAAEC,MAAM,CAAC;AAEnDF,KAAK,CAACG,GAAG,CACL,OAAO,EACP,YAAM;EACF,oBACI,6BAAC,YAAK,qBACF,6BAAC,kBAAW,QAAEC,eAAM,CAAe,eACnC,6BAAC,mBAAY,qBACT,6BAAC,0BAAmB;IAAC,KAAK,EAAE;EAAO,gBAC/B,6BAAC,YAAK;IAAC,KAAK,EAAE,uBAAwB;IAAC,IAAI,EAAE;EAAO,
|
|
1
|
+
{"version":3,"names":["story","storiesOf","module","add","readme","info","propTables","Alert"],"sources":["Alert.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport {\n Story,\n StoryReadme,\n StorySandboxCode,\n StorySandbox,\n StorySandboxExample\n} from \"@webiny/storybook-utils/Story\";\nimport readme from \"./README.md\";\n\nimport { Alert } from \"./Alert\";\n\nconst story = storiesOf(\"Components/Alert\", module);\n\nstory.add(\n \"usage\",\n () => {\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox>\n <StorySandboxExample title={\"Info\"}>\n <Alert title={\"Something went wrong!\"} type={\"info\"}>\n We failed to fetch your data.\n </Alert>\n </StorySandboxExample>\n <StorySandboxCode>\n <Alert title={\"Something went wrong!\"} type={\"info\"}>\n We failed to fetch your data.\n </Alert>\n </StorySandboxCode>\n </StorySandbox>\n <StorySandbox>\n <StorySandboxExample title={\"Danger\"}>\n <Alert title={\"Something went wrong!\"} type={\"danger\"}>\n Please contact support!\n </Alert>\n </StorySandboxExample>\n <StorySandboxCode>\n <Alert title={\"Something went wrong!\"} type={\"danger\"}>\n Please contact support!\n </Alert>\n </StorySandboxCode>\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [Alert] } }\n);\n"],"mappings":";;;AAAA;AACA;AACA;AAOA;AAEA;AAEA,IAAMA,KAAK,GAAG,IAAAC,iBAAS,EAAC,kBAAkB,EAAEC,MAAM,CAAC;AAEnDF,KAAK,CAACG,GAAG,CACL,OAAO,EACP,YAAM;EACF,oBACI,6BAAC,YAAK,qBACF,6BAAC,kBAAW,QAAEC,eAAM,CAAe,eACnC,6BAAC,mBAAY,qBACT,6BAAC,0BAAmB;IAAC,KAAK,EAAE;EAAO,gBAC/B,6BAAC,YAAK;IAAC,KAAK,EAAE,uBAAwB;IAAC,IAAI,EAAE;EAAO,GAAC,+BAErD,CAAQ,CACU,eACtB,6BAAC,uBAAgB,qBACb,6BAAC,YAAK;IAAC,KAAK,EAAE,uBAAwB;IAAC,IAAI,EAAE;EAAO,GAAC,+BAErD,CAAQ,CACO,CACR,eACf,6BAAC,mBAAY,qBACT,6BAAC,0BAAmB;IAAC,KAAK,EAAE;EAAS,gBACjC,6BAAC,YAAK;IAAC,KAAK,EAAE,uBAAwB;IAAC,IAAI,EAAE;EAAS,GAAC,yBAEvD,CAAQ,CACU,eACtB,6BAAC,uBAAgB,qBACb,6BAAC,YAAK;IAAC,KAAK,EAAE,uBAAwB;IAAC,IAAI,EAAE;EAAS,GAAC,yBAEvD,CAAQ,CACO,CACR,CACX;AAEhB,CAAC,EACD;EAAEC,IAAI,EAAE;IAAEC,UAAU,EAAE,CAACC,YAAK;EAAE;AAAE,CAAC,CACpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["menuStyles","css","top","bottom","listStyles","listStyle","paddingLeft","margin","Placement","Spinner","OptionsList","placement","getMenuProps","children","classNames","AutoComplete","inputValue","React","createRef","previousProps","props","value","options","previousValue","item","find","option","getOptionValue","downshift","current","selectItem","isOpen","highlightedIndex","selectedItem","getItemProps","state","length","renderItem","filtered","filter","aliases","findInAliases","getOptionText","toLowerCase","includes","noResultFound","map","index","itemValue","itemClassNames","suggestionList","selected","className","call","onChange","onInput","validation","isValid","message","otherInputProps","downshiftProps","autoCompleteStyle","itemToString","defaultSelectedItem","selection","setState","getInputProps","openMenu","rest","trailingIcon","loading","rawOnChange","ev","onBlur","onFocus","onKeyDown","keyCode","keycode","setTimeout","onKeyUp","target","currentTarget","disabled","readOnly","renderOptions","Component","valueProp","textProp"],"sources":["AutoComplete.tsx"],"sourcesContent":["import React from \"react\";\nimport Downshift, { ControllerStateAndHelpers, PropGetters } from \"downshift\";\nimport { Input } from \"~/Input\";\nimport classNames from \"classnames\";\nimport { Elevation } from \"~/Elevation\";\nimport { Typography } from \"~/Typography\";\nimport keycode from \"keycode\";\nimport { autoCompleteStyle, suggestionList } from \"./styles\";\nimport { AutoCompleteBaseProps } from \"./types\";\nimport { getOptionValue, getOptionText, findInAliases } from \"./utils\";\nimport { isEqual } from \"lodash\";\nimport MaterialSpinner from \"react-spinner-material\";\nimport { css } from \"emotion\";\n\nconst menuStyles = css({\n top: \"unset !important\",\n bottom: 75\n});\n\nconst listStyles = css({\n \"&.autocomplete__options-list\": {\n listStyle: \"none\",\n paddingLeft: 0,\n \"& li\": {\n margin: 0\n }\n }\n});\n\nexport enum Placement {\n top = \"top\",\n bottom = \"bottom\"\n}\n\nexport interface AutoCompleteProps extends Omit<AutoCompleteBaseProps, \"onChange\"> {\n /* Placement position of dropdown menu, can be either `top` or `bottom`. */\n placement?: Placement;\n\n /* A callback that is executed each time a value is changed. */\n onChange?: (value: any, selection?: any) => void;\n\n /* If true, will show a loading spinner on the right side of the input. */\n loading?: boolean;\n\n /* A component that renders supporting UI in case of no result found. */\n noResultFound?: React.ReactNode;\n}\n\ninterface State {\n inputValue: string;\n}\n\nconst Spinner: React.FC = () => {\n return (\n <MaterialSpinner\n size={24}\n spinnerColor={\"var(--mdc-theme-primary)\"}\n spinnerWidth={2}\n visible\n />\n );\n};\n\ninterface RenderOptionsParams\n extends Omit<ControllerStateAndHelpers<any>, \"getInputProps\" | \"openMenu\"> {\n options: AutoCompleteProps[\"options\"];\n placement?: Placement;\n}\n\ninterface OptionsListProps {\n placement?: Placement;\n getMenuProps: PropGetters<Record<string, any>>[\"getMenuProps\"];\n}\n\nconst OptionsList: React.FC<OptionsListProps> = ({ placement, getMenuProps, children }) => {\n return (\n <Elevation\n z={1}\n className={classNames({\n [menuStyles]: placement === Placement.top\n })}\n >\n <ul\n className={classNames(\"autocomplete__options-list\", listStyles)}\n {...getMenuProps()}\n >\n {children}\n </ul>\n </Elevation>\n );\n};\n\nclass AutoComplete extends React.Component<AutoCompleteProps, State> {\n static defaultProps: Partial<AutoCompleteProps> = {\n valueProp: \"id\",\n textProp: \"name\",\n options: [],\n placement: Placement.bottom,\n /**\n * We cast this as AutoComplete because renderItem() is executed via .call() where AutoComplete instance is assigned as this.\n */\n renderItem(item: any) {\n return (\n <Typography use={\"body2\"}>\n {getOptionText(item, (this as unknown as AutoComplete).props)}\n </Typography>\n );\n }\n };\n\n public override state: State = {\n inputValue: \"\"\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n downshift: any = React.createRef();\n\n public override componentDidUpdate(previousProps: AutoCompleteProps) {\n const { value, options } = this.props;\n const { value: previousValue } = previousProps;\n\n if (!isEqual(value, previousValue)) {\n let item = null;\n\n if (value) {\n if (typeof value === \"object\") {\n item = value;\n } else {\n item =\n options.find(option => {\n return value === getOptionValue(option, this.props);\n }) || null;\n }\n }\n\n const { current: downshift } = this.downshift;\n downshift && downshift.selectItem(item);\n }\n }\n\n /**\n * Renders options - based on user's input. It will try to match input text with available options.\n */\n private renderOptions({\n options,\n isOpen,\n highlightedIndex,\n selectedItem,\n getMenuProps,\n getItemProps,\n placement\n }: RenderOptionsParams) {\n if (!isOpen) {\n return null;\n }\n /**\n * Suggest user to start typing when there are no options available to choose from.\n */\n if (!this.state.inputValue && !options.length) {\n return (\n <OptionsList placement={placement} getMenuProps={getMenuProps}>\n <li>\n <Typography use={\"body2\"}>Start typing to find entry</Typography>\n </li>\n </OptionsList>\n );\n }\n\n const { renderItem } = this.props;\n\n const filtered = options.filter(item => {\n // 2) At the end, we want to show only options that are matched by typed text.\n if (!this.state.inputValue) {\n return true;\n }\n\n if (item.aliases) {\n return findInAliases(item, this.state.inputValue);\n }\n\n return getOptionText(item, this.props)\n .toLowerCase()\n .includes(this.state.inputValue.toLowerCase());\n });\n\n if (!filtered.length) {\n return (\n <OptionsList placement={placement} getMenuProps={getMenuProps}>\n <li>\n <Typography use={\"body2\"}>No results.</Typography>\n {this.props.noResultFound}\n </li>\n </OptionsList>\n );\n }\n\n return (\n <OptionsList placement={placement} getMenuProps={getMenuProps}>\n {filtered.map((item, index) => {\n const itemValue = getOptionValue(item, this.props);\n\n // Base classes.\n const itemClassNames = {\n [suggestionList]: true,\n highlighted: highlightedIndex === index,\n selected: false\n };\n\n // Add \"selected\" class if the item is selected.\n if (selectedItem && getOptionValue(selectedItem, this.props) === itemValue) {\n itemClassNames.selected = true;\n }\n\n // Render the item.\n return (\n <li\n key={itemValue}\n {...getItemProps({\n index,\n item,\n className: classNames(itemClassNames)\n })}\n >\n {renderItem.call(this, item, index)}\n </li>\n );\n })}\n </OptionsList>\n );\n }\n\n public override render() {\n const {\n className,\n options,\n onChange,\n value,\n // valueProp,\n // textProp,\n onInput,\n validation = {\n isValid: null,\n message: null\n },\n placement,\n ...otherInputProps\n } = this.props;\n\n // Downshift related props.\n const downshiftProps = {\n className: autoCompleteStyle,\n itemToString: (item: any) => getOptionText(item, this.props),\n defaultSelectedItem: value,\n onChange: (selection: string) => {\n if (!selection || !onChange) {\n return;\n }\n onChange(getOptionValue(selection, this.props), selection);\n this.setState(state => ({\n ...state,\n inputValue: \"\"\n }));\n }\n };\n\n return (\n <div className={classNames(autoCompleteStyle, className)}>\n <Downshift {...downshiftProps} ref={this.downshift}>\n {({ getInputProps, openMenu, ...rest }) => (\n <div>\n <Input\n {...getInputProps({\n // This prop is above `otherInputProps` since it can be overridden by the user.\n trailingIcon: this.props.loading && <Spinner />,\n ...otherInputProps,\n // @ts-ignore\n validation,\n rawOnChange: true,\n onChange: ev => ev,\n onBlur: ev => ev,\n onFocus: ev => {\n openMenu();\n otherInputProps.onFocus && otherInputProps.onFocus(ev);\n },\n onKeyDown: (ev: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode: string = keycode(ev as unknown as Event);\n\n if (keyCode === \"backspace\") {\n if (onChange) {\n onChange(null);\n }\n setTimeout(() => openMenu(), 50);\n }\n },\n onKeyUp: (ev: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode: string = keycode(ev as unknown as Event);\n\n const target = ev.currentTarget;\n const inputValue = target.value || \"\";\n\n // If user pressed 'esc', 'enter' or similar...\n if (\n keyCode &&\n keyCode.length > 1 &&\n keyCode !== \"backspace\"\n ) {\n return;\n }\n\n // If values are the same, exit, do not update current search term.\n if (inputValue === this.state.inputValue) {\n return;\n }\n\n this.setState(\n state => ({\n ...state,\n inputValue\n }),\n () => {\n onInput && onInput(inputValue);\n }\n );\n }\n })}\n />\n {!otherInputProps.disabled &&\n !otherInputProps.readOnly &&\n this.renderOptions({\n ...rest,\n options,\n placement\n })}\n </div>\n )}\n </Downshift>\n </div>\n );\n }\n}\n\nexport { AutoComplete };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["menuStyles","css","top","bottom","listStyles","listStyle","paddingLeft","margin","Placement","Spinner","OptionsList","placement","getMenuProps","children","classNames","AutoComplete","inputValue","React","createRef","previousProps","props","value","options","previousValue","item","find","option","getOptionValue","downshift","current","selectItem","isOpen","highlightedIndex","selectedItem","getItemProps","state","length","renderItem","filtered","filter","aliases","findInAliases","getOptionText","toLowerCase","includes","noResultFound","map","index","itemValue","itemClassNames","suggestionList","selected","className","call","onChange","onInput","validation","isValid","message","otherInputProps","downshiftProps","autoCompleteStyle","itemToString","defaultSelectedItem","selection","setState","getInputProps","openMenu","rest","trailingIcon","loading","rawOnChange","ev","onBlur","onFocus","onKeyDown","keyCode","keycode","setTimeout","onKeyUp","target","currentTarget","disabled","readOnly","renderOptions","Component","valueProp","textProp"],"sources":["AutoComplete.tsx"],"sourcesContent":["import React from \"react\";\nimport Downshift, { ControllerStateAndHelpers, PropGetters } from \"downshift\";\nimport { Input } from \"~/Input\";\nimport classNames from \"classnames\";\nimport { Elevation } from \"~/Elevation\";\nimport { Typography } from \"~/Typography\";\nimport keycode from \"keycode\";\nimport { autoCompleteStyle, suggestionList } from \"./styles\";\nimport { AutoCompleteBaseProps } from \"./types\";\nimport { getOptionValue, getOptionText, findInAliases } from \"./utils\";\nimport { isEqual } from \"lodash\";\nimport MaterialSpinner from \"react-spinner-material\";\nimport { css } from \"emotion\";\n\nconst menuStyles = css({\n top: \"unset !important\",\n bottom: 75\n});\n\nconst listStyles = css({\n \"&.autocomplete__options-list\": {\n listStyle: \"none\",\n paddingLeft: 0,\n \"& li\": {\n margin: 0\n }\n }\n});\n\nexport enum Placement {\n top = \"top\",\n bottom = \"bottom\"\n}\n\nexport interface AutoCompleteProps extends Omit<AutoCompleteBaseProps, \"onChange\"> {\n /* Placement position of dropdown menu, can be either `top` or `bottom`. */\n placement?: Placement;\n\n /* A callback that is executed each time a value is changed. */\n onChange?: (value: any, selection?: any) => void;\n\n /* If true, will show a loading spinner on the right side of the input. */\n loading?: boolean;\n\n /* A component that renders supporting UI in case of no result found. */\n noResultFound?: React.ReactNode;\n}\n\ninterface State {\n inputValue: string;\n}\n\nconst Spinner: React.FC = () => {\n return (\n <MaterialSpinner\n size={24}\n spinnerColor={\"var(--mdc-theme-primary)\"}\n spinnerWidth={2}\n visible\n />\n );\n};\n\ninterface RenderOptionsParams\n extends Omit<ControllerStateAndHelpers<any>, \"getInputProps\" | \"openMenu\"> {\n options: AutoCompleteProps[\"options\"];\n placement?: Placement;\n}\n\ninterface OptionsListProps {\n placement?: Placement;\n getMenuProps: PropGetters<Record<string, any>>[\"getMenuProps\"];\n}\n\nconst OptionsList: React.FC<OptionsListProps> = ({ placement, getMenuProps, children }) => {\n return (\n <Elevation\n z={1}\n className={classNames({\n [menuStyles]: placement === Placement.top\n })}\n >\n <ul\n className={classNames(\"autocomplete__options-list\", listStyles)}\n {...getMenuProps()}\n >\n {children}\n </ul>\n </Elevation>\n );\n};\n\nclass AutoComplete extends React.Component<AutoCompleteProps, State> {\n static defaultProps: Partial<AutoCompleteProps> = {\n valueProp: \"id\",\n textProp: \"name\",\n options: [],\n placement: Placement.bottom,\n /**\n * We cast this as AutoComplete because renderItem() is executed via .call() where AutoComplete instance is assigned as this.\n */\n renderItem(item: any) {\n return (\n <Typography use={\"body2\"}>\n {getOptionText(item, (this as unknown as AutoComplete).props)}\n </Typography>\n );\n }\n };\n\n public override state: State = {\n inputValue: \"\"\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n downshift: any = React.createRef();\n\n public override componentDidUpdate(previousProps: AutoCompleteProps) {\n const { value, options } = this.props;\n const { value: previousValue } = previousProps;\n\n if (!isEqual(value, previousValue)) {\n let item = null;\n\n if (value) {\n if (typeof value === \"object\") {\n item = value;\n } else {\n item =\n options.find(option => {\n return value === getOptionValue(option, this.props);\n }) || null;\n }\n }\n\n const { current: downshift } = this.downshift;\n downshift && downshift.selectItem(item);\n }\n }\n\n /**\n * Renders options - based on user's input. It will try to match input text with available options.\n */\n private renderOptions({\n options,\n isOpen,\n highlightedIndex,\n selectedItem,\n getMenuProps,\n getItemProps,\n placement\n }: RenderOptionsParams) {\n if (!isOpen) {\n return null;\n }\n /**\n * Suggest user to start typing when there are no options available to choose from.\n */\n if (!this.state.inputValue && !options.length) {\n return (\n <OptionsList placement={placement} getMenuProps={getMenuProps}>\n <li>\n <Typography use={\"body2\"}>Start typing to find entry</Typography>\n </li>\n </OptionsList>\n );\n }\n\n const { renderItem } = this.props;\n\n const filtered = options.filter(item => {\n // 2) At the end, we want to show only options that are matched by typed text.\n if (!this.state.inputValue) {\n return true;\n }\n\n if (item.aliases) {\n return findInAliases(item, this.state.inputValue);\n }\n\n return getOptionText(item, this.props)\n .toLowerCase()\n .includes(this.state.inputValue.toLowerCase());\n });\n\n if (!filtered.length) {\n return (\n <OptionsList placement={placement} getMenuProps={getMenuProps}>\n <li>\n <Typography use={\"body2\"}>No results.</Typography>\n {this.props.noResultFound}\n </li>\n </OptionsList>\n );\n }\n\n return (\n <OptionsList placement={placement} getMenuProps={getMenuProps}>\n {filtered.map((item, index) => {\n const itemValue = getOptionValue(item, this.props);\n\n // Base classes.\n const itemClassNames = {\n [suggestionList]: true,\n highlighted: highlightedIndex === index,\n selected: false\n };\n\n // Add \"selected\" class if the item is selected.\n if (selectedItem && getOptionValue(selectedItem, this.props) === itemValue) {\n itemClassNames.selected = true;\n }\n\n // Render the item.\n return (\n <li\n key={itemValue}\n {...getItemProps({\n index,\n item,\n className: classNames(itemClassNames)\n })}\n >\n {renderItem.call(this, item, index)}\n </li>\n );\n })}\n </OptionsList>\n );\n }\n\n public override render() {\n const {\n className,\n options,\n onChange,\n value,\n // valueProp,\n // textProp,\n onInput,\n validation = {\n isValid: null,\n message: null\n },\n placement,\n ...otherInputProps\n } = this.props;\n\n // Downshift related props.\n const downshiftProps = {\n className: autoCompleteStyle,\n itemToString: (item: any) => getOptionText(item, this.props),\n defaultSelectedItem: value,\n onChange: (selection: string) => {\n if (!selection || !onChange) {\n return;\n }\n onChange(getOptionValue(selection, this.props), selection);\n this.setState(state => ({\n ...state,\n inputValue: \"\"\n }));\n }\n };\n\n return (\n <div className={classNames(autoCompleteStyle, className)}>\n <Downshift {...downshiftProps} ref={this.downshift}>\n {({ getInputProps, openMenu, ...rest }) => (\n <div>\n <Input\n {...getInputProps({\n // This prop is above `otherInputProps` since it can be overridden by the user.\n trailingIcon: this.props.loading && <Spinner />,\n ...otherInputProps,\n // @ts-ignore\n validation,\n rawOnChange: true,\n onChange: ev => ev,\n onBlur: ev => ev,\n onFocus: ev => {\n openMenu();\n otherInputProps.onFocus && otherInputProps.onFocus(ev);\n },\n onKeyDown: (ev: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode: string = keycode(ev as unknown as Event);\n\n if (keyCode === \"backspace\") {\n if (onChange) {\n onChange(null);\n }\n setTimeout(() => openMenu(), 50);\n }\n },\n onKeyUp: (ev: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode: string = keycode(ev as unknown as Event);\n\n const target = ev.currentTarget;\n const inputValue = target.value || \"\";\n\n // If user pressed 'esc', 'enter' or similar...\n if (\n keyCode &&\n keyCode.length > 1 &&\n keyCode !== \"backspace\"\n ) {\n return;\n }\n\n // If values are the same, exit, do not update current search term.\n if (inputValue === this.state.inputValue) {\n return;\n }\n\n this.setState(\n state => ({\n ...state,\n inputValue\n }),\n () => {\n onInput && onInput(inputValue);\n }\n );\n }\n })}\n />\n {!otherInputProps.disabled &&\n !otherInputProps.readOnly &&\n this.renderOptions({\n ...rest,\n options,\n placement\n })}\n </div>\n )}\n </Downshift>\n </div>\n );\n }\n}\n\nexport { AutoComplete };\n"],"mappings":"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"}
|