@hyphen/hyphen-components 2.25.2 → 4.0.0

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.
@@ -6,6 +6,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
6
6
  var React = require('react');
7
7
  var classNames = require('classnames');
8
8
  var icons = require('@hyphen/hyphen-design-tokens/build/assets/icons/react');
9
+ var reactSlot = require('@radix-ui/react-slot');
9
10
  var CollapsiblePrimitive = require('@radix-ui/react-collapsible');
10
11
  var format = require('date-fns/format');
11
12
  var ReactDatePicker = require('react-datepicker');
@@ -23,7 +24,6 @@ var Select = require('react-select');
23
24
  var AsyncCreatableSelect = require('react-select/async-creatable');
24
25
  var AsyncSelect = require('react-select/async');
25
26
  var CreatableSelect = require('react-select/creatable');
26
- var reactSlot = require('@radix-ui/react-slot');
27
27
  var uuid = require('uuid');
28
28
 
29
29
  function _interopNamespaceDefault(e) {
@@ -275,7 +275,7 @@ Component, props, getDefault) {
275
275
 
276
276
  var styles$w = {"box-transition":"Box-module_box-transition__eQx8C"};
277
277
 
278
- var _excluded$L = ["as", "alignItems", "alignContent", "alignSelf", "background", "borderColor", "borderWidth", "children", "childGap", "className", "color", "columnGap", "cursor", "display", "direction", "flex", "fontFamily", "fontSize", "focus", "fontWeight", "gap", "height", "hover", "justifyContent", "margin", "maxHeight", "minHeight", "maxWidth", "minWidth", "overflow", "padding", "position", "radius", "rowGap", "shadow", "style", "textAlign", "wrap", "width", "zIndex"];
278
+ var _excluded$M = ["as", "alignItems", "alignContent", "alignSelf", "background", "borderColor", "borderWidth", "children", "childGap", "className", "color", "columnGap", "cursor", "display", "direction", "flex", "fontFamily", "fontSize", "focus", "fontWeight", "gap", "height", "hover", "justifyContent", "margin", "maxHeight", "minHeight", "maxWidth", "minWidth", "overflow", "padding", "position", "radius", "rowGap", "shadow", "style", "textAlign", "wrap", "width", "zIndex"];
279
279
  /**
280
280
  * A `<Box>` is a layout component to build UIs with consistent padding and spacing between
281
281
  * elements.
@@ -362,7 +362,7 @@ var Box = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
362
362
  width = _ref$width === void 0 ? undefined : _ref$width,
363
363
  _ref$zIndex = _ref.zIndex,
364
364
  zIndex = _ref$zIndex === void 0 ? undefined : _ref$zIndex,
365
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$L);
365
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$M);
366
366
  var heightCss = getDimensionCss('h', height);
367
367
  var widthCss = getDimensionCss('w', width);
368
368
  var maxHeightCss = getDimensionCss('mh', maxHeight);
@@ -513,14 +513,14 @@ var Box = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
513
513
  });
514
514
  var boxPropsKeys = ['as', 'alignItems', 'alignContent', 'alignSelf', 'background', 'borderColor', 'borderWidth', 'className', 'childGap', 'children', 'color', 'columnGap', 'cursor', 'direction', 'display', 'flex', 'focus', 'fontFamily', 'fontSize', 'fontWeight', 'gap', 'height', 'hover', 'justifyContent', 'margin', 'maxHeight', 'minHeight', 'maxWidth', 'minWidth', 'overflow', 'padding', 'position', 'radius', 'rowGap', 'shadow', 'style', 'textAlign', 'wrap', 'width', 'zIndex'];
515
515
 
516
- var _excluded$K = ["className", "name", "color", "size"];
516
+ var _excluded$L = ["className", "name", "color", "size"];
517
517
  var Icon = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
518
518
  var _ref$className = _ref.className,
519
519
  className = _ref$className === void 0 ? undefined : _ref$className,
520
520
  name = _ref.name,
521
521
  color = _ref.color,
522
522
  size = _ref.size,
523
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$K);
523
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$L);
524
524
  var IconComponent = icons[name];
525
525
  if (!IconComponent) console.error("Icon '" + name + "' not found"); // eslint-disable-line no-console
526
526
  var iconClasses = classNames(className, generateResponsiveClasses('font-color', color), generateResponsiveClasses('font-size', size));
@@ -559,7 +559,7 @@ var ALERT_ICONS_MAP = {
559
559
  }
560
560
  };
561
561
 
562
- var _excluded$J = ["className", "closeText", "hasIcon", "isCompact", "isClosable", "message", "onClose", "render", "title", "variant"];
562
+ var _excluded$K = ["className", "closeText", "hasIcon", "isCompact", "isClosable", "message", "onClose", "render", "title", "variant"];
563
563
  var Alert = function Alert(_ref) {
564
564
  var _ref$className = _ref.className,
565
565
  className = _ref$className === void 0 ? '' : _ref$className,
@@ -581,7 +581,7 @@ var Alert = function Alert(_ref) {
581
581
  title = _ref$title === void 0 ? '' : _ref$title,
582
582
  _ref$variant = _ref.variant,
583
583
  variant = _ref$variant === void 0 ? 'default' : _ref$variant,
584
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$J);
584
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$K);
585
585
  var handleClose = function handleClose(event) {
586
586
  if (!onClose) return;
587
587
  onClose(event);
@@ -635,7 +635,7 @@ var Alert = function Alert(_ref) {
635
635
 
636
636
  var styles$u = {"badge":"Badge-module_badge__ZbEBU","size-sm":"Badge-module_size-sm__rL8a6","size-md":"Badge-module_size-md__kf6IH","size-lg":"Badge-module_size-lg__of6XJ","inverse":"Badge-module_inverse__qZCFA","purple":"Badge-module_purple__rX-xW","green":"Badge-module_green__W03uU","red":"Badge-module_red__fl2jg","blue":"Badge-module_blue__C7kyV","yellow":"Badge-module_yellow__gGZ6R","light-grey":"Badge-module_light-grey__Wtrhx","dark-grey":"Badge-module_dark-grey__X-807","hyphen":"Badge-module_hyphen__9pe7x","size-sm-tablet":"Badge-module_size-sm-tablet__6xMVk","size-md-tablet":"Badge-module_size-md-tablet__4w-7I","size-lg-tablet":"Badge-module_size-lg-tablet__8xyRF","size-sm-desktop":"Badge-module_size-sm-desktop__Ayf5L","size-md-desktop":"Badge-module_size-md-desktop__XSq7m","size-lg-desktop":"Badge-module_size-lg-desktop__Baw3S","size-sm-hd":"Badge-module_size-sm-hd__Da6Au","size-md-hd":"Badge-module_size-md-hd__-VNMk","size-lg-hd":"Badge-module_size-lg-hd__6MOwL"};
637
637
 
638
- var _excluded$I = ["className", "message", "variant", "size"];
638
+ var _excluded$J = ["className", "message", "variant", "size"];
639
639
  var Badge = function Badge(_ref) {
640
640
  var _classNames;
641
641
  var _ref$className = _ref.className,
@@ -646,7 +646,7 @@ var Badge = function Badge(_ref) {
646
646
  variant = _ref$variant === void 0 ? 'light-grey' : _ref$variant,
647
647
  _ref$size = _ref.size,
648
648
  size = _ref$size === void 0 ? 'md' : _ref$size,
649
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$I);
649
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$J);
650
650
  var responsiveClasses = generateResponsiveClasses('size', size).map(function (c) {
651
651
  return styles$u[c];
652
652
  });
@@ -750,99 +750,47 @@ var Spinner = function Spinner(_ref) {
750
750
  }))));
751
751
  };
752
752
 
753
- var isModifiedEvent = function isModifiedEvent(e) {
754
- return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);
755
- };
756
- /**
757
- * Due to react-router's handling of custom components used in RR <Link>
758
- * we must add this validation that ensures the router will execute the passed `navigate`
759
- * prop, thus navigating the user without triggering a refresh.
760
- *
761
- * SOURCES:
762
- * https://github.com/ReactTraining/react-router/issues/7727
763
- * https://github.com/ReactTraining/react-router/issues/7761
764
- * */
765
- // eslint-disable-next-line import/prefer-default-export
766
- var handleReactRouterClick = function handleReactRouterClick(event, onClick, target, navigate) {
767
- if (onClick) onClick(event);
768
- if (!event.defaultPrevented &&
769
- // onClick prevented default
770
- event.button === 0 && (
771
- // ignore everything but left clicks
772
- !target || target === '_self') &&
773
- // let browser handle "target=_blank" etc.
774
- !isModifiedEvent(event) &&
775
- // ignore clicks with modifier keys
776
- navigate) {
777
- event.preventDefault();
778
- navigate();
779
- }
780
- };
781
-
782
753
  var styles$s = {"button":"Button-module_button__18Bed","size-sm":"Button-module_size-sm__6Xrjw","size-md":"Button-module_size-md__BkuGu","size-lg":"Button-module_size-lg__JVYWV","primary":"Button-module_primary__st6yY","secondary":"Button-module_secondary__j-3rj","tertiary":"Button-module_tertiary__Nd7xM","danger":"Button-module_danger__Hxs5n","size-sm-tablet":"Button-module_size-sm-tablet__9XaSx","size-md-tablet":"Button-module_size-md-tablet__YQxaI","size-lg-tablet":"Button-module_size-lg-tablet__h3l97","size-sm-desktop":"Button-module_size-sm-desktop__8tTsg","size-md-desktop":"Button-module_size-md-desktop__OCdDi","size-lg-desktop":"Button-module_size-lg-desktop__uFc4f","size-sm-hd":"Button-module_size-sm-hd__INFfD","size-md-hd":"Button-module_size-md-hd__8e2mW","size-lg-hd":"Button-module_size-lg-hd__DH60l","loading":"Button-module_loading__QfItr","label":"Button-module_label__1PsXG","full-width":"Button-module_full-width__qDri6","spinner-wrapper":"Button-module_spinner-wrapper__rALNw"};
783
754
 
784
- var _excluded$H = ["children", "as", "className", "fullWidth", "id", "href", "iconPrefix", "iconSuffix", "isDisabled", "isLoading", "navigate", "onClick", "onFocus", "onBlur", "shadow", "size", "tabIndex", "target", "type", "variant"];
755
+ var _excluded$I = ["asChild", "children", "className", "fullWidth", "iconPrefix", "iconSuffix", "isDisabled", "isLoading", "onClick", "onBlur", "onFocus", "shadow", "size", "variant"];
785
756
  var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
786
- var _classNames, _extends2;
787
- var _ref$children = _ref.children,
788
- children = _ref$children === void 0 ? undefined : _ref$children,
789
- _ref$as = _ref.as,
790
- as = _ref$as === void 0 ? 'button' : _ref$as,
791
- _ref$className = _ref.className,
792
- className = _ref$className === void 0 ? '' : _ref$className,
793
- _ref$fullWidth = _ref.fullWidth,
794
- fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
795
- _ref$id = _ref.id,
796
- id = _ref$id === void 0 ? undefined : _ref$id,
797
- _ref$href = _ref.href,
798
- href = _ref$href === void 0 ? undefined : _ref$href,
799
- _ref$iconPrefix = _ref.iconPrefix,
800
- iconPrefix = _ref$iconPrefix === void 0 ? undefined : _ref$iconPrefix,
801
- _ref$iconSuffix = _ref.iconSuffix,
802
- iconSuffix = _ref$iconSuffix === void 0 ? undefined : _ref$iconSuffix,
803
- _ref$isDisabled = _ref.isDisabled,
804
- isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
805
- _ref$isLoading = _ref.isLoading,
806
- isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
807
- _ref$navigate = _ref.navigate,
808
- navigate = _ref$navigate === void 0 ? undefined : _ref$navigate,
809
- _ref$onClick = _ref.onClick,
810
- _onClick = _ref$onClick === void 0 ? undefined : _ref$onClick,
811
- _ref$onFocus = _ref.onFocus,
812
- onFocus = _ref$onFocus === void 0 ? undefined : _ref$onFocus,
813
- _ref$onBlur = _ref.onBlur,
814
- onBlur = _ref$onBlur === void 0 ? undefined : _ref$onBlur,
815
- _ref$shadow = _ref.shadow,
816
- shadow = _ref$shadow === void 0 ? undefined : _ref$shadow,
757
+ var _classNames;
758
+ var asChild = _ref.asChild,
759
+ children = _ref.children,
760
+ className = _ref.className,
761
+ fullWidth = _ref.fullWidth,
762
+ iconPrefix = _ref.iconPrefix,
763
+ iconSuffix = _ref.iconSuffix,
764
+ isDisabled = _ref.isDisabled,
765
+ isLoading = _ref.isLoading,
766
+ onClick = _ref.onClick,
767
+ onBlur = _ref.onBlur,
768
+ onFocus = _ref.onFocus,
769
+ shadow = _ref.shadow,
817
770
  _ref$size = _ref.size,
818
771
  size = _ref$size === void 0 ? 'md' : _ref$size,
819
- _ref$tabIndex = _ref.tabIndex,
820
- tabIndex = _ref$tabIndex === void 0 ? undefined : _ref$tabIndex,
821
- _ref$target = _ref.target,
822
- target = _ref$target === void 0 ? undefined : _ref$target,
823
- _ref$type = _ref.type,
824
- type = _ref$type === void 0 ? undefined : _ref$type,
825
772
  _ref$variant = _ref.variant,
826
773
  variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
827
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$H);
774
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$I);
828
775
  var disabled = isLoading || isDisabled;
