@scbt-ecom/ui 0.133.0 → 0.135.0

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 (82) hide show
  1. package/dist/lib/exports/ui.js +1 -1
  2. package/dist/lib/shared/style.css +1 -1
  3. package/dist/lib/shared/ui/formElements/controlled/autocomplete/{Autocomplete.js → AutocompleteControl.js} +2 -2
  4. package/dist/lib/shared/ui/formElements/controlled/autocomplete/AutocompleteControl.js.map +1 -0
  5. package/dist/lib/shared/ui/formElements/controlled/autocomplete/index.js +1 -1
  6. package/dist/lib/shared/ui/formElements/controlled/checkbox/CheckboxControl.js +1 -1
  7. package/dist/lib/shared/ui/formElements/controlled/checkbox/CheckboxControl.js.map +1 -1
  8. package/dist/lib/shared/ui/formElements/controlled/combobox/ComboboxControl.js +1 -1
  9. package/dist/lib/shared/ui/formElements/controlled/combobox/ComboboxControl.js.map +1 -1
  10. package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js +1 -1
  11. package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js.map +1 -1
  12. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js +1 -1
  13. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js.map +1 -1
  14. package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js +1 -1
  15. package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js.map +1 -1
  16. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js +1 -1
  17. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js.map +1 -1
  18. package/dist/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.js +1 -1
  19. package/dist/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.js.map +1 -1
  20. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.js +1 -1
  21. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.js.map +1 -1
  22. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js +1 -1
  23. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js.map +1 -1
  24. package/dist/lib/shared/ui/formElements/controlled/index.js +1 -1
  25. package/dist/lib/shared/ui/formElements/controlled/index.js.map +1 -1
  26. package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js +1 -1
  27. package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js.map +1 -1
  28. package/dist/lib/shared/ui/formElements/controlled/inputOtp/InputOtpControl.js +1 -1
  29. package/dist/lib/shared/ui/formElements/controlled/inputOtp/InputOtpControl.js.map +1 -1
  30. package/dist/lib/shared/ui/formElements/controlled/radio/RadioGroupControl.js +1 -1
  31. package/dist/lib/shared/ui/formElements/controlled/radio/RadioGroupControl.js.map +1 -1
  32. package/dist/lib/shared/ui/formElements/controlled/switch/SwitchControl.js +1 -1
  33. package/dist/lib/shared/ui/formElements/controlled/switch/SwitchControl.js.map +1 -1
  34. package/dist/lib/shared/ui/formElements/controlled/textarea/TextareaControl.js +1 -1
  35. package/dist/lib/shared/ui/formElements/controlled/textarea/TextareaControl.js.map +1 -1
  36. package/dist/lib/shared/ui/formElements/controlled/uploader/UploaderControl.js +1 -1
  37. package/dist/lib/shared/ui/formElements/controlled/uploader/UploaderControl.js.map +1 -1
  38. package/dist/lib/shared/ui/formElements/index.js +1 -1
  39. package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js +1 -1
  40. package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js.map +1 -1
  41. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js +1 -1
  42. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js.map +1 -1
  43. package/dist/lib/shared/ui/formElements/uncontrolled/input/Input.js.map +1 -1
  44. package/dist/lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js +1 -1
  45. package/dist/lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js.map +1 -1
  46. package/dist/lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.js +1 -1
  47. package/dist/lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.js.map +1 -1
  48. package/dist/lib/shared/ui/formElements/uncontrolled/slider/SliderBase.js.map +1 -1
  49. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js +1 -1
  50. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js.map +1 -1
  51. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js +1 -1
  52. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js.map +1 -1
  53. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js +1 -1
  54. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js.map +1 -1
  55. package/dist/lib/shared/ui/formElements/uncontrolled/switch/Switch.js +1 -1
  56. package/dist/lib/shared/ui/formElements/uncontrolled/switch/Switch.js.map +1 -1
  57. package/dist/lib/shared/ui/formElements/uncontrolled/textarea/Textarea.js +1 -1
  58. package/dist/lib/shared/ui/formElements/uncontrolled/textarea/Textarea.js.map +1 -1
  59. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js +1 -1
  60. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js.map +1 -1
  61. package/dist/lib/shared/ui/index.js +1 -1
  62. package/dist/lib/widgets/conditionBlock/ConditionBlock.js +1 -1
  63. package/dist/lib/widgets/conditionBlock/ConditionBlock.js.map +1 -1
  64. package/dist/lib/widgets/model/helpers.js +1 -1
  65. package/dist/stats.html +1 -1
  66. package/dist/types/lib/shared/ui/formElements/controlled/autocomplete/index.d.ts +1 -1
  67. package/dist/types/lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.d.ts +5 -0
  68. package/dist/types/lib/shared/ui/formElements/controlled/dayPickerControl/single.d.ts +5 -0
  69. package/dist/types/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.d.ts +9 -0
  70. package/dist/types/lib/shared/ui/formElements/uncontrolled/combobox/combobox.d.ts +10 -2
  71. package/dist/types/lib/shared/ui/formElements/uncontrolled/index.d.ts +7 -0
  72. package/dist/types/lib/shared/ui/formElements/uncontrolled/input/Input.d.ts +9 -2
  73. package/dist/types/lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.d.ts +9 -0
  74. package/dist/types/lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.d.ts +1 -0
  75. package/dist/types/lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.d.ts +9 -0
  76. package/dist/types/lib/shared/ui/formElements/uncontrolled/slider/SliderBase.d.ts +1 -1
  77. package/dist/types/lib/shared/ui/formElements/uncontrolled/switch/Switch.d.ts +3 -0
  78. package/dist/types/lib/shared/ui/formElements/uncontrolled/textarea/Textarea.d.ts +9 -1
  79. package/dist/types/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.d.ts +5 -0
  80. package/package.json +1 -1
  81. package/dist/lib/shared/ui/formElements/controlled/autocomplete/Autocomplete.js.map +0 -1
  82. /package/dist/types/lib/shared/ui/formElements/controlled/autocomplete/{Autocomplete.d.ts → AutocompleteControl.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useClickOutsideMany } from '../../../../hooks'\nimport { useCombobox, useKeyboardNavigation } from './hooks'\nimport type { ChangeHandler, ComboboxValue } from './model'\nimport type { ComboboxItemOption } from './ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { DropdownList, Icon, Portal } from '$/shared/ui'\nimport { type DropdownListClasses, type DropdownListProps } from '$/shared/ui/dropdownList'\nimport { type IFieldAttachmentProps } from '$/shared/ui/formElements/ui'\nimport { InputBase, type InputBaseProps } from '$/shared/ui/formElements/uncontrolled/input'\nimport { cn } from '$/shared/utils'\n\nexport type ComboboxClasses = {\n root?: string\n list?: { floating?: string } & DropdownListClasses\n input?: InputBaseProps['classes']\n}\n\nexport type ExternalHandlers<Multi extends boolean> = {\n changeHandler?: ChangeHandler<Multi>\n clickHandler?: (event: React.MouseEvent<HTMLElement>) => void\n blurHandler?: (event: React.FocusEvent<HTMLElement>) => void\n focusHandler?: (event: React.FocusEvent<HTMLElement>) => void\n inputChangeHandler?: (value: string) => void\n}\n\nexport interface ComboboxProps<Multi extends boolean>\n extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'>,\n Record<`data-${string}`, unknown> {\n /**\n * Список опций\n */\n options: ComboboxItemOption[]\n /**\n * Выбранное значение\n */\n value?: ComboboxValue<Multi>\n /**\n * Функция для изменения значения\n */\n onChange?: ChangeHandler<Multi>\n /**\n * Свойство управляющее поиском\n */\n searchable?: boolean\n /**\n * Открыть список по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<IFieldAttachmentProps>\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: ComboboxItemOption) => string\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Выключено поле\n */\n disabled?: boolean\n /**\n * Только для чтения\n */\n readOnly?: boolean\n /**\n * Дополнительные стили\n */\n classes?: ComboboxClasses\n /**\n * Дополнительные события\n */\n externalHandlers?: ExternalHandlers<Multi>\n /**\n * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Выключить фильтрацию списка\n */\n filterDisabled?: boolean\n /**\n * Включить рендеринг в портале\n * @property {false | HTMLElement} portal document.body\n */\n portal?: false | HTMLElement\n}\n\nconst InnerComponent = <Multi extends boolean>(\n {\n options: initialOptions,\n multiple,\n value,\n onChange,\n defaultOpen,\n attachmentProps,\n searchable,\n invalid,\n displayValue,\n label,\n disabled,\n readOnly,\n className,\n externalHandlers,\n inputValue,\n filterDisabled,\n onInputChange: externalInputChangeHandler,\n empty,\n classes,\n portal = globalThis ? globalThis?.document?.body : undefined\n }: ComboboxProps<Multi>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const { refs, floatingStyles } = useFloating<HTMLDivElement>({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { open, setOpen, state, changeHandler, options, search, onInputChange, comboboxDisplayValue } = useCombobox({\n multiple,\n value,\n onChange,\n searchable,\n defaultOpen,\n displayValue,\n initialOptions,\n filterDisabled,\n externalHandlers,\n externalInputValue: inputValue,\n externalOnInputChange: externalInputChangeHandler\n })\n\n useKeyboardNavigation({ ref: refs.domReference, openChangeHandler: setOpen })\n\n const getLabel = () => {\n if (!value) return ''\n\n if (multiple && searchable) {\n return comboboxDisplayValue(value)\n } else if (searchable) {\n return search\n } else {\n return comboboxDisplayValue(value)\n }\n }\n\n useClickOutsideMany([refs.floating, refs.reference as React.MutableRefObject<HTMLElement | null>], () => setOpen(false))\n\n const portalContainer = portal ?? refs.domReference.current!\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={ref}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={inputValue || getLabel()}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n if (!open) setOpen(true)\n externalHandlers?.clickHandler?.(event)\n }}\n onBlur={(event) => {\n externalHandlers?.blurHandler?.(event)\n }}\n onFocus={externalHandlers?.focusHandler}\n classes={{\n input: cn({\n 'cursor-pointer': !searchable,\n 'cursor-default': disabled,\n 'pointer-events-none': disabled || readOnly\n }),\n ...classes?.input\n }}\n autoComplete='off'\n attachmentProps={{\n icon: (\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open,\n 'text-color-negative': invalid\n })}\n />\n ),\n onClickIcon: () => setOpen((prev) => !prev),\n ...attachmentProps\n }}\n data-test-id='combobox-input'\n />\n\n <Portal root={portalContainer}>\n <AnimatePresence>\n {open && (\n <motion.div\n ref={refs.setFloating}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n className={cn('z-[1000]', floating)}\n style={{\n ...floatingStyles,\n width: refs.reference.current?.getBoundingClientRect().width\n }}\n >\n <DropdownList\n empty={empty}\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n target={refs.domReference}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </Portal>\n </div>\n )\n}\n\nexport const Combobox = forwardRef(InnerComponent) as <Multi extends boolean>(\n props: ComboboxProps<Multi> & { ref?: ForwardedRef<HTMLInputElement> }\n) => React.JSX.Element\n"],"names":["InnerComponent","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","inputValue","filterDisabled","externalInputChangeHandler","empty","classes","portal","_a","ref","floating","dropdownClasses","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","comboboxDisplayValue","useCombobox","useKeyboardNavigation","getLabel","useClickOutsideMany","portalContainer","jsxs","cn","jsx","InputBase","event","Icon","prev","Portal","AnimatePresence","motion","DropdownList","Combobox","forwardRef"],"mappings":"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"}
