{
  "version": 3,
  "sources": ["../../src/input-control/input-base.tsx"],
  "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Backdrop from './backdrop';\nimport Label from './label';\nimport { Container, Root, Prefix, Suffix } from './styles/input-control-styles';\nimport { ContextSystemProvider, contextConnect, useContextSystem } from '../context';\nimport { useDeprecated36pxDefaultSizeProp } from '../utils/use-deprecated-props';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction useUniqueId(idProp) {\n  const instanceId = useInstanceId(InputBase);\n  const id = `input-base-control-${instanceId}`;\n  return idProp || id;\n}\n\n// Adapter to map props for the new ui/flex component.\nfunction getUIFlexProps(labelPosition) {\n  const props = {};\n  switch (labelPosition) {\n    case 'top':\n      props.direction = 'column';\n      props.expanded = false;\n      props.gap = 0;\n      break;\n    case 'bottom':\n      props.direction = 'column-reverse';\n      props.expanded = false;\n      props.gap = 0;\n      break;\n    case 'edge':\n      props.justify = 'space-between';\n      break;\n  }\n  return props;\n}\nfunction InputBase(props, ref) {\n  const {\n    __next40pxDefaultSize,\n    __unstableInputWidth,\n    children,\n    className,\n    disabled = false,\n    hideLabelFromVision = false,\n    labelPosition,\n    id: idProp,\n    isBorderless = false,\n    label,\n    prefix,\n    size = 'default',\n    suffix,\n    ...restProps\n  } = useDeprecated36pxDefaultSizeProp(useContextSystem(props, 'InputBase'));\n  const id = useUniqueId(idProp);\n  const hideLabel = hideLabelFromVision || !label;\n  const prefixSuffixContextValue = useMemo(() => {\n    return {\n      InputControlPrefixWrapper: {\n        __next40pxDefaultSize,\n        size\n      },\n      InputControlSuffixWrapper: {\n        __next40pxDefaultSize,\n        size\n      }\n    };\n  }, [__next40pxDefaultSize, size]);\n  return (\n    /*#__PURE__*/\n    // @ts-expect-error The `direction` prop from Flex (FlexDirection) conflicts with legacy SVGAttributes `direction` (string) that come from React intrinsic prop definitions.\n    _jsxs(Root, {\n      ...restProps,\n      ...getUIFlexProps(labelPosition),\n      className: className,\n      gap: 2,\n      ref: ref,\n      children: [/*#__PURE__*/_jsx(Label, {\n        className: \"components-input-control__label\",\n        hideLabelFromVision: hideLabelFromVision,\n        labelPosition: labelPosition,\n        htmlFor: id,\n        children: label\n      }), /*#__PURE__*/_jsxs(Container, {\n        __unstableInputWidth: __unstableInputWidth,\n        className: \"components-input-control__container\",\n        disabled: disabled,\n        hideLabel: hideLabel,\n        labelPosition: labelPosition,\n        children: [/*#__PURE__*/_jsxs(ContextSystemProvider, {\n          value: prefixSuffixContextValue,\n          children: [prefix && /*#__PURE__*/_jsx(Prefix, {\n            className: \"components-input-control__prefix\",\n            children: prefix\n          }), children, suffix && /*#__PURE__*/_jsx(Suffix, {\n            className: \"components-input-control__suffix\",\n            children: suffix\n          })]\n        }), /*#__PURE__*/_jsx(Backdrop, {\n          disabled: disabled,\n          isBorderless: isBorderless\n        })]\n      })]\n    })\n  );\n}\n\n/**\n * `InputBase` is an internal component used to style the standard borders for an input,\n * as well as handle the layout for prefix/suffix elements.\n */\nexport default contextConnect(InputBase, 'InputBase');"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBAA8B;AAC9B,qBAAwB;AAKxB,sBAAqB;AACrB,mBAAkB;AAClB,kCAAgD;AAChD,qBAAwE;AACxE,kCAAiD;AACjD,yBAA2C;AAC3C,SAAS,YAAY,QAAQ;AAC3B,QAAM,iBAAa,8BAAc,SAAS;AAC1C,QAAM,KAAK,sBAAsB,UAAU;AAC3C,SAAO,UAAU;AACnB;AAGA,SAAS,eAAe,eAAe;AACrC,QAAM,QAAQ,CAAC;AACf,UAAQ,eAAe;AAAA,IACrB,KAAK;AACH,YAAM,YAAY;AAClB,YAAM,WAAW;AACjB,YAAM,MAAM;AACZ;AAAA,IACF,KAAK;AACH,YAAM,YAAY;AAClB,YAAM,WAAW;AACjB,YAAM,MAAM;AACZ;AAAA,IACF,KAAK;AACH,YAAM,UAAU;AAChB;AAAA,EACJ;AACA,SAAO;AACT;AACA,SAAS,UAAU,OAAO,KAAK;AAC7B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,sBAAsB;AAAA,IACtB;AAAA,IACA,IAAI;AAAA,IACJ,eAAe;AAAA,IACf;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EACL,QAAI,kEAAiC,iCAAiB,OAAO,WAAW,CAAC;AACzE,QAAM,KAAK,YAAY,MAAM;AAC7B,QAAM,YAAY,uBAAuB,CAAC;AAC1C,QAAM,+BAA2B,wBAAQ,MAAM;AAC7C,WAAO;AAAA,MACL,2BAA2B;AAAA,QACzB;AAAA,QACA;AAAA,MACF;AAAA,MACA,2BAA2B;AAAA,QACzB;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF,GAAG,CAAC,uBAAuB,IAAI,CAAC;AAChC;AAAA;AAAA,IAGE,uCAAAA,MAAM,kCAAM;AAAA,MACV,GAAG;AAAA,MACH,GAAG,eAAe,aAAa;AAAA,MAC/B;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA,UAAU,CAAc,uCAAAC,KAAK,aAAAC,SAAO;AAAA,QAClC,WAAW;AAAA,QACX;AAAA,QACA;AAAA,QACA,SAAS;AAAA,QACT,UAAU;AAAA,MACZ,CAAC,GAAgB,uCAAAF,MAAM,uCAAW;AAAA,QAChC;AAAA,QACA,WAAW;AAAA,QACX;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU,CAAc,uCAAAA,MAAM,sCAAuB;AAAA,UACnD,OAAO;AAAA,UACP,UAAU,CAAC,UAAuB,uCAAAC,KAAK,oCAAQ;AAAA,YAC7C,WAAW;AAAA,YACX,UAAU;AAAA,UACZ,CAAC,GAAG,UAAU,UAAuB,uCAAAA,KAAK,oCAAQ;AAAA,YAChD,WAAW;AAAA,YACX,UAAU;AAAA,UACZ,CAAC,CAAC;AAAA,QACJ,CAAC,GAAgB,uCAAAA,KAAK,gBAAAE,SAAU;AAAA,UAC9B;AAAA,UACA;AAAA,QACF,CAAC,CAAC;AAAA,MACJ,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA;AAEL;AAMA,IAAO,yBAAQ,+BAAe,WAAW,WAAW;",
  "names": ["_jsxs", "_jsx", "Label", "Backdrop"]
}
