@gechiui/components
Version:
UI components for GeChiUI.
97 lines (90 loc) • 2.59 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { createElement } from "@gechiui/element";
/**
* External dependencies
*/
import classnames from 'classnames';
/**
* GeChiUI dependencies
*/
import { Icon, check } from '@gechiui/icons';
/**
* Internal dependencies
*/
import Button from '../button';
import Dropdown from '../dropdown';
import Tooltip from '../tooltip';
function Option(_ref) {
let {
className,
isSelected,
selectedIconProps,
tooltipText,
...additionalProps
} = _ref;
const optionButton = createElement(Button, _extends({
isPressed: isSelected,
className: "components-circular-option-picker__option"
}, additionalProps));
return createElement("div", {
className: classnames(className, 'components-circular-option-picker__option-wrapper')
}, tooltipText ? createElement(Tooltip, {
text: tooltipText
}, optionButton) : optionButton, isSelected && createElement(Icon, _extends({
icon: check
}, selectedIconProps ? selectedIconProps : {})));
}
function DropdownLinkAction(_ref2) {
let {
buttonProps,
className,
dropdownProps,
linkText
} = _ref2;
return createElement(Dropdown, _extends({
className: classnames('components-circular-option-picker__dropdown-link-action', className),
renderToggle: _ref3 => {
let {
isOpen,
onToggle
} = _ref3;
return createElement(Button, _extends({
"aria-expanded": isOpen,
"aria-haspopup": "true",
onClick: onToggle,
variant: "link"
}, buttonProps), linkText);
}
}, dropdownProps));
}
function ButtonAction(_ref4) {
let {
className,
children,
...additionalProps
} = _ref4;
return createElement(Button, _extends({
className: classnames('components-circular-option-picker__clear', className),
isSmall: true,
variant: "secondary"
}, additionalProps), children);
}
export default function CircularOptionPicker(_ref5) {
let {
actions,
className,
options,
children
} = _ref5;
return createElement("div", {
className: classnames('components-circular-option-picker', className)
}, createElement("div", {
className: "components-circular-option-picker__swatches"
}, options), children, actions && createElement("div", {
className: "components-circular-option-picker__custom-clear-wrapper"
}, actions));
}
CircularOptionPicker.Option = Option;
CircularOptionPicker.ButtonAction = ButtonAction;
CircularOptionPicker.DropdownLinkAction = DropdownLinkAction;
//# sourceMappingURL=index.js.map