@superdispatch/ui-lab 0.50.3 → 0.50.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 (124) hide show
  1. package/.babelrc.js +5 -0
  2. package/package.json +38 -13
  3. package/pkg/README.md +10 -0
  4. package/{dist-node → pkg/dist-node}/index.js +52 -40
  5. package/pkg/dist-node/index.js.map +1 -0
  6. package/{dist-src → pkg/dist-src}/email-autocomplate/EmailAutocomplete.js +3 -3
  7. package/{dist-src → pkg/dist-src}/file-drop-zone/FileDropZone.js +2 -2
  8. package/{dist-src → pkg/dist-src}/flag-list/FlagListItem.js +11 -19
  9. package/{dist-src → pkg/dist-src}/index.js +1 -0
  10. package/{dist-src → pkg/dist-src}/navbar/Navbar.js +13 -4
  11. package/{dist-src → pkg/dist-src}/navbar/NavbarAccordion.js +18 -9
  12. package/{dist-src → pkg/dist-src}/navbar/NavbarList.js +1 -1
  13. package/{dist-src → pkg/dist-src}/sidebar/SidebarBackButton.js +1 -1
  14. package/{dist-src → pkg/dist-src}/sidebar/SidebarMenuItem.js +1 -1
  15. package/{dist-src → pkg/dist-src}/sidebar/SidebarMenuItemAvatar.js +1 -1
  16. package/{dist-types → pkg/dist-types}/index.d.ts +8 -2
  17. package/{dist-web → pkg/dist-web}/index.js +52 -42
  18. package/pkg/dist-web/index.js.map +1 -0
  19. package/pkg/package.json +41 -0
  20. package/playroom.ts +24 -0
  21. package/src/alert/Alert.stories.tsx +162 -0
  22. package/src/alert/Alert.tsx +135 -0
  23. package/src/banner/Banner.stories.tsx +64 -0
  24. package/src/banner/Banner.tsx +120 -0
  25. package/src/box/Box.stories.tsx +20 -0
  26. package/src/box/Box.tsx +257 -0
  27. package/src/button/Button.stories.tsx +739 -0
  28. package/src/button/Button.tsx +498 -0
  29. package/src/button-area/ButtonArea.stories.tsx +65 -0
  30. package/src/button-area/ButtonArea.tsx +90 -0
  31. package/src/chat/Chat.stories.tsx +130 -0
  32. package/src/chat/Chat.tsx +57 -0
  33. package/src/chat/ChatMessage.tsx +45 -0
  34. package/src/chat/README.MD +7 -0
  35. package/src/chat/__tests__/Chat.spec.tsx +29 -0
  36. package/src/chat/__tests__/ChatMessage.spec.tsx +39 -0
  37. package/src/container/Container.tsx +48 -0
  38. package/src/description-item/DescriptionItem.stories.tsx +163 -0
  39. package/src/description-item/DescriptionItem.tsx +104 -0
  40. package/src/description-line-item/DescriptionLineItem.stories.tsx +23 -0
  41. package/src/description-line-item/DescriptionLineItem.tsx +29 -0
  42. package/src/email-autocomplate/CloseIcon.tsx +20 -0
  43. package/src/email-autocomplate/EmailAutocomplete.stories.tsx +47 -0
  44. package/src/email-autocomplate/EmailAutocomplete.tsx +138 -0
  45. package/src/file-drop-zone/FileDropZone.stories.tsx +44 -0
  46. package/src/file-drop-zone/FileDropZone.tsx +170 -0
  47. package/src/file-list-item/FileListItem.stories.tsx +37 -0
  48. package/src/file-list-item/FileListItem.tsx +148 -0
  49. package/src/file-list-item/__tests__/FileListItem.spec.tsx +339 -0
  50. package/src/flag-list/FlagList.stories.tsx +72 -0
  51. package/src/flag-list/FlagList.tsx +54 -0
  52. package/src/flag-list/FlagListItem.tsx +126 -0
  53. package/src/index.spec.ts +53 -0
  54. package/src/index.ts +36 -0
  55. package/src/linked-text/LinkeText.stories.tsx +42 -0
  56. package/src/linked-text/LinkedText.tsx +47 -0
  57. package/src/multiline-text/MultilineText.stories.tsx +30 -0
  58. package/src/multiline-text/MultilineText.ts +16 -0
  59. package/src/navbar/Navbar.stories.tsx +137 -0
  60. package/src/navbar/Navbar.tsx +132 -0
  61. package/src/navbar/NavbarAccordion.tsx +195 -0
  62. package/src/navbar/NavbarAvatar.tsx +51 -0
  63. package/src/navbar/NavbarBottomBar.tsx +135 -0
  64. package/src/navbar/NavbarContext.tsx +22 -0
  65. package/src/navbar/NavbarItem.tsx +125 -0
  66. package/src/navbar/NavbarList.tsx +247 -0
  67. package/src/navbar/NavbarMenu.tsx +102 -0
  68. package/src/passwordStepper/PasswordStrength.stories.tsx +95 -0
  69. package/src/passwordStepper/PasswordStrength.tsx +107 -0
  70. package/src/passwordStepper/PasswordUtils.tsx +42 -0
  71. package/src/passwordStepper/PasswordValidationComponents.tsx +95 -0
  72. package/src/sidebar/Sidebar.stories.tsx +376 -0
  73. package/src/sidebar/Sidebar.tsx +75 -0
  74. package/src/sidebar/SidebarBackButton.tsx +33 -0
  75. package/src/sidebar/SidebarContainer.tsx +114 -0
  76. package/src/sidebar/SidebarContent.tsx +119 -0
  77. package/src/sidebar/SidebarDivider.tsx +15 -0
  78. package/src/sidebar/SidebarMenuItem.tsx +196 -0
  79. package/src/sidebar/SidebarMenuItemAction.tsx +27 -0
  80. package/src/sidebar/SidebarMenuItemAvatar.tsx +59 -0
  81. package/src/sidebar/SidebarMenuItemContext.tsx +33 -0
  82. package/src/sidebar/SidebarSubheader.tsx +38 -0
  83. package/src/styled.d.ts +12 -0
  84. package/src/text-box/TextBox.stories.tsx +114 -0
  85. package/src/text-box/TextBox.tsx +238 -0
  86. package/src/utils/RuleNormalizer.ts +24 -0
  87. package/src/utils/mergeStyles.ts +28 -0
  88. package/tsconfig.json +19 -0
  89. package/LICENSE +0 -21
  90. package/dist-node/index.js.map +0 -1
  91. package/dist-web/index.js.map +0 -1
  92. /package/{dist-src → pkg/dist-src}/alert/Alert.js +0 -0
  93. /package/{dist-src → pkg/dist-src}/banner/Banner.js +0 -0
  94. /package/{dist-src → pkg/dist-src}/box/Box.js +0 -0
  95. /package/{dist-src → pkg/dist-src}/button/Button.js +0 -0
  96. /package/{dist-src → pkg/dist-src}/button-area/ButtonArea.js +0 -0
  97. /package/{dist-src → pkg/dist-src}/chat/Chat.js +0 -0
  98. /package/{dist-src → pkg/dist-src}/chat/ChatMessage.js +0 -0
  99. /package/{dist-src → pkg/dist-src}/container/Container.js +0 -0
  100. /package/{dist-src → pkg/dist-src}/description-item/DescriptionItem.js +0 -0
  101. /package/{dist-src → pkg/dist-src}/description-line-item/DescriptionLineItem.js +0 -0
  102. /package/{dist-src → pkg/dist-src}/email-autocomplate/CloseIcon.js +0 -0
  103. /package/{dist-src → pkg/dist-src}/file-list-item/FileListItem.js +0 -0
  104. /package/{dist-src → pkg/dist-src}/flag-list/FlagList.js +0 -0
  105. /package/{dist-src → pkg/dist-src}/linked-text/LinkedText.js +0 -0
  106. /package/{dist-src → pkg/dist-src}/multiline-text/MultilineText.js +0 -0
  107. /package/{dist-src → pkg/dist-src}/navbar/NavbarAvatar.js +0 -0
  108. /package/{dist-src → pkg/dist-src}/navbar/NavbarBottomBar.js +0 -0
  109. /package/{dist-src → pkg/dist-src}/navbar/NavbarContext.js +0 -0
  110. /package/{dist-src → pkg/dist-src}/navbar/NavbarItem.js +0 -0
  111. /package/{dist-src → pkg/dist-src}/navbar/NavbarMenu.js +0 -0
  112. /package/{dist-src → pkg/dist-src}/passwordStepper/PasswordStrength.js +0 -0
  113. /package/{dist-src → pkg/dist-src}/passwordStepper/PasswordUtils.js +0 -0
  114. /package/{dist-src → pkg/dist-src}/passwordStepper/PasswordValidationComponents.js +0 -0
  115. /package/{dist-src → pkg/dist-src}/sidebar/Sidebar.js +0 -0
  116. /package/{dist-src → pkg/dist-src}/sidebar/SidebarContainer.js +0 -0
  117. /package/{dist-src → pkg/dist-src}/sidebar/SidebarContent.js +0 -0
  118. /package/{dist-src → pkg/dist-src}/sidebar/SidebarDivider.js +0 -0
  119. /package/{dist-src → pkg/dist-src}/sidebar/SidebarMenuItemAction.js +0 -0
  120. /package/{dist-src → pkg/dist-src}/sidebar/SidebarMenuItemContext.js +0 -0
  121. /package/{dist-src → pkg/dist-src}/sidebar/SidebarSubheader.js +0 -0
  122. /package/{dist-src → pkg/dist-src}/text-box/TextBox.js +0 -0
  123. /package/{dist-src → pkg/dist-src}/utils/RuleNormalizer.js +0 -0
  124. /package/{dist-src → pkg/dist-src}/utils/mergeStyles.js +0 -0
