{"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;;AA0BM,MAAM,0DAAc,CAAA,GAAA,iBAAS,EAAE,SAAS,YAC7C,KAA+B,EAC/B,GAAsB;IAEtB,QAAQ,CAAA,GAAA,yCAAW,EAAE,OAAO;IAC5B,QAAQ,CAAA,GAAA,yCAAe,EAAE;IACzB,QAAQ,CAAA,GAAA,yCAAW,EAAE;IACrB,IAAI,4BAAc,gCAAC,CAAA,GAAA,+BAAQ;QAAE,eAAY;;IAEzC,IAAI,QAAC,OAAO,yBAAa,UAAU,oBAAE,gBAAgB,eAAE,WAAW,EAAE,GAAG,YAAW,GAAG;IAErF,IAAI,YAAY,CAAA,GAAA,aAAK,EAAE;IACvB,CAAA,GAAA,gBAAQ,EAAE;QACR,IAAI,eAAe,CAAC,UAAU,OAAO,IAAI,QAAQ,GAAG,CAAC,QAAQ,KAAK,cAAc;YAC9E,QAAQ,IAAI,CACV;YAEF,UAAU,OAAO,GAAG;QACtB;IACF,GAAG;QAAC;KAAY;IAEhB,IAAI,QAAQ,CAAA,GAAA,0BAAkB,EAAE;IAChC,IAAI,WAAW,CAAA,GAAA,aAAK,EAAoB;IACxC,IAAI,oBAAC,gBAAgB,EAAE,GAAG,QAAO,GAAG,CAAA,GAAA,qBAAa,EAAE,OAAO,OAAO;IAEjE,IAAI,4BACF,gCAAC,CAAA,GAAA,yCAAU;QACR,GAAG,gBAAgB;QACpB,cAAA;QACA,kBAAkB,CAAA,GAAA,yCAAS,EAAE,CAAA,GAAA,mDAAK,GAAG;QACrC,YAAY;;IAIhB,IAAI,kBAAkB,MAAM,eAAe,IAAK,CAAA,OAAO,SAAS,GAAG,YAAY,SAAQ;IAEvF,qBACE,gCAAC,CAAA,GAAA,yCAAY;QACV,GAAG,UAAU;QACb,GAAG,MAAM;QACV,iBAAiB;QACjB,kBAAkB,CAAA,GAAA,yCAAS,EACzB,CAAA,GAAA,mDAAK,GACL,mBACA,sBACA;YACE,eAAe;YACf,YAAY,MAAM,OAAO;YACzB,4BAA4B,oBAAoB,aAAa,CAAC;YAC9D,0BAA0B,oBAAoB,WAAW,CAAC;QAC5D,GACA;QAEF,gBAAgB,CAAA,GAAA,yCAAS,EAAE,CAAA,GAAA,mDAAK,GAAG;QACnC,KAAK;QACL,UAAU;QACV,YAAY;QACZ,MAAM;QACN,iBAAiB,MAAM,KAAK,KAAK,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc;;AAG/E","sources":["packages/@adobe/react-spectrum/src/searchfield/SearchField.tsx"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaSearchFieldProps, useSearchField} from 'react-aria/useSearchField';\n\nimport {classNames} from '../utils/classNames';\nimport {ClearButton} from '../button/ClearButton';\nimport Magnifier from '@spectrum-icons/ui/Magnifier';\nimport React, {forwardRef, ReactElement, Ref, useEffect, useRef} from 'react';\nimport {SpectrumTextFieldProps, TextFieldRef} from '../textfield/TextField';\nimport {SpectrumTextInputBase} from '@react-types/shared';\nimport styles from '@adobe/spectrum-css-temp/components/search/vars.css';\nimport {TextFieldBase} from '../textfield/TextFieldBase';\nimport {useFormProps} from '../form/Form';\nimport {useProviderProps} from '../provider/Provider';\nimport {useSearchFieldState} from 'react-stately/useSearchFieldState';\nimport {useSlotProps} from '../utils/Slots';\n\nexport interface SpectrumSearchFieldProps\n  extends\n    SpectrumTextInputBase,\n    Omit<AriaSearchFieldProps, 'isInvalid' | 'validationState'>,\n    SpectrumTextFieldProps {}\n\n/**\n * A SearchField is a text field designed for searches.\n */\nexport const SearchField = forwardRef(function SearchField(\n  props: SpectrumSearchFieldProps,\n  ref: Ref<TextFieldRef>\n) {\n  props = useSlotProps(props, 'searchfield');\n  props = useProviderProps(props);\n  props = useFormProps(props);\n  let defaultIcon = <Magnifier data-testid=\"searchicon\" />;\n\n  let {icon = defaultIcon, isDisabled, UNSAFE_className, placeholder, ...otherProps} = props;\n\n  let hasWarned = useRef(false);\n  useEffect(() => {\n    if (placeholder && !hasWarned.current && process.env.NODE_ENV !== 'production') {\n      console.warn(\n        'Placeholders are deprecated due to accessibility issues. Please use help text instead. See the docs for details: https://react-spectrum.adobe.com/react-spectrum/SearchField.html#help-text'\n      );\n      hasWarned.current = true;\n    }\n  }, [placeholder]);\n\n  let state = useSearchFieldState(props);\n  let inputRef = useRef<HTMLInputElement>(null);\n  let {clearButtonProps, ...result} = useSearchField(props, state, inputRef);\n\n  let clearButton = (\n    <ClearButton\n      {...clearButtonProps}\n      preventFocus\n      UNSAFE_className={classNames(styles, 'spectrum-ClearButton')}\n      isDisabled={isDisabled}\n    />\n  );\n\n  let validationState = props.validationState || (result.isInvalid ? 'invalid' : undefined);\n\n  return (\n    <TextFieldBase\n      {...otherProps}\n      {...result}\n      validationState={validationState}\n      UNSAFE_className={classNames(\n        styles,\n        'spectrum-Search',\n        'spectrum-Textfield',\n        {\n          'is-disabled': isDisabled,\n          'is-quiet': props.isQuiet,\n          'spectrum-Search--invalid': validationState === 'invalid' && !isDisabled,\n          'spectrum-Search--valid': validationState === 'valid' && !isDisabled\n        },\n        UNSAFE_className\n      )}\n      inputClassName={classNames(styles, 'spectrum-Search-input')}\n      ref={ref}\n      inputRef={inputRef}\n      isDisabled={isDisabled}\n      icon={icon}\n      wrapperChildren={state.value !== '' && !props.isReadOnly ? clearButton : undefined}\n    />\n  );\n}) as (props: SpectrumSearchFieldProps & {ref?: Ref<TextFieldRef>}) => ReactElement;\n"],"names":[],"version":3,"file":"SearchField.mjs.map"}