@comet/admin 9.0.0-beta.4 → 9.0.0-beta.5

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 (64) hide show
  1. package/lib/common/DeleteDialog.d.ts +1 -0
  2. package/lib/common/DeleteDialog.d.ts.map +1 -1
  3. package/lib/common/DeleteDialog.js +8 -1
  4. package/lib/common/buttons/clearinput/ClearInputButton.js +1 -1
  5. package/lib/common/toolbar/__stories__/DataGridToolbar.stories.js +76 -0
  6. package/lib/common/toolbar/__stories__/Toolbar.stories.js +82 -0
  7. package/lib/dataGrid/__stories__/ClickableRows.stories.js +109 -0
  8. package/lib/dataGrid/__stories__/CrudMoreActionsMenu.stories.js +50 -0
  9. package/lib/dataGrid/__stories__/DataGrid.stories.js +94 -0
  10. package/lib/dataGrid/__stories__/DataGridSingleSelectFilter.stories.js +492 -0
  11. package/lib/form/__stories__/AsyncAutocompleteField.stories.js +660 -0
  12. package/lib/form/__stories__/AsyncSelectField.stories.js +513 -0
  13. package/lib/form/__stories__/Autocomplete.stories.js +188 -0
  14. package/lib/form/__stories__/AutocompleteField.stories.js +48 -0
  15. package/lib/form/__stories__/Checkbox.stories.js +70 -0
  16. package/lib/form/__stories__/CheckboxField.stories.js +87 -0
  17. package/lib/form/__stories__/CheckboxListField.stories.js +172 -0
  18. package/lib/form/__stories__/CustomButtons.stories.js +78 -0
  19. package/lib/form/__stories__/DependentAsyncSelects.stories.js +91 -0
  20. package/lib/form/__stories__/DisableAutoNavigation.stories.js +132 -0
  21. package/lib/form/__stories__/DisabledSubmitIfNotDirty.stories.js +54 -0
  22. package/lib/form/__stories__/FieldContainer.stories.js +87 -0
  23. package/lib/form/__stories__/FinalFormFileSelect.stories.js +155 -0
  24. package/lib/form/__stories__/FormInStack.stories.js +133 -0
  25. package/lib/form/__stories__/FormLayouts.stories.js +174 -0
  26. package/lib/form/__stories__/FormValidation.stories.js +82 -0
  27. package/lib/form/__stories__/Input.stories.js +37 -0
  28. package/lib/form/__stories__/NumberField.stories.js +38 -0
  29. package/lib/form/__stories__/Radio.stories.js +101 -0
  30. package/lib/form/__stories__/RadioGroupField.stories.js +172 -0
  31. package/lib/form/__stories__/RangeInput.stories.js +239 -0
  32. package/lib/form/__stories__/RouterTabs.stories.js +96 -0
  33. package/lib/form/__stories__/RouterTabsInForm.stories.js +73 -0
  34. package/lib/form/__stories__/RouterTabsInFormWithSubroutes.stories.js +96 -0
  35. package/lib/form/__stories__/ScrollToErrorField.stories.js +82 -0
  36. package/lib/form/__stories__/SearchField.stories.js +38 -0
  37. package/lib/form/__stories__/Select.stories.js +187 -0
  38. package/lib/form/__stories__/SelectField.stories.js +100 -0
  39. package/lib/form/__stories__/ShowErrorStrategies.stories.js +107 -0
  40. package/lib/form/__stories__/SingleTextField.stories.js +108 -0
  41. package/lib/form/__stories__/StackInForm.stories.js +53 -0
  42. package/lib/form/__stories__/SubmitErrors.stories.js +90 -0
  43. package/lib/form/__stories__/Switch.stories.js +49 -0
  44. package/lib/form/__stories__/SwitchField.stories.js +87 -0
  45. package/lib/form/__stories__/Tabs.stories.js +78 -0
  46. package/lib/form/__stories__/TextAreaField.stories.js +38 -0
  47. package/lib/form/__stories__/TextField.stories.js +67 -0
  48. package/lib/form/__stories__/ToggleButtonGroupField.stories.js +312 -0
  49. package/lib/form/__stories__/TwoLevelValidation.stories.js +168 -0
  50. package/lib/form/__stories__/Typography.stories.js +71 -0
  51. package/lib/form/file/__stories__/FileDropzone.stories.js +81 -0
  52. package/lib/form/file/__stories__/FileSelect.stories.js +139 -0
  53. package/lib/form/file/__stories__/FileSelectListItem.stories.js +108 -0
  54. package/lib/form/file/__stories__/FileSelectMultipleExamples.stories.js +187 -0
  55. package/lib/helpers/useTopOffset.js +1 -1
  56. package/lib/tabs/__stories__/DynamicTabs.stories.js +84 -0
  57. package/lib/tabs/__stories__/NestedStackSwitchWithRouterTabs.stories.js +84 -0
  58. package/lib/tabs/__stories__/OverflowIssues.stories.js +224 -0
  59. package/lib/tabs/__stories__/RouterTabs.stories.js +31 -0
  60. package/lib/tabs/__stories__/RouterTabsInStack.stories.js +74 -0
  61. package/lib/tabs/__stories__/RouterTabsInSubroute.stories.js +68 -0
  62. package/lib/tabs/__stories__/Tabs.stories.js +219 -0
  63. package/lib/theme/componentsTheme/MuiDataGrid.js +1 -1
  64. package/package.json +13 -13
