@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.
@@ -1,8 +1,9 @@
1
1
  'use client';
2
2
  import * as React from 'react';
3
- import React__default, { forwardRef, Children, createElement, cloneElement, useRef, useState, useEffect, isValidElement, useCallback, useMemo, useLayoutEffect, createContext } from 'react';
3
+ import React__default, { forwardRef, Children, createElement, cloneElement, useRef, useState, useEffect, isValidElement, useContext, useCallback, useMemo, createContext, useLayoutEffect } from 'react';
4
4
  import classNames from 'classnames';
5
5
  import icons from '@hyphen/hyphen-design-tokens/build/assets/icons/react';
6
+ import { Slottable, Slot } from '@radix-ui/react-slot';
6
7
  import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
7
8
  import format from 'date-fns/format';
8
9
  import ReactDatePicker from 'react-datepicker';
@@ -20,7 +21,6 @@ import Select, { components } from 'react-select';
20
21
  import AsyncCreatableSelect from 'react-select/async-creatable';
21
22
  import AsyncSelect from 'react-select/async';
22
23
  import CreatableSelect from 'react-select/creatable';
23
- import { Slot } from '@radix-ui/react-slot';
24
24
  import { v4 } from 'uuid';
25
25
 
26
26
  function _extends() {
@@ -251,7 +251,7 @@ Component, props, getDefault) {
251
251
 
252
252
  var styles$w = {"box-transition":"Box-module_box-transition__eQx8C"};
253
253
 
254
- 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"];
254
+ 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"];
255
255
  /**
256
256
  * A `<Box>` is a layout component to build UIs with consistent padding and spacing between
257
257
  * elements.
@@ -338,7 +338,7 @@ var Box = /*#__PURE__*/forwardRef(function (_ref, ref) {
338
338
  width = _ref$width === void 0 ? undefined : _ref$width,
339
339
  _ref$zIndex = _ref.zIndex,
340
340
  zIndex = _ref$zIndex === void 0 ? undefined : _ref$zIndex,
341
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$L);
341
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$M);
342
342
  var heightCss = getDimensionCss('h', height);
343
343
  var widthCss = getDimensionCss('w', width);
344
344
  var maxHeightCss = getDimensionCss('mh', maxHeight);
@@ -489,14 +489,14 @@ var Box = /*#__PURE__*/forwardRef(function (_ref, ref) {
489
489
  });
490
490
  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'];
491
491
 
492
- var _excluded$K = ["className", "name", "color", "size"];
492
+ var _excluded$L = ["className", "name", "color", "size"];
493
493
  var Icon = /*#__PURE__*/forwardRef(function (_ref, ref) {
494
494
  var _ref$className = _ref.className,
495
495
  className = _ref$className === void 0 ? undefined : _ref$className,
496
496
  name = _ref.name,
497
497
  color = _ref.color,
498
498
  size = _ref.size,
499
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$K);
499
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$L);
500
500
  var IconComponent = icons[name];
501
501
  if (!IconComponent) console.error("Icon '" + name + "' not found"); // eslint-disable-line no-console
502
502
  var iconClasses = classNames(className, generateResponsiveClasses('font-color', color), generateResponsiveClasses('font-size', size));
@@ -535,7 +535,7 @@ var ALERT_ICONS_MAP = {
535
535
  }
536
536
  };
537
537
 
538
- var _excluded$J = ["className", "closeText", "hasIcon", "isCompact", "isClosable", "message", "onClose", "render", "title", "variant"];
538
+ var _excluded$K = ["className", "closeText", "hasIcon", "isCompact", "isClosable", "message", "onClose", "render", "title", "variant"];
539
539
  var Alert = function Alert(_ref) {
540
540
  var _ref$className = _ref.className,
541
541
  className = _ref$className === void 0 ? '' : _ref$className,
@@ -557,7 +557,7 @@ var Alert = function Alert(_ref) {
557
557
  title = _ref$title === void 0 ? '' : _ref$title,
558
558
  _ref$variant = _ref.variant,
559
559
  variant = _ref$variant === void 0 ? 'default' : _ref$variant,
560
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$J);
560
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$K);
561
561
  var handleClose = function handleClose(event) {
562
562
  if (!onClose) return;
563
563
  onClose(event);
@@ -611,7 +611,7 @@ var Alert = function Alert(_ref) {
611
611
 
612
612
  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"};
613
613
 
614
- var _excluded$I = ["className", "message", "variant", "size"];
614
+ var _excluded$J = ["className", "message", "variant", "size"];
615
615
  var Badge = function Badge(_ref) {
616
616
  var _classNames;
617
617
  var _ref$className = _ref.className,
@@ -622,7 +622,7 @@ var Badge = function Badge(_ref) {
622
622
  variant = _ref$variant === void 0 ? 'light-grey' : _ref$variant,
623
623
  _ref$size = _ref.size,
624
624
  size = _ref$size === void 0 ? 'md' : _ref$size,
625
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$I);
625
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$J);
626
626
  var responsiveClasses = generateResponsiveClasses('size', size).map(function (c) {
627
627
  return styles$u[c];
628
628
  });
@@ -726,99 +726,47 @@ var Spinner = function Spinner(_ref) {
726
726
  }))));
727
727
  };
728
728
 
729
- var isModifiedEvent = function isModifiedEvent(e) {
730
- return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);
731
- };
732
- /**
733
- * Due to react-router's handling of custom components used in RR <Link>
734
- * we must add this validation that ensures the router will execute the passed `navigate`
735
- * prop, thus navigating the user without triggering a refresh.
736
- *
737
- * SOURCES:
738
- * https://github.com/ReactTraining/react-router/issues/7727
739
- * https://github.com/ReactTraining/react-router/issues/7761
740
- * */
741
- // eslint-disable-next-line import/prefer-default-export
742
- var handleReactRouterClick = function handleReactRouterClick(event, onClick, target, navigate) {
743
- if (onClick) onClick(event);
744
- if (!event.defaultPrevented &&
745
- // onClick prevented default
746
- event.button === 0 && (
747
- // ignore everything but left clicks
748
- !target || target === '_self') &&
749
- // let browser handle "target=_blank" etc.
750
- !isModifiedEvent(event) &&
751
- // ignore clicks with modifier keys
752
- navigate) {
753
- event.preventDefault();
754
- navigate();
755
- }
756
- };
757
-
758
729
  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"};
759
730
 
