UNPKG

@react-spectrum/s2

Version:
437 lines (420 loc) 16.4 kB
import "./ActionButton.css"; import {ActionButtonGroupContext as $10401bdc118cbc90$export$33f5f2f2cb85d743} from "./ActionButtonGroup.mjs"; import {AvatarContext as $3ffa2cd930156220$export$a20dad690e1279e2} from "./Avatar.mjs"; import {centerBaseline as $1f4b04be3f24aae3$export$9d7e2342a7e53afa} from "./CenterBaseline.mjs"; import {IconContext as $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed} from "../icons/Icon.mjs"; import {NotificationBadgeContext as $bfb270fb056fefc5$export$9ab75c96ebaa396c} from "./NotificationBadge.mjs"; import {pressScale as $10ea7662e51a285b$export$56e8cba416805d8d} from "./pressScale.mjs"; import {SkeletonContext as $5ad421ec19460c48$export$74e166679b1f49ee} from "../icons/Skeleton.mjs"; import {Text as $8e847109a6ab556d$export$5f1af8db9871e1d6, TextContext as $8e847109a6ab556d$export$9afb8bc826b033ea} from "./Content.mjs"; import {useFormProps as $9b916426527cebe7$export$a6b5be5c6b451665} from "./Form.mjs"; import {useSpectrumContextProps as $5ce63c423902f47d$export$764f6146fadd77f7} from "../icons/useSpectrumContextProps.mjs"; import {jsx as $hl1Zj$jsx} from "react/jsx-runtime"; import {OverlayTriggerStateContext as $hl1Zj$OverlayTriggerStateContext, useSlottedContext as $hl1Zj$useSlottedContext, Button as $hl1Zj$Button, Provider as $hl1Zj$Provider} from "react-aria-components"; import {createContext as $hl1Zj$createContext, forwardRef as $hl1Zj$forwardRef, useContext as $hl1Zj$useContext} from "react"; import {useFocusableRef as $hl1Zj$useFocusableRef} from "@react-spectrum/utils"; /* * Copyright 2024 Adobe. All rights reserved. * This file is licensed to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy * of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ // These styles handle both ActionButton and ToggleButton const $da878a05ab4a403e$var$iconOnly = ':has([slot=icon], [slot=avatar]):not(:has([data-rsp-slot=text]))'; const $da878a05ab4a403e$var$textOnly = ':has([data-rsp-slot=text]):not(:has([slot=icon], [slot=avatar]))'; const $da878a05ab4a403e$var$controlStyle = { font: { "default": "ui", size: { XS: "ui-xs", S: "ui-sm", L: "ui-lg", XL: "ui-xl" } }, display: "flex", alignItems: "center", boxSizing: "border-box", paddingX: { "default": "edge-to-text", ":has([slot=icon]):not(:has([data-rsp-slot=text]))": 0 }, minWidth: { "default": 32, size: { XS: 20, S: 24, L: 40, XL: 48 } }, "--size": { type: "order", value: { "default": 1, size: { XS: 0.7901234567901234, S: 0.8888888888888888, L: 1.125, XL: 1.265625 } } }, "--radius": { type: "borderTopStartRadius", value: "default" }, borderRadius: "round(var(--radius) * var(--size), 1px)", columnGap: "text-to-visual", "--iconMargin": { type: "marginStart", value: { "default": "[-0.14285714285714285em]", ":has([slot=icon]):not(:has([data-rsp-slot=text]))": 0 } }, height: { "default": 32, size: { XS: 20, S: 24, L: 40, XL: 48 } } }; const $da878a05ab4a403e$export$446543cff2a0f496 = function anonymous(props, overrides) { let rules = " "; let minWidth = false; let flexShrink = false; let flexGrow = false; let flexBasis = false; let zIndex = false; let matches = (overrides || '').matchAll(/(?:^|\s)(J|G|I|H|_u|_v|_s|__A|_d|_J|z|y|B|A|_P|_9|W|_l|_A|_z|Z|N|L)[^\s]+/g); for (let p of matches){ if (p[1] === "N") minWidth = true; if (p[1] === "_v") flexShrink = true; if (p[1] === "_u") flexGrow = true; if (p[1] === "_s") flexBasis = true; if (p[1] === "_9") zIndex = true; rules += p[0]; } if (props.isFocusVisible) rules += ' _Lf91'; else rules += ' _Le91'; if (props.isStaticColor) rules += ' Oe91'; else rules += ' Oh91'; rules += ' Olc91'; rules += ' _Mc91'; rules += ' _Kd91'; if (props.staticColor === "white") rules += ' -Ovbhqd-gcwrnr91'; else if (props.staticColor === "black") rules += ' -Ovbhqd-g4hn3s91'; if (props.size === "XL") { rules += ' ug91'; rules += ' uch91'; rules += ' udi91'; rules += ' uea91'; rules += ' ugb91'; rules += ' uhd91'; rules += ' uje91'; rules += ' uic91'; } else if (props.size === "L") { rules += ' ug91'; rules += ' uch91'; rules += ' udi91'; rules += ' uea91'; rules += ' ugb91'; rules += ' uhd91'; rules += ' uje91'; rules += ' uic91'; } else if (props.size === "S") { rules += ' ug91'; rules += ' uch91'; rules += ' udi91'; rules += ' uea91'; rules += ' ugb91'; rules += ' uhd91'; rules += ' uje91'; rules += ' uic91'; } else if (props.size === "XS") { rules += ' ug91'; rules += ' uch91'; rules += ' udi91'; rules += ' uea91'; rules += ' ugb91'; rules += ' uhd91'; rules += ' uje91'; rules += ' uic91'; } else { rules += ' ug91'; rules += ' uch91'; rules += ' udi91'; rules += ' uea91'; rules += ' ugb91'; rules += ' uhd91'; rules += ' uje91'; rules += ' uic91'; } if (props.size === "XL") { rules += ' vg91'; rules += ' vsj91'; } else if (props.size === "L") { rules += ' vp91'; rules += ' vsh91'; } else if (props.size === "S") { rules += ' vb91'; rules += ' vse91'; } else if (props.size === "XS") { rules += ' va91'; rules += ' vsc91'; } else { rules += ' vd91'; rules += ' vsf91'; } rules += ' wc91'; rules += ' xc91'; rules += ' _xa91'; if (props.size === "XL") { rules += ' _Fa91'; rules += ' _Ffb91'; } else if (props.size === "L") { rules += ' _Fa91'; rules += ' _Ffb91'; } else if (props.size === "S") { rules += ' _Fa91'; rules += ' _Ffb91'; } else if (props.size === "XS") { rules += ' _Fa91'; rules += ' _Ffb91'; } else { rules += ' _Fa91'; rules += ' _Ffb91'; } if (props.isStaticColor) { if (props.isDisabled) rules += ' pi91'; else if (props.isSelected) rules += ' ph91'; else { if (props.isPressed) rules += ' pk91'; else if (props.isFocusVisible) rules += ' pk91'; else if (props.isHovered) rules += ' pk91'; else rules += ' pj91'; } } else if (props.isDisabled) rules += ' pp91'; else if (props.isSelected) { if (props.isEmphasized) rules += ' px91'; else rules += ' pr91'; } else { if (props.isPressed) rules += ' po91'; else if (props.isFocusVisible) rules += ' po91'; else if (props.isHovered) rules += ' po91'; else rules += ' pt91'; } if (props.isDisabled) rules += ' plc91'; else if (props.isSelected) rules += ' ple91'; else rules += ' plb91'; rules += ' sd91'; rules += ' eb91'; rules += ' _oa91'; rules += ' SMBFGYc91'; rules += ' Rv91'; rules += ' RgLWx3bd91'; if (!minWidth) rules += ' N7yFGYc91'; if (props.size === "XL") rules += ' -SFnbic-_JaP8ec91'; else if (props.size === "L") rules += ' -SFnbic-_J0K2hn91'; else if (props.size === "S") rules += ' -SFnbic-_JJOW22b91'; else if (props.size === "XS") rules += ' -SFnbic-_JICefdd91'; else rules += ' -SFnbic-_Jb91'; rules += ' -Bu7z1c-ob91'; if (props.density === "compact") { rules += ' od91'; rules += ' obj91'; } else rules += ' oj91'; if (props.density === "compact") { if (props.orientation === "vertical") rules += ' nbj91'; else if (props.orientation === "horizontal") rules += ' nkj91'; else rules += ' nd91'; } else rules += ' nj91'; if (props.density === "compact") { if (props.orientation === "vertical") rules += ' kkj91'; else if (props.orientation === "horizontal") rules += ' kbj91'; else rules += ' kd91'; } else rules += ' kj91'; if (props.density === "compact") { rules += ' jd91'; rules += ' jkj91'; } else rules += ' jj91'; rules += ' qc91'; rules += ' qsd91'; rules += ' -Qg41Lb-IAxCW0c91'; rules += ' -Qg41Lb-gLWx3bIy91'; rules += ' FRuFGYc91'; rules += ' _Ca91'; if (props.isInGroup) { if (!flexShrink) rules += ' _va91'; } else if (!flexShrink) rules += ' _vb91'; if (props.isJustified) { if (!flexGrow) rules += ' _ub91'; } if (props.isJustified) { if (!flexBasis) rules += ' _sb91'; } rules += ' _4c91'; rules += ' Yd91'; rules += ' Xb91'; rules += ' _2b91'; rules += ' _yb91'; rules += ' gqMFGYc91'; rules += ' -_8sjo0b-t5ZbAob91'; rules += ' _je91'; if (props.isFocusVisible) { if (!zIndex) rules += ' _9d91'; } rules += ' __ca91'; rules += ' -B5H9Ae-WXN7eQb91'; rules += ' -B5H9Ae-wAP22cWr91'; rules += ' -SqFa4c-ZuUmpre91'; rules += ' -dcAs1c-ZaYffXd91'; rules += ' -dcAs1c-y5UFLdZt9HF591'; rules += ' -dcAs1c-wAP22cZa91'; if (props.size === "XL") rules += ' -F_-Fz91'; else if (props.size === "L") rules += ' -F_-Fv91'; else if (props.size === "S") rules += ' -F_-Fp91'; else if (props.size === "XS") rules += ' -F_-Fn91'; else rules += ' -F_-Fx91'; if (props.isStaticColor) { if (props.isSelected) { if (props.isDisabled) { if (props.isQuiet) rules += ' -g_-g991'; else rules += ' -g_-gf91'; } else { if (props.isPressed) rules += ' -g_-gj91'; else if (props.isFocusVisible) rules += ' -g_-gj91'; else if (props.isHovered) rules += ' -g_-gj91'; else rules += ' -g_-gi91'; } } else if (props.isPressed) rules += ' -g_-gg91'; else if (props.isFocusVisible) rules += ' -g_-gg91'; else if (props.isHovered) rules += ' -g_-gg91'; else if (props.isQuiet) rules += ' -g_-g991'; else rules += ' -g_-gf91'; } else if (props.isSelected) { if (props.isDisabled) { if (props.isQuiet) rules += ' -g_-g991'; else rules += ' -g_-gH91'; } else if (props.isEmphasized) { if (props.isFocusVisible) rules += ' -g_-gUgARdd91'; else if (props.isPressed) rules += ' -g_-gUgARdd91'; else if (props.isHovered) rules += ' -g_-gUgARdd91'; else rules += ' -g_-g5qAiPc91'; } else { if (props.isPressed) rules += ' -g_-gu91'; else if (props.isFocusVisible) rules += ' -g_-gu91'; else if (props.isHovered) rules += ' -g_-gu91'; else rules += ' -g_-g091'; } } else { if (props.isPressed) rules += ' -g_-gF91'; else if (props.isFocusVisible) rules += ' -g_-gF91'; else if (props.isHovered) rules += ' -g_-gF91'; else if (props.isQuiet) rules += ' -g_-g991'; else rules += ' -g_-gH91'; } if (props.isSelected) { if (props.isDisabled) rules += ' -g_-lgb91'; else rules += ' -g_-lge91'; } else rules += ' -g_-lgb91'; rules += ' -S_-Sv91'; rules += ' -S_-gLWx3bSd91'; if (props.size === "XL") rules += ' -N_-Nl91'; else if (props.size === "L") rules += ' -N_-Nj91'; else if (props.size === "S") rules += ' -N_-Nf91'; else if (props.size === "XS") rules += ' -N_-Ne91'; else rules += ' -N_-Nk91'; return rules; }; // Matching icon sizes. TBD. const $da878a05ab4a403e$var$avatarSize = { XS: 14, S: 16, M: 20, L: 22, X: 26 }; const $da878a05ab4a403e$export$2ff682723a46d413 = /*#__PURE__*/ (0, $hl1Zj$createContext)(null); const $da878a05ab4a403e$export$cfc7921d29ef7b80 = /*#__PURE__*/ (0, $hl1Zj$forwardRef)(function ActionButton(props, ref) { [props, ref] = (0, $5ce63c423902f47d$export$764f6146fadd77f7)(props, ref, $da878a05ab4a403e$export$2ff682723a46d413); props = (0, $9b916426527cebe7$export$a6b5be5c6b451665)(props); let domRef = (0, $hl1Zj$useFocusableRef)(ref); let overlayTriggerState = (0, $hl1Zj$useContext)((0, $hl1Zj$OverlayTriggerStateContext)); let ctx = (0, $hl1Zj$useSlottedContext)((0, $10401bdc118cbc90$export$33f5f2f2cb85d743)); let isInGroup = !!ctx; let { density: density = 'regular', isJustified: isJustified, orientation: orientation = 'horizontal', staticColor: staticColor = props.staticColor, isQuiet: isQuiet = props.isQuiet, size: size = props.size || 'M', isDisabled: isDisabled = props.isDisabled } = ctx || {}; return /*#__PURE__*/ (0, $hl1Zj$jsx)((0, $hl1Zj$Button), { ...props, isDisabled: isDisabled, ref: domRef, style: (0, $10ea7662e51a285b$export$56e8cba416805d8d)(domRef, props.UNSAFE_style), className: (renderProps)=>(props.UNSAFE_className || '') + $da878a05ab4a403e$export$446543cff2a0f496({ ...renderProps, // Retain hover styles when an overlay is open. isHovered: renderProps.isHovered || overlayTriggerState?.isOpen || false, staticColor: staticColor, isStaticColor: !!staticColor, size: size, isQuiet: isQuiet, density: density, isJustified: isJustified, orientation: orientation, isInGroup: isInGroup }, props.styles), children: /*#__PURE__*/ (0, $hl1Zj$jsx)((0, $hl1Zj$Provider), { values: [ [ (0, $5ad421ec19460c48$export$74e166679b1f49ee), null ], [ (0, $8e847109a6ab556d$export$9afb8bc826b033ea), { styles: " _Jb91 _Nc91 Pc91 _Yb91 _7c91" } ], [ (0, $ac8c32e6775ddd1f$export$a49f528ae1a4d0ed), { render: (0, $1f4b04be3f24aae3$export$9d7e2342a7e53afa)({ slot: 'icon', styles: " _Ja91" }), styles: " ZuUmpre91 FuUmpre91 I67logd91 _va91" } ], [ (0, $3ffa2cd930156220$export$a20dad690e1279e2), { size: $da878a05ab4a403e$var$avatarSize[size], styles: " I67logd91 _va91 _Ja91" } ], [ (0, $bfb270fb056fefc5$export$9ab75c96ebaa396c), { staticColor: staticColor, size: props.size === 'XS' ? undefined : props.size, isDisabled: props.isDisabled, styles: " _Pa91 WtedXZc91 _A1IiWH91 JlZStSb91 IlZStSb91" } ] ], children: typeof props.children === 'string' ? /*#__PURE__*/ (0, $hl1Zj$jsx)((0, $8e847109a6ab556d$export$5f1af8db9871e1d6), { children: props.children }) : props.children }) }); }); export {$da878a05ab4a403e$export$446543cff2a0f496 as btnStyles, $da878a05ab4a403e$export$2ff682723a46d413 as ActionButtonContext, $da878a05ab4a403e$export$cfc7921d29ef7b80 as ActionButton}; //# sourceMappingURL=ActionButton.mjs.map