1
+ {"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useClickOutsideMany } from '../../../../hooks'\nimport { useCombobox, useKeyboardNavigation } from './hooks'\nimport type { ChangeHandler, ComboboxValue } from './model'\nimport type { ComboboxItemOption } from './ui'\nimport { type DataLayers, type DeepPartial } from '$/shared/types'\nimport { DropdownList, Icon, InputBase, type InputBaseProps, Portal } from '$/shared/ui'\nimport { type DropdownListClasses, type DropdownListProps } from '$/shared/ui/dropdownList'\nimport { type IFieldAttachmentProps } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\nexport type ComboboxClasses = {\n root?: string\n list?: { floating?: string } & DropdownListClasses\n input?: InputBaseProps['classes']\n}\n\nexport type ExternalHandlers<Multi extends boolean> = {\n changeHandler?: ChangeHandler<Multi>\n clickHandler?: (event: React.MouseEvent<HTMLElement>) => void\n blurHandler?: (event: React.FocusEvent<HTMLElement>) => void\n focusHandler?: (event: React.FocusEvent<HTMLElement>) => void\n inputChangeHandler?: (value: string) => void\n}\n\nexport interface ComboboxProps<Multi extends boolean>\n extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'>,\n Record<`data-${string}`, unknown> {\n /**\n * Список опций\n */\n options: ComboboxItemOption[]\n /**\n * Выбранное значение\n */\n value?: ComboboxValue<Multi>\n /**\n * Функция для изменения значения\n */\n onChange?: ChangeHandler<Multi>\n /**\n * Свойство управляющее поиском\n */\n searchable?: boolean\n /**\n * Открыть список по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<IFieldAttachmentProps>\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: ComboboxItemOption) => string\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Выключено поле\n */\n disabled?: boolean\n /**\n * Только для чтения\n */\n readOnly?: boolean\n /**\n * Дополнительные стили\n */\n classes?: ComboboxClasses\n /**\n * Дополнительные события\n */\n externalHandlers?: ExternalHandlers<Multi>\n /**\n * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Выключить фильтрацию списка\n */\n filterDisabled?: boolean\n /**\n * Включить рендеринг в портале\n * @property {false | HTMLElement} portal document.body\n */\n portal?: false | HTMLElement\n /**\n * Обработка ошибок для даталееров\n */\n ['data-error-message']?: string\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n}\n\nconst InnerComponent = <Multi extends boolean>(\n {\n options: initialOptions,\n multiple,\n value,\n onChange,\n defaultOpen,\n attachmentProps,\n searchable,\n invalid,\n displayValue,\n label,\n disabled,\n readOnly,\n className,\n externalHandlers,\n inputValue,\n filterDisabled,\n onInputChange: externalInputChangeHandler,\n empty,\n classes,\n portal = globalThis ? globalThis?.document?.body : undefined,\n ...props\n }: ComboboxProps<Multi>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const dataErrorMessage = props['data-error-message']\n\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const { refs, floatingStyles } = useFloating<HTMLDivElement>({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { open, setOpen, state, changeHandler, options, search, onInputChange, comboboxDisplayValue } = useCombobox({\n multiple,\n value,\n onChange,\n searchable,\n defaultOpen,\n displayValue,\n initialOptions,\n filterDisabled,\n externalHandlers,\n externalInputValue: inputValue,\n externalOnInputChange: externalInputChangeHandler\n })\n\n useKeyboardNavigation({ ref: refs.domReference, openChangeHandler: setOpen })\n\n const getLabel = () => {\n if (!value) return ''\n\n if (multiple && searchable) {\n return comboboxDisplayValue(value)\n } else if (searchable) {\n return search\n } else {\n return comboboxDisplayValue(value)\n }\n }\n\n useClickOutsideMany([refs.floating, refs.reference as React.MutableRefObject<HTMLElement | null>], () => setOpen(false))\n\n const portalContainer = portal ?? refs.domReference.current!\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={ref}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={inputValue || getLabel()}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n if (!open) setOpen(true)\n externalHandlers?.clickHandler?.(event)\n }}\n onBlur={(event) => {\n externalHandlers?.blurHandler?.(event)\n }}\n onFocus={externalHandlers?.focusHandler}\n classes={{\n input: cn({\n 'cursor-pointer': !searchable,\n 'cursor-default': disabled,\n 'pointer-events-none': disabled || readOnly\n }),\n ...classes?.input\n }}\n autoComplete='off'\n attachmentProps={{\n icon: (\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open,\n 'text-color-negative': invalid\n })}\n />\n ),\n onClickIcon: () => setOpen((prev) => !prev),\n ...attachmentProps\n }}\n data-test-id='combobox-input'\n data-error-message={dataErrorMessage}\n dataLayers={props?.dataLayers}\n />\n\n <Portal root={portalContainer}>\n <AnimatePresence>\n {open && (\n <motion.div\n ref={refs.setFloating}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n className={cn('z-[1000]', floating)}\n style={{\n ...floatingStyles,\n width: refs.reference.current?.getBoundingClientRect().width\n }}\n >\n <DropdownList\n empty={empty}\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n target={refs.domReference}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </Portal>\n </div>\n )\n}\n\nexport const Combobox = forwardRef(InnerComponent) as <Multi extends boolean>(\n props: ComboboxProps<Multi> & { ref?: ForwardedRef<HTMLInputElement> }\n) => React.JSX.Element\n"],"names":["InnerComponent","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","inputValue","filterDisabled","externalInputChangeHandler","empty","classes","portal","_a","props","ref","dataErrorMessage","floating","dropdownClasses","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","comboboxDisplayValue","useCombobox","useKeyboardNavigation","getLabel","useClickOutsideMany","portalContainer","jsxs","cn","jsx","InputBase","event","Icon","prev","Portal","AnimatePresence","motion","DropdownList","Combobox","forwardRef"],"mappings":"+pEA6GA,MAAMA,GAAiB,CACrB,CACE,QAASC,EACT,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,eAAAC,EACA,cAAeC,EACf,MAAAC,EACA,QAAAC,EACA,OAAAC,EAAS,YAAaC,MAAA,mCAAY,WAAZ,YAAAA,EAAsB,QAAO,OACnD,GAAGC,CACL,EACAC,IACG,OACH,MAAMC,EAAmBF,EAAM,oBAAoB,EAE7C,CAAE,SAAAG,EAAU,GAAGC,IAAoBP,GAAA,YAAAA,EAAS,OAAQ,CAAA,EAEpD,CAAE,KAAAQ,EAAM,eAAAC,CAAA,EAAmBC,EAA4B,CAC3D,UAAW,eACX,SAAU,WACV,WAAY,CACVC,GAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,GAAO,CAAC,CAAA,EAEV,qBAAsBC,EAAA,CACvB,EAEK,CAAE,KAAAC,EAAM,QAAAC,EAAS,MAAAC,EAAO,cAAAC,EAAe,QAAAC,EAAS,OAAAC,EAAQ,cAAAC,EAAe,qBAAAC,CAAA,EAAyBC,EAAY,CAChH,SAAAvC,EACA,MAAAC,EACA,SAAAC,EACA,WAAAG,EACA,YAAAF,EACA,aAAAI,EACA,eAAAR,EACA,eAAAe,EACA,iBAAAF,EACA,mBAAoBC,EACpB,sBAAuBE,CAAA,CACxB,EAEDyB,EAAsB,CAAE,IAAKf,EAAK,aAAc,kBAAmBO,EAAS,EAE5E,MAAMS,EAAW,IACVxC,EAEDD,GAAYK,EACPiC,EAAqBrC,CAAK,EACxBI,EACF+B,EAEAE,EAAqBrC,CAAK,EAPhB,GAWrByC,EAAoB,CAACjB,EAAK,SAAUA,EAAK,SAAuD,EAAG,IAAMO,EAAQ,EAAK,CAAC,EAEvH,MAAMW,EAAkBzB,GAAUO,EAAK,aAAa,QAEpD,OACEmB,EAAC,MAAA,CAAI,IAAKnB,EAAK,aAAc,UAAWoB,EAAG,kBAAmB5B,GAAA,YAAAA,EAAS,KAAMN,CAAS,EACpF,SAAA,CAAAmC,EAACC,EAAA,CACC,IAAA1B,EACA,MAAAb,EACA,QAAAF,EACA,SAAUI,GAAY,CAACL,EACvB,MAAOQ,GAAc4B,EAAA,EACrB,SAAUJ,EACV,SAAA5B,EACA,QAAUuC,GAAU,OACbjB,GAAMC,EAAQ,EAAI,GACvBb,EAAAP,GAAA,YAAAA,EAAkB,eAAlB,MAAAO,EAAA,KAAAP,EAAiCoC,EACnC,EACA,OAASA,GAAU,QACjB7B,EAAAP,GAAA,YAAAA,EAAkB,cAAlB,MAAAO,EAAA,KAAAP,EAAgCoC,EAClC,EACA,QAASpC,GAAA,YAAAA,EAAkB,aAC3B,QAAS,CACP,MAAOiC,EAAG,CACR,iBAAkB,CAACxC,EACnB,iBAAkBI,EAClB,sBAAuBA,GAAYC,CAAA,CACpC,EACD,GAAGO,GAAA,YAAAA,EAAS,KAAA,EAEd,aAAa,MACb,gBAAiB,CACf,KACE6B,EAACG,EAAA,CACC,KAAK,oBACL,UAAWJ,EAAG,yDAA0D,CACtE,aAAcd,EACd,sBAAuBzB,CAAA,CACxB,CAAA,CAAA,EAGL,YAAa,IAAM0B,EAASkB,GAAS,CAACA,CAAI,EAC1C,GAAG9C,CAAA,EAEL,eAAa,iBACb,qBAAoBkB,EACpB,WAAYF,GAAA,YAAAA,EAAO,UAAA,CAAA,IAGpB+B,EAAA,CAAO,KAAMR,EACZ,SAAAG,EAACM,GACE,SAAArB,GACCe,EAACO,GAAO,IAAP,CACC,IAAK5B,EAAK,YACV,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,CAAA,EACpB,WAAY,CAAE,SAAU,EAAA,EACxB,UAAWoB,EAAG,WAAYtB,CAAQ,EAClC,MAAO,CACL,GAAGG,EACH,OAAOP,EAAAM,EAAK,UAAU,UAAf,YAAAN,EAAwB,wBAAwB,KAAA,EAGzD,SAAA2B,EAACQ,EAAA,CACC,MAAAtC,EACA,QAAAmB,EACA,SAAAnC,EACA,OAAQkC,EACR,MAAOD,EACP,aAAA1B,EACA,QAASiB,EACT,OAAQC,EAAK,YAAA,CAAA,CACf,CAAA,EAGN,CAAA,CACF,CAAA,EACF,CAEJ,EAEa8B,GAAWC,EAAW1D,EAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/input/Input.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { type DataLayers } from '../../../../types/dataLayers'\nimport { FieldAttachment } from '../../ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\nexport type InputBaseClasses = {\n container?: string\n input?: string\n label?: string\n renderWrapper?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type InputBaseProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'placeholder' | 'size'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: InputBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Рендер дополнительных значений вместо базового ввода\n */\n renderValues?: () => React.JSX.Element | null\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n}\n\nexport const InputBase = forwardRef<HTMLInputElement, InputBaseProps>(\n (\n { label, value, invalid, disabled, classes, renderValues, attachmentProps, externalHandlers, onChange, dataLayers, ...props },\n ref\n ) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full gap-x-4 rounded-sm bg-color-blue-grey-100',\n '[&_label]:focus-within:top-[9px] [&_label]:focus-within:translate-y-0',\n '[&_label]:focus-within:desk-body-regular-s',\n // '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='input-root'\n >\n {renderValues ? (\n <div\n onClick={props.onClick}\n onBlur={props.onBlur}\n className={cn(\n 'peer desk-body-regular-l min-h-[54px] w-full bg-color-transparent [&_input]:px-4 [&_input]:pb-[6px] [&_input]:pt-[28px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n 'flex flex-row flex-wrap gap-2',\n classes?.renderWrapper\n )}\n >\n {renderValues()}\n </div>\n ) : (\n <input\n {...props}\n {...restHandlers}\n onChange={onValueChange}\n disabled={disabled}\n data-layer-id={dataLayers?.targetId}\n value={value ?? ''}\n placeholder={label}\n aria-placeholder={label}\n aria-invalid={invalid}\n ref={ref}\n id={id}\n className={cn(\n 'peer desk-body-regular-l w-full bg-color-transparent px-4 pb-[9px] pt-[25px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n {\n hidden: Boolean(renderValues)\n },\n classes?.input\n )}\n />\n )}\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-l pointer-events-none absolute left-4 w-[80%] truncate text-start',\n 'top-1/2 -translate-y-1/2 text-color-tetriary duration-100',\n {\n 'desk-body-regular-s top-[9px] translate-y-0': Boolean(value),\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n {attachmentProps && <FieldAttachment {...attachmentProps} />}\n </div>\n )\n }\n)\nInputBase.displayName = 'InputBase'\n"],"names":["InputBase","forwardRef","label","value","invalid","disabled","classes","renderValues","attachmentProps","externalHandlers","onChange","dataLayers","props","ref","id","useId","externalOnChange","restHandlers","onValueChange","event","jsxs","cn","jsx","FieldAttachment"],"mappings":"2NAqDO,MAAMA,EAAYC,EACvB,CACE,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,aAAAC,EAAc,gBAAAC,EAAiB,iBAAAC,EAAkB,SAAAC,EAAU,WAAAC,EAAY,GAAGC,CAAA,EACtHC,IACG,CACH,MAAMC,EAAKC,EAAA,EAEL,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBR,GAAoB,CAAA,EAEtES,EAAiBC,GAA+C,CAChET,KAAmBS,CAAK,EACxBH,KAAmCG,CAAK,CAC9C,EAEA,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,iEACA,wEACA,6CAEA,+BACA,oEACA,CACE,2BAA4BjB,CAAA,EAE9BE,GAAA,YAAAA,EAAS,SAAA,EAEX,eAAa,aAEZ,SAAA,CAAAC,EACCe,EAAC,MAAA,CACC,QAASV,EAAM,QACf,OAAQA,EAAM,OACd,UAAWS,EACT,0HACA,kEACA,gCACAf,GAAA,YAAAA,EAAS,aAAA,EAGV,SAAAC,EAAA,CAAa,CAAA,EAGhBe,EAAC,QAAA,CACE,GAAGV,EACH,GAAGK,EACJ,SAAUC,EACV,SAAAb,EACA,gBAAeM,GAAA,YAAAA,EAAY,SAC3B,MAAOR,GAAS,GAChB,YAAaD,EACb,mBAAkBA,EAClB,eAAcE,EACd,IAAAS,EACA,GAAAC,EACA,UAAWO,EACT,+EACA,kEACA,CACE,OAAQ,EAAQd,CAAY,EAE9BD,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,EAGJgB,EAAC,QAAA,CACC,QAASR,EACT,UAAWO,EACT,sFACA,4DACA,CACE,8CAA+C,EAAQlB,EACvD,sBAAuBE,CAAA,EAEzBC,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAJ,CAAA,CAAA,EAEFM,GAAmBc,EAACC,EAAA,CAAiB,GAAGf,CAAA,CAAiB,CAAA,CAAA,CAAA,CAGhE,CACF,EACAR,EAAU,YAAc"}
1
+ {"version":3,"file":"Input.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/input/Input.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { type DataLayers } from '../../../../types'\nimport { FieldAttachment } from '../../ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\nexport type InputBaseClasses = {\n container?: string\n input?: string\n label?: string\n renderWrapper?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type InputBaseProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'placeholder' | 'size'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: InputBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Рендер дополнительных значений вместо базового ввода\n */\n renderValues?: () => React.JSX.Element | null\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n /**\n * Обработка ошибок для даталееров\n */\n ['data-error-message']?: string\n}\n\nexport const InputBase = forwardRef<HTMLInputElement, InputBaseProps>(\n (\n { label, value, invalid, disabled, classes, renderValues, attachmentProps, externalHandlers, onChange, dataLayers, ...props },\n ref\n ) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full gap-x-4 rounded-sm bg-color-blue-grey-100',\n '[&_label]:focus-within:top-[9px] [&_label]:focus-within:translate-y-0',\n '[&_label]:focus-within:desk-body-regular-s',\n // '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='input-root'\n >\n {renderValues ? (\n <div\n onClick={props.onClick}\n onBlur={props.onBlur}\n className={cn(\n 'peer desk-body-regular-l min-h-[54px] w-full bg-color-transparent [&_input]:px-4 [&_input]:pb-[6px] [&_input]:pt-[28px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n 'flex flex-row flex-wrap gap-2',\n classes?.renderWrapper\n )}\n >\n {renderValues()}\n </div>\n ) : (\n <input\n {...props}\n {...restHandlers}\n onChange={onValueChange}\n disabled={disabled}\n data-layer-id={dataLayers?.targetId}\n value={value ?? ''}\n placeholder={label}\n aria-placeholder={label}\n aria-invalid={invalid}\n ref={ref}\n id={id}\n className={cn(\n 'peer desk-body-regular-l w-full bg-color-transparent px-4 pb-[9px] pt-[25px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n {\n hidden: Boolean(renderValues)\n },\n classes?.input\n )}\n />\n )}\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-l pointer-events-none absolute left-4 w-[80%] truncate text-start',\n 'top-1/2 -translate-y-1/2 text-color-tetriary duration-100',\n {\n 'desk-body-regular-s top-[9px] translate-y-0': Boolean(value),\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n {attachmentProps && <FieldAttachment {...attachmentProps} />}\n </div>\n )\n }\n)\nInputBase.displayName = 'InputBase'\n"],"names":["InputBase","forwardRef","label","value","invalid","disabled","classes","renderValues","attachmentProps","externalHandlers","onChange","dataLayers","props","ref","id","useId","externalOnChange","restHandlers","onValueChange","event","jsxs","cn","jsx","FieldAttachment"],"mappings":"2NAyDO,MAAMA,EAAYC,EACvB,CACE,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,aAAAC,EAAc,gBAAAC,EAAiB,iBAAAC,EAAkB,SAAAC,EAAU,WAAAC,EAAY,GAAGC,CAAA,EACtHC,IACG,CACH,MAAMC,EAAKC,EAAA,EAEL,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBR,GAAoB,CAAA,EAEtES,EAAiBC,GAA+C,CAChET,KAAmBS,CAAK,EACxBH,KAAmCG,CAAK,CAC9C,EAEA,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,iEACA,wEACA,6CAEA,+BACA,oEACA,CACE,2BAA4BjB,CAAA,EAE9BE,GAAA,YAAAA,EAAS,SAAA,EAEX,eAAa,aAEZ,SAAA,CAAAC,EACCe,EAAC,MAAA,CACC,QAASV,EAAM,QACf,OAAQA,EAAM,OACd,UAAWS,EACT,0HACA,kEACA,gCACAf,GAAA,YAAAA,EAAS,aAAA,EAGV,SAAAC,EAAA,CAAa,CAAA,EAGhBe,EAAC,QAAA,CACE,GAAGV,EACH,GAAGK,EACJ,SAAUC,EACV,SAAAb,EACA,gBAAeM,GAAA,YAAAA,EAAY,SAC3B,MAAOR,GAAS,GAChB,YAAaD,EACb,mBAAkBA,EAClB,eAAcE,EACd,IAAAS,EACA,GAAAC,EACA,UAAWO,EACT,+EACA,kEACA,CACE,OAAQ,EAAQd,CAAY,EAE9BD,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,EAGJgB,EAAC,QAAA,CACC,QAASR,EACT,UAAWO,EACT,sFACA,4DACA,CACE,8CAA+C,EAAQlB,EACvD,sBAAuBE,CAAA,EAEzBC,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAJ,CAAA,CAAA,EAEFM,GAAmBc,EAACC,EAAA,CAAiB,GAAGf,CAAA,CAAiB,CAAA,CAAA,CAAA,CAGhE,CACF,EACAR,EAAU,YAAc"}
@@ -1,2 +1,2 @@
1
- import{jsx as m,Fragment as E}from"react/jsx-runtime";import{forwardRef as P,useRef as T,useEffect as _}from"react";import{OTPInput as k,REGEXP_ONLY_DIGITS as v}from"../../../../../../node_modules/input-otp/dist/index.js";import{InputOTPSlot as C}from"./ui/InputOtpSlot.js";import{cn as R}from"../../../../utils/cn.js";import{mergeRefs as F}from"../../../../utils/mergeRefs.js";const D=P(({value:O,onChange:u,classes:f,maxLength:p=4,initialFocus:I=!0,externalHandlers:o,invalid:N,...w},B)=>{const t=T(null);return _(()=>{t.current&&I&&t.current.focus()},[I]),m(E,{children:m(k,{pattern:v,value:O??"",onChange:c=>{var i;u==null||u(c),(i=o==null?void 0:o.onChange)==null||i.call(o,c)},ref:F(t,B),containerClassName:R("flex items-center w-full",f==null?void 0:f.inputContainer),className:R("disabled:cursor-not-allowed",f==null?void 0:f.input),onClick:o==null?void 0:o.onClick,maxLength:p,onBlur:o==null?void 0:o.onBlur,"aria-invalid":N,onFocus:o==null?void 0:o.onFocus,...w,children:m("div",{className:R("m-auto flex w-max items-center gap-4",f==null?void 0:f.container),children:p>0&&Array.from({length:p},(c,i)=>m(C,{invalid:N,index:i},i))})})})});export{D as InputOtpBase};
1
+ import{jsx as m,Fragment as P}from"react/jsx-runtime";import{forwardRef as T,useRef as _,useEffect as k}from"react";import{OTPInput as v,REGEXP_ONLY_DIGITS as C}from"../../../../../../node_modules/input-otp/dist/index.js";import{InputOTPSlot as F}from"./ui/InputOtpSlot.js";import{cn as R}from"../../../../utils/cn.js";import{mergeRefs as G}from"../../../../utils/mergeRefs.js";const K=T(({value:w,onChange:u,classes:i,maxLength:p=4,initialFocus:N=!0,externalHandlers:o,invalid:O,dataLayers:t,...B},E)=>{const c=_(null);return k(()=>{c.current&&N&&c.current.focus()},[N]),m(P,{children:m(v,{pattern:C,value:w??"",onChange:I=>{var f;u==null||u(I),(f=o==null?void 0:o.onChange)==null||f.call(o,I)},ref:G(c,E),containerClassName:R("flex items-center w-full",i==null?void 0:i.inputContainer),className:R("disabled:cursor-not-allowed",i==null?void 0:i.input),onClick:o==null?void 0:o.onClick,maxLength:p,onBlur:o==null?void 0:o.onBlur,"aria-invalid":O,onFocus:o==null?void 0:o.onFocus,"data-layer-id":t==null?void 0:t.targetId,...B,children:m("div",{className:R("m-auto flex w-max items-center gap-4",i==null?void 0:i.container),children:p>0&&Array.from({length:p},(I,f)=>m(F,{invalid:O,index:f},f))})})})});export{K as InputOtpBase};
2
2
  //# sourceMappingURL=InputOtpBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputOtpBase.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef } from 'react'\nimport { OTPInput, type OTPInputProps, REGEXP_ONLY_DIGITS } from 'input-otp'\nimport { InputOTPSlot, type InputOTPSlotClasses } from './ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type InputOtpBaseClasses = {\n input?: string\n inputContainer?: string\n container?: string\n slot?: InputOTPSlotClasses\n}\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLDivElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void\n}\n\nexport type InputOtpBaseProps = Omit<OTPInputProps, 'render'> & {\n /**\n * Внешние классы которыми можно поменять стили\n */\n classes?: InputOtpBaseClasses\n /**\n * Изначальный автофокус\n */\n initialFocus?: boolean\n /**\n * Внешние handlers\n */\n externalHandlers?: ExternalHandlers\n /**\n * Для aria-invalid валидное или не валидное поле\n */\n invalid?: boolean\n}\n\nexport const InputOtpBase = forwardRef<HTMLInputElement, InputOtpBaseProps>(\n ({ value, onChange, classes, maxLength = 4, initialFocus = true, externalHandlers, invalid, ...props }, ref) => {\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (inputRef.current && initialFocus) {\n inputRef.current.focus()\n }\n }, [initialFocus])\n\n return (\n <>\n <OTPInput\n pattern={REGEXP_ONLY_DIGITS}\n value={value ?? ''}\n onChange={(newValue) => {\n onChange?.(newValue)\n externalHandlers?.onChange?.(newValue)\n }}\n ref={mergeRefs(inputRef, ref)}\n containerClassName={cn('flex items-center w-full', classes?.inputContainer)}\n className={cn('disabled:cursor-not-allowed', classes?.input)}\n onClick={externalHandlers?.onClick}\n maxLength={maxLength}\n onBlur={externalHandlers?.onBlur}\n aria-invalid={invalid}\n onFocus={externalHandlers?.onFocus}\n {...props}\n >\n <div className={cn('m-auto flex w-max items-center gap-4', classes?.container)}>\n {maxLength > 0 &&\n Array.from({ length: maxLength }, (_, inputIndex) => (\n <InputOTPSlot key={inputIndex} invalid={invalid} index={inputIndex} />\n ))}\n </div>\n </OTPInput>\n </>\n )\n }\n)\n"],"names":["InputOtpBase","forwardRef","value","onChange","classes","maxLength","initialFocus","externalHandlers","invalid","props","ref","inputRef","useRef","useEffect","jsx","Fragment","OTPInput","REGEXP_ONLY_DIGITS","newValue","_a","mergeRefs","cn","_","inputIndex","InputOTPSlot"],"mappings":"0XAsCO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,QAAAC,EAAS,UAAAC,EAAY,EAAG,aAAAC,EAAe,GAAM,iBAAAC,EAAkB,QAAAC,EAAS,GAAGC,CAAA,EAASC,IAAQ,CAC9G,MAAMC,EAAWC,EAAyB,IAAI,EAE9C,OAAAC,EAAU,IAAM,CACVF,EAAS,SAAWL,GACtBK,EAAS,QAAQ,MAAA,CAErB,EAAG,CAACL,CAAY,CAAC,EAGfQ,EAAAC,EAAA,CACE,SAAAD,EAACE,EAAA,CACC,QAASC,EACT,MAAOf,GAAS,GAChB,SAAWgB,GAAa,OACtBf,GAAA,MAAAA,EAAWe,IACXC,EAAAZ,GAAA,YAAAA,EAAkB,WAAlB,MAAAY,EAAA,KAAAZ,EAA6BW,EAC/B,EACA,IAAKE,EAAUT,EAAUD,CAAG,EAC5B,mBAAoBW,EAAG,2BAA4BjB,GAAA,YAAAA,EAAS,cAAc,EAC1E,UAAWiB,EAAG,8BAA+BjB,GAAA,YAAAA,EAAS,KAAK,EAC3D,QAASG,GAAA,YAAAA,EAAkB,QAC3B,UAAAF,EACA,OAAQE,GAAA,YAAAA,EAAkB,OAC1B,eAAcC,EACd,QAASD,GAAA,YAAAA,EAAkB,QAC1B,GAAGE,EAEJ,SAAAK,EAAC,MAAA,CAAI,UAAWO,EAAG,uCAAwCjB,GAAA,YAAAA,EAAS,SAAS,EAC1E,SAAAC,EAAY,GACX,MAAM,KAAK,CAAE,OAAQA,CAAA,EAAa,CAACiB,EAAGC,IACpCT,EAACU,EAAA,CAA8B,QAAAhB,EAAkB,MAAOe,CAAA,EAArCA,CAAiD,CACrE,CAAA,CACL,CAAA,CAAA,EAEJ,CAEJ,CACF"}
