{"version":3,"file":"props-helpers.mjs","sources":["../../../src/types/props-helpers.ts"],"sourcesContent":["import classNames from 'classnames'\n\nimport { colorTokenCssVar, cssDimension } from '~/src/utils/style'\n\n// NOTE: 'typescript-plugin-css-modules' does not support path alias\n/* eslint-disable no-restricted-imports */\nimport elevationStyles from '../styles/components/elevation.module.scss'\nimport formFieldSizeStyles from '../styles/components/form-field-size.module.scss'\nimport layoutStyles from '../styles/components/layout.module.scss'\nimport marginStyles from '../styles/components/margin.module.scss'\nimport radiusStyles from '../styles/components/radius.module.scss'\nimport zIndexStyles from '../styles/components/z-index.module.scss'\n/* eslint-enable no-restricted-imports */\n\nimport {\n  type BetaElevation,\n  type BetaRadius,\n  type BetaZIndex,\n} from './beta-tokens'\nimport { type FormFieldSize, type LayoutProps, type MarginProps } from './props'\nimport { type Elevation, type Radius, type ZIndex } from './tokens'\n\nexport const splitByMarginProps = <Props extends MarginProps>({\n  margin,\n  marginHorizontal,\n  marginVertical,\n  marginTop,\n  marginRight,\n  marginBottom,\n  marginLeft,\n  ...rest\n}: Props): [MarginProps, Omit<Props, keyof MarginProps>] => [\n  {\n    margin,\n    marginHorizontal,\n    marginVertical,\n    marginTop,\n    marginRight,\n    marginBottom,\n    marginLeft,\n  },\n  rest,\n]\n\nexport const splitByLayoutProps = <Props extends LayoutProps>({\n  padding,\n  paddingHorizontal,\n  paddingVertical,\n  paddingTop,\n  paddingRight,\n  paddingBottom,\n  paddingLeft,\n  width,\n  height,\n  maxWidth,\n  minWidth,\n  maxHeight,\n  minHeight,\n  position,\n  inset,\n  top,\n  right,\n  bottom,\n  left,\n  basis,\n  shrink,\n  grow,\n  backgroundColor,\n  borderColor,\n  borderRadius,\n  borderWidth,\n  borderTopWidth,\n  borderRightWidth,\n  borderBottomWidth,\n  borderLeftWidth,\n  elevation,\n  zIndex,\n  overflow,\n  overflowX,\n  overflowY,\n  ...rest\n}: Props): [LayoutProps, Omit<Props, keyof LayoutProps>] => [\n  {\n    padding,\n    paddingHorizontal,\n    paddingVertical,\n    paddingTop,\n    paddingRight,\n    paddingBottom,\n    paddingLeft,\n    width,\n    height,\n    maxWidth,\n    minWidth,\n    maxHeight,\n    minHeight,\n    position,\n    inset,\n    top,\n    right,\n    bottom,\n    left,\n    basis,\n    shrink,\n    grow,\n    backgroundColor,\n    borderColor,\n    borderRadius,\n    borderWidth,\n    borderTopWidth,\n    borderRightWidth,\n    borderBottomWidth,\n    borderLeftWidth,\n    elevation,\n    zIndex,\n    overflow,\n    overflowX,\n    overflowY,\n  },\n  rest,\n]\n\nfunction getElevationClassName(elevation: Elevation | BetaElevation) {\n  return elevationStyles[`elevation-${elevation}`]\n}\n\nfunction getRadiusClassName(radius: Radius | BetaRadius) {\n  return radiusStyles[`radius-${radius}`]\n}\n\nexport function getZIndexClassName(zIndex: ZIndex | BetaZIndex) {\n  return zIndexStyles[`z-index-${zIndex}`]\n}\n\nexport const getMarginStyles = ({\n  margin,\n  marginHorizontal,\n  marginVertical,\n  marginTop,\n  marginRight,\n  marginBottom,\n  marginLeft,\n}: MarginProps) => ({\n  style: {\n    '--b-margin': cssDimension(margin),\n    '--b-margin-horizontal': cssDimension(marginHorizontal),\n    '--b-margin-vertical': cssDimension(marginVertical),\n    '--b-margin-top': cssDimension(marginTop),\n    '--b-margin-right': cssDimension(marginRight),\n    '--b-margin-bottom': cssDimension(marginBottom),\n    '--b-margin-left': cssDimension(marginLeft),\n  },\n  className: marginStyles.margin,\n})\n\nexport const getLayoutStyles = ({\n  padding,\n  paddingHorizontal,\n  paddingVertical,\n  paddingTop,\n  paddingRight,\n  paddingBottom,\n  paddingLeft,\n  width,\n  height,\n  maxWidth,\n  minWidth,\n  maxHeight,\n  minHeight,\n  position,\n  inset,\n  top,\n  right,\n  bottom,\n  left,\n  basis,\n  shrink,\n  grow,\n  backgroundColor,\n  borderColor,\n  borderRadius,\n  borderWidth,\n  borderTopWidth,\n  borderRightWidth,\n  borderBottomWidth,\n  borderLeftWidth,\n  elevation,\n  zIndex,\n  overflow,\n  overflowX,\n  overflowY,\n}: LayoutProps) => ({\n  style: {\n    '--b-padding': cssDimension(padding),\n    '--b-padding-horizontal': cssDimension(paddingHorizontal),\n    '--b-padding-vertical': cssDimension(paddingVertical),\n    '--b-padding-top': cssDimension(paddingTop),\n    '--b-padding-right': cssDimension(paddingRight),\n    '--b-padding-bottom': cssDimension(paddingBottom),\n    '--b-padding-left': cssDimension(paddingLeft),\n    '--b-width': cssDimension(width),\n    '--b-height': cssDimension(height),\n    '--b-max-width': cssDimension(maxWidth),\n    '--b-min-width': cssDimension(minWidth),\n    '--b-max-height': cssDimension(maxHeight),\n    '--b-min-height': cssDimension(minHeight),\n    '--b-inset': cssDimension(inset),\n    '--b-top': cssDimension(top),\n    '--b-right': cssDimension(right),\n    '--b-bottom': cssDimension(bottom),\n    '--b-left': cssDimension(left),\n    '--b-basis': cssDimension(basis),\n    '--b-shrink': shrink,\n    '--b-grow': grow,\n    '--b-background-color': colorTokenCssVar(backgroundColor),\n    '--b-border-color': colorTokenCssVar(borderColor),\n    '--b-border-width': cssDimension(borderWidth),\n    '--b-border-top-width': cssDimension(borderTopWidth),\n    '--b-border-right-width': cssDimension(borderRightWidth),\n    '--b-border-bottom-width': cssDimension(borderBottomWidth),\n    '--b-border-left-width': cssDimension(borderLeftWidth),\n  },\n  className: classNames(\n    layoutStyles.layout,\n    position && layoutStyles[`position-${position}`],\n    overflow && layoutStyles[`overflow-${overflow}`],\n    overflowX && layoutStyles[`overflow-x-${overflowX}`],\n    overflowY && layoutStyles[`overflow-y-${overflowY}`],\n    elevation && getElevationClassName(elevation),\n    borderRadius && getRadiusClassName(borderRadius),\n    zIndex && getZIndexClassName(zIndex)\n  ),\n})\n\nexport function getFormFieldSizeClassName(size: FormFieldSize) {\n  return formFieldSizeStyles[`size-${size}`]\n}\n"],"names":["splitByMarginProps","margin","marginHorizontal","marginVertical","marginTop","marginRight","marginBottom","marginLeft","rest","splitByLayoutProps","padding","paddingHorizontal","paddingVertical","paddingTop","paddingRight","paddingBottom","paddingLeft","width","height","maxWidth","minWidth","maxHeight","minHeight","position","inset","top","right","bottom","left","basis","shrink","grow","backgroundColor","borderColor","borderRadius","borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","elevation","zIndex","overflow","overflowX","overflowY","getElevationClassName","elevationStyles","getRadiusClassName","radius","radiusStyles","getZIndexClassName","zIndexStyles","getMarginStyles","style","cssDimension","className","marginStyles","getLayoutStyles","colorTokenCssVar","classNames","layoutStyles","layout","getFormFieldSizeClassName","size","formFieldSizeStyles"],"mappings":"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"}