package/.babelrc.js ADDED
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+
3
+ const createBabelConfig = require('../../config/createBabelConfig');
4
+
5
+ module.exports = createBabelConfig();
package/package.json CHANGED
@@ -1,22 +1,23 @@
1
1
  {
2
2
  "name": "@superdispatch/ui-lab",
3
- "version": "0.50.3",
4
- "license": "MIT",
5
- "files": [
6
- "dist-*/**",
7
- "bin/"
8
- ],
9
- "pika": true,
10
- "sideEffects": false,
3
+ "version": "0.50.5",
11
4
  "repository": {
12
5
  "type": "git",
13
6
  "url": "https://github.com/superdispatch/ui.git"
14
7
  },
8
+ "license": "MIT",
9
+ "main": "src/index.ts",
10
+ "module": "src/index.ts",
11
+ "browser": "pkg/dist-web/index.js",
12
+ "types": "src/index.ts",
13
+ "scripts": {
14
+ "version": "pika build"
15
+ },
15
16
  "dependencies": {
16
17
  "@superdispatch/dates": "^0.50.3",
17
18
  "@superdispatch/hooks": "^0.50.0",
18
19
  "@superdispatch/ui": "^0.50.3",
19
- "react-anchorme": "^2.2.1",
20
+ "react-anchorme": "^3.0.0",
20
21
  "react-dropzone": "^11.3.4"
21
22
  },
22
23
  "peerDependencies": {
@@ -34,8 +35,32 @@
34
35
  "access": "public",
35
36
  "directory": "pkg"
36
37
  },
37
- "esnext": "dist-src/index.js",
38
- "module": "dist-web/index.js",
39
- "main": "dist-node/index.js",
40
- "types": "dist-types/index.d.ts"
38
+ "@pika/pack": {
39
+ "pipeline": [
40
+ [
41
+ "@pika/plugin-standard-pkg",
42
+ {
43
+ "exclude": [
44
+ "**/*.spec.*",
45
+ "**/*.stories.*",
46
+ "**/*.playroom.*",
47
+ "**/__tests__/**",
48
+ "**/__testutils__/**"
49
+ ]
50
+ }
51
+ ],
52
+ [
53
+ "@pika/plugin-build-web"
54
+ ],
55
+ [
56
+ "@pika/plugin-build-node"
57
+ ],
58
+ [
59
+ "@pika/plugin-build-types"
60
+ ],
61
+ [
62
+ "@pika/plugin-bundle-types"
63
+ ]
64
+ ]
65
+ }
41
66
  }