1
+ {"version":3,"file":"InputOtpBase.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef } from 'react'\nimport { OTPInput, type OTPInputProps, REGEXP_ONLY_DIGITS } from 'input-otp'\nimport { type DataLayers } from '../../../../types'\nimport { InputOTPSlot, type InputOTPSlotClasses } from './ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type InputOtpBaseClasses = {\n input?: string\n inputContainer?: string\n container?: string\n slot?: InputOTPSlotClasses\n}\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLDivElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void\n}\n\nexport type InputOtpBaseProps = Omit<OTPInputProps, 'render'> & {\n /**\n * Внешние классы которыми можно поменять стили\n */\n classes?: InputOtpBaseClasses\n /**\n * Изначальный автофокус\n */\n initialFocus?: boolean\n /**\n * Внешние handlers\n */\n externalHandlers?: ExternalHandlers\n /**\n * Для aria-invalid валидное или не валидное поле\n */\n invalid?: boolean\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n}\n\nexport const InputOtpBase = forwardRef<HTMLInputElement, InputOtpBaseProps>(\n ({ value, onChange, classes, maxLength = 4, initialFocus = true, externalHandlers, invalid, dataLayers, ...props }, ref) => {\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (inputRef.current && initialFocus) {\n inputRef.current.focus()\n }\n }, [initialFocus])\n\n return (\n <>\n <OTPInput\n pattern={REGEXP_ONLY_DIGITS}\n value={value ?? ''}\n onChange={(newValue) => {\n onChange?.(newValue)\n externalHandlers?.onChange?.(newValue)\n }}\n ref={mergeRefs(inputRef, ref)}\n containerClassName={cn('flex items-center w-full', classes?.inputContainer)}\n className={cn('disabled:cursor-not-allowed', classes?.input)}\n onClick={externalHandlers?.onClick}\n maxLength={maxLength}\n onBlur={externalHandlers?.onBlur}\n aria-invalid={invalid}\n onFocus={externalHandlers?.onFocus}\n data-layer-id={dataLayers?.targetId}\n {...props}\n >\n <div className={cn('m-auto flex w-max items-center gap-4', classes?.container)}>\n {maxLength > 0 &&\n Array.from({ length: maxLength }, (_, inputIndex) => (\n <InputOTPSlot key={inputIndex} invalid={invalid} index={inputIndex} />\n ))}\n </div>\n </OTPInput>\n </>\n )\n }\n)\n"],"names":["InputOtpBase","forwardRef","value","onChange","classes","maxLength","initialFocus","externalHandlers","invalid","dataLayers","props","ref","inputRef","useRef","useEffect","jsx","Fragment","OTPInput","REGEXP_ONLY_DIGITS","newValue","_a","mergeRefs","cn","_","inputIndex","InputOTPSlot"],"mappings":"0XA2CO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,QAAAC,EAAS,UAAAC,EAAY,EAAG,aAAAC,EAAe,GAAM,iBAAAC,EAAkB,QAAAC,EAAS,WAAAC,EAAY,GAAGC,CAAA,EAASC,IAAQ,CAC1H,MAAMC,EAAWC,EAAyB,IAAI,EAE9C,OAAAC,EAAU,IAAM,CACVF,EAAS,SAAWN,GACtBM,EAAS,QAAQ,MAAA,CAErB,EAAG,CAACN,CAAY,CAAC,EAGfS,EAAAC,EAAA,CACE,SAAAD,EAACE,EAAA,CACC,QAASC,EACT,MAAOhB,GAAS,GAChB,SAAWiB,GAAa,OACtBhB,GAAA,MAAAA,EAAWgB,IACXC,EAAAb,GAAA,YAAAA,EAAkB,WAAlB,MAAAa,EAAA,KAAAb,EAA6BY,EAC/B,EACA,IAAKE,EAAUT,EAAUD,CAAG,EAC5B,mBAAoBW,EAAG,2BAA4BlB,GAAA,YAAAA,EAAS,cAAc,EAC1E,UAAWkB,EAAG,8BAA+BlB,GAAA,YAAAA,EAAS,KAAK,EAC3D,QAASG,GAAA,YAAAA,EAAkB,QAC3B,UAAAF,EACA,OAAQE,GAAA,YAAAA,EAAkB,OAC1B,eAAcC,EACd,QAASD,GAAA,YAAAA,EAAkB,QAC3B,gBAAeE,GAAA,YAAAA,EAAY,SAC1B,GAAGC,EAEJ,SAAAK,EAAC,MAAA,CAAI,UAAWO,EAAG,uCAAwClB,GAAA,YAAAA,EAAS,SAAS,EAC1E,SAAAC,EAAY,GACX,MAAM,KAAK,CAAE,OAAQA,CAAA,EAAa,CAACkB,EAAGC,IACpCT,EAACU,EAAA,CAA8B,QAAAjB,EAAkB,MAAOgB,CAAA,EAArCA,CAAiD,CACrE,CAAA,CACL,CAAA,CAAA,EAEJ,CAEJ,CACF"}
@@ -1,2 +1,2 @@
1
- import{jsx as m,Fragment as N}from"react/jsx-runtime";import{forwardRef as j,createElement as k}from"react";import{Root as B}from"../../../../../../node_modules/@radix-ui/react-radio-group/dist/index.js";import{RadioItem as E}from"./ui/RadioItem.js";import{cn as i}from"../../../../utils/cn.js";const q=j(({options:t,displayValue:s,returnValue:o,invalid:e,className:n,disabled:a,classes:d,externalHandlers:h,onValueChange:c,renderComponent:f,...g},R)=>{const{root:w,list:x,radioItem:C}=d||{},{onChange:l,...u}=h||{};return m(B,{...g,onValueChange:r=>{c&&c(r),l&&l(r)},"aria-invalid":e,disabled:a,ref:R,className:i("w-full",n,w),children:m(N,{children:f?f({options:t,returnValue:o,displayValue:s,invalid:e,disabled:a}):m("ul",{className:i("w-full",x),children:t.map((r,I)=>k(E,{...u,key:r.value,"data-test-id":`radio-item-${I}`,item:r,invalid:e,disabled:a||(r==null?void 0:r.disabled),classes:C,returnValue:o,displayValue:s}))})})})});export{q as RadioGroupBase};
1
+ import{jsx as o,Fragment as j}from"react/jsx-runtime";import{forwardRef as k,createElement as B}from"react";import{Root as E}from"../../../../../../node_modules/@radix-ui/react-radio-group/dist/index.js";import{RadioItem as F}from"./ui/RadioItem.js";import{cn as n}from"../../../../utils/cn.js";const z=k(({options:a,displayValue:c,returnValue:l,invalid:e,className:d,disabled:m,classes:h,externalHandlers:g,onValueChange:s,renderComponent:f,dataLayers:t,...R},w)=>{const{root:x,list:C,radioItem:I}=h||{},{onChange:i,...u}=g||{};return o(E,{...R,onValueChange:r=>{s&&s(r),i&&i(r)},"aria-invalid":e,disabled:m,ref:w,className:n("w-full",d,x),"data-layer-id":t==null?void 0:t.targetId,children:o(j,{children:f?f({options:a,returnValue:l,displayValue:c,invalid:e,disabled:m}):o("ul",{className:n("w-full",C),children:a.map((r,N)=>B(F,{...u,key:r.value,"data-test-id":`radio-item-${N}`,item:r,invalid:e,disabled:m||(r==null?void 0:r.disabled),classes:I,returnValue:l,displayValue:c}))})})})});export{z as RadioGroupBase};
2
2
  //# sourceMappingURL=RadioGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type RadioGroupProps as RadioGroupPrimitiveProps, Root } from '@radix-ui/react-radio-group'\nimport { RadioItem, type RadioOption } from './ui'\nimport { type RadioItemClasses } from './ui/RadioItem'\nimport { cn } from '$/shared/utils'\n\ntype RadioGroupClasses = {\n root?: string\n list?: string\n radioItem?: RadioItemClasses\n}\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type RenderComponentProps = { item: RadioOption; classes?: RadioItemClasses } & Pick<\n RadioGroupBaseProps,\n 'displayValue' | 'returnValue' | 'invalid' | 'disabled'\n>\n\nexport type RadioGroupBaseProps = Omit<RadioGroupPrimitiveProps, 'children'> & {\n /**\n * Список отображаемых опций\n */\n options: RadioOption[]\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: RadioOption) => string\n /**\n * Функция для управления возвращаемым значением\n */\n returnValue?: (option: RadioOption) => string\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: RadioGroupClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Отрисовка компонента из вне\n */\n renderComponent?: (props: RadioGroupBaseProps) => React.JSX.Element\n}\n\nexport const RadioGroupBase = forwardRef<HTMLDivElement, RadioGroupBaseProps>(\n (\n {\n options,\n displayValue,\n returnValue,\n invalid,\n className,\n disabled,\n classes,\n externalHandlers,\n onValueChange,\n renderComponent,\n ...props\n },\n ref\n ) => {\n const { root, list, radioItem } = classes || {}\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onChange = (value: string) => {\n if (onValueChange) onValueChange(value)\n if (externalOnChange) externalOnChange(value)\n }\n\n return (\n <Root\n {...props}\n onValueChange={onChange}\n aria-invalid={invalid}\n disabled={disabled}\n ref={ref}\n className={cn('w-full', className, root)}\n >\n <>\n {renderComponent ? (\n renderComponent({ options, returnValue, displayValue, invalid, disabled })\n ) : (\n <ul className={cn('w-full', list)}>\n {options.map((option, index) => (\n <RadioItem\n {...restHandlers}\n key={option.value}\n data-test-id={`radio-item-${index}`}\n item={option}\n invalid={invalid}\n disabled={disabled || option?.disabled}\n classes={radioItem}\n returnValue={returnValue}\n displayValue={displayValue}\n />\n ))}\n </ul>\n )}\n </>\n </Root>\n )\n }\n)\n"],"names":["RadioGroupBase","forwardRef","options","displayValue","returnValue","invalid","className","disabled","classes","externalHandlers","onValueChange","renderComponent","props","ref","root","list","radioItem","externalOnChange","restHandlers","jsx","Root","value","cn","Fragment","option","index","createElement","RadioItem"],"mappings":"uSAuDO,MAAMA,EAAiBC,EAC5B,CACE,CACE,QAAAC,EACA,aAAAC,EACA,YAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,KAAAC,EAAM,KAAAC,EAAM,UAAAC,CAAA,EAAcR,GAAW,CAAA,EAEvC,CAAE,SAAUS,EAAkB,GAAGC,CAAA,EAAiBT,GAAoB,CAAA,EAO5E,OACEU,EAACC,EAAA,CACE,GAAGR,EACJ,cARcS,GAAkB,CAC9BX,KAA6BW,CAAK,EAClCJ,KAAmCI,CAAK,CAC9C,EAMI,eAAchB,EACd,SAAAE,EACA,IAAAM,EACA,UAAWS,EAAG,SAAUhB,EAAWQ,CAAI,EAEvC,SAAAK,EAAAI,EAAA,CACG,WACCZ,EAAgB,CAAE,QAAAT,EAAS,YAAAE,EAAa,aAAAD,EAAc,QAAAE,EAAS,SAAAE,CAAA,CAAU,IAExE,KAAA,CAAG,UAAWe,EAAG,SAAUP,CAAI,EAC7B,SAAAb,EAAQ,IAAI,CAACsB,EAAQC,IACpBC,EAACC,EAAA,CACE,GAAGT,EACJ,IAAKM,EAAO,MACZ,eAAc,cAAcC,CAAK,GACjC,KAAMD,EACN,QAAAnB,EACA,SAAUE,IAAYiB,GAAA,YAAAA,EAAQ,UAC9B,QAASR,EACT,YAAAZ,EACA,aAAAD,CAAA,CAAA,CAEH,EACH,CAAA,CAEJ,CAAA,CAAA,CAGN,CACF"}
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type RadioGroupProps as RadioGroupPrimitiveProps, Root } from '@radix-ui/react-radio-group'\nimport { type DataLayers } from '../../../../types'\nimport { RadioItem, type RadioOption } from './ui'\nimport { type RadioItemClasses } from './ui/RadioItem'\nimport { cn } from '$/shared/utils'\n\ntype RadioGroupClasses = {\n root?: string\n list?: string\n radioItem?: RadioItemClasses\n}\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type RenderComponentProps = { item: RadioOption; classes?: RadioItemClasses } & Pick<\n RadioGroupBaseProps,\n 'displayValue' | 'returnValue' | 'invalid' | 'disabled'\n>\n\nexport type RadioGroupBaseProps = Omit<RadioGroupPrimitiveProps, 'children'> & {\n /**\n * Список отображаемых опций\n */\n options: RadioOption[]\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: RadioOption) => string\n /**\n * Функция для управления возвращаемым значением\n */\n returnValue?: (option: RadioOption) => string\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: RadioGroupClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Отрисовка компонента из вне\n */\n renderComponent?: (props: RadioGroupBaseProps) => React.JSX.Element\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n}\n\nexport const RadioGroupBase = forwardRef<HTMLDivElement, RadioGroupBaseProps>(\n (\n {\n options,\n displayValue,\n returnValue,\n invalid,\n className,\n disabled,\n classes,\n externalHandlers,\n onValueChange,\n renderComponent,\n dataLayers,\n ...props\n },\n ref\n ) => {\n const { root, list, radioItem } = classes || {}\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onChange = (value: string) => {\n if (onValueChange) onValueChange(value)\n if (externalOnChange) externalOnChange(value)\n }\n\n return (\n <Root\n {...props}\n onValueChange={onChange}\n aria-invalid={invalid}\n disabled={disabled}\n ref={ref}\n className={cn('w-full', className, root)}\n data-layer-id={dataLayers?.targetId}\n >\n <>\n {renderComponent ? (\n renderComponent({ options, returnValue, displayValue, invalid, disabled })\n ) : (\n <ul className={cn('w-full', list)}>\n {options.map((option, index) => (\n <RadioItem\n {...restHandlers}\n key={option.value}\n data-test-id={`radio-item-${index}`}\n item={option}\n invalid={invalid}\n disabled={disabled || option?.disabled}\n classes={radioItem}\n returnValue={returnValue}\n displayValue={displayValue}\n />\n ))}\n </ul>\n )}\n </>\n </Root>\n )\n }\n)\n"],"names":["RadioGroupBase","forwardRef","options","displayValue","returnValue","invalid","className","disabled","classes","externalHandlers","onValueChange","renderComponent","dataLayers","props","ref","root","list","radioItem","externalOnChange","restHandlers","jsx","Root","value","cn","Fragment","option","index","createElement","RadioItem"],"mappings":"uSA4DO,MAAMA,EAAiBC,EAC5B,CACE,CACE,QAAAC,EACA,aAAAC,EACA,YAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,KAAAC,EAAM,KAAAC,EAAM,UAAAC,CAAA,EAAcT,GAAW,CAAA,EAEvC,CAAE,SAAUU,EAAkB,GAAGC,CAAA,EAAiBV,GAAoB,CAAA,EAO5E,OACEW,EAACC,EAAA,CACE,GAAGR,EACJ,cARcS,GAAkB,CAC9BZ,KAA6BY,CAAK,EAClCJ,KAAmCI,CAAK,CAC9C,EAMI,eAAcjB,EACd,SAAAE,EACA,IAAAO,EACA,UAAWS,EAAG,SAAUjB,EAAWS,CAAI,EACvC,gBAAeH,GAAA,YAAAA,EAAY,SAE3B,SAAAQ,EAAAI,EAAA,CACG,WACCb,EAAgB,CAAE,QAAAT,EAAS,YAAAE,EAAa,aAAAD,EAAc,QAAAE,EAAS,SAAAE,CAAA,CAAU,IAExE,KAAA,CAAG,UAAWgB,EAAG,SAAUP,CAAI,EAC7B,SAAAd,EAAQ,IAAI,CAACuB,EAAQC,IACpBC,EAACC,EAAA,CACE,GAAGT,EACJ,IAAKM,EAAO,MACZ,eAAc,cAAcC,CAAK,GACjC,KAAMD,EACN,QAAApB,EACA,SAAUE,IAAYkB,GAAA,YAAAA,EAAQ,UAC9B,QAASR,EACT,YAAAb,EACA,aAAAD,CAAA,CAAA,CAEH,EACH,CAAA,CAEJ,CAAA,CAAA,CAGN,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"SliderBase.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/SliderBase.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type SliderGatewayProps } from './model/types'\nimport { SliderAlgorithmic } from './ui/sliderAlgorithmic'\nimport { SliderMarks } from './ui/sliderMarks'\nimport { SliderStep } from './ui/sliderStep'\n\nexport const SliderBase = forwardRef<HTMLInputElement, SliderGatewayProps>((props, ref) => {\n switch (props.componentType) {\n case 'marks':\n return <SliderMarks {...props} ref={ref} componentType='marks' />\n case 'algorithmic':\n return <SliderAlgorithmic {...props} ref={ref} componentType='algorithmic' />\n case 'step':\n default:\n return <SliderStep {...props} ref={ref} componentType='step' />\n }\n})\n"],"names":["SliderBase","forwardRef","props","ref","SliderMarks","SliderAlgorithmic","SliderStep"],"mappings":"oRAMO,MAAMA,EAAaC,EAAiD,CAACC,EAAOC,IAAQ,CACzF,OAAQD,EAAM,cAAA,CACZ,IAAK,QACH,SAAQE,EAAA,CAAa,GAAGF,EAAO,IAAAC,EAAU,cAAc,QAAQ,EACjE,IAAK,cACH,SAAQE,EAAA,CAAmB,GAAGH,EAAO,IAAAC,EAAU,cAAc,cAAc,EAC7E,IAAK,OACL,QACE,SAAQG,EAAA,CAAY,GAAGJ,EAAO,IAAAC,EAAU,cAAc,OAAO,CAAA,CAEnE,CAAC"}
1
+ {"version":3,"file":"SliderBase.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/SliderBase.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type SliderGatewayProps } from './model'\nimport { SliderAlgorithmic } from './ui/sliderAlgorithmic'\nimport { SliderMarks } from './ui/sliderMarks'\nimport { SliderStep } from './ui/sliderStep'\n\nexport const SliderBase = forwardRef<HTMLInputElement, SliderGatewayProps>((props, ref) => {\n switch (props.componentType) {\n case 'marks':\n return <SliderMarks {...props} ref={ref} componentType='marks' />\n case 'algorithmic':\n return <SliderAlgorithmic {...props} ref={ref} componentType='algorithmic' />\n case 'step':\n default:\n return <SliderStep {...props} ref={ref} componentType='step' />\n }\n})\n"],"names":["SliderBase","forwardRef","props","ref","SliderMarks","SliderAlgorithmic","SliderStep"],"mappings":"oRAMO,MAAMA,EAAaC,EAAiD,CAACC,EAAOC,IAAQ,CACzF,OAAQD,EAAM,cAAA,CACZ,IAAK,QACH,SAAQE,EAAA,CAAa,GAAGF,EAAO,IAAAC,EAAU,cAAc,QAAQ,EACjE,IAAK,cACH,SAAQE,EAAA,CAAmB,GAAGH,EAAO,IAAAC,EAAU,cAAc,cAAc,EAC7E,IAAK,OACL,QACE,SAAQG,EAAA,CAAY,GAAGJ,EAAO,IAAAC,EAAU,cAAc,OAAO,CAAA,CAEnE,CAAC"}
@@ -1,2 +1,2 @@
1
- import{jsxs as d,jsx as c}from"react/jsx-runtime";import*as N from"react";import{forwardRef as J}from"react";import{NumericFormat as K}from"../../../../../../../../node_modules/react-number-format/dist/react-number-format.es.js";import{getInputSliderSuffix as n}from"../../model/helpers/getInputSliderSuffix.js";import{SliderInner as Q}from"../Slider.js";import{useSliderAlgorithmic as T}from"./hooks/useSliderAlgorithmic.js";import{cn as m}from"../../../../../../utils/cn.js";import{mergeRefs as U}from"../../../../../../utils/mergeRefs.js";import"../../../../../button/Button.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import"react-hook-form";import"react-dom";import"../../../../../modal/ui/IframeModalContent.js";import"../../../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as W}from"../../../../../icon/Icon.js";import"../../../../../table/ui/primitives/Primitives.js";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../slot/Slot.js";import"../../../autocomplete/Autocomplete.js";import"../../../checkbox/Checkbox.js";import"../../../combobox/combobox.js";import"../../../dayPicker/DayPicker.js";import{InputBase as X}from"../../../input/Input.js";import"../../../inputOtp/InputOtpBase.js";import"../../../maskInput/MaskInput.js";import"../../../radio/RadioGroup.js";import"../../../radio/ui/RadioItem.js";import"../../SliderBase.js";import"../../../switch/Switch.js";import"../../../textarea/Textarea.js";import"../../../uploader/UploaderBase.js";import"../../../inputCurrency/InputCurrency.js";import"../../../../../../../../src/configs/api.js";import"../../../../controlled/editor/ui/Editor.js";import"../../../../controlled/input/MaskInputControl.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const Y=c(W,{name:"general/edit",className:"size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800"}),$i=J(({classes:h,invalid:k,externalHandlers:i,disabled:b,value:u,onChange:l,min:p,max:s,suffix:g,label:w,attachmentProps:t,additionalSuffix:S,readOnly:f,componentType:C,...r},v)=>{const y=N.useId(),e=N.useRef(null),B=()=>{var o;(o=e==null?void 0:e.current)==null||o.focus()},{sliderValue:R,sliderStep:j,sliderMin:A,sliderMax:F,handleChangeSlider:M}=T({min:p,max:s,defaultValue:0,value:u,onChange:l}),{root:V,slider:$,textLeft:z,textRight:G,inputRoot:L,textContainer:q,input:D,field:E}=h||{};return d("div",{"aria-label":C,className:m("flex w-full flex-col gap-1",V),children:[d("div",{className:m("relative w-full select-none",{"select-none":f},E),children:[c(X,{label:w,value:u,attachmentProps:{onClickIcon:f?void 0:(t==null?void 0:t.onClickIcon)||B,icon:f?void 0:(t==null?void 0:t.icon)||Y,...t},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...L},onBlur:o=>{r!=null&&r.onBlur&&(r==null||r.onBlur(o)),i!=null&&i.onBlur&&i.onBlur(o)},onClick:i==null?void 0:i.onClick,onFocus:i==null?void 0:i.onBlur,renderValues:()=>c(K,{id:y,readOnly:f,"aria-invalid":k?"true":"false",value:u,disabled:b,suffix:` ${n(g,u)} ${S??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:U(e,v),onValueChange:({floatValue:o})=>{var I;o!==void 0&&(l&&l(o),(I=i==null?void 0:i.onInputChange)==null||I.call(i,o))},"data-test-id":"slider",className:m("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",D),...r})}),c(Q,{classes:{...$},step:j,value:R,disabled:b,min:Number(A),max:Number(F),onChange:M,externalHandlers:i})]}),d("div",{className:m("flex justify-between",q),children:[p&&c("span",{className:m("desk-body-regular-m text-color-tetriary",z),children:n(g,p,!1)}),s&&c("span",{className:m("desk-body-regular-m text-color-tetriary",G),children:n(g,s,!1)})]})]})});export{$i as SliderAlgorithmic};
1
+ import{jsxs as n,jsx as c}from"react/jsx-runtime";import*as h from"react";import{forwardRef as Q}from"react";import{NumericFormat as T}from"../../../../../../../../node_modules/react-number-format/dist/react-number-format.es.js";import{getInputSliderSuffix as b}from"../../model/helpers/getInputSliderSuffix.js";import{SliderInner as U}from"../Slider.js";import{useSliderAlgorithmic as W}from"./hooks/useSliderAlgorithmic.js";import{cn as m}from"../../../../../../utils/cn.js";import{mergeRefs as X}from"../../../../../../utils/mergeRefs.js";import"../../../../../button/Button.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import"react-hook-form";import"react-dom";import"../../../../../modal/ui/IframeModalContent.js";import"../../../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as Y}from"../../../../../icon/Icon.js";import"../../../../../table/ui/primitives/Primitives.js";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../slot/Slot.js";import"../../../autocomplete/Autocomplete.js";import"../../../checkbox/Checkbox.js";import"../../../combobox/combobox.js";import"../../../dayPicker/DayPicker.js";import{InputBase as Z}from"../../../input/Input.js";import"../../../inputOtp/InputOtpBase.js";import"../../../maskInput/MaskInput.js";import"../../../radio/RadioGroup.js";import"../../../radio/ui/RadioItem.js";import"../../SliderBase.js";import"../../../switch/Switch.js";import"../../../textarea/Textarea.js";import"../../../uploader/UploaderBase.js";import"../../../inputCurrency/InputCurrency.js";import"../../../../../../../../src/configs/api.js";import"../../../../controlled/editor/ui/Editor.js";import"../../../../controlled/input/MaskInputControl.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const _=c(Y,{name:"general/edit",className:"size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800"}),zi=Q(({classes:k,invalid:w,externalHandlers:i,disabled:I,value:u,onChange:p,min:e,max:g,suffix:s,label:S,attachmentProps:t,additionalSuffix:C,readOnly:f,componentType:v,dataLayers:d,...r},B)=>{const R=h.useId(),l=h.useRef(null),y=()=>{var o;(o=l==null?void 0:l.current)==null||o.focus()},{sliderValue:j,sliderStep:A,sliderMin:F,sliderMax:M,handleChangeSlider:V}=W({min:e,max:g,defaultValue:0,value:u,onChange:p}),{root:$,slider:z,textLeft:G,textRight:q,inputRoot:D,textContainer:E,input:J,field:K}=k||{};return n("div",{"aria-label":v,className:m("flex w-full flex-col gap-1",$),children:[n("div",{className:m("relative w-full select-none",{"select-none":f},K),children:[c(Z,{label:S,value:u,attachmentProps:{onClickIcon:f?void 0:(t==null?void 0:t.onClickIcon)||y,icon:f?void 0:(t==null?void 0:t.icon)||_,...t},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...D},onBlur:o=>{r!=null&&r.onBlur&&(r==null||r.onBlur(o)),i!=null&&i.onBlur&&i.onBlur(o)},onClick:i==null?void 0:i.onClick,onFocus:i==null?void 0:i.onBlur,renderValues:()=>c(T,{id:R,readOnly:f,"aria-invalid":w?"true":"false",value:u,disabled:I,suffix:` ${b(s,u)} ${C??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:X(l,B),onValueChange:({floatValue:o})=>{var N;o!==void 0&&(p&&p(o),(N=i==null?void 0:i.onInputChange)==null||N.call(i,o))},"data-test-id":"slider",className:m("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",J),"data-layer-id":d==null?void 0:d.targetId,...r})}),c(U,{classes:{...z},step:A,value:j,disabled:I,min:Number(F),max:Number(M),onChange:V,externalHandlers:i})]}),n("div",{className:m("flex justify-between",E),children:[e&&c("span",{className:m("desk-body-regular-m text-color-tetriary",G),children:b(s,e,!1)}),g&&c("span",{className:m("desk-body-regular-m text-color-tetriary",q),children:b(s,g,!1)})]})]})});export{zi as SliderAlgorithmic};
2
2
  //# sourceMappingURL=SliderAlgorithmic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliderAlgorithmic.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { type SliderAlgorithmicProps } from '../../model'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { SliderInner } from '../Slider'\nimport { useSliderAlgorithmic } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderAlgorithmic = forwardRef<HTMLInputElement, SliderAlgorithmicProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { sliderValue, sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderAlgorithmic({\n min,\n max,\n defaultValue: 0,\n value,\n onChange\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue !== undefined) {\n if (onChange) onChange(floatValue)\n externalHandlers?.onInputChange?.(floatValue)\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={sliderValue}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n externalHandlers={externalHandlers}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderAlgorithmic","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","attachmentProps","additionalSuffix","readOnly","componentType","props","ref","inputId","React","inputRef","handleIconClick","_a","sliderValue","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderAlgorithmic","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"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"}
