@lax-wp/design-system 0.13.33 → 0.13.35

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 (169) 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/CheckboxCell.cjs.js +1 -1
  18. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js.map +1 -1
  19. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js +23 -23
  20. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js.map +1 -1
  21. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
  22. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
  23. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +1 -1
  24. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
  25. package/dist/components/data-display/infinite-table/body/rows/index.cjs.js +1 -1
  26. package/dist/components/data-display/infinite-table/body/rows/index.cjs.js.map +1 -1
  27. package/dist/components/data-display/infinite-table/body/rows/index.es.js +104 -101
  28. package/dist/components/data-display/infinite-table/body/rows/index.es.js.map +1 -1
  29. package/dist/components/data-display/infinite-table/constants.cjs.js +1 -1
  30. package/dist/components/data-display/infinite-table/constants.cjs.js.map +1 -1
  31. package/dist/components/data-display/infinite-table/constants.d.ts +6 -0
  32. package/dist/components/data-display/infinite-table/constants.es.js +17 -16
  33. package/dist/components/data-display/infinite-table/constants.es.js.map +1 -1
  34. package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js +1 -1
  35. package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js.map +1 -1
  36. package/dist/components/data-display/infinite-table/head/CheckAll.es.js +4 -4
  37. package/dist/components/data-display/infinite-table/head/CheckAll.es.js.map +1 -1
  38. package/dist/components/data-display/infinite-table/head/index.cjs.js +1 -1
  39. package/dist/components/data-display/infinite-table/head/index.cjs.js.map +1 -1
  40. package/dist/components/data-display/infinite-table/head/index.es.js +5 -5
  41. package/dist/components/data-display/infinite-table/head/index.es.js.map +1 -1
  42. package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
  43. package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
  44. package/dist/components/data-display/infinite-table/index.es.js +188 -187
  45. package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
  46. package/dist/components/data-display/infinite-table/useRowHeight.cjs.js +2 -0
  47. package/dist/components/data-display/infinite-table/useRowHeight.cjs.js.map +1 -0
  48. package/dist/components/data-display/infinite-table/useRowHeight.d.ts +15 -0
  49. package/dist/components/data-display/infinite-table/useRowHeight.es.js +24 -0
  50. package/dist/components/data-display/infinite-table/useRowHeight.es.js.map +1 -0
  51. package/dist/components/data-display/tag/Tag.cjs.js +1 -1
  52. package/dist/components/data-display/tag/Tag.cjs.js.map +1 -1
  53. package/dist/components/data-display/tag/Tag.es.js +11 -9
  54. package/dist/components/data-display/tag/Tag.es.js.map +1 -1
  55. package/dist/components/floating-bar/FloatingBar.cjs.js +1 -1
  56. package/dist/components/floating-bar/FloatingBar.cjs.js.map +1 -1
  57. package/dist/components/floating-bar/FloatingBar.es.js +9 -9
  58. package/dist/components/floating-bar/FloatingBar.es.js.map +1 -1
  59. package/dist/components/forms/base-input-field/BaseInputField.cjs.js +2 -2
  60. package/dist/components/forms/base-input-field/BaseInputField.cjs.js.map +1 -1
  61. package/dist/components/forms/base-input-field/BaseInputField.es.js +40 -42
  62. package/dist/components/forms/base-input-field/BaseInputField.es.js.map +1 -1
  63. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js +1 -1
  64. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js.map +1 -1
  65. package/dist/components/forms/creatable-select/CreatableSelect.es.js +14 -15
  66. package/dist/components/forms/creatable-select/CreatableSelect.es.js.map +1 -1
  67. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js +1 -1
  68. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js.map +1 -1
  69. package/dist/components/forms/currency-input/CurrencyInputField.es.js +57 -65
  70. package/dist/components/forms/currency-input/CurrencyInputField.es.js.map +1 -1
  71. package/dist/components/forms/date-time-field/DateTimeField.cjs.js +1 -1
  72. package/dist/components/forms/date-time-field/DateTimeField.cjs.js.map +1 -1
  73. package/dist/components/forms/date-time-field/DateTimeField.es.js +33 -33
  74. package/dist/components/forms/date-time-field/DateTimeField.es.js.map +1 -1
  75. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js +1 -1
  76. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js.map +1 -1
  77. package/dist/components/forms/debounce-input/DebounceInputField.es.js +2 -2
  78. package/dist/components/forms/debounce-input/DebounceInputField.es.js.map +1 -1
  79. package/dist/components/forms/dynamic-data-input/DynamicDataInput.cjs.js +1 -1
  80. package/dist/components/forms/dynamic-data-input/DynamicDataInput.cjs.js.map +1 -1
  81. package/dist/components/forms/dynamic-data-input/DynamicDataInput.es.js +7 -7
  82. package/dist/components/forms/dynamic-data-input/DynamicDataInput.es.js.map +1 -1
  83. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js +1 -1
  84. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js.map +1 -1
  85. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js +17 -19
  86. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js.map +1 -1
  87. package/dist/components/forms/field-options/Item.cjs.js +1 -1
  88. package/dist/components/forms/field-options/Item.cjs.js.map +1 -1
  89. package/dist/components/forms/field-options/Item.es.js +5 -5
  90. package/dist/components/forms/field-options/Item.es.js.map +1 -1
  91. package/dist/components/forms/formula-input/FormulaInput.cjs.js +1 -1
  92. package/dist/components/forms/formula-input/FormulaInput.cjs.js.map +1 -1
  93. package/dist/components/forms/formula-input/FormulaInput.es.js +10 -10
  94. package/dist/components/forms/formula-input/FormulaInput.es.js.map +1 -1
  95. package/dist/components/forms/icon-picker/IconPicker.cjs.js +1 -1
  96. package/dist/components/forms/icon-picker/IconPicker.cjs.js.map +1 -1
  97. package/dist/components/forms/icon-picker/IconPicker.es.js +42 -57
  98. package/dist/components/forms/icon-picker/IconPicker.es.js.map +1 -1
  99. package/dist/components/forms/input-field/InputField.cjs.js.map +1 -1
  100. package/dist/components/forms/input-field/InputField.es.js.map +1 -1
  101. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js +1 -1
  102. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js.map +1 -1
  103. package/dist/components/forms/master-data-input/MasterDataInputField.es.js +54 -60
  104. package/dist/components/forms/master-data-input/MasterDataInputField.es.js.map +1 -1
  105. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js +3 -3
  106. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js.map +1 -1
  107. package/dist/components/forms/md-input/RichMarkdownInput.es.js +63 -63
  108. package/dist/components/forms/md-input/RichMarkdownInput.es.js.map +1 -1
  109. package/dist/components/forms/number-input-field/NumberInputField.cjs.js +1 -1
  110. package/dist/components/forms/number-input-field/NumberInputField.cjs.js.map +1 -1
  111. package/dist/components/forms/number-input-field/NumberInputField.es.js +5 -5
  112. package/dist/components/forms/number-input-field/NumberInputField.es.js.map +1 -1
  113. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js +2 -2
  114. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js.map +1 -1
  115. package/dist/components/forms/percentage-input/PercentageInputField.es.js +20 -20
  116. package/dist/components/forms/percentage-input/PercentageInputField.es.js.map +1 -1
  117. package/dist/components/forms/search-bar/SearchBar.cjs.js +1 -1
  118. package/dist/components/forms/search-bar/SearchBar.cjs.js.map +1 -1
  119. package/dist/components/forms/search-bar/SearchBar.es.js +16 -16
  120. package/dist/components/forms/search-bar/SearchBar.es.js.map +1 -1
  121. package/dist/components/forms/select-field/SelectField.cjs.js +2 -2
  122. package/dist/components/forms/select-field/SelectField.cjs.js.map +1 -1
  123. package/dist/components/forms/select-field/SelectField.d.ts +4 -0
  124. package/dist/components/forms/select-field/SelectField.es.js +202 -203
  125. package/dist/components/forms/select-field/SelectField.es.js.map +1 -1
  126. package/dist/components/forms/text-area-field/TextAreaField.cjs.js +1 -1
  127. package/dist/components/forms/text-area-field/TextAreaField.cjs.js.map +1 -1
  128. package/dist/components/forms/text-area-field/TextAreaField.es.js +14 -14
  129. package/dist/components/forms/text-area-field/TextAreaField.es.js.map +1 -1
  130. package/dist/components/forms/toggle/Toggle.cjs.js +1 -1
  131. package/dist/components/forms/toggle/Toggle.cjs.js.map +1 -1
  132. package/dist/components/forms/toggle/Toggle.es.js +65 -59
  133. package/dist/components/forms/toggle/Toggle.es.js.map +1 -1
  134. package/dist/components/navigation/accordion/Accordion.cjs.js +1 -1
  135. package/dist/components/navigation/accordion/Accordion.cjs.js.map +1 -1
  136. package/dist/components/navigation/accordion/Accordion.es.js +5 -5
  137. package/dist/components/navigation/accordion/Accordion.es.js.map +1 -1
  138. package/dist/components/navigation/stepper/Stepper.cjs.js +1 -1
  139. package/dist/components/navigation/stepper/Stepper.cjs.js.map +1 -1
  140. package/dist/components/navigation/stepper/Stepper.es.js +1 -1
  141. package/dist/components/navigation/stepper/Stepper.es.js.map +1 -1
  142. package/dist/components/navigation/tabs/TabOptions.cjs.js +1 -1
  143. package/dist/components/navigation/tabs/TabOptions.cjs.js.map +1 -1
  144. package/dist/components/navigation/tabs/TabOptions.es.js +15 -15
  145. package/dist/components/navigation/tabs/TabOptions.es.js.map +1 -1
  146. package/dist/components/navigation/tabs/TabSwitch.cjs.js +1 -1
  147. package/dist/components/navigation/tabs/TabSwitch.cjs.js.map +1 -1
  148. package/dist/components/navigation/tabs/TabSwitch.es.js +7 -7
  149. package/dist/components/navigation/tabs/TabSwitch.es.js.map +1 -1
  150. package/dist/components/navigation/tabs/Tabs.cjs.js +1 -1
  151. package/dist/components/navigation/tabs/Tabs.cjs.js.map +1 -1
  152. package/dist/components/navigation/tabs/Tabs.es.js +1 -1
  153. package/dist/components/navigation/tabs/Tabs.es.js.map +1 -1
  154. package/dist/components/tooltip/Tooltip.cjs.js +1 -1
  155. package/dist/components/tooltip/Tooltip.cjs.js.map +1 -1
  156. package/dist/components/tooltip/Tooltip.es.js +19 -19
  157. package/dist/components/tooltip/Tooltip.es.js.map +1 -1
  158. package/dist/components/user-avatar/UserAvatar.cjs.js +1 -1
  159. package/dist/components/user-avatar/UserAvatar.cjs.js.map +1 -1
  160. package/dist/components/user-avatar/UserAvatar.d.ts +1 -1
  161. package/dist/components/user-avatar/UserAvatar.es.js +40 -38
  162. package/dist/components/user-avatar/UserAvatar.es.js.map +1 -1
  163. package/dist/components/user-avatar/constants.cjs.js +1 -1
  164. package/dist/components/user-avatar/constants.cjs.js.map +1 -1
  165. package/dist/components/user-avatar/constants.d.ts +1 -0
  166. package/dist/components/user-avatar/constants.es.js +10 -9
  167. package/dist/components/user-avatar/constants.es.js.map +1 -1
  168. package/dist/design-system.css +1 -1
  169. package/package.json +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"TextAreaField.es.js","sources":["../../../../src/components/forms/text-area-field/TextAreaField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport cn from \"classnames\";\nimport { forwardRef, useState } from \"react\";\nimport type { RefObject } from \"react\";\nimport { Tooltip as AntTooltip } from \"antd\";\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport { HelpIcon } from \"../../icons/HelpIcon\";\nimport { Label } from \"../../data-display/label/Label\";\nimport type { LabelType } from \"../../data-display/label/Label\";\nimport { NoteAddOutlined, BoltOutlined } from \"@mui/icons-material\";\nimport { AIExtractedIndicator } from \"../../icons/AIExtractedIndicator\";\nimport { AIStarIcon } from \"../../icons/AIStarIcon\";\nimport { InputLabel } from \"../shared/InputLabel\";\nimport Tooltip from \"../../tooltip/Tooltip\";\nimport {\n getConfidenceScoreBadgeClass,\n getConfidenceScoreBadgeColor,\n getConfidenceScoreBadgeFill,\n getConfidenceScoreBadgeTextColor,\n shouldShowConfidenceScore,\n} from \"../../../utils/confidenceScoreUtils\";\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\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 TextAreaField component\n */\nexport interface TextAreaFieldProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, \"onChange\" | \"maxLength\"> {\n /** The label text to display above the textarea */\n label?: string;\n /** Placeholder text for the textarea */\n placeholder: string;\n /** Current value of the textarea */\n value?: string | any;\n /** Callback function called when the textarea value changes */\n onChange: (value: string) => void;\n /** Number of visible text lines for the textarea (alias for rows) */\n row?: number;\n /** Error message to display below the textarea */\n errorMessage?: string;\n /** Default value for the textarea */\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 /** Whether the textarea is disabled */\n disabled?: boolean;\n /** Additional CSS classes for the textarea element */\n className?: string;\n /** Ref object for the textarea element */\n inputRef?: RefObject<HTMLTextAreaElement>;\n /** Maximum character length allowed */\n maxLength?: number | null;\n /** Tooltip text to display */\n tooltip?: string;\n /** Whether to preserve original case in the label */\n originalCase?: boolean;\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 remove border styling */\n noBorder?: boolean;\n /** Unique identifier for the textarea */\n id?: string;\n /** Custom inline styles for the textarea */\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 the textarea loses focus */\n onBlur?: () => 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 /** Handler for adding GTN to document */\n onAddGTNToDocument?: (keyValuePair: { key: string; value: string }) => void;\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 customizable textarea field component with label, validation, GTN integration,\n * risk analysis support, and styling support. Features dark mode support,\n * accessibility enhancements, and character count display.\n *\n * @example\n * ```tsx\n * <TextAreaField\n * label=\"Description\"\n * placeholder=\"Enter a description...\"\n * value={description}\n * onChange={(value) => setDescription(value)}\n * required\n * />\n *\n * <TextAreaField\n * label=\"Comments\"\n * placeholder=\"Enter comments...\"\n * value={comments}\n * onChange={(value) => setComments(value)}\n * maxLength={500}\n * isGTN\n * gtnName=\"comments_field\"\n * onAddGTNToDocument={(kv) => handleAddToDocument(kv)}\n * />\n * ```\n */\nexport const TextAreaField = forwardRef<HTMLDivElement, TextAreaFieldProps>(\n (\n {\n label,\n placeholder,\n value,\n onChange,\n row = 4,\n errorMessage,\n defaultValue,\n required,\n isRequiredConditional = false,\n tags = [],\n disabled,\n className,\n inputRef,\n maxLength = undefined,\n tooltip = \"\",\n originalCase = false,\n isAiExtracted = false,\n confidenceScore,\n confidenceType = \"high\",\n confidenceTooltip,\n sourceMeta = [],\n onConfidenceScoreClick,\n isGTN = false,\n gtnName = \"\",\n noBorder = false,\n id,\n inputStyle,\n labelClassName,\n isLiveField = false,\n onBlur,\n riskDetails,\n isRiskAnalysisOpen = false,\n RiskDetailsCard,\n onAddGTNToDocument,\n labelExtra,\n inputEmphasis = \"default\",\n ...textareaProps\n },\n ref\n ) => {\n const { t } = useTranslation();\n const [isHovered, setIsHovered] = useState(false);\n const showRiskSkin = Boolean(isRiskAnalysisOpen && riskDetails?.color);\n const emphasisModifiedSkin = inputEmphasis === \"modified\" && !errorMessage && !showRiskSkin;\n const emphasisDeletedSkin = inputEmphasis === \"deleted\" && !errorMessage && !showRiskSkin;\n const emphasisSuccessSkin = inputEmphasis === \"success\" && !errorMessage && !showRiskSkin;\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n const form = (e.target as HTMLTextAreaElement).closest(\"form\");\n if (form) {\n const submitButton = form.querySelector<HTMLButtonElement>('button[type=\"submit\"]');\n if (submitButton) {\n submitButton.click();\n } else {\n form.requestSubmit();\n }\n }\n }\n textareaProps.onKeyDown?.(e);\n };\n\n const handleAddGTNToDocument = () => {\n if (onAddGTNToDocument) {\n const keyValuePair = {\n key: gtnName,\n value: value || \"\",\n };\n onAddGTNToDocument(keyValuePair);\n }\n };\n\n return (\n <div\n ref={ref}\n id={id}\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\")}>\n <label\n htmlFor=\"text\"\n className={`mb-1 text-xs font-medium text-gray-600 dark:text-black-300 inline-flex items-center gap-1 ${\n !originalCase ? \"capitalize\" : \"\"\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 <AntTooltip placement=\"top\" title={tooltip}>\n <div\n className=\"cursor-pointer\"\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n }\n }}\n >\n <HelpIcon />\n </div>\n </AntTooltip>\n )}\n {labelExtra}\n </div>\n\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 ? (\n <button\n id=\"btn-textarea-field-add-to-document\"\n className=\"cursor-pointer\"\n onClick={handleAddGTNToDocument}\n type=\"button\"\n >\n <AntTooltip placement=\"top\" title={t(\"Add to document\")}>\n <NoteAddOutlined\n className=\"text-primary-600\"\n sx={{ fontSize: 16 }}\n />\n </AntTooltip>\n </button>\n ) : null}\n </div>\n </div>\n </label>\n <textarea\n {...textareaProps}\n onKeyDown={handleKeyDown}\n onBlur={onBlur}\n onChange={(e) => onChange(e.target.value)}\n defaultValue={defaultValue}\n value={value}\n required={required}\n className={cn(\n \"border rounded-lg focus:outline-none focus:ring-0 block w-full py-2.5 px-3 font-inter font-medium text-sm disabled:bg-neutral-50 dark:disabled:!bg-black-800 dark:disabled:placeholder:!text-black-400\",\n {\n \"border-red-300\": errorMessage,\n \"border-gray-300 dark:border-black-700\": !errorMessage && !emphasisModifiedSkin && !emphasisDeletedSkin && !emphasisSuccessSkin && !showRiskSkin,\n \"text-neutral-400 dark:text-neutral-500\": disabled && !emphasisDeletedSkin && !emphasisSuccessSkin,\n \"text-neutral-900 dark:text-neutral-50\": !disabled && !emphasisDeletedSkin && !emphasisSuccessSkin,\n \"border-none\": noBorder,\n \"focus:border-none\": noBorder,\n \"placeholder:text-neutral-400 dark:placeholder:text-black-400\": disabled,\n \"placeholder:text-neutral-400 dark:placeholder:text-black-300\": !disabled,\n \"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)] bg-white dark:bg-black-600\": !emphasisModifiedSkin && !emphasisDeletedSkin && !emphasisSuccessSkin && !showRiskSkin && !errorMessage,\n },\n emphasisDeletedSkin && \"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)]\",\n emphasisModifiedSkin && \"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)]\",\n emphasisSuccessSkin && \"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)]\",\n className,\n showRiskSkin && `!bg-${riskDetails!.color}-50 border-${riskDetails!.color}-300`\n )}\n style={\n showRiskSkin && riskDetails\n ? {\n backgroundColor: riskDetails.hexBgColor || undefined,\n borderColor: riskDetails.hexBorderColor || undefined,\n ...inputStyle,\n }\n : inputStyle\n }\n rows={row}\n placeholder={placeholder}\n disabled={disabled}\n maxLength={maxLength || undefined}\n id={id}\n ref={inputRef}\n onClick={(e) => e.stopPropagation()}\n autoComplete=\"off\"\n />\n {maxLength ? (\n <Typography\n className=\"mt-0.5 text-right text-neutral-900 dark:text-white\"\n appearance=\"custom\"\n size=\"extra-small\"\n >\n <span\n className={`${\n value?.length >= maxLength\n ? \"text-error-500\"\n : value?.length > maxLength - Math.min(50, maxLength / 5)\n ? \"text-warning-500 dark:text-warning-300\"\n : \"\"\n }`}\n >\n {value?.length || 0}{\" \"}\n </span>\n / {maxLength}\n </Typography>\n ) : null}\n\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\n {isHovered && isRiskAnalysisOpen && riskDetails && 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\nTextAreaField.displayName = \"TextAreaField\";\n\n"],"names":["TextAreaField","forwardRef","label","placeholder","value","onChange","row","errorMessage","defaultValue","required","isRequiredConditional","tags","disabled","className","inputRef","maxLength","tooltip","originalCase","isAiExtracted","confidenceScore","confidenceType","confidenceTooltip","sourceMeta","onConfidenceScoreClick","isGTN","gtnName","noBorder","id","inputStyle","labelClassName","isLiveField","onBlur","riskDetails","isRiskAnalysisOpen","RiskDetailsCard","onAddGTNToDocument","labelExtra","inputEmphasis","textareaProps","ref","t","useTranslation","isHovered","setIsHovered","useState","showRiskSkin","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","handleKeyDown","form","submitButton","handleAddGTNToDocument","jsxs","cn","jsx","InputLabel","BoltOutlined","shouldShowConfidenceScore","AIExtractedIndicator","Label","AntTooltip","HelpIcon","Tooltip","getConfidenceScoreBadgeClass","AIStarIcon","getConfidenceScoreBadgeColor","getConfidenceScoreBadgeFill","getConfidenceScoreBadgeTextColor","NoteAddOutlined","Typography"],"mappings":"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"}
