{
  "version": 3,
  "sources": ["../../../src/form/LmStarRating.tsx"],
  "sourcesContent": ["import { Button, ButtonProps, getTokens, getVariableValue, SizeTokens, XStack } from 'tamagui'\nimport { useId, useState } from 'react'\nimport { LmFormFieldContainer } from './LmFormFieldContainer'\nimport { LmFormContainerBaseTypes } from './formContainerTypes'\nimport { Star } from 'tamagui-phosphor-icons'\n\ntype StarProps = Omit<ButtonProps, 'size'> & {\n  filled: boolean\n  size?: SizeTokens\n}\n\nfunction StarIcon({ filled, size = '$2', ...props }: StarProps) {\n  // due to missing PR this needs to be done manually\n  const iconSize =\n    typeof size === 'string' ? getVariableValue(getTokens().size[size] || size) : size\n  return (\n    <Button\n      {...props}\n      size={size}\n      circular\n      unstyled\n      icon={<Star size={iconSize} weight={filled ? 'fill' : 'regular'} />}\n    />\n  )\n}\n\nexport type LmStarRatingProps = LmFormContainerBaseTypes & {\n  count?: number\n  onChange?: (rating: number | null) => void\n  value?: number | null\n  size?: SizeTokens\n  disabled?: boolean\n}\n\nexport function LmStarRating({\n  count = 5,\n  onChange,\n  value = null,\n  disabled,\n  required,\n  error,\n  helperText,\n  helperTextProps,\n  label,\n  labelInline,\n  labelProps,\n  ...iconProps\n}: LmStarRatingProps) {\n  const id = useId()\n  const [rating, setRating] = useState<number | null>(value)\n  const arr = Array.from(Array(count).keys())\n  return (\n    <LmFormFieldContainer\n      id={id}\n      required={required}\n      error={error}\n      helperText={helperText}\n      helperTextProps={helperTextProps}\n      label={label}\n      labelInline={labelInline}\n      labelProps={labelProps}\n    >\n      <XStack>\n        {arr.map((value) => {\n          const currentRating = value + 1\n          return (\n            <StarIcon\n              key={currentRating}\n              {...iconProps}\n              filled={currentRating <= (rating || 0)}\n              onPress={() => {\n                if (disabled) {\n                  return\n                }\n                let newRating = rating === currentRating ? null : currentRating\n                setRating(newRating)\n                if (typeof onChange === 'function') {\n                  onChange(newRating)\n                }\n              }}\n            />\n          )\n        })}\n      </XStack>\n    </LmFormFieldContainer>\n  )\n}\n"],
  "mappings": "AAAA,SAAS,QAAqB,WAAW,kBAA8B,cAAc;AACrF,SAAS,OAAO,gBAAgB;AAChC,SAAS,4BAA4B;AAErC,SAAS,YAAY;AAOrB,SAAS,SAAS,EAAE,QAAQ,OAAO,SAAS,MAAM,GAAc;AAE9D,QAAM,WACJ,OAAO,SAAS,WAAW,iBAAiB,UAAU,EAAE,KAAK,SAAS,IAAI,IAAI;AAChF,SACE,CAAC,WACK,OACJ,MAAM,MACN,SACA,SACA,MAAM,CAAC,KAAK,MAAM,UAAU,QAAQ,SAAS,SAAS,WAAW,IACnE;AAEJ;AAUO,SAAS,aAAa;AAAA,EAC3B,QAAQ;AAAA,EACR;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,KACG;AACL,GAAsB;AACpB,QAAM,KAAK,MAAM;AACjB,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAwB,KAAK;AACzD,QAAM,MAAM,MAAM,KAAK,MAAM,KAAK,EAAE,KAAK,CAAC;AAC1C,SACE,CAAC,qBACC,IAAI,IACJ,UAAU,UACV,OAAO,OACP,YAAY,YACZ,iBAAiB,iBACjB,OAAO,OACP,aAAa,aACb,YAAY,YAEZ,CAAC,QACE,IAAI,IAAI,CAACA,WAAU;AAClB,UAAM,gBAAgBA,SAAQ;AAC9B,WACE,CAAC,SACC,KAAK,mBACD,WACJ,QAAQ,kBAAkB,UAAU,IACpC,SAAS,MAAM;AACb,UAAI,UAAU;AACZ;AAAA,MACF;AACA,UAAI,YAAY,WAAW,gBAAgB,OAAO;AAClD,gBAAU,SAAS;AACnB,UAAI,OAAO,aAAa,YAAY;AAClC,iBAAS,SAAS;AAAA,MACpB;AAAA,IACF,GACF;AAAA,EAEJ,CAAC,EACH,EArBC,OAsBH,EAhCC;AAkCL;",
  "names": ["value"]
}
