{
  "version": 3,
  "sources": ["../../src/modules/xns/components/EstimateName/EstimateNameTextField.tsx", "../../src/modules/xns/components/XnsNameCapture/Errors.tsx", "../../src/modules/xns/components/XnsNameCapture/hooks/routing/useXnsNameCaptureRouting.ts", "../../src/modules/xns/components/XnsNameCapture/hooks/routing/useXnsNameFromLocation.ts", "../../src/modules/xns/components/XnsNameCapture/SecondaryLink.tsx", "../../src/modules/xns/components/XnsNameCapture/XnsNameCapture.tsx", "../../src/modules/xns/components/XnsNameCapture/lib/navigateWithUsername.ts", "../../src/modules/xns/components/XnsNameCapture/XnsNameCaptureWithContext.tsx"],
  "sourcesContent": ["import { alphaCss } from '@ariestools/sdk-react/theme'\nimport type { StandardTextFieldProps, TextFieldProps } from '@mui/material'\nimport { TextField, useTheme } from '@mui/material'\nimport { MIN_DOMAIN_LENGTH, XnsNameHelper } from '@xyo-network/payloadset-plugins/xns-record'\nimport React, {\n  useLayoutEffect,\n  useRef, useState,\n} from 'react'\n\n/** Props for {@link XnsEstimateNameTextField}. */\nexport interface XnsEstimateNameTextFieldProps {\n  maskOutput?: boolean\n}\n\n/** Text field for entering and validating an xNS name estimate. */\nexport const XnsEstimateNameTextField: React.FC<XnsEstimateNameTextFieldProps & TextFieldProps> = ({\n  maskOutput = true, onChange: onChangeProp, onBlur: onBlurProp, value, ...props\n}) => {\n  const theme = useTheme()\n  const [validLength, setValidLength] = useState(false)\n\n  const inputRef = useRef<HTMLInputElement>(null)\n\n  // watch for external changes to the value and update the validLength state\n  const [previousValue, setPreviousValue] = useState<unknown>(value)\n  if (value !== previousValue) {\n    setPreviousValue(value)\n    const validValueLength = !!(value && typeof value === 'string' && value.length >= MIN_DOMAIN_LENGTH)\n    setValidLength(validValueLength)\n  }\n\n  // Update the input value when the value prop changes\n  // The intent of this component is to remain uncontrolled to avoid the need to manage the value state\n  // Therefore, we use useLayoutEffect to update the input value directly.\n  useLayoutEffect(() => {\n    if (inputRef.current && typeof value === 'string') {\n      inputRef.current.value = value\n    }\n  }, [value])\n\n  // override onChange to mask the input and update the event value\n  const handleChange: StandardTextFieldProps['onChange'] = (event) => {\n    if (maskOutput) {\n      const value = event.target.value\n      event.target.value = XnsNameHelper.mask(value)\n    }\n    onChangeProp?.(event)\n\n    if (inputRef.current) {\n      setValidLength(inputRef.current.value.length >= MIN_DOMAIN_LENGTH)\n    }\n  }\n\n  // override onBlur to do a final mask of the input and update the event value\n  const handleBlur: StandardTextFieldProps['onBlur'] = (event) => {\n    if (maskOutput) {\n      const value = event.target.value\n      event.target.value = XnsNameHelper.mask(value, { maskStartEndHyphens: true })\n    }\n    onBlurProp?.(event)\n  }\n\n  return (\n    <TextField\n      inputRef={inputRef}\n      onBlur={handleBlur}\n      onChange={handleChange}\n      {...props}\n      slotProps={{ htmlInput: { style: { color: validLength ? theme.vars.palette.text.primary : alphaCss(theme.vars.palette.text.primary, 0.5) } } }}\n    />\n  )\n}\n", "import { FlexRow } from '@ariestools/sdk-react/flexbox'\nimport {\n  Alert, Snackbar, useMediaQuery, useTheme,\n} from '@mui/material'\nimport React from 'react'\n\n/** Props for {@link XnsNameCaptureErrors}. */\nexport interface XnsNameCaptureErrorsProps {\n  error?: Error\n  errorUi?: 'alert' | 'toast'\n  resetError?: () => void\n}\n\n/** Displays xNS name capture errors as an alert or toast. */\nexport const XnsNameCaptureErrors: React.FC<XnsNameCaptureErrorsProps> = ({\n  error, errorUi, resetError,\n}) => {\n  const theme = useTheme()\n  const isMobile = useMediaQuery(theme.breakpoints.down('md'))\n\n  return (\n    <>\n      {(errorUi === 'toast')\n        ? (\n            <Snackbar\n              open={!!error}\n              message={error?.toString()}\n              autoHideDuration={3000}\n              onClose={() => resetError?.()}\n              anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\n            >\n              <Alert\n                severity=\"error\"\n                sx={{\n                  width: '100%', display: (isMobile && !error) ? 'none' : undefined, visibility: error ? 'visible' : 'hidden',\n                }}\n              >\n                {error?.message}\n              </Alert>\n            </Snackbar>\n          )\n        : (\n            <FlexRow sx={{ alignSelf: 'stretch' }}>\n              <Alert\n                severity=\"error\"\n                sx={{ display: (isMobile && !error) ? 'none' : undefined, visibility: error ? 'visible' : 'hidden' }}\n              >\n                {error?.message}\n              </Alert>\n            </FlexRow>\n          )}\n    </>\n  )\n}\n", "import { useMemo } from 'react'\nimport { useNavigate, useSearchParams } from 'react-router'\n\nimport type { XnsNameCaptureProps } from '../../Props.ts'\nimport { useXnsNameFromLocation } from './useXnsNameFromLocation.ts'\n\n/** Enriches xNS name capture props with route-derived name, params, and navigate. */\nexport const useXnsNameCaptureRouting = (props: XnsNameCaptureProps): XnsNameCaptureProps => {\n  const [params] = useSearchParams()\n\n  const navigate = useNavigate()\n\n  const [name, error] = useXnsNameFromLocation()\n\n  return useMemo(() => ({\n    ...props,\n    defaultXnsName: name,\n    routingError: error,\n    navigate: props.navigate ?? ((to: string) => navigate(to)),\n    paramsString: props.paramsString ? `${props.paramsString}${params.toString()}` : params.toString(),\n  }), [props, name, error, params, navigate])\n}\n", "import { useLocation } from 'react-router'\n\n/**\n * Assumes the user was redirected with a link that contains a username query parameter.\n * @returns The xNS name from the URI username query parameter.\n */\nexport const useXnsNameFromLocation = (): [name: string | undefined, error: Error | undefined] => {\n  const location = useLocation()\n  const search = new URLSearchParams(location.search)\n  const rawName = (search.get('xnsname') ?? search.get('name') ?? search.get('username') ?? '').toLowerCase()\n  switch (rawName?.split('.').length) {\n    case 1: {\n      return [rawName, undefined]\n    }\n    case 2: {\n      const rawNameParts = rawName.split('.')\n      if (rawNameParts[1] !== 'xyo') {\n        return [undefined, new Error('Invalid xNS name [Bad root]')]\n      }\n      return [rawNameParts[0], undefined]\n    }\n    default: {\n      return [undefined, new Error('Invalid xNS name [Too many parts]')]\n    }\n  }\n}\n", "import type { LinkExProps } from '@ariestools/sdk-react/link'\nimport { LinkEx } from '@ariestools/sdk-react/link'\nimport { useUserEvents } from '@ariestools/sdk-react/pixel'\nimport { ArrowForwardRounded } from '@mui/icons-material'\nimport { Stack } from '@mui/material'\nimport { XnsNameHelper } from '@xyo-network/payloadset-plugins/xns-record'\nimport type { Dispatch } from 'react'\nimport React from 'react'\n\nimport type {\n  XnsNameCaptureBuyCallbacks, XnsNameCaptureRoutingProps, XnsNameCaptureTrackingProps,\n} from './Props.ts'\n\n/** Props for {@link XnsCaptureSecondaryLink}. */\nexport type XnsCaptureSecondaryLinkProps = XnsNameCaptureTrackingProps & XnsNameCaptureRoutingProps & XnsNameCaptureBuyCallbacks & LinkExProps & {\n  setError?: Dispatch<Error | undefined>\n  text?: string\n  xnsName: string\n}\n\n/** Secondary CTA link for free xNS reservation after name capture. */\nexport const XnsCaptureSecondaryLink: React.FC<XnsCaptureSecondaryLinkProps> = ({\n  funnel = 'xns',\n  navigate,\n  onCaptureName,\n  paramsString = '',\n  intent,\n  placement = '',\n  setError,\n  text = 'Or make a free reservation',\n  to = '/xns/reservation',\n  xnsName,\n  ...props\n}) => {\n  const userEvents = useUserEvents('warn')\n  return (\n    <LinkEx\n      style={{ textDecoration: 'underline', textUnderlineOffset: '5px' }}\n      onClick={async () => {\n        const formattedXnsName = `${xnsName}.xyo`\n        const helper = XnsNameHelper.fromString(formattedXnsName)\n        const [valid, errors] = await helper.validate()\n        if (valid) {\n          await userEvents?.userClick({\n            funnel, placement, intent,\n          })\n          navigate?.(`${to}?username=${xnsName}${paramsString}`)\n          await onCaptureName?.(xnsName)\n        } else {\n          setError?.(new Error(errors.join(', ')))\n        }\n      }}\n      {...props}\n      sx={[{\n        paddingX: 0,\n        color: 'inherit',\n      }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n    >\n      <Stack\n        sx={{\n          flexDirection: 'row',\n          gap: 0.5,\n          alignItems: 'center',\n          cursor: 'pointer',\n        }}\n      >\n        {text}\n        <ArrowForwardRounded />\n      </Stack>\n    </LinkEx>\n  )\n}\n", "import { ButtonEx } from '@ariestools/sdk-react/button'\nimport { FlexCol, FlexRow } from '@ariestools/sdk-react/flexbox'\nimport { KeyboardArrowRightRounded } from '@mui/icons-material'\nimport type { StandardTextFieldProps } from '@mui/material'\nimport { useMediaQuery, useTheme } from '@mui/material'\nimport { MIN_DOMAIN_LENGTH, XnsNameHelper } from '@xyo-network/payloadset-plugins/xns-record'\nimport type { KeyboardEventHandler } from 'react'\nimport React, { useCallback, useState } from 'react'\n\nimport { XnsEstimateNameTextField } from '../EstimateName/index.ts'\nimport { XnsNameCaptureErrors } from './Errors.tsx'\nimport { navigateWithUsername } from './lib/index.ts'\nimport type { XnsNameCaptureProps } from './Props.ts'\nimport { XnsCaptureSecondaryLink } from './SecondaryLink.js'\n\n/** Form UI for entering, validating, and submitting an xNS name to buy. */\nexport const XnsNameCapture: React.FC<XnsNameCaptureProps> = ({\n  autoFocus = false,\n  buttonText = 'Buy My Name',\n  children,\n  defaultXnsName,\n  disabled,\n  errorUi = 'alert',\n  funnel = 'xns',\n  intent = 'unset',\n  mobileButtonText = 'Buy',\n  navigate,\n  onCaptureName: onCaptureNameProp,\n  onNameChange,\n  paramsString = '',\n  placement = '',\n  routingError,\n  showSecondary = false,\n  to = '/xns/estimation',\n  ...props\n}) => {\n  const [xnsName, setXnsName] = useState<string>(() => defaultXnsName ?? '')\n  const [error, setError] = useState<Error | undefined>(routingError)\n\n  const theme = useTheme()\n  const isMobile = useMediaQuery(theme.breakpoints.down('md'))\n\n  const captureDisabled = !xnsName || xnsName.length < MIN_DOMAIN_LENGTH\n\n  const handleChange: StandardTextFieldProps['onChange'] = (event) => {\n    const NsName = XnsNameHelper.mask(event.target.value)\n    onNameChange?.(NsName)\n    setXnsName(NsName)\n    setError(undefined)\n  }\n\n  const onCaptureName = useCallback(async () => {\n    if (captureDisabled) return\n    const formattedXnsName = `${xnsName}.xyo`\n    const helper = XnsNameHelper.fromString(formattedXnsName)\n    const [valid, errors] = await helper.validate()\n    if (valid) {\n      await onCaptureNameProp?.(xnsName)\n\n      navigateWithUsername(xnsName, paramsString, navigate, to)\n    } else {\n      setError(new Error(errors.join(', ')))\n    }\n  }, [captureDisabled, xnsName, onCaptureNameProp, paramsString, navigate, to])\n\n  const onKeyDown: KeyboardEventHandler<HTMLDivElement> = useCallback(async (event) => {\n    if (event.key === 'Enter' && !captureDisabled) {\n      await onCaptureName?.()\n    }\n  }, [captureDisabled, onCaptureName])\n\n  return (\n    <FlexCol\n      {...props}\n      sx={[{\n        gap: showSecondary ? 1.5 : 0,\n        alignItems: 'center',\n      }, ...(Array.isArray(props.sx) ? props.sx : [props.sx])]}\n    >\n      <FlexRow sx={{ gap: 1 }}>\n        <XnsEstimateNameTextField\n          autoFocus={autoFocus}\n          disabled={disabled}\n          label=\"xNS Name\"\n          variant=\"outlined\"\n          size=\"small\"\n          value={xnsName ?? ''}\n          onKeyDown={onKeyDown}\n          onChange={handleChange}\n          onBlur={handleChange}\n        />\n        <ButtonEx\n          disabled={captureDisabled}\n          funnel={funnel}\n          intent={intent}\n          placement={placement}\n          variant=\"contained\"\n          endIcon={<KeyboardArrowRightRounded />}\n          onClick={onCaptureName}\n          sx={{ color: 'success' }}\n        >\n          {isMobile ? mobileButtonText : buttonText}\n        </ButtonEx>\n      </FlexRow>\n      {(showSecondary === true)\n        ? (\n            <XnsCaptureSecondaryLink\n              xnsName={xnsName}\n              placement={placement}\n              funnel={funnel}\n              setError={setError}\n            />\n          )\n        : null}\n      {\n        // eslint-disable-next-line unicorn/prefer-logical-operator-over-ternary\n        showSecondary ? showSecondary : null\n      }\n      {children}\n      <XnsNameCaptureErrors error={error} errorUi={errorUi} resetError={() => setError(undefined)} />\n    </FlexCol>\n  )\n}\n", "import type { To } from 'react-router'\n\n/** Navigates to a path while setting or updating the username query parameter. */\nexport const navigateWithUsername = (xnsName: string, paramsString: string, navigate?: ((to: string) => void), to?: To) => {\n  // avoid duplicating the username param\n  const params = new URLSearchParams(paramsString)\n  const usernameParam = params.get('username')\n  if (usernameParam) {\n    // if username param is the same as the xnsName, navigate\n    if (usernameParam === xnsName) {\n      navigate?.(`${to}?${paramsString}`)\n    }\n    if (usernameParam !== xnsName) {\n      // if username param is different, replace it\n      params.set('username', xnsName)\n      navigate?.(`${to}?${params.toString()}`)\n    }\n  } else {\n    // if no username param, include it\n    navigate?.(`${to}?username=${xnsName}&${paramsString}`)\n  }\n}\n", "import React, { useMemo } from 'react'\n\nimport { useXnsNameCaptureRouting } from './hooks/index.ts'\nimport type { XnsNameCaptureProps } from './Props.ts'\nimport { XnsNameCapture } from './XnsNameCapture.tsx'\n\n/** {@link XnsNameCapture} wired with routing props from the current location. */\nexport const XnsNameCaptureWithContext: React.FC<XnsNameCaptureProps> = (props) => {\n  const routingProps = useXnsNameCaptureRouting(props)\n\n  const updatedProps = useMemo<XnsNameCaptureProps>(() => ({\n    ...props,\n    ...routingProps,\n  }), [routingProps, props])\n\n  return (\n    <XnsNameCapture {...updatedProps} />\n  )\n}\n"],
  "mappings": "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",
  "names": ["value", "useTheme", "jsx", "XnsNameHelper", "jsx", "FlexRow", "useMediaQuery", "useTheme", "MIN_DOMAIN_LENGTH", "XnsNameHelper", "useState", "jsx", "jsxs", "useState", "useTheme", "useMediaQuery", "MIN_DOMAIN_LENGTH", "XnsNameHelper", "FlexRow", "useMemo", "jsx", "useMemo"]
}