760
- var _excluded$H = ["children", "as", "className", "fullWidth", "id", "href", "iconPrefix", "iconSuffix", "isDisabled", "isLoading", "navigate", "onClick", "onFocus", "onBlur", "shadow", "size", "tabIndex", "target", "type", "variant"];
731
+ var _excluded$I = ["asChild", "children", "className", "fullWidth", "iconPrefix", "iconSuffix", "isDisabled", "isLoading", "onClick", "onBlur", "onFocus", "shadow", "size", "variant"];
761
732
  var Button = /*#__PURE__*/forwardRef(function (_ref, ref) {
762
- var _classNames, _extends2;
763
- var _ref$children = _ref.children,
764
- children = _ref$children === void 0 ? undefined : _ref$children,
765
- _ref$as = _ref.as,
766
- as = _ref$as === void 0 ? 'button' : _ref$as,
767
- _ref$className = _ref.className,
768
- className = _ref$className === void 0 ? '' : _ref$className,
769
- _ref$fullWidth = _ref.fullWidth,
770
- fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
771
- _ref$id = _ref.id,
772
- id = _ref$id === void 0 ? undefined : _ref$id,
773
- _ref$href = _ref.href,
774
- href = _ref$href === void 0 ? undefined : _ref$href,
775
- _ref$iconPrefix = _ref.iconPrefix,
776
- iconPrefix = _ref$iconPrefix === void 0 ? undefined : _ref$iconPrefix,
777
- _ref$iconSuffix = _ref.iconSuffix,
778
- iconSuffix = _ref$iconSuffix === void 0 ? undefined : _ref$iconSuffix,
779
- _ref$isDisabled = _ref.isDisabled,
780
- isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
781
- _ref$isLoading = _ref.isLoading,
782
- isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
783
- _ref$navigate = _ref.navigate,
784
- navigate = _ref$navigate === void 0 ? undefined : _ref$navigate,
785
- _ref$onClick = _ref.onClick,
786
- _onClick = _ref$onClick === void 0 ? undefined : _ref$onClick,
787
- _ref$onFocus = _ref.onFocus,
788
- onFocus = _ref$onFocus === void 0 ? undefined : _ref$onFocus,
789
- _ref$onBlur = _ref.onBlur,
790
- onBlur = _ref$onBlur === void 0 ? undefined : _ref$onBlur,
791
- _ref$shadow = _ref.shadow,
792
- shadow = _ref$shadow === void 0 ? undefined : _ref$shadow,
733
+ var _classNames;
734
+ var asChild = _ref.asChild,
735
+ children = _ref.children,
736
+ className = _ref.className,
737
+ fullWidth = _ref.fullWidth,
738
+ iconPrefix = _ref.iconPrefix,
739
+ iconSuffix = _ref.iconSuffix,
740
+ isDisabled = _ref.isDisabled,
741
+ isLoading = _ref.isLoading,
742
+ onClick = _ref.onClick,
743
+ onBlur = _ref.onBlur,
744
+ onFocus = _ref.onFocus,
745
+ shadow = _ref.shadow,
793
746
  _ref$size = _ref.size,
794
747
  size = _ref$size === void 0 ? 'md' : _ref$size,
795
- _ref$tabIndex = _ref.tabIndex,
796
- tabIndex = _ref$tabIndex === void 0 ? undefined : _ref$tabIndex,
797
- _ref$target = _ref.target,
798
- target = _ref$target === void 0 ? undefined : _ref$target,
799
- _ref$type = _ref.type,
800
- type = _ref$type === void 0 ? undefined : _ref$type,
801
748
  _ref$variant = _ref.variant,
802
749
  variant = _ref$variant === void 0 ? 'primary' : _ref$variant,
803
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$H);
750
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$I);
804
751
  var disabled = isLoading || isDisabled;
805
752
  var responsiveClasses = generateResponsiveClasses('size', size).map(function (c) {
806
753
  return styles$s[c];
807
- });
754
+ }).filter(Boolean);
808
755
  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));
809
- var handleClick = handleReactRouterClick;
810
- var handleFocus = function handleFocus(event) {
811
- if (onFocus) onFocus(event);
812
- };
813
- var handleBlur = function handleBlur(event) {
814
- if (onBlur) onBlur(event);
815
- };
816
- var buttonContent = iconPrefix || iconSuffix ? React__default.createElement(Box, {
817
- display: "inline-flex",
818
- direction: "row",
819
- alignItems: "center",
820
- gap: "md"
821
- }, isLoading && React__default.createElement(Spinner, {
756
+ var handleClick = !disabled ? onClick : undefined;
757
+ var handleBlur = !disabled ? onBlur : undefined;
758
+ var handleFocus = !disabled ? onFocus : undefined;
759
+ var Comp = asChild ? Slot : 'button';
760
+ return React__default.createElement(Comp, _extends({}, disabled && {
761
+ 'aria-disabled': true
762
+ }, {
763
+ disabled: disabled,
764
+ className: buttonClasses,
765
+ onClick: handleClick,
766
+ onBlur: handleBlur,
767
+ onFocus: handleFocus,
768
+ ref: ref
769
+ }, restProps), isLoading && React__default.createElement(Spinner, {
822
770
  className: styles$s['spinner-wrapper']
823
771
  }), iconPrefix && React__default.createElement(Icon, {
824
772
  className: styles$s.label,
@@ -827,34 +775,20 @@ var Button = /*#__PURE__*/forwardRef(function (_ref, ref) {
827
775
  focusable: "false",
828
776
  "data-testid": "prefixIcon",
829
777
  size: size === 'md' ? 'sm' : size
830
- }), children && React__default.createElement("span", {
778
+ }), children && React__default.createElement(Slottable, null, asChild ? children : React__default.createElement("span", {
831
779
  className: styles$s.label
832
- }, children), iconSuffix && React__default.createElement(Icon, {
780
+ }, children)), iconSuffix && React__default.createElement(Icon, {
833
781
  className: styles$s.label,
834
782
  name: iconSuffix,
835
783
  "aria-hidden": "true",
836
784
  focusable: "false",
837
785
  "data-testid": "suffixIcon",
838
786
  size: size === 'md' ? 'sm' : size
839
- })) : React__default.createElement(React__default.Fragment, null, isLoading && React__default.createElement(Spinner, {
840
- className: styles$s['spinner-wrapper']
841
- }), function () {
842
- if (children) {
843
- return React__default.createElement("span", {
844
- className: styles$s.label
845
- }, children);
846
- }
847
- return null;
848
- }());
849
- var buttonElement = getElementType(Button, {
850
- as: as
851
- });
852
- return 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) {
853
- return handleClick(event, _onClick, target, navigate);
854
- }, _extends2.onFocus = handleFocus, _extends2.ref = ref, _extends2.type = type || (as !== 'a' && !href ? 'button' : undefined), _extends2.tabIndex = tabIndex, _extends2), restProps), buttonContent);
787
+ }));
855
788
  });
