@razorpay/blade 12.121.0 → 12.121.1

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 (32) hide show
  1. package/build/lib/native/components/Input/ColorInput/ColorSwatch.native.js +2 -1
  2. package/build/lib/native/components/Input/ColorInput/ColorSwatch.native.js.map +1 -1
  3. package/build/lib/native/components/Input/OTPInput/OTPInput.js.map +1 -1
  4. package/build/lib/web/development/_virtual/cloneDeep.js +1 -1
  5. package/build/lib/web/development/_virtual/cloneDeep3.js +1 -1
  6. package/build/lib/web/development/components/Input/ColorInput/ColorInput.web.js +1 -0
  7. package/build/lib/web/development/components/Input/ColorInput/ColorInput.web.js.map +1 -1
  8. package/build/lib/web/development/components/Input/ColorInput/ColorSwatch.web.js +18 -5
  9. package/build/lib/web/development/components/Input/ColorInput/ColorSwatch.web.js.map +1 -1
  10. package/build/lib/web/development/components/Input/ColorInput/StyledColorInput.js +6 -3
  11. package/build/lib/web/development/components/Input/ColorInput/StyledColorInput.js.map +1 -1
  12. package/build/lib/web/development/components/Input/OTPInput/OTPInput.js.map +1 -1
  13. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  14. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  15. package/build/lib/web/development/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  16. package/build/lib/web/development/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  17. package/build/lib/web/production/_virtual/cloneDeep.js +1 -1
  18. package/build/lib/web/production/_virtual/cloneDeep3.js +1 -1
  19. package/build/lib/web/production/components/Input/ColorInput/ColorInput.web.js +1 -0
  20. package/build/lib/web/production/components/Input/ColorInput/ColorInput.web.js.map +1 -1
  21. package/build/lib/web/production/components/Input/ColorInput/ColorSwatch.web.js +18 -5
  22. package/build/lib/web/production/components/Input/ColorInput/ColorSwatch.web.js.map +1 -1
  23. package/build/lib/web/production/components/Input/ColorInput/StyledColorInput.js +6 -3
  24. package/build/lib/web/production/components/Input/ColorInput/StyledColorInput.js.map +1 -1
  25. package/build/lib/web/production/components/Input/OTPInput/OTPInput.js.map +1 -1
  26. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +1 -1
  27. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matches.js +2 -2
  28. package/build/lib/web/production/node_modules/es-toolkit/dist/compat/predicate/matchesProperty.js +2 -2
  29. package/build/lib/web/production/node_modules/es-toolkit/dist/object/cloneDeep.js +1 -1
  30. package/build/types/components/index.d.ts +1 -1
  31. package/build/types/components/index.native.d.ts +1 -1
  32. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"OTPInput.js","sources":["../../../../../../../src/components/Input/OTPInput/OTPInput.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState } from 'react';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { getHintType } from '../BaseInput/BaseInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport type { FormInputOnEvent } from '~components/Form';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport type { FormInputOnKeyDownEvent } from '~components/Form/FormTypes';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeSize } from '~utils/makeSize';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype FormInputOnEventWithIndex = ({\n name,\n value,\n inputIndex,\n}: {\n name?: string;\n value?: string;\n inputIndex: number;\n}) => void;\n\nexport type OTPInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'name'\n | 'onChange'\n | 'value'\n | 'isDisabled'\n | 'autoFocus'\n | 'keyboardReturnKeyType'\n | 'keyboardType'\n | 'placeholder'\n | 'testID'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Determines the number of input fields to show for the OTP\n * @default 6\n */\n otpLength?: 4 | 6;\n /**\n * The callback function to be invoked when all the values of the OTPInput are filled\n */\n onOTPFilled?: FormInputOnEvent;\n /**\n * Masks input characters in all the fields\n */\n isMasked?: boolean;\n /**\n * Determines what autoComplete suggestion type to show. Defaults to `oneTimeCode`.\n *\n * It's not recommended to turn this off in favor of otp input practices.\n *\n *\n * Internally it'll render platform specific attributes:\n *\n * - web: `autocomplete`\n * - iOS: `textContentType`\n * - android: `autoComplete`\n *\n */\n autoCompleteSuggestionType?: Extract<\n BaseInputProps['autoCompleteSuggestionType'],\n 'none' | 'oneTimeCode'\n >;\n /**\n * The callback function to be invoked when one of the input fields gets focus\n */\n onFocus?: FormInputOnEventWithIndex;\n /**\n * The callback function to be invoked when one of the input fields is blurred\n */\n onBlur?: FormInputOnEventWithIndex;\n} & StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype OTPInputPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype OTPInputPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype OTPInputProps = (OTPInputPropsWithA11yLabel | OTPInputPropsWithLabel) & OTPInputCommonProps;\n\nconst isReactNative = getPlatformType() === 'react-native';\n\n/**\n * Converts a string value of otp to array if passed otherwise returns an array of 6 empty strings\n */\nconst otpToArray = (code?: string): string[] => code?.split('') ?? Array(6).fill('');\n\n/**\n * OTPInput component can be used for accepting OTPs sent to users for authentication/verification purposes.\n *\n * ## Usage\n *\n * ```tsx\n * <OTPInput\n * label=\"Enter OTP\"\n * name=\"otpInput\"\n * onChange={({ name, value }): void => console.log({ name, value })}\n * onOTPFilled={({ name, value }): void => console.log({ name, value })}\n * />\n * ```\n */\nconst _OTPInput: React.ForwardRefRenderFunction<HTMLInputElement[], OTPInputProps> = (\n {\n autoFocus,\n errorText,\n helpText,\n isDisabled,\n keyboardReturnKeyType,\n keyboardType = 'decimal',\n label,\n accessibilityLabel,\n labelPosition,\n labelSuffix,\n labelTrailing,\n name,\n onChange,\n onFocus,\n onBlur,\n onOTPFilled,\n otpLength = 6,\n placeholder,\n successText,\n validationState,\n value: inputValue,\n isMasked,\n autoCompleteSuggestionType = 'oneTimeCode',\n testID,\n size = 'medium',\n ...rest\n },\n incomingRef,\n) => {\n const inputRefs: React.RefObject<HTMLInputElement>[] = [];\n const [otpValue, setOtpValue] = useState<string[]>(otpToArray(inputValue));\n const [inputType, setInputType] = useState<('password' | undefined)[]>([]);\n const isLabelLeftPositioned = labelPosition === 'left';\n const { inputId, helpTextId, errorTextId, successTextId } = useFormId('otp');\n\n useImperativeHandle(\n incomingRef,\n () => {\n return inputRefs.map((ref) => ref.current!);\n },\n [inputRefs],\n );\n\n useEffect(() => {\n // Effect for calling `onOTPFilled` callback\n if (inputValue && inputValue.length >= otpLength) {\n // callback for when the OTPInput is controlled and inputValue reaches the same or greater length as the otpLength\n onOTPFilled?.({ value: inputValue.slice(0, otpLength), name });\n } else if (!inputValue && otpValue.join('').length >= otpLength) {\n // callback for when the OTPInput is uncontrolled and otpValue stored in state reaches the same or greater length as the otpLength\n onOTPFilled?.({ value: otpValue.slice(0, otpLength).join(''), name });\n }\n }, [otpValue, otpLength, name, inputValue, onOTPFilled]);\n\n useEffect(() => {\n /* We want to disable the password managers for OTPInput when isMasked is set.\n The issue with only setting autocomplete='off' is that its not an enforcement but a suggestion to the browser to follow.\n This workaround unsets type on first render and sets it to `password` only once a value is entered by the user.\n */\n otpValue.forEach((otp, index) => {\n // Set inputType as 'password' only when a value is entered when isMasked is set\n if (!isEmpty(otp) && !inputType[index] && isMasked) {\n const newInputType = Array.from(inputType);\n newInputType[index] = 'password';\n setInputType(newInputType);\n }\n // Cleanup the inputType array whenever the value is empty but inputType[index] is set\n if (isEmpty(otp) && inputType[index]) {\n const newInputType = Array.from(inputType);\n newInputType[index] = undefined;\n setInputType(newInputType);\n }\n });\n }, [otpValue, inputType, isMasked]);\n\n /**\n * Changes the value of the otp at a given index and updates the otpValue stored in state\n *\n * @param {{ value: string; index: number }} { value, index }\n * @returns {string} updated otpValue\n */\n const setOtpValueByIndex = ({ value, index }: { value: string; index: number }): string => {\n const newOtpValue = Array.from(otpValue);\n newOtpValue[index] = value;\n setOtpValue(newOtpValue);\n return newOtpValue.join('');\n };\n\n /**\n * Sets focus to the desired otp input by index\n *\n * @param {number} index the index of the otp input to be focused\n */\n const focusOnOtpByIndex = (index: number): void => {\n inputRefs[index]?.current?.focus();\n if (!isReactNative) {\n // React Native doesn't support imperatively selecting the value of input\n inputRefs[index]?.current?.select();\n }\n };\n\n const handleOnChange = ({\n value,\n currentOtpIndex,\n }: {\n value?: string;\n currentOtpIndex: number;\n }): void => {\n if (value && value === ' ') {\n // React native doesn't support `event.preventDefault()` hence have to add this check to ensure that empty space is not allowed\n return;\n }\n if (inputValue && inputValue.length > 0) {\n // When OTPInput is controlled, set the otpValue as the consumer passed `inputValue` and append the value on current index based on user's input.\n // User's input will not reflect on the otp but will trigger `onChange` callback with the user's input appended so that the consumer can take appropriate action.\n const newOtpValue = Array.from(inputValue);\n newOtpValue[currentOtpIndex] = value ?? '';\n setOtpValue(newOtpValue);\n onChange?.({ name, value: newOtpValue.join('') });\n } else if (value && value.trim().length > 1) {\n // When the entered value is more that 1 character (when value is pasted), set the otpValue to the newly received value.\n // Could have used `onPaste` for web to achieve this but 1. React Native doesn't support onPaste and 2. Safari's autofill on web doesn't trigger onPaste\n setOtpValue(Array.from(value));\n onChange?.({ name, value: value.trim().slice(0, otpLength) });\n // Move focus to the last filled input box after paste\n const lastFilledIndex = Math.min(value.trim().length, otpLength) - 1;\n focusOnOtpByIndex(lastFilledIndex);\n } else if (otpValue[currentOtpIndex] !== value?.trim()) {\n // Set the value at the current index to the entered value\n // only as long as its not the same as the already existing value (this prevents `onChange` being triggered unnecessarily)\n const newValue = setOtpValueByIndex({\n value: value?.trim() ?? '',\n index: currentOtpIndex,\n });\n onChange?.({ name, value: newValue });\n }\n };\n\n const handleOnInput = ({\n value,\n currentOtpIndex,\n }: {\n value?: string;\n currentOtpIndex: number;\n }): void => {\n // Moves focus to next input whenever a value is entered in the current input\n if (value && value.trim().length === 1) {\n focusOnOtpByIndex(++currentOtpIndex);\n }\n };\n\n const handleOnKeyDown = ({\n key,\n code,\n event,\n currentOtpIndex,\n }: FormInputOnKeyDownEvent & { currentOtpIndex: number }): void => {\n if (key === 'Backspace' || code === 'Backspace' || code === 'Delete' || key === 'Delete') {\n event.preventDefault?.();\n if (otpValue[currentOtpIndex]) {\n // Clear the value at the current index if value exists\n handleOnChange({ value: '', currentOtpIndex });\n } else {\n // Move focus to the previous input if the current input is empty\n // and clear the value at the new active (previous) index\n focusOnOtpByIndex(--currentOtpIndex);\n handleOnChange({ value: '', currentOtpIndex });\n }\n } else if (key === 'ArrowLeft' || code === 'ArrowLeft') {\n event.preventDefault?.();\n focusOnOtpByIndex(--currentOtpIndex);\n } else if (key === 'ArrowRight' || code === 'ArrowRight') {\n event.preventDefault?.();\n focusOnOtpByIndex(++currentOtpIndex);\n } else if (key === ' ' || code === 'Space') {\n event.preventDefault?.();\n }\n };\n\n const getHiddenInput = (): React.ReactNode => {\n if (!isReactNative) {\n return (\n <input\n hidden={true}\n id={inputId}\n name={name}\n value={inputValue ?? otpValue.join('') ?? ''}\n readOnly\n />\n );\n }\n return null;\n };\n\n const getOTPInputFields = (): React.ReactNode => {\n const inputs = [];\n for (let index = 0; index < otpLength; index++) {\n const currentValue = inputValue ? otpToArray(inputValue)[index] || '' : otpValue[index] || '';\n const ref = React.createRef<HTMLInputElement>();\n // if an inputValue is passed (controlled) and isMasked is set, inputType will always be password\n let currentInputType: 'password' | undefined;\n if (isMasked) {\n // if inputValue is passed (controlled component) then the inputType will always be password\n currentInputType = inputValue ? 'password' : inputType[index];\n }\n inputRefs.push(ref);\n inputs.push(\n <BaseBox\n flex={1}\n marginLeft={index == 0 ? 'spacing.0' : 'spacing.3'}\n key={`${inputId}-${index}`}\n >\n <BaseInput\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus && index === 0}\n accessibilityLabel={`${index === 0 ? label || accessibilityLabel : ''} character ${\n index + 1\n }`}\n label={label}\n hideLabelText={true}\n id={`${inputId}-${index}`}\n textAlign=\"center\"\n ref={ref as never}\n name={name}\n value={currentValue}\n maxCharacters={otpValue[index]?.length > 0 ? 1 : undefined}\n onChange={(formEvent) => handleOnChange({ ...formEvent, currentOtpIndex: index })}\n onFocus={(formEvent) => onFocus?.({ ...formEvent, inputIndex: index })}\n onBlur={(formEvent) => onBlur?.({ ...formEvent, inputIndex: index })}\n onInput={(formEvent) => handleOnInput({ ...formEvent, currentOtpIndex: index })}\n onKeyDown={(keyboardEvent) =>\n handleOnKeyDown({ ...keyboardEvent, currentOtpIndex: index })\n }\n isDisabled={isDisabled}\n placeholder={Array.from(placeholder ?? '')[index] ?? ''}\n isRequired={true}\n autoCompleteSuggestionType={autoCompleteSuggestionType}\n keyboardType={keyboardType}\n keyboardReturnKeyType={keyboardReturnKeyType}\n validationState={validationState}\n successText={successText}\n errorText={errorText}\n helpText={helpText}\n hideFormHint={true}\n type={currentInputType}\n size={size}\n valueComponentType=\"heading\"\n {...makeAnalyticsAttribute(rest)}\n />\n </BaseBox>,\n );\n }\n return inputs;\n };\n\n return (\n <BaseBox {...metaAttribute({ name: MetaConstants.OTPInput, testID })} {...getStyledProps(rest)}>\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n >\n {Boolean(label) && (\n <FormLabel\n as=\"label\"\n position={labelPosition}\n htmlFor={inputId}\n size={size}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n >\n {label}\n </FormLabel>\n )}\n <BaseBox display=\"flex\" flexDirection=\"row\">\n {getHiddenInput()}\n {getOTPInputFields()}\n </BaseBox>\n </BaseBox>\n {/* the magic number 136 is basically max-width of label i.e 120 and then right margin i.e 16 which is the spacing between label and input field */}\n {/*Refer `BaseInput`'s implementation of FormHint which uses similar logic */}\n <BaseBox marginLeft={makeSize(isLabelLeftPositioned ? 136 : 0)}>\n <FormHint\n type={getHintType({ validationState, hasHelpText: Boolean(helpText) })}\n helpText={helpText}\n errorText={errorText}\n successText={successText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n successTextId={successTextId}\n size={size}\n />\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst OTPInput = React.forwardRef<HTMLInputElement[], OTPInputProps>(_OTPInput);\n\nexport type { OTPInputProps };\nexport { OTPInput };\n"],"names":["isReactNative","getPlatformType","otpToArray","code","_code$split","split","Array","fill","_OTPInput","_ref","incomingRef","autoFocus","errorText","helpText","isDisabled","keyboardReturnKeyType","_ref$keyboardType","keyboardType","label","accessibilityLabel","labelPosition","labelSuffix","labelTrailing","name","onChange","onFocus","onBlur","onOTPFilled","_ref$otpLength","otpLength","placeholder","successText","validationState","inputValue","value","isMasked","_ref$autoCompleteSugg","autoCompleteSuggestionType","testID","_ref$size","size","rest","_objectWithoutProperties","_excluded","inputRefs","_useState","useState","_useState2","_slicedToArray","otpValue","setOtpValue","_useState3","_useState4","inputType","setInputType","isLabelLeftPositioned","_useFormId","useFormId","inputId","helpTextId","errorTextId","successTextId","useImperativeHandle","map","ref","current","useEffect","length","slice","join","forEach","otp","index","isEmpty","newInputType","from","undefined","setOtpValueByIndex","_ref2","newOtpValue","focusOnOtpByIndex","_inputRefs$index","focus","_inputRefs$index2","select","handleOnChange","_ref3","currentOtpIndex","trim","lastFilledIndex","Math","min","_value$trim","newValue","handleOnInput","_ref4","handleOnKeyDown","_ref5","key","event","_event$preventDefault","preventDefault","call","_event$preventDefault2","_event$preventDefault3","_event$preventDefault4","getHiddenInput","_ref6","_jsx","hidden","id","readOnly","getOTPInputFields","inputs","_loop","_otpValue$index","_Array$from$index","currentValue","React","createRef","currentInputType","push","BaseBox","flex","marginLeft","children","BaseInput","_objectSpread","concat","hideLabelText","textAlign","maxCharacters","formEvent","inputIndex","onInput","onKeyDown","keyboardEvent","isRequired","hideFormHint","type","valueComponentType","makeAnalyticsAttribute","_jsxs","metaAttribute","MetaConstants","OTPInput","getStyledProps","display","flexDirection","alignItems","position","Boolean","FormLabel","as","htmlFor","makeSize","FormHint","getHintType","hasHelpText","forwardRef"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyHA,IAAMA,aAAa,GAAGC,eAAe,EAAE,KAAK,cAAc,CAAA;;AAE1D;AACA;AACA;AACA,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,IAAa,EAAA;AAAA,EAAA,IAAAC,WAAA,CAAA;EAAA,OAAAA,CAAAA,WAAA,GAAeD,IAAI,KAAJA,IAAAA,IAAAA,IAAI,uBAAJA,IAAI,CAAEE,KAAK,CAAC,EAAE,CAAC,cAAAD,WAAA,KAAA,KAAA,CAAA,GAAAA,WAAA,GAAIE,KAAK,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC,CAAA;AAAA,CAAA,CAAA;;AAEpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMC,SAA4E,GAAG,SAA/EA,SAA4EA,CAAAC,IAAA,EA6BhFC,WAAW,EACR;AAAA,EAAA,IA5BDC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,SAAS,GAAAH,IAAA,CAATG,SAAS;IACTC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,UAAU,GAAAL,IAAA,CAAVK,UAAU;IACVC,qBAAqB,GAAAN,IAAA,CAArBM,qBAAqB;IAAAC,iBAAA,GAAAP,IAAA,CACrBQ,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,SAAS,GAAAA,iBAAA;IACxBE,KAAK,GAAAT,IAAA,CAALS,KAAK;IACLC,kBAAkB,GAAAV,IAAA,CAAlBU,kBAAkB;IAClBC,aAAa,GAAAX,IAAA,CAAbW,aAAa;IACbC,WAAW,GAAAZ,IAAA,CAAXY,WAAW;IACXC,aAAa,GAAAb,IAAA,CAAba,aAAa;IACbC,IAAI,GAAAd,IAAA,CAAJc,IAAI;IACJC,QAAQ,GAAAf,IAAA,CAARe,QAAQ;IACRC,QAAO,GAAAhB,IAAA,CAAPgB,OAAO;IACPC,OAAM,GAAAjB,IAAA,CAANiB,MAAM;IACNC,WAAW,GAAAlB,IAAA,CAAXkB,WAAW;IAAAC,cAAA,GAAAnB,IAAA,CACXoB,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,cAAA;IACbE,WAAW,GAAArB,IAAA,CAAXqB,WAAW;IACXC,WAAW,GAAAtB,IAAA,CAAXsB,WAAW;IACXC,eAAe,GAAAvB,IAAA,CAAfuB,eAAe;IACRC,UAAU,GAAAxB,IAAA,CAAjByB,KAAK;IACLC,QAAQ,GAAA1B,IAAA,CAAR0B,QAAQ;IAAAC,qBAAA,GAAA3B,IAAA,CACR4B,0BAA0B;AAA1BA,IAAAA,0BAA0B,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,aAAa,GAAAA,qBAAA;IAC1CE,MAAM,GAAA7B,IAAA,CAAN6B,MAAM;IAAAC,SAAA,GAAA9B,IAAA,CACN+B,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,SAAA;AACZE,IAAAA,IAAI,GAAAC,wBAAA,CAAAjC,IAAA,EAAAkC,SAAA,CAAA,CAAA;EAIT,IAAMC,SAA8C,GAAG,EAAE,CAAA;EACzD,IAAAC,SAAA,GAAgCC,QAAQ,CAAW5C,UAAU,CAAC+B,UAAU,CAAC,CAAC;IAAAc,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAnEI,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,WAAW,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,IAAAI,UAAA,GAAkCL,QAAQ,CAA6B,EAAE,CAAC;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAnEE,IAAAA,SAAS,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAC9B,EAAA,IAAMG,qBAAqB,GAAGnC,aAAa,KAAK,MAAM,CAAA;AACtD,EAAA,IAAAoC,UAAA,GAA4DC,SAAS,CAAC,KAAK,CAAC;IAApEC,OAAO,GAAAF,UAAA,CAAPE,OAAO;IAAEC,UAAU,GAAAH,UAAA,CAAVG,UAAU;IAAEC,WAAW,GAAAJ,UAAA,CAAXI,WAAW;IAAEC,aAAa,GAAAL,UAAA,CAAbK,aAAa,CAAA;EAEvDC,mBAAmB,CACjBpD,WAAW,EACX,YAAM;AACJ,IAAA,OAAOkC,SAAS,CAACmB,GAAG,CAAC,UAACC,GAAG,EAAA;MAAA,OAAKA,GAAG,CAACC,OAAO,CAAA;AAAA,KAAC,CAAC,CAAA;AAC7C,GAAC,EACD,CAACrB,SAAS,CACZ,CAAC,CAAA;AAEDsB,EAAAA,SAAS,CAAC,YAAM;AACd;AACA,IAAA,IAAIjC,UAAU,IAAIA,UAAU,CAACkC,MAAM,IAAItC,SAAS,EAAE;AAChD;AACAF,MAAAA,WAAW,KAAXA,IAAAA,IAAAA,WAAW,KAAXA,KAAAA,CAAAA,IAAAA,WAAW,CAAG;QAAEO,KAAK,EAAED,UAAU,CAACmC,KAAK,CAAC,CAAC,EAAEvC,SAAS,CAAC;AAAEN,QAAAA,IAAI,EAAJA,IAAAA;AAAK,OAAC,CAAC,CAAA;AAChE,KAAC,MAAM,IAAI,CAACU,UAAU,IAAIgB,QAAQ,CAACoB,IAAI,CAAC,EAAE,CAAC,CAACF,MAAM,IAAItC,SAAS,EAAE;AAC/D;AACAF,MAAAA,WAAW,KAAXA,IAAAA,IAAAA,WAAW,KAAXA,KAAAA,CAAAA,IAAAA,WAAW,CAAG;AAAEO,QAAAA,KAAK,EAAEe,QAAQ,CAACmB,KAAK,CAAC,CAAC,EAAEvC,SAAS,CAAC,CAACwC,IAAI,CAAC,EAAE,CAAC;AAAE9C,QAAAA,IAAI,EAAJA,IAAAA;AAAK,OAAC,CAAC,CAAA;AACvE,KAAA;AACF,GAAC,EAAE,CAAC0B,QAAQ,EAAEpB,SAAS,EAAEN,IAAI,EAAEU,UAAU,EAAEN,WAAW,CAAC,CAAC,CAAA;AAExDuC,EAAAA,SAAS,CAAC,YAAM;AACd;AACJ;AACA;AACA;AACIjB,IAAAA,QAAQ,CAACqB,OAAO,CAAC,UAACC,GAAG,EAAEC,KAAK,EAAK;AAC/B;AACA,MAAA,IAAI,CAACC,OAAO,CAACF,GAAG,CAAC,IAAI,CAAClB,SAAS,CAACmB,KAAK,CAAC,IAAIrC,QAAQ,EAAE;AAClD,QAAA,IAAMuC,YAAY,GAAGpE,KAAK,CAACqE,IAAI,CAACtB,SAAS,CAAC,CAAA;AAC1CqB,QAAAA,YAAY,CAACF,KAAK,CAAC,GAAG,UAAU,CAAA;QAChClB,YAAY,CAACoB,YAAY,CAAC,CAAA;AAC5B,OAAA;AACA;MACA,IAAID,OAAO,CAACF,GAAG,CAAC,IAAIlB,SAAS,CAACmB,KAAK,CAAC,EAAE;AACpC,QAAA,IAAME,aAAY,GAAGpE,KAAK,CAACqE,IAAI,CAACtB,SAAS,CAAC,CAAA;AAC1CqB,QAAAA,aAAY,CAACF,KAAK,CAAC,GAAGI,SAAS,CAAA;QAC/BtB,YAAY,CAACoB,aAAY,CAAC,CAAA;AAC5B,OAAA;AACF,KAAC,CAAC,CAAA;GACH,EAAE,CAACzB,QAAQ,EAAEI,SAAS,EAAElB,QAAQ,CAAC,CAAC,CAAA;;AAEnC;AACF;AACA;AACA;AACA;AACA;AACE,EAAA,IAAM0C,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,KAAA,EAAmE;AAAA,IAAA,IAA7D5C,KAAK,GAAA4C,KAAA,CAAL5C,KAAK;MAAEsC,KAAK,GAAAM,KAAA,CAALN,KAAK,CAAA;AACxC,IAAA,IAAMO,WAAW,GAAGzE,KAAK,CAACqE,IAAI,CAAC1B,QAAQ,CAAC,CAAA;AACxC8B,IAAAA,WAAW,CAACP,KAAK,CAAC,GAAGtC,KAAK,CAAA;IAC1BgB,WAAW,CAAC6B,WAAW,CAAC,CAAA;AACxB,IAAA,OAAOA,WAAW,CAACV,IAAI,CAAC,EAAE,CAAC,CAAA;GAC5B,CAAA;;AAED;AACF;AACA;AACA;AACA;AACE,EAAA,IAAMW,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIR,KAAa,EAAW;AAAA,IAAA,IAAAS,gBAAA,CAAA;IACjD,CAAAA,gBAAA,GAAArC,SAAS,CAAC4B,KAAK,CAAC,MAAA,IAAA,IAAAS,gBAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,gBAAA,GAAhBA,gBAAA,CAAkBhB,OAAO,MAAAgB,IAAAA,IAAAA,gBAAA,eAAzBA,gBAAA,CAA2BC,KAAK,EAAE,CAAA;IAClC,IAAI,CAAClF,aAAa,EAAE;AAAA,MAAA,IAAAmF,iBAAA,CAAA;AAClB;MACA,CAAAA,iBAAA,GAAAvC,SAAS,CAAC4B,KAAK,CAAC,MAAA,IAAA,IAAAW,iBAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,iBAAA,GAAhBA,iBAAA,CAAkBlB,OAAO,MAAAkB,IAAAA,IAAAA,iBAAA,eAAzBA,iBAAA,CAA2BC,MAAM,EAAE,CAAA;AACrC,KAAA;GACD,CAAA;AAED,EAAA,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,KAAA,EAMR;AAAA,IAAA,IALVpD,KAAK,GAAAoD,KAAA,CAALpD,KAAK;MACLqD,eAAe,GAAAD,KAAA,CAAfC,eAAe,CAAA;AAKf,IAAA,IAAIrD,KAAK,IAAIA,KAAK,KAAK,GAAG,EAAE;AAC1B;AACA,MAAA,OAAA;AACF,KAAA;AACA,IAAA,IAAID,UAAU,IAAIA,UAAU,CAACkC,MAAM,GAAG,CAAC,EAAE;AACvC;AACA;AACA,MAAA,IAAMY,WAAW,GAAGzE,KAAK,CAACqE,IAAI,CAAC1C,UAAU,CAAC,CAAA;MAC1C8C,WAAW,CAACQ,eAAe,CAAC,GAAGrD,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAALA,KAAK,GAAI,EAAE,CAAA;MAC1CgB,WAAW,CAAC6B,WAAW,CAAC,CAAA;AACxBvD,MAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAG;AAAED,QAAAA,IAAI,EAAJA,IAAI;AAAEW,QAAAA,KAAK,EAAE6C,WAAW,CAACV,IAAI,CAAC,EAAE,CAAA;AAAE,OAAC,CAAC,CAAA;AACnD,KAAC,MAAM,IAAInC,KAAK,IAAIA,KAAK,CAACsD,IAAI,EAAE,CAACrB,MAAM,GAAG,CAAC,EAAE;AAC3C;AACA;AACAjB,MAAAA,WAAW,CAAC5C,KAAK,CAACqE,IAAI,CAACzC,KAAK,CAAC,CAAC,CAAA;AAC9BV,MAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAG;AAAED,QAAAA,IAAI,EAAJA,IAAI;QAAEW,KAAK,EAAEA,KAAK,CAACsD,IAAI,EAAE,CAACpB,KAAK,CAAC,CAAC,EAAEvC,SAAS,CAAA;AAAE,OAAC,CAAC,CAAA;AAC7D;AACA,MAAA,IAAM4D,eAAe,GAAGC,IAAI,CAACC,GAAG,CAACzD,KAAK,CAACsD,IAAI,EAAE,CAACrB,MAAM,EAAEtC,SAAS,CAAC,GAAG,CAAC,CAAA;MACpEmD,iBAAiB,CAACS,eAAe,CAAC,CAAA;AACpC,KAAC,MAAM,IAAIxC,QAAQ,CAACsC,eAAe,CAAC,MAAKrD,KAAK,KAALA,IAAAA,IAAAA,KAAK,uBAALA,KAAK,CAAEsD,IAAI,EAAE,CAAE,EAAA;AAAA,MAAA,IAAAI,WAAA,CAAA;AACtD;AACA;MACA,IAAMC,QAAQ,GAAGhB,kBAAkB,CAAC;AAClC3C,QAAAA,KAAK,GAAA0D,WAAA,GAAE1D,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEsD,IAAI,EAAE,MAAA,IAAA,IAAAI,WAAA,KAAAA,KAAAA,CAAAA,GAAAA,WAAA,GAAI,EAAE;AAC1BpB,QAAAA,KAAK,EAAEe,eAAAA;AACT,OAAC,CAAC,CAAA;AACF/D,MAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,IAAAA,QAAQ,CAAG;AAAED,QAAAA,IAAI,EAAJA,IAAI;AAAEW,QAAAA,KAAK,EAAE2D,QAAAA;AAAS,OAAC,CAAC,CAAA;AACvC,KAAA;GACD,CAAA;AAED,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,KAAA,EAMP;AAAA,IAAA,IALV7D,KAAK,GAAA6D,KAAA,CAAL7D,KAAK;MACLqD,eAAe,GAAAQ,KAAA,CAAfR,eAAe,CAAA;AAKf;IACA,IAAIrD,KAAK,IAAIA,KAAK,CAACsD,IAAI,EAAE,CAACrB,MAAM,KAAK,CAAC,EAAE;MACtCa,iBAAiB,CAAC,EAAEO,eAAe,CAAC,CAAA;AACtC,KAAA;GACD,CAAA;AAED,EAAA,IAAMS,eAAe,GAAG,SAAlBA,eAAeA,CAAAC,KAAA,EAK8C;AAAA,IAAA,IAJjEC,GAAG,GAAAD,KAAA,CAAHC,GAAG;MACH/F,IAAI,GAAA8F,KAAA,CAAJ9F,IAAI;MACJgG,KAAK,GAAAF,KAAA,CAALE,KAAK;MACLZ,eAAe,GAAAU,KAAA,CAAfV,eAAe,CAAA;AAEf,IAAA,IAAIW,GAAG,KAAK,WAAW,IAAI/F,IAAI,KAAK,WAAW,IAAIA,IAAI,KAAK,QAAQ,IAAI+F,GAAG,KAAK,QAAQ,EAAE;AAAA,MAAA,IAAAE,qBAAA,CAAA;AACxF,MAAA,CAAAA,qBAAA,GAAAD,KAAK,CAACE,cAAc,MAAA,IAAA,IAAAD,qBAAA,KAAA,KAAA,CAAA,IAApBA,qBAAA,CAAAE,IAAA,CAAAH,KAAuB,CAAC,CAAA;AACxB,MAAA,IAAIlD,QAAQ,CAACsC,eAAe,CAAC,EAAE;AAC7B;AACAF,QAAAA,cAAc,CAAC;AAAEnD,UAAAA,KAAK,EAAE,EAAE;AAAEqD,UAAAA,eAAe,EAAfA,eAAAA;AAAgB,SAAC,CAAC,CAAA;AAChD,OAAC,MAAM;AACL;AACA;QACAP,iBAAiB,CAAC,EAAEO,eAAe,CAAC,CAAA;AACpCF,QAAAA,cAAc,CAAC;AAAEnD,UAAAA,KAAK,EAAE,EAAE;AAAEqD,UAAAA,eAAe,EAAfA,eAAAA;AAAgB,SAAC,CAAC,CAAA;AAChD,OAAA;KACD,MAAM,IAAIW,GAAG,KAAK,WAAW,IAAI/F,IAAI,KAAK,WAAW,EAAE;AAAA,MAAA,IAAAoG,sBAAA,CAAA;AACtD,MAAA,CAAAA,sBAAA,GAAAJ,KAAK,CAACE,cAAc,MAAA,IAAA,IAAAE,sBAAA,KAAA,KAAA,CAAA,IAApBA,sBAAA,CAAAD,IAAA,CAAAH,KAAuB,CAAC,CAAA;MACxBnB,iBAAiB,CAAC,EAAEO,eAAe,CAAC,CAAA;KACrC,MAAM,IAAIW,GAAG,KAAK,YAAY,IAAI/F,IAAI,KAAK,YAAY,EAAE;AAAA,MAAA,IAAAqG,sBAAA,CAAA;AACxD,MAAA,CAAAA,sBAAA,GAAAL,KAAK,CAACE,cAAc,MAAA,IAAA,IAAAG,sBAAA,KAAA,KAAA,CAAA,IAApBA,sBAAA,CAAAF,IAAA,CAAAH,KAAuB,CAAC,CAAA;MACxBnB,iBAAiB,CAAC,EAAEO,eAAe,CAAC,CAAA;KACrC,MAAM,IAAIW,GAAG,KAAK,GAAG,IAAI/F,IAAI,KAAK,OAAO,EAAE;AAAA,MAAA,IAAAsG,sBAAA,CAAA;AAC1C,MAAA,CAAAA,sBAAA,GAAAN,KAAK,CAACE,cAAc,MAAA,IAAA,IAAAI,sBAAA,KAAA,KAAA,CAAA,IAApBA,sBAAA,CAAAH,IAAA,CAAAH,KAAuB,CAAC,CAAA;AAC1B,KAAA;GACD,CAAA;AAED,EAAA,IAAMO,cAAc,GAAG,SAAjBA,cAAcA,GAA0B;IAC5C,IAAI,CAAC1G,aAAa,EAAE;AAAA,MAAA,IAAA2G,KAAA,CAAA;AAClB,MAAA,oBACEC,GAAA,CAAA,OAAA,EAAA;AACEC,QAAAA,MAAM,EAAE,IAAK;AACbC,QAAAA,EAAE,EAAEpD,OAAQ;AACZnC,QAAAA,IAAI,EAAEA,IAAK;QACXW,KAAK,EAAA,CAAAyE,KAAA,GAAE1E,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAVA,UAAU,GAAIgB,QAAQ,CAACoB,IAAI,CAAC,EAAE,CAAC,MAAA,IAAA,IAAAsC,KAAA,KAAAA,KAAAA,CAAAA,GAAAA,KAAA,GAAI,EAAG;QAC7CI,QAAQ,EAAA,IAAA;AAAA,OACT,CAAC,CAAA;AAEN,KAAA;AACA,IAAA,OAAO,IAAI,CAAA;GACZ,CAAA;AAED,EAAA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,GAA0B;IAC/C,IAAMC,MAAM,GAAG,EAAE,CAAA;AAAC,IAAA,IAAAC,KAAA,GAAA,SAAAA,KAAA1C,CAAAA,KAAA,EAC8B;MAAA,IAAA2C,eAAA,EAAAC,iBAAA,CAAA;AAC9C,MAAA,IAAMC,YAAY,GAAGpF,UAAU,GAAG/B,UAAU,CAAC+B,UAAU,CAAC,CAACuC,KAAK,CAAC,IAAI,EAAE,GAAGvB,QAAQ,CAACuB,KAAK,CAAC,IAAI,EAAE,CAAA;AAC7F,MAAA,IAAMR,GAAG,gBAAGsD,cAAK,CAACC,SAAS,EAAoB,CAAA;AAC/C;AACA,MAAA,IAAIC,gBAAwC,CAAA;AAC5C,MAAA,IAAIrF,QAAQ,EAAE;AACZ;QACAqF,gBAAgB,GAAGvF,UAAU,GAAG,UAAU,GAAGoB,SAAS,CAACmB,KAAK,CAAC,CAAA;AAC/D,OAAA;AACA5B,MAAAA,SAAS,CAAC6E,IAAI,CAACzD,GAAG,CAAC,CAAA;AACnBiD,MAAAA,MAAM,CAACQ,IAAI,cACTb,GAAA,CAACc,OAAO,EAAA;AACNC,QAAAA,IAAI,EAAE,CAAE;AACRC,QAAAA,UAAU,EAAEpD,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,WAAY;QAAAqD,QAAA,eAGnDjB,GAAA,CAACkB,SAAAA;AACC;AAAA,UAAAC,aAAA,CAAA;AACApH,UAAAA,SAAS,EAAEA,SAAS,IAAI6D,KAAK,KAAK,CAAE;AACpCrD,UAAAA,kBAAkB,KAAA6G,MAAA,CAAKxD,KAAK,KAAK,CAAC,GAAGtD,KAAK,IAAIC,kBAAkB,GAAG,EAAE,EAAA6G,aAAAA,CAAAA,CAAAA,MAAA,CACnExD,KAAK,GAAG,CAAC,CACR;AACHtD,UAAAA,KAAK,EAAEA,KAAM;AACb+G,UAAAA,aAAa,EAAE,IAAK;UACpBnB,EAAE,EAAA,EAAA,CAAAkB,MAAA,CAAKtE,OAAO,OAAAsE,MAAA,CAAIxD,KAAK,CAAG;AAC1B0D,UAAAA,SAAS,EAAC,QAAQ;AAClBlE,UAAAA,GAAG,EAAEA,GAAa;AAClBzC,UAAAA,IAAI,EAAEA,IAAK;AACXW,UAAAA,KAAK,EAAEmF,YAAa;AACpBc,UAAAA,aAAa,EAAE,CAAAhB,CAAAA,eAAA,GAAAlE,QAAQ,CAACuB,KAAK,CAAC,MAAA,IAAA,IAAA2C,eAAA,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAA,CAAiBhD,MAAM,IAAG,CAAC,GAAG,CAAC,GAAGS,SAAU;AAC3DpD,UAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAG4G,SAAS,EAAA;AAAA,YAAA,OAAK/C,cAAc,CAAA0C,aAAA,CAAAA,aAAA,KAAMK,SAAS,CAAA,EAAA,EAAA,EAAA;AAAE7C,cAAAA,eAAe,EAAEf,KAAAA;AAAK,aAAA,CAAE,CAAC,CAAA;WAAC;AAClF/C,UAAAA,OAAO,EAAE,SAATA,OAAOA,CAAG2G,SAAS,EAAA;YAAA,OAAK3G,QAAO,KAAPA,IAAAA,IAAAA,QAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAO,CAAAsG,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAQK,SAAS,CAAA,EAAA,EAAA,EAAA;AAAEC,cAAAA,UAAU,EAAE7D,KAAAA;AAAK,aAAA,CAAE,CAAC,CAAA;WAAC;AACvE9C,UAAAA,MAAM,EAAE,SAARA,MAAMA,CAAG0G,SAAS,EAAA;YAAA,OAAK1G,OAAM,KAANA,IAAAA,IAAAA,OAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAM,CAAAqG,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAQK,SAAS,CAAA,EAAA,EAAA,EAAA;AAAEC,cAAAA,UAAU,EAAE7D,KAAAA;AAAK,aAAA,CAAE,CAAC,CAAA;WAAC;AACrE8D,UAAAA,OAAO,EAAE,SAATA,OAAOA,CAAGF,SAAS,EAAA;AAAA,YAAA,OAAKtC,aAAa,CAAAiC,aAAA,CAAAA,aAAA,KAAMK,SAAS,CAAA,EAAA,EAAA,EAAA;AAAE7C,cAAAA,eAAe,EAAEf,KAAAA;AAAK,aAAA,CAAE,CAAC,CAAA;WAAC;AAChF+D,UAAAA,SAAS,EAAE,SAAXA,SAASA,CAAGC,aAAa,EAAA;AAAA,YAAA,OACvBxC,eAAe,CAAA+B,aAAA,CAAAA,aAAA,KAAMS,aAAa,CAAA,EAAA,EAAA,EAAA;AAAEjD,cAAAA,eAAe,EAAEf,KAAAA;AAAK,aAAA,CAAE,CAAC,CAAA;WAC9D;AACD1D,UAAAA,UAAU,EAAEA,UAAW;UACvBgB,WAAW,EAAA,CAAAsF,iBAAA,GAAE9G,KAAK,CAACqE,IAAI,CAAC7C,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,KAAA,CAAA,GAAXA,WAAW,GAAI,EAAE,CAAC,CAAC0C,KAAK,CAAC,cAAA4C,iBAAA,KAAA,KAAA,CAAA,GAAAA,iBAAA,GAAI,EAAG;AACxDqB,UAAAA,UAAU,EAAE,IAAK;AACjBpG,UAAAA,0BAA0B,EAAEA,0BAA2B;AACvDpB,UAAAA,YAAY,EAAEA,YAAa;AAC3BF,UAAAA,qBAAqB,EAAEA,qBAAsB;AAC7CiB,UAAAA,eAAe,EAAEA,eAAgB;AACjCD,UAAAA,WAAW,EAAEA,WAAY;AACzBnB,UAAAA,SAAS,EAAEA,SAAU;AACrBC,UAAAA,QAAQ,EAAEA,QAAS;AACnB6H,UAAAA,YAAY,EAAE,IAAK;AACnBC,UAAAA,IAAI,EAAEnB,gBAAiB;AACvBhF,UAAAA,IAAI,EAAEA,IAAK;AACXoG,UAAAA,kBAAkB,EAAC,SAAA;AAAS,SAAA,EACxBC,sBAAsB,CAACpG,IAAI,CAAC,CACjC,CAAA;OAACuF,EAAAA,EAAAA,CAAAA,MAAA,CAtCMtE,OAAO,EAAA,GAAA,CAAA,CAAAsE,MAAA,CAAIxD,KAAK,CAuCjB,CACX,CAAC,CAAA;KACF,CAAA;IAvDD,KAAK,IAAIA,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG3C,SAAS,EAAE2C,KAAK,EAAE,EAAA;AAAA0C,MAAAA,KAAA,CAAA1C,KAAA,CAAA,CAAA;AAAA,KAAA;AAwD9C,IAAA,OAAOyC,MAAM,CAAA;GACd,CAAA;EAED,oBACE6B,IAAA,CAACpB,OAAO,EAAAK,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAKgB,EAAAA,EAAAA,aAAa,CAAC;IAAExH,IAAI,EAAEyH,aAAa,CAACC,QAAQ;AAAE3G,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA,EAAM4G,cAAc,CAACzG,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAoF,QAAA,EAAA,cAC5FiB,IAAA,CAACpB,OAAO,EAAA;AACNyB,MAAAA,OAAO,EAAC,MAAM;AACdC,MAAAA,aAAa,EAAE7F,qBAAqB,GAAG,KAAK,GAAG,QAAS;AACxD8F,MAAAA,UAAU,EAAE9F,qBAAqB,GAAG,QAAQ,GAAGqB,SAAU;AACzD0E,MAAAA,QAAQ,EAAC,UAAU;MAAAzB,QAAA,EAAA,CAElB0B,OAAO,CAACrI,KAAK,CAAC,iBACb0F,GAAA,CAAC4C,SAAS,EAAA;AACRC,QAAAA,EAAE,EAAC,OAAO;AACVH,QAAAA,QAAQ,EAAElI,aAAc;AACxBsI,QAAAA,OAAO,EAAEhG,OAAQ;AACjBlB,QAAAA,IAAI,EAAEA,IAAK;AACXnB,QAAAA,WAAW,EAAEA,WAAY;AACzBC,QAAAA,aAAa,EAAEA,aAAc;AAAAuG,QAAAA,QAAA,EAE5B3G,KAAAA;AAAK,OACG,CACZ,eACD4H,IAAA,CAACpB,OAAO,EAAA;AAACyB,QAAAA,OAAO,EAAC,MAAM;AAACC,QAAAA,aAAa,EAAC,KAAK;AAAAvB,QAAAA,QAAA,GACxCnB,cAAc,EAAE,EAChBM,iBAAiB,EAAE,CAAA;AAAA,OACb,CAAC,CAAA;AAAA,KACH,CAAC,eAGVJ,GAAA,CAACc,OAAO,EAAA;MAACE,UAAU,EAAE+B,QAAQ,CAACpG,qBAAqB,GAAG,GAAG,GAAG,CAAC,CAAE;MAAAsE,QAAA,eAC7DjB,GAAA,CAACgD,QAAQ,EAAA;QACPjB,IAAI,EAAEkB,WAAW,CAAC;AAAE7H,UAAAA,eAAe,EAAfA,eAAe;UAAE8H,WAAW,EAAEP,OAAO,CAAC1I,QAAQ,CAAA;AAAE,SAAC,CAAE;AACvEA,QAAAA,QAAQ,EAAEA,QAAS;AACnBD,QAAAA,SAAS,EAAEA,SAAU;AACrBmB,QAAAA,WAAW,EAAEA,WAAY;AACzB4B,QAAAA,UAAU,EAAEA,UAAW;AACvBC,QAAAA,WAAW,EAAEA,WAAY;AACzBC,QAAAA,aAAa,EAAEA,aAAc;AAC7BrB,QAAAA,IAAI,EAAEA,IAAAA;OACP,CAAA;AAAC,KACK,CAAC,CAAA;AAAA,GAAA,CACH,CAAC,CAAA;AAEd,CAAC,CAAA;AAED,IAAMyG,QAAQ,gBAAG3B,cAAK,CAACyC,UAAU,CAAoCvJ,SAAS;;;;"}
1
+ {"version":3,"file":"OTPInput.js","sources":["../../../../../../../src/components/Input/OTPInput/OTPInput.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useState } from 'react';\nimport type { BaseInputProps } from '../BaseInput';\nimport { BaseInput } from '../BaseInput';\nimport { getHintType } from '../BaseInput/BaseInput';\nimport isEmpty from '~utils/lodashButBetter/isEmpty';\nimport type { FormInputOnEvent } from '~components/Form';\nimport { FormHint, FormLabel } from '~components/Form';\nimport { useFormId } from '~components/Form/useFormId';\nimport type { FormInputOnKeyDownEvent } from '~components/Form/FormTypes';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport type { StyledPropsBlade } from '~components/Box/styledProps';\nimport { getPlatformType } from '~utils';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeSize } from '~utils/makeSize';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype FormInputOnEventWithIndex = ({\n name,\n value,\n inputIndex,\n}: {\n name?: string;\n value?: string;\n inputIndex: number;\n}) => void;\n\nexport type OTPInputCommonProps = Pick<\n BaseInputProps,\n | 'label'\n | 'accessibilityLabel'\n | 'labelPosition'\n | 'labelSuffix'\n | 'labelTrailing'\n | 'validationState'\n | 'helpText'\n | 'errorText'\n | 'successText'\n | 'name'\n | 'onChange'\n | 'value'\n | 'isDisabled'\n | 'autoFocus'\n | 'keyboardReturnKeyType'\n | 'keyboardType'\n | 'placeholder'\n | 'testID'\n | 'size'\n | keyof DataAnalyticsAttribute\n> & {\n /**\n * Determines the number of input fields to show for the OTP\n * @default 6\n */\n otpLength?: 4 | 6 | 8;\n /**\n * The callback function to be invoked when all the values of the OTPInput are filled\n */\n onOTPFilled?: FormInputOnEvent;\n /**\n * Masks input characters in all the fields\n */\n isMasked?: boolean;\n /**\n * Determines what autoComplete suggestion type to show. Defaults to `oneTimeCode`.\n *\n * It's not recommended to turn this off in favor of otp input practices.\n *\n *\n * Internally it'll render platform specific attributes:\n *\n * - web: `autocomplete`\n * - iOS: `textContentType`\n * - android: `autoComplete`\n *\n */\n autoCompleteSuggestionType?: Extract<\n BaseInputProps['autoCompleteSuggestionType'],\n 'none' | 'oneTimeCode'\n >;\n /**\n * The callback function to be invoked when one of the input fields gets focus\n */\n onFocus?: FormInputOnEventWithIndex;\n /**\n * The callback function to be invoked when one of the input fields is blurred\n */\n onBlur?: FormInputOnEventWithIndex;\n} & StyledPropsBlade;\n\n/*\n Mandatory accessibilityLabel prop when label is not provided\n*/\ntype OTPInputPropsWithA11yLabel = {\n /**\n * Label to be shown for the input field\n */\n label?: undefined;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel: string;\n};\n\n/*\n Optional accessibilityLabel prop when label is provided\n*/\ntype OTPInputPropsWithLabel = {\n /**\n * Label to be shown for the input field\n */\n label: string;\n /**\n * Accessibility label for the input\n */\n accessibilityLabel?: string;\n};\n\ntype OTPInputProps = (OTPInputPropsWithA11yLabel | OTPInputPropsWithLabel) & OTPInputCommonProps;\n\nconst isReactNative = getPlatformType() === 'react-native';\n\n/**\n * Converts a string value of otp to array if passed otherwise returns an array of 6 empty strings\n */\nconst otpToArray = (code?: string): string[] => code?.split('') ?? Array(6).fill('');\n\n/**\n * OTPInput component can be used for accepting OTPs sent to users for authentication/verification purposes.\n *\n * ## Usage\n *\n * ```tsx\n * <OTPInput\n * label=\"Enter OTP\"\n * name=\"otpInput\"\n * onChange={({ name, value }): void => console.log({ name, value })}\n * onOTPFilled={({ name, value }): void => console.log({ name, value })}\n * />\n * ```\n */\nconst _OTPInput: React.ForwardRefRenderFunction<HTMLInputElement[], OTPInputProps> = (\n {\n autoFocus,\n errorText,\n helpText,\n isDisabled,\n keyboardReturnKeyType,\n keyboardType = 'decimal',\n label,\n accessibilityLabel,\n labelPosition,\n labelSuffix,\n labelTrailing,\n name,\n onChange,\n onFocus,\n onBlur,\n onOTPFilled,\n otpLength = 6,\n placeholder,\n successText,\n validationState,\n value: inputValue,\n isMasked,\n autoCompleteSuggestionType = 'oneTimeCode',\n testID,\n size = 'medium',\n ...rest\n },\n incomingRef,\n) => {\n const inputRefs: React.RefObject<HTMLInputElement>[] = [];\n const [otpValue, setOtpValue] = useState<string[]>(otpToArray(inputValue));\n const [inputType, setInputType] = useState<('password' | undefined)[]>([]);\n const isLabelLeftPositioned = labelPosition === 'left';\n const { inputId, helpTextId, errorTextId, successTextId } = useFormId('otp');\n\n useImperativeHandle(\n incomingRef,\n () => {\n return inputRefs.map((ref) => ref.current!);\n },\n [inputRefs],\n );\n\n useEffect(() => {\n // Effect for calling `onOTPFilled` callback\n if (inputValue && inputValue.length >= otpLength) {\n // callback for when the OTPInput is controlled and inputValue reaches the same or greater length as the otpLength\n onOTPFilled?.({ value: inputValue.slice(0, otpLength), name });\n } else if (!inputValue && otpValue.join('').length >= otpLength) {\n // callback for when the OTPInput is uncontrolled and otpValue stored in state reaches the same or greater length as the otpLength\n onOTPFilled?.({ value: otpValue.slice(0, otpLength).join(''), name });\n }\n }, [otpValue, otpLength, name, inputValue, onOTPFilled]);\n\n useEffect(() => {\n /* We want to disable the password managers for OTPInput when isMasked is set.\n The issue with only setting autocomplete='off' is that its not an enforcement but a suggestion to the browser to follow.\n This workaround unsets type on first render and sets it to `password` only once a value is entered by the user.\n */\n otpValue.forEach((otp, index) => {\n // Set inputType as 'password' only when a value is entered when isMasked is set\n if (!isEmpty(otp) && !inputType[index] && isMasked) {\n const newInputType = Array.from(inputType);\n newInputType[index] = 'password';\n setInputType(newInputType);\n }\n // Cleanup the inputType array whenever the value is empty but inputType[index] is set\n if (isEmpty(otp) && inputType[index]) {\n const newInputType = Array.from(inputType);\n newInputType[index] = undefined;\n setInputType(newInputType);\n }\n });\n }, [otpValue, inputType, isMasked]);\n\n /**\n * Changes the value of the otp at a given index and updates the otpValue stored in state\n *\n * @param {{ value: string; index: number }} { value, index }\n * @returns {string} updated otpValue\n */\n const setOtpValueByIndex = ({ value, index }: { value: string; index: number }): string => {\n const newOtpValue = Array.from(otpValue);\n newOtpValue[index] = value;\n setOtpValue(newOtpValue);\n return newOtpValue.join('');\n };\n\n /**\n * Sets focus to the desired otp input by index\n *\n * @param {number} index the index of the otp input to be focused\n */\n const focusOnOtpByIndex = (index: number): void => {\n inputRefs[index]?.current?.focus();\n if (!isReactNative) {\n // React Native doesn't support imperatively selecting the value of input\n inputRefs[index]?.current?.select();\n }\n };\n\n const handleOnChange = ({\n value,\n currentOtpIndex,\n }: {\n value?: string;\n currentOtpIndex: number;\n }): void => {\n if (value && value === ' ') {\n // React native doesn't support `event.preventDefault()` hence have to add this check to ensure that empty space is not allowed\n return;\n }\n if (inputValue && inputValue.length > 0) {\n // When OTPInput is controlled, set the otpValue as the consumer passed `inputValue` and append the value on current index based on user's input.\n // User's input will not reflect on the otp but will trigger `onChange` callback with the user's input appended so that the consumer can take appropriate action.\n const newOtpValue = Array.from(inputValue);\n newOtpValue[currentOtpIndex] = value ?? '';\n setOtpValue(newOtpValue);\n onChange?.({ name, value: newOtpValue.join('') });\n } else if (value && value.trim().length > 1) {\n // When the entered value is more that 1 character (when value is pasted), set the otpValue to the newly received value.\n // Could have used `onPaste` for web to achieve this but 1. React Native doesn't support onPaste and 2. Safari's autofill on web doesn't trigger onPaste\n setOtpValue(Array.from(value));\n onChange?.({ name, value: value.trim().slice(0, otpLength) });\n // Move focus to the last filled input box after paste\n const lastFilledIndex = Math.min(value.trim().length, otpLength) - 1;\n focusOnOtpByIndex(lastFilledIndex);\n } else if (otpValue[currentOtpIndex] !== value?.trim()) {\n // Set the value at the current index to the entered value\n // only as long as its not the same as the already existing value (this prevents `onChange` being triggered unnecessarily)\n const newValue = setOtpValueByIndex({\n value: value?.trim() ?? '',\n index: currentOtpIndex,\n });\n onChange?.({ name, value: newValue });\n }\n };\n\n const handleOnInput = ({\n value,\n currentOtpIndex,\n }: {\n value?: string;\n currentOtpIndex: number;\n }): void => {\n // Moves focus to next input whenever a value is entered in the current input\n if (value && value.trim().length === 1) {\n focusOnOtpByIndex(++currentOtpIndex);\n }\n };\n\n const handleOnKeyDown = ({\n key,\n code,\n event,\n currentOtpIndex,\n }: FormInputOnKeyDownEvent & { currentOtpIndex: number }): void => {\n if (key === 'Backspace' || code === 'Backspace' || code === 'Delete' || key === 'Delete') {\n event.preventDefault?.();\n if (otpValue[currentOtpIndex]) {\n // Clear the value at the current index if value exists\n handleOnChange({ value: '', currentOtpIndex });\n } else {\n // Move focus to the previous input if the current input is empty\n // and clear the value at the new active (previous) index\n focusOnOtpByIndex(--currentOtpIndex);\n handleOnChange({ value: '', currentOtpIndex });\n }\n } else if (key === 'ArrowLeft' || code === 'ArrowLeft') {\n event.preventDefault?.();\n focusOnOtpByIndex(--currentOtpIndex);\n } else if (key === 'ArrowRight' || code === 'ArrowRight') {\n event.preventDefault?.();\n focusOnOtpByIndex(++currentOtpIndex);\n } else if (key === ' ' || code === 'Space') {\n event.preventDefault?.();\n }\n };\n\n const getHiddenInput = (): React.ReactNode => {\n if (!isReactNative) {\n return (\n <input\n hidden={true}\n id={inputId}\n name={name}\n value={inputValue ?? otpValue.join('') ?? ''}\n readOnly\n />\n );\n }\n return null;\n };\n\n const getOTPInputFields = (): React.ReactNode => {\n const inputs = [];\n for (let index = 0; index < otpLength; index++) {\n const currentValue = inputValue ? otpToArray(inputValue)[index] || '' : otpValue[index] || '';\n const ref = React.createRef<HTMLInputElement>();\n // if an inputValue is passed (controlled) and isMasked is set, inputType will always be password\n let currentInputType: 'password' | undefined;\n if (isMasked) {\n // if inputValue is passed (controlled component) then the inputType will always be password\n currentInputType = inputValue ? 'password' : inputType[index];\n }\n inputRefs.push(ref);\n inputs.push(\n <BaseBox\n flex={1}\n marginLeft={index == 0 ? 'spacing.0' : 'spacing.3'}\n key={`${inputId}-${index}`}\n >\n <BaseInput\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus && index === 0}\n accessibilityLabel={`${index === 0 ? label || accessibilityLabel : ''} character ${\n index + 1\n }`}\n label={label}\n hideLabelText={true}\n id={`${inputId}-${index}`}\n textAlign=\"center\"\n ref={ref as never}\n name={name}\n value={currentValue}\n maxCharacters={otpValue[index]?.length > 0 ? 1 : undefined}\n onChange={(formEvent) => handleOnChange({ ...formEvent, currentOtpIndex: index })}\n onFocus={(formEvent) => onFocus?.({ ...formEvent, inputIndex: index })}\n onBlur={(formEvent) => onBlur?.({ ...formEvent, inputIndex: index })}\n onInput={(formEvent) => handleOnInput({ ...formEvent, currentOtpIndex: index })}\n onKeyDown={(keyboardEvent) =>\n handleOnKeyDown({ ...keyboardEvent, currentOtpIndex: index })\n }\n isDisabled={isDisabled}\n placeholder={Array.from(placeholder ?? '')[index] ?? ''}\n isRequired={true}\n autoCompleteSuggestionType={autoCompleteSuggestionType}\n keyboardType={keyboardType}\n keyboardReturnKeyType={keyboardReturnKeyType}\n validationState={validationState}\n successText={successText}\n errorText={errorText}\n helpText={helpText}\n hideFormHint={true}\n type={currentInputType}\n size={size}\n valueComponentType=\"heading\"\n {...makeAnalyticsAttribute(rest)}\n />\n </BaseBox>,\n );\n }\n return inputs;\n };\n\n return (\n <BaseBox {...metaAttribute({ name: MetaConstants.OTPInput, testID })} {...getStyledProps(rest)}>\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n position=\"relative\"\n >\n {Boolean(label) && (\n <FormLabel\n as=\"label\"\n position={labelPosition}\n htmlFor={inputId}\n size={size}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n >\n {label}\n </FormLabel>\n )}\n <BaseBox display=\"flex\" flexDirection=\"row\">\n {getHiddenInput()}\n {getOTPInputFields()}\n </BaseBox>\n </BaseBox>\n {/* the magic number 136 is basically max-width of label i.e 120 and then right margin i.e 16 which is the spacing between label and input field */}\n {/*Refer `BaseInput`'s implementation of FormHint which uses similar logic */}\n <BaseBox marginLeft={makeSize(isLabelLeftPositioned ? 136 : 0)}>\n <FormHint\n type={getHintType({ validationState, hasHelpText: Boolean(helpText) })}\n helpText={helpText}\n errorText={errorText}\n successText={successText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n successTextId={successTextId}\n size={size}\n />\n </BaseBox>\n </BaseBox>\n );\n};\n\nconst OTPInput = React.forwardRef<HTMLInputElement[], OTPInputProps>(_OTPInput);\n\nexport type { OTPInputProps };\nexport { OTPInput };\n"],"names":["isReactNative","getPlatformType","otpToArray","code","_code$split","split","Array","fill","_OTPInput","_ref","incomingRef","autoFocus","errorText","helpText","isDisabled","keyboardReturnKeyType","_ref$keyboardType","keyboardType","label","accessibilityLabel","labelPosition","labelSuffix","labelTrailing","name","onChange","onFocus","onBlur","onOTPFilled","_ref$otpLength","otpLength","placeholder","successText","validationState","inputValue","value","isMasked","_ref$autoCompleteSugg","autoCompleteSuggestionType","testID","_ref$size","size","rest","_objectWithoutProperties","_excluded","inputRefs","_useState","useState","_useState2","_slicedToArray","otpValue","setOtpValue","_useState3","_useState4","inputType","setInputType","isLabelLeftPositioned","_useFormId","useFormId","inputId","helpTextId","errorTextId","successTextId","useImperativeHandle","map","ref","current","useEffect","length","slice","join","forEach","otp","index","isEmpty","newInputType","from","undefined","setOtpValueByIndex","_ref2","newOtpValue","focusOnOtpByIndex","_inputRefs$index","focus","_inputRefs$index2","select","handleOnChange","_ref3","currentOtpIndex","trim","lastFilledIndex","Math","min","_value$trim","newValue","handleOnInput","_ref4","handleOnKeyDown","_ref5","key","event","_event$preventDefault","preventDefault","call","_event$preventDefault2","_event$preventDefault3","_event$preventDefault4","getHiddenInput","_ref6","_jsx","hidden","id","readOnly","getOTPInputFields","inputs","_loop","_otpValue$index","_Array$from$index","currentValue","React","createRef","currentInputType","push","BaseBox","flex","marginLeft","children","BaseInput","_objectSpread","concat","hideLabelText","textAlign","maxCharacters","formEvent","inputIndex","onInput","onKeyDown","keyboardEvent","isRequired","hideFormHint","type","valueComponentType","makeAnalyticsAttribute","_jsxs","metaAttribute","MetaConstants","OTPInput","getStyledProps","display","flexDirection","alignItems","position","Boolean","FormLabel","as","htmlFor","makeSize","FormHint","getHintType","hasHelpText","forwardRef"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
2
- import { __exports as cloneDeep$1 } from '../../../../../_virtual/cloneDeep2.js';
2
+ import { __exports as cloneDeep$1 } from '../../../../../_virtual/cloneDeep4.js';
3
3
  import '../../../../../_virtual/cloneDeepWith.js';
4
4
  import { __exports as cloneDeepWith } from '../../../../../_virtual/cloneDeepWith2.js';
5
5
 
@@ -1,9 +1,9 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
2
2
  import { __exports as matches$1 } from '../../../../../_virtual/matches2.js';
3
3
  import '../../../../../_virtual/isMatch.js';
4
- import '../../../../../_virtual/cloneDeep3.js';
4
+ import '../../../../../_virtual/cloneDeep.js';
5
5
  import { __exports as isMatch } from '../../../../../_virtual/isMatch2.js';
6
- import { __exports as cloneDeep } from '../../../../../_virtual/cloneDeep4.js';
6
+ import { __exports as cloneDeep } from '../../../../../_virtual/cloneDeep2.js';
7
7
 
8
8
  (function (exports) {
9
9
  'use strict';
@@ -2,12 +2,12 @@ import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelper
2
2
  import { __exports as matchesProperty$1 } from '../../../../../_virtual/matchesProperty2.js';
3
3
  import '../../../../../_virtual/isMatch.js';
4
4
  import '../../../../../_virtual/toKey.js';
5
- import '../../../../../_virtual/cloneDeep.js';
5
+ import '../../../../../_virtual/cloneDeep3.js';
6
6
  import '../../../../../_virtual/get.js';
7
7
  import '../../../../../_virtual/has.js';
8
8
  import { __exports as isMatch } from '../../../../../_virtual/isMatch2.js';
9
9
  import { __exports as toKey } from '../../../../../_virtual/toKey2.js';
10
- import { __exports as cloneDeep } from '../../../../../_virtual/cloneDeep2.js';
10
+ import { __exports as cloneDeep } from '../../../../../_virtual/cloneDeep4.js';
11
11
  import { __exports as get } from '../../../../../_virtual/get2.js';
12
12
  import { __exports as has } from '../../../../../_virtual/has2.js';
13
13
 
@@ -1,5 +1,5 @@
1
1
  import { getDefaultExportFromCjs } from '../../../../_virtual/_commonjsHelpers.js';
2
- import { __exports as cloneDeep$1 } from '../../../../_virtual/cloneDeep4.js';
2
+ import { __exports as cloneDeep$1 } from '../../../../_virtual/cloneDeep2.js';
3
3
  import '../../../../_virtual/cloneDeepWith3.js';
4
4
  import { __exports as cloneDeepWith } from '../../../../_virtual/cloneDeepWith4.js';
5
5
 
@@ -1,2 +1,2 @@
1
- import '../node_modules/es-toolkit/dist/compat/object/cloneDeep.js';
1
+ import '../node_modules/es-toolkit/dist/object/cloneDeep.js';
2
2
  //# sourceMappingURL=cloneDeep.js.map
@@ -1,2 +1,2 @@
1
- import '../node_modules/es-toolkit/dist/object/cloneDeep.js';
1
+ import '../node_modules/es-toolkit/dist/compat/object/cloneDeep.js';
2
2
  //# sourceMappingURL=cloneDeep3.js.map
@@ -314,6 +314,7 @@ var _ColorInput = function _ColorInput(_ref, ref) {
314
314
  necessityIndicator: necessityIndicator,
315
315
  children: label
316
316
  }), /*#__PURE__*/jsxs(StyledColorInput, {
317
+ $size: size,
317
318
  children: [/*#__PURE__*/jsx(BaseBox, {
318
319
  flex: "1",
319
320
  minWidth: "0px",
@@ -1 +1 @@
1
- {"version":3,"file":"ColorInput.web.js","sources":["../../../../../../../src/components/Input/ColorInput/ColorInput.web.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport type { ColorInputProps, ColorInputValue } from './types';\nimport { ColorSwatch } from './ColorSwatch.web';\nimport type { ColorSwatchRef } from './ColorSwatch.web';\nimport { StyledColorInput, COLOR_INPUT_ROW_CLASSNAME } from './StyledColorInput';\nimport { DEFAULT_COLOR_VALUE, isValidHex, isPartialHex, isValidOpacity } from './ColorInput.utils';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\nimport { BaseInput, getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { FormLabel } from '~components/Form/FormLabel';\nimport { FormHint } from '~components/Form/FormHint';\nimport { useFormId } from '~components/Form/useFormId';\nimport { useControllableState } from '~utils/useControllable';\nimport { useId } from '~utils/useId';\nimport { useTheme } from '~components/BladeProvider';\nimport { useBreakpoint } from '~utils';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeSize } from '~utils/makeSize';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport type { BladeElementRef } from '~utils/types';\nimport type { FormInputOnEvent } from '~components/Form';\nimport type { FormInputOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { throwBladeError } from '~utils/logger';\n\nconst _ColorInput: React.ForwardRefRenderFunction<BladeElementRef, ColorInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n size = 'medium',\n name,\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n showOpacity = true,\n validationState = 'none',\n helpText,\n errorText,\n successText,\n necessityIndicator,\n isRequired,\n isDisabled = false,\n autoFocus,\n testID,\n ...rest\n },\n ref,\n) => {\n if (__DEV__) {\n const initialOpacity = value?.opacity ?? defaultValue?.opacity;\n if (\n initialOpacity !== undefined &&\n (!Number.isInteger(initialOpacity) || initialOpacity < 0 || initialOpacity > 100)\n ) {\n throwBladeError({\n message: `ColorInput: opacity must be an integer between 0 and 100, received ${initialOpacity}`,\n moduleName: 'ColorInput',\n });\n }\n }\n\n const [colorValue, setColorValue] = useControllableState<ColorInputValue>({\n value,\n defaultValue: defaultValue ?? DEFAULT_COLOR_VALUE,\n onChange: (newValue) => {\n onChange?.({ name, value: newValue });\n },\n shouldUpdate: (prev, next) => prev.hex !== next.hex || prev.opacity !== next.opacity,\n });\n\n const [opacityDisplayValue, setOpacityDisplayValue] = useState<string>(() =>\n String(value?.opacity ?? defaultValue?.opacity ?? DEFAULT_COLOR_VALUE.opacity),\n );\n\n // Local display state for the hex input so partial typing (1–5 chars) stays local\n // and doesn't corrupt the color model until exactly 6 valid chars are present.\n const [hexDisplayValue, setHexDisplayValue] = useState<string>(() =>\n (value?.hex ?? defaultValue?.hex ?? DEFAULT_COLOR_VALUE.hex).replace(/^#/, ''),\n );\n\n // Focus boundary tracking: fire onFocus/onBlur once when focus enters/leaves\n // the composite widget, not on each internal input transition.\n const isFocusedRef = useRef(false);\n const blurTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Store callbacks and current values in refs so handlers stay referentially stable\n // and never capture stale closures across async timeouts.\n const onFocusRef = useRef(onFocus);\n useEffect(() => {\n onFocusRef.current = onFocus;\n }, [onFocus]);\n const onBlurRef = useRef(onBlur);\n useEffect(() => {\n onBlurRef.current = onBlur;\n }, [onBlur]);\n const colorValueRef = useRef(colorValue);\n useEffect(() => {\n colorValueRef.current = colorValue;\n }, [colorValue]);\n const nameRef = useRef(name);\n useEffect(() => {\n nameRef.current = name;\n }, [name]);\n\n // Sync display value when the color model changes from an external source.\n // Skip while focused so a controlled parent updating value mid-edit doesn't clobber partial input.\n useEffect(() => {\n if (!isFocusedRef.current) {\n setHexDisplayValue(colorValue.hex.replace(/^#/, ''));\n }\n }, [colorValue.hex]);\n\n useEffect(() => {\n return () => {\n if (blurTimeoutRef.current !== null) clearTimeout(blurTimeoutRef.current);\n };\n }, []);\n\n // Stable focus handler — reads from refs so it delivers the current colorValue to onFocus.\n const handleInputFocus = useCallback(() => {\n if (blurTimeoutRef.current !== null) {\n clearTimeout(blurTimeoutRef.current);\n blurTimeoutRef.current = null;\n }\n if (!isFocusedRef.current) {\n isFocusedRef.current = true;\n onFocusRef.current?.({ name: nameRef.current, value: colorValueRef.current });\n }\n }, []);\n\n // Stable blur handler — accepts the committed ColorInputValue to pass to onBlur.\n const handleInputBlur = useCallback((blurValue: ColorInputValue) => {\n blurTimeoutRef.current = setTimeout(() => {\n blurTimeoutRef.current = null;\n isFocusedRef.current = false;\n onBlurRef.current?.({ name: nameRef.current, value: blurValue });\n }, 0);\n }, []);\n\n const hexInputRef = useRef<BladeElementRef>(null);\n const swatchRef = useRef<ColorSwatchRef>(null);\n const { inputId, helpTextId, errorTextId, successTextId } = useFormId('color-input');\n const idBase = useId('color-input');\n const labelId = `${idBase}-label`;\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isLabelLeftPositioned = labelPosition === 'left' && matchedDeviceType === 'desktop';\n\n const handleHexChange = useCallback(\n ({ value: inputValue }: { name?: string; value?: string }) => {\n // Strip a leading '#' and trim whitespace so pasting '#FF5733 ' or typing '#' works naturally.\n const raw = (inputValue ?? '').replace(/^#/, '').trim().toUpperCase();\n if (raw === '') {\n setHexDisplayValue('');\n return;\n }\n if (isValidHex(raw) || isPartialHex(raw)) {\n setHexDisplayValue(raw);\n }\n if (isValidHex(raw)) {\n setColorValue((prev) => ({ ...prev, hex: `#${raw}` }));\n }\n },\n [setColorValue],\n );\n\n const handleOpacityChange = useCallback(\n ({ value: inputValue }: { name?: string; value?: string }) => {\n const raw = inputValue ?? '';\n setOpacityDisplayValue(raw);\n\n if (raw === '') {\n return;\n }\n\n // Reject strings with non-digit characters (e.g. '5a', '100x') so parseInt\n // can't silently truncate and commit a partial value.\n if (!/^\\d+$/.test(raw)) {\n return;\n }\n\n const num = parseInt(raw, 10);\n if (!Number.isNaN(num) && isValidOpacity(num)) {\n setColorValue((prev) => ({ ...prev, opacity: num }));\n }\n },\n [setColorValue],\n );\n\n const handleOpacityBlur = useCallback<FormInputOnEvent>(\n (args) => {\n const raw = args.value ?? '';\n const num = parseInt(raw, 10);\n if (raw === '' || !/^\\d+$/.test(raw) || Number.isNaN(num) || !isValidOpacity(num)) {\n setOpacityDisplayValue(String(colorValue.opacity));\n }\n handleInputBlur(colorValue);\n },\n [colorValue, handleInputBlur],\n );\n\n const handleOpacityKeyDown = useCallback(\n ({ key, event }: FormInputOnKeyDownEvent) => {\n if (key === 'ArrowUp') {\n event.preventDefault();\n setColorValue((prev) => {\n const next = Math.min(prev.opacity + 1, 100);\n if (next !== prev.opacity) {\n setOpacityDisplayValue(String(next));\n return { ...prev, opacity: next };\n }\n return prev;\n });\n } else if (key === 'ArrowDown') {\n event.preventDefault();\n setColorValue((prev) => {\n const next = Math.max(prev.opacity - 1, 0);\n if (next !== prev.opacity) {\n setOpacityDisplayValue(String(next));\n return { ...prev, opacity: next };\n }\n return prev;\n });\n }\n },\n [setColorValue],\n );\n\n const handleSwatchChange = useCallback(\n (hex: string) => {\n // hex arrives with '#' prefix from ColorSwatch; strip for display, keep for model.\n setHexDisplayValue(hex.replace(/^#/, ''));\n setColorValue((prev) => ({ ...prev, hex }));\n },\n [setColorValue],\n );\n\n // Hex-specific blur: reset partial display to last committed valid value.\n const handleHexInputBlur = useCallback(() => {\n setHexDisplayValue(colorValue.hex.replace(/^#/, ''));\n handleInputBlur(colorValue);\n }, [colorValue, handleInputBlur]);\n\n // Sync opacityDisplayValue when controlled value changes externally.\n // Skip while focused so a controlled parent updating value mid-edit doesn't clobber partial input.\n useEffect(() => {\n if (!isFocusedRef.current) {\n setOpacityDisplayValue(String(colorValue.opacity));\n }\n }, [colorValue.opacity]);\n\n const willRenderHintText =\n Boolean(helpText) ||\n (validationState === 'success' && Boolean(successText)) ||\n (validationState === 'error' && Boolean(errorText));\n\n return (\n <BaseBox\n ref={ref as React.Ref<HTMLDivElement>}\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.ColorInput, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n >\n {label && (\n <FormLabel\n as=\"label\"\n position={labelPosition}\n id={labelId}\n htmlFor={inputId}\n size={size}\n necessityIndicator={necessityIndicator}\n >\n {label}\n </FormLabel>\n )}\n\n <StyledColorInput>\n <BaseBox flex=\"1\" minWidth=\"0px\" className={COLOR_INPUT_ROW_CLASSNAME}>\n <BaseInput\n ref={hexInputRef}\n id={inputId}\n label={label}\n hideLabelText\n accessibilityLabel={accessibilityLabel ?? label ?? 'Color hex code'}\n labelId={labelId}\n size={size}\n placeholder=\"000000\"\n value={hexDisplayValue}\n onChange={handleHexChange}\n onFocus={handleInputFocus}\n onBlur={handleHexInputBlur}\n isDisabled={isDisabled}\n isRequired={isRequired}\n validationState={validationState}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n maxCharacters={6}\n hideFormHint\n textAlign=\"left\"\n leadingInteractionElement={\n <ColorSwatch\n ref={swatchRef}\n color={colorValue.hex}\n size={size}\n isDisabled={isDisabled}\n onChange={handleSwatchChange}\n onFocus={handleInputFocus}\n onBlur={() => handleInputBlur(colorValue)}\n />\n }\n />\n </BaseBox>\n\n {showOpacity && (\n <BaseBox width=\"80px\" flexShrink={0} className={COLOR_INPUT_ROW_CLASSNAME}>\n <BaseInput\n id={`${inputId}-opacity`}\n label=\"Opacity\"\n hideLabelText\n accessibilityLabel=\"Color opacity percentage\"\n size={size}\n placeholder=\"100\"\n value={opacityDisplayValue}\n onChange={handleOpacityChange}\n onKeyDown={handleOpacityKeyDown}\n onFocus={handleInputFocus}\n onBlur={handleOpacityBlur}\n isDisabled={isDisabled}\n validationState={validationState}\n suffix=\"%\"\n textAlign=\"right\"\n hideFormHint\n />\n </BaseBox>\n )}\n </StyledColorInput>\n </BaseBox>\n\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n >\n <FormHint\n type={getHintType({ validationState, hasHelpText: Boolean(helpText) })}\n helpText={helpText}\n errorText={errorText}\n successText={successText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n successTextId={successTextId}\n size={size}\n />\n </BaseBox>\n )}\n </BaseBox>\n );\n};\n\nconst ColorInput = assignWithoutSideEffects(React.forwardRef(_ColorInput), {\n displayName: 'ColorInput',\n componentId: 'ColorInput',\n});\n\nexport { ColorInput };\n"],"names":["_ColorInput","_ref","ref","_ref7","label","accessibilityLabel","_ref$labelPosition","labelPosition","_ref$size","size","name","value","defaultValue","onChange","onFocus","onBlur","_ref$showOpacity","showOpacity","_ref$validationState","validationState","helpText","errorText","successText","necessityIndicator","isRequired","_ref$isDisabled","isDisabled","autoFocus","testID","rest","_objectWithoutProperties","_excluded","_value$opacity","initialOpacity","opacity","undefined","Number","isInteger","throwBladeError","message","concat","moduleName","_useControllableState","useControllableState","DEFAULT_COLOR_VALUE","newValue","shouldUpdate","prev","next","hex","_useControllableState2","_slicedToArray","colorValue","setColorValue","_useState","useState","_ref2","_value$opacity2","String","_useState2","opacityDisplayValue","setOpacityDisplayValue","_useState3","_ref3","_value$hex","replace","_useState4","hexDisplayValue","setHexDisplayValue","isFocusedRef","useRef","blurTimeoutRef","onFocusRef","useEffect","current","onBlurRef","colorValueRef","nameRef","clearTimeout","handleInputFocus","useCallback","_onFocusRef$current","call","handleInputBlur","blurValue","setTimeout","_onBlurRef$current","hexInputRef","swatchRef","_useFormId","useFormId","inputId","helpTextId","errorTextId","successTextId","idBase","useId","labelId","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isLabelLeftPositioned","handleHexChange","_ref4","inputValue","raw","trim","toUpperCase","isValidHex","isPartialHex","_objectSpread","handleOpacityChange","_ref5","test","num","parseInt","isNaN","isValidOpacity","handleOpacityBlur","args","_args$value","handleOpacityKeyDown","_ref6","key","event","preventDefault","Math","min","max","handleSwatchChange","handleHexInputBlur","willRenderHintText","Boolean","_jsxs","BaseBox","display","flexDirection","width","metaAttribute","MetaConstants","ColorInput","getStyledProps","makeAnalyticsAttribute","children","alignItems","_jsx","FormLabel","as","position","id","htmlFor","StyledColorInput","flex","minWidth","className","COLOR_INPUT_ROW_CLASSNAME","BaseInput","hideLabelText","placeholder","maxCharacters","hideFormHint","textAlign","leadingInteractionElement","ColorSwatch","color","flexShrink","onKeyDown","suffix","marginLeft","makeSize","formHintLeftLabelMarginLeft","FormHint","type","getHintType","hasHelpText","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
1
+ {"version":3,"file":"ColorInput.web.js","sources":["../../../../../../../src/components/Input/ColorInput/ColorInput.web.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport type { ColorInputProps, ColorInputValue } from './types';\nimport { ColorSwatch } from './ColorSwatch.web';\nimport type { ColorSwatchRef } from './ColorSwatch.web';\nimport { StyledColorInput, COLOR_INPUT_ROW_CLASSNAME } from './StyledColorInput';\nimport { DEFAULT_COLOR_VALUE, isValidHex, isPartialHex, isValidOpacity } from './ColorInput.utils';\nimport { formHintLeftLabelMarginLeft } from '~components/Input/BaseInput/baseInputTokens';\nimport { BaseInput, getHintType } from '~components/Input/BaseInput/BaseInput';\nimport { FormLabel } from '~components/Form/FormLabel';\nimport { FormHint } from '~components/Form/FormHint';\nimport { useFormId } from '~components/Form/useFormId';\nimport { useControllableState } from '~utils/useControllable';\nimport { useId } from '~utils/useId';\nimport { useTheme } from '~components/BladeProvider';\nimport { useBreakpoint } from '~utils';\nimport BaseBox from '~components/Box/BaseBox';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { makeSize } from '~utils/makeSize';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport type { BladeElementRef } from '~utils/types';\nimport type { FormInputOnEvent } from '~components/Form';\nimport type { FormInputOnKeyDownEvent } from '~components/Form/FormTypes';\nimport { throwBladeError } from '~utils/logger';\n\nconst _ColorInput: React.ForwardRefRenderFunction<BladeElementRef, ColorInputProps> = (\n {\n label,\n accessibilityLabel,\n labelPosition = 'top',\n size = 'medium',\n name,\n value,\n defaultValue,\n onChange,\n onFocus,\n onBlur,\n showOpacity = true,\n validationState = 'none',\n helpText,\n errorText,\n successText,\n necessityIndicator,\n isRequired,\n isDisabled = false,\n autoFocus,\n testID,\n ...rest\n },\n ref,\n) => {\n if (__DEV__) {\n const initialOpacity = value?.opacity ?? defaultValue?.opacity;\n if (\n initialOpacity !== undefined &&\n (!Number.isInteger(initialOpacity) || initialOpacity < 0 || initialOpacity > 100)\n ) {\n throwBladeError({\n message: `ColorInput: opacity must be an integer between 0 and 100, received ${initialOpacity}`,\n moduleName: 'ColorInput',\n });\n }\n }\n\n const [colorValue, setColorValue] = useControllableState<ColorInputValue>({\n value,\n defaultValue: defaultValue ?? DEFAULT_COLOR_VALUE,\n onChange: (newValue) => {\n onChange?.({ name, value: newValue });\n },\n shouldUpdate: (prev, next) => prev.hex !== next.hex || prev.opacity !== next.opacity,\n });\n\n const [opacityDisplayValue, setOpacityDisplayValue] = useState<string>(() =>\n String(value?.opacity ?? defaultValue?.opacity ?? DEFAULT_COLOR_VALUE.opacity),\n );\n\n // Local display state for the hex input so partial typing (1–5 chars) stays local\n // and doesn't corrupt the color model until exactly 6 valid chars are present.\n const [hexDisplayValue, setHexDisplayValue] = useState<string>(() =>\n (value?.hex ?? defaultValue?.hex ?? DEFAULT_COLOR_VALUE.hex).replace(/^#/, ''),\n );\n\n // Focus boundary tracking: fire onFocus/onBlur once when focus enters/leaves\n // the composite widget, not on each internal input transition.\n const isFocusedRef = useRef(false);\n const blurTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Store callbacks and current values in refs so handlers stay referentially stable\n // and never capture stale closures across async timeouts.\n const onFocusRef = useRef(onFocus);\n useEffect(() => {\n onFocusRef.current = onFocus;\n }, [onFocus]);\n const onBlurRef = useRef(onBlur);\n useEffect(() => {\n onBlurRef.current = onBlur;\n }, [onBlur]);\n const colorValueRef = useRef(colorValue);\n useEffect(() => {\n colorValueRef.current = colorValue;\n }, [colorValue]);\n const nameRef = useRef(name);\n useEffect(() => {\n nameRef.current = name;\n }, [name]);\n\n // Sync display value when the color model changes from an external source.\n // Skip while focused so a controlled parent updating value mid-edit doesn't clobber partial input.\n useEffect(() => {\n if (!isFocusedRef.current) {\n setHexDisplayValue(colorValue.hex.replace(/^#/, ''));\n }\n }, [colorValue.hex]);\n\n useEffect(() => {\n return () => {\n if (blurTimeoutRef.current !== null) clearTimeout(blurTimeoutRef.current);\n };\n }, []);\n\n // Stable focus handler — reads from refs so it delivers the current colorValue to onFocus.\n const handleInputFocus = useCallback(() => {\n if (blurTimeoutRef.current !== null) {\n clearTimeout(blurTimeoutRef.current);\n blurTimeoutRef.current = null;\n }\n if (!isFocusedRef.current) {\n isFocusedRef.current = true;\n onFocusRef.current?.({ name: nameRef.current, value: colorValueRef.current });\n }\n }, []);\n\n // Stable blur handler — accepts the committed ColorInputValue to pass to onBlur.\n const handleInputBlur = useCallback((blurValue: ColorInputValue) => {\n blurTimeoutRef.current = setTimeout(() => {\n blurTimeoutRef.current = null;\n isFocusedRef.current = false;\n onBlurRef.current?.({ name: nameRef.current, value: blurValue });\n }, 0);\n }, []);\n\n const hexInputRef = useRef<BladeElementRef>(null);\n const swatchRef = useRef<ColorSwatchRef>(null);\n const { inputId, helpTextId, errorTextId, successTextId } = useFormId('color-input');\n const idBase = useId('color-input');\n const labelId = `${idBase}-label`;\n const { theme } = useTheme();\n const { matchedDeviceType } = useBreakpoint({ breakpoints: theme.breakpoints });\n const isLabelLeftPositioned = labelPosition === 'left' && matchedDeviceType === 'desktop';\n\n const handleHexChange = useCallback(\n ({ value: inputValue }: { name?: string; value?: string }) => {\n // Strip a leading '#' and trim whitespace so pasting '#FF5733 ' or typing '#' works naturally.\n const raw = (inputValue ?? '').replace(/^#/, '').trim().toUpperCase();\n if (raw === '') {\n setHexDisplayValue('');\n return;\n }\n if (isValidHex(raw) || isPartialHex(raw)) {\n setHexDisplayValue(raw);\n }\n if (isValidHex(raw)) {\n setColorValue((prev) => ({ ...prev, hex: `#${raw}` }));\n }\n },\n [setColorValue],\n );\n\n const handleOpacityChange = useCallback(\n ({ value: inputValue }: { name?: string; value?: string }) => {\n const raw = inputValue ?? '';\n setOpacityDisplayValue(raw);\n\n if (raw === '') {\n return;\n }\n\n // Reject strings with non-digit characters (e.g. '5a', '100x') so parseInt\n // can't silently truncate and commit a partial value.\n if (!/^\\d+$/.test(raw)) {\n return;\n }\n\n const num = parseInt(raw, 10);\n if (!Number.isNaN(num) && isValidOpacity(num)) {\n setColorValue((prev) => ({ ...prev, opacity: num }));\n }\n },\n [setColorValue],\n );\n\n const handleOpacityBlur = useCallback<FormInputOnEvent>(\n (args) => {\n const raw = args.value ?? '';\n const num = parseInt(raw, 10);\n if (raw === '' || !/^\\d+$/.test(raw) || Number.isNaN(num) || !isValidOpacity(num)) {\n setOpacityDisplayValue(String(colorValue.opacity));\n }\n handleInputBlur(colorValue);\n },\n [colorValue, handleInputBlur],\n );\n\n const handleOpacityKeyDown = useCallback(\n ({ key, event }: FormInputOnKeyDownEvent) => {\n if (key === 'ArrowUp') {\n event.preventDefault();\n setColorValue((prev) => {\n const next = Math.min(prev.opacity + 1, 100);\n if (next !== prev.opacity) {\n setOpacityDisplayValue(String(next));\n return { ...prev, opacity: next };\n }\n return prev;\n });\n } else if (key === 'ArrowDown') {\n event.preventDefault();\n setColorValue((prev) => {\n const next = Math.max(prev.opacity - 1, 0);\n if (next !== prev.opacity) {\n setOpacityDisplayValue(String(next));\n return { ...prev, opacity: next };\n }\n return prev;\n });\n }\n },\n [setColorValue],\n );\n\n const handleSwatchChange = useCallback(\n (hex: string) => {\n // hex arrives with '#' prefix from ColorSwatch; strip for display, keep for model.\n setHexDisplayValue(hex.replace(/^#/, ''));\n setColorValue((prev) => ({ ...prev, hex }));\n },\n [setColorValue],\n );\n\n // Hex-specific blur: reset partial display to last committed valid value.\n const handleHexInputBlur = useCallback(() => {\n setHexDisplayValue(colorValue.hex.replace(/^#/, ''));\n handleInputBlur(colorValue);\n }, [colorValue, handleInputBlur]);\n\n // Sync opacityDisplayValue when controlled value changes externally.\n // Skip while focused so a controlled parent updating value mid-edit doesn't clobber partial input.\n useEffect(() => {\n if (!isFocusedRef.current) {\n setOpacityDisplayValue(String(colorValue.opacity));\n }\n }, [colorValue.opacity]);\n\n const willRenderHintText =\n Boolean(helpText) ||\n (validationState === 'success' && Boolean(successText)) ||\n (validationState === 'error' && Boolean(errorText));\n\n return (\n <BaseBox\n ref={ref as React.Ref<HTMLDivElement>}\n display=\"flex\"\n flexDirection=\"column\"\n width=\"100%\"\n {...metaAttribute({ name: MetaConstants.ColorInput, testID })}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n display=\"flex\"\n flexDirection={isLabelLeftPositioned ? 'row' : 'column'}\n alignItems={isLabelLeftPositioned ? 'center' : undefined}\n >\n {label && (\n <FormLabel\n as=\"label\"\n position={labelPosition}\n id={labelId}\n htmlFor={inputId}\n size={size}\n necessityIndicator={necessityIndicator}\n >\n {label}\n </FormLabel>\n )}\n\n <StyledColorInput $size={size}>\n <BaseBox flex=\"1\" minWidth=\"0px\" className={COLOR_INPUT_ROW_CLASSNAME}>\n <BaseInput\n ref={hexInputRef}\n id={inputId}\n label={label}\n hideLabelText\n accessibilityLabel={accessibilityLabel ?? label ?? 'Color hex code'}\n labelId={labelId}\n size={size}\n placeholder=\"000000\"\n value={hexDisplayValue}\n onChange={handleHexChange}\n onFocus={handleInputFocus}\n onBlur={handleHexInputBlur}\n isDisabled={isDisabled}\n isRequired={isRequired}\n validationState={validationState}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n maxCharacters={6}\n hideFormHint\n textAlign=\"left\"\n leadingInteractionElement={\n <ColorSwatch\n ref={swatchRef}\n color={colorValue.hex}\n size={size}\n isDisabled={isDisabled}\n onChange={handleSwatchChange}\n onFocus={handleInputFocus}\n onBlur={() => handleInputBlur(colorValue)}\n />\n }\n />\n </BaseBox>\n\n {showOpacity && (\n <BaseBox width=\"80px\" flexShrink={0} className={COLOR_INPUT_ROW_CLASSNAME}>\n <BaseInput\n id={`${inputId}-opacity`}\n label=\"Opacity\"\n hideLabelText\n accessibilityLabel=\"Color opacity percentage\"\n size={size}\n placeholder=\"100\"\n value={opacityDisplayValue}\n onChange={handleOpacityChange}\n onKeyDown={handleOpacityKeyDown}\n onFocus={handleInputFocus}\n onBlur={handleOpacityBlur}\n isDisabled={isDisabled}\n validationState={validationState}\n suffix=\"%\"\n textAlign=\"right\"\n hideFormHint\n />\n </BaseBox>\n )}\n </StyledColorInput>\n </BaseBox>\n\n {willRenderHintText && (\n <BaseBox\n marginLeft={makeSize(\n label && isLabelLeftPositioned ? formHintLeftLabelMarginLeft[size] : 0,\n )}\n >\n <FormHint\n type={getHintType({ validationState, hasHelpText: Boolean(helpText) })}\n helpText={helpText}\n errorText={errorText}\n successText={successText}\n helpTextId={helpTextId}\n errorTextId={errorTextId}\n successTextId={successTextId}\n size={size}\n />\n </BaseBox>\n )}\n </BaseBox>\n );\n};\n\nconst ColorInput = assignWithoutSideEffects(React.forwardRef(_ColorInput), {\n displayName: 'ColorInput',\n componentId: 'ColorInput',\n});\n\nexport { ColorInput };\n"],"names":["_ColorInput","_ref","ref","_ref7","label","accessibilityLabel","_ref$labelPosition","labelPosition","_ref$size","size","name","value","defaultValue","onChange","onFocus","onBlur","_ref$showOpacity","showOpacity","_ref$validationState","validationState","helpText","errorText","successText","necessityIndicator","isRequired","_ref$isDisabled","isDisabled","autoFocus","testID","rest","_objectWithoutProperties","_excluded","_value$opacity","initialOpacity","opacity","undefined","Number","isInteger","throwBladeError","message","concat","moduleName","_useControllableState","useControllableState","DEFAULT_COLOR_VALUE","newValue","shouldUpdate","prev","next","hex","_useControllableState2","_slicedToArray","colorValue","setColorValue","_useState","useState","_ref2","_value$opacity2","String","_useState2","opacityDisplayValue","setOpacityDisplayValue","_useState3","_ref3","_value$hex","replace","_useState4","hexDisplayValue","setHexDisplayValue","isFocusedRef","useRef","blurTimeoutRef","onFocusRef","useEffect","current","onBlurRef","colorValueRef","nameRef","clearTimeout","handleInputFocus","useCallback","_onFocusRef$current","call","handleInputBlur","blurValue","setTimeout","_onBlurRef$current","hexInputRef","swatchRef","_useFormId","useFormId","inputId","helpTextId","errorTextId","successTextId","idBase","useId","labelId","_useTheme","useTheme","theme","_useBreakpoint","useBreakpoint","breakpoints","matchedDeviceType","isLabelLeftPositioned","handleHexChange","_ref4","inputValue","raw","trim","toUpperCase","isValidHex","isPartialHex","_objectSpread","handleOpacityChange","_ref5","test","num","parseInt","isNaN","isValidOpacity","handleOpacityBlur","args","_args$value","handleOpacityKeyDown","_ref6","key","event","preventDefault","Math","min","max","handleSwatchChange","handleHexInputBlur","willRenderHintText","Boolean","_jsxs","BaseBox","display","flexDirection","width","metaAttribute","MetaConstants","ColorInput","getStyledProps","makeAnalyticsAttribute","children","alignItems","_jsx","FormLabel","as","position","id","htmlFor","StyledColorInput","$size","flex","minWidth","className","COLOR_INPUT_ROW_CLASSNAME","BaseInput","hideLabelText","placeholder","maxCharacters","hideFormHint","textAlign","leadingInteractionElement","ColorSwatch","color","flexShrink","onKeyDown","suffix","marginLeft","makeSize","formHintLeftLabelMarginLeft","FormHint","type","getHintType","hasHelpText","assignWithoutSideEffects","React","forwardRef","displayName","componentId"],"mappings":"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"}
@@ -11,13 +11,25 @@ import { size } from '../../../tokens/global/size.js';
11
11
  import useTheme from '../../BladeProvider/useTheme.js';
12
12
  import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
13
13
  import { makeSize } from '../../../utils/makeSize/makeSize.js';
14
+ import { opacity } from '../../../tokens/global/opacity.js';
14
15
  import { assignWithoutSideEffects } from '../../../utils/assignWithoutSideEffects/assignWithoutSideEffects.js';
15
16
 
16
17
  var swatchSizeTokens = {
17
- xsmall: size['20'],
18
- small: size['24'],
19
- medium: size['28'],
20
- large: size['40']
18
+ xsmall: size['16'],
19
+ small: size['16'],
20
+ medium: size['20'],
21
+ large: size['24']
22
+ };
23
+
24
+ /**
25
+ * BaseInput insets the leading interaction element by spacing.2 (4px). The spec places the
26
+ * swatch 8px from the field edge, and 12px at large, so make up the difference here.
27
+ */
28
+ var swatchLeftPaddingTokens = {
29
+ xsmall: 'spacing.2',
30
+ small: 'spacing.2',
31
+ medium: 'spacing.2',
32
+ large: 'spacing.3'
21
33
  };
22
34
  var _ColorSwatch = /*#__PURE__*/forwardRef(function (_ref, ref) {
23
35
  var color = _ref.color,
@@ -64,6 +76,7 @@ var _ColorSwatch = /*#__PURE__*/forwardRef(function (_ref, ref) {
64
76
  onKeyDown: handleKeyDown,
65
77
  onFocus: onFocus,
66
78
  onBlur: onBlur,
79
+ paddingLeft: swatchLeftPaddingTokens[inputSize],
67
80
  cursor: isDisabled ? 'not-allowed' : 'pointer',
68
81
  children: [/*#__PURE__*/jsx(BaseBox, {
69
82
  as: "div",
@@ -74,7 +87,7 @@ var _ColorSwatch = /*#__PURE__*/forwardRef(function (_ref, ref) {
74
87
  style: {
75
88
  backgroundColor: padHexForPicker(color),
76
89
  border: "1px solid ".concat(borderColor),
77
- opacity: isDisabled ? 0.5 : 1
90
+ opacity: isDisabled ? opacity['500'] : 1
78
91
  }
79
92
  }), /*#__PURE__*/jsx("input", {
80
93
  ref: colorInputRef,
@@ -1 +1 @@
1
- {"version":3,"file":"ColorSwatch.web.js","sources":["../../../../../../../src/components/Input/ColorInput/ColorSwatch.web.tsx"],"sourcesContent":["import React, { useRef, useImperativeHandle, forwardRef } from 'react';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { BaseInputProps } from '~components/Input/BaseInput';\nimport { useTheme } from '~components/BladeProvider';\nimport { makeSize } from '~utils/makeSize';\nimport { size } from '~tokens/global';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { padHexForPicker } from './ColorInput.utils';\nimport getIn from '~utils/lodashButBetter/get';\n\ntype ColorSwatchProps = {\n color: string;\n size: NonNullable<BaseInputProps['size']>;\n isDisabled?: boolean;\n onChange: (hex: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n};\n\ntype ColorSwatchRef = {\n openPicker: () => void;\n};\n\nconst swatchSizeTokens = {\n xsmall: size['20'],\n small: size['24'],\n medium: size['28'],\n large: size['40'],\n} as const;\n\nconst _ColorSwatch = forwardRef<ColorSwatchRef, ColorSwatchProps>(\n ({ color, size: inputSize, isDisabled, onChange, onFocus, onBlur }, ref) => {\n const colorInputRef = useRef<HTMLInputElement>(null);\n const { theme } = useTheme();\n const borderColor = getIn(theme.colors, 'interactive.border.gray.default');\n\n useImperativeHandle(ref, () => ({\n openPicker: () => {\n if (!isDisabled) {\n colorInputRef.current?.click();\n }\n },\n }));\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n // Keep '#' prefix so the value matches ColorInputValue.hex format (e.g. '#FF5733').\n const hexValue = e.target.value.toUpperCase();\n onChange(hexValue);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n colorInputRef.current?.click();\n }\n };\n\n const dimension = swatchSizeTokens[inputSize];\n\n return (\n <BaseBox\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n position=\"relative\"\n role=\"button\"\n aria-label=\"Open color picker\"\n tabIndex={isDisabled ? -1 : 0}\n onKeyDown={handleKeyDown}\n onFocus={onFocus}\n onBlur={onBlur}\n cursor={isDisabled ? 'not-allowed' : 'pointer'}\n >\n <BaseBox\n as=\"div\"\n width={makeSize(dimension)}\n height={makeSize(dimension)}\n borderRadius=\"xsmall\"\n flexShrink={0}\n style={{\n backgroundColor: padHexForPicker(color),\n border: `1px solid ${borderColor}`,\n opacity: isDisabled ? 0.5 : 1,\n }}\n />\n {/* Positioned over the swatch so clicks go directly to the input — avoids\n programmatic .click() which does not open the picker on Firefox/Safari iOS. */}\n <input\n ref={colorInputRef}\n type=\"color\"\n value={padHexForPicker(color).toLowerCase()}\n onChange={handleChange}\n disabled={isDisabled}\n tabIndex={-1}\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n }}\n />\n </BaseBox>\n );\n },\n);\n\nconst ColorSwatch = assignWithoutSideEffects(_ColorSwatch, {\n displayName: 'ColorSwatch',\n});\n\nexport { ColorSwatch };\nexport type { ColorSwatchRef };\n"],"names":["swatchSizeTokens","xsmall","size","small","medium","large","_ColorSwatch","forwardRef","_ref","ref","color","inputSize","isDisabled","onChange","onFocus","onBlur","colorInputRef","useRef","_useTheme","useTheme","theme","borderColor","getIn","colors","useImperativeHandle","openPicker","_colorInputRef$curren","current","click","handleChange","e","hexValue","target","value","toUpperCase","handleKeyDown","key","_colorInputRef$curren2","preventDefault","dimension","_jsxs","BaseBox","display","alignItems","justifyContent","position","role","tabIndex","onKeyDown","cursor","children","_jsx","as","width","makeSize","height","borderRadius","flexShrink","style","backgroundColor","padHexForPicker","border","concat","opacity","type","toLowerCase","disabled","inset","ColorSwatch","assignWithoutSideEffects","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"ColorSwatch.web.js","sources":["../../../../../../../src/components/Input/ColorInput/ColorSwatch.web.tsx"],"sourcesContent":["import React, { useRef, useImperativeHandle, forwardRef } from 'react';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { BaseInputProps } from '~components/Input/BaseInput';\nimport { useTheme } from '~components/BladeProvider';\nimport { makeSize } from '~utils/makeSize';\nimport { opacity, size } from '~tokens/global';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { padHexForPicker } from './ColorInput.utils';\nimport getIn from '~utils/lodashButBetter/get';\n\ntype ColorSwatchProps = {\n color: string;\n size: NonNullable<BaseInputProps['size']>;\n isDisabled?: boolean;\n onChange: (hex: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n};\n\ntype ColorSwatchRef = {\n openPicker: () => void;\n};\n\nconst swatchSizeTokens = {\n xsmall: size['16'],\n small: size['16'],\n medium: size['20'],\n large: size['24'],\n} as const;\n\n/**\n * BaseInput insets the leading interaction element by spacing.2 (4px). The spec places the\n * swatch 8px from the field edge, and 12px at large, so make up the difference here.\n */\nconst swatchLeftPaddingTokens = {\n xsmall: 'spacing.2',\n small: 'spacing.2',\n medium: 'spacing.2',\n large: 'spacing.3',\n} as const;\n\nconst _ColorSwatch = forwardRef<ColorSwatchRef, ColorSwatchProps>(\n ({ color, size: inputSize, isDisabled, onChange, onFocus, onBlur }, ref) => {\n const colorInputRef = useRef<HTMLInputElement>(null);\n const { theme } = useTheme();\n const borderColor = getIn(theme.colors, 'interactive.border.gray.default');\n\n useImperativeHandle(ref, () => ({\n openPicker: () => {\n if (!isDisabled) {\n colorInputRef.current?.click();\n }\n },\n }));\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\n // Keep '#' prefix so the value matches ColorInputValue.hex format (e.g. '#FF5733').\n const hexValue = e.target.value.toUpperCase();\n onChange(hexValue);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>): void => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n colorInputRef.current?.click();\n }\n };\n\n const dimension = swatchSizeTokens[inputSize];\n\n return (\n <BaseBox\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n position=\"relative\"\n role=\"button\"\n aria-label=\"Open color picker\"\n tabIndex={isDisabled ? -1 : 0}\n onKeyDown={handleKeyDown}\n onFocus={onFocus}\n onBlur={onBlur}\n paddingLeft={swatchLeftPaddingTokens[inputSize]}\n cursor={isDisabled ? 'not-allowed' : 'pointer'}\n >\n <BaseBox\n as=\"div\"\n width={makeSize(dimension)}\n height={makeSize(dimension)}\n borderRadius=\"xsmall\"\n flexShrink={0}\n style={{\n backgroundColor: padHexForPicker(color),\n border: `1px solid ${borderColor}`,\n opacity: isDisabled ? opacity['500'] : 1,\n }}\n />\n {/* Positioned over the swatch so clicks go directly to the input — avoids\n programmatic .click() which does not open the picker on Firefox/Safari iOS. */}\n <input\n ref={colorInputRef}\n type=\"color\"\n value={padHexForPicker(color).toLowerCase()}\n onChange={handleChange}\n disabled={isDisabled}\n tabIndex={-1}\n aria-hidden=\"true\"\n style={{\n position: 'absolute',\n inset: 0,\n width: '100%',\n height: '100%',\n opacity: 0,\n cursor: isDisabled ? 'not-allowed' : 'pointer',\n }}\n />\n </BaseBox>\n );\n },\n);\n\nconst ColorSwatch = assignWithoutSideEffects(_ColorSwatch, {\n displayName: 'ColorSwatch',\n});\n\nexport { ColorSwatch };\nexport type { ColorSwatchRef };\n"],"names":["swatchSizeTokens","xsmall","size","small","medium","large","swatchLeftPaddingTokens","_ColorSwatch","forwardRef","_ref","ref","color","inputSize","isDisabled","onChange","onFocus","onBlur","colorInputRef","useRef","_useTheme","useTheme","theme","borderColor","getIn","colors","useImperativeHandle","openPicker","_colorInputRef$curren","current","click","handleChange","e","hexValue","target","value","toUpperCase","handleKeyDown","key","_colorInputRef$curren2","preventDefault","dimension","_jsxs","BaseBox","display","alignItems","justifyContent","position","role","tabIndex","onKeyDown","paddingLeft","cursor","children","_jsx","as","width","makeSize","height","borderRadius","flexShrink","style","backgroundColor","padHexForPicker","border","concat","opacity","type","toLowerCase","disabled","inset","ColorSwatch","assignWithoutSideEffects","displayName"],"mappings":"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"}
@@ -1,17 +1,20 @@
1
1
  import styled from 'styled-components';
2
2
  import '../../Box/BaseBox/index.js';
3
+ import { baseInputBorderRadius } from '../BaseInput/baseInputTokens.js';
3
4
  import '../../../utils/index.js';
4
5
  import { BaseBox } from '../../Box/BaseBox/BaseBox.web.js';
5
6
  import { makeBorderSize } from '../../../utils/makeBorderSize/makeBorderSize.js';
7
+ import { makeSpace } from '../../../utils/makeSpace/makeSpace.js';
6
8
 
7
9
  var CLASSNAME = '__blade-color-input-row';
8
10
  var StyledColorInput = /*#__PURE__*/styled(BaseBox).withConfig({
9
11
  displayName: "StyledColorInput",
10
12
  componentId: "sc-1gdzo5z-0"
11
13
  })(["", ""], function (_ref) {
12
- var theme = _ref.theme;
13
- var radius = makeBorderSize(theme.border.radius.small);
14
- return "\n display: flex;\n flex-direction: row;\n align-items: stretch;\n\n /* Reset border-radius on all inputs */\n & .".concat(CLASSNAME, " .__blade-base-input-wrapper,\n & .").concat(CLASSNAME, " .focus-ring-wrapper {\n border-radius: 0;\n }\n\n /* Elevate hovered/focused input above siblings */\n & .").concat(CLASSNAME, " .__blade-base-input-wrapper {\n position: relative;\n z-index: 0;\n }\n\n & .").concat(CLASSNAME, " .__blade-base-input-wrapper:hover,\n & .").concat(CLASSNAME, " .__blade-base-input-wrapper:focus-within {\n z-index: 1;\n }\n\n /* First input: left border-radius */\n & .").concat(CLASSNAME, ":first-child .__blade-base-input-wrapper,\n & .").concat(CLASSNAME, ":first-child .focus-ring-wrapper {\n border-top-left-radius: ").concat(radius, ";\n border-bottom-left-radius: ").concat(radius, ";\n }\n\n /* Last input: right border-radius */\n & .").concat(CLASSNAME, ":last-child .__blade-base-input-wrapper,\n & .").concat(CLASSNAME, ":last-child .focus-ring-wrapper {\n border-top-right-radius: ").concat(radius, ";\n border-bottom-right-radius: ").concat(radius, ";\n }\n\n /* Only child: full border-radius */\n & .").concat(CLASSNAME, ":only-child .__blade-base-input-wrapper,\n & .").concat(CLASSNAME, ":only-child .focus-ring-wrapper {\n border-radius: ").concat(radius, ";\n }\n ");
14
+ var theme = _ref.theme,
15
+ $size = _ref.$size;
16
+ var radius = makeBorderSize(theme.border.radius[baseInputBorderRadius[$size]]);
17
+ return "\n display: flex;\n flex-direction: row;\n align-items: stretch;\n\n /* BaseInput spaces the value 12px from the leading slot at medium/large.\n ColorInput keeps the swatch-to-hex gap at 8px across every size.\n The color picker input is excluded \u2014 it is absolutely positioned over the swatch. */\n & .".concat(CLASSNAME, ":first-child input:not([type='color']) {\n padding-left: ").concat(makeSpace(theme.spacing[3]), ";\n }\n\n /* Reset border-radius on all inputs */\n & .").concat(CLASSNAME, " .__blade-base-input-wrapper,\n & .").concat(CLASSNAME, " .focus-ring-wrapper {\n border-radius: 0;\n }\n\n /* Elevate hovered/focused input above siblings */\n & .").concat(CLASSNAME, " .__blade-base-input-wrapper {\n position: relative;\n z-index: 0;\n }\n\n & .").concat(CLASSNAME, " .__blade-base-input-wrapper:hover,\n & .").concat(CLASSNAME, " .__blade-base-input-wrapper:focus-within {\n z-index: 1;\n }\n\n /* First input: left border-radius */\n & .").concat(CLASSNAME, ":first-child .__blade-base-input-wrapper,\n & .").concat(CLASSNAME, ":first-child .focus-ring-wrapper {\n border-top-left-radius: ").concat(radius, ";\n border-bottom-left-radius: ").concat(radius, ";\n }\n\n /* Last input: right border-radius */\n & .").concat(CLASSNAME, ":last-child .__blade-base-input-wrapper,\n & .").concat(CLASSNAME, ":last-child .focus-ring-wrapper {\n border-top-right-radius: ").concat(radius, ";\n border-bottom-right-radius: ").concat(radius, ";\n }\n\n /* Only child: full border-radius */\n & .").concat(CLASSNAME, ":only-child .__blade-base-input-wrapper,\n & .").concat(CLASSNAME, ":only-child .focus-ring-wrapper {\n border-radius: ").concat(radius, ";\n }\n ");
15
18
  });
16
19
 
17
20
  export { CLASSNAME as COLOR_INPUT_ROW_CLASSNAME, StyledColorInput };
@@ -1 +1 @@
1
- {"version":3,"file":"StyledColorInput.js","sources":["../../../../../../../src/components/Input/ColorInput/StyledColorInput.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport BaseBox from '~components/Box/BaseBox';\nimport { makeBorderSize } from '~utils';\n\nconst CLASSNAME = '__blade-color-input-row';\n\nconst StyledColorInput = styled(BaseBox)`\n ${({ theme }) => {\n const radius = makeBorderSize(theme.border.radius.small);\n return `\n display: flex;\n flex-direction: row;\n align-items: stretch;\n\n /* Reset border-radius on all inputs */\n & .${CLASSNAME} .__blade-base-input-wrapper,\n & .${CLASSNAME} .focus-ring-wrapper {\n border-radius: 0;\n }\n\n /* Elevate hovered/focused input above siblings */\n & .${CLASSNAME} .__blade-base-input-wrapper {\n position: relative;\n z-index: 0;\n }\n\n & .${CLASSNAME} .__blade-base-input-wrapper:hover,\n & .${CLASSNAME} .__blade-base-input-wrapper:focus-within {\n z-index: 1;\n }\n\n /* First input: left border-radius */\n & .${CLASSNAME}:first-child .__blade-base-input-wrapper,\n & .${CLASSNAME}:first-child .focus-ring-wrapper {\n border-top-left-radius: ${radius};\n border-bottom-left-radius: ${radius};\n }\n\n /* Last input: right border-radius */\n & .${CLASSNAME}:last-child .__blade-base-input-wrapper,\n & .${CLASSNAME}:last-child .focus-ring-wrapper {\n border-top-right-radius: ${radius};\n border-bottom-right-radius: ${radius};\n }\n\n /* Only child: full border-radius */\n & .${CLASSNAME}:only-child .__blade-base-input-wrapper,\n & .${CLASSNAME}:only-child .focus-ring-wrapper {\n border-radius: ${radius};\n }\n `;\n }}\n`;\n\nexport { StyledColorInput, CLASSNAME as COLOR_INPUT_ROW_CLASSNAME };\n"],"names":["CLASSNAME","StyledColorInput","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","radius","makeBorderSize","border","small","concat"],"mappings":";;;;;;AAIMA,IAAAA,SAAS,GAAG,0BAAyB;AAE3C,IAAMC,gBAAgB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,kBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CACpC,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,UAAAC,IAAA,EAAe;AAAA,EAAA,IAAZC,KAAK,GAAAD,IAAA,CAALC,KAAK,CAAA;EACR,IAAMC,MAAM,GAAGC,cAAc,CAACF,KAAK,CAACG,MAAM,CAACF,MAAM,CAACG,KAAK,CAAC,CAAA;AACxD,EAAA,OAAA,6IAAA,CAAAC,MAAA,CAMOb,SAAS,EAAA,0CAAA,CAAA,CAAAa,MAAA,CACTb,SAAS,EAAA,mIAAA,CAAA,CAAAa,MAAA,CAKTb,SAAS,EAAA,wGAAA,CAAA,CAAAa,MAAA,CAKTb,SAAS,EAAA,gDAAA,CAAA,CAAAa,MAAA,CACTb,SAAS,EAAA,qIAAA,CAAA,CAAAa,MAAA,CAKTb,SAAS,EAAA,sDAAA,CAAA,CAAAa,MAAA,CACTb,SAAS,EAAA,sEAAA,CAAA,CAAAa,MAAA,CACcJ,MAAM,EAAAI,wCAAAA,CAAAA,CAAAA,MAAA,CACHJ,MAAM,EAAAI,sEAAAA,CAAAA,CAAAA,MAAA,CAIhCb,SAAS,EAAAa,qDAAAA,CAAAA,CAAAA,MAAA,CACTb,SAAS,EAAAa,sEAAAA,CAAAA,CAAAA,MAAA,CACeJ,MAAM,EAAAI,yCAAAA,CAAAA,CAAAA,MAAA,CACHJ,MAAM,EAAAI,qEAAAA,CAAAA,CAAAA,MAAA,CAIjCb,SAAS,EAAAa,qDAAAA,CAAAA,CAAAA,MAAA,CACTb,SAAS,EAAAa,4DAAAA,CAAAA,CAAAA,MAAA,CACKJ,MAAM,EAAA,kBAAA,CAAA,CAAA;AAG7B,CAAC;;;;"}
1
+ {"version":3,"file":"StyledColorInput.js","sources":["../../../../../../../src/components/Input/ColorInput/StyledColorInput.tsx"],"sourcesContent":["import styled from 'styled-components';\nimport BaseBox from '~components/Box/BaseBox';\nimport type { BaseInputProps } from '~components/Input/BaseInput';\nimport { baseInputBorderRadius } from '~components/Input/BaseInput/baseInputTokens';\nimport { makeBorderSize, makeSpace } from '~utils';\n\nconst CLASSNAME = '__blade-color-input-row';\n\ntype StyledColorInputProps = {\n $size: NonNullable<BaseInputProps['size']>;\n};\n\nconst StyledColorInput = styled(BaseBox)<StyledColorInputProps>`\n ${({ theme, $size }) => {\n const radius = makeBorderSize(theme.border.radius[baseInputBorderRadius[$size]]);\n return `\n display: flex;\n flex-direction: row;\n align-items: stretch;\n\n /* BaseInput spaces the value 12px from the leading slot at medium/large.\n ColorInput keeps the swatch-to-hex gap at 8px across every size.\n The color picker input is excluded — it is absolutely positioned over the swatch. */\n & .${CLASSNAME}:first-child input:not([type='color']) {\n padding-left: ${makeSpace(theme.spacing[3])};\n }\n\n /* Reset border-radius on all inputs */\n & .${CLASSNAME} .__blade-base-input-wrapper,\n & .${CLASSNAME} .focus-ring-wrapper {\n border-radius: 0;\n }\n\n /* Elevate hovered/focused input above siblings */\n & .${CLASSNAME} .__blade-base-input-wrapper {\n position: relative;\n z-index: 0;\n }\n\n & .${CLASSNAME} .__blade-base-input-wrapper:hover,\n & .${CLASSNAME} .__blade-base-input-wrapper:focus-within {\n z-index: 1;\n }\n\n /* First input: left border-radius */\n & .${CLASSNAME}:first-child .__blade-base-input-wrapper,\n & .${CLASSNAME}:first-child .focus-ring-wrapper {\n border-top-left-radius: ${radius};\n border-bottom-left-radius: ${radius};\n }\n\n /* Last input: right border-radius */\n & .${CLASSNAME}:last-child .__blade-base-input-wrapper,\n & .${CLASSNAME}:last-child .focus-ring-wrapper {\n border-top-right-radius: ${radius};\n border-bottom-right-radius: ${radius};\n }\n\n /* Only child: full border-radius */\n & .${CLASSNAME}:only-child .__blade-base-input-wrapper,\n & .${CLASSNAME}:only-child .focus-ring-wrapper {\n border-radius: ${radius};\n }\n `;\n }}\n`;\n\nexport { StyledColorInput, CLASSNAME as COLOR_INPUT_ROW_CLASSNAME };\n"],"names":["CLASSNAME","StyledColorInput","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","$size","radius","makeBorderSize","border","baseInputBorderRadius","concat","makeSpace","spacing"],"mappings":";;;;;;;;AAMMA,IAAAA,SAAS,GAAG,0BAAyB;AAM3C,IAAMC,gBAAgB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,kBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CACpC,CAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA,EAAA,UAAAC,IAAA,EAAsB;AAAA,EAAA,IAAnBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK,CAAA;AACf,EAAA,IAAMC,MAAM,GAAGC,cAAc,CAACH,KAAK,CAACI,MAAM,CAACF,MAAM,CAACG,qBAAqB,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAA;AAChF,EAAA,OAAA,8VAAA,CAAAK,MAAA,CAQOd,SAAS,EAAAc,kEAAAA,CAAAA,CAAAA,MAAA,CACIC,SAAS,CAACP,KAAK,CAACQ,OAAO,CAAC,CAAC,CAAC,CAAC,4EAAAF,MAAA,CAIxCd,SAAS,EAAA,0CAAA,CAAA,CAAAc,MAAA,CACTd,SAAS,EAAAc,mIAAAA,CAAAA,CAAAA,MAAA,CAKTd,SAAS,EAAA,wGAAA,CAAA,CAAAc,MAAA,CAKTd,SAAS,EAAAc,gDAAAA,CAAAA,CAAAA,MAAA,CACTd,SAAS,EAAA,qIAAA,CAAA,CAAAc,MAAA,CAKTd,SAAS,EAAAc,sDAAAA,CAAAA,CAAAA,MAAA,CACTd,SAAS,EAAA,sEAAA,CAAA,CAAAc,MAAA,CACcJ,MAAM,EAAAI,wCAAAA,CAAAA,CAAAA,MAAA,CACHJ,MAAM,0EAAAI,MAAA,CAIhCd,SAAS,EAAA,qDAAA,CAAA,CAAAc,MAAA,CACTd,SAAS,EAAAc,sEAAAA,CAAAA,CAAAA,MAAA,CACeJ,MAAM,EAAA,yCAAA,CAAA,CAAAI,MAAA,CACHJ,MAAM,EAAAI,qEAAAA,CAAAA,CAAAA,MAAA,CAIjCd,SAAS,yDAAAc,MAAA,CACTd,SAAS,EAAAc,4DAAAA,CAAAA,CAAAA,MAAA,CACKJ,MAAM,EAAA,kBAAA,CAAA,CAAA;AAG7B,CAAC;;;;"}