{"version":3,"file":"UdpLocationInput.mjs","names":["React","UdpFluentLocationInput","UdpFluentLocationInputWebComponent","JSX","FluentLocationValue","createChangeEvent","createFocusEvent","FormChangeEvent","FormFocusEvent","createAzureMapsProviders","getDefaultAzureMapsKey","UdpLocationInputProps","Partial","Omit","onChange","event","onBlur","onFocus","children","ReactNode","error","helperText","azureMapsKey","UdpLocationInput","FC","t0","$","_c","hint","name","props","reverseGeocode","searchAddresses","tileUrlTemplate","value","t1","e","detail","handleValueChanged","t2","handleBlur","t3","handleFocus","t4","resolvedKey","t5","azureProviders","resolvedTileUrl","resolvedSearch","resolvedReverse","hintStr","undefined","normalizedError","normalizedHint","t6"],"sources":["../../../src/UI/fluent-web-components/UdpLocationInput.tsx"],"sourcesContent":["import React from 'react';\nimport { UdpFluentLocationInput as UdpFluentLocationInputWebComponent } from '@univerus/udp-react-stencil-component-library';\nimport { type JSX, type FluentLocationValue } from '@univerus/udp-react-stencil-component-library';\nimport {\n  createChangeEvent,\n  createFocusEvent,\n  FormChangeEvent,\n  FormFocusEvent\n} from './utils/formEvents';\nimport { createAzureMapsProviders, getDefaultAzureMapsKey } from './UdpLocationInput.azure';\n\n/**\n * Props for the UdpLocationInput component.\n *\n * Supports both MUI-style and Fluent-style error handling:\n * - MUI style: error={boolean} + helperText={string}\n * - Fluent style: error={string} + hint={string}\n */\nexport interface UdpLocationInputProps\n  extends Partial<\n    Omit<JSX.UdpFluentLocationInput, 'onValueChanged' | 'onInputBlur' | 'onInputFocus' | 'error'>\n  > {\n  /** Called when location changes - compatible with form libraries (event.target.value) */\n  onChange?: (event: FormChangeEvent<FluentLocationValue>) => void;\n  /** Called when input loses focus - compatible with form libraries */\n  onBlur?: (event: FormFocusEvent) => void;\n  /** Called when input gains focus */\n  onFocus?: (event: FormFocusEvent) => void;\n  /** React children (for slot content) */\n  children?: React.ReactNode;\n  /**\n   * Error state - supports both MUI and Fluent patterns:\n   * - string: Fluent style - the error message to display\n   * - boolean: MUI style - when true, displays helperText as error\n   */\n  error?: string | boolean;\n  /**\n   * MUI compatibility: Helper/error text shown below the input.\n   * When error={true}, this is displayed as the error message.\n   * When error={false}, this is displayed as hint text.\n   */\n  helperText?: string;\n  /**\n   * Azure Maps subscription key. When set, the wrapper auto-wires\n   * `tileUrlTemplate`, `searchAddresses`, and `reverseGeocode` to Azure Maps —\n   * any of those props passed explicitly still win. Defaults to\n   * `REACT_APP_AZURE_MAP_SUBSCRIPTION_KEY` (preferred — matches the starter-kit\n   * env convention) and falls back to `VITE_AZURE_MAP_SUBSCRIPTION_KEY`. Pass\n   * `null` to opt out of the env default entirely.\n   */\n  azureMapsKey?: string | null;\n}\n\nexport const UdpLocationInput: React.FC<UdpLocationInputProps> = ({\n  onChange,\n  onBlur,\n  onFocus,\n  name,\n  value,\n  error,\n  helperText,\n  hint,\n  azureMapsKey,\n  tileUrlTemplate,\n  searchAddresses,\n  reverseGeocode,\n  ...props\n}) => {\n  const handleValueChanged = (e: CustomEvent<FluentLocationValue>) => {\n    onChange?.(createChangeEvent(e.detail, name, 'location'));\n  };\n\n  const handleBlur = () => {\n    onBlur?.(createFocusEvent('blur', name));\n  };\n\n  const handleFocus = () => {\n    onFocus?.(createFocusEvent('focus', name));\n  };\n\n  // Resolve Azure Maps providers as defaults. Explicit props always win;\n  // `azureMapsKey === null` opts out of the env default entirely.\n  const resolvedKey =\n    azureMapsKey === null ? '' : (azureMapsKey ?? getDefaultAzureMapsKey());\n  const azureProviders = React.useMemo(\n    () => createAzureMapsProviders(resolvedKey),\n    [resolvedKey],\n  );\n  const resolvedTileUrl = tileUrlTemplate ?? azureProviders?.tileUrlTemplate;\n  const resolvedSearch = searchAddresses ?? azureProviders?.searchAddresses;\n  const resolvedReverse = reverseGeocode ?? azureProviders?.reverseGeocode;\n\n  // Normalize error/hint props to support both MUI and Fluent patterns\n  const hintStr = typeof hint === 'string' ? hint : undefined;\n\n  let normalizedError: string | undefined;\n  let normalizedHint: string | undefined;\n\n  if (typeof error === 'string') {\n    normalizedError = error;\n    normalizedHint = hintStr;\n  } else if (typeof error === 'boolean') {\n    normalizedError = error ? (helperText || '') : undefined;\n    normalizedHint = !error ? (helperText || hintStr) : hintStr;\n  } else {\n    normalizedHint = hintStr ?? helperText;\n  }\n\n  return (\n    <UdpFluentLocationInputWebComponent\n      {...props}\n      name={name}\n      value={value}\n      error={normalizedError}\n      hint={normalizedHint}\n      tileUrlTemplate={resolvedTileUrl}\n      searchAddresses={resolvedSearch}\n      reverseGeocode={resolvedReverse}\n      onValueChanged={handleValueChanged}\n      onInputBlur={handleBlur}\n      onInputFocus={handleFocus}\n    />\n  );\n};\n"],"mappings":"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"}