1
+ {"version":3,"file":"SliderAlgorithmic.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { type SliderAlgorithmicProps } from '../../model'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { SliderInner } from '../Slider'\nimport { useSliderAlgorithmic } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderAlgorithmic = forwardRef<HTMLInputElement, SliderAlgorithmicProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n dataLayers,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { sliderValue, sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderAlgorithmic({\n min,\n max,\n defaultValue: 0,\n value,\n onChange\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue !== undefined) {\n if (onChange) onChange(floatValue)\n externalHandlers?.onInputChange?.(floatValue)\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n data-layer-id={dataLayers?.targetId}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={sliderValue}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n externalHandlers={externalHandlers}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderAlgorithmic","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","attachmentProps","additionalSuffix","readOnly","componentType","dataLayers","props","ref","inputId","React","inputRef","handleIconClick","_a","sliderValue","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderAlgorithmic","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{jsxs as f,jsx as m}from"react/jsx-runtime";import*as l from"react";import{forwardRef as L}from"react";import{NumericFormat as O}from"../../../../../../../../node_modules/react-number-format/dist/react-number-format.es.js";import{getInputSliderSuffix as e}from"../../model/helpers/getInputSliderSuffix.js";import{SliderInner as P}from"../Slider.js";import{useSliderMarks as q}from"./hooks/useSliderMarks.js";import{cn as i}from"../../../../../../utils/cn.js";import{mergeRefs as z}from"../../../../../../utils/mergeRefs.js";import"../../../../../button/Button.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import"react-hook-form";import"react-dom";import"../../../../../modal/ui/IframeModalContent.js";import"../../../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../../../table/ui/primitives/Primitives.js";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../slot/Slot.js";import"../../../autocomplete/Autocomplete.js";import"../../../checkbox/Checkbox.js";import"../../../combobox/combobox.js";import"../../../dayPicker/DayPicker.js";import{InputBase as A}from"../../../input/Input.js";import"../../../inputOtp/InputOtpBase.js";import"../../../maskInput/MaskInput.js";import"../../../radio/RadioGroup.js";import"../../../radio/ui/RadioItem.js";import"../../SliderBase.js";import"../../../switch/Switch.js";import"../../../textarea/Textarea.js";import"../../../uploader/UploaderBase.js";import"../../../inputCurrency/InputCurrency.js";import"../../../../../../../../src/configs/api.js";import"../../../../controlled/editor/ui/Editor.js";import"../../../../controlled/input/MaskInputControl.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const ko=L(({classes:d,invalid:n,externalHandlers:o,disabled:g,value:t,onChange:p,suffix:u,label:b,marks:h,attachmentProps:N,additionalSuffix:y,componentType:w,...I},R)=>{const S=l.useId(),a=l.useRef(null),{sliderMin:s,sliderMax:c,handleChangeSlider:k}=q({marks:h,onChange:p,value:t}),{root:C,slider:B,textLeft:M,textRight:j,inputRoot:v,textContainer:F,input:$,field:G}=d||{};return f("div",{"aria-label":w,className:i("flex w-full flex-col gap-1",C),children:[f("div",{className:i("relative w-full select-none",G),children:[m(A,{label:b,value:t,attachmentProps:{...N},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...v},onClick:o==null?void 0:o.onClick,onFocus:o==null?void 0:o.onBlur,onBlur:r=>{o!=null&&o.onBlur&&(o==null||o.onBlur(r))},renderValues:()=>m(O,{id:S,readOnly:!0,"aria-invalid":n?"true":"false",value:t,disabled:g,suffix:` ${e(u,t)} ${y??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:z(a,R),onValueChange:({floatValue:r})=>{r&&(p&&p(r),o!=null&&o.onInputChange&&o.onInputChange(r))},"data-test-id":"slider",className:i("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",$),...I})}),m(P,{classes:{...B},marks:h,step:null,value:t??0,disabled:g,min:Number(s),max:Number(c),onChange:k})]}),f("div",{className:i("flex justify-between",F),children:[s&&m("span",{className:i("desk-body-regular-m text-color-tetriary",M),children:e(u,s,!1)}),c&&m("span",{className:i("desk-body-regular-m text-color-tetriary",j),children:e(u,c,!1)})]})]})});export{ko as SliderMarks};
1
+ import{jsxs as e,jsx as m}from"react/jsx-runtime";import*as d from"react";import{forwardRef as q}from"react";import{NumericFormat as z}from"../../../../../../../../node_modules/react-number-format/dist/react-number-format.es.js";import{getInputSliderSuffix as g}from"../../model/helpers/getInputSliderSuffix.js";import{SliderInner as A}from"../Slider.js";import{useSliderMarks as D}from"./hooks/useSliderMarks.js";import{cn as i}from"../../../../../../utils/cn.js";import{mergeRefs as E}from"../../../../../../utils/mergeRefs.js";import"../../../../../button/Button.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import"react-hook-form";import"react-dom";import"../../../../../modal/ui/IframeModalContent.js";import"../../../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../../../table/ui/primitives/Primitives.js";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../slot/Slot.js";import"../../../autocomplete/Autocomplete.js";import"../../../checkbox/Checkbox.js";import"../../../combobox/combobox.js";import"../../../dayPicker/DayPicker.js";import{InputBase as J}from"../../../input/Input.js";import"../../../inputOtp/InputOtpBase.js";import"../../../maskInput/MaskInput.js";import"../../../radio/RadioGroup.js";import"../../../radio/ui/RadioItem.js";import"../../SliderBase.js";import"../../../switch/Switch.js";import"../../../textarea/Textarea.js";import"../../../uploader/UploaderBase.js";import"../../../inputCurrency/InputCurrency.js";import"../../../../../../../../src/configs/api.js";import"../../../../controlled/editor/ui/Editor.js";import"../../../../controlled/input/MaskInputControl.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const Bo=q(({classes:n,invalid:b,externalHandlers:o,disabled:l,value:t,onChange:p,suffix:u,label:N,marks:h,attachmentProps:I,additionalSuffix:w,componentType:R,dataLayers:c,...S},k)=>{const y=d.useId(),C=d.useRef(null),{sliderMin:f,sliderMax:s,handleChangeSlider:B}=D({marks:h,onChange:p,value:t}),{root:M,slider:j,textLeft:v,textRight:F,inputRoot:$,textContainer:G,input:O,field:P}=n||{};return e("div",{"aria-label":R,className:i("flex w-full flex-col gap-1",M),children:[e("div",{className:i("relative w-full select-none",P),children:[m(J,{label:N,value:t,attachmentProps:{...I},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...$},onClick:o==null?void 0:o.onClick,onFocus:o==null?void 0:o.onBlur,onBlur:r=>{o!=null&&o.onBlur&&(o==null||o.onBlur(r))},renderValues:()=>m(z,{id:y,readOnly:!0,"aria-invalid":b?"true":"false",value:t,disabled:l,suffix:` ${g(u,t)} ${w??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:E(C,k),onValueChange:({floatValue:r})=>{r&&(p&&p(r),o!=null&&o.onInputChange&&o.onInputChange(r))},"data-test-id":"slider",className:i("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",O),"data-layer-id":c==null?void 0:c.targetId,...S})}),m(A,{classes:{...j},marks:h,step:null,value:t??0,disabled:l,min:Number(f),max:Number(s),onChange:B})]}),e("div",{className:i("flex justify-between",G),children:[f&&m("span",{className:i("desk-body-regular-m text-color-tetriary",v),children:g(u,f,!1)}),s&&m("span",{className:i("desk-body-regular-m text-color-tetriary",F),children:g(u,s,!1)})]})]})});export{Bo as SliderMarks};
2
2
  //# sourceMappingURL=SliderMarks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliderMarks.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { type SliderMarksProps } from '../../model'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { SliderInner } from '../Slider'\nimport { useSliderMarks } from './hooks'\nimport { InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport const SliderMarks = forwardRef<HTMLInputElement, SliderMarksProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n suffix,\n label,\n marks,\n attachmentProps,\n additionalSuffix,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const { sliderMin, sliderMax, handleChangeSlider } = useSliderMarks({\n marks,\n onChange,\n value\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n onBlur={(e) => {\n if (externalHandlers?.onBlur) {\n externalHandlers?.onBlur(e)\n }\n }}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n marks={marks}\n step={null}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {sliderMin && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, sliderMin, false)}\n </span>\n )}\n {sliderMax && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, sliderMax, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["SliderMarks","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","suffix","label","marks","attachmentProps","additionalSuffix","componentType","props","ref","inputId","React","inputRef","sliderMin","sliderMax","handleChangeSlider","useSliderMarks","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","jsx","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"s0DAUO,MAAMA,GAAcC,EACzB,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9C,CAAE,UAAAE,EAAW,UAAAC,EAAW,mBAAAC,CAAA,EAAuBC,EAAe,CAClE,MAAAZ,EACA,SAAAH,EACA,MAAAD,CAAA,CACD,EAEK,CAAE,KAAAiB,EAAM,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,UAAAC,EAAW,cAAAC,EAAe,MAAAC,EAAO,MAAAC,CAAA,EAAU5B,GAAW,CAAA,EACjG,OACE6B,EAAC,OAAI,aAAYlB,EAAe,UAAWmB,EAAG,6BAA8BT,CAAI,EAC9E,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+BF,CAAK,EACrD,SAAA,CAAAG,EAACC,EAAA,CACC,MAAAzB,EACA,MAAAH,EACA,gBAAiB,CACf,GAAGK,CAAA,EAEL,QAAS,CACP,UAAW,qFACX,GAAGgB,CAAA,EAEL,QAASvB,GAAA,YAAAA,EAAkB,QAC3B,QAASA,GAAA,YAAAA,EAAkB,OAC3B,OAAS+B,GAAM,CACT/B,GAAA,MAAAA,EAAkB,SACpBA,GAAA,MAAAA,EAAkB,OAAO+B,GAE7B,EACA,aAAc,IACZF,EAACG,EAAA,CACC,GAAIpB,EACJ,SAAQ,GACR,eAAcb,EAAU,OAAS,QACjC,MAAAG,EACA,SAAAD,EACA,OAAQ,IAAIgC,EAAqB7B,EAAQF,CAAK,CAAC,IAAIM,GAAoB,EAAE,GACzE,oBAAoB,WACpB,kBAAmB,IACnB,cAAe,GACf,YAAa0B,EAAUpB,EAAUH,CAAG,EACpC,cAAe,CAAC,CAAE,WAAAwB,KAAiB,CAC7BA,IACEhC,KAAmBgC,CAAU,EAC7BnC,GAAA,MAAAA,EAAkB,eACpBA,EAAiB,cAAcmC,CAAU,EAG/C,EACA,eAAa,SACb,UAAWP,EACT,yGACAH,CAAA,EAED,GAAGf,CAAA,CAAA,CACN,CAAA,EAGJmB,EAACO,EAAA,CACC,QAAS,CAAE,GAAGhB,CAAA,EACd,MAAAd,EACA,KAAM,KACN,MAAOJ,GAAS,EAChB,SAAAD,EACA,IAAK,OAAOc,CAAS,EACrB,IAAK,OAAOC,CAAS,EACrB,SAAUC,CAAA,CAAA,CACZ,EACF,IACC,MAAA,CAAI,UAAWW,EAAG,uBAAwBJ,CAAa,EACrD,SAAA,CAAAT,GACCc,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CP,CAAQ,EACpE,SAAAY,EAAqB7B,EAAQW,EAAW,EAAK,CAAA,CAChD,EAEDC,GACCa,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CN,CAAS,EACrE,SAAAW,EAAqB7B,EAAQY,EAAW,EAAK,CAAA,CAChD,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ,CACF"}
1
+ {"version":3,"file":"SliderMarks.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { type SliderMarksProps } from '../../model'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { SliderInner } from '../Slider'\nimport { useSliderMarks } from './hooks'\nimport { InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport const SliderMarks = forwardRef<HTMLInputElement, SliderMarksProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n suffix,\n label,\n marks,\n attachmentProps,\n additionalSuffix,\n componentType,\n dataLayers,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const { sliderMin, sliderMax, handleChangeSlider } = useSliderMarks({\n marks,\n onChange,\n value\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n onBlur={(e) => {\n if (externalHandlers?.onBlur) {\n externalHandlers?.onBlur(e)\n }\n }}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n input\n )}\n data-layer-id={dataLayers?.targetId}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n marks={marks}\n step={null}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {sliderMin && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, sliderMin, false)}\n </span>\n )}\n {sliderMax && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, sliderMax, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["SliderMarks","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","suffix","label","marks","attachmentProps","additionalSuffix","componentType","dataLayers","props","ref","inputId","React","inputRef","sliderMin","sliderMax","handleChangeSlider","useSliderMarks","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","jsx","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"s0DAUO,MAAMA,GAAcC,EACzB,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,WAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9C,CAAE,UAAAE,EAAW,UAAAC,EAAW,mBAAAC,CAAA,EAAuBC,EAAe,CAClE,MAAAb,EACA,SAAAH,EACA,MAAAD,CAAA,CACD,EAEK,CAAE,KAAAkB,EAAM,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,UAAAC,EAAW,cAAAC,EAAe,MAAAC,EAAO,MAAAC,CAAA,EAAU7B,GAAW,CAAA,EACjG,OACE8B,EAAC,OAAI,aAAYnB,EAAe,UAAWoB,EAAG,6BAA8BT,CAAI,EAC9E,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+BF,CAAK,EACrD,SAAA,CAAAG,EAACC,EAAA,CACC,MAAA1B,EACA,MAAAH,EACA,gBAAiB,CACf,GAAGK,CAAA,EAEL,QAAS,CACP,UAAW,qFACX,GAAGiB,CAAA,EAEL,QAASxB,GAAA,YAAAA,EAAkB,QAC3B,QAASA,GAAA,YAAAA,EAAkB,OAC3B,OAASgC,GAAM,CACThC,GAAA,MAAAA,EAAkB,SACpBA,GAAA,MAAAA,EAAkB,OAAOgC,GAE7B,EACA,aAAc,IACZF,EAACG,EAAA,CACC,GAAIpB,EACJ,SAAQ,GACR,eAAcd,EAAU,OAAS,QACjC,MAAAG,EACA,SAAAD,EACA,OAAQ,IAAIiC,EAAqB9B,EAAQF,CAAK,CAAC,IAAIM,GAAoB,EAAE,GACzE,oBAAoB,WACpB,kBAAmB,IACnB,cAAe,GACf,YAAa2B,EAAUpB,EAAUH,CAAG,EACpC,cAAe,CAAC,CAAE,WAAAwB,KAAiB,CAC7BA,IACEjC,KAAmBiC,CAAU,EAC7BpC,GAAA,MAAAA,EAAkB,eACpBA,EAAiB,cAAcoC,CAAU,EAG/C,EACA,eAAa,SACb,UAAWP,EACT,yGACAH,CAAA,EAEF,gBAAehB,GAAA,YAAAA,EAAY,SAC1B,GAAGC,CAAA,CAAA,CACN,CAAA,EAGJmB,EAACO,EAAA,CACC,QAAS,CAAE,GAAGhB,CAAA,EACd,MAAAf,EACA,KAAM,KACN,MAAOJ,GAAS,EAChB,SAAAD,EACA,IAAK,OAAOe,CAAS,EACrB,IAAK,OAAOC,CAAS,EACrB,SAAUC,CAAA,CAAA,CACZ,EACF,IACC,MAAA,CAAI,UAAWW,EAAG,uBAAwBJ,CAAa,EACrD,SAAA,CAAAT,GACCc,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CP,CAAQ,EACpE,SAAAY,EAAqB9B,EAAQY,EAAW,EAAK,CAAA,CAChD,EAEDC,GACCa,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CN,CAAS,EACrE,SAAAW,EAAqB9B,EAAQa,EAAW,EAAK,CAAA,CAChD,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ,CACF"}
@@ -1,2 +1,2 @@
1
- import{jsxs as d,jsx as c}from"react/jsx-runtime";import*as I from"react";import{forwardRef as J}from"react";import{NumericFormat as K}from"../../../../../../../../node_modules/react-number-format/dist/react-number-format.es.js";import{getInputSliderSuffix as g}from"../../model/helpers/getInputSliderSuffix.js";import{SliderInner as Q}from"../Slider.js";import{useSliderStep as T}from"./hooks/useSliderStep.js";import{cn as m}from"../../../../../../utils/cn.js";import{mergeRefs as U}from"../../../../../../utils/mergeRefs.js";import"../../../../../button/Button.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import"react-hook-form";import"react-dom";import"../../../../../modal/ui/IframeModalContent.js";import"../../../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as V}from"../../../../../icon/Icon.js";import"../../../../../table/ui/primitives/Primitives.js";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../slot/Slot.js";import"../../../autocomplete/Autocomplete.js";import"../../../checkbox/Checkbox.js";import"../../../combobox/combobox.js";import"../../../dayPicker/DayPicker.js";import{InputBase as W}from"../../../input/Input.js";import"../../../inputOtp/InputOtpBase.js";import"../../../maskInput/MaskInput.js";import"../../../radio/RadioGroup.js";import"../../../radio/ui/RadioItem.js";import"../../SliderBase.js";import"../../../switch/Switch.js";import"../../../textarea/Textarea.js";import"../../../uploader/UploaderBase.js";import"../../../inputCurrency/InputCurrency.js";import"../../../../../../../../src/configs/api.js";import"../../../../controlled/editor/ui/Editor.js";import"../../../../controlled/input/MaskInputControl.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const X=c(V,{name:"general/edit",className:"size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800"}),Go=J(({classes:N,invalid:S,externalHandlers:o,disabled:b,value:u,onChange:p,min:l,max:n,suffix:s,label:k,step:w,attachmentProps:t,additionalSuffix:C,readOnly:e,componentType:h,...r},y)=>{const B=I.useId(),f=I.useRef(null),R=()=>{var i;(i=f==null?void 0:f.current)==null||i.focus()},{sliderStep:v,sliderMin:j,sliderMax:F,handleChangeSlider:M}=T({min:l,max:n,step:w,onChange:p,value:u}),{root:$,slider:z,textLeft:G,textRight:L,inputRoot:q,textContainer:A,input:D,field:E}=N||{};return d("div",{"aria-label":h,className:m("flex w-full flex-col gap-1",$),children:[d("div",{className:m("relative w-full select-none",{"select-none":e},E),children:[c(W,{label:k,value:u,attachmentProps:{onClickIcon:e?void 0:(t==null?void 0:t.onClickIcon)||R,icon:e?void 0:(t==null?void 0:t.icon)||X,...t},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...q},onBlur:i=>{r!=null&&r.onBlur&&(r==null||r.onBlur(i)),o!=null&&o.onBlur&&o.onBlur(i)},onClick:o==null?void 0:o.onClick,onFocus:o==null?void 0:o.onBlur,renderValues:()=>c(K,{id:B,readOnly:e,"aria-invalid":S?"true":"false",value:u,disabled:b,suffix:` ${g(s,u)} ${C??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:U(f,y),onValueChange:({floatValue:i})=>{i&&(p&&p(i),o!=null&&o.onInputChange&&o.onInputChange(i))},"data-test-id":"slider",className:m("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",D),...r})}),c(Q,{classes:{...z},step:v,value:u??0,disabled:b,min:Number(j),max:Number(F),onChange:M})]}),d("div",{className:m("flex justify-between",A),children:[l&&c("span",{className:m("desk-body-regular-m text-color-tetriary",G),children:g(s,l,!1)}),n&&c("span",{className:m("desk-body-regular-m text-color-tetriary",L),children:g(s,n,!1)})]})]})});export{Go as SliderStep};
1
+ import{jsxs as d,jsx as c}from"react/jsx-runtime";import*as N from"react";import{forwardRef as Q}from"react";import{NumericFormat as T}from"../../../../../../../../node_modules/react-number-format/dist/react-number-format.es.js";import{getInputSliderSuffix as b}from"../../model/helpers/getInputSliderSuffix.js";import{SliderInner as U}from"../Slider.js";import{useSliderStep as V}from"./hooks/useSliderStep.js";import{cn as m}from"../../../../../../utils/cn.js";import{mergeRefs as W}from"../../../../../../utils/mergeRefs.js";import"../../../../../button/Button.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import"react-hook-form";import"react-dom";import"../../../../../modal/ui/IframeModalContent.js";import"../../../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as X}from"../../../../../icon/Icon.js";import"../../../../../table/ui/primitives/Primitives.js";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../slot/Slot.js";import"../../../autocomplete/Autocomplete.js";import"../../../checkbox/Checkbox.js";import"../../../combobox/combobox.js";import"../../../dayPicker/DayPicker.js";import{InputBase as Y}from"../../../input/Input.js";import"../../../inputOtp/InputOtpBase.js";import"../../../maskInput/MaskInput.js";import"../../../radio/RadioGroup.js";import"../../../radio/ui/RadioItem.js";import"../../SliderBase.js";import"../../../switch/Switch.js";import"../../../textarea/Textarea.js";import"../../../uploader/UploaderBase.js";import"../../../inputCurrency/InputCurrency.js";import"../../../../../../../../src/configs/api.js";import"../../../../controlled/editor/ui/Editor.js";import"../../../../controlled/input/MaskInputControl.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const Z=c(X,{name:"general/edit",className:"size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800"}),qo=Q(({classes:S,invalid:k,externalHandlers:o,disabled:I,value:u,onChange:l,min:p,max:n,suffix:s,label:w,step:C,attachmentProps:t,additionalSuffix:h,readOnly:e,componentType:B,dataLayers:g,...r},R)=>{const v=N.useId(),f=N.useRef(null),y=()=>{var i;(i=f==null?void 0:f.current)==null||i.focus()},{sliderStep:j,sliderMin:F,sliderMax:M,handleChangeSlider:$}=V({min:p,max:n,step:C,onChange:l,value:u}),{root:z,slider:G,textLeft:q,textRight:A,inputRoot:D,textContainer:E,input:J,field:K}=S||{};return d("div",{"aria-label":B,className:m("flex w-full flex-col gap-1",z),children:[d("div",{className:m("relative w-full select-none",{"select-none":e},K),children:[c(Y,{label:w,value:u,attachmentProps:{onClickIcon:e?void 0:(t==null?void 0:t.onClickIcon)||y,icon:e?void 0:(t==null?void 0:t.icon)||Z,...t},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...D},onBlur:i=>{r!=null&&r.onBlur&&(r==null||r.onBlur(i)),o!=null&&o.onBlur&&o.onBlur(i)},onClick:o==null?void 0:o.onClick,onFocus:o==null?void 0:o.onBlur,renderValues:()=>c(T,{id:v,readOnly:e,"aria-invalid":k?"true":"false",value:u,disabled:I,suffix:` ${b(s,u)} ${h??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:W(f,R),onValueChange:({floatValue:i})=>{i&&(l&&l(i),o!=null&&o.onInputChange&&o.onInputChange(i))},"data-test-id":"slider",className:m("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",J),"data-layer-id":g==null?void 0:g.targetId,...r})}),c(U,{classes:{...G},step:j,value:u??0,disabled:I,min:Number(F),max:Number(M),onChange:$})]}),d("div",{className:m("flex justify-between",E),children:[p&&c("span",{className:m("desk-body-regular-m text-color-tetriary",q),children:b(s,p,!1)}),n&&c("span",{className:m("desk-body-regular-m text-color-tetriary",A),children:b(s,n,!1)})]})]})});export{qo as SliderStep};
2
2
  //# sourceMappingURL=SliderStep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliderStep.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { type SliderStepProps } from '../../model'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { SliderInner } from '../Slider'\nimport { useSliderStep } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderStep = forwardRef<HTMLInputElement, SliderStepProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n step,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderStep({\n min,\n max,\n step,\n onChange,\n value\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderStep","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","step","attachmentProps","additionalSuffix","readOnly","componentType","props","ref","inputId","React","inputRef","handleIconClick","_a","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderStep","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"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"}