1
+ {"version":3,"file":"TextAreaField.es.js","sources":["../../../../src/components/forms/text-area-field/TextAreaField.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport cn from \"classnames\";\nimport { forwardRef, useState } from \"react\";\nimport type { RefObject } from \"react\";\nimport { Tooltip as AntTooltip } from \"antd\";\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport { HelpIcon } from \"../../icons/HelpIcon\";\nimport { Label } from \"../../data-display/label/Label\";\nimport type { LabelType } from \"../../data-display/label/Label\";\nimport { NoteAddOutlined, BoltOutlined } from \"@mui/icons-material\";\nimport { AIExtractedIndicator } from \"../../icons/AIExtractedIndicator\";\nimport { AIStarIcon } from \"../../icons/AIStarIcon\";\nimport { InputLabel } from \"../shared/InputLabel\";\nimport Tooltip from \"../../tooltip/Tooltip\";\nimport {\n getConfidenceScoreBadgeClass,\n getConfidenceScoreBadgeColor,\n getConfidenceScoreBadgeFill,\n getConfidenceScoreBadgeTextColor,\n shouldShowConfidenceScore,\n} from \"../../../utils/confidenceScoreUtils\";\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\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 TextAreaField component\n */\nexport interface TextAreaFieldProps\n extends Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, \"onChange\" | \"maxLength\"> {\n /** The label text to display above the textarea */\n label?: string;\n /** Placeholder text for the textarea */\n placeholder: string;\n /** Current value of the textarea */\n value?: string | any;\n /** Callback function called when the textarea value changes */\n onChange: (value: string) => void;\n /** Number of visible text lines for the textarea (alias for rows) */\n row?: number;\n /** Error message to display below the textarea */\n errorMessage?: string;\n /** Default value for the textarea */\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 /** Whether the textarea is disabled */\n disabled?: boolean;\n /** Additional CSS classes for the textarea element */\n className?: string;\n /** Ref object for the textarea element */\n inputRef?: RefObject<HTMLTextAreaElement>;\n /** Maximum character length allowed */\n maxLength?: number | null;\n /** Tooltip text to display */\n tooltip?: string;\n /** Whether to preserve original case in the label */\n originalCase?: boolean;\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 remove border styling */\n noBorder?: boolean;\n /** Unique identifier for the textarea */\n id?: string;\n /** Custom inline styles for the textarea */\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 the textarea loses focus */\n onBlur?: () => 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 /** Handler for adding GTN to document */\n onAddGTNToDocument?: (keyValuePair: { key: string; value: string }) => void;\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 customizable textarea field component with label, validation, GTN integration,\n * risk analysis support, and styling support. Features dark mode support,\n * accessibility enhancements, and character count display.\n *\n * @example\n * ```tsx\n * <TextAreaField\n * label=\"Description\"\n * placeholder=\"Enter a description...\"\n * value={description}\n * onChange={(value) => setDescription(value)}\n * required\n * />\n *\n * <TextAreaField\n * label=\"Comments\"\n * placeholder=\"Enter comments...\"\n * value={comments}\n * onChange={(value) => setComments(value)}\n * maxLength={500}\n * isGTN\n * gtnName=\"comments_field\"\n * onAddGTNToDocument={(kv) => handleAddToDocument(kv)}\n * />\n * ```\n */\nexport const TextAreaField = forwardRef<HTMLDivElement, TextAreaFieldProps>(\n (\n {\n label,\n placeholder,\n value,\n onChange,\n row = 4,\n errorMessage,\n defaultValue,\n required,\n isRequiredConditional = false,\n tags = [],\n disabled,\n className,\n inputRef,\n maxLength = undefined,\n tooltip = \"\",\n originalCase = false,\n isAiExtracted = false,\n confidenceScore,\n confidenceType = \"high\",\n confidenceTooltip,\n sourceMeta = [],\n onConfidenceScoreClick,\n isGTN = false,\n gtnName = \"\",\n noBorder = false,\n id,\n inputStyle,\n labelClassName,\n isLiveField = false,\n onBlur,\n riskDetails,\n isRiskAnalysisOpen = false,\n RiskDetailsCard,\n onAddGTNToDocument,\n labelExtra,\n inputEmphasis = \"default\",\n ...textareaProps\n },\n ref\n ) => {\n const { t } = useTranslation();\n const [isHovered, setIsHovered] = useState(false);\n const showRiskSkin = Boolean(isRiskAnalysisOpen && riskDetails?.color);\n const emphasisModifiedSkin = inputEmphasis === \"modified\" && !errorMessage && !showRiskSkin;\n const emphasisDeletedSkin = inputEmphasis === \"deleted\" && !errorMessage && !showRiskSkin;\n const emphasisSuccessSkin = inputEmphasis === \"success\" && !errorMessage && !showRiskSkin;\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === \"Enter\" && !e.shiftKey) {\n e.preventDefault();\n const form = (e.target as HTMLTextAreaElement).closest(\"form\");\n if (form) {\n const submitButton = form.querySelector<HTMLButtonElement>('button[type=\"submit\"]');\n if (submitButton) {\n submitButton.click();\n } else {\n form.requestSubmit();\n }\n }\n }\n textareaProps.onKeyDown?.(e);\n };\n\n const handleAddGTNToDocument = () => {\n if (onAddGTNToDocument) {\n const keyValuePair = {\n key: gtnName,\n value: value || \"\",\n };\n onAddGTNToDocument(keyValuePair);\n }\n };\n\n return (\n <div\n ref={ref}\n id={id}\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\")}>\n <label\n htmlFor=\"text\"\n className={`mb-1 text-xs font-medium text-gray-600 dark:text-black-300 inline-flex items-center gap-1 ${\n !originalCase ? \"capitalize\" : \"\"\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 <AntTooltip placement=\"top\" title={tooltip}>\n <div\n className=\"cursor-pointer\"\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n }\n }}\n >\n <HelpIcon className=\"w-icon-sm h-icon-sm\" />\n </div>\n </AntTooltip>\n )}\n {labelExtra}\n </div>\n\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 ? (\n <button\n id=\"btn-textarea-field-add-to-document\"\n className=\"cursor-pointer\"\n onClick={handleAddGTNToDocument}\n type=\"button\"\n >\n <AntTooltip placement=\"top\" title={t(\"Add to document\")}>\n <NoteAddOutlined\n className=\"text-primary-600\"\n sx={{ fontSize: 16 }}\n />\n </AntTooltip>\n </button>\n ) : null}\n </div>\n </div>\n </label>\n <textarea\n {...textareaProps}\n onKeyDown={handleKeyDown}\n onBlur={onBlur}\n onChange={(e) => onChange(e.target.value)}\n defaultValue={defaultValue}\n value={value}\n required={required}\n className={cn(\n \"border rounded-lg focus:outline-none focus:ring-0 block w-full py-2.5 px-3 font-inter font-medium text-sm disabled:bg-neutral-50 dark:disabled:!bg-black-800 dark:disabled:placeholder:!text-black-400\",\n {\n \"border-red-300\": errorMessage,\n \"border-gray-300 dark:border-black-700\": !errorMessage && !emphasisModifiedSkin && !emphasisDeletedSkin && !emphasisSuccessSkin && !showRiskSkin,\n \"text-neutral-400 dark:text-neutral-500\": disabled && !emphasisDeletedSkin && !emphasisSuccessSkin,\n \"text-neutral-900 dark:text-neutral-50\": !disabled && !emphasisDeletedSkin && !emphasisSuccessSkin,\n \"border-none\": noBorder,\n \"focus:border-none\": noBorder,\n \"placeholder:text-neutral-400 dark:placeholder:text-black-400\": disabled,\n \"placeholder:text-neutral-400 dark:placeholder:text-black-300\": !disabled,\n \"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)] bg-white dark:bg-black-600\": !emphasisModifiedSkin && !emphasisDeletedSkin && !emphasisSuccessSkin && !showRiskSkin && !errorMessage,\n },\n emphasisDeletedSkin && \"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)]\",\n emphasisModifiedSkin && \"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)]\",\n emphasisSuccessSkin && \"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)]\",\n className,\n showRiskSkin && `!bg-${riskDetails!.color}-50 border-${riskDetails!.color}-300`\n )}\n style={\n showRiskSkin && riskDetails\n ? {\n backgroundColor: riskDetails.hexBgColor || undefined,\n borderColor: riskDetails.hexBorderColor || undefined,\n ...inputStyle,\n }\n : inputStyle\n }\n rows={row}\n placeholder={placeholder}\n disabled={disabled}\n maxLength={maxLength || undefined}\n id={id}\n ref={inputRef}\n onClick={(e) => e.stopPropagation()}\n autoComplete=\"off\"\n />\n {maxLength ? (\n <Typography\n className=\"mt-0.5 text-right text-neutral-900 dark:text-white\"\n appearance=\"custom\"\n size=\"extra-small\"\n >\n <span\n className={`${\n value?.length >= maxLength\n ? \"text-error-500\"\n : value?.length > maxLength - Math.min(50, maxLength / 5)\n ? \"text-warning-500 dark:text-warning-300\"\n : \"\"\n }`}\n >\n {value?.length || 0}{\" \"}\n </span>\n / {maxLength}\n </Typography>\n ) : null}\n\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\n {isHovered && isRiskAnalysisOpen && riskDetails && 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\nTextAreaField.displayName = \"TextAreaField\";\n\n"],"names":["TextAreaField","forwardRef","label","placeholder","value","onChange","row","errorMessage","defaultValue","required","isRequiredConditional","tags","disabled","className","inputRef","maxLength","tooltip","originalCase","isAiExtracted","confidenceScore","confidenceType","confidenceTooltip","sourceMeta","onConfidenceScoreClick","isGTN","gtnName","noBorder","id","inputStyle","labelClassName","isLiveField","onBlur","riskDetails","isRiskAnalysisOpen","RiskDetailsCard","onAddGTNToDocument","labelExtra","inputEmphasis","textareaProps","ref","t","useTranslation","isHovered","setIsHovered","useState","showRiskSkin","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","handleKeyDown","form","submitButton","handleAddGTNToDocument","jsxs","cn","jsx","InputLabel","BoltOutlined","shouldShowConfidenceScore","AIExtractedIndicator","Label","AntTooltip","HelpIcon","Tooltip","getConfidenceScoreBadgeClass","AIStarIcon","getConfidenceScoreBadgeColor","getConfidenceScoreBadgeFill","getConfidenceScoreBadgeTextColor","NoteAddOutlined","Typography"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("../../../_virtual/index.cjs.js"),O=require("react"),T=require("framer-motion"),oe=require("antd"),ce=require("react-i18next"),m=require("../../data-display/typography/Typography.cjs.js"),b=require("../../../constants/toggle.cjs.js"),R=require("@mui/icons-material"),de=require("../../icons/AIExtractedIndicator.cjs.js"),ue=require("../../icons/AIStarIcon.cjs.js"),pe=require("../../data-display/label/Label.cjs.js"),S=require("../../tooltip/Tooltip.cjs.js"),me=require("../../icons/HelpIcon.cjs.js"),xe=require("../shared/InputLabel.cjs.js"),o=require("../../../utils/confidenceScoreUtils.cjs.js"),fe=(t,r,s,x="medium")=>{const i={small:"w-7 h-4 after:h-3 after:w-3 after:top-0.5 after:left-0.5",medium:"w-9 h-5 after:h-4 after:w-4 after:top-0.5 after:left-0.5",large:"w-11 h-6 after:h-5 after:w-5 after:top-0.5 after:left-0.5"},f={small:"peer-checked:after:translate-x-3",medium:"peer-checked:after:translate-x-full",large:"peer-checked:after:translate-x-5"};return a("p-0.5 rounded-full peer after:content-[''] after:absolute after:rounded-full after:transition-all bg-gray-200 dark:bg-black-400 peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500 peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-white dark:peer-focus-visible:ring-primary-400 dark:peer-focus-visible:ring-offset-black-900 peer-focus-visible:shadow-[0_0_0_3px_var(--color-primary-100)] dark:peer-focus-visible:shadow-[0_0_0_3px_var(--color-primary-950)]",i[x],f[x],{"peer-checked:bg-primary-600 dark:peer-checked:bg-primary-700 peer-checked:after:translate-x-full after:bg-white dark:after:bg-primary-500":t,"after:bg-white dark:after:bg-black-500":!t,"text-white dark:text-black-900":r,"cursor-not-allowed opacity-70":s})},ge=({size:t=18,fill:r="#016DCF"})=>e.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",children:e.jsx("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z",fill:r})}),he=({size:t=18,fill:r="#101828"})=>e.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",children:e.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z",fill:r})}),M=O.forwardRef(({isGTN:t=!1,isChecked:r,id:s,onChange:x,label:i,required:f,isRequiredConditional:P=!1,hideStatus:G=!1,labelDirection:v=b.TOGGLE_LABEL_DIRECTION.TOP,statusText:y,withIcon:E=!1,tags:z,isAiExtracted:H=!1,confidenceScore:j,confidenceType:c="high",confidenceTooltip:k,sourceMeta:$=[],onConfidenceScoreClick:V,tooltip:C="",className:W="",disabled:Y,isDisabled:U=!1,icon:g,stopClickPropagation:J=!0,gtnName:K,variant:be="primary",labelClassName:w,isLiveField:Q=!1,message:d,messageType:u="default",wrapperClassName:X,helpText:p,labelExtra:Z,size:l="medium",renderGTNAddButton:q,onAddGTNToDocument:_,inputEmphasis:N="default"},ee)=>{const{t:re}=ce.useTranslation(),ae=N==="modified",te=N==="deleted",le=N==="success",I=Y??U,h=!!I,F=typeof I=="string"?I:void 0,se=v===b.TOGGLE_LABEL_DIRECTION.TOP,ie=v===b.TOGGLE_LABEL_DIRECTION.LEFT,A=v===b.TOGGLE_LABEL_DIRECTION.RIGHT,[L,B]=O.useState(!1),D=()=>{_&&_({key:K,value:r?"Yes":"No"})},ne=()=>u==="error"?"text-red-500 dark:text-red-400":u==="success"?"text-green-500 dark:text-green-400":u==="info"?"text-primary-500 dark:text-primary-400":"text-neutral-500 dark:text-neutral-400";return e.jsxs("div",{className:a("flex gap-0.5",L&&t?"border rounded-lg border-primary-100 bg-primary-50 p-1":"",X),onMouseEnter:()=>B(!0),onMouseLeave:()=>B(!1),onClick:n=>{J&&n.stopPropagation()},children:[t&&!L?e.jsx("div",{className:"w-1 h-1 bg-primary-600 rounded-full animate-pulse mt-1.5"}):null,e.jsxs("div",{className:a("w-full flex flex-col",ae&&"rounded-lg border border-solid border-[var(--Warning-200,#FEDF89)] bg-[var(--Warning-50,#FFFAEB)] px-2 py-1.5",te&&"rounded-lg border border-solid border-[var(--Error-200,#FECACA)] bg-[var(--Error-50,#FEF2F2)] px-2 py-1.5",le&&"rounded-lg border border-solid border-[var(--Success-200,#BBF7D0)] bg-[var(--Success-50,#F0FDF4)] px-2 py-1.5"),children:[se&&i&&e.jsxs("div",{className:"grid w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-1",children:[e.jsxs("h1",{className:a("mb-1 min-w-0 font-inter text-neutral-600 font-medium text-xs flex items-center gap-0.5 flex-wrap",w),children:[e.jsx(xe.InputLabel,{label:i||"",required:f||!1,isRequiredConditional:P||!1}),Q&&e.jsx(R.BoltOutlined,{sx:{fontSize:16,color:"var(--color-primary-600)",rotate:"15deg"}}),H&&!o.shouldShowConfidenceScore(j)&&e.jsx(de.AIExtractedIndicator,{}),e.jsx(pe.Label,{labels:z||[]}),C&&e.jsx(S,{placement:"top",title:C,children:e.jsx("div",{className:"cursor-pointer",children:e.jsx(me.HelpIcon,{})})}),Z]}),e.jsxs("div",{className:"flex items-center gap-1 justify-self-end",children:[o.shouldShowConfidenceScore(j)&&c?e.jsx(S,{placement:"top-end",title:k??"",hideTooltip:k==null,className:"cursor-pointer",children:e.jsxs("div",{className:a("inline-flex min-w-[50px] items-center gap-1 rounded-md px-1 py-0.5",o.getConfidenceScoreBadgeClass(c)),onClick:()=>V?.($),children:[e.jsx(ue.AIStarIcon,{size:12,fill:o.getConfidenceScoreBadgeColor(c),fillSecondary:o.getConfidenceScoreBadgeFill(c)}),e.jsxs("span",{className:a("text-xs font-medium leading-4",o.getConfidenceScoreBadgeTextColor(c)),children:[j,"%"]})]})}):null,t&&L?q?q(D):e.jsx("button",{id:"btn-toggle-add-to-document",className:"cursor-pointer",onClick:D,type:"button",children:e.jsx(oe.Tooltip,{placement:"top",title:re("Add to document"),children:e.jsx(R.NoteAddOutlined,{className:"text-primary-600",sx:{fontSize:16}})})}):null]})]}),p&&e.jsx(m.Typography,{className:"mb-2 text-neutral-600 dark:text-neutral-400",appearance:"custom",size:"extra-small",variant:"regular",children:p}),e.jsxs("div",{className:"flex",children:[ie&&e.jsx(m.Typography,{size:"small",variant:"medium",className:a("mr-2 text-neutral-700 dark:text-black-200",w),appearance:"custom",children:i}),e.jsxs("label",{className:a("relative inline-flex items-center",A||y?"":"w-min",h?"cursor-not-allowed opacity-50":"cursor-pointer"),onClick:n=>n.stopPropagation(),children:[e.jsx("input",{ref:ee,type:"checkbox",id:s,onChange:n=>!h&&x(n.target.checked),value:"",disabled:h,checked:r,className:a("sr-only peer w-full",W),"aria-required":f,"aria-invalid":d&&u==="error"?"true":"false","aria-describedby":d||p?`${s}-description`:void 0}),e.jsx("div",{className:fe(r,E,h,l),children:E?e.jsx("div",{className:"flex items-center justify-center h-full w-full",children:e.jsx("div",{className:a("z-10 transition-all transform",l==="small"&&(r?"translate-x-2":"translate-x-[-6px]"),l==="medium"&&(r?"translate-x-[8.5px]":"translate-x-[-8px]"),l==="large"&&(r?"translate-x-2.5":"translate-x-[-10px]")),children:r?g?.checkedIcon?g.checkedIcon:e.jsx(ge,{size:18,fill:"#016DCF"}):g?.uncheckedIcon?g.uncheckedIcon:e.jsx(he,{size:18,fill:"#101828"})})}):null}),F&&e.jsx(S,{placement:"top",title:F,className:"-ml-2",children:e.jsx("span",{className:a("absolute inset-y-0 left-0",l==="small"&&"w-7",l==="medium"&&"w-9",l==="large"&&"w-11")})}),A&&e.jsx(m.Typography,{size:"small",variant:"medium",className:a("ml-2 text-neutral-700 dark:text-black-300",w),appearance:"custom",children:i}),G?null:e.jsx(m.Typography,{size:"small",variant:"medium",className:"ml-2 text-neutral-900 dark:text-black-100",appearance:"custom",children:y||(r?"Yes":"No")})]})]}),e.jsx(T.AnimatePresence,{children:d&&e.jsx(T.motion.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.2},id:`${s}-description`,role:u==="error"?"alert":void 0,children:e.jsx(m.Typography,{className:a("mt-1",ne()),appearance:"custom",size:"extra-small",variant:"medium",children:d})})}),p&&!d&&e.jsx("div",{id:`${s}-description`,className:"sr-only",children:p})]})]})});M.displayName="Toggle";exports.Toggle=M;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("../../../_virtual/index.cjs.js"),O=require("react"),T=require("framer-motion"),ne=require("antd"),ce=require("react-i18next"),p=require("../../data-display/typography/Typography.cjs.js"),b=require("../../../constants/toggle.cjs.js"),R=require("@mui/icons-material"),de=require("../../icons/AIExtractedIndicator.cjs.js"),ue=require("../../icons/AIStarIcon.cjs.js"),me=require("../../data-display/label/Label.cjs.js"),C=require("../../tooltip/Tooltip.cjs.js"),pe=require("../../icons/HelpIcon.cjs.js"),fe=require("../shared/InputLabel.cjs.js"),n=require("../../../utils/confidenceScoreUtils.cjs.js"),xe=(t,a,l,f="medium")=>{const i={small:"w-7 h-4 after:h-3 after:w-3 after:top-0.5 after:left-0.5",medium:"w-10 h-[1.375rem] after:h-[1.125rem] after:w-[1.125rem] after:top-0.5 after:left-0.5",large:"w-11 h-6 after:h-5 after:w-5 after:top-0.5 after:left-0.5"},x={small:"peer-checked:after:translate-x-3",medium:"peer-checked:after:translate-x-full",large:"peer-checked:after:translate-x-5"};return r("p-0.5 rounded-full peer after:content-[''] after:absolute after:rounded-full after:transition-all bg-gray-200 dark:bg-black-400 peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500 peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-white dark:peer-focus-visible:ring-primary-400 dark:peer-focus-visible:ring-offset-black-900 peer-focus-visible:shadow-[0_0_0_3px_var(--color-primary-100)] dark:peer-focus-visible:shadow-[0_0_0_3px_var(--color-primary-950)]",i[f],x[f],{"peer-checked:bg-primary-600 dark:peer-checked:bg-primary-700 peer-checked:after:translate-x-full after:bg-white dark:after:bg-primary-500":t,"after:bg-white dark:after:bg-black-500":!t,"text-white dark:text-black-900":a,"cursor-not-allowed opacity-70":l})},ge=({size:t=18,fill:a="#016DCF"})=>e.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",children:e.jsx("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z",fill:a})}),he=({size:t=18,fill:a="#101828"})=>e.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",children:e.jsx("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z",fill:a})}),M=O.forwardRef(({isGTN:t=!1,isChecked:a,id:l,onChange:f,label:i,required:x,isRequiredConditional:P=!1,hideStatus:G=!1,labelDirection:v=b.TOGGLE_LABEL_DIRECTION.TOP,statusText:y,withIcon:S=!1,tags:z,isAiExtracted:H=!1,confidenceScore:j,confidenceType:c="high",confidenceTooltip:k,sourceMeta:$=[],onConfidenceScoreClick:V,tooltip:E="",className:W="",disabled:Y,isDisabled:U=!1,icon:g,stopClickPropagation:J=!0,gtnName:K,variant:be="primary",labelClassName:w,isLiveField:Q=!1,message:d,messageType:u="default",wrapperClassName:X,helpText:m,labelExtra:Z,size:s="medium",renderGTNAddButton:q,onAddGTNToDocument:_,inputEmphasis:N="default"},ee)=>{const{t:re}=ce.useTranslation(),te=N==="modified",ae=N==="deleted",se=N==="success",I=Y??U,h=!!I,F=typeof I=="string"?I:void 0,le=v===b.TOGGLE_LABEL_DIRECTION.TOP,ie=v===b.TOGGLE_LABEL_DIRECTION.LEFT,A=v===b.TOGGLE_LABEL_DIRECTION.RIGHT,[L,B]=O.useState(!1),D=()=>{_&&_({key:K,value:a?"Yes":"No"})},oe=()=>u==="error"?"text-red-500 dark:text-red-400":u==="success"?"text-green-500 dark:text-green-400":u==="info"?"text-primary-500 dark:text-primary-400":"text-neutral-500 dark:text-neutral-400";return e.jsxs("div",{className:r("flex gap-0.5",L&&t?"border rounded-lg border-primary-100 bg-primary-50 p-1":"",X),onMouseEnter:()=>B(!0),onMouseLeave:()=>B(!1),onClick:o=>{J&&o.stopPropagation()},children:[t&&!L?e.jsx("div",{className:"w-1 h-1 bg-primary-600 rounded-full animate-pulse mt-1.5"}):null,e.jsxs("div",{className:r("w-full flex flex-col",te&&"rounded-lg border border-solid border-[var(--Warning-200,#FEDF89)] bg-[var(--Warning-50,#FFFAEB)] px-2 py-1.5",ae&&"rounded-lg border border-solid border-[var(--Error-200,#FECACA)] bg-[var(--Error-50,#FEF2F2)] px-2 py-1.5",se&&"rounded-lg border border-solid border-[var(--Success-200,#BBF7D0)] bg-[var(--Success-50,#F0FDF4)] px-2 py-1.5"),children:[le&&i&&e.jsxs("div",{className:"grid w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-1",children:[e.jsxs("h1",{className:r("mb-1 min-w-0 font-inter text-neutral-600 font-medium text-xs flex items-center gap-0.5 flex-wrap",w),children:[e.jsx(fe.InputLabel,{label:i||"",required:x||!1,isRequiredConditional:P||!1}),Q&&e.jsx(R.BoltOutlined,{sx:{fontSize:16,color:"var(--color-primary-600)",rotate:"15deg"}}),H&&!n.shouldShowConfidenceScore(j)&&e.jsx(de.AIExtractedIndicator,{}),e.jsx(me.Label,{labels:z||[]}),E&&e.jsx(C,{placement:"top",title:E,children:e.jsx("div",{className:"cursor-pointer",children:e.jsx(pe.HelpIcon,{className:"w-icon-sm h-icon-sm"})})}),Z]}),e.jsxs("div",{className:"flex items-center gap-1 justify-self-end",children:[n.shouldShowConfidenceScore(j)&&c?e.jsx(C,{placement:"top-end",title:k??"",hideTooltip:k==null,className:"cursor-pointer",children:e.jsxs("div",{className:r("inline-flex min-w-[50px] items-center gap-1 rounded-md px-1 py-0.5",n.getConfidenceScoreBadgeClass(c)),onClick:()=>V?.($),children:[e.jsx(ue.AIStarIcon,{size:12,fill:n.getConfidenceScoreBadgeColor(c),fillSecondary:n.getConfidenceScoreBadgeFill(c)}),e.jsxs("span",{className:r("text-xs font-medium leading-4",n.getConfidenceScoreBadgeTextColor(c)),children:[j,"%"]})]})}):null,t&&L?q?q(D):e.jsx("button",{id:"btn-toggle-add-to-document",className:"cursor-pointer",onClick:D,type:"button",children:e.jsx(ne.Tooltip,{placement:"top",title:re("Add to document"),children:e.jsx(R.NoteAddOutlined,{className:"text-primary-600",sx:{fontSize:16}})})}):null]})]}),m&&e.jsx(p.Typography,{className:"mb-2 text-neutral-600 dark:text-neutral-400",appearance:"custom",size:"extra-small",variant:"regular",children:m}),e.jsxs("div",{className:"flex",children:[ie&&e.jsx(p.Typography,{size:"small",variant:"medium",className:r("mr-2 text-neutral-700 dark:text-black-200",w),appearance:"custom",children:i}),e.jsxs("label",{className:r("relative inline-flex items-center",A||y?"":"w-min",h?"cursor-not-allowed opacity-50":"cursor-pointer"),onClick:o=>o.stopPropagation(),children:[e.jsx("input",{ref:ee,type:"checkbox",id:l,onChange:o=>!h&&f(o.target.checked),value:"",disabled:h,checked:a,className:r("sr-only peer w-full",W),"aria-required":x,"aria-invalid":d&&u==="error"?"true":"false","aria-describedby":d||m?`${l}-description`:void 0}),e.jsx("div",{className:xe(a,S,h,s),children:S?e.jsx("div",{className:r("pointer-events-none absolute top-0.5 left-0.5 z-10 flex items-center justify-center transition-transform",s==="small"&&"h-3 w-3",s==="medium"&&"h-[1.125rem] w-[1.125rem]",s==="large"&&"h-5 w-5",a&&"translate-x-full"),children:a?g?.checkedIcon?g.checkedIcon:e.jsx(ge,{size:18,fill:"#016DCF"}):g?.uncheckedIcon?g.uncheckedIcon:e.jsx(he,{size:18,fill:"#101828"})}):null}),F&&e.jsx(C,{placement:"top",title:F,className:"-ml-2",children:e.jsx("span",{className:r("absolute inset-y-0 left-0",s==="small"&&"w-7",s==="medium"&&"w-9",s==="large"&&"w-11")})}),A&&e.jsx(p.Typography,{size:"small",variant:"medium",className:r("ml-2 text-neutral-700 dark:text-black-300",w),appearance:"custom",children:i}),G?null:e.jsx(p.Typography,{size:"small",variant:"medium",className:"ml-2 text-neutral-900 dark:text-black-100",appearance:"custom",children:y||(a?"Yes":"No")})]})]}),e.jsx(T.AnimatePresence,{children:d&&e.jsx(T.motion.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.2},id:`${l}-description`,role:u==="error"?"alert":void 0,children:e.jsx(p.Typography,{className:r("mt-1",oe()),appearance:"custom",size:"extra-small",variant:"medium",children:d})})}),m&&!d&&e.jsx("div",{id:`${l}-description`,className:"sr-only",children:m})]})]})});M.displayName="Toggle";exports.Toggle=M;
2
2
  //# sourceMappingURL=Toggle.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toggle.cjs.js","sources":["../../../../src/components/forms/toggle/Toggle.tsx"],"sourcesContent":["import cn from \"classnames\";\nimport { forwardRef, type ReactNode, useState } from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { Tooltip as AntTooltip } from \"antd\";\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport { TOGGLE_LABEL_DIRECTION } from \"../../../constants/toggle\";\nimport type { TToggleDirection } from \"../../../constants/toggle\";\nimport { BoltOutlined, NoteAddOutlined } from \"@mui/icons-material\";\nimport { AIExtractedIndicator } from \"../../icons/AIExtractedIndicator\";\nimport { AIStarIcon } from \"../../icons/AIStarIcon\";\nimport { Label, type LabelType } from \"../../data-display/label/Label\";\nimport Tooltip from \"../../tooltip/Tooltip\";\nimport { HelpIcon } from \"../../icons/HelpIcon\";\nimport { InputLabel } from \"../shared/InputLabel\";\nimport {\n getConfidenceScoreBadgeClass,\n getConfidenceScoreBadgeColor,\n getConfidenceScoreBadgeFill,\n getConfidenceScoreBadgeTextColor,\n shouldShowConfidenceScore,\n} from \"../../../utils/confidenceScoreUtils\";\n\n// Re-export LabelType from Label component for external use\nexport type { LabelType };\n\n/** Visual emphasis for the toggle container (background + border) */\nexport type ToggleEmphasis = \"default\" | \"modified\" | \"deleted\" | \"success\";\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 * Props for the Toggle component\n */\nexport interface ToggleProps {\n /** Whether this is a GTN (Global Term Name) field */\n isGTN?: boolean;\n /** Unique identifier for the toggle */\n id?: string;\n /** Whether the toggle is checked */\n isChecked: boolean;\n /** Callback function called when toggle state changes */\n onChange: (val: boolean) => void;\n /** Label text or element to display */\n label?: ReactNode;\n /** Whether to preserve original case in the label */\n originalCase?: boolean;\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 /** Whether to hide the status text (Yes/No) */\n hideStatus?: boolean;\n /** Label direction relative to toggle */\n labelDirection?: TToggleDirection;\n /** Custom status text instead of Yes/No */\n statusText?: string;\n /** Whether to show icons in the toggle */\n withIcon?: boolean;\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?: 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 /** Tooltip text to display */\n tooltip?: string;\n /** Additional CSS classes for the toggle input */\n className?: string;\n /** Whether the toggle is disabled. Pass a string to disable with a tooltip message. */\n disabled?: boolean | string;\n /**\n * @deprecated Use `disabled` instead.\n */\n isDisabled?: boolean | string;\n /** Custom icons for checked/unchecked states */\n icon?: {\n checkedIcon: ReactNode;\n uncheckedIcon: ReactNode;\n };\n /** Whether to stop click propagation */\n stopClickPropagation?: boolean;\n /** GTN field name for document integration */\n gtnName?: any;\n /** Visual variant for the toggle */\n variant?: 'primary' | 'secondary';\n /** Additional CSS classes for the label */\n labelClassName?: string;\n /** Whether this is a live field */\n isLiveField?: boolean;\n /** Message to display below the toggle */\n message?: string;\n /** Type of message to display */\n messageType?: \"success\" | \"error\" | \"info\" | \"default\";\n /** Additional CSS classes for the wrapper container */\n wrapperClassName?: string;\n /** Help text to display below the label */\n helpText?: string;\n /** Optional extra content in the label row (e.g. actions, badges) */\n labelExtra?: React.ReactNode;\n /** Size variant for the toggle */\n size?: \"small\" | \"medium\" | \"large\";\n /** Custom render function for GTN add to document button */\n renderGTNAddButton?: (onClick: () => void) => ReactNode;\n /** Handler for adding GTN to document */\n onAddGTNToDocument?: (keyValuePair: { key: string; value: string }) => void;\n /** Container surface style: `'modified'` — Warning-50/Warning-200; `'deleted'` — Error-50/Error-200; `'success'` — Success-50/Success-200 */\n inputEmphasis?: ToggleEmphasis;\n}\n\n/**\n * Get toggle class names based on state and options\n */\nconst getToggleClassNames = (\n isChecked: boolean,\n withIcon: boolean,\n isDisabled: boolean,\n size: \"small\" | \"medium\" | \"large\" = \"medium\"\n): string => {\n const sizeClasses = {\n small: \"w-7 h-4 after:h-3 after:w-3 after:top-0.5 after:left-0.5\",\n medium: \"w-9 h-5 after:h-4 after:w-4 after:top-0.5 after:left-0.5\",\n large: \"w-11 h-6 after:h-5 after:w-5 after:top-0.5 after:left-0.5\",\n };\n\n const translateClasses = {\n small: \"peer-checked:after:translate-x-3\",\n medium: \"peer-checked:after:translate-x-full\",\n large: \"peer-checked:after:translate-x-5\",\n };\n\n return cn(\n \"p-0.5 rounded-full peer after:content-[''] after:absolute after:rounded-full after:transition-all bg-gray-200 dark:bg-black-400 peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500 peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-white dark:peer-focus-visible:ring-primary-400 dark:peer-focus-visible:ring-offset-black-900 peer-focus-visible:shadow-[0_0_0_3px_var(--color-primary-100)] dark:peer-focus-visible:shadow-[0_0_0_3px_var(--color-primary-950)]\",\n sizeClasses[size],\n translateClasses[size],\n {\n 'peer-checked:bg-primary-600 dark:peer-checked:bg-primary-700 peer-checked:after:translate-x-full after:bg-white dark:after:bg-primary-500':\n isChecked,\n 'after:bg-white dark:after:bg-black-500': !isChecked,\n 'text-white dark:text-black-900': withIcon,\n 'cursor-not-allowed opacity-70': isDisabled,\n }\n );\n};\n\n/**\n * Default Check icon component\n */\nconst CheckIcon = ({ size = 18, fill = '#016DCF' }: { size?: number; fill?: string }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z\"\n fill={fill}\n />\n </svg>\n);\n\n/**\n * Default Close icon component\n */\nconst CloseIcon = ({ size = 18, fill = '#101828' }: { size?: number; fill?: string }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\"\n fill={fill}\n />\n </svg>\n);\n\n/**\n * A highly customizable toggle component with label, validation, and styling support.\n * Features multiple sizes, variants, icon support, GTN integration, and comprehensive prop support.\n *\n * @example\n * ```tsx\n * <Toggle\n * id=\"notifications\"\n * label=\"Enable Notifications\"\n * isChecked={notificationsEnabled}\n * onChange={(checked) => setNotificationsEnabled(checked)}\n * required\n * />\n * ```\n */\nexport const Toggle = forwardRef<HTMLInputElement, ToggleProps>(\n (\n {\n isGTN = false,\n isChecked,\n id,\n onChange,\n label,\n required,\n isRequiredConditional = false,\n hideStatus = false,\n labelDirection = TOGGLE_LABEL_DIRECTION.TOP,\n statusText,\n withIcon = false,\n tags,\n isAiExtracted = false,\n confidenceScore,\n confidenceType = \"high\",\n confidenceTooltip,\n sourceMeta = [],\n onConfidenceScoreClick,\n tooltip = '',\n className = '',\n disabled,\n isDisabled = false,\n icon,\n stopClickPropagation = true,\n gtnName: _gtnName,\n variant: _variant = 'primary',\n labelClassName,\n isLiveField = false,\n message,\n messageType = \"default\",\n wrapperClassName,\n helpText,\n labelExtra,\n size = \"medium\",\n renderGTNAddButton,\n onAddGTNToDocument,\n inputEmphasis = \"default\",\n },\n ref\n ) => {\n const { t } = useTranslation();\n const emphasisModifiedSkin = inputEmphasis === \"modified\";\n const emphasisDeletedSkin = inputEmphasis === \"deleted\";\n const emphasisSuccessSkin = inputEmphasis === \"success\";\n const resolvedDisabled = disabled ?? isDisabled;\n const isDisabledBool = !!resolvedDisabled;\n const disabledTooltip = typeof resolvedDisabled === 'string' ? resolvedDisabled : undefined;\n const isLabelDirectionTop = labelDirection === TOGGLE_LABEL_DIRECTION.TOP;\n const isLabelDirectionLeft = labelDirection === TOGGLE_LABEL_DIRECTION.LEFT;\n const isLabelDirectionRight = labelDirection === TOGGLE_LABEL_DIRECTION.RIGHT;\n const [isHovered, setIsHovered] = useState(false);\n\n const handleAddGTNToDocument = () => {\n if (onAddGTNToDocument) {\n const keyValuePair = {\n key: _gtnName,\n value: isChecked ? 'Yes' : 'No',\n };\n onAddGTNToDocument(keyValuePair);\n }\n };\n\n const getMessageTypographyClass = (): string => {\n if (messageType === \"error\") return \"text-red-500 dark:text-red-400\";\n if (messageType === \"success\")\n return \"text-green-500 dark:text-green-400\";\n if (messageType === \"info\") return \"text-primary-500 dark:text-primary-400\";\n return \"text-neutral-500 dark:text-neutral-400\";\n };\n\n const _defaultRenderLabels = (labels?: (string | LabelType)[]) => {\n if (!labels || labels.length === 0) return null;\n return (\n <span className=\"inline-flex gap-1 ml-1\">\n {labels.map((tag, index) => {\n const label = typeof tag === 'string' ? tag : tag.label;\n const color = typeof tag === 'string' ? undefined : tag.color;\n return (\n <span\n key={index}\n className=\"px-1.5 py-0.5 text-xs rounded bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-300\"\n style={color ? { backgroundColor: color } : undefined}\n >\n {label}\n </span>\n );\n })}\n </span>\n );\n };\n\n return (\n <div\n className={cn(\n 'flex gap-0.5',\n isHovered && isGTN ? 'border rounded-lg border-primary-100 bg-primary-50 p-1' : '',\n wrapperClassName\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={(e) => {\n if (stopClickPropagation) e.stopPropagation();\n }}\n >\n {isGTN && !isHovered ? (\n <div className=\"w-1 h-1 bg-primary-600 rounded-full animate-pulse mt-1.5\" />\n ) : null}\n <div className={cn(\n \"w-full flex flex-col\",\n emphasisModifiedSkin && \"rounded-lg border border-solid border-[var(--Warning-200,#FEDF89)] bg-[var(--Warning-50,#FFFAEB)] px-2 py-1.5\",\n emphasisDeletedSkin && \"rounded-lg border border-solid border-[var(--Error-200,#FECACA)] bg-[var(--Error-50,#FEF2F2)] px-2 py-1.5\",\n emphasisSuccessSkin && \"rounded-lg border border-solid border-[var(--Success-200,#BBF7D0)] bg-[var(--Success-50,#F0FDF4)] px-2 py-1.5\",\n )}>\n {isLabelDirectionTop && label && (\n <div className=\"grid w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-1\">\n <h1\n className={cn(\n 'mb-1 min-w-0 font-inter text-neutral-600 font-medium text-xs flex items-center gap-0.5 flex-wrap',\n labelClassName\n )}\n >\n <InputLabel label={label || \"\"} required={required || false} isRequiredConditional={isRequiredConditional || false} />\n {isLiveField && <BoltOutlined sx={{ fontSize: 16, color: 'var(--color-primary-600)', rotate: '15deg' }} />}\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 </h1>\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 ? (\n renderGTNAddButton ? (\n renderGTNAddButton(handleAddGTNToDocument)\n ) : (\n <button\n id=\"btn-toggle-add-to-document\"\n className=\"cursor-pointer\"\n onClick={handleAddGTNToDocument}\n type=\"button\"\n >\n <AntTooltip placement=\"top\" title={t(\"Add to document\")}>\n <NoteAddOutlined className=\"text-primary-600\" sx={{ fontSize: 16 }} />\n </AntTooltip>\n </button>\n )\n ) : null}\n </div>\n </div>\n )}\n\n {/* Help text */}\n {helpText && (\n <Typography\n className=\"mb-2 text-neutral-600 dark:text-neutral-400\"\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"regular\"\n >\n {helpText}\n </Typography>\n )}\n\n <div className=\"flex\">\n {isLabelDirectionLeft && (\n <Typography\n size=\"small\"\n variant=\"medium\"\n className={cn('mr-2 text-neutral-700 dark:text-black-200', labelClassName)}\n appearance=\"custom\"\n >\n {label}\n </Typography>\n )}\n\n <label\n className={cn(\n 'relative inline-flex items-center',\n isLabelDirectionRight || statusText ? '' : 'w-min',\n !isDisabledBool ? 'cursor-pointer' : 'cursor-not-allowed opacity-50'\n )}\n onClick={(e) => e.stopPropagation()}\n >\n <input\n ref={ref}\n type=\"checkbox\"\n id={id}\n onChange={(e) => !isDisabledBool && onChange(e.target.checked)}\n value=\"\"\n disabled={isDisabledBool}\n checked={isChecked}\n className={cn('sr-only peer w-full', className)}\n aria-required={required}\n aria-invalid={\n message && messageType === \"error\" ? \"true\" : \"false\"\n }\n aria-describedby={\n message || helpText ? `${id}-description` : undefined\n }\n />\n <div className={getToggleClassNames(isChecked, withIcon, isDisabledBool, size)}>\n {withIcon ? (\n <div className=\"flex items-center justify-center h-full w-full\">\n <div\n className={cn(\n \"z-10 transition-all transform\",\n size === \"small\" &&\n (isChecked\n ? \"translate-x-2\"\n : \"translate-x-[-6px]\"),\n size === \"medium\" &&\n (isChecked\n ? \"translate-x-[8.5px]\"\n : \"translate-x-[-8px]\"),\n size === \"large\" &&\n (isChecked\n ? \"translate-x-2.5\"\n : \"translate-x-[-10px]\")\n )}\n >\n {isChecked ? (\n icon?.checkedIcon ? (\n icon.checkedIcon\n ) : (\n <CheckIcon size={18} fill=\"#016DCF\" />\n )\n ) : icon?.uncheckedIcon ? (\n icon.uncheckedIcon\n ) : (\n <CloseIcon size={18} fill=\"#101828\" />\n )}\n </div>\n </div>\n ) : null}\n </div>\n {disabledTooltip && (\n <Tooltip placement=\"top\" title={disabledTooltip} className=\"-ml-2\">\n <span className={cn(\n 'absolute inset-y-0 left-0',\n size === 'small' && 'w-7',\n size === 'medium' && 'w-9',\n size === 'large' && 'w-11',\n )} />\n </Tooltip>\n )}\n\n {isLabelDirectionRight && (\n <Typography\n size=\"small\"\n variant=\"medium\"\n className={cn('ml-2 text-neutral-700 dark:text-black-300', labelClassName)}\n appearance=\"custom\"\n >\n {label}\n </Typography>\n )}\n\n {hideStatus ? null : (\n <Typography\n size=\"small\"\n variant=\"medium\"\n className=\"ml-2 text-neutral-900 dark:text-black-100\"\n appearance=\"custom\"\n >\n {statusText ? statusText : isChecked ? 'Yes' : 'No'}\n </Typography>\n )}\n </label>\n </div>\n\n {/* Message */}\n <AnimatePresence>\n {message && (\n <motion.div\n initial={{ opacity: 0, y: -10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -10 }}\n transition={{ duration: 0.2 }}\n id={`${id}-description`}\n role={messageType === \"error\" ? \"alert\" : undefined}\n >\n <Typography\n className={cn(\"mt-1\", getMessageTypographyClass())}\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"medium\"\n >\n {message}\n </Typography>\n </motion.div>\n )}\n </AnimatePresence>\n\n {/* Help text description for accessibility */}\n {helpText && !message && (\n <div id={`${id}-description`} className=\"sr-only\">\n {helpText}\n </div>\n )}\n </div>\n </div>\n );\n }\n);\n\nToggle.displayName = \"Toggle\";\n"],"names":["getToggleClassNames","isChecked","withIcon","isDisabled","size","sizeClasses","translateClasses","cn","CheckIcon","fill","jsx","CloseIcon","Toggle","forwardRef","isGTN","id","onChange","label","required","isRequiredConditional","hideStatus","labelDirection","TOGGLE_LABEL_DIRECTION","statusText","tags","isAiExtracted","confidenceScore","confidenceType","confidenceTooltip","sourceMeta","onConfidenceScoreClick","tooltip","className","disabled","icon","stopClickPropagation","_gtnName","_variant","labelClassName","isLiveField","message","messageType","wrapperClassName","helpText","labelExtra","renderGTNAddButton","onAddGTNToDocument","inputEmphasis","ref","t","useTranslation","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","resolvedDisabled","isDisabledBool","disabledTooltip","isLabelDirectionTop","isLabelDirectionLeft","isLabelDirectionRight","isHovered","setIsHovered","useState","handleAddGTNToDocument","getMessageTypographyClass","jsxs","e","InputLabel","BoltOutlined","shouldShowConfidenceScore","AIExtractedIndicator","Label","Tooltip","HelpIcon","getConfidenceScoreBadgeClass","AIStarIcon","getConfidenceScoreBadgeColor","getConfidenceScoreBadgeFill","getConfidenceScoreBadgeTextColor","AntTooltip","NoteAddOutlined","Typography","AnimatePresence","motion"],"mappings":"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"}
1
+ {"version":3,"file":"Toggle.cjs.js","sources":["../../../../src/components/forms/toggle/Toggle.tsx"],"sourcesContent":["import cn from \"classnames\";\nimport { forwardRef, type ReactNode, useState } from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { Tooltip as AntTooltip } from \"antd\";\nimport { useTranslation } from 'react-i18next';\nimport { Typography } from \"../../data-display/typography/Typography\";\nimport { TOGGLE_LABEL_DIRECTION } from \"../../../constants/toggle\";\nimport type { TToggleDirection } from \"../../../constants/toggle\";\nimport { BoltOutlined, NoteAddOutlined } from \"@mui/icons-material\";\nimport { AIExtractedIndicator } from \"../../icons/AIExtractedIndicator\";\nimport { AIStarIcon } from \"../../icons/AIStarIcon\";\nimport { Label, type LabelType } from \"../../data-display/label/Label\";\nimport Tooltip from \"../../tooltip/Tooltip\";\nimport { HelpIcon } from \"../../icons/HelpIcon\";\nimport { InputLabel } from \"../shared/InputLabel\";\nimport {\n getConfidenceScoreBadgeClass,\n getConfidenceScoreBadgeColor,\n getConfidenceScoreBadgeFill,\n getConfidenceScoreBadgeTextColor,\n shouldShowConfidenceScore,\n} from \"../../../utils/confidenceScoreUtils\";\n\n// Re-export LabelType from Label component for external use\nexport type { LabelType };\n\n/** Visual emphasis for the toggle container (background + border) */\nexport type ToggleEmphasis = \"default\" | \"modified\" | \"deleted\" | \"success\";\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 * Props for the Toggle component\n */\nexport interface ToggleProps {\n /** Whether this is a GTN (Global Term Name) field */\n isGTN?: boolean;\n /** Unique identifier for the toggle */\n id?: string;\n /** Whether the toggle is checked */\n isChecked: boolean;\n /** Callback function called when toggle state changes */\n onChange: (val: boolean) => void;\n /** Label text or element to display */\n label?: ReactNode;\n /** Whether to preserve original case in the label */\n originalCase?: boolean;\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 /** Whether to hide the status text (Yes/No) */\n hideStatus?: boolean;\n /** Label direction relative to toggle */\n labelDirection?: TToggleDirection;\n /** Custom status text instead of Yes/No */\n statusText?: string;\n /** Whether to show icons in the toggle */\n withIcon?: boolean;\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?: 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 /** Tooltip text to display */\n tooltip?: string;\n /** Additional CSS classes for the toggle input */\n className?: string;\n /** Whether the toggle is disabled. Pass a string to disable with a tooltip message. */\n disabled?: boolean | string;\n /**\n * @deprecated Use `disabled` instead.\n */\n isDisabled?: boolean | string;\n /** Custom icons for checked/unchecked states */\n icon?: {\n checkedIcon: ReactNode;\n uncheckedIcon: ReactNode;\n };\n /** Whether to stop click propagation */\n stopClickPropagation?: boolean;\n /** GTN field name for document integration */\n gtnName?: any;\n /** Visual variant for the toggle */\n variant?: 'primary' | 'secondary';\n /** Additional CSS classes for the label */\n labelClassName?: string;\n /** Whether this is a live field */\n isLiveField?: boolean;\n /** Message to display below the toggle */\n message?: string;\n /** Type of message to display */\n messageType?: \"success\" | \"error\" | \"info\" | \"default\";\n /** Additional CSS classes for the wrapper container */\n wrapperClassName?: string;\n /** Help text to display below the label */\n helpText?: string;\n /** Optional extra content in the label row (e.g. actions, badges) */\n labelExtra?: React.ReactNode;\n /** Size variant for the toggle */\n size?: \"small\" | \"medium\" | \"large\";\n /** Custom render function for GTN add to document button */\n renderGTNAddButton?: (onClick: () => void) => ReactNode;\n /** Handler for adding GTN to document */\n onAddGTNToDocument?: (keyValuePair: { key: string; value: string }) => void;\n /** Container surface style: `'modified'` — Warning-50/Warning-200; `'deleted'` — Error-50/Error-200; `'success'` — Success-50/Success-200 */\n inputEmphasis?: ToggleEmphasis;\n}\n\n/**\n * Get toggle class names based on state and options\n */\nconst getToggleClassNames = (\n isChecked: boolean,\n withIcon: boolean,\n isDisabled: boolean,\n size: \"small\" | \"medium\" | \"large\" = \"medium\"\n): string => {\n const sizeClasses = {\n small: \"w-7 h-4 after:h-3 after:w-3 after:top-0.5 after:left-0.5\",\n medium: \"w-10 h-[1.375rem] after:h-[1.125rem] after:w-[1.125rem] after:top-0.5 after:left-0.5\",\n large: \"w-11 h-6 after:h-5 after:w-5 after:top-0.5 after:left-0.5\",\n };\n\n const translateClasses = {\n small: \"peer-checked:after:translate-x-3\",\n medium: \"peer-checked:after:translate-x-full\",\n large: \"peer-checked:after:translate-x-5\",\n };\n\n return cn(\n \"p-0.5 rounded-full peer after:content-[''] after:absolute after:rounded-full after:transition-all bg-gray-200 dark:bg-black-400 peer-focus-visible:outline-none peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500 peer-focus-visible:ring-offset-2 peer-focus-visible:ring-offset-white dark:peer-focus-visible:ring-primary-400 dark:peer-focus-visible:ring-offset-black-900 peer-focus-visible:shadow-[0_0_0_3px_var(--color-primary-100)] dark:peer-focus-visible:shadow-[0_0_0_3px_var(--color-primary-950)]\",\n sizeClasses[size],\n translateClasses[size],\n {\n 'peer-checked:bg-primary-600 dark:peer-checked:bg-primary-700 peer-checked:after:translate-x-full after:bg-white dark:after:bg-primary-500':\n isChecked,\n 'after:bg-white dark:after:bg-black-500': !isChecked,\n 'text-white dark:text-black-900': withIcon,\n 'cursor-not-allowed opacity-70': isDisabled,\n }\n );\n};\n\n/**\n * Default Check icon component\n */\nconst CheckIcon = ({ size = 18, fill = '#016DCF' }: { size?: number; fill?: string }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z\"\n fill={fill}\n />\n </svg>\n);\n\n/**\n * Default Close icon component\n */\nconst CloseIcon = ({ size = 18, fill = '#101828' }: { size?: number; fill?: string }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\"\n fill={fill}\n />\n </svg>\n);\n\n/**\n * A highly customizable toggle component with label, validation, and styling support.\n * Features multiple sizes, variants, icon support, GTN integration, and comprehensive prop support.\n *\n * @example\n * ```tsx\n * <Toggle\n * id=\"notifications\"\n * label=\"Enable Notifications\"\n * isChecked={notificationsEnabled}\n * onChange={(checked) => setNotificationsEnabled(checked)}\n * required\n * />\n * ```\n */\nexport const Toggle = forwardRef<HTMLInputElement, ToggleProps>(\n (\n {\n isGTN = false,\n isChecked,\n id,\n onChange,\n label,\n required,\n isRequiredConditional = false,\n hideStatus = false,\n labelDirection = TOGGLE_LABEL_DIRECTION.TOP,\n statusText,\n withIcon = false,\n tags,\n isAiExtracted = false,\n confidenceScore,\n confidenceType = \"high\",\n confidenceTooltip,\n sourceMeta = [],\n onConfidenceScoreClick,\n tooltip = '',\n className = '',\n disabled,\n isDisabled = false,\n icon,\n stopClickPropagation = true,\n gtnName: _gtnName,\n variant: _variant = 'primary',\n labelClassName,\n isLiveField = false,\n message,\n messageType = \"default\",\n wrapperClassName,\n helpText,\n labelExtra,\n size = \"medium\",\n renderGTNAddButton,\n onAddGTNToDocument,\n inputEmphasis = \"default\",\n },\n ref\n ) => {\n const { t } = useTranslation();\n const emphasisModifiedSkin = inputEmphasis === \"modified\";\n const emphasisDeletedSkin = inputEmphasis === \"deleted\";\n const emphasisSuccessSkin = inputEmphasis === \"success\";\n const resolvedDisabled = disabled ?? isDisabled;\n const isDisabledBool = !!resolvedDisabled;\n const disabledTooltip = typeof resolvedDisabled === 'string' ? resolvedDisabled : undefined;\n const isLabelDirectionTop = labelDirection === TOGGLE_LABEL_DIRECTION.TOP;\n const isLabelDirectionLeft = labelDirection === TOGGLE_LABEL_DIRECTION.LEFT;\n const isLabelDirectionRight = labelDirection === TOGGLE_LABEL_DIRECTION.RIGHT;\n const [isHovered, setIsHovered] = useState(false);\n\n const handleAddGTNToDocument = () => {\n if (onAddGTNToDocument) {\n const keyValuePair = {\n key: _gtnName,\n value: isChecked ? 'Yes' : 'No',\n };\n onAddGTNToDocument(keyValuePair);\n }\n };\n\n const getMessageTypographyClass = (): string => {\n if (messageType === \"error\") return \"text-red-500 dark:text-red-400\";\n if (messageType === \"success\")\n return \"text-green-500 dark:text-green-400\";\n if (messageType === \"info\") return \"text-primary-500 dark:text-primary-400\";\n return \"text-neutral-500 dark:text-neutral-400\";\n };\n\n const _defaultRenderLabels = (labels?: (string | LabelType)[]) => {\n if (!labels || labels.length === 0) return null;\n return (\n <span className=\"inline-flex gap-1 ml-1\">\n {labels.map((tag, index) => {\n const label = typeof tag === 'string' ? tag : tag.label;\n const color = typeof tag === 'string' ? undefined : tag.color;\n return (\n <span\n key={index}\n className=\"px-1.5 py-0.5 text-xs rounded bg-gray-100 dark:bg-gray-700 text-gray-600 dark:text-gray-300\"\n style={color ? { backgroundColor: color } : undefined}\n >\n {label}\n </span>\n );\n })}\n </span>\n );\n };\n\n return (\n <div\n className={cn(\n 'flex gap-0.5',\n isHovered && isGTN ? 'border rounded-lg border-primary-100 bg-primary-50 p-1' : '',\n wrapperClassName\n )}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n onClick={(e) => {\n if (stopClickPropagation) e.stopPropagation();\n }}\n >\n {isGTN && !isHovered ? (\n <div className=\"w-1 h-1 bg-primary-600 rounded-full animate-pulse mt-1.5\" />\n ) : null}\n <div className={cn(\n \"w-full flex flex-col\",\n emphasisModifiedSkin && \"rounded-lg border border-solid border-[var(--Warning-200,#FEDF89)] bg-[var(--Warning-50,#FFFAEB)] px-2 py-1.5\",\n emphasisDeletedSkin && \"rounded-lg border border-solid border-[var(--Error-200,#FECACA)] bg-[var(--Error-50,#FEF2F2)] px-2 py-1.5\",\n emphasisSuccessSkin && \"rounded-lg border border-solid border-[var(--Success-200,#BBF7D0)] bg-[var(--Success-50,#F0FDF4)] px-2 py-1.5\",\n )}>\n {isLabelDirectionTop && label && (\n <div className=\"grid w-full grid-cols-[minmax(0,1fr)_auto] items-start gap-x-1\">\n <h1\n className={cn(\n 'mb-1 min-w-0 font-inter text-neutral-600 font-medium text-xs flex items-center gap-0.5 flex-wrap',\n labelClassName\n )}\n >\n <InputLabel label={label || \"\"} required={required || false} isRequiredConditional={isRequiredConditional || false} />\n {isLiveField && <BoltOutlined sx={{ fontSize: 16, color: 'var(--color-primary-600)', rotate: '15deg' }} />}\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 </h1>\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 ? (\n renderGTNAddButton ? (\n renderGTNAddButton(handleAddGTNToDocument)\n ) : (\n <button\n id=\"btn-toggle-add-to-document\"\n className=\"cursor-pointer\"\n onClick={handleAddGTNToDocument}\n type=\"button\"\n >\n <AntTooltip placement=\"top\" title={t(\"Add to document\")}>\n <NoteAddOutlined className=\"text-primary-600\" sx={{ fontSize: 16 }} />\n </AntTooltip>\n </button>\n )\n ) : null}\n </div>\n </div>\n )}\n\n {/* Help text */}\n {helpText && (\n <Typography\n className=\"mb-2 text-neutral-600 dark:text-neutral-400\"\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"regular\"\n >\n {helpText}\n </Typography>\n )}\n\n <div className=\"flex\">\n {isLabelDirectionLeft && (\n <Typography\n size=\"small\"\n variant=\"medium\"\n className={cn('mr-2 text-neutral-700 dark:text-black-200', labelClassName)}\n appearance=\"custom\"\n >\n {label}\n </Typography>\n )}\n\n <label\n className={cn(\n 'relative inline-flex items-center',\n isLabelDirectionRight || statusText ? '' : 'w-min',\n !isDisabledBool ? 'cursor-pointer' : 'cursor-not-allowed opacity-50'\n )}\n onClick={(e) => e.stopPropagation()}\n >\n <input\n ref={ref}\n type=\"checkbox\"\n id={id}\n onChange={(e) => !isDisabledBool && onChange(e.target.checked)}\n value=\"\"\n disabled={isDisabledBool}\n checked={isChecked}\n className={cn('sr-only peer w-full', className)}\n aria-required={required}\n aria-invalid={\n message && messageType === \"error\" ? \"true\" : \"false\"\n }\n aria-describedby={\n message || helpText ? `${id}-description` : undefined\n }\n />\n <div className={getToggleClassNames(isChecked, withIcon, isDisabledBool, size)}>\n {withIcon ? (\n // Overlay the icon on the sliding knob using the knob's exact\n // geometry (same top/left, same size, same full-width slide) so\n // it stays perfectly centered in the circle for every size/state.\n <div\n className={cn(\n \"pointer-events-none absolute top-0.5 left-0.5 z-10 flex items-center justify-center transition-transform\",\n size === \"small\" && \"h-3 w-3\",\n size === \"medium\" && \"h-[1.125rem] w-[1.125rem]\",\n size === \"large\" && \"h-5 w-5\",\n isChecked && \"translate-x-full\"\n )}\n >\n {isChecked ? (\n icon?.checkedIcon ? (\n icon.checkedIcon\n ) : (\n <CheckIcon size={18} fill=\"#016DCF\" />\n )\n ) : icon?.uncheckedIcon ? (\n icon.uncheckedIcon\n ) : (\n <CloseIcon size={18} fill=\"#101828\" />\n )}\n </div>\n ) : null}\n </div>\n {disabledTooltip && (\n <Tooltip placement=\"top\" title={disabledTooltip} className=\"-ml-2\">\n <span className={cn(\n 'absolute inset-y-0 left-0',\n size === 'small' && 'w-7',\n size === 'medium' && 'w-9',\n size === 'large' && 'w-11',\n )} />\n </Tooltip>\n )}\n\n {isLabelDirectionRight && (\n <Typography\n size=\"small\"\n variant=\"medium\"\n className={cn('ml-2 text-neutral-700 dark:text-black-300', labelClassName)}\n appearance=\"custom\"\n >\n {label}\n </Typography>\n )}\n\n {hideStatus ? null : (\n <Typography\n size=\"small\"\n variant=\"medium\"\n className=\"ml-2 text-neutral-900 dark:text-black-100\"\n appearance=\"custom\"\n >\n {statusText ? statusText : isChecked ? 'Yes' : 'No'}\n </Typography>\n )}\n </label>\n </div>\n\n {/* Message */}\n <AnimatePresence>\n {message && (\n <motion.div\n initial={{ opacity: 0, y: -10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -10 }}\n transition={{ duration: 0.2 }}\n id={`${id}-description`}\n role={messageType === \"error\" ? \"alert\" : undefined}\n >\n <Typography\n className={cn(\"mt-1\", getMessageTypographyClass())}\n appearance=\"custom\"\n size=\"extra-small\"\n variant=\"medium\"\n >\n {message}\n </Typography>\n </motion.div>\n )}\n </AnimatePresence>\n\n {/* Help text description for accessibility */}\n {helpText && !message && (\n <div id={`${id}-description`} className=\"sr-only\">\n {helpText}\n </div>\n )}\n </div>\n </div>\n );\n }\n);\n\nToggle.displayName = \"Toggle\";\n"],"names":["getToggleClassNames","isChecked","withIcon","isDisabled","size","sizeClasses","translateClasses","cn","CheckIcon","fill","jsx","CloseIcon","Toggle","forwardRef","isGTN","id","onChange","label","required","isRequiredConditional","hideStatus","labelDirection","TOGGLE_LABEL_DIRECTION","statusText","tags","isAiExtracted","confidenceScore","confidenceType","confidenceTooltip","sourceMeta","onConfidenceScoreClick","tooltip","className","disabled","icon","stopClickPropagation","_gtnName","_variant","labelClassName","isLiveField","message","messageType","wrapperClassName","helpText","labelExtra","renderGTNAddButton","onAddGTNToDocument","inputEmphasis","ref","t","useTranslation","emphasisModifiedSkin","emphasisDeletedSkin","emphasisSuccessSkin","resolvedDisabled","isDisabledBool","disabledTooltip","isLabelDirectionTop","isLabelDirectionLeft","isLabelDirectionRight","isHovered","setIsHovered","useState","handleAddGTNToDocument","getMessageTypographyClass","jsxs","e","InputLabel","BoltOutlined","shouldShowConfidenceScore","AIExtractedIndicator","Label","Tooltip","HelpIcon","getConfidenceScoreBadgeClass","AIStarIcon","getConfidenceScoreBadgeColor","getConfidenceScoreBadgeFill","getConfidenceScoreBadgeTextColor","AntTooltip","NoteAddOutlined","Typography","AnimatePresence","motion"],"mappings":"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"}