@scbt-ecom/ui 0.130.4 → 0.132.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/shared/types/dataLayers.js +2 -0
- package/dist/lib/shared/types/dataLayers.js.map +1 -0
- package/dist/lib/shared/ui/button/Button.js +1 -1
- package/dist/lib/shared/ui/button/Button.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/input/InputControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/input/InputControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/input/MaskInputControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/input/MaskInputControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/input/Input.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/input/Input.js.map +1 -1
- package/dist/stats.html +1 -1
- package/dist/types/lib/shared/types/dataLayers.d.ts +4 -0
- package/dist/types/lib/shared/types/index.d.ts +1 -0
- package/dist/types/lib/shared/ui/button/Button.d.ts +2 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/index.d.ts +2 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/input/Input.d.ts +9 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataLayers.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as e,jsxs as
|
|
1
|
+
import{jsx as e,jsxs as f,Fragment as l}from"react/jsx-runtime";import{forwardRef as j}from"react";import{setButtonLoaderIntent as h,buttonConfig as z}from"./model/helpers.js";import{Loader as N}from"../loader/Loader.js";import{cn as B}from"../../utils/cn.js";const k=j(({intent:s,size:i,className:c,children:n,type:p="button",iconLeft:m,iconRight:o,disabled:u=!1,isLoading:t=!1,isFull:a=!1,textFormat:d,dataLayers:r,...x},b)=>e("button",{ref:b,type:p,"data-layer-id":r==null?void 0:r.targetId,disabled:u||t,className:B(z({intent:s,size:i,textFormat:d,isLoading:t,isFull:a}),c),...x,children:f(l,{children:[m&&e("span",{className:"flex size-5 items-center justify-center",children:m}),t?f(l,{children:[n," ",e(N,{size:"sm",intent:h(s)})]}):n,o&&e("span",{className:"flex size-5 items-center justify-center",children:o})]})}));export{k as Button};
|
|
2
2
|
//# sourceMappingURL=Button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../../../../lib/shared/ui/button/Button.tsx"],"sourcesContent":["import { type ComponentProps, forwardRef, type ReactElement } from 'react'\nimport { type VariantProps } from 'class-variance-authority'\nimport { buttonConfig, setButtonLoaderIntent } from './model/helpers'\nimport { Loader } from '$/shared/ui/loader'\nimport { cn } from '$/shared/utils'\n\nexport type ButtonConfig = VariantProps<typeof buttonConfig>\nexport interface ButtonProps extends ComponentProps<'button'>, ButtonConfig {\n iconLeft?: ReactElement\n iconRight?: ReactElement\n isLoading?: boolean\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n intent,\n size,\n className,\n children,\n type = 'button',\n iconLeft,\n iconRight,\n disabled = false,\n isLoading = false,\n isFull = false,\n textFormat,\n ...props\n },\n ref\n ) => {\n return (\n <button\n ref={ref}\n type={type}\n disabled={disabled || isLoading}\n className={cn(buttonConfig({ intent, size, textFormat, isLoading, isFull }), className)}\n {...props}\n >\n <>\n {iconLeft && <span className='flex size-5 items-center justify-center'>{iconLeft}</span>}\n {isLoading ? (\n <>\n {children} <Loader size='sm' intent={setButtonLoaderIntent(intent)} />\n </>\n ) : (\n children\n )}\n {iconRight && <span className='flex size-5 items-center justify-center'>{iconRight}</span>}\n </>\n </button>\n )\n }\n)\n"],"names":["Button","forwardRef","intent","size","className","children","type","iconLeft","iconRight","disabled","isLoading","isFull","textFormat","props","ref","jsx","cn","buttonConfig","jsxs","Fragment","Loader","setButtonLoaderIntent"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../../../../lib/shared/ui/button/Button.tsx"],"sourcesContent":["import { type ComponentProps, forwardRef, type ReactElement } from 'react'\nimport { type VariantProps } from 'class-variance-authority'\nimport { type DataLayers } from '../../types'\nimport { buttonConfig, setButtonLoaderIntent } from './model/helpers'\nimport { Loader } from '$/shared/ui/loader'\nimport { cn } from '$/shared/utils'\n\nexport type ButtonConfig = VariantProps<typeof buttonConfig>\nexport interface ButtonProps extends ComponentProps<'button'>, ButtonConfig {\n iconLeft?: ReactElement\n iconRight?: ReactElement\n isLoading?: boolean\n dataLayers?: DataLayers\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n intent,\n size,\n className,\n children,\n type = 'button',\n iconLeft,\n iconRight,\n disabled = false,\n isLoading = false,\n isFull = false,\n textFormat,\n dataLayers,\n ...props\n },\n ref\n ) => {\n return (\n <button\n ref={ref}\n type={type}\n data-layer-id={dataLayers?.targetId}\n disabled={disabled || isLoading}\n className={cn(buttonConfig({ intent, size, textFormat, isLoading, isFull }), className)}\n {...props}\n >\n <>\n {iconLeft && <span className='flex size-5 items-center justify-center'>{iconLeft}</span>}\n {isLoading ? (\n <>\n {children} <Loader size='sm' intent={setButtonLoaderIntent(intent)} />\n </>\n ) : (\n children\n )}\n {iconRight && <span className='flex size-5 items-center justify-center'>{iconRight}</span>}\n </>\n </button>\n )\n }\n)\n"],"names":["Button","forwardRef","intent","size","className","children","type","iconLeft","iconRight","disabled","isLoading","isFull","textFormat","dataLayers","props","ref","jsx","cn","buttonConfig","jsxs","Fragment","Loader","setButtonLoaderIntent"],"mappings":"oQAeO,MAAMA,EAASC,EACpB,CACE,CACE,OAAAC,EACA,KAAAC,EACA,UAAAC,EACA,SAAAC,EACA,KAAAC,EAAO,SACP,SAAAC,EACA,UAAAC,EACA,SAAAC,EAAW,GACX,UAAAC,EAAY,GACZ,OAAAC,EAAS,GACT,WAAAC,EACA,WAAAC,EACA,GAAGC,CAAA,EAELC,IAGEC,EAAC,SAAA,CACC,IAAAD,EACA,KAAAT,EACA,gBAAeO,GAAA,YAAAA,EAAY,SAC3B,SAAUJ,GAAYC,EACtB,UAAWO,EAAGC,EAAa,CAAE,OAAAhB,EAAQ,KAAAC,EAAM,WAAAS,EAAY,UAAAF,EAAW,OAAAC,EAAQ,EAAGP,CAAS,EACrF,GAAGU,EAEJ,SAAAK,EAAAC,EAAA,CACG,SAAA,CAAAb,GAAYS,EAAC,OAAA,CAAK,UAAU,0CAA2C,SAAAT,EAAS,EAChFG,EACCS,EAAAC,EAAA,CACG,SAAA,CAAAf,EAAS,MAAEgB,EAAA,CAAO,KAAK,KAAK,OAAQC,EAAsBpB,CAAM,CAAA,CAAG,CAAA,CAAA,CACtE,EAEAG,EAEDG,GAAaQ,EAAC,OAAA,CAAK,UAAU,0CAA2C,SAAAR,CAAA,CAAU,CAAA,CAAA,CACrF,CAAA,CAAA,CAIR"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as E,jsx as a}from"react/jsx-runtime";import{useRef as C,useEffect as F}from"react";import{useController as I}from"react-hook-form";import{InputBase as j}from"../../uncontrolled/input/Input.js";import{cn as N}from"../../../../utils/cn.js";import{mergeRefs as P}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-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/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/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"./MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as R}from"../../ui/MessageView.js";class l extends CustomEvent{constructor(i,o){super(i,o)}}const at=({control:m,name:i,defaultValue:o,disabled:s,rules:c,shouldUnregister:f,helperText:u,classes:d,...p})=>{const e=C(null),{field:n,fieldState:v}=I({control:m,name:i,defaultValue:o,disabled:s,rules:c,shouldUnregister:f}),{error:t,invalid:r,isTouched:h}=v,{message:g,root:w,...x}=d||{};return F(()=>{e.current&&(r&&e.current.dispatchEvent(new l("invalidField",{detail:t})),r||e.current.dispatchEvent(new l("validateField",{detail:t})))},[r]),E("div",{className:N("w-full",w),children:[a(j,{...p,...n,ref:P(e,n.ref),classes:x,invalid:r,attachmentProps:{invalid:r,isTouched:h,withValidateIcons:!0,...p.attachmentProps},"data-error-message":t==null?void 0:t.message}),a(R,{text:(t==null?void 0:t.message)||u,className:g,intent:t?"error":"simple",disabled:s})]})};export{at as InputControl};
|
|
2
2
|
//# sourceMappingURL=InputControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/input/InputControl.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef } from 'react'\nimport { type Control, type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { InputBase, type InputBaseProps } from '../../uncontrolled/input'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\ntype InputControlClasses = InputBaseProps['classes'] & {\n message?: string\n root?: string\n}\n\nexport type InputControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<InputBaseProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительный текст\n */\n helperText?: string\n /**\n * Дополнительные стили компонента\n */\n classes?: InputControlClasses\n }\n\nclass DLGAFieldEvent<T extends {}> extends CustomEvent<T> {\n constructor(type: string, options: { bubbles?: boolean; cancelable?: boolean; detail?: T }) {\n super(type, options)\n }\n}\n\nexport const InputControl = <TFieldValues extends FieldValues = FieldValues>({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister,\n helperText,\n classes,\n ...props\n}: InputControlProps<TFieldValues>) => {\n const ref = useRef<HTMLInputElement>(null)\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister\n })\n\n const { error, invalid, isTouched } = fieldState\n const { message, root, ...restClasses } = classes || {}\n\n useEffect(() => {\n if (!ref.current) return\n\n if (invalid) {\n ref.current.dispatchEvent(new DLGAFieldEvent('invalidField', { detail: error }))\n }\n if (!invalid) {\n ref.current.dispatchEvent(new DLGAFieldEvent('validateField', { detail: error }))\n }\n }, [invalid])\n\n return (\n <div className={cn('w-full', root)}>\n <InputBase\n {...props}\n {...field}\n ref={mergeRefs(ref, field.ref)}\n classes={restClasses}\n invalid={invalid}\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":["DLGAFieldEvent","type","options","InputControl","control","name","defaultValue","disabled","rules","shouldUnregister","helperText","classes","props","ref","useRef","field","fieldState","useController","error","invalid","isTouched","message","root","restClasses","useEffect","cn","jsx","InputBase","mergeRefs","MessageView"],"mappings":"ymDAgCA,MAAMA,UAAqC,WAAe,CACxD,YAAYC,EAAcC,EAAkE,CAC1F,MAAMD,EAAMC,CAAO,CACrB,CACF,CAEO,MAAMC,GAAe,CAAiD,CAC3E,QAAAC,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAAuC,CACrC,MAAMC,EAAMC,EAAyB,IAAI,EACnC,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAb,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAS,EAAO,QAAAC,EAAS,UAAAC,CAAA,EAAcJ,EAChC,CAAE,QAAAK,EAAS,KAAAC,EAAM,GAAGC,CAAA,EAAgBZ,GAAW,CAAA,EAErD,OAAAa,EAAU,IAAM,CACTX,EAAI,UAELM,GACFN,EAAI,QAAQ,cAAc,IAAIb,EAAe,eAAgB,CAAE,OAAQkB,CAAA,CAAO,CAAC,EAE5EC,GACHN,EAAI,QAAQ,cAAc,IAAIb,EAAe,gBAAiB,CAAE,OAAQkB,CAAA,CAAO,CAAC,EAEpF,EAAG,CAACC,CAAO,CAAC,IAGT,MAAA,CAAI,UAAWM,EAAG,SAAUH,CAAI,EAC/B,SAAA,CAAAI,EAACC,EAAA,CACE,GAAGf,EACH,GAAGG,EACJ,IAAKa,EAAUf,EAAKE,EAAM,GAAG,EAC7B,QAASQ,EACT,QAAAJ,EACA,gBAAiB,CACf,QAAAA,EACA,UAAAC,EACA,kBAAmB,GACnB,GAAGR,EAAM,eAAA,
|
|
1
|
+
{"version":3,"file":"InputControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/input/InputControl.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef } from 'react'\nimport { type Control, type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { InputBase, type InputBaseProps } from '../../uncontrolled/input'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\ntype InputControlClasses = InputBaseProps['classes'] & {\n message?: string\n root?: string\n}\n\nexport type InputControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<InputBaseProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительный текст\n */\n helperText?: string\n /**\n * Дополнительные стили компонента\n */\n classes?: InputControlClasses\n }\n\nclass DLGAFieldEvent<T extends {}> extends CustomEvent<T> {\n constructor(type: string, options: { bubbles?: boolean; cancelable?: boolean; detail?: T }) {\n super(type, options)\n }\n}\n\nexport const InputControl = <TFieldValues extends FieldValues = FieldValues>({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister,\n helperText,\n classes,\n ...props\n}: InputControlProps<TFieldValues>) => {\n const ref = useRef<HTMLInputElement>(null)\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister\n })\n\n const { error, invalid, isTouched } = fieldState\n const { message, root, ...restClasses } = classes || {}\n\n useEffect(() => {\n if (!ref.current) return\n\n if (invalid) {\n ref.current.dispatchEvent(new DLGAFieldEvent('invalidField', { detail: error }))\n }\n if (!invalid) {\n ref.current.dispatchEvent(new DLGAFieldEvent('validateField', { detail: error }))\n }\n }, [invalid])\n\n return (\n <div className={cn('w-full', root)}>\n <InputBase\n {...props}\n {...field}\n ref={mergeRefs(ref, field.ref)}\n classes={restClasses}\n invalid={invalid}\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":["DLGAFieldEvent","type","options","InputControl","control","name","defaultValue","disabled","rules","shouldUnregister","helperText","classes","props","ref","useRef","field","fieldState","useController","error","invalid","isTouched","message","root","restClasses","useEffect","cn","jsx","InputBase","mergeRefs","MessageView"],"mappings":"ymDAgCA,MAAMA,UAAqC,WAAe,CACxD,YAAYC,EAAcC,EAAkE,CAC1F,MAAMD,EAAMC,CAAO,CACrB,CACF,CAEO,MAAMC,GAAe,CAAiD,CAC3E,QAAAC,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAAuC,CACrC,MAAMC,EAAMC,EAAyB,IAAI,EACnC,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAb,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAS,EAAO,QAAAC,EAAS,UAAAC,CAAA,EAAcJ,EAChC,CAAE,QAAAK,EAAS,KAAAC,EAAM,GAAGC,CAAA,EAAgBZ,GAAW,CAAA,EAErD,OAAAa,EAAU,IAAM,CACTX,EAAI,UAELM,GACFN,EAAI,QAAQ,cAAc,IAAIb,EAAe,eAAgB,CAAE,OAAQkB,CAAA,CAAO,CAAC,EAE5EC,GACHN,EAAI,QAAQ,cAAc,IAAIb,EAAe,gBAAiB,CAAE,OAAQkB,CAAA,CAAO,CAAC,EAEpF,EAAG,CAACC,CAAO,CAAC,IAGT,MAAA,CAAI,UAAWM,EAAG,SAAUH,CAAI,EAC/B,SAAA,CAAAI,EAACC,EAAA,CACE,GAAGf,EACH,GAAGG,EACJ,IAAKa,EAAUf,EAAKE,EAAM,GAAG,EAC7B,QAASQ,EACT,QAAAJ,EACA,gBAAiB,CACf,QAAAA,EACA,UAAAC,EACA,kBAAmB,GACnB,GAAGR,EAAM,eAAA,EAEX,qBAAoBM,GAAA,YAAAA,EAAO,OAAA,CAAA,EAE7BQ,EAACG,EAAA,CACC,MAAMX,GAAA,YAAAA,EAAO,UAAWR,EACxB,UAAWW,EACX,OAAQH,EAAQ,QAAU,SAC1B,SAAAX,CAAA,CAAA,CACF,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as
|
|
1
|
+
import{jsxs as C,jsx as i}from"react/jsx-runtime";import{memo as I}from"react";import{useController as w}from"react-hook-form";import{MaskInput as M}from"../../uncontrolled/maskInput/MaskInput.js";import{cn as j}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-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/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"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as k}from"../../ui/MessageView.js";const v=({control:p,name:s,defaultValue:e,disabled:o,rules:n,shouldUnregister:a,classes:c,helperText:l,...m})=>{const{field:f,fieldState:u}=w({control:p,name:s,defaultValue:e,disabled:o,rules:n,shouldUnregister:a}),{error:t,invalid:r,isTouched:d}=u,{message:g,container:h,...x}=c||{};return C("div",{className:j("w-full",h),children:[i(M,{...m,...f,invalid:r,classes:x,attachmentProps:{invalid:r,isTouched:d,withValidateIcons:!0,...m.attachmentProps},"data-error-message":t==null?void 0:t.message}),i(k,{text:(t==null?void 0:t.message)||l,className:g,intent:t?"error":"simple",disabled:o})]})},it=I(v);export{it as MaskInputControl};
|
|
2
2
|
//# sourceMappingURL=MaskInputControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaskInputControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/input/MaskInputControl.tsx"],"sourcesContent":["'use client'\n\nimport { memo } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { MaskInput, type MaskInputProps } from '../../uncontrolled/maskInput'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype MaskInputClasses = MaskInputProps['classes'] & {\n message?: string\n}\n\nexport type MaskInputControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<MaskInputProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительные стили компонента\n */\n classes?: MaskInputClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n }\n\nconst InnerComponent = <TFieldValues extends FieldValues = FieldValues>({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister,\n classes,\n helperText,\n ...props\n}: MaskInputControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister\n })\n\n const { error, invalid, isTouched } = fieldState\n const { message, container, ...restClasses } = classes || {}\n\n return (\n <div className={cn('w-full', container)}>\n <MaskInput\n {...props}\n {...field}\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\nexport const MaskInputControl = memo(InnerComponent) as typeof InnerComponent\n"],"names":["InnerComponent","control","name","defaultValue","disabled","rules","shouldUnregister","classes","helperText","props","field","fieldState","useController","error","invalid","isTouched","message","container","restClasses","cn","jsx","MaskInput","MessageView","MaskInputControl","memo"],"mappings":"+/CA+BA,MAAMA,EAAiB,CAAiD,CACtE,QAAAC,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,QAAAC,EACA,WAAAC,EACA,GAAGC,CACL,IAA2C,CACzC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAX,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAO,EAAO,QAAAC,EAAS,UAAAC,CAAA,EAAcJ,EAChC,CAAE,QAAAK,EAAS,UAAAC,EAAW,GAAGC,CAAA,EAAgBX,GAAW,CAAA,EAE1D,SACG,MAAA,CAAI,UAAWY,EAAG,SAAUF,CAAS,EACpC,SAAA,CAAAG,EAACC,EAAA,CACE,GAAGZ,EACH,GAAGC,EACJ,QAAAI,EACA,QAASI,EACT,gBAAiB,CACf,QAAAJ,EACA,UAAAC,EACA,kBAAmB,GACnB,GAAGN,EAAM,eAAA,
|
|
1
|
+
{"version":3,"file":"MaskInputControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/input/MaskInputControl.tsx"],"sourcesContent":["'use client'\n\nimport { memo } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { MaskInput, type MaskInputProps } from '../../uncontrolled/maskInput'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype MaskInputClasses = MaskInputProps['classes'] & {\n message?: string\n}\n\nexport type MaskInputControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<MaskInputProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительные стили компонента\n */\n classes?: MaskInputClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n }\n\nconst InnerComponent = <TFieldValues extends FieldValues = FieldValues>({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister,\n classes,\n helperText,\n ...props\n}: MaskInputControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister\n })\n\n const { error, invalid, isTouched } = fieldState\n const { message, container, ...restClasses } = classes || {}\n\n return (\n <div className={cn('w-full', container)}>\n <MaskInput\n {...props}\n {...field}\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\nexport const MaskInputControl = memo(InnerComponent) as typeof InnerComponent\n"],"names":["InnerComponent","control","name","defaultValue","disabled","rules","shouldUnregister","classes","helperText","props","field","fieldState","useController","error","invalid","isTouched","message","container","restClasses","cn","jsx","MaskInput","MessageView","MaskInputControl","memo"],"mappings":"+/CA+BA,MAAMA,EAAiB,CAAiD,CACtE,QAAAC,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,QAAAC,EACA,WAAAC,EACA,GAAGC,CACL,IAA2C,CACzC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAX,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAO,EAAO,QAAAC,EAAS,UAAAC,CAAA,EAAcJ,EAChC,CAAE,QAAAK,EAAS,UAAAC,EAAW,GAAGC,CAAA,EAAgBX,GAAW,CAAA,EAE1D,SACG,MAAA,CAAI,UAAWY,EAAG,SAAUF,CAAS,EACpC,SAAA,CAAAG,EAACC,EAAA,CACE,GAAGZ,EACH,GAAGC,EACJ,QAAAI,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,SAAAT,CAAA,CAAA,CACF,EACF,CAEJ,EAEamB,GAAmBC,EAAKxB,CAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as y,jsx as t}from"react/jsx-runtime";import{forwardRef as
|
|
1
|
+
import{jsxs as y,jsx as t}from"react/jsx-runtime";import{forwardRef as k,useId as B}from"react";import{FieldAttachment as _}from"../../ui/fieldAttachment/FieldAttachment.js";import{cn as o}from"../../../../utils/cn.js";const C=k(({label:e,value:p,invalid:a,disabled:d,classes:r,renderValues:n,attachmentProps:u,externalHandlers:h,onChange:x,dataLayers:l,...i},c)=>{const b=B(),{onChange:f,...m}=h||{},w=g=>{x&&x(g),f&&f(g)};return y("div",{className:o("relative flex w-full gap-x-4 rounded-sm bg-color-blue-grey-100","[&_label]:focus-within:top-[9px] [&_label]:focus-within:translate-y-0","[&_label]:focus-within:desk-body-regular-s","hover:bg-color-blue-grey-200","border-[1px] border-transparent focus-within:border-blue-grey-800",{"border-secondary-default":a},r==null?void 0:r.container),"data-test-id":"input-root",children:[n?t("div",{onClick:i.onClick,onBlur:i.onBlur,className:o("peer desk-body-regular-l min-h-[54px] w-full bg-color-transparent [&_input]:px-4 [&_input]:pb-[6px] [&_input]:pt-[28px]","text-color-dark outline-none placeholder:text-color-transparent","flex flex-row flex-wrap gap-2",r==null?void 0:r.renderWrapper),children:n()}):t("input",{...i,...m,onChange:w,disabled:d,"data-layer-id":l==null?void 0:l.targetId,value:p??"",placeholder:e,"aria-placeholder":e,"aria-invalid":a,ref:c,id:b,className:o("peer desk-body-regular-l w-full bg-color-transparent px-4 pb-[9px] pt-[25px]","text-color-dark outline-none placeholder:text-color-transparent",{hidden:!!n},r==null?void 0:r.input)}),t("label",{htmlFor:b,className:o("desk-body-regular-l pointer-events-none absolute left-4 w-[80%] truncate text-start","top-1/2 -translate-y-1/2 text-color-tetriary duration-100",{"desk-body-regular-s top-[9px] translate-y-0":!!p,"text-color-disabled":d},r==null?void 0:r.label),children:e}),u&&t(_,{...u})]})});C.displayName="InputBase";export{C as InputBase};
|
|
2
2
|
//# sourceMappingURL=Input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/input/Input.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\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\nexport const InputBase = forwardRef<HTMLInputElement, InputBaseProps>(\n ({ label, value, invalid, disabled, classes, renderValues, attachmentProps, externalHandlers, onChange, ...props }
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/input/Input.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { type DataLayers } from '../../../../types/dataLayers'\nimport { FieldAttachment } from '../../ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\nexport type InputBaseClasses = {\n container?: string\n input?: string\n label?: string\n renderWrapper?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type InputBaseProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'placeholder' | 'size'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: InputBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Рендер дополнительных значений вместо базового ввода\n */\n renderValues?: () => React.JSX.Element | null\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n}\n\nexport const InputBase = forwardRef<HTMLInputElement, InputBaseProps>(\n (\n { label, value, invalid, disabled, classes, renderValues, attachmentProps, externalHandlers, onChange, dataLayers, ...props },\n ref\n ) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full gap-x-4 rounded-sm bg-color-blue-grey-100',\n '[&_label]:focus-within:top-[9px] [&_label]:focus-within:translate-y-0',\n '[&_label]:focus-within:desk-body-regular-s',\n // '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='input-root'\n >\n {renderValues ? (\n <div\n onClick={props.onClick}\n onBlur={props.onBlur}\n className={cn(\n 'peer desk-body-regular-l min-h-[54px] w-full bg-color-transparent [&_input]:px-4 [&_input]:pb-[6px] [&_input]:pt-[28px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n 'flex flex-row flex-wrap gap-2',\n classes?.renderWrapper\n )}\n >\n {renderValues()}\n </div>\n ) : (\n <input\n {...props}\n {...restHandlers}\n onChange={onValueChange}\n disabled={disabled}\n data-layer-id={dataLayers?.targetId}\n value={value ?? ''}\n placeholder={label}\n aria-placeholder={label}\n aria-invalid={invalid}\n ref={ref}\n id={id}\n className={cn(\n 'peer desk-body-regular-l w-full bg-color-transparent px-4 pb-[9px] pt-[25px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n {\n hidden: Boolean(renderValues)\n },\n classes?.input\n )}\n />\n )}\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-l pointer-events-none absolute left-4 w-[80%] truncate text-start',\n 'top-1/2 -translate-y-1/2 text-color-tetriary duration-100',\n {\n 'desk-body-regular-s top-[9px] translate-y-0': Boolean(value),\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n {attachmentProps && <FieldAttachment {...attachmentProps} />}\n </div>\n )\n }\n)\nInputBase.displayName = 'InputBase'\n"],"names":["InputBase","forwardRef","label","value","invalid","disabled","classes","renderValues","attachmentProps","externalHandlers","onChange","dataLayers","props","ref","id","useId","externalOnChange","restHandlers","onValueChange","event","jsxs","cn","jsx","FieldAttachment"],"mappings":"2NAqDO,MAAMA,EAAYC,EACvB,CACE,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,aAAAC,EAAc,gBAAAC,EAAiB,iBAAAC,EAAkB,SAAAC,EAAU,WAAAC,EAAY,GAAGC,CAAA,EACtHC,IACG,CACH,MAAMC,EAAKC,EAAA,EAEL,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBR,GAAoB,CAAA,EAEtES,EAAiBC,GAA+C,CAChET,KAAmBS,CAAK,EACxBH,KAAmCG,CAAK,CAC9C,EAEA,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,iEACA,wEACA,6CAEA,+BACA,oEACA,CACE,2BAA4BjB,CAAA,EAE9BE,GAAA,YAAAA,EAAS,SAAA,EAEX,eAAa,aAEZ,SAAA,CAAAC,EACCe,EAAC,MAAA,CACC,QAASV,EAAM,QACf,OAAQA,EAAM,OACd,UAAWS,EACT,0HACA,kEACA,gCACAf,GAAA,YAAAA,EAAS,aAAA,EAGV,SAAAC,EAAA,CAAa,CAAA,EAGhBe,EAAC,QAAA,CACE,GAAGV,EACH,GAAGK,EACJ,SAAUC,EACV,SAAAb,EACA,gBAAeM,GAAA,YAAAA,EAAY,SAC3B,MAAOR,GAAS,GAChB,YAAaD,EACb,mBAAkBA,EAClB,eAAcE,EACd,IAAAS,EACA,GAAAC,EACA,UAAWO,EACT,+EACA,kEACA,CACE,OAAQ,EAAQd,CAAY,EAE9BD,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,EAGJgB,EAAC,QAAA,CACC,QAASR,EACT,UAAWO,EACT,sFACA,4DACA,CACE,8CAA+C,EAAQlB,EACvD,sBAAuBE,CAAA,EAEzBC,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAJ,CAAA,CAAA,EAEFM,GAAmBc,EAACC,EAAA,CAAiB,GAAGf,CAAA,CAAiB,CAAA,CAAA,CAAA,CAGhE,CACF,EACAR,EAAU,YAAc"}
|