1
+ {"version":3,"file":"SliderStep.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { type SliderStepProps } from '../../model'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { SliderInner } from '../Slider'\nimport { useSliderStep } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderStep = forwardRef<HTMLInputElement, SliderStepProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n step,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n dataLayers,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderStep({\n min,\n max,\n step,\n onChange,\n value\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n data-layer-id={dataLayers?.targetId}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderStep","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","step","attachmentProps","additionalSuffix","readOnly","componentType","dataLayers","props","ref","inputId","React","inputRef","handleIconClick","_a","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderStep","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{jsx as n}from"react/jsx-runtime";import{forwardRef as m}from"react";import{Root as f,Thumb as p}from"../../../../../../node_modules/@radix-ui/react-switch/dist/index.js";import{cn as i}from"../../../../utils/cn.js";const b=m(({classes:o,className:c,disabled:r,invalid:l,externalHandlers:d,onCheckedChange:t,...u},h)=>{const{onChange:e,...g}=d||{};return n(f,{...u,...g,ref:h,onCheckedChange:a=>{t&&t(a),e&&e(a)},disabled:r,"aria-invalid":l,className:i("h-6 w-10 rounded-full bg-color-blue-grey-300 p-[2px] outline-2","outline-offset-4 outline-transparent focus:outline-primary-focus","group transition-all hover:bg-color-blue-grey-500","data-[state=checked]:bg-color-primary-default","hover:data-[state=checked]:bg-color-primary-hover",{"data-[state=checked]:!bg-color-primary-disabled data-[state=unchecked]:!bg-color-blue-grey-200":r},c,o==null?void 0:o.root),children:n(p,{className:i("block size-5 rounded-full bg-color-white","duration-100 will-change-transform","data-[state=checked]:translate-x-4","group-active:w-full data-[state=checked]:group-active:translate-x-0",o==null?void 0:o.thumb)})})});b.displayName="SwitchBase";export{b as SwitchBase};
1
+ import{jsx as i}from"react/jsx-runtime";import{forwardRef as f}from"react";import{Root as p,Thumb as b}from"../../../../../../node_modules/@radix-ui/react-switch/dist/index.js";import{cn as l}from"../../../../utils/cn.js";const k=f(({classes:o,className:c,disabled:r,invalid:d,externalHandlers:u,onCheckedChange:e,dataLayers:t,...h},g)=>{const{onChange:a,...m}=u||{};return i(p,{...h,...m,ref:g,onCheckedChange:n=>{e&&e(n),a&&a(n)},disabled:r,"aria-invalid":d,"data-layer-id":t==null?void 0:t.targetId,className:l("h-6 w-10 rounded-full bg-color-blue-grey-300 p-[2px] outline-2","outline-offset-4 outline-transparent focus:outline-primary-focus","group transition-all hover:bg-color-blue-grey-500","data-[state=checked]:bg-color-primary-default","hover:data-[state=checked]:bg-color-primary-hover",{"data-[state=checked]:!bg-color-primary-disabled data-[state=unchecked]:!bg-color-blue-grey-200":r},c,o==null?void 0:o.root),children:i(b,{className:l("block size-5 rounded-full bg-color-white","duration-100 will-change-transform","data-[state=checked]:translate-x-4","group-active:w-full data-[state=checked]:group-active:translate-x-0",o==null?void 0:o.thumb)})})});k.displayName="SwitchBase";export{k as SwitchBase};
2
2
  //# sourceMappingURL=Switch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/switch/Switch.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Root, type SwitchProps, Thumb } from '@radix-ui/react-switch'\nimport { cn } from '$/shared/utils'\n\ntype SwitchBaseClasses = {\n root?: string\n thumb?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value: boolean) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type SwitchBaseProps = SwitchProps & {\n classes?: SwitchBaseClasses\n externalHandlers?: ExternalHandlers\n invalid?: boolean\n}\n\nexport const SwitchBase = forwardRef<HTMLButtonElement, SwitchBaseProps>(\n ({ classes, className, disabled, invalid, externalHandlers, onCheckedChange, ...props }, ref) => {\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onChange = (value: boolean) => {\n if (onCheckedChange) onCheckedChange(value)\n if (externalOnChange) externalOnChange(value)\n }\n\n return (\n <Root\n {...props}\n {...restHandlers}\n ref={ref}\n onCheckedChange={onChange}\n disabled={disabled}\n aria-invalid={invalid}\n className={cn(\n 'h-6 w-10 rounded-full bg-color-blue-grey-300 p-[2px] outline-2',\n 'outline-offset-4 outline-transparent focus:outline-primary-focus',\n 'group transition-all hover:bg-color-blue-grey-500',\n 'data-[state=checked]:bg-color-primary-default',\n 'hover:data-[state=checked]:bg-color-primary-hover',\n { 'data-[state=checked]:!bg-color-primary-disabled data-[state=unchecked]:!bg-color-blue-grey-200': disabled },\n className,\n classes?.root\n )}\n >\n <Thumb\n className={cn(\n 'block size-5 rounded-full bg-color-white',\n 'duration-100 will-change-transform',\n 'data-[state=checked]:translate-x-4',\n 'group-active:w-full data-[state=checked]:group-active:translate-x-0',\n classes?.thumb\n )}\n />\n </Root>\n )\n }\n)\nSwitchBase.displayName = 'SwitchBase'\n"],"names":["SwitchBase","forwardRef","classes","className","disabled","invalid","externalHandlers","onCheckedChange","props","ref","externalOnChange","restHandlers","jsx","Root","value","cn","Thumb"],"mappings":"8NAsBO,MAAMA,EAAaC,EACxB,CAAC,CAAE,QAAAC,EAAS,UAAAC,EAAW,SAAAC,EAAU,QAAAC,EAAS,iBAAAC,EAAkB,gBAAAC,EAAiB,GAAGC,CAAA,EAASC,IAAQ,CAC/F,KAAM,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBL,GAAoB,CAAA,EAO5E,OACEM,EAACC,EAAA,CACE,GAAGL,EACH,GAAGG,EACJ,IAAAF,EACA,gBAVcK,GAAmB,CAC/BP,KAAiCO,CAAK,EACtCJ,KAAmCI,CAAK,CAC9C,EAQI,SAAAV,EACA,eAAcC,EACd,UAAWU,EACT,iEACA,mEACA,oDACA,gDACA,oDACA,CAAE,iGAAkGX,CAAA,EACpGD,EACAD,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAAU,EAACI,EAAA,CACC,UAAWD,EACT,2CACA,qCACA,qCACA,sEACAb,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,CACF,CAAA,CAGN,CACF,EACAF,EAAW,YAAc"}
1
+ {"version":3,"file":"Switch.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/switch/Switch.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Root, type SwitchProps, Thumb } from '@radix-ui/react-switch'\nimport { type DataLayers } from '../../../../types'\nimport { cn } from '$/shared/utils'\n\ntype SwitchBaseClasses = {\n root?: string\n thumb?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value: boolean) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type SwitchBaseProps = SwitchProps & {\n classes?: SwitchBaseClasses\n externalHandlers?: ExternalHandlers\n invalid?: boolean\n dataLayers?: DataLayers\n}\n\nexport const SwitchBase = forwardRef<HTMLButtonElement, SwitchBaseProps>(\n ({ classes, className, disabled, invalid, externalHandlers, onCheckedChange, dataLayers, ...props }, ref) => {\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onChange = (value: boolean) => {\n if (onCheckedChange) onCheckedChange(value)\n if (externalOnChange) externalOnChange(value)\n }\n\n return (\n <Root\n {...props}\n {...restHandlers}\n ref={ref}\n onCheckedChange={onChange}\n disabled={disabled}\n aria-invalid={invalid}\n data-layer-id={dataLayers?.targetId}\n className={cn(\n 'h-6 w-10 rounded-full bg-color-blue-grey-300 p-[2px] outline-2',\n 'outline-offset-4 outline-transparent focus:outline-primary-focus',\n 'group transition-all hover:bg-color-blue-grey-500',\n 'data-[state=checked]:bg-color-primary-default',\n 'hover:data-[state=checked]:bg-color-primary-hover',\n { 'data-[state=checked]:!bg-color-primary-disabled data-[state=unchecked]:!bg-color-blue-grey-200': disabled },\n className,\n classes?.root\n )}\n >\n <Thumb\n className={cn(\n 'block size-5 rounded-full bg-color-white',\n 'duration-100 will-change-transform',\n 'data-[state=checked]:translate-x-4',\n 'group-active:w-full data-[state=checked]:group-active:translate-x-0',\n classes?.thumb\n )}\n />\n </Root>\n )\n }\n)\nSwitchBase.displayName = 'SwitchBase'\n"],"names":["SwitchBase","forwardRef","classes","className","disabled","invalid","externalHandlers","onCheckedChange","dataLayers","props","ref","externalOnChange","restHandlers","jsx","Root","value","cn","Thumb"],"mappings":"8NAwBO,MAAMA,EAAaC,EACxB,CAAC,CAAE,QAAAC,EAAS,UAAAC,EAAW,SAAAC,EAAU,QAAAC,EAAS,iBAAAC,EAAkB,gBAAAC,EAAiB,WAAAC,EAAY,GAAGC,CAAA,EAASC,IAAQ,CAC3G,KAAM,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBN,GAAoB,CAAA,EAO5E,OACEO,EAACC,EAAA,CACE,GAAGL,EACH,GAAGG,EACJ,IAAAF,EACA,gBAVcK,GAAmB,CAC/BR,KAAiCQ,CAAK,EACtCJ,KAAmCI,CAAK,CAC9C,EAQI,SAAAX,EACA,eAAcC,EACd,gBAAeG,GAAA,YAAAA,EAAY,SAC3B,UAAWQ,EACT,iEACA,mEACA,oDACA,gDACA,oDACA,CAAE,iGAAkGZ,CAAA,EACpGD,EACAD,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAAW,EAACI,EAAA,CACC,UAAWD,EACT,2CACA,qCACA,qCACA,sEACAd,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,CACF,CAAA,CAGN,CACF,EACAF,EAAW,YAAc"}
@@ -1,2 +1,2 @@
1
- import{jsxs as u,jsx as o}from"react/jsx-runtime";import{forwardRef as w,useId as v}from"react";import{FieldAttachment as N}from"../../ui/fieldAttachment/FieldAttachment.js";import{cn as t}from"../../../../utils/cn.js";const k=w(({label:x,value:b,invalid:f,disabled:r,classes:e,attachmentProps:l,rows:m=4,externalHandlers:p,onChange:a,...c},g)=>{const n=v(),{onChange:d,...h}=p||{},y=i=>{a&&a(i),d&&d(i)};return u("div",{className:t("relative flex w-full items-start gap-x-4 rounded-sm bg-color-blue-grey-100 pb-4 pl-4 pr-1 pt-2","[&_label]:focus-within:text-color-tetriary","hover:bg-color-blue-grey-200","border-[1px] border-transparent focus-within:border-blue-grey-800",{"border-secondary-default":f},e==null?void 0:e.container),"data-test-id":"textarea-root",children:[u("div",{className:"flex w-full flex-col",children:[o("label",{htmlFor:n,className:t("desk-body-regular-s pointer-events-none","text-color-blue-grey-600 duration-100",{"text-color-disabled":r},e==null?void 0:e.label),children:x}),o("textarea",{...c,...h,rows:m,disabled:r,value:b??"",ref:g,id:n,onChange:y,className:t("customScrollbar-y peer desk-body-regular-l w-full overflow-y-auto bg-color-transparent","resize-none text-color-dark outline-none placeholder:text-color-blue-grey-600",{"placeholder:text-color-disabled":r},e==null?void 0:e.textarea)})]}),l&&o(N,{...l})]})});k.displayName="TextareaBase";export{k as TextareaBase};
1
+ import{jsxs as x,jsx as t}from"react/jsx-runtime";import{forwardRef as v,useId as N}from"react";import{FieldAttachment as k}from"../../ui/fieldAttachment/FieldAttachment.js";import{cn as l}from"../../../../utils/cn.js";const C=v(({label:b,value:f,invalid:m,disabled:r,classes:e,attachmentProps:n,rows:p=4,externalHandlers:c,onChange:a,dataLayers:o,...g},h)=>{const d=N(),{onChange:i,...y}=c||{},w=u=>{a&&a(u),i&&i(u)};return x("div",{className:l("relative flex w-full items-start gap-x-4 rounded-sm bg-color-blue-grey-100 pb-4 pl-4 pr-1 pt-2","[&_label]:focus-within:text-color-tetriary","hover:bg-color-blue-grey-200","border-[1px] border-transparent focus-within:border-blue-grey-800",{"border-secondary-default":m},e==null?void 0:e.container),"data-test-id":"textarea-root",children:[x("div",{className:"flex w-full flex-col",children:[t("label",{htmlFor:d,className:l("desk-body-regular-s pointer-events-none","text-color-blue-grey-600 duration-100",{"text-color-disabled":r},e==null?void 0:e.label),children:b}),t("textarea",{...g,...y,rows:p,disabled:r,value:f??"",ref:h,id:d,onChange:w,className:l("customScrollbar-y peer desk-body-regular-l w-full overflow-y-auto bg-color-transparent","resize-none text-color-dark outline-none placeholder:text-color-blue-grey-600",{"placeholder:text-color-disabled":r},e==null?void 0:e.textarea),"data-layer-id":o==null?void 0:o.targetId})]}),n&&t(k,{...n})]})});C.displayName="TextareaBase";export{C as TextareaBase};
2
2
  //# sourceMappingURL=Textarea.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/textarea/Textarea.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { FieldAttachment } from '../../ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\ntype TextareaBaseClasses = {\n container?: string\n textarea?: string\n label?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void\n onClick?: (event: React.MouseEvent<HTMLTextAreaElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void\n}\n\nexport type TextareaBaseProps = Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'className'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: TextareaBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const TextareaBase = forwardRef<HTMLTextAreaElement, TextareaBaseProps>(\n ({ label, value, invalid, disabled, classes, attachmentProps, rows = 4, externalHandlers, onChange, ...props }, ref) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full items-start gap-x-4 rounded-sm bg-color-blue-grey-100 pb-4 pl-4 pr-1 pt-2',\n '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='textarea-root'\n >\n <div className='flex w-full flex-col'>\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-s pointer-events-none',\n 'text-color-blue-grey-600 duration-100',\n {\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n <textarea\n {...props}\n {...restHandlers}\n rows={rows}\n disabled={disabled}\n value={value ?? ''}\n ref={ref}\n id={id}\n onChange={onValueChange}\n className={cn(\n 'customScrollbar-y peer desk-body-regular-l w-full overflow-y-auto bg-color-transparent',\n 'resize-none text-color-dark outline-none placeholder:text-color-blue-grey-600',\n {\n 'placeholder:text-color-disabled': disabled\n },\n classes?.textarea\n )}\n />\n </div>\n {attachmentProps && <FieldAttachment {...attachmentProps} />}\n </div>\n )\n }\n)\nTextareaBase.displayName = 'TextareaBase'\n"],"names":["TextareaBase","forwardRef","label","value","invalid","disabled","classes","attachmentProps","rows","externalHandlers","onChange","props","ref","id","useId","externalOnChange","restHandlers","onValueChange","event","jsxs","cn","jsx","FieldAttachment"],"mappings":"2NA2CO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,gBAAAC,EAAiB,KAAAC,EAAO,EAAG,iBAAAC,EAAkB,SAAAC,EAAU,GAAGC,CAAA,EAASC,IAAQ,CACtH,MAAMC,EAAKC,EAAA,EAEL,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBP,GAAoB,CAAA,EAEtEQ,EAAiBC,GAAkD,CACnER,KAAmBQ,CAAK,EACxBH,KAAmCG,CAAK,CAC9C,EAEA,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,iGACA,6CACA,+BACA,oEACA,CACE,2BAA4BhB,CAAA,EAE9BE,GAAA,YAAAA,EAAS,SAAA,EAEX,eAAa,gBAEb,SAAA,CAAAa,EAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAE,EAAC,QAAA,CACC,QAASR,EACT,UAAWO,EACT,0CACA,wCACA,CACE,sBAAuBf,CAAA,EAEzBC,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAJ,CAAA,CAAA,EAEHmB,EAAC,WAAA,CACE,GAAGV,EACH,GAAGK,EACJ,KAAAR,EACA,SAAAH,EACA,MAAOF,GAAS,GAChB,IAAAS,EACA,GAAAC,EACA,SAAUI,EACV,UAAWG,EACT,yFACA,gFACA,CACE,kCAAmCf,CAAA,EAErCC,GAAA,YAAAA,EAAS,QAAA,CACX,CAAA,CACF,EACF,EACCC,GAAmBc,EAACC,EAAA,CAAiB,GAAGf,CAAA,CAAiB,CAAA,CAAA,CAAA,CAGhE,CACF,EACAP,EAAa,YAAc"}
