@lax-wp/design-system 0.13.33 → 0.13.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/dist/components/button/Button.cjs.js +5 -5
  2. package/dist/components/button/Button.cjs.js.map +1 -1
  3. package/dist/components/button/Button.es.js +18 -18
  4. package/dist/components/button/Button.es.js.map +1 -1
  5. package/dist/components/button/IconButton.cjs.js +1 -1
  6. package/dist/components/button/IconButton.cjs.js.map +1 -1
  7. package/dist/components/button/IconButton.es.js +8 -8
  8. package/dist/components/button/IconButton.es.js.map +1 -1
  9. package/dist/components/buttons/option-button/OptionButton.cjs.js +1 -1
  10. package/dist/components/buttons/option-button/OptionButton.cjs.js.map +1 -1
  11. package/dist/components/buttons/option-button/OptionButton.es.js +1 -1
  12. package/dist/components/buttons/option-button/OptionButton.es.js.map +1 -1
  13. package/dist/components/data-display/comparison/components/Header.cjs.js +1 -1
  14. package/dist/components/data-display/comparison/components/Header.cjs.js.map +1 -1
  15. package/dist/components/data-display/comparison/components/Header.es.js +13 -13
  16. package/dist/components/data-display/comparison/components/Header.es.js.map +1 -1
  17. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
  18. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
  19. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +1 -1
  20. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
  21. package/dist/components/data-display/infinite-table/body/rows/index.cjs.js +1 -1
  22. package/dist/components/data-display/infinite-table/body/rows/index.cjs.js.map +1 -1
  23. package/dist/components/data-display/infinite-table/body/rows/index.es.js +104 -101
  24. package/dist/components/data-display/infinite-table/body/rows/index.es.js.map +1 -1
  25. package/dist/components/data-display/infinite-table/constants.cjs.js +1 -1
  26. package/dist/components/data-display/infinite-table/constants.cjs.js.map +1 -1
  27. package/dist/components/data-display/infinite-table/constants.d.ts +6 -0
  28. package/dist/components/data-display/infinite-table/constants.es.js +17 -16
  29. package/dist/components/data-display/infinite-table/constants.es.js.map +1 -1
  30. package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
  31. package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
  32. package/dist/components/data-display/infinite-table/index.es.js +188 -187
  33. package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
  34. package/dist/components/data-display/infinite-table/useRowHeight.cjs.js +2 -0
  35. package/dist/components/data-display/infinite-table/useRowHeight.cjs.js.map +1 -0
  36. package/dist/components/data-display/infinite-table/useRowHeight.d.ts +15 -0
  37. package/dist/components/data-display/infinite-table/useRowHeight.es.js +24 -0
  38. package/dist/components/data-display/infinite-table/useRowHeight.es.js.map +1 -0
  39. package/dist/components/data-display/tag/Tag.cjs.js +1 -1
  40. package/dist/components/data-display/tag/Tag.cjs.js.map +1 -1
  41. package/dist/components/data-display/tag/Tag.es.js +11 -9
  42. package/dist/components/data-display/tag/Tag.es.js.map +1 -1
  43. package/dist/components/floating-bar/FloatingBar.cjs.js +1 -1
  44. package/dist/components/floating-bar/FloatingBar.cjs.js.map +1 -1
  45. package/dist/components/floating-bar/FloatingBar.es.js +9 -9
  46. package/dist/components/floating-bar/FloatingBar.es.js.map +1 -1
  47. package/dist/components/forms/base-input-field/BaseInputField.cjs.js +2 -2
  48. package/dist/components/forms/base-input-field/BaseInputField.cjs.js.map +1 -1
  49. package/dist/components/forms/base-input-field/BaseInputField.es.js +40 -42
  50. package/dist/components/forms/base-input-field/BaseInputField.es.js.map +1 -1
  51. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js +1 -1
  52. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js.map +1 -1
  53. package/dist/components/forms/creatable-select/CreatableSelect.es.js +14 -15
  54. package/dist/components/forms/creatable-select/CreatableSelect.es.js.map +1 -1
  55. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js +1 -1
  56. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js.map +1 -1
  57. package/dist/components/forms/currency-input/CurrencyInputField.es.js +57 -65
  58. package/dist/components/forms/currency-input/CurrencyInputField.es.js.map +1 -1
  59. package/dist/components/forms/date-time-field/DateTimeField.cjs.js +1 -1
  60. package/dist/components/forms/date-time-field/DateTimeField.cjs.js.map +1 -1
  61. package/dist/components/forms/date-time-field/DateTimeField.es.js +33 -33
  62. package/dist/components/forms/date-time-field/DateTimeField.es.js.map +1 -1
  63. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js +1 -1
  64. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js.map +1 -1
  65. package/dist/components/forms/debounce-input/DebounceInputField.es.js +2 -2
  66. package/dist/components/forms/debounce-input/DebounceInputField.es.js.map +1 -1
  67. package/dist/components/forms/dynamic-data-input/DynamicDataInput.cjs.js +1 -1
  68. package/dist/components/forms/dynamic-data-input/DynamicDataInput.cjs.js.map +1 -1
  69. package/dist/components/forms/dynamic-data-input/DynamicDataInput.es.js +7 -7
  70. package/dist/components/forms/dynamic-data-input/DynamicDataInput.es.js.map +1 -1
  71. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js +1 -1
  72. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js.map +1 -1
  73. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js +17 -19
  74. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js.map +1 -1
  75. package/dist/components/forms/field-options/Item.cjs.js +1 -1
  76. package/dist/components/forms/field-options/Item.cjs.js.map +1 -1
  77. package/dist/components/forms/field-options/Item.es.js +5 -5
  78. package/dist/components/forms/field-options/Item.es.js.map +1 -1
  79. package/dist/components/forms/formula-input/FormulaInput.cjs.js +1 -1
  80. package/dist/components/forms/formula-input/FormulaInput.cjs.js.map +1 -1
  81. package/dist/components/forms/formula-input/FormulaInput.es.js +10 -10
  82. package/dist/components/forms/formula-input/FormulaInput.es.js.map +1 -1
  83. package/dist/components/forms/icon-picker/IconPicker.cjs.js +1 -1
  84. package/dist/components/forms/icon-picker/IconPicker.cjs.js.map +1 -1
  85. package/dist/components/forms/icon-picker/IconPicker.es.js +42 -57
  86. package/dist/components/forms/icon-picker/IconPicker.es.js.map +1 -1
  87. package/dist/components/forms/input-field/InputField.cjs.js.map +1 -1
  88. package/dist/components/forms/input-field/InputField.es.js.map +1 -1
  89. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js +1 -1
  90. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js.map +1 -1
  91. package/dist/components/forms/master-data-input/MasterDataInputField.es.js +54 -60
  92. package/dist/components/forms/master-data-input/MasterDataInputField.es.js.map +1 -1
  93. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js +3 -3
  94. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js.map +1 -1
  95. package/dist/components/forms/md-input/RichMarkdownInput.es.js +63 -63
  96. package/dist/components/forms/md-input/RichMarkdownInput.es.js.map +1 -1
  97. package/dist/components/forms/number-input-field/NumberInputField.cjs.js +1 -1
  98. package/dist/components/forms/number-input-field/NumberInputField.cjs.js.map +1 -1
  99. package/dist/components/forms/number-input-field/NumberInputField.es.js +5 -5
  100. package/dist/components/forms/number-input-field/NumberInputField.es.js.map +1 -1
  101. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js +2 -2
  102. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js.map +1 -1
  103. package/dist/components/forms/percentage-input/PercentageInputField.es.js +20 -20
  104. package/dist/components/forms/percentage-input/PercentageInputField.es.js.map +1 -1
  105. package/dist/components/forms/search-bar/SearchBar.cjs.js +1 -1
  106. package/dist/components/forms/search-bar/SearchBar.cjs.js.map +1 -1
  107. package/dist/components/forms/search-bar/SearchBar.es.js +16 -16
  108. package/dist/components/forms/search-bar/SearchBar.es.js.map +1 -1
  109. package/dist/components/forms/select-field/SelectField.cjs.js +2 -2
  110. package/dist/components/forms/select-field/SelectField.cjs.js.map +1 -1
  111. package/dist/components/forms/select-field/SelectField.d.ts +4 -0
  112. package/dist/components/forms/select-field/SelectField.es.js +202 -203
  113. package/dist/components/forms/select-field/SelectField.es.js.map +1 -1
  114. package/dist/components/forms/text-area-field/TextAreaField.cjs.js +1 -1
  115. package/dist/components/forms/text-area-field/TextAreaField.cjs.js.map +1 -1
  116. package/dist/components/forms/text-area-field/TextAreaField.es.js +14 -14
  117. package/dist/components/forms/text-area-field/TextAreaField.es.js.map +1 -1
  118. package/dist/components/forms/toggle/Toggle.cjs.js +1 -1
  119. package/dist/components/forms/toggle/Toggle.cjs.js.map +1 -1
  120. package/dist/components/forms/toggle/Toggle.es.js +65 -59
  121. package/dist/components/forms/toggle/Toggle.es.js.map +1 -1
  122. package/dist/components/navigation/accordion/Accordion.cjs.js +1 -1
  123. package/dist/components/navigation/accordion/Accordion.cjs.js.map +1 -1
  124. package/dist/components/navigation/accordion/Accordion.es.js +5 -5
  125. package/dist/components/navigation/accordion/Accordion.es.js.map +1 -1
  126. package/dist/components/navigation/stepper/Stepper.cjs.js +1 -1
  127. package/dist/components/navigation/stepper/Stepper.cjs.js.map +1 -1
  128. package/dist/components/navigation/stepper/Stepper.es.js +1 -1
  129. package/dist/components/navigation/stepper/Stepper.es.js.map +1 -1
  130. package/dist/components/navigation/tabs/TabOptions.cjs.js +1 -1
  131. package/dist/components/navigation/tabs/TabOptions.cjs.js.map +1 -1
  132. package/dist/components/navigation/tabs/TabOptions.es.js +15 -15
  133. package/dist/components/navigation/tabs/TabOptions.es.js.map +1 -1
  134. package/dist/components/navigation/tabs/TabSwitch.cjs.js +1 -1
  135. package/dist/components/navigation/tabs/TabSwitch.cjs.js.map +1 -1
  136. package/dist/components/navigation/tabs/TabSwitch.es.js +7 -7
  137. package/dist/components/navigation/tabs/TabSwitch.es.js.map +1 -1
  138. package/dist/components/navigation/tabs/Tabs.cjs.js +1 -1
  139. package/dist/components/navigation/tabs/Tabs.cjs.js.map +1 -1
  140. package/dist/components/navigation/tabs/Tabs.es.js +1 -1
  141. package/dist/components/navigation/tabs/Tabs.es.js.map +1 -1
  142. package/dist/components/tooltip/Tooltip.cjs.js +1 -1
  143. package/dist/components/tooltip/Tooltip.cjs.js.map +1 -1
  144. package/dist/components/tooltip/Tooltip.es.js +19 -19
  145. package/dist/components/tooltip/Tooltip.es.js.map +1 -1
  146. package/dist/components/user-avatar/UserAvatar.cjs.js +1 -1
  147. package/dist/components/user-avatar/UserAvatar.cjs.js.map +1 -1
  148. package/dist/components/user-avatar/UserAvatar.d.ts +1 -1
  149. package/dist/components/user-avatar/UserAvatar.es.js +40 -38
  150. package/dist/components/user-avatar/UserAvatar.es.js.map +1 -1
  151. package/dist/components/user-avatar/constants.cjs.js +1 -1
  152. package/dist/components/user-avatar/constants.cjs.js.map +1 -1
  153. package/dist/components/user-avatar/constants.d.ts +1 -0
  154. package/dist/components/user-avatar/constants.es.js +10 -9
  155. package/dist/components/user-avatar/constants.es.js.map +1 -1
  156. package/dist/design-system.css +1 -1
  157. package/package.json +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"CurrencyInputField.cjs.js","sources":["../../../../src/components/forms/currency-input/CurrencyInputField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport cn from \"classnames\";\nimport { forwardRef, useEffect, useState } from \"react\";\nimport { Dropdown, Tooltip as AntTooltip } from \"antd\";\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport { Label } from \"../../data-display/label/Label\";\nimport type { LabelType } from \"../../data-display/label/Label\";\nimport { CURRENCIES, CURRENCY_SYMBOLS } from \"./currency.constant\";\nimport { NoteAddOutlined, BoltOutlined } from \"@mui/icons-material\";\nimport { AIExtractedIndicator } from \"../../icons/AIExtractedIndicator\";\nimport { AIStarIcon } from \"../../icons/AIStarIcon\";\nimport { HelpIcon } from \"../../icons/HelpIcon\";\nimport Tooltip from \"../../tooltip/Tooltip\";\nimport {\n getConfidenceScoreBadgeClass,\n getConfidenceScoreBadgeColor,\n getConfidenceScoreBadgeFill,\n getConfidenceScoreBadgeTextColor,\n shouldShowConfidenceScore,\n} from \"../../../utils/confidenceScoreUtils\";\nimport { SearchBar } from \"../search-bar/SearchBar\";\nimport { OptionButton } from \"../../buttons/option-button/OptionButton\";\nimport { getFlagComponent } from \"../../../utils/countryFlags\";\nimport { InputLabel } from \"../shared/InputLabel\";\nimport { formatCurrency as formatCurrencyUtils } from \"../../../utils/formatters\";\n\n/**\n * Confidence score type\n */\nexport type ConfidenceScoreType = \"low\" | \"medium\" | \"high\";\n\nexport type SourceMetaBBox = {\n b: number;\n l: number;\n r: number;\n t: number;\n};\n\nexport type SourceMetaItem = {\n bbox: SourceMetaBBox;\n confidence_score?: number;\n is_primary?: boolean;\n match_score?: number;\n match_type?: string;\n page_height: number;\n page_width: number;\n source_page: number;\n source_text?: string;\n};\n\n/**\n * Risk details interface for risk analysis integration\n */\nexport interface RiskDetails {\n color?: string;\n description?: string;\n hexBgColor?: string;\n hexBorderColor?: string;\n [key: string]: any;\n}\n\n/**\n * Risk details card component props - generic to allow consumer-specific risk types\n */\nexport interface RiskDetailsCardProps<T = any> {\n riskDetails: T;\n maxWidth?: string;\n showAllRisksSuggestions?: boolean;\n}\n\n/**\n * Props for the CurrencyInputField component\n */\nexport interface CurrencyInputFieldProps {\n /** Unique identifier for the currency input */\n id: string;\n /** Label text to display above the input */\n label?: string;\n /** Current value of the input (string for compatibility) */\n value: string;\n /** Callback function called when value changes */\n onChange: (data: any, currencyCode?: string) => void;\n /** Error message to display below the input */\n errorMessage?: string;\n /** Default value for the input */\n defaultValue?: string;\n /** Whether the field is required */\n required?: boolean;\n /** Whether the required indicator shows as conditional (yellow instead of red) */\n isRequiredConditional?: boolean;\n /** Tags/labels to display next to the label */\n tags?: (string | LabelType)[];\n /** Additional CSS classes for the wrapper */\n className?: string;\n /** Whether to preserve original case in the label */\n originalCase?: boolean;\n /** Tooltip text for the help icon */\n tooltip?: string;\n /** Whether to use simple mode (inline label style) */\n simpleMode?: boolean;\n /** Additional CSS classes for the input field */\n inputFieldClassName?: string;\n /** Whether the value was AI extracted */\n isAiExtracted?: boolean;\n /** Confidence percentage shown as a badge */\n confidenceScore?: number;\n /** Confidence classification for badge styling */\n confidenceType?: ConfidenceScoreType;\n /** Optional tooltip content for confidence badge */\n confidenceTooltip?: React.ReactNode;\n /** Source meta for confidence score */\n sourceMeta?: SourceMetaItem[];\n /** Handler fired when confidence score badge is clicked */\n onConfidenceScoreClick?: (sourceMeta: SourceMetaItem[]) => void;\n /** Whether this is a GTN (Global Term Name) field */\n isGTN?: boolean;\n /** GTN field name for document integration */\n gtnName?: any;\n /** Whether to allow multi-currency selection with dropdown */\n allowMultiCurrency?: boolean;\n /** Placeholder text for the input */\n placeholder?: string;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Current currency code */\n currencyCode?: string;\n /** Inline styles for the input element */\n inputStyle?: React.CSSProperties;\n /** Additional CSS classes for the label */\n labelClassName?: string;\n /** Whether this is a live field */\n isLiveField?: boolean;\n /** Callback function called when input loses focus */\n onBlur?: () => void;\n /** Whether the input should auto-focus */\n autoFocus?: boolean;\n /** Whether recording is active (for pilot context) */\n isRecording?: boolean;\n /** Whether playback is active (for pilot context) */\n isPlaying?: boolean;\n /** Handler for adding GTN to document */\n onAddGTNToDocument?: (keyValuePair: { key: string; value: string }) => void;\n /** Risk details data */\n riskDetails?: RiskDetails;\n /** Whether risk analysis is open */\n isRiskAnalysisOpen?: boolean;\n /** Custom risk details card component */\n RiskDetailsCard?: React.ComponentType<RiskDetailsCardProps<any>>;\n /** Optional extra content in the label row (e.g. actions, badges) */\n labelExtra?: React.ReactNode;\n /** Input surface style: `'modified'` — Warning colors; `'deleted'` — Error colors, text #475467; `'success'` — Success colors, text #101828. */\n inputEmphasis?: \"default\" | \"modified\" | \"deleted\" | \"success\";\n}\n\n/**\n * A highly customizable currency input component with label, validation, and styling support.\n * Features currency selection, formatting, validation, GTN integration, risk analysis support,\n * and comprehensive prop support for various use cases.\n *\n * @example\n * ```tsx\n * <CurrencyInputField\n * id=\"price\"\n * label=\"Price\"\n * value={price}\n * onChange={(value, currency) => setPrice(value)}\n * currencyCode=\"USD\"\n * allowMultiCurrency\n * required\n * />\n * ```\n */\nexport const CurrencyInputField = forwardRef<\n HTMLInputElement,\n CurrencyInputFieldProps\n>(\n (\n {\n id,\n label,\n value,\n onChange,\n errorMessage,\n defaultValue,\n required = false,\n isRequiredConditional = false,\n tags,\n className,\n originalCase = false,\n tooltip,\n simpleMode = false,\n inputFieldClassName = \"\",\n isAiExtracted = false,\n confidenceScore,\n confidenceType = \"high\",\n confidenceTooltip,\n sourceMeta = [],\n onConfidenceScoreClick,\n isGTN = false,\n gtnName = null,\n allowMultiCurrency = false,\n placeholder,\n disabled = false,\n currencyCode = \"USD\",\n inputStyle,\n labelClassName,\n isLiveField = false,\n onBlur: onBlurProp,\n autoFocus = false,\n isRecording = false,\n isPlaying = false,\n onAddGTNToDocument,\n riskDetails,\n isRiskAnalysisOpen = false,\n RiskDetailsCard,\n labelExtra,\n inputEmphasis = \"default\",\n ...props\n },\n ref\n ) => {\n const { t } = useTranslation();\n const emphasisModifiedSkin = inputEmphasis === \"modified\" && !errorMessage && !(isRiskAnalysisOpen && riskDetails?.color);\n const emphasisDeletedSkin = inputEmphasis === \"deleted\" && !errorMessage && !(isRiskAnalysisOpen && riskDetails?.color);\n const emphasisSuccessSkin = inputEmphasis === \"success\" && !errorMessage && !(isRiskAnalysisOpen && riskDetails?.color);\n const [isFocused, setIsFocused] = useState(false);\n const [filteredCurrencyOptions, setFilteredCurrencyOptions] = useState<\n { label: React.ReactNode; key: string }[]\n >([]);\n const [searchKeyForCurrency, setSearchKeyForCurrency] = useState(\"\");\n const [selectedCurrency, setSelectedCurrency] = useState<string>(\n currencyCode ? currencyCode : \"USD\"\n );\n const [isHovered, setIsHovered] = useState(false);\n\n const handleAddGTNToDocument = (_value: string) => {\n if (onAddGTNToDocument) {\n const keyValuePair = {\n key: gtnName,\n value: formatCurrencyUtils(_value, selectedCurrency),\n };\n onAddGTNToDocument(keyValuePair);\n }\n };\n\n const formatCurrency = (targetValue: any): string => {\n if (targetValue === null || targetValue === undefined) return \"\";\n\n const number = Number(targetValue);\n if (isNaN(number)) return targetValue;\n\n return number?.toLocaleString(\"en-US\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n });\n };\n\n const handleOnChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const _value = e.target.value;\n const numericValue =\n _value === \"\" || _value === null || _value === undefined\n ? 0\n : Number(_value);\n onChange(numericValue, selectedCurrency);\n const element = document.getElementById(id);\n if (element) {\n element.setAttribute(\n \"data-selected-value\",\n JSON.stringify({\n value: numericValue,\n currency_code: selectedCurrency,\n })\n );\n }\n if (element && (isRecording || isPlaying)) {\n const pilotEvent = new CustomEvent(\"pilot-change\", {\n bubbles: true,\n detail: {\n selector: `#${id}`,\n value: {\n value: numericValue,\n currency_code: selectedCurrency,\n },\n type: \"change\",\n },\n });\n element.dispatchEvent(pilotEvent);\n }\n };\n\n const onFocus = () => {\n setIsFocused(true);\n };\n\n const onBlur = () => {\n setIsFocused(false);\n if (value === null || value === undefined || value === \"\") {\n handleOnChange({\n target: { value: \"0.00\" },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n onBlurProp?.();\n };\n\n const getClassName = (): string => {\n const baseClasses =\n \"pl-11 border h-[32px] text-sm block w-full p-2.5 font-inter font-medium focus:outline-none focus:ring-0\";\n\n if (errorMessage) {\n return cn(baseClasses, \"rounded-md border-red-300 bg-white dark:bg-black-600\", inputFieldClassName);\n }\n if (isRiskAnalysisOpen && riskDetails?.color) {\n return cn(baseClasses, `rounded-md border-${riskDetails.color}-300 bg-${riskDetails.color}-50`, \"text-neutral-900 dark:text-black-200 disabled:bg-neutral-50 dark:disabled:!bg-black-800\", inputFieldClassName);\n }\n if (emphasisDeletedSkin) {\n return cn(baseClasses, \"rounded-lg border border-solid border-[var(--Error-200,#FECACA)] bg-[var(--Error-50,#FEF2F2)] !text-[#475467] focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)] dark:border-[var(--Error-200,#FECACA)] dark:bg-[var(--Error-50,#FEF2F2)] dark:!text-[#475467] disabled:!opacity-100 disabled:!bg-[var(--Error-50,#FEF2F2)]\", inputFieldClassName);\n }\n if (emphasisModifiedSkin) {\n return cn(baseClasses, \"rounded-lg border border-solid border-[var(--Warning-200,#FEDF89)] bg-[var(--Warning-50,#FFFAEB)] text-neutral-900 dark:text-black-100 focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)] dark:border-[var(--Warning-200,#FEDF89)] dark:bg-[var(--Warning-50,#FFFAEB)] disabled:!opacity-100 disabled:!bg-[var(--Warning-50,#FFFAEB)]\", inputFieldClassName);\n }\n if (emphasisSuccessSkin) {\n return cn(baseClasses, \"rounded-lg border border-solid border-[var(--Success-200,#BBF7D0)] bg-[var(--Success-50,#F0FDF4)] !text-[#101828] focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)] dark:border-[var(--Success-200,#BBF7D0)] dark:bg-[var(--Success-50,#F0FDF4)] dark:!text-[#101828] disabled:!opacity-100 disabled:!bg-[var(--Success-50,#F0FDF4)]\", inputFieldClassName);\n }\n return cn(baseClasses, \"rounded-lg border-gray-300 dark:border-black-600 bg-white dark:bg-black-600 text-neutral-900 dark:text-black-200 disabled:bg-neutral-50 dark:disabled:!bg-black-800 dark:disabled:placeholder:!text-black-400 focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]\", inputFieldClassName);\n };\n\n useEffect(() => {\n if (currencyCode) {\n setSelectedCurrency(currencyCode);\n }\n }, [currencyCode]);\n\n useEffect(() => {\n if (selectedCurrency) {\n const numericValue =\n value === \"\" || value === null || value === undefined\n ? 0\n : Number(value);\n if (currencyCode !== selectedCurrency) {\n onChange(numericValue, selectedCurrency);\n }\n const element = document.getElementById(id);\n if (element) {\n element.setAttribute(\n \"data-selected-value\",\n JSON.stringify({\n value: numericValue,\n currency_code: selectedCurrency,\n })\n );\n if (isRecording || isPlaying) {\n const pilotEvent = new CustomEvent(\"pilot-change\", {\n bubbles: true,\n detail: {\n selector: `#${id}`,\n value: {\n value: numericValue,\n currency_code: selectedCurrency,\n },\n type: \"change\",\n },\n });\n element.dispatchEvent(pilotEvent);\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedCurrency]);\n\n useEffect(() => {\n const currencyOptions = CURRENCIES.filter((item) =>\n (item.value + \" - \" + item.label)\n .toLowerCase()\n .includes(searchKeyForCurrency.toLowerCase())\n ).map((item) => ({\n label: (\n <OptionButton\n text={`${item.value} - ${item.label}`}\n icon={getFlagComponent(item.value)}\n showTick={selectedCurrency === item.value}\n onClick={() => setSelectedCurrency(item.value)}\n className=\"text-black-900 dark:text-white\"\n />\n ),\n key: item.value,\n }));\n\n setFilteredCurrencyOptions(currencyOptions);\n }, [searchKeyForCurrency, selectedCurrency]);\n\n useEffect(() => {\n setSearchKeyForCurrency(\"\");\n }, [selectedCurrency]);\n\n // Simple mode rendering\n if (simpleMode) {\n return (\n <label\n id={id}\n className={`mb-1 text-xs font-medium text-gray-600 h-full inline-flex items-center gap-1 ${\n !originalCase ? \"capitalize\" : \"\"\n } ${labelClassName || \"\"}`}\n >\n <span className=\"absolute inset-y-0 left-1 top-0.5 flex items-center pl-3\">\n {\"$\"}\n </span>\n <input\n {...props}\n ref={ref}\n type={isFocused ? \"number\" : \"text\"}\n required={required}\n className={cn(inputFieldClassName, \"pl-8 h-[32px]\")}\n onChange={handleOnChange}\n min={0}\n onFocus={onFocus}\n onBlur={onBlur}\n value={!isFocused ? formatCurrency(value) : value}\n {...(defaultValue && !value\n ? {\n defaultValue: !isFocused\n ? formatCurrency(defaultValue)\n : defaultValue,\n }\n : {})}\n id={id || label}\n autoFocus={autoFocus}\n />\n </label>\n );\n }\n\n // Full mode rendering\n return (\n <div\n className={cn(\n \"flex gap-0.5 relative\",\n isHovered && isGTN\n ? \"border rounded-lg border-primary-100 bg-primary-50 p-1\"\n : \"\"\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {isGTN && !isHovered ? (\n <div className=\"w-1 h-1 bg-primary-600 rounded-full animate-blink mt-1.5\" />\n ) : null}\n <div className={cn(\"w-full flex flex-col\", className)}>\n <label\n htmlFor=\"text\"\n className={`mb-1 text-xs font-medium text-gray-600 inline-flex items-center gap-1 ${\n !originalCase ? \"uppercase\" : \"\"\n } ${labelClassName || \"\"}`}\n >\n <div className=\"grid w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-1\">\n <div className=\"inline-flex min-w-0 items-center gap-1 flex-wrap\">\n <InputLabel label={label || \"\"} required={required || false} isRequiredConditional={isRequiredConditional || false} />\n {isLiveField && (\n <BoltOutlined\n sx={{\n fontSize: 16,\n color: \"var(--color-primary-600)\",\n rotate: \"15deg\",\n }}\n />\n )}\n {isAiExtracted && !shouldShowConfidenceScore(confidenceScore) && <AIExtractedIndicator />}\n <Label labels={tags} />\n {tooltip && (\n <Tooltip placement=\"top\" title={tooltip}>\n <div className=\"cursor-pointer\">\n <HelpIcon />\n </div>\n </Tooltip>\n )}\n {labelExtra}\n </div>\n <div className=\"flex items-center gap-1 justify-self-end\">\n {(shouldShowConfidenceScore(confidenceScore) && confidenceType) ? (\n <Tooltip\n placement=\"top-end\"\n title={confidenceTooltip ?? \"\"}\n hideTooltip={confidenceTooltip === undefined || confidenceTooltip === null}\n className=\"cursor-pointer\"\n >\n <div\n className={cn(\n \"inline-flex min-w-[50px] items-center gap-1 rounded-md px-1 py-0.5\",\n getConfidenceScoreBadgeClass(confidenceType)\n )}\n onClick={() => onConfidenceScoreClick?.(sourceMeta)}\n >\n <AIStarIcon\n size={12}\n fill={getConfidenceScoreBadgeColor(confidenceType)}\n fillSecondary={getConfidenceScoreBadgeFill(confidenceType)}\n />\n <span className={cn(\"text-xs font-medium leading-4\", getConfidenceScoreBadgeTextColor(confidenceType))}>\n {confidenceScore}%\n </span>\n </div>\n </Tooltip>\n ) : null}\n {isGTN && isHovered && onAddGTNToDocument ? (\n <button\n id=\"btn-currency-input-add-to-document\"\n className=\"cursor-pointer\"\n onClick={() => handleAddGTNToDocument(formatCurrency(value))}\n type=\"button\"\n >\n <AntTooltip placement=\"top\" title={t(\"Add to document\")}>\n <NoteAddOutlined\n className=\"text-primary-600\"\n sx={{\n fontSize: 16\n }}\n />\n </AntTooltip>\n </button>\n ) : null}\n </div>\n </div>\n </label>\n <label className=\"relative block\">\n <span className=\"absolute inset-y-0 left-1 flex items-center pl-3 text-neutral-900 dark:text-white\">\n {CURRENCY_SYMBOLS[selectedCurrency]}\n </span>\n\n <input\n {...props}\n ref={ref}\n placeholder={placeholder}\n type={isFocused ? \"number\" : \"text\"}\n required={required}\n disabled={disabled}\n className={getClassName()}\n onChange={handleOnChange}\n min={0}\n onFocus={onFocus}\n onBlur={onBlur}\n value={!isFocused ? formatCurrency(value) : value}\n defaultValue={\n !isFocused ? formatCurrency(defaultValue) : defaultValue\n }\n id={id || label}\n style={inputStyle}\n autoComplete=\"off\"\n autoFocus={autoFocus}\n />\n <span\n className={`absolute inset-y-0 right-2 flex items-center z-[1000px] h-full cursor-pointer dark:text-black-200 ${\n allowMultiCurrency ? \"cursor-pointer\" : \"\"\n }`}\n >\n {allowMultiCurrency ? (\n <Dropdown\n menu={{\n items: [\n ...filteredCurrencyOptions,\n ],\n }}\n trigger={[\"click\"]}\n overlayClassName=\"row-option-cell\"\n placement=\"bottomRight\"\n overlayStyle={{ zIndex: 999 }}\n getPopupContainer={(trigger) =>\n trigger.parentElement as HTMLElement\n }\n popupRender={(menu) => (\n <div\n style={{\n maxHeight: \"200px\",\n width: \"330px\",\n textOverflow: \"ellipsis\",\n overflowY: \"auto\",\n zIndex: \"999px\",\n borderRadius: \"6px\",\n }}\n className=\"[&>*:nth-child(2)]:!shadow-none [&>*:nth-child(2)>*]:!px-2 flex flex-col gap-2 p-2 bg-white dark:bg-black-700 border border-solid border-neutral-200 dark:border-black-600\"\n >\n <SearchBar\n id={`search-bar-currency-input`}\n value={searchKeyForCurrency}\n onChange={(_value) =>\n setSearchKeyForCurrency(_value)\n }\n className=\"mb-2\"\n />\n {menu}\n </div>\n )}\n >\n <div className=\"pl-4 pr-2 py-1.5 text-sm text-gray-700 dark:text-black-200 flex items-center gap-1\">\n {getFlagComponent(selectedCurrency)} {selectedCurrency}\n </div>\n </Dropdown>\n ) : (\n selectedCurrency\n )}\n </span>\n </label>\n {errorMessage && (\n <Typography\n className=\"text-error-500 mt-1\"\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"medium\"\n >\n {errorMessage}\n </Typography>\n )}\n </div>\n {isHovered &&\n riskDetails &&\n isRiskAnalysisOpen &&\n RiskDetailsCard && (\n <div\n role=\"tooltip\"\n tabIndex={0}\n className=\"absolute left-0 right-0 top-[95%] mt-1 z-50 bg-white dark:bg-black-600 rounded-xl\"\n onClick={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.preventDefault()}\n onKeyDown={(e) => {\n if (e.key === \"Escape\") {\n setIsHovered(false);\n }\n }}\n >\n <RiskDetailsCard riskDetails={riskDetails} />\n </div>\n )}\n </div>\n );\n }\n);\n\nCurrencyInputField.displayName = \"CurrencyInputField\";\n"],"names":["CurrencyInputField","forwardRef","id","label","value","onChange","errorMessage","defaultValue","required","isRequiredConditional","tags","className","originalCase","tooltip","simpleMode","inputFieldClassName","isAiExtracted","confidenceScore","confidenceType","confidenceTooltip","sourceMeta","onConfidenceScoreClick","isGTN","gtnName","allowMultiCurrency","placeholder","disabled","currencyCode","inputStyle","labelClassName","isLiveField","onBlurProp","autoFocus","isRecording","isPlaying","onAddGTNToDocument","riskDetails","isRiskAnalysisOpen","RiskDetailsCard","labelExtra","inputEmphasis","props","ref","t","useTranslation","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","isFocused","setIsFocused","useState","filteredCurrencyOptions","setFilteredCurrencyOptions","searchKeyForCurrency","setSearchKeyForCurrency","selectedCurrency","setSelectedCurrency","isHovered","setIsHovered","handleAddGTNToDocument","_value","keyValuePair","formatCurrencyUtils","formatCurrency","targetValue","number","handleOnChange","e","numericValue","element","pilotEvent","onFocus","onBlur","getClassName","baseClasses","cn","useEffect","currencyOptions","CURRENCIES","item","jsx","OptionButton","getFlagComponent","jsxs","InputLabel","BoltOutlined","shouldShowConfidenceScore","AIExtractedIndicator","Label","Tooltip","HelpIcon","getConfidenceScoreBadgeClass","AIStarIcon","getConfidenceScoreBadgeColor","getConfidenceScoreBadgeFill","getConfidenceScoreBadgeTextColor","AntTooltip","NoteAddOutlined","CURRENCY_SYMBOLS","Dropdown","trigger","menu","SearchBar","Typography"],"mappings":"+3BA6KaA,EAAqBC,EAAAA,WAIhC,CACE,CACE,GAAAC,EACA,MAAAC,EACA,MAAAC,EACA,SAAAC,EACA,aAAAC,EACA,aAAAC,EACA,SAAAC,EAAW,GACX,sBAAAC,EAAwB,GACxB,KAAAC,GACA,UAAAC,GACA,aAAAC,EAAe,GACf,QAAAC,EACA,WAAAC,GAAa,GACb,oBAAAC,EAAsB,GACtB,cAAAC,GAAgB,GAChB,gBAAAC,EACA,eAAAC,EAAiB,OACjB,kBAAAC,EACA,WAAAC,GAAa,CAAA,EACb,uBAAAC,GACA,MAAAC,EAAQ,GACR,QAAAC,GAAU,KACV,mBAAAC,EAAqB,GACrB,YAAAC,GACA,SAAAC,GAAW,GACX,aAAAC,EAAe,MACf,WAAAC,GACA,eAAAC,EACA,YAAAC,GAAc,GACd,OAAQC,GACR,UAAAC,EAAY,GACZ,YAAAC,EAAc,GACd,UAAAC,EAAY,GACZ,mBAAAC,EACA,YAAAC,EACA,mBAAAC,EAAqB,GACrB,gBAAAC,EACA,WAAAC,GACA,cAAAC,EAAgB,UAChB,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,EAAAC,EAAA,EAAMC,kBAAA,EACRC,GAAuBL,IAAkB,YAAc,CAAClC,GAAgB,EAAE+B,GAAsBD,GAAa,OAC7GU,GAAsBN,IAAkB,WAAa,CAAClC,GAAgB,EAAE+B,GAAsBD,GAAa,OAC3GW,GAAsBP,IAAkB,WAAa,CAAClC,GAAgB,EAAE+B,GAAsBD,GAAa,OAC3G,CAACY,EAAWC,CAAY,EAAIC,EAAAA,SAAS,EAAK,EAC1C,CAACC,GAAyBC,EAA0B,EAAIF,EAAAA,SAE5D,CAAA,CAAE,EACE,CAACG,EAAsBC,CAAuB,EAAIJ,EAAAA,SAAS,EAAE,EAC7D,CAACK,EAAkBC,CAAmB,EAAIN,EAAAA,SAC9CvB,GAA8B,KAAA,EAE1B,CAAC8B,EAAWC,CAAY,EAAIR,EAAAA,SAAS,EAAK,EAE1CS,GAA0BC,GAAmB,CACjD,GAAIzB,EAAoB,CACtB,MAAM0B,EAAe,CACnB,IAAKtC,GACL,MAAOuC,GAAAA,eAAoBF,EAAQL,CAAgB,CAAA,EAErDpB,EAAmB0B,CAAY,CACjC,CACF,EAEME,EAAkBC,GAA6B,CACnD,GAAIA,GAAgB,KAAmC,MAAO,GAE9D,MAAMC,EAAS,OAAOD,CAAW,EACjC,OAAI,MAAMC,CAAM,EAAUD,EAEnBC,GAAQ,eAAe,QAAS,CACrC,sBAAuB,EACvB,sBAAuB,CAAA,CACxB,CACH,EAEMC,EAAkBC,GAA2C,CACjE,MAAMP,EAASO,EAAE,OAAO,MAClBC,EACJR,IAAW,IAAMA,IAAW,MAAQA,IAAW,OAC3C,EACA,OAAOA,CAAM,EACnBvD,EAAS+D,EAAcb,CAAgB,EACvC,MAAMc,EAAU,SAAS,eAAenE,CAAE,EAU1C,GATImE,GACFA,EAAQ,aACN,sBACA,KAAK,UAAU,CACb,MAAOD,EACP,cAAeb,CAAA,CAChB,CAAA,EAGDc,IAAYpC,GAAeC,GAAY,CACzC,MAAMoC,GAAa,IAAI,YAAY,eAAgB,CACjD,QAAS,GACT,OAAQ,CACN,SAAU,IAAIpE,CAAE,GAChB,MAAO,CACL,MAAOkE,EACP,cAAeb,CAAA,EAEjB,KAAM,QAAA,CACR,CACD,EACDc,EAAQ,cAAcC,EAAU,CAClC,CACF,EAEMC,EAAU,IAAM,CACpBtB,EAAa,EAAI,CACnB,EAEMuB,EAAS,IAAM,CACnBvB,EAAa,EAAK,GACd7C,GAAU,MAA+BA,IAAU,KACrD8D,EAAe,CACb,OAAQ,CAAE,MAAO,MAAA,CAAO,CACc,EAE1CnC,KAAA,CACF,EAEM0C,GAAe,IAAc,CACjC,MAAMC,EACJ,0GAEF,OAAIpE,EACKqE,EAAGD,EAAa,uDAAwD3D,CAAmB,EAEhGsB,GAAsBD,GAAa,MAC9BuC,EAAGD,EAAa,qBAAqBtC,EAAY,KAAK,WAAWA,EAAY,KAAK,MAAO,0FAA2FrB,CAAmB,EAE5M+B,GACK6B,EAAGD,EAAa,mWAAoW3D,CAAmB,EAE5Y8B,GACK8B,EAAGD,EAAa,+WAAgX3D,CAAmB,EAExZgC,GACK4B,EAAGD,EAAa,+WAAgX3D,CAAmB,EAErZ4D,EAAGD,EAAa,kZAAmZ3D,CAAmB,CAC/b,EAuEA,OArEA6D,EAAAA,UAAU,IAAM,CACVjD,GACF6B,EAAoB7B,CAAY,CAEpC,EAAG,CAACA,CAAY,CAAC,EAEjBiD,EAAAA,UAAU,IAAM,CACd,GAAIrB,EAAkB,CACpB,MAAMa,EACJhE,IAAU,IAAMA,IAAU,MAAQA,IAAU,OACxC,EACA,OAAOA,CAAK,EACduB,IAAiB4B,GACnBlD,EAAS+D,EAAcb,CAAgB,EAEzC,MAAMc,EAAU,SAAS,eAAenE,CAAE,EAC1C,GAAImE,IACFA,EAAQ,aACN,sBACA,KAAK,UAAU,CACb,MAAOD,EACP,cAAeb,CAAA,CAChB,CAAA,EAECtB,GAAeC,GAAW,CAC5B,MAAMoC,EAAa,IAAI,YAAY,eAAgB,CACjD,QAAS,GACT,OAAQ,CACN,SAAU,IAAIpE,CAAE,GAChB,MAAO,CACL,MAAOkE,EACP,cAAeb,CAAA,EAEjB,KAAM,QAAA,CACR,CACD,EACDc,EAAQ,cAAcC,CAAU,CAClC,CAEJ,CAEF,EAAG,CAACf,CAAgB,CAAC,EAErBqB,EAAAA,UAAU,IAAM,CACd,MAAMC,EAAkBC,EAAAA,WAAW,OAAQC,IACxCA,EAAK,MAAQ,MAAQA,EAAK,OACxB,YAAA,EACA,SAAS1B,EAAqB,YAAA,CAAa,CAAA,EAC9C,IAAK0B,IAAU,CACf,MACEC,EAAAA,IAACC,GAAAA,aAAA,CACC,KAAM,GAAGF,EAAK,KAAK,MAAMA,EAAK,KAAK,GACnC,KAAMG,EAAAA,iBAAiBH,EAAK,KAAK,EACjC,SAAUxB,IAAqBwB,EAAK,MACpC,QAAS,IAAMvB,EAAoBuB,EAAK,KAAK,EAC7C,UAAU,gCAAA,CAAA,EAGd,IAAKA,EAAK,KAAA,EACV,EAEF3B,GAA2ByB,CAAe,CAC5C,EAAG,CAACxB,EAAsBE,CAAgB,CAAC,EAE3CqB,EAAAA,UAAU,IAAM,CACdtB,EAAwB,EAAE,CAC5B,EAAG,CAACC,CAAgB,CAAC,EAGjBzC,GAEAqE,EAAAA,KAAC,QAAA,CACC,GAAAjF,EACA,UAAW,gFACRU,EAA8B,GAAf,YAClB,IAAIiB,GAAkB,EAAE,GAExB,SAAA,CAAAmD,EAAAA,IAAC,OAAA,CAAK,UAAU,2DACb,SAAA,IACH,EACAA,EAAAA,IAAC,QAAA,CACE,GAAGvC,EACJ,IAAAC,EACA,KAAMM,EAAY,SAAW,OAC7B,SAAAxC,EACA,UAAWmE,EAAG5D,EAAqB,eAAe,EAClD,SAAUmD,EACV,IAAK,EACL,QAAAK,EACA,OAAAC,EACA,MAAQxB,EAAoC5C,EAAxB2D,EAAe3D,CAAK,EACvC,GAAIG,GAAgB,CAACH,EAClB,CACE,aAAe4C,EAEXzC,EADAwD,EAAexD,CAAY,CAC3B,EAEN,CAAA,EACJ,GAAIL,GAAMC,EACV,UAAA6B,CAAA,CAAA,CACF,CAAA,CAAA,EAOJmD,EAAAA,KAAC,MAAA,CACC,UAAWR,EACT,wBACAlB,GAAanC,EACT,yDACA,EAAA,EAEN,aAAc,IAAMoC,EAAa,EAAI,EACrC,aAAc,IAAMA,EAAa,EAAK,EAErC,SAAA,CAAApC,GAAS,CAACmC,EACTuB,MAAC,MAAA,CAAI,UAAU,2DAA2D,EACxE,YACH,MAAA,CAAI,UAAWL,EAAG,uBAAwBhE,EAAS,EAClD,SAAA,CAAAqE,EAAAA,IAAC,QAAA,CACC,QAAQ,OACR,UAAW,yEACRpE,EAA6B,GAAd,WAClB,IAAIiB,GAAkB,EAAE,GAExB,SAAAsD,EAAAA,KAAC,MAAA,CAAI,UAAU,iEACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,mDACf,SAAA,CAAAH,EAAAA,IAACI,GAAAA,WAAA,CAAW,MAAOjF,GAAS,GAAI,SAAUK,GAAY,GAAO,sBAAuBC,GAAyB,EAAA,CAAO,EACjHqB,IACCkD,EAAAA,IAACK,EAAAA,aAAA,CACC,GAAI,CACF,SAAU,GACV,MAAO,2BACP,OAAQ,OAAA,CACV,CAAA,EAGHrE,IAAiB,CAACsE,EAAAA,0BAA0BrE,CAAe,SAAMsE,GAAAA,qBAAA,EAAqB,EACvFP,EAAAA,IAACQ,GAAAA,MAAA,CAAM,OAAQ9E,EAAA,CAAM,EACpBG,GACCmE,EAAAA,IAACS,EAAA,CAAQ,UAAU,MAAM,MAAO5E,EAC9B,SAAAmE,EAAAA,IAAC,MAAA,CAAI,UAAU,iBACb,SAAAA,EAAAA,IAACU,YAAA,CAAA,CAAS,EACZ,EACF,EAEDnD,EAAA,EACH,EACA4C,EAAAA,KAAC,MAAA,CAAI,UAAU,2CACX,SAAA,CAAAG,4BAA0BrE,CAAe,GAAKC,EAC9C8D,EAAAA,IAACS,EAAA,CACC,UAAU,UACV,MAAOtE,GAAqB,GAC5B,YAAgDA,GAAsB,KACtE,UAAU,iBAEV,SAAAgE,EAAAA,KAAC,MAAA,CACC,UAAWR,EACT,qEACAgB,EAAAA,6BAA6BzE,CAAc,CAAA,EAE3C,QAAS,IAAMG,KAAyBD,EAAU,EAEpD,SAAA,CAAA4D,EAAAA,IAACY,GAAAA,WAAA,CACC,KAAM,GACN,KAAMC,EAAAA,6BAA6B3E,CAAc,EACjD,cAAe4E,EAAAA,4BAA4B5E,CAAc,CAAA,CAAA,EAE3DiE,OAAC,QAAK,UAAWR,EAAG,gCAAiCoB,mCAAiC7E,CAAc,CAAC,EAClG,SAAA,CAAAD,EAAgB,GAAA,CAAA,CACnB,CAAA,CAAA,CAAA,CACF,CAAA,EAEA,KACHK,GAASmC,GAAatB,EACrB6C,EAAAA,IAAC,SAAA,CACC,GAAG,qCACH,UAAU,iBACV,QAAS,IAAMrB,GAAuBI,EAAe3D,CAAK,CAAC,EAC3D,KAAK,SAEL,eAAC4F,UAAA,CAAW,UAAU,MAAM,MAAOrD,GAAE,iBAAiB,EACpD,SAAAqC,EAAAA,IAACiB,EAAAA,gBAAA,CACC,UAAU,mBACV,GAAI,CACF,SAAU,EAAA,CACZ,CAAA,CACF,CACF,CAAA,CAAA,EAEA,IAAA,CAAA,CACN,CAAA,CAAA,CACF,CAAA,CAAA,EAEFd,EAAAA,KAAC,QAAA,CAAM,UAAU,iBACf,SAAA,CAAAH,MAAC,OAAA,CAAK,UAAU,oFACb,SAAAkB,EAAAA,iBAAiB3C,CAAgB,EACpC,EAEAyB,EAAAA,IAAC,QAAA,CACE,GAAGvC,EACJ,IAAAC,EACA,YAAAjB,GACA,KAAMuB,EAAY,SAAW,OAC7B,SAAAxC,EACA,SAAAkB,GACA,UAAW+C,GAAA,EACX,SAAUP,EACV,IAAK,EACL,QAAAK,EACA,OAAAC,EACA,MAAQxB,EAAoC5C,EAAxB2D,EAAe3D,CAAK,EACxC,aACG4C,EAA2CzC,EAA/BwD,EAAexD,CAAY,EAE1C,GAAIL,GAAMC,EACV,MAAOyB,GACP,aAAa,MACb,UAAAI,CAAA,CAAA,EAEFgD,EAAAA,IAAC,OAAA,CACC,UAAW,qGACTxD,EAAqB,iBAAmB,EAC1C,GAEC,SAAAA,EACCwD,EAAAA,IAACmB,EAAAA,SAAA,CACC,KAAM,CACJ,MAAO,CACL,GAAGhD,EAAA,CACL,EAEF,QAAS,CAAC,OAAO,EACjB,iBAAiB,kBACjB,UAAU,cACV,aAAc,CAAE,OAAQ,GAAA,EACxB,kBAAoBiD,GAClBA,EAAQ,cAEV,YAAcC,GACZlB,EAAAA,KAAC,MAAA,CACC,MAAO,CACL,UAAW,QACX,MAAO,QACP,aAAc,WACd,UAAW,OACX,OAAQ,QACR,aAAc,KAAA,EAEhB,UAAU,6KAEJ,SAAA,CAAAH,EAAAA,IAACsB,GAAAA,UAAA,CACC,GAAI,4BACJ,MAAOjD,EACP,SAAWO,GACTN,EAAwBM,CAAM,EAEhC,UAAU,MAAA,CAAA,EAEjByC,CAAA,CAAA,CAAA,EAIL,SAAAlB,EAAAA,KAAC,MAAA,CAAI,UAAU,qFACZ,SAAA,CAAAD,EAAAA,iBAAiB3B,CAAgB,EAAE,IAAEA,CAAA,CAAA,CACxC,CAAA,CAAA,EAGFA,CAAA,CAAA,CAEJ,EACF,EACCjD,GACC0E,EAAAA,IAACuB,GAAAA,WAAA,CACC,UAAU,sBACV,WAAW,SACX,KAAK,cACL,QAAQ,SAEP,SAAAjG,CAAA,CAAA,CACH,EAEJ,EACCmD,GACCrB,GACAC,GACAC,GACE0C,EAAAA,IAAC,MAAA,CACC,KAAK,UACL,SAAU,EACV,UAAU,oFACV,QAAUb,GAAMA,EAAE,gBAAA,EAClB,YAAcA,GAAMA,EAAE,eAAA,EACtB,UAAYA,GAAM,CACZA,EAAE,MAAQ,UACZT,EAAa,EAAK,CAEtB,EAEA,SAAAsB,EAAAA,IAAC1C,GAAgB,YAAAF,CAAA,CAA0B,CAAA,CAAA,CAC7C,CAAA,CAAA,CAIV,CACF,EAEApC,EAAmB,YAAc"}
