@scbt-ecom/ui 0.115.4 → 0.115.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/lib/widgets/authProvider/ui/Esia.js +1 -1
  2. package/dist/lib/widgets/authProvider/ui/Esia.js.map +1 -1
  3. package/dist/lib/widgets/authProvider/ui/MobileId.js +1 -1
  4. package/dist/lib/widgets/authProvider/ui/MobileId.js.map +1 -1
  5. package/dist/lib/widgets/authProvider/ui/ui/AuthWrapper.js +1 -1
  6. package/dist/lib/widgets/authProvider/ui/ui/AuthWrapper.js.map +1 -1
  7. package/dist/lib/widgets/authProvider/ui/ui/Links.js +1 -1
  8. package/dist/lib/widgets/authProvider/ui/ui/Links.js.map +1 -1
  9. package/dist/lib/widgets/benefit/ui/BenefitItem.js +1 -1
  10. package/dist/lib/widgets/benefit/ui/BenefitItem.js.map +1 -1
  11. package/dist/lib/widgets/dynamicForm/DynamicForm.js +1 -1
  12. package/dist/lib/widgets/dynamicForm/DynamicForm.js.map +1 -1
  13. package/dist/lib/widgets/model/helpers.js +2 -2
  14. package/dist/lib/widgets/model/helpers.js.map +1 -1
  15. package/dist/node_modules/@tanstack/query-core/build/modern/notifyManager.js +1 -1
  16. package/dist/node_modules/@tanstack/query-core/build/modern/notifyManager.js.map +1 -1
  17. package/dist/node_modules/@tanstack/query-core/build/modern/queryObserver.js +1 -1
  18. package/dist/node_modules/@tanstack/query-core/build/modern/queryObserver.js.map +1 -1
  19. package/dist/node_modules/@tanstack/query-core/build/modern/removable.js +1 -1
  20. package/dist/node_modules/@tanstack/query-core/build/modern/removable.js.map +1 -1
  21. package/dist/node_modules/@tanstack/query-core/build/modern/timeoutManager.js +2 -0
  22. package/dist/node_modules/@tanstack/query-core/build/modern/timeoutManager.js.map +1 -0
  23. package/dist/node_modules/@tanstack/query-core/build/modern/utils.js +1 -1
  24. package/dist/node_modules/@tanstack/query-core/build/modern/utils.js.map +1 -1
  25. package/dist/stats.html +1 -1
  26. package/dist/types/lib/widgets/authProvider/model/types.d.ts +3 -1
  27. package/dist/types/lib/widgets/authProvider/ui/Esia.d.ts +1 -1
  28. package/dist/types/lib/widgets/authProvider/ui/MobileId.d.ts +1 -1
  29. package/dist/types/lib/widgets/authProvider/ui/ui/AuthWrapper.d.ts +2 -2
  30. package/dist/types/lib/widgets/authProvider/ui/ui/Links.d.ts +2 -2
  31. package/dist/types/lib/widgets/benefit/model/types.d.ts +2 -0
  32. package/dist/types/lib/widgets/benefit/ui/BenefitItem.d.ts +3 -13
  33. package/dist/types/lib/widgets/dynamicForm/DynamicForm.d.ts +4 -3
  34. package/dist/types/lib/widgets/dynamicForm/model/types.d.ts +30 -0
  35. package/dist/types/lib/widgets/model/helpers.d.ts +1 -1
  36. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- import{jsx as o,jsxs as p}from"react/jsx-runtime";import{AuthWrapper as h}from"./ui/AuthWrapper.js";import{EsiaLogo as g}from"./ui/EsiaLogo.js";import{Links as x}from"./ui/Links.js";import{useDevice as u}from"../../../shared/hooks/useDevice.js";import"react";import{cn as i}from"../../../shared/utils/cn.js";import"../../../shared/ui/button/Button.js";import"../../../shared/ui/buttonIcon/ButtonIcon.js";import{Badge as N}from"../../../shared/ui/badge/Badge.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{Icon as j}from"../../../shared/ui/icon/Icon.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"../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const s=({mainLink:n,subLink:e,isLoading:f,badge:t,loaderProps:d,classes:r})=>{const{isMobile:m}=u();return o(h,{isLoading:f,loaderProps:d,classes:r==null?void 0:r.authWrapper,children:p("div",{className:i("flex flex-1 items-center justify-between gap-1",{"justify-center":!t&&m},r==null?void 0:r.innerWrapper),children:[p("div",{className:i("flex items-center gap-1 desktop:gap-4",r==null?void 0:r.textContent),children:[o(g,{className:i("size-7 desktop:size-8",r==null?void 0:r.esiaLogo)}),o(x,{mainLink:n,subLink:e,isMobile:m,classes:r==null?void 0:r.links}),o(j,{name:"arrows/arrowRight",className:i("size-6 mobile:hidden",r==null?void 0:r.arrowIcon)})]}),t&&o(N,{className:i("bg-color-positive",r==null?void 0:r.badge),children:t})]})})};export{s as Esia};
1
+ import{jsx as o,jsxs as p}from"react/jsx-runtime";import{AuthWrapper as g}from"./ui/AuthWrapper.js";import{EsiaLogo as x}from"./ui/EsiaLogo.js";import{Links as u}from"./ui/Links.js";import{useDevice as N}from"../../../shared/hooks/useDevice.js";import"react";import{cn as i}from"../../../shared/utils/cn.js";import"../../../shared/ui/button/Button.js";import"../../../shared/ui/buttonIcon/ButtonIcon.js";import{Badge as j}from"../../../shared/ui/badge/Badge.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{Icon as k}from"../../../shared/ui/icon/Icon.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"../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const rr=({mainLink:n,subLink:e,isLoading:f,badge:t,loaderProps:d,classes:r,onClick:h})=>{const{isMobile:m}=N();return o(g,{isLoading:f,loaderProps:d,classes:r==null?void 0:r.authWrapper,children:p("div",{className:i("flex flex-1 items-center justify-between gap-1",{"justify-center":!t&&m},r==null?void 0:r.innerWrapper),children:[p("div",{className:i("flex items-center gap-1 desktop:gap-4",r==null?void 0:r.textContent),children:[o(x,{className:i("size-7 desktop:size-8",r==null?void 0:r.esiaLogo)}),o(u,{onClick:h,mainLink:n,subLink:e,isMobile:m,classes:r==null?void 0:r.links}),o(k,{name:"arrows/arrowRight",className:i("size-6 mobile:hidden",r==null?void 0:r.arrowIcon)})]}),t&&o(j,{className:i("bg-color-positive",r==null?void 0:r.badge),children:t})]})})};export{rr as Esia};
2
2
  //# sourceMappingURL=Esia.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Esia.js","sources":["../../../../../lib/widgets/authProvider/ui/Esia.tsx"],"sourcesContent":["import type { TEsiaProps } from '../model/types'\nimport { AuthWrapper, EsiaLogo, Links } from './ui'\nimport { useDevice } from '$/shared/hooks'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const Esia = ({ mainLink, subLink, isLoading, badge, loaderProps, classes }: TEsiaProps) => {\n const { isMobile } = useDevice()\n\n return (\n <AuthWrapper isLoading={isLoading} loaderProps={loaderProps} classes={classes?.authWrapper}>\n <div\n className={cn(\n 'flex flex-1 items-center justify-between gap-1',\n { 'justify-center': !badge && isMobile },\n classes?.innerWrapper\n )}\n >\n <div className={cn('flex items-center gap-1 desktop:gap-4', classes?.textContent)}>\n <EsiaLogo className={cn('size-7 desktop:size-8', classes?.esiaLogo)} />\n <Links mainLink={mainLink} subLink={subLink} isMobile={isMobile} classes={classes?.links} />\n <Icon name='arrows/arrowRight' className={cn('size-6 mobile:hidden', classes?.arrowIcon)} />\n </div>\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </div>\n </AuthWrapper>\n )\n}\n"],"names":["Esia","mainLink","subLink","isLoading","badge","loaderProps","classes","isMobile","useDevice","AuthWrapper","jsxs","cn","jsx","EsiaLogo","Links","Icon","Badge"],"mappings":"gsEAMO,MAAMA,EAAO,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,UAAAC,EAAW,MAAAC,EAAO,YAAAC,EAAa,QAAAC,KAA0B,CACjG,KAAM,CAAE,SAAAC,CAAA,EAAaC,EAAA,EAErB,SACGC,EAAA,CAAY,UAAAN,EAAsB,YAAAE,EAA0B,QAASC,GAAA,YAAAA,EAAS,YAC7E,SAAAI,EAAC,MAAA,CACC,UAAWC,EACT,iDACA,CAAE,iBAAkB,CAACP,GAASG,CAAA,EAC9BD,GAAA,YAAAA,EAAS,YAAA,EAGX,SAAA,CAAAI,EAAC,OAAI,UAAWC,EAAG,wCAAyCL,GAAA,YAAAA,EAAS,WAAW,EAC9E,SAAA,CAAAM,EAACC,GAAS,UAAWF,EAAG,wBAAyBL,GAAA,YAAAA,EAAS,QAAQ,EAAG,IACpEQ,EAAA,CAAM,SAAAb,EAAoB,QAAAC,EAAkB,SAAAK,EAAoB,QAASD,GAAA,YAAAA,EAAS,MAAO,EAC1FM,EAACG,GAAK,KAAK,oBAAoB,UAAWJ,EAAG,uBAAwBL,GAAA,YAAAA,EAAS,SAAS,CAAA,CAAG,CAAA,EAC5F,EACCF,KAAUY,EAAA,CAAM,UAAWL,EAAG,oBAAqBL,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAF,CAAA,CAAM,CAAA,CAAA,CAAA,EAEhF,CAEJ"}
