@webiny/ui 0.0.0-unstable.5e7233243f → 0.0.0-unstable.60e968001a

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 (83) hide show
  1. package/Accordion/Accordion.d.ts +1 -1
  2. package/Accordion/Accordion.js +1 -5
  3. package/Accordion/Accordion.js.map +1 -1
  4. package/Accordion/AccordionItem.d.ts +18 -2
  5. package/Accordion/AccordionItem.js +49 -50
  6. package/Accordion/AccordionItem.js.map +1 -1
  7. package/Accordion/AccordionItemActions.d.ts +8 -0
  8. package/Accordion/AccordionItemActions.js +36 -0
  9. package/Accordion/AccordionItemActions.js.map +1 -0
  10. package/Alert/Alert.d.ts +1 -1
  11. package/Alert/Alert.js +1 -1
  12. package/Alert/Alert.js.map +1 -1
  13. package/Button/Button.d.ts +30 -1
  14. package/Button/Button.js +6 -11
  15. package/Button/Button.js.map +1 -1
  16. package/Button/IconButton/IconButton.js +1 -2
  17. package/Button/IconButton/IconButton.js.map +1 -1
  18. package/CodeEditor/CodeEditor.d.ts +2 -0
  19. package/CodeEditor/CodeEditor.js +4 -0
  20. package/CodeEditor/CodeEditor.js.map +1 -1
  21. package/DataTable/DataTable.d.ts +25 -0
  22. package/DataTable/DataTable.js +167 -0
  23. package/DataTable/DataTable.js.map +1 -0
  24. package/DataTable/DataTable.stories.d.ts +1 -0
  25. package/DataTable/DataTable.stories.js +77 -0
  26. package/DataTable/DataTable.stories.js.map +1 -0
  27. package/DataTable/README.md +72 -0
  28. package/DataTable/index.d.ts +1 -0
  29. package/DataTable/index.js +18 -0
  30. package/DataTable/index.js.map +1 -0
  31. package/DataTable/styled.d.ts +2 -0
  32. package/DataTable/styled.js +18 -0
  33. package/DataTable/styled.js.map +1 -0
  34. package/DelayedOnChange/DelayedOnChange.d.ts +40 -0
  35. package/DelayedOnChange/DelayedOnChange.js +129 -0
  36. package/DelayedOnChange/DelayedOnChange.js.map +1 -0
  37. package/DelayedOnChange/index.d.ts +2 -0
  38. package/DelayedOnChange/index.js +23 -0
  39. package/DelayedOnChange/index.js.map +1 -0
  40. package/DelayedOnChange/withDelayedOnChange.d.ts +3 -0
  41. package/DelayedOnChange/withDelayedOnChange.js +37 -0
  42. package/DelayedOnChange/withDelayedOnChange.js.map +1 -0
  43. package/Dialog/Dialog.js +5 -2
  44. package/Dialog/Dialog.js.map +1 -1
  45. package/Image/Image.js +3 -1
  46. package/Image/Image.js.map +1 -1
  47. package/Input/Input.d.ts +2 -12
  48. package/Input/Input.js +90 -127
  49. package/Input/Input.js.map +1 -1
  50. package/List/DataList/DataList.js +11 -52
  51. package/List/DataList/DataList.js.map +1 -1
  52. package/List/DataList/Loader.d.ts +2 -2
  53. package/List/DataList/Loader.js +35 -49
  54. package/List/DataList/Loader.js.map +1 -1
  55. package/Menu/Menu.js +5 -1
  56. package/Menu/Menu.js.map +1 -1
  57. package/Skeleton/README.md +21 -0
  58. package/Skeleton/Skeleton.d.ts +4 -0
  59. package/Skeleton/Skeleton.js +25 -0
  60. package/Skeleton/Skeleton.js.map +1 -0
  61. package/Skeleton/Skeleton.stories.d.ts +1 -0
  62. package/Skeleton/Skeleton.stories.js +28 -0
  63. package/Skeleton/Skeleton.stories.js.map +1 -0
  64. package/Skeleton/index.d.ts +1 -0
  65. package/Skeleton/index.js +18 -0
  66. package/Skeleton/index.js.map +1 -0
  67. package/Switch/Switch.d.ts +1 -1
  68. package/Switch/Switch.js.map +1 -1
  69. package/Tabs/Tab.d.ts +1 -0
  70. package/Tabs/Tab.js +4 -1
  71. package/Tabs/Tab.js.map +1 -1
  72. package/Tabs/Tabs.d.ts +1 -0
  73. package/Tabs/Tabs.js +8 -1
  74. package/Tabs/Tabs.js.map +1 -1
  75. package/Tags/Tags.d.ts +8 -15
  76. package/Tags/Tags.js +83 -112
  77. package/Tags/Tags.js.map +1 -1
  78. package/Typography/Typography.d.ts +2 -2
  79. package/Typography/Typography.js.map +1 -1
  80. package/package.json +19 -17
  81. package/styles.scss +2 -3
  82. package/types.d.ts +3 -3
  83. package/types.js.map +1 -1
