@webiny/ui 5.33.5 → 5.34.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/Accordion/Accordion.js +1 -5
  2. package/Accordion/Accordion.js.map +1 -1
  3. package/Accordion/AccordionItem.d.ts +18 -2
  4. package/Accordion/AccordionItem.js +46 -48
  5. package/Accordion/AccordionItem.js.map +1 -1
  6. package/Accordion/AccordionItemActions.d.ts +8 -0
  7. package/Accordion/AccordionItemActions.js +36 -0
  8. package/Accordion/AccordionItemActions.js.map +1 -0
  9. package/Alert/Alert.d.ts +1 -1
  10. package/Alert/Alert.js +1 -1
  11. package/Alert/Alert.js.map +1 -1
  12. package/Button/Button.d.ts +30 -1
  13. package/Button/Button.js +2 -3
  14. package/Button/Button.js.map +1 -1
  15. package/CodeEditor/CodeEditor.d.ts +2 -0
  16. package/CodeEditor/CodeEditor.js +4 -0
  17. package/CodeEditor/CodeEditor.js.map +1 -1
  18. package/DataTable/DataTable.d.ts +22 -0
  19. package/DataTable/DataTable.js +162 -0
  20. package/DataTable/DataTable.js.map +1 -0
  21. package/DataTable/DataTable.stories.d.ts +1 -0
  22. package/DataTable/DataTable.stories.js +77 -0
  23. package/DataTable/DataTable.stories.js.map +1 -0
  24. package/DataTable/README.md +72 -0
  25. package/DataTable/index.d.ts +1 -0
  26. package/DataTable/index.js +18 -0
  27. package/DataTable/index.js.map +1 -0
  28. package/DataTable/styled.d.ts +2 -0
  29. package/DataTable/styled.js +18 -0
  30. package/DataTable/styled.js.map +1 -0
  31. package/DelayedOnChange/DelayedOnChange.d.ts +40 -0
  32. package/DelayedOnChange/DelayedOnChange.js +129 -0
  33. package/DelayedOnChange/DelayedOnChange.js.map +1 -0
  34. package/DelayedOnChange/index.d.ts +2 -0
  35. package/DelayedOnChange/index.js +23 -0
  36. package/DelayedOnChange/index.js.map +1 -0
  37. package/DelayedOnChange/withDelayedOnChange.d.ts +3 -0
  38. package/DelayedOnChange/withDelayedOnChange.js +37 -0
  39. package/DelayedOnChange/withDelayedOnChange.js.map +1 -0
  40. package/Dialog/Dialog.js +5 -2
  41. package/Dialog/Dialog.js.map +1 -1
  42. package/Image/Image.js +3 -1
  43. package/Image/Image.js.map +1 -1
  44. package/ImageUpload/styled.d.ts +3 -3
  45. package/Input/Input.d.ts +1 -1
  46. package/Input/Input.js.map +1 -1
  47. package/List/DataList/DataList.js +11 -52
  48. package/List/DataList/DataList.js.map +1 -1
  49. package/List/DataList/Loader.d.ts +2 -2
  50. package/List/DataList/Loader.js +35 -49
  51. package/List/DataList/Loader.js.map +1 -1
  52. package/Menu/Menu.js +5 -1
  53. package/Menu/Menu.js.map +1 -1
  54. package/Skeleton/README.md +21 -0
  55. package/Skeleton/Skeleton.d.ts +4 -0
  56. package/Skeleton/Skeleton.js +25 -0
  57. package/Skeleton/Skeleton.js.map +1 -0
  58. package/Skeleton/Skeleton.stories.d.ts +1 -0
  59. package/Skeleton/Skeleton.stories.js +28 -0
  60. package/Skeleton/Skeleton.stories.js.map +1 -0
  61. package/Skeleton/index.d.ts +1 -0
  62. package/Skeleton/index.js +18 -0
  63. package/Skeleton/index.js.map +1 -0
  64. package/Switch/Switch.d.ts +1 -1
  65. package/Switch/Switch.js.map +1 -1
  66. package/Tabs/Tab.d.ts +1 -0
  67. package/Tabs/Tab.js +4 -1
  68. package/Tabs/Tab.js.map +1 -1
  69. package/Tabs/Tabs.d.ts +1 -0
  70. package/Tabs/Tabs.js +8 -1
  71. package/Tabs/Tabs.js.map +1 -1
  72. package/Tags/Tags.d.ts +8 -15
  73. package/Tags/Tags.js +83 -112
  74. package/Tags/Tags.js.map +1 -1
  75. package/Typography/Typography.d.ts +2 -2
  76. package/Typography/Typography.js.map +1 -1
  77. package/package.json +19 -17
  78. package/styles.scss +2 -3
  79. package/types.d.ts +3 -3
  80. package/types.js.map +1 -1
@@ -20,11 +20,7 @@ var _emotion = require("emotion");
20
20
  var _classnames = _interopRequireDefault(require("classnames"));
21
21
 
22
22
  var _excluded = ["children", "elevation", "className"];
23
- var listStyle = /*#__PURE__*/(0, _emotion.css)({
24
- "&.mdc-list": {
25
- padding: 0
26
- }
27
- }, "label:listStyle;");
23
+ var listStyle = /*#__PURE__*/(0, _emotion.css)("&.mdc-list{padding:0;&.mdc-list--two-line .mdc-list-item{height:48px;padding:8px 20px;}}label:listStyle;");
28
24
 
