@snowball-tech/fractal
Version:
Fractal's (Snowball's design system) React component library based on RadixUI and TailwindCSS
2 lines • 1.73 kB
JavaScript
"use client";import{PREFIX as e}from"../../constants.js";import{cn as t}from"../../styles/helpers.js";import{onlyText as n}from"../../utils.js";import"../Paper/Paper.constants.js";import r from"../Dropdown/Dropdown.js";import{GROUP_NAME as i}from"./Toolbar.constants.js";import{ToolbarContext as a}from"./ToolbarContext.js";import o from"./ToolbarButton.js";import{forwardRef as s,useContext as c,useState as l}from"react";import u from"lodash/fp/isFunction.js";import d from"lodash/fp/isString.js";import f from"lodash/fp/omit.js";import{jsx as p}from"react/jsx-runtime";const m=s(({active:s=!1,children:m,disabled:h=!1,elevation:g=`2`,icon:_,iconOnly:v=!1,iconPosition:y=`left`,label:b,...x},S)=>{b||console.warn("You must provide a `label` to the `ToolbarDropdown` component");let{disabled:C}=c(a),w=h||C,[T,E]=l(!1),D=e=>{u(x.onMenuOpenChange)&&x.onMenuOpenChange(e),E(e)},O=d(b)?b:n(b);return p(r,{ref:S,"aria-label":O,className:t(`${e}-${i}__dropdown`,`group h-3 max-h-3 rounded-xs`,T&&!w?`text-dark`:w?`text-disabled`:`text-placeholder`,T&&!w?`bg-decorative-pink-90`:``,w?`${e}-${i}__dropdown--disabled`:`hover:bg-decorative-pink-90 hover:text-dark`),condensed:!0,disabled:w,dropdown:{className:`data-[side="bottom"]:mt-2 data-[side="top"]:mb-2 data-[side="right"]:ml-[calc(theme(spacing.2)+theme(spacing.half))] data-[side="left"]:mr-[calc(theme(spacing.2)+theme(spacing.half))]`},elevation:g,open:x.open||T,title:O,trigger:p(o,{active:s,disabled:w,icon:_,iconOnly:v,iconPosition:y,label:b}),triggerAsButton:!1,onMenuOpenChange:D,...f([`className`,`condensed`,`trigger`,`onMenuOpenChange`,`triggerAsButton`],x),children:m})});m.displayName=`ToolbarDropdown`;export{m as default};
//# sourceMappingURL=ToolbarDropdown.js.map