@nulogy/components 8.6.0 → 8.7.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/dist/main.js CHANGED
@@ -20324,7 +20324,9 @@
20324
20324
  return {
20325
20325
  color: theme.colors[color],
20326
20326
  fontWeight: theme.fontWeights.medium,
20327
- display: "block",
20327
+ display: "flex",
20328
+ alignItems: "center",
20329
+ gap: theme.space.half,
20328
20330
  textDecoration: "none",
20329
20331
  borderColor: "transparent",
20330
20332
  backgroundColor: "transparent",
@@ -21065,7 +21067,9 @@
21065
21067
 
21066
21068
  var getSharedStyles$4 = function getSharedStyles() {
21067
21069
  return {
21068
- display: "block",
21070
+ display: "flex",
21071
+ alignItems: "center",
21072
+ gap: Theme.space.half,
21069
21073
  whiteSpace: "nowrap",
21070
21074
  textDecoration: "none",
21071
21075
  borderColor: "transparent",
@@ -21439,7 +21443,9 @@
21439
21443
 
21440
21444
  var getSharedStyles$3 = function getSharedStyles(color) {
21441
21445
  return {
21442
- display: "block",
21446
+ display: "flex",
21447
+ alignItems: "center",
21448
+ gap: Theme.space.half,
21443
21449
  color: themeGet("colors." + color, color)(color),
21444
21450
  textDecoration: "none",
21445
21451
  border: "none",
@@ -21650,7 +21656,9 @@
21650
21656
  var color = _ref.color,
21651
21657
  layer = _ref.layer;
21652
21658
  return {
21653
- display: "block",
21659
+ display: "flex",
21660
+ alignItems: "center",
21661
+ gap: Theme.space.half,
21654
21662
  color: themeGet("colors." + color, color)(color),
21655
21663
  textDecoration: "none",
21656
21664
  border: "none",
@@ -25764,6 +25772,8 @@
25764
25772
  focusedIndex = _useState[0],
25765
25773
  setFocusedIndex = _useState[1];
25766
25774
 
25775
+ var prevFocusedIndex = React.useRef(focusedIndex);
25776
+
25767
25777
  var focusPrevious = function focusPrevious() {
25768
25778
  setFocusedIndex(function (prevFocusedIndex) {
25769
25779
  return (prevFocusedIndex - 1 + refs.length) % refs.length;
@@ -25795,7 +25805,10 @@
25795
25805
  refs[focusedIndex].focus();
25796
25806
  };
25797
25807
 
25798
- updateFocused();
25808
+ if (prevFocusedIndex.current !== focusedIndex) {
25809
+ updateFocused();
25810
+ prevFocusedIndex.current = focusedIndex;
25811
+ }
25799
25812
  }, [focusedIndex, refs]);
25800
25813
  return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, children({
25801
25814
  focusedIndex: focusedIndex,
@@ -42978,14 +42991,19 @@
42978
42991
  var renderSubMenuLink = function renderSubMenuLink(subMenuItem, onItemClick) {
42979
42992
  var _a;
42980
42993
 
42981
- return /*#__PURE__*/React__default['default'].createElement(NoWrapLi, {
42982
- key: (_a = subMenuItem.key) !== null && _a !== void 0 ? _a : subMenuItem.name
42983
- }, /*#__PURE__*/React__default['default'].createElement(DropdownLink, {
42994
+ var linkProps = {
42984
42995
  onClick: onItemClick,
42985
42996
  href: subMenuItem.href,
42986
42997
  to: subMenuItem.to,
42987
- as: subMenuItem.as
42988
- }, subMenuItem.name));
42998
+ as: subMenuItem.as,
42999
+ target: subMenuItem.openInNew ? "_blank" : undefined
43000
+ };
43001
+ return /*#__PURE__*/React__default['default'].createElement(NoWrapLi, {
43002
+ key: (_a = subMenuItem.key) !== null && _a !== void 0 ? _a : subMenuItem.name
43003
+ }, /*#__PURE__*/React__default['default'].createElement(DropdownLink, Object.assign({}, linkProps), subMenuItem.name, subMenuItem.openInNew && /*#__PURE__*/React__default['default'].createElement(Icon, {
43004
+ size: "x2",
43005
+ icon: "openInNew"
43006
+ })));
42989
43007
  };
42990
43008
 
42991
43009
  var renderCustom$2 = function renderCustom(subMenuItem, onItemClick, _SubMenuTrigger, layer) {
@@ -43290,7 +43308,9 @@
43290
43308
 
43291
43309
  var getSharedStyles$1 = function getSharedStyles(color, theme) {
43292
43310
  return {
43293
- display: "block",
43311
+ display: "flex",
43312
+ alignItems: "center",
43313
+ gap: theme.space.half,
43294
43314
  color: theme.colors[color] || color,
43295
43315
  textDecoration: "none",
43296
43316
  border: "none",
@@ -43364,13 +43384,18 @@
43364
43384
  var renderMenuLink$1 = function renderMenuLink(menuItem, themeColorObject) {
43365
43385
  var _a;
43366
43386
 
43367
- return /*#__PURE__*/React__default['default'].createElement("div", {
43368
- key: (_a = menuItem.key) !== null && _a !== void 0 ? _a : menuItem.name
43369
- }, /*#__PURE__*/React__default['default'].createElement(MenuLink, Object.assign({
43387
+ var linkProps = {
43370
43388
  href: menuItem.href,
43371
43389
  to: menuItem.to,
43372
- as: menuItem.as
43373
- }, themeColorObject), menuItem.name));
43390
+ as: menuItem.as,
43391
+ target: menuItem.openInNew ? "_blank" : undefined
43392
+ };
43393
+ return /*#__PURE__*/React__default['default'].createElement("div", {
43394
+ key: (_a = menuItem.key) !== null && _a !== void 0 ? _a : menuItem.name
43395
+ }, /*#__PURE__*/React__default['default'].createElement(MenuLink, Object.assign({}, linkProps, themeColorObject), menuItem.name, menuItem.openInNew && /*#__PURE__*/React__default['default'].createElement(Icon, {
43396
+ size: "x2",
43397
+ icon: "openInNew"
43398
+ })));
43374
43399
  };
43375
43400
 
43376
43401
  var renderCustom$1 = function renderCustom(menuItem, _themeColorObject, layer) {
@@ -43395,13 +43420,17 @@
43395
43420
  var getRenderFunction$1 = function getRenderFunction(menuItem) {
43396
43421
  if (menuItem.items) {
43397
43422
  return renderMenuTrigger;
43398
- } else if (menuItem.href || menuItem.to) {
43423
+ }
43424
+
43425
+ if (menuItem.href || menuItem.to) {
43399
43426
  return renderMenuLink$1;
43400
- } else if (menuItem.render) {
43427
+ }
43428
+
43429
+ if (menuItem.render) {
43401
43430
  return renderCustom$1;
43402
- } else {
43403
- return renderText$1;
43404
43431
  }
43432
+
43433
+ return renderText$1;
43405
43434
  };
43406
43435
 
43407
43436
  var renderMenuItem = function renderMenuItem(menuItem, themeColorObject, layer, menuType) {
@@ -43580,7 +43609,9 @@
43580
43609
 
43581
43610
  var getSharedStyles = function getSharedStyles(theme) {
43582
43611
  return {
43583
- display: "block",
43612
+ display: "flex",
43613
+ alignItems: "center",
43614
+ gap: theme.space.half,
43584
43615
  textDecoration: "none",
43585
43616
  border: "none",
43586
43617
  backgroundColor: "transparent",
@@ -43646,12 +43677,17 @@
43646
43677
  to: menuItem.to,
43647
43678
  // eslint-disable-next-line no-mixed-operators
43648
43679
  pl: layer === 0 ? getPaddingLeft(layer) : 24 * layer + 20 + "px",
43649
- mb: "x1"
43680
+ mb: "x1",
43681
+ target: menuItem.openInNew ? "_blank" : undefined
43650
43682
  };
43651
- var MenuLink = layer === 0 ? TopLevelLink : DropdownLink;
43683
+ var topLevel = layer === 0;
43684
+ var MenuLink = topLevel ? TopLevelLink : DropdownLink;
43652
43685
  return /*#__PURE__*/React__default['default'].createElement("li", {
43653
43686
  key: (_a = menuItem.key) !== null && _a !== void 0 ? _a : menuItem.name
43654
- }, /*#__PURE__*/React__default['default'].createElement(MenuLink, Object.assign({}, sharedLinkProps), menuItem.name));
43687
+ }, /*#__PURE__*/React__default['default'].createElement(MenuLink, Object.assign({}, sharedLinkProps), menuItem.name, menuItem.openInNew && /*#__PURE__*/React__default['default'].createElement(Icon, {
43688
+ size: topLevel ? "x3" : "x2",
43689
+ icon: "openInNew"
43690
+ })));
43655
43691
  };
43656
43692
 
43657
43693
  var renderCustom = function renderCustom(menuItem, linkOnClick, themeColorObject, layer) {
@@ -20298,7 +20298,9 @@ var DropdownLink = styled.a.withConfig({
20298
20298
  return {
20299
20299
  color: theme.colors[color],
20300
20300
  fontWeight: theme.fontWeights.medium,
20301
- display: "block",
20301
+ display: "flex",
20302
+ alignItems: "center",
20303
+ gap: theme.space.half,
20302
20304
  textDecoration: "none",
20303
20305
  borderColor: "transparent",
20304
20306
  backgroundColor: "transparent",
@@ -21039,7 +21041,9 @@ var SubMenuLink = styled(DropdownLink).withConfig({
21039
21041
 
21040
21042
  var getSharedStyles$4 = function getSharedStyles() {
21041
21043
  return {
21042
- display: "block",
21044
+ display: "flex",
21045
+ alignItems: "center",
21046
+ gap: Theme.space.half,
21043
21047
  whiteSpace: "nowrap",
21044
21048
  textDecoration: "none",
21045
21049
  borderColor: "transparent",
@@ -21413,7 +21417,9 @@ MenuTrigger$1.defaultProps = {
21413
21417
 
21414
21418
  var getSharedStyles$3 = function getSharedStyles(color) {
21415
21419
  return {
21416
- display: "block",
21420
+ display: "flex",
21421
+ alignItems: "center",
21422
+ gap: Theme.space.half,
21417
21423
  color: themeGet("colors." + color, color)(color),
21418
21424
  textDecoration: "none",
21419
21425
  border: "none",
@@ -21624,7 +21630,9 @@ var getSharedStyles$2 = function getSharedStyles(_ref) {
21624
21630
  var color = _ref.color,
21625
21631
  layer = _ref.layer;
21626
21632
  return {
21627
- display: "block",
21633
+ display: "flex",
21634
+ alignItems: "center",
21635
+ gap: Theme.space.half,
21628
21636
  color: themeGet("colors." + color, color)(color),
21629
21637
  textDecoration: "none",
21630
21638
  border: "none",
@@ -25738,6 +25746,8 @@ var FocusManager = function FocusManager(_ref) {
25738
25746
  focusedIndex = _useState[0],
25739
25747
  setFocusedIndex = _useState[1];
25740
25748
 
25749
+ var prevFocusedIndex = useRef(focusedIndex);
25750
+
25741
25751
  var focusPrevious = function focusPrevious() {
25742
25752
  setFocusedIndex(function (prevFocusedIndex) {
25743
25753
  return (prevFocusedIndex - 1 + refs.length) % refs.length;
@@ -25769,7 +25779,10 @@ var FocusManager = function FocusManager(_ref) {
25769
25779
  refs[focusedIndex].focus();
25770
25780
  };
25771
25781
 
25772
- updateFocused();
25782
+ if (prevFocusedIndex.current !== focusedIndex) {
25783
+ updateFocused();
25784
+ prevFocusedIndex.current = focusedIndex;
25785
+ }
25773
25786
  }, [focusedIndex, refs]);
25774
25787
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, children({
25775
25788
  focusedIndex: focusedIndex,
@@ -42952,14 +42965,19 @@ var renderSubMenuTrigger = function renderSubMenuTrigger(subMenuItem, onItemClic
42952
42965
  var renderSubMenuLink = function renderSubMenuLink(subMenuItem, onItemClick) {
42953
42966
  var _a;
42954
42967
 
42955
- return /*#__PURE__*/React__default.createElement(NoWrapLi, {
42956
- key: (_a = subMenuItem.key) !== null && _a !== void 0 ? _a : subMenuItem.name
42957
- }, /*#__PURE__*/React__default.createElement(DropdownLink, {
42968
+ var linkProps = {
42958
42969
  onClick: onItemClick,
42959
42970
  href: subMenuItem.href,
42960
42971
  to: subMenuItem.to,
42961
- as: subMenuItem.as
42962
- }, subMenuItem.name));
42972
+ as: subMenuItem.as,
42973
+ target: subMenuItem.openInNew ? "_blank" : undefined
42974
+ };
42975
+ return /*#__PURE__*/React__default.createElement(NoWrapLi, {
42976
+ key: (_a = subMenuItem.key) !== null && _a !== void 0 ? _a : subMenuItem.name
42977
+ }, /*#__PURE__*/React__default.createElement(DropdownLink, Object.assign({}, linkProps), subMenuItem.name, subMenuItem.openInNew && /*#__PURE__*/React__default.createElement(Icon, {
42978
+ size: "x2",
42979
+ icon: "openInNew"
42980
+ })));
42963
42981
  };
42964
42982
 
42965
42983
  var renderCustom$2 = function renderCustom(subMenuItem, onItemClick, _SubMenuTrigger, layer) {
@@ -43264,7 +43282,9 @@ var MenuTrigger = function MenuTrigger(_a) {
43264
43282
 
43265
43283
  var getSharedStyles$1 = function getSharedStyles(color, theme) {
43266
43284
  return {
43267
- display: "block",
43285
+ display: "flex",
43286
+ alignItems: "center",
43287
+ gap: theme.space.half,
43268
43288
  color: theme.colors[color] || color,
43269
43289
  textDecoration: "none",
43270
43290
  border: "none",
@@ -43338,13 +43358,18 @@ var renderMenuTrigger = function renderMenuTrigger(menuItem, themeColorObject, l
43338
43358
  var renderMenuLink$1 = function renderMenuLink(menuItem, themeColorObject) {
43339
43359
  var _a;
43340
43360
 
43341
- return /*#__PURE__*/React__default.createElement("div", {
43342
- key: (_a = menuItem.key) !== null && _a !== void 0 ? _a : menuItem.name
43343
- }, /*#__PURE__*/React__default.createElement(MenuLink, Object.assign({
43361
+ var linkProps = {
43344
43362
  href: menuItem.href,
43345
43363
  to: menuItem.to,
43346
- as: menuItem.as
43347
- }, themeColorObject), menuItem.name));
43364
+ as: menuItem.as,
43365
+ target: menuItem.openInNew ? "_blank" : undefined
43366
+ };
43367
+ return /*#__PURE__*/React__default.createElement("div", {
43368
+ key: (_a = menuItem.key) !== null && _a !== void 0 ? _a : menuItem.name
43369
+ }, /*#__PURE__*/React__default.createElement(MenuLink, Object.assign({}, linkProps, themeColorObject), menuItem.name, menuItem.openInNew && /*#__PURE__*/React__default.createElement(Icon, {
43370
+ size: "x2",
43371
+ icon: "openInNew"
43372
+ })));
43348
43373
  };
43349
43374
 
43350
43375
  var renderCustom$1 = function renderCustom(menuItem, _themeColorObject, layer) {
@@ -43369,13 +43394,17 @@ var renderText$1 = function renderText(menuItem, themeColorObject) {
43369
43394
  var getRenderFunction$1 = function getRenderFunction(menuItem) {
43370
43395
  if (menuItem.items) {
43371
43396
  return renderMenuTrigger;
43372
- } else if (menuItem.href || menuItem.to) {
43397
+ }
43398
+
43399
+ if (menuItem.href || menuItem.to) {
43373
43400
  return renderMenuLink$1;
43374
- } else if (menuItem.render) {
43401
+ }
43402
+
43403
+ if (menuItem.render) {
43375
43404
  return renderCustom$1;
43376
- } else {
43377
- return renderText$1;
43378
43405
  }
43406
+
43407
+ return renderText$1;
43379
43408
  };
43380
43409
 
43381
43410
  var renderMenuItem = function renderMenuItem(menuItem, themeColorObject, layer, menuType) {
@@ -43554,7 +43583,9 @@ var getPaddingLeft = function getPaddingLeft(layer) {
43554
43583
 
43555
43584
  var getSharedStyles = function getSharedStyles(theme) {
43556
43585
  return {
43557
- display: "block",
43586
+ display: "flex",
43587
+ alignItems: "center",
43588
+ gap: theme.space.half,
43558
43589
  textDecoration: "none",
43559
43590
  border: "none",
43560
43591
  backgroundColor: "transparent",
@@ -43620,12 +43651,17 @@ var renderMenuLink = function renderMenuLink(menuItem, linkOnClick, themeColorOb
43620
43651
  to: menuItem.to,
43621
43652
  // eslint-disable-next-line no-mixed-operators
43622
43653
  pl: layer === 0 ? getPaddingLeft(layer) : 24 * layer + 20 + "px",
43623
- mb: "x1"
43654
+ mb: "x1",
43655
+ target: menuItem.openInNew ? "_blank" : undefined
43624
43656
  };
43625
- var MenuLink = layer === 0 ? TopLevelLink : DropdownLink;
43657
+ var topLevel = layer === 0;
43658
+ var MenuLink = topLevel ? TopLevelLink : DropdownLink;
43626
43659
  return /*#__PURE__*/React__default.createElement("li", {
43627
43660
  key: (_a = menuItem.key) !== null && _a !== void 0 ? _a : menuItem.name
43628
- }, /*#__PURE__*/React__default.createElement(MenuLink, Object.assign({}, sharedLinkProps), menuItem.name));
43661
+ }, /*#__PURE__*/React__default.createElement(MenuLink, Object.assign({}, sharedLinkProps), menuItem.name, menuItem.openInNew && /*#__PURE__*/React__default.createElement(Icon, {
43662
+ size: topLevel ? "x3" : "x2",
43663
+ icon: "openInNew"
43664
+ })));
43629
43665
  };
43630
43666
 
43631
43667
  var renderCustom = function renderCustom(menuItem, linkOnClick, themeColorObject, layer) {
@@ -40,6 +40,7 @@ export declare const WithIcon: {
40
40
  };
41
41
  };
42
42
  export declare const WithPrimaryAndSecondarySubMenus: () => JSX.Element;
43
+ export declare const WithExternalLinks: () => JSX.Element;
43
44
  export declare const WithReactRouter: {
44
45
  (): JSX.Element;
45
46
  story: {
@@ -19,6 +19,11 @@ export declare const RadioGroupWithAllProps: {
19
19
  story: {
20
20
  name: string;
21
21
  };
22
+ parameters: {
23
+ chromatic: {
24
+ diffThreshold: number;
25
+ };
26
+ };
22
27
  };
23
28
  export declare const WithErrorMessage: {
24
29
  (): JSX.Element;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  export declare const WithSelectedValue: () => JSX.Element;
3
+ export declare const WithOtherInteractiveElements: () => JSX.Element;
3
4
  export declare const WithContent: () => JSX.Element;
4
5
  declare const _default: {
5
6
  title: string;
@@ -10,6 +10,7 @@ export declare const WithADefaultSelectedIndex: {
10
10
  name: string;
11
11
  };
12
12
  };
13
+ export declare const WithOtherInteractiveElements: () => JSX.Element;
13
14
  export declare const SetToFitted: {
14
15
  (): JSX.Element;
15
16
  story: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nulogy/components",
3
- "version": "8.6.0",
3
+ "version": "8.7.1",
4
4
  "description": "Component library for the Nulogy Design System - http://nulogy.design",
5
5
  "private": false,
6
6
  "publishConfig": {