@hyphen/hyphen-components 7.2.0 → 7.3.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.
@@ -3854,7 +3854,7 @@ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
3854
3854
 
3855
3855
  var _excluded$3 = ["defaultOpen", "open", "storageKey", "onOpenChange", "className", "style", "children"],
3856
3856
  _excluded2 = ["side", "collapsible", "className", "children"],
3857
- _excluded3 = ["className", "onClick"],
3857
+ _excluded3 = ["className", "onClick", "side", "iconName"],
3858
3858
  _excluded4 = ["className"],
3859
3859
  _excluded5 = ["className"],
3860
3860
  _excluded6 = ["className"],
@@ -3871,92 +3871,190 @@ var _excluded$3 = ["defaultOpen", "open", "storageKey", "onOpenChange", "classNa
3871
3871
  _excluded15 = ["className"];
3872
3872
  var SIDEBAR_WIDTH = '16rem';
3873
3873
  var SIDEBAR_WIDTH_ICON = '44px';
3874
- var SIDEBAR_KEYBOARD_SHORTCUT = '[';
3875
- var SidebarContext = /*#__PURE__*/React__default.createContext(null);
3876
- function useSidebar() {
3877
- var context = React__default.useContext(SidebarContext);
3878
- if (!context) {
3879
- throw new Error('useSidebar must be used within a SidebarProvider.');
3874
+ var SIDEBAR_KEYBOARD_SHORTCUT_LEFT = '[';
3875
+ var SIDEBAR_KEYBOARD_SHORTCUT_RIGHT = ']';
3876
+ var SidebarIsMobileContext = /*#__PURE__*/React__default.createContext(null);
3877
+ var SidebarLeftContext = /*#__PURE__*/React__default.createContext(null);
3878
+ var SidebarRightContext = /*#__PURE__*/React__default.createContext(null);
3879
+ var SidebarSideContext = /*#__PURE__*/React__default.createContext('left');
3880
+ var resolveSideValue = function resolveSideValue(value, side, fallback) {
3881
+ if (typeof value === 'boolean') {
3882
+ return value;
3880
3883
  }
3881
- return context;
3882
- }
3883
- var SidebarProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
3884
- var _ref$defaultOpen = _ref.defaultOpen,
3885
- defaultOpen = _ref$defaultOpen === void 0 ? true : _ref$defaultOpen,
3886
- openProp = _ref.open,
3887
- _ref$storageKey = _ref.storageKey,
3888
- storageKey = _ref$storageKey === void 0 ? 'sidebar_expanded' : _ref$storageKey,
3889
- setOpenProp = _ref.onOpenChange,
3890
- className = _ref.className,
3891
- style = _ref.style,
3892
- children = _ref.children,
3893
- props = _objectWithoutPropertiesLoose(_ref, _excluded$3);
3894
- var isMobile = useIsMobile();
3895
- var _useState = useState(function () {
3896
- return isMobile ? false : openProp != null ? openProp : defaultOpen;
3884
+ if (value && typeof value === 'object' && typeof value[side] === 'boolean') {
3885
+ return value[side];
3886
+ }
3887
+ return fallback;
3888
+ };
3889
+ var resolveControlledOpen = function resolveControlledOpen(value, side) {
3890
+ if (typeof value === 'boolean') {
3891
+ return value;
3892
+ }
3893
+ if (value && typeof value === 'object' && typeof value[side] === 'boolean') {
3894
+ return value[side];
3895
+ }
3896
+ return undefined;
3897
+ };
3898
+ var resolveStorageKey = function resolveStorageKey(storageKey, side) {
3899
+ if (typeof storageKey === 'string') {
3900
+ return side === 'left' ? storageKey : storageKey + "_right";
3901
+ }
3902
+ if (storageKey && typeof storageKey === 'object') {
3903
+ var _storageKey$side;
3904
+ return (_storageKey$side = storageKey[side]) != null ? _storageKey$side : side === 'left' ? 'sidebar_expanded' : 'sidebar_expanded_right';
3905
+ }
3906
+ return side === 'left' ? 'sidebar_expanded' : 'sidebar_expanded_right';
3907
+ };
3908
+ var getSidebarWidth = function getSidebarWidth(state, collapsible) {
3909
+ return state === 'collapsed' && collapsible === 'icon' ? 'var(--sidebar-width-icon)' : state === 'collapsed' ? '0' : 'var(--sidebar-width)';
3910
+ };
3911
+ var getSidebarOffsetStyles = function getSidebarOffsetStyles(side, state, collapsible) {
3912
+ var isVisible = state === 'expanded' || collapsible === 'icon';
3913
+ return {
3914
+ left: side === 'left' ? isVisible ? '0' : 'calc(var(--sidebar-width)*-1)' : undefined,
3915
+ right: side === 'right' ? isVisible ? '0' : 'calc(var(--sidebar-width)*-1)' : undefined
3916
+ };
3917
+ };
3918
+ var useSidebarSideState = function useSidebarSideState(_ref) {
3919
+ var side = _ref.side,
3920
+ isMobile = _ref.isMobile,
3921
+ defaultOpen = _ref.defaultOpen,
3922
+ openProp = _ref.openProp,
3923
+ onOpenChange = _ref.onOpenChange,
3924
+ storageKey = _ref.storageKey,
3925
+ lastToggledSideRef = _ref.lastToggledSideRef;
3926
+ var defaultFallback = typeof defaultOpen === 'boolean' ? defaultOpen : true;
3927
+ var initialDefaultOpen = resolveSideValue(defaultOpen, side, defaultFallback);
3928
+ var controlledOpen = resolveControlledOpen(openProp, side);
3929
+ var isControlled = typeof controlledOpen === 'boolean';
3930
+ var _useState = useState(controlledOpen != null ? controlledOpen : initialDefaultOpen),
3931
+ uncontrolledOpen = _useState[0],
3932
+ setUncontrolledOpen = _useState[1];
3933
+ var _useState2 = useState(function () {
3934
+ return isMobile ? false : controlledOpen != null ? controlledOpen : initialDefaultOpen;
3897
3935
  }),
3898
- openMobile = _useState[0],
3899
- setOpenMobile = _useState[1];
3900
- // Manages sidebar open state with a fallback to internal state when openProp is not provided
3901
- var _useState2 = useState(openProp != null ? openProp : defaultOpen),
3902
- _open = _useState2[0],
3903
- _setOpen = _useState2[1];
3904
- var open = openProp != null ? openProp : _open;
3905
- // Update open state when openProp or isMobile changes
3936
+ openMobile = _useState2[0],
3937
+ setOpenMobile = _useState2[1];
3938
+ var open = controlledOpen != null ? controlledOpen : uncontrolledOpen;
3906
3939
  useEffect(function () {
3907
3940
  if (isMobile) {
3908
- setOpenMobile(false); // Always start closed on mobile
3941
+ setOpenMobile(false);
3909
3942
  } else {
3910
- _setOpen(openProp != null ? openProp : defaultOpen); // Use desktop state
3943
+ setUncontrolledOpen(controlledOpen != null ? controlledOpen : initialDefaultOpen);
3911
3944
  }
3912
- }, [isMobile, openProp, defaultOpen]);
3945
+ }, [isMobile, controlledOpen, initialDefaultOpen]);
3913
3946
  var setOpen = useCallback(function (value) {
3914
3947
  var newOpenState = typeof value === 'function' ? value(open) : value;
3915
- if (newOpenState !== open) {
3916
- if (setOpenProp) {
3917
- setOpenProp(newOpenState);
3918
- } else {
3919
- _setOpen(newOpenState);
3920
- }
3921
- localStorage.setItem(storageKey, "" + newOpenState);
3948
+ if (newOpenState === open) {
3949
+ return;
3922
3950
  }
3923
- }, [setOpenProp, open, storageKey]);
3924
- // Toggle sidebar based on screen type
3951
+ if (!isControlled) {
3952
+ setUncontrolledOpen(newOpenState);
3953
+ }
3954
+ onOpenChange == null || onOpenChange(newOpenState, side);
3955
+ var key = resolveStorageKey(storageKey, side);
3956
+ localStorage.setItem(key, "" + newOpenState);
3957
+ }, [open, isControlled, onOpenChange, side, storageKey]);
3925
3958
  var toggleSidebar = useCallback(function () {
3926
- isMobile ? setOpenMobile(function (open) {
3927
- return !open;
3928
- }) : setOpen(function (open) {
3929
- return !open;
3959
+ lastToggledSideRef.current = side;
3960
+ isMobile ? setOpenMobile(function (value) {
3961
+ return !value;
3962
+ }) : setOpen(function (value) {
3963
+ return !value;
3930
3964
  });
3931
- }, [isMobile, setOpen, setOpenMobile]);
3932
- // Keydown event handler for toggling sidebar
3933
- useEffect(function () {
3934
- var handleKeyDown = function handleKeyDown(event) {
3935
- if (event.key === SIDEBAR_KEYBOARD_SHORTCUT) {
3936
- event.preventDefault();
3937
- toggleSidebar();
3938
- }
3939
- };
3940
- window.addEventListener('keydown', handleKeyDown);
3941
- return function () {
3942
- return window.removeEventListener('keydown', handleKeyDown);
3943
- };
3944
- }, [toggleSidebar]);
3945
- // Assign state for data attributes
3965
+ }, [isMobile, setOpen, side, lastToggledSideRef]);
3946
3966
  var state = open ? 'expanded' : 'collapsed';
3947
- var contextValue = useMemo(function () {
3967
+ return useMemo(function () {
3948
3968
  return {
3949
3969
  state: state,
3950
3970
  open: open,
3951
3971
  setOpen: setOpen,
3952
- isMobile: isMobile,
3953
3972
  openMobile: openMobile,
3954
3973
  setOpenMobile: setOpenMobile,
3955
3974
  toggleSidebar: toggleSidebar
3956
3975
  };
3957
- }, [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]);
3958
- return React__default.createElement(SidebarContext.Provider, {
3959
- value: contextValue
3976
+ }, [state, open, setOpen, openMobile, setOpenMobile, toggleSidebar]);
3977
+ };
3978
+ function useSidebar(sideOverride) {
3979
+ var isMobile = React__default.useContext(SidebarIsMobileContext);
3980
+ if (typeof isMobile !== 'boolean') {
3981
+ throw new Error('useSidebar must be used within a SidebarProvider.');
3982
+ }
3983
+ var contextSide = React__default.useContext(SidebarSideContext);
3984
+ var side = sideOverride != null ? sideOverride : contextSide;
3985
+ var sideContext = React__default.useContext(side === 'left' ? SidebarLeftContext : SidebarRightContext);
3986
+ if (!sideContext) {
3987
+ throw new Error('useSidebar must be used within a SidebarProvider.');
3988
+ }
3989
+ return _extends({}, sideContext, {
3990
+ isMobile: isMobile,
3991
+ side: side
3992
+ });
3993
+ }
3994
+ var SidebarProvider = /*#__PURE__*/forwardRef(function (_ref2, ref) {
3995
+ var _ref2$defaultOpen = _ref2.defaultOpen,
3996
+ defaultOpen = _ref2$defaultOpen === void 0 ? true : _ref2$defaultOpen,
3997
+ openProp = _ref2.open,
3998
+ _ref2$storageKey = _ref2.storageKey,
3999
+ storageKey = _ref2$storageKey === void 0 ? 'sidebar_expanded' : _ref2$storageKey,
4000
+ setOpenProp = _ref2.onOpenChange,
4001
+ className = _ref2.className,
4002
+ style = _ref2.style,
4003
+ children = _ref2.children,
4004
+ props = _objectWithoutPropertiesLoose(_ref2, _excluded$3);
4005
+ var isMobile = useIsMobile();
4006
+ var lastToggledSideRef = React__default.useRef('left');
4007
+ var leftToggleRef = React__default.useRef(null);
4008
+ var rightToggleRef = React__default.useRef(null);
4009
+ var leftState = useSidebarSideState({
4010
+ side: 'left',
4011
+ isMobile: isMobile,
4012
+ defaultOpen: defaultOpen,
4013
+ openProp: openProp,
4014
+ onOpenChange: setOpenProp,
4015
+ storageKey: storageKey,
4016
+ lastToggledSideRef: lastToggledSideRef
4017
+ });
4018
+ var rightState = useSidebarSideState({
4019
+ side: 'right',
4020
+ isMobile: isMobile,
4021
+ defaultOpen: defaultOpen,
4022
+ openProp: openProp,
4023
+ onOpenChange: setOpenProp,
4024
+ storageKey: storageKey,
4025
+ lastToggledSideRef: lastToggledSideRef
4026
+ });
4027
+ useEffect(function () {
4028
+ leftToggleRef.current = leftState.toggleSidebar;
4029
+ }, [leftState.toggleSidebar]);
4030
+ useEffect(function () {
4031
+ rightToggleRef.current = rightState.toggleSidebar;
4032
+ }, [rightState.toggleSidebar]);
4033
+ useEffect(function () {
4034
+ var handleKeyDown = function handleKeyDown(event) {
4035
+ var target = event.target;
4036
+ if (target && (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.tagName === 'SELECT' || target.isContentEditable)) {
4037
+ return;
4038
+ }
4039
+ var shortcutSide = event.key === SIDEBAR_KEYBOARD_SHORTCUT_LEFT ? 'left' : event.key === SIDEBAR_KEYBOARD_SHORTCUT_RIGHT ? 'right' : null;
4040
+ if (!shortcutSide) {
4041
+ return;
4042
+ }
4043
+ event.preventDefault();
4044
+ var toggleSidebar = shortcutSide === 'left' ? leftToggleRef.current : rightToggleRef.current;
4045
+ toggleSidebar == null || toggleSidebar();
4046
+ };
4047
+ window.addEventListener('keydown', handleKeyDown);
4048
+ return function () {
4049
+ return window.removeEventListener('keydown', handleKeyDown);
4050
+ };
4051
+ }, []);
4052
+ return React__default.createElement(SidebarIsMobileContext.Provider, {
4053
+ value: isMobile
4054
+ }, React__default.createElement(SidebarLeftContext.Provider, {
4055
+ value: leftState
4056
+ }, React__default.createElement(SidebarRightContext.Provider, {
4057
+ value: rightState
3960
4058
  }, React__default.createElement(TooltipProvider, {
3961
4059
  delayDuration: 0
3962
4060
  }, React__default.createElement("div", _extends({
@@ -3967,24 +4065,26 @@ var SidebarProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
3967
4065
  }, style),
3968
4066
  className: classNames('display-flex w-100 background-color-secondary', className),
3969
4067
  ref: ref
3970
- }, props), children)));
4068
+ }, props), children)))));
3971
4069
  });