@@ -0,0 +1,187 @@
1
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
4
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
5
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
6
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
8
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
9
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
10
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
11
+ import { Box, Grid, Typography } from "@mui/material";
12
+ import { useState } from "react";
13
+ import { FileSelect } from "../../../form/file/FileSelect";
14
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ var dummyFiles = [{
16
+ name: "lorem ipsum.png",
17
+ size: 3e5
18
+ }, {
19
+ name: "This is a file with a really long name to test truncating in the file list.jpeg",
20
+ size: 6e6
21
+ }, {
22
+ name: "failed.png",
23
+ error: true
24
+ }];
25
+ var dummyFileDownload = function dummyFileDownload(file) {
26
+ alert("Pretend \"".concat(file.name, "\" was just downloaded."));
27
+ };
28
+ var SingleFileSelectStory = function SingleFileSelectStory(_ref) {
29
+ var noBackground = _ref.noBackground,
30
+ hasExistingFiles = _ref.hasExistingFiles;
31
+ var _useState = useState(hasExistingFiles ? dummyFiles[0] : undefined),
32
+ _useState2 = _slicedToArray(_useState, 2),
33
+ file = _useState2[0],
34
+ setFile = _useState2[1];
35
+ var _useState3 = useState(false),
36
+ _useState4 = _slicedToArray(_useState3, 2),
37
+ tooManyFilesSelected = _useState4[0],
38
+ setTooManyFilesSelected = _useState4[1];
39
+ return /*#__PURE__*/_jsxs(Box, {
40
+ padding: 4,
41
+ sx: {
42
+ backgroundColor: noBackground ? "transparent" : "white"
43
+ },
44
+ children: [/*#__PURE__*/_jsx(Typography, {
45
+ variant: "h6",
46
+ gutterBottom: true,
47
+ children: "Single File Select"
48
+ }), /*#__PURE__*/_jsx(FileSelect, {
49
+ onDrop: function onDrop(acceptedFiles, rejectedFiles) {
50
+ var tooManyFilesWereDropped = rejectedFiles.some(function (rejection) {
51
+ return rejection.errors.some(function (error) {
52
+ return error.code === "too-many-files";
53
+ });
54
+ });
55
+ setTooManyFilesSelected(tooManyFilesWereDropped);
56
+ if (!tooManyFilesWereDropped) {
57
+ if (acceptedFiles.length > 0) {
58
+ setFile({
59
+ name: acceptedFiles[0].name,
60
+ size: acceptedFiles[0].size
61
+ });
62
+ }
63
+ if (rejectedFiles.length > 0) {
64
+ setFile({
65
+ name: rejectedFiles[0].file.name,
66
+ error: true
67
+ });
68
+ }
69
+ }
70
+ },
71
+ onRemove: function onRemove() {
72
+ setFile(undefined);
73
+ },
74
+ onDownload: dummyFileDownload,
75
+ maxFileSize: 1024 * 1024 * 5 // 5 MB
76
+ ,
77
+ files: file ? [file] : [],
78
+ error: tooManyFilesSelected ? "Selection was canceled. You can only select one file." : undefined
79
+ })]
80
+ });
81
+ };
82
+ var MultipleFileSelectStory = function MultipleFileSelectStory(_ref2) {
83
+ var noBackground = _ref2.noBackground,
84
+ hasExistingFiles = _ref2.hasExistingFiles;
85
+ var _useState5 = useState(hasExistingFiles ? dummyFiles : []),
86
+ _useState6 = _slicedToArray(_useState5, 2),
87
+ files = _useState6[0],
88
+ setFiles = _useState6[1];
89
+ var _useState7 = useState(false),
90
+ _useState8 = _slicedToArray(_useState7, 2),
91
+ tooManyFilesSelected = _useState8[0],
92
+ setTooManyFilesSelected = _useState8[1];
93
+ var maxNumberOfFiles = 4;
94
+ return /*#__PURE__*/_jsxs(Box, {
95
+ padding: 4,
96
+ sx: {
97
+ backgroundColor: noBackground ? "transparent" : "white"
98
+ },
99
+ children: [/*#__PURE__*/_jsx(Typography, {
100
+ variant: "h6",
101
+ gutterBottom: true,
102
+ children: "Multiple File Select"
103
+ }), /*#__PURE__*/_jsx(FileSelect, {
104
+ onDrop: function onDrop(acceptedFiles, rejectedFiles) {
105
+ var tooManyFilesWereDropped = rejectedFiles.some(function (rejection) {
106
+ return rejection.errors.some(function (error) {
107
+ return error.code === "too-many-files";
108
+ });
109
+ });
110
+ setTooManyFilesSelected(tooManyFilesWereDropped);
111
+ if (!tooManyFilesWereDropped) {
112
+ setFiles(function (existingFiles) {
113
+ return [].concat(_toConsumableArray(existingFiles), _toConsumableArray(acceptedFiles.map(function (file) {
114
+ return {
115
+ name: file.name,
116
+ size: file.size
117
+ };
118
+ })), _toConsumableArray(rejectedFiles.map(function (file) {
119
+ return {
120
+ name: file.file.name,
121
+ error: true
122
+ };
123
+ })));
124
+ });
125
+ }
126
+ },
127
+ onRemove: function onRemove(fileToRemove) {
128
+ return setFiles(files.filter(function (file) {
129
+ return file.name !== fileToRemove.name;
130
+ }));
131
+ },
132
+ onDownload: dummyFileDownload,
133
+ files: files,
134
+ maxFiles: maxNumberOfFiles,
135
+ maxFileSize: 1024 * 1024 * 5 // 5 MB
136
+ ,
137
+ error: tooManyFilesSelected ? "Selection was canceled. You can only select a maximum of ".concat(maxNumberOfFiles, " files, please reduce your selection.") : undefined
138
+ })]
139
+ });
140
+ };
141
+ export default {
142
+ title: "components/form/File",
143
+ args: {
144
+ noBackground: false
145
+ },
146
+ argTypes: {
147
+ noBackground: {
148
+ name: "No background",
149
+ control: "boolean"
150
+ }
151
+ }
152
+ };
153
+ export var FileSelectMultipleExamples = {
154
+ render: function render(_ref3) {
155
+ var noBackground = _ref3.noBackground;
156
+ return /*#__PURE__*/_jsx("div", {
157
+ children: /*#__PURE__*/_jsxs(Grid, {
158
+ container: true,
159
+ spacing: 4,
160
+ children: [/*#__PURE__*/_jsx(Grid, {
161
+ size: 6,
162
+ children: /*#__PURE__*/_jsx(SingleFileSelectStory, {
163
+ noBackground: noBackground
164
+ })
165
+ }), /*#__PURE__*/_jsx(Grid, {
166
+ size: 6,
167
+ children: /*#__PURE__*/_jsx(MultipleFileSelectStory, {
168
+ noBackground: noBackground
169
+ })
170
+ }), /*#__PURE__*/_jsx(Grid, {
171
+ size: 6,
172
+ children: /*#__PURE__*/_jsx(SingleFileSelectStory, {
173
+ noBackground: noBackground,
174
+ hasExistingFiles: true
175
+ })
176
+ }), /*#__PURE__*/_jsx(Grid, {
177
+ size: 6,
178
+ children: /*#__PURE__*/_jsx(MultipleFileSelectStory, {
179
+ noBackground: noBackground,
180
+ hasExistingFiles: true
181
+ })
182
+ })]
183
+ })
184
+ });
185
+ },
186
+ name: "File Select (multiple examples)"
187
+ };
@@ -13,7 +13,7 @@ export var useTopOffset = function useTopOffset(ref) {
13
13
  useEffect(function () {
14
14
  var updateTopOffset = function updateTopOffset() {
15
15
  if (ref.current) {
16
- setTopOffset(ref.current.getBoundingClientRect().top);
16
+ setTopOffset(ref.current.getBoundingClientRect().top + window.scrollY);
17
17
  }
18
18
  };
19
19
  updateTopOffset();
@@ -0,0 +1,84 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ import { Button, RouterTab, RouterTabs, Tab, Tabs } from "@comet/admin";
8
+ import { Typography } from "@mui/material";
9
+ import { useState } from "react";
10
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
11
+ export var DynamicRouterTabs = function DynamicRouterTabs(_ref) {
12
+ var showFourthTab = _ref.showFourthTab;
13
+ var content = ["Two", "Three"];
14
+ return /*#__PURE__*/_jsxs(RouterTabs, {
15
+ children: [/*#__PURE__*/_jsx(RouterTab, {
16
+ label: "One",
17
+ path: "",
18
+ children: "One"
19
+ }), content.map(function (value) {
20
+ return /*#__PURE__*/_jsx(RouterTab, {
21
+ label: value,
22
+ path: "/".concat(value),
23
+ children: value
24
+ }, value);
25
+ }), showFourthTab && /*#__PURE__*/_jsx(RouterTab, {
26
+ label: "Four",
27
+ path: "/four",
28
+ children: "Four"
29
+ })]
30
+ });
31
+ };
32
+ export var DynamicTabs = function DynamicTabs(_ref2) {
33
+ var showFourthTab = _ref2.showFourthTab;
34
+ var content = ["Two", "Three"];
35
+ return /*#__PURE__*/_jsxs(Tabs, {
36
+ children: [/*#__PURE__*/_jsx(Tab, {
37
+ label: "One",
38
+ children: "One"
39
+ }), content.map(function (value) {
40
+ return /*#__PURE__*/_jsx(Tab, {
41
+ label: value,
42
+ children: value
43
+ }, value);
44
+ }), showFourthTab && /*#__PURE__*/_jsx(Tab, {
45
+ label: "Four",
46
+ children: "Four"
47
+ })]
48
+ });
49
+ };
50
+ export default {
51
+ title: "components/tabs/Dynamic Tabs",
52
+ excludeStories: ["DynamicRouterTabs", "DynamicTabs"]
53
+ };
54
+ export var DynamicTabsAndRouterTabs = {
55
+ render: function render() {
56
+ var _useState = useState(false),
57
+ _useState2 = _slicedToArray(_useState, 2),
58
+ showFourthTab = _useState2[0],
59
+ setShowFourthTab = _useState2[1];
60
+ return /*#__PURE__*/_jsxs(_Fragment, {
61
+ children: [/*#__PURE__*/_jsxs(Button, {
62
+ onClick: function onClick() {
63
+ return setShowFourthTab(function (show) {
64
+ return !show;
65
+ });
66
+ },
67
+ children: [showFourthTab ? "Hide" : "Show", " fourth tab"]
68
+ }), /*#__PURE__*/_jsx(Typography, {
69
+ py: 4,
70
+ variant: "h2",
71
+ children: "Tabs:"
72
+ }), /*#__PURE__*/_jsx(DynamicTabs, {
73
+ showFourthTab: showFourthTab
74
+ }), /*#__PURE__*/_jsx(Typography, {
75
+ py: 4,
76
+ variant: "h2",
77
+ children: "RouterTabs:"
78
+ }), /*#__PURE__*/_jsx(DynamicRouterTabs, {
79
+ showFourthTab: showFourthTab
80
+ })]
81
+ });
82
+ },
83
+ name: "Dynamic Tabs and RouterTabs"
84
+ };
@@ -0,0 +1,84 @@
1
+ import { RouterTab, RouterTabs, Stack, StackBreadcrumbs, StackPage, StackSwitch } from "@comet/admin";
2
+ import { useLocation } from "react-router";
3
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
4
+ export default {
5
+ title: "components/tabs/Nested StackSwitch with RouterTabs"
6
+ };
7
+ export var NestedStackSwitchWithRouterTabs = {
8
+ render: function render() {
9
+ var location = useLocation();
10
+ return /*#__PURE__*/_jsxs("div", {
11
+ children: [/*#__PURE__*/_jsxs("p", {
12
+ children: ["Location: ", location.pathname]
13
+ }), /*#__PURE__*/_jsxs(Stack, {
14
+ topLevelTitle: "Root Stack",
15
+ children: [/*#__PURE__*/_jsx(StackBreadcrumbs, {}), /*#__PURE__*/_jsxs(RouterTabs, {
16
+ children: [/*#__PURE__*/_jsx(RouterTab, {
17
+ label: "Page 1",
18
+ path: "",
19
+ children: /*#__PURE__*/_jsxs(StackSwitch, {
20
+ children: [/*#__PURE__*/_jsx(StackPage, {
21
+ name: "table",
22
+ children: /*#__PURE__*/_jsxs(RouterTabs, {
23
+ children: [/*#__PURE__*/_jsx(RouterTab, {
24
+ label: "Page 3",
25
+ path: "",
26
+ children: "Page 3"
27
+ }), /*#__PURE__*/_jsxs(RouterTab, {
28
+ label: "Page 4",
29
+ path: "/page4",
30
+ children: ["Now the first level of RouterTabs (Page 1 and 2) disappeared", /*#__PURE__*/_jsxs(StackSwitch, {
31
+ children: [/*#__PURE__*/_jsx(StackPage, {
32
+ name: "table",
33
+ children: /*#__PURE__*/_jsxs(RouterTabs, {
34
+ children: [/*#__PURE__*/_jsx(RouterTab, {
35
+ label: "Page 5",
36
+ path: "",
37
+ children: "Page 5"
38
+ }), /*#__PURE__*/_jsxs(RouterTab, {
39
+ label: "Page 6",
40
+ path: "/page6",
41
+ children: ["Now the second level of RouterTabs (Page 3 and 4) also disappeared", /*#__PURE__*/_jsxs(StackSwitch, {
42
+ children: [/*#__PURE__*/_jsx(StackPage, {
43
+ name: "table",
44
+ children: /*#__PURE__*/_jsxs(RouterTabs, {
45
+ children: [/*#__PURE__*/_jsx(RouterTab, {
46
+ label: "Page 7",
47
+ path: "",
48
+ children: "Page 7"
49
+ }), /*#__PURE__*/_jsx(RouterTab, {
50
+ label: "Page 8",
51
+ path: "/page8",
52
+ children: "Page 8"
53
+ })]
54
+ })
55
+ }), /*#__PURE__*/_jsx(StackPage, {
56
+ name: "stackpage-4",
57
+ children: "StackPage 4"
58
+ })]
59
+ })]
60
+ })]
61
+ })
62
+ }), /*#__PURE__*/_jsx(StackPage, {
63
+ name: "stackpage-3",
64
+ children: "StackPage 3"
65
+ })]
66
+ })]
67
+ })]
68
+ })
69
+ }), /*#__PURE__*/_jsx(StackPage, {
70
+ name: "stackpage-2",
71
+ children: "StackPage 2"
72
+ })]
73
+ })
74
+ }), /*#__PURE__*/_jsx(RouterTab, {
75
+ label: "Page 2",
76
+ path: "/page2",
77
+ children: "Page 2"
78
+ })]
79
+ })]
80
+ })]
81
+ });
82
+ },
83
+ name: "Nested StackSwitch with RouterTabs"
84
+ };
@@ -0,0 +1,224 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ import { MainContent, RouterTab, RouterTabs, Toolbar, ToolbarAutomaticTitleItem } from "@comet/admin";
8
+ import { Box, Tab, Tabs, Typography } from "@mui/material";
9
+ import { useState } from "react";
10
+ import { MasterLayoutDecorator } from "../../../.storybook/decorators/MasterLayout.decorator";
11
+
12
+ // Make sure the story is not too tall and can be scrolled - setting the story-height in the config only affects the min-height and does not make the content scrollable
13
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
14
+ var MaxHeightDecorator = function MaxHeightDecorator(Story) {
15
+ return /*#__PURE__*/_jsx(Box, {
16
+ maxHeight: "400px",
17
+ children: /*#__PURE__*/_jsx(Story, {})
18
+ });
19
+ };
20
+ var storyConfig = {
21
+ title: "components/tabs/Overflow Issues",
22
+ decorators: [MaxHeightDecorator],
23
+ parameters: {
24
+ docs: {
25
+ description: {
26
+ component: "This story is for debugging an issue where using certain content inside MasterLayout causes the content to overflow the page."
27
+ }
28
+ }
29
+ }
30
+ };
31
+ export default storyConfig;
32
+ var numberOfTabs = 20;
33
+ var ExampleContentBlock = function ExampleContentBlock() {
34
+ return /*#__PURE__*/_jsx(Box, {
35
+ sx: function sx(theme) {
36
+ return {
37
+ width: 200,
38
+ height: "150vh",
39
+ borderRadius: theme.shape.borderRadius,
40
+ backgroundColor: theme.palette.grey[100]
41
+ };
42
+ }
43
+ });
44
+ };
45
+ export var RouterTabsInMasterContent = {
46
+ decorators: [MasterLayoutDecorator],
47
+ parameters: {
48
+ layout: "none",
49
+ stack: {
50
+ topLevelTitle: "Example Page"
51
+ }
52
+ },
53
+ render: function render() {
54
+ return /*#__PURE__*/_jsx(MainContent, {
55
+ children: /*#__PURE__*/_jsx(RouterTabs, {
56
+ children: Array.from({
57
+ length: numberOfTabs
58
+ }, function (_, index) {
59
+ return /*#__PURE__*/_jsxs(RouterTab, {
60
+ path: index === 0 ? "" : "/lorem-ipsum-".concat(index + 1),
61
+ label: "Lorem ipsum ".concat(index + 1),
62
+ children: [/*#__PURE__*/_jsxs(Typography, {
63
+ variant: "h2",
64
+ gutterBottom: true,
65
+ children: ["Lorem ipsum ", index + 1]
66
+ }), /*#__PURE__*/_jsx(ExampleContentBlock, {})]
67
+ }, index);
68
+ })
69
+ })
70
+ });
71
+ }
72
+ };
73
+ export var RouterTabsInMasterContentWithToolbar = {
74
+ decorators: [MasterLayoutDecorator],
75
+ parameters: {
76
+ layout: "none",
77
+ stack: {
78
+ topLevelTitle: "Example Page"
79
+ }
80
+ },
81
+ render: function render() {
82
+ return /*#__PURE__*/_jsxs(_Fragment, {
83
+ children: [/*#__PURE__*/_jsx(Toolbar, {
84
+ children: /*#__PURE__*/_jsx(ToolbarAutomaticTitleItem, {})
85
+ }), /*#__PURE__*/_jsx(MainContent, {
86
+ children: /*#__PURE__*/_jsx(RouterTabs, {
87
+ children: Array.from({
88
+ length: numberOfTabs
89
+ }, function (_, index) {
90
+ return /*#__PURE__*/_jsxs(RouterTab, {
91
+ path: index === 0 ? "" : "/lorem-ipsum-".concat(index + 1),
92
+ label: "Lorem ipsum ".concat(index + 1),
93
+ children: [/*#__PURE__*/_jsxs(Typography, {
94
+ variant: "h2",
95
+ gutterBottom: true,
96
+ children: ["Lorem ipsum ", index + 1]
97
+ }), /*#__PURE__*/_jsx(ExampleContentBlock, {})]
98
+ }, index);
99
+ })
100
+ })
101
+ })]
102
+ });
103
+ }
104
+ };
105
+ export var MuiTabsInMasterContent = {
106
+ decorators: [MasterLayoutDecorator],
107
+ parameters: {
108
+ layout: "none",
109
+ stack: {
110
+ topLevelTitle: "Example Page"
111
+ }
112
+ },
113
+ render: function render() {
114
+ var _useState = useState(0),
115
+ _useState2 = _slicedToArray(_useState, 2),
116
+ activeTabIndex = _useState2[0],
117
+ setActiveTabIndex = _useState2[1];
118
+ return /*#__PURE__*/_jsxs(MainContent, {
119
+ children: [/*#__PURE__*/_jsx(Tabs, {
120
+ variant: "scrollable",
121
+ value: activeTabIndex,
122
+ onChange: function onChange(_, index) {
123
+ return setActiveTabIndex(index);
124
+ },
125
+ children: Array.from({
126
+ length: numberOfTabs
127
+ }, function (_, index) {
128
+ return /*#__PURE__*/_jsx(Tab, {
129
+ label: "Lorem ipsum ".concat(index + 1)
130
+ }, index);
131
+ })
132
+ }), /*#__PURE__*/_jsx(ExampleContentBlock, {})]
133
+ });
134
+ }
135
+ };
136
+ export var MuiTabsInMasterContentWithToolbar = {
137
+ decorators: [MasterLayoutDecorator],
138
+ parameters: {
139
+ layout: "none",
140
+ stack: {
141
+ topLevelTitle: "Example Page"
142
+ }
143
+ },
144
+ render: function render() {
145
+ var _useState3 = useState(0),
146
+ _useState4 = _slicedToArray(_useState3, 2),
147
+ activeTabIndex = _useState4[0],
148
+ setActiveTabIndex = _useState4[1];
149
+ return /*#__PURE__*/_jsxs(_Fragment, {
150
+ children: [/*#__PURE__*/_jsx(Toolbar, {
151
+ children: /*#__PURE__*/_jsx(ToolbarAutomaticTitleItem, {})
152
+ }), /*#__PURE__*/_jsxs(MainContent, {
153
+ children: [/*#__PURE__*/_jsx(Tabs, {
154
+ variant: "scrollable",
155
+ value: activeTabIndex,
156
+ onChange: function onChange(_, index) {
157
+ return setActiveTabIndex(index);
158
+ },
159
+ children: Array.from({
160
+ length: numberOfTabs
161
+ }, function (_, index) {
162
+ return /*#__PURE__*/_jsx(Tab, {
163
+ label: "Lorem ipsum ".concat(index + 1)
164
+ }, index);
165
+ })
166
+ }), /*#__PURE__*/_jsx(ExampleContentBlock, {})]
167
+ })]
168
+ });
169
+ }
170
+ };
171
+ export var RouterTabsInMainContent = {
172
+ parameters: {
173
+ layout: "none",
174
+ stack: {
175
+ topLevelTitle: "Example Page"
176
+ }
177
+ },
178
+ render: function render() {
179
+ return /*#__PURE__*/_jsx(MainContent, {
180
+ children: /*#__PURE__*/_jsx(RouterTabs, {
181
+ children: Array.from({
182
+ length: numberOfTabs
183
+ }, function (_, index) {
184
+ return /*#__PURE__*/_jsxs(RouterTab, {
185
+ path: index === 0 ? "" : "/lorem-ipsum-".concat(index + 1),
186
+ label: "Lorem ipsum ".concat(index + 1),
187
+ children: [/*#__PURE__*/_jsxs(Typography, {
188
+ variant: "h2",
189
+ gutterBottom: true,
190
+ children: ["Lorem ipsum ", index + 1]
191
+ }), /*#__PURE__*/_jsx(ExampleContentBlock, {})]
192
+ }, index);
193
+ })
194
+ })
195
+ });
196
+ }
197
+ };
198
+ export var MuiTabsInMainContent = {
199
+ parameters: {
200
+ layout: "none"
201
+ },
202
+ render: function render() {
203
+ var _useState5 = useState(0),
204
+ _useState6 = _slicedToArray(_useState5, 2),
205
+ activeTabIndex = _useState6[0],
206
+ setActiveTabIndex = _useState6[1];
207
+ return /*#__PURE__*/_jsxs(MainContent, {
208
+ children: [/*#__PURE__*/_jsx(Tabs, {
209
+ variant: "scrollable",
210
+ value: activeTabIndex,
211
+ onChange: function onChange(_, index) {
212
+ return setActiveTabIndex(index);
213
+ },
214
+ children: Array.from({
215
+ length: numberOfTabs
216
+ }, function (_, index) {
217
+ return /*#__PURE__*/_jsx(Tab, {
218
+ label: "Lorem ipsum ".concat(index + 1)
219
+ }, index);
220
+ })
221
+ }), /*#__PURE__*/_jsx(ExampleContentBlock, {})]
222
+ });
223
+ }
224
+ };
@@ -0,0 +1,31 @@
1
+ import { RouterTab, RouterTabs } from "@comet/admin";
2
+ import { useLocation } from "react-router";
3
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
4
+ export default {
5
+ title: "components/tabs/RouterTabs"
6
+ };
7
+ export var Basic = {
8
+ render: function render() {
9
+ var location = useLocation();
10
+ return /*#__PURE__*/_jsxs("div", {
11
+ children: [/*#__PURE__*/_jsxs("p", {
12
+ children: ["Location: ", location.pathname]
13
+ }), /*#__PURE__*/_jsxs(RouterTabs, {
14
+ children: [/*#__PURE__*/_jsx(RouterTab, {
15
+ path: "",
16
+ label: "Label One",
17
+ children: "Content One"
18
+ }), /*#__PURE__*/_jsx(RouterTab, {
19
+ path: "/tab2",
20
+ label: "Label Two",
21
+ children: "Content Two"
22
+ }), /*#__PURE__*/_jsx(RouterTab, {
23
+ path: "/tab3",
24
+ label: "Label Three",
25
+ children: "Content Three"
26
+ })]
27
+ })]
28
+ });
29
+ },
30
+ name: "RouterTabs"
31
+ };