829
776
  var responsiveClasses = generateResponsiveClasses('size', size).map(function (c) {
830
777
  return styles$s[c];
831
- });
778
+ }).filter(Boolean);
832
779
  var buttonClasses = classNames('hyphen-components__variables__form-control', styles$s.button, className, responsiveClasses, generateResponsiveClasses('shadow', shadow), (_classNames = {}, _classNames[styles$s.loading] = isLoading, _classNames[styles$s[variant]] = variant, _classNames[styles$s['full-width']] = fullWidth, _classNames));
833
- var handleClick = handleReactRouterClick;
834
- var handleFocus = function handleFocus(event) {
835
- if (onFocus) onFocus(event);
836
- };
837
- var handleBlur = function handleBlur(event) {
838
- if (onBlur) onBlur(event);
839
- };
840
- var buttonContent = iconPrefix || iconSuffix ? React.createElement(Box, {
841
- display: "inline-flex",
842
- direction: "row",
843
- alignItems: "center",
844
- gap: "md"
845
- }, isLoading && React.createElement(Spinner, {
780
+ var handleClick = !disabled ? onClick : undefined;
781
+ var handleBlur = !disabled ? onBlur : undefined;
782
+ var handleFocus = !disabled ? onFocus : undefined;
783
+ var Comp = asChild ? reactSlot.Slot : 'button';
784
+ return React.createElement(Comp, _extends({}, disabled && {
785
+ 'aria-disabled': true
786
+ }, {
787
+ disabled: disabled,
788
+ className: buttonClasses,
789
+ onClick: handleClick,
790
+ onBlur: handleBlur,
791
+ onFocus: handleFocus,
792
+ ref: ref
793
+ }, restProps), isLoading && React.createElement(Spinner, {
846
794
  className: styles$s['spinner-wrapper']
847
795
  }), iconPrefix && React.createElement(Icon, {
848
796
  className: styles$s.label,
@@ -851,34 +799,20 @@ var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
851
799
  focusable: "false",
852
800
  "data-testid": "prefixIcon",
853
801
  size: size === 'md' ? 'sm' : size
854
- }), children && React.createElement("span", {
802
+ }), children && React.createElement(reactSlot.Slottable, null, asChild ? children : React.createElement("span", {
855
803
  className: styles$s.label
856
- }, children), iconSuffix && React.createElement(Icon, {
804
+ }, children)), iconSuffix && React.createElement(Icon, {
857
805
  className: styles$s.label,
858
806
  name: iconSuffix,
859
807
  "aria-hidden": "true",
860
808
  focusable: "false",
861
809
  "data-testid": "suffixIcon",
862
810
  size: size === 'md' ? 'sm' : size
863
- })) : React.createElement(React.Fragment, null, isLoading && React.createElement(Spinner, {
864
- className: styles$s['spinner-wrapper']
865
- }), function () {
866
- if (children) {
867
- return React.createElement("span", {
868
- className: styles$s.label
869
- }, children);
870
- }
871
- return null;
872
- }());
873
- var buttonElement = getElementType(Button, {
874
- as: as
875
- });
876
- return React.createElement(buttonElement, _extends((_extends2 = {}, _extends2['aria-disabled'] = disabled, _extends2.id = id, _extends2.href = href, _extends2.className = buttonClasses, _extends2.disabled = disabled, _extends2.target = as === 'a' && href ? target : null, _extends2.rel = as === 'a' && href && target === '_blank' ? 'noopener noreferrer' : null, _extends2.onBlur = handleBlur, _extends2.onClick = function onClick(event) {
877
- return handleClick(event, _onClick, target, navigate);
878
- }, _extends2.onFocus = handleFocus, _extends2.ref = ref, _extends2.type = type || (as !== 'a' && !href ? 'button' : undefined), _extends2.tabIndex = tabIndex, _extends2), restProps), buttonContent);
811
+ }));
879
812
  });
