@scbt-ecom/ui 0.122.2 → 0.122.3

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.
@@ -1,2 +1,2 @@
1
- import{jsxs as m,jsx as p}from"react/jsx-runtime";import{ButtonWithHandlers as r}from"../../../../buttonWithHandlers/ButtonWithHandlers.js";import{cn as n}from"../../../../../shared/utils/cn.js";import"react";const u=({buttonConfig:i,classes:t})=>{const{primary:e,secondary:o}=i||{};return m("div",{className:n("grid-buttons-apply absolute bottom-6 left-1/2 flex w-full -translate-x-1/2 flex-col justify-self-center px-4 desktop:static desktop:left-auto desktop:max-w-full desktop:translate-x-0 desktop:flex-row desktop:justify-normal desktop:px-0",{"flex items-center gap-4":o==null?void 0:o.enabled},t==null?void 0:t.group),children:[e.enabled&&p(r,{className:n("w-full desktop:max-w-[216px]",t==null?void 0:t.primary),size:"lg",intent:"primary",...e.buttonContent}),(o==null?void 0:o.enabled)&&p(r,{intent:"secondary",size:"lg",className:n("w-full desktop:max-w-[216px]",t==null?void 0:t.secondary),...e.buttonContent})]})};export{u as Buttons};
1
+ import{jsxs as m,jsx as p}from"react/jsx-runtime";import{ButtonWithHandlers as r}from"../../../../buttonWithHandlers/ButtonWithHandlers.js";import{cn as e}from"../../../../../shared/utils/cn.js";import"react";const u=({buttonConfig:i,classes:t})=>{const{primary:n,secondary:o}=i||{};return m("div",{className:e("grid-buttons-apply absolute bottom-6 left-1/2 flex w-full -translate-x-1/2 flex-col justify-self-center px-4 desktop:static desktop:left-auto desktop:max-w-full desktop:translate-x-0 desktop:flex-row desktop:justify-normal desktop:px-0",{"flex items-center gap-4":o==null?void 0:o.enabled},t==null?void 0:t.group),children:[n.enabled&&p(r,{className:e("w-full desktop:max-w-[216px]",t==null?void 0:t.primary),size:"lg",intent:"primary",...n.buttonContent}),(o==null?void 0:o.enabled)&&p(r,{intent:"secondary",size:"lg",className:e("w-full desktop:max-w-[216px]",t==null?void 0:t.secondary),...o.buttonContent})]})};export{u as Buttons};
2
2
  //# sourceMappingURL=Buttons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Buttons.js","sources":["../../../../../../../lib/widgets/banner/ui/banners/ui/Buttons.tsx"],"sourcesContent":["import { ButtonWithHandlers } from '../../../../buttonWithHandlers'\nimport type { ButtonsConfig } from '../../../model'\nimport { cn } from '$/shared/utils'\n\nexport type ButtonsClasses = {\n group?: string\n primary?: string\n secondary?: string\n}\n\ninterface ButtonsProps {\n classes?: ButtonsClasses\n buttonConfig: ButtonsConfig\n}\n\nexport const Buttons = ({ buttonConfig, classes }: ButtonsProps) => {\n const { primary, secondary } = buttonConfig || {}\n\n return (\n <div\n className={cn(\n 'grid-buttons-apply absolute bottom-6 left-1/2 flex w-full -translate-x-1/2 flex-col justify-self-center px-4 desktop:static desktop:left-auto desktop:max-w-full desktop:translate-x-0 desktop:flex-row desktop:justify-normal desktop:px-0',\n { 'flex items-center gap-4': secondary?.enabled },\n classes?.group\n )}\n >\n {primary.enabled && (\n <ButtonWithHandlers\n className={cn('w-full desktop:max-w-[216px]', classes?.primary)}\n size='lg'\n intent='primary'\n {...primary.buttonContent}\n />\n )}\n {secondary?.enabled && (\n <ButtonWithHandlers\n intent='secondary'\n size='lg'\n className={cn('w-full desktop:max-w-[216px]', classes?.secondary)}\n {...primary.buttonContent}\n />\n )}\n </div>\n )\n}\n"],"names":["Buttons","buttonConfig","classes","primary","secondary","jsxs","cn","jsx","ButtonWithHandlers"],"mappings":"iNAeO,MAAMA,EAAU,CAAC,CAAE,aAAAC,EAAc,QAAAC,KAA4B,CAClE,KAAM,CAAE,QAAAC,EAAS,UAAAC,CAAA,EAAcH,GAAgB,CAAA,EAE/C,OACEI,EAAC,MAAA,CACC,UAAWC,EACT,8OACA,CAAE,0BAA2BF,GAAA,YAAAA,EAAW,OAAA,EACxCF,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAA,CAAAC,EAAQ,SACPI,EAACC,EAAA,CACC,UAAWF,EAAG,+BAAgCJ,GAAA,YAAAA,EAAS,OAAO,EAC9D,KAAK,KACL,OAAO,UACN,GAAGC,EAAQ,aAAA,CAAA,GAGfC,GAAA,YAAAA,EAAW,UACVG,EAACC,EAAA,CACC,OAAO,YACP,KAAK,KACL,UAAWF,EAAG,+BAAgCJ,GAAA,YAAAA,EAAS,SAAS,EAC/D,GAAGC,EAAQ,aAAA,CAAA,CACd,CAAA,CAAA,CAIR"}