@@ -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
  */
@@ -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: React.ReactElement<typeof ListItem>[] | 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;;;AAmBA,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,48 +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: "15px 20px",
50
- cursor: "pointer",
51
- borderBottom: "1px solid var(--mdc-theme-background)",
52
- "&:last-child": {
53
- borderBottom: "none"
54
- },
55
- ".mdc-list-item__graphic": {
56
- marginRight: 20
57
- }
58
- }, "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;");
59
45
  var ListItemTitle = /*#__PURE__*/(0, _styled.default)("div", {
60
- target: "eypjd5u1",
61
- label: "ListItemTitle"
62
- })({
63
- fontWeight: 600,
64
- marginBottom: 5
65
- });
46
+ label: "ListItemTitle",
47
+ target: "eypjd5u1"
48
+ })("font-weight:600;line-height:100%;");
66
49
  var ListItemDescription = /*#__PURE__*/(0, _styled.default)("div", {
67
- target: "eypjd5u2",
68
- label: "ListItemDescription"
69
- })({});
50
+ label: "ListItemDescription",
51
+ target: "eypjd5u2"
52
+ })("line-height:100%;");
70
53
  var TitleContent = /*#__PURE__*/(0, _styled.default)("div", {
71
- target: "eypjd5u3",
72
- label: "TitleContent"
73
- })({
74
- display: "flex",
75
- flexDirection: "column"
76
- });
77
- var openedState = /*#__PURE__*/(0, _emotion.css)({
78
- backgroundColor: "var(--mdc-theme-on-background)"
79
- }, "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;");
80
59
  var duration = 150;