813
+ Button.displayName = 'Button';
880
814
 
881
- var _excluded$G = ["background", "borderColor", "borderWidth", "children", "display", "padding"];
815
+ var _excluded$H = ["background", "borderColor", "borderWidth", "children", "display", "padding"];
882
816
  var CardFooter = function CardFooter(_ref) {
883
817
  var _ref$background = _ref.background,
884
818
  background = _ref$background === void 0 ? 'secondary' : _ref$background,
@@ -892,7 +826,7 @@ var CardFooter = function CardFooter(_ref) {
892
826
  display = _ref$display === void 0 ? 'block' : _ref$display,
893
827
  _ref$padding = _ref.padding,
894
828
  padding = _ref$padding === void 0 ? '2xl' : _ref$padding,
895
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$G);
829
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$H);
896
830
  return React.createElement(Box, _extends({
897
831
  display: display,
898
832
  padding: padding,
@@ -913,7 +847,7 @@ var HEADING_DEFAULT_SIZE_MAP = {
913
847
 
914
848
  var styles$r = {"heading":"Heading-module_heading__zKyv7"};
915
849
 
916
- var _excluded$F = ["as", "children", "className", "color", "size"];
850
+ var _excluded$G = ["as", "children", "className", "color", "size"];
917
851
  var Heading = function Heading(_ref) {
918
852
  var _classNames;
919
853
  var _ref$as = _ref.as,
@@ -922,7 +856,7 @@ var Heading = function Heading(_ref) {
922
856
  className = _ref.className,
923
857
  color = _ref.color,
924
858
  size = _ref.size,
925
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$F);
859
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$G);
926
860
  var element = getElementType(Heading, {
927
861
  as: as
928
862
  });
@@ -933,7 +867,7 @@ var Heading = function Heading(_ref) {
933
867
  }, restProps), children);
934
868
  };
935
869
 
936
- var _excluded$E = ["childGap", "children", "className", "display", "padding", "title"];
870
+ var _excluded$F = ["childGap", "children", "className", "display", "padding", "title"];
937
871
  var CardHeader = function CardHeader(_ref) {
938
872
  var _ref$childGap = _ref.childGap,
939
873
  childGap = _ref$childGap === void 0 ? '2xs' : _ref$childGap,
@@ -947,7 +881,7 @@ var CardHeader = function CardHeader(_ref) {
947
881
  padding = _ref$padding === void 0 ? '2xl' : _ref$padding,
948
882
  _ref$title = _ref.title,
949
883
  title = _ref$title === void 0 ? null : _ref$title,
950
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$E);
884
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$F);
951
885
  var renderTitle = function renderTitle() {
952
886
  return typeof title === 'string' ? React.createElement(Heading, {
953
887
  size: "sm",
@@ -964,7 +898,7 @@ var CardHeader = function CardHeader(_ref) {
964
898
 
965
899
  var styles$q = {"card-section-border":"Card-module_card-section-border__OefDX"};
966
900
 
967
- var _excluded$D = ["background", "borderColor", "borderWidth", "children", "childGap", "gap", "className", "display", "padding", "subdued", "title"];
901
+ var _excluded$E = ["background", "borderColor", "borderWidth", "children", "childGap", "gap", "className", "display", "padding", "subdued", "title"];
968
902
  var CardSection = function CardSection(_ref) {
969
903
  var _classNames;
970
904
  var _ref$background = _ref.background,
@@ -989,7 +923,7 @@ var CardSection = function CardSection(_ref) {
989
923
  subdued = _ref$subdued === void 0 ? undefined : _ref$subdued,
990
924
  _ref$title = _ref.title,
991
925
  title = _ref$title === void 0 ? undefined : _ref$title,
992
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$D);
926
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$E);
993
927
  var renderTitle = typeof title === 'string' ? React.createElement(Box, {
994
928
  className: "m-bottom-md"
995
929
  }, React.createElement(Box, {
@@ -1012,7 +946,7 @@ var CardSection = function CardSection(_ref) {
1012
946
  }, children));
1013
947
  };
1014
948
 
1015
- var _excluded$C = ["children", "subdued", "overflow", "display", "width"];
949
+ var _excluded$D = ["children", "subdued", "overflow", "display", "width"];
1016
950
  var CardBaseComponent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1017
951
  var children = _ref.children,
1018
952
  subdued = _ref.subdued,
@@ -1022,7 +956,7 @@ var CardBaseComponent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1022
956
  display = _ref$display === void 0 ? 'block' : _ref$display,
1023
957
  _ref$width = _ref.width,
1024
958
  width = _ref$width === void 0 ? '100' : _ref$width,
1025
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$C);
959
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$D);
1026
960
  return React.createElement(Box, _extends({
1027
961
  background: subdued ? 'secondary' : 'primary',
1028
962
  borderWidth: "sm",
@@ -1045,7 +979,7 @@ var Card = /*#__PURE__*/function () {
1045
979
  return Card;
1046
980
  }();
1047
981
 
1048
- var _excluded$B = ["className", "error", "isChecked", "isDisabled", "isIndeterminate"];
982
+ var _excluded$C = ["className", "error", "isChecked", "isDisabled", "isIndeterminate"];
1049
983
  var CheckboxIcon = function CheckboxIcon(_ref) {
1050
984
  var _ref$className = _ref.className,
1051
985
  className = _ref$className === void 0 ? undefined : _ref$className,
@@ -1057,7 +991,7 @@ var CheckboxIcon = function CheckboxIcon(_ref) {
1057
991
  isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
1058
992
  _ref$isIndeterminate = _ref.isIndeterminate,
1059
993
  isIndeterminate = _ref$isIndeterminate === void 0 ? false : _ref$isIndeterminate,
1060
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$B);
994
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$C);
1061
995
  var color = 'base';
1062
996
  var name = 'checkbox-btn';
1063
997
  if (isChecked) name = 'checkbox-btn-checked';else name = 'checkbox-btn';
@@ -1082,7 +1016,7 @@ var CheckboxIcon = function CheckboxIcon(_ref) {
1082
1016
 
1083
1017
  var styles$p = {"checkbox":"Checkbox-module_checkbox__dY-7P","size-sm":"Checkbox-module_size-sm__mJkMQ","size-md":"Checkbox-module_size-md__I2s8g","size-lg":"Checkbox-module_size-lg__rFFnb","hidden":"Checkbox-module_hidden__2y7Zr","size-sm-tablet":"Checkbox-module_size-sm-tablet__GhQUW","size-md-tablet":"Checkbox-module_size-md-tablet__XRHf4","size-lg-tablet":"Checkbox-module_size-lg-tablet__quoAJ","size-sm-desktop":"Checkbox-module_size-sm-desktop__fqeEc","size-md-desktop":"Checkbox-module_size-md-desktop__9a278","size-lg-desktop":"Checkbox-module_size-lg-desktop__WQnv0","size-sm-hd":"Checkbox-module_size-sm-hd__X3yIF","size-md-hd":"Checkbox-module_size-md-hd__6T0dF","size-lg-hd":"Checkbox-module_size-lg-hd__UXCt1"};
1084
1018
 
1085
- var _excluded$A = ["className", "display", "id", "isChecked", "label", "labelledby", "onChange", "error", "isDisabled", "isHidden", "isIndeterminate", "isRequired", "onBlur", "onFocus", "size", "value"];
1019
+ var _excluded$B = ["className", "display", "id", "isChecked", "label", "labelledby", "onChange", "error", "isDisabled", "isHidden", "isIndeterminate", "isRequired", "onBlur", "onFocus", "size", "value"];
1086
1020
  var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1087
1021
  var _ref2;
1088
1022
  var _ref$className = _ref.className,
@@ -1112,7 +1046,7 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1112
1046
  size = _ref$size === void 0 ? 'md' : _ref$size,
1113
1047
  _ref$value = _ref.value,
1114
1048
  value = _ref$value === void 0 ? undefined : _ref$value,
1115
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$A);
1049
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$B);
1116
1050
  var inputRef = React.useRef(null);
1117
1051
  React.useEffect(function () {
1118
1052
  if (inputRef != null && inputRef.current) {
@@ -1201,7 +1135,7 @@ var HelpText = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1201
1135
  }, children);
1202
1136
  });
1203
1137
 
1204
- var _excluded$z = ["children", "inputId", "className", "display", "helpText", "isDisabled", "isFieldRequired", "isRadioInputLabel", "requiredIndicator", "margin", "padding"];
1138
+ var _excluded$A = ["children", "inputId", "className", "display", "helpText", "isDisabled", "isFieldRequired", "isRadioInputLabel", "requiredIndicator", "margin", "padding"];
1205
1139
  var FormLabel = function FormLabel(_ref) {
1206
1140
  var _classNames;
1207
1141
  var children = _ref.children,
@@ -1223,7 +1157,7 @@ var FormLabel = function FormLabel(_ref) {
1223
1157
  margin = _ref$margin === void 0 ? '0' : _ref$margin,
1224
1158
  _ref$padding = _ref.padding,
1225
1159
  padding = _ref$padding === void 0 ? '0' : _ref$padding,
1226
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$z);
1160
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$A);
1227
1161
  var labelClasses = classNames('hyphen-components__variables__form-control', styles$n.label, className, (_classNames = {}, _classNames[styles$n.disabled] = isDisabled, _classNames[styles$n.disabled] = isDisabled, _classNames[styles$n['radio-input-label']] = isRadioInputLabel, _classNames));
1228
1162
  return React.createElement(Box, _extends({
1229
1163
  as: "label",
@@ -1236,7 +1170,7 @@ var FormLabel = function FormLabel(_ref) {
1236
1170
  }, restProps), children, isFieldRequired && requiredIndicator && React.createElement("span", null, requiredIndicator), helpText && React.createElement(HelpText, null, helpText));
1237
1171
  };
1238
1172
 
1239
- var _excluded$y = ["id", "isChecked", "label", "onChange", "className", "error", "hideLabel", "helpText", "isDisabled", "isIndeterminate", "isRequired", "onBlur", "onFocus", "requiredIndicator", "size"];
1173
+ var _excluded$z = ["id", "isChecked", "label", "onChange", "className", "error", "hideLabel", "helpText", "isDisabled", "isIndeterminate", "isRequired", "onBlur", "onFocus", "requiredIndicator", "size"];
1240
1174
  var labelMarginSizeMap = {
1241
1175
  sm: '2xs 0 0 0',
1242
1176
  md: 'xs 0 0 0',
@@ -1281,7 +1215,7 @@ var CheckboxInput = function CheckboxInput(_ref2) {
1281
1215
  requiredIndicator = _ref2$requiredIndicat === void 0 ? ' *' : _ref2$requiredIndicat,
1282
1216
  _ref2$size = _ref2.size,
1283
1217
  size = _ref2$size === void 0 ? 'md' : _ref2$size,
1284
- restProps = _objectWithoutPropertiesLoose(_ref2, _excluded$y);
1218
+ restProps = _objectWithoutPropertiesLoose(_ref2, _excluded$z);
1285
1219
  var handleBlur = function handleBlur(event) {
1286
1220
  if (onBlur) onBlur(event);
1287
1221
  };
@@ -1329,7 +1263,7 @@ var CollapsibleContent = CollapsiblePrimitive__namespace.CollapsibleContent;
1329
1263
 
1330
1264
  var styles$l = {};
1331
1265
 
1332
- var _excluded$x = ["children", "dayClassName", "maxDate", "minDate", "monthsShown", "openToDate", "startDate", "selected", "selectsRange", "showTwoColumnMonthYearPicker", "showFullMonthYearPicker", "showMonthYearPicker", "className", "formatWeekDay"];
1266
+ var _excluded$y = ["children", "dayClassName", "maxDate", "minDate", "monthsShown", "openToDate", "startDate", "selected", "selectsRange", "showTwoColumnMonthYearPicker", "showFullMonthYearPicker", "showMonthYearPicker", "className", "formatWeekDay"];
1333
1267
  var DatePicker = function DatePicker(_ref) {
1334
1268
  var _ref$children = _ref.children,
1335
1269
  children = _ref$children === void 0 ? null : _ref$children,
@@ -1361,7 +1295,7 @@ var DatePicker = function DatePicker(_ref) {
1361
1295
  formatWeekDay = _ref$formatWeekDay === void 0 ? function (formattedDate) {
1362
1296
  return formattedDate[0];
1363
1297
  } : _ref$formatWeekDay,
1364
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$x);
1298
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$y);
1365
1299
  var datePickerClasses = classNames(styles$l['react-datepicker'], className);
1366
1300
  return React.createElement(ReactDatePicker, _extends({
1367
1301
  inline: true,
@@ -1381,7 +1315,7 @@ var DatePicker = function DatePicker(_ref) {
1381
1315
  }, restProps), children);
1382
1316
  };
1383
1317
 
1384
- var _excluded$w = ["label", "hideLabel", "children", "error", "id", "isRequired", "helpText", "isDisabled", "requiredIndicator", "width"];
1318
+ var _excluded$x = ["label", "hideLabel", "children", "error", "id", "isRequired", "helpText", "isDisabled", "requiredIndicator", "width"];
1385
1319
  var FormControl = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1386
1320
  var label = _ref.label,
1387
1321
  hideLabel = _ref.hideLabel,
@@ -1394,7 +1328,7 @@ var FormControl = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1394
1328
  requiredIndicator = _ref.requiredIndicator,
1395
1329
  _ref$width = _ref.width,
1396
1330
  width = _ref$width === void 0 ? '100' : _ref$width,
1397
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$w);
1331
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$x);
1398
1332
  var labelProps = {
1399
1333
  inputId: id,
1400
1334
  helpText: helpText,
@@ -1422,7 +1356,7 @@ function getAutoCompleteValue(value) {
1422
1356
 
1423
1357
  var styles$k = {"text-input-wrapper":"TextInput-module_text-input-wrapper__HCnQD","size-sm":"TextInput-module_size-sm__qWJn7","prefix":"TextInput-module_prefix__-wFO9","suffix":"TextInput-module_suffix__327yL","clear-button":"TextInput-module_clear-button__LUJpO","is-clearable":"TextInput-module_is-clearable__ExAY3","size-md":"TextInput-module_size-md__UFPtt","size-lg":"TextInput-module_size-lg__Hjfez","disabled":"TextInput-module_disabled__lrifj","size-sm-tablet":"TextInput-module_size-sm-tablet__neC5C","size-md-tablet":"TextInput-module_size-md-tablet__u29oc","size-lg-tablet":"TextInput-module_size-lg-tablet__3PUB3","size-sm-desktop":"TextInput-module_size-sm-desktop__kA12V","size-md-desktop":"TextInput-module_size-md-desktop__yLJGr","size-lg-desktop":"TextInput-module_size-lg-desktop__A1pcS","size-sm-hd":"TextInput-module_size-sm-hd__f7Thr","size-md-hd":"TextInput-module_size-md-hd__Tsnqc","size-lg-hd":"TextInput-module_size-lg-hd__XLMos","error":"TextInput-module_error__p6zZq","text-input-label":"TextInput-module_text-input-label__3PlSG"};
1424
1358
 
1425
- var _excluded$v = ["id", "label", "onChange", "value", "autoComplete", "autoFocus", "error", "helpText", "hideLabel", "inputProps", "isDisabled", "isRequired", "maxLength", "name", "onBlur", "onClear", "onFocus", "prefix", "placeholder", "requiredIndicator", "suffix", "size", "type"];
1359
+ var _excluded$w = ["id", "label", "onChange", "value", "autoComplete", "autoFocus", "error", "helpText", "hideLabel", "inputProps", "isDisabled", "isRequired", "maxLength", "name", "onBlur", "onClear", "onFocus", "prefix", "placeholder", "requiredIndicator", "suffix", "size", "type"];
1426
1360
  var TextInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1427
1361
  var _ref2;
1428
1362
  var id = _ref.id,
@@ -1466,7 +1400,7 @@ var TextInput = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1466
1400
  size = _ref$size === void 0 ? 'md' : _ref$size,
1467
1401
  _ref$type = _ref.type,
1468
1402
  type = _ref$type === void 0 ? 'text' : _ref$type,
1469
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$v);
1403
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$w);
1470
1404
  var responsiveClasses = generateResponsiveClasses('size', size);
1471
1405
  var inputWrapperClasses = classNames.apply(void 0, ['hyphen-components__variables__form-control', styles$k['text-input-wrapper']].concat(responsiveClasses.map(function (c) {
1472
1406
  return styles$k[c];
@@ -1611,11 +1545,14 @@ var BREAKPOINTS = /*#__PURE__*/[].concat(Object.entries(designTokens.size.breakp
1611
1545
  minWidth: parseInt(data['value'], 10)
1612
1546
  };
1613
1547
  }
1548
+ return undefined;
1549
+ }).filter(function (breakpoint) {
1550
+ return breakpoint !== undefined;
1614
1551
  });
1615
1552
  var Z_INDEX_VALUES = designTokens.size['z-index'];
1616
1553
  // export const BOX_SHADOW_VALUES = designTokens.size['box-shadow'];
1617
1554
 
1618
- var _excluded$u = ["className", "isOpen", "children", "content", "arrowColor", "contentContainerProps", "hasArrow", "offsetFromTarget", "onClickOutside", "placement", "withPortal", "portalTarget", "trapFocus"];
1555
+ var _excluded$v = ["className", "isOpen", "children", "content", "arrowColor", "contentContainerProps", "hasArrow", "offsetFromTarget", "onClickOutside", "placement", "withPortal", "portalTarget", "trapFocus"];
1619
1556
  var contentContainerDefaults = {
1620
1557
  background: 'primary',
1621
1558
  padding: 'sm',
@@ -1644,7 +1581,7 @@ var Popover = function Popover(_ref) {
1644
1581
  portalTarget = _ref.portalTarget,
1645
1582
  _ref$trapFocus = _ref.trapFocus,
1646
1583
  trapFocus = _ref$trapFocus === void 0 ? false : _ref$trapFocus,
1647
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$u);
1584
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$v);
1648
1585
  var triggerRef = React.useRef(null);
1649
1586
  var popperRef = React.useRef(null);
1650
1587
  var _useState = React.useState(null),
@@ -1750,7 +1687,7 @@ var Popover = function Popover(_ref) {
1750
1687
  withPortal && portalTarget ? reactDom.createPortal(renderPopperContent(), portalTarget) : renderPopperContent()));
1751
1688
  };
1752
1689
 
1753
- var _excluded$t = ["datePickerProps", "textInputProps", "dateFormat", "dateOptions", "popoverProps"];
1690
+ var _excluded$u = ["datePickerProps", "textInputProps", "dateFormat", "dateOptions", "popoverProps"];
1754
1691
  var defaultDatePickerProps = {
1755
1692
  selected: null,
1756
1693
  selectsRange: false
@@ -1770,7 +1707,7 @@ var DateInput = function DateInput(_ref) {
1770
1707
  dateOptions = _ref$dateOptions === void 0 ? undefined : _ref$dateOptions,
1771
1708
  _ref$popoverProps = _ref.popoverProps,
1772
1709
  popoverProps = _ref$popoverProps === void 0 ? _extends({}, defaultPopoverProps) : _ref$popoverProps,
1773
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$t);
1710
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$u);
1774
1711
  var mergedDatePickerProps = _extends({}, defaultDatePickerProps, datePickerProps);
1775
1712
  var mergedPopoverProps = _extends({}, defaultPopoverProps, popoverProps);
1776
1713
  var mergedTextInputProps = _extends({}, defaultTextInputProps, textInputProps);
@@ -1847,14 +1784,14 @@ var DateInput = function DateInput(_ref) {
1847
1784
  var ENTER = 13;
1848
1785
  var SPACE = 32;
1849
1786
 
1850
- var _excluded$s = ["children", "display", "isDetailsOpen", "onToggle"];
1787
+ var _excluded$t = ["children", "display", "isDetailsOpen", "onToggle"];
1851
1788
  var DetailsSummary = function DetailsSummary(_ref) {
1852
1789
  var children = _ref.children,
1853
1790
  _ref$display = _ref.display,
1854
1791
  display = _ref$display === void 0 ? 'block' : _ref$display,
1855
1792
  isDetailsOpen = _ref.isDetailsOpen,
1856
1793
  onToggle = _ref.onToggle,
1857
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$s);
1794
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$t);
1858
1795
  var handleClick = function handleClick(event) {
1859
1796
  // Needed to avoid default `details` behavior on a click event and keep this as controlled component.
1860
1797
  event.preventDefault();
@@ -1892,14 +1829,14 @@ var DetailsSummary = function DetailsSummary(_ref) {
1892
1829
 
1893
1830
  var styles$i = {"details-reset":"Details-module_details-reset__HWtSD"};
1894
1831
 
1895
- var _excluded$r = ["children", "className", "display", "isOpen"];
1832
+ var _excluded$s = ["children", "className", "display", "isOpen"];
1896
1833
  var DetailsBaseComponent = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1897
1834
  var children = _ref.children,
1898
1835
  className = _ref.className,
1899
1836
  _ref$display = _ref.display,
1900
1837
  display = _ref$display === void 0 ? 'block' : _ref$display,
1901
1838
  isOpen = _ref.isOpen,
1902
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$r);
1839
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$s);
1903
1840
  var detailsClasses = classNames(className, styles$i['details-reset'], styles$i.details);
1904
1841
  return React.createElement(Box, _extends({
1905
1842
  as: "details",
@@ -1919,41 +1856,136 @@ var Details = /*#__PURE__*/function () {
1919
1856
 
1920
1857
  var styles$h = {"drawer":"Drawer-module_drawer__IKoOm","hide-overlay-right":"Drawer-module_hide-overlay-right__FANA9","hide-overlay-left":"Drawer-module_hide-overlay-left__xZFa3","hide-overlay-bottom":"Drawer-module_hide-overlay-bottom__11EB1","hide-overlay-top":"Drawer-module_hide-overlay-top__kEsV5","drawer-content":"Drawer-module_drawer-content__zZ9xR","left":"Drawer-module_left__pwTcW","right":"Drawer-module_right__EzGpI","bottom":"Drawer-module_bottom__r3Q5Z","top":"Drawer-module_top__xQejO"};
1921
1858
 
1922
- var Drawer = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1859
+ var _excluded$r = ["defaultIsOpen", "open", "onOpenChange", "className", "children"],
1860
+ _excluded2$2 = ["asChild", "onClick"],
1861
+ _excluded3$2 = ["className"],
1862
+ _excluded4$2 = ["className", "onClick", "onClose"],
1863
+ _excluded5$2 = ["className"];
1864
+ var DrawerContext = /*#__PURE__*/React.createContext(null);
1865
+ function useDrawer() {
1866
+ var context = React.useContext(DrawerContext);
1867
+ if (!context) {
1868
+ throw new Error('useDrawer must be used within a DrawerProvider.');
1869
+ }
1870
+ return context;
1871
+ }
1872
+ var DrawerProvider = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1873
+ var _ref$defaultIsOpen = _ref.defaultIsOpen,
1874
+ defaultIsOpen = _ref$defaultIsOpen === void 0 ? false : _ref$defaultIsOpen,
1875
+ openProp = _ref.open,
1876
+ setOpenProp = _ref.onOpenChange,
1877
+ className = _ref.className,
1878
+ children = _ref.children,
1879
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$r);
1880
+ var _useState = React.useState(openProp != null ? openProp : defaultIsOpen),
1881
+ _open = _useState[0],
1882
+ _setOpen = _useState[1];
1883
+ var open = openProp != null ? openProp : _open;
1884
+ var setOpen = React.useCallback(function (value) {
1885
+ var newOpen = typeof value === 'function' ? value(open) : value;
1886
+ if (newOpen !== open) {
1887
+ if (setOpenProp) {
1888
+ setOpenProp(newOpen); // Controlled
1889
+ } else {
1890
+ _setOpen(newOpen); // Uncontrolled
1891
+ }
1892
+ }
1893
+ }, [open, setOpenProp]);
1894
+ var toggleDrawer = React.useCallback(function () {
1895
+ setOpen(function (prev) {
1896
+ return !prev;
1897
+ });
1898
+ }, [setOpen]);
1899
+ var contextValue = React.useMemo(function () {
1900
+ return {
1901
+ open: open,
1902
+ setOpen: setOpen,
1903
+ toggleDrawer: toggleDrawer
1904
+ };
1905
+ }, [open, setOpen, toggleDrawer]);
1906
+ return React.createElement(DrawerContext.Provider, {
1907
+ value: contextValue
1908
+ }, React.createElement("div", _extends({
1909
+ className: classNames('drawer-container', {
1910
+ 'drawer-open': open
1911
+ }, className),
1912
+ ref: ref
1913
+ }, props), children));
1914
+ });
1915
+ DrawerProvider.displayName = 'DrawerProvider';
1916
+ var DrawerTrigger = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
1917
+ var _ref2$asChild = _ref2.asChild,
1918
+ asChild = _ref2$asChild === void 0 ? false : _ref2$asChild,
1919
+ onClick = _ref2.onClick,
1920
+ triggerProps = _objectWithoutPropertiesLoose(_ref2, _excluded2$2);
1921
+ var context = React.useContext(DrawerContext);
1922
+ var isStandalone = !context;
1923
+ var handleClick = function handleClick(event) {
1924
+ onClick == null || onClick(event);
1925
+ if (!isStandalone) {
1926
+ // Use context to toggle the drawer
1927
+ context == null || context.toggleDrawer();
1928
+ }
1929
+ };
1930
+ var Comp = asChild ? reactSlot.Slot : 'button';
1931
+ return React.createElement(Comp, _extends({
1932
+ ref: ref,
1933
+ "data-drawer": "trigger",
1934
+ "aria-haspopup": "dialog",
1935
+ "aria-expanded": context == null ? void 0 : context.open,
1936
+ "data-state": context == null ? void 0 : context.open,
1937
+ "aria-label": "toggle drawer"
1938
+ }, triggerProps, {
1939
+ onClick: handleClick
1940
+ }));
1941
+ });
1942
+ DrawerTrigger.displayName = 'SidebarTrigger';
1943
+ var Drawer = /*#__PURE__*/React.forwardRef(function (_ref3, ref) {
1923
1944
  var _dynamicStyle, _classNames, _classNames2;
1924
- var _ref$ariaLabel = _ref.ariaLabel,
1925
- ariaLabel = _ref$ariaLabel === void 0 ? undefined : _ref$ariaLabel,
1926
- _ref$ariaLabelledBy = _ref.ariaLabelledBy,
1927
- ariaLabelledBy = _ref$ariaLabelledBy === void 0 ? undefined : _ref$ariaLabelledBy,
1928
- _ref$allowPinchZoom = _ref.allowPinchZoom,
1929
- allowPinchZoom = _ref$allowPinchZoom === void 0 ? false : _ref$allowPinchZoom,
1930
- _ref$children = _ref.children,
1931
- children = _ref$children === void 0 ? undefined : _ref$children,
1932
- _ref$className = _ref.className,
1933
- className = _ref$className === void 0 ? undefined : _ref$className,
1934
- _ref$closeButton = _ref.closeButton,
1935
- closeButton = _ref$closeButton === void 0 ? false : _ref$closeButton,
1936
- _ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
1937
- closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? true : _ref$closeOnOverlayCl,
1938
- _ref$containerRef = _ref.containerRef,
1939
- containerRef = _ref$containerRef === void 0 ? undefined : _ref$containerRef,
1940
- _ref$dangerouslyBypas = _ref.dangerouslyBypassFocusLock,
1941
- dangerouslyBypassFocusLock = _ref$dangerouslyBypas === void 0 ? false : _ref$dangerouslyBypas,
1942
- _ref$dangerouslyBypas2 = _ref.dangerouslyBypassScrollLock,
1943
- dangerouslyBypassScrollLock = _ref$dangerouslyBypas2 === void 0 ? false : _ref$dangerouslyBypas2,
1944
- _ref$hideOverlay = _ref.hideOverlay,
1945
- hideOverlay = _ref$hideOverlay === void 0 ? false : _ref$hideOverlay,
1946
- _ref$initialFocusRef = _ref.initialFocusRef,
1947
- initialFocusRef = _ref$initialFocusRef === void 0 ? undefined : _ref$initialFocusRef,
1948
- isOpen = _ref.isOpen,
1949
- _ref$onDismiss = _ref.onDismiss,
1950
- onDismiss = _ref$onDismiss === void 0 ? undefined : _ref$onDismiss,
1951
- _ref$placement = _ref.placement,
1952
- placement = _ref$placement === void 0 ? 'right' : _ref$placement,
1953
- _ref$title = _ref.title,
1954
- title = _ref$title === void 0 ? undefined : _ref$title,
1955
- _ref$width = _ref.width,
1956
- width = _ref$width === void 0 ? undefined : _ref$width;
1945
+ var _ref3$ariaLabel = _ref3.ariaLabel,
1946
+ ariaLabel = _ref3$ariaLabel === void 0 ? undefined : _ref3$ariaLabel,
1947
+ _ref3$ariaLabelledBy = _ref3.ariaLabelledBy,
1948
+ ariaLabelledBy = _ref3$ariaLabelledBy === void 0 ? undefined : _ref3$ariaLabelledBy,
1949
+ _ref3$allowPinchZoom = _ref3.allowPinchZoom,
1950
+ allowPinchZoom = _ref3$allowPinchZoom === void 0 ? false : _ref3$allowPinchZoom,
1951
+ _ref3$children = _ref3.children,
1952
+ children = _ref3$children === void 0 ? undefined : _ref3$children,
1953
+ _ref3$className = _ref3.className,
1954
+ className = _ref3$className === void 0 ? undefined : _ref3$className,
1955
+ _ref3$closeOnOverlayC = _ref3.closeOnOverlayClick,
1956
+ closeOnOverlayClick = _ref3$closeOnOverlayC === void 0 ? true : _ref3$closeOnOverlayC,
1957
+ _ref3$containerRef = _ref3.containerRef,
1958
+ containerRef = _ref3$containerRef === void 0 ? undefined : _ref3$containerRef,
1959
+ _ref3$dangerouslyBypa = _ref3.dangerouslyBypassFocusLock,
1960
+ dangerouslyBypassFocusLock = _ref3$dangerouslyBypa === void 0 ? false : _ref3$dangerouslyBypa,
1961
+ _ref3$dangerouslyBypa2 = _ref3.dangerouslyBypassScrollLock,
1962
+ dangerouslyBypassScrollLock = _ref3$dangerouslyBypa2 === void 0 ? false : _ref3$dangerouslyBypa2,
1963
+ _ref3$hideOverlay = _ref3.hideOverlay,
1964
+ hideOverlay = _ref3$hideOverlay === void 0 ? false : _ref3$hideOverlay,
1965
+ _ref3$initialFocusRef = _ref3.initialFocusRef,
1966
+ initialFocusRef = _ref3$initialFocusRef === void 0 ? undefined : _ref3$initialFocusRef,
1967
+ controlledIsOpen = _ref3.isOpen,
1968
+ _ref3$defaultIsOpen = _ref3.defaultIsOpen,
1969
+ defaultIsOpen = _ref3$defaultIsOpen === void 0 ? false : _ref3$defaultIsOpen,
1970
+ _ref3$onDismiss = _ref3.onDismiss,
1971
+ onDismiss = _ref3$onDismiss === void 0 ? undefined : _ref3$onDismiss,
1972
+ _ref3$placement = _ref3.placement,
1973
+ placement = _ref3$placement === void 0 ? 'right' : _ref3$placement,
1974
+ _ref3$width = _ref3.width,
1975
+ width = _ref3$width === void 0 ? undefined : _ref3$width;
1976
+ var context = React.useContext(DrawerContext);
1977
+ var isStandalone = !context; // Determine if there's no provider
1978
+ var _useState2 = React.useState(defaultIsOpen),
1979
+ uncontrolledOpen = _useState2[0],
1980
+ setUncontrolledOpen = _useState2[1];
1981
+ var isOpen = isStandalone ? controlledIsOpen != null ? controlledIsOpen : uncontrolledOpen // Use internal or prop-based state
1982
+ : context.open; // Use context-provided state
1983
+ var setOpen = isStandalone ? setUncontrolledOpen // Update internal state
1984
+ : context.setOpen; // Update context state
1985
+ var handleDismiss = React.useCallback(function (event) {
1986
+ setOpen(false); // Update state (context or standalone)
1987
+ onDismiss == null || onDismiss(event); // Trigger external callback
1988
+ }, [setOpen, onDismiss]);
1957
1989
  var activateFocusLock = React.useCallback(function () {
1958
1990
  setTimeout(function () {
1959
1991
  if (initialFocusRef && initialFocusRef.current) {
@@ -1962,49 +1994,9 @@ var Drawer = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
1962
1994
  }, 100);
1963
1995
  }, [initialFocusRef]);
1964
1996
  var dynamicWidth = width;
1965
- var dynamicStyle = (_dynamicStyle = {}, _dynamicStyle['--w'] = dynamicWidth, _dynamicStyle);
1997
+ var dynamicStyle = (_dynamicStyle = {}, _dynamicStyle['--drawer-width'] = dynamicWidth, _dynamicStyle);
1966
1998
  var overlayClassnames = classNames(styles$h.overlay, styles$h.drawer, (_classNames = {}, _classNames[styles$h['hide-overlay']] = hideOverlay, _classNames[styles$h["hide-overlay-" + placement]] = hideOverlay, _classNames['position-fixed'] = containerRef === undefined, _classNames['position-absolute'] = containerRef !== undefined, _classNames));
1967
- var contentClassnames = classNames(styles$h['drawer-content'], styles$h[placement], (_classNames2 = {}, _classNames2[styles$h['hide-overlay']] = hideOverlay, _classNames2['overflow-auto'] = !closeButton && !title, _classNames2.className = className, _classNames2));
1968
- var renderHeader = function renderHeader() {
1969
- if (closeButton && onDismiss && !title) {
1970
- return React.createElement(Box, {
1971
- alignItems: "flex-end",
1972
- justifyContent: "center",
1973
- padding: "md lg"
1974
- }, React.createElement(Button, {
1975
- variant: "tertiary",
1976
- onClick: onDismiss,
1977
- "aria-label": "close",
1978
- type: "button",
1979
- iconPrefix: "remove"
1980
- }));
1981
- }
1982
- if (title) {
1983
- return React.createElement(Box, {
1984
- direction: "row",
1985
- justifyContent: "space-between",
1986
- alignItems: "center",
1987
- padding: {
1988
- base: '2xl',
1989
- tablet: '4xl'
1990
- }
1991
- }, React.createElement(Box, {
1992
- className: styles$h.title,
1993
- fontWeight: "bold"
1994
- }, title), onDismiss && React.createElement(Button, {
1995
- variant: "tertiary",
1996
- onClick: onDismiss,
1997
- "aria-label": "close",
1998
- type: "button",
1999
- iconPrefix: "remove"
2000
- }));
2001
- }
2002
- return null;
2003
- };
2004
- var content = title || closeButton ? React.createElement(Box, {
2005
- flex: "auto",
2006
- overflow: "auto"
2007
- }, children) : children;
1999
+ var contentClassnames = classNames(styles$h['drawer-content'], styles$h[placement], (_classNames2 = {}, _classNames2[styles$h['hide-overlay']] = hideOverlay, _classNames2));
2008
2000
  var parentElement = containerRef != null && containerRef.current ? containerRef.current : document.body;
2009
2001
  var isDisabledFocusLock = hideOverlay || dangerouslyBypassFocusLock;
2010
2002
  var isDisabledRemoveScroll = hideOverlay || dangerouslyBypassScrollLock;
@@ -2022,7 +2014,7 @@ var Drawer = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2022
2014
  isOpen: isOpen,
2023
2015
  overlayClassName: overlayClassnames,
2024
2016
  className: contentClassnames,
2025
- onRequestClose: closeOnOverlayClick ? onDismiss : undefined,
2017
+ onRequestClose: closeOnOverlayClick ? handleDismiss : undefined,
2026
2018
  ariaHideApp: false,
2027
2019
  style: {
2028
2020
  content: dynamicStyle,
@@ -2034,8 +2026,78 @@ var Drawer = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
2034
2026
  }, React.createElement(Box, {
2035
2027
  "aria-label": ariaLabel,
2036
2028
  "aria-labelledby": ariaLabelledBy,
2037
- height: "100%"
2038
- }, renderHeader(), content)))));
2029
+ height: "100",
2030
+ "data-testid": "drawer-content",
2031
+ className: className
2032
+ }, children)))));
2033
+ });
2034
+ var DrawerHeader = /*#__PURE__*/React.forwardRef(function (_ref4, ref) {
2035
+ var props = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);
2036
+ return React.createElement(Box, _extends({
2037
+ ref: ref,
2038
+ "data-drawer": "header",
2039
+ direction: "row",
2040
+ justifyContent: "space-between",
2041
+ alignItems: "center",
2042
+ padding: {
2043
+ base: '2xl 2xl 0 2xl',
2044
+ tablet: '3xl 3xl 0 3xl'
2045
+ }
2046
+ }, props));
2047
+ });
2048
+ DrawerHeader.displayName = 'DrawerHeader';
2049
+ var DrawerTitle = /*#__PURE__*/React.forwardRef(function (_ref5, ref) {
2050
+ var props = _extends({}, (_objectDestructuringEmpty(_ref5), _ref5));
2051
+ return React.createElement(Box, _extends({
2052
+ ref: ref,
2053
+ "data-drawer": "title",
2054
+ fontWeight: "bold"
2055
+ }, props));
2056
+ });
2057
+ var DrawerCloseButton = /*#__PURE__*/React.forwardRef(function (_ref6, ref) {
2058
+ var className = _ref6.className,
2059
+ onClick = _ref6.onClick,
2060
+ onClose = _ref6.onClose,
2061
+ rest = _objectWithoutPropertiesLoose(_ref6, _excluded4$2);
2062
+ var context = React.useContext(DrawerContext);
2063
+ var isStandalone = !context;
2064
+ var handleClick = function handleClick(event) {
2065
+ onClick == null || onClick(event);
2066
+ if (isStandalone) {
2067
+ // Fallback to onClose if provided
2068
+ onClose == null || onClose();
2069
+ } else {
2070
+ // Use context to toggle the drawer
2071
+ context == null || context.toggleDrawer();
2072
+ }
2073
+ };
2074
+ return React.createElement(Button, _extends({
2075
+ variant: "tertiary",
2076
+ "aria-label": "close",
2077
+ type: "button",
2078
+ iconPrefix: "remove",
2079
+ "data-drawer": "close",
2080
+ className: classNames('m-left-auto', className),
2081
+ size: "sm",
2082
+ onClick: handleClick,
2083
+ ref: ref
2084
+ }, rest));
2085
+ });
2086
+ DrawerCloseButton.displayName = 'DrawerCloseButton';
2087
+ var DrawerContent = /*#__PURE__*/React.forwardRef(function (_ref7, ref) {
2088
+ var props = _objectWithoutPropertiesLoose(_ref7, _excluded5$2);
2089
+ return React.createElement(Box, _extends({
2090
+ ref: ref,
2091
+ "data-drawer": "content",
2092
+ flex: "auto",
2093
+ overflow: "auto",
2094
+ alignItems: "flex-start",
2095
+ padding: {
2096
+ base: '2xl',
2097
+ tablet: '3xl'
2098
+ },
2099
+ gap: "md"
2100
+ }, props));
2039
2101
  });
