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