29
25
  var Accordion = function Accordion(props) {
30
26
  var children = props.children,
@@ -1 +1 @@
1
- {"version":3,"names":["listStyle","css","padding","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 }\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;;;AAsBA,IAAMA,SAAS,gBAAG,IAAAC,YAAA,EAAI;EAClB,cAAc;IACVC,OAAO,EAAE;EADC;AADI,CAAJ,qBAAlB;;AAMA,IAAMC,SAAmC,GAAG,SAAtCA,SAAsC,CAAAC,KAAK,EAAI;EACjD,IAAQC,QAAR,GAAyDD,KAAzD,CAAQC,QAAR;EAAA,uBAAyDD,KAAzD,CAAkBE,SAAlB;EAAA,IAAkBA,SAAlB,iCAA8B,CAA9B;EAAA,IAAiCC,SAAjC,GAAyDH,KAAzD,CAAiCG,SAAjC;EAAA,IAA+CC,KAA/C,0CAAyDJ,KAAzD;EACA,oBACI,6BAAC,oBAAD;IAAW,CAAC,EAAEE,SAAd;IAAyB,SAAS,EAAE,IAAAG,mBAAA,EAAW,qBAAX,EAAkCF,SAAlC;EAApC,gBACI,6BAAC,UAAD;IAAM,OAAO,MAAb;IAAc,SAAS,EAAEP;EAAzB,GAAwCQ,KAAxC,GACKH,QADL,CADJ,CADJ;AAOH,CATD"}
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;;;AAsBA,IAAMA,SAAS,oBAAGC,YAAH,6GAAf;;AAUA,IAAMC,SAAmC,GAAG,SAAtCA,SAAsC,CAAAC,KAAK,EAAI;EACjD,IAAQC,QAAR,GAAyDD,KAAzD,CAAQC,QAAR;EAAA,uBAAyDD,KAAzD,CAAkBE,SAAlB;EAAA,IAAkBA,SAAlB,iCAA8B,CAA9B;EAAA,IAAiCC,SAAjC,GAAyDH,KAAzD,CAAiCG,SAAjC;EAAA,IAA+CC,KAA/C,0CAAyDJ,KAAzD;EACA,oBACI,6BAAC,oBAAD;IAAW,CAAC,EAAEE,SAAd;IAAyB,SAAS,EAAE,IAAAG,mBAAA,EAAW,qBAAX,EAAkCF,SAAlC;EAApC,gBACI,6BAAC,UAAD;IAAM,OAAO,MAAb;IAAc,SAAS,EAAEN;EAAzB,GAAwCO,KAAxC,GACKH,QADL,CADJ,CADJ;AAOH,CATD"}
@@ -1,5 +1,16 @@
1
+ /// <reference types="web" />
1
2
  import React from "react";
3
+ import { AccordionItemAction, AccordionItemActions } from "./AccordionItemActions";
4
+ declare const Divider: import("@emotion/styled-base").StyledComponent<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, Pick<React.ClassAttributes<HTMLSpanElement> & React.HTMLAttributes<HTMLSpanElement>, keyof React.HTMLAttributes<HTMLSpanElement>>, object>;
2
5
  export interface AccordionItemProps {
6
+ /**
7
+ * Can user toggle the accordion item by clicking it? Defaults to `true`.
8
+ */
9
+ interactive?: boolean;
10
+ /**
11
+ * Actions to show on the right side of the accordion item
12
+ */
13
+ actions?: React.ReactElement | null;
3
14
  /**
4
15
  * Left side icon
5
16
  */
@@ -29,5 +40,10 @@ export interface AccordionItemProps {
29
40
  */
30
41
  iconClassName?: string;
31
42
  }
32
- declare const AccordionItem: React.FC<AccordionItemProps>;
33
- export { AccordionItem };
43
+ declare type AccordionItem = React.FC<AccordionItemProps> & {
44
+ Divider: typeof Divider;
45
+ Actions: typeof AccordionItemActions;
46
+ Action: typeof AccordionItemAction;
47
+ };
48
+ export declare const AccordionItem: AccordionItem;
49
+ export {};
@@ -35,49 +35,27 @@ var _roundKeyboard_arrow_down24px = require("./icons/round-keyboard_arrow_down-2
35
35
 
36
36
  var _classnames = _interopRequireDefault(require("classnames"));
37
37
 
38
+ var _AccordionItemActions = require("./AccordionItemActions");
39
+
38
40
  var Content = /*#__PURE__*/(0, _styled.default)("div", {
39
- target: "eypjd5u0",
40
- label: "Content"
41
- })({
42
- width: "100%",
43
- borderRight: "1px solid var(--mdc-theme-background)",
44
- borderBottom: "1px solid var(--mdc-theme-background)",
45
- borderLeft: "1px solid var(--mdc-theme-background)",
46
- boxSizing: "border-box"
47
- });
48
- var listItem = /*#__PURE__*/(0, _emotion.css)({
49
- padding: "0 16px",
50
- cursor: "pointer",
51
- borderBottom: "1px solid var(--mdc-theme-background)",
52
- height: 48,
53
- "&:last-child": {
54
- borderBottom: "none"
55
- },
56
- ".mdc-list-item__graphic": {
57
- marginRight: 20
58
- }
59
- }, "label:listItem;");
41
+ label: "Content",
42
+ target: "eypjd5u0"
43
+ })("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;}");
44
+ 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;");
60
45
  var ListItemTitle = /*#__PURE__*/(0, _styled.default)("div", {
61
- target: "eypjd5u1",
62
- label: "ListItemTitle"
63
- })({
64
- fontWeight: 600,
65
- marginBottom: 5
66
- });
46
+ label: "ListItemTitle",
47
+ target: "eypjd5u1"
48
+ })("font-weight:600;line-height:100%;");
67
49
  var ListItemDescription = /*#__PURE__*/(0, _styled.default)("div", {
68
- target: "eypjd5u2",
69
- label: "ListItemDescription"
70
- })({});
50
+ label: "ListItemDescription",
51
+ target: "eypjd5u2"
52
+ })("line-height:100%;");
71
53
  var TitleContent = /*#__PURE__*/(0, _styled.default)("div", {
72
- target: "eypjd5u3",
73
- label: "TitleContent"
74
- })({
75
- display: "flex",
76
- flexDirection: "column"
77
- });
78
- var openedState = /*#__PURE__*/(0, _emotion.css)({
79
- backgroundColor: "var(--mdc-theme-on-background)"
80
- }, "label:openedState;");
54
+ label: "TitleContent",
55
+ target: "eypjd5u3"
56
+ })("display:flex;flex-direction:column;");
57
+ var openedState = /*#__PURE__*/(0, _emotion.css)("background-color:var(--mdc-theme-on-background);label:openedState;");
58
+ var nonInteractive = /*#__PURE__*/(0, _emotion.css)("background-color:var(--mdc-theme-surface);label:nonInteractive;");
81
59
  var duration = 150;
82
60
  var defaultStyle = {
83
61
  transition: "all ".concat(duration, "ms ease-in-out"),
@@ -112,24 +90,41 @@ var transitionStyles = {
112
90
  overflow: "initial"
113
91
  }
114
92
  };
