@conveyorhq/arrow-ds 1.59.0 → 1.60.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.
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@conveyorhq/arrow-ds",
3
3
  "author": "Conveyor",
4
4
  "license": "MIT",
5
- "version": "1.59.0",
5
+ "version": "1.60.0",
6
6
  "description": "Arrow Design System",
7
7
  "repository": "https://github.com/conveyor/arrow-ds",
8
8
  "publishConfig": {
@@ -5,11 +5,17 @@ interface SelectPopoverProps {
5
5
  cancelButton: ReactNode;
6
6
  onCancelEdit: () => void;
7
7
  selectProps: SelectProps;
8
+ heading?: string;
9
+ label?: string;
10
+ showLabel?: boolean;
8
11
  preventOutsideClick?: boolean;
9
12
  optionsMessage?: string;
13
+ helpTip?: ReactNode;
10
14
  isCreatable?: boolean;
11
15
  className?: string;
12
16
  style?: CSSProperties;
17
+ popoverStyle?: CSSProperties;
18
+ hideCloseButton?: boolean;
13
19
  }
14
- export declare const SelectPopover: ({ readView, cancelButton, onCancelEdit, preventOutsideClick, optionsMessage, isCreatable, selectProps, className, style, }: SelectPopoverProps) => JSX.Element;
20
+ export declare const SelectPopover: ({ readView, cancelButton, onCancelEdit, heading, label, showLabel, preventOutsideClick, optionsMessage, helpTip, isCreatable, selectProps, className, style, popoverStyle, hideCloseButton, }: SelectPopoverProps) => JSX.Element;
15
21
  export {};
@@ -37,7 +37,9 @@ const CloseButton_1 = require("../CloseButton");
37
37
  const Text_1 = require("../Text");
38
38
  const Select_1 = require("./Select");
39
39
  const Popover_1 = require("../Popover");
40
- const SelectPopover = ({ readView, cancelButton, onCancelEdit, preventOutsideClick = false, optionsMessage, isCreatable, selectProps, className, style, }) => {
40
+ const Label_1 = require("../Label");
41
+ const Heading_1 = require("../Heading");
42
+ const SelectPopover = ({ readView, cancelButton, onCancelEdit, heading, label, showLabel = false, preventOutsideClick = false, optionsMessage, helpTip, isCreatable, selectProps, className, style, popoverStyle, hideCloseButton = false, }) => {
41
43
  const containerElement = react_1.default.useRef(null);
42
44
  const selectWrapperElement = react_1.default.useRef(null);
43
45
  const readViewWrapperElement = react_1.default.useRef(null);
@@ -71,6 +73,7 @@ const SelectPopover = ({ readView, cancelButton, onCancelEdit, preventOutsideCli
71
73
  MenuList: (props) => {
72
74
  const { children, innerRef, options } = props;
73
75
  return (react_1.default.createElement(Box_1.Box, { ref: innerRef },
76
+ options.length > 0 && helpTip && react_1.default.createElement(react_1.default.Fragment, null, helpTip),
74
77
  react_1.default.createElement(Box_1.Box, null, children),
75
78
  options.length > 0 && optionsMessage && (react_1.default.createElement(Text_1.Text, { className: "text-gray-600 text-icon leading-normal px-3 py-2" }, optionsMessage))));
76
79
  },
@@ -79,7 +82,6 @@ const SelectPopover = ({ readView, cancelButton, onCancelEdit, preventOutsideCli
79
82
  const sharedProps = {
80
83
  isCreatable,
81
84
  onBlur: () => { },
82
- components,
83
85
  styles: selectStyles,
84
86
  tabSelectsValue: false,
85
87
  closeMenuOnSelect: false,
@@ -92,7 +94,7 @@ const SelectPopover = ({ readView, cancelButton, onCancelEdit, preventOutsideCli
92
94
  autoFocus: true,
93
95
  className: classnames_1.default("w-full"),
94
96
  };
95
- const initialPlacement = "bottom";
97
+ const initialPlacement = "bottom-end";
96
98
  const [currentPlacement, setCurrentPlacement] = react_1.useState(initialPlacement);
97
99
  const popperModifiers = react_1.useMemo(() => [
98
100
  {
@@ -114,14 +116,19 @@ const SelectPopover = ({ readView, cancelButton, onCancelEdit, preventOutsideCli
114
116
  },
115
117
  },
116
118
  ], []);
119
+ const { components: componentsFromSelectProps, ...restSelectProps } = selectProps;
120
+ const mergedComponents = {
121
+ ...components,
122
+ ...componentsFromSelectProps,
123
+ };
117
124
  return (react_1.default.createElement(react_focus_lock_1.default, null,
118
- react_1.default.createElement(Popover_1.Popover, { isVisible: true, className: classnames_1.default("rounded-tl-none", "rounded-tr-none", currentPlacement === "top" ? "shadow-up" : "shadow", "box-content", "border", "border-gray-300"), popperModifiers: popperModifiers, removePadding: true, placement: initialPlacement, referenceElement: react_1.default.createElement(PopoverMenu_1.PopoverMenu, { ref: containerElement, className: classnames_1.default("w-full absolute", "shadow", currentPlacement === "bottom"
125
+ react_1.default.createElement(Popover_1.Popover, { isVisible: true, className: classnames_1.default("rounded-tl-none", "rounded-tr-none", currentPlacement === "top" ? "shadow-up" : "shadow", "box-content", "border", "border-gray-300"), style: popoverStyle, popperModifiers: popperModifiers, removePadding: true, placement: initialPlacement, referenceElement: react_1.default.createElement(PopoverMenu_1.PopoverMenu, { ref: containerElement, className: classnames_1.default("w-full absolute", "shadow", currentPlacement === "bottom"
119
126
  ? "rounded-bl-none rounded-br-none"
120
127
  : "rounded-tl-none rounded-tr-none", className), style: style },
121
128
  react_1.default.createElement(Flex_1.Flex, { className: "px-2 py-1 items-center w-full border-b border-gray-300", ref: readViewWrapperElement },
122
129
  readView,
123
130
  react_1.default.createElement(Stack_1.Stack, { spacing: 1, className: "ml-auto flex-shrink-0 self-start" },
124
- react_1.default.createElement(CloseButton_1.CloseButton, { className: "text-iconSm", onClick: () => {
131
+ !hideCloseButton && (react_1.default.createElement(CloseButton_1.CloseButton, { className: "text-iconSm", onClick: () => {
125
132
  if (selectProps.onChange) {
126
133
  if (selectProps.isMulti) {
127
134
  selectProps.onChange([], { action: "clear" });
@@ -130,8 +137,13 @@ const SelectPopover = ({ readView, cancelButton, onCancelEdit, preventOutsideCli
130
137
  selectProps.onChange({ label: "", value: "" }, { action: "clear" });
131
138
  }
132
139
  }
133
- } }),
140
+ } })),
134
141
  cancelButton))) },
135
- react_1.default.createElement(Box_1.Box, { ref: selectWrapperElement }, isCreatable ? (react_1.default.createElement(Select_1.Select.Creatable, Object.assign({}, selectProps, sharedProps))) : (react_1.default.createElement(Select_1.Select, Object.assign({}, selectProps, sharedProps)))))));
142
+ react_1.default.createElement(Box_1.Box, { ref: selectWrapperElement },
143
+ heading && (react_1.default.createElement(Flex_1.Flex, { className: "items-center justify-between py-3 px-3 h-12 border-b" },
144
+ react_1.default.createElement(Heading_1.Heading.H4, null, heading),
145
+ react_1.default.createElement(CloseButton_1.CloseButton, { onClick: onCancelEdit }))),
146
+ showLabel && label && (react_1.default.createElement(Label_1.Label, { className: "-mb-1 px-3 pt-3" }, label)),
147
+ isCreatable ? (react_1.default.createElement(Select_1.Select.Creatable, Object.assign({ components: mergedComponents }, restSelectProps, sharedProps))) : (react_1.default.createElement(Select_1.Select, Object.assign({ components: mergedComponents }, restSelectProps, sharedProps)))))));
136
148
  };
137
149
  exports.SelectPopover = SelectPopover;
@@ -5732,6 +5732,13 @@ override built-in Image component classes */
5732
5732
  color: rgb(134 163 181 / var(--tw-text-opacity));
5733
5733
  }
5734
5734
 
5735
+ .ads-Select .ads-Select__option--is-selected {
5736
+ --tw-bg-opacity: 1 !important;
5737
+ background-color: rgb(244 247 249 / var(--tw-bg-opacity)) !important;
5738
+
5739
+ color: inherit;
5740
+ }
5741
+
5735
5742
  .ads-Select-newOption {
5736
5743
  min-height: 32px;
5737
5744
  width: 100%;
@@ -8073,6 +8080,10 @@ override built-in Image component classes */
8073
8080
  margin-left: 16px;
8074
8081
  }
8075
8082
 
8083
+ .-mb-1 {
8084
+ margin-bottom: -4px;
8085
+ }
8086
+
8076
8087
  .ml-1 {
8077
8088
  margin-left: 4px;
8078
8089
  }
@@ -8688,6 +8699,10 @@ override built-in Image component classes */
8688
8699
  padding-left: 16px;
8689
8700
  }
8690
8701
 
8702
+ .pt-3 {
8703
+ padding-top: 12px;
8704
+ }
8705
+
8691
8706
  .pt-10 {
8692
8707
  padding-top: 40px;
8693
8708
  }