1
+ {"version":3,"file":"Buttons.js","sources":["../../../../../../../lib/widgets/banner/ui/banners/ui/Buttons.tsx"],"sourcesContent":["import { ButtonWithHandlers } from '../../../../buttonWithHandlers'\nimport type { ButtonsConfig } from '../../../model'\nimport { cn } from '$/shared/utils'\n\nexport type ButtonsClasses = {\n group?: string\n primary?: string\n secondary?: string\n}\n\ninterface ButtonsProps {\n classes?: ButtonsClasses\n buttonConfig: ButtonsConfig\n}\n\nexport const Buttons = ({ buttonConfig, classes }: ButtonsProps) => {\n const { primary, secondary } = buttonConfig || {}\n\n return (\n <div\n className={cn(\n 'grid-buttons-apply absolute bottom-6 left-1/2 flex w-full -translate-x-1/2 flex-col justify-self-center px-4 desktop:static desktop:left-auto desktop:max-w-full desktop:translate-x-0 desktop:flex-row desktop:justify-normal desktop:px-0',\n { 'flex items-center gap-4': secondary?.enabled },\n classes?.group\n )}\n >\n {primary.enabled && (\n <ButtonWithHandlers\n className={cn('w-full desktop:max-w-[216px]', classes?.primary)}\n size='lg'\n intent='primary'\n {...primary.buttonContent}\n />\n )}\n {secondary?.enabled && (\n <ButtonWithHandlers\n intent='secondary'\n size='lg'\n className={cn('w-full desktop:max-w-[216px]', classes?.secondary)}\n {...secondary.buttonContent}\n />\n )}\n </div>\n )\n}\n"],"names":["Buttons","buttonConfig","classes","primary","secondary","jsxs","cn","jsx","ButtonWithHandlers"],"mappings":"iNAeO,MAAMA,EAAU,CAAC,CAAE,aAAAC,EAAc,QAAAC,KAA4B,CAClE,KAAM,CAAE,QAAAC,EAAS,UAAAC,CAAA,EAAcH,GAAgB,CAAA,EAE/C,OACEI,EAAC,MAAA,CACC,UAAWC,EACT,8OACA,CAAE,0BAA2BF,GAAA,YAAAA,EAAW,OAAA,EACxCF,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAA,CAAAC,EAAQ,SACPI,EAACC,EAAA,CACC,UAAWF,EAAG,+BAAgCJ,GAAA,YAAAA,EAAS,OAAO,EAC9D,KAAK,KACL,OAAO,UACN,GAAGC,EAAQ,aAAA,CAAA,GAGfC,GAAA,YAAAA,EAAW,UACVG,EAACC,EAAA,CACC,OAAO,YACP,KAAK,KACL,UAAWF,EAAG,+BAAgCJ,GAAA,YAAAA,EAAS,SAAS,EAC/D,GAAGE,EAAU,aAAA,CAAA,CAChB,CAAA,CAAA,CAIR"}
@@ -1,2 +1,2 @@
1
- import{jsx as m,jsxs as c}from"react/jsx-runtime";import{useState as w,createElement as D}from"react";import{HTMLRenderer as a}from"../htmlParser/HTMLRenderer.js";import{getDynamicSchema as N}from"../../../src/shared/utils/getDynamicSchema.js";import{cn as u}from"../../shared/utils/cn.js";import{useControlledForm as B}from"../../shared/hooks/useControlledForm.js";import{Button as j}from"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import"../../shared/ui/calendar/Calendar.js";import"../../shared/ui/calendar/model/utils.js";import"../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import"../../shared/ui/carousel/ui/CarouselContent.js";import{Dialog as F}from"../../shared/ui/dialog/Dialog.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import{CheckboxBase as M}from"../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../src/configs/api.js";import"../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";import"../../shared/validation/zodValidation/dadataFio.js";import"../../shared/validation/zodValidation/calendar.js";import"../../shared/validation/zodValidation/phone.js";import"../../shared/validation/zodValidation/otpCode.js";import{ZodUtils as Z}from"../../shared/validation/utils/zodUtils.js";import{FieldMapper as A}from"../fieldMapper/FieldMapper.js";import{QueryClientProvider as E}from"../queryClientProvider/QueryClientProvider.js";const H=(o,p,i,t)=>o.type==="off"?null:o.type==="text"?m(a,{html:o.message,as:"div",className:t==null?void 0:t.content}):c("label",{className:u("mob-body-regular-s text-color-dark","desktop:desk-body-regular-m desktop:gap-x-4","flex items-center justify-items-start gap-x-3"),children:[m(M,{classes:t==null?void 0:t.checkbox,checked:p,onCheckedChange:i}),m(a,{html:o.content,as:"div",className:t==null?void 0:t.content})]}),Dt=({fields:o,title:p,approvement:i,submitProps:t,dialogId:h,classes:r,buttonGroup:n,...x})=>{const{submitCallback:d}=t??{},[f,g]=w(!1),l=N(o),b=Z.getZodDefaults(l),{control:k,handleSubmit:y}=B({schema:l,defaultValues:b,mode:"onBlur"});return m(E,{children:m(F,{id:h,title:p,...x,children:c("form",{onSubmit:y(e=>{d&&d({...e,agree:f})}),className:"flex flex-col gap-6",children:[m(A,{control:k,fields:o}),H(i,f,g,r==null?void 0:r.approvement),n==null?void 0:n.map((e,C)=>{const S=e.type==="submit"&&i.type==="checkbox"?!f:!1;return D(j,{...e,key:C,disabled:S,className:u("w-full whitespace-nowrap",{"w-full":!!i},r==null?void 0:r.submit)})})]})})})};export{Dt as DynamicFormDialog,Dt as default};
1
+ import{jsx as r,jsxs as c}from"react/jsx-runtime";import{useState as S,createElement as w}from"react";import{HTMLRenderer as a}from"../htmlParser/HTMLRenderer.js";import{getDynamicSchema as D}from"../../../src/shared/utils/getDynamicSchema.js";import{cn as h}from"../../shared/utils/cn.js";import{TypeGuards as B}from"../../shared/utils/typeGuards.js";import{useControlledForm as F}from"../../shared/hooks/useControlledForm.js";import{Button as j}from"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import"../../shared/ui/calendar/Calendar.js";import"../../shared/ui/calendar/model/utils.js";import"../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import"../../shared/ui/carousel/ui/CarouselContent.js";import{Dialog as A}from"../../shared/ui/dialog/Dialog.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import{CheckboxBase as M}from"../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../src/configs/api.js";import"../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";import"../../shared/validation/zodValidation/dadataFio.js";import"../../shared/validation/zodValidation/calendar.js";import"../../shared/validation/zodValidation/phone.js";import"../../shared/validation/zodValidation/otpCode.js";import{ZodUtils as T}from"../../shared/validation/utils/zodUtils.js";import{FieldMapper as Z}from"../fieldMapper/FieldMapper.js";import{QueryClientProvider as v}from"../queryClientProvider/QueryClientProvider.js";const z=(o,n,i,t)=>o.type==="off"?null:o.type==="text"?r(a,{html:o.message,as:"div",className:t==null?void 0:t.content}):c("label",{className:h("mob-body-regular-s text-color-dark","desktop:desk-body-regular-m desktop:gap-x-4","flex items-center justify-items-start gap-x-3"),children:[r(M,{classes:t==null?void 0:t.checkbox,checked:n,onCheckedChange:i}),r(a,{html:o.content,as:"div",className:t==null?void 0:t.content})]}),Bt=({fields:o,title:n,approvement:i,submitProps:t,dialogId:u,classes:m,buttonGroup:e,...x})=>{const{submitCallback:f}=t??{},[l,g]=S(!1),d=D(o),y=T.getZodDefaults(d),{control:k,handleSubmit:b}=F({schema:d,defaultValues:y,mode:"onBlur"});return r(v,{children:r(A,{id:u,title:n,...x,children:c("form",{onSubmit:b(p=>{f&&f({...p,agree:l})}),className:"flex flex-col gap-6",children:[r(Z,{control:k,fields:o}),z(i,l,g,m==null?void 0:m.approvement),B.isArrayFilled(e)&&r("div",{className:"flex flex-col gap-4",children:e==null?void 0:e.map((p,C)=>{const N=p.type==="submit"&&i.type==="checkbox"?!l:!1;return w(j,{...p,size:"lg",key:C,disabled:N,className:h("w-full whitespace-nowrap",{"w-full":!!i},m==null?void 0:m.submit)})})})]})})})};export{Bt as DynamicFormDialog,Bt as default};
2
2
  //# sourceMappingURL=DynamicFormDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicFormDialog.js","sources":["../../../../lib/widgets/dynamicFormDialog/DynamicFormDialog.tsx"],"sourcesContent":["'use client'\nimport { useState } from 'react'\nimport type { Control, FieldValues, SubmitHandler } from 'react-hook-form'\nimport { type TypeOf } from 'zod'\nimport { HTMLRenderer } from '../htmlParser'\nimport type { Approvement, ApprovementType } from './model'\nimport { type FieldValidation, getDynamicSchema } from '@/shared/utils'\nimport { useControlledForm } from '$/shared/hooks'\nimport { Button, type ButtonProps, CheckboxBase, type CheckedState, Dialog } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\nimport { ZodUtils } from '$/shared/validation'\nimport { type FieldElement, FieldMapper } from '$/widgets/fieldMapper'\nimport { QueryClientProvider } from '$/widgets/queryClientProvider'\n\ntype SubmitProps = {\n submitCallback: <T extends FieldValues>(values: T) => void\n}\n\ntype ApprovementClasses = {\n checkbox?: React.ComponentProps<typeof CheckboxBase>['classes']\n content?: string\n}\n\ntype DynamicFormDialogClasses = {\n root?: string\n title?: string\n fields?: string\n form?: string\n approvement?: ApprovementClasses\n submit?: string\n}\n\nexport type DynamicFormDialogProps<AType extends ApprovementType> = React.DialogHTMLAttributes<HTMLDialogElement> & {\n fields: FieldElement<any, any, { validation: FieldValidation }>[]\n title: string\n approvement: Approvement<AType>\n dialogId: string\n submitProps?: SubmitProps\n classes?: DynamicFormDialogClasses\n buttonGroup: ButtonProps[]\n}\n\nconst withApprovement = <Type extends ApprovementType>(\n approvement: Approvement<Type>,\n checked: CheckedState,\n onCheckedChange: (checked: CheckedState) => void,\n classes?: ApprovementClasses\n) => {\n if (approvement.type === 'off') return null\n\n if (approvement.type === 'text') {\n return <HTMLRenderer html={approvement.message} as='div' className={classes?.content} />\n }\n\n return (\n <label\n className={cn(\n 'mob-body-regular-s text-color-dark',\n 'desktop:desk-body-regular-m desktop:gap-x-4',\n 'flex items-center justify-items-start gap-x-3'\n )}\n >\n <CheckboxBase classes={classes?.checkbox} checked={checked} onCheckedChange={onCheckedChange} />\n <HTMLRenderer html={approvement.content} as='div' className={classes?.content} />\n </label>\n )\n}\n\nexport const DynamicFormDialog = <AType extends ApprovementType>({\n fields,\n title,\n approvement,\n submitProps,\n dialogId,\n classes,\n buttonGroup,\n ...props\n}: DynamicFormDialogProps<AType>) => {\n const { submitCallback } = submitProps ?? {}\n\n const [checked, onCheckedChange] = useState<CheckedState>(false)\n\n const schema = getDynamicSchema(fields)\n const defaultValues = ZodUtils.getZodDefaults(schema)\n\n const { control, handleSubmit } = useControlledForm({\n schema,\n defaultValues,\n mode: 'onBlur'\n })\n\n const onSubmit: SubmitHandler<TypeOf<typeof schema>> = (values) => {\n if (submitCallback) submitCallback({ ...values, agree: checked })\n }\n\n return (\n <QueryClientProvider>\n <Dialog id={dialogId} title={title} {...props}>\n <form onSubmit={handleSubmit(onSubmit)} className='flex flex-col gap-6'>\n <FieldMapper control={control as unknown as Control} fields={fields} />\n {withApprovement(approvement, checked, onCheckedChange, classes?.approvement)}\n {buttonGroup?.map((button, index) => {\n const disabled = button.type === 'submit' && approvement.type === 'checkbox' ? !checked : false\n\n return (\n <Button\n {...button}\n key={index}\n disabled={disabled}\n className={cn(\n 'w-full whitespace-nowrap',\n {\n 'w-full': Boolean(approvement)\n },\n classes?.submit\n )}\n />\n )\n })}\n {/*<Button {...buttonProps} type='submit' disabled={approvement.type === 'checkbox' ? !checked : false} className='w-full'>*/}\n {/* {children ?? 'Отправить форму'}*/}\n {/*</Button>*/}\n </form>\n </Dialog>\n </QueryClientProvider>\n )\n}\n\nexport default DynamicFormDialog\n"],"names":["withApprovement","approvement","checked","onCheckedChange","classes","jsx","HTMLRenderer","jsxs","cn","CheckboxBase","DynamicFormDialog","fields","title","submitProps","dialogId","buttonGroup","props","submitCallback","useState","schema","getDynamicSchema","defaultValues","ZodUtils","control","handleSubmit","useControlledForm","QueryClientProvider","Dialog","values","FieldMapper","button","index","disabled","createElement","Button"],"mappings":"wnFA0CA,MAAMA,EAAkB,CACtBC,EACAC,EACAC,EACAC,IAEIH,EAAY,OAAS,MAAc,KAEnCA,EAAY,OAAS,OAChBI,EAACC,GAAa,KAAML,EAAY,QAAS,GAAG,MAAM,UAAWG,GAAA,YAAAA,EAAS,OAAA,CAAS,EAItFG,EAAC,QAAA,CACC,UAAWC,EACT,qCACA,8CACA,+CAAA,EAGF,SAAA,CAAAH,EAACI,EAAA,CAAa,QAASL,GAAA,YAAAA,EAAS,SAAU,QAAAF,EAAkB,gBAAAC,EAAkC,EAC9FE,EAACC,GAAa,KAAML,EAAY,QAAS,GAAG,MAAM,UAAWG,GAAA,YAAAA,EAAS,OAAA,CAAS,CAAA,CAAA,CAAA,EAKxEM,GAAoB,CAAgC,CAC/D,OAAAC,EACA,MAAAC,EACA,YAAAX,EACA,YAAAY,EACA,SAAAC,EACA,QAAAV,EACA,YAAAW,EACA,GAAGC,CACL,IAAqC,CACnC,KAAM,CAAE,eAAAC,GAAmBJ,GAAe,CAAA,EAEpC,CAACX,EAASC,CAAe,EAAIe,EAAuB,EAAK,EAEzDC,EAASC,EAAiBT,CAAM,EAChCU,EAAgBC,EAAS,eAAeH,CAAM,EAE9C,CAAE,QAAAI,EAAS,aAAAC,CAAA,EAAiBC,EAAkB,CAClD,OAAAN,EACA,cAAAE,EACA,KAAM,QAAA,CACP,EAMD,SACGK,EAAA,CACC,SAAArB,EAACsB,EAAA,CAAO,GAAIb,EAAU,MAAAF,EAAe,GAAGI,EACtC,SAAAT,EAAC,QAAK,SAAUiB,EAPkCI,GAAW,CAC7DX,GAAgBA,EAAe,CAAE,GAAGW,EAAQ,MAAO1B,EAAS,CAClE,CAK2C,EAAG,UAAU,sBAChD,SAAA,CAAAG,EAACwB,EAAA,CAAY,QAAAN,EAAwC,OAAAZ,CAAA,CAAgB,EACpEX,EAAgBC,EAAaC,EAASC,EAAiBC,GAAA,YAAAA,EAAS,WAAW,EAC3EW,GAAA,YAAAA,EAAa,IAAI,CAACe,EAAQC,IAAU,CACnC,MAAMC,EAAWF,EAAO,OAAS,UAAY7B,EAAY,OAAS,WAAa,CAACC,EAAU,GAE1F,OACE+B,EAACC,EAAA,CACE,GAAGJ,EACJ,IAAKC,EACL,SAAAC,EACA,UAAWxB,EACT,2BACA,CACE,SAAU,EAAQP,CAAW,EAE/BG,GAAA,YAAAA,EAAS,MAAA,CACX,CAAA,CAGN,EAAC,CAAA,CAIH,EACF,EACF,CAEJ"}
