@superdispatch/ui-lab 0.20.4 → 0.21.1

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.
@@ -35,7 +35,8 @@ function parseMargin(input) {
35
35
 
36
36
  var normalizeBorderRadius = /*#__PURE__*/createRuleNormalizer({
37
37
  none: 0,
38
- small: 4
38
+ small: 4,
39
+ medium: 8
39
40
  });
40
41
  var normalizeBorderWidth = /*#__PURE__*/createRuleNormalizer({
41
42
  none: 0,
@@ -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 => {
@@ -81,7 +79,7 @@ export function NavbarAccordion(_ref2) {
81
79
  } = item;
82
80
  return /*#__PURE__*/_createElement(NavbarItem, _objectSpread(_objectSpread({}, item), {}, {
83
81
  key: item.key,
84
- ident: ident + 1,
82
+ ident: ident,
85
83
  active: item.active,
86
84
  gutter: prev && prev.groupKey !== item.groupKey,
87
85
  onClick: event => {
@@ -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,
@@ -25,7 +25,7 @@ declare type BannerProps = Omit<CustomerTransitionProps, 'timeout' | 'className'
25
25
  declare const Banner: ForwardRefExoticComponent<Pick<BannerProps, string | number> & RefAttributes<CSSTransition<HTMLDivElement>>>;
26
26
 
27
27
  declare type MarginProp = 'auto' | SpaceProp | NegativeSpaceProp;
28
- declare type BorderRadiusProp = 'none' | 'small';
28
+ declare type BorderRadiusProp = 'none' | 'small' | 'medium';
29
29
  declare type BorderWidthProp = 'none' | 'small' | 'medium' | 'large';
30
30
  interface BoxRules {
31
31
  display?: ResponsiveProp<Property.Display>;
@@ -197,8 +197,8 @@ interface NavbarAccordionProps {
197
197
  label: ReactNode;
198
198
  icon?: ReactNode;
199
199
  gutter?: boolean;
200
- items: NavbarItemOptions[];
201
- onClick: (event: MouseEvent<HTMLDivElement>) => void;
200
+ items: Array<Omit<NavbarItemOptions, 'icon'>>;
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
@@ -156,7 +156,8 @@ function parseMargin(input) {
156
156
 
157
157
  var normalizeBorderRadius = /*#__PURE__*/createRuleNormalizer({
158
158
  none: 0,
159
- small: 4
159
+ small: 4,
160
+ medium: 8
160
161
  });
161
162
  var normalizeBorderWidth = /*#__PURE__*/createRuleNormalizer({
162
163
  none: 0,
@@ -1054,8 +1055,9 @@ MultilineText.displayName = 'MultilineText';
1054
1055
 
1055
1056
  var NavbarContext = /*#__PURE__*/createContext({
1056
1057
  isDrawerOpen: false,
1057
- isExpanded: false,
1058
- setIsExpanded: noop,
1058
+ isMenuExpanded: false,
1059
+ isNavbarExpanded: false,
1060
+ setMenuExpanded: noop,
1059
1061
  setDrawerOpen: noop
1060
1062
  });
1061
1063
  function useNavbarContext() {
@@ -1200,37 +1202,35 @@ function NavbarAccordion(_ref2) {
1200
1202
  } = _ref2;
1201
1203
  var uid = useUID();
1202
1204
  var {
1203
- isExpanded: isMenuExpanded,
1204
- isDrawerOpen,
1205
- setDrawerOpen
1205
+ setDrawerOpen,
1206
+ isNavbarExpanded
1206
1207
  } = useNavbarContext();
1207
- var [isExpanded, setExpanded] = useState(false);
1208
+ var [isExpanded, setExpanded] = useState(true); // sync accordion state with Desktop menu state
1209
+
1208
1210
  useEffect(() => {
1209
- if (!isMenuExpanded) {
1210
- setExpanded(false);
1211
- }
1212
- }, [isMenuExpanded]);
1211
+ setExpanded(isNavbarExpanded);
1212
+ }, [isNavbarExpanded]);
1213
1213
  return /*#__PURE__*/jsxs(NavbarAccordionRoot, {
1214
- "aria-labelledby": uid,
1214
+ square: true,
1215
1215
  gutter: !!gutter,
1216
+ "aria-labelledby": uid,
1216
1217
  expanded: isExpanded,
1217
1218
  onClick: event => {
1218
- if (isMenuExpanded || isDrawerOpen) {
1219
+ _onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
1220
+
1221
+ if (isNavbarExpanded) {
1219
1222
  setExpanded(!isExpanded);
1220
1223
  }
1221
-
1222
- _onClick(event);
1223
1224
  },
1224
- square: true,
1225
1225
  children: [/*#__PURE__*/jsxs(NavbarAccordionSummary, {
1226
1226
  "data-active": !isExpanded && items.some(item => item.active),
1227
- "data-expanded": isMenuExpanded || isDrawerOpen,
1227
+ "data-expanded": isNavbarExpanded,
1228
1228
  expandIcon: /*#__PURE__*/jsx(ExpandMore, {}),
1229
1229
  children: [/*#__PURE__*/jsx(IconWrapper$2, {
1230
1230
  children: icon
1231
1231
  }), /*#__PURE__*/jsx(NavbarAccordionLabel, {
1232
1232
  id: uid,
1233
- "data-expanded": isMenuExpanded || isDrawerOpen,
1233
+ "data-expanded": isNavbarExpanded,
1234
1234
  children: label
1235
1235
  })]
1236
1236
  }), items.map(item => {
@@ -1241,7 +1241,7 @@ function NavbarAccordion(_ref2) {
1241
1241
  } = item;
1242
1242
  return /*#__PURE__*/createElement(NavbarItem, _objectSpread(_objectSpread({}, item), {}, {
1243
1243
  key: item.key,
1244
- ident: ident + 1,
1244
+ ident: ident,
1245
1245
  active: item.active,
1246
1246
  gutter: prev && prev.groupKey !== item.groupKey,
1247
1247
  onClick: event => {
@@ -1326,12 +1326,12 @@ function NavbarList(_ref5) {
1326
1326
  var platform = useResponsiveValue('mobile', 'tablet', 'desktop');
1327
1327
  var isMobile = platform === 'mobile';
1328
1328
  var {
1329
- isExpanded,
1329
+ isMenuExpanded,
1330
1330
  isDrawerOpen,
1331
1331
  setDrawerOpen,
1332
- setIsExpanded
1332
+ setMenuExpanded
1333
1333
  } = useNavbarContext();
1334
- var isSidebarOpened = isMobile ? isDrawerOpen : isExpanded;
1334
+ var isSidebarOpened = isMobile ? isDrawerOpen : isMenuExpanded;
1335
1335
  var filteredItems = useMemo(() => items.filter(item => {
1336
1336
  return !item.hide && (isSidebarOpened || !!item.icon);
1337
1337
  }).map(item => _objectSpread(_objectSpread({}, item), {}, {
@@ -1343,13 +1343,13 @@ function NavbarList(_ref5) {
1343
1343
  children: [/*#__PURE__*/jsxs(Header, {
1344
1344
  children: [isSidebarOpened && header, !isMobile && /*#__PURE__*/jsx(ExpandIconButton, {
1345
1345
  disableRipple: true,
1346
- style: isExpanded ? {
1346
+ style: isMenuExpanded ? {
1347
1347
  paddingRight: 0
1348
1348
  } : {},
1349
1349
  onClick: () => {
1350
- setIsExpanded(!isExpanded);
1350
+ setMenuExpanded(!isMenuExpanded);
1351
1351
  },
1352
- children: isExpanded ? /*#__PURE__*/jsx(MenuOpen, {}) : /*#__PURE__*/jsx(Menu, {})
1352
+ children: isMenuExpanded ? /*#__PURE__*/jsx(MenuOpen, {}) : /*#__PURE__*/jsx(Menu, {})
1353
1353
  })]
1354
1354
  }), /*#__PURE__*/jsx(Content, {
1355
1355
  "aria-expanded": isSidebarOpened,
@@ -1410,14 +1410,15 @@ function Navbar(_ref) {
1410
1410
  var matches = useMediaQuery(theme.breakpoints.up('md'), {
1411
1411
  noSsr: true
1412
1412
  });
1413
- var [isExpanded, setIsExpanded] = useState(matches);
1413
+ var [isMenuExpanded, setMenuExpanded] = useState(matches);
1414
1414
  var hasBadge = hasExtraBadge || items.some(item => item.badge);
1415
1415
  var ctx = useMemo(() => ({
1416
1416
  isDrawerOpen,
1417
- isExpanded,
1418
- setIsExpanded,
1419
- setDrawerOpen
1420
- }), [isDrawerOpen, isExpanded, setIsExpanded, setDrawerOpen]);
1417
+ isMenuExpanded,
1418
+ setDrawerOpen,
1419
+ setMenuExpanded,
1420
+ isNavbarExpanded: isMenuExpanded || isDrawerOpen
1421
+ }), [isDrawerOpen, isMenuExpanded, setMenuExpanded, setDrawerOpen]);
1421
1422
  return /*#__PURE__*/jsx(NavbarContext.Provider, {
1422
1423
  value: ctx,
1423
1424
  children: /*#__PURE__*/jsxs("div", {
@@ -1473,37 +1474,36 @@ function NavbarAvatar(_ref) {
1473
1474
  props = _objectWithoutProperties(_ref, _excluded$7);
1474
1475
 
1475
1476
  var {
1476
- isExpanded,
1477
- isDrawerOpen
1477
+ isNavbarExpanded
1478
1478
  } = useNavbarContext();
1479
1479
 
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
- });
1480
+ if (!isNavbarExpanded) {
1481
+ return /*#__PURE__*/jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
1482
+ children: children
1483
+ }));
1502
1484
  }
1503
1485
 
1504
- return /*#__PURE__*/jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
1505
- children: children
1506
- }));
1486
+ return /*#__PURE__*/jsxs(Columns, {
1487
+ space: "xsmall",
1488
+ align: "center",
1489
+ children: [/*#__PURE__*/jsx(Column, {
1490
+ width: "content",
1491
+ children: /*#__PURE__*/jsx(Avatar, _objectSpread(_objectSpread({}, props), {}, {
1492
+ children: children
1493
+ }))
1494
+ }), /*#__PURE__*/jsx(Column, {
1495
+ children: /*#__PURE__*/jsxs(Stack, {
1496
+ space: "none",
1497
+ children: [/*#__PURE__*/jsx(StyledTypography, {
1498
+ variant: "caption",
1499
+ children: title
1500
+ }), /*#__PURE__*/jsx(StyledTypography, {
1501
+ variant: "caption",
1502
+ children: subtitle
1503
+ })]
1504
+ })
1505
+ })]
1506
+ });
1507
1507
  }
1508
1508
 
1509
1509
  var Divider = /*#__PURE__*/styled.div.withConfig({