@innovaccer/design-system 2.28.0 → 2.28.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.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,39 @@
1
+ ## 2.28.1 (2024-02-19)
2
+
3
+ ### Highlights
4
+
5
+ - feat(verticalNav): add expanded state in menu items (84635a2e)
6
+
7
+ ### Breaking changes
8
+
9
+ NA
10
+
11
+ ### Migration guide
12
+
13
+ NA
14
+
15
+ ### Deprecations
16
+
17
+ NA
18
+
19
+ ### Features
20
+
21
+ - feat(verticalNav): add expanded state in menu items (84635a2e)
22
+
23
+ ### Fixes
24
+
25
+ NA
26
+
27
+ ### Improvements
28
+
29
+ - fix(selection-card): update spacing between selection cards and action cards in story (f9580def)
30
+
31
+ ### Documentation
32
+
33
+ - docs(docs): update images and spacing documentation between interactive cards (f45c8873)
34
+
35
+ ---
36
+
1
37
  ## 2.28.0 (2024-02-09)
2
38
 
3
39
  ### Highlights
@@ -742,8 +742,8 @@
742
742
  "affectsGlobalScope": false
743
743
  },
744
744
  "../../core/utils/navigationHelper.tsx": {
745
- "version": "ac967412fc05024f78223436953d015a25500ff0a59cb8de5bba8e6f71ba2d40",
746
- "signature": "3ddaeda50c19bfb770fd46a8d45c9f7461bd83cfe514aec875e4e7472de8480c",
745
+ "version": "714b964d2364d5db4398249ccaa3ddfe3f39fca2b470707529eacdccedb1d577",
746
+ "signature": "2e3da2aacaddd7bb64ecb9e7b7b9da839b3771ce64fb6e2c5c49111bc4c5901d",
747
747
  "affectsGlobalScope": false
748
748
  },
749
749
  "../../core/components/organisms/verticalNav/MenuItem.tsx": {
@@ -752,7 +752,7 @@
752
752
  "affectsGlobalScope": false
753
753
  },
754
754
  "../../core/components/organisms/verticalNav/VerticalNav.tsx": {
755
- "version": "bc57700d47d3c63e19e408c3b2032ccc459df2eac0356f69de8dcc752d2ec8a7",
755
+ "version": "7311d817228228ec6fa49fdd2af55dee35f57927e71d2a533b99d00a5d0ff52b",
756
756
  "signature": "b6a81d40026ba8bd3a2cbf23c794ebad04a3cd7ae697b1a3fcbca6f0cb11ad7f",
757
757
  "affectsGlobalScope": false
758
758
  },
@@ -9,6 +9,7 @@ export declare type Menu = {
9
9
  disabled?: boolean;
10
10
  subMenu?: Menu[];
11
11
  iconType?: IconType;
12
+ expanded?: boolean;
12
13
  };
