{"version":3,"file":"SmoothCornersBox.mjs","sources":["../../../../src/components/SmoothCornersBox/SmoothCornersBox.tsx"],"sourcesContent":["'use client'\n\nimport { forwardRef } from 'react'\nimport * as React from 'react'\n\nimport classNames from 'classnames'\n\nimport { colorTokenCssVar, cssUrl, px } from '~/src/utils/style'\n\nimport { FeatureType, useFeatureFlag } from '~/src/components/FeatureProvider'\n\nimport { type SmoothCornersBoxProps } from './SmoothCornersBox.types'\n\nimport styles from './SmoothCornersBox.module.scss'\n\n/**\n * `SmoothCornersBox` is a simple `div` element with smooth corners.\n * It is available by enabling the `SmoothCornersFeature`.\n * @example\n *\n * ```tsx\n * <AppProvider features={[SmoothCornersFeature]}>\n *   <SmoothCornersBox />\n * </AppProvider>\n * ```\n */\nexport const SmoothCornersBox = forwardRef<\n  HTMLDivElement,\n  SmoothCornersBoxProps\n>(function SmoothCornersBox(\n  {\n    children,\n    style,\n    className,\n    disabled,\n    borderRadius,\n    margin,\n    shadow,\n    backgroundColor,\n    backgroundImage,\n    ...rest\n  },\n  forwardedRef\n) {\n  const shadowBlurRadius = shadow?.blurRadius ?? 0\n  const shadowSpreadRadius = shadow?.spreadRadius ?? 0\n\n  return (\n    <div\n      {...rest}\n      ref={forwardedRef}\n      style={\n        {\n          ...style,\n          '--b-smooth-corners-box-border-radius': borderRadius,\n          '--b-smooth-corners-box-shadow-offset-x': px(shadow?.offsetX),\n          '--b-smooth-corners-box-shadow-offset-y': px(shadow?.offsetY),\n          '--b-smooth-corners-box-shadow-blur-radius': `${shadowBlurRadius}px`,\n          '--b-smooth-corners-box-shadow-spread-radius': `${shadowSpreadRadius}px`,\n          '--b-smooth-corners-box-shadow-color': colorTokenCssVar(shadow?.color),\n          /**\n           * NOTE: Calculate in javascript because it cannot access calculated values via CSS calc() in the paint worklet.\n           * @see {@link ~/src/features/SmoothCorners/smoothCornersScript.ts}\n           */\n          '--b-smooth-corners-box-padding': `${Math.max(shadowBlurRadius, shadowSpreadRadius) * 2}px`,\n          '--b-smooth-corners-box-margin': `${margin ?? 0}px`,\n          '--b-smooth-corners-box-background-color':\n            colorTokenCssVar(backgroundColor),\n          '--b-smooth-corners-box-background-image': cssUrl(backgroundImage),\n        } as React.CSSProperties\n      }\n      className={classNames(styles.SmoothCornersBox, className)}\n      data-state={\n        useFeatureFlag(FeatureType.SmoothCorners) && !disabled\n          ? 'enabled'\n          : 'disabled'\n      }\n    >\n      {children}\n    </div>\n  )\n})\n"],"names":["SmoothCornersBox","forwardRef","children","style","className","disabled","borderRadius","margin","shadow","backgroundColor","backgroundImage","rest","forwardedRef","_shadow$blurRadius","_shadow$spreadRadius","shadowBlurRadius","blurRadius","shadowSpreadRadius","spreadRadius","_jsx","ref","px","offsetX","offsetY","colorTokenCssVar","color","Math","max","cssUrl","classNames","styles","useFeatureFlag","FeatureType","SmoothCorners"],"mappings":";;;;;;;;MA0BaA,gBAAgB,gBAAGC,UAAU,CAGxC,SAASD,gBAAgBA,CACzB;EACEE,QAAQ;EACRC,KAAK;EACLC,SAAS;EACTC,QAAQ;EACRC,YAAY;EACZC,MAAM;EACNC,MAAM;EACNC,eAAe;EACfC,eAAe;EACf,GAAGC;AACL,CAAC,EACDC,YAAY,EACZ;EAAA,IAAAC,kBAAA,EAAAC,oBAAA;AACA,EAAA,MAAMC,gBAAgB,GAAAF,CAAAA,kBAAA,GAAGL,MAAM,aAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAEQ,UAAU,MAAAH,IAAAA,IAAAA,kBAAA,KAAAA,KAAAA,CAAAA,GAAAA,kBAAA,GAAI,CAAC;AAChD,EAAA,MAAMI,kBAAkB,GAAAH,CAAAA,oBAAA,GAAGN,MAAM,aAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAEU,YAAY,MAAAJ,IAAAA,IAAAA,oBAAA,KAAAA,KAAAA,CAAAA,GAAAA,oBAAA,GAAI,CAAC;AAEpD,EAAA,oBACEK,GAAA,CAAA,KAAA,EAAA;AAAA,IAAA,GACMR,IAAI;AACRS,IAAAA,GAAG,EAAER,YAAa;AAClBT,IAAAA,KAAK,EACH;AACE,MAAA,GAAGA,KAAK;AACR,MAAA,sCAAsC,EAAEG,YAAY;MACpD,wCAAwC,EAAEe,EAAE,CAACb,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEc,OAAO,CAAC;MAC7D,wCAAwC,EAAED,EAAE,CAACb,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEe,OAAO,CAAC;MAC7D,2CAA2C,EAAE,CAAGR,EAAAA,gBAAgB,CAAI,EAAA,CAAA;MACpE,6CAA6C,EAAE,CAAGE,EAAAA,kBAAkB,CAAI,EAAA,CAAA;MACxE,qCAAqC,EAAEO,gBAAgB,CAAChB,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAEiB,KAAK,CAAC;AACtE;AACV;AACA;AACA;AACU,MAAA,gCAAgC,EAAE,CAAA,EAAGC,IAAI,CAACC,GAAG,CAACZ,gBAAgB,EAAEE,kBAAkB,CAAC,GAAG,CAAC,CAAI,EAAA,CAAA;MAC3F,+BAA+B,EAAE,GAAGV,MAAM,KAAA,IAAA,IAANA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,MAAM,GAAI,CAAC,CAAI,EAAA,CAAA;AACnD,MAAA,yCAAyC,EACvCiB,gBAAgB,CAACf,eAAe,CAAC;MACnC,yCAAyC,EAAEmB,MAAM,CAAClB,eAAe;KAEpE;IACDN,SAAS,EAAEyB,UAAU,CAACC,MAAM,CAAC9B,gBAAgB,EAAEI,SAAS,CAAE;AAC1D,IAAA,YAAA,EACE2B,cAAc,CAACC,WAAW,CAACC,aAAa,CAAC,IAAI,CAAC5B,QAAQ,GAClD,SAAS,GACT,UACL;AAAAH,IAAAA,QAAA,EAEAA;AAAQ,GACN,CAAC;AAEV,CAAC;;;;"}