115
-
116
- var AccordionItem = function AccordionItem(props) {
93
+ var Divider = /*#__PURE__*/(0, _styled.default)("span", {
94
+ label: "Divider",
95
+ target: "eypjd5u4"
96
+ })("width:1px;margin:0 15px;height:100%;background-color:var(--mdc-theme-on-background);");
97
+ var Actions = /*#__PURE__*/(0, _styled.default)(_List.ListItemMeta, {
98
+ label: "Actions",
99
+ target: "eypjd5u5"
100
+ })("display:flex;height:40%;align-items:center;");
101
+
102
+ var AccordionItemComponent = function AccordionItemComponent(props) {
117
103
  var _useState = (0, _react.useState)(props.open ? props.open : false),
118
104
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
119
105
  open = _useState2[0],
120
106
  setState = _useState2[1];
121
107
 
108
+ var _props$interactive = props.interactive,
109
+ interactive = _props$interactive === void 0 ? true : _props$interactive,
110
+ actions = props.actions;
122
111
  var toggleState = (0, _react.useCallback)(function () {
123
112
  setState(!open);
124
113
  }, [open]);
114
+ var onClick = interactive ? toggleState : undefined;
115
+ var divider = interactive && actions ? /*#__PURE__*/_react.default.createElement(Divider, null) : null;
116
+ var arrowIcon = interactive ? /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
117
+ icon: !open ? /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_down24px.ReactComponent, null) : /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_up24px.ReactComponent, null)
118
+ }) : null;
125
119
  (0, _react.useEffect)(function () {
126
- setState(props.open ? true : false);
120
+ setState(!!props.open);
127
121
  }, [props.open]);
128
122
  return /*#__PURE__*/_react.default.createElement("div", {
129
123
  className: (0, _classnames.default)("webiny-ui-accordion-item", props.className)
130
124
  }, /*#__PURE__*/_react.default.createElement(_List.ListItem, {
131
- className: (0, _classnames.default)(listItem, (0, _defineProperty2.default)({}, openedState, open), "webiny-ui-accordion-item__list-item"),
132
- onClick: toggleState,
125
+ disabled: !interactive,
126
+ className: (0, _classnames.default)(listItem, (0, _defineProperty2.default)({}, openedState, open), (0, _defineProperty2.default)({}, nonInteractive, !interactive), "webiny-ui-accordion-item__list-item"),
127
+ onClick: onClick,
133
128
  "data-testid": props["data-testid"]
134
129
  }, props.icon && /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
135
130
  icon: props.icon,
@@ -137,10 +132,8 @@ var AccordionItem = function AccordionItem(props) {
137
132
  })), /*#__PURE__*/_react.default.createElement(TitleContent, {
138
133
  className: "webiny-ui-accordion-item__title"
139
134
  }, /*#__PURE__*/_react.default.createElement(ListItemTitle, null, props.title), props.description && /*#__PURE__*/_react.default.createElement(ListItemDescription, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
140
- use: "subtitle2"
141
- }, props.description))), /*#__PURE__*/_react.default.createElement(_List.ListItemMeta, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
142
- icon: !open ? /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_down24px.ReactComponent, null) : /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_up24px.ReactComponent, null)
143
- }))), /*#__PURE__*/_react.default.createElement(_Transition.default, {
135
+ use: "body2"
136
+ }, props.description))), /*#__PURE__*/_react.default.createElement(Actions, null, props.actions ? props.actions : null, divider, arrowIcon)), /*#__PURE__*/_react.default.createElement(_Transition.default, {
144
137
  in: open,
145
138
  timeout: duration
146
139
  }, function (state) {
@@ -151,4 +144,9 @@ var AccordionItem = function AccordionItem(props) {
151
144
  }));
152
145
  };
153
146
 
147
+ var AccordionItem = Object.assign(AccordionItemComponent, {
148
+ Divider: Divider,
149
+ Action: _AccordionItemActions.AccordionItemAction,
150
+ Actions: _AccordionItemActions.AccordionItemActions
151
+ });
154
152
  exports.AccordionItem = AccordionItem;