13
14
  export declare type ActiveMenu = ({
14
15
  name: string;
@@ -19,6 +20,11 @@ export declare const getTextAppearance: (isActive: boolean, disabled?: boolean |
19
20
  export declare const getIconAppearance: (isActive: boolean, disabled?: boolean | undefined) => "default" | "disabled" | "primary_dark";
20
21
  export declare const getPillsAppearance: (isActive: boolean) => "secondary" | "primary";
21
22
  export declare const getMenu: (menus: Menu[], active: ActiveMenu) => Menu | null;
23
+ export declare const getExpandedMenus: (menus: Menu[], active?: ({
24
+ name: string;
25
+ } & Partial<Menu>) | ({
26
+ link: string;
27
+ } & Partial<Menu>) | undefined) => Record<string, boolean>;
22
28
  export declare const isMenuActive: (menus: Menu[], menu: Menu, active?: ({
23
29
  name: string;
24
30
  } & Partial<Menu>) | ({
package/dist/index.esm.js CHANGED
@@ -1,8 +1,8 @@
1
1
 
2
2
  /**
3
- * Generated on: 1707429003158
3
+ * Generated on: 1708350879254
4
4
  * Package: @innovaccer/design-system
5
- * Version: v2.28.0
5
+ * Version: v2.28.1
6
6
  * License: MIT
7
7
  * Docs: https://innovaccer.github.io/design-system
8
8
  */
@@ -14313,6 +14313,31 @@ var getMenu = function getMenu(menus, active) {
14313
14313
 
14314
14314
  return null;
14315
14315
  };
14316
+ var getExpandedMenus = function getExpandedMenus(menus, active) {
14317
+ var expandedMenus = {};
14318
+ var activeMenu = active ? getMenu(menus, active) : null;
14319
+
14320
+ var _iterator2 = _createForOfIteratorHelper(menus),
14321
+ _step2;
14322
+
14323
+ try {
14324
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
14325
+ var menu = _step2.value;
14326
+ // Determine if the current menu is active or should be expanded by default
14327
+ var isActiveOrExpanded = (activeMenu === null || activeMenu === void 0 ? void 0 : activeMenu.name.split('.')[0]) === menu.name || menu.expanded;
14328
+
14329
+ if (menu.subMenu) {
14330
+ expandedMenus[menu.name] = !!isActiveOrExpanded;
14331
+ }
14332
+ }
14333
+ } catch (err) {
14334
+ _iterator2.e(err);
14335
+ } finally {
14336
+ _iterator2.f();
14337
+ }
14338
+
14339
+ return expandedMenus;
14340
+ };
14316
14341
  var isMenuActive = function isMenuActive(menus, menu, active) {
14317
14342
  if (active) {
14318
14343
  var currActiveMenu = getMenu(menus, active);
@@ -14466,8 +14491,13 @@ var VerticalNav = function VerticalNav(props) {
14466
14491
 
14467
14492
  var _React$useState = React.useState({}),
14468
14493
  _React$useState2 = _slicedToArray(_React$useState, 2),
14469
- menuState = _React$useState2[0],
14470
- setMenuState = _React$useState2[1];
14494
+ subMenuExpandedState = _React$useState2[0],
14495
+ setSubMenuExpandedState = _React$useState2[1];
14496
+
14497
+ var _React$useState3 = React.useState({}),
14498
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
14499
+ menuState = _React$useState4[0],
14500
+ setMenuState = _React$useState4[1];
14471
14501
 
14472
14502
  var baseProps = extractBaseProps(props);
14473
14503
  React.useEffect(function () {
@@ -14476,6 +14506,10 @@ var VerticalNav = function VerticalNav(props) {
14476
14506
  if (currMenu) updateMenuState(currMenu, true);
14477
14507
  }
14478
14508
  }, [props.active]);
14509
+ React.useEffect(function () {
14510
+ var expandedMenus = getExpandedMenus(menus, active);
14511
+ setSubMenuExpandedState(expandedMenus);
14512
+ }, []);
14479
14513
 
14480
14514
  var updateMenuState = function updateMenuState(menu, val) {
14481
14515
  var currMenu = getMenu(menus, menu);
@@ -14507,7 +14541,12 @@ var VerticalNav = function VerticalNav(props) {
14507
14541
  if (!expanded) {
14508
14542
  if (onClick) onClick(menu.subMenu[0]);
14509
14543
  } else {
14510
- updateMenuState(menu);
14544
+ if (!subMenuExpandedState[menu.name]) {
14545
+ updateMenuState(menu);
14546
+ }
14547
+
14548
+ setMenuState(_objectSpread2(_objectSpread2({}, menuState), {}, _defineProperty$1({}, menu.name, false)));
14549
+ setSubMenuExpandedState(_objectSpread2(_objectSpread2({}, subMenuExpandedState), {}, _defineProperty$1({}, menu.name, !subMenuExpandedState[menu.name])));
14511
14550
  }
14512
14551
  } else {
14513
14552
  if (onClick) onClick(menu);
@@ -14520,7 +14559,7 @@ var VerticalNav = function VerticalNav(props) {
14520
14559
 
14521
14560
  var isActive = !menuState[menu.name] && isMenuActive(menus, menu, active);
14522
14561
  var hasSubmenu = menu.subMenu && menu.subMenu.length > 0;
14523
- var isChildrenVisible = hasSubmenu && menuState[menu.name];
14562
+ var isChildrenVisible = hasSubmenu && (menuState[menu.name] || subMenuExpandedState[menu.name]);
14524
14563
  var hasGroup = index === 0 || menus[index - 1].group !== menu.group;
14525
14564
  var sectionClass = classnames((_classNames = {}, _defineProperty$1(_classNames, 'VerticalNav-section', true), _defineProperty$1(_classNames, 'VerticalNav-section--border', index !== 0), _classNames));
14526
14565
  return /*#__PURE__*/React.createElement(React.Fragment, {
@@ -14557,7 +14596,7 @@ var VerticalNav = function VerticalNav(props) {
14557
14596
  isChildrenVisible: isChildrenVisible,
14558
14597
  onClick: onClickHandler,
14559
14598
  customItemRenderer: customItemRenderer
14560
- }), menuState[menu.name] && menu.subMenu && menu.subMenu.map(function (subMenu, id) {
14599
+ }), isChildrenVisible && menu.subMenu.map(function (subMenu, id) {
14561
14600
  return showTooltip ? /*#__PURE__*/React.createElement(Tooltip, {
14562
14601
  tooltip: subMenu.label,
14563
14602
  position: "right"
@@ -23552,6 +23591,6 @@ var TextField = function TextField(props) {
23552
23591
  };
23553
23592
  TextField.displayName = 'TextField';
23554
23593
 
23555
- var version = "2.28.0";
23594
+ var version = "2.28.1";
23556
23595
 
23557
23596
  export { ActionCard, Avatar, AvatarGroup, Backdrop, Badge, Breadcrumbs, Button, Calendar, Caption, Card, CardBody, CardFooter, CardHeader, CardSubdued, ChatMessage, Checkbox, Chip, ChipGroup, ChipInput, ChoiceList, Collapsible, Column, DatePicker, DateRangePicker, Dialog, Divider, Dropdown, Dropzone, EditableChipInput, EditableDropdown, EditableInput, EmptyState, FileList, FileUploader, FileUploaderList, FullscreenModal, Grid, GridCell, Heading, HelpText, HorizontalNav, Icon, InlineMessage, Input, X as InputMask, Label, Legend, Link, LinkButton, List, Listbox, Message, MetaList, MetricInput, Modal, ModalBody, ModalDescription, ModalFooter, ModalHeader, MultiSlider, Navigation, OutsideClick, PageHeader, Pagination, Paragraph, Pills, Placeholder, PlaceholderImage, PlaceholderParagraph, Popover, ProgressBar, ProgressRing, Radio, RangeSlider, Row, SelectionCard, Sidesheet, Slider, Spinner, StatusHint, Stepper, Subheading, Switch, Tab, Table, Tabs, TabsWrapper, Text, TextField, Textarea, TimePicker, Toast, Tooltip, index as Utils, VerificationCodeInput, VerticalNav, version };
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
 
2
2
  /**
3
- * Generated on: 1707429003409
3
+ * Generated on: 1708350879498
4
4
  * Package: @innovaccer/design-system
5
- * Version: v2.28.0
5
+ * Version: v2.28.1
6
6
  * License: MIT
7
7
  * Docs: https://innovaccer.github.io/design-system
8
8
  */
@@ -8969,6 +8969,21 @@
8969
8969
 
8970
8970
  return null;
8971
8971
  };
8972
+ var getExpandedMenus = function getExpandedMenus(menus, active) {
8973
+ var expandedMenus = {};
8974
+ var activeMenu = active ? getMenu(menus, active) : null;
8975
+
8976
+ for (var _i = 0, menus_2 = menus; _i < menus_2.length; _i++) {
8977
+ var menu = menus_2[_i];
8978
+ var isActiveOrExpanded = (activeMenu === null || activeMenu === void 0 ? void 0 : activeMenu.name.split('.')[0]) === menu.name || menu.expanded;
8979
+
8980
+ if (menu.subMenu) {
8981
+ expandedMenus[menu.name] = !!isActiveOrExpanded;
8982
+ }
8983
+ }
8984
+
8985
+ return expandedMenus;
8986
+ };
8972
8987
  var isMenuActive = function isMenuActive(menus, menu, active) {
8973
8988
  if (active) {
8974
8989
  var currActiveMenu = getMenu(menus, active);
@@ -9116,8 +9131,12 @@
9116
9131
  showTooltip = props.showTooltip;
9117
9132
 
9118
9133
  var _b = React__namespace.useState({}),
9119
- menuState = _b[0],
9120
- setMenuState = _b[1];
9134
+ subMenuExpandedState = _b[0],
9135
+ setSubMenuExpandedState = _b[1];
9136
+
9137
+ var _c = React__namespace.useState({}),
9138
+ menuState = _c[0],
9139
+ setMenuState = _c[1];
9121
9140
 
9122
9141
  var baseProps = extractBaseProps(props);
9123
9142
  React__namespace.useEffect(function () {
@@ -9126,6 +9145,10 @@
9126
9145
  if (currMenu) updateMenuState(currMenu, true);
9127
9146
  }
9128
9147
  }, [props.active]);
9148
+ React__namespace.useEffect(function () {
9149
+ var expandedMenus = getExpandedMenus(menus, active);
9150
+ setSubMenuExpandedState(expandedMenus);
9151
+ }, []);
9129
9152
 
9130
9153
  var updateMenuState = function updateMenuState(menu, val) {
9131
9154
  var _a;
@@ -9155,11 +9178,18 @@
9155
9178
  };
9156
9179
 
9157
9180
  var onClickHandler = function onClickHandler(menu) {
9181
+ var _a, _b;
9182
+
9158
9183
  if (menu.subMenu) {
9159
9184
  if (!expanded) {
9160
9185
  if (onClick) onClick(menu.subMenu[0]);
9161
9186
  } else {
9162
- updateMenuState(menu);
9187
+ if (!subMenuExpandedState[menu.name]) {
9188
+ updateMenuState(menu);
9189
+ }
9190
+
9191
+ setMenuState(__assign(__assign({}, menuState), (_a = {}, _a[menu.name] = false, _a)));
9192
+ setSubMenuExpandedState(__assign(__assign({}, subMenuExpandedState), (_b = {}, _b[menu.name] = !subMenuExpandedState[menu.name], _b)));
9163
9193
  }
9164
9194
  } else {
9165
9195
  if (onClick) onClick(menu);
@@ -9172,7 +9202,7 @@
9172
9202
 
9173
9203
  var isActive = !menuState[menu.name] && isMenuActive(menus, menu, active);
9174
9204
  var hasSubmenu = menu.subMenu && menu.subMenu.length > 0;
9175
- var isChildrenVisible = hasSubmenu && menuState[menu.name];
9205
+ var isChildrenVisible = hasSubmenu && (menuState[menu.name] || subMenuExpandedState[menu.name]);
9176
9206
  var hasGroup = index === 0 || menus[index - 1].group !== menu.group;
9177
9207
  var sectionClass = classNames__default["default"]((_a = {}, _a['VerticalNav-section'] = true, _a['VerticalNav-section--border'] = index !== 0, _a));
9178
9208
  return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, {
@@ -9209,7 +9239,7 @@
9209
9239
  isChildrenVisible: isChildrenVisible,
9210
9240
  onClick: onClickHandler,
9211
9241
  customItemRenderer: customItemRenderer
9212
- }), menuState[menu.name] && menu.subMenu && menu.subMenu.map(function (subMenu, id) {
9242
+ }), isChildrenVisible && menu.subMenu.map(function (subMenu, id) {
9213
9243
  return showTooltip ? /*#__PURE__*/React__namespace.createElement(Tooltip, {
9214
9244
  tooltip: subMenu.label,
9215
9245
  position: "right"
@@ -17794,7 +17824,7 @@
17794
17824
  };
17795
17825
  TextField.displayName = 'TextField';
17796
17826
 
17797
- var version = "2.28.0";
17827
+ var version = "2.28.1";
17798
17828
 
17799
17829
  exports.ActionCard = ActionCard;
17800
17830
  exports.Avatar = Avatar;