2040
2102
 
2041
2103
  var _excluded$q = ["className", "inset"],
@@ -5298,6 +5360,12 @@ exports.Details = Details;
5298
5360
  exports.DetailsBaseComponent = DetailsBaseComponent;
5299
5361
  exports.DetailsSummary = DetailsSummary;
5300
5362
  exports.Drawer = Drawer;
5363
+ exports.DrawerCloseButton = DrawerCloseButton;
5364
+ exports.DrawerContent = DrawerContent;
5365
+ exports.DrawerHeader = DrawerHeader;
5366
+ exports.DrawerProvider = DrawerProvider;
5367
+ exports.DrawerTitle = DrawerTitle;
5368
+ exports.DrawerTrigger = DrawerTrigger;
5301
5369
  exports.DropdownMenu = DropdownMenu;
5302
5370
  exports.DropdownMenuContent = DropdownMenuContent;
5303
5371
  exports.DropdownMenuGroup = DropdownMenuGroup;
@@ -5372,6 +5440,7 @@ exports.boxPropsKeys = boxPropsKeys;
5372
5440
  exports.createRectRef = createRectRef;
5373
5441
  exports.toast = toast;
5374
5442
  exports.useBreakpoint = useBreakpoint;
5443
+ exports.useDrawer = useDrawer;
5375
5444
  exports.useIsMobile = useIsMobile;
5376
5445
  exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
5377
5446
  exports.useOpenClose = useOpenClose;