1
+ {"version":3,"file":"CurrencyInputField.cjs.js","sources":["../../../../src/components/forms/currency-input/CurrencyInputField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport cn from \"classnames\";\nimport { forwardRef, useEffect, useState } from \"react\";\nimport { Dropdown, Tooltip as AntTooltip } from \"antd\";\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport { Label } from \"../../data-display/label/Label\";\nimport type { LabelType } from \"../../data-display/label/Label\";\nimport { CURRENCIES, CURRENCY_SYMBOLS } from \"./currency.constant\";\nimport { NoteAddOutlined, BoltOutlined } from \"@mui/icons-material\";\nimport { AIExtractedIndicator } from \"../../icons/AIExtractedIndicator\";\nimport { AIStarIcon } from \"../../icons/AIStarIcon\";\nimport { HelpIcon } from \"../../icons/HelpIcon\";\nimport Tooltip from \"../../tooltip/Tooltip\";\nimport {\n getConfidenceScoreBadgeClass,\n getConfidenceScoreBadgeColor,\n getConfidenceScoreBadgeFill,\n getConfidenceScoreBadgeTextColor,\n shouldShowConfidenceScore,\n} from \"../../../utils/confidenceScoreUtils\";\nimport { SearchBar } from \"../search-bar/SearchBar\";\nimport { OptionButton } from \"../../buttons/option-button/OptionButton\";\nimport { getFlagComponent } from \"../../../utils/countryFlags\";\nimport { InputLabel } from \"../shared/InputLabel\";\nimport { formatCurrency as formatCurrencyUtils } from \"../../../utils/formatters\";\n\n/**\n * Confidence score type\n */\nexport type ConfidenceScoreType = \"low\" | \"medium\" | \"high\";\n\nexport type SourceMetaBBox = {\n b: number;\n l: number;\n r: number;\n t: number;\n};\n\nexport type SourceMetaItem = {\n bbox: SourceMetaBBox;\n confidence_score?: number;\n is_primary?: boolean;\n match_score?: number;\n match_type?: string;\n page_height: number;\n page_width: number;\n source_page: number;\n source_text?: string;\n};\n\n/**\n * Risk details interface for risk analysis integration\n */\nexport interface RiskDetails {\n color?: string;\n description?: string;\n hexBgColor?: string;\n hexBorderColor?: string;\n [key: string]: any;\n}\n\n/**\n * Risk details card component props - generic to allow consumer-specific risk types\n */\nexport interface RiskDetailsCardProps<T = any> {\n riskDetails: T;\n maxWidth?: string;\n showAllRisksSuggestions?: boolean;\n}\n\n/**\n * Props for the CurrencyInputField component\n */\nexport interface CurrencyInputFieldProps {\n /** Unique identifier for the currency input */\n id: string;\n /** Label text to display above the input */\n label?: string;\n /** Current value of the input (string for compatibility) */\n value: string;\n /** Callback function called when value changes */\n onChange: (data: any, currencyCode?: string) => void;\n /** Error message to display below the input */\n errorMessage?: string;\n /** Default value for the input */\n defaultValue?: string;\n /** Whether the field is required */\n required?: boolean;\n /** Whether the required indicator shows as conditional (yellow instead of red) */\n isRequiredConditional?: boolean;\n /** Tags/labels to display next to the label */\n tags?: (string | LabelType)[];\n /** Additional CSS classes for the wrapper */\n className?: string;\n /** Whether to preserve original case in the label */\n originalCase?: boolean;\n /** Tooltip text for the help icon */\n tooltip?: string;\n /** Whether to use simple mode (inline label style) */\n simpleMode?: boolean;\n /** Additional CSS classes for the input field */\n inputFieldClassName?: string;\n /** Whether the value was AI extracted */\n isAiExtracted?: boolean;\n /** Confidence percentage shown as a badge */\n confidenceScore?: number;\n /** Confidence classification for badge styling */\n confidenceType?: ConfidenceScoreType;\n /** Optional tooltip content for confidence badge */\n confidenceTooltip?: React.ReactNode;\n /** Source meta for confidence score */\n sourceMeta?: SourceMetaItem[];\n /** Handler fired when confidence score badge is clicked */\n onConfidenceScoreClick?: (sourceMeta: SourceMetaItem[]) => void;\n /** Whether this is a GTN (Global Term Name) field */\n isGTN?: boolean;\n /** GTN field name for document integration */\n gtnName?: any;\n /** Whether to allow multi-currency selection with dropdown */\n allowMultiCurrency?: boolean;\n /** Placeholder text for the input */\n placeholder?: string;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Current currency code */\n currencyCode?: string;\n /** Inline styles for the input element */\n inputStyle?: React.CSSProperties;\n /** Additional CSS classes for the label */\n labelClassName?: string;\n /** Whether this is a live field */\n isLiveField?: boolean;\n /** Callback function called when input loses focus */\n onBlur?: () => void;\n /** Whether the input should auto-focus */\n autoFocus?: boolean;\n /** Whether recording is active (for pilot context) */\n isRecording?: boolean;\n /** Whether playback is active (for pilot context) */\n isPlaying?: boolean;\n /** Handler for adding GTN to document */\n onAddGTNToDocument?: (keyValuePair: { key: string; value: string }) => void;\n /** Risk details data */\n riskDetails?: RiskDetails;\n /** Whether risk analysis is open */\n isRiskAnalysisOpen?: boolean;\n /** Custom risk details card component */\n RiskDetailsCard?: React.ComponentType<RiskDetailsCardProps<any>>;\n /** Optional extra content in the label row (e.g. actions, badges) */\n labelExtra?: React.ReactNode;\n /** Input surface style: `'modified'` — Warning colors; `'deleted'` — Error colors, text #475467; `'success'` — Success colors, text #101828. */\n inputEmphasis?: \"default\" | \"modified\" | \"deleted\" | \"success\";\n}\n\n/**\n * A highly customizable currency input component with label, validation, and styling support.\n * Features currency selection, formatting, validation, GTN integration, risk analysis support,\n * and comprehensive prop support for various use cases.\n *\n * @example\n * ```tsx\n * <CurrencyInputField\n * id=\"price\"\n * label=\"Price\"\n * value={price}\n * onChange={(value, currency) => setPrice(value)}\n * currencyCode=\"USD\"\n * allowMultiCurrency\n * required\n * />\n * ```\n */\nexport const CurrencyInputField = forwardRef<\n HTMLInputElement,\n CurrencyInputFieldProps\n>(\n (\n {\n id,\n label,\n value,\n onChange,\n errorMessage,\n defaultValue,\n required = false,\n isRequiredConditional = false,\n tags,\n className,\n originalCase = false,\n tooltip,\n simpleMode = false,\n inputFieldClassName = \"\",\n isAiExtracted = false,\n confidenceScore,\n confidenceType = \"high\",\n confidenceTooltip,\n sourceMeta = [],\n onConfidenceScoreClick,\n isGTN = false,\n gtnName = null,\n allowMultiCurrency = false,\n placeholder,\n disabled = false,\n currencyCode = \"USD\",\n inputStyle,\n labelClassName,\n isLiveField = false,\n onBlur: onBlurProp,\n autoFocus = false,\n isRecording = false,\n isPlaying = false,\n onAddGTNToDocument,\n riskDetails,\n isRiskAnalysisOpen = false,\n RiskDetailsCard,\n labelExtra,\n inputEmphasis = \"default\",\n ...props\n },\n ref\n ) => {\n const { t } = useTranslation();\n const emphasisModifiedSkin = inputEmphasis === \"modified\" && !errorMessage && !(isRiskAnalysisOpen && riskDetails?.color);\n const emphasisDeletedSkin = inputEmphasis === \"deleted\" && !errorMessage && !(isRiskAnalysisOpen && riskDetails?.color);\n const emphasisSuccessSkin = inputEmphasis === \"success\" && !errorMessage && !(isRiskAnalysisOpen && riskDetails?.color);\n const [isFocused, setIsFocused] = useState(false);\n const [filteredCurrencyOptions, setFilteredCurrencyOptions] = useState<\n { label: React.ReactNode; key: string }[]\n >([]);\n const [searchKeyForCurrency, setSearchKeyForCurrency] = useState(\"\");\n const [selectedCurrency, setSelectedCurrency] = useState<string>(\n currencyCode ? currencyCode : \"USD\"\n );\n const [isHovered, setIsHovered] = useState(false);\n\n const handleAddGTNToDocument = (_value: string) => {\n if (onAddGTNToDocument) {\n const keyValuePair = {\n key: gtnName,\n value: formatCurrencyUtils(_value, selectedCurrency),\n };\n onAddGTNToDocument(keyValuePair);\n }\n };\n\n const formatCurrency = (targetValue: any): string => {\n if (targetValue === null || targetValue === undefined) return \"\";\n\n const number = Number(targetValue);\n if (isNaN(number)) return targetValue;\n\n return number?.toLocaleString(\"en-US\", {\n minimumFractionDigits: 2,\n maximumFractionDigits: 2,\n });\n };\n\n const handleOnChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const _value = e.target.value;\n const numericValue =\n _value === \"\" || _value === null || _value === undefined\n ? 0\n : Number(_value);\n onChange(numericValue, selectedCurrency);\n const element = document.getElementById(id);\n if (element) {\n element.setAttribute(\n \"data-selected-value\",\n JSON.stringify({\n value: numericValue,\n currency_code: selectedCurrency,\n })\n );\n }\n if (element && (isRecording || isPlaying)) {\n const pilotEvent = new CustomEvent(\"pilot-change\", {\n bubbles: true,\n detail: {\n selector: `#${id}`,\n value: {\n value: numericValue,\n currency_code: selectedCurrency,\n },\n type: \"change\",\n },\n });\n element.dispatchEvent(pilotEvent);\n }\n };\n\n const onFocus = () => {\n setIsFocused(true);\n };\n\n const onBlur = () => {\n setIsFocused(false);\n if (value === null || value === undefined || value === \"\") {\n handleOnChange({\n target: { value: \"0.00\" },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n onBlurProp?.();\n };\n\n const getClassName = (): string => {\n const baseClasses =\n \"pl-11 border h-8 text-sm block w-full p-2.5 font-inter font-medium focus:outline-none focus:ring-0\";\n\n if (errorMessage) {\n return cn(baseClasses, \"rounded-md border-red-300 bg-white dark:bg-black-600\", inputFieldClassName);\n }\n if (isRiskAnalysisOpen && riskDetails?.color) {\n return cn(baseClasses, `rounded-md border-${riskDetails.color}-300 bg-${riskDetails.color}-50`, \"text-neutral-900 dark:text-black-200 disabled:bg-neutral-50 dark:disabled:!bg-black-800\", inputFieldClassName);\n }\n if (emphasisDeletedSkin) {\n return cn(baseClasses, \"rounded-lg border border-solid border-[var(--Error-200,#FECACA)] bg-[var(--Error-50,#FEF2F2)] !text-[#475467] focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)] dark:border-[var(--Error-200,#FECACA)] dark:bg-[var(--Error-50,#FEF2F2)] dark:!text-[#475467] disabled:!opacity-100 disabled:!bg-[var(--Error-50,#FEF2F2)]\", inputFieldClassName);\n }\n if (emphasisModifiedSkin) {\n return cn(baseClasses, \"rounded-lg border border-solid border-[var(--Warning-200,#FEDF89)] bg-[var(--Warning-50,#FFFAEB)] text-neutral-900 dark:text-black-100 focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)] dark:border-[var(--Warning-200,#FEDF89)] dark:bg-[var(--Warning-50,#FFFAEB)] disabled:!opacity-100 disabled:!bg-[var(--Warning-50,#FFFAEB)]\", inputFieldClassName);\n }\n if (emphasisSuccessSkin) {\n return cn(baseClasses, \"rounded-lg border border-solid border-[var(--Success-200,#BBF7D0)] bg-[var(--Success-50,#F0FDF4)] !text-[#101828] focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)] dark:border-[var(--Success-200,#BBF7D0)] dark:bg-[var(--Success-50,#F0FDF4)] dark:!text-[#101828] disabled:!opacity-100 disabled:!bg-[var(--Success-50,#F0FDF4)]\", inputFieldClassName);\n }\n return cn(baseClasses, \"rounded-lg border-gray-300 dark:border-black-600 bg-white dark:bg-black-600 text-neutral-900 dark:text-black-200 disabled:bg-neutral-50 dark:disabled:!bg-black-800 dark:disabled:placeholder:!text-black-400 focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]\", inputFieldClassName);\n };\n\n useEffect(() => {\n if (currencyCode) {\n setSelectedCurrency(currencyCode);\n }\n }, [currencyCode]);\n\n useEffect(() => {\n if (selectedCurrency) {\n const numericValue =\n value === \"\" || value === null || value === undefined\n ? 0\n : Number(value);\n if (currencyCode !== selectedCurrency) {\n onChange(numericValue, selectedCurrency);\n }\n const element = document.getElementById(id);\n if (element) {\n element.setAttribute(\n \"data-selected-value\",\n JSON.stringify({\n value: numericValue,\n currency_code: selectedCurrency,\n })\n );\n if (isRecording || isPlaying) {\n const pilotEvent = new CustomEvent(\"pilot-change\", {\n bubbles: true,\n detail: {\n selector: `#${id}`,\n value: {\n value: numericValue,\n currency_code: selectedCurrency,\n },\n type: \"change\",\n },\n });\n element.dispatchEvent(pilotEvent);\n }\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedCurrency]);\n\n useEffect(() => {\n const currencyOptions = CURRENCIES.filter((item) =>\n (item.value + \" - \" + item.label)\n .toLowerCase()\n .includes(searchKeyForCurrency.toLowerCase())\n ).map((item) => ({\n label: (\n <OptionButton\n text={`${item.value} - ${item.label}`}\n icon={getFlagComponent(item.value)}\n showTick={selectedCurrency === item.value}\n onClick={() => setSelectedCurrency(item.value)}\n className=\"text-black-900 dark:text-white\"\n />\n ),\n key: item.value,\n }));\n\n setFilteredCurrencyOptions(currencyOptions);\n }, [searchKeyForCurrency, selectedCurrency]);\n\n useEffect(() => {\n setSearchKeyForCurrency(\"\");\n }, [selectedCurrency]);\n\n // Simple mode rendering\n if (simpleMode) {\n return (\n <label\n id={id}\n className={`mb-1 text-xs font-medium text-gray-600 h-full inline-flex items-center gap-1 ${\n !originalCase ? \"capitalize\" : \"\"\n } ${labelClassName || \"\"}`}\n >\n <span className=\"absolute inset-y-0 left-1 top-0.5 flex items-center pl-3\">\n {\"$\"}\n </span>\n <input\n {...props}\n ref={ref}\n type={isFocused ? \"number\" : \"text\"}\n required={required}\n className={cn(inputFieldClassName, \"pl-8 h-8\")}\n onChange={handleOnChange}\n min={0}\n onFocus={onFocus}\n onBlur={onBlur}\n value={!isFocused ? formatCurrency(value) : value}\n {...(defaultValue && !value\n ? {\n defaultValue: !isFocused\n ? formatCurrency(defaultValue)\n : defaultValue,\n }\n : {})}\n id={id || label}\n autoFocus={autoFocus}\n />\n </label>\n );\n }\n\n // Full mode rendering\n return (\n <div\n className={cn(\n \"flex gap-0.5 relative\",\n isHovered && isGTN\n ? \"border rounded-lg border-primary-100 bg-primary-50 p-1\"\n : \"\"\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n >\n {isGTN && !isHovered ? (\n <div className=\"size-1 bg-primary-600 rounded-full animate-blink mt-1.5\" />\n ) : null}\n <div className={cn(\"w-full flex flex-col\", className)}>\n <label\n htmlFor=\"text\"\n className={`mb-1 text-xs font-medium text-gray-600 inline-flex items-center gap-1 ${\n !originalCase ? \"uppercase\" : \"\"\n } ${labelClassName || \"\"}`}\n >\n <div className=\"grid w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-1\">\n <div className=\"inline-flex min-w-0 items-center gap-1 flex-wrap\">\n <InputLabel label={label || \"\"} required={required || false} isRequiredConditional={isRequiredConditional || false} />\n {isLiveField && (\n <BoltOutlined\n sx={{\n fontSize: 16,\n color: \"var(--color-primary-600)\",\n rotate: \"15deg\",\n }}\n />\n )}\n {isAiExtracted && !shouldShowConfidenceScore(confidenceScore) && <AIExtractedIndicator />}\n <Label labels={tags} />\n {tooltip && (\n <Tooltip placement=\"top\" title={tooltip}>\n <div className=\"cursor-pointer\">\n <HelpIcon className=\"w-icon-sm h-icon-sm\" />\n </div>\n </Tooltip>\n )}\n {labelExtra}\n </div>\n <div className=\"flex items-center gap-1 justify-self-end\">\n {(shouldShowConfidenceScore(confidenceScore) && confidenceType) ? (\n <Tooltip\n placement=\"top-end\"\n title={confidenceTooltip ?? \"\"}\n hideTooltip={confidenceTooltip === undefined || confidenceTooltip === null}\n className=\"cursor-pointer\"\n >\n <div\n className={cn(\n \"inline-flex min-w-[50px] items-center gap-1 rounded-md px-1 py-0.5\",\n getConfidenceScoreBadgeClass(confidenceType)\n )}\n onClick={() => onConfidenceScoreClick?.(sourceMeta)}\n >\n <AIStarIcon\n size={12}\n fill={getConfidenceScoreBadgeColor(confidenceType)}\n fillSecondary={getConfidenceScoreBadgeFill(confidenceType)}\n />\n <span className={cn(\"text-xs font-medium leading-4\", getConfidenceScoreBadgeTextColor(confidenceType))}>\n {confidenceScore}%\n </span>\n </div>\n </Tooltip>\n ) : null}\n {isGTN && isHovered && onAddGTNToDocument ? (\n <button\n id=\"btn-currency-input-add-to-document\"\n className=\"cursor-pointer\"\n onClick={() => handleAddGTNToDocument(formatCurrency(value))}\n type=\"button\"\n >\n <AntTooltip placement=\"top\" title={t(\"Add to document\")}>\n <NoteAddOutlined\n className=\"text-primary-600\"\n sx={{\n fontSize: 16\n }}\n />\n </AntTooltip>\n </button>\n ) : null}\n </div>\n </div>\n </label>\n <label className=\"relative block\">\n <span className=\"absolute inset-y-0 left-1 flex items-center pl-3 text-neutral-900 dark:text-white\">\n {CURRENCY_SYMBOLS[selectedCurrency]}\n </span>\n\n <input\n {...props}\n ref={ref}\n placeholder={placeholder}\n type={isFocused ? \"number\" : \"text\"}\n required={required}\n disabled={disabled}\n className={getClassName()}\n onChange={handleOnChange}\n min={0}\n onFocus={onFocus}\n onBlur={onBlur}\n value={!isFocused ? formatCurrency(value) : value}\n defaultValue={\n !isFocused ? formatCurrency(defaultValue) : defaultValue\n }\n id={id || label}\n style={inputStyle}\n autoComplete=\"off\"\n autoFocus={autoFocus}\n />\n <span\n className={`absolute inset-y-0 right-2 flex items-center z-[1000] h-full cursor-pointer dark:text-black-200 ${\n allowMultiCurrency ? \"cursor-pointer\" : \"\"\n }`}\n >\n {allowMultiCurrency ? (\n <Dropdown\n menu={{\n items: [\n ...filteredCurrencyOptions,\n ],\n }}\n trigger={[\"click\"]}\n overlayClassName=\"row-option-cell\"\n placement=\"bottomRight\"\n overlayStyle={{ zIndex: 999 }}\n getPopupContainer={(trigger) =>\n trigger.parentElement as HTMLElement\n }\n popupRender={(menu) => (\n <div\n className=\"[&>*:nth-child(2)]:!shadow-none [&>*:nth-child(2)>*]:!px-2 flex flex-col gap-2 p-2 bg-white dark:bg-black-700 border border-solid border-neutral-200 dark:border-black-600 max-h-[200px] w-[330px] text-ellipsis overflow-y-auto z-[999] rounded-md\"\n >\n <SearchBar\n id={`search-bar-currency-input`}\n value={searchKeyForCurrency}\n onChange={(_value) =>\n setSearchKeyForCurrency(_value)\n }\n className=\"mb-2\"\n />\n {menu}\n </div>\n )}\n >\n <div className=\"pl-4 pr-2 py-1.5 text-sm text-gray-700 dark:text-black-200 flex items-center gap-1\">\n {getFlagComponent(selectedCurrency)} {selectedCurrency}\n </div>\n </Dropdown>\n ) : (\n selectedCurrency\n )}\n </span>\n </label>\n {errorMessage && (\n <Typography\n className=\"text-error-500 mt-1\"\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"medium\"\n >\n {errorMessage}\n </Typography>\n )}\n </div>\n {isHovered &&\n riskDetails &&\n isRiskAnalysisOpen &&\n RiskDetailsCard && (\n <div\n role=\"tooltip\"\n tabIndex={0}\n className=\"absolute left-0 right-0 top-[95%] mt-1 z-50 bg-white dark:bg-black-600 rounded-xl\"\n onClick={(e) => e.stopPropagation()}\n onMouseDown={(e) => e.preventDefault()}\n onKeyDown={(e) => {\n if (e.key === \"Escape\") {\n setIsHovered(false);\n }\n }}\n >\n <RiskDetailsCard riskDetails={riskDetails} />\n </div>\n )}\n </div>\n );\n }\n);\n\nCurrencyInputField.displayName = \"CurrencyInputField\";\n"],"names":["CurrencyInputField","forwardRef","id","label","value","onChange","errorMessage","defaultValue","required","isRequiredConditional","tags","className","originalCase","tooltip","simpleMode","inputFieldClassName","isAiExtracted","confidenceScore","confidenceType","confidenceTooltip","sourceMeta","onConfidenceScoreClick","isGTN","gtnName","allowMultiCurrency","placeholder","disabled","currencyCode","inputStyle","labelClassName","isLiveField","onBlurProp","autoFocus","isRecording","isPlaying","onAddGTNToDocument","riskDetails","isRiskAnalysisOpen","RiskDetailsCard","labelExtra","inputEmphasis","props","ref","t","useTranslation","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","isFocused","setIsFocused","useState","filteredCurrencyOptions","setFilteredCurrencyOptions","searchKeyForCurrency","setSearchKeyForCurrency","selectedCurrency","setSelectedCurrency","isHovered","setIsHovered","handleAddGTNToDocument","_value","keyValuePair","formatCurrencyUtils","formatCurrency","targetValue","number","handleOnChange","e","numericValue","element","pilotEvent","onFocus","onBlur","getClassName","baseClasses","cn","useEffect","currencyOptions","CURRENCIES","item","jsx","OptionButton","getFlagComponent","jsxs","InputLabel","BoltOutlined","shouldShowConfidenceScore","AIExtractedIndicator","Label","Tooltip","HelpIcon","getConfidenceScoreBadgeClass","AIStarIcon","getConfidenceScoreBadgeColor","getConfidenceScoreBadgeFill","getConfidenceScoreBadgeTextColor","AntTooltip","NoteAddOutlined","CURRENCY_SYMBOLS","Dropdown","trigger","menu","SearchBar","Typography"],"mappings":"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"}
@@ -2,41 +2,41 @@ import { jsx as t, jsxs as l } from "react/jsx-runtime";
2
2
  import n from "../../../_virtual/index.es.js";