1
+ {"version":3,"file":"Esia.js","sources":["../../../../../lib/widgets/authProvider/ui/Esia.tsx"],"sourcesContent":["import type { TEsiaProps } from '../model/types'\nimport { AuthWrapper, EsiaLogo, Links } from './ui'\nimport { useDevice } from '$/shared/hooks'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const Esia = ({ mainLink, subLink, isLoading, badge, loaderProps, classes, onClick }: TEsiaProps) => {\n const { isMobile } = useDevice()\n\n return (\n <AuthWrapper isLoading={isLoading} loaderProps={loaderProps} classes={classes?.authWrapper}>\n <div\n className={cn(\n 'flex flex-1 items-center justify-between gap-1',\n { 'justify-center': !badge && isMobile },\n classes?.innerWrapper\n )}\n >\n <div className={cn('flex items-center gap-1 desktop:gap-4', classes?.textContent)}>\n <EsiaLogo className={cn('size-7 desktop:size-8', classes?.esiaLogo)} />\n <Links onClick={onClick} mainLink={mainLink} subLink={subLink} isMobile={isMobile} classes={classes?.links} />\n <Icon name='arrows/arrowRight' className={cn('size-6 mobile:hidden', classes?.arrowIcon)} />\n </div>\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </div>\n </AuthWrapper>\n )\n}\n"],"names":["Esia","mainLink","subLink","isLoading","badge","loaderProps","classes","onClick","isMobile","useDevice","AuthWrapper","jsxs","cn","jsx","EsiaLogo","Links","Icon","Badge"],"mappings":"gsEAMO,MAAMA,GAAO,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,UAAAC,EAAW,MAAAC,EAAO,YAAAC,EAAa,QAAAC,EAAS,QAAAC,KAA0B,CAC1G,KAAM,CAAE,SAAAC,CAAA,EAAaC,EAAA,EAErB,SACGC,EAAA,CAAY,UAAAP,EAAsB,YAAAE,EAA0B,QAASC,GAAA,YAAAA,EAAS,YAC7E,SAAAK,EAAC,MAAA,CACC,UAAWC,EACT,iDACA,CAAE,iBAAkB,CAACR,GAASI,CAAA,EAC9BF,GAAA,YAAAA,EAAS,YAAA,EAGX,SAAA,CAAAK,EAAC,OAAI,UAAWC,EAAG,wCAAyCN,GAAA,YAAAA,EAAS,WAAW,EAC9E,SAAA,CAAAO,EAACC,GAAS,UAAWF,EAAG,wBAAyBN,GAAA,YAAAA,EAAS,QAAQ,EAAG,EACrEO,EAACE,GAAM,QAAAR,EAAkB,SAAAN,EAAoB,QAAAC,EAAkB,SAAAM,EAAoB,QAASF,GAAA,YAAAA,EAAS,MAAO,EAC5GO,EAACG,GAAK,KAAK,oBAAoB,UAAWJ,EAAG,uBAAwBN,GAAA,YAAAA,EAAS,SAAS,CAAA,CAAG,CAAA,EAC5F,EACCF,KAAUa,EAAA,CAAM,UAAWL,EAAG,oBAAqBN,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAF,CAAA,CAAM,CAAA,CAAA,CAAA,EAEhF,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsx as r,jsxs as p}from"react/jsx-runtime";import{AuthWrapper as h}from"./ui/AuthWrapper.js";import{Links as x}from"./ui/Links.js";import{useDevice as N}from"../../../shared/hooks/useDevice.js";import"react";import{cn as i}from"../../../shared/utils/cn.js";import"../../../shared/ui/button/Button.js";import"../../../shared/ui/buttonIcon/ButtonIcon.js";import{Badge as u}from"../../../shared/ui/badge/Badge.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{Icon as m}from"../../../shared/ui/icon/Icon.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"../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const l=({mainLink:e,subLink:f,isLoading:g,badge:t,loaderProps:d,classes:o})=>{const{isMobile:n}=N();return r(h,{isLoading:g,loaderProps:d,classes:o==null?void 0:o.authWrapper,children:p("div",{className:i("flex flex-1 items-center justify-between gap-1",{"justify-center":!t&&n},o==null?void 0:o.innerWrapper),children:[p("div",{className:i("flex h-max items-center gap-1 desktop:gap-4",o==null?void 0:o.textContent),children:[p("div",{className:"flex h-full",children:[r(m,{name:"logos/mts",className:i("z-[9] size-8",o==null?void 0:o.mtsLogo)}),r(m,{name:"logos/megafon",className:i("z-[8] -ml-4 size-8",o==null?void 0:o.megafonLogo)}),r(m,{name:"logos/beeline",className:i("z-[7] -ml-4 size-8",o==null?void 0:o.beelineLogo)})]}),r(x,{mainLink:e,subLink:f,isMobile:n,classes:o==null?void 0:o.links}),r(m,{name:"arrows/arrowRight",className:i("size-6 mobile:hidden",o==null?void 0:o.arrowIcon)})]}),t&&r(u,{className:i("bg-color-positive",o==null?void 0:o.badge),children:t})]})})};export{l as MobileId};
1
+ import{jsx as r,jsxs as p}from"react/jsx-runtime";import{AuthWrapper as x}from"./ui/AuthWrapper.js";import{Links as N}from"./ui/Links.js";import{useDevice as u}from"../../../shared/hooks/useDevice.js";import"react";import{cn as i}from"../../../shared/utils/cn.js";import"../../../shared/ui/button/Button.js";import"../../../shared/ui/buttonIcon/ButtonIcon.js";import{Badge as z}from"../../../shared/ui/badge/Badge.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{Icon as m}from"../../../shared/ui/icon/Icon.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"../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const c=({mainLink:e,subLink:f,isLoading:g,badge:t,loaderProps:d,classes:o,onClick:h})=>{const{isMobile:n}=u();return r(x,{isLoading:g,loaderProps:d,classes:o==null?void 0:o.authWrapper,children:p("div",{className:i("flex flex-1 items-center justify-between gap-1",{"justify-center":!t&&n},o==null?void 0:o.innerWrapper),children:[p("div",{className:i("flex h-max items-center gap-1 desktop:gap-4",o==null?void 0:o.textContent),children:[p("div",{className:"flex h-full",children:[r(m,{name:"logos/mts",className:i("z-[9] size-8",o==null?void 0:o.mtsLogo)}),r(m,{name:"logos/megafon",className:i("z-[8] -ml-4 size-8",o==null?void 0:o.megafonLogo)}),r(m,{name:"logos/beeline",className:i("z-[7] -ml-4 size-8",o==null?void 0:o.beelineLogo)})]}),r(N,{onClick:h,mainLink:e,subLink:f,isMobile:n,classes:o==null?void 0:o.links}),r(m,{name:"arrows/arrowRight",className:i("size-6 mobile:hidden",o==null?void 0:o.arrowIcon)})]}),t&&r(z,{className:i("bg-color-positive",o==null?void 0:o.badge),children:t})]})})};export{c as MobileId};
2
2
  //# sourceMappingURL=MobileId.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MobileId.js","sources":["../../../../../lib/widgets/authProvider/ui/MobileId.tsx"],"sourcesContent":["import { type TMobileIdProps } from '../model/types'\nimport { AuthWrapper, Links } from './ui/'\nimport { useDevice } from '$/shared/hooks'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const MobileId = ({ mainLink, subLink, isLoading, badge, loaderProps, classes }: TMobileIdProps) => {\n const { isMobile } = useDevice()\n\n return (\n <AuthWrapper isLoading={isLoading} loaderProps={loaderProps} classes={classes?.authWrapper}>\n <div\n className={cn(\n 'flex flex-1 items-center justify-between gap-1',\n { 'justify-center': !badge && isMobile },\n classes?.innerWrapper\n )}\n >\n <div className={cn('flex h-max items-center gap-1 desktop:gap-4', classes?.textContent)}>\n <div className='flex h-full'>\n <Icon name='logos/mts' className={cn('z-[9] size-8', classes?.mtsLogo)} />\n <Icon name='logos/megafon' className={cn('z-[8] -ml-4 size-8', classes?.megafonLogo)} />\n <Icon name='logos/beeline' className={cn('z-[7] -ml-4 size-8', classes?.beelineLogo)} />\n </div>\n <Links mainLink={mainLink} subLink={subLink} isMobile={isMobile} classes={classes?.links} />\n <Icon name='arrows/arrowRight' className={cn('size-6 mobile:hidden', classes?.arrowIcon)} />\n </div>\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </div>\n </AuthWrapper>\n )\n}\n"],"names":["MobileId","mainLink","subLink","isLoading","badge","loaderProps","classes","isMobile","useDevice","AuthWrapper","jsxs","cn","jsx","Icon","Links","Badge"],"mappings":"opEAMO,MAAMA,EAAW,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,UAAAC,EAAW,MAAAC,EAAO,YAAAC,EAAa,QAAAC,KAA8B,CACzG,KAAM,CAAE,SAAAC,CAAA,EAAaC,EAAA,EAErB,SACGC,EAAA,CAAY,UAAAN,EAAsB,YAAAE,EAA0B,QAASC,GAAA,YAAAA,EAAS,YAC7E,SAAAI,EAAC,MAAA,CACC,UAAWC,EACT,iDACA,CAAE,iBAAkB,CAACP,GAASG,CAAA,EAC9BD,GAAA,YAAAA,EAAS,YAAA,EAGX,SAAA,CAAAI,EAAC,OAAI,UAAWC,EAAG,8CAA+CL,GAAA,YAAAA,EAAS,WAAW,EACpF,SAAA,CAAAI,EAAC,MAAA,CAAI,UAAU,cACb,SAAA,CAAAE,EAACC,EAAA,CAAK,KAAK,YAAY,UAAWF,EAAG,eAAgBL,GAAA,YAAAA,EAAS,OAAO,EAAG,EACxEM,EAACC,GAAK,KAAK,gBAAgB,UAAWF,EAAG,qBAAsBL,GAAA,YAAAA,EAAS,WAAW,EAAG,EACtFM,EAACC,GAAK,KAAK,gBAAgB,UAAWF,EAAG,qBAAsBL,GAAA,YAAAA,EAAS,WAAW,CAAA,CAAG,CAAA,EACxF,IACCQ,EAAA,CAAM,SAAAb,EAAoB,QAAAC,EAAkB,SAAAK,EAAoB,QAASD,GAAA,YAAAA,EAAS,MAAO,EAC1FM,EAACC,GAAK,KAAK,oBAAoB,UAAWF,EAAG,uBAAwBL,GAAA,YAAAA,EAAS,SAAS,CAAA,CAAG,CAAA,EAC5F,EACCF,KAAUW,EAAA,CAAM,UAAWJ,EAAG,oBAAqBL,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAF,CAAA,CAAM,CAAA,CAAA,CAAA,EAEhF,CAEJ"}
1
+ {"version":3,"file":"MobileId.js","sources":["../../../../../lib/widgets/authProvider/ui/MobileId.tsx"],"sourcesContent":["import { type TMobileIdProps } from '../model/types'\nimport { AuthWrapper, Links } from './ui/'\nimport { useDevice } from '$/shared/hooks'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport const MobileId = ({ mainLink, subLink, isLoading, badge, loaderProps, classes, onClick }: TMobileIdProps) => {\n const { isMobile } = useDevice()\n\n return (\n <AuthWrapper isLoading={isLoading} loaderProps={loaderProps} classes={classes?.authWrapper}>\n <div\n className={cn(\n 'flex flex-1 items-center justify-between gap-1',\n { 'justify-center': !badge && isMobile },\n classes?.innerWrapper\n )}\n >\n <div className={cn('flex h-max items-center gap-1 desktop:gap-4', classes?.textContent)}>\n <div className='flex h-full'>\n <Icon name='logos/mts' className={cn('z-[9] size-8', classes?.mtsLogo)} />\n <Icon name='logos/megafon' className={cn('z-[8] -ml-4 size-8', classes?.megafonLogo)} />\n <Icon name='logos/beeline' className={cn('z-[7] -ml-4 size-8', classes?.beelineLogo)} />\n </div>\n <Links onClick={onClick} mainLink={mainLink} subLink={subLink} isMobile={isMobile} classes={classes?.links} />\n <Icon name='arrows/arrowRight' className={cn('size-6 mobile:hidden', classes?.arrowIcon)} />\n </div>\n {badge && <Badge className={cn('bg-color-positive', classes?.badge)}>{badge}</Badge>}\n </div>\n </AuthWrapper>\n )\n}\n"],"names":["MobileId","mainLink","subLink","isLoading","badge","loaderProps","classes","onClick","isMobile","useDevice","AuthWrapper","jsxs","cn","jsx","Icon","Links","Badge"],"mappings":"opEAMO,MAAMA,EAAW,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,UAAAC,EAAW,MAAAC,EAAO,YAAAC,EAAa,QAAAC,EAAS,QAAAC,KAA8B,CAClH,KAAM,CAAE,SAAAC,CAAA,EAAaC,EAAA,EAErB,SACGC,EAAA,CAAY,UAAAP,EAAsB,YAAAE,EAA0B,QAASC,GAAA,YAAAA,EAAS,YAC7E,SAAAK,EAAC,MAAA,CACC,UAAWC,EACT,iDACA,CAAE,iBAAkB,CAACR,GAASI,CAAA,EAC9BF,GAAA,YAAAA,EAAS,YAAA,EAGX,SAAA,CAAAK,EAAC,OAAI,UAAWC,EAAG,8CAA+CN,GAAA,YAAAA,EAAS,WAAW,EACpF,SAAA,CAAAK,EAAC,MAAA,CAAI,UAAU,cACb,SAAA,CAAAE,EAACC,EAAA,CAAK,KAAK,YAAY,UAAWF,EAAG,eAAgBN,GAAA,YAAAA,EAAS,OAAO,EAAG,EACxEO,EAACC,GAAK,KAAK,gBAAgB,UAAWF,EAAG,qBAAsBN,GAAA,YAAAA,EAAS,WAAW,EAAG,EACtFO,EAACC,GAAK,KAAK,gBAAgB,UAAWF,EAAG,qBAAsBN,GAAA,YAAAA,EAAS,WAAW,CAAA,CAAG,CAAA,EACxF,EACAO,EAACE,GAAM,QAAAR,EAAkB,SAAAN,EAAoB,QAAAC,EAAkB,SAAAM,EAAoB,QAASF,GAAA,YAAAA,EAAS,MAAO,EAC5GO,EAACC,GAAK,KAAK,oBAAoB,UAAWF,EAAG,uBAAwBN,GAAA,YAAAA,EAAS,SAAS,CAAA,CAAG,CAAA,EAC5F,EACCF,KAAUY,EAAA,CAAM,UAAWJ,EAAG,oBAAqBN,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAF,CAAA,CAAM,CAAA,CAAA,CAAA,EAEhF,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsx as o}from"react/jsx-runtime";import{cn as i}from"../../../../shared/utils/cn.js";import"../../../../shared/ui/button/Button.js";import"../../../../shared/ui/buttonIcon/ButtonIcon.js";import{Loader as e}from"../../../../shared/ui/loader/Loader.js";import"../../../../shared/ui/calendar/Calendar.js";import"../../../../shared/ui/calendar/model/utils.js";import"../../../../shared/ui/accordion/Accordion.js";import"react";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"../../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const L=({children:p,isLoading:t,classes:r,loaderProps:m})=>o("div",{tabIndex:0,className:i("relative flex h-[90px] w-full max-w-[328px] items-center justify-center rounded-sm p-2 desktop:max-w-[524px]","bg-color-white outline outline-1 outline-warm-grey-200 transition-colors focus-visible:outline-primary-focus",r==null?void 0:r.root),children:o("div",{className:i("flex h-[74px] flex-1 cursor-pointer rounded-sm px-2 py-3 transition-colors desktop:px-4 desktop:py-3","bg-color-blue-grey-100 hover:bg-color-blue-grey-200 active:bg-color-blue-grey-300",{"items-center":t},r==null?void 0:r.wrapper),children:t?o(e,{position:"static",classes:{wrapper:"size-8 m-auto"},...m}):p})});export{L as AuthWrapper};
1
+ import{jsx as o}from"react/jsx-runtime";import{cn as i}from"../../../../shared/utils/cn.js";import"../../../../shared/ui/button/Button.js";import"../../../../shared/ui/buttonIcon/ButtonIcon.js";import{Loader as n}from"../../../../shared/ui/loader/Loader.js";import"../../../../shared/ui/calendar/Calendar.js";import"../../../../shared/ui/calendar/model/utils.js";import"../../../../shared/ui/accordion/Accordion.js";import"react";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"../../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const M=({children:p,isLoading:t,classes:r,loaderProps:m,...e})=>o("div",{...e,role:"button",tabIndex:0,className:i("relative flex h-[90px] w-full max-w-[328px] items-center justify-center rounded-sm p-2 desktop:max-w-[524px]","bg-color-white outline outline-1 outline-warm-grey-200 transition-colors focus-visible:outline-primary-focus",r==null?void 0:r.root),children:o("div",{className:i("flex h-[74px] flex-1 cursor-pointer rounded-sm px-2 py-3 transition-colors desktop:px-4 desktop:py-3","bg-color-blue-grey-100 hover:bg-color-blue-grey-200 active:bg-color-blue-grey-300",{"items-center":t},r==null?void 0:r.wrapper),children:t?o(n,{position:"static",classes:{wrapper:"size-8 m-auto"},...m}):p})});export{M as AuthWrapper};
2
2
  //# sourceMappingURL=AuthWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthWrapper.js","sources":["../../../../../../lib/widgets/authProvider/ui/ui/AuthWrapper.tsx"],"sourcesContent":["import { Loader, type LoaderProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type AuthWrapperClasses = {\n root?: string\n wrapper?: string\n}\n\nexport interface AuthWrapperProps {\n children: React.ReactElement\n classes?: AuthWrapperClasses\n isLoading?: boolean\n loaderProps?: LoaderProps\n}\n\nexport const AuthWrapper = ({ children, isLoading, classes, loaderProps }: AuthWrapperProps) => {\n return (\n <div\n tabIndex={0}\n className={cn(\n 'relative flex h-[90px] w-full max-w-[328px] items-center justify-center rounded-sm p-2 desktop:max-w-[524px]',\n 'bg-color-white outline outline-1 outline-warm-grey-200 transition-colors focus-visible:outline-primary-focus',\n classes?.root\n )}\n >\n <div\n className={cn(\n 'flex h-[74px] flex-1 cursor-pointer rounded-sm px-2 py-3 transition-colors desktop:px-4 desktop:py-3',\n 'bg-color-blue-grey-100 hover:bg-color-blue-grey-200 active:bg-color-blue-grey-300',\n { 'items-center': isLoading },\n classes?.wrapper\n )}\n >\n {isLoading ? <Loader position='static' classes={{ wrapper: 'size-8 m-auto' }} {...loaderProps} /> : children}\n </div>\n </div>\n )\n}\n"],"names":["AuthWrapper","children","isLoading","classes","loaderProps","jsx","cn","Loader"],"mappings":"shEAeO,MAAMA,EAAc,CAAC,CAAE,SAAAC,EAAU,UAAAC,EAAW,QAAAC,EAAS,YAAAC,KAExDC,EAAC,MAAA,CACC,SAAU,EACV,UAAWC,EACT,+GACA,+GACAH,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAAE,EAAC,MAAA,CACC,UAAWC,EACT,uGACA,oFACA,CAAE,eAAgBJ,CAAA,EAClBC,GAAA,YAAAA,EAAS,OAAA,EAGV,SAAAD,EAAYG,EAACE,EAAA,CAAO,SAAS,SAAS,QAAS,CAAE,QAAS,eAAA,EAAoB,GAAGH,CAAA,CAAa,EAAKH,CAAA,CAAA,CACtG,CAAA"}
1
+ {"version":3,"file":"AuthWrapper.js","sources":["../../../../../../lib/widgets/authProvider/ui/ui/AuthWrapper.tsx"],"sourcesContent":["import { Loader, type LoaderProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type AuthWrapperClasses = {\n root?: string\n wrapper?: string\n}\n\nexport interface AuthWrapperProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactElement\n classes?: AuthWrapperClasses\n isLoading?: boolean\n loaderProps?: LoaderProps\n}\n\nexport const AuthWrapper = ({ children, isLoading, classes, loaderProps, ...props }: AuthWrapperProps) => {\n return (\n <div\n {...props}\n role='button'\n tabIndex={0}\n className={cn(\n 'relative flex h-[90px] w-full max-w-[328px] items-center justify-center rounded-sm p-2 desktop:max-w-[524px]',\n 'bg-color-white outline outline-1 outline-warm-grey-200 transition-colors focus-visible:outline-primary-focus',\n classes?.root\n )}\n >\n <div\n className={cn(\n 'flex h-[74px] flex-1 cursor-pointer rounded-sm px-2 py-3 transition-colors desktop:px-4 desktop:py-3',\n 'bg-color-blue-grey-100 hover:bg-color-blue-grey-200 active:bg-color-blue-grey-300',\n { 'items-center': isLoading },\n classes?.wrapper\n )}\n >\n {isLoading ? <Loader position='static' classes={{ wrapper: 'size-8 m-auto' }} {...loaderProps} /> : children}\n </div>\n </div>\n )\n}\n"],"names":["AuthWrapper","children","isLoading","classes","loaderProps","props","jsx","cn","Loader"],"mappings":"shEAeO,MAAMA,EAAc,CAAC,CAAE,SAAAC,EAAU,UAAAC,EAAW,QAAAC,EAAS,YAAAC,EAAa,GAAGC,KAExEC,EAAC,MAAA,CACE,GAAGD,EACJ,KAAK,SACL,SAAU,EACV,UAAWE,EACT,+GACA,+GACAJ,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAAG,EAAC,MAAA,CACC,UAAWC,EACT,uGACA,oFACA,CAAE,eAAgBL,CAAA,EAClBC,GAAA,YAAAA,EAAS,OAAA,EAGV,SAAAD,EAAYI,EAACE,EAAA,CAAO,SAAS,SAAS,QAAS,CAAE,QAAS,eAAA,EAAoB,GAAGJ,CAAA,CAAa,EAAKH,CAAA,CAAA,CACtG,CAAA"}
@@ -1,2 +1,2 @@
1
- import{jsxs as i,jsx as m}from"react/jsx-runtime";import{cn as e}from"../../../../shared/utils/cn.js";import"../../../../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";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{CustomLink as f}from"../../../../shared/ui/customLink/CustomLink.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"../../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const P=({mainLink:o,subLink:r,isMobile:p,classes:t})=>i("div",{className:e("flex flex-col",t==null?void 0:t.linksWrapper),children:[m("a",{href:o.href,target:"_blank",rel:"noreferrer",className:e('before:content=[" "] desk-body-medium-l z-[4] text-color-dark before:absolute before:left-1/2 before:top-1/2 before:h-full before:w-full before:-translate-x-1/2 before:-translate-y-1/2',t==null?void 0:t.linksMainLink),children:p?o.mobileTitle:o.title}),(r==null?void 0:r.text)&&(r==null?void 0:r.href)&&m(f,{intent:"blue",withUnderline:!0,href:r==null?void 0:r.href,target:"_blank",rel:"noreferrer",classes:{link:e("w-max relative z-[6] p-0 desk-body-regular-m text-color-tetriary",t==null?void 0:t.linksSubLink)},children:r==null?void 0:r.text})]});export{P as Links};
1
+ import{jsxs as f,jsx as m}from"react/jsx-runtime";import{cn as o}from"../../../../shared/utils/cn.js";import"../../../../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";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{CustomLink as l}from"../../../../shared/ui/customLink/CustomLink.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"../../../../shared/ui/formElements/controlled/editor/ui/Editor.js";import"../../../../shared/ui/formElements/controlled/input/MaskInputControl.js";import"../../../../shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js";const Q=({mainLink:e,subLink:r,isMobile:p,classes:t,...i})=>f("div",{className:o("flex flex-col",t==null?void 0:t.linksWrapper),children:[m("button",{...i,type:"button",className:o('before:content=[" "] desk-body-medium-l z-[4] text-color-dark before:absolute before:left-1/2 before:top-1/2 before:h-full before:w-full before:-translate-x-1/2 before:-translate-y-1/2',t==null?void 0:t.linksMainLink),children:p?e.mobileTitle:e.title}),(r==null?void 0:r.text)&&(r==null?void 0:r.href)&&m(l,{intent:"blue",withUnderline:!0,href:r==null?void 0:r.href,target:"_blank",rel:"noreferrer",classes:{link:o("w-max relative z-[6] p-0 desk-body-regular-m text-color-tetriary",t==null?void 0:t.linksSubLink)},children:r==null?void 0:r.text})]});export{Q as Links};
2
2
  //# sourceMappingURL=Links.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Links.js","sources":["../../../../../../lib/widgets/authProvider/ui/ui/Links.tsx"],"sourcesContent":["import type { SingleAuthSchema } from '../../model/types'\nimport { CustomLink } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type TLinksClasses = {\n linksWrapper?: string\n linksMainLink?: string\n linksSubLink?: string\n}\n\ninterface ILinksProps extends Pick<SingleAuthSchema, 'subLink' | 'mainLink'> {\n isMobile: boolean\n classes?: TLinksClasses\n}\n\nexport const Links = ({ mainLink, subLink, isMobile, classes }: ILinksProps) => {\n return (\n <div className={cn('flex flex-col', classes?.linksWrapper)}>\n <a\n href={mainLink.href}\n target='_blank'\n rel='noreferrer'\n className={cn(\n 'before:content=[\" \"] desk-body-medium-l z-[4] text-color-dark before:absolute before:left-1/2 before:top-1/2 before:h-full before:w-full before:-translate-x-1/2 before:-translate-y-1/2',\n classes?.linksMainLink\n )}\n >\n {isMobile ? mainLink.mobileTitle : mainLink.title}\n </a>\n\n {subLink?.text && subLink?.href && (\n <CustomLink\n intent='blue'\n withUnderline\n href={subLink?.href}\n target='_blank'\n rel='noreferrer'\n classes={{\n link: cn('w-max relative z-[6] p-0 desk-body-regular-m text-color-tetriary', classes?.linksSubLink)\n }}\n >\n {subLink?.text}\n </CustomLink>\n )}\n </div>\n )\n}\n"],"names":["Links","mainLink","subLink","isMobile","classes","cn","jsx","CustomLink"],"mappings":"4iEAeO,MAAMA,EAAQ,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,SAAAC,EAAU,QAAAC,OAEhD,MAAA,CAAI,UAAWC,EAAG,gBAAiBD,GAAA,YAAAA,EAAS,YAAY,EACvD,SAAA,CAAAE,EAAC,IAAA,CACC,KAAML,EAAS,KACf,OAAO,SACP,IAAI,aACJ,UAAWI,EACT,2LACAD,GAAA,YAAAA,EAAS,aAAA,EAGV,SAAAD,EAAWF,EAAS,YAAcA,EAAS,KAAA,CAAA,GAG7CC,GAAA,YAAAA,EAAS,QAAQA,GAAA,YAAAA,EAAS,OACzBI,EAACC,EAAA,CACC,OAAO,OACP,cAAa,GACb,KAAML,GAAA,YAAAA,EAAS,KACf,OAAO,SACP,IAAI,aACJ,QAAS,CACP,KAAMG,EAAG,mEAAoED,GAAA,YAAAA,EAAS,YAAY,CAAA,EAGnG,SAAAF,GAAA,YAAAA,EAAS,IAAA,CAAA,CACZ,EAEJ"}
1
+ {"version":3,"file":"Links.js","sources":["../../../../../../lib/widgets/authProvider/ui/ui/Links.tsx"],"sourcesContent":["import type { SingleAuthSchema } from '../../model/types'\nimport { CustomLink } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type TLinksClasses = {\n linksWrapper?: string\n linksMainLink?: string\n linksSubLink?: string\n}\n\ninterface ILinksProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, Pick<SingleAuthSchema, 'subLink' | 'mainLink'> {\n isMobile: boolean\n classes?: TLinksClasses\n}\n\nexport const Links = ({ mainLink, subLink, isMobile, classes, ...props }: ILinksProps) => {\n return (\n <div className={cn('flex flex-col', classes?.linksWrapper)}>\n <button\n {...props}\n type='button'\n className={cn(\n 'before:content=[\" \"] desk-body-medium-l z-[4] text-color-dark before:absolute before:left-1/2 before:top-1/2 before:h-full before:w-full before:-translate-x-1/2 before:-translate-y-1/2',\n classes?.linksMainLink\n )}\n >\n {isMobile ? mainLink.mobileTitle : mainLink.title}\n </button>\n\n {subLink?.text && subLink?.href && (\n <CustomLink\n intent='blue'\n withUnderline\n href={subLink?.href}\n target='_blank'\n rel='noreferrer'\n classes={{\n link: cn('w-max relative z-[6] p-0 desk-body-regular-m text-color-tetriary', classes?.linksSubLink)\n }}\n >\n {subLink?.text}\n </CustomLink>\n )}\n </div>\n )\n}\n"],"names":["Links","mainLink","subLink","isMobile","classes","props","cn","jsx","CustomLink"],"mappings":"4iEAeO,MAAMA,EAAQ,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,GAAGC,OAE5D,MAAA,CAAI,UAAWC,EAAG,gBAAiBF,GAAA,YAAAA,EAAS,YAAY,EACvD,SAAA,CAAAG,EAAC,SAAA,CACE,GAAGF,EACJ,KAAK,SACL,UAAWC,EACT,2LACAF,GAAA,YAAAA,EAAS,aAAA,EAGV,SAAAD,EAAWF,EAAS,YAAcA,EAAS,KAAA,CAAA,GAG7CC,GAAA,YAAAA,EAAS,QAAQA,GAAA,YAAAA,EAAS,OACzBK,EAACC,EAAA,CACC,OAAO,OACP,cAAa,GACb,KAAMN,GAAA,YAAAA,EAAS,KACf,OAAO,SACP,IAAI,aACJ,QAAS,CACP,KAAMI,EAAG,mEAAoEF,GAAA,YAAAA,EAAS,YAAY,CAAA,EAGnG,SAAAF,GAAA,YAAAA,EAAS,IAAA,CAAA,CACZ,EAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsxs as i,jsx as e}from"react/jsx-runtime";import{cva as l}from"../../../../node_modules/class-variance-authority/dist/index.js";import{useDevice as y}from"../../../shared/hooks/useDevice.js";import"react";import{cn as t}from"../../../shared/utils/cn.js";import{TypeGuards as h}from"../../../shared/utils/typeGuards.js";import{ButtonWithHandlers as v}from"../../buttonWithHandlers/ButtonWithHandlers.js";const b=l("flex flex-col justify-between overflow-hidden rounded-md bg-color-blue-grey-100 py-6 desktop:flex-row desktop:px-0 desktop:py-0",{variants:{variant:{twoCards:"",threeCards:"desktop:first:col-span-full",fourCards:"desktop:first:col-span-2 desktop:last:col-span-2"}}}),F=({subtitle:m,title:n,img:o,mobileImg:p,classes:r,withButton:x,button:d,variant:u,color:k})=>{const{isDesktop:f}=y();return i("li",{style:{backgroundColor:k??"#F3F4F7"},className:t(b({variant:u}),{"pb-0":p},{"pb-12":!p},r==null?void 0:r.root),children:[i("div",{className:t("flex flex-col items-start justify-between px-4 desktop:px-8 desktop:py-8",r==null?void 0:r.wrapper),children:[i("div",{className:t("flex flex-col gap-4",r==null?void 0:r.textContainer),children:[e("div",{dangerouslySetInnerHTML:{__html:n},className:t("desktop:desk-title-bold-s",r==null?void 0:r.title)}),e("div",{dangerouslySetInnerHTML:{__html:m},className:t("mob-body-regular-l text-icon-blue-grey-800 desktop:desk-body-regular-l",r==null?void 0:r.subtitle)})]}),x&&f&&(d==null?void 0:d.handlerOptions)&&e(v,{intent:"primary",className:t("desktop:w-[200px]",r==null?void 0:r.button),size:"lg",...d})]}),(p||f)&&o&&e("div",{className:t("flex w-full justify-end",r==null?void 0:r.imgContainer),children:o&&"url"in o&&h.isObject(o)?e("img",{className:t("h-[246px] object-cover",r==null?void 0:r.img),src:o.url,alt:o.alt}):o})]},n)};export{F as BenefitItem};
1
+ import{jsxs as e,jsx as p}from"react/jsx-runtime";import{cva as y}from"../../../../node_modules/class-variance-authority/dist/index.js";import{useDevice as l}from"../../../shared/hooks/useDevice.js";import"react";import{cn as t}from"../../../shared/utils/cn.js";import{TypeGuards as h}from"../../../shared/utils/typeGuards.js";import{ButtonWithHandlers as v}from"../../buttonWithHandlers/ButtonWithHandlers.js";const w=y("flex flex-col justify-between overflow-hidden rounded-md bg-color-blue-grey-100 py-6 desktop:flex-row desktop:px-0 desktop:py-0",{variants:{variant:{twoCards:"",threeCards:"desktop:first:col-span-full",fourCards:"desktop:first:col-span-2 desktop:last:col-span-2"}}}),H=({subtitle:m,title:n,img:o,classes:r,button:d,variant:x,color:u,enabledMobileButton:k,enabledMobileImage:i})=>{const{isDesktop:f}=l();return e("li",{style:{backgroundColor:u??"#F3F4F7"},className:t(w({variant:x}),{"pb-0":i},{"pb-12":!i},r==null?void 0:r.root),children:[e("div",{className:t("flex flex-col items-start justify-between px-4 desktop:px-8 desktop:py-8",r==null?void 0:r.wrapper),children:[e("div",{className:t("flex flex-col gap-4",r==null?void 0:r.textContainer),children:[p("div",{dangerouslySetInnerHTML:{__html:n},className:t("desktop:desk-title-bold-s",r==null?void 0:r.title)}),p("div",{dangerouslySetInnerHTML:{__html:m},className:t("mob-body-regular-l text-icon-blue-grey-800 desktop:desk-body-regular-l",r==null?void 0:r.subtitle)})]}),k&&f&&(d==null?void 0:d.handlerOptions)&&p(v,{intent:"primary",className:t("desktop:w-[200px]",r==null?void 0:r.button),size:"lg",...d})]}),(i||f)&&o&&p("div",{className:t("flex w-full justify-end",r==null?void 0:r.imgContainer),children:o&&"url"in o&&h.isObject(o)?p("img",{className:t("h-[246px] object-cover",r==null?void 0:r.img),src:o.url,alt:o.alt}):o})]},n)};export{H as BenefitItem};
2
2
  //# sourceMappingURL=BenefitItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BenefitItem.js","sources":["../../../../../lib/widgets/benefit/ui/BenefitItem.tsx"],"sourcesContent":["import { type ReactElement } from 'react'\nimport { cva } from 'class-variance-authority'\nimport { type BackgroundBenefitColorsValues } from '../model/constants'\nimport { useDevice } from '$/shared/hooks'\nimport { cn, TypeGuards } from '$/shared/utils'\nimport { type Img } from '$/widgets/benefit/model/types'\nimport { ButtonWithHandlers, type ButtonWithHandlersProps } from '$/widgets/buttonWithHandlers'\n\nexport type BenefitItemClasses = {\n root?: string\n button?: string\n wrapper?: string\n textContainer?: string\n subtitle?: string\n img?: string\n imgContainer?: string\n title?: string\n}\n\nconst itemConfig = cva(\n 'flex flex-col justify-between overflow-hidden rounded-md bg-color-blue-grey-100 py-6 desktop:flex-row desktop:px-0 desktop:py-0',\n {\n variants: {\n variant: {\n twoCards: '',\n threeCards: 'desktop:first:col-span-full',\n fourCards: 'desktop:first:col-span-2 desktop:last:col-span-2'\n }\n }\n }\n)\n\nexport interface BenefitItemProps {\n title: string\n subtitle: string\n img?: ReactElement | Img\n mobileImg?: boolean\n classes?: BenefitItemClasses\n withButton?: boolean\n button?: ButtonWithHandlersProps\n variant?: 'twoCards' | 'threeCards' | 'fourCards'\n color?: BackgroundBenefitColorsValues\n}\n\nexport const BenefitItem = ({\n subtitle,\n title,\n img,\n mobileImg,\n classes,\n withButton,\n button,\n variant,\n color\n}: BenefitItemProps) => {\n const { isDesktop } = useDevice()\n\n return (\n <li\n key={title}\n style={{ backgroundColor: color ?? '#F3F4F7' }}\n className={cn(itemConfig({ variant }), { 'pb-0': mobileImg }, { 'pb-12': !mobileImg }, classes?.root)}\n >\n <div className={cn('flex flex-col items-start justify-between px-4 desktop:px-8 desktop:py-8', classes?.wrapper)}>\n <div className={cn('flex flex-col gap-4', classes?.textContainer)}>\n <div dangerouslySetInnerHTML={{ __html: title }} className={cn('desktop:desk-title-bold-s', classes?.title)} />\n <div\n dangerouslySetInnerHTML={{ __html: subtitle }}\n className={cn('mob-body-regular-l text-icon-blue-grey-800 desktop:desk-body-regular-l', classes?.subtitle)}\n />\n </div>\n\n {withButton && isDesktop && button?.handlerOptions && (\n <ButtonWithHandlers intent='primary' className={cn('desktop:w-[200px]', classes?.button)} size='lg' {...button} />\n )}\n </div>\n\n {(mobileImg || isDesktop) && img && (\n <div className={cn('flex w-full justify-end', classes?.imgContainer)}>\n {img && 'url' in img && TypeGuards.isObject(img) ? (\n <img className={cn('h-[246px] object-cover', classes?.img)} src={img.url} alt={img.alt} />\n ) : (\n img\n )}\n </div>\n )}\n </li>\n )\n}\n"],"names":["itemConfig","cva","BenefitItem","subtitle","title","img","mobileImg","classes","withButton","button","variant","color","isDesktop","useDevice","jsxs","cn","jsx","ButtonWithHandlers","TypeGuards"],"mappings":"2ZAmBA,MAAMA,EAAaC,EACjB,kIACA,CACE,SAAU,CACR,QAAS,CACP,SAAU,GACV,WAAY,8BACZ,UAAW,kDAAA,CACb,CACF,CAEJ,EAcaC,EAAc,CAAC,CAC1B,SAAAC,EACA,MAAAC,EACA,IAAAC,EACA,UAAAC,EACA,QAAAC,EACA,WAAAC,EACA,OAAAC,EACA,QAAAC,EACA,MAAAC,CACF,IAAwB,CACtB,KAAM,CAAE,UAAAC,CAAA,EAAcC,EAAA,EAEtB,OACEC,EAAC,KAAA,CAEC,MAAO,CAAE,gBAAiBH,GAAS,SAAA,EACnC,UAAWI,EAAGf,EAAW,CAAE,QAAAU,CAAA,CAAS,EAAG,CAAE,OAAQJ,CAAA,EAAa,CAAE,QAAS,CAACA,CAAA,EAAaC,GAAA,YAAAA,EAAS,IAAI,EAEpG,SAAA,CAAAO,EAAC,OAAI,UAAWC,EAAG,2EAA4ER,GAAA,YAAAA,EAAS,OAAO,EAC7G,SAAA,CAAAO,EAAC,OAAI,UAAWC,EAAG,sBAAuBR,GAAA,YAAAA,EAAS,aAAa,EAC9D,SAAA,CAAAS,EAAC,MAAA,CAAI,wBAAyB,CAAE,OAAQZ,CAAA,EAAS,UAAWW,EAAG,4BAA6BR,GAAA,YAAAA,EAAS,KAAK,CAAA,CAAG,EAC7GS,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQb,CAAA,EACnC,UAAWY,EAAG,yEAA0ER,GAAA,YAAAA,EAAS,QAAQ,CAAA,CAAA,CAC3G,EACF,EAECC,GAAcI,IAAaH,GAAA,YAAAA,EAAQ,iBAClCO,EAACC,GAAmB,OAAO,UAAU,UAAWF,EAAG,oBAAqBR,GAAA,YAAAA,EAAS,MAAM,EAAG,KAAK,KAAM,GAAGE,CAAA,CAAQ,CAAA,EAEpH,GAEEH,GAAaM,IAAcP,GAC3BW,EAAC,OAAI,UAAWD,EAAG,0BAA2BR,GAAA,YAAAA,EAAS,YAAY,EAChE,SAAAF,GAAO,QAASA,GAAOa,EAAW,SAASb,CAAG,EAC7CW,EAAC,MAAA,CAAI,UAAWD,EAAG,yBAA0BR,GAAA,YAAAA,EAAS,GAAG,EAAG,IAAKF,EAAI,IAAK,IAAKA,EAAI,GAAA,CAAK,EAExFA,CAAA,CAEJ,CAAA,CAAA,EAzBGD,CAAA,CA6BX"}
1
+ {"version":3,"file":"BenefitItem.js","sources":["../../../../../lib/widgets/benefit/ui/BenefitItem.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority'\nimport { type Details } from '../model/types'\nimport { useDevice } from '$/shared/hooks'\nimport { cn, TypeGuards } from '$/shared/utils'\nimport { ButtonWithHandlers } from '$/widgets/buttonWithHandlers'\n\nexport type BenefitItemClasses = {\n root?: string\n button?: string\n wrapper?: string\n textContainer?: string\n subtitle?: string\n img?: string\n imgContainer?: string\n title?: string\n}\n\nconst itemConfig = cva(\n 'flex flex-col justify-between overflow-hidden rounded-md bg-color-blue-grey-100 py-6 desktop:flex-row desktop:px-0 desktop:py-0',\n {\n variants: {\n variant: {\n twoCards: '',\n threeCards: 'desktop:first:col-span-full',\n fourCards: 'desktop:first:col-span-2 desktop:last:col-span-2'\n }\n }\n }\n)\n\nexport interface BenefitItemProps extends Details {\n classes?: BenefitItemClasses\n variant?: 'twoCards' | 'threeCards' | 'fourCards'\n}\n\nexport const BenefitItem = ({\n subtitle,\n title,\n img,\n classes,\n button,\n variant,\n color,\n enabledMobileButton,\n enabledMobileImage\n}: BenefitItemProps) => {\n const { isDesktop } = useDevice()\n\n return (\n <li\n key={title}\n style={{ backgroundColor: color ?? '#F3F4F7' }}\n className={cn(itemConfig({ variant }), { 'pb-0': enabledMobileImage }, { 'pb-12': !enabledMobileImage }, classes?.root)}\n >\n <div className={cn('flex flex-col items-start justify-between px-4 desktop:px-8 desktop:py-8', classes?.wrapper)}>\n <div className={cn('flex flex-col gap-4', classes?.textContainer)}>\n <div dangerouslySetInnerHTML={{ __html: title }} className={cn('desktop:desk-title-bold-s', classes?.title)} />\n <div\n dangerouslySetInnerHTML={{ __html: subtitle }}\n className={cn('mob-body-regular-l text-icon-blue-grey-800 desktop:desk-body-regular-l', classes?.subtitle)}\n />\n </div>\n\n {enabledMobileButton && isDesktop && button?.handlerOptions && (\n <ButtonWithHandlers intent='primary' className={cn('desktop:w-[200px]', classes?.button)} size='lg' {...button} />\n )}\n </div>\n\n {(enabledMobileImage || isDesktop) && img && (\n <div className={cn('flex w-full justify-end', classes?.imgContainer)}>\n {img && 'url' in img && TypeGuards.isObject(img) ? (\n <img className={cn('h-[246px] object-cover', classes?.img)} src={img.url} alt={img.alt} />\n ) : (\n img\n )}\n </div>\n )}\n </li>\n )\n}\n"],"names":["itemConfig","cva","BenefitItem","subtitle","title","img","classes","button","variant","color","enabledMobileButton","enabledMobileImage","isDesktop","useDevice","jsxs","cn","jsx","ButtonWithHandlers","TypeGuards"],"mappings":"2ZAiBA,MAAMA,EAAaC,EACjB,kIACA,CACE,SAAU,CACR,QAAS,CACP,SAAU,GACV,WAAY,8BACZ,UAAW,kDAAA,CACb,CACF,CAEJ,EAOaC,EAAc,CAAC,CAC1B,SAAAC,EACA,MAAAC,EACA,IAAAC,EACA,QAAAC,EACA,OAAAC,EACA,QAAAC,EACA,MAAAC,EACA,oBAAAC,EACA,mBAAAC,CACF,IAAwB,CACtB,KAAM,CAAE,UAAAC,CAAA,EAAcC,EAAA,EAEtB,OACEC,EAAC,KAAA,CAEC,MAAO,CAAE,gBAAiBL,GAAS,SAAA,EACnC,UAAWM,EAAGf,EAAW,CAAE,QAAAQ,CAAA,CAAS,EAAG,CAAE,OAAQG,CAAA,EAAsB,CAAE,QAAS,CAACA,CAAA,EAAsBL,GAAA,YAAAA,EAAS,IAAI,EAEtH,SAAA,CAAAQ,EAAC,OAAI,UAAWC,EAAG,2EAA4ET,GAAA,YAAAA,EAAS,OAAO,EAC7G,SAAA,CAAAQ,EAAC,OAAI,UAAWC,EAAG,sBAAuBT,GAAA,YAAAA,EAAS,aAAa,EAC9D,SAAA,CAAAU,EAAC,MAAA,CAAI,wBAAyB,CAAE,OAAQZ,CAAA,EAAS,UAAWW,EAAG,4BAA6BT,GAAA,YAAAA,EAAS,KAAK,CAAA,CAAG,EAC7GU,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQb,CAAA,EACnC,UAAWY,EAAG,yEAA0ET,GAAA,YAAAA,EAAS,QAAQ,CAAA,CAAA,CAC3G,EACF,EAECI,GAAuBE,IAAaL,GAAA,YAAAA,EAAQ,iBAC3CS,EAACC,GAAmB,OAAO,UAAU,UAAWF,EAAG,oBAAqBT,GAAA,YAAAA,EAAS,MAAM,EAAG,KAAK,KAAM,GAAGC,CAAA,CAAQ,CAAA,EAEpH,GAEEI,GAAsBC,IAAcP,GACpCW,EAAC,OAAI,UAAWD,EAAG,0BAA2BT,GAAA,YAAAA,EAAS,YAAY,EAChE,SAAAD,GAAO,QAASA,GAAOa,EAAW,SAASb,CAAG,EAC7CW,EAAC,MAAA,CAAI,UAAWD,EAAG,yBAA0BT,GAAA,YAAAA,EAAS,GAAG,EAAG,IAAKD,EAAI,IAAK,IAAKA,EAAI,GAAA,CAAK,EAExFA,CAAA,CAEJ,CAAA,CAAA,EAzBGD,CAAA,CA6BX"}
@@ -1,2 +1,2 @@
1
- import{jsx as r,jsxs as d}from"react/jsx-runtime";import{useState as D,createElement as z}from"react";import{HTMLRenderer as g}from"../htmlParser/HTMLRenderer.js";import{widgetIds as b}from"../model/helpers.js";import{getFieldsProgress as H}from"./model/getFieldsProgress.js";import{getDynamicSchema as I}from"../../../src/shared/utils/getDynamicSchema.js";import{cn as e}from"../../shared/utils/cn.js";import{useControlledForm as M}from"../../shared/hooks/useControlledForm.js";import{useFieldsProgress as R}from"../../shared/hooks/useFieldsProgress.js";import{ResponsiveContainer as Z}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import{Button as A}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{ProgressBar as E}from"../../shared/ui/progressBar/ProgressBar.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import{Icon as L}from"../../shared/ui/icon/Icon.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import{Heading as c}from"../../shared/ui/heading/Heading.js";import"../../shared/ui/carousel/ui/CarouselContent.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import{CheckboxBase as Q}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"../../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 U}from"../fieldMapper/FieldMapper.js";import{QueryClientProvider as V}from"../queryClientProvider/QueryClientProvider.js";const q=(m,n,i,o)=>m.type==="off"?null:m.type==="text"?r(g,{html:m.message,as:"div",className:o==null?void 0:o.content}):d("label",{className:e("mob-body-regular-s text-color-dark","desktop:desk-body-regular-s desktop:gap-x-4","flex items-center justify-items-start gap-x-3"),children:[r(Q,{classes:o==null?void 0:o.checkbox,checked:n,onCheckedChange:i}),r(g,{html:m.content,as:"div",className:o==null?void 0:o.content})]}),Lt=({fields:m,title:n,progress:i,approvement:o,chips:f,submitProps:w,classes:t,buttonGroup:p})=>{var k,y;const{submitCallback:x}=w||{},[a,N]=D(!1),h=I(m),C=T.getZodDefaults(h),{control:u,handleSubmit:P}=M({schema:h,defaultValues:C,mode:"onBlur"}),B=H(i,m),j=R({control:u,fields:B||[],schema:h}),v=l=>{x&&x({...l,agree:a})};return r(V,{children:r("section",{id:b.form,"data-test-id":b.form,className:e("w-full",t==null?void 0:t.root),children:d(Z,{className:e("border-warm-grey-200 px-4 desktop:w-[636px] desktop:gap-8 desktop:p-14","relative mx-auto flex flex-col gap-6 rounded-sm py-8 desktop:border"),children:[f.enabled&&d("div",{className:e("desk-body-regular-l flex items-center gap-x-2 rounded-sm desktop:absolute","bg-color-blue-grey-100 px-2 py-1 text-color-tetriary","right-4 top-4 w-max",(k=t==null?void 0:t.chips)==null?void 0:k.root),children:[f.image&&r(L,{name:f.image,className:e("size-6",(y=t==null?void 0:t.chips)==null?void 0:y.icon)}),f.content]}),r(c,{as:"h2",className:e("desktop:hidden",t==null?void 0:t.title),children:n}),r(c,{as:"h3",className:e("mobile:hidden",t==null?void 0:t.title),children:n}),d("form",{onSubmit:P(v),className:e("flex w-full flex-col gap-y-6","desktop:gap-y-8",t==null?void 0:t.form),children:[i.enabled&&r(E,{progress:j,topContent:r(g,{html:i.title}),bottomContent:r(g,{html:i.subtitle}),maxPercent:i.maxPercent,classes:t==null?void 0:t.progressBar}),r(U,{control:u,fields:m}),d("div",{className:e("mob-body-regular-s flex flex-col items-start justify-center gap-4",{"desktop:flex-row desktop:items-center":p.length===1}),children:[q(o,a,N,t==null?void 0:t.approvement),r("div",{className:e("flex w-full flex-col items-center justify-center gap-4 desktop:flex-row",{"desktop:w-fit":p.length===1}),children:p==null?void 0:p.map((l,F)=>{const S=l.type==="submit"&&o.type==="checkbox"?!a:!1;return z(A,{...l,size:"lg",key:F,disabled:S,className:e("w-full whitespace-nowrap",{"desktop:!w-fit":p.length===1},{"w-full":!!o},t==null?void 0:t.submit)})})})]})]})]})})})};export{Lt as DynamicForm,Lt as default};
1
+ import{jsx as r,jsxs as n}from"react/jsx-runtime";import{useState as I,createElement as z}from"react";import{AuthProvider as h}from"../authProvider/AuthProvider.js";import{HTMLRenderer as g}from"../htmlParser/HTMLRenderer.js";import{widgetIds as y}from"../model/helpers.js";import{getFieldsProgress as H}from"./model/getFieldsProgress.js";import{getDynamicSchema as M}from"../../../src/shared/utils/getDynamicSchema.js";import{cn as m}from"../../shared/utils/cn.js";import{useControlledForm as R}from"../../shared/hooks/useControlledForm.js";import{useFieldsProgress as Z}from"../../shared/hooks/useFieldsProgress.js";import{ResponsiveContainer as E}from"../../shared/ui/responsiveContainer/ResponsiveContainer.js";import{Button as L}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{ProgressBar as Q}from"../../shared/ui/progressBar/ProgressBar.js";import"react-dom";import"../../shared/ui/modal/ui/IframeModalContent.js";import"../../../node_modules/react-hot-toast/dist/index.js";import{Icon as T}from"../../shared/ui/icon/Icon.js";import"../../shared/ui/table/ui/primitives/Primitives.js";import{Heading as w}from"../../shared/ui/heading/Heading.js";import"../../shared/ui/carousel/ui/CarouselContent.js";import"../../shared/ui/slot/Slot.js";import"../../shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js";import{CheckboxBase as U}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"../../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 V}from"../../shared/validation/utils/zodUtils.js";import{FieldMapper as q}from"../fieldMapper/FieldMapper.js";import{QueryClientProvider as J}from"../queryClientProvider/QueryClientProvider.js";const K=(o,p,i,e)=>o.type==="off"?null:o.type==="text"?r(g,{html:o.message,as:"div",className:e==null?void 0:e.content}):n("label",{className:m("mob-body-regular-s text-color-dark","desktop:desk-body-regular-s desktop:gap-x-4","flex items-center justify-items-start gap-x-3"),children:[r(U,{classes:e==null?void 0:e.checkbox,checked:p,onCheckedChange:i}),r(g,{html:o.content,as:"div",className:e==null?void 0:e.content})]}),O=o=>{switch(o.mode){case"esia":return r(h,{...o,mode:o.mode});case"mobileId":return r(h,{...o,mode:o.mode});case"combine":return r(h,{...o,mode:o.mode});case"off":return null}},Vt=({fields:o,title:p,progress:i,approvement:e,chips:f,submitProps:N,auth:P,classes:t,buttonGroup:d})=>{var c,b;const{submitCallback:u}=N||{},[a,C]=I(!1),x=M(o),v=V.getZodDefaults(x),{control:k,handleSubmit:B}=R({schema:x,defaultValues:v,mode:"onBlur"}),j=H(i,o),F=Z({control:k,fields:j||[],schema:x}),S=l=>{u&&u({...l,agree:a})};return r(J,{children:r("section",{id:y.form,"data-test-id":y.form,className:m("w-full",t==null?void 0:t.root),children:n(E,{className:m("border-warm-grey-200 px-4 desktop:w-[636px] desktop:gap-8 desktop:p-14","relative mx-auto flex flex-col gap-6 rounded-sm py-8 desktop:border"),children:[f.enabled&&n("div",{className:m("desk-body-regular-l flex items-center gap-x-2 rounded-sm desktop:absolute","bg-color-blue-grey-100 px-2 py-1 text-color-tetriary","right-4 top-4 w-max",(c=t==null?void 0:t.chips)==null?void 0:c.root),children:[f.image&&r(T,{name:f.image,className:m("size-6",(b=t==null?void 0:t.chips)==null?void 0:b.icon)}),f.content]}),r(w,{as:"h2",className:m("desktop:hidden",t==null?void 0:t.title),children:p}),r(w,{as:"h3",className:m("mobile:hidden",t==null?void 0:t.title),children:p}),n("form",{onSubmit:B(S),className:m("flex w-full flex-col gap-y-6","desktop:gap-y-8",t==null?void 0:t.form),children:[i.enabled&&r(Q,{progress:F,topContent:r(g,{html:i.title}),bottomContent:r(g,{html:i.subtitle}),maxPercent:i.maxPercent,classes:t==null?void 0:t.progressBar}),r(q,{control:k,fields:o}),n("div",{className:m("mob-body-regular-s flex flex-col items-start justify-center gap-4",{"desktop:flex-row desktop:items-center":d.length===1}),children:[K(e,a,C,t==null?void 0:t.approvement),r("div",{className:m("flex w-full flex-col items-center justify-center gap-4 desktop:flex-row",{"desktop:w-fit":d.length===1}),children:d==null?void 0:d.map((l,A)=>{const D=l.type==="submit"&&e.type==="checkbox"?!a:!1;return z(L,{...l,size:"lg",key:A,disabled:D,className:m("w-full whitespace-nowrap",{"desktop:!w-fit":d.length===1},{"w-full":!!e},t==null?void 0:t.submit)})})})]}),O(P)]})]})})})};export{Vt as DynamicForm,Vt as default};
2
2
  //# sourceMappingURL=DynamicForm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicForm.js","sources":["../../../../lib/widgets/dynamicForm/DynamicForm.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { type Control, type FieldValues, type SubmitHandler } from 'react-hook-form'\nimport { type TypeOf } from 'zod'\nimport { HTMLRenderer } from '../htmlParser'\nimport { widgetIds } from '../model'\nimport {\n type Approvement,\n type ApprovementType,\n type Chips,\n type ChipsType,\n getFieldsProgress,\n type Progress,\n type ProgressField,\n type ProgressType\n} from './model'\nimport { type FieldValidation, getDynamicSchema } from '@/shared/utils'\nimport { useControlledForm, useFieldsProgress } from '$/shared/hooks'\nimport {\n Button,\n type ButtonProps,\n CheckboxBase,\n type CheckedState,\n Heading,\n Icon,\n ProgressBar,\n ResponsiveContainer\n} 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 ChipsClasses = {\n root?: string\n icon?: string\n}\ntype ApprovementClasses = {\n checkbox?: React.ComponentProps<typeof CheckboxBase>['classes']\n content?: string\n}\n\ntype DynamicFormClasses = {\n root?: string\n title?: string\n fields?: string\n form?: string\n chips?: ChipsClasses\n approvement?: ApprovementClasses\n progressBar?: React.ComponentProps<typeof ProgressBar>['classes']\n submit?: string\n}\n\nexport type DynamicFormProps<AType extends ApprovementType, CType extends ChipsType, PType extends ProgressType> = {\n fields: FieldElement<any, any, { validation: FieldValidation; progress: ProgressField }>[]\n title: string\n progress: Progress<PType>\n approvement: Approvement<AType>\n chips: Chips<CType>\n submitProps?: SubmitProps\n classes?: DynamicFormClasses\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): React.ReactNode => {\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-s 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 DynamicForm = <AType extends ApprovementType, CType extends ChipsType, PType extends ProgressType>({\n fields,\n title,\n progress,\n approvement,\n chips,\n submitProps,\n classes,\n buttonGroup\n}: DynamicFormProps<AType, CType, PType>) => {\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 fieldsProgress = getFieldsProgress(progress, fields)\n\n const formattedProgress = useFieldsProgress({ control, fields: fieldsProgress || [], schema })\n\n const onSubmit: SubmitHandler<TypeOf<typeof schema>> = (values) => {\n if (submitCallback) submitCallback({ ...values, agree: checked })\n }\n\n return (\n <QueryClientProvider>\n <section id={widgetIds.form} data-test-id={widgetIds.form} className={cn('w-full', classes?.root)}>\n <ResponsiveContainer\n className={cn(\n 'border-warm-grey-200 px-4 desktop:w-[636px] desktop:gap-8 desktop:p-14',\n 'relative mx-auto flex flex-col gap-6 rounded-sm py-8 desktop:border'\n )}\n >\n {chips.enabled && (\n <div\n className={cn(\n 'desk-body-regular-l flex items-center gap-x-2 rounded-sm desktop:absolute',\n 'bg-color-blue-grey-100 px-2 py-1 text-color-tetriary',\n 'right-4 top-4 w-max',\n classes?.chips?.root\n )}\n >\n {chips.image && <Icon name={chips.image} className={cn('size-6', classes?.chips?.icon)} />}\n {chips.content}\n </div>\n )}\n <Heading as='h2' className={cn('desktop:hidden', classes?.title)}>\n {title}\n </Heading>\n <Heading as='h3' className={cn('mobile:hidden', classes?.title)}>\n {title}\n </Heading>\n <form\n onSubmit={handleSubmit(onSubmit)}\n className={cn('flex w-full flex-col gap-y-6', 'desktop:gap-y-8', classes?.form)}\n >\n {progress.enabled && (\n <ProgressBar\n progress={formattedProgress}\n topContent={<HTMLRenderer html={progress.title} />}\n bottomContent={<HTMLRenderer html={progress.subtitle} />}\n maxPercent={progress.maxPercent}\n classes={classes?.progressBar}\n />\n )}\n <FieldMapper control={control as unknown as Control} fields={fields} />\n <div\n className={cn('mob-body-regular-s flex flex-col items-start justify-center gap-4', {\n ['desktop:flex-row desktop:items-center']: buttonGroup.length === 1\n })}\n >\n {withApprovement(approvement, checked, onCheckedChange, classes?.approvement)}\n <div\n className={cn('flex w-full flex-col items-center justify-center gap-4 desktop:flex-row', {\n 'desktop:w-fit': buttonGroup.length === 1\n })}\n >\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 ['desktop:!w-fit']: buttonGroup.length === 1\n },\n {\n 'w-full': Boolean(approvement)\n },\n classes?.submit\n )}\n />\n )\n })}\n </div>\n </div>\n </form>\n </ResponsiveContainer>\n </section>\n </QueryClientProvider>\n )\n}\n\nexport default DynamicForm\n"],"names":["withApprovement","approvement","checked","onCheckedChange","classes","jsx","HTMLRenderer","jsxs","cn","CheckboxBase","DynamicForm","fields","title","progress","chips","submitProps","buttonGroup","submitCallback","useState","schema","getDynamicSchema","defaultValues","ZodUtils","control","handleSubmit","useControlledForm","fieldsProgress","getFieldsProgress","formattedProgress","useFieldsProgress","onSubmit","values","QueryClientProvider","widgetIds","ResponsiveContainer","_a","Icon","_b","Heading","ProgressBar","FieldMapper","button","index","disabled","createElement","Button"],"mappings":"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"}
1
+ {"version":3,"file":"DynamicForm.js","sources":["../../../../lib/widgets/dynamicForm/DynamicForm.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { type Control, type FieldValues, type SubmitHandler } from 'react-hook-form'\nimport { type TypeOf } from 'zod'\nimport { AuthProvider } from '../authProvider'\nimport { HTMLRenderer } from '../htmlParser'\nimport { widgetIds } from '../model'\nimport {\n type Approvement,\n type ApprovementType,\n type Auth,\n type AuthMode,\n type Chips,\n type ChipsType,\n getFieldsProgress,\n type Progress,\n type ProgressField,\n type ProgressType\n} from './model'\nimport { type FieldValidation, getDynamicSchema } from '@/shared/utils'\nimport { useControlledForm, useFieldsProgress } from '$/shared/hooks'\nimport {\n Button,\n type ButtonProps,\n CheckboxBase,\n type CheckedState,\n Heading,\n Icon,\n ProgressBar,\n ResponsiveContainer\n} 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 ChipsClasses = {\n root?: string\n icon?: string\n}\ntype ApprovementClasses = {\n checkbox?: React.ComponentProps<typeof CheckboxBase>['classes']\n content?: string\n}\n\ntype DynamicFormClasses = {\n root?: string\n title?: string\n fields?: string\n form?: string\n chips?: ChipsClasses\n approvement?: ApprovementClasses\n progressBar?: React.ComponentProps<typeof ProgressBar>['classes']\n submit?: string\n}\n\nexport type DynamicFormProps<\n AType extends ApprovementType,\n CType extends ChipsType,\n PType extends ProgressType,\n AuthType extends AuthMode\n> = {\n fields: FieldElement<any, any, { validation: FieldValidation; progress: ProgressField }>[]\n title: string\n progress: Progress<PType>\n approvement: Approvement<AType>\n chips: Chips<CType>\n submitProps?: SubmitProps\n classes?: DynamicFormClasses\n buttonGroup: ButtonProps[]\n auth: Auth<AuthType>\n}\n\nconst withApprovement = <Type extends ApprovementType>(\n approvement: Approvement<Type>,\n checked: CheckedState,\n onCheckedChange: (checked: CheckedState) => void,\n classes?: ApprovementClasses\n): React.ReactNode => {\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-s 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\nconst withAuthProvider = <Mode extends AuthMode>(auth: Auth<Mode>) => {\n switch (auth.mode) {\n case 'esia':\n return <AuthProvider {...auth} mode={auth.mode} />\n case 'mobileId':\n return <AuthProvider {...auth} mode={auth.mode} />\n case 'combine':\n return <AuthProvider {...auth} mode={auth.mode} />\n case 'off':\n return null\n }\n}\n\nexport const DynamicForm = <\n AType extends ApprovementType,\n CType extends ChipsType,\n PType extends ProgressType,\n AuthType extends AuthMode\n>({\n fields,\n title,\n progress,\n approvement,\n chips,\n submitProps,\n auth,\n classes,\n buttonGroup\n}: DynamicFormProps<AType, CType, PType, AuthType>) => {\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 fieldsProgress = getFieldsProgress(progress, fields)\n\n const formattedProgress = useFieldsProgress({ control, fields: fieldsProgress || [], schema })\n\n const onSubmit: SubmitHandler<TypeOf<typeof schema>> = (values) => {\n if (submitCallback) submitCallback({ ...values, agree: checked })\n }\n\n return (\n <QueryClientProvider>\n <section id={widgetIds.form} data-test-id={widgetIds.form} className={cn('w-full', classes?.root)}>\n <ResponsiveContainer\n className={cn(\n 'border-warm-grey-200 px-4 desktop:w-[636px] desktop:gap-8 desktop:p-14',\n 'relative mx-auto flex flex-col gap-6 rounded-sm py-8 desktop:border'\n )}\n >\n {chips.enabled && (\n <div\n className={cn(\n 'desk-body-regular-l flex items-center gap-x-2 rounded-sm desktop:absolute',\n 'bg-color-blue-grey-100 px-2 py-1 text-color-tetriary',\n 'right-4 top-4 w-max',\n classes?.chips?.root\n )}\n >\n {chips.image && <Icon name={chips.image} className={cn('size-6', classes?.chips?.icon)} />}\n {chips.content}\n </div>\n )}\n <Heading as='h2' className={cn('desktop:hidden', classes?.title)}>\n {title}\n </Heading>\n <Heading as='h3' className={cn('mobile:hidden', classes?.title)}>\n {title}\n </Heading>\n <form\n onSubmit={handleSubmit(onSubmit)}\n className={cn('flex w-full flex-col gap-y-6', 'desktop:gap-y-8', classes?.form)}\n >\n {progress.enabled && (\n <ProgressBar\n progress={formattedProgress}\n topContent={<HTMLRenderer html={progress.title} />}\n bottomContent={<HTMLRenderer html={progress.subtitle} />}\n maxPercent={progress.maxPercent}\n classes={classes?.progressBar}\n />\n )}\n <FieldMapper control={control as unknown as Control} fields={fields} />\n <div\n className={cn('mob-body-regular-s flex flex-col items-start justify-center gap-4', {\n ['desktop:flex-row desktop:items-center']: buttonGroup.length === 1\n })}\n >\n {withApprovement(approvement, checked, onCheckedChange, classes?.approvement)}\n <div\n className={cn('flex w-full flex-col items-center justify-center gap-4 desktop:flex-row', {\n 'desktop:w-fit': buttonGroup.length === 1\n })}\n >\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 ['desktop:!w-fit']: buttonGroup.length === 1\n },\n {\n 'w-full': Boolean(approvement)\n },\n classes?.submit\n )}\n />\n )\n })}\n </div>\n </div>\n {withAuthProvider(auth)}\n </form>\n </ResponsiveContainer>\n </section>\n </QueryClientProvider>\n )\n}\n\nexport default DynamicForm\n"],"names":["withApprovement","approvement","checked","onCheckedChange","classes","jsx","HTMLRenderer","jsxs","cn","CheckboxBase","withAuthProvider","auth","AuthProvider","DynamicForm","fields","title","progress","chips","submitProps","buttonGroup","submitCallback","useState","schema","getDynamicSchema","defaultValues","ZodUtils","control","handleSubmit","useControlledForm","fieldsProgress","getFieldsProgress","formattedProgress","useFieldsProgress","onSubmit","values","QueryClientProvider","widgetIds","ResponsiveContainer","_a","Icon","_b","Heading","ProgressBar","FieldMapper","button","index","disabled","createElement","Button"],"mappings":"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"}