{
  "version": 3,
  "sources": ["../../../src/form/LmSelect.tsx"],
  "sourcesContent": ["import { Select, SelectProps, ThemeProps, YStack } from 'tamagui'\nimport { LinearGradient } from '@tamagui/linear-gradient'\nimport { colormap, ThemeColors } from '../core/themeMappings'\nimport { CaretDown, CaretUp, Check } from 'tamagui-phosphor-icons'\nimport { useId, useState } from 'react'\nimport { LmFormFieldContainer } from './LmFormFieldContainer'\nimport { LmFormContainerBaseTypes } from './formContainerTypes'\n\ntype GetAltThemeNames<S> = (S extends `${string}_${infer Alt}` ? GetAltThemeNames<Alt> : S) | S\n\nexport type LmSelectProps = SelectProps &\n  LmFormContainerBaseTypes & {\n    value?: string\n    options: { label: string; value: string | number }[]\n    colorVariant?: ThemeColors\n    themeName?: ThemeProps['name']\n    width?: number | string\n    placeholder?: string\n    dropDownLabel?: string // above the items list\n    fullWidth?: boolean\n  }\n\nexport function LmSelect({\n  value,\n  colorVariant,\n  themeName,\n  options = [],\n  width = 180,\n  placeholder = '',\n  dropDownLabel,\n  required,\n  error,\n  helperText,\n  helperTextProps,\n  label,\n  labelInline,\n  labelProps,\n  fullWidth,\n  defaultValue,\n  onValueChange,\n  ...rest\n}: LmSelectProps) {\n  const [selectVal, setSelectVal] = useState<string>(value ?? defaultValue ?? '')\n  const id = useId()\n  rest.size = rest.size || '$3'\n\n  return (\n    <LmFormFieldContainer\n      id={id}\n      theme={colorVariant ? (colormap[colorVariant] as any) : themeName || undefined}\n      error={error}\n      required={required}\n      labelProps={labelProps}\n      label={label}\n      size={rest.size}\n      fullWidth={fullWidth}\n      labelInline={labelInline}\n      helperText={helperText}\n      helperTextProps={helperTextProps}\n    >\n      <Select\n        id={id}\n        {...rest}\n        value={selectVal}\n        onValueChange={(val) => {\n          setSelectVal(val)\n          if (typeof onValueChange === 'function') {\n            onValueChange(val)\n          }\n        }}\n      >\n        <Select.Trigger\n          width={fullWidth ? '100%' : width}\n          iconAfter={<CaretDown />}\n          paddingVertical={0}\n          minHeight={rest.size}\n        >\n          <Select.Value placeholder={placeholder} paddingVertical={0} />\n        </Select.Trigger>\n        {/*@ts-ignore*/}\n        <Select.Adapt when=\"sm\">\n          <Select.Sheet modal dismissOnSnapToBottom>\n            <Select.Sheet.Frame>\n              <Select.Sheet.ScrollView>\n                <Select.Adapt.Contents />\n              </Select.Sheet.ScrollView>\n            </Select.Sheet.Frame>\n            <Select.Sheet.Overlay />\n          </Select.Sheet>\n        </Select.Adapt>\n\n        <Select.Content zIndex={200000}>\n          <Select.ScrollUpButton\n            alignItems=\"center\"\n            justifyContent=\"center\"\n            position=\"relative\"\n            width=\"100%\"\n            height=\"$3\"\n          >\n            <YStack zIndex={10}>\n              <CaretUp size={20} />\n            </YStack>\n            <LinearGradient\n              start={[0, 0]}\n              end={[0, 1]}\n              fullscreen\n              colors={['$background', '$backgroundTransparent']}\n              borderRadius=\"$4\"\n            />\n          </Select.ScrollUpButton>\n\n          <Select.Viewport>\n            <Select.Group>\n              {dropDownLabel && <Select.Label>{dropDownLabel}</Select.Label>}\n              {options.map((item, i) => (\n                <Select.Item index={i} key={item.value} value={`${item.value}`}>\n                  <Select.ItemText>{item.label}</Select.ItemText>\n                  <Select.ItemIndicator marginLeft=\"auto\">\n                    <Check size={16} />\n                  </Select.ItemIndicator>\n                </Select.Item>\n              ))}\n            </Select.Group>\n          </Select.Viewport>\n\n          <Select.ScrollDownButton\n            alignItems=\"center\"\n            justifyContent=\"center\"\n            position=\"relative\"\n            width=\"100%\"\n            height=\"$3\"\n          >\n            <YStack zIndex={10}>\n              <CaretDown size={20} />\n            </YStack>\n            <LinearGradient\n              start={[0, 0]}\n              end={[0, 1]}\n              fullscreen\n              colors={['$backgroundTransparent', '$background']}\n              borderRadius=\"$4\"\n            />\n          </Select.ScrollDownButton>\n        </Select.Content>\n      </Select>\n    </LmFormFieldContainer>\n  )\n}\n"],
  "mappings": "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",
  "names": []
}
