{"ast":null,"code":"'use client';\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { textFieldPropDefs, textFieldSlotPropDefs } from './text-field.props';\nimport { extractMarginProps, withMarginProps, extractPaddingProps, withPaddingProps, withBreakpoints } from '../helpers';\nconst TextFieldContext = React.createContext(undefined);\nconst TextFieldRoot = React.forwardRef((props, forwardedRef) => {\n  const {\n    rest: marginRest,\n    ...marginProps\n  } = extractMarginProps(props);\n  const {\n    children,\n    className,\n    size = textFieldPropDefs.size.default,\n    variant = textFieldPropDefs.variant.default,\n    color = textFieldPropDefs.color.default,\n    radius = textFieldPropDefs.radius.default,\n    ...rootProps\n  } = marginRest;\n  return React.createElement(\"div\", {\n    \"data-radius\": radius,\n    ...rootProps,\n    ref: forwardedRef,\n    className: classNames('rt-TextFieldRoot', className, withMarginProps(marginProps)),\n    onPointerDown: composeEventHandlers(rootProps.onPointerDown, event => {\n      const target = event.target;\n      if (target.closest('input, button, a')) return;\n      const input = event.currentTarget.querySelector('.rt-TextFieldInput');\n      if (!input) return;\n      const position = input.compareDocumentPosition(target);\n      const targetIsBeforeInput = (position & Node.DOCUMENT_POSITION_PRECEDING) !== 0;\n      const cursorPosition = targetIsBeforeInput ? 0 : input.value.length;\n      requestAnimationFrame(() => {\n        input.setSelectionRange(cursorPosition, cursorPosition);\n        input.focus();\n      });\n    })\n  }, React.createElement(TextFieldContext.Provider, {\n    value: {\n      size,\n      variant,\n      color,\n      radius\n    }\n  }, children));\n});\nTextFieldRoot.displayName = 'TextFieldRoot';\nconst TextFieldSlot = React.forwardRef((props, forwardedRef) => {\n  const {\n    rest: paddingRest,\n    ...paddingProps\n  } = extractPaddingProps(props);\n  const {\n    className,\n    color = textFieldSlotPropDefs.color.default,\n    gap = textFieldSlotPropDefs.gap.default,\n    ...slotProps\n  } = paddingRest;\n  const context = React.useContext(TextFieldContext);\n  return React.createElement(\"div\", {\n    \"data-accent-color\": color,\n    ...slotProps,\n    ref: forwardedRef,\n    className: classNames('rt-TextFieldSlot', className, withBreakpoints(context === null || context === void 0 ? void 0 : context.size, 'rt-r-size'), withBreakpoints(gap, 'rt-r-gap'), withPaddingProps(paddingProps))\n  });\n});\nTextFieldSlot.displayName = 'TextFieldSlot';\nconst TextFieldInput = React.forwardRef((props, forwardedRef) => {\n  var _a, _b, _c, _d;\n  const {\n    rest: marginRest,\n    ...marginProps\n  } = extractMarginProps(props);\n  const context = React.useContext(TextFieldContext);\n  const hasRoot = context !== undefined;\n  const {\n    className,\n    size = (_a = context === null || context === void 0 ? void 0 : context.size) !== null && _a !== void 0 ? _a : textFieldPropDefs.size.default,\n    variant = (_b = context === null || context === void 0 ? void 0 : context.variant) !== null && _b !== void 0 ? _b : textFieldPropDefs.variant.default,\n    color = (_c = context === null || context === void 0 ? void 0 : context.color) !== null && _c !== void 0 ? _c : textFieldPropDefs.color.default,\n    radius = (_d = context === null || context === void 0 ? void 0 : context.radius) !== null && _d !== void 0 ? _d : textFieldPropDefs.radius.default,\n    ...inputProps\n  } = marginRest;\n  const input = React.createElement(React.Fragment, null, React.createElement(\"input\", {\n    \"data-accent-color\": color,\n    spellCheck: \"false\",\n    ...inputProps,\n    ref: forwardedRef,\n    className: classNames('rt-TextFieldInput', className, withBreakpoints(size, 'rt-r-size'), `rt-variant-${variant}`)\n  }), React.createElement(\"div\", {\n    \"data-accent-color\": color,\n    \"data-radius\": (context === null || context === void 0 ? void 0 : context.radius) ? undefined : radius,\n    className: \"rt-TextFieldChrome\"\n  }));\n  return hasRoot ? input : React.createElement(TextFieldRoot, {\n    ...marginProps,\n    size: size,\n    variant: variant,\n    color: color,\n    radius: radius\n  }, input);\n});\nTextFieldInput.displayName = 'TextFieldInput';\nconst TextField = Object.assign({}, {\n  Root: TextFieldRoot,\n  Slot: TextFieldSlot,\n  Input: TextFieldInput\n});\nexport { TextField, TextFieldRoot, TextFieldSlot, TextFieldInput };","map":{"version":3,"names":["React","classNames","composeEventHandlers","textFieldPropDefs","textFieldSlotPropDefs","extractMarginProps","withMarginProps","extractPaddingProps","withPaddingProps","withBreakpoints","TextFieldContext","createContext","undefined","TextFieldRoot","forwardRef","props","forwardedRef","rest","marginRest","marginProps","children","className","size","default","variant","color","radius","rootProps","createElement","ref","onPointerDown","event","target","closest","input","currentTarget","querySelector","position","compareDocumentPosition","targetIsBeforeInput","Node","DOCUMENT_POSITION_PRECEDING","cursorPosition","value","length","requestAnimationFrame","setSelectionRange","focus","Provider","displayName","TextFieldSlot","paddingRest","paddingProps","gap","slotProps","context","useContext","TextFieldInput","hasRoot","_a","_b","_c","_d","inputProps","Fragment","spellCheck","TextField","Object","assign","Root","Slot","Input"],"sources":["../../../src/components/text-field.tsx"],"sourcesContent":[null],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}