@@ -1 +1 @@
1
- {"version":3,"names":["Content","styled","width","borderRight","borderBottom","borderLeft","boxSizing","listItem","css","padding","cursor","height","marginRight","ListItemTitle","fontWeight","marginBottom","ListItemDescription","TitleContent","display","flexDirection","openedState","backgroundColor","duration","defaultStyle","transition","opacity","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: \"0 16px\",\n cursor: \"pointer\",\n borderBottom: \"1px solid var(--mdc-theme-background)\",\n height: 48,\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\",\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\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={\"subtitle2\"}>{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":";;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AAEA,IAAMA,OAAO,oBAAGC,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAC1BC,KAAK,EAAE,MADmB;EAE1BC,WAAW,EAAE,uCAFa;EAG1BC,YAAY,EAAE,uCAHY;EAI1BC,UAAU,EAAE,uCAJc;EAK1BC,SAAS,EAAE;AALe,CAAjB,CAAb;AAQA,IAAMC,QAAQ,gBAAG,IAAAC,YAAA,EAAI;EACjBC,OAAO,EAAE,QADQ;EAEjBC,MAAM,EAAE,SAFS;EAGjBN,YAAY,EAAE,uCAHG;EAIjBO,MAAM,EAAE,EAJS;EAKjB,gBAAgB;IACZP,YAAY,EAAE;EADF,CALC;EAQjB,2BAA2B;IACvBQ,WAAW,EAAE;EADU;AARV,CAAJ,oBAAjB;AAaA,IAAMC,aAAa,oBAAGZ,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAChCa,UAAU,EAAE,GADoB;EAEhCC,YAAY,EAAE;AAFkB,CAAjB,CAAnB;AAKA,IAAMC,mBAAmB,oBAAGf,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB,EAAjB,CAAzB;AAEA,IAAMgB,YAAY,oBAAGhB,eAAH,EAAU,KAAV;EAAA;EAAA;AAAA,GAAiB;EAC/BiB,OAAO,EAAE,MADsB;EAE/BC,aAAa,EAAE;AAFgB,CAAjB,CAAlB;AAKA,IAAMC,WAAW,gBAAG,IAAAZ,YAAA,EAAI;EACpBa,eAAe,EAAE;AADG,CAAJ,uBAApB;AAIA,IAAMC,QAAQ,GAAG,GAAjB;AACA,IAAMC,YAAY,GAAG;EACjBC,UAAU,gBAASF,QAAT,mBADO;EAEjBG,OAAO,EAAE,CAFQ;EAGjBd,MAAM,EAAE,CAHS;EAIjBe,aAAa,EAAE,MAJE;EAKjBC,QAAQ,EAAE;AALO,CAArB;;AAUA;AACA;AACA;AACA,IAAMC,gBAAgB,GAAG;EACrBC,QAAQ,EAAE;IACNJ,OAAO,EAAE,CADH;IAENd,MAAM,EAAE,CAFF;IAGNF,OAAO,EAAE,MAHH;IAINiB,aAAa,EAAE,MAJT;IAKNC,QAAQ,EAAE;EALJ,CADW;EAQrBG,OAAO,EAAE;IACLL,OAAO,EAAE,CADJ;IAELd,MAAM,EAAE,MAFH;IAGLF,OAAO,EAAE,MAHJ;IAILiB,aAAa,EAAE,MAJV;IAKLC,QAAQ,EAAE;EALL,CARY;EAerBI,OAAO,EAAE;IACLpB,MAAM,EAAE,MADH;IAELF,OAAO,EAAE,MAFJ;IAGLiB,aAAa,EAAE,MAHV;IAILC,QAAQ,EAAE;EAJL;AAfY,CAAzB;;AA0DA,IAAMK,aAA2C,GAAG,SAA9CA,aAA8C,CAAAC,KAAK,EAAI;EACzD,gBAAyB,IAAAC,eAAA,EAAkBD,KAAK,CAACE,IAAN,GAAaF,KAAK,CAACE,IAAnB,GAA0B,KAA5C,CAAzB;EAAA;EAAA,IAAOA,IAAP;EAAA,IAAaC,QAAb;;EAEA,IAAMC,WAAW,GAAG,IAAAC,kBAAA,EAAY,YAAM;IAClCF,QAAQ,CAAC,CAACD,IAAF,CAAR;EACH,CAFmB,EAEjB,CAACA,IAAD,CAFiB,CAApB;EAIA,IAAAI,gBAAA,EAAU,YAAM;IACZH,QAAQ,CAACH,KAAK,CAACE,IAAN,GAAa,IAAb,GAAoB,KAArB,CAAR;EACH,CAFD,EAEG,CAACF,KAAK,CAACE,IAAP,CAFH;EAIA,oBACI;IAAK,SAAS,EAAE,IAAAK,mBAAA,EAAW,0BAAX,EAAuCP,KAAK,CAACQ,SAA7C;EAAhB,gBACI,6BAAC,cAAD;IACI,SAAS,EAAE,IAAAD,mBAAA,EACPjC,QADO,oCAEJa,WAFI,EAEUe,IAFV,GAGP,qCAHO,CADf;IAMI,OAAO,EAAEE,WANb;IAOI,eAAaJ,KAAK,CAAC,aAAD;EAPtB,GASKA,KAAK,CAACS,IAAN,iBACG,6BAAC,qBAAD,qBACI,6BAAC,UAAD;IAAM,IAAI,EAAET,KAAK,CAACS,IAAlB;IAAwB,SAAS,EAAET,KAAK,CAACU;EAAzC,EADJ,CAVR,eAeI,6BAAC,YAAD;IAAc,SAAS,EAAC;EAAxB,gBACI,6BAAC,aAAD,QAAgBV,KAAK,CAACW,KAAtB,CADJ,EAEKX,KAAK,CAACY,WAAN,iBACG,6BAAC,mBAAD,qBACI,6BAAC,sBAAD;IAAY,GAAG,EAAE;EAAjB,GAA+BZ,KAAK,CAACY,WAArC,CADJ,CAHR,CAfJ,eAuBI,6BAAC,kBAAD,qBACI,6BAAC,UAAD;IAAM,IAAI,EAAE,CAACV,IAAD,gBAAQ,6BAAC,4CAAD,OAAR,gBAAwB,6BAAC,0CAAD;EAApC,EADJ,CAvBJ,CADJ,eA4BI,6BAAC,mBAAD;IAAY,EAAE,EAAEA,IAAhB;IAAsB,OAAO,EAAEb;EAA/B,GACK,UAACwB,KAAD;IAAA,oBACG,6BAAC,OAAD;MACI,KAAK,8DAAOvB,YAAP,GAAwBK,gBAAgB,CAACkB,KAAD,CAAxC,CADT;MAEI,SAAS,EAAC;IAFd,GAIKb,KAAK,CAACc,QAJX,CADH;EAAA,CADL,CA5BJ,CADJ;AAyCH,CApDD"}
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,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.AccordionItemActions = exports.AccordionItemAction = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _Button = require("../Button");
13
+
14
+ var AccordionItemActions = function AccordionItemActions(_ref) {
15
+ var children = _ref.children;
16
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
17
+ };
18
+
19
+ exports.AccordionItemActions = AccordionItemActions;
20
+
21
+ var AccordionItemAction = function AccordionItemAction(_ref2) {
22
+ var icon = _ref2.icon,
23
+ _onClick = _ref2.onClick,
24
+ disabled = _ref2.disabled;
25
+ return /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
26
+ disabled: disabled,
27
+ icon: icon,
28
+ onClick: function onClick(e) {
29
+ e.stopPropagation();
30
+
31
+ _onClick();
32
+ }
33
+ });
34
+ };
35
+
36
+ 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,oBAAiC,OAAkB;EAAA,IAAfC,QAAe,QAAfA,QAAe;EAC5D,oBAAO,4DAAGA,QAAH,CAAP;AACH,CAFM;;;;AAUA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,QAA2D;EAAA,IAAxDC,IAAwD,SAAxDA,IAAwD;EAAA,IAAlDC,QAAkD,SAAlDA,OAAkD;EAAA,IAAzCC,QAAyC,SAAzCA,QAAyC;EAC1F,oBACI,6BAAC,kBAAD;IACI,QAAQ,EAAEA,QADd;IAEI,IAAI,EAAEF,IAFV;IAGI,OAAO,EAAE,iBAAAG,CAAC,EAAI;MACVA,CAAC,CAACC,eAAF;;MACAH,QAAO;IACV;EANL,EADJ;AAUH,CAXM"}
package/Alert/Alert.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  export declare type AlertType = "success" | "info" | "warning" | "danger";
3
- interface AlertProps {
3
+ export interface AlertProps {
4
4
  title: string;
5
5
  type: AlertType;
6
6
  children?: React.ReactNode;
package/Alert/Alert.js CHANGED
@@ -25,7 +25,7 @@ var alertStyles = /*#__PURE__*/(0, _emotion.css)({
25
25
  marginBottom: 5
26
26
  },
27
27
  ".webiny-ui-alert__message": {
28
- lineHeight: "100%",
28
+ lineHeight: "120%",
29
29
  fontSize: 14,
30
30
  color: "var(--mdc-theme-on-surface)"
31
31
  },
@@ -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: \"100%\",\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\ninterface 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;;;AAEA,IAAMA,WAAW,gBAAG,IAAAC,YAAA,EAAI;EACpBC,UAAU,EAAE,eADQ;EAEpBC,MAAM,EAAE,cAFY;EAGpBC,OAAO,EAAE,gBAHW;EAIpB,2BAA2B;IACvBC,UAAU,EAAE,GADW;IAEvBC,UAAU,EAAE,MAFW;IAGvBC,KAAK,EAAE,6BAHgB;IAIvBC,YAAY,EAAE;EAJS,CAJP;EAUpB,6BAA6B;IACzBF,UAAU,EAAE,MADa;IAEzBG,QAAQ,EAAE,EAFe;IAGzBF,KAAK,EAAE;EAHkB,CAVT;EAepB,8BAA8B;IAC1BG,WAAW,EAAE;EADa,CAfV;EAkBpB,2BAA2B;IACvBA,WAAW,EAAE;EADU,CAlBP;EAqBpB,8BAA8B;IAC1BA,WAAW,EAAE;EADa,CArBV;EAwBpB,6BAA6B;IACzBA,WAAW,EAAE;EADY;AAxBT,CAAJ,uBAApB;;AAgDA;AACA;AACA;AACA,IAAMC,KAA2B,GAAG,SAA9BA,KAA8B,CAAAC,KAAK,EAAI;EACzC,IAAQC,KAAR,GAA2CD,KAA3C,CAAQC,KAAR;EAAA,IAAeC,IAAf,GAA2CF,KAA3C,CAAeE,IAAf;EAAA,IAAqBC,QAArB,GAA2CH,KAA3C,CAAqBG,QAArB;EAAA,IAAkCC,IAAlC,0CAA2CJ,KAA3C;EAEA,oBACI,sDAASI,IAAT;IAAe,SAAS,EAAEhB,WAAW,GAAG,oCAAd,GAAqDc;EAA/E,iBACI;IAAG,SAAS,EAAE;EAAd,GAAyCD,KAAzC,CADJ,eAEI;IAAG,SAAS,EAAE;EAAd,GAA2CE,QAA3C,CAFJ,CADJ;AAMH,CATD"}
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;;;AAEA,IAAMA,WAAW,gBAAG,IAAAC,YAAA,EAAI;EACpBC,UAAU,EAAE,eADQ;EAEpBC,MAAM,EAAE,cAFY;EAGpBC,OAAO,EAAE,gBAHW;EAIpB,2BAA2B;IACvBC,UAAU,EAAE,GADW;IAEvBC,UAAU,EAAE,MAFW;IAGvBC,KAAK,EAAE,6BAHgB;IAIvBC,YAAY,EAAE;EAJS,CAJP;EAUpB,6BAA6B;IACzBF,UAAU,EAAE,MADa;IAEzBG,QAAQ,EAAE,EAFe;IAGzBF,KAAK,EAAE;EAHkB,CAVT;EAepB,8BAA8B;IAC1BG,WAAW,EAAE;EADa,CAfV;EAkBpB,2BAA2B;IACvBA,WAAW,EAAE;EADU,CAlBP;EAqBpB,8BAA8B;IAC1BA,WAAW,EAAE;EADa,CArBV;EAwBpB,6BAA6B;IACzBA,WAAW,EAAE;EADY;AAxBT,CAAJ,uBAApB;;AAgDA;AACA;AACA;AACA,IAAMC,KAA2B,GAAG,SAA9BA,KAA8B,CAAAC,KAAK,EAAI;EACzC,IAAQC,KAAR,GAA2CD,KAA3C,CAAQC,KAAR;EAAA,IAAeC,IAAf,GAA2CF,KAA3C,CAAeE,IAAf;EAAA,IAAqBC,QAArB,GAA2CH,KAA3C,CAAqBG,QAArB;EAAA,IAAkCC,IAAlC,0CAA2CJ,KAA3C;EAEA,oBACI,sDAASI,IAAT;IAAe,SAAS,EAAEhB,WAAW,GAAG,oCAAd,GAAqDc;EAA/E,iBACI;IAAG,SAAS,EAAE;EAAd,GAAyCD,KAAzC,CADJ,eAEI;IAAG,SAAS,EAAE;EAAd,GAA2CE,QAA3C,CAFJ,CADJ;AAMH,CATD"}
@@ -4,16 +4,45 @@ import { FabProps } from "@rmwc/fab";
4
4
  import { IconProps } from "../Icon/Icon";
5
5
  import { SyntheticEvent } from "react";
6
6
  export interface ButtonProps {
7
+ /**
8
+ * Make button flat (only applicable to Primary button).
9
+ */
7
10
  flat?: boolean;
11
+ /**
12
+ * Make button smaller.
13
+ */
8
14
  small?: boolean;
9
- onClick?: (event: React.MouseEvent<any, MouseEvent>) => void | null;
15
+ /**
16
+ * Returning `any` allows us to pass callbacks to the button without worrying about their
17
+ * specific return types. Buttons don't use return values from callbacks, so we don't have to worry
18
+ * about their return types at all.
19
+ */
20
+ onClick?: (event: React.MouseEvent<any, MouseEvent>) => any;
21
+ /**
22
+ * Label and optionally an icon (using Button.Icon component).
23
+ */
10
24
  children?: React.ReactNode;
25
+ /**
26
+ * Show ripple effect on button click.
27
+ */
11
28
  ripple?: boolean;
29
+ /**
30
+ * Additional button class name.
31
+ */
12
32
  className?: string;
33
+ /**
34
+ * Is button disabled?
35
+ */
13
36
  disabled?: boolean;
37
+ /**
38
+ * Additional inline styles.
39
+ */
14
40
  style?: {
15
41
  [key: string]: any;
16
42
  };
43
+ /**
44
+ * ID of the element for testing purposes.
45
+ */
17
46
  "data-testid"?: string;
18
47
  }
19
48
  /**
package/Button/Button.js CHANGED
@@ -23,7 +23,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
23
23
 
24
24
  var _Button = require("./Button.styles");
25
25
 
26
- var _excluded = ["disabled", "icon", "onClick", "small", "label", "ripple", "className"];
26
+ var _excluded = ["disabled", "label", "icon", "onClick", "small", "ripple", "className"];
27
27
 
28
28
  /**
29
29
  * Shows a default button, used typically when action is not of high priority.
@@ -116,12 +116,11 @@ exports.ButtonSecondary = ButtonSecondary;
116
116
  */
117
117
  var ButtonFloating = function ButtonFloating(props) {
118
118
  var disabled = props.disabled,
119
+ label = props.label,
119
120
  icon = props.icon,
120
121
  onClick = props.onClick,
121
122
  _props$small3 = props.small,
122
123
  small = _props$small3 === void 0 ? false : _props$small3,
123
- _props$label = props.label,
124
- label = _props$label === void 0 ? null : _props$label,
125
124
  ripple = props.ripple,
126
125
  _props$className4 = props.className,
127
126
  className = _props$className4 === void 0 ? null : _props$className4,
@@ -1 +1 @@
1
- {"version":3,"names":["ButtonDefault","props","disabled","onClick","children","small","ripple","className","style","classNames","ButtonPrimary","flat","ButtonSecondary","webinyButtonStyles","ButtonFloating","icon","label","rest","ButtonIcon"],"sources":["Button.tsx"],"sourcesContent":["import React from \"react\";\nimport * as RmwcButton from \"@rmwc/button\";\nimport { Fab, FabProps } from \"@rmwc/fab\";\nimport { Icon, IconProps } from \"../Icon/Icon\";\nimport classNames from \"classnames\";\nimport { SyntheticEvent } from \"react\";\nimport { webinyButtonStyles } from \"./Button.styles\";\nexport interface ButtonProps {\n // Make button flat (only applicable to Primary button).\n flat?: boolean;\n\n // Make button smaller.\n small?: boolean;\n\n // onClick handler.\n onClick?: (event: React.MouseEvent<any, MouseEvent>) => void | null;\n\n // Label and optionally an icon (using Button.Icon component).\n children?: React.ReactNode;\n\n // Show ripple effect on button click. Default: true\n ripple?: boolean;\n\n className?: string;\n\n disabled?: boolean;\n\n style?: { [key: string]: any };\n\n // For testing purposes.\n \"data-testid\"?: string;\n}\n\n/**\n * Shows a default button, used typically when action is not of high priority.\n */\nexport const ButtonDefault: React.FC<ButtonProps> = props => {\n const { disabled, onClick, children, small, ripple, className = \"\", style } = props;\n\n return (\n <RmwcButton.Button\n style={style}\n disabled={disabled}\n dense={small}\n onClick={onClick}\n ripple={ripple}\n className={classNames(\"webiny-ui-button\", className)}\n data-testid={props[\"data-testid\"]}\n >\n {children}\n </RmwcButton.Button>\n );\n};\n\n/**\n * Shows primary button, eg. for submitting forms.\n */\nexport const ButtonPrimary: React.FC<ButtonProps> = props => {\n const {\n disabled,\n onClick,\n children,\n small = false,\n flat = false,\n ripple,\n style = {},\n className = null\n } = props;\n return (\n <RmwcButton.Button\n raised={!flat}\n dense={small}\n disabled={disabled}\n unelevated={flat}\n ripple={ripple}\n onClick={onClick}\n style={style}\n className={classNames(\"webiny-ui-button webiny-ui-button--primary\", className)}\n data-testid={props[\"data-testid\"]}\n >\n {children}\n </RmwcButton.Button>\n );\n};\n\n/**\n * Shows a secondary button - eg. for doing a reset on a form.\n */\nexport const ButtonSecondary: React.FC<ButtonProps> = props => {\n const {\n disabled,\n onClick,\n children,\n small = false,\n ripple,\n className = null,\n style = {}\n } = props;\n\n return (\n <RmwcButton.Button\n disabled={disabled}\n outlined\n dense={small}\n ripple={ripple}\n onClick={onClick}\n style={style}\n className={classNames(\n \"webiny-ui-button webiny-ui-button--secondary\",\n webinyButtonStyles,\n className\n )}\n data-testid={props[\"data-testid\"]}\n >\n {children}\n </RmwcButton.Button>\n );\n};\n\nexport type ButtonFloatingProps = ButtonProps &\n FabProps & {\n label?: React.ReactNode;\n icon?: React.ReactNode;\n onMouseDown?: (e: SyntheticEvent) => void;\n onMouseUp?: (e: SyntheticEvent) => void;\n };\n\n/**\n * A floating button, shown on the side of the screen, typically used for creating new content or accessing settings.\n */\nexport const ButtonFloating: React.FC<ButtonFloatingProps> = props => {\n const {\n disabled,\n icon,\n onClick,\n small = false,\n label = null,\n ripple,\n className = null,\n ...rest\n } = props;\n return (\n <Fab\n data-testid={props[\"data-testid\"]}\n disabled={disabled}\n mini={small}\n onClick={onClick}\n label={label}\n ripple={ripple}\n icon={icon}\n className={classNames(\"webiny-ui-button--floating\", className)}\n {...rest}\n />\n );\n};\n\n/**\n * Shows an icon, suitable to be shown inside of a button.\n */\nexport const ButtonIcon: React.FC<IconProps> = props => <Icon {...props} />;\n"],"mappings":"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"}
1
+ {"version":3,"names":["ButtonDefault","props","disabled","onClick","children","small","ripple","className","style","classNames","ButtonPrimary","flat","ButtonSecondary","webinyButtonStyles","ButtonFloating","label","icon","rest","ButtonIcon"],"sources":["Button.tsx"],"sourcesContent":["import React from \"react\";\nimport * as RmwcButton from \"@rmwc/button\";\nimport { Fab, FabProps } from \"@rmwc/fab\";\nimport { Icon, IconProps } from \"../Icon/Icon\";\nimport classNames from \"classnames\";\nimport { SyntheticEvent } from \"react\";\nimport { webinyButtonStyles } from \"./Button.styles\";\n\nexport interface ButtonProps {\n /**\n * Make button flat (only applicable to Primary button).\n */\n flat?: boolean;\n\n /**\n * Make button smaller.\n */\n small?: boolean;\n\n /**\n * Returning `any` allows us to pass callbacks to the button without worrying about their\n * specific return types. Buttons don't use return values from callbacks, so we don't have to worry\n * about their return types at all.\n */\n onClick?: (event: React.MouseEvent<any, MouseEvent>) => any;\n\n /**\n * Label and optionally an icon (using Button.Icon component).\n */\n children?: React.ReactNode;\n\n /**\n * Show ripple effect on button click.\n */\n ripple?: boolean;\n\n /**\n * Additional button class name.\n */\n className?: string;\n\n /**\n * Is button disabled?\n */\n disabled?: boolean;\n\n /**\n * Additional inline styles.\n */\n style?: { [key: string]: any };\n\n /**\n * ID of the element for testing purposes.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * Shows a default button, used typically when action is not of high priority.\n */\nexport const ButtonDefault: React.FC<ButtonProps> = props => {\n const { disabled, onClick, children, small, ripple, className = \"\", style } = props;\n\n return (\n <RmwcButton.Button\n style={style}\n disabled={disabled}\n dense={small}\n onClick={onClick}\n ripple={ripple}\n className={classNames(\"webiny-ui-button\", className)}\n data-testid={props[\"data-testid\"]}\n >\n {children}\n </RmwcButton.Button>\n );\n};\n\n/**\n * Shows primary button, eg. for submitting forms.\n */\nexport const ButtonPrimary: React.FC<ButtonProps> = props => {\n const {\n disabled,\n onClick,\n children,\n small = false,\n flat = false,\n ripple,\n style = {},\n className = null\n } = props;\n return (\n <RmwcButton.Button\n raised={!flat}\n dense={small}\n disabled={disabled}\n unelevated={flat}\n ripple={ripple}\n onClick={onClick}\n style={style}\n className={classNames(\"webiny-ui-button webiny-ui-button--primary\", className)}\n data-testid={props[\"data-testid\"]}\n >\n {children}\n </RmwcButton.Button>\n );\n};\n\n/**\n * Shows a secondary button - eg. for doing a reset on a form.\n */\nexport const ButtonSecondary: React.FC<ButtonProps> = props => {\n const {\n disabled,\n onClick,\n children,\n small = false,\n ripple,\n className = null,\n style = {}\n } = props;\n\n return (\n <RmwcButton.Button\n disabled={disabled}\n outlined\n dense={small}\n ripple={ripple}\n onClick={onClick}\n style={style}\n className={classNames(\n \"webiny-ui-button webiny-ui-button--secondary\",\n webinyButtonStyles,\n className\n )}\n data-testid={props[\"data-testid\"]}\n >\n {children}\n </RmwcButton.Button>\n );\n};\n\nexport type ButtonFloatingProps = ButtonProps &\n FabProps & {\n label?: React.ReactNode;\n icon?: React.ReactNode;\n onMouseDown?: (e: SyntheticEvent) => void;\n onMouseUp?: (e: SyntheticEvent) => void;\n };\n\n/**\n * A floating button, shown on the side of the screen, typically used for creating new content or accessing settings.\n */\nexport const ButtonFloating: React.FC<ButtonFloatingProps> = props => {\n const {\n disabled,\n label,\n icon,\n onClick,\n small = false,\n ripple,\n className = null,\n ...rest\n } = props;\n return (\n <Fab\n data-testid={props[\"data-testid\"]}\n disabled={disabled}\n mini={small}\n onClick={onClick}\n label={label}\n ripple={ripple}\n icon={icon}\n className={classNames(\"webiny-ui-button--floating\", className)}\n {...rest}\n />\n );\n};\n\n/**\n * Shows an icon, suitable to be shown inside of a button.\n */\nexport const ButtonIcon: React.FC<IconProps> = props => <Icon {...props} />;\n"],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import React from "react";
2
2
  import { FormComponentProps } from "../types";
3
+ import "brace/mode/html";
3
4
  import "brace/theme/github";
4
5
  import "brace/theme/twilight";
6
+ import "brace/theme/chrome";
5
7
  interface Props extends FormComponentProps {
6
8
  mode: string;
7
9
  theme: string;
@@ -27,10 +27,14 @@ var _emotion = require("emotion");
27
27
 
28
28
  var _reactAce = _interopRequireDefault(require("react-ace"));
29
29
 
30
+ require("brace/mode/html");
31
+
30
32
  require("brace/theme/github");
31
33
 
32
34
  require("brace/theme/twilight");
33
35
 
36
+ require("brace/theme/chrome");
37
+
34
38
  var _FormElementMessage = require("../FormElementMessage");
35
39
 
36
40
  var _excluded = ["value", "description", "validation", "theme"];
@@ -1 +1 @@
1
- {"version":3,"names":["webinyCheckboxHelperText","css","paddingTop","CodeEditor","value","props","onChange","description","validation","theme","rest","validationIsValid","isValid","validationMessage","message","String","React","Component"],"sources":["CodeEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { FormComponentProps } from \"~/types\";\nimport { css } from \"emotion\";\n\nimport AceEditor from \"react-ace\";\nimport \"brace/theme/github\";\nimport \"brace/theme/twilight\";\nimport { FormElementMessage } from \"~/FormElementMessage\";\n\n/**\n * Controls the helper text below the checkbox.\n * @type {string}\n */\nconst webinyCheckboxHelperText = css(\n {},\n {\n \"&.mdc-text-field-helper-text\": {\n paddingTop: 5\n }\n }\n);\n\ninterface Props extends FormComponentProps {\n mode: string;\n\n theme: string;\n\n // Description beneath the input.\n description?: React.ReactNode;\n}\n\n/**\n * CodeEditor component can be used to store simple boolean values.\n */\nclass CodeEditor extends React.Component<Props> {\n onChange = (value: string) => {\n this.props.onChange && this.props.onChange(value);\n };\n\n public override render() {\n const { value, description, validation, theme = \"github\", ...rest } = this.props;\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n return (\n <React.Fragment>\n <AceEditor\n value={value ? String(value) : \"\"}\n theme={theme}\n onChange={this.onChange}\n {...rest}\n width=\"100%\"\n className={\"mdc-text-field\"}\n />\n\n {validationIsValid === false && (\n <FormElementMessage error className={webinyCheckboxHelperText}>\n {validationMessage}\n </FormElementMessage>\n )}\n\n {validationIsValid !== false && description && (\n <FormElementMessage className={webinyCheckboxHelperText}>\n {description}\n </FormElementMessage>\n )}\n </React.Fragment>\n );\n }\n}\n\nexport { CodeEditor };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;;;AAEA;AACA;AACA;AACA;AACA,IAAMA,wBAAwB,gBAAG,IAAAC,YAAA,EAC7B,EAD6B,EAE7B;EACI,gCAAgC;IAC5BC,UAAU,EAAE;EADgB;AADpC,CAF6B,oCAAjC;;AAkBA;AACA;AACA;IACMC,U;;;;;;;;;;;;;;;2FACS,UAACC,KAAD,EAAmB;MAC1B,MAAKC,KAAL,CAAWC,QAAX,IAAuB,MAAKD,KAAL,CAAWC,QAAX,CAAoBF,KAApB,CAAvB;IACH,C;;;;;;WAED,kBAAyB;MACrB,kBAAsE,KAAKC,KAA3E;MAAA,IAAQD,KAAR,eAAQA,KAAR;MAAA,IAAeG,WAAf,eAAeA,WAAf;MAAA,IAA4BC,UAA5B,eAA4BA,UAA5B;MAAA,oCAAwCC,KAAxC;MAAA,IAAwCA,KAAxC,kCAAgD,QAAhD;MAAA,IAA6DC,IAA7D;;MAEA,WAAmEF,UAAU,IAAI,EAAjF;MAAA,IAAiBG,iBAAjB,QAAQC,OAAR;MAAA,IAA6CC,iBAA7C,QAAoCC,OAApC;;MAEA,oBACI,6BAAC,cAAD,CAAO,QAAP,qBACI,6BAAC,iBAAD;QACI,KAAK,EAAEV,KAAK,GAAGW,MAAM,CAACX,KAAD,CAAT,GAAmB,EADnC;QAEI,KAAK,EAAEK,KAFX;QAGI,QAAQ,EAAE,KAAKH;MAHnB,GAIQI,IAJR;QAKI,KAAK,EAAC,MALV;QAMI,SAAS,EAAE;MANf,GADJ,EAUKC,iBAAiB,KAAK,KAAtB,iBACG,6BAAC,sCAAD;QAAoB,KAAK,MAAzB;QAA0B,SAAS,EAAEX;MAArC,GACKa,iBADL,CAXR,EAgBKF,iBAAiB,KAAK,KAAtB,IAA+BJ,WAA/B,iBACG,6BAAC,sCAAD;QAAoB,SAAS,EAAEP;MAA/B,GACKO,WADL,CAjBR,CADJ;IAwBH;;;EAlCoBS,cAAA,CAAMC,S"}
1
+ {"version":3,"names":["webinyCheckboxHelperText","css","paddingTop","CodeEditor","value","props","onChange","description","validation","theme","rest","validationIsValid","isValid","validationMessage","message","String","React","Component"],"sources":["CodeEditor.tsx"],"sourcesContent":["import React from \"react\";\nimport { FormComponentProps } from \"~/types\";\nimport { css } from \"emotion\";\n\nimport AceEditor from \"react-ace\";\n// Modes\nimport \"brace/mode/html\";\n// Themes\nimport \"brace/theme/github\";\nimport \"brace/theme/twilight\";\nimport \"brace/theme/chrome\";\nimport { FormElementMessage } from \"~/FormElementMessage\";\n\n/**\n * Controls the helper text below the checkbox.\n * @type {string}\n */\nconst webinyCheckboxHelperText = css(\n {},\n {\n \"&.mdc-text-field-helper-text\": {\n paddingTop: 5\n }\n }\n);\n\ninterface Props extends FormComponentProps {\n mode: string;\n\n theme: string;\n\n // Description beneath the input.\n description?: React.ReactNode;\n}\n\n/**\n * CodeEditor component can be used to store simple boolean values.\n */\nclass CodeEditor extends React.Component<Props> {\n onChange = (value: string) => {\n this.props.onChange && this.props.onChange(value);\n };\n\n public override render() {\n const { value, description, validation, theme = \"github\", ...rest } = this.props;\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n return (\n <React.Fragment>\n <AceEditor\n value={value ? String(value) : \"\"}\n theme={theme}\n onChange={this.onChange}\n {...rest}\n width=\"100%\"\n className={\"mdc-text-field\"}\n />\n\n {validationIsValid === false && (\n <FormElementMessage error className={webinyCheckboxHelperText}>\n {validationMessage}\n </FormElementMessage>\n )}\n\n {validationIsValid !== false && description && (\n <FormElementMessage className={webinyCheckboxHelperText}>\n {description}\n </FormElementMessage>\n )}\n </React.Fragment>\n );\n }\n}\n\nexport { CodeEditor };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AAEA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;;;AAEA;AACA;AACA;AACA;AACA,IAAMA,wBAAwB,gBAAG,IAAAC,YAAA,EAC7B,EAD6B,EAE7B;EACI,gCAAgC;IAC5BC,UAAU,EAAE;EADgB;AADpC,CAF6B,oCAAjC;;AAkBA;AACA;AACA;IACMC,U;;;;;;;;;;;;;;;2FACS,UAACC,KAAD,EAAmB;MAC1B,MAAKC,KAAL,CAAWC,QAAX,IAAuB,MAAKD,KAAL,CAAWC,QAAX,CAAoBF,KAApB,CAAvB;IACH,C;;;;;;WAED,kBAAyB;MACrB,kBAAsE,KAAKC,KAA3E;MAAA,IAAQD,KAAR,eAAQA,KAAR;MAAA,IAAeG,WAAf,eAAeA,WAAf;MAAA,IAA4BC,UAA5B,eAA4BA,UAA5B;MAAA,oCAAwCC,KAAxC;MAAA,IAAwCA,KAAxC,kCAAgD,QAAhD;MAAA,IAA6DC,IAA7D;;MAEA,WAAmEF,UAAU,IAAI,EAAjF;MAAA,IAAiBG,iBAAjB,QAAQC,OAAR;MAAA,IAA6CC,iBAA7C,QAAoCC,OAApC;;MAEA,oBACI,6BAAC,cAAD,CAAO,QAAP,qBACI,6BAAC,iBAAD;QACI,KAAK,EAAEV,KAAK,GAAGW,MAAM,CAACX,KAAD,CAAT,GAAmB,EADnC;QAEI,KAAK,EAAEK,KAFX;QAGI,QAAQ,EAAE,KAAKH;MAHnB,GAIQI,IAJR;QAKI,KAAK,EAAC,MALV;QAMI,SAAS,EAAE;MANf,GADJ,EAUKC,iBAAiB,KAAK,KAAtB,iBACG,6BAAC,sCAAD;QAAoB,KAAK,MAAzB;QAA0B,SAAS,EAAEX;MAArC,GACKa,iBADL,CAXR,EAgBKF,iBAAiB,KAAK,KAAtB,IAA+BJ,WAA/B,iBACG,6BAAC,sCAAD;QAAoB,SAAS,EAAEP;MAA/B,GACKO,WADL,CAjBR,CADJ;IAwBH;;;EAlCoBS,cAAA,CAAMC,S"}
@@ -0,0 +1,22 @@
1
+ /// <reference types="react" />
2
+ import { DataTableCellProps } from "@rmwc/data-table";
3
+ import "@rmwc/data-table/data-table.css";
4
+ interface Column<T> {
5
+ header: string | number | JSX.Element;
6
+ cell?: (row: T) => string | number | JSX.Element;
7
+ meta?: DataTableCellProps;
8
+ className?: string;
9
+ }
10
+ export declare type Columns<T> = {
11
+ [P in keyof T]?: Column<T>;
12
+ };
13
+ interface Props<T> {
14
+ columns: Columns<T>;
15
+ data: T[];
16
+ onSelectRow?: (rows: T[] | []) => void;
17
+ loadingInitial?: boolean;
18
+ stickyColumns?: number;
19
+ stickyRows?: number;
20
+ }
21
+ export declare const DataTable: <T>({ columns, data, loadingInitial, onSelectRow, stickyColumns, stickyRows }: Props<T>) => JSX.Element;
22
+ export {};