@scbt-ecom/ui 0.134.0 → 0.135.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/exports/ui.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/autocomplete/{Autocomplete.js → AutocompleteControl.js} +2 -2
- package/dist/lib/shared/ui/formElements/controlled/autocomplete/AutocompleteControl.js.map +1 -0
- package/dist/lib/shared/ui/formElements/controlled/autocomplete/index.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/checkbox/CheckboxControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/checkbox/CheckboxControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/combobox/ComboboxControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/combobox/ComboboxControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/index.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/index.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/inputOtp/InputOtpControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/inputOtp/InputOtpControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/radio/RadioGroupControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/radio/RadioGroupControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/switch/SwitchControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/switch/SwitchControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/textarea/TextareaControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/textarea/TextareaControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/uploader/UploaderControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/uploader/UploaderControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/index.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/input/Input.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/SliderBase.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/switch/Switch.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/switch/Switch.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/textarea/Textarea.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/textarea/Textarea.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js.map +1 -1
- package/dist/lib/shared/ui/index.js +1 -1
- package/dist/lib/widgets/authProvider/ui/Esia.js +1 -1
- package/dist/lib/widgets/authProvider/ui/Esia.js.map +1 -1
- package/dist/lib/widgets/authProvider/ui/MobileId.js +1 -1
- package/dist/lib/widgets/authProvider/ui/MobileId.js.map +1 -1
- package/dist/lib/widgets/authProvider/ui/ui/Links.js +1 -1
- package/dist/lib/widgets/authProvider/ui/ui/Links.js.map +1 -1
- package/dist/lib/widgets/dynamicForm/DynamicForm.js +1 -1
- package/dist/lib/widgets/dynamicForm/DynamicForm.js.map +1 -1
- package/dist/lib/widgets/model/helpers.js +2 -2
- package/dist/lib/widgets/model/helpers.js.map +1 -1
- package/dist/node_modules/prosemirror-model/dist/index.js +2 -2
- package/dist/node_modules/prosemirror-model/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-state/dist/index.js +1 -1
- package/dist/node_modules/prosemirror-state/dist/index.js.map +1 -1
- package/dist/stats.html +1 -1
- package/dist/types/lib/shared/ui/formElements/controlled/autocomplete/index.d.ts +1 -1
- package/dist/types/lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.d.ts +5 -0
- package/dist/types/lib/shared/ui/formElements/controlled/dayPickerControl/single.d.ts +5 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.d.ts +9 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/combobox/combobox.d.ts +10 -2
- package/dist/types/lib/shared/ui/formElements/uncontrolled/index.d.ts +7 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/input/Input.d.ts +9 -2
- package/dist/types/lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.d.ts +9 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.d.ts +1 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.d.ts +9 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/slider/SliderBase.d.ts +1 -1
- package/dist/types/lib/shared/ui/formElements/uncontrolled/switch/Switch.d.ts +3 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/textarea/Textarea.d.ts +9 -1
- package/dist/types/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.d.ts +5 -0
- package/dist/types/lib/widgets/authProvider/model/types.d.ts +1 -4
- package/dist/types/lib/widgets/authProvider/ui/Esia.d.ts +1 -1
- package/dist/types/lib/widgets/authProvider/ui/MobileId.d.ts +1 -1
- package/dist/types/lib/widgets/authProvider/ui/ui/Links.d.ts +2 -2
- package/dist/types/lib/widgets/dynamicForm/DynamicForm.d.ts +2 -1
- package/dist/types/lib/widgets/model/helpers.d.ts +1 -1
- package/package.json +1 -1
- package/dist/lib/shared/ui/formElements/controlled/autocomplete/Autocomplete.js.map +0 -1
- /package/dist/types/lib/shared/ui/formElements/controlled/autocomplete/{Autocomplete.d.ts → AutocompleteControl.d.ts} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as k,jsx as
|
|
1
|
+
import{jsxs as k,jsx as t}from"react/jsx-runtime";import{useController as v}from"react-hook-form";import{cn as w}from"../../../../utils/cn.js";import"react";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";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"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import{RadioGroupBase as G}from"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import{MessageView as R}from"../../ui/MessageView.js";import"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const so=({classes:i,className:m,control:p,name:e,rules:s,shouldUnregister:a,disabled:r,defaultValue:l,helperText:n,label:c,...d})=>{const{field:f,fieldState:g}=v({control:p,name:e,rules:s,shouldUnregister:a,disabled:r,defaultValue:l}),{onChange:u,...C}=f,{invalid:x,error:o}=g,{container:h,message:b,label:N,...j}=i||{};return k("div",{className:h,children:[t("p",{className:w("desk-body-regular-l w-full pb-4 text-color-dark",N),children:c}),t(G,{...d,...C,onValueChange:u,invalid:x,className:m,classes:j,"data-error-message":o==null?void 0:o.message}),t(R,{text:(o==null?void 0:o.message)||n,className:b,intent:o?"error":"simple",disabled:r})]})};export{so as RadioGroupControl};
|
|
2
2
|
//# sourceMappingURL=RadioGroupControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RadioGroupControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/radio/RadioGroupControl.tsx"],"sourcesContent":["import { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { RadioGroupBase, type RadioGroupBaseProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype RadioControlClasses = RadioGroupBaseProps['classes'] & {\n container?: string\n message?: string\n label?: string\n}\n\nexport type RadioGroupControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<RadioGroupBaseProps, 'classes' | 'name'> & {\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительные стили компонента\n */\n classes?: RadioControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n }\n\nexport const RadioGroupControl = <TFieldValues extends FieldValues = FieldValues>({\n classes,\n className,\n control,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue,\n helperText,\n label,\n ...props\n}: RadioGroupControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue\n })\n\n const { onChange, ...restField } = field\n const { invalid, error } = fieldState\n const { container, message, label: labelClass, ...restClasses } = classes || {}\n\n return (\n <div className={container}>\n <p className={cn('desk-body-regular-l w-full pb-4 text-color-dark', labelClass)}>{label}</p>\n <RadioGroupBase\n {...props}\n {...restField}\n onValueChange={onChange}\n invalid={invalid}\n className={className}\n classes={restClasses}\n />\n <MessageView\n text={error?.message || helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["RadioGroupControl","classes","className","control","name","rules","shouldUnregister","disabled","defaultValue","helperText","label","props","field","fieldState","useController","onChange","restField","invalid","error","container","message","labelClass","restClasses","jsxs","jsx","cn","RadioGroupBase","MessageView"],"mappings":"0hDAkCO,MAAMA,GAAoB,CAAiD,CAChF,QAAAC,EACA,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,EACA,WAAAC,EACA,MAAAC,EACA,GAAGC,CACL,IAA4C,CAC1C,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAX,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,CAAA,CACD,EAEK,CAAE,SAAAO,EAAU,GAAGC,CAAA,EAAcJ,EAC7B,CAAE,QAAAK,EAAS,MAAAC,CAAA,EAAUL,EACrB,CAAE,UAAAM,EAAW,QAAAC,EAAS,MAAOC,EAAY,GAAGC,CAAA,EAAgBrB,GAAW,CAAA,EAE7E,OACEsB,EAAC,MAAA,CAAI,UAAWJ,EACd,SAAA,CAAAK,EAAC,KAAE,UAAWC,EAAG,kDAAmDJ,CAAU,EAAI,SAAAX,EAAM,EACxFc,EAACE,EAAA,CACE,GAAGf,EACH,GAAGK,EACJ,cAAeD,EACf,QAAAE,EACA,UAAAf,EACA,QAASoB,
|
|
1
|
+
{"version":3,"file":"RadioGroupControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/radio/RadioGroupControl.tsx"],"sourcesContent":["import { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { RadioGroupBase, type RadioGroupBaseProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype RadioControlClasses = RadioGroupBaseProps['classes'] & {\n container?: string\n message?: string\n label?: string\n}\n\nexport type RadioGroupControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<RadioGroupBaseProps, 'classes' | 'name'> & {\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительные стили компонента\n */\n classes?: RadioControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n }\n\nexport const RadioGroupControl = <TFieldValues extends FieldValues = FieldValues>({\n classes,\n className,\n control,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue,\n helperText,\n label,\n ...props\n}: RadioGroupControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue\n })\n\n const { onChange, ...restField } = field\n const { invalid, error } = fieldState\n const { container, message, label: labelClass, ...restClasses } = classes || {}\n\n return (\n <div className={container}>\n <p className={cn('desk-body-regular-l w-full pb-4 text-color-dark', labelClass)}>{label}</p>\n <RadioGroupBase\n {...props}\n {...restField}\n onValueChange={onChange}\n invalid={invalid}\n className={className}\n classes={restClasses}\n data-error-message={error?.message}\n />\n <MessageView\n text={error?.message || helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["RadioGroupControl","classes","className","control","name","rules","shouldUnregister","disabled","defaultValue","helperText","label","props","field","fieldState","useController","onChange","restField","invalid","error","container","message","labelClass","restClasses","jsxs","jsx","cn","RadioGroupBase","MessageView"],"mappings":"0hDAkCO,MAAMA,GAAoB,CAAiD,CAChF,QAAAC,EACA,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,EACA,WAAAC,EACA,MAAAC,EACA,GAAGC,CACL,IAA4C,CAC1C,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAX,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,CAAA,CACD,EAEK,CAAE,SAAAO,EAAU,GAAGC,CAAA,EAAcJ,EAC7B,CAAE,QAAAK,EAAS,MAAAC,CAAA,EAAUL,EACrB,CAAE,UAAAM,EAAW,QAAAC,EAAS,MAAOC,EAAY,GAAGC,CAAA,EAAgBrB,GAAW,CAAA,EAE7E,OACEsB,EAAC,MAAA,CAAI,UAAWJ,EACd,SAAA,CAAAK,EAAC,KAAE,UAAWC,EAAG,kDAAmDJ,CAAU,EAAI,SAAAX,EAAM,EACxFc,EAACE,EAAA,CACE,GAAGf,EACH,GAAGK,EACJ,cAAeD,EACf,QAAAE,EACA,UAAAf,EACA,QAASoB,EACT,qBAAoBJ,GAAA,YAAAA,EAAO,OAAA,CAAA,EAE7BM,EAACG,EAAA,CACC,MAAMT,GAAA,YAAAA,EAAO,UAAWT,EACxB,UAAWW,EACX,OAAQF,EAAQ,QAAU,SAC1B,SAAAX,CAAA,CAAA,CACF,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as i,jsx as
|
|
1
|
+
import{jsxs as i,jsx as t}from"react/jsx-runtime";import{useId as B}from"react";import{useController as F}from"react-hook-form";import{cn as e}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{Popover as I}from"../../../popover/Popover.js";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as z}from"../../../icon/Icon.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/slider/SliderBase.js";import{SwitchBase as E}from"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as M}from"../../ui/MessageView.js";const ho=({classes:c,className:a,control:n,name:f,rules:d,defaultValue:g,disabled:o,shouldUnregister:x,children:h,helperText:m,tooltip:s,popoverProps:u,...C})=>{const{field:v,fieldState:y}=F({control:n,name:f,rules:d,defaultValue:g,disabled:o,shouldUnregister:x}),{value:N,onChange:b,...k}=v,{invalid:w,error:r}=y,{container:S,message:p,...j}=c||{},l=B();return i("div",{className:e("flex flex-col",{"pointer-events-none":o},a,S),children:[i("div",{className:"flex items-center gap-2",children:[t(E,{...C,...k,invalid:w,classes:j,id:l,checked:N,onCheckedChange:b,"data-error-message":r==null?void 0:r.message}),i("label",{htmlFor:l,className:e("mob-body-regular-l text-color-dark",{"flex flex-col":!!m,"text-color-disabled":o}),children:[h,m&&t("p",{className:e("mob-body-regular-s text-color-tetriary",{"text-color-disabled":o},p),children:m})]}),s&&t(I,{side:"top",classes:{root:"self-start py-[2px]"},triggerElement:t(z,{name:"info/helpCircle",className:e("size-4 text-color-blue-grey-600",{"text-icon-blue-grey-100":o})}),...u,children:s})]}),r&&t(M,{text:r.message,className:p,intent:"error",disabled:o})]})};export{ho as SwitchControl};
|
|
2
2
|
//# sourceMappingURL=SwitchControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/switch/SwitchControl.tsx"],"sourcesContent":["import { useId } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { MessageView } from '../../ui'\nimport { Icon, Popover, SwitchBase, type SwitchBaseProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype SwitchControlClasses = SwitchBaseProps['classes'] & {\n container?: string\n message?: string\n}\n\ntype PopoverProps = React.ComponentPropsWithoutRef<typeof Popover>\n\nexport type SwitchControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<SwitchBaseProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Отображаемый лейбл\n */\n children: React.ReactElement | string\n /**\n * Дополнительные стили компонента\n */\n classes?: SwitchControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n /**\n * Текст всплывающей подсказки\n */\n tooltip?: React.ReactElement | string\n /**\n * Свойства `Popover` компонента\n */\n popoverProps?: PopoverProps\n }\n\nexport const SwitchControl = <TFieldValues extends FieldValues = FieldValues>({\n classes,\n className,\n control,\n name,\n rules,\n defaultValue,\n disabled,\n shouldUnregister,\n children,\n helperText,\n tooltip,\n popoverProps,\n ...props\n}: SwitchControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n defaultValue,\n disabled,\n shouldUnregister\n })\n\n const { value, onChange, ...restField } = field\n const { invalid, error } = fieldState\n const { container, message, ...restClasses } = classes || {}\n const id = useId()\n\n return (\n <div className={cn('flex flex-col', { 'pointer-events-none': disabled }, className, container)}>\n <div className='flex items-center gap-2'>\n <SwitchBase\n {...props}\n {...restField}\n invalid={invalid}\n classes={restClasses}\n id={id}\n checked={value}\n onCheckedChange={onChange}\n />\n <label\n htmlFor={id}\n className={cn('mob-body-regular-l text-color-dark', {\n 'flex flex-col': Boolean(helperText),\n 'text-color-disabled': disabled\n })}\n >\n {children}\n {helperText && (\n <p\n className={cn(\n 'mob-body-regular-s text-color-tetriary',\n {\n 'text-color-disabled': disabled\n },\n message\n )}\n >\n {helperText}\n </p>\n )}\n </label>\n {tooltip && (\n <Popover\n side='top'\n classes={{ root: 'self-start py-[2px]' }}\n triggerElement={\n <Icon\n name='info/helpCircle'\n className={cn('size-4 text-color-blue-grey-600', {\n 'text-icon-blue-grey-100': disabled\n })}\n />\n }\n {...popoverProps}\n >\n {tooltip}\n </Popover>\n )}\n </div>\n {error && <MessageView text={error.message} className={message} intent='error' disabled={disabled} />}\n </div>\n )\n}\n"],"names":["SwitchControl","classes","className","control","name","rules","defaultValue","disabled","shouldUnregister","children","helperText","tooltip","popoverProps","props","field","fieldState","useController","value","onChange","restField","invalid","error","container","message","restClasses","id","useId","jsxs","cn","jsx","SwitchBase","Popover","Icon","MessageView"],"mappings":"yoDA4CO,MAAMA,GAAgB,CAAiD,CAC5E,QAAAC,EACA,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,aAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAb,EACA,KAAAC,EACA,MAAAC,EACA,aAAAC,EACA,SAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAS,EAAO,SAAAC,EAAU,GAAGC,GAAcL,EACpC,CAAE,QAAAM,EAAS,MAAAC,CAAA,EAAUN,EACrB,CAAE,UAAAO,EAAW,QAAAC,EAAS,GAAGC,CAAA,EAAgBvB,GAAW,CAAA,EACpDwB,EAAKC,EAAA,EAEX,OACEC,EAAC,MAAA,CAAI,UAAWC,EAAG,gBAAiB,CAAE,sBAAuBrB,CAAA,EAAYL,EAAWoB,CAAS,EAC3F,SAAA,CAAAK,EAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAE,EAACC,EAAA,CACE,GAAGjB,EACH,GAAGM,EACJ,QAAAC,EACA,QAASI,EACT,GAAAC,EACA,QAASR,EACT,gBAAiBC,
|
|
1
|
+
{"version":3,"file":"SwitchControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/switch/SwitchControl.tsx"],"sourcesContent":["import { useId } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { MessageView } from '../../ui'\nimport { Icon, Popover, SwitchBase, type SwitchBaseProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype SwitchControlClasses = SwitchBaseProps['classes'] & {\n container?: string\n message?: string\n}\n\ntype PopoverProps = React.ComponentPropsWithoutRef<typeof Popover>\n\nexport type SwitchControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<SwitchBaseProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Отображаемый лейбл\n */\n children: React.ReactElement | string\n /**\n * Дополнительные стили компонента\n */\n classes?: SwitchControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n /**\n * Текст всплывающей подсказки\n */\n tooltip?: React.ReactElement | string\n /**\n * Свойства `Popover` компонента\n */\n popoverProps?: PopoverProps\n }\n\nexport const SwitchControl = <TFieldValues extends FieldValues = FieldValues>({\n classes,\n className,\n control,\n name,\n rules,\n defaultValue,\n disabled,\n shouldUnregister,\n children,\n helperText,\n tooltip,\n popoverProps,\n ...props\n}: SwitchControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n defaultValue,\n disabled,\n shouldUnregister\n })\n\n const { value, onChange, ...restField } = field\n const { invalid, error } = fieldState\n const { container, message, ...restClasses } = classes || {}\n const id = useId()\n\n return (\n <div className={cn('flex flex-col', { 'pointer-events-none': disabled }, className, container)}>\n <div className='flex items-center gap-2'>\n <SwitchBase\n {...props}\n {...restField}\n invalid={invalid}\n classes={restClasses}\n id={id}\n checked={value}\n onCheckedChange={onChange}\n data-error-message={error?.message}\n />\n <label\n htmlFor={id}\n className={cn('mob-body-regular-l text-color-dark', {\n 'flex flex-col': Boolean(helperText),\n 'text-color-disabled': disabled\n })}\n >\n {children}\n {helperText && (\n <p\n className={cn(\n 'mob-body-regular-s text-color-tetriary',\n {\n 'text-color-disabled': disabled\n },\n message\n )}\n >\n {helperText}\n </p>\n )}\n </label>\n {tooltip && (\n <Popover\n side='top'\n classes={{ root: 'self-start py-[2px]' }}\n triggerElement={\n <Icon\n name='info/helpCircle'\n className={cn('size-4 text-color-blue-grey-600', {\n 'text-icon-blue-grey-100': disabled\n })}\n />\n }\n {...popoverProps}\n >\n {tooltip}\n </Popover>\n )}\n </div>\n {error && <MessageView text={error.message} className={message} intent='error' disabled={disabled} />}\n </div>\n )\n}\n"],"names":["SwitchControl","classes","className","control","name","rules","defaultValue","disabled","shouldUnregister","children","helperText","tooltip","popoverProps","props","field","fieldState","useController","value","onChange","restField","invalid","error","container","message","restClasses","id","useId","jsxs","cn","jsx","SwitchBase","Popover","Icon","MessageView"],"mappings":"yoDA4CO,MAAMA,GAAgB,CAAiD,CAC5E,QAAAC,EACA,UAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,aAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,GAAGC,CACL,IAAwC,CACtC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAb,EACA,KAAAC,EACA,MAAAC,EACA,aAAAC,EACA,SAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAS,EAAO,SAAAC,EAAU,GAAGC,GAAcL,EACpC,CAAE,QAAAM,EAAS,MAAAC,CAAA,EAAUN,EACrB,CAAE,UAAAO,EAAW,QAAAC,EAAS,GAAGC,CAAA,EAAgBvB,GAAW,CAAA,EACpDwB,EAAKC,EAAA,EAEX,OACEC,EAAC,MAAA,CAAI,UAAWC,EAAG,gBAAiB,CAAE,sBAAuBrB,CAAA,EAAYL,EAAWoB,CAAS,EAC3F,SAAA,CAAAK,EAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAE,EAACC,EAAA,CACE,GAAGjB,EACH,GAAGM,EACJ,QAAAC,EACA,QAASI,EACT,GAAAC,EACA,QAASR,EACT,gBAAiBC,EACjB,qBAAoBG,GAAA,YAAAA,EAAO,OAAA,CAAA,EAE7BM,EAAC,QAAA,CACC,QAASF,EACT,UAAWG,EAAG,qCAAsC,CAClD,gBAAiB,EAAQlB,EACzB,sBAAuBH,CAAA,CACxB,EAEA,SAAA,CAAAE,EACAC,GACCmB,EAAC,IAAA,CACC,UAAWD,EACT,yCACA,CACE,sBAAuBrB,CAAA,EAEzBgB,CAAA,EAGD,SAAAb,CAAA,CAAA,CACH,CAAA,CAAA,EAGHC,GACCkB,EAACE,EAAA,CACC,KAAK,MACL,QAAS,CAAE,KAAM,qBAAA,EACjB,eACEF,EAACG,EAAA,CACC,KAAK,kBACL,UAAWJ,EAAG,kCAAmC,CAC/C,0BAA2BrB,CAAA,CAC5B,CAAA,CAAA,EAGJ,GAAGK,EAEH,SAAAD,CAAA,CAAA,CACH,EAEJ,EACCU,GAASQ,EAACI,EAAA,CAAY,KAAMZ,EAAM,QAAS,UAAWE,EAAS,OAAO,QAAQ,SAAAhB,CAAA,CAAoB,CAAA,EACrG,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as v,jsx as m}from"react/jsx-runtime";import{useController as w}from"react-hook-form";import{cn as C}from"../../../../utils/cn.js";import"react";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";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"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import{TextareaBase as T}from"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import{MessageView as j}from"../../ui/MessageView.js";import"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const it=({classes:p,control:e,name:s,rules:a,disabled:r,defaultValue:n,shouldUnregister:l,helperText:c,...i})=>{const{field:f,fieldState:d}=w({control:e,name:s,rules:a,disabled:r,defaultValue:n,shouldUnregister:l}),{error:t,invalid:o,isTouched:x}=d,{message:
|
|
1
|
+
import{jsxs as v,jsx as m}from"react/jsx-runtime";import{useController as w}from"react-hook-form";import{cn as C}from"../../../../utils/cn.js";import"react";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";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"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import{TextareaBase as T}from"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import{MessageView as j}from"../../ui/MessageView.js";import"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const it=({classes:p,control:e,name:s,rules:a,disabled:r,defaultValue:n,shouldUnregister:l,helperText:c,...i})=>{const{field:f,fieldState:d}=w({control:e,name:s,rules:a,disabled:r,defaultValue:n,shouldUnregister:l}),{error:t,invalid:o,isTouched:x}=d,{message:g,root:h,...u}=p||{};return v("div",{className:C("w-full",h),children:[m(T,{...i,...f,"aria-invalid":o,invalid:o,classes:u,attachmentProps:{invalid:o,isTouched:x,withValidateIcons:!0,...i.attachmentProps},"data-error-message":t==null?void 0:t.message}),m(j,{text:(t==null?void 0:t.message)||c,className:g,intent:t?"error":"simple",disabled:r})]})};export{it as TextareaControl};
|
|
2
2
|
//# sourceMappingURL=TextareaControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextareaControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/textarea/TextareaControl.tsx"],"sourcesContent":["import { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { TextareaBase, type TextareaBaseProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype TextareaControlClasses = TextareaBaseProps['classes'] & {\n root?: string\n message?: string\n}\n\nexport type TextareaControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<TextareaBaseProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительные стили компонента\n */\n classes?: TextareaControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n }\n\nexport const TextareaControl = <TFieldValues extends FieldValues = FieldValues>({\n classes,\n control,\n name,\n rules,\n disabled,\n defaultValue,\n shouldUnregister,\n helperText,\n ...props\n}: TextareaControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n disabled,\n defaultValue,\n shouldUnregister\n })\n\n const { error, invalid, isTouched } = fieldState\n const { message, root, ...restClasses } = classes || {}\n\n return (\n <div className={cn('w-full', root)}>\n <TextareaBase\n {...props}\n {...field}\n aria-invalid={invalid}\n invalid={invalid}\n classes={restClasses}\n attachmentProps={{\n invalid,\n isTouched,\n withValidateIcons: true,\n ...props.attachmentProps\n }}\n />\n <MessageView\n text={error?.message || helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["TextareaControl","classes","control","name","rules","disabled","defaultValue","shouldUnregister","helperText","props","field","fieldState","useController","error","invalid","isTouched","message","root","restClasses","cn","jsx","TextareaBase","MessageView"],"mappings":"whDA6BO,MAAMA,GAAkB,CAAiD,CAC9E,QAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,GAAGC,CACL,IAA0C,CACxC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAV,EACA,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,aAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAM,EAAO,QAAAC,EAAS,UAAAC,CAAA,EAAcJ,EAChC,CAAE,QAAAK,EAAS,KAAAC,EAAM,GAAGC,CAAA,EAAgBjB,GAAW,CAAA,EAErD,SACG,MAAA,CAAI,UAAWkB,EAAG,SAAUF,CAAI,EAC/B,SAAA,CAAAG,EAACC,EAAA,CACE,GAAGZ,EACH,GAAGC,EACJ,eAAcI,EACd,QAAAA,EACA,QAASI,EACT,gBAAiB,CACf,QAAAJ,EACA,UAAAC,EACA,kBAAmB,GACnB,GAAGN,EAAM,eAAA,
|
|
1
|
+
{"version":3,"file":"TextareaControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/textarea/TextareaControl.tsx"],"sourcesContent":["import { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { TextareaBase, type TextareaBaseProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype TextareaControlClasses = TextareaBaseProps['classes'] & {\n root?: string\n message?: string\n}\n\nexport type TextareaControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<TextareaBaseProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительные стили компонента\n */\n classes?: TextareaControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n }\n\nexport const TextareaControl = <TFieldValues extends FieldValues = FieldValues>({\n classes,\n control,\n name,\n rules,\n disabled,\n defaultValue,\n shouldUnregister,\n helperText,\n ...props\n}: TextareaControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n disabled,\n defaultValue,\n shouldUnregister\n })\n\n const { error, invalid, isTouched } = fieldState\n const { message, root, ...restClasses } = classes || {}\n\n return (\n <div className={cn('w-full', root)}>\n <TextareaBase\n {...props}\n {...field}\n aria-invalid={invalid}\n invalid={invalid}\n classes={restClasses}\n attachmentProps={{\n invalid,\n isTouched,\n withValidateIcons: true,\n ...props.attachmentProps\n }}\n data-error-message={error?.message}\n />\n <MessageView\n text={error?.message || helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["TextareaControl","classes","control","name","rules","disabled","defaultValue","shouldUnregister","helperText","props","field","fieldState","useController","error","invalid","isTouched","message","root","restClasses","cn","jsx","TextareaBase","MessageView"],"mappings":"whDA6BO,MAAMA,GAAkB,CAAiD,CAC9E,QAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,GAAGC,CACL,IAA0C,CACxC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAV,EACA,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,aAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAM,EAAO,QAAAC,EAAS,UAAAC,CAAA,EAAcJ,EAChC,CAAE,QAAAK,EAAS,KAAAC,EAAM,GAAGC,CAAA,EAAgBjB,GAAW,CAAA,EAErD,SACG,MAAA,CAAI,UAAWkB,EAAG,SAAUF,CAAI,EAC/B,SAAA,CAAAG,EAACC,EAAA,CACE,GAAGZ,EACH,GAAGC,EACJ,eAAcI,EACd,QAAAA,EACA,QAASI,EACT,gBAAiB,CACf,QAAAJ,EACA,UAAAC,EACA,kBAAmB,GACnB,GAAGN,EAAM,eAAA,EAEX,qBAAoBI,GAAA,YAAAA,EAAO,OAAA,CAAA,EAE7BO,EAACE,EAAA,CACC,MAAMT,GAAA,YAAAA,EAAO,UAAWL,EACxB,UAAWQ,EACX,OAAQH,EAAQ,QAAU,SAC1B,SAAAR,CAAA,CAAA,CACF,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as C,jsx as
|
|
1
|
+
import{jsxs as C,jsx as r}from"react/jsx-runtime";import{useController as j}from"react-hook-form";import{UploaderBase as v}from"../../uncontrolled/uploader/UploaderBase.js";import{cn as w}from"../../../../utils/cn.js";import"react";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";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"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as N}from"../../ui/MessageView.js";const rt=({control:m,name:i,defaultValue:p,rules:s,shouldUnregister:e,classes:a,helperText:l,disabled:o,...n})=>{const{field:c,fieldState:f}=j({control:m,name:i,defaultValue:p,rules:s,shouldUnregister:e}),{error:t,invalid:d}=f,{message:g,container:x,...u}=a||{};return C("div",{className:w("w-full",x),children:[r(v,{...n,...c,invalid:d,disabled:o,classes:u,"data-error-message":t==null?void 0:t.message}),r(N,{text:(t==null?void 0:t.message)||l,className:g,intent:t?"error":"simple",disabled:o})]})};export{rt as UploaderControl};
|
|
2
2
|
//# sourceMappingURL=UploaderControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploaderControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/uploader/UploaderControl.tsx"],"sourcesContent":["import { type Control, type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { UploaderBase, type UploaderBaseProps } from '../../uncontrolled/uploader'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype UploaderControlClasses = UploaderBaseProps & {\n message?: string\n container?: string\n}\n\nexport type UploaderControlProps<\n TFieldValues extends FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<UploaderBaseProps, 'name'> & {\n control: Control<TFieldValues>\n classes?: UploaderControlClasses\n }\n\nexport const UploaderControl = <TFieldValues extends FieldValues>({\n control,\n name,\n defaultValue,\n rules,\n shouldUnregister,\n classes,\n helperText,\n disabled,\n ...props\n}: UploaderControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n rules,\n shouldUnregister\n })\n\n const { error, invalid } = fieldState\n\n const { message, container, ...restClasses } = classes || {}\n\n return (\n <div className={cn('w-full', container)}>\n <UploaderBase
|
|
1
|
+
{"version":3,"file":"UploaderControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/uploader/UploaderControl.tsx"],"sourcesContent":["import { type Control, type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { UploaderBase, type UploaderBaseProps } from '../../uncontrolled/uploader'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype UploaderControlClasses = UploaderBaseProps & {\n message?: string\n container?: string\n}\n\nexport type UploaderControlProps<\n TFieldValues extends FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<UploaderBaseProps, 'name'> & {\n control: Control<TFieldValues>\n classes?: UploaderControlClasses\n }\n\nexport const UploaderControl = <TFieldValues extends FieldValues>({\n control,\n name,\n defaultValue,\n rules,\n shouldUnregister,\n classes,\n helperText,\n disabled,\n ...props\n}: UploaderControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n rules,\n shouldUnregister\n })\n\n const { error, invalid } = fieldState\n\n const { message, container, ...restClasses } = classes || {}\n\n return (\n <div className={cn('w-full', container)}>\n <UploaderBase\n {...props}\n {...field}\n invalid={invalid}\n disabled={disabled}\n classes={restClasses}\n data-error-message={error?.message}\n />\n <MessageView\n text={error?.message || helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["UploaderControl","control","name","defaultValue","rules","shouldUnregister","classes","helperText","disabled","props","field","fieldState","useController","error","invalid","message","container","restClasses","cn","jsx","UploaderBase","MessageView"],"mappings":"whDAmBO,MAAMA,GAAkB,CAAmC,CAChE,QAAAC,EACA,KAAAC,EACA,aAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,QAAAC,EACA,WAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAA0C,CACxC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAX,EACA,KAAAC,EACA,aAAAC,EACA,MAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAQ,EAAO,QAAAC,CAAA,EAAYH,EAErB,CAAE,QAAAI,EAAS,UAAAC,EAAW,GAAGC,CAAA,EAAgBX,GAAW,CAAA,EAE1D,SACG,MAAA,CAAI,UAAWY,EAAG,SAAUF,CAAS,EACpC,SAAA,CAAAG,EAACC,EAAA,CACE,GAAGX,EACH,GAAGC,EACJ,QAAAI,EACA,SAAAN,EACA,QAASS,EACT,qBAAoBJ,GAAA,YAAAA,EAAO,OAAA,CAAA,EAE7BM,EAACE,EAAA,CACC,MAAMR,GAAA,YAAAA,EAAO,UAAWN,EACxB,UAAWQ,EACX,OAAQF,EAAQ,QAAU,SAC1B,SAAAL,CAAA,CAAA,CACF,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{AutocompleteBase as t}from"./uncontrolled/autocomplete/Autocomplete.js";import{CheckboxBase as p}from"./uncontrolled/checkbox/Checkbox.js";import{Combobox as m}from"./uncontrolled/combobox/combobox.js";import{DayPickerBase as f}from"./uncontrolled/dayPicker/DayPicker.js";import{InputBase as l}from"./uncontrolled/input/Input.js";import{InputOtpBase as d}from"./uncontrolled/inputOtp/InputOtpBase.js";import{MaskInput as u}from"./uncontrolled/maskInput/MaskInput.js";import{RadioGroupBase as B}from"./uncontrolled/radio/RadioGroup.js";import{RadioItem as c}from"./uncontrolled/radio/ui/RadioItem.js";import{RadioItemCard as y}from"./uncontrolled/radio/ui/RadioItemCard.js";import{RadioItemTab as R}from"./uncontrolled/radio/ui/RadioItemTab.js";import{SliderBase as T}from"./uncontrolled/slider/SliderBase.js";import{SwitchBase as A}from"./uncontrolled/switch/Switch.js";import{TextareaBase as S}from"./uncontrolled/textarea/Textarea.js";import{UploaderBase as M}from"./uncontrolled/uploader/UploaderBase.js";import{bytesToMegabytes as U,megabytesToBytes as w}from"./uncontrolled/uploader/model/helpers.js";import{InputCurrencyBase as z}from"./uncontrolled/inputCurrency/InputCurrency.js";import{Uncontrolled as F}from"./uncontrolled/index.js";import{AutocompleteControl as q}from"./controlled/autocomplete/
|
|
1
|
+
import{AutocompleteBase as t}from"./uncontrolled/autocomplete/Autocomplete.js";import{CheckboxBase as p}from"./uncontrolled/checkbox/Checkbox.js";import{Combobox as m}from"./uncontrolled/combobox/combobox.js";import{DayPickerBase as f}from"./uncontrolled/dayPicker/DayPicker.js";import{InputBase as l}from"./uncontrolled/input/Input.js";import{InputOtpBase as d}from"./uncontrolled/inputOtp/InputOtpBase.js";import{MaskInput as u}from"./uncontrolled/maskInput/MaskInput.js";import{RadioGroupBase as B}from"./uncontrolled/radio/RadioGroup.js";import{RadioItem as c}from"./uncontrolled/radio/ui/RadioItem.js";import{RadioItemCard as y}from"./uncontrolled/radio/ui/RadioItemCard.js";import{RadioItemTab as R}from"./uncontrolled/radio/ui/RadioItemTab.js";import{SliderBase as T}from"./uncontrolled/slider/SliderBase.js";import{SwitchBase as A}from"./uncontrolled/switch/Switch.js";import{TextareaBase as S}from"./uncontrolled/textarea/Textarea.js";import{UploaderBase as M}from"./uncontrolled/uploader/UploaderBase.js";import{bytesToMegabytes as U,megabytesToBytes as w}from"./uncontrolled/uploader/model/helpers.js";import{InputCurrencyBase as z}from"./uncontrolled/inputCurrency/InputCurrency.js";import{Uncontrolled as F}from"./uncontrolled/index.js";import{AutocompleteControl as q}from"./controlled/autocomplete/AutocompleteControl.js";import{CheckboxControl as H}from"./controlled/checkbox/CheckboxControl.js";import{DadataOrganization as K}from"./controlled/dadata/party/DadataOrganization.js";import{DadataAddress as N}from"./controlled/dadata/address/DadataAddress.js";import{DadataAuto as V}from"./controlled/dadata/auto/DadataAuto.js";import{DadataCountry as X}from"./controlled/dadata/country/DadataCountry.js";import{DadataFio as Z}from"./controlled/dadata/fio/DadataFio.js";import{DayPickerControl as $}from"./controlled/dayPickerControl/dayPickerControl.js";import{EditorControl as ro}from"./controlled/editor/EditorControl.js";import{InputControl as eo}from"./controlled/input/InputControl.js";import{MaskInputControl as ao}from"./controlled/input/MaskInputControl.js";import{InputCurrencyControl as xo}from"./controlled/inputCurrency/InputCurrencyControl.js";import{InputOtpControl as no}from"./controlled/inputOtp/InputOtpControl.js";import{RadioGroupControl as Co}from"./controlled/radio/RadioGroupControl.js";import{RadioGroupTabControl as uo}from"./controlled/radio/RadioGroupTabControl.js";import{RadioGroupCardControl as Bo}from"./controlled/radio/RadioGroupCardControl.js";import{SliderControl as co}from"./controlled/slider/SliderControl.js";import{SwitchControl as yo}from"./controlled/switch/SwitchControl.js";import{TextareaControl as Ro}from"./controlled/textarea/TextareaControl.js";import{UploaderControl as To}from"./controlled/uploader/UploaderControl.js";import{ComboboxControl as Ao}from"./controlled/combobox/ComboboxControl.js";import{Controlled as So}from"./controlled/index.js";export{t as AutocompleteBase,q as AutocompleteControl,p as CheckboxBase,H as CheckboxControl,m as Combobox,Ao as ComboboxControl,So as Controlled,N as DadataAddress,V as DadataAuto,X as DadataCountry,Z as DadataFio,K as DadataOrganization,f as DayPickerBase,$ as DayPickerControl,ro as EditorControl,l as InputBase,eo as InputControl,z as InputCurrencyBase,xo as InputCurrencyControl,d as InputOtpBase,no as InputOtpControl,u as MaskInput,ao as MaskInputControl,B as RadioGroupBase,Bo as RadioGroupCardControl,Co as RadioGroupControl,uo as RadioGroupTabControl,c as RadioItem,y as RadioItemCard,R as RadioItemTab,T as SliderBase,co as SliderControl,A as SwitchBase,yo as SwitchControl,S as TextareaBase,Ro as TextareaControl,F as Uncontrolled,M as UploaderBase,To as UploaderControl,U as bytesToMegabytes,w as megabytesToBytes};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as e}from"react/jsx-runtime";import{forwardRef as c}from"react";import{Checkbox as l,CheckboxIndicator as g}from"../../../../../../node_modules/@radix-ui/react-checkbox/dist/index.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{Icon as u}from"../../../icon/Icon.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../autocomplete/Autocomplete.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"../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=c(({classes:r,className:d,invalid:m,disabled:n,externalHandlers:f,dataLayers:o,...t},h)=>{const{onChange:p,...b}=f||{};return e(l,{...t,...b,onCheckedChange:a=>{t.onCheckedChange&&t.onCheckedChange(a),p&&p(a)},disabled:n,ref:h,"aria-invalid":m,"data-layer-id":o==null?void 0:o.targetId,className:i("flex h-6 max-h-6 min-h-6 w-6 min-w-6 max-w-6 items-center justify-center rounded-full","relative rounded-sm border-2 border-blue-grey-700 outline-none",'after:left-1/2 after:top-1/2 after:h-10 after:w-10 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[""]',"after:absolute after:rounded-full [&:not(:disabled)]:hover:after:bg-color-primary-tr-hover","after:duration-100 [&:not(:disabled)]:active:after:bg-color-primary-tr-pressed","after:-z-10 [&:not(:disabled)]:focus:after:bg-color-primary-tr-focus",{"border-negative":m,"disabled:border-0 disabled:bg-color-blue-grey-300":n},r==null?void 0:r.root,d),children:e(g,{className:i("h-6 w-6 rounded-sm bg-color-primary-default group-disabled:bg-color-primary-disabled",r==null?void 0:r.indicator),children:e(u,{name:"general/check",className:i("size-6 text-icon-white",r==null?void 0:r.icon)})})})});C.displayName="CheckboxBase";export{C as CheckboxBase};
|
|
2
2
|
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type CheckboxProps as CheckboxPrimitiveProps, type CheckedState, Indicator, Root } from '@radix-ui/react-checkbox'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type CheckboxBaseClasses = {\n root?: string\n indicator?: string\n icon?: string\n}\n\nexport type { CheckedState }\n\ntype ExternalHandlers = {\n onChange?: (value: CheckedState) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type CheckboxBaseProps = CheckboxPrimitiveProps & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: CheckboxBaseClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const CheckboxBase = forwardRef<HTMLButtonElement, CheckboxBaseProps>(\n ({ classes, className, invalid, disabled, externalHandlers, ...props }, ref) => {\n const { onChange, ...restHandlers } = externalHandlers || {}\n\n const onCheckedChange = (value: CheckedState) => {\n if (props.onCheckedChange) props.onCheckedChange(value)\n if (onChange) onChange(value)\n }\n\n return (\n <Root\n {...props}\n {...restHandlers}\n onCheckedChange={onCheckedChange}\n disabled={disabled}\n ref={ref}\n aria-invalid={invalid}\n className={cn(\n 'flex h-6 max-h-6 min-h-6 w-6 min-w-6 max-w-6 items-center justify-center rounded-full',\n 'relative rounded-sm border-2 border-blue-grey-700 outline-none',\n 'after:left-1/2 after:top-1/2 after:h-10 after:w-10 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[\"\"]',\n 'after:absolute after:rounded-full [&:not(:disabled)]:hover:after:bg-color-primary-tr-hover',\n 'after:duration-100 [&:not(:disabled)]:active:after:bg-color-primary-tr-pressed',\n 'after:-z-10 [&:not(:disabled)]:focus:after:bg-color-primary-tr-focus',\n {\n 'border-negative': invalid,\n 'disabled:border-0 disabled:bg-color-blue-grey-300': disabled\n },\n classes?.root,\n className\n )}\n >\n <Indicator\n className={cn(\n 'h-6 w-6 rounded-sm bg-color-primary-default group-disabled:bg-color-primary-disabled',\n classes?.indicator\n )}\n >\n <Icon name='general/check' className={cn('size-6 text-icon-white', classes?.icon)} />\n </Indicator>\n </Root>\n )\n }\n)\nCheckboxBase.displayName = 'CheckboxBase'\n"],"names":["CheckboxBase","forwardRef","classes","className","invalid","disabled","externalHandlers","props","ref","onChange","restHandlers","jsx","Root","value","cn","Indicator","Icon"],"mappings":"+
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type CheckboxProps as CheckboxPrimitiveProps, type CheckedState, Indicator, Root } from '@radix-ui/react-checkbox'\nimport { type DataLayers } from '../../../../types'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type CheckboxBaseClasses = {\n root?: string\n indicator?: string\n icon?: string\n}\n\nexport type { CheckedState }\n\ntype ExternalHandlers = {\n onChange?: (value: CheckedState) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type CheckboxBaseProps = CheckboxPrimitiveProps & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: CheckboxBaseClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n}\n\nexport const CheckboxBase = forwardRef<HTMLButtonElement, CheckboxBaseProps>(\n ({ classes, className, invalid, disabled, externalHandlers, dataLayers, ...props }, ref) => {\n const { onChange, ...restHandlers } = externalHandlers || {}\n\n const onCheckedChange = (value: CheckedState) => {\n if (props.onCheckedChange) props.onCheckedChange(value)\n if (onChange) onChange(value)\n }\n\n return (\n <Root\n {...props}\n {...restHandlers}\n onCheckedChange={onCheckedChange}\n disabled={disabled}\n ref={ref}\n aria-invalid={invalid}\n data-layer-id={dataLayers?.targetId}\n className={cn(\n 'flex h-6 max-h-6 min-h-6 w-6 min-w-6 max-w-6 items-center justify-center rounded-full',\n 'relative rounded-sm border-2 border-blue-grey-700 outline-none',\n 'after:left-1/2 after:top-1/2 after:h-10 after:w-10 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[\"\"]',\n 'after:absolute after:rounded-full [&:not(:disabled)]:hover:after:bg-color-primary-tr-hover',\n 'after:duration-100 [&:not(:disabled)]:active:after:bg-color-primary-tr-pressed',\n 'after:-z-10 [&:not(:disabled)]:focus:after:bg-color-primary-tr-focus',\n {\n 'border-negative': invalid,\n 'disabled:border-0 disabled:bg-color-blue-grey-300': disabled\n },\n classes?.root,\n className\n )}\n >\n <Indicator\n className={cn(\n 'h-6 w-6 rounded-sm bg-color-primary-default group-disabled:bg-color-primary-disabled',\n classes?.indicator\n )}\n >\n <Icon name='general/check' className={cn('size-6 text-icon-white', classes?.icon)} />\n </Indicator>\n </Root>\n )\n }\n)\nCheckboxBase.displayName = 'CheckboxBase'\n"],"names":["CheckboxBase","forwardRef","classes","className","invalid","disabled","externalHandlers","dataLayers","props","ref","onChange","restHandlers","jsx","Root","value","cn","Indicator","Icon"],"mappings":"+3CAwCO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,QAAAC,EAAS,UAAAC,EAAW,QAAAC,EAAS,SAAAC,EAAU,iBAAAC,EAAkB,WAAAC,EAAY,GAAGC,CAAA,EAASC,IAAQ,CAC1F,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAiBL,GAAoB,CAAA,EAO1D,OACEM,EAACC,EAAA,CACE,GAAGL,EACH,GAAGG,EACJ,gBATqBG,GAAwB,CAC3CN,EAAM,iBAAiBA,EAAM,gBAAgBM,CAAK,EAClDJ,KAAmBI,CAAK,CAC9B,EAOI,SAAAT,EACA,IAAAI,EACA,eAAcL,EACd,gBAAeG,GAAA,YAAAA,EAAY,SAC3B,UAAWQ,EACT,wFACA,iEACA,sHACA,6FACA,iFACA,uEACA,CACE,kBAAmBX,EACnB,oDAAqDC,CAAA,EAEvDH,GAAA,YAAAA,EAAS,KACTC,CAAA,EAGF,SAAAS,EAACI,EAAA,CACC,UAAWD,EACT,uFACAb,GAAA,YAAAA,EAAS,SAAA,EAGX,SAAAU,EAACK,GAAK,KAAK,gBAAgB,UAAWF,EAAG,yBAA0Bb,GAAA,YAAAA,EAAS,IAAI,CAAA,CAAG,CAAA,CAAA,CACrF,CAAA,CAGN,CACF,EACAF,EAAa,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as Q,jsx as r}from"react/jsx-runtime";import{forwardRef as V}from"react";import{useFloating as W}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{cn as u}from"../../../../utils/cn.js";import"react-hook-form";import{useClickOutsideMany as X}from"../../../../hooks/useClickOutsideMany.js";import{useCombobox as Y}from"./hooks/useCombobox.js";import{useKeyboardNavigation as Z}from"./hooks/useKeyboardNavigation.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as _}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"../dayPicker/DayPicker.js";import{InputBase as $}from"../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"../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";import{DropdownList as x}from"../../../dropdownList/DropdownList.js";import{Portal as l}from"../../../portal/Portal.js";import{AnimatePresence as H}from"../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";import{motion as oo}from"../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";import{autoUpdate as to}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as io,offset as ro}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";const mo=({options:R,multiple:g,value:e,onChange:k,defaultOpen:v,attachmentProps:L,searchable:m,invalid:h,displayValue:b,label:N,disabled:a,readOnly:d,className:P,externalHandlers:o,inputValue:y,filterDisabled:s,onInputChange:A,empty:B,classes:t,portal:F=globalThis?(O=>(O=globalThis==null?void 0:globalThis.document)==null?void 0:O.body)():void 0,...f},M)=>{var I;const j=f["data-error-message"],{floating:z,...D}=(t==null?void 0:t.list)??{},{refs:i,floatingStyles:E}=W({placement:"bottom-start",strategy:"absolute",middleware:[io({boundary:"clippingAncestors",crossAxis:!1}),ro(4)],whileElementsMounted:to}),{open:C,setOpen:c,state:T,changeHandler:K,options:S,search:U,onInputChange:q,comboboxDisplayValue:w}=Y({multiple:g,value:e,onChange:k,searchable:m,defaultOpen:v,displayValue:b,initialOptions:R,filterDisabled:s,externalHandlers:o,externalInputValue:y,externalOnInputChange:A});Z({ref:i.domReference,openChangeHandler:c});const G=()=>e?g&&m?w(e):m?U:w(e):"";X([i.floating,i.reference],()=>c(!1));const J=F??i.domReference.current;return Q("div",{ref:i.setReference,className:u("relative w-full",t==null?void 0:t.root,P),children:[r($,{ref:M,label:N,invalid:h,readOnly:d||!m,value:y||G(),onChange:q,disabled:a,onClick:p=>{var n;C||c(!0),(n=o==null?void 0:o.clickHandler)==null||n.call(o,p)},onBlur:p=>{var n;(n=o==null?void 0:o.blurHandler)==null||n.call(o,p)},onFocus:o==null?void 0:o.focusHandler,classes:{input:u({"cursor-pointer":!m,"cursor-default":a,"pointer-events-none":a||d}),...t==null?void 0:t.input},autoComplete:"off",attachmentProps:{icon:r(_,{name:"arrows/arrowRight",className:u("size-6 rotate-90 text-color-blue-grey-600 duration-100",{"-rotate-90":C,"text-color-negative":h})}),onClickIcon:()=>c(p=>!p),...L},"data-test-id":"combobox-input","data-error-message":j,dataLayers:f==null?void 0:f.dataLayers}),r(l,{root:J,children:r(H,{children:C&&r(oo.div,{ref:i.setFloating,initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},className:u("z-[1000]",z),style:{...E,width:(I=i.reference.current)==null?void 0:I.getBoundingClientRect().width},children:r(x,{empty:B,options:S,multiple:g,onPick:K,value:T,displayValue:b,classes:D,target:i.domReference})})})})]})},_o=V(mo);export{_o as Combobox};
|
|
2
2
|
//# sourceMappingURL=combobox.js.map
|
|
@@ -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
|
|
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
|
|
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":"
|
|
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
|
|
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":"
|
|
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
|
|
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
|
|
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":"q4DAUA,MAAMA,EACJC,EAACC,EAAA,CACC,KAAK,eACL,UAAU,wGAAA,CACZ,EAGWC,GAAoBC,EAC/B,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,IAAAC,EACA,IAAAC,EACA,OAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,cAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9CE,EAAkB,IAAM,QAC5BC,EAAAF,GAAA,YAAAA,EAAU,UAAV,MAAAE,EAAmB,OACrB,EAEM,CAAE,YAAAC,EAAa,WAAAC,EAAY,UAAAC,EAAW,UAAAC,EAAW,mBAAAC,CAAA,EAAuBC,EAAqB,CACjG,
|
|
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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"}
|