81
60
  var defaultStyle = {
82
61
  transition: "all ".concat(duration, "ms ease-in-out"),
@@ -93,42 +72,59 @@ var transitionStyles = {
93
72
  entering: {
94
73
  opacity: 0,
95
74
  height: 0,
96
- padding: "20px 20px 20px 65px",
75
+ padding: "20px",
97
76
  pointerEvents: "auto",
98
77
  overflow: "initial"
99
78
  },
100
79
  entered: {
101
80
  opacity: 1,
102
81
  height: "auto",
103
- padding: "20px 20px 20px 65px",
82
+ padding: "20px",
104
83
  pointerEvents: "auto",
105
84
  overflow: "initial"
106
85
  },
107
86
  exiting: {
108
87
  height: "auto",
109
- padding: "20px 20px 20px 65px",
88
+ padding: "20px",
110
89
  pointerEvents: "auto",
111
90
  overflow: "initial"
112
91
  }
113
92
  };
114
-
115
- 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) {
116
103
  var _useState = (0, _react.useState)(props.open ? props.open : false),
117
104
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
118
105
  open = _useState2[0],
119
106
  setState = _useState2[1];
120
107
 
108
+ var _props$interactive = props.interactive,
109
+ interactive = _props$interactive === void 0 ? true : _props$interactive,
110
+ actions = props.actions;
121
111
  var toggleState = (0, _react.useCallback)(function () {
122
112
  setState(!open);
123
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;
124
119
  (0, _react.useEffect)(function () {
125
- setState(props.open ? true : false);
120
+ setState(!!props.open);
126
121
  }, [props.open]);
127
122
  return /*#__PURE__*/_react.default.createElement("div", {
128
123
  className: (0, _classnames.default)("webiny-ui-accordion-item", props.className)
129
124
  }, /*#__PURE__*/_react.default.createElement(_List.ListItem, {
130
- className: (0, _classnames.default)(listItem, (0, _defineProperty2.default)({}, openedState, open), "webiny-ui-accordion-item__list-item"),
131
- 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,
132
128
  "data-testid": props["data-testid"]
133
129
  }, props.icon && /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
134
130
  icon: props.icon,
@@ -136,10 +132,8 @@ var AccordionItem = function AccordionItem(props) {
136
132
  })), /*#__PURE__*/_react.default.createElement(TitleContent, {
137
133
  className: "webiny-ui-accordion-item__title"
138
134
  }, /*#__PURE__*/_react.default.createElement(ListItemTitle, null, props.title), props.description && /*#__PURE__*/_react.default.createElement(ListItemDescription, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
139
- use: "subtitle2"
140
- }, props.description))), /*#__PURE__*/_react.default.createElement(_List.ListItemMeta, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
141
- icon: !open ? /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_down24px.ReactComponent, null) : /*#__PURE__*/_react.default.createElement(_roundKeyboard_arrow_up24px.ReactComponent, null)
142
- }))), /*#__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, {
143
137
  in: open,
144
138
  timeout: duration
145
139
  }, function (state) {
@@ -150,4 +144,9 @@ var AccordionItem = function AccordionItem(props) {
150
144
  }));
151
145
  };
152
146
 
147
+ var AccordionItem = Object.assign(AccordionItemComponent, {
148
+ Divider: Divider,
149
+ Action: _AccordionItemActions.AccordionItemAction,
150
+ Actions: _AccordionItemActions.AccordionItemActions
151
+ });
153
152
  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={\"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":"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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,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.
@@ -33,8 +33,7 @@ var ButtonDefault = function ButtonDefault(props) {
33
33
  onClick = props.onClick,
34
34
  children = props.children,
35
35
  small = props.small,
36
- _props$ripple = props.ripple,
37
- ripple = _props$ripple === void 0 ? true : _props$ripple,
36
+ ripple = props.ripple,
38
37
  _props$className = props.className,
39
38
  className = _props$className === void 0 ? "" : _props$className,
40
39
  style = props.style;
@@ -63,8 +62,7 @@ var ButtonPrimary = function ButtonPrimary(props) {
63
62
  small = _props$small === void 0 ? false : _props$small,
64
63
  _props$flat = props.flat,
65
64
  flat = _props$flat === void 0 ? false : _props$flat,
66
- _props$ripple2 = props.ripple,
67
- ripple = _props$ripple2 === void 0 ? true : _props$ripple2,
65
+ ripple = props.ripple,
68
66
  _props$style = props.style,
69
67
  style = _props$style === void 0 ? {} : _props$style,
70
68
  _props$className2 = props.className,
@@ -94,8 +92,7 @@ var ButtonSecondary = function ButtonSecondary(props) {
94
92
  children = props.children,
95
93
  _props$small2 = props.small,
96
94
  small = _props$small2 === void 0 ? false : _props$small2,
97
- _props$ripple3 = props.ripple,
98
- ripple = _props$ripple3 === void 0 ? true : _props$ripple3,
95
+ ripple = props.ripple,
99
96
  _props$className3 = props.className,
100
97
  className = _props$className3 === void 0 ? null : _props$className3,
101
98
  _props$style2 = props.style,
@@ -119,14 +116,12 @@ exports.ButtonSecondary = ButtonSecondary;
119
116
  */