789
+ Button.displayName = 'Button';
856
790
 
857
- var _excluded$G = ["background", "borderColor", "borderWidth", "children", "display", "padding"];
791
+ var _excluded$H = ["background", "borderColor", "borderWidth", "children", "display", "padding"];
858
792
  var CardFooter = function CardFooter(_ref) {
859
793
  var _ref$background = _ref.background,
860
794
  background = _ref$background === void 0 ? 'secondary' : _ref$background,
@@ -868,7 +802,7 @@ var CardFooter = function CardFooter(_ref) {
868
802
  display = _ref$display === void 0 ? 'block' : _ref$display,
869
803
  _ref$padding = _ref.padding,
870
804
  padding = _ref$padding === void 0 ? '2xl' : _ref$padding,
871
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$G);
805
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$H);
872
806
  return React__default.createElement(Box, _extends({
873
807
  display: display,
874
808
  padding: padding,
@@ -889,7 +823,7 @@ var HEADING_DEFAULT_SIZE_MAP = {
889
823
 
890
824
  var styles$r = {"heading":"Heading-module_heading__zKyv7"};
891
825
 
892
- var _excluded$F = ["as", "children", "className", "color", "size"];
826
+ var _excluded$G = ["as", "children", "className", "color", "size"];
893
827
  var Heading = function Heading(_ref) {
894
828
  var _classNames;
895
829
  var _ref$as = _ref.as,
@@ -898,7 +832,7 @@ var Heading = function Heading(_ref) {
898
832
  className = _ref.className,
899
833
  color = _ref.color,
900
834
  size = _ref.size,
901
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$F);
835
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$G);
902
836
  var element = getElementType(Heading, {
903
837
  as: as
904
838
  });
@@ -909,7 +843,7 @@ var Heading = function Heading(_ref) {
909
843
  }, restProps), children);
910
844
  };
911
845
 
912
- var _excluded$E = ["childGap", "children", "className", "display", "padding", "title"];
846
+ var _excluded$F = ["childGap", "children", "className", "display", "padding", "title"];
913
847
  var CardHeader = function CardHeader(_ref) {
914
848
  var _ref$childGap = _ref.childGap,
915
849
  childGap = _ref$childGap === void 0 ? '2xs' : _ref$childGap,
@@ -923,7 +857,7 @@ var CardHeader = function CardHeader(_ref) {
923
857
  padding = _ref$padding === void 0 ? '2xl' : _ref$padding,
924
858
  _ref$title = _ref.title,
925
859
  title = _ref$title === void 0 ? null : _ref$title,
926
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$E);
860
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$F);
927
861
  var renderTitle = function renderTitle() {
928
862
  return typeof title === 'string' ? React__default.createElement(Heading, {
929
863
  size: "sm",
@@ -940,7 +874,7 @@ var CardHeader = function CardHeader(_ref) {
940
874
 
941
875
  var styles$q = {"card-section-border":"Card-module_card-section-border__OefDX"};
942
876
 
943
- var _excluded$D = ["background", "borderColor", "borderWidth", "children", "childGap", "gap", "className", "display", "padding", "subdued", "title"];
877
+ var _excluded$E = ["background", "borderColor", "borderWidth", "children", "childGap", "gap", "className", "display", "padding", "subdued", "title"];
944
878
  var CardSection = function CardSection(_ref) {
945
879
  var _classNames;
946
880
  var _ref$background = _ref.background,
@@ -965,7 +899,7 @@ var CardSection = function CardSection(_ref) {
965
899
  subdued = _ref$subdued === void 0 ? undefined : _ref$subdued,
966
900
  _ref$title = _ref.title,
967
901
  title = _ref$title === void 0 ? undefined : _ref$title,
968
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$D);
902
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$E);
969
903
  var renderTitle = typeof title === 'string' ? React__default.createElement(Box, {
970
904
  className: "m-bottom-md"
971
905
  }, React__default.createElement(Box, {
@@ -988,7 +922,7 @@ var CardSection = function CardSection(_ref) {
988
922
  }, children));
989
923
  };
990
924
 
991
- var _excluded$C = ["children", "subdued", "overflow", "display", "width"];
925
+ var _excluded$D = ["children", "subdued", "overflow", "display", "width"];
992
926
  var CardBaseComponent = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
993
927
  var children = _ref.children,
994
928
  subdued = _ref.subdued,
@@ -998,7 +932,7 @@ var CardBaseComponent = /*#__PURE__*/React__default.forwardRef(function (_ref, r
998
932
  display = _ref$display === void 0 ? 'block' : _ref$display,
999
933
  _ref$width = _ref.width,
1000
934
  width = _ref$width === void 0 ? '100' : _ref$width,
1001
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$C);
935
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$D);
1002
936
  return React__default.createElement(Box, _extends({
1003
937
  background: subdued ? 'secondary' : 'primary',
1004
938
  borderWidth: "sm",
@@ -1021,7 +955,7 @@ var Card = /*#__PURE__*/function () {
1021
955
  return Card;
1022
956
  }();
1023
957
 
1024
- var _excluded$B = ["className", "error", "isChecked", "isDisabled", "isIndeterminate"];
958
+ var _excluded$C = ["className", "error", "isChecked", "isDisabled", "isIndeterminate"];
1025
959
  var CheckboxIcon = function CheckboxIcon(_ref) {
1026
960
  var _ref$className = _ref.className,
1027
961
  className = _ref$className === void 0 ? undefined : _ref$className,
@@ -1033,7 +967,7 @@ var CheckboxIcon = function CheckboxIcon(_ref) {
1033
967
  isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
1034
968
  _ref$isIndeterminate = _ref.isIndeterminate,
1035
969
  isIndeterminate = _ref$isIndeterminate === void 0 ? false : _ref$isIndeterminate,
1036
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$B);
970
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$C);
1037
971
  var color = 'base';
1038
972
  var name = 'checkbox-btn';
1039
973
  if (isChecked) name = 'checkbox-btn-checked';else name = 'checkbox-btn';
@@ -1058,7 +992,7 @@ var CheckboxIcon = function CheckboxIcon(_ref) {
1058
992
 
1059
993
  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"};
1060
994
 
1061
- var _excluded$A = ["className", "display", "id", "isChecked", "label", "labelledby", "onChange", "error", "isDisabled", "isHidden", "isIndeterminate", "isRequired", "onBlur", "onFocus", "size", "value"];
995
+ var _excluded$B = ["className", "display", "id", "isChecked", "label", "labelledby", "onChange", "error", "isDisabled", "isHidden", "isIndeterminate", "isRequired", "onBlur", "onFocus", "size", "value"];
1062
996
  var Checkbox = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
1063
997
  var _ref2;
1064
998
  var _ref$className = _ref.className,
@@ -1088,7 +1022,7 @@ var Checkbox = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
1088
1022
  size = _ref$size === void 0 ? 'md' : _ref$size,
1089
1023
  _ref$value = _ref.value,
1090
1024
  value = _ref$value === void 0 ? undefined : _ref$value,
1091
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$A);
1025
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$B);
1092
1026
  var inputRef = React__default.useRef(null);
1093
1027
  React__default.useEffect(function () {
1094
1028
  if (inputRef != null && inputRef.current) {
@@ -1177,7 +1111,7 @@ var HelpText = /*#__PURE__*/forwardRef(function (_ref, ref) {
1177
1111
  }, children);
1178
1112
  });
1179
1113
 
1180
- var _excluded$z = ["children", "inputId", "className", "display", "helpText", "isDisabled", "isFieldRequired", "isRadioInputLabel", "requiredIndicator", "margin", "padding"];
1114
+ var _excluded$A = ["children", "inputId", "className", "display", "helpText", "isDisabled", "isFieldRequired", "isRadioInputLabel", "requiredIndicator", "margin", "padding"];
1181
1115
  var FormLabel = function FormLabel(_ref) {
1182
1116
  var _classNames;
1183
1117
  var children = _ref.children,
@@ -1199,7 +1133,7 @@ var FormLabel = function FormLabel(_ref) {
1199
1133
  margin = _ref$margin === void 0 ? '0' : _ref$margin,
1200
1134
  _ref$padding = _ref.padding,
1201
1135
  padding = _ref$padding === void 0 ? '0' : _ref$padding,
1202
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$z);
1136
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$A);
1203
1137
  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));
1204
1138
  return React__default.createElement(Box, _extends({
1205
1139
  as: "label",
@@ -1212,7 +1146,7 @@ var FormLabel = function FormLabel(_ref) {
1212
1146
  }, restProps), children, isFieldRequired && requiredIndicator && React__default.createElement("span", null, requiredIndicator), helpText && React__default.createElement(HelpText, null, helpText));
1213
1147
  };
1214
1148
 
1215
- var _excluded$y = ["id", "isChecked", "label", "onChange", "className", "error", "hideLabel", "helpText", "isDisabled", "isIndeterminate", "isRequired", "onBlur", "onFocus", "requiredIndicator", "size"];
1149
+ var _excluded$z = ["id", "isChecked", "label", "onChange", "className", "error", "hideLabel", "helpText", "isDisabled", "isIndeterminate", "isRequired", "onBlur", "onFocus", "requiredIndicator", "size"];
1216
1150
  var labelMarginSizeMap = {
1217
1151
  sm: '2xs 0 0 0',
1218
1152
  md: 'xs 0 0 0',
@@ -1257,7 +1191,7 @@ var CheckboxInput = function CheckboxInput(_ref2) {
1257
1191
  requiredIndicator = _ref2$requiredIndicat === void 0 ? ' *' : _ref2$requiredIndicat,
1258
1192
  _ref2$size = _ref2.size,
1259
1193
  size = _ref2$size === void 0 ? 'md' : _ref2$size,
1260
- restProps = _objectWithoutPropertiesLoose(_ref2, _excluded$y);
1194
+ restProps = _objectWithoutPropertiesLoose(_ref2, _excluded$z);
1261
1195
  var handleBlur = function handleBlur(event) {
1262
1196
  if (onBlur) onBlur(event);
1263
1197
  };
@@ -1305,7 +1239,7 @@ var CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;
1305
1239
 
1306
1240
  var styles$l = {};
1307
1241
 
1308
- var _excluded$x = ["children", "dayClassName", "maxDate", "minDate", "monthsShown", "openToDate", "startDate", "selected", "selectsRange", "showTwoColumnMonthYearPicker", "showFullMonthYearPicker", "showMonthYearPicker", "className", "formatWeekDay"];
1242
+ var _excluded$y = ["children", "dayClassName", "maxDate", "minDate", "monthsShown", "openToDate", "startDate", "selected", "selectsRange", "showTwoColumnMonthYearPicker", "showFullMonthYearPicker", "showMonthYearPicker", "className", "formatWeekDay"];
1309
1243
  var DatePicker = function DatePicker(_ref) {
1310
1244
  var _ref$children = _ref.children,
1311
1245
  children = _ref$children === void 0 ? null : _ref$children,
@@ -1337,7 +1271,7 @@ var DatePicker = function DatePicker(_ref) {
1337
1271
  formatWeekDay = _ref$formatWeekDay === void 0 ? function (formattedDate) {
1338
1272
  return formattedDate[0];
1339
1273
  } : _ref$formatWeekDay,
1340
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$x);
1274
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$y);
1341
1275
  var datePickerClasses = classNames(styles$l['react-datepicker'], className);
1342
1276
  return React__default.createElement(ReactDatePicker, _extends({
1343
1277
  inline: true,
@@ -1357,7 +1291,7 @@ var DatePicker = function DatePicker(_ref) {
1357
1291
  }, restProps), children);
1358
1292
  };
1359
1293
 
1360
- var _excluded$w = ["label", "hideLabel", "children", "error", "id", "isRequired", "helpText", "isDisabled", "requiredIndicator", "width"];
1294
+ var _excluded$x = ["label", "hideLabel", "children", "error", "id", "isRequired", "helpText", "isDisabled", "requiredIndicator", "width"];
1361
1295
  var FormControl = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
1362
1296
  var label = _ref.label,
1363
1297
  hideLabel = _ref.hideLabel,
@@ -1370,7 +1304,7 @@ var FormControl = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
1370
1304
  requiredIndicator = _ref.requiredIndicator,
1371
1305
  _ref$width = _ref.width,
1372
1306
  width = _ref$width === void 0 ? '100' : _ref$width,
1373
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$w);
1307
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$x);
1374
1308
  var labelProps = {
1375
1309
  inputId: id,
1376
1310
  helpText: helpText,
@@ -1398,7 +1332,7 @@ function getAutoCompleteValue(value) {
1398
1332
 
1399
1333
  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"};
1400
1334
 
1401
- 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"];
1335
+ 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"];
1402
1336
  var TextInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
1403
1337
  var _ref2;
1404
1338
  var id = _ref.id,
@@ -1442,7 +1376,7 @@ var TextInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
1442
1376
  size = _ref$size === void 0 ? 'md' : _ref$size,
1443
1377
  _ref$type = _ref.type,
1444
1378
  type = _ref$type === void 0 ? 'text' : _ref$type,
1445
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$v);
1379
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$w);
1446
1380
  var responsiveClasses = generateResponsiveClasses('size', size);
1447
1381
  var inputWrapperClasses = classNames.apply(void 0, ['hyphen-components__variables__form-control', styles$k['text-input-wrapper']].concat(responsiveClasses.map(function (c) {
1448
1382
  return styles$k[c];
@@ -1587,11 +1521,14 @@ var BREAKPOINTS = /*#__PURE__*/[].concat(Object.entries(designTokens.size.breakp
1587
1521
  minWidth: parseInt(data['value'], 10)
1588
1522
  };
1589
1523
  }
1524
+ return undefined;
1525
+ }).filter(function (breakpoint) {
1526
+ return breakpoint !== undefined;
1590
1527
  });
1591
1528
  var Z_INDEX_VALUES = designTokens.size['z-index'];
1592
1529
  // export const BOX_SHADOW_VALUES = designTokens.size['box-shadow'];
1593
1530
 
1594
- var _excluded$u = ["className", "isOpen", "children", "content", "arrowColor", "contentContainerProps", "hasArrow", "offsetFromTarget", "onClickOutside", "placement", "withPortal", "portalTarget", "trapFocus"];
1531
+ var _excluded$v = ["className", "isOpen", "children", "content", "arrowColor", "contentContainerProps", "hasArrow", "offsetFromTarget", "onClickOutside", "placement", "withPortal", "portalTarget", "trapFocus"];
1595
1532
  var contentContainerDefaults = {
1596
1533
  background: 'primary',
1597
1534
  padding: 'sm',
@@ -1620,7 +1557,7 @@ var Popover = function Popover(_ref) {
1620
1557
  portalTarget = _ref.portalTarget,
1621
1558
  _ref$trapFocus = _ref.trapFocus,
1622
1559
  trapFocus = _ref$trapFocus === void 0 ? false : _ref$trapFocus,
1623
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$u);
1560
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$v);
1624
1561
  var triggerRef = useRef(null);
1625
1562
  var popperRef = useRef(null);
1626
1563
  var _useState = useState(null),
@@ -1726,7 +1663,7 @@ var Popover = function Popover(_ref) {
1726
1663
  withPortal && portalTarget ? createPortal(renderPopperContent(), portalTarget) : renderPopperContent()));
1727
1664
  };
1728
1665
 
1729
- var _excluded$t = ["datePickerProps", "textInputProps", "dateFormat", "dateOptions", "popoverProps"];
1666
+ var _excluded$u = ["datePickerProps", "textInputProps", "dateFormat", "dateOptions", "popoverProps"];
1730
1667
  var defaultDatePickerProps = {
1731
1668
  selected: null,
1732
1669
  selectsRange: false
@@ -1746,7 +1683,7 @@ var DateInput = function DateInput(_ref) {
1746
1683
  dateOptions = _ref$dateOptions === void 0 ? undefined : _ref$dateOptions,
1747
1684
  _ref$popoverProps = _ref.popoverProps,
1748
1685
  popoverProps = _ref$popoverProps === void 0 ? _extends({}, defaultPopoverProps) : _ref$popoverProps,
1749
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$t);
1686
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$u);
1750
1687
  var mergedDatePickerProps = _extends({}, defaultDatePickerProps, datePickerProps);
1751
1688
  var mergedPopoverProps = _extends({}, defaultPopoverProps, popoverProps);
1752
1689
  var mergedTextInputProps = _extends({}, defaultTextInputProps, textInputProps);
@@ -1823,14 +1760,14 @@ var DateInput = function DateInput(_ref) {
1823
1760
  var ENTER = 13;
1824
1761
  var SPACE = 32;
1825
1762
 
1826
- var _excluded$s = ["children", "display", "isDetailsOpen", "onToggle"];
1763
+ var _excluded$t = ["children", "display", "isDetailsOpen", "onToggle"];
1827
1764
  var DetailsSummary = function DetailsSummary(_ref) {
1828
1765
  var children = _ref.children,
1829
1766
  _ref$display = _ref.display,
1830
1767
  display = _ref$display === void 0 ? 'block' : _ref$display,
1831
1768
  isDetailsOpen = _ref.isDetailsOpen,
1832
1769
  onToggle = _ref.onToggle,
1833
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$s);
1770
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$t);
1834
1771
  var handleClick = function handleClick(event) {
1835
1772
  // Needed to avoid default `details` behavior on a click event and keep this as controlled component.
1836
1773
  event.preventDefault();
@@ -1868,14 +1805,14 @@ var DetailsSummary = function DetailsSummary(_ref) {
1868
1805
 
1869
1806
  var styles$i = {"details-reset":"Details-module_details-reset__HWtSD"};
1870
1807
 
1871
- var _excluded$r = ["children", "className", "display", "isOpen"];
1808
+ var _excluded$s = ["children", "className", "display", "isOpen"];
1872
1809
  var DetailsBaseComponent = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
1873
1810
  var children = _ref.children,
1874
1811
  className = _ref.className,
1875
1812
  _ref$display = _ref.display,
1876
1813
  display = _ref$display === void 0 ? 'block' : _ref$display,
1877
1814
  isOpen = _ref.isOpen,
1878
- restProps = _objectWithoutPropertiesLoose(_ref, _excluded$r);
1815
+ restProps = _objectWithoutPropertiesLoose(_ref, _excluded$s);
1879
1816
  var detailsClasses = classNames(className, styles$i['details-reset'], styles$i.details);
1880
1817
  return React__default.createElement(Box, _extends({
1881
1818
  as: "details",
@@ -1895,41 +1832,136 @@ var Details = /*#__PURE__*/function () {
1895
1832
 
1896
1833
  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"};
1897
1834
 
1898
- var Drawer = /*#__PURE__*/forwardRef(function (_ref, ref) {
1835
+ var _excluded$r = ["defaultIsOpen", "open", "onOpenChange", "className", "children"],
1836
+ _excluded2$2 = ["asChild", "onClick"],
1837
+ _excluded3$2 = ["className"],
1838
+ _excluded4$2 = ["className", "onClick", "onClose"],
1839
+ _excluded5$2 = ["className"];
1840
+ var DrawerContext = /*#__PURE__*/createContext(null);
1841
+ function useDrawer() {
1842
+ var context = useContext(DrawerContext);
1843
+ if (!context) {
1844
+ throw new Error('useDrawer must be used within a DrawerProvider.');
1845
+ }
1846
+ return context;
1847
+ }
1848
+ var DrawerProvider = /*#__PURE__*/forwardRef(function (_ref, ref) {
1849
+ var _ref$defaultIsOpen = _ref.defaultIsOpen,
1850
+ defaultIsOpen = _ref$defaultIsOpen === void 0 ? false : _ref$defaultIsOpen,
1851
+ openProp = _ref.open,
1852
+ setOpenProp = _ref.onOpenChange,
1853
+ className = _ref.className,
1854
+ children = _ref.children,
1855
+ props = _objectWithoutPropertiesLoose(_ref, _excluded$r);
1856
+ var _useState = useState(openProp != null ? openProp : defaultIsOpen),
1857
+ _open = _useState[0],
1858
+ _setOpen = _useState[1];
1859
+ var open = openProp != null ? openProp : _open;
1860
+ var setOpen = useCallback(function (value) {
1861
+ var newOpen = typeof value === 'function' ? value(open) : value;
1862
+ if (newOpen !== open) {
1863
+ if (setOpenProp) {
1864
+ setOpenProp(newOpen); // Controlled
1865
+ } else {
1866
+ _setOpen(newOpen); // Uncontrolled
1867
+ }
1868
+ }
1869
+ }, [open, setOpenProp]);
1870
+ var toggleDrawer = useCallback(function () {
1871
+ setOpen(function (prev) {
1872
+ return !prev;
1873
+ });
1874
+ }, [setOpen]);
1875
+ var contextValue = useMemo(function () {
1876
+ return {
1877
+ open: open,
1878
+ setOpen: setOpen,
1879
+ toggleDrawer: toggleDrawer
1880
+ };
1881
+ }, [open, setOpen, toggleDrawer]);
1882
+ return React__default.createElement(DrawerContext.Provider, {
1883
+ value: contextValue
1884
+ }, React__default.createElement("div", _extends({
1885
+ className: classNames('drawer-container', {
1886
+ 'drawer-open': open
1887
+ }, className),
1888
+ ref: ref
1889
+ }, props), children));
1890
+ });
1891
+ DrawerProvider.displayName = 'DrawerProvider';
1892
+ var DrawerTrigger = /*#__PURE__*/React__default.forwardRef(function (_ref2, ref) {
1893
+ var _ref2$asChild = _ref2.asChild,
1894
+ asChild = _ref2$asChild === void 0 ? false : _ref2$asChild,
1895
+ onClick = _ref2.onClick,
1896
+ triggerProps = _objectWithoutPropertiesLoose(_ref2, _excluded2$2);
1897
+ var context = useContext(DrawerContext);
1898
+ var isStandalone = !context;
1899
+ var handleClick = function handleClick(event) {
1900
+ onClick == null || onClick(event);
1901
+ if (!isStandalone) {
1902
+ // Use context to toggle the drawer
1903
+ context == null || context.toggleDrawer();
1904
+ }
1905
+ };
1906
+ var Comp = asChild ? Slot : 'button';
1907
+ return React__default.createElement(Comp, _extends({
1908
+ ref: ref,
1909
+ "data-drawer": "trigger",
1910
+ "aria-haspopup": "dialog",
1911
+ "aria-expanded": context == null ? void 0 : context.open,
1912
+ "data-state": context == null ? void 0 : context.open,
1913
+ "aria-label": "toggle drawer"
1914
+ }, triggerProps, {
1915
+ onClick: handleClick
1916
+ }));
1917
+ });
1918
+ DrawerTrigger.displayName = 'SidebarTrigger';
1919
+ var Drawer = /*#__PURE__*/forwardRef(function (_ref3, ref) {
1899
1920
  var _dynamicStyle, _classNames, _classNames2;
1900
- var _ref$ariaLabel = _ref.ariaLabel,
1901
- ariaLabel = _ref$ariaLabel === void 0 ? undefined : _ref$ariaLabel,
1902
- _ref$ariaLabelledBy = _ref.ariaLabelledBy,
1903
- ariaLabelledBy = _ref$ariaLabelledBy === void 0 ? undefined : _ref$ariaLabelledBy,
1904
- _ref$allowPinchZoom = _ref.allowPinchZoom,
1905
- allowPinchZoom = _ref$allowPinchZoom === void 0 ? false : _ref$allowPinchZoom,
1906
- _ref$children = _ref.children,
1907
- children = _ref$children === void 0 ? undefined : _ref$children,
1908
- _ref$className = _ref.className,
1909
- className = _ref$className === void 0 ? undefined : _ref$className,
1910
- _ref$closeButton = _ref.closeButton,
1911
- closeButton = _ref$closeButton === void 0 ? false : _ref$closeButton,
1912
- _ref$closeOnOverlayCl = _ref.closeOnOverlayClick,
1913
- closeOnOverlayClick = _ref$closeOnOverlayCl === void 0 ? true : _ref$closeOnOverlayCl,
1914
- _ref$containerRef = _ref.containerRef,
1915
- containerRef = _ref$containerRef === void 0 ? undefined : _ref$containerRef,
1916
- _ref$dangerouslyBypas = _ref.dangerouslyBypassFocusLock,
1917
- dangerouslyBypassFocusLock = _ref$dangerouslyBypas === void 0 ? false : _ref$dangerouslyBypas,
1918
- _ref$dangerouslyBypas2 = _ref.dangerouslyBypassScrollLock,
1919
- dangerouslyBypassScrollLock = _ref$dangerouslyBypas2 === void 0 ? false : _ref$dangerouslyBypas2,
1920
- _ref$hideOverlay = _ref.hideOverlay,
1921
- hideOverlay = _ref$hideOverlay === void 0 ? false : _ref$hideOverlay,
1922
- _ref$initialFocusRef = _ref.initialFocusRef,
1923
- initialFocusRef = _ref$initialFocusRef === void 0 ? undefined : _ref$initialFocusRef,
1924
- isOpen = _ref.isOpen,
1925
- _ref$onDismiss = _ref.onDismiss,
1926
- onDismiss = _ref$onDismiss === void 0 ? undefined : _ref$onDismiss,
1927
- _ref$placement = _ref.placement,
1928
- placement = _ref$placement === void 0 ? 'right' : _ref$placement,
1929
- _ref$title = _ref.title,
1930
- title = _ref$title === void 0 ? undefined : _ref$title,
1931
- _ref$width = _ref.width,
1932
- width = _ref$width === void 0 ? undefined : _ref$width;
1921
+ var _ref3$ariaLabel = _ref3.ariaLabel,
1922
+ ariaLabel = _ref3$ariaLabel === void 0 ? undefined : _ref3$ariaLabel,
1923
+ _ref3$ariaLabelledBy = _ref3.ariaLabelledBy,
1924
+ ariaLabelledBy = _ref3$ariaLabelledBy === void 0 ? undefined : _ref3$ariaLabelledBy,
1925
+ _ref3$allowPinchZoom = _ref3.allowPinchZoom,
1926
+ allowPinchZoom = _ref3$allowPinchZoom === void 0 ? false : _ref3$allowPinchZoom,
1927
+ _ref3$children = _ref3.children,
1928
+ children = _ref3$children === void 0 ? undefined : _ref3$children,
1929
+ _ref3$className = _ref3.className,
1930
+ className = _ref3$className === void 0 ? undefined : _ref3$className,
1931
+ _ref3$closeOnOverlayC = _ref3.closeOnOverlayClick,
1932
+ closeOnOverlayClick = _ref3$closeOnOverlayC === void 0 ? true : _ref3$closeOnOverlayC,
1933
+ _ref3$containerRef = _ref3.containerRef,
1934
+ containerRef = _ref3$containerRef === void 0 ? undefined : _ref3$containerRef,
1935
+ _ref3$dangerouslyBypa = _ref3.dangerouslyBypassFocusLock,
1936
+ dangerouslyBypassFocusLock = _ref3$dangerouslyBypa === void 0 ? false : _ref3$dangerouslyBypa,
1937
+ _ref3$dangerouslyBypa2 = _ref3.dangerouslyBypassScrollLock,
1938
+ dangerouslyBypassScrollLock = _ref3$dangerouslyBypa2 === void 0 ? false : _ref3$dangerouslyBypa2,
1939
+ _ref3$hideOverlay = _ref3.hideOverlay,
1940
+ hideOverlay = _ref3$hideOverlay === void 0 ? false : _ref3$hideOverlay,
1941
+ _ref3$initialFocusRef = _ref3.initialFocusRef,
1942
+ initialFocusRef = _ref3$initialFocusRef === void 0 ? undefined : _ref3$initialFocusRef,
1943
+ controlledIsOpen = _ref3.isOpen,
1944
+ _ref3$defaultIsOpen = _ref3.defaultIsOpen,
1945
+ defaultIsOpen = _ref3$defaultIsOpen === void 0 ? false : _ref3$defaultIsOpen,
1946
+ _ref3$onDismiss = _ref3.onDismiss,
1947
+ onDismiss = _ref3$onDismiss === void 0 ? undefined : _ref3$onDismiss,
1948
+ _ref3$placement = _ref3.placement,
1949
+ placement = _ref3$placement === void 0 ? 'right' : _ref3$placement,
1950
+ _ref3$width = _ref3.width,
1951
+ width = _ref3$width === void 0 ? undefined : _ref3$width;
1952
+ var context = useContext(DrawerContext);
1953
+ var isStandalone = !context; // Determine if there's no provider
1954
+ var _useState2 = useState(defaultIsOpen),
1955
+ uncontrolledOpen = _useState2[0],
1956
+ setUncontrolledOpen = _useState2[1];
1957
+ var isOpen = isStandalone ? controlledIsOpen != null ? controlledIsOpen : uncontrolledOpen // Use internal or prop-based state
1958
+ : context.open; // Use context-provided state
1959
+ var setOpen = isStandalone ? setUncontrolledOpen // Update internal state
1960
+ : context.setOpen; // Update context state
1961
+ var handleDismiss = useCallback(function (event) {
1962
+ setOpen(false); // Update state (context or standalone)
1963
+ onDismiss == null || onDismiss(event); // Trigger external callback
1964
+ }, [setOpen, onDismiss]);
1933
1965
  var activateFocusLock = useCallback(function () {
1934
1966
  setTimeout(function () {
1935
1967
  if (initialFocusRef && initialFocusRef.current) {
@@ -1938,49 +1970,9 @@ var Drawer = /*#__PURE__*/forwardRef(function (_ref, ref) {
1938
1970
  }, 100);
1939
1971
  }, [initialFocusRef]);
1940
1972
  var dynamicWidth = width;
1941
- var dynamicStyle = (_dynamicStyle = {}, _dynamicStyle['--w'] = dynamicWidth, _dynamicStyle);
1973
+ var dynamicStyle = (_dynamicStyle = {}, _dynamicStyle['--drawer-width'] = dynamicWidth, _dynamicStyle);
1942
1974
  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));
1943
- 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));
1944
- var renderHeader = function renderHeader() {
1945
- if (closeButton && onDismiss && !title) {
1946
- return React__default.createElement(Box, {
1947
- alignItems: "flex-end",
1948
- justifyContent: "center",
1949
- padding: "md lg"
1950
- }, React__default.createElement(Button, {
1951
- variant: "tertiary",
1952
- onClick: onDismiss,
1953
- "aria-label": "close",
1954
- type: "button",
1955
- iconPrefix: "remove"
1956
- }));
1957
- }
1958
- if (title) {
1959
- return React__default.createElement(Box, {
1960
- direction: "row",
1961
- justifyContent: "space-between",
1962
- alignItems: "center",
1963
- padding: {
1964
- base: '2xl',
1965
- tablet: '4xl'
1966
- }
1967
- }, React__default.createElement(Box, {
1968
- className: styles$h.title,
1969
- fontWeight: "bold"
1970
- }, title), onDismiss && React__default.createElement(Button, {
1971
- variant: "tertiary",
1972
- onClick: onDismiss,
1973
- "aria-label": "close",
1974
- type: "button",
1975
- iconPrefix: "remove"
1976
- }));
1977
- }
1978
- return null;
1979
- };
1980
- var content = title || closeButton ? React__default.createElement(Box, {
1981
- flex: "auto",
1982
- overflow: "auto"
1983
- }, children) : children;
1975
+ var contentClassnames = classNames(styles$h['drawer-content'], styles$h[placement], (_classNames2 = {}, _classNames2[styles$h['hide-overlay']] = hideOverlay, _classNames2));
1984
1976
  var parentElement = containerRef != null && containerRef.current ? containerRef.current : document.body;
1985
1977
  var isDisabledFocusLock = hideOverlay || dangerouslyBypassFocusLock;
1986
1978
  var isDisabledRemoveScroll = hideOverlay || dangerouslyBypassScrollLock;
@@ -1998,7 +1990,7 @@ var Drawer = /*#__PURE__*/forwardRef(function (_ref, ref) {
1998
1990
  isOpen: isOpen,
1999
1991
  overlayClassName: overlayClassnames,
2000
1992
  className: contentClassnames,
2001
- onRequestClose: closeOnOverlayClick ? onDismiss : undefined,
1993
+ onRequestClose: closeOnOverlayClick ? handleDismiss : undefined,
2002
1994
  ariaHideApp: false,
2003
1995
  style: {
2004
1996
  content: dynamicStyle,
@@ -2010,8 +2002,78 @@ var Drawer = /*#__PURE__*/forwardRef(function (_ref, ref) {
2010
2002
  }, React__default.createElement(Box, {
2011
2003
  "aria-label": ariaLabel,
2012
2004
  "aria-labelledby": ariaLabelledBy,
2013
- height: "100%"
2014
- }, renderHeader(), content)))));
2005
+ height: "100",
2006
+ "data-testid": "drawer-content",
2007
+ className: className
2008
+ }, children)))));
2009
+ });
2010
+ var DrawerHeader = /*#__PURE__*/React__default.forwardRef(function (_ref4, ref) {
2011
+ var props = _objectWithoutPropertiesLoose(_ref4, _excluded3$2);
2012
+ return React__default.createElement(Box, _extends({
2013
+ ref: ref,
2014
+ "data-drawer": "header",
2015
+ direction: "row",
2016
+ justifyContent: "space-between",
2017
+ alignItems: "center",
2018
+ padding: {
2019
+ base: '2xl 2xl 0 2xl',
2020
+ tablet: '3xl 3xl 0 3xl'
2021
+ }
2022
+ }, props));
2023
+ });
2024
+ DrawerHeader.displayName = 'DrawerHeader';
2025
+ var DrawerTitle = /*#__PURE__*/React__default.forwardRef(function (_ref5, ref) {
2026
+ var props = _extends({}, (_objectDestructuringEmpty(_ref5), _ref5));
2027
+ return React__default.createElement(Box, _extends({
2028
+ ref: ref,
2029
+ "data-drawer": "title",
2030
+ fontWeight: "bold"
2031
+ }, props));
2032
+ });
2033
+ var DrawerCloseButton = /*#__PURE__*/forwardRef(function (_ref6, ref) {
2034
+ var className = _ref6.className,
2035
+ onClick = _ref6.onClick,
2036
+ onClose = _ref6.onClose,
2037
+ rest = _objectWithoutPropertiesLoose(_ref6, _excluded4$2);
2038
+ var context = useContext(DrawerContext);
2039
+ var isStandalone = !context;
2040
+ var handleClick = function handleClick(event) {
2041
+ onClick == null || onClick(event);
2042
+ if (isStandalone) {
2043
+ // Fallback to onClose if provided
2044
+ onClose == null || onClose();
2045
+ } else {
2046
+ // Use context to toggle the drawer
2047
+ context == null || context.toggleDrawer();
2048
+ }
2049
+ };
2050
+ return React__default.createElement(Button, _extends({
2051
+ variant: "tertiary",
2052
+ "aria-label": "close",
2053
+ type: "button",
2054
+ iconPrefix: "remove",
2055
+ "data-drawer": "close",
2056
+ className: classNames('m-left-auto', className),
2057
+ size: "sm",
2058
+ onClick: handleClick,
2059
+ ref: ref
2060
+ }, rest));
2061
+ });
2062
+ DrawerCloseButton.displayName = 'DrawerCloseButton';
2063
+ var DrawerContent = /*#__PURE__*/React__default.forwardRef(function (_ref7, ref) {
2064
+ var props = _objectWithoutPropertiesLoose(_ref7, _excluded5$2);
2065
+ return React__default.createElement(Box, _extends({
2066
+ ref: ref,
2067
+ "data-drawer": "content",
2068
+ flex: "auto",
2069
+ overflow: "auto",
2070
+ alignItems: "flex-start",
2071
+ padding: {
2072
+ base: '2xl',
2073
+ tablet: '3xl'
2074
+ },
2075
+ gap: "md"
2076
+ }, props));
2015
2077
  });
2016
2078
 
2017
2079
  var _excluded$q = ["className", "inset"],
@@ -5257,5 +5319,5 @@ var useTheme = function useTheme() {
5257
5319
  return context;
5258
5320
  };
5259
5321
 
5260
- export { Alert, Badge, Box, Button, Card, CardBaseComponent, Checkbox, CheckboxInput, Collapsible, CollapsibleContent, CollapsibleTrigger, DateInput, DatePicker, Details, DetailsBaseComponent, DetailsSummary, Drawer, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FormControl, FormLabel, FormikCheckboxInput, FormikRadioGroup, FormikSelectInput, FormikSelectInputInset, FormikSelectInputNative, FormikTextInput, FormikTextInputInset, FormikTextareaInput, FormikTextareaInputInset, FormikTimePicker, FormikTimePickerNative, FormikToggle, Heading, Icon, Modal, ModalBaseComponent, Pagination, Popover, RadioGroup, RangeInput, ResponsiveContext, ResponsiveProvider, SelectInput, SelectInputInset, SelectInputNative, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarTrigger, Spinner, Table, TextInput, TextInputInset, TextareaInput, TextareaInputInset, ThemeProvider, ThemeProviderContext, TimePicker, TimePickerNative, ToastContainer, Toggle, boxPropsKeys, createRectRef, toast, useBreakpoint, useIsMobile, useIsomorphicLayoutEffect, useOpenClose, useSidebar, useTheme, useToasts, useWindowSize };
5322
+ export { Alert, Badge, Box, Button, Card, CardBaseComponent, Checkbox, CheckboxInput, Collapsible, CollapsibleContent, CollapsibleTrigger, DateInput, DatePicker, Details, DetailsBaseComponent, DetailsSummary, Drawer, DrawerCloseButton, DrawerContent, DrawerHeader, DrawerProvider, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FormControl, FormLabel, FormikCheckboxInput, FormikRadioGroup, FormikSelectInput, FormikSelectInputInset, FormikSelectInputNative, FormikTextInput, FormikTextInputInset, FormikTextareaInput, FormikTextareaInputInset, FormikTimePicker, FormikTimePickerNative, FormikToggle, Heading, Icon, Modal, ModalBaseComponent, Pagination, Popover, RadioGroup, RangeInput, ResponsiveContext, ResponsiveProvider, SelectInput, SelectInputInset, SelectInputNative, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupLabel, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarTrigger, Spinner, Table, TextInput, TextInputInset, TextareaInput, TextareaInputInset, ThemeProvider, ThemeProviderContext, TimePicker, TimePickerNative, ToastContainer, Toggle, boxPropsKeys, createRectRef, toast, useBreakpoint, useDrawer, useIsMobile, useIsomorphicLayoutEffect, useOpenClose, useSidebar, useTheme, useToasts, useWindowSize };
5261
5323
  //# sourceMappingURL=hyphen-components.esm.js.map