3972
4070
  SidebarProvider.displayName = 'SidebarProvider';
3973
- var Sidebar = /*#__PURE__*/React__default.forwardRef(function (_ref2, ref) {
3974
- var _ref2$side = _ref2.side,
3975
- side = _ref2$side === void 0 ? 'left' : _ref2$side,
3976
- _ref2$collapsible = _ref2.collapsible,
3977
- collapsible = _ref2$collapsible === void 0 ? 'offcanvas' : _ref2$collapsible,
3978
- className = _ref2.className,
3979
- children = _ref2.children,
3980
- props = _objectWithoutPropertiesLoose(_ref2, _excluded2);
3981
- var _useSidebar = useSidebar(),
4071
+ var Sidebar = /*#__PURE__*/React__default.forwardRef(function (_ref3, ref) {
4072
+ var _ref3$side = _ref3.side,
4073
+ side = _ref3$side === void 0 ? 'left' : _ref3$side,
4074
+ _ref3$collapsible = _ref3.collapsible,
4075
+ collapsible = _ref3$collapsible === void 0 ? 'offcanvas' : _ref3$collapsible,
4076
+ className = _ref3.className,
4077
+ children = _ref3.children,
4078
+ props = _objectWithoutPropertiesLoose(_ref3, _excluded2);
4079
+ var _useSidebar = useSidebar(side),
3982
4080
  isMobile = _useSidebar.isMobile,
3983
4081
  state = _useSidebar.state,
3984
4082
  openMobile = _useSidebar.openMobile,
3985
4083
  setOpenMobile = _useSidebar.setOpenMobile;
3986
4084
  if (isMobile) {
3987
- return React__default.createElement(Drawer, {
4085
+ return React__default.createElement(SidebarSideContext.Provider, {
4086
+ value: side
4087
+ }, React__default.createElement(Drawer, {
3988
4088
  isOpen: openMobile,
3989
4089
  onDismiss: function onDismiss() {
3990
4090
  return setOpenMobile(false);
@@ -3994,18 +4094,22 @@ var Sidebar = /*#__PURE__*/React__default.forwardRef(function (_ref2, ref) {
3994
4094
  "data-sidebar": "sidebar",
3995
4095
  "data-mobile": "true",
3996
4096
  height: "100"
3997
- }, children));
4097
+ }, children)));
3998
4098
  }
3999
4099
  if (collapsible === 'none') {
4000
- return React__default.createElement("div", _extends({
4100
+ return React__default.createElement(SidebarSideContext.Provider, {
4101
+ value: side
4102
+ }, React__default.createElement("div", _extends({
4001
4103
  className: classNames('group display-flex h-100 font-size-xs flex-direction-column background-color-secondary font-color-base', className),
4002
4104
  style: {
4003
4105
  width: 'var(--sidebar-width)'
4004
4106
  },
4005
4107
  ref: ref
4006
- }, props), children);
4108
+ }, props), children));
4007
4109
  }
4008
- return React__default.createElement(Box, {
4110
+ return React__default.createElement(SidebarSideContext.Provider, {
4111
+ value: side
4112
+ }, React__default.createElement(Box, {
4009
4113
  ref: ref,
4010
4114
  background: "primary",
4011
4115
  display: {
@@ -4015,6 +4119,9 @@ var Sidebar = /*#__PURE__*/React__default.forwardRef(function (_ref2, ref) {
4015
4119
  color: "base",
4016
4120
  fontSize: "sm",
4017
4121
  position: "relative",
4122
+ style: side === 'right' && collapsible === 'offcanvas' ? {
4123
+ overflowX: 'hidden'
4124
+ } : undefined,
4018
4125
  "data-state": state,
4019
4126
  "data-collapsible": collapsible,
4020
4127
  "data-side": side,
@@ -4026,14 +4133,13 @@ var Sidebar = /*#__PURE__*/React__default.forwardRef(function (_ref2, ref) {
4026
4133
  transitionDuration: 'var(--sidebar-transition-duration, 200ms)',
4027
4134
  animationDuration: 'var(--sidebar-transition-duration, 200ms)',
4028
4135
  transitionProperty: 'width',
4029
- width: state === 'collapsed' && collapsible === 'icon' ? 'var(--sidebar-width-icon)' : state === 'collapsed' ? '0' : 'var(--sidebar-width)',
4136
+ width: getSidebarWidth(state, collapsible),
4030
4137
  height: '100svh'
4031
4138
  },
4032
4139
  className: classNames('position-relative', className)
4033
4140
  }), React__default.createElement("div", _extends({
4034
4141
  className: classNames('position-absolute display-none display-flex-desktop ', className),
4035
- style: {
4036
- left: state === 'expanded' || collapsible === 'icon' ? '0' : 'calc(var(--sidebar-width)*-1)',
4142
+ style: _extends({}, getSidebarOffsetStyles(side, state, collapsible), {
4037
4143
  top: '0',
4038
4144
  bottom: '0',
4039
4145
  zIndex: 'var(--size-z-index-drawer)',
@@ -4044,46 +4150,55 @@ var Sidebar = /*#__PURE__*/React__default.forwardRef(function (_ref2, ref) {
4044
4150
  transitionProperty: 'left, right, width',
4045
4151
  width: state === 'collapsed' && collapsible === 'icon' ? 'var(--sidebar-width-icon)' : 'var(--sidebar-width)',
4046
4152
  height: '100svh'
4047
- }
4153
+ })
4048
4154
  }, props), React__default.createElement("div", {
4049
4155
  "data-sidebar": "sidebar",
4050
- className: "display-flex h-100 w-100 flex-direction-column background-color-secondary font-color-base"
4051
- }, children)));
4156
+ className: classNames('display-flex h-100 w-100 flex-direction-column background-color-secondary font-color-base', {
4157
+ 'p-right-lg-desktop': side === 'right'
4158
+ })
4159
+ }, children))));
4052
4160
  });
4053
4161
  Sidebar.displayName = 'Sidebar';
4054
- var SidebarTrigger = /*#__PURE__*/React__default.forwardRef(function (_ref3, ref) {
4055
- var className = _ref3.className,
4056
- _onClick = _ref3.onClick,
4057
- props = _objectWithoutPropertiesLoose(_ref3, _excluded3);
4058
- var _useSidebar2 = useSidebar(),
4059
- toggleSidebar = _useSidebar2.toggleSidebar;
4162
+ var SidebarTrigger = /*#__PURE__*/React__default.forwardRef(function (_ref4, ref) {
4163
+ var className = _ref4.className,
4164
+ _onClick = _ref4.onClick,
4165
+ side = _ref4.side,
4166
+ _ref4$iconName = _ref4.iconName,
4167
+ iconName = _ref4$iconName === void 0 ? 'dock-left' : _ref4$iconName,
4168
+ props = _objectWithoutPropertiesLoose(_ref4, _excluded3);
4169
+ var _useSidebar2 = useSidebar(side),
4170
+ toggleSidebar = _useSidebar2.toggleSidebar,
4171
+ contextSide = _useSidebar2.side;
4060
4172
  return React__default.createElement(Button, _extends({
4061
4173
  ref: ref,
4062
4174
  "data-sidebar": "trigger",
4063
4175
  variant: "tertiary",
4064
4176
  size: "sm",
4065
- iconPrefix: "dock-left",
4066
- className: classNames('m-left-sm m-left-0-tablet', className),
4177
+ iconPrefix: iconName,
4178
+ className: classNames({
4179
+ 'm-left-sm m-left-0-tablet': contextSide === 'left',
4180
+ 'm-right-sm m-right-0-tablet': contextSide === 'right'
4181
+ }, className),
4067
4182
  onClick: function onClick(event) {
4068
4183
  _onClick == null || _onClick(event);
4069
4184
  toggleSidebar();
4070
4185
  },
4071
- "aria-label": "toggle sidebar"
4186
+ "aria-label": "Toggle " + contextSide + " sidebar"
4072
4187
  }, props));
4073
4188
  });
4074
4189
  SidebarTrigger.displayName = 'SidebarTrigger';
4075
- var SidebarInset = /*#__PURE__*/React__default.forwardRef(function (_ref4, ref) {
4076
- var className = _ref4.className,
4077
- props = _objectWithoutPropertiesLoose(_ref4, _excluded4);
4190
+ var SidebarInset = /*#__PURE__*/React__default.forwardRef(function (_ref5, ref) {
4191
+ var className = _ref5.className,
4192
+ props = _objectWithoutPropertiesLoose(_ref5, _excluded4);
4078
4193
  return React__default.createElement("main", _extends({
4079
4194
  ref: ref,
4080
4195
  className: classNames('display-flex flex-auto flex-direction-column g-lg align-items-flex-start p-h-0 p-top-lg p-bottom-0 p-lg-tablet background-color-secondary', className)
4081
4196
  }, props));
4082
4197
  });
4083
4198
  SidebarInset.displayName = 'SidebarInset';
4084
- var SidebarHeader = /*#__PURE__*/React__default.forwardRef(function (_ref5, ref) {
4085
- var className = _ref5.className,
4086
- props = _objectWithoutPropertiesLoose(_ref5, _excluded5);
4199
+ var SidebarHeader = /*#__PURE__*/React__default.forwardRef(function (_ref6, ref) {
4200
+ var className = _ref6.className,
4201
+ props = _objectWithoutPropertiesLoose(_ref6, _excluded5);
4087
4202
  var _useSidebar3 = useSidebar(),
4088
4203
  state = _useSidebar3.state;
4089
4204
  var isCollapsed = state === 'collapsed';
@@ -4096,9 +4211,9 @@ var SidebarHeader = /*#__PURE__*/React__default.forwardRef(function (_ref5, ref)
4096
4211
  }, props));
4097
4212
  });
4098
4213
  SidebarHeader.displayName = 'SidebarHeader';
4099
- var SidebarFooter = /*#__PURE__*/React__default.forwardRef(function (_ref6, ref) {
4100
- var className = _ref6.className,
4101
- props = _objectWithoutPropertiesLoose(_ref6, _excluded6);
4214
+ var SidebarFooter = /*#__PURE__*/React__default.forwardRef(function (_ref7, ref) {
4215
+ var className = _ref7.className,
4216
+ props = _objectWithoutPropertiesLoose(_ref7, _excluded6);
4102
4217
  return React__default.createElement("div", _extends({
4103
4218
  ref: ref,
4104
4219
  "data-sidebar": "footer",
@@ -4106,9 +4221,9 @@ var SidebarFooter = /*#__PURE__*/React__default.forwardRef(function (_ref6, ref)
4106
4221
  }, props));
4107
4222
  });
4108
4223
  SidebarFooter.displayName = 'SidebarFooter';
4109
- var SidebarContent = /*#__PURE__*/React__default.forwardRef(function (_ref7, ref) {
4110
- var className = _ref7.className,
4111
- props = _objectWithoutPropertiesLoose(_ref7, _excluded7);
4224
+ var SidebarContent = /*#__PURE__*/React__default.forwardRef(function (_ref8, ref) {
4225
+ var className = _ref8.className,
4226
+ props = _objectWithoutPropertiesLoose(_ref8, _excluded7);
4112
4227
  return React__default.createElement("div", _extends({
4113
4228
  ref: ref,
4114
4229
  "data-sidebar": "content",
@@ -4120,9 +4235,9 @@ var SidebarContent = /*#__PURE__*/React__default.forwardRef(function (_ref7, ref
4120
4235
  }, props));
4121
4236
  });
4122
4237
  SidebarContent.displayName = 'SidebarContent';
4123
- var SidebarMenu = /*#__PURE__*/React__default.forwardRef(function (_ref8, ref) {
4124
- var className = _ref8.className,
4125
- props = _objectWithoutPropertiesLoose(_ref8, _excluded8);
4238
+ var SidebarMenu = /*#__PURE__*/React__default.forwardRef(function (_ref9, ref) {
4239
+ var className = _ref9.className,
4240
+ props = _objectWithoutPropertiesLoose(_ref9, _excluded8);
4126
4241
  return React__default.createElement("ul", _extends({
4127
4242
  ref: ref,
4128
4243
  "data-sidebar": "menu",
@@ -4133,9 +4248,9 @@ var SidebarMenu = /*#__PURE__*/React__default.forwardRef(function (_ref8, ref) {
4133
4248
  }, props));
4134
4249
  });
4135
4250
  SidebarMenu.displayName = 'SidebarMenu';
4136
- var SidebarMenuItem = /*#__PURE__*/React__default.forwardRef(function (_ref9, ref) {
4137
- var className = _ref9.className,
4138
- props = _objectWithoutPropertiesLoose(_ref9, _excluded9);
4251
+ var SidebarMenuItem = /*#__PURE__*/React__default.forwardRef(function (_ref0, ref) {
4252
+ var className = _ref0.className,
4253
+ props = _objectWithoutPropertiesLoose(_ref0, _excluded9);
4139
4254
  return React__default.createElement("li", _extends({
4140
4255
  ref: ref,
4141
4256
  "data-sidebar": "menu-item",
@@ -4146,18 +4261,19 @@ var SidebarMenuItem = /*#__PURE__*/React__default.forwardRef(function (_ref9, re
4146
4261
  }, props));
4147
4262
  });
4148
4263
  SidebarMenuItem.displayName = 'SidebarMenuItem';
4149
- var SidebarMenuButton = /*#__PURE__*/React__default.forwardRef(function (_ref0, ref) {
4150
- var _ref0$asChild = _ref0.asChild,
4151
- asChild = _ref0$asChild === void 0 ? false : _ref0$asChild,
4152
- _ref0$isActive = _ref0.isActive,
4153
- isActive = _ref0$isActive === void 0 ? false : _ref0$isActive,
4154
- tooltip = _ref0.tooltip,
4155
- className = _ref0.className,
4156
- props = _objectWithoutPropertiesLoose(_ref0, _excluded0);
4264
+ var SidebarMenuButton = /*#__PURE__*/React__default.forwardRef(function (_ref1, ref) {
4265
+ var _ref1$asChild = _ref1.asChild,
4266
+ asChild = _ref1$asChild === void 0 ? false : _ref1$asChild,
4267
+ _ref1$isActive = _ref1.isActive,
4268
+ isActive = _ref1$isActive === void 0 ? false : _ref1$isActive,
4269
+ tooltip = _ref1.tooltip,
4270
+ className = _ref1.className,
4271
+ props = _objectWithoutPropertiesLoose(_ref1, _excluded0);
4157
4272
  var Comp = asChild ? Slot : 'button';
4158
4273
  var _useSidebar4 = useSidebar(),
4159
4274
  isMobile = _useSidebar4.isMobile,
4160
- state = _useSidebar4.state;
4275
+ state = _useSidebar4.state,
4276
+ side = _useSidebar4.side;
4161
4277
  var button = React__default.createElement(Comp, _extends({
4162
4278
  ref: ref,
4163
4279
  "data-sidebar": "menu-button",
@@ -4178,15 +4294,15 @@ var SidebarMenuButton = /*#__PURE__*/React__default.forwardRef(function (_ref0,
4178
4294
  return React__default.createElement(Tooltip, null, React__default.createElement(TooltipTrigger, {
4179
4295
  asChild: true
4180
4296
  }, button), React__default.createElement(TooltipContent, _extends({
4181
- side: "right",
4297
+ side: side === 'right' ? 'left' : 'right',
4182
4298
  align: "center",
4183
4299
  hidden: state !== 'collapsed' || isMobile
4184
4300
  }, tooltip)));
4185
4301
  });
4186
4302
  SidebarMenuButton.displayName = 'SidebarMenuButton';
4187
- var SidebarGroup = /*#__PURE__*/React__default.forwardRef(function (_ref1, ref) {
4188
- var className = _ref1.className,
4189
- props = _objectWithoutPropertiesLoose(_ref1, _excluded1);
4303
+ var SidebarGroup = /*#__PURE__*/React__default.forwardRef(function (_ref10, ref) {
4304
+ var className = _ref10.className,
4305
+ props = _objectWithoutPropertiesLoose(_ref10, _excluded1);
4190
4306
  return React__default.createElement("div", _extends({
4191
4307
  ref: ref,
4192
4308
  "data-sidebar": "group",
@@ -4194,9 +4310,9 @@ var SidebarGroup = /*#__PURE__*/React__default.forwardRef(function (_ref1, ref)
4194
4310
  }, props));
4195
4311
  });
4196
4312
  SidebarGroup.displayName = 'SidebarGroup';
4197
- var SidebarGroupLabel = /*#__PURE__*/React__default.forwardRef(function (_ref10, ref) {
4198
- var className = _ref10.className,
4199
- props = _objectWithoutPropertiesLoose(_ref10, _excluded10);
4313
+ var SidebarGroupLabel = /*#__PURE__*/React__default.forwardRef(function (_ref11, ref) {
4314
+ var className = _ref11.className,
4315
+ props = _objectWithoutPropertiesLoose(_ref11, _excluded10);
4200
4316
  return React__default.createElement("div", _extends({
4201
4317
  ref: ref,
4202
4318
  "data-sidebar": "group-label",
@@ -4204,9 +4320,9 @@ var SidebarGroupLabel = /*#__PURE__*/React__default.forwardRef(function (_ref10,
4204
4320
  }, props));
4205
4321
  });
4206
4322
  SidebarGroupLabel.displayName = 'SidebarGroupLabel';
4207
- var SidebarMenuSub = /*#__PURE__*/React__default.forwardRef(function (_ref11, ref) {
4208
- var className = _ref11.className,
4209
- props = _objectWithoutPropertiesLoose(_ref11, _excluded11);
4323
+ var SidebarMenuSub = /*#__PURE__*/React__default.forwardRef(function (_ref12, ref) {
4324
+ var className = _ref12.className,
4325
+ props = _objectWithoutPropertiesLoose(_ref12, _excluded11);
4210
4326
  return React__default.createElement("ul", _extends({
4211
4327
  ref: ref,
4212
4328
  "data-sidebar": "menu-sub",
@@ -4217,19 +4333,19 @@ var SidebarMenuSub = /*#__PURE__*/React__default.forwardRef(function (_ref11, re
4217
4333
  }, props));
4218
4334
  });
4219
4335
  SidebarMenuSub.displayName = 'SidebarMenuSub';
4220
- var SidebarMenuSubItem = /*#__PURE__*/React__default.forwardRef(function (_ref12, ref) {
4221
- var props = _extends({}, (_objectDestructuringEmpty(_ref12), _ref12));
4336
+ var SidebarMenuSubItem = /*#__PURE__*/React__default.forwardRef(function (_ref13, ref) {
4337
+ var props = _extends({}, (_objectDestructuringEmpty(_ref13), _ref13));
4222
4338
  return React__default.createElement("li", _extends({
4223
4339
  ref: ref
4224
4340
  }, props));
4225
4341
  });
4226
4342
  SidebarMenuSubItem.displayName = 'SidebarMenuSubItem';
4227
- var SidebarMenuSubButton = /*#__PURE__*/React__default.forwardRef(function (_ref13, ref) {
4228
- var _ref13$asChild = _ref13.asChild,
4229
- asChild = _ref13$asChild === void 0 ? false : _ref13$asChild,
4230
- isActive = _ref13.isActive,
4231
- className = _ref13.className,
4232
- props = _objectWithoutPropertiesLoose(_ref13, _excluded12);
4343
+ var SidebarMenuSubButton = /*#__PURE__*/React__default.forwardRef(function (_ref14, ref) {
4344
+ var _ref14$asChild = _ref14.asChild,
4345
+ asChild = _ref14$asChild === void 0 ? false : _ref14$asChild,
4346
+ isActive = _ref14.isActive,
4347
+ className = _ref14.className,
4348
+ props = _objectWithoutPropertiesLoose(_ref14, _excluded12);
4233
4349
  var Comp = asChild ? Slot : 'a';
4234
4350
  return React__default.createElement(Comp, _extends({
4235
4351
  ref: ref,
@@ -4242,11 +4358,11 @@ var SidebarMenuSubButton = /*#__PURE__*/React__default.forwardRef(function (_ref
4242
4358
  }, props));
4243
4359
  });
4244
4360
  SidebarMenuSubButton.displayName = 'SidebarMenuSubButton';
4245
- var SidebarMenuAction = /*#__PURE__*/React__default.forwardRef(function (_ref14, ref) {
4246
- var className = _ref14.className,
4247
- _ref14$asChild = _ref14.asChild,
4248
- asChild = _ref14$asChild === void 0 ? false : _ref14$asChild,
4249
- props = _objectWithoutPropertiesLoose(_ref14, _excluded13);
4361
+ var SidebarMenuAction = /*#__PURE__*/React__default.forwardRef(function (_ref15, ref) {
4362
+ var className = _ref15.className,
4363
+ _ref15$asChild = _ref15.asChild,
4364
+ asChild = _ref15$asChild === void 0 ? false : _ref15$asChild,
4365
+ props = _objectWithoutPropertiesLoose(_ref15, _excluded13);
4250
4366
  var Comp = asChild ? Slot : 'button';
4251
4367
  return React__default.createElement(Comp, _extends({
4252
4368
  ref: ref,
@@ -4259,28 +4375,31 @@ var SidebarMenuAction = /*#__PURE__*/React__default.forwardRef(function (_ref14,
4259
4375
  }, props));
4260
4376
  });
4261
4377
  SidebarMenuAction.displayName = 'SidebarMenuAction';
4262
- var SidebarRail = /*#__PURE__*/React__default.forwardRef(function (_ref15, ref) {
4263
- var className = _ref15.className,
4264
- props = _objectWithoutPropertiesLoose(_ref15, _excluded14);
4378
+ var SidebarRail = /*#__PURE__*/React__default.forwardRef(function (_ref16, ref) {
4379
+ var className = _ref16.className,
4380
+ props = _objectWithoutPropertiesLoose(_ref16, _excluded14);
4265
4381
  var _useSidebar5 = useSidebar(),
4266
4382
  open = _useSidebar5.open,
4267
- toggleSidebar = _useSidebar5.toggleSidebar;
4268
- var caretIcon = open ? 'caret-sm-left' : 'caret-sm-right';
4383
+ toggleSidebar = _useSidebar5.toggleSidebar,
4384
+ side = _useSidebar5.side;
4385
+ var shortcutLabel = side === 'left' ? SIDEBAR_KEYBOARD_SHORTCUT_LEFT : SIDEBAR_KEYBOARD_SHORTCUT_RIGHT;
4386
+ var caretIcon = open ? side === 'right' ? 'caret-sm-right' : 'caret-sm-left' : side === 'right' ? 'caret-sm-left' : 'caret-sm-right';
4269
4387
  return React__default.createElement("button", _extends({
4270
4388
  ref: ref,
4271
4389
  "data-sidebar": "rail",
4272
4390
  "aria-label": "Toggle Sidebar",
4273
4391
  tabIndex: -1,
4274
4392
  onClick: toggleSidebar,
4275
- title: "Toggle Sidebar [",
4393
+ title: "Toggle Sidebar " + shortcutLabel,
4276
4394
  className: classNames(styles$8.rail, 'hover-show-child background-color-transparent display-flex p-top-5xl p-left-xl p-right-0 justify-content-center position-absolute', {
4277
- 'cursor-w-resize': open,
4278
- 'cursor-e-resize': !open
4395
+ 'cursor-w-resize': open && side === 'left' || !open && side === 'right',
4396
+ 'cursor-e-resize': !open && side === 'left' || open && side === 'right'
4279
4397
  }, className),
4280
4398
  style: {
4281
4399
  top: '20px',
4282
4400
  bottom: '20px',
4283
- right: '-14px',
4401
+ right: side === 'left' ? '-14px' : undefined,
4402
+ left: side === 'right' ? '-14px' : undefined,
4284
4403
  width: '10px'
4285
4404
  }
4286
4405
  }, props), React__default.createElement(Box, {
@@ -4296,17 +4415,17 @@ var SidebarRail = /*#__PURE__*/React__default.forwardRef(function (_ref15, ref)
4296
4415
  alignItems: "center",
4297
4416
  justifyContent: "center",
4298
4417
  className: classNames('hover-child', {
4299
- 'cursor-w-resize': open,
4300
- 'cursor-e-resize': !open
4418
+ 'cursor-w-resize': open && side === 'left' || !open && side === 'right',
4419
+ 'cursor-e-resize': !open && side === 'left' || open && side === 'right'
4301
4420
  }, className)
4302
4421
  }, React__default.createElement(Icon, {
4303
4422
  name: caretIcon
4304
4423
  })));
4305
4424
  });
4306
4425
  SidebarRail.displayName = 'SidebarRail';
4307
- var SidebarMenuBadge = /*#__PURE__*/React__default.forwardRef(function (_ref16, ref) {
4308
- var className = _ref16.className,
4309
- props = _objectWithoutPropertiesLoose(_ref16, _excluded15);
4426
+ var SidebarMenuBadge = /*#__PURE__*/React__default.forwardRef(function (_ref17, ref) {
4427
+ var className = _ref17.className,
4428
+ props = _objectWithoutPropertiesLoose(_ref17, _excluded15);
4310
4429
  return React__default.createElement("div", _extends({
4311
4430
  ref: ref,
4312
4431
  "data-sidebar": "menu-badge",