UNPKG

@chakra-ui/input

Version:

A React component for input text field

1 lines 3.75 kB
{"version":3,"sources":["../src/input-addon.tsx"],"sourcesContent":["import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/shared-utils\"\nimport { useInputGroupStyles } from \"./input-group\"\n\ntype Placement = \"left\" | \"right\"\n\nconst placements = {\n left: {\n marginEnd: \"-1px\",\n borderEndRadius: 0,\n borderEndColor: \"transparent\",\n },\n right: {\n marginStart: \"-1px\",\n borderStartRadius: 0,\n borderStartColor: \"transparent\",\n },\n}\n\nconst StyledAddon = chakra(\"div\", {\n baseStyle: {\n flex: \"0 0 auto\",\n width: \"auto\",\n display: \"flex\",\n alignItems: \"center\",\n whiteSpace: \"nowrap\",\n },\n})\n\nexport interface InputAddonProps extends HTMLChakraProps<\"div\"> {\n placement?: Placement\n}\n\n/**\n * InputAddon\n *\n * Element to append or prepend to an input\n */\nexport const InputAddon = forwardRef<InputAddonProps, \"div\">(\n function InputAddon(props, ref) {\n const { placement = \"left\", ...rest } = props\n const placementStyles = placements[placement] ?? {}\n const styles = useInputGroupStyles()\n\n return (\n <StyledAddon\n ref={ref}\n {...rest}\n __css={{\n ...styles.addon,\n ...placementStyles,\n }}\n />\n )\n },\n)\n\nInputAddon.displayName = \"InputAddon\"\n\nexport type InputLeftAddonProps = InputAddonProps\n\n/**\n * InputLeftAddon\n *\n * Element to append to the left of an input\n */\nexport const InputLeftAddon = forwardRef<InputLeftAddonProps, \"div\">(\n function InputLeftAddon(props, ref) {\n return (\n <InputAddon\n ref={ref}\n placement=\"left\"\n {...props}\n className={cx(\"chakra-input__left-addon\", props.className)}\n />\n )\n },\n)\n\nInputLeftAddon.displayName = \"InputLeftAddon\"\n\n// This is used in `input-group.tsx`\nInputLeftAddon.id = \"InputLeftAddon\"\n\nexport type InputRightAddonProps = InputAddonProps\n\n/**\n * InputRightAddon\n *\n * Element to append to the right of an input\n */\nexport const InputRightAddon = forwardRef<InputRightAddonProps, \"div\">(\n function InputRightAddon(props, ref) {\n return (\n <InputAddon\n ref={ref}\n placement=\"right\"\n {...props}\n className={cx(\"chakra-input__right-addon\", props.className)}\n />\n )\n },\n)\n\nInputRightAddon.displayName = \"InputRightAddon\"\n\n// This is used in `input-group.tsx`\nInputRightAddon.id = \"InputRightAddon\"\n"],"mappings":";;;;;;AAAA,SAAS,QAAQ,kBAAmC;AACpD,SAAS,UAAU;AA4Cb;AAvCN,IAAM,aAAa;AAAA,EACjB,MAAM;AAAA,IACJ,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB,gBAAgB;AAAA,EAClB;AAAA,EACA,OAAO;AAAA,IACL,aAAa;AAAA,IACb,mBAAmB;AAAA,IACnB,kBAAkB;AAAA,EACpB;AACF;AAEA,IAAM,cAAc,OAAO,OAAO;AAAA,EAChC,WAAW;AAAA,IACT,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,YAAY;AAAA,EACd;AACF,CAAC;AAWM,IAAM,aAAa;AAAA,EACxB,SAASA,YAAW,OAAO,KAAK;AAvClC;AAwCI,UAAM,EAAE,YAAY,QAAQ,GAAG,KAAK,IAAI;AACxC,UAAM,mBAAkB,gBAAW,SAAS,MAApB,YAAyB,CAAC;AAClD,UAAM,SAAS,oBAAoB;AAEnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACC,GAAG;AAAA,QACJ,OAAO;AAAA,UACL,GAAG,OAAO;AAAA,UACV,GAAG;AAAA,QACL;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;AASlB,IAAM,iBAAiB;AAAA,EAC5B,SAASC,gBAAe,OAAO,KAAK;AAClC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAU;AAAA,QACT,GAAG;AAAA,QACJ,WAAW,GAAG,4BAA4B,MAAM,SAAS;AAAA;AAAA,IAC3D;AAAA,EAEJ;AACF;AAEA,eAAe,cAAc;AAG7B,eAAe,KAAK;AASb,IAAM,kBAAkB;AAAA,EAC7B,SAASC,iBAAgB,OAAO,KAAK;AACnC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAU;AAAA,QACT,GAAG;AAAA,QACJ,WAAW,GAAG,6BAA6B,MAAM,SAAS;AAAA;AAAA,IAC5D;AAAA,EAEJ;AACF;AAEA,gBAAgB,cAAc;AAG9B,gBAAgB,KAAK;","names":["InputAddon","InputLeftAddon","InputRightAddon"]}