package/pkg/README.md ADDED
@@ -0,0 +1,10 @@
1
+ ### `@superdispatch/ui-lab`
2
+
3
+ [![npm](https://img.shields.io/npm/v/@superdispatch/ui-lab)](https://www.npmjs.com/package/@superdispatch/ui-lab)
4
+ [![npm minzipped size](https://img.shields.io/bundlephobia/minzip/@superdispatch/ui-lab.svg)](https://bundlephobia.com/result?p=@superdispatch/ui-lab)
5
+
6
+ #### Installation
7
+
8
+ ```bash
9
+ yarn add @superdispatch/ui-lab
10
+ ```
@@ -909,7 +909,7 @@ var EmailAutocomplete = /*#__PURE__*/react.forwardRef((_ref, ref) => {
909
909
  },
910
910
  onChange: (_event, selectedValue, reason) => {
911
911
  var emails = selectedValue.flatMap(item => item.split(',')).map(item => item.trim());
912
- _onChange === null || _onChange === void 0 ? void 0 : _onChange(emails, reason);
912
+ _onChange === null || _onChange === void 0 || _onChange(emails, reason);
913
913
  },
914
914
  renderTags: items => {
915
915
  return /*#__PURE__*/jsxRuntime.jsx(ui.Inline, {
@@ -944,13 +944,13 @@ var EmailAutocomplete = /*#__PURE__*/react.forwardRef((_ref, ref) => {
944
944
  var text = event.target.value.replace(/,/g, '');
945
945
  var hasCommaOrSpace = /,|\s/.test(event.target.value);
946
946
  if (hasCommaOrSpace && text.trim() !== '') {
947
- _onChange === null || _onChange === void 0 ? void 0 : _onChange([...(value || []), text.trim()], 'select-option');
947
+ _onChange === null || _onChange === void 0 || _onChange([...(value || []), text.trim()], 'select-option');
948
948
  }
949
949
  },
950
950
  onBlur: event => {
951
951
  var text = event.target.value;
952
952
  if (text.trim() !== '') {
953
- _onChange === null || _onChange === void 0 ? void 0 : _onChange([...(value || []), text.trim()], 'select-option');
953
+ _onChange === null || _onChange === void 0 || _onChange([...(value || []), text.trim()], 'select-option');
954
954
  }
955
955
  }
956
956
  }))
@@ -1037,10 +1037,10 @@ var FileDropZone = /*#__PURE__*/react.forwardRef((props, ref) => {
1037
1037
  maxFiles: maxFiles,
1038
1038
  disabled: disabled,
1039
1039
  onDropAccepted: files => {
1040
- _onDropAccepted === null || _onDropAccepted === void 0 ? void 0 : _onDropAccepted(files);
1040
+ _onDropAccepted === null || _onDropAccepted === void 0 || _onDropAccepted(files);
1041
1041
  },
1042
1042
  onDropRejected: fileRejections => {
1043
- _onDropRejected === null || _onDropRejected === void 0 ? void 0 : _onDropRejected(fileRejections);
1043
+ _onDropRejected === null || _onDropRejected === void 0 || _onDropRejected(fileRejections);
1044
1044
  },
1045
1045
  children: _ref3 => {
1046
1046
  var {
@@ -1252,46 +1252,38 @@ var EndActions = /*#__PURE__*/styled__default.div.withConfig({
1252
1252
  } = _ref2;
1253
1253
  return theme.breakpoints.down('xs');
1254
1254
  });
1255
- var BannerListItemDanger = /*#__PURE__*/styled.css(["& ", "{background:", ";color:", ";}&:hover{background:", ";}"], IconContainer, ui.ColorDynamic.Red50, ui.ColorDynamic.Red300, ui.ColorDynamic.Red50);
1256
1255
  var BannerListItemStandalone = /*#__PURE__*/styled.css(["background:", ";"], ui.ColorDynamic.Silver200);
1257
1256
  var BannerListContainer = /*#__PURE__*/styled__default.div.withConfig({
1258
1257
  displayName: "FlagListItem__BannerListContainer",
1259
1258
  componentId: "SD__sc-o5bqru-4"
1260
- })(["display:flex;align-items:center;gap:8px;padding:8px 16px 8px 12px;border:1px solid ", ";background:", ";cursor:default;transition:", ";& + &{border-top:none;}&:last-child{border-radius:0 0 4px 4px;}&:hover{background:", ";& ", "{background:", ";}& ", " > svg{color:", ";}}[data-variant='standalone'] &:not(:hover){", "}", " ", "{flex-direction:column;align-items:flex-start;}"], ui.ColorDynamic.Silver400, ui.ColorDynamic.White, _ref3 => {
1259
+ })(["display:flex;align-items:center;gap:8px;padding:8px 16px 8px 12px;border:1px solid ", ";background:", ";cursor:default;transition:", ";& + &{border-top:none;}&:last-child{border-radius:0 0 4px 4px;}&:hover{background:", ";& ", "{background:", ";}}[data-variant='standalone'] &:not(:hover){", "}", "{flex-direction:column;align-items:flex-start;}"], ui.ColorDynamic.Silver400, ui.ColorDynamic.White, _ref3 => {
1261
1260
  var {
1262
1261
  theme
1263
1262
  } = _ref3;
1264
1263
  return theme.transitions.create(['color', 'background-color']);
1265
- }, ui.ColorDynamic.Blue50, IconContainer, ui.ColorDynamic.White, HelpIcon, _ref4 => {
1266
- var {
1267
- $variant
1268
- } = _ref4;
1269
- return $variant === 'danger' ? ui.ColorDynamic.Red300 : ui.ColorDynamic.Blue300;
1270
- }, BannerListItemStandalone, _ref5 => {
1271
- var {
1272
- $variant
1273
- } = _ref5;
1274
- return $variant === 'danger' ? BannerListItemDanger : null;
1275
- }, _ref6 => {
1264
+ }, ui.ColorDynamic.Silver200, IconContainer, ui.ColorDynamic.White, BannerListItemStandalone, _ref4 => {
1276
1265
  var {
1277
1266
  theme
1278
- } = _ref6;
1267
+ } = _ref4;
1279
1268
  return theme.breakpoints.down('xs');
1280
1269
  });
1281
- var FlagListItem = /*#__PURE__*/react.forwardRef((_ref7, ref) => {
1270
+ var FlagListItem = /*#__PURE__*/react.forwardRef((_ref5, ref) => {
1282
1271
  var {
1283
1272
  variant = 'primary',
1284
1273
  showHelpIcon,
1285
1274
  endAction,
1286
1275
  children
1287
- } = _ref7,
1288
- rest = _objectWithoutProperties(_ref7, _excluded$7);
1276
+ } = _ref5,
1277
+ rest = _objectWithoutProperties(_ref5, _excluded$7);
1289
1278
  return /*#__PURE__*/jsxRuntime.jsxs(BannerListContainer, _objectSpread(_objectSpread({}, rest), {}, {
1290
1279
  ref: ref,
1291
- $variant: variant,
1292
1280
  children: [/*#__PURE__*/jsxRuntime.jsxs(Content, {
1293
1281
  children: [/*#__PURE__*/jsxRuntime.jsx(IconContainer, {
1294
- children: variant === 'danger' ? /*#__PURE__*/jsxRuntime.jsx(icons.Error, {}) : variant === 'warning' ? /*#__PURE__*/jsxRuntime.jsx(icons.Warning, {}) : /*#__PURE__*/jsxRuntime.jsx(icons.Flag, {})
1282
+ children: variant === 'danger' ? /*#__PURE__*/jsxRuntime.jsx(icons.Error, {
1283
+ htmlColor: ui.ColorDynamic.Red300
1284
+ }) : variant === 'warning' ? /*#__PURE__*/jsxRuntime.jsx(icons.Warning, {
1285
+ htmlColor: ui.ColorDynamic.Yellow300
1286
+ }) : /*#__PURE__*/jsxRuntime.jsx(icons.Flag, {})
1295
1287
  }), children, /*#__PURE__*/jsxRuntime.jsx(HelpIcon, {
1296
1288
  children: showHelpIcon && /*#__PURE__*/jsxRuntime.jsx(icons.Help, {})
1297
1289
  })]
@@ -1498,19 +1490,28 @@ function NavbarAccordion(_ref2) {
1498
1490
  icon,
1499
1491
  gutter,
1500
1492
  items,
1501
- onClick: _onClick
1493
+ onClick: _onClick,
1494
+ isExpanded: controlledIsExpanded,
1495
+ onExpandedChange
1502
1496
  } = _ref2;
1503
1497
  var uid = ui.useUID();
1504
1498
  var {
1505
1499
  setDrawerOpen,
1506
1500
  isNavbarExpanded
1507
1501
  } = useNavbarContext();
1508
- var [isExpanded, setExpanded] = react.useState(true);
1509
-
1510
- // sync accordion state with Desktop menu state
1502
+ var [internalIsExpanded, setInternalExpanded] = react.useState(true);
1511
1503
  react.useEffect(() => {
1512
- setExpanded(isNavbarExpanded);
1513
- }, [isNavbarExpanded]);
1504
+ if (controlledIsExpanded === undefined) {
1505
+ setInternalExpanded(isNavbarExpanded);
1506
+ }
1507
+ }, [isNavbarExpanded, controlledIsExpanded]);
1508
+ var isExpanded = controlledIsExpanded !== undefined ? controlledIsExpanded : internalIsExpanded;
1509
+ function setExpanded(value) {
1510
+ if (controlledIsExpanded === undefined) {
1511
+ setInternalExpanded(value);
1512
+ }
1513
+ onExpandedChange === null || onExpandedChange === void 0 || onExpandedChange(value);
1514
+ }
1514
1515
  var filteredItems = react.useMemo(() => items.filter(item => !item.hide), [items]);
1515
1516
  return /*#__PURE__*/jsxRuntime.jsxs(NavbarAccordionRoot, {
1516
1517
  square: true,
@@ -1518,8 +1519,8 @@ function NavbarAccordion(_ref2) {
1518
1519
  "aria-labelledby": uid,
1519
1520
  expanded: isExpanded,
1520
1521
  onClick: event => {
1521
- _onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
1522
- if (isNavbarExpanded) {
1522
+ _onClick === null || _onClick === void 0 || _onClick(event);
1523
+ if (controlledIsExpanded !== undefined || isNavbarExpanded) {
1523
1524
  setExpanded(!isExpanded);
1524
1525
  }
1525
1526
  },
@@ -1548,7 +1549,7 @@ function NavbarAccordion(_ref2) {
1548
1549
  onClick: event => {
1549
1550
  var _item$onClick;
1550
1551
  event.stopPropagation();
1551
- (_item$onClick = item.onClick) === null || _item$onClick === void 0 ? void 0 : _item$onClick.call(item, event);
1552
+ (_item$onClick = item.onClick) === null || _item$onClick === void 0 || _item$onClick.call(item, event);
1552
1553
  if (!event.isDefaultPrevented()) {
1553
1554
  setDrawerOpen(false);
1554
1555
  }
@@ -1672,7 +1673,7 @@ function NavbarList(_ref6) {
1672
1673
  gutter: prev && prev.groupKey !== item.groupKey,
1673
1674
  onClick: event => {
1674
1675
  var _item$onClick;
1675
- (_item$onClick = item.onClick) === null || _item$onClick === void 0 ? void 0 : _item$onClick.call(item, event);
1676
+ (_item$onClick = item.onClick) === null || _item$onClick === void 0 || _item$onClick.call(item, event);
1676
1677
  if (!event.isDefaultPrevented()) {
1677
1678
  setDrawerOpen(false);
1678
1679
  }
@@ -1701,7 +1702,9 @@ function Navbar(_ref) {
1701
1702
  bottomItems,
1702
1703
  children,
1703
1704
  containerStyle,
1704
- hasExtraBadge
1705
+ hasExtraBadge,
1706
+ isMenuExpanded: controlledIsMenuExpanded,
1707
+ onMenuExpandedChange
1705
1708
  } = _ref;
1706
1709
  var theme = core.useTheme();
1707
1710
  var [isDrawerOpen, setDrawerOpen] = react.useState(false);
@@ -1710,7 +1713,14 @@ function Navbar(_ref) {
1710
1713
  var matches = core.useMediaQuery(theme.breakpoints.up('md'), {
1711
1714
  noSsr: true
1712
1715
  });
1713
- var [isMenuExpanded, setMenuExpanded] = react.useState(matches);
1716
+ var [internalIsMenuExpanded, setInternalMenuExpanded] = react.useState(matches);
1717
+ var isMenuExpanded = controlledIsMenuExpanded !== undefined ? controlledIsMenuExpanded : internalIsMenuExpanded;
1718
+ var setMenuExpanded = react.useCallback(value => {
1719
+ if (controlledIsMenuExpanded === undefined) {
1720
+ setInternalMenuExpanded(value);
1721
+ }
1722
+ onMenuExpandedChange === null || onMenuExpandedChange === void 0 || onMenuExpandedChange(value);
1723
+ }, [controlledIsMenuExpanded, onMenuExpandedChange]);
1714
1724
  var hasBadge = hasExtraBadge || items.some(item => item.badge);
1715
1725
  var ctx = react.useMemo(() => ({
1716
1726
  isDrawerOpen,
@@ -1718,7 +1728,7 @@ function Navbar(_ref) {
1718
1728
  setDrawerOpen,
1719
1729
  setMenuExpanded,
1720
1730
  isNavbarExpanded: isMenuExpanded || isDrawerOpen
1721
- }), [isDrawerOpen, isMenuExpanded, setMenuExpanded, setDrawerOpen]);
1731
+ }), [isDrawerOpen, isMenuExpanded, setDrawerOpen, setMenuExpanded]);
1722
1732
  return /*#__PURE__*/jsxRuntime.jsx(NavbarContext.Provider, {
1723
1733
  value: ctx,
1724
1734
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -2169,7 +2179,7 @@ function SidebarBackButton(_ref) {
2169
2179
  return /*#__PURE__*/jsxRuntime.jsx(core.IconButton, _objectSpread(_objectSpread({}, props), {}, {
2170
2180
  size: "small",
2171
2181
  onClick: event => {
2172
- _onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
2182
+ _onClick === null || _onClick === void 0 || _onClick(event);
2173
2183
  if (!event.isDefaultPrevented()) {
2174
2184
  openSidebar();
2175
2185
  }
@@ -2365,7 +2375,7 @@ var SidebarMenuItem = /*#__PURE__*/react.forwardRef((_ref2, ref) => {
2365
2375
  disabled: disabled,
2366
2376
  "aria-current": selected,
2367
2377
  onClick: event => {
2368
- _onClick === null || _onClick === void 0 ? void 0 : _onClick(event);
2378
+ _onClick === null || _onClick === void 0 || _onClick(event);
2369
2379
  if (!event.isDefaultPrevented() && openContentOnClick) {
2370
2380
  openSidebarContent();
2371
2381
  }
@@ -2479,7 +2489,7 @@ var SidebarMenuItemAvatar = /*#__PURE__*/react.forwardRef((_ref, ref) => {
2479
2489
  onMouseDown: stopPropagation,
2480
2490
  onTouchStart: stopPropagation,
2481
2491
  onChange: (_, checked) => {
2482
- _onChange === null || _onChange === void 0 ? void 0 : _onChange(checked);
2492
+ _onChange === null || _onChange === void 0 || _onChange(checked);
2483
2493
  }
2484
2494
  })
2485
2495
  });
@@ -2544,6 +2554,8 @@ exports.FlagListItem = FlagListItem;
2544
2554
  exports.LinkedText = LinkedText;
2545
2555
  exports.MultilineText = MultilineText;
2546
2556
  exports.Navbar = Navbar;
2557
+ exports.NavbarAccordion = NavbarAccordion;
2558
+ exports.NavbarAccordionLabel = NavbarAccordionLabel;
2547
2559
  exports.NavbarAvatar = NavbarAvatar;
2548
2560
  exports.NavbarBadge = NavbarBadge;
2549
2561
  exports.NavbarBottomBar = NavbarBottomBar;