1
+ {"version":3,"file":"DynamicFormDialog.js","sources":["../../../../lib/widgets/dynamicFormDialog/DynamicFormDialog.tsx"],"sourcesContent":["'use client'\nimport { useState } from 'react'\nimport type { Control, FieldValues, SubmitHandler } from 'react-hook-form'\nimport { type TypeOf } from 'zod'\nimport { HTMLRenderer } from '../htmlParser'\nimport type { Approvement, ApprovementType } from './model'\nimport { type FieldValidation, getDynamicSchema } from '@/shared/utils'\nimport { useControlledForm } from '$/shared/hooks'\nimport { Button, type ButtonProps, CheckboxBase, type CheckedState, Dialog } from '$/shared/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\nimport { ZodUtils } from '$/shared/validation'\nimport { type FieldElement, FieldMapper } from '$/widgets/fieldMapper'\nimport { QueryClientProvider } from '$/widgets/queryClientProvider'\n\ntype SubmitProps = {\n submitCallback: <T extends FieldValues>(values: T) => void\n}\n\ntype ApprovementClasses = {\n checkbox?: React.ComponentProps<typeof CheckboxBase>['classes']\n content?: string\n}\n\ntype DynamicFormDialogClasses = {\n root?: string\n title?: string\n fields?: string\n form?: string\n approvement?: ApprovementClasses\n submit?: string\n}\n\nexport type DynamicFormDialogProps<AType extends ApprovementType> = React.DialogHTMLAttributes<HTMLDialogElement> & {\n fields: FieldElement<any, any, { validation: FieldValidation }>[]\n title: string\n approvement: Approvement<AType>\n dialogId: string\n submitProps?: SubmitProps\n classes?: DynamicFormDialogClasses\n buttonGroup: ButtonProps[]\n}\n\nconst withApprovement = <Type extends ApprovementType>(\n approvement: Approvement<Type>,\n checked: CheckedState,\n onCheckedChange: (checked: CheckedState) => void,\n classes?: ApprovementClasses\n) => {\n if (approvement.type === 'off') return null\n\n if (approvement.type === 'text') {\n return <HTMLRenderer html={approvement.message} as='div' className={classes?.content} />\n }\n\n return (\n <label\n className={cn(\n 'mob-body-regular-s text-color-dark',\n 'desktop:desk-body-regular-m desktop:gap-x-4',\n 'flex items-center justify-items-start gap-x-3'\n )}\n >\n <CheckboxBase classes={classes?.checkbox} checked={checked} onCheckedChange={onCheckedChange} />\n <HTMLRenderer html={approvement.content} as='div' className={classes?.content} />\n </label>\n )\n}\n\nexport const DynamicFormDialog = <AType extends ApprovementType>({\n fields,\n title,\n approvement,\n submitProps,\n dialogId,\n classes,\n buttonGroup,\n ...props\n}: DynamicFormDialogProps<AType>) => {\n const { submitCallback } = submitProps ?? {}\n\n const [checked, onCheckedChange] = useState<CheckedState>(false)\n\n const schema = getDynamicSchema(fields)\n const defaultValues = ZodUtils.getZodDefaults(schema)\n\n const { control, handleSubmit } = useControlledForm({\n schema,\n defaultValues,\n mode: 'onBlur'\n })\n\n const onSubmit: SubmitHandler<TypeOf<typeof schema>> = (values) => {\n if (submitCallback) submitCallback({ ...values, agree: checked })\n }\n\n return (\n <QueryClientProvider>\n <Dialog id={dialogId} title={title} {...props}>\n <form onSubmit={handleSubmit(onSubmit)} className='flex flex-col gap-6'>\n <FieldMapper control={control as unknown as Control} fields={fields} />\n {withApprovement(approvement, checked, onCheckedChange, classes?.approvement)}\n {TypeGuards.isArrayFilled(buttonGroup) && (\n <div className='flex flex-col gap-4'>\n {buttonGroup?.map((button, index) => {\n const disabled = button.type === 'submit' && approvement.type === 'checkbox' ? !checked : false\n\n return (\n <Button\n {...button}\n size='lg'\n key={index}\n disabled={disabled}\n className={cn(\n 'w-full whitespace-nowrap',\n {\n 'w-full': Boolean(approvement)\n },\n classes?.submit\n )}\n />\n )\n })}\n </div>\n )}\n {/*<Button {...buttonProps} type='submit' disabled={approvement.type === 'checkbox' ? !checked : false} className='w-full'>*/}\n {/* {children ?? 'Отправить форму'}*/}\n {/*</Button>*/}\n </form>\n </Dialog>\n </QueryClientProvider>\n )\n}\n\nexport default DynamicFormDialog\n"],"names":["withApprovement","approvement","checked","onCheckedChange","classes","jsx","HTMLRenderer","jsxs","cn","CheckboxBase","DynamicFormDialog","fields","title","submitProps","dialogId","buttonGroup","props","submitCallback","useState","schema","getDynamicSchema","defaultValues","ZodUtils","control","handleSubmit","useControlledForm","QueryClientProvider","Dialog","values","FieldMapper","TypeGuards","button","index","disabled","createElement","Button"],"mappings":"srFA0CA,MAAMA,EAAkB,CACtBC,EACAC,EACAC,EACAC,IAEIH,EAAY,OAAS,MAAc,KAEnCA,EAAY,OAAS,OAChBI,EAACC,GAAa,KAAML,EAAY,QAAS,GAAG,MAAM,UAAWG,GAAA,YAAAA,EAAS,OAAA,CAAS,EAItFG,EAAC,QAAA,CACC,UAAWC,EACT,qCACA,8CACA,+CAAA,EAGF,SAAA,CAAAH,EAACI,EAAA,CAAa,QAASL,GAAA,YAAAA,EAAS,SAAU,QAAAF,EAAkB,gBAAAC,EAAkC,EAC9FE,EAACC,GAAa,KAAML,EAAY,QAAS,GAAG,MAAM,UAAWG,GAAA,YAAAA,EAAS,OAAA,CAAS,CAAA,CAAA,CAAA,EAKxEM,GAAoB,CAAgC,CAC/D,OAAAC,EACA,MAAAC,EACA,YAAAX,EACA,YAAAY,EACA,SAAAC,EACA,QAAAV,EACA,YAAAW,EACA,GAAGC,CACL,IAAqC,CACnC,KAAM,CAAE,eAAAC,GAAmBJ,GAAe,CAAA,EAEpC,CAACX,EAASC,CAAe,EAAIe,EAAuB,EAAK,EAEzDC,EAASC,EAAiBT,CAAM,EAChCU,EAAgBC,EAAS,eAAeH,CAAM,EAE9C,CAAE,QAAAI,EAAS,aAAAC,CAAA,EAAiBC,EAAkB,CAClD,OAAAN,EACA,cAAAE,EACA,KAAM,QAAA,CACP,EAMD,SACGK,EAAA,CACC,SAAArB,EAACsB,EAAA,CAAO,GAAIb,EAAU,MAAAF,EAAe,GAAGI,EACtC,SAAAT,EAAC,QAAK,SAAUiB,EAPkCI,GAAW,CAC7DX,GAAgBA,EAAe,CAAE,GAAGW,EAAQ,MAAO1B,EAAS,CAClE,CAK2C,EAAG,UAAU,sBAChD,SAAA,CAAAG,EAACwB,EAAA,CAAY,QAAAN,EAAwC,OAAAZ,CAAA,CAAgB,EACpEX,EAAgBC,EAAaC,EAASC,EAAiBC,GAAA,YAAAA,EAAS,WAAW,EAC3E0B,EAAW,cAAcf,CAAW,GACnCV,EAAC,MAAA,CAAI,UAAU,sBACZ,SAAAU,GAAA,YAAAA,EAAa,IAAI,CAACgB,EAAQC,IAAU,CACnC,MAAMC,EAAWF,EAAO,OAAS,UAAY9B,EAAY,OAAS,WAAa,CAACC,EAAU,GAE1F,OACEgC,EAACC,EAAA,CACE,GAAGJ,EACJ,KAAK,KACL,IAAKC,EACL,SAAAC,EACA,UAAWzB,EACT,2BACA,CACE,SAAU,EAAQP,CAAW,EAE/BG,GAAA,YAAAA,EAAS,MAAA,CACX,CAAA,CAGN,EAAC,CACH,CAAA,CAAA,CAKJ,EACF,EACF,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsx as o,jsxs as d}from"react/jsx-runtime";import{ButtonWithHandlers as y}from"../buttonWithHandlers/ButtonWithHandlers.js";import{widgetIds as x}from"../model/helpers.js";import{containerImgConfig as B}from"./model/cva.js";import{ResponsiveContainer as I}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import{cn as i}from"../../shared/utils/cn.js";import{TypeGuards as N}from"../../shared/utils/typeGuards.js";import"react";import"../../shared/ui/calendar/Calendar.js";import"../../shared/ui/calendar/model/utils.js";import"../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import"../../shared/ui/carousel/ui/CarouselContent.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../src/configs/api.js";import"../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";import{Title as n}from"./ui/Title.js";import{TextList as j}from"./ui/TextList.js";const mr=({headline:e,buttonConfig:t,intent:p="twoItems",details:w,image:m,classes:r})=>{const k=p==="fourItems",h=p==="twoItems",l=m&&"url"in m&&N.isObject(m)?o("img",{className:"w-full object-contain",alt:m.alt,src:m.url}):m;return o("section",{id:x.longBanner,"data-test-id":x.longBanner,className:i(r==null?void 0:r.root),children:d(I,{className:i(r==null?void 0:r.container),children:[h&&o(n,{intent:p,headline:e}),d("div",{className:i("bg-banner-skyblue-100 px-6 pb-8 pt-6 desktop:flex desktop:flex-row-reverse desktop:justify-between desktop:px-0 desktop:py-0 desktop:pl-12",r==null?void 0:r.contentContainer),children:[k&&o(n,{intent:p,headline:e,desktopHidden:!0}),o("div",{className:i(B({intent:p,withButton:t==null?void 0:t.enabled}),r==null?void 0:r.imgContainer),children:l}),d("div",{className:i("desktop:flex desktop:flex-col desktop:justify-center desktop:py-10",r==null?void 0:r.textWithBtnContainer),children:[k&&o(n,{intent:p,headline:e,mobileHidden:!0}),o(j,{details:w,intent:p,withButton:(t==null?void 0:t.enabled)??!1}),(t==null?void 0:t.enabled)&&t&&o(y,{className:i("w-full px-4 desktop:w-max",r==null?void 0:r.button),size:"lg",intent:"secondary",...t.buttonContent})]})]})]})})};export{mr as LongBanner,mr as default};
1
+ import{jsx as o,jsxs as d}from"react/jsx-runtime";import{ButtonWithHandlers as h}from"../buttonWithHandlers/ButtonWithHandlers.js";import{widgetIds as x}from"../model/helpers.js";import{containerImgConfig as B}from"./model/cva.js";import{ResponsiveContainer as I}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import"../../shared/ui/button/Button.js";import"../../shared/ui/buttonIcon/ButtonIcon.js";import{cn as i}from"../../shared/utils/cn.js";import{TypeGuards as N}from"../../shared/utils/typeGuards.js";import"react";import"../../shared/ui/calendar/Calendar.js";import"../../shared/ui/calendar/model/utils.js";import"../../shared/ui/accordion/Accordion.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import"../../shared/ui/carousel/ui/CarouselContent.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import"../../shared/ui/formElements/uncontrolled/checkbox/Checkbox.js";import"../../shared/ui/formElements/uncontrolled/combobox/combobox.js";import"../../shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js";import"../../shared/ui/formElements/uncontrolled/input/Input.js";import"../../shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../../shared/ui/formElements/uncontrolled/maskInput/MaskInput.js";import"../../shared/ui/formElements/uncontrolled/radio/RadioGroup.js";import"../../shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js";import"../../shared/ui/formElements/uncontrolled/slider/SliderBase.js";import"../../shared/ui/formElements/uncontrolled/switch/Switch.js";import"../../shared/ui/formElements/uncontrolled/textarea/Textarea.js";import"../../shared/ui/formElements/uncontrolled/uploader/UploaderBase.js";import"../../shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js";import"../../../src/configs/api.js";import"../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";import{Title as n}from"./ui/Title.js";import{TextList as j}from"./ui/TextList.js";const ir=({headline:e,buttonConfig:t,intent:p="twoItems",details:w,image:m,backgroundColor:l,classes:r})=>{const k=p==="fourItems",y=p==="twoItems",f=m&&"url"in m&&N.isObject(m)?o("img",{className:"w-full object-contain",alt:m.alt,src:m.url}):m;return o("section",{style:{backgroundColor:l??"#d9edff"},id:x.longBanner,"data-test-id":x.longBanner,className:i(r==null?void 0:r.root),children:d(I,{className:i(r==null?void 0:r.container),children:[y&&o(n,{intent:p,headline:e}),d("div",{className:i("bg-banner-skyblue-100 px-6 pb-8 pt-6 desktop:flex desktop:flex-row-reverse desktop:justify-between desktop:px-0 desktop:py-0 desktop:pl-12",r==null?void 0:r.contentContainer),children:[k&&o(n,{intent:p,headline:e,desktopHidden:!0}),o("div",{className:i(B({intent:p,withButton:t==null?void 0:t.enabled}),r==null?void 0:r.imgContainer),children:f}),d("div",{className:i("desktop:flex desktop:flex-col desktop:justify-center desktop:py-10",r==null?void 0:r.textWithBtnContainer),children:[k&&o(n,{intent:p,headline:e,mobileHidden:!0}),o(j,{details:w,intent:p,withButton:(t==null?void 0:t.enabled)??!1}),(t==null?void 0:t.enabled)&&t&&o(h,{className:i("w-full px-4 desktop:w-max",r==null?void 0:r.button),size:"lg",intent:"secondary",...t.buttonContent})]})]})]})})};export{ir as LongBanner,ir as default};
2
2
  //# sourceMappingURL=LongBanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LongBanner.js","sources":["../../../../lib/widgets/longBanner/LongBanner.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { ButtonWithHandlers } from '../buttonWithHandlers'\nimport { widgetIds } from '../model'\nimport { containerImgConfig } from './model/cva'\nimport { type ButtonConfig, type Details, type Image, type LongBannerClasses, type LongBannerConfig } from './model/types'\nimport { TextList, Title } from './ui'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\n\nexport interface LongBannerProps<Enabled extends boolean> extends LongBannerConfig {\n headline: string | ReactElement\n details: Details<Enabled>[]\n intent?: 'twoItems' | 'fourItems'\n buttonConfig?: ButtonConfig\n image: Image\n classes?: LongBannerClasses\n}\n\nexport const LongBanner = <Enabled extends boolean>({\n headline,\n buttonConfig,\n intent = 'twoItems',\n details,\n image,\n classes\n}: LongBannerProps<Enabled>) => {\n const isFourItems = intent === 'fourItems'\n const isTwoItems = intent === 'twoItems'\n\n const img =\n image && 'url' in image && TypeGuards.isObject(image) ? (\n <img className='w-full object-contain' alt={image.alt} src={image.url} />\n ) : (\n image\n )\n\n return (\n <section id={widgetIds.longBanner} data-test-id={widgetIds.longBanner} className={cn(classes?.root)}>\n <ResponsiveContainer className={cn(classes?.container)}>\n {isTwoItems && <Title intent={intent} headline={headline} />}\n\n <div\n className={cn(\n 'bg-banner-skyblue-100 px-6 pb-8 pt-6 desktop:flex desktop:flex-row-reverse desktop:justify-between desktop:px-0 desktop:py-0 desktop:pl-12',\n classes?.contentContainer\n )}\n >\n {isFourItems && <Title intent={intent} headline={headline} desktopHidden={true} />}\n <div className={cn(containerImgConfig({ intent, withButton: buttonConfig?.enabled }), classes?.imgContainer)}>\n {img}\n </div>\n <div\n className={cn('desktop:flex desktop:flex-col desktop:justify-center desktop:py-10', classes?.textWithBtnContainer)}\n >\n {isFourItems && <Title intent={intent} headline={headline} mobileHidden={true} />}\n <TextList details={details} intent={intent} withButton={buttonConfig?.enabled ?? false} />\n {buttonConfig?.enabled && buttonConfig && (\n <ButtonWithHandlers\n className={cn('w-full px-4 desktop:w-max', classes?.button)}\n size='lg'\n intent='secondary'\n {...buttonConfig.buttonContent}\n />\n )}\n </div>\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default LongBanner\n"],"names":["LongBanner","headline","buttonConfig","intent","details","image","classes","isFourItems","isTwoItems","img","TypeGuards","jsx","widgetIds","cn","jsxs","ResponsiveContainer","Title","containerImgConfig","TextList","ButtonWithHandlers"],"mappings":"kwEAkBO,MAAMA,GAAa,CAA0B,CAClD,SAAAC,EACA,aAAAC,EACA,OAAAC,EAAS,WACT,QAAAC,EACA,MAAAC,EACA,QAAAC,CACF,IAAgC,CAC9B,MAAMC,EAAcJ,IAAW,YACzBK,EAAaL,IAAW,WAExBM,EACJJ,GAAS,QAASA,GAASK,EAAW,SAASL,CAAK,EAClDM,EAAC,MAAA,CAAI,UAAU,wBAAwB,IAAKN,EAAM,IAAK,IAAKA,EAAM,IAAK,EAEvEA,EAGJ,SACG,UAAA,CAAQ,GAAIO,EAAU,WAAY,eAAcA,EAAU,WAAY,UAAWC,EAAGP,GAAA,YAAAA,EAAS,IAAI,EAChG,SAAAQ,EAACC,EAAA,CAAoB,UAAWF,EAAGP,GAAA,YAAAA,EAAS,SAAS,EAClD,SAAA,CAAAE,GAAcG,EAACK,EAAA,CAAM,OAAAb,EAAgB,SAAAF,CAAA,CAAoB,EAE1Da,EAAC,MAAA,CACC,UAAWD,EACT,6IACAP,GAAA,YAAAA,EAAS,gBAAA,EAGV,SAAA,CAAAC,GAAeI,EAACK,EAAA,CAAM,OAAAb,EAAgB,SAAAF,EAAoB,cAAe,GAAM,EAChFU,EAAC,MAAA,CAAI,UAAWE,EAAGI,EAAmB,CAAE,OAAAd,EAAQ,WAAYD,GAAA,YAAAA,EAAc,QAAS,EAAGI,GAAA,YAAAA,EAAS,YAAY,EACxG,SAAAG,EACH,EACAK,EAAC,MAAA,CACC,UAAWD,EAAG,qEAAsEP,GAAA,YAAAA,EAAS,oBAAoB,EAEhH,SAAA,CAAAC,GAAeI,EAACK,EAAA,CAAM,OAAAb,EAAgB,SAAAF,EAAoB,aAAc,GAAM,IAC9EiB,EAAA,CAAS,QAAAd,EAAkB,OAAAD,EAAgB,YAAYD,GAAA,YAAAA,EAAc,UAAW,GAAO,GACvFA,GAAA,YAAAA,EAAc,UAAWA,GACxBS,EAACQ,EAAA,CACC,UAAWN,EAAG,4BAA6BP,GAAA,YAAAA,EAAS,MAAM,EAC1D,KAAK,KACL,OAAO,YACN,GAAGJ,EAAa,aAAA,CAAA,CACnB,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CACF,CAEJ"}
1
+ {"version":3,"file":"LongBanner.js","sources":["../../../../lib/widgets/longBanner/LongBanner.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { ButtonWithHandlers } from '../buttonWithHandlers'\nimport { widgetIds } from '../model'\nimport { containerImgConfig } from './model/cva'\nimport { type ButtonConfig, type Details, type Image, type LongBannerClasses, type LongBannerConfig } from './model/types'\nimport { TextList, Title } from './ui'\nimport { ResponsiveContainer } from '$/shared/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\n\nexport interface LongBannerProps<Enabled extends boolean> extends LongBannerConfig {\n headline: string | ReactElement\n details: Details<Enabled>[]\n intent?: 'twoItems' | 'fourItems'\n buttonConfig?: ButtonConfig\n image: Image\n backgroundColor?: string\n classes?: LongBannerClasses\n}\n\nexport const LongBanner = <Enabled extends boolean>({\n headline,\n buttonConfig,\n intent = 'twoItems',\n details,\n image,\n backgroundColor,\n classes\n}: LongBannerProps<Enabled>) => {\n const isFourItems = intent === 'fourItems'\n const isTwoItems = intent === 'twoItems'\n\n const img =\n image && 'url' in image && TypeGuards.isObject(image) ? (\n <img className='w-full object-contain' alt={image.alt} src={image.url} />\n ) : (\n image\n )\n\n return (\n <section\n style={{ backgroundColor: backgroundColor ?? '#d9edff' }}\n id={widgetIds.longBanner}\n data-test-id={widgetIds.longBanner}\n className={cn(classes?.root)}\n >\n <ResponsiveContainer className={cn(classes?.container)}>\n {isTwoItems && <Title intent={intent} headline={headline} />}\n\n <div\n className={cn(\n 'bg-banner-skyblue-100 px-6 pb-8 pt-6 desktop:flex desktop:flex-row-reverse desktop:justify-between desktop:px-0 desktop:py-0 desktop:pl-12',\n classes?.contentContainer\n )}\n >\n {isFourItems && <Title intent={intent} headline={headline} desktopHidden={true} />}\n <div className={cn(containerImgConfig({ intent, withButton: buttonConfig?.enabled }), classes?.imgContainer)}>\n {img}\n </div>\n <div\n className={cn('desktop:flex desktop:flex-col desktop:justify-center desktop:py-10', classes?.textWithBtnContainer)}\n >\n {isFourItems && <Title intent={intent} headline={headline} mobileHidden={true} />}\n <TextList details={details} intent={intent} withButton={buttonConfig?.enabled ?? false} />\n {buttonConfig?.enabled && buttonConfig && (\n <ButtonWithHandlers\n className={cn('w-full px-4 desktop:w-max', classes?.button)}\n size='lg'\n intent='secondary'\n {...buttonConfig.buttonContent}\n />\n )}\n </div>\n </div>\n </ResponsiveContainer>\n </section>\n )\n}\n\nexport default LongBanner\n"],"names":["LongBanner","headline","buttonConfig","intent","details","image","backgroundColor","classes","isFourItems","isTwoItems","img","TypeGuards","jsx","widgetIds","cn","ResponsiveContainer","Title","jsxs","containerImgConfig","TextList","ButtonWithHandlers"],"mappings":"kwEAmBO,MAAMA,GAAa,CAA0B,CAClD,SAAAC,EACA,aAAAC,EACA,OAAAC,EAAS,WACT,QAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,QAAAC,CACF,IAAgC,CAC9B,MAAMC,EAAcL,IAAW,YACzBM,EAAaN,IAAW,WAExBO,EACJL,GAAS,QAASA,GAASM,EAAW,SAASN,CAAK,EAClDO,EAAC,MAAA,CAAI,UAAU,wBAAwB,IAAKP,EAAM,IAAK,IAAKA,EAAM,IAAK,EAEvEA,EAGJ,OACEO,EAAC,UAAA,CACC,MAAO,CAAE,gBAAiBN,GAAmB,SAAA,EAC7C,GAAIO,EAAU,WACd,eAAcA,EAAU,WACxB,UAAWC,EAAGP,GAAA,YAAAA,EAAS,IAAI,EAE3B,WAACQ,EAAA,CAAoB,UAAWD,EAAGP,GAAA,YAAAA,EAAS,SAAS,EAClD,SAAA,CAAAE,GAAcG,EAACI,EAAA,CAAM,OAAAb,EAAgB,SAAAF,CAAA,CAAoB,EAE1DgB,EAAC,MAAA,CACC,UAAWH,EACT,6IACAP,GAAA,YAAAA,EAAS,gBAAA,EAGV,SAAA,CAAAC,GAAeI,EAACI,EAAA,CAAM,OAAAb,EAAgB,SAAAF,EAAoB,cAAe,GAAM,EAChFW,EAAC,MAAA,CAAI,UAAWE,EAAGI,EAAmB,CAAE,OAAAf,EAAQ,WAAYD,GAAA,YAAAA,EAAc,QAAS,EAAGK,GAAA,YAAAA,EAAS,YAAY,EACxG,SAAAG,EACH,EACAO,EAAC,MAAA,CACC,UAAWH,EAAG,qEAAsEP,GAAA,YAAAA,EAAS,oBAAoB,EAEhH,SAAA,CAAAC,GAAeI,EAACI,EAAA,CAAM,OAAAb,EAAgB,SAAAF,EAAoB,aAAc,GAAM,IAC9EkB,EAAA,CAAS,QAAAf,EAAkB,OAAAD,EAAgB,YAAYD,GAAA,YAAAA,EAAc,UAAW,GAAO,GACvFA,GAAA,YAAAA,EAAc,UAAWA,GACxBU,EAACQ,EAAA,CACC,UAAWN,EAAG,4BAA6BP,GAAA,YAAAA,EAAS,MAAM,EAC1D,KAAK,KACL,OAAO,YACN,GAAGL,EAAa,aAAA,CAAA,CACnB,CAAA,CAAA,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CAGN"}