@superdispatch/ui-lab 0.20.3 → 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.
@@ -1061,8 +1061,9 @@ MultilineText.displayName = 'MultilineText';
1061
1061
 
1062
1062
  var NavbarContext = /*#__PURE__*/react.createContext({
1063
1063
  isDrawerOpen: false,
1064
- isExpanded: false,
1065
- setIsExpanded: lodash.noop,
1064
+ isMenuExpanded: false,
1065
+ isNavbarExpanded: false,
1066
+ setMenuExpanded: lodash.noop,
1066
1067
  setDrawerOpen: lodash.noop
1067
1068
  });
1068
1069
  function useNavbarContext() {
@@ -1137,7 +1138,7 @@ var NavbarLabel = /*#__PURE__*/styled__default.span.withConfig({
1137
1138
  var NavbarItemRoot = /*#__PURE__*/styled__default.div.withConfig({
1138
1139
  displayName: "NavbarItem__NavbarItemRoot",
1139
1140
  componentId: "SD__sc-1pvzq3w-2"
1140
- })(["width:100%;display:flex;align-items:center;color:#c2c4c9;font-size:14px;font-weight:400;line-height:20px;text-decoration:none;outline:none;cursor:pointer;padding:8px 16px;border-left:4px solid transparent;&:hover,&[aria-current]{background-color:#2f394a;color:", ";border-left-color:", ";}&[data-active='true']{background-color:#2f394a;border-left-color:", ";}"], ui.Color.White, ui.Color.Blue300, ui.Color.Blue300);
1141
+ })(["width:100%;display:flex;align-items:center;color:#c2c4c9;font-size:14px;font-weight:400;line-height:20px;text-decoration:none;outline:none;cursor:pointer;padding:8px 16px;border-left:4px solid transparent;&:hover,&[aria-current],&[data-active='true']{color:", ";background-color:#2f394a;border-left-color:", ";}"], ui.Color.White, ui.Color.Blue300);
1141
1142
  var IconWrapper$1 = /*#__PURE__*/styled__default.div.withConfig({
1142
1143
  displayName: "NavbarItem__IconWrapper",
1143
1144
  componentId: "SD__sc-1pvzq3w-3"
@@ -1192,7 +1193,7 @@ var NavbarAccordionRoot = /*#__PURE__*/styled__default(core.Accordion).withConfi
1192
1193
  var NavbarAccordionSummary = /*#__PURE__*/styled__default(core.AccordionSummary).withConfig({
1193
1194
  displayName: "NavbarAccordion__NavbarAccordionSummary",
1194
1195
  componentId: "SD__sc-1s7g3kw-2"
1195
- })(["border-left:4px solid transparent;padding-left:20px;&.MuiAccordionSummary-root{max-height:40px;min-height:40px;}&:hover,&[data-active='true']{background-color:#2f394a;border-left-color:", ";}&[data-expanded='false']{.MuiAccordionSummary-expandIcon{display:none;}}"], ui.Color.Blue300);
1196
+ })(["border-left:4px solid transparent;padding-left:20px;&.MuiAccordionSummary-root{max-height:40px;min-height:40px;}&.MuiAccordionSummary-content{align-items:center;}&:hover,&[aria-current],&[data-active='true']{color:", ";background-color:#2f394a;border-left-color:", ";}&[data-expanded='false']{.MuiAccordionSummary-expandIcon{display:none;}}"], ui.Color.White, ui.Color.Blue300);
1196
1197
  var IconWrapper$2 = /*#__PURE__*/styled__default.div.withConfig({
1197
1198
  displayName: "NavbarAccordion__IconWrapper",
1198
1199
  componentId: "SD__sc-1s7g3kw-3"
@@ -1207,45 +1208,46 @@ function NavbarAccordion(_ref2) {
1207
1208
  } = _ref2;
1208
1209
  var uid = ui.useUID();
1209
1210
  var {
1210
- isExpanded: isMenuExpanded,
1211
- isDrawerOpen,
1212
- setDrawerOpen
1211
+ setDrawerOpen,
1212
+ isNavbarExpanded
1213
1213
  } = useNavbarContext();
1214
- var [isExpanded, setExpanded] = react.useState(false);
1214
+ var [isExpanded, setExpanded] = react.useState(true); // sync accordion state with Desktop menu state
1215
+
1215
1216
  react.useEffect(() => {
1216
- if (!isMenuExpanded) {
1217
- setExpanded(false);
1218
- }
1219
- }, [isMenuExpanded]);
1217
+ setExpanded(isNavbarExpanded);
1218
+ }, [isNavbarExpanded]);
1220
1219
  return /*#__PURE__*/jsxRuntime.jsxs(NavbarAccordionRoot, {
1221
- "aria-labelledby": uid,
1220
+ square: true,
1222
1221
  gutter: !!gutter,
1222
+ "aria-labelledby": uid,
1223
1223
  expanded: isExpanded,
1224
1224
  onClick: event => {
1225
- if (isMenuExpanded || isDrawerOpen) {
1225
+ _onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
1226
+
1227
+ if (isNavbarExpanded) {
1226
1228
  setExpanded(!isExpanded);
1227
1229
  }
1228
-
1229
- _onClick(event);
1230
1230
  },
1231
- square: true,
1232
1231
  children: [/*#__PURE__*/jsxRuntime.jsxs(NavbarAccordionSummary, {
1233
1232
  "data-active": !isExpanded && items.some(item => item.active),
1234
- "data-expanded": isMenuExpanded || isDrawerOpen,
1233
+ "data-expanded": isNavbarExpanded,
1235
1234
  expandIcon: /*#__PURE__*/jsxRuntime.jsx(icons.ExpandMore, {}),
1236
1235
  children: [/*#__PURE__*/jsxRuntime.jsx(IconWrapper$2, {
1237
1236
  children: icon
1238
1237
  }), /*#__PURE__*/jsxRuntime.jsx(NavbarAccordionLabel, {
1239
1238
  id: uid,
1240
- "data-expanded": isMenuExpanded || isDrawerOpen,
1239
+ "data-expanded": isNavbarExpanded,
1241
1240
  children: label
1242
1241
  })]
1243
1242
  }), items.map(item => {
1244
1243
  var index = items.indexOf(item);
1245
1244
  var prev = items[index - 1];
1245
+ var {
1246
+ ident = 0
1247
+ } = item;
1246
1248
  return /*#__PURE__*/react.createElement(NavbarItem, _objectSpread(_objectSpread({}, item), {}, {
1247
1249
  key: item.key,
1248
- ident: 1,
1250
+ ident: ident,
1249
1251
  active: item.active,
1250
1252
  gutter: prev && prev.groupKey !== item.groupKey,
1251
1253
  onClick: event => {
@@ -1330,12 +1332,12 @@ function NavbarList(_ref5) {
1330
1332
  var platform = ui.useResponsiveValue('mobile', 'tablet', 'desktop');
1331
1333
  var isMobile = platform === 'mobile';
1332
1334
  var {
1333
- isExpanded,
1335
+ isMenuExpanded,
1334
1336
  isDrawerOpen,
1335
1337
  setDrawerOpen,
1336
- setIsExpanded
1338
+ setMenuExpanded
1337
1339
  } = useNavbarContext();
1338
- var isSidebarOpened = isMobile ? isDrawerOpen : isExpanded;
1340
+ var isSidebarOpened = isMobile ? isDrawerOpen : isMenuExpanded;
1339
1341
  var filteredItems = react.useMemo(() => items.filter(item => {
1340
1342
  return !item.hide && (isSidebarOpened || !!item.icon);
1341
1343
  }).map(item => _objectSpread(_objectSpread({}, item), {}, {
@@ -1347,13 +1349,13 @@ function NavbarList(_ref5) {
1347
1349
  children: [/*#__PURE__*/jsxRuntime.jsxs(Header, {
1348
1350
  children: [isSidebarOpened && header, !isMobile && /*#__PURE__*/jsxRuntime.jsx(ExpandIconButton, {
1349
1351
  disableRipple: true,
1350
- style: isExpanded ? {
1352
+ style: isMenuExpanded ? {
1351
1353
  paddingRight: 0
1352
1354
  } : {},
1353
1355
  onClick: () => {
1354
- setIsExpanded(!isExpanded);
1356
+ setMenuExpanded(!isMenuExpanded);
1355
1357
  },
1356
- children: isExpanded ? /*#__PURE__*/jsxRuntime.jsx(icons.MenuOpen, {}) : /*#__PURE__*/jsxRuntime.jsx(icons.Menu, {})
1358
+ children: isMenuExpanded ? /*#__PURE__*/jsxRuntime.jsx(icons.MenuOpen, {}) : /*#__PURE__*/jsxRuntime.jsx(icons.Menu, {})
1357
1359
  })]
1358
1360
  }), /*#__PURE__*/jsxRuntime.jsx(Content, {
1359
1361
  "aria-expanded": isSidebarOpened,
@@ -1414,14 +1416,15 @@ function Navbar(_ref) {
1414
1416
  var matches = core.useMediaQuery(theme.breakpoints.up('md'), {
1415
1417
  noSsr: true
1416
1418
  });
1417
- var [isExpanded, setIsExpanded] = react.useState(matches);
1419
+ var [isMenuExpanded, setMenuExpanded] = react.useState(matches);
1418
1420
  var hasBadge = hasExtraBadge || items.some(item => item.badge);
1419
1421
  var ctx = react.useMemo(() => ({
1420
1422
  isDrawerOpen,
1421
- isExpanded,
1422
- setIsExpanded,
1423
- setDrawerOpen
1424
- }), [isDrawerOpen, isExpanded, setIsExpanded, setDrawerOpen]);
1423
+ isMenuExpanded,
1424
+ setDrawerOpen,
1425
+ setMenuExpanded,
1426
+ isNavbarExpanded: isMenuExpanded || isDrawerOpen
1427
+ }), [isDrawerOpen, isMenuExpanded, setMenuExpanded, setDrawerOpen]);
1425
1428
  return /*#__PURE__*/jsxRuntime.jsx(NavbarContext.Provider, {
1426
1429
  value: ctx,
1427
1430
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -1477,37 +1480,36 @@ function NavbarAvatar(_ref) {
1477
1480
  props = _objectWithoutProperties(_ref, _excluded$7);
1478
1481
 
1479
1482
  var {
1480
- isExpanded,
1481
- isDrawerOpen
1483
+ isNavbarExpanded
1482
1484
  } = useNavbarContext();
1483
1485
 
1484
- if (isExpanded || isDrawerOpen) {
1485
- return /*#__PURE__*/jsxRuntime.jsxs(ui.Columns, {
1486
- space: "xsmall",
1487
- align: "center",
1488
- children: [/*#__PURE__*/jsxRuntime.jsx(ui.Column, {
1489
- width: "content",
1490
- children: /*#__PURE__*/jsxRuntime.jsx(core.Avatar, _objectSpread(_objectSpread({}, props), {}, {
1491
- children: children
1492
- }))
1493
- }), /*#__PURE__*/jsxRuntime.jsx(ui.Column, {
1494
- children: /*#__PURE__*/jsxRuntime.jsxs(ui.Stack, {
1495
- space: "none",
1496
- children: [/*#__PURE__*/jsxRuntime.jsx(StyledTypography, {
1497
- variant: "caption",
1498
- children: title
1499
- }), /*#__PURE__*/jsxRuntime.jsx(StyledTypography, {
1500
- variant: "caption",
1501
- children: subtitle
1502
- })]
1503
- })
1504
- })]
1505
- });
1486
+ if (!isNavbarExpanded) {
1487
+ return /*#__PURE__*/jsxRuntime.jsx(core.Avatar, _objectSpread(_objectSpread({}, props), {}, {
1488
+ children: children
1489
+ }));
1506
1490
  }
1507
1491
 
1508
- return /*#__PURE__*/jsxRuntime.jsx(core.Avatar, _objectSpread(_objectSpread({}, props), {}, {
1509
- children: children
1510
- }));
1492
+ return /*#__PURE__*/jsxRuntime.jsxs(ui.Columns, {
1493
+ space: "xsmall",
1494
+ align: "center",
1495
+ children: [/*#__PURE__*/jsxRuntime.jsx(ui.Column, {
1496
+ width: "content",
1497
+ children: /*#__PURE__*/jsxRuntime.jsx(core.Avatar, _objectSpread(_objectSpread({}, props), {}, {
1498
+ children: children
1499
+ }))
1500
+ }), /*#__PURE__*/jsxRuntime.jsx(ui.Column, {
1501
+ children: /*#__PURE__*/jsxRuntime.jsxs(ui.Stack, {
1502
+ space: "none",
1503
+ children: [/*#__PURE__*/jsxRuntime.jsx(StyledTypography, {
1504
+ variant: "caption",
1505
+ children: title
1506
+ }), /*#__PURE__*/jsxRuntime.jsx(StyledTypography, {
1507
+ variant: "caption",
1508
+ children: subtitle
1509
+ })]
1510
+ })
1511
+ })]
1512
+ });
1511
1513
  }
1512
1514
 
1513
1515
  var Divider = /*#__PURE__*/styled__default.div.withConfig({