1
+ {"version":3,"file":"Textarea.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/textarea/Textarea.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { FieldAttachment } from '../../ui'\nimport { type DataLayers, type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\ntype TextareaBaseClasses = {\n container?: string\n textarea?: string\n label?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void\n onClick?: (event: React.MouseEvent<HTMLTextAreaElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void\n}\n\nexport type TextareaBaseProps = Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'className'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: TextareaBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n}\n\nexport const TextareaBase = forwardRef<HTMLTextAreaElement, TextareaBaseProps>(\n (\n { label, value, invalid, disabled, classes, attachmentProps, rows = 4, externalHandlers, onChange, dataLayers, ...props },\n ref\n ) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full items-start gap-x-4 rounded-sm bg-color-blue-grey-100 pb-4 pl-4 pr-1 pt-2',\n '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='textarea-root'\n >\n <div className='flex w-full flex-col'>\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-s pointer-events-none',\n 'text-color-blue-grey-600 duration-100',\n {\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n <textarea\n {...props}\n {...restHandlers}\n rows={rows}\n disabled={disabled}\n value={value ?? ''}\n ref={ref}\n id={id}\n onChange={onValueChange}\n className={cn(\n 'customScrollbar-y peer desk-body-regular-l w-full overflow-y-auto bg-color-transparent',\n 'resize-none text-color-dark outline-none placeholder:text-color-blue-grey-600',\n {\n 'placeholder:text-color-disabled': disabled\n },\n classes?.textarea\n )}\n data-layer-id={dataLayers?.targetId}\n />\n </div>\n {attachmentProps && <FieldAttachment {...attachmentProps} />}\n </div>\n )\n }\n)\nTextareaBase.displayName = 'TextareaBase'\n"],"names":["TextareaBase","forwardRef","label","value","invalid","disabled","classes","attachmentProps","rows","externalHandlers","onChange","dataLayers","props","ref","id","useId","externalOnChange","restHandlers","onValueChange","event","jsxs","cn","jsx","FieldAttachment"],"mappings":"2NA+CO,MAAMA,EAAeC,EAC1B,CACE,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,gBAAAC,EAAiB,KAAAC,EAAO,EAAG,iBAAAC,EAAkB,SAAAC,EAAU,WAAAC,EAAY,GAAGC,CAAA,EAClHC,IACG,CACH,MAAMC,EAAKC,EAAA,EAEL,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBR,GAAoB,CAAA,EAEtES,EAAiBC,GAAkD,CACnET,KAAmBS,CAAK,EACxBH,KAAmCG,CAAK,CAC9C,EAEA,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,iGACA,6CACA,+BACA,oEACA,CACE,2BAA4BjB,CAAA,EAE9BE,GAAA,YAAAA,EAAS,SAAA,EAEX,eAAa,gBAEb,SAAA,CAAAc,EAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAE,EAAC,QAAA,CACC,QAASR,EACT,UAAWO,EACT,0CACA,wCACA,CACE,sBAAuBhB,CAAA,EAEzBC,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAJ,CAAA,CAAA,EAEHoB,EAAC,WAAA,CACE,GAAGV,EACH,GAAGK,EACJ,KAAAT,EACA,SAAAH,EACA,MAAOF,GAAS,GAChB,IAAAU,EACA,GAAAC,EACA,SAAUI,EACV,UAAWG,EACT,yFACA,gFACA,CACE,kCAAmChB,CAAA,EAErCC,GAAA,YAAAA,EAAS,QAAA,EAEX,gBAAeK,GAAA,YAAAA,EAAY,QAAA,CAAA,CAC7B,EACF,EACCJ,GAAmBe,EAACC,EAAA,CAAiB,GAAGhB,CAAA,CAAiB,CAAA,CAAA,CAAA,CAGhE,CACF,EACAP,EAAa,YAAc"}
@@ -1,2 +1,2 @@
1
- import{jsxs as x,Fragment as h,jsx as o}from"react/jsx-runtime";import{forwardRef as j}from"react";import{defaultDropzoneOptions as v}from"./model/helpers.js";import{useUploader as w}from"./model/hooks/useUploader.js";import{UploaderFiles as z}from"./ui/UploaderFiles.js";import{cn as S}from"../../../../utils/cn.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-hook-form";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../autocomplete/Autocomplete.js";import"../checkbox/Checkbox.js";import"../combobox/combobox.js";import"../dayPicker/DayPicker.js";import"../input/Input.js";import"../inputOtp/InputOtpBase.js";import"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../inputCurrency/InputCurrency.js";import"../../../../../../src/configs/api.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{UploaderInput as b}from"./ui/UploaderInput.js";const so=j(({classes:i,dropzoneOptions:m=v,name:p,value:r,disabled:e,invalid:s,onChange:l,externalHandlers:t,...f},a)=>{const{filesStatus:n,removeFile:c,dropzoneState:d}=w({controlledFiles:r,dropzoneOptions:m,onChange:l,externalHandlers:t}),{root:u,input:F,files:U}=i||{};return x(h,{children:[o("div",{className:S("relative mb-3 w-[476px]",u),children:o(b,{...f,ref:a,name:p,classes:F,disabled:e,invalid:s,dropzoneState:d,externalHandlers:t})}),o(z,{files:r,removeFile:c,classes:U,filesStatus:n})]})});export{so as UploaderBase};
1
+ import{jsxs as g,Fragment as h,jsx as r}from"react/jsx-runtime";import{forwardRef as j}from"react";import{defaultDropzoneOptions as v}from"./model/helpers.js";import{useUploader as w}from"./model/hooks/useUploader.js";import{UploaderFiles as z}from"./ui/UploaderFiles.js";import{cn as I}from"../../../../utils/cn.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-hook-form";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../autocomplete/Autocomplete.js";import"../checkbox/Checkbox.js";import"../combobox/combobox.js";import"../dayPicker/DayPicker.js";import"../input/Input.js";import"../inputOtp/InputOtpBase.js";import"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../inputCurrency/InputCurrency.js";import"../../../../../../src/configs/api.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{UploaderInput as S}from"./ui/UploaderInput.js";const lo=j(({classes:m,dropzoneOptions:p=v,name:e,value:t,disabled:s,invalid:l,onChange:f,externalHandlers:i,dataLayers:o,...n},c)=>{const{filesStatus:d,removeFile:u,dropzoneState:a}=w({controlledFiles:t,dropzoneOptions:p,onChange:f,externalHandlers:i}),{root:F,input:U,files:x}=m||{};return g(h,{children:[r("div",{className:I("relative mb-3 w-[476px]",F),children:r(S,{...n,ref:c,name:e,classes:U,disabled:s,invalid:l,dropzoneState:a,externalHandlers:i,"data-layer-id":o==null?void 0:o.targetId})}),r(z,{files:t,removeFile:u,classes:x,filesStatus:d})]})});export{lo as UploaderBase};
2
2
  //# sourceMappingURL=UploaderBase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UploaderBase.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.tsx"],"sourcesContent":["import { forwardRef, type InputHTMLAttributes } from 'react'\nimport { type DropzoneOptions } from 'react-dropzone'\nimport { defaultDropzoneOptions } from './model'\nimport { useUploader } from './model/hooks/useUploader'\nimport { UploaderFiles, type UploaderFilesClasses, UploaderInput, type UploaderInputClasses } from './ui'\nimport { cn } from '$/shared/utils'\n\ntype UploaderBaseClasses = {\n root?: string\n input?: UploaderInputClasses\n files?: UploaderFilesClasses\n}\n\nexport type ExternalHandlers = {\n onChange?: (files: File[]) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n}\n\nexport interface UploaderBaseProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'placeholder' | 'value' | 'onChange'> {\n /**\n * Опции uploader-а, в нем можно валидировать файлы, указывать максимум и минимум для файлов\n * Подробнее можно узнать в типе DropzoneOptions\n */\n dropzoneOptions?: DropzoneOptions\n /**\n * Объект классов которые можно переопределить\n */\n classes?: UploaderBaseClasses\n /**\n * Доп текст под инпутом\n */\n helperText?: string\n /**\n * Сеттер значение\n * @param file - файлы\n */\n onChange?: (file: File[]) => void\n /**\n * Валидное ли значение\n */\n invalid?: boolean\n /**\n * Значение\n */\n value?: File[]\n /**\n * Внешние объект handlers\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const UploaderBase = forwardRef<HTMLInputElement, UploaderBaseProps>(\n (\n {\n classes,\n dropzoneOptions = defaultDropzoneOptions,\n name,\n value,\n disabled,\n invalid,\n onChange,\n externalHandlers,\n ...props\n }: UploaderBaseProps,\n ref\n ) => {\n const { filesStatus, removeFile, dropzoneState } = useUploader({\n controlledFiles: value,\n dropzoneOptions,\n onChange,\n externalHandlers\n })\n\n const { root, input, files } = classes || {}\n\n return (\n <>\n <div className={cn('relative mb-3 w-[476px]', root)}>\n <UploaderInput\n {...props}\n ref={ref}\n name={name}\n classes={input}\n disabled={disabled}\n invalid={invalid}\n dropzoneState={dropzoneState}\n externalHandlers={externalHandlers}\n />\n </div>\n <UploaderFiles files={value} removeFile={removeFile} classes={files} filesStatus={filesStatus} />\n </>\n )\n }\n)\n"],"names":["UploaderBase","forwardRef","classes","dropzoneOptions","defaultDropzoneOptions","name","value","disabled","invalid","onChange","externalHandlers","props","ref","filesStatus","removeFile","dropzoneState","useUploader","root","input","files","jsxs","Fragment","jsx","cn","UploaderInput","UploaderFiles"],"mappings":"i9CAoDO,MAAMA,GAAeC,EAC1B,CACE,CACE,QAAAC,EACA,gBAAAC,EAAkBC,EAClB,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,QAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,YAAAC,EAAa,WAAAC,EAAY,cAAAC,CAAA,EAAkBC,EAAY,CAC7D,gBAAiBV,EACjB,gBAAAH,EACA,SAAAM,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,KAAAO,EAAM,MAAAC,EAAO,MAAAC,CAAA,EAAUjB,GAAW,CAAA,EAE1C,OACEkB,EAAAC,EAAA,CACE,SAAA,CAAAC,EAAC,MAAA,CAAI,UAAWC,EAAG,0BAA2BN,CAAI,EAChD,SAAAK,EAACE,EAAA,CACE,GAAGb,EACJ,IAAAC,EACA,KAAAP,EACA,QAASa,EACT,SAAAX,EACA,QAAAC,EACA,cAAAO,EACA,iBAAAL,CAAA,CAAA,EAEJ,IACCe,EAAA,CAAc,MAAOnB,EAAO,WAAAQ,EAAwB,QAASK,EAAO,YAAAN,CAAA,CAA0B,CAAA,EACjG,CAEJ,CACF"}