3
3
  import { forwardRef as ye, useState as h, useEffect as k } from "react";
4
4
  import { Tooltip as ke, Dropdown as Fe } from "antd";
5
- import { useTranslation as we } from "react-i18next";
6
- import { Typography as Ee } from "../../data-display/typography/Typography.es.js";
7
- import { Label as Se } from "../../data-display/label/Label.es.js";
5
+ import { useTranslation as Ee } from "react-i18next";
6
+ import { Typography as Se } from "../../data-display/typography/Typography.es.js";
7
+ import { Label as we } from "../../data-display/label/Label.es.js";
8
8
  import { CURRENCIES as Ce, CURRENCY_SYMBOLS as Ne } from "./currency.constant.es.js";
9
9
  import { BoltOutlined as _e, NoteAddOutlined as Be } from "@mui/icons-material";
10
10
  import { AIExtractedIndicator as Ie } from "../../icons/AIExtractedIndicator.es.js";
11
11
  import { AIStarIcon as $e } from "../../icons/AIStarIcon.es.js";
12
- import { HelpIcon as Ae } from "../../icons/HelpIcon.es.js";
12
+ import { HelpIcon as ze } from "../../icons/HelpIcon.es.js";
13
13
  import X from "../../tooltip/Tooltip.es.js";
14
- import { shouldShowConfidenceScore as Z, getConfidenceScoreBadgeFill as ze, getConfidenceScoreBadgeColor as De, getConfidenceScoreBadgeTextColor as Le, getConfidenceScoreBadgeClass as Oe } from "../../../utils/confidenceScoreUtils.es.js";
14
+ import { shouldShowConfidenceScore as Z, getConfidenceScoreBadgeFill as Ae, getConfidenceScoreBadgeColor as De, getConfidenceScoreBadgeTextColor as Le, getConfidenceScoreBadgeClass as Oe } from "../../../utils/confidenceScoreUtils.es.js";
15
15
  import { SearchBar as We } from "../search-bar/SearchBar.es.js";
