@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 +1 -1
- package/public/components/Select/SelectPopover.d.ts +7 -1
- package/public/components/Select/SelectPopover.js +19 -7
- package/public/css/styles.css +15 -0
- package/public/css/styles.min.css +1 -1
- package/public/css/styles.min.css.map +1 -1
- package/src/components/Select/SelectPopover.tsx +61 -18
- package/src/components/Select/index.css +6 -0
package/package.json
CHANGED
|
@@ -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
|
|
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 },
|
|
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;
|
package/public/css/styles.css
CHANGED
|
@@ -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
|
}
|