1
+ {"version":3,"file":"UploaderBase.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.tsx"],"sourcesContent":["import { forwardRef, type InputHTMLAttributes } from 'react'\nimport { type DropzoneOptions } from 'react-dropzone'\nimport { type DataLayers } from '../../../../types'\nimport { defaultDropzoneOptions } from './model'\nimport { useUploader } from './model/hooks/useUploader'\nimport { UploaderFiles, type UploaderFilesClasses, UploaderInput, type UploaderInputClasses } from './ui'\nimport { cn } from '$/shared/utils'\n\ntype UploaderBaseClasses = {\n root?: string\n input?: UploaderInputClasses\n files?: UploaderFilesClasses\n}\n\nexport type ExternalHandlers = {\n onChange?: (files: File[]) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n}\n\nexport interface UploaderBaseProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'placeholder' | 'value' | 'onChange'> {\n /**\n * Опции uploader-а, в нем можно валидировать файлы, указывать максимум и минимум для файлов\n * Подробнее можно узнать в типе DropzoneOptions\n */\n dropzoneOptions?: DropzoneOptions\n /**\n * Объект классов которые можно переопределить\n */\n classes?: UploaderBaseClasses\n /**\n * Доп текст под инпутом\n */\n helperText?: string\n /**\n * Сеттер значение\n * @param file - файлы\n */\n onChange?: (file: File[]) => void\n /**\n * Валидное ли значение\n */\n invalid?: boolean\n /**\n * Значение\n */\n value?: File[]\n /**\n * Внешние объект handlers\n */\n externalHandlers?: ExternalHandlers\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n}\n\nexport const UploaderBase = forwardRef<HTMLInputElement, UploaderBaseProps>(\n (\n {\n classes,\n dropzoneOptions = defaultDropzoneOptions,\n name,\n value,\n disabled,\n invalid,\n onChange,\n externalHandlers,\n dataLayers,\n ...props\n }: UploaderBaseProps,\n ref\n ) => {\n const { filesStatus, removeFile, dropzoneState } = useUploader({\n controlledFiles: value,\n dropzoneOptions,\n onChange,\n externalHandlers\n })\n\n const { root, input, files } = classes || {}\n\n return (\n <>\n <div className={cn('relative mb-3 w-[476px]', root)}>\n <UploaderInput\n {...props}\n ref={ref}\n name={name}\n classes={input}\n disabled={disabled}\n invalid={invalid}\n dropzoneState={dropzoneState}\n externalHandlers={externalHandlers}\n data-layer-id={dataLayers?.targetId}\n />\n </div>\n <UploaderFiles files={value} removeFile={removeFile} classes={files} filesStatus={filesStatus} />\n </>\n )\n }\n)\n"],"names":["UploaderBase","forwardRef","classes","dropzoneOptions","defaultDropzoneOptions","name","value","disabled","invalid","onChange","externalHandlers","dataLayers","props","ref","filesStatus","removeFile","dropzoneState","useUploader","root","input","files","jsxs","Fragment","jsx","cn","UploaderInput","UploaderFiles"],"mappings":"i9CAyDO,MAAMA,GAAeC,EAC1B,CACE,CACE,QAAAC,EACA,gBAAAC,EAAkBC,EAClB,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,QAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,YAAAC,EAAa,WAAAC,EAAY,cAAAC,CAAA,EAAkBC,EAAY,CAC7D,gBAAiBX,EACjB,gBAAAH,EACA,SAAAM,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,KAAAQ,EAAM,MAAAC,EAAO,MAAAC,CAAA,EAAUlB,GAAW,CAAA,EAE1C,OACEmB,EAAAC,EAAA,CACE,SAAA,CAAAC,EAAC,MAAA,CAAI,UAAWC,EAAG,0BAA2BN,CAAI,EAChD,SAAAK,EAACE,EAAA,CACE,GAAGb,EACJ,IAAAC,EACA,KAAAR,EACA,QAASc,EACT,SAAAZ,EACA,QAAAC,EACA,cAAAQ,EACA,iBAAAN,EACA,gBAAeC,GAAA,YAAAA,EAAY,QAAA,CAAA,EAE/B,IACCe,EAAA,CAAc,MAAOpB,EAAO,WAAAS,EAAwB,QAASK,EAAO,YAAAN,CAAA,CAA0B,CAAA,EACjG,CAEJ,CACF"}