@superdispatch/ui-lab 0.20.5 → 0.21.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.
- package/dist-node/index.js +54 -55
- package/dist-node/index.js.map +1 -1
- package/dist-src/navbar/Navbar.js +6 -5
- package/dist-src/navbar/NavbarAccordion.js +13 -15
- package/dist-src/navbar/NavbarAvatar.js +26 -27
- package/dist-src/navbar/NavbarContext.js +3 -2
- package/dist-src/navbar/NavbarList.js +6 -6
- package/dist-types/index.d.ts +4 -3
- package/dist-web/index.js +54 -55
- package/dist-web/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -33,14 +33,15 @@ export function Navbar(_ref) {
|
|
|
33
33
|
var matches = useMediaQuery(theme.breakpoints.up('md'), {
|
|
34
34
|
noSsr: true
|
|
35
35
|
});
|
|
36
|
-
var [
|
|
36
|
+
var [isMenuExpanded, setMenuExpanded] = useState(matches);
|
|
37
37
|
var hasBadge = hasExtraBadge || items.some(item => item.badge);
|
|
38
38
|
var ctx = useMemo(() => ({
|
|
39
39
|
isDrawerOpen,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
isMenuExpanded,
|
|
41
|
+
setDrawerOpen,
|
|
42
|
+
setMenuExpanded,
|
|
43
|
+
isNavbarExpanded: isMenuExpanded || isDrawerOpen
|
|
44
|
+
}), [isDrawerOpen, isMenuExpanded, setMenuExpanded, setDrawerOpen]);
|
|
44
45
|
return /*#__PURE__*/_jsx(NavbarContext.Provider, {
|
|
45
46
|
value: ctx,
|
|
46
47
|
children: /*#__PURE__*/_jsxs("div", {
|
|
@@ -40,37 +40,35 @@ export function NavbarAccordion(_ref2) {
|
|
|
40
40
|
} = _ref2;
|
|
41
41
|
var uid = useUID();
|
|
42
42
|
var {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
setDrawerOpen
|
|
43
|
+
setDrawerOpen,
|
|
44
|
+
isNavbarExpanded
|
|
46
45
|
} = useNavbarContext();
|
|
47
|
-
var [isExpanded, setExpanded] = useState(
|
|
46
|
+
var [isExpanded, setExpanded] = useState(true); // sync accordion state with Desktop menu state
|
|
47
|
+
|
|
48
48
|
useEffect(() => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
}, [isMenuExpanded]);
|
|
49
|
+
setExpanded(isNavbarExpanded);
|
|
50
|
+
}, [isNavbarExpanded]);
|
|
53
51
|
return /*#__PURE__*/_jsxs(NavbarAccordionRoot, {
|
|
54
|
-
|
|
52
|
+
square: true,
|
|
55
53
|
gutter: !!gutter,
|
|
54
|
+
"aria-labelledby": uid,
|
|
56
55
|
expanded: isExpanded,
|
|
57
56
|
onClick: event => {
|
|
58
|
-
|
|
57
|
+
_onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
|
|
58
|
+
|
|
59
|
+
if (isNavbarExpanded) {
|
|
59
60
|
setExpanded(!isExpanded);
|
|
60
61
|
}
|
|
61
|
-
|
|
62
|
-
_onClick(event);
|
|
63
62
|
},
|
|
64
|
-
square: true,
|
|
65
63
|
children: [/*#__PURE__*/_jsxs(NavbarAccordionSummary, {
|
|
66
64
|
"data-active": !isExpanded && items.some(item => item.active),
|
|
67
|
-
"data-expanded":
|
|
65
|
+
"data-expanded": isNavbarExpanded,
|
|
68
66
|
expandIcon: /*#__PURE__*/_jsx(ExpandMore, {}),
|
|
69
67
|
children: [/*#__PURE__*/_jsx(IconWrapper, {
|
|
70
68
|
children: icon
|
|
71
69
|
}), /*#__PURE__*/_jsx(NavbarAccordionLabel, {
|
|
72
70
|
id: uid,
|
|
73
|
-
"data-expanded":
|
|
71
|
+
"data-expanded": isNavbarExpanded,
|
|
74
72
|
children: label
|
|
75
73
|
})]
|
|
76
74
|
}), items.map(item => {
|
|
@@ -20,35 +20,34 @@ export function NavbarAvatar(_ref) {
|
|
|
20
20
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
21
21
|
|
|
22
22
|
var {
|
|
23
|
-
|
|
24
|
-
isDrawerOpen
|
|
23
|
+
isNavbarExpanded
|
|
25
24
|
} = useNavbarContext();
|
|
26
25
|
|
|
27
|
-
if (
|
|
28
|
-
return /*#__PURE__*/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
children: [/*#__PURE__*/_jsx(Column, {
|
|
32
|
-
width: "content",
|
|
33
|
-
children: /*#__PURE__*/_jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
|
|
34
|
-
children: children
|
|
35
|
-
}))
|
|
36
|
-
}), /*#__PURE__*/_jsx(Column, {
|
|
37
|
-
children: /*#__PURE__*/_jsxs(Stack, {
|
|
38
|
-
space: "none",
|
|
39
|
-
children: [/*#__PURE__*/_jsx(StyledTypography, {
|
|
40
|
-
variant: "caption",
|
|
41
|
-
children: title
|
|
42
|
-
}), /*#__PURE__*/_jsx(StyledTypography, {
|
|
43
|
-
variant: "caption",
|
|
44
|
-
children: subtitle
|
|
45
|
-
})]
|
|
46
|
-
})
|
|
47
|
-
})]
|
|
48
|
-
});
|
|
26
|
+
if (!isNavbarExpanded) {
|
|
27
|
+
return /*#__PURE__*/_jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
|
|
28
|
+
children: children
|
|
29
|
+
}));
|
|
49
30
|
}
|
|
50
31
|
|
|
51
|
-
return /*#__PURE__*/
|
|
52
|
-
|
|
53
|
-
|
|
32
|
+
return /*#__PURE__*/_jsxs(Columns, {
|
|
33
|
+
space: "xsmall",
|
|
34
|
+
align: "center",
|
|
35
|
+
children: [/*#__PURE__*/_jsx(Column, {
|
|
36
|
+
width: "content",
|
|
37
|
+
children: /*#__PURE__*/_jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
|
|
38
|
+
children: children
|
|
39
|
+
}))
|
|
40
|
+
}), /*#__PURE__*/_jsx(Column, {
|
|
41
|
+
children: /*#__PURE__*/_jsxs(Stack, {
|
|
42
|
+
space: "none",
|
|
43
|
+
children: [/*#__PURE__*/_jsx(StyledTypography, {
|
|
44
|
+
variant: "caption",
|
|
45
|
+
children: title
|
|
46
|
+
}), /*#__PURE__*/_jsx(StyledTypography, {
|
|
47
|
+
variant: "caption",
|
|
48
|
+
children: subtitle
|
|
49
|
+
})]
|
|
50
|
+
})
|
|
51
|
+
})]
|
|
52
|
+
});
|
|
54
53
|
}
|
|
@@ -2,8 +2,9 @@ import { noop } from 'lodash';
|
|
|
2
2
|
import { createContext, useContext } from 'react';
|
|
3
3
|
export var NavbarContext = /*#__PURE__*/createContext({
|
|
4
4
|
isDrawerOpen: false,
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
isMenuExpanded: false,
|
|
6
|
+
isNavbarExpanded: false,
|
|
7
|
+
setMenuExpanded: noop,
|
|
7
8
|
setDrawerOpen: noop
|
|
8
9
|
});
|
|
9
10
|
export function useNavbarContext() {
|
|
@@ -77,12 +77,12 @@ export function NavbarList(_ref5) {
|
|
|
77
77
|
var platform = useResponsiveValue('mobile', 'tablet', 'desktop');
|
|
78
78
|
var isMobile = platform === 'mobile';
|
|
79
79
|
var {
|
|
80
|
-
|
|
80
|
+
isMenuExpanded,
|
|
81
81
|
isDrawerOpen,
|
|
82
82
|
setDrawerOpen,
|
|
83
|
-
|
|
83
|
+
setMenuExpanded
|
|
84
84
|
} = useNavbarContext();
|
|
85
|
-
var isSidebarOpened = isMobile ? isDrawerOpen :
|
|
85
|
+
var isSidebarOpened = isMobile ? isDrawerOpen : isMenuExpanded;
|
|
86
86
|
var filteredItems = useMemo(() => items.filter(item => {
|
|
87
87
|
return !item.hide && (isSidebarOpened || !!item.icon);
|
|
88
88
|
}).map(item => _objectSpread(_objectSpread({}, item), {}, {
|
|
@@ -94,13 +94,13 @@ export function NavbarList(_ref5) {
|
|
|
94
94
|
children: [/*#__PURE__*/_jsxs(Header, {
|
|
95
95
|
children: [isSidebarOpened && header, !isMobile && /*#__PURE__*/_jsx(ExpandIconButton, {
|
|
96
96
|
disableRipple: true,
|
|
97
|
-
style:
|
|
97
|
+
style: isMenuExpanded ? {
|
|
98
98
|
paddingRight: 0
|
|
99
99
|
} : {},
|
|
100
100
|
onClick: () => {
|
|
101
|
-
|
|
101
|
+
setMenuExpanded(!isMenuExpanded);
|
|
102
102
|
},
|
|
103
|
-
children:
|
|
103
|
+
children: isMenuExpanded ? /*#__PURE__*/_jsx(MenuOpen, {}) : /*#__PURE__*/_jsx(MenuIcon, {})
|
|
104
104
|
})]
|
|
105
105
|
}), /*#__PURE__*/_jsx(Content, {
|
|
106
106
|
"aria-expanded": isSidebarOpened,
|
package/dist-types/index.d.ts
CHANGED
|
@@ -198,7 +198,7 @@ interface NavbarAccordionProps {
|
|
|
198
198
|
icon?: ReactNode;
|
|
199
199
|
gutter?: boolean;
|
|
200
200
|
items: Array<Omit<NavbarItemOptions, 'icon'>>;
|
|
201
|
-
onClick
|
|
201
|
+
onClick?: (event: MouseEvent<HTMLDivElement>) => void;
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
declare const NavbarBadge: StyledComponent<"span", DefaultTheme, {}, never>;
|
|
@@ -261,9 +261,10 @@ declare function NavbarAvatar({ title, subtitle, children, ...props }: NavbarAva
|
|
|
261
261
|
|
|
262
262
|
interface NavbarContextType {
|
|
263
263
|
isDrawerOpen: boolean;
|
|
264
|
-
|
|
265
|
-
|
|
264
|
+
isMenuExpanded: boolean;
|
|
265
|
+
isNavbarExpanded: boolean;
|
|
266
266
|
setDrawerOpen: (value: boolean) => void;
|
|
267
|
+
setMenuExpanded: (value: boolean) => void;
|
|
267
268
|
}
|
|
268
269
|
declare function useNavbarContext(): NavbarContextType;
|
|
269
270
|
|
package/dist-web/index.js
CHANGED
|
@@ -1054,8 +1054,9 @@ MultilineText.displayName = 'MultilineText';
|
|
|
1054
1054
|
|
|
1055
1055
|
var NavbarContext = /*#__PURE__*/createContext({
|
|
1056
1056
|
isDrawerOpen: false,
|
|
1057
|
-
|
|
1058
|
-
|
|
1057
|
+
isMenuExpanded: false,
|
|
1058
|
+
isNavbarExpanded: false,
|
|
1059
|
+
setMenuExpanded: noop,
|
|
1059
1060
|
setDrawerOpen: noop
|
|
1060
1061
|
});
|
|
1061
1062
|
function useNavbarContext() {
|
|
@@ -1200,37 +1201,35 @@ function NavbarAccordion(_ref2) {
|
|
|
1200
1201
|
} = _ref2;
|
|
1201
1202
|
var uid = useUID();
|
|
1202
1203
|
var {
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
setDrawerOpen
|
|
1204
|
+
setDrawerOpen,
|
|
1205
|
+
isNavbarExpanded
|
|
1206
1206
|
} = useNavbarContext();
|
|
1207
|
-
var [isExpanded, setExpanded] = useState(
|
|
1207
|
+
var [isExpanded, setExpanded] = useState(true); // sync accordion state with Desktop menu state
|
|
1208
|
+
|
|
1208
1209
|
useEffect(() => {
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
}
|
|
1212
|
-
}, [isMenuExpanded]);
|
|
1210
|
+
setExpanded(isNavbarExpanded);
|
|
1211
|
+
}, [isNavbarExpanded]);
|
|
1213
1212
|
return /*#__PURE__*/jsxs(NavbarAccordionRoot, {
|
|
1214
|
-
|
|
1213
|
+
square: true,
|
|
1215
1214
|
gutter: !!gutter,
|
|
1215
|
+
"aria-labelledby": uid,
|
|
1216
1216
|
expanded: isExpanded,
|
|
1217
1217
|
onClick: event => {
|
|
1218
|
-
|
|
1218
|
+
_onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
|
|
1219
|
+
|
|
1220
|
+
if (isNavbarExpanded) {
|
|
1219
1221
|
setExpanded(!isExpanded);
|
|
1220
1222
|
}
|
|
1221
|
-
|
|
1222
|
-
_onClick(event);
|
|
1223
1223
|
},
|
|
1224
|
-
square: true,
|
|
1225
1224
|
children: [/*#__PURE__*/jsxs(NavbarAccordionSummary, {
|
|
1226
1225
|
"data-active": !isExpanded && items.some(item => item.active),
|
|
1227
|
-
"data-expanded":
|
|
1226
|
+
"data-expanded": isNavbarExpanded,
|
|
1228
1227
|
expandIcon: /*#__PURE__*/jsx(ExpandMore, {}),
|
|
1229
1228
|
children: [/*#__PURE__*/jsx(IconWrapper$2, {
|
|
1230
1229
|
children: icon
|
|
1231
1230
|
}), /*#__PURE__*/jsx(NavbarAccordionLabel, {
|
|
1232
1231
|
id: uid,
|
|
1233
|
-
"data-expanded":
|
|
1232
|
+
"data-expanded": isNavbarExpanded,
|
|
1234
1233
|
children: label
|
|
1235
1234
|
})]
|
|
1236
1235
|
}), items.map(item => {
|
|
@@ -1326,12 +1325,12 @@ function NavbarList(_ref5) {
|
|
|
1326
1325
|
var platform = useResponsiveValue('mobile', 'tablet', 'desktop');
|
|
1327
1326
|
var isMobile = platform === 'mobile';
|
|
1328
1327
|
var {
|
|
1329
|
-
|
|
1328
|
+
isMenuExpanded,
|
|
1330
1329
|
isDrawerOpen,
|
|
1331
1330
|
setDrawerOpen,
|
|
1332
|
-
|
|
1331
|
+
setMenuExpanded
|
|
1333
1332
|
} = useNavbarContext();
|
|
1334
|
-
var isSidebarOpened = isMobile ? isDrawerOpen :
|
|
1333
|
+
var isSidebarOpened = isMobile ? isDrawerOpen : isMenuExpanded;
|
|
1335
1334
|
var filteredItems = useMemo(() => items.filter(item => {
|
|
1336
1335
|
return !item.hide && (isSidebarOpened || !!item.icon);
|
|
1337
1336
|
}).map(item => _objectSpread(_objectSpread({}, item), {}, {
|
|
@@ -1343,13 +1342,13 @@ function NavbarList(_ref5) {
|
|
|
1343
1342
|
children: [/*#__PURE__*/jsxs(Header, {
|
|
1344
1343
|
children: [isSidebarOpened && header, !isMobile && /*#__PURE__*/jsx(ExpandIconButton, {
|
|
1345
1344
|
disableRipple: true,
|
|
1346
|
-
style:
|
|
1345
|
+
style: isMenuExpanded ? {
|
|
1347
1346
|
paddingRight: 0
|
|
1348
1347
|
} : {},
|
|
1349
1348
|
onClick: () => {
|
|
1350
|
-
|
|
1349
|
+
setMenuExpanded(!isMenuExpanded);
|
|
1351
1350
|
},
|
|
1352
|
-
children:
|
|
1351
|
+
children: isMenuExpanded ? /*#__PURE__*/jsx(MenuOpen, {}) : /*#__PURE__*/jsx(Menu, {})
|
|
1353
1352
|
})]
|
|
1354
1353
|
}), /*#__PURE__*/jsx(Content, {
|
|
1355
1354
|
"aria-expanded": isSidebarOpened,
|
|
@@ -1410,14 +1409,15 @@ function Navbar(_ref) {
|
|
|
1410
1409
|
var matches = useMediaQuery(theme.breakpoints.up('md'), {
|
|
1411
1410
|
noSsr: true
|
|
1412
1411
|
});
|
|
1413
|
-
var [
|
|
1412
|
+
var [isMenuExpanded, setMenuExpanded] = useState(matches);
|
|
1414
1413
|
var hasBadge = hasExtraBadge || items.some(item => item.badge);
|
|
1415
1414
|
var ctx = useMemo(() => ({
|
|
1416
1415
|
isDrawerOpen,
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1416
|
+
isMenuExpanded,
|
|
1417
|
+
setDrawerOpen,
|
|
1418
|
+
setMenuExpanded,
|
|
1419
|
+
isNavbarExpanded: isMenuExpanded || isDrawerOpen
|
|
1420
|
+
}), [isDrawerOpen, isMenuExpanded, setMenuExpanded, setDrawerOpen]);
|
|
1421
1421
|
return /*#__PURE__*/jsx(NavbarContext.Provider, {
|
|
1422
1422
|
value: ctx,
|
|
1423
1423
|
children: /*#__PURE__*/jsxs("div", {
|
|
@@ -1473,37 +1473,36 @@ function NavbarAvatar(_ref) {
|
|
|
1473
1473
|
props = _objectWithoutProperties(_ref, _excluded$7);
|
|
1474
1474
|
|
|
1475
1475
|
var {
|
|
1476
|
-
|
|
1477
|
-
isDrawerOpen
|
|
1476
|
+
isNavbarExpanded
|
|
1478
1477
|
} = useNavbarContext();
|
|
1479
1478
|
|
|
1480
|
-
if (
|
|
1481
|
-
return /*#__PURE__*/
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
children: [/*#__PURE__*/jsx(Column, {
|
|
1485
|
-
width: "content",
|
|
1486
|
-
children: /*#__PURE__*/jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
|
|
1487
|
-
children: children
|
|
1488
|
-
}))
|
|
1489
|
-
}), /*#__PURE__*/jsx(Column, {
|
|
1490
|
-
children: /*#__PURE__*/jsxs(Stack, {
|
|
1491
|
-
space: "none",
|
|
1492
|
-
children: [/*#__PURE__*/jsx(StyledTypography, {
|
|
1493
|
-
variant: "caption",
|
|
1494
|
-
children: title
|
|
1495
|
-
}), /*#__PURE__*/jsx(StyledTypography, {
|
|
1496
|
-
variant: "caption",
|
|
1497
|
-
children: subtitle
|
|
1498
|
-
})]
|
|
1499
|
-
})
|
|
1500
|
-
})]
|
|
1501
|
-
});
|
|
1479
|
+
if (!isNavbarExpanded) {
|
|
1480
|
+
return /*#__PURE__*/jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
|
|
1481
|
+
children: children
|
|
1482
|
+
}));
|
|
1502
1483
|
}
|
|
1503
1484
|
|
|
1504
|
-
return /*#__PURE__*/
|
|
1505
|
-
|
|
1506
|
-
|
|
1485
|
+
return /*#__PURE__*/jsxs(Columns, {
|
|
1486
|
+
space: "xsmall",
|
|
1487
|
+
align: "center",
|
|
1488
|
+
children: [/*#__PURE__*/jsx(Column, {
|
|
1489
|
+
width: "content",
|
|
1490
|
+
children: /*#__PURE__*/jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
|
|
1491
|
+
children: children
|
|
1492
|
+
}))
|
|
1493
|
+
}), /*#__PURE__*/jsx(Column, {
|
|
1494
|
+
children: /*#__PURE__*/jsxs(Stack, {
|
|
1495
|
+
space: "none",
|
|
1496
|
+
children: [/*#__PURE__*/jsx(StyledTypography, {
|
|
1497
|
+
variant: "caption",
|
|
1498
|
+
children: title
|
|
1499
|
+
}), /*#__PURE__*/jsx(StyledTypography, {
|
|
1500
|
+
variant: "caption",
|
|
1501
|
+
children: subtitle
|
|
1502
|
+
})]
|
|
1503
|
+
})
|
|
1504
|
+
})]
|
|
1505
|
+
});
|
|
1507
1506
|
}
|
|
1508
1507
|
|
|
1509
1508
|
var Divider = /*#__PURE__*/styled.div.withConfig({
|