@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.
@@ -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 [isExpanded, setIsExpanded] = useState(matches);
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
- isExpanded,
41
- setIsExpanded,
42
- setDrawerOpen
43
- }), [isDrawerOpen, isExpanded, setIsExpanded, setDrawerOpen]);
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
- isExpanded: isMenuExpanded,
44
- isDrawerOpen,
45
- setDrawerOpen
43
+ setDrawerOpen,
44
+ isNavbarExpanded
46
45
  } = useNavbarContext();
47
- var [isExpanded, setExpanded] = useState(false);
46
+ var [isExpanded, setExpanded] = useState(true); // sync accordion state with Desktop menu state
47
+
48
48
  useEffect(() => {
49
- if (!isMenuExpanded) {
50
- setExpanded(false);
51
- }
52
- }, [isMenuExpanded]);
49
+ setExpanded(isNavbarExpanded);
50
+ }, [isNavbarExpanded]);
53
51
  return /*#__PURE__*/_jsxs(NavbarAccordionRoot, {
54
- "aria-labelledby": uid,
52
+ square: true,
55
53
  gutter: !!gutter,
54
+ "aria-labelledby": uid,
56
55
  expanded: isExpanded,
57
56
  onClick: event => {
58
- if (isMenuExpanded || isDrawerOpen) {
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": isMenuExpanded || isDrawerOpen,
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": isMenuExpanded || isDrawerOpen,
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
- isExpanded,
24
- isDrawerOpen
23
+ isNavbarExpanded
25
24
  } = useNavbarContext();
26
25
 
27
- if (isExpanded || isDrawerOpen) {
28
- return /*#__PURE__*/_jsxs(Columns, {
29
- space: "xsmall",
30
- align: "center",
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__*/_jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
52
- children: children
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
- isExpanded: false,
6
- setIsExpanded: noop,
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
- isExpanded,
80
+ isMenuExpanded,
81
81
  isDrawerOpen,
82
82
  setDrawerOpen,
83
- setIsExpanded
83
+ setMenuExpanded
84
84
  } = useNavbarContext();
85
- var isSidebarOpened = isMobile ? isDrawerOpen : isExpanded;
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: isExpanded ? {
97
+ style: isMenuExpanded ? {
98
98
  paddingRight: 0
99
99
  } : {},
100
100
  onClick: () => {
101
- setIsExpanded(!isExpanded);
101
+ setMenuExpanded(!isMenuExpanded);
102
102
  },
103
- children: isExpanded ? /*#__PURE__*/_jsx(MenuOpen, {}) : /*#__PURE__*/_jsx(MenuIcon, {})
103
+ children: isMenuExpanded ? /*#__PURE__*/_jsx(MenuOpen, {}) : /*#__PURE__*/_jsx(MenuIcon, {})
104
104
  })]
105
105
  }), /*#__PURE__*/_jsx(Content, {
106
106
  "aria-expanded": isSidebarOpened,
@@ -198,7 +198,7 @@ interface NavbarAccordionProps {
198
198
  icon?: ReactNode;
199
199
  gutter?: boolean;
200
200
  items: Array<Omit<NavbarItemOptions, 'icon'>>;
201
- onClick: (event: MouseEvent<HTMLDivElement>) => void;
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
- isExpanded: boolean;
265
- setIsExpanded: (value: boolean) => void;
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
- isExpanded: false,
1058
- setIsExpanded: noop,
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
- isExpanded: isMenuExpanded,
1204
- isDrawerOpen,
1205
- setDrawerOpen
1204
+ setDrawerOpen,
1205
+ isNavbarExpanded
1206
1206
  } = useNavbarContext();
1207
- var [isExpanded, setExpanded] = useState(false);
1207
+ var [isExpanded, setExpanded] = useState(true); // sync accordion state with Desktop menu state
1208
+
1208
1209
  useEffect(() => {
1209
- if (!isMenuExpanded) {
1210
- setExpanded(false);
1211
- }
1212
- }, [isMenuExpanded]);
1210
+ setExpanded(isNavbarExpanded);
1211
+ }, [isNavbarExpanded]);
1213
1212
  return /*#__PURE__*/jsxs(NavbarAccordionRoot, {
1214
- "aria-labelledby": uid,
1213
+ square: true,
1215
1214
  gutter: !!gutter,
1215
+ "aria-labelledby": uid,
1216
1216
  expanded: isExpanded,
1217
1217
  onClick: event => {
1218
- if (isMenuExpanded || isDrawerOpen) {
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": isMenuExpanded || isDrawerOpen,
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": isMenuExpanded || isDrawerOpen,
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
- isExpanded,
1328
+ isMenuExpanded,
1330
1329
  isDrawerOpen,
1331
1330
  setDrawerOpen,
1332
- setIsExpanded
1331
+ setMenuExpanded
1333
1332
  } = useNavbarContext();
1334
- var isSidebarOpened = isMobile ? isDrawerOpen : isExpanded;
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: isExpanded ? {
1345
+ style: isMenuExpanded ? {
1347
1346
  paddingRight: 0
1348
1347
  } : {},
1349
1348
  onClick: () => {
1350
- setIsExpanded(!isExpanded);
1349
+ setMenuExpanded(!isMenuExpanded);
1351
1350
  },
1352
- children: isExpanded ? /*#__PURE__*/jsx(MenuOpen, {}) : /*#__PURE__*/jsx(Menu, {})
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 [isExpanded, setIsExpanded] = useState(matches);
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
- isExpanded,
1418
- setIsExpanded,
1419
- setDrawerOpen
1420
- }), [isDrawerOpen, isExpanded, setIsExpanded, setDrawerOpen]);
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
- isExpanded,
1477
- isDrawerOpen
1476
+ isNavbarExpanded
1478
1477
  } = useNavbarContext();
1479
1478
 
1480
- if (isExpanded || isDrawerOpen) {
1481
- return /*#__PURE__*/jsxs(Columns, {
1482
- space: "xsmall",
1483
- align: "center",
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__*/jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
1505
- children: children
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({