UNPKG

qstd

Version:

Standard Block component and utilities library with Panda CSS

718 lines (705 loc) 148 kB
require("./index.css"); 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React11 = require('react'); var reactDom = require('react-dom'); var framerMotion = require('framer-motion'); var react = require('@floating-ui/react'); var reactSpinners = require('react-spinners'); var reactLoaderSpinner = require('react-loader-spinner'); var jsxRuntime = require('react/jsx-runtime'); var nanoid = require('nanoid'); var mmb = require('music-metadata-browser'); var reactFontawesome = require('@fortawesome/react-fontawesome'); var fontawesomeSvgCore = require('@fortawesome/fontawesome-svg-core'); var freeRegularSvgIcons = require('@fortawesome/free-regular-svg-icons'); var freeBrandsSvgIcons = require('@fortawesome/free-brands-svg-icons'); var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons'); var useImmer = require('use-immer'); function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n.default = e; return Object.freeze(n); } var React11__namespace = /*#__PURE__*/_interopNamespace(React11); var mmb__namespace = /*#__PURE__*/_interopNamespace(mmb); // src/react/index.ts // styled-system/helpers.mjs function isObject(value) { return typeof value === "object" && value != null && !Array.isArray(value); } var isObjectOrArray = (obj) => typeof obj === "object" && obj !== null; function compact(value) { return Object.fromEntries(Object.entries(value ?? {}).filter(([_, value2]) => value2 !== void 0)); } var isBaseCondition = (v) => v === "base"; function filterBaseConditions(c) { return c.slice().filter((v) => !isBaseCondition(v)); } function toChar(code) { return String.fromCharCode(code + (code > 25 ? 39 : 97)); } function toName(code) { let name = ""; let x; for (x = Math.abs(code); x > 52; x = x / 52 | 0) name = toChar(x % 52) + name; return toChar(x % 52) + name; } function toPhash(h, x) { let i = x.length; while (i) h = h * 33 ^ x.charCodeAt(--i); return h; } function toHash(value) { return toName(toPhash(5381, value) >>> 0); } var importantRegex = /\s*!(important)?/i; function isImportant(value) { return typeof value === "string" ? importantRegex.test(value) : false; } function withoutImportant(value) { return typeof value === "string" ? value.replace(importantRegex, "").trim() : value; } function withoutSpace(str) { return typeof str === "string" ? str.replaceAll(" ", "_") : str; } var memo = (fn) => { const cache = /* @__PURE__ */ new Map(); const get = (...args) => { const key = JSON.stringify(args); if (cache.has(key)) { return cache.get(key); } const result = fn(...args); cache.set(key, result); return result; }; return get; }; var MERGE_OMIT = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]); function mergeProps(...sources) { return sources.reduce((prev, obj) => { if (!obj) return prev; Object.keys(obj).forEach((key) => { if (MERGE_OMIT.has(key)) return; const prevValue = prev[key]; const value = obj[key]; if (isObject(prevValue) && isObject(value)) { prev[key] = mergeProps(prevValue, value); } else { prev[key] = value; } }); return prev; }, {}); } var isNotNullish = (element) => element != null; function walkObject(target, predicate, options = {}) { const { stop, getKey } = options; function inner(value, path = []) { if (isObjectOrArray(value)) { const result = {}; for (const [prop, child] of Object.entries(value)) { const key = getKey?.(prop, child) ?? prop; const childPath = [...path, key]; if (stop?.(value, childPath)) { return predicate(value, path); } const next = inner(child, childPath); if (isNotNullish(next)) { result[key] = next; } } return result; } return predicate(value, path); } return inner(target); } function toResponsiveObject(values, breakpoints) { return values.reduce( (acc, current, index) => { const key = breakpoints[index]; if (current != null) { acc[key] = current; } return acc; }, {} ); } function normalizeStyleObject(styles, context2, shorthand = true) { const { utility, conditions: conditions2 } = context2; const { hasShorthand, resolveShorthand: resolveShorthand2 } = utility; return walkObject( styles, (value) => { return Array.isArray(value) ? toResponsiveObject(value, conditions2.breakpoints.keys) : value; }, { stop: (value) => Array.isArray(value), getKey: shorthand ? (prop) => hasShorthand ? resolveShorthand2(prop) : prop : void 0 } ); } var fallbackCondition = { shift: (v) => v, finalize: (v) => v, breakpoints: { keys: [] } }; var sanitize = (value) => typeof value === "string" ? value.replaceAll(/[\n\s]+/g, " ") : value; function createCss(context2) { const { utility, hash, conditions: conds = fallbackCondition } = context2; const formatClassName = (str) => [utility.prefix, str].filter(Boolean).join("-"); const hashFn = (conditions2, className) => { let result; if (hash) { const baseArray = [...conds.finalize(conditions2), className]; result = formatClassName(utility.toHash(baseArray, toHash)); } else { const baseArray = [...conds.finalize(conditions2), formatClassName(className)]; result = baseArray.join(":"); } return result; }; return memo(({ base: base2, ...styles } = {}) => { const styleObject = Object.assign(styles, base2); const normalizedObject = normalizeStyleObject(styleObject, context2); const classNames = /* @__PURE__ */ new Set(); walkObject(normalizedObject, (value, paths) => { if (value == null) return; const important = isImportant(value); const [prop, ...allConditions] = conds.shift(paths); const conditions2 = filterBaseConditions(allConditions); const transformed = utility.transform(prop, withoutImportant(sanitize(value))); let className = hashFn(conditions2, transformed.className); if (important) className = `${className}!`; classNames.add(className); }); return Array.from(classNames).join(" "); }); } function compactStyles(...styles) { return styles.flat().filter((style) => isObject(style) && Object.keys(compact(style)).length > 0); } function createMergeCss(context2) { function resolve(styles) { const allStyles = compactStyles(...styles); if (allStyles.length === 1) return allStyles; return allStyles.map((style) => normalizeStyleObject(style, context2)); } function mergeCss2(...styles) { return mergeProps(...resolve(styles)); } function assignCss2(...styles) { return Object.assign({}, ...resolve(styles)); } return { mergeCss: memo(mergeCss2), assignCss: assignCss2 }; } var wordRegex = /([A-Z])/g; var msRegex = /^ms-/; var hypenateProperty = memo((property) => { if (property.startsWith("--")) return property; return property.replace(wordRegex, "-$1").replace(msRegex, "-ms-").toLowerCase(); }); var lengthUnits = "cm,mm,Q,in,pc,pt,px,em,ex,ch,rem,lh,rlh,vw,vh,vmin,vmax,vb,vi,svw,svh,lvw,lvh,dvw,dvh,cqw,cqh,cqi,cqb,cqmin,cqmax,%"; `(?:${lengthUnits.split(",").join("|")})`; function splitProps(props, ...keys) { const descriptors = Object.getOwnPropertyDescriptors(props); const dKeys = Object.keys(descriptors); const split = (k) => { const clone = {}; for (let i = 0; i < k.length; i++) { const key = k[i]; if (descriptors[key]) { Object.defineProperty(clone, key, descriptors[key]); delete descriptors[key]; } } return clone; }; const fn = (key) => split(Array.isArray(key) ? key : dKeys.filter(key)); return keys.map(fn).concat(split(dKeys)); } var uniq = (...items) => { const set = items.reduce((acc, currItems) => { if (currItems) { currItems.forEach((item) => acc.add(item)); } return acc; }, /* @__PURE__ */ new Set([])); return Array.from(set); }; var htmlProps = ["htmlSize", "htmlTranslate", "htmlWidth", "htmlHeight"]; function convert(key) { return htmlProps.includes(key) ? key.replace("html", "").toLowerCase() : key; } function normalizeHTMLProps(props) { return Object.fromEntries(Object.entries(props).map(([key, value]) => [convert(key), value])); } normalizeHTMLProps.keys = htmlProps; // styled-system/css/conditions.mjs var conditionsStr = "_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_noscript,_invertedColors,_activeMouse,_activeKeyboard,_checkbox,_radioLabel,_radioDisabled,_radioSelected,_radioCircleOuter,_radioCircleInner,_radioFocusRing,_path,_svg,xs,xsOnly,xsDown,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,2xl,2xlOnly,2xlDown,xsToSm,xsToMd,xsToLg,xsToXl,xsTo2xl,smToMd,smToLg,smToXl,smTo2xl,mdToLg,mdToXl,mdTo2xl,lgToXl,lgTo2xl,xlTo2xl,@/xs,@/sm,@/md,@/lg,@/xl,@/2xl,@/3xl,@/4xl,@/5xl,@/6xl,@/7xl,@/8xl,base"; var conditions = new Set(conditionsStr.split(",")); var conditionRegex = /^@|&|&$/; function isCondition(value) { return conditions.has(value) || conditionRegex.test(value); } var underscoreRegex = /^_/; var conditionsSelectorRegex = /&|@/; function finalizeConditions(paths) { return paths.map((path) => { if (conditions.has(path)) { return path.replace(underscoreRegex, ""); } if (conditionsSelectorRegex.test(path)) { return `[${withoutSpace(path.trim())}]`; } return path; }); } function sortConditions(paths) { return paths.sort((a, b) => { const aa = isCondition(a); const bb = isCondition(b); if (aa && !bb) return 1; if (!aa && bb) return -1; return 0; }); } // styled-system/css/css.mjs var utilities = "aspectRatio:asp/ar,boxDecorationBreak:bx-db,zIndex:z,boxSizing:bx-s,objectPosition:obj-p,objectFit:obj-f,overscrollBehavior:ovs-b,overscrollBehaviorX:ovs-bx,overscrollBehaviorY:ovs-by,position:pos/1,top:top,left:left,inset:inset,insetInline:inset-x/insetX,insetBlock:inset-y/insetY,insetBlockEnd:inset-be,insetBlockStart:inset-bs,insetInlineEnd:inset-e/insetEnd/end,insetInlineStart:inset-s/insetStart/start,right:right,bottom:bottom,float:float,visibility:vis,display:d,hideFrom:hide,hideBelow:show,flexBasis:flex-b,flex:flex,flexDirection:flex-d/flexDir,flexGrow:flex-g,flexShrink:flex-sh,gridTemplateColumns:grid-tc,gridTemplateRows:grid-tr,gridColumn:grid-c,gridRow:grid-r,gridColumnStart:grid-cs/colStart,gridColumnEnd:grid-ce/colEnd,gridAutoFlow:grid-af,gridAutoColumns:grid-ac/autoCols,gridAutoRows:grid-ar,gap:gap,gridGap:grid-g,gridRowGap:grid-rg,gridColumnGap:grid-cg,rowGap:rg/rowG,columnGap:cg/colG,justifyContent:jc,alignContent:ac,alignItems:ai,alignSelf:as,padding:p/1,paddingLeft:pl/1,paddingRight:pr/1,paddingTop:pt/1,paddingBottom:pb/1,paddingBlock:py/1/paddingY,paddingBlockEnd:pbe,paddingBlockStart:pbs,paddingInline:px/paddingX/1,paddingInlineEnd:pe/1/paddingEnd,paddingInlineStart:ps/1/paddingStart,marginLeft:ml/1,marginRight:mr/1,marginTop:mt/1,marginBottom:mb/1,margin:m/1,marginBlock:my/1/marginY,marginBlockEnd:mbe,marginBlockStart:mbs,marginInline:mx/1/marginX,marginInlineEnd:me/1/marginEnd,marginInlineStart:ms/1/marginStart,spaceX:sx,spaceY:sy,outlineWidth:ring-w/ringWidth,outlineColor:ring-c/ringColor,outline:ring/1,outlineOffset:ring-o/ringOffset,focusRing:focus-ring,focusVisibleRing:focus-v-ring,focusRingColor:focus-ring-c,focusRingOffset:focus-ring-o,focusRingWidth:focus-ring-w,focusRingStyle:focus-ring-s,divideX:dvd-x,divideY:dvd-y,divideColor:dvd-c,divideStyle:dvd-s,width:w/1,inlineSize:w-is,minWidth:min-w/minW,minInlineSize:min-w-is,maxWidth:max-w/maxW,maxInlineSize:max-w-is,height:h/1,blockSize:h-bs,minHeight:min-h/minH,minBlockSize:min-h-bs,maxHeight:max-h/maxH,maxBlockSize:max-b,boxSize:size,color:c,fontFamily:ff,fontSize:fs,fontSizeAdjust:fs-a,fontPalette:fp,fontKerning:fk,fontFeatureSettings:ff-s,fontWeight:fw,fontSmoothing:fsmt,fontVariant:fv,fontVariantAlternates:fv-alt,fontVariantCaps:fv-caps,fontVariationSettings:fv-s,fontVariantNumeric:fv-num,letterSpacing:ls,lineHeight:lh,textAlign:ta,textDecoration:td,textDecorationColor:td-c,textEmphasisColor:te-c,textDecorationStyle:td-s,textDecorationThickness:td-t,textUnderlineOffset:tu-o,textTransform:tt,textIndent:ti,textShadow:tsh,textShadowColor:tsh-c/textShadowColor,textOverflow:tov,verticalAlign:va,wordBreak:wb,textWrap:tw,truncate:trunc,lineClamp:lc,listStyleType:li-t,listStylePosition:li-pos,listStyleImage:li-img,listStyle:li-s,backgroundPosition:bg-p/bgPosition,backgroundPositionX:bg-p-x/bgPositionX,backgroundPositionY:bg-p-y/bgPositionY,backgroundAttachment:bg-a/bgAttachment,backgroundClip:bg-cp/bgClip,background:bg/1,backgroundColor:bg-c/bgColor,backgroundOrigin:bg-o/bgOrigin,backgroundImage:bg-i/bgImage,backgroundRepeat:bg-r/bgRepeat,backgroundBlendMode:bg-bm/bgBlendMode,backgroundSize:bg-s/bgSize,backgroundGradient:bg-grad/bgGradient,backgroundLinear:bg-linear/bgLinear,backgroundRadial:bg-radial/bgRadial,backgroundConic:bg-conic/bgConic,textGradient:txt-grad,gradientFromPosition:grad-from-pos,gradientToPosition:grad-to-pos,gradientFrom:grad-from,gradientTo:grad-to,gradientVia:grad-via,gradientViaPosition:grad-via-pos,borderRadius:rounded/br,borderTopLeftRadius:bdr-tl/roundedTopLeft,borderTopRightRadius:bdr-tr/roundedTopRight,borderBottomRightRadius:bdr-br/roundedBottomRight,borderBottomLeftRadius:bdr-bl/roundedBottomLeft,borderTopRadius:bdr-t/roundedTop,borderRightRadius:bdr-r/roundedRight,borderBottomRadius:bdr-b/roundedBottom,borderLeftRadius:bdr-l/roundedLeft,borderStartStartRadius:bdr-ss/roundedStartStart,borderStartEndRadius:bdr-se/roundedStartEnd,borderStartRadius:bdr-s/roundedStart,borderEndStartRadius:bdr-es/roundedEndStart,borderEndEndRadius:bdr-ee/roundedEndEnd,borderEndRadius:bdr-e/roundedEnd,border:bd,borderWidth:bd-w,borderTopWidth:bd-t-w,borderLeftWidth:bd-l-w,borderRightWidth:bd-r-w,borderBottomWidth:bd-b-w,borderBlockStartWidth:bd-bs-w,borderBlockEndWidth:bd-be-w,borderColor:bd-c,borderInline:bd-x/borderX,borderInlineWidth:bd-x-w/borderXWidth,borderInlineColor:bd-x-c/borderXColor,borderBlock:bd-y/borderY,borderBlockWidth:bd-y-w/borderYWidth,borderBlockColor:bd-y-c/borderYColor,borderLeft:bd-l,borderLeftColor:bd-l-c,borderInlineStart:bd-s/borderStart,borderInlineStartWidth:bd-s-w/borderStartWidth,borderInlineStartColor:bd-s-c/borderStartColor,borderRight:bd-r,borderRightColor:bd-r-c,borderInlineEnd:bd-e/borderEnd,borderInlineEndWidth:bd-e-w/borderEndWidth,borderInlineEndColor:bd-e-c/borderEndColor,borderTop:bd-t,borderTopColor:bd-t-c,borderBottom:bd-b,borderBottomColor:bd-b-c,borderBlockEnd:bd-be,borderBlockEndColor:bd-be-c,borderBlockStart:bd-bs,borderBlockStartColor:bd-bs-c,opacity:op,boxShadow:bx-sh/shadow,boxShadowColor:bx-sh-c/shadowColor,mixBlendMode:mix-bm,filter:filter,brightness:brightness,contrast:contrast,grayscale:grayscale,hueRotate:hue-rotate,invert:invert,saturate:saturate,sepia:sepia,dropShadow:drop-shadow,blur:blur,backdropFilter:bkdp,backdropBlur:bkdp-blur,backdropBrightness:bkdp-brightness,backdropContrast:bkdp-contrast,backdropGrayscale:bkdp-grayscale,backdropHueRotate:bkdp-hue-rotate,backdropInvert:bkdp-invert,backdropOpacity:bkdp-opacity,backdropSaturate:bkdp-saturate,backdropSepia:bkdp-sepia,borderCollapse:bd-cl,borderSpacing:bd-sp,borderSpacingX:bd-sx,borderSpacingY:bd-sy,tableLayout:tbl,transitionTimingFunction:trs-tmf,transitionDelay:trs-dly,transitionDuration:trs-dur,transitionProperty:trs-prop,transition:trs,animation:anim,animationName:anim-n,animationTimingFunction:anim-tmf,animationDuration:anim-dur,animationDelay:anim-dly,animationPlayState:anim-ps,animationComposition:anim-comp,animationFillMode:anim-fm,animationDirection:anim-dir,animationIterationCount:anim-ic,animationRange:anim-r,animationState:anim-s,animationRangeStart:anim-rs,animationRangeEnd:anim-re,animationTimeline:anim-tl,transformOrigin:trf-o,transformBox:trf-b,transformStyle:trf-s,transform:trf,rotate:rotate,rotateX:rotate-x,rotateY:rotate-y,rotateZ:rotate-z,scale:scale,scaleX:scale-x,scaleY:scale-y,translate:translate,translateX:translate-x/x,translateY:translate-y/y,translateZ:translate-z/z,accentColor:ac-c,caretColor:ca-c,scrollBehavior:scr-bhv,scrollbar:scr-bar,scrollbarColor:scr-bar-c,scrollbarGutter:scr-bar-g,scrollbarWidth:scr-bar-w,scrollMargin:scr-m,scrollMarginLeft:scr-ml,scrollMarginRight:scr-mr,scrollMarginTop:scr-mt,scrollMarginBottom:scr-mb,scrollMarginBlock:scr-my/scrollMarginY,scrollMarginBlockEnd:scr-mbe,scrollMarginBlockStart:scr-mbt,scrollMarginInline:scr-mx/scrollMarginX,scrollMarginInlineEnd:scr-me,scrollMarginInlineStart:scr-ms,scrollPadding:scr-p,scrollPaddingBlock:scr-py/scrollPaddingY,scrollPaddingBlockStart:scr-pbs,scrollPaddingBlockEnd:scr-pbe,scrollPaddingInline:scr-px/scrollPaddingX,scrollPaddingInlineEnd:scr-pe,scrollPaddingInlineStart:scr-ps,scrollPaddingLeft:scr-pl,scrollPaddingRight:scr-pr,scrollPaddingTop:scr-pt,scrollPaddingBottom:scr-pb,scrollSnapAlign:scr-sa,scrollSnapStop:scrs-s,scrollSnapType:scrs-t,scrollSnapStrictness:scrs-strt,scrollSnapMargin:scrs-m,scrollSnapMarginTop:scrs-mt,scrollSnapMarginBottom:scrs-mb,scrollSnapMarginLeft:scrs-ml,scrollSnapMarginRight:scrs-mr,scrollSnapCoordinate:scrs-c,scrollSnapDestination:scrs-d,scrollSnapPointsX:scrs-px,scrollSnapPointsY:scrs-py,scrollSnapTypeX:scrs-tx,scrollSnapTypeY:scrs-ty,scrollTimeline:scrtl,scrollTimelineAxis:scrtl-a,scrollTimelineName:scrtl-n,touchAction:tch-a,userSelect:us,overflow:ov,overflowWrap:ov-wrap,overflowX:ov-x,overflowY:ov-y,overflowAnchor:ov-a,overflowBlock:ov-b,overflowInline:ov-i,overflowClipBox:ovcp-bx,overflowClipMargin:ovcp-m,overscrollBehaviorBlock:ovs-bb,overscrollBehaviorInline:ovs-bi,fill:fill,stroke:stk,strokeWidth:stk-w,strokeDasharray:stk-dsh,strokeDashoffset:stk-do,strokeLinecap:stk-lc,strokeLinejoin:stk-lj,strokeMiterlimit:stk-ml,strokeOpacity:stk-op,srOnly:sr,debug:debug,appearance:ap,backfaceVisibility:bfv,clipPath:cp-path,hyphens:hy,mask:msk,maskImage:msk-i,maskSize:msk-s,textSizeAdjust:txt-adj,container:cq,containerName:cq-n,containerType:cq-t,cursor:cursor,gridRowStart:rowStart/1,gridRowEnd:rowEnd/1,textStyle:textStyle"; var classNameByProp = /* @__PURE__ */ new Map(); var shorthands = /* @__PURE__ */ new Map(); utilities.split(",").forEach((utility) => { const [prop, meta] = utility.split(":"); const [className, ...shorthandList] = meta.split("/"); classNameByProp.set(prop, className); if (shorthandList.length) { shorthandList.forEach((shorthand) => { shorthands.set(shorthand === "1" ? className : shorthand, prop); }); } }); var resolveShorthand = (prop) => shorthands.get(prop) || prop; var context = { conditions: { shift: sortConditions, finalize: finalizeConditions, breakpoints: { keys: ["base", "xs", "sm", "md", "lg", "xl", "2xl"] } }, utility: { transform: (prop, value) => { const key = resolveShorthand(prop); const propKey = classNameByProp.get(key) || hypenateProperty(key); return { className: `${propKey}_${withoutSpace(value)}` }; }, hasShorthand: true, toHash: (path, hashFn) => hashFn(path.join(":")), resolveShorthand } }; var cssFn = createCss(context); var css = (...styles) => cssFn(mergeCss(...styles)); css.raw = (...styles) => mergeCss(...styles); var { mergeCss} = createMergeCss(context); // styled-system/css/cx.mjs function cx() { let str = "", i = 0, arg; for (; i < arguments.length; ) { if ((arg = arguments[i++]) && typeof arg === "string") { str && (str += " "); str += arg; } } return str; } // styled-system/css/cva.mjs var defaults = (conf) => ({ base: {}, variants: {}, defaultVariants: {}, compoundVariants: [], ...conf }); function cva(config) { const { base: base2, variants, defaultVariants, compoundVariants } = defaults(config); const getVariantProps = (variants2) => ({ ...defaultVariants, ...compact(variants2) }); function resolve(props = {}) { const computedVariants = getVariantProps(props); let variantCss = { ...base2 }; for (const [key, value] of Object.entries(computedVariants)) { if (variants[key]?.[value]) { variantCss = mergeCss(variantCss, variants[key][value]); } } const compoundVariantCss = getCompoundVariantCss(compoundVariants, computedVariants); return mergeCss(variantCss, compoundVariantCss); } function merge(__cva) { const override = defaults(__cva.config); const variantKeys2 = uniq(__cva.variantKeys, Object.keys(variants)); return cva({ base: mergeCss(base2, override.base), variants: Object.fromEntries( variantKeys2.map((key) => [key, mergeCss(variants[key], override.variants[key])]) ), defaultVariants: mergeProps(defaultVariants, override.defaultVariants), compoundVariants: [...compoundVariants, ...override.compoundVariants] }); } function cvaFn(props) { return css(resolve(props)); } const variantKeys = Object.keys(variants); function splitVariantProps(props) { return splitProps(props, variantKeys); } const variantMap = Object.fromEntries(Object.entries(variants).map(([key, value]) => [key, Object.keys(value)])); return Object.assign(memo(cvaFn), { __cva__: true, variantMap, variantKeys, raw: resolve, config, merge, splitVariantProps, getVariantProps }); } function getCompoundVariantCss(compoundVariants, variantMap) { let result = {}; compoundVariants.forEach((compoundVariant) => { const isMatching = Object.entries(compoundVariant).every(([key, value]) => { if (key === "css") return true; const values = Array.isArray(value) ? value : [value]; return values.some((value2) => variantMap[key] === value2); }); if (isMatching) { result = mergeCss(result, compoundVariant.css); } }); return result; } // styled-system/jsx/is-valid-prop.mjs var userGeneratedStr = "css,ar,pos,insetX,insetY,insetEnd,end,insetStart,start,flexDir,colStart,colEnd,autoCols,rowG,colG,p,pl,pr,pt,pb,py,paddingY,paddingX,px,pe,paddingEnd,ps,paddingStart,ml,mr,mt,mb,m,my,marginY,mx,marginX,me,marginEnd,ms,marginStart,ringWidth,ringColor,ring,ringOffset,w,minW,maxW,h,minH,maxH,textShadowColor,bgPosition,bgPositionX,bgPositionY,bgAttachment,bgClip,bg,bgColor,bgOrigin,bgImage,bgRepeat,bgBlendMode,bgSize,bgGradient,bgLinear,bgRadial,bgConic,br,roundedTopLeft,roundedTopRight,roundedBottomRight,roundedBottomLeft,roundedTop,roundedRight,roundedBottom,roundedLeft,roundedStartStart,roundedStartEnd,roundedStart,roundedEndStart,roundedEndEnd,roundedEnd,borderX,borderXWidth,borderXColor,borderY,borderYWidth,borderYColor,borderStart,borderStartWidth,borderStartColor,borderEnd,borderEndWidth,borderEndColor,shadow,shadowColor,x,y,z,scrollMarginY,scrollMarginX,scrollPaddingY,scrollPaddingX,rowStart,rowEnd,rounded,aspectRatio,boxDecorationBreak,zIndex,boxSizing,objectPosition,objectFit,overscrollBehavior,overscrollBehaviorX,overscrollBehaviorY,position,top,left,inset,insetInline,insetBlock,insetBlockEnd,insetBlockStart,insetInlineEnd,insetInlineStart,right,bottom,float,visibility,display,hideFrom,hideBelow,flexBasis,flex,flexDirection,flexGrow,flexShrink,gridTemplateColumns,gridTemplateRows,gridColumn,gridRow,gridColumnStart,gridColumnEnd,gridAutoFlow,gridAutoColumns,gridAutoRows,gap,gridGap,gridRowGap,gridColumnGap,rowGap,columnGap,justifyContent,alignContent,alignItems,alignSelf,padding,paddingLeft,paddingRight,paddingTop,paddingBottom,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingInline,paddingInlineEnd,paddingInlineStart,marginLeft,marginRight,marginTop,marginBottom,margin,marginBlock,marginBlockEnd,marginBlockStart,marginInline,marginInlineEnd,marginInlineStart,spaceX,spaceY,outlineWidth,outlineColor,outline,outlineOffset,focusRing,focusVisibleRing,focusRingColor,focusRingOffset,focusRingWidth,focusRingStyle,divideX,divideY,divideColor,divideStyle,width,inlineSize,minWidth,minInlineSize,maxWidth,maxInlineSize,height,blockSize,minHeight,minBlockSize,maxHeight,maxBlockSize,boxSize,color,fontFamily,fontSize,fontSizeAdjust,fontPalette,fontKerning,fontFeatureSettings,fontWeight,fontSmoothing,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariationSettings,fontVariantNumeric,letterSpacing,lineHeight,textAlign,textDecoration,textDecorationColor,textEmphasisColor,textDecorationStyle,textDecorationThickness,textUnderlineOffset,textTransform,textIndent,textShadow,textOverflow,verticalAlign,wordBreak,textWrap,truncate,lineClamp,listStyleType,listStylePosition,listStyleImage,listStyle,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundAttachment,backgroundClip,background,backgroundColor,backgroundOrigin,backgroundImage,backgroundRepeat,backgroundBlendMode,backgroundSize,backgroundGradient,backgroundLinear,backgroundRadial,backgroundConic,textGradient,gradientFromPosition,gradientToPosition,gradientFrom,gradientTo,gradientVia,gradientViaPosition,borderRadius,borderTopLeftRadius,borderTopRightRadius,borderBottomRightRadius,borderBottomLeftRadius,borderTopRadius,borderRightRadius,borderBottomRadius,borderLeftRadius,borderStartStartRadius,borderStartEndRadius,borderStartRadius,borderEndStartRadius,borderEndEndRadius,borderEndRadius,border,borderWidth,borderTopWidth,borderLeftWidth,borderRightWidth,borderBottomWidth,borderBlockStartWidth,borderBlockEndWidth,borderColor,borderInline,borderInlineWidth,borderInlineColor,borderBlock,borderBlockWidth,borderBlockColor,borderLeft,borderLeftColor,borderInlineStart,borderInlineStartWidth,borderInlineStartColor,borderRight,borderRightColor,borderInlineEnd,borderInlineEndWidth,borderInlineEndColor,borderTop,borderTopColor,borderBottom,borderBottomColor,borderBlockEnd,borderBlockEndColor,borderBlockStart,borderBlockStartColor,opacity,boxShadow,boxShadowColor,mixBlendMode,filter,brightness,contrast,grayscale,hueRotate,invert,saturate,sepia,dropShadow,blur,backdropFilter,backdropBlur,backdropBrightness,backdropContrast,backdropGrayscale,backdropHueRotate,backdropInvert,backdropOpacity,backdropSaturate,backdropSepia,borderCollapse,borderSpacing,borderSpacingX,borderSpacingY,tableLayout,transitionTimingFunction,transitionDelay,transitionDuration,transitionProperty,transition,animation,animationName,animationTimingFunction,animationDuration,animationDelay,animationPlayState,animationComposition,animationFillMode,animationDirection,animationIterationCount,animationRange,animationState,animationRangeStart,animationRangeEnd,animationTimeline,transformOrigin,transformBox,transformStyle,transform,rotate,rotateX,rotateY,rotateZ,scale,scaleX,scaleY,translate,translateX,translateY,translateZ,accentColor,caretColor,scrollBehavior,scrollbar,scrollbarColor,scrollbarGutter,scrollbarWidth,scrollMargin,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollMarginBottom,scrollMarginBlock,scrollMarginBlockEnd,scrollMarginBlockStart,scrollMarginInline,scrollMarginInlineEnd,scrollMarginInlineStart,scrollPadding,scrollPaddingBlock,scrollPaddingBlockStart,scrollPaddingBlockEnd,scrollPaddingInline,scrollPaddingInlineEnd,scrollPaddingInlineStart,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollPaddingBottom,scrollSnapAlign,scrollSnapStop,scrollSnapType,scrollSnapStrictness,scrollSnapMargin,scrollSnapMarginTop,scrollSnapMarginBottom,scrollSnapMarginLeft,scrollSnapMarginRight,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,touchAction,userSelect,overflow,overflowWrap,overflowX,overflowY,overflowAnchor,overflowBlock,overflowInline,overflowClipBox,overflowClipMargin,overscrollBehaviorBlock,overscrollBehaviorInline,fill,stroke,strokeWidth,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,srOnly,debug,appearance,backfaceVisibility,clipPath,hyphens,mask,maskImage,maskSize,textSizeAdjust,container,containerName,containerType,cursor,grid,center,relative,absolute,fixed,sticky,size,pointer,strokeColor,cols,rows,placeI,placeC,placeS,alignI,alignC,alignS,justifyI,justifyC,justifyS,colN,spaceBetween,rowN,gridRowStart,gridRowEnd,colorPalette,_hover,_focus,_focusWithin,_focusVisible,_disabled,_active,_visited,_target,_readOnly,_readWrite,_empty,_checked,_enabled,_expanded,_highlighted,_complete,_incomplete,_dragging,_before,_after,_firstLetter,_firstLine,_marker,_selection,_file,_backdrop,_first,_last,_only,_even,_odd,_firstOfType,_lastOfType,_onlyOfType,_peerFocus,_peerHover,_peerActive,_peerFocusWithin,_peerFocusVisible,_peerDisabled,_peerChecked,_peerInvalid,_peerExpanded,_peerPlaceholderShown,_groupFocus,_groupHover,_groupActive,_groupFocusWithin,_groupFocusVisible,_groupDisabled,_groupChecked,_groupExpanded,_groupInvalid,_indeterminate,_required,_valid,_invalid,_autofill,_inRange,_outOfRange,_placeholder,_placeholderShown,_pressed,_selected,_grabbed,_underValue,_overValue,_atValue,_default,_optional,_open,_closed,_fullscreen,_loading,_hidden,_current,_currentPage,_currentStep,_today,_unavailable,_rangeStart,_rangeEnd,_now,_topmost,_motionReduce,_motionSafe,_print,_landscape,_portrait,_dark,_light,_osDark,_osLight,_highContrast,_lessContrast,_moreContrast,_ltr,_rtl,_scrollbar,_scrollbarThumb,_scrollbarTrack,_horizontal,_vertical,_icon,_starting,_noscript,_invertedColors,_activeMouse,_activeKeyboard,_checkbox,_radioLabel,_radioDisabled,_radioSelected,_radioCircleOuter,_radioCircleInner,_radioFocusRing,_path,_svg,xs,xsOnly,xsDown,sm,smOnly,smDown,md,mdOnly,mdDown,lg,lgOnly,lgDown,xl,xlOnly,xlDown,2xl,2xlOnly,2xlDown,xsToSm,xsToMd,xsToLg,xsToXl,xsTo2xl,smToMd,smToLg,smToXl,smTo2xl,mdToLg,mdToXl,mdTo2xl,lgToXl,lgTo2xl,xlTo2xl,@/xs,@/sm,@/md,@/lg,@/xl,@/2xl,@/3xl,@/4xl,@/5xl,@/6xl,@/7xl,@/8xl,textStyle"; var userGenerated = userGeneratedStr.split(","); var cssPropertiesStr = "WebkitAppearance,WebkitBorderBefore,WebkitBorderBeforeColor,WebkitBorderBeforeStyle,WebkitBorderBeforeWidth,WebkitBoxReflect,WebkitLineClamp,WebkitMask,WebkitMaskAttachment,WebkitMaskClip,WebkitMaskComposite,WebkitMaskImage,WebkitMaskOrigin,WebkitMaskPosition,WebkitMaskPositionX,WebkitMaskPositionY,WebkitMaskRepeat,WebkitMaskRepeatX,WebkitMaskRepeatY,WebkitMaskSize,WebkitOverflowScrolling,WebkitTapHighlightColor,WebkitTextFillColor,WebkitTextStroke,WebkitTextStrokeColor,WebkitTextStrokeWidth,WebkitTouchCallout,WebkitUserModify,WebkitUserSelect,accentColor,alignContent,alignItems,alignSelf,alignTracks,all,anchorName,anchorScope,animation,animationComposition,animationDelay,animationDirection,animationDuration,animationFillMode,animationIterationCount,animationName,animationPlayState,animationRange,animationRangeEnd,animationRangeStart,animationTimeline,animationTimingFunction,appearance,aspectRatio,backdropFilter,backfaceVisibility,background,backgroundAttachment,backgroundBlendMode,backgroundClip,backgroundColor,backgroundImage,backgroundOrigin,backgroundPosition,backgroundPositionX,backgroundPositionY,backgroundRepeat,backgroundSize,blockSize,border,borderBlock,borderBlockColor,borderBlockEnd,borderBlockEndColor,borderBlockEndStyle,borderBlockEndWidth,borderBlockStart,borderBlockStartColor,borderBlockStartStyle,borderBlockStartWidth,borderBlockStyle,borderBlockWidth,borderBottom,borderBottomColor,borderBottomLeftRadius,borderBottomRightRadius,borderBottomStyle,borderBottomWidth,borderCollapse,borderColor,borderEndEndRadius,borderEndStartRadius,borderImage,borderImageOutset,borderImageRepeat,borderImageSlice,borderImageSource,borderImageWidth,borderInline,borderInlineColor,borderInlineEnd,borderInlineEndColor,borderInlineEndStyle,borderInlineEndWidth,borderInlineStart,borderInlineStartColor,borderInlineStartStyle,borderInlineStartWidth,borderInlineStyle,borderInlineWidth,borderLeft,borderLeftColor,borderLeftStyle,borderLeftWidth,borderRadius,borderRight,borderRightColor,borderRightStyle,borderRightWidth,borderSpacing,borderStartEndRadius,borderStartStartRadius,borderStyle,borderTop,borderTopColor,borderTopLeftRadius,borderTopRightRadius,borderTopStyle,borderTopWidth,borderWidth,bottom,boxAlign,boxDecorationBreak,boxDirection,boxFlex,boxFlexGroup,boxLines,boxOrdinalGroup,boxOrient,boxPack,boxShadow,boxSizing,breakAfter,breakBefore,breakInside,captionSide,caret,caretColor,caretShape,clear,clip,clipPath,clipRule,color,colorInterpolationFilters,colorScheme,columnCount,columnFill,columnGap,columnRule,columnRuleColor,columnRuleStyle,columnRuleWidth,columnSpan,columnWidth,columns,contain,containIntrinsicBlockSize,containIntrinsicHeight,containIntrinsicInlineSize,containIntrinsicSize,containIntrinsicWidth,container,containerName,containerType,content,contentVisibility,counterIncrement,counterReset,counterSet,cursor,cx,cy,d,direction,display,dominantBaseline,emptyCells,fieldSizing,fill,fillOpacity,fillRule,filter,flex,flexBasis,flexDirection,flexFlow,flexGrow,flexShrink,flexWrap,float,floodColor,floodOpacity,font,fontFamily,fontFeatureSettings,fontKerning,fontLanguageOverride,fontOpticalSizing,fontPalette,fontSize,fontSizeAdjust,fontSmooth,fontStretch,fontStyle,fontSynthesis,fontSynthesisPosition,fontSynthesisSmallCaps,fontSynthesisStyle,fontSynthesisWeight,fontVariant,fontVariantAlternates,fontVariantCaps,fontVariantEastAsian,fontVariantEmoji,fontVariantLigatures,fontVariantNumeric,fontVariantPosition,fontVariationSettings,fontWeight,forcedColorAdjust,gap,grid,gridArea,gridAutoColumns,gridAutoFlow,gridAutoRows,gridColumn,gridColumnEnd,gridColumnGap,gridColumnStart,gridGap,gridRow,gridRowEnd,gridRowGap,gridRowStart,gridTemplate,gridTemplateAreas,gridTemplateColumns,gridTemplateRows,hangingPunctuation,height,hyphenateCharacter,hyphenateLimitChars,hyphens,imageOrientation,imageRendering,imageResolution,imeMode,initialLetter,initialLetterAlign,inlineSize,inset,insetBlock,insetBlockEnd,insetBlockStart,insetInline,insetInlineEnd,insetInlineStart,interpolateSize,isolation,justifyContent,justifyItems,justifySelf,justifyTracks,left,letterSpacing,lightingColor,lineBreak,lineClamp,lineHeight,lineHeightStep,listStyle,listStyleImage,listStylePosition,listStyleType,margin,marginBlock,marginBlockEnd,marginBlockStart,marginBottom,marginInline,marginInlineEnd,marginInlineStart,marginLeft,marginRight,marginTop,marginTrim,marker,markerEnd,markerMid,markerStart,mask,maskBorder,maskBorderMode,maskBorderOutset,maskBorderRepeat,maskBorderSlice,maskBorderSource,maskBorderWidth,maskClip,maskComposite,maskImage,maskMode,maskOrigin,maskPosition,maskRepeat,maskSize,maskType,masonryAutoFlow,mathDepth,mathShift,mathStyle,maxBlockSize,maxHeight,maxInlineSize,maxLines,maxWidth,minBlockSize,minHeight,minInlineSize,minWidth,mixBlendMode,objectFit,objectPosition,offset,offsetAnchor,offsetDistance,offsetPath,offsetPosition,offsetRotate,opacity,order,orphans,outline,outlineColor,outlineOffset,outlineStyle,outlineWidth,overflow,overflowAnchor,overflowBlock,overflowClipBox,overflowClipMargin,overflowInline,overflowWrap,overflowX,overflowY,overlay,overscrollBehavior,overscrollBehaviorBlock,overscrollBehaviorInline,overscrollBehaviorX,overscrollBehaviorY,padding,paddingBlock,paddingBlockEnd,paddingBlockStart,paddingBottom,paddingInline,paddingInlineEnd,paddingInlineStart,paddingLeft,paddingRight,paddingTop,page,pageBreakAfter,pageBreakBefore,pageBreakInside,paintOrder,perspective,perspectiveOrigin,placeContent,placeItems,placeSelf,pointerEvents,position,positionAnchor,positionArea,positionTry,positionTryFallbacks,positionTryOrder,positionVisibility,printColorAdjust,quotes,r,resize,right,rotate,rowGap,rubyAlign,rubyMerge,rubyPosition,rx,ry,scale,scrollBehavior,scrollMargin,scrollMarginBlock,scrollMarginBlockEnd,scrollMarginBlockStart,scrollMarginBottom,scrollMarginInline,scrollMarginInlineEnd,scrollMarginInlineStart,scrollMarginLeft,scrollMarginRight,scrollMarginTop,scrollPadding,scrollPaddingBlock,scrollPaddingBlockEnd,scrollPaddingBlockStart,scrollPaddingBottom,scrollPaddingInline,scrollPaddingInlineEnd,scrollPaddingInlineStart,scrollPaddingLeft,scrollPaddingRight,scrollPaddingTop,scrollSnapAlign,scrollSnapCoordinate,scrollSnapDestination,scrollSnapPointsX,scrollSnapPointsY,scrollSnapStop,scrollSnapType,scrollSnapTypeX,scrollSnapTypeY,scrollTimeline,scrollTimelineAxis,scrollTimelineName,scrollbarColor,scrollbarGutter,scrollbarWidth,shapeImageThreshold,shapeMargin,shapeOutside,shapeRendering,stopColor,stopOpacity,stroke,strokeDasharray,strokeDashoffset,strokeLinecap,strokeLinejoin,strokeMiterlimit,strokeOpacity,strokeWidth,tabSize,tableLayout,textAlign,textAlignLast,textAnchor,textBox,textBoxEdge,textBoxTrim,textCombineUpright,textDecoration,textDecorationColor,textDecorationLine,textDecorationSkip,textDecorationSkipInk,textDecorationStyle,textDecorationThickness,textEmphasis,textEmphasisColor,textEmphasisPosition,textEmphasisStyle,textIndent,textJustify,textOrientation,textOverflow,textRendering,textShadow,textSizeAdjust,textSpacingTrim,textTransform,textUnderlineOffset,textUnderlinePosition,textWrap,textWrapMode,textWrapStyle,timelineScope,top,touchAction,transform,transformBox,transformOrigin,transformStyle,transition,transitionBehavior,transitionDelay,transitionDuration,transitionProperty,transitionTimingFunction,translate,unicodeBidi,userSelect,vectorEffect,verticalAlign,viewTimeline,viewTimelineAxis,viewTimelineInset,viewTimelineName,viewTransitionName,visibility,whiteSpace,whiteSpaceCollapse,widows,width,willChange,wordBreak,wordSpacing,wordWrap,writingMode,x,y,zIndex,zoom,alignmentBaseline,baselineShift,colorInterpolation,colorRendering,glyphOrientationVertical"; var allCssProperties = cssPropertiesStr.split(",").concat(userGenerated); var properties = new Map(allCssProperties.map((prop) => [prop, true])); var cssPropertySelectorRegex = /&|@/; var isCssProperty = /* @__PURE__ */ memo((prop) => { return properties.has(prop) || prop.startsWith("--") || cssPropertySelectorRegex.test(prop); }); // styled-system/jsx/factory-helper.mjs var defaultShouldForwardProp = (prop, variantKeys) => !variantKeys.includes(prop) && !isCssProperty(prop); var composeShouldForwardProps = (tag, shouldForwardProp) => tag.__shouldForwardProps__ && shouldForwardProp ? (propName) => tag.__shouldForwardProps__(propName) && shouldForwardProp(propName) : shouldForwardProp; var composeCvaFn = (cvaA, cvaB) => { if (cvaA && !cvaB) return cvaA; if (!cvaA && cvaB) return cvaB; if (cvaA.__cva__ && cvaB.__cva__ || cvaA.__recipe__ && cvaB.__recipe__) return cvaA.merge(cvaB); const error = new TypeError("Cannot merge cva with recipe. Please use either cva or recipe."); TypeError.captureStackTrace?.(error); throw error; }; var getDisplayName = (Component) => { if (typeof Component === "string") return Component; return Component?.displayName || Component?.name || "Component"; }; // styled-system/jsx/factory.mjs function styledFn(Dynamic, configOrCva = {}, options = {}) { const cvaFn = configOrCva.__cva__ || configOrCva.__recipe__ ? configOrCva : cva(configOrCva); const forwardFn = options.shouldForwardProp || defaultShouldForwardProp; const shouldForwardProp = (prop) => { if (options.forwardProps?.includes(prop)) return true; return forwardFn(prop, cvaFn.variantKeys); }; const defaultProps = Object.assign( options.dataAttr && configOrCva.__name__ ? { "data-recipe": configOrCva.__name__ } : {}, options.defaultProps ); const __cvaFn__ = composeCvaFn(Dynamic.__cva__, cvaFn); const __shouldForwardProps__ = composeShouldForwardProps(Dynamic, shouldForwardProp); const __base__ = Dynamic.__base__ || Dynamic; const StyledComponent = /* @__PURE__ */ React11.forwardRef(function StyledComponent2(props, ref) { const { as: Element2 = __base__, unstyled, children, ...restProps } = props; const combinedProps = React11.useMemo(() => Object.assign({}, defaultProps, restProps), [restProps]); const [htmlProps2, forwardedProps, variantProps, styleProps, elementProps] = React11.useMemo(() => { return splitProps(combinedProps, normalizeHTMLProps.keys, __shouldForwardProps__, __cvaFn__.variantKeys, isCssProperty); }, [combinedProps]); function recipeClass() { const { css: cssStyles, ...propStyles } = styleProps; const compoundVariantStyles = __cvaFn__.__getCompoundVariantCss__?.(variantProps); return cx(__cvaFn__(variantProps, false), css(compoundVariantStyles, propStyles, cssStyles), combinedProps.className); } function cvaClass() { const { css: cssStyles, ...propStyles } = styleProps; const cvaStyles = __cvaFn__.raw(variantProps); return cx(css(cvaStyles, propStyles, cssStyles), combinedProps.className); } const classes = () => { if (unstyled) { const { css: cssStyles, ...propStyles } = styleProps; return cx(css(propStyles, cssStyles), combinedProps.className); } return configOrCva.__recipe__ ? recipeClass() : cvaClass(); }; return React11.createElement(Element2, { ref, ...forwardedProps, ...elementProps, ...normalizeHTMLProps(htmlProps2), className: classes() }, children ?? combinedProps.children); }); const name = getDisplayName(__base__); StyledComponent.displayName = `styled.${name}`; StyledComponent.__cva__ = __cvaFn__; StyledComponent.__base__ = __base__; StyledComponent.__shouldForwardProps__ = shouldForwardProp; return StyledComponent; } function createJsxFactory() { const cache = /* @__PURE__ */ new Map(); return new Proxy(styledFn, { apply(_, __, args) { return styledFn(...args); }, get(_, el) { if (!cache.has(el)) { cache.set(el, styledFn(el)); } return cache.get(el); } }); } var styled = /* @__PURE__ */ createJsxFactory(); var base = styled("div", { base: { m: 0 } }); var tags = { div: base, a: styled("a"), br: styled("br"), button: styled("button"), canvas: styled("canvas"), form: styled("form"), h1: styled("h1"), h2: styled("h2"), h3: styled("h3"), hr: styled("hr"), nav: styled("nav"), main: styled("main"), aside: styled("aside"), article: styled("article"), section: styled("section"), details: styled("details"), header: styled("header"), footer: styled("footer"), strong: styled("strong"), em: styled("em"), img: styled("img"), del: styled("del"), ins: styled("ins"), kbd: styled("kbd"), code: styled("code"), mark: styled("mark"), samp: styled("samp"), small: styled("small"), sub: styled("sub"), sup: styled("sup"), u: styled("u"), var: styled("var"), input: styled("input"), label: styled("label"), legend: styled("legend"), p: styled("p"), select: styled("select"), span: styled("span"), svg: styled("svg"), textarea: styled("textarea"), table: styled("table"), tr: styled("tr"), th: styled("th"), td: styled("td"), tbody: styled("tbody"), thead: styled("thead"), tfoot: styled("tfoot"), progress: styled("progress"), ol: styled("ol"), ul: styled("ul"), li: styled("li"), blockquote: styled("blockquote"), pre: styled("pre") }; var motionTags = { div: styled(framerMotion.motion.div, { base: { m: 0 } }), a: styled(framerMotion.motion.a), br: styled(framerMotion.motion.br), button: styled(framerMotion.motion.button), canvas: styled(framerMotion.motion.canvas), form: styled(framerMotion.motion.form), h1: styled(framerMotion.motion.h1), h2: styled(framerMotion.motion.h2), h3: styled(framerMotion.motion.h3), hr: styled(framerMotion.motion.hr), nav: styled(framerMotion.motion.nav), main: styled(framerMotion.motion.main), aside: styled(framerMotion.motion.aside), article: styled(framerMotion.motion.article), section: styled(framerMotion.motion.section), details: styled(framerMotion.motion.details), header: styled(framerMotion.motion.header), footer: styled(framerMotion.motion.footer), strong: styled(framerMotion.motion.strong), em: styled(framerMotion.motion.em), img: styled(framerMotion.motion.img), del: styled(framerMotion.motion.del), ins: styled(framerMotion.motion.ins), kbd: styled(framerMotion.motion.kbd), code: styled(framerMotion.motion.code), mark: styled(framerMotion.motion.mark), samp: styled(framerMotion.motion.samp), small: styled(framerMotion.motion.small), sub: styled(framerMotion.motion.sub), sup: styled(framerMotion.motion.sup), u: styled(framerMotion.motion.u), var: styled(framerMotion.motion.var), input: styled(framerMotion.motion.input), label: styled(framerMotion.motion.label), legend: styled(framerMotion.motion.legend), p: styled(framerMotion.motion.p), select: styled(framerMotion.motion.select), span: styled(framerMotion.motion.span), svg: styled(framerMotion.motion.svg), textarea: styled(framerMotion.motion.textarea), table: styled(framerMotion.motion.table), tr: styled(framerMotion.motion.tr), th: styled(framerMotion.motion.th), td: styled(framerMotion.motion.td), tbody: styled(framerMotion.motion.tbody), thead: styled(framerMotion.motion.thead), tfoot: styled(framerMotion.motion.tfoot), progress: styled(framerMotion.motion.progress), ol: styled(framerMotion.motion.ol), ul: styled(framerMotion.motion.ul), li: styled(framerMotion.motion.li), blockquote: styled(framerMotion.motion.blockquote), pre: styled(framerMotion.motion.pre) }; var loadingIconsMap = { rotatingLines: reactLoaderSpinner.RotatingLines, spinner: reactLoaderSpinner.TailSpin, beat: reactSpinners.BeatLoader, dots: reactLoaderSpinner.ThreeDots, oval: reactLoaderSpinner.Oval }; var loadingIcons = Object.keys(loadingIconsMap); var Div = tags.div; var MotionDiv = motionTags.div; function MenuContainer(props) { const { children, ...rest } = props; return /* @__PURE__ */ jsxRuntime.jsx(Div, { ...rest, role: "menu", "data-menu-container": true, children }); } function Menu(props) { const { variant = "click", isOpen: isOpenControlled, children, trigger, ...rest } = props; const hoverTimeoutRef = React11__namespace.default.useRef(null); const [isOpen, setOpen] = React11__namespace.default.useState(isOpenControlled ?? false); const onOpenChange = (open) => { const newOpenState = typeof open === "function" ? open(isOpen) : open; props.onOpenOrClose?.(newOpenState); setOpen(newOpenState); }; React11__namespace.default.useEffect(() => { if (typeof isOpenControlled !== "boolean") return; setOpen(isOpenControlled); }, [isOpenControlled]); const { refs, x, y, middlewareData: { hide: hideData }, context: floatingContext } = react.useFloating({ placement: props.placement ?? "bottom-start", whileElementsMounted: react.autoUpdate, open: isOpen, onOpenChange, middleware: [ react.offset({ crossAxis: props.offset?.x, mainAxis: props.offset?.y }), react.flip({ fallbackPlacements: ["top-end"] }), react.shift({ padding: 5 }), react.hide({ strategy: "referenceHidden" }) ] }); const openMenu = () => { if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current); hoverTimeoutRef.current = null; onOpenChange(true); }; const closeMenuHover = () => { if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current); hoverTimeoutRef.current = setTimeout( () => onOpenChange(false), props.hoverDelay ?? 150 ); }; const closeMenuImmediate = () => { if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current); hoverTimeoutRef.current = null; onOpenChange(false); }; const handleTriggerClick = () => { if (variant === "click") onOpenChange((prev) => !prev); }; const handleTriggerMouseEnter = () => { if (variant === "hover") { if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current); hoverTimeoutRef.current = setTimeout(() => { openMenu(); }, props.hoverDelay ?? 250); } }; const handleTriggerMouseLeave = () => { if (variant === "hover") { if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current); closeMenuHover(); } }; const handleMenuMouseEnter = () => { if (variant === "hover") openMenu(); }; const handleMenuMouseLeave = () => { if (variant === "hover") closeMenuHover(); }; useOutsideClick( refs.floating, (event) => { const referenceElement = refs.reference.current; if (isOpen && referenceElement instanceof Element && !referenceElement.contains(event.target)) { closeMenuImmediate(); } }, isOpen ); React11__namespace.default.useEffect(() => { if (!hideData?.referenceHidden) return; closeMenuImmediate(); }, [hideData, closeMenuImmediate]); Reac