UNPKG

@atlaskit/dropdown-menu

Version:

A dropdown menu displays a list of actions or options to a user.

168 lines (166 loc) • 7.78 kB
/* dropdown-menu-item-new.tsx generated by @compiled/babel-plugin v3.0.2 */ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("./dropdown-menu-item-new.compiled.css"); var _react = _interopRequireWildcard(require("react")); var React = _react; var _runtime = require("@compiled/react/runtime"); var _css = require("@atlaskit/css"); var _checkMark = _interopRequireDefault(require("@atlaskit/icon/core/check-mark")); var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/core/chevron-right")); var _fg = require("@atlaskit/platform-feature-flags/fg"); var _anchor = require("@atlaskit/primitives/compiled/anchor"); var _pressable = require("@atlaskit/primitives/compiled/pressable"); var _stack = require("@atlaskit/primitives/compiled/stack"); var _text = require("@atlaskit/primitives/compiled/text"); var _keyboardShortcut = _interopRequireDefault(require("./internal/components/keyboard-shortcut")); var _dropdownTriggerContext = require("./internal/context/dropdown-trigger-context"); var _spacingContext = require("./internal/context/spacing-context"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var styles = { root: "_19itglyw _12ji1r31 _1qu2glyw _12y3idpf _4bfu1r31 _1hmsglyw _ajmmnqa1 _19pkidpf _2hwxidpf _otyridpf _18u0idpf _2rko1qi0 _18zrutpp _1rjcu2gc _1e0c1txw _2lx2vrvc _gy1putpp _4cvr1h6o _1bah1yb4 _16jlkb7n _bfhksm61 _y3gnv2br _syazazsu _1bsb1osq _kqswh2mm _nt751v1w _1bg41i6y _49pcnqa1 _1hvwdkaa _f8pjazsu _mizu1v1w _1ah31i6y _ra3xnqa1 _128mdkaa _9oik1r31 _1bnxglyw _jf4cnqa1 _irr31dpa _30l3azsu _1di6fcek", compact: "_18zru2gc _1rjc12x7 _gy1pu2gc", beforeAfterElement: "_1e0c1txw _4cvr1h6o _1bah1h6o _1ul97vkz _1tke7vkz _1o9zidpf", textContainer: "_y4tiutpp", selected: "_bfhk15s3 _syazi7uo _f8pji7uo _irr3ufnl _30l3i7uo _1di6nozp", disabled: "_80om13gf _syaz1gmx _irr3sm61 _30l31gmx _1di6sm61", disabledAndSelected: "_80om13gf _syaz1gmx _bfhk15s3 _irr315s3 _30l31gmx _1di615s3", danger: "_syaz1tmw _f8pj1tmw _30l31tmw" }; function getTitleColor(_ref) { var isLink = _ref.isLink, isDisabled = _ref.isDisabled, isSelected = _ref.isSelected, isDanger = _ref.isDanger; if (isLink) { return isSelected ? 'color.text' : 'color.text.subtle'; } if (isDisabled) { return 'color.text.disabled'; } if (isSelected) { return 'color.text'; } if (isDanger) { return 'color.text.danger'; } return 'color.text.subtle'; } function getDescriptionColor(_ref2) { var isLink = _ref2.isLink, isDisabled = _ref2.isDisabled; if (isLink || !isDisabled) { return 'color.text.subtlest'; } return 'color.text.disabled'; } var NewDropdownMenuItem = /*#__PURE__*/(0, _react.memo)( /*#__PURE__*/(0, _react.forwardRef)(function (_ref3, ref) { var title = _ref3.title, description = _ref3.description, elemBefore = _ref3.elemBefore, elemAfter = _ref3.elemAfter, shouldTitleWrap = _ref3.shouldTitleWrap, shouldDescriptionWrap = _ref3.shouldDescriptionWrap, isSelected = _ref3.isSelected, isDisabled = _ref3.isDisabled, hasNestedMenuProp = _ref3.hasNestedMenu, shortcut = _ref3.shortcut, appearance = _ref3.appearance, href = _ref3.href, onClick = _ref3.onClick, target = _ref3.target, rel = _ref3.rel, testId = _ref3.testId, id = _ref3.id, _ref3$role = _ref3.role, role = _ref3$role === void 0 ? 'menuitem' : _ref3$role, ariaChecked = _ref3['aria-checked'], ariaHasPopup = _ref3['aria-haspopup'], ariaExpanded = _ref3['aria-expanded']; var isDropdownTrigger = (0, _react.useContext)(_dropdownTriggerContext.DropdownTriggerContext); var hasNestedMenu = isDropdownTrigger || hasNestedMenuProp; var spacing = (0, _react.useContext)(_spacingContext.NewSpacingContext); var isCompact = spacing === 'compact'; var isLink = !!href; var isDanger = appearance === 'danger'; var titleMaxLines = shouldTitleWrap ? undefined : 1; var descMaxLines = shouldDescriptionWrap ? undefined : 1; var titleColor = getTitleColor({ isLink: isLink, isDisabled: isDisabled, isSelected: isSelected, isDanger: isDanger }); var descColor = getDescriptionColor({ isLink: isLink, isDisabled: isDisabled }); // Just to force the toggle in atlaspack workbench // @ts-ignore var _nothing = (0, _fg.fg)('platform-dst-tokens-finesse'); var menuItem = /*#__PURE__*/React.createElement(_react.Fragment, null, elemBefore && /*#__PURE__*/React.createElement("span", { "data-testid": testId && "".concat(testId, "--elem-before"), className: (0, _runtime.ax)([styles.beforeAfterElement]) }, elemBefore), /*#__PURE__*/React.createElement(_stack.Stack, { grow: "fill", space: "space.025", xcss: styles.textContainer }, /*#__PURE__*/React.createElement(_text.Text, { weight: "medium", color: titleColor, maxLines: titleMaxLines, testId: testId && "".concat(testId, "--title") }, title), description && /*#__PURE__*/React.createElement(_text.Text, { color: descColor, maxLines: descMaxLines, testId: testId && "".concat(testId, "--description") }, description)), shortcut && /*#__PURE__*/React.createElement(_keyboardShortcut.default, { shortcut: shortcut }), elemAfter && /*#__PURE__*/React.createElement("span", { "data-testid": testId && "".concat(testId, "--elem-after"), className: (0, _runtime.ax)([styles.beforeAfterElement]) }, elemAfter), hasNestedMenu && /*#__PURE__*/React.createElement("span", { "data-testid": testId && "".concat(testId, "--chevron"), className: (0, _runtime.ax)([styles.beforeAfterElement]) }, /*#__PURE__*/React.createElement(_chevronRight.default, { size: "small", label: "" })), isSelected && role === 'menuitem' && !hasNestedMenu && /*#__PURE__*/React.createElement("span", { "data-testid": testId && "".concat(testId, "--selected"), className: (0, _runtime.ax)([styles.beforeAfterElement]) }, /*#__PURE__*/React.createElement(_checkMark.default, { label: "" }))); if (href) { return /*#__PURE__*/React.createElement(_anchor.Anchor, { href: href, target: target, rel: rel, onClick: onClick, xcss: (0, _css.cx)(styles.root, isCompact && styles.compact, isSelected && styles.selected, isDanger && styles.danger), testId: testId, role: role, id: id, ref: ref, "aria-current": isSelected ? 'page' : undefined }, menuItem); } return /*#__PURE__*/React.createElement(_pressable.Pressable, { onClick: onClick, isDisabled: isDisabled, xcss: (0, _css.cx)(styles.root, isCompact && styles.compact, isSelected && styles.selected, isDisabled && styles.disabled, isSelected && isDisabled && styles.disabledAndSelected, isDanger && styles.danger), testId: testId, role: role, "aria-checked": ariaChecked, "aria-haspopup": ariaHasPopup, "aria-expanded": ariaExpanded, id: id, ref: ref }, menuItem); })); var _default = exports.default = NewDropdownMenuItem;