16
16
  import { OptionButton as Ue } from "../../buttons/option-button/OptionButton.es.js";
17
17
  import { getFlagComponent as M } from "../../../utils/countryFlags.es.js";
18
- import { InputLabel as He } from "../shared/InputLabel.es.js";
19
- import { formatCurrency as je } from "../../../utils/formatters.es.js";
18
+ import { InputLabel as je } from "../shared/InputLabel.es.js";
19
+ import { formatCurrency as He } from "../../../utils/formatters.es.js";
20
20
  const Ke = ye(
21
21
  ({
22
22
  id: d,
23
23
  label: F,
24
24
  value: a,
25
- onChange: A,
25
+ onChange: z,
26
26
  errorMessage: i,
27
27
  defaultValue: b,
28
- required: w = !1,
28
+ required: E = !1,
29
29
  isRequiredConditional: T = !1,
30
30
  tags: V,
31
31
  className: G,
32
- originalCase: z = !1,
32
+ originalCase: A = !1,
33
33
  tooltip: D,
34
34
  simpleMode: ee = !1,
35
35
  inputFieldClassName: s = "",
36
36
  isAiExtracted: re = !1,
37
- confidenceScore: E,
38
- confidenceType: p = "high",
39
- confidenceTooltip: S,
37
+ confidenceScore: S,
38
+ confidenceType: f = "high",
39
+ confidenceTooltip: w,
40
40
  sourceMeta: te = [],
41
41
  onConfidenceScoreClick: oe,
42
42
  isGTN: C = !1,
@@ -51,22 +51,22 @@ const Ke = ye(
51
51
  onBlur: se,
52
52
  autoFocus: W = !1,
53
53
  isRecording: U = !1,
54
- isPlaying: H = !1,
54
+ isPlaying: j = !1,
55
55
  onAddGTNToDocument: N,
56
56
  riskDetails: c,
57
- isRiskAnalysisOpen: f = !1,
58
- RiskDetailsCard: j,
57
+ isRiskAnalysisOpen: p = !1,
58
+ RiskDetailsCard: H,
59
59
  labelExtra: ie,
60
60
  inputEmphasis: _ = "default",
61
61
  ...K
62
- }, R) => {
63
- const { t: me } = we(), ue = _ === "modified" && !i && !(f && c?.color), be = _ === "deleted" && !i && !(f && c?.color), pe = _ === "success" && !i && !(f && c?.color), [u, Y] = h(!1), [fe, ge] = h([]), [B, J] = h(""), [o, P] = h(
62
+ }, J) => {
63
+ const { t: me } = Ee(), ue = _ === "modified" && !i && !(p && c?.color), be = _ === "deleted" && !i && !(p && c?.color), fe = _ === "success" && !i && !(p && c?.color), [u, P] = h(!1), [pe, ge] = h([]), [B, R] = h(""), [o, Y] = h(
64
64
  m || "USD"
65
65
  ), [v, I] = h(!1), xe = (e) => {
66
66
  if (N) {
67
67
  const r = {
68
68
  key: ae,
69
- value: je(e, o)
69
+ value: He(e, o)
70
70
  };
71
71
  N(r);
72
72
  }
@@ -79,7 +79,7 @@ const Ke = ye(
79
79
  });
80
80
  }, $ = (e) => {
81
81
  const r = e.target.value, x = r === "" || r === null || r === void 0 ? 0 : Number(r);
82
- A(x, o);
82
+ z(x, o);
83
83
  const y = document.getElementById(d);
84
84
  if (y && y.setAttribute(
85
85
  "data-selected-value",
@@ -87,7 +87,7 @@ const Ke = ye(
87
87
  value: x,
88
88
  currency_code: o
89
89
  })
90
- ), y && (U || H)) {
90
+ ), y && (U || j)) {
91
91
  const ve = new CustomEvent("pilot-change", {
92
92
  bubbles: !0,
93
93
  detail: {
@@ -102,21 +102,21 @@ const Ke = ye(
102
102
  y.dispatchEvent(ve);
103
103
  }
104
104
  }, q = () => {
105
- Y(!0);
105
+ P(!0);
106
106
  }, Q = () => {
107
- Y(!1), (a == null || a === "") && $({
107
+ P(!1), (a == null || a === "") && $({
108
108
  target: { value: "0.00" }
109
109
  }), se?.();
110
110
  }, he = () => {
111
- const e = "pl-11 border h-[32px] text-sm block w-full p-2.5 font-inter font-medium focus:outline-none focus:ring-0";
112
- return i ? n(e, "rounded-md border-red-300 bg-white dark:bg-black-600", s) : f && c?.color ? n(e, `rounded-md border-${c.color}-300 bg-${c.color}-50`, "text-neutral-900 dark:text-black-200 disabled:bg-neutral-50 dark:disabled:!bg-black-800", s) : be ? n(e, "rounded-lg border border-solid border-[var(--Error-200,#FECACA)] bg-[var(--Error-50,#FEF2F2)] !text-[#475467] focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)] dark:border-[var(--Error-200,#FECACA)] dark:bg-[var(--Error-50,#FEF2F2)] dark:!text-[#475467] disabled:!opacity-100 disabled:!bg-[var(--Error-50,#FEF2F2)]", s) : ue ? n(e, "rounded-lg border border-solid border-[var(--Warning-200,#FEDF89)] bg-[var(--Warning-50,#FFFAEB)] text-neutral-900 dark:text-black-100 focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)] dark:border-[var(--Warning-200,#FEDF89)] dark:bg-[var(--Warning-50,#FFFAEB)] disabled:!opacity-100 disabled:!bg-[var(--Warning-50,#FFFAEB)]", s) : pe ? n(e, "rounded-lg border border-solid border-[var(--Success-200,#BBF7D0)] bg-[var(--Success-50,#F0FDF4)] !text-[#101828] focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)] dark:border-[var(--Success-200,#BBF7D0)] dark:bg-[var(--Success-50,#F0FDF4)] dark:!text-[#101828] disabled:!opacity-100 disabled:!bg-[var(--Success-50,#F0FDF4)]", s) : n(e, "rounded-lg border-gray-300 dark:border-black-600 bg-white dark:bg-black-600 text-neutral-900 dark:text-black-200 disabled:bg-neutral-50 dark:disabled:!bg-black-800 dark:disabled:placeholder:!text-black-400 focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]", s);
111
+ const e = "pl-11 border h-8 text-sm block w-full p-2.5 font-inter font-medium focus:outline-none focus:ring-0";
112
+ return i ? n(e, "rounded-md border-red-300 bg-white dark:bg-black-600", s) : p && c?.color ? n(e, `rounded-md border-${c.color}-300 bg-${c.color}-50`, "text-neutral-900 dark:text-black-200 disabled:bg-neutral-50 dark:disabled:!bg-black-800", s) : be ? n(e, "rounded-lg border border-solid border-[var(--Error-200,#FECACA)] bg-[var(--Error-50,#FEF2F2)] !text-[#475467] focus:border-[var(--Error-200,#FECACA)] focus:shadow-[0_0_0_2px_rgba(254,202,202,0.45)] dark:border-[var(--Error-200,#FECACA)] dark:bg-[var(--Error-50,#FEF2F2)] dark:!text-[#475467] disabled:!opacity-100 disabled:!bg-[var(--Error-50,#FEF2F2)]", s) : ue ? n(e, "rounded-lg border border-solid border-[var(--Warning-200,#FEDF89)] bg-[var(--Warning-50,#FFFAEB)] text-neutral-900 dark:text-black-100 focus:border-[var(--Warning-200,#FEDF89)] focus:shadow-[0_0_0_2px_rgba(254,223,137,0.45)] dark:border-[var(--Warning-200,#FEDF89)] dark:bg-[var(--Warning-50,#FFFAEB)] disabled:!opacity-100 disabled:!bg-[var(--Warning-50,#FFFAEB)]", s) : fe ? n(e, "rounded-lg border border-solid border-[var(--Success-200,#BBF7D0)] bg-[var(--Success-50,#F0FDF4)] !text-[#101828] focus:border-[var(--Success-200,#BBF7D0)] focus:shadow-[0_0_0_2px_rgba(187,247,208,0.45)] dark:border-[var(--Success-200,#BBF7D0)] dark:bg-[var(--Success-50,#F0FDF4)] dark:!text-[#101828] disabled:!opacity-100 disabled:!bg-[var(--Success-50,#F0FDF4)]", s) : n(e, "rounded-lg border-gray-300 dark:border-black-600 bg-white dark:bg-black-600 text-neutral-900 dark:text-black-200 disabled:bg-neutral-50 dark:disabled:!bg-black-800 dark:disabled:placeholder:!text-black-400 focus:border-[var(--color-primary-600)] dark:focus:border-[var(--color-primary-400)] focus:shadow-[0_0_0_1.5px_var(--color-primary-100)] dark:focus:shadow-[0_0_0_1.5px_var(--color-primary-950)]", s);
113
113
  };
114
114
  return k(() => {
115
- m && P(m);
115
+ m && Y(m);
116
116
  }, [m]), k(() => {
117
117
  if (o) {
118
118
  const e = a === "" || a === null || a === void 0 ? 0 : Number(a);
119
- m !== o && A(e, o);
119
+ m !== o && z(e, o);
120
120
  const r = document.getElementById(d);
121
121
  if (r && (r.setAttribute(
122
122
  "data-selected-value",
@@ -124,7 +124,7 @@ const Ke = ye(
124
124
  value: e,
125
125
  currency_code: o
126
126
  })
127
- ), U || H)) {
127
+ ), U || j)) {
128
128
  const x = new CustomEvent("pilot-change", {
129
129
  bubbles: !0,
130
130
  detail: {
@@ -149,7 +149,7 @@ const Ke = ye(
149
149
  text: `${r.value} - ${r.label}`,
150
150
  icon: M(r.value),
151
151
  showTick: o === r.value,
152
- onClick: () => P(r.value),
152
+ onClick: () => Y(r.value),
153
153
  className: "text-black-900 dark:text-white"
154
154
  }
155
155
  ),
@@ -157,22 +157,22 @@ const Ke = ye(
157
157
  }));
158
158
  ge(e);
159
159
  }, [B, o]), k(() => {
160
- J("");
160
+ R("");
161
161
  }, [o]), ee ? /* @__PURE__ */ l(
162
162
  "label",
163
163
  {
164
164
  id: d,
165
- className: `mb-1 text-xs font-medium text-gray-600 h-full inline-flex items-center gap-1 ${z ? "" : "capitalize"} ${O || ""}`,
165
+ className: `mb-1 text-xs font-medium text-gray-600 h-full inline-flex items-center gap-1 ${A ? "" : "capitalize"} ${O || ""}`,
166
166
  children: [
167
167
  /* @__PURE__ */ t("span", { className: "absolute inset-y-0 left-1 top-0.5 flex items-center pl-3", children: "$" }),
168
168
  /* @__PURE__ */ t(
169
169
  "input",
170
170
  {
171
171
  ...K,
172
- ref: R,
172
+ ref: J,
173
173
  type: u ? "number" : "text",
174
- required: w,
175
- className: n(s, "pl-8 h-[32px]"),
174
+ required: E,
175
+ className: n(s, "pl-8 h-8"),
176
176
  onChange: $,
177
177
  min: 0,
178
178
  onFocus: q,
@@ -197,16 +197,16 @@ const Ke = ye(
197
197
  onMouseEnter: () => I(!0),
198
198
  onMouseLeave: () => I(!1),
199
199
  children: [
200
- C && !v ? /* @__PURE__ */ t("div", { className: "w-1 h-1 bg-primary-600 rounded-full animate-blink mt-1.5" }) : null,
200
+ C && !v ? /* @__PURE__ */ t("div", { className: "size-1 bg-primary-600 rounded-full animate-blink mt-1.5" }) : null,
201
201
  /* @__PURE__ */ l("div", { className: n("w-full flex flex-col", G), children: [
202
202
  /* @__PURE__ */ t(
203
203
  "label",
204
204
  {
205
205
  htmlFor: "text",
206
- className: `mb-1 text-xs font-medium text-gray-600 inline-flex items-center gap-1 ${z ? "" : "uppercase"} ${O || ""}`,
206
+ className: `mb-1 text-xs font-medium text-gray-600 inline-flex items-center gap-1 ${A ? "" : "uppercase"} ${O || ""}`,
207
207
  children: /* @__PURE__ */ l("div", { className: "grid w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-1", children: [
208
208
  /* @__PURE__ */ l("div", { className: "inline-flex min-w-0 items-center gap-1 flex-wrap", children: [
209
- /* @__PURE__ */ t(He, { label: F || "", required: w || !1, isRequiredConditional: T || !1 }),
209
+ /* @__PURE__ */ t(je, { label: F || "", required: E || !1, isRequiredConditional: T || !1 }),
210
210
  de && /* @__PURE__ */ t(
211
211
  _e,
212
212
  {
@@ -217,25 +217,25 @@ const Ke = ye(
217
217
  }
218
218
  }
219
219
  ),
220
- re && !Z(E) && /* @__PURE__ */ t(Ie, {}),
221
- /* @__PURE__ */ t(Se, { labels: V }),
222
- D && /* @__PURE__ */ t(X, { placement: "top", title: D, children: /* @__PURE__ */ t("div", { className: "cursor-pointer", children: /* @__PURE__ */ t(Ae, {}) }) }),
220
+ re && !Z(S) && /* @__PURE__ */ t(Ie, {}),
221
+ /* @__PURE__ */ t(we, { labels: V }),
222
+ D && /* @__PURE__ */ t(X, { placement: "top", title: D, children: /* @__PURE__ */ t("div", { className: "cursor-pointer", children: /* @__PURE__ */ t(ze, { className: "w-icon-sm h-icon-sm" }) }) }),
223
223
  ie
224
224
  ] }),
225
225
  /* @__PURE__ */ l("div", { className: "flex items-center gap-1 justify-self-end", children: [
226
- Z(E) && p ? /* @__PURE__ */ t(
226
+ Z(S) && f ? /* @__PURE__ */ t(
227
227
  X,
228
228
  {
229
229
  placement: "top-end",
230
- title: S ?? "",
231
- hideTooltip: S == null,
230
+ title: w ?? "",
231
+ hideTooltip: w == null,
232
232
  className: "cursor-pointer",
233
233
  children: /* @__PURE__ */ l(
234
234
  "div",
235
235
  {
236
236
  className: n(
237
237
  "inline-flex min-w-[50px] items-center gap-1 rounded-md px-1 py-0.5",
238
- Oe(p)
238
+ Oe(f)
239
239
  ),
240
240
  onClick: () => oe?.(te),
241
241
  children: [
@@ -243,12 +243,12 @@ const Ke = ye(
243
243
  $e,
244
244
  {
245
245
  size: 12,
246
- fill: De(p),
247
- fillSecondary: ze(p)
246
+ fill: De(f),
247
+ fillSecondary: Ae(f)
248
248
  }
249
249
  ),
250
- /* @__PURE__ */ l("span", { className: n("text-xs font-medium leading-4", Le(p)), children: [
251
- E,
250
+ /* @__PURE__ */ l("span", { className: n("text-xs font-medium leading-4", Le(f)), children: [
251
+ S,
252
252
  "%"
253
253
  ] })
254
254
  ]
@@ -284,10 +284,10 @@ const Ke = ye(
284
284
  "input",
285
285
  {
286
286
  ...K,
287
- ref: R,
287
+ ref: J,
288
288
  placeholder: le,
289
289
  type: u ? "number" : "text",
290
- required: w,
290
+ required: E,
291
291
  disabled: ne,
292
292
  className: he(),
293
293
  onChange: $,
@@ -305,13 +305,13 @@ const Ke = ye(
305
305
  /* @__PURE__ */ t(
306
306
  "span",
307
307
  {
308
- className: `absolute inset-y-0 right-2 flex items-center z-[1000px] h-full cursor-pointer dark:text-black-200 ${L ? "cursor-pointer" : ""}`,
308
+ className: `absolute inset-y-0 right-2 flex items-center z-[1000] h-full cursor-pointer dark:text-black-200 ${L ? "cursor-pointer" : ""}`,
309
309
  children: L ? /* @__PURE__ */ t(
310
310
  Fe,
311
311
  {
312
312
  menu: {
313
313
  items: [
314
- ...fe
314
+ ...pe
315
315
  ]
316
316
  },
317
317
  trigger: ["click"],
@@ -322,22 +322,14 @@ const Ke = ye(
322
322
  popupRender: (e) => /* @__PURE__ */ l(
323
323
  "div",
324
324
  {
325
- style: {
326
- maxHeight: "200px",
327
- width: "330px",
328
- textOverflow: "ellipsis",
329
- overflowY: "auto",
330
- zIndex: "999px",
331
- borderRadius: "6px"
332
- },
333
- className: "[&>*:nth-child(2)]:!shadow-none [&>*:nth-child(2)>*]:!px-2 flex flex-col gap-2 p-2 bg-white dark:bg-black-700 border border-solid border-neutral-200 dark:border-black-600",
325
+ className: "[&>*:nth-child(2)]:!shadow-none [&>*:nth-child(2)>*]:!px-2 flex flex-col gap-2 p-2 bg-white dark:bg-black-700 border border-solid border-neutral-200 dark:border-black-600 max-h-[200px] w-[330px] text-ellipsis overflow-y-auto z-[999] rounded-md",
334
326
  children: [
335
327
  /* @__PURE__ */ t(
336
328
  We,
337
329
  {
338
330
  id: "search-bar-currency-input",
339
331
  value: B,
340
- onChange: (r) => J(r),
332
+ onChange: (r) => R(r),
341
333
  className: "mb-2"
342
334
  }
343
335
  ),
@@ -356,7 +348,7 @@ const Ke = ye(
356
348
  )
357
349
  ] }),
358
350
  i && /* @__PURE__ */ t(
359
- Ee,
351
+ Se,
360
352
  {
361
353
  className: "text-error-500 mt-1",
362
354
  appearance: "custom",
@@ -366,7 +358,7 @@ const Ke = ye(
366
358
  }
367
359
  )
368
360
  ] }),
369
- v && c && f && j && /* @__PURE__ */ t(
361
+ v && c && p && H && /* @__PURE__ */ t(
370
362
  "div",
371
363
  {
372
364
  role: "tooltip",
@@ -377,7 +369,7 @@ const Ke = ye(
377
369
  onKeyDown: (e) => {
378
370
  e.key === "Escape" && I(!1);
379
371
  },
380
- children: /* @__PURE__ */ t(j, { riskDetails: c })
372
+ children: /* @__PURE__ */ t(H, { riskDetails: c })
381
373
  }
382
374
  )
383
375
  ]