labsense-ui-kit 1.3.77 → 1.3.79

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/index.js CHANGED
@@ -10810,59 +10810,58 @@ var Overlay = styled__default.div(_templateObject$n || (_templateObject$n = _tag
10810
10810
  var $isOpen = _ref2.$isOpen;
10811
10811
  return $isOpen ? 'visible' : 'hidden';
10812
10812
  });
10813
- var HamburgerButton = styled__default.button(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteralLoose(["\n display: none;\n \n @media (max-width: ", ") {\n display: flex;\n position: fixed;\n top: 20px;\n left: 20px;\n z-index: 999;\n background: ", ";\n border: none;\n border-radius: 8px;\n padding: 12px;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n transition: transform 0.2s ease;\n\n &:active {\n transform: scale(0.95);\n }\n }\n"])), MOBILE_BREAKPOINT, function (_ref3) {
10813
+ var HamburgerButton = styled__default.button(_templateObject2$j || (_templateObject2$j = _taggedTemplateLiteralLoose(["\n display: none;\n \n @media (max-width: ", ") {\n display: flex;\n width: max-content;\n border: none;\n padding: 8px;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n // box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n transition: transform 0.2s ease;\n\n &:active {\n transform: scale(0.95);\n }\n }\n"])), MOBILE_BREAKPOINT);
10814
+ var SidebarContainer = styled__default.div(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteralLoose(["\n width: 68px;\n max-width: 68px;\n height: 100vh;\n background: ", ";\n transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.5s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n flex-direction: column;\n align-items: start;\n padding: 20px;\n position: fixed;\n left: 0;\n top: 0;\n overflow: hidden;\n z-index: 998;\n justify-content: space-between;\n gap: 24px;\n\n /* Expand on hover */\n &:hover {\n width: max-content;\n max-width: 400px;\n\n /* You can also add a class for children */\n span, .expandable {\n opacity: 1;\n visibility: visible;\n transform: translateX(0);\n }\n }\n\n /* Mobile styles */\n @media (max-width: ", ") {\n transform: translateX(", ");\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n width: 280px;\n max-width: 280px;\n box-shadow: ", ";\n\n /* Always show text on mobile when open */\n span, .expandable {\n opacity: ", ";\n visibility: ", ";\n transform: translateX(0);\n }\n\n /* Disable hover expansion on mobile */\n &:hover {\n width: 280px;\n max-width: 280px;\n }\n }\n"])), function (_ref3) {
10814
10815
  var $background = _ref3.$background,
10815
10816
  theme = _ref3.theme;
10816
10817
  return $background || theme.vms.accent.softBlue;
10817
- });
10818
- var SidebarContainer = styled__default.div(_templateObject3$c || (_templateObject3$c = _taggedTemplateLiteralLoose(["\n width: 68px;\n max-width: 68px;\n height: 100vh;\n background: ", ";\n transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.5s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n flex-direction: column;\n align-items: start;\n padding: 20px;\n position: fixed;\n left: 0;\n top: 0;\n overflow: hidden;\n z-index: 998;\n justify-content: space-between;\n gap: 24px;\n\n /* Expand on hover */\n &:hover {\n width: max-content;\n max-width: 400px;\n\n /* You can also add a class for children */\n span, .expandable {\n opacity: 1;\n visibility: visible;\n transform: translateX(0);\n }\n }\n\n /* Mobile styles */\n @media (max-width: ", ") {\n transform: translateX(", ");\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n width: 280px;\n max-width: 280px;\n box-shadow: ", ";\n\n /* Always show text on mobile when open */\n span, .expandable {\n opacity: ", ";\n visibility: ", ";\n transform: translateX(0);\n }\n\n /* Disable hover expansion on mobile */\n &:hover {\n width: 280px;\n max-width: 280px;\n }\n }\n"])), function (_ref4) {
10819
- var $background = _ref4.$background,
10820
- theme = _ref4.theme;
10821
- return $background || theme.vms.accent.softBlue;
10822
- }, MOBILE_BREAKPOINT, function (_ref5) {
10823
- var $isMobileOpen = _ref5.$isMobileOpen;
10818
+ }, MOBILE_BREAKPOINT, function (_ref4) {
10819
+ var $isMobileOpen = _ref4.$isMobileOpen;
10824
10820
  return $isMobileOpen ? '0' : '-100%';
10821
+ }, function (_ref5) {
10822
+ var $isMobileOpen = _ref5.$isMobileOpen;
10823
+ return $isMobileOpen ? '2px 0 8px rgba(0, 0, 0, 0.15)' : 'none';
10825
10824
  }, function (_ref6) {
10826
10825
  var $isMobileOpen = _ref6.$isMobileOpen;
10827
- return $isMobileOpen ? '2px 0 8px rgba(0, 0, 0, 0.15)' : 'none';
10826
+ return $isMobileOpen ? 1 : 0;
10828
10827
  }, function (_ref7) {
10829
10828
  var $isMobileOpen = _ref7.$isMobileOpen;
10830
- return $isMobileOpen ? 1 : 0;
10831
- }, function (_ref8) {
10832
- var $isMobileOpen = _ref8.$isMobileOpen;
10833
10829
  return $isMobileOpen ? 'visible' : 'hidden';
10834
10830
  });