120
117
  var ButtonFloating = function ButtonFloating(props) {
121
118
  var disabled = props.disabled,
119
+ label = props.label,
122
120
  icon = props.icon,
123
121
  onClick = props.onClick,
124
122
  _props$small3 = props.small,
125
123
  small = _props$small3 === void 0 ? false : _props$small3,
126
- _props$label = props.label,
127
- label = _props$label === void 0 ? null : _props$label,
128
- _props$ripple4 = props.ripple,
129
- ripple = _props$ripple4 === void 0 ? true : _props$ripple4,
124
+ ripple = props.ripple,
130
125
  _props$className4 = props.className,
131
126
  className = _props$className4 === void 0 ? null : _props$className4,
132
127
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
@@ -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 = true, 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 = true,\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 = true,\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 = true,\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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"}
@@ -21,8 +21,7 @@ var IconButton = function IconButton(props) {
21
21
  onClick = props.onClick,
22
22
  className = props.className,
23
23
  disabled = props.disabled,
24
- _props$ripple = props.ripple,
25
- ripple = _props$ripple === void 0 ? true : _props$ripple;
24
+ ripple = props.ripple;
26
25
  return /*#__PURE__*/_react.default.createElement(_iconButton.IconButton, {
27
26
  id: id,
28
27
  "data-testid": props["data-testid"],
@@ -1 +1 @@
1
- {"version":3,"names":["IconButton","props","id","icon","label","onClick","className","disabled","ripple"],"sources":["IconButton.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n IconButton as RIconButton,\n IconButtonProps as RmwcIconButtonProps\n} from \"@rmwc/icon-button\";\n\nimport { FormComponentProps } from \"../../types\";\n\nexport interface IconButtonProps extends Omit<FormComponentProps, \"onChange\">, RmwcIconButtonProps {\n id?: string;\n /**\n * Icon should be provided as an SvgComponent.\n */\n icon: React.ReactNode;\n\n /**\n * Button label\n */\n label?: string;\n\n /**\n * onClick handler\n * @param event\n */\n onClick?: (event: React.MouseEvent) => void;\n\n /**\n * Custom CSS class\n */\n className?: string;\n /**\n * For testing purposes.\n */\n\n \"data-testid\"?: string;\n\n /**\n * Should icon be disabled?\n */\n disabled?: boolean;\n}\n\n/**\n * Shows the icon button.\n */\nconst IconButton: React.FC<IconButtonProps> = props => {\n const { id, icon, label, onClick, className, disabled, ripple = true } = props;\n\n return (\n <RIconButton\n id={id}\n data-testid={props[\"data-testid\"]}\n onClick={onClick}\n disabled={disabled}\n className={className}\n label={label}\n icon={icon}\n ripple={ripple}\n />\n );\n};\n\nexport { IconButton };\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAyCA;AACA;AACA;AACA,IAAMA,UAAqC,GAAG,SAAxCA,UAAwC,CAAAC,KAAK,EAAI;EACnD,IAAQC,EAAR,GAAyED,KAAzE,CAAQC,EAAR;EAAA,IAAYC,IAAZ,GAAyEF,KAAzE,CAAYE,IAAZ;EAAA,IAAkBC,KAAlB,GAAyEH,KAAzE,CAAkBG,KAAlB;EAAA,IAAyBC,OAAzB,GAAyEJ,KAAzE,CAAyBI,OAAzB;EAAA,IAAkCC,SAAlC,GAAyEL,KAAzE,CAAkCK,SAAlC;EAAA,IAA6CC,QAA7C,GAAyEN,KAAzE,CAA6CM,QAA7C;EAAA,oBAAyEN,KAAzE,CAAuDO,MAAvD;EAAA,IAAuDA,MAAvD,8BAAgE,IAAhE;EAEA,oBACI,6BAAC,sBAAD;IACI,EAAE,EAAEN,EADR;IAEI,eAAaD,KAAK,CAAC,aAAD,CAFtB;IAGI,OAAO,EAAEI,OAHb;IAII,QAAQ,EAAEE,QAJd;IAKI,SAAS,EAAED,SALf;IAMI,KAAK,EAAEF,KANX;IAOI,IAAI,EAAED,IAPV;IAQI,MAAM,EAAEK;EARZ,EADJ;AAYH,CAfD"}
1
+ {"version":3,"names":["IconButton","props","id","icon","label","onClick","className","disabled","ripple"],"sources":["IconButton.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n IconButton as RIconButton,\n IconButtonProps as RmwcIconButtonProps\n} from \"@rmwc/icon-button\";\n\nimport { FormComponentProps } from \"../../types\";\n\nexport interface IconButtonProps extends Omit<FormComponentProps, \"onChange\">, RmwcIconButtonProps {\n id?: string;\n /**\n * Icon should be provided as an SvgComponent.\n */\n icon: React.ReactNode;\n\n /**\n * Button label\n */\n label?: string;\n\n /**\n * onClick handler\n * @param event\n */\n onClick?: (event: React.MouseEvent) => void;\n\n /**\n * Custom CSS class\n */\n className?: string;\n /**\n * For testing purposes.\n */\n\n \"data-testid\"?: string;\n\n /**\n * Should icon be disabled?\n */\n disabled?: boolean;\n}\n\n/**\n * Shows the icon button.\n */\nconst IconButton: React.FC<IconButtonProps> = props => {\n const { id, icon, label, onClick, className, disabled, ripple } = props;\n\n return (\n <RIconButton\n id={id}\n data-testid={props[\"data-testid\"]}\n onClick={onClick}\n disabled={disabled}\n className={className}\n label={label}\n icon={icon}\n ripple={ripple}\n />\n );\n};\n\nexport { IconButton };\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AAyCA;AACA;AACA;AACA,IAAMA,UAAqC,GAAG,SAAxCA,UAAwC,CAAAC,KAAK,EAAI;EACnD,IAAQC,EAAR,GAAkED,KAAlE,CAAQC,EAAR;EAAA,IAAYC,IAAZ,GAAkEF,KAAlE,CAAYE,IAAZ;EAAA,IAAkBC,KAAlB,GAAkEH,KAAlE,CAAkBG,KAAlB;EAAA,IAAyBC,OAAzB,GAAkEJ,KAAlE,CAAyBI,OAAzB;EAAA,IAAkCC,SAAlC,GAAkEL,KAAlE,CAAkCK,SAAlC;EAAA,IAA6CC,QAA7C,GAAkEN,KAAlE,CAA6CM,QAA7C;EAAA,IAAuDC,MAAvD,GAAkEP,KAAlE,CAAuDO,MAAvD;EAEA,oBACI,6BAAC,sBAAD;IACI,EAAE,EAAEN,EADR;IAEI,eAAaD,KAAK,CAAC,aAAD,CAFtB;IAGI,OAAO,EAAEI,OAHb;IAII,QAAQ,EAAEE,QAJd;IAKI,SAAS,EAAED,SALf;IAMI,KAAK,EAAEF,KANX;IAOI,IAAI,EAAED,IAPV;IAQI,MAAM,EAAEK;EARZ,EADJ;AAYH,CAfD"}
@@ -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,25 @@
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
+ export declare type DefaultData = {
14
+ selectable?: boolean;
15
+ };
16
+ interface Props<T> {
17
+ columns: Columns<T>;
18
+ data: T[];
19
+ onSelectRow?: (rows: T[] | []) => void;
20
+ loadingInitial?: boolean;
21
+ stickyColumns?: number;
22
+ stickyRows?: number;
23
+ }
24
+ export declare const DataTable: <T extends Object & DefaultData>({ data, columns, onSelectRow, loadingInitial, stickyColumns, stickyRows }: Props<T>) => JSX.Element;
25
+ export {};