10835
- var SidebarLink = styled__default(reactRouterDom.NavLink)(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n height: 28px;\n width: 100%;\n gap: 10px;\n cursor: pointer;\n border-radius: 4px;\n text-decoration: none;\n transition: none;\n padding: ", ";\n color: ", ";\n\n /* Hover state */\n &:hover {\n color: ", ";\n background: ", ";\n \n /* Make icons white on hover */\n svg {\n color: ", " !important;\n transition: none;\n }\n }\n\n /* Active link state */\n &.active {\n color: ", ";\n background: ", ";\n \n /* Make icons white when active */\n svg {\n color: ", " !important;\n transition: none;\n }\n }\n"])), function (_ref9) {
10836
- var $padding = _ref9.$padding;
10831
+ var SidebarLink = styled__default(reactRouterDom.NavLink)(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n height: 28px;\n width: 100%;\n gap: 10px;\n cursor: pointer;\n border-radius: 4px;\n text-decoration: none;\n transition: none;\n padding: ", ";\n color: ", ";\n\n /* Hover state */\n &:hover {\n color: ", ";\n background: ", ";\n \n /* Make icons white on hover */\n svg {\n color: ", " !important;\n transition: none;\n }\n }\n\n /* Active link state */\n &.active {\n color: ", ";\n background: ", ";\n \n /* Make icons white when active */\n svg {\n color: ", " !important;\n transition: none;\n }\n }\n"])), function (_ref8) {
10832
+ var $padding = _ref8.$padding;
10837
10833
  return $padding;
10834
+ }, function (_ref9) {
10835
+ var theme = _ref9.theme;
10836
+ return theme.vms.text.medium;
10838
10837
  }, function (_ref10) {
10839
10838
  var theme = _ref10.theme;
10840
- return theme.vms.text.medium;
10839
+ return theme.vms.text.white;
10841
10840
  }, function (_ref11) {
10842
10841
  var theme = _ref11.theme;
10843
- return theme.vms.text.white;
10842
+ return theme.vms["default"].primary;
10844
10843
  }, function (_ref12) {
10845
10844
  var theme = _ref12.theme;
10846
- return theme.vms["default"].primary;
10845
+ return theme.vms.text.white;
10847
10846
  }, function (_ref13) {
10848
10847
  var theme = _ref13.theme;
10849
10848
  return theme.vms.text.white;
10850
10849
  }, function (_ref14) {
10851
10850
  var theme = _ref14.theme;
10852
- return theme.vms.text.white;
10851
+ return theme.vms["default"].primary;
10853
10852
  }, function (_ref15) {
10854
10853
  var theme = _ref15.theme;
10855
- return theme.vms["default"].primary;
10856
- }, function (_ref16) {
10857
- var theme = _ref16.theme;
10858
10854
  return theme.vms.text.white;
10859
10855
  });
10860
- var IconWrapper$2 = styled__default.div(_templateObject5$8 || (_templateObject5$8 = _taggedTemplateLiteralLoose(["\n background: ", ";\n transition: none;\n padding: 4px;\n border-radius: 4px;\n width: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n"])), function (_ref17) {
10861
- var $selected = _ref17.$selected,
10862
- theme = _ref17.theme;
10856
+ var IconWrapper$2 = styled__default.div(_templateObject5$8 || (_templateObject5$8 = _taggedTemplateLiteralLoose(["\n background: ", ";\n transition: none;\n padding: 4px;\n border-radius: 4px;\n width: 28px;\n display: flex;\n align-items: center;\n justify-content: center;\n"])), function (_ref16) {
10857
+ var $selected = _ref16.$selected,
10858
+ theme = _ref16.theme;
10863
10859
  return $selected ? theme.vms["default"].primary : theme.vms["default"].tertiary;
10864
10860
  });
10865
- var StyledContainer = styled__default(Container)(_templateObject6$8 || (_templateObject6$8 = _taggedTemplateLiteralLoose(["\n transition: none;\n\n svg {\n transition: none;\n }\n\n /* Parent hover / active */\n &:hover,\n &.active {\n svg {\n color: ", " !important;\n }\n }\n\n /* 2nd child reacts ONLY when parent is hovered */\n &:hover > div:nth-child(2) {\n svg {\n color: ", " !important;\n\n path {\n stroke: ", " !important;\n }\n }\n }\n\n /* Default state for 2nd child */\n > div:nth-child(2) {\n svg {\n color: ", " !important;\n\n path {\n stroke: ", " !important;\n }\n }\n }\n"])), function (_ref18) {
10861
+ var StyledContainer = styled__default(Container)(_templateObject6$8 || (_templateObject6$8 = _taggedTemplateLiteralLoose(["\n transition: none;\n\n svg {\n transition: none;\n }\n\n /* Parent hover / active */\n &:hover,\n &.active {\n svg {\n color: ", " !important;\n }\n }\n\n /* 2nd child reacts ONLY when parent is hovered */\n &:hover > div:nth-child(2) {\n svg {\n color: ", " !important;\n\n path {\n stroke: ", " !important;\n }\n }\n }\n\n /* Default state for 2nd child */\n > div:nth-child(2) {\n svg {\n color: ", " !important;\n\n path {\n stroke: ", " !important;\n }\n }\n }\n"])), function (_ref17) {
10862
+ var theme = _ref17.theme;
10863
+ return theme.vms.text.white;
10864
+ }, function (_ref18) {
10866
10865
  var theme = _ref18.theme;
10867
10866
  return theme.vms.text.white;
10868
10867
  }, function (_ref19) {
@@ -10873,34 +10872,31 @@ var StyledContainer = styled__default(Container)(_templateObject6$8 || (_templat
10873
10872
  return theme.vms.text.white;
10874
10873
  }, function (_ref21) {
10875
10874
  var theme = _ref21.theme;
10876
- return theme.vms.text.white;
10877
- }, function (_ref22) {
10878
- var theme = _ref22.theme;
10879
10875
  return theme.vms.text.medium;
10880
10876
  });
10881
- var Logo = styled__default.div(_templateObject7$6 || (_templateObject7$6 = _taggedTemplateLiteralLoose(["\n transition: none;\n display: flex;\n width: 100%;\n min-width: max-content;\n height: 32px;\n align-items: center;\n justify-content: center;\n gap: 10px;\n"])));
10882
- var TextContainer = styled__default.span(_templateObject8$5 || (_templateObject8$5 = _taggedTemplateLiteralLoose(["\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n transform: translateX(-10px);\n transition: all 0.3s ease;\n padding: ", ";\n font-size: ", ";\n font-weight: ", ";\n\n ", ":hover & {\n opacity: 1;\n visibility: visible;\n transform: translateX(0);\n }\n\n /* Mobile: Always visible when sidebar is open */\n @media (max-width: ", ") {\n opacity: 1;\n visibility: visible;\n transform: translateX(0);\n }\n"])), function (_ref23) {
10883
- var $padding = _ref23.$padding;
10877
+ var Logo = styled__default(Container)(_templateObject7$6 || (_templateObject7$6 = _taggedTemplateLiteralLoose(["\n transition: none;\n display: flex;\n width: 100%;\n min-width: max-content;\n align-items: center;\n justify-content: center;\n gap: 10px;\n"])));
10878
+ var TextContainer = styled__default.span(_templateObject8$5 || (_templateObject8$5 = _taggedTemplateLiteralLoose(["\n white-space: nowrap;\n opacity: 0;\n visibility: hidden;\n transform: translateX(-10px);\n transition: all 0.3s ease;\n padding: ", ";\n font-size: ", ";\n font-weight: ", ";\n\n ", ":hover & {\n opacity: 1;\n visibility: visible;\n transform: translateX(0);\n }\n\n /* Mobile: Always visible when sidebar is open */\n @media (max-width: ", ") {\n opacity: 1;\n visibility: visible;\n transform: translateX(0);\n }\n"])), function (_ref22) {
10879
+ var $padding = _ref22.$padding;
10884
10880
  return $padding;
10885
- }, function (_ref24) {
10886
- var $fontSize = _ref24.$fontSize;
10881
+ }, function (_ref23) {
10882
+ var $fontSize = _ref23.$fontSize;
10887
10883
  return $fontSize || '20px';
10888
- }, function (_ref25) {
10889
- var $fontWeight = _ref25.$fontWeight;
10884
+ }, function (_ref24) {
10885
+ var $fontWeight = _ref24.$fontWeight;
10890
10886
  return $fontWeight || '500';
10891
10887
  }, SidebarContainer, MOBILE_BREAKPOINT);
10892
- var NotificationBadge = styled__default.div(_templateObject9$5 || (_templateObject9$5 = _taggedTemplateLiteralLoose(["\n position: ", ";\n // top: -4px;\n // right: 4px;\n background: red;\n color: white;\n font-size: 10px;\n font-weight: bold;\n border-radius: 50%;\n padding: 2px 5px;\n min-width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n width: max-content;\n"])), function (_ref26) {
10893
- var $position = _ref26.$position;
10888
+ var NotificationBadge = styled__default.div(_templateObject9$5 || (_templateObject9$5 = _taggedTemplateLiteralLoose(["\n position: ", ";\n // top: -4px;\n // right: 4px;\n background: red;\n color: white;\n font-size: 10px;\n font-weight: bold;\n border-radius: 50%;\n padding: 2px 5px;\n min-width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n width: max-content;\n"])), function (_ref25) {
10889
+ var $position = _ref25.$position;
10894
10890
  return $position || 'absolute';
10895
10891
  });
10896
- var Sidebar = function Sidebar(_ref27) {
10897
- var logo = _ref27.logo,
10898
- content = _ref27.content,
10899
- background = _ref27.background,
10900
- ProfileContent = _ref27.ProfileContent,
10901
- _ref27$isExpanded = _ref27.isExpanded,
10902
- isExpanded = _ref27$isExpanded === void 0 ? false : _ref27$isExpanded,
10903
- setIsExpanded = _ref27.setIsExpanded;
10892
+ var Sidebar = function Sidebar(_ref26) {
10893
+ var logo = _ref26.logo,
10894
+ content = _ref26.content,
10895
+ background = _ref26.background,
10896
+ ProfileContent = _ref26.ProfileContent,
10897
+ _ref26$isExpanded = _ref26.isExpanded,
10898
+ isExpanded = _ref26$isExpanded === void 0 ? false : _ref26$isExpanded,
10899
+ setIsExpanded = _ref26.setIsExpanded;
10904
10900
  var location = reactRouterDom.useLocation();
10905
10901
  var _useState = React.useState({}),
10906
10902
  openMenus = _useState[0],
@@ -10940,6 +10936,14 @@ var Sidebar = function Sidebar(_ref27) {
10940
10936
  isExpandedRef.current = isExpanded;
10941
10937
  if (!isExpanded) setOpenMenus({});
10942
10938
  }, [isExpanded]);
10939
+ React.useEffect(function () {
10940
+ if (isMobile && !isMobileOpen) {
10941
+ setOpenMenus({});
10942
+ }
10943
+ if (isMobile) {
10944
+ setIsExpanded(true);
10945
+ }
10946
+ }, [isMobile, isMobileOpen]);
10943
10947
  var toggleMobileMenu = React.useCallback(function () {
10944
10948
  setIsMobileOpen(function (prev) {
10945
10949
  return !prev;
@@ -10955,9 +10959,9 @@ var Sidebar = function Sidebar(_ref27) {
10955
10959
  }, []);
10956
10960
  var toggleMenu = function toggleMenu(id) {
10957
10961
  setOpenMenus(function (prev) {
10958
- var _ref28;
10962
+ var _ref27;
10959
10963
  var isCurrentlyOpen = !!prev[id];
10960
- return isCurrentlyOpen ? {} : (_ref28 = {}, _ref28[id] = true, _ref28);
10964
+ return isCurrentlyOpen ? {} : (_ref27 = {}, _ref27[id] = true, _ref27);
10961
10965
  });
10962
10966
  };
10963
10967
  var getTotalNotifications = React.useCallback(function (item) {
@@ -10982,8 +10986,8 @@ var Sidebar = function Sidebar(_ref27) {
10982
10986
  return currentBase === getBasePath(child.activeUrl) || currentBase === getBasePath(child.url);
10983
10987
  }));
10984
10988
  };
10985
- var ChildLink = function ChildLink(_ref29) {
10986
- var child = _ref29.child;
10989
+ var ChildLink = function ChildLink(_ref28) {
10990
+ var child = _ref28.child;
10987
10991
  var themeColors = styled.useTheme();
10988
10992
  var location = reactRouterDom.useLocation();
10989
10993
  var active = getBasePath(location.pathname) === getBasePath(child.activeUrl) || getBasePath(location.pathname) === getBasePath(child.url);
@@ -11030,14 +11034,14 @@ var Sidebar = function Sidebar(_ref27) {
11030
11034
  });
11031
11035
  }));
11032
11036
  };
11033
- var SidebarItem = function SidebarItem(_ref30) {
11034
- var item = _ref30.item,
11035
- isActive = _ref30.isActive,
11036
- isOpen = _ref30.isOpen,
11037
- hasChildren = _ref30.hasChildren,
11038
- isExpanded = _ref30.isExpanded,
11039
- onToggle = _ref30.onToggle,
11040
- renderChildLinks = _ref30.renderChildLinks;
11037
+ var SidebarItem = function SidebarItem(_ref29) {
11038
+ var item = _ref29.item,
11039
+ isActive = _ref29.isActive,
11040
+ isOpen = _ref29.isOpen,
11041
+ hasChildren = _ref29.hasChildren,
11042
+ isExpanded = _ref29.isExpanded,
11043
+ onToggle = _ref29.onToggle,
11044
+ renderChildLinks = _ref29.renderChildLinks;
11041
11045
  var themeColors = styled.useTheme();
11042
11046
  var activeClass = isActive ? 'active' : '';
11043
11047
  var handleClick = React.useCallback(function () {
@@ -11173,15 +11177,33 @@ var Sidebar = function Sidebar(_ref27) {
11173
11177
  };
11174
11178
  }, [content, isExpanded, getTotalNotifications]);
11175
11179
  var themeColors = styled.useTheme();
11176
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(HamburgerButton, {
11177
- "$background": background,
11180
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(Container, {
11181
+ "$width": '100%',
11182
+ "$background": background != null ? background : themeColors.vms.accent.softBlue,
11183
+ "$alignItems": 'center'
11184
+ }, logo && isMobile && (logo.icon ? React__default.createElement(Logo, {
11185
+ "$padding": '10px 10px 10px 46px',
11186
+ "$height": 'max-content'
11187
+ }, React__default.createElement(Icon, {
11188
+ icon: logo.icon,
11189
+ color: logo.iconColor
11190
+ }), React__default.createElement(TextContainer, null, logo.name)) : logo.imageDetails && React__default.createElement(Logo, {
11191
+ "$padding": '10px 10px 10px 46px',
11192
+ "$height": 'max-content'
11193
+ }, React__default.createElement("img", {
11194
+ src: logo.imageDetails.url,
11195
+ alt: logo.imageDetails.altText,
11196
+ width: logo.imageDetails.width,
11197
+ height: logo.imageDetails.height
11198
+ }))), React__default.createElement(HamburgerButton, {
11178
11199
  onClick: toggleMobileMenu,
11179
- "aria-label": "Toggle menu"
11200
+ "aria-label": 'Toggle menu'
11180
11201
  }, React__default.createElement(Icon, {
11181
11202
  icon: isMobileOpen ? 'X' : 'Hamburger',
11182
- size: 24,
11183
- color: themeColors.vms.text.white
11184
- })), React__default.createElement(Overlay, {
11203
+ size: 20,
11204
+ color: themeColors.vms.text.dark,
11205
+ weight: '1px'
11206
+ }))), React__default.createElement(Overlay, {
11185
11207
  "$isOpen": isMobileOpen,
11186
11208
  onClick: handleOverlayClick
11187
11209
  }), React__default.createElement(SidebarContainer, {
@@ -11193,10 +11215,14 @@ var Sidebar = function Sidebar(_ref27) {
11193
11215
  "$gap": '28px',
11194
11216
  "$width": '100%',
11195
11217
  "$overflow": 'hidden'
11196
- }, logo && (logo.icon ? React__default.createElement(Logo, null, React__default.createElement(Icon, {
11218
+ }, logo && (logo.icon ? React__default.createElement(Logo, {
11219
+ "$height": '32px'
11220
+ }, React__default.createElement(Icon, {
11197
11221
  icon: logo.icon,
11198
11222
  color: logo.iconColor
11199
- }), React__default.createElement(TextContainer, null, logo.name)) : logo.imageDetails && React__default.createElement(Logo, null, React__default.createElement("img", {
11223
+ }), React__default.createElement(TextContainer, null, logo.name)) : logo.imageDetails && React__default.createElement(Logo, {
11224
+ "$height": '32px'
11225
+ }, React__default.createElement("img", {
11200
11226
  src: logo.imageDetails.url,
11201
11227
  alt: logo.imageDetails.altText,
11202
11228
  width: logo.imageDetails.width,
@@ -11218,7 +11244,7 @@ var Sidebar = function Sidebar(_ref27) {
11218
11244
  isActive: active,
11219
11245
  isOpen: isOpen,
11220
11246
  hasChildren: hasChildren,
11221
- isExpanded: isMobile ? isMobileOpen : isExpanded,
11247
+ isExpanded: isMobile ? true : isExpanded,
11222
11248
  onToggle: function onToggle() {
11223
11249
  return toggleMenu(item.id);
11224
11250
  },