@scbt-ecom/ui 0.153.6 → 0.153.8

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 (154) hide show
  1. package/dist/lib/exports/ui.js +1 -1
  2. package/dist/lib/exports/widget.js +1 -1
  3. package/dist/lib/shared/style.css +1 -1
  4. package/dist/lib/shared/ui/carousel/Carousel.js +2 -0
  5. package/dist/lib/shared/ui/carousel/Carousel.js.map +1 -0
  6. package/dist/lib/shared/ui/carousel/index.js +1 -1
  7. package/dist/lib/shared/ui/carousel/model/constant.js +2 -0
  8. package/dist/lib/shared/ui/carousel/model/constant.js.map +1 -0
  9. package/dist/lib/shared/ui/carousel/model/helpers.js +1 -1
  10. package/dist/lib/shared/ui/carousel/model/helpers.js.map +1 -1
  11. package/dist/lib/shared/ui/carousel/model/hooks/useArrowNavigation.js.map +1 -1
  12. package/dist/lib/shared/ui/carousel/model/hooks/useDotsNavigation.js.map +1 -1
  13. package/dist/lib/shared/ui/carousel/model/index.js +1 -1
  14. package/dist/lib/shared/ui/carousel/ui/ArrowNavigationButton.js.map +1 -1
  15. package/dist/lib/shared/ui/carousel/ui/DotsNavigations.js +1 -1
  16. package/dist/lib/shared/ui/carousel/ui/DotsNavigations.js.map +1 -1
  17. package/dist/lib/shared/ui/carousel/ui/RenderSlides.js +2 -0
  18. package/dist/lib/shared/ui/carousel/ui/RenderSlides.js.map +1 -0
  19. package/dist/lib/shared/ui/carousel/ui/index.js +1 -1
  20. package/dist/lib/shared/ui/carousel/ui/slideVariants/SlideFullScreen.js +1 -1
  21. package/dist/lib/shared/ui/carousel/ui/slideVariants/SlideFullScreen.js.map +1 -1
  22. package/dist/lib/shared/ui/carousel/ui/slideVariants/SlideProductCard.js +1 -1
  23. package/dist/lib/shared/ui/carousel/ui/slideVariants/SlideProductCard.js.map +1 -1
  24. package/dist/lib/shared/ui/carousel/ui/slideVariants/SlideStepsList.js +2 -0
  25. package/dist/lib/shared/ui/carousel/ui/slideVariants/SlideStepsList.js.map +1 -0
  26. package/dist/lib/shared/ui/carousel/ui/slideVariants/index.js +1 -1
  27. package/dist/lib/shared/ui/carousel/ui/slideVariants/slide.module.css +1 -0
  28. package/dist/lib/shared/ui/carousel/ui/slideVariants/slide.module.css.js +2 -0
  29. package/dist/lib/shared/ui/carousel/ui/slideVariants/slide.module.css.js.map +1 -0
  30. package/dist/lib/shared/ui/carousel/ui/stepsList/StepListItemType.js +2 -0
  31. package/dist/lib/shared/ui/carousel/ui/stepsList/StepListItemType.js.map +1 -0
  32. package/dist/lib/shared/ui/carousel/ui/stepsList/StepsList.js +2 -0
  33. package/dist/lib/shared/ui/carousel/ui/stepsList/StepsList.js.map +1 -0
  34. package/dist/lib/shared/ui/carousel/ui/stepsList/index.js +2 -0
  35. package/dist/lib/shared/ui/carousel/ui/stepsList/index.js.map +1 -0
  36. package/dist/lib/shared/ui/carouselBase/CarouselBase.js.map +1 -0
  37. package/dist/lib/shared/ui/carouselBase/CarouselNative.js.map +1 -0
  38. package/dist/lib/shared/ui/carouselBase/index.js +2 -0
  39. package/dist/lib/shared/ui/carouselBase/index.js.map +1 -0
  40. package/dist/lib/shared/ui/carouselBase/model/helpers.js +2 -0
  41. package/dist/lib/shared/ui/carouselBase/model/helpers.js.map +1 -0
  42. package/dist/lib/shared/ui/carouselBase/model/hooks/index.js +2 -0
  43. package/dist/lib/shared/ui/carouselBase/model/hooks/index.js.map +1 -0
  44. package/dist/lib/shared/ui/carouselBase/model/hooks/useArrowNavigation.js +2 -0
  45. package/dist/lib/shared/ui/carouselBase/model/hooks/useArrowNavigation.js.map +1 -0
  46. package/dist/lib/shared/ui/carouselBase/model/hooks/useCarousel.js +2 -0
  47. package/dist/lib/shared/ui/carouselBase/model/hooks/useCarousel.js.map +1 -0
  48. package/dist/lib/shared/ui/carouselBase/model/hooks/useDotsNavigation.js +2 -0
  49. package/dist/lib/shared/ui/carouselBase/model/hooks/useDotsNavigation.js.map +1 -0
  50. package/dist/lib/shared/ui/carouselBase/model/index.js +2 -0
  51. package/dist/lib/shared/ui/carouselBase/model/index.js.map +1 -0
  52. package/dist/lib/shared/ui/carouselBase/model/types.js +2 -0
  53. package/dist/lib/shared/ui/carouselBase/model/types.js.map +1 -0
  54. package/dist/lib/shared/ui/carouselBase/ui/ArrowNavigationButton.js +2 -0
  55. package/dist/lib/shared/ui/carouselBase/ui/ArrowNavigationButton.js.map +1 -0
  56. package/dist/lib/shared/ui/carouselBase/ui/CarouselContent.js.map +1 -0
  57. package/dist/lib/shared/ui/carouselBase/ui/CarouselSlide.js.map +1 -0
  58. package/dist/lib/shared/ui/carouselBase/ui/ContainerWithNavigation.js.map +1 -0
  59. package/dist/lib/shared/ui/carouselBase/ui/DotsNavigations.js +2 -0
  60. package/dist/lib/shared/ui/carouselBase/ui/DotsNavigations.js.map +1 -0
  61. package/dist/lib/shared/ui/carouselBase/ui/index.js +2 -0
  62. package/dist/lib/shared/ui/carouselBase/ui/index.js.map +1 -0
  63. package/dist/lib/shared/ui/carouselBase/ui/slideVariants/SlideFullScreen.js +2 -0
  64. package/dist/lib/shared/ui/carouselBase/ui/slideVariants/SlideFullScreen.js.map +1 -0
  65. package/dist/lib/shared/ui/carouselBase/ui/slideVariants/SlideOnlyImage.js.map +1 -0
  66. package/dist/lib/shared/ui/carouselBase/ui/slideVariants/SlideProductCard.js +2 -0
  67. package/dist/lib/shared/ui/carouselBase/ui/slideVariants/SlideProductCard.js.map +1 -0
  68. package/dist/lib/shared/ui/carouselBase/ui/slideVariants/index.js +2 -0
  69. package/dist/lib/shared/ui/carouselBase/ui/slideVariants/index.js.map +1 -0
  70. package/dist/lib/shared/ui/formElements/controlled/radio/RadioGroupCardControl.js +1 -1
  71. package/dist/lib/shared/ui/formElements/controlled/radio/RadioGroupCardControl.js.map +1 -1
  72. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js +1 -1
  73. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js.map +1 -1
  74. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.js +1 -1
  75. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.js.map +1 -1
  76. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js +1 -1
  77. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js.map +1 -1
  78. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.js +1 -1
  79. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.js.map +1 -1
  80. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js +1 -1
  81. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js.map +1 -1
  82. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/hooks/useSliderStep.js +1 -1
  83. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/hooks/useSliderStep.js.map +1 -1
  84. package/dist/lib/shared/ui/index.js +1 -1
  85. package/dist/lib/widgets/carouselBlock/CarouselBlock.js +2 -0
  86. package/dist/lib/widgets/carouselBlock/CarouselBlock.js.map +1 -0
  87. package/dist/lib/widgets/carouselBlock/index.js +2 -0
  88. package/dist/lib/widgets/carouselBlock/index.js.map +1 -0
  89. package/dist/lib/widgets/index.js +1 -1
  90. package/dist/lib/widgets/model/helpers.js +2 -2
  91. package/dist/lib/widgets/model/helpers.js.map +1 -1
  92. package/dist/lib/widgets/stepper/ui/StepperCarousel.js +1 -1
  93. package/dist/lib/widgets/stepper/ui/StepperCarousel.js.map +1 -1
  94. package/dist/stats.html +1 -1
  95. package/dist/types/lib/shared/ui/carousel/Carousel.d.ts +30 -0
  96. package/dist/types/lib/shared/ui/carousel/index.d.ts +1 -2
  97. package/dist/types/lib/shared/ui/carousel/model/constant.d.ts +11 -0
  98. package/dist/types/lib/shared/ui/carousel/model/helpers.d.ts +1 -9
  99. package/dist/types/lib/shared/ui/carousel/model/hooks/useArrowNavigation.d.ts +2 -2
  100. package/dist/types/lib/shared/ui/carousel/model/hooks/useDotsNavigation.d.ts +2 -1
  101. package/dist/types/lib/shared/ui/carousel/model/index.d.ts +2 -1
  102. package/dist/types/lib/shared/ui/carousel/model/types.d.ts +22 -23
  103. package/dist/types/lib/shared/ui/carousel/ui/ArrowNavigationButton.d.ts +3 -3
  104. package/dist/types/lib/shared/ui/carousel/ui/DotsNavigations.d.ts +2 -3
  105. package/dist/types/lib/shared/ui/carousel/ui/RenderSlides.d.ts +14 -0
  106. package/dist/types/lib/shared/ui/carousel/ui/index.d.ts +3 -3
  107. package/dist/types/lib/shared/ui/carousel/ui/slideVariants/SlideFullScreen.d.ts +10 -7
  108. package/dist/types/lib/shared/ui/carousel/ui/slideVariants/SlideProductCard.d.ts +9 -6
  109. package/dist/types/lib/shared/ui/carousel/ui/slideVariants/SlideStepsList.d.ts +16 -0
  110. package/dist/types/lib/shared/ui/carousel/ui/slideVariants/index.d.ts +1 -1
  111. package/dist/types/lib/shared/ui/carousel/ui/stepsList/StepListItemType.d.ts +18 -0
  112. package/dist/types/lib/shared/ui/carousel/ui/stepsList/StepsList.d.ts +13 -0
  113. package/dist/types/lib/shared/ui/carousel/ui/stepsList/index.d.ts +2 -0
  114. package/dist/types/lib/shared/ui/{carousel → carouselBase}/CarouselBase.d.ts +3 -0
  115. package/dist/types/lib/shared/ui/carouselBase/index.d.ts +3 -0
  116. package/dist/types/lib/shared/ui/carouselBase/model/helpers.d.ts +9 -0
  117. package/dist/types/lib/shared/ui/carouselBase/model/hooks/index.d.ts +3 -0
  118. package/dist/types/lib/shared/ui/carouselBase/model/hooks/useArrowNavigation.d.ts +12 -0
  119. package/dist/types/lib/shared/ui/carouselBase/model/hooks/useCarousel.d.ts +12 -0
  120. package/dist/types/lib/shared/ui/carouselBase/model/hooks/useDotsNavigation.d.ts +15 -0
  121. package/dist/types/lib/shared/ui/carouselBase/model/index.d.ts +3 -0
  122. package/dist/types/lib/shared/ui/carouselBase/model/types.d.ts +27 -0
  123. package/dist/types/lib/shared/ui/carouselBase/ui/ArrowNavigationButton.d.ts +13 -0
  124. package/dist/types/lib/shared/ui/carouselBase/ui/DotsNavigations.d.ts +13 -0
  125. package/dist/types/lib/shared/ui/carouselBase/ui/index.d.ts +5 -0
  126. package/dist/types/lib/shared/ui/carouselBase/ui/slideVariants/SlideFullScreen.d.ts +19 -0
  127. package/dist/types/lib/shared/ui/carouselBase/ui/slideVariants/SlideProductCard.d.ts +20 -0
  128. package/dist/types/lib/shared/ui/carouselBase/ui/slideVariants/index.d.ts +3 -0
  129. package/dist/types/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.d.ts +1 -0
  130. package/dist/types/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.d.ts +1 -0
  131. package/dist/types/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/hooks/useSliderStep.d.ts +1 -0
  132. package/dist/types/lib/shared/ui/index.d.ts +2 -1
  133. package/dist/types/lib/widgets/carouselBlock/CarouselBlock.d.ts +5 -0
  134. package/dist/types/lib/widgets/carouselBlock/index.d.ts +1 -0
  135. package/dist/types/lib/widgets/index.d.ts +1 -0
  136. package/dist/types/lib/widgets/model/helpers.d.ts +2 -1
  137. package/package.json +1 -1
  138. package/dist/lib/shared/ui/carousel/CarouselBase.js.map +0 -1
  139. package/dist/lib/shared/ui/carousel/CarouselNative.js.map +0 -1
  140. package/dist/lib/shared/ui/carousel/ui/CarouselContent.js.map +0 -1
  141. package/dist/lib/shared/ui/carousel/ui/CarouselSlide.js.map +0 -1
  142. package/dist/lib/shared/ui/carousel/ui/ContainerWithNavigation.js.map +0 -1
  143. package/dist/lib/shared/ui/carousel/ui/slideVariants/SlideOnlyImage.js.map +0 -1
  144. /package/dist/lib/shared/ui/{carousel → carouselBase}/CarouselBase.js +0 -0
  145. /package/dist/lib/shared/ui/{carousel → carouselBase}/CarouselNative.js +0 -0
  146. /package/dist/lib/shared/ui/{carousel → carouselBase}/ui/CarouselContent.js +0 -0
  147. /package/dist/lib/shared/ui/{carousel → carouselBase}/ui/CarouselSlide.js +0 -0
  148. /package/dist/lib/shared/ui/{carousel → carouselBase}/ui/ContainerWithNavigation.js +0 -0
  149. /package/dist/lib/shared/ui/{carousel → carouselBase}/ui/slideVariants/SlideOnlyImage.js +0 -0
  150. /package/dist/types/lib/shared/ui/{carousel → carouselBase}/CarouselNative.d.ts +0 -0
  151. /package/dist/types/lib/shared/ui/{carousel → carouselBase}/ui/CarouselContent.d.ts +0 -0
  152. /package/dist/types/lib/shared/ui/{carousel → carouselBase}/ui/CarouselSlide.d.ts +0 -0
  153. /package/dist/types/lib/shared/ui/{carousel → carouselBase}/ui/ContainerWithNavigation.d.ts +0 -0
  154. /package/dist/types/lib/shared/ui/{carousel → carouselBase}/ui/slideVariants/SlideOnlyImage.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SlideFullScreen.js","sources":["../../../../../../../lib/shared/ui/carousel/ui/slideVariants/SlideFullScreen.tsx"],"sourcesContent":["import type { ImageProps } from '../../model'\nimport { cn } from '$/shared/utils'\n\ntype SlideFullScreenClasses = {\n root?: string\n wrapper?: string\n numeric?: string\n textWrapper?: string\n title?: string\n description?: string\n image?: string\n}\n\nexport interface SlideFullScreenProps {\n slideIndex: number\n title?: string\n description?: string\n image?: ImageProps\n slideClasses?: SlideFullScreenClasses\n}\n\nexport const SlideFullScreen = ({ slideIndex, title, image, description, slideClasses }: SlideFullScreenProps) => {\n return (\n <div className={cn('flex h-full w-full flex-col gap-6', slideClasses?.root)}>\n <div className={cn('flex items-center gap-4', slideClasses?.wrapper)}>\n <span\n className={cn(\n 'mob-headline-bold-s flex size-10 items-center justify-center rounded-sm bg-color-blue-grey-500 text-color-white desktop:desk-title-bold-l desktop:size-12',\n slideClasses?.numeric\n )}\n >\n {slideIndex + 1}\n </span>\n\n <div className={cn('flex flex-1 flex-col gap-2', slideClasses?.textWrapper)}>\n {title && (\n <div\n dangerouslySetInnerHTML={{ __html: title }}\n className={cn(slideClasses?.title, 'mob-title-bold-m desktop:desk-title-bold-s')}\n />\n )}\n {description && (\n <div\n dangerouslySetInnerHTML={{ __html: description }}\n className={cn('desk-body-regular-l text-color-secondary', slideClasses?.description)}\n />\n )}\n </div>\n </div>\n {image && image?.src && (\n <div className={cn('mobile:h-[320px] mobile:w-[328px]')}>\n <img className={cn('w-full object-cover mobile:h-[320px]', slideClasses?.image)} src={image?.src} alt={image?.alt} />\n </div>\n )}\n </div>\n )\n}\n"],"names":["SlideFullScreen","slideIndex","title","image","description","slideClasses","cn","jsxs","jsx"],"mappings":"+FAqBO,MAAMA,EAAkB,CAAC,CAAE,WAAAC,EAAY,MAAAC,EAAO,MAAAC,EAAO,YAAAC,EAAa,aAAAC,OAEpE,MAAA,CAAI,UAAWC,EAAG,oCAAqCD,GAAc,IAAI,EACxE,SAAA,CAAAE,EAAC,OAAI,UAAWD,EAAG,0BAA2BD,GAAc,OAAO,EACjE,SAAA,CAAAG,EAAC,OAAA,CACC,UAAWF,EACT,4JACAD,GAAc,OAAA,EAGf,SAAAJ,EAAa,CAAA,CAAA,IAGf,MAAA,CAAI,UAAWK,EAAG,6BAA8BD,GAAc,WAAW,EACvE,SAAA,CAAAH,GACCM,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQN,CAAA,EACnC,UAAWI,EAAGD,GAAc,MAAO,4CAA4C,CAAA,CAAA,EAGlFD,GACCI,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQJ,CAAA,EACnC,UAAWE,EAAG,2CAA4CD,GAAc,WAAW,CAAA,CAAA,CACrF,CAAA,CAEJ,CAAA,EACF,EACCF,GAASA,GAAO,KACfK,EAAC,OAAI,UAAWF,EAAG,mCAAmC,EACpD,SAAAE,EAAC,MAAA,CAAI,UAAWF,EAAG,uCAAwCD,GAAc,KAAK,EAAG,IAAKF,GAAO,IAAK,IAAKA,GAAO,GAAA,CAAK,CAAA,CACrH,CAAA,EAEJ"}
1
+ {"version":3,"file":"SlideFullScreen.js","sources":["../../../../../../../lib/shared/ui/carousel/ui/slideVariants/SlideFullScreen.tsx"],"sourcesContent":["import { extractNumberFromString, type SlidesConfig } from '../../model'\nimport styles from './slide.module.css'\nimport { cn } from '$/shared/utils'\n\nexport type SlideFullScreenClasses = {\n root?: string\n wrapper?: string\n numeric?: string\n textWrapper?: string\n title?: string\n description?: string\n image?: string\n}\n\nexport interface SlideFullScreenProps {\n slidesConfig: SlidesConfig\n slideIndex?: number\n title?: string\n description?: string\n imgProps?: {\n src: string\n alt: string\n }\n slideFullScreenClasses?: SlideFullScreenClasses\n}\n\nexport const SlideFullScreen = ({\n slideIndex,\n title,\n imgProps,\n description,\n slideFullScreenClasses,\n slidesConfig\n}: SlideFullScreenProps) => {\n const deskCardWidth = extractNumberFromString(slidesConfig.deskSlideWidth)\n const mobCardWidth = extractNumberFromString(slidesConfig.mobSlideWidth)\n\n return (\n <div\n style={{\n // @ts-expect-error Для ISR нельзя использовать useDevice\n '--mobile-width': `${mobCardWidth}px`,\n '--desktop-width': `${deskCardWidth}px`\n }}\n className={cn('flex flex-none basis-full flex-col gap-6', styles.slideWidth, slideFullScreenClasses?.root)}\n >\n {(title || description) && (\n <div className={cn('flex items-center gap-4', slideFullScreenClasses?.wrapper)}>\n <span\n className={cn(\n 'mob-headline-bold-s flex size-10 items-center justify-center rounded-sm bg-color-blue-grey-500 text-color-white desktop:desk-title-bold-l desktop:size-12',\n slideFullScreenClasses?.numeric\n )}\n >\n {slideIndex}\n </span>\n\n <div className={cn('flex flex-1 flex-col gap-2', slideFullScreenClasses?.textWrapper)}>\n {title && (\n <div\n dangerouslySetInnerHTML={{ __html: title }}\n className={cn(slideFullScreenClasses?.title, 'mob-title-bold-m desktop:desk-title-bold-s')}\n />\n )}\n {description && (\n <div\n dangerouslySetInnerHTML={{ __html: description }}\n className={cn('desk-body-regular-l text-color-secondary', slideFullScreenClasses?.description)}\n />\n )}\n </div>\n </div>\n )}\n\n {imgProps && imgProps?.src && (\n <img className={cn('w-full object-contain', slideFullScreenClasses?.image)} src={imgProps?.src} alt={imgProps?.alt} />\n )}\n </div>\n )\n}\n"],"names":["SlideFullScreen","slideIndex","title","imgProps","description","slideFullScreenClasses","slidesConfig","deskCardWidth","extractNumberFromString","mobCardWidth","jsxs","cn","styles","jsx"],"mappings":"qMA0BO,MAAMA,EAAkB,CAAC,CAC9B,WAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,uBAAAC,EACA,aAAAC,CACF,IAA4B,CAC1B,MAAMC,EAAgBC,EAAwBF,EAAa,cAAc,EACnEG,EAAeD,EAAwBF,EAAa,aAAa,EAEvE,OACEI,EAAC,MAAA,CACC,MAAO,CAEL,iBAAkB,GAAGD,CAAY,KACjC,kBAAmB,GAAGF,CAAa,IAAA,EAErC,UAAWI,EAAG,2CAA4CC,EAAO,WAAYP,GAAwB,IAAI,EAEvG,SAAA,EAAAH,GAASE,MACR,MAAA,CAAI,UAAWO,EAAG,0BAA2BN,GAAwB,OAAO,EAC3E,SAAA,CAAAQ,EAAC,OAAA,CACC,UAAWF,EACT,4JACAN,GAAwB,OAAA,EAGzB,SAAAJ,CAAA,CAAA,IAGF,MAAA,CAAI,UAAWU,EAAG,6BAA8BN,GAAwB,WAAW,EACjF,SAAA,CAAAH,GACCW,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQX,CAAA,EACnC,UAAWS,EAAGN,GAAwB,MAAO,4CAA4C,CAAA,CAAA,EAG5FD,GACCS,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQT,CAAA,EACnC,UAAWO,EAAG,2CAA4CN,GAAwB,WAAW,CAAA,CAAA,CAC/F,CAAA,CAEJ,CAAA,EACF,EAGDF,GAAYA,GAAU,KACrBU,EAAC,MAAA,CAAI,UAAWF,EAAG,wBAAyBN,GAAwB,KAAK,EAAG,IAAKF,GAAU,IAAK,IAAKA,GAAU,GAAA,CAAK,CAAA,CAAA,CAAA,CAI5H"}
@@ -1,2 +1,2 @@
1
- import{jsxs as a,jsx as r}from"react/jsx-runtime";import{cn as c}from"../../../../utils/cn.js";import{Button as m}from"../../../button/Button.js";const x=({title:o,imgProps:l,description:d,buttonProps:t,slideClasses:e})=>a("div",{className:c("flex h-full w-full flex-col justify-between rounded-md bg-[#F3F4F7] p-6",e?.root),children:[a("div",{className:c("flex flex-col gap-2",e?.wrapper),children:[a("div",{className:c("flex flex-col gap-2",e?.textWrapper),children:[o&&r("h3",{className:c("desk-title-bold-s text-color-dark",e?.title),children:o}),d&&r("p",{className:c("desk-body-medium-l text-color-tetriary",e?.description),children:d})]}),l&&l?.src&&r("img",{className:c("w-full object-contain",e?.image),src:l?.src,alt:l?.alt})]}),t&&r(m,{size:"sm",className:c("w-full",e?.button),...t,children:t?.children||"Оформить заявку"})]});export{x as SlideProductCard};
1
+ import{jsx as l,jsxs as c}from"react/jsx-runtime";import x from"./slide.module.css.js";import{extractNumberFromString as h}from"../../model/helpers.js";import{cn as t}from"../../../../utils/cn.js";import{Button as f}from"../../../button/Button.js";const w=({title:m,imgProps:i,description:o,buttonProps:r,slideProductCardClasses:e,slidesConfig:d})=>{const n=h(d.deskSlideWidth),a=h(d.mobSlideWidth);return l("div",{children:c("div",{style:{"--mobile-width":`${a}px`,"--desktop-width":`${n}px`},className:t("flex h-full shrink-0 flex-grow flex-col justify-between rounded-md bg-[#F3F4F7] p-4 desktop:p-6",x.slideWidth,e?.root),children:[c("div",{className:t("flex flex-col gap-2",e?.wrapper),children:[c("div",{className:t("flex flex-col gap-2",e?.textWrapper),children:[m&&l("h3",{className:t("desk-title-bold-s text-color-dark",e?.title),children:m}),o&&l("p",{className:t("desk-body-medium-l text-color-tetriary",e?.description),children:o})]}),i&&i?.src&&l("img",{className:t("w-full object-contain",e?.image),src:i?.src,alt:i?.alt})]}),r&&l(f,{size:"sm",className:t("w-full",e?.button),...r,children:r?.children||"Оформить заявку"})]})})};export{w as SlideProductCard};
2
2
  //# sourceMappingURL=SlideProductCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SlideProductCard.js","sources":["../../../../../../../lib/shared/ui/carousel/ui/slideVariants/SlideProductCard.tsx"],"sourcesContent":["import { Button, type ButtonProps } from '../../../button'\nimport type { ImageProps } from '../../model'\nimport { cn } from '$/shared/utils'\n\ntype SlideProductCardClasses = {\n root?: string\n wrapper?: string\n textWrapper?: string\n title?: string\n description?: string\n image?: string\n button?: string\n}\n\nexport interface SlideProductCardProps {\n title?: string\n description?: string\n imgProps?: ImageProps\n buttonProps?: ButtonProps\n slideClasses?: SlideProductCardClasses\n}\n\nexport const SlideProductCard = ({ title, imgProps, description, buttonProps, slideClasses }: SlideProductCardProps) => {\n return (\n <div className={cn('flex h-full w-full flex-col justify-between rounded-md bg-[#F3F4F7] p-6', slideClasses?.root)}>\n <div className={cn('flex flex-col gap-2', slideClasses?.wrapper)}>\n <div className={cn('flex flex-col gap-2', slideClasses?.textWrapper)}>\n {title && <h3 className={cn('desk-title-bold-s text-color-dark', slideClasses?.title)}>{title}</h3>}\n {description && (\n <p className={cn('desk-body-medium-l text-color-tetriary', slideClasses?.description)}>{description}</p>\n )}\n </div>\n {imgProps && imgProps?.src && (\n <img className={cn('w-full object-contain', slideClasses?.image)} src={imgProps?.src} alt={imgProps?.alt} />\n )}\n </div>\n\n {buttonProps && (\n <Button size='sm' className={cn('w-full', slideClasses?.button)} {...buttonProps}>\n {buttonProps?.children || 'Оформить заявку'}\n </Button>\n )}\n </div>\n )\n}\n"],"names":["SlideProductCard","title","imgProps","description","buttonProps","slideClasses","cn","jsxs","jsx","Button"],"mappings":"kJAsBO,MAAMA,EAAmB,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,YAAAC,EAAa,YAAAC,EAAa,aAAAC,OAEzE,MAAA,CAAI,UAAWC,EAAG,0EAA2ED,GAAc,IAAI,EAC9G,SAAA,CAAAE,EAAC,OAAI,UAAWD,EAAG,sBAAuBD,GAAc,OAAO,EAC7D,SAAA,CAAAE,EAAC,OAAI,UAAWD,EAAG,sBAAuBD,GAAc,WAAW,EAChE,SAAA,CAAAJ,GAASO,EAAC,MAAG,UAAWF,EAAG,oCAAqCD,GAAc,KAAK,EAAI,SAAAJ,CAAA,CAAM,EAC7FE,KACE,IAAA,CAAE,UAAWG,EAAG,yCAA0CD,GAAc,WAAW,EAAI,SAAAF,CAAA,CAAY,CAAA,EAExG,EACCD,GAAYA,GAAU,KACrBM,EAAC,MAAA,CAAI,UAAWF,EAAG,wBAAyBD,GAAc,KAAK,EAAG,IAAKH,GAAU,IAAK,IAAKA,GAAU,GAAA,CAAK,CAAA,EAE9G,EAECE,GACCI,EAACC,EAAA,CAAO,KAAK,KAAK,UAAWH,EAAG,SAAUD,GAAc,MAAM,EAAI,GAAGD,EAClE,SAAAA,GAAa,UAAY,iBAAA,CAC5B,CAAA,EAEJ"}
1
+ {"version":3,"file":"SlideProductCard.js","sources":["../../../../../../../lib/shared/ui/carousel/ui/slideVariants/SlideProductCard.tsx"],"sourcesContent":["import { Button, type ButtonProps } from '../../../button'\nimport { extractNumberFromString, type SlidesConfig } from '../../model'\nimport styles from './slide.module.css'\nimport { cn } from '$/shared/utils'\n\nexport type SlideProductCardClasses = {\n root?: string\n wrapper?: string\n textWrapper?: string\n title?: string\n description?: string\n image?: string\n button?: string\n}\n\nexport interface SlideProductCardProps {\n slidesConfig: SlidesConfig\n title?: string\n description?: string\n imgProps?: {\n src: string\n alt: string\n }\n buttonProps?: ButtonProps\n slideProductCardClasses?: SlideProductCardClasses\n}\n\nexport const SlideProductCard = ({\n title,\n imgProps,\n description,\n buttonProps,\n slideProductCardClasses,\n slidesConfig\n}: SlideProductCardProps) => {\n const deskCardWidth = extractNumberFromString(slidesConfig.deskSlideWidth)\n const mobCardWidth = extractNumberFromString(slidesConfig.mobSlideWidth)\n\n return (\n <div>\n <div\n style={{\n // @ts-expect-error Для ISR нельзя использовать useDevice\n '--mobile-width': `${mobCardWidth}px`,\n '--desktop-width': `${deskCardWidth}px`\n }}\n className={cn(\n 'flex h-full shrink-0 flex-grow flex-col justify-between rounded-md bg-[#F3F4F7] p-4 desktop:p-6',\n styles.slideWidth,\n slideProductCardClasses?.root\n )}\n >\n <div className={cn('flex flex-col gap-2', slideProductCardClasses?.wrapper)}>\n <div className={cn('flex flex-col gap-2', slideProductCardClasses?.textWrapper)}>\n {title && <h3 className={cn('desk-title-bold-s text-color-dark', slideProductCardClasses?.title)}>{title}</h3>}\n {description && (\n <p className={cn('desk-body-medium-l text-color-tetriary', slideProductCardClasses?.description)}>{description}</p>\n )}\n </div>\n {imgProps && imgProps?.src && (\n <img\n className={cn('w-full object-contain', slideProductCardClasses?.image)}\n src={imgProps?.src}\n alt={imgProps?.alt}\n />\n )}\n </div>\n\n {buttonProps && (\n <Button size='sm' className={cn('w-full', slideProductCardClasses?.button)} {...buttonProps}>\n {buttonProps?.children || 'Оформить заявку'}\n </Button>\n )}\n </div>\n </div>\n )\n}\n"],"names":["SlideProductCard","title","imgProps","description","buttonProps","slideProductCardClasses","slidesConfig","deskCardWidth","extractNumberFromString","mobCardWidth","jsxs","cn","styles","jsx","Button"],"mappings":"wPA2BO,MAAMA,EAAmB,CAAC,CAC/B,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,YAAAC,EACA,wBAAAC,EACA,aAAAC,CACF,IAA6B,CAC3B,MAAMC,EAAgBC,EAAwBF,EAAa,cAAc,EACnEG,EAAeD,EAAwBF,EAAa,aAAa,EAEvE,SACG,MAAA,CACC,SAAAI,EAAC,MAAA,CACC,MAAO,CAEL,iBAAkB,GAAGD,CAAY,KACjC,kBAAmB,GAAGF,CAAa,IAAA,EAErC,UAAWI,EACT,kGACAC,EAAO,WACPP,GAAyB,IAAA,EAG3B,SAAA,CAAAK,EAAC,OAAI,UAAWC,EAAG,sBAAuBN,GAAyB,OAAO,EACxE,SAAA,CAAAK,EAAC,OAAI,UAAWC,EAAG,sBAAuBN,GAAyB,WAAW,EAC3E,SAAA,CAAAJ,GAASY,EAAC,MAAG,UAAWF,EAAG,oCAAqCN,GAAyB,KAAK,EAAI,SAAAJ,CAAA,CAAM,EACxGE,KACE,IAAA,CAAE,UAAWQ,EAAG,yCAA0CN,GAAyB,WAAW,EAAI,SAAAF,CAAA,CAAY,CAAA,EAEnH,EACCD,GAAYA,GAAU,KACrBW,EAAC,MAAA,CACC,UAAWF,EAAG,wBAAyBN,GAAyB,KAAK,EACrE,IAAKH,GAAU,IACf,IAAKA,GAAU,GAAA,CAAA,CACjB,EAEJ,EAECE,GACCS,EAACC,EAAA,CAAO,KAAK,KAAK,UAAWH,EAAG,SAAUN,GAAyB,MAAM,EAAI,GAAGD,EAC7E,SAAAA,GAAa,UAAY,iBAAA,CAC5B,CAAA,CAAA,CAAA,EAGN,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{jsx as e}from"react/jsx-runtime";import o from"./slide.module.css.js";import{cn as l}from"../../../../utils/cn.js";import{extractNumberFromString as a}from"../../model/helpers.js";const f=({imgProps:t,slideStepsListClasses:r,slidesConfig:i})=>{const d=a(i.deskSlideWidth),m=a(i.mobSlideWidth);return e("div",{style:{"--mobile-width":`${m}px`,"--desktop-width":`${d}px`},className:l("flex flex-none basis-full flex-col gap-2",o.slideWidth,r?.wrapper),children:e("div",{className:l("w-full max-w-[464px]",r?.imageWrapper),children:t&&t?.src&&e("img",{className:l("w-full object-contain",r?.image),src:t?.src,alt:t?.alt})})})};export{f as SlideStepsList};
2
+ //# sourceMappingURL=SlideStepsList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlideStepsList.js","sources":["../../../../../../../lib/shared/ui/carousel/ui/slideVariants/SlideStepsList.tsx"],"sourcesContent":["import { extractNumberFromString, type SlidesConfig } from '../../model'\nimport styles from './slide.module.css'\nimport { cn } from '$/shared/utils'\n\nexport type SlideStepsListClasses = {\n wrapper?: string\n imageWrapper?: string\n image?: string\n}\n\nexport interface SlideStepsListProps {\n slidesConfig: SlidesConfig\n slideIndex?: number\n imgProps?: {\n src: string\n alt: string\n }\n slideStepsListClasses?: SlideStepsListClasses\n}\n\nexport const SlideStepsList = ({ imgProps, slideStepsListClasses, slidesConfig }: SlideStepsListProps) => {\n const deskCardWidth = extractNumberFromString(slidesConfig.deskSlideWidth)\n const mobCardWidth = extractNumberFromString(slidesConfig.mobSlideWidth)\n\n return (\n <div\n style={{\n // @ts-expect-error Для ISR нельзя использовать useDevice\n '--mobile-width': `${mobCardWidth}px`,\n '--desktop-width': `${deskCardWidth}px`\n }}\n className={cn('flex flex-none basis-full flex-col gap-2', styles.slideWidth, slideStepsListClasses?.wrapper)}\n >\n <div className={cn('w-full max-w-[464px]', slideStepsListClasses?.imageWrapper)}>\n {imgProps && imgProps?.src && (\n <img className={cn('w-full object-contain', slideStepsListClasses?.image)} src={imgProps?.src} alt={imgProps?.alt} />\n )}\n </div>\n </div>\n )\n}\n"],"names":["SlideStepsList","imgProps","slideStepsListClasses","slidesConfig","deskCardWidth","extractNumberFromString","mobCardWidth","jsx","cn","styles"],"mappings":"2LAoBO,MAAMA,EAAiB,CAAC,CAAE,SAAAC,EAAU,sBAAAC,EAAuB,aAAAC,KAAwC,CACxG,MAAMC,EAAgBC,EAAwBF,EAAa,cAAc,EACnEG,EAAeD,EAAwBF,EAAa,aAAa,EAEvE,OACEI,EAAC,MAAA,CACC,MAAO,CAEL,iBAAkB,GAAGD,CAAY,KACjC,kBAAmB,GAAGF,CAAa,IAAA,EAErC,UAAWI,EAAG,2CAA4CC,EAAO,WAAYP,GAAuB,OAAO,EAE3G,SAAAK,EAAC,MAAA,CAAI,UAAWC,EAAG,uBAAwBN,GAAuB,YAAY,EAC3E,SAAAD,GAAYA,GAAU,KACrBM,EAAC,OAAI,UAAWC,EAAG,wBAAyBN,GAAuB,KAAK,EAAG,IAAKD,GAAU,IAAK,IAAKA,GAAU,GAAA,CAAK,CAAA,CAEvH,CAAA,CAAA,CAGN"}
@@ -1,2 +1,2 @@
1
- import{SlideProductCard as o}from"./SlideProductCard.js";import{SlideOnlyImage as d}from"./SlideOnlyImage.js";import{SlideFullScreen as t}from"./SlideFullScreen.js";export{t as SlideFullScreen,d as SlideOnlyImage,o as SlideProductCard};
1
+ import{SlideProductCard as o}from"./SlideProductCard.js";import{SlideFullScreen as d}from"./SlideFullScreen.js";import{SlideStepsList as S}from"./SlideStepsList.js";export{d as SlideFullScreen,o as SlideProductCard,S as SlideStepsList};
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ ._slideWidth_1qd2t_1{width:var(--mobile-width)}@media(min-width:1187px){._slideWidth_1qd2t_1{width:var(--desktop-width)}}
@@ -0,0 +1,2 @@
1
+ const t="_slideWidth_1qd2t_1",d={slideWidth:t};export{d as default,t as slideWidth};
2
+ //# sourceMappingURL=slide.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slide.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{jsxs as l,jsx as c}from"react/jsx-runtime";import{cn as e}from"../../../../utils/cn.js";const p=({subtitle:a,description:i,stepIndex:o,visibleIndex:d,onChangeStep:m,classes:t})=>{const r=o===d;return l("div",{onClick:()=>m(o),className:e("flex items-center gap-4",t?.root,{"mobile:hidden":!r}),children:[l("span",{className:e("text-[40px] font-semibold text-color-primary-default/20",t?.stepIndex,{"text-color-primary-default":r}),children:["0",o+1]}),l("div",{className:e("flex flex-col gap-1",t?.textBlock),children:[c("h5",{className:e("desk-body-medium-l text-color-tetriary",t?.subtitle,{"text-color-dark":r}),children:a}),i&&c("p",{className:e("desk-body-regular-m text-color-tetriary",t?.description,{"text-color-dark":r}),children:i})]})]})};export{p as StepListItem};
2
+ //# sourceMappingURL=StepListItemType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepListItemType.js","sources":["../../../../../../../lib/shared/ui/carousel/ui/stepsList/StepListItemType.tsx"],"sourcesContent":["import { cn } from '$/shared/utils'\n\nexport type StepListItemClasses = {\n root?: string\n stepIndex?: string\n textBlock?: string\n subtitle?: string\n description?: string\n}\n\nexport type StepListItemType = {\n subtitle: string\n description?: string\n}\n\nexport interface StepListItemProps extends StepListItemType {\n stepIndex: number\n visibleIndex: number\n onChangeStep: (stepIndex: number) => void\n classes?: StepListItemClasses\n}\n\nexport const StepListItem = ({ subtitle, description, stepIndex, visibleIndex, onChangeStep, classes }: StepListItemProps) => {\n const isCurrentStep = stepIndex === visibleIndex\n\n return (\n <div\n onClick={() => onChangeStep(stepIndex)}\n className={cn('flex items-center gap-4', classes?.root, { 'mobile:hidden': !isCurrentStep })}\n >\n <span\n className={cn('text-[40px] font-semibold text-color-primary-default/20', classes?.stepIndex, {\n 'text-color-primary-default': isCurrentStep\n })}\n >\n 0{stepIndex + 1}\n </span>\n\n <div className={cn('flex flex-col gap-1', classes?.textBlock)}>\n <h5\n className={cn('desk-body-medium-l text-color-tetriary', classes?.subtitle, {\n 'text-color-dark': isCurrentStep\n })}\n >\n {subtitle}\n </h5>\n {description && (\n <p\n className={cn('desk-body-regular-m text-color-tetriary', classes?.description, {\n 'text-color-dark': isCurrentStep\n })}\n >\n {description}\n </p>\n )}\n </div>\n </div>\n )\n}\n"],"names":["StepListItem","subtitle","description","stepIndex","visibleIndex","onChangeStep","classes","isCurrentStep","jsxs","cn","jsx"],"mappings":"+FAsBO,MAAMA,EAAe,CAAC,CAAE,SAAAC,EAAU,YAAAC,EAAa,UAAAC,EAAW,aAAAC,EAAc,aAAAC,EAAc,QAAAC,KAAiC,CAC5H,MAAMC,EAAgBJ,IAAcC,EAEpC,OACEI,EAAC,MAAA,CACC,QAAS,IAAMH,EAAaF,CAAS,EACrC,UAAWM,EAAG,0BAA2BH,GAAS,KAAM,CAAE,gBAAiB,CAACC,EAAe,EAE3F,SAAA,CAAAC,EAAC,OAAA,CACC,UAAWC,EAAG,0DAA2DH,GAAS,UAAW,CAC3F,6BAA8BC,CAAA,CAC/B,EACF,SAAA,CAAA,IACGJ,EAAY,CAAA,CAAA,CAAA,IAGf,MAAA,CAAI,UAAWM,EAAG,sBAAuBH,GAAS,SAAS,EAC1D,SAAA,CAAAI,EAAC,KAAA,CACC,UAAWD,EAAG,yCAA0CH,GAAS,SAAU,CACzE,kBAAmBC,CAAA,CACpB,EAEA,SAAAN,CAAA,CAAA,EAEFC,GACCQ,EAAC,IAAA,CACC,UAAWD,EAAG,0CAA2CH,GAAS,YAAa,CAC7E,kBAAmBC,CAAA,CACpB,EAEA,SAAAL,CAAA,CAAA,CACH,CAAA,CAEJ,CAAA,CAAA,CAAA,CAGN"}
@@ -0,0 +1,2 @@
1
+ import{jsx as s}from"react/jsx-runtime";import{StepListItem as l}from"./StepListItemType.js";import{cn as o}from"../../../../utils/cn.js";const c=({stepsList:p,visibleIndex:r,onChangeStep:m,classes:t})=>s("div",{className:o("flex w-full max-w-[600px] flex-col gap-8",t?.stepsWrapper),children:p?.map((e,i)=>s(l,{visibleIndex:r,stepIndex:i,onChangeStep:m,classes:t?.stepListItemClasses,...e},e.subtitle))});export{c as StepsList};
2
+ //# sourceMappingURL=StepsList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StepsList.js","sources":["../../../../../../../lib/shared/ui/carousel/ui/stepsList/StepsList.tsx"],"sourcesContent":["import { StepListItem, type StepListItemClasses, type StepListItemType } from './StepListItemType'\nimport { cn } from '$/shared/utils'\n\nexport type StepListClasses = {\n stepListItemClasses?: StepListItemClasses\n stepsWrapper?: string\n}\n\nexport interface StepsListProps {\n stepsList: StepListItemType[]\n visibleIndex: number\n onChangeStep: (stepIndex: number) => void\n heading?: string\n classes?: StepListClasses\n}\n\nexport const StepsList = ({ stepsList, visibleIndex, onChangeStep, classes }: StepsListProps) => {\n return (\n <div className={cn('flex w-full max-w-[600px] flex-col gap-8', classes?.stepsWrapper)}>\n {stepsList?.map((step, stepIndex) => (\n <StepListItem\n key={step.subtitle}\n visibleIndex={visibleIndex}\n stepIndex={stepIndex}\n onChangeStep={onChangeStep}\n classes={classes?.stepListItemClasses}\n {...step}\n />\n ))}\n </div>\n )\n}\n"],"names":["StepsList","stepsList","visibleIndex","onChangeStep","classes","jsx","cn","step","stepIndex","StepListItem"],"mappings":"0IAgBO,MAAMA,EAAY,CAAC,CAAE,UAAAC,EAAW,aAAAC,EAAc,aAAAC,EAAc,QAAAC,KAE/DC,EAAC,MAAA,CAAI,UAAWC,EAAG,2CAA4CF,GAAS,YAAY,EACjF,SAAAH,GAAW,IAAI,CAACM,EAAMC,IACrBH,EAACI,EAAA,CAEC,aAAAP,EACA,UAAAM,EACA,aAAAL,EACA,QAASC,GAAS,oBACjB,GAAGG,CAAA,EALCA,EAAK,QAAA,CAOb,EACH"}
@@ -0,0 +1,2 @@
1
+ import{StepsList as o}from"./StepsList.js";export{o as StepsList};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CarouselBase.js","sources":["../../../../../lib/shared/ui/carouselBase/CarouselBase.tsx"],"sourcesContent":["import { type HTMLAttributes, type ReactNode } from 'react'\nimport { type EmblaOptionsType } from 'embla-carousel'\nimport type { AutoplayOptionsType } from 'embla-carousel-autoplay'\nimport { useDevice } from '../../hooks'\nimport { Heading } from '../heading'\nimport {\n defaultAutoPlayOptions,\n defaultCarouselOptions,\n defaultDotsOptions,\n defaultNavArrowOptions,\n type DotsOptions,\n type NavArrowOptions,\n useArrowNavigation,\n useCarousel,\n useDotsNavigation\n} from './model'\nimport { ArrowNavigationButton, type ArrowNavigationButtonClasses, CarouselContent, type CarouselContentClasses } from './ui'\nimport { ContainerWithNavigation, type ContainerWithNavigationClasses } from './ui/ContainerWithNavigation'\nimport { cn } from '$/shared/utils'\n\nexport type CarouselClasses = {\n root?: string\n header?: string\n heading?: string\n arrowsNavWrapper?: string\n arrowLeftClasses?: ArrowNavigationButtonClasses\n arrowRightClasses?: ArrowNavigationButtonClasses\n containerWithNavClasses?: ContainerWithNavigationClasses\n carouselContentClasses?: CarouselContentClasses\n}\n\nexport interface CarouselBaseProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n heading?: string\n carouselOptions?: EmblaOptionsType\n dotsOptions?: DotsOptions\n navArrowOptions?: NavArrowOptions\n autoPlayOptions?: AutoplayOptionsType\n setVisibleIndex: (index: number) => void\n visibleIndex: number\n classes?: CarouselClasses\n}\n\n/**\n * @deprecated dont use\n */\nexport const CarouselBase = ({\n dotsOptions = defaultDotsOptions,\n navArrowOptions = defaultNavArrowOptions,\n carouselOptions = defaultCarouselOptions,\n heading,\n autoPlayOptions,\n setVisibleIndex,\n visibleIndex,\n children,\n classes,\n ...props\n}: CarouselBaseProps) => {\n const mergedCarouselOptions = { ...defaultCarouselOptions, ...carouselOptions }\n const mergedAutoPlayOptions = { ...defaultAutoPlayOptions, ...autoPlayOptions }\n const mergedNavArrowOptions = { ...defaultNavArrowOptions, ...navArrowOptions }\n const mergedDotsOptions = { ...defaultDotsOptions, ...dotsOptions }\n\n const { emblaApi, navigationHandler, emblaRef } = useCarousel({\n carouselOptions: mergedCarouselOptions,\n autoPlayOptions: mergedAutoPlayOptions\n })\n\n const dotsProps = useDotsNavigation({ emblaApi, navigationHandler, setVisibleIndex })\n const { prevBtnDisabled, nextBtnDisabled, onClickNavigationButton } = useArrowNavigation({\n emblaApi,\n navigationHandler\n })\n\n const { isMobile, isDesktop } = useDevice()\n const { deskVisible, mobVisible, position: navArrowPosition } = mergedNavArrowOptions ?? {}\n\n //Отображения стрелок если переданы и мобильное разрешение\n const withNavArrowsOnMob = mobVisible && isMobile\n //Отображения стрелок если переданы и полноэкранное разрешение\n const winNavArrowsOnDesk = deskVisible && isDesktop\n //Отображения стрелок если переданы\n const winNavArrows = winNavArrowsOnDesk || withNavArrowsOnMob\n\n const withHeadingAndArrowsTop = Boolean(heading) || (winNavArrows && navArrowPosition === 'top-right')\n\n return (\n <div className={cn('flex flex-col', classes?.root)} {...props}>\n {withHeadingAndArrowsTop && (\n <div className={cn('flex items-center justify-between gap-6', { 'mb-6': withHeadingAndArrowsTop }, classes?.header)}>\n {Boolean(heading) && (\n <Heading as='h2' className={cn(classes?.heading)}>\n Другие предложения\n </Heading>\n )}\n\n {winNavArrows && navArrowPosition === 'top-right' && (\n <div className={cn('ml-auto flex items-center gap-2', classes?.arrowsNavWrapper)}>\n <ArrowNavigationButton\n mode='prev'\n onClick={onClickNavigationButton}\n disabled={prevBtnDisabled}\n classes={classes?.arrowLeftClasses}\n />\n <ArrowNavigationButton\n mode='next'\n onClick={onClickNavigationButton}\n disabled={nextBtnDisabled}\n classes={classes?.arrowRightClasses}\n />\n </div>\n )}\n </div>\n )}\n\n {winNavArrows && navArrowPosition === 'center' ? (\n <ContainerWithNavigation\n onClickNavigationButton={onClickNavigationButton}\n prevBtnDisabled={prevBtnDisabled}\n nextBtnDisabled={nextBtnDisabled}\n classes={classes?.containerWithNavClasses}\n >\n <CarouselContent\n visibleIndex={visibleIndex}\n dotsOptions={mergedDotsOptions}\n ref={emblaRef}\n dotsProps={dotsProps}\n classes={classes?.carouselContentClasses}\n >\n {children}\n </CarouselContent>\n </ContainerWithNavigation>\n ) : (\n <CarouselContent\n visibleIndex={visibleIndex}\n dotsOptions={mergedDotsOptions}\n ref={emblaRef}\n dotsProps={dotsProps}\n classes={classes?.carouselContentClasses}\n >\n {children}\n </CarouselContent>\n )}\n </div>\n )\n}\n"],"names":["CarouselBase","dotsOptions","defaultDotsOptions","navArrowOptions","defaultNavArrowOptions","carouselOptions","defaultCarouselOptions","heading","autoPlayOptions","setVisibleIndex","visibleIndex","children","classes","props","mergedCarouselOptions","mergedAutoPlayOptions","defaultAutoPlayOptions","mergedNavArrowOptions","mergedDotsOptions","emblaApi","navigationHandler","emblaRef","useCarousel","dotsProps","useDotsNavigation","prevBtnDisabled","nextBtnDisabled","onClickNavigationButton","useArrowNavigation","isMobile","isDesktop","useDevice","deskVisible","mobVisible","navArrowPosition","winNavArrows","withHeadingAndArrowsTop","jsxs","cn","jsx","Heading","ArrowNavigationButton","ContainerWithNavigation","CarouselContent"],"mappings":"+tBA8CO,MAAMA,GAAe,CAAC,CAC3B,YAAAC,EAAcC,EACd,gBAAAC,EAAkBC,EAClB,gBAAAC,EAAkBC,EAClB,QAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,SAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAAyB,CACvB,MAAMC,EAAwB,CAAE,GAAGR,EAAwB,GAAGD,CAAA,EACxDU,EAAwB,CAAE,GAAGC,EAAwB,GAAGR,CAAA,EACxDS,EAAwB,CAAE,GAAGb,EAAwB,GAAGD,CAAA,EACxDe,EAAoB,CAAE,GAAGhB,EAAoB,GAAGD,CAAA,EAEhD,CAAE,SAAAkB,EAAU,kBAAAC,EAAmB,SAAAC,CAAA,EAAaC,EAAY,CAC5D,gBAAiBR,EACjB,gBAAiBC,CAAA,CAClB,EAEKQ,EAAYC,EAAkB,CAAE,SAAAL,EAAU,kBAAAC,EAAmB,gBAAAX,EAAiB,EAC9E,CAAE,gBAAAgB,EAAiB,gBAAAC,EAAiB,wBAAAC,CAAA,EAA4BC,EAAmB,CACvF,SAAAT,EACA,kBAAAC,CAAA,CACD,EAEK,CAAE,SAAAS,EAAU,UAAAC,CAAA,EAAcC,EAAA,EAC1B,CAAE,YAAAC,EAAa,WAAAC,EAAY,SAAUC,CAAA,EAAqBjB,GAAyB,CAAA,EAOnFkB,EAFqBH,GAAeF,GAFfG,GAAcJ,EAMnCO,EAA0B,EAAQ7B,GAAa4B,GAAgBD,IAAqB,YAE1F,OACEG,EAAC,OAAI,UAAWC,EAAG,gBAAiB1B,GAAS,IAAI,EAAI,GAAGC,EACrD,SAAA,CAAAuB,GACCC,EAAC,MAAA,CAAI,UAAWC,EAAG,0CAA2C,CAAE,OAAQF,CAAA,EAA2BxB,GAAS,MAAM,EAC/G,SAAA,CAAA,EAAQL,GACPgC,EAACC,EAAA,CAAQ,GAAG,KAAK,UAAWF,EAAG1B,GAAS,OAAO,EAAG,SAAA,oBAAA,CAElD,EAGDuB,GAAgBD,IAAqB,aACpCG,EAAC,MAAA,CAAI,UAAWC,EAAG,kCAAmC1B,GAAS,gBAAgB,EAC7E,SAAA,CAAA2B,EAACE,EAAA,CACC,KAAK,OACL,QAASd,EACT,SAAUF,EACV,QAASb,GAAS,gBAAA,CAAA,EAEpB2B,EAACE,EAAA,CACC,KAAK,OACL,QAASd,EACT,SAAUD,EACV,QAASd,GAAS,iBAAA,CAAA,CACpB,CAAA,CACF,CAAA,EAEJ,EAGDuB,GAAgBD,IAAqB,SACpCK,EAACG,EAAA,CACC,wBAAAf,EACA,gBAAAF,EACA,gBAAAC,EACA,QAASd,GAAS,wBAElB,SAAA2B,EAACI,EAAA,CACC,aAAAjC,EACA,YAAaQ,EACb,IAAKG,EACL,UAAAE,EACA,QAASX,GAAS,uBAEjB,SAAAD,CAAA,CAAA,CACH,CAAA,EAGF4B,EAACI,EAAA,CACC,aAAAjC,EACA,YAAaQ,EACb,IAAKG,EACL,UAAAE,EACA,QAASX,GAAS,uBAEjB,SAAAD,CAAA,CAAA,CACH,EAEJ,CAEJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CarouselNative.js","sources":["../../../../../lib/shared/ui/carouselBase/CarouselNative.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport classNames from 'classnames'\nimport { motion } from 'framer-motion'\n\nexport interface CarouselNativeProps<Element> extends React.HTMLAttributes<HTMLDivElement> {\n items: Element[]\n renderComponent: (elementProps: Element) => React.JSX.Element\n columnGap?: number\n}\n\nexport const CarouselNative = <Element,>({\n className,\n items,\n renderComponent,\n columnGap = 10,\n ...props\n}: CarouselNativeProps<Element>) => {\n const [width, setWidth] = useState<number>(0)\n\n const carouselRef = useRef<HTMLDivElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n const listRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const carousel = carouselRef.current\n\n if (carousel) {\n setWidth(carousel.scrollWidth - carousel.offsetWidth)\n }\n }, [items])\n\n return (\n <div ref={containerRef} {...props} className='w-full max-w-[540px] overflow-hidden'>\n <motion.div\n ref={carouselRef}\n drag='x'\n dragElastic={0.15}\n dragConstraints={{ right: 0, left: -width }}\n dragTransition={{ bounceDamping: 30, power: 0.33 }}\n transition={{ duration: 0.2, ease: 'easeInOut' }}\n className='flex cursor-pointer flex-col gap-3'\n >\n <div className={classNames('inline-flex w-max flex-col', className)}>\n <div ref={listRef} className='flex' style={{ columnGap }}>\n {items.map((item, cellIndex) => (\n <motion.div key={`cell-${cellIndex}`} className='w-max'>\n {renderComponent(item)}\n </motion.div>\n ))}\n </div>\n </div>\n </motion.div>\n </div>\n )\n}\n"],"names":["CarouselNative","className","items","renderComponent","columnGap","props","width","setWidth","useState","carouselRef","useRef","containerRef","listRef","useEffect","carousel","jsx","motion","classNames","item","cellIndex"],"mappings":"wLAUO,MAAMA,EAAiB,CAAW,CACvC,UAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,UAAAC,EAAY,GACZ,GAAGC,CACL,IAAoC,CAClC,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAiB,CAAC,EAEtCC,EAAcC,EAAuB,IAAI,EACzCC,EAAeD,EAAuB,IAAI,EAC1CE,EAAUF,EAAuB,IAAI,EAE3C,OAAAG,EAAU,IAAM,CACd,MAAMC,EAAWL,EAAY,QAEzBK,GACFP,EAASO,EAAS,YAAcA,EAAS,WAAW,CAExD,EAAG,CAACZ,CAAK,CAAC,IAGP,MAAA,CAAI,IAAKS,EAAe,GAAGN,EAAO,UAAU,uCAC3C,SAAAU,EAACC,EAAO,IAAP,CACC,IAAKP,EACL,KAAK,IACL,YAAa,IACb,gBAAiB,CAAE,MAAO,EAAG,KAAM,CAACH,CAAA,EACpC,eAAgB,CAAE,cAAe,GAAI,MAAO,GAAA,EAC5C,WAAY,CAAE,SAAU,GAAK,KAAM,WAAA,EACnC,UAAU,qCAEV,WAAC,MAAA,CAAI,UAAWW,EAAW,6BAA8BhB,CAAS,EAChE,SAAAc,EAAC,MAAA,CAAI,IAAKH,EAAS,UAAU,OAAO,MAAO,CAAE,UAAAR,GAC1C,SAAAF,EAAM,IAAI,CAACgB,EAAMC,IAChBJ,EAACC,EAAO,IAAP,CAAqC,UAAU,QAC7C,SAAAb,EAAgBe,CAAI,GADN,QAAQC,CAAS,EAElC,CACD,EACH,CAAA,CACF,CAAA,CAAA,EAEJ,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{CarouselBase as e}from"./CarouselBase.js";import{ArrowNavigationButton as a}from"./ui/ArrowNavigationButton.js";import{CarouselSlide as m}from"./ui/CarouselSlide.js";import{DotsNavigations as i}from"./ui/DotsNavigations.js";import{SlideProductCard as x}from"./ui/slideVariants/SlideProductCard.js";import{SlideOnlyImage as d}from"./ui/slideVariants/SlideOnlyImage.js";import{SlideFullScreen as u}from"./ui/slideVariants/SlideFullScreen.js";import{CarouselContent as S}from"./ui/CarouselContent.js";export{a as ArrowNavigationButton,e as CarouselBase,S as CarouselContent,m as CarouselSlide,i as DotsNavigations,u as SlideFullScreen,d as SlideOnlyImage,x as SlideProductCard};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{jsx as t}from"react/jsx-runtime";import{SlideFullScreen as r}from"../ui/slideVariants/SlideFullScreen.js";import{SlideOnlyImage as o}from"../ui/slideVariants/SlideOnlyImage.js";import{SlideProductCard as i}from"../ui/slideVariants/SlideProductCard.js";const u={dragFree:!0,loop:!1,align:"start",slidesToScroll:1},d={position:"center",deskVisible:!0,mobVisible:!0},c={position:"top-right",deskVisible:!0,mobVisible:!1},m={active:!0},f=e=>{switch(e.variant){case"productCard":return t(i,{...e});case"onlyImage":return t(o,{...e});case"fullScreen":return t(r,{...e})}};export{m as defaultAutoPlayOptions,u as defaultCarouselOptions,d as defaultDotsOptions,c as defaultNavArrowOptions,f as renderSlideVariant};
2
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../lib/shared/ui/carouselBase/model/helpers.tsx"],"sourcesContent":["import type { EmblaOptionsType } from 'embla-carousel'\nimport type { AutoplayOptionsType } from 'embla-carousel-autoplay'\nimport { SlideFullScreen, SlideOnlyImage, SlideProductCard } from '../ui'\nimport type { CarouselSlideVariant, DotsOptions, NavArrowOptions } from './types'\nimport type { DiscriminatedUnion } from '$/shared/types'\n\nexport const defaultCarouselOptions: EmblaOptionsType = {\n dragFree: true,\n loop: false,\n align: 'start',\n slidesToScroll: 1\n}\n\nexport const defaultDotsOptions: DotsOptions = {\n position: 'center',\n deskVisible: true,\n mobVisible: true\n}\n\nexport const defaultNavArrowOptions: NavArrowOptions = {\n position: 'top-right',\n deskVisible: true,\n mobVisible: false\n}\n\nexport const defaultAutoPlayOptions: AutoplayOptionsType = {\n active: true\n}\n\nexport const renderSlideVariant = (props: DiscriminatedUnion<'variant', CarouselSlideVariant>) => {\n switch (props.variant) {\n case 'productCard':\n return <SlideProductCard {...props} />\n case 'onlyImage':\n return <SlideOnlyImage {...props} />\n case 'fullScreen':\n return <SlideFullScreen {...props} />\n }\n}\n"],"names":["defaultCarouselOptions","defaultDotsOptions","defaultNavArrowOptions","defaultAutoPlayOptions","renderSlideVariant","props","jsx","SlideProductCard","SlideOnlyImage","SlideFullScreen"],"mappings":"mQAMO,MAAMA,EAA2C,CACtD,SAAU,GACV,KAAM,GACN,MAAO,QACP,eAAgB,CAClB,EAEaC,EAAkC,CAC7C,SAAU,SACV,YAAa,GACb,WAAY,EACd,EAEaC,EAA0C,CACrD,SAAU,YACV,YAAa,GACb,WAAY,EACd,EAEaC,EAA8C,CACzD,OAAQ,EACV,EAEaC,EAAsBC,GAA+D,CAChG,OAAQA,EAAM,QAAA,CACZ,IAAK,cACH,OAAOC,EAACC,EAAA,CAAkB,GAAGF,CAAA,CAAO,EACtC,IAAK,YACH,OAAOC,EAACE,EAAA,CAAgB,GAAGH,CAAA,CAAO,EACpC,IAAK,aACH,OAAOC,EAACG,EAAA,CAAiB,GAAGJ,CAAA,CAAO,CAAA,CAEzC"}
@@ -0,0 +1,2 @@
1
+ import{useArrowNavigation as e}from"./useArrowNavigation.js";import{useDotsNavigation as a}from"./useDotsNavigation.js";import{useCarousel as i}from"./useCarousel.js";export{e as useArrowNavigation,i as useCarousel,a as useDotsNavigation};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{useState as c,useCallback as n,useEffect as v}from"react";const N=({emblaApi:t,navigationHandler:s})=>{const[o,u]=c(!0),[f,l]=c(!0),x=n(r=>{if(t){switch(r){case"prev":t.scrollPrev();break;case"next":t.scrollNext();break}s&&s(t)}},[t,s]),e=n(r=>{u(!r.canScrollPrev()),l(!r.canScrollNext())},[]);return v(()=>{t&&(e(t),t.on("reInit",e).on("select",e))},[t,e]),{prevBtnDisabled:o,nextBtnDisabled:f,onClickNavigationButton:x}};export{N as useArrowNavigation};
2
+ //# sourceMappingURL=useArrowNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useArrowNavigation.js","sources":["../../../../../../../lib/shared/ui/carouselBase/model/hooks/useArrowNavigation.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport type { EmblaCarouselType } from 'embla-carousel'\nimport type { NavigationMode } from '../types'\n\ntype UseArrowNavigationProps = {\n emblaApi: EmblaCarouselType | undefined\n navigationHandler?: (emblaApi: EmblaCarouselType) => void\n}\n\nexport const useArrowNavigation = ({ emblaApi, navigationHandler }: UseArrowNavigationProps) => {\n const [prevBtnDisabled, setPrevBtnDisabled] = useState(true)\n const [nextBtnDisabled, setNextBtnDisabled] = useState(true)\n\n const onClickNavigationButton = useCallback(\n (mode: NavigationMode) => {\n if (!emblaApi) return\n switch (mode) {\n case 'prev':\n emblaApi.scrollPrev()\n break\n case 'next':\n emblaApi.scrollNext()\n break\n }\n\n if (navigationHandler) {\n navigationHandler(emblaApi)\n }\n },\n [emblaApi, navigationHandler]\n )\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setPrevBtnDisabled(!emblaApi.canScrollPrev())\n setNextBtnDisabled(!emblaApi.canScrollNext())\n }, [])\n\n useEffect(() => {\n if (!emblaApi) return\n\n onSelect(emblaApi)\n emblaApi.on('reInit', onSelect).on('select', onSelect)\n }, [emblaApi, onSelect])\n\n return {\n prevBtnDisabled,\n nextBtnDisabled,\n onClickNavigationButton\n }\n}\n"],"names":["useArrowNavigation","emblaApi","navigationHandler","prevBtnDisabled","setPrevBtnDisabled","useState","nextBtnDisabled","setNextBtnDisabled","onClickNavigationButton","useCallback","mode","onSelect","useEffect"],"mappings":"iEASO,MAAMA,EAAqB,CAAC,CAAE,SAAAC,EAAU,kBAAAC,KAAiD,CAC9F,KAAM,CAACC,EAAiBC,CAAkB,EAAIC,EAAS,EAAI,EACrD,CAACC,EAAiBC,CAAkB,EAAIF,EAAS,EAAI,EAErDG,EAA0BC,EAC7BC,GAAyB,CACxB,GAAKT,EACL,QAAQS,EAAA,CACN,IAAK,OACHT,EAAS,WAAA,EACT,MACF,IAAK,OACHA,EAAS,WAAA,EACT,KAAA,CAGAC,GACFA,EAAkBD,CAAQ,EAE9B,EACA,CAACA,EAAUC,CAAiB,CAAA,EAGxBS,EAAWF,EAAaR,GAAgC,CAC5DG,EAAmB,CAACH,EAAS,eAAe,EAC5CM,EAAmB,CAACN,EAAS,eAAe,CAC9C,EAAG,CAAA,CAAE,EAEL,OAAAW,EAAU,IAAM,CACTX,IAELU,EAASV,CAAQ,EACjBA,EAAS,GAAG,SAAUU,CAAQ,EAAE,GAAG,SAAUA,CAAQ,EACvD,EAAG,CAACV,EAAUU,CAAQ,CAAC,EAEhB,CACL,gBAAAR,EACA,gBAAAG,EACA,wBAAAE,CAAA,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{useCallback as p}from"react";import l from"embla-carousel-autoplay";import u from"embla-carousel-react";const b=({carouselOptions:t,autoPlayOptions:e})=>{const[r,s]=u(t,[l(e)]),a=p(n=>{const o=n?.plugins()?.autoplay;if(!o)return;(o.options.stopOnInteraction===!1?o.reset:o.stop)()},[]);return{emblaRef:r,emblaApi:s,navigationHandler:a}};export{b as useCarousel};
2
+ //# sourceMappingURL=useCarousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCarousel.js","sources":["../../../../../../../lib/shared/ui/carouselBase/model/hooks/useCarousel.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport type { EmblaCarouselType, EmblaOptionsType } from 'embla-carousel'\nimport Autoplay, { type AutoplayOptionsType } from 'embla-carousel-autoplay'\nimport useEmblaCarousel from 'embla-carousel-react'\n\ntype UseCarouselProps = {\n carouselOptions: EmblaOptionsType\n autoPlayOptions?: AutoplayOptionsType\n}\n\nexport const useCarousel = ({ carouselOptions, autoPlayOptions }: UseCarouselProps) => {\n const [emblaRef, emblaApi] = useEmblaCarousel(carouselOptions, [Autoplay(autoPlayOptions)])\n\n const navigationHandler = useCallback((emblaApi: EmblaCarouselType) => {\n const autoplay = emblaApi?.plugins()?.autoplay\n if (!autoplay) return\n\n const resetOrStop = autoplay.options.stopOnInteraction === false ? autoplay.reset : autoplay.stop\n\n resetOrStop()\n }, [])\n\n return { emblaRef, emblaApi, navigationHandler }\n}\n"],"names":["useCarousel","carouselOptions","autoPlayOptions","emblaRef","emblaApi","useEmblaCarousel","Autoplay","navigationHandler","useCallback","autoplay"],"mappings":"+GAUO,MAAMA,EAAc,CAAC,CAAE,gBAAAC,EAAiB,gBAAAC,KAAwC,CACrF,KAAM,CAACC,EAAUC,CAAQ,EAAIC,EAAiBJ,EAAiB,CAACK,EAASJ,CAAe,CAAC,CAAC,EAEpFK,EAAoBC,EAAaJ,GAAgC,CACrE,MAAMK,EAAWL,GAAU,QAAA,GAAW,SACtC,GAAI,CAACK,EAAU,QAEKA,EAAS,QAAQ,oBAAsB,GAAQA,EAAS,MAAQA,EAAS,MAE7F,CACF,EAAG,CAAA,CAAE,EAEL,MAAO,CAAE,SAAAN,EAAU,SAAAC,EAAU,kBAAAG,CAAA,CAC/B"}
@@ -0,0 +1,2 @@
1
+ import{useState as l,useCallback as r,useEffect as I}from"react";const C=({emblaApi:t,navigationHandler:c,setVisibleIndex:e})=>{const[S,u]=l([]),f=r(o=>{t&&(t.scrollTo(o),c&&c(t))},[t,c]),n=r(o=>{u(o.scrollSnapList())},[]),s=r(o=>{e(o.selectedScrollSnap())},[]);return I(()=>{t&&(n(t),s(t),t.on("reInit",n).on("reInit",s).on("select",s))},[t,n,s]),{scrollSnaps:S,onClickDot:f}};export{C as useDotsNavigation};
2
+ //# sourceMappingURL=useDotsNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDotsNavigation.js","sources":["../../../../../../../lib/shared/ui/carouselBase/model/hooks/useDotsNavigation.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport type { EmblaCarouselType } from 'embla-carousel'\n\ntype UseDotsNavigationProps = {\n emblaApi: EmblaCarouselType | undefined\n navigationHandler: (emblaApi: EmblaCarouselType) => void\n setVisibleIndex: (index: number) => void\n}\n\nexport type UseDotsNavigationReturn = {\n scrollSnaps: number[]\n onClickDot: (index: number) => void\n}\n\nexport const useDotsNavigation = ({ emblaApi, navigationHandler, setVisibleIndex }: UseDotsNavigationProps) => {\n const [scrollSnaps, setScrollSnaps] = useState<number[]>([])\n\n const onClickDot = useCallback(\n (index: number) => {\n if (!emblaApi) return\n emblaApi.scrollTo(index)\n if (navigationHandler) {\n navigationHandler(emblaApi)\n }\n },\n [emblaApi, navigationHandler]\n )\n\n const onInit = useCallback((emblaApi: EmblaCarouselType) => {\n setScrollSnaps(emblaApi.scrollSnapList())\n }, [])\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setVisibleIndex(emblaApi.selectedScrollSnap())\n }, [])\n\n useEffect(() => {\n if (!emblaApi) return\n\n onInit(emblaApi)\n onSelect(emblaApi)\n emblaApi.on('reInit', onInit).on('reInit', onSelect).on('select', onSelect)\n }, [emblaApi, onInit, onSelect])\n\n return {\n scrollSnaps,\n onClickDot\n }\n}\n"],"names":["useDotsNavigation","emblaApi","navigationHandler","setVisibleIndex","scrollSnaps","setScrollSnaps","useState","onClickDot","useCallback","index","onInit","onSelect","useEffect"],"mappings":"iEAcO,MAAMA,EAAoB,CAAC,CAAE,SAAAC,EAAU,kBAAAC,EAAmB,gBAAAC,KAA8C,CAC7G,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAmB,CAAA,CAAE,EAErDC,EAAaC,EAChBC,GAAkB,CACZR,IACLA,EAAS,SAASQ,CAAK,EACnBP,GACFA,EAAkBD,CAAQ,EAE9B,EACA,CAACA,EAAUC,CAAiB,CAAA,EAGxBQ,EAASF,EAAaP,GAAgC,CAC1DI,EAAeJ,EAAS,gBAAgB,CAC1C,EAAG,CAAA,CAAE,EAECU,EAAWH,EAAaP,GAAgC,CAC5DE,EAAgBF,EAAS,oBAAoB,CAC/C,EAAG,CAAA,CAAE,EAEL,OAAAW,EAAU,IAAM,CACTX,IAELS,EAAOT,CAAQ,EACfU,EAASV,CAAQ,EACjBA,EAAS,GAAG,SAAUS,CAAM,EAAE,GAAG,SAAUC,CAAQ,EAAE,GAAG,SAAUA,CAAQ,EAC5E,EAAG,CAACV,EAAUS,EAAQC,CAAQ,CAAC,EAExB,CACL,YAAAP,EACA,WAAAG,CAAA,CAEJ"}
@@ -0,0 +1,2 @@
1
+ import{defaultAutoPlayOptions as r,defaultCarouselOptions as e,defaultDotsOptions as a,defaultNavArrowOptions as s,renderSlideVariant as i}from"./helpers.js";import{useArrowNavigation as f}from"./hooks/useArrowNavigation.js";import{useDotsNavigation as n}from"./hooks/useDotsNavigation.js";import{useCarousel as d}from"./hooks/useCarousel.js";export{r as defaultAutoPlayOptions,e as defaultCarouselOptions,a as defaultDotsOptions,s as defaultNavArrowOptions,i as renderSlideVariant,f as useArrowNavigation,d as useCarousel,n as useDotsNavigation};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{jsxs as a,jsx as s}from"react/jsx-runtime";import{cn as o}from"../../../utils/cn.js";import{Icon as c}from"../../icon/Icon.js";const m=({mode:t,onClick:e,children:i,classes:r,...n})=>a("button",{className:o("group flex size-8 cursor-pointer items-center justify-center p-1",r?.button),type:"button",onClick:()=>e(t),...n,children:[s(c,{name:"arrows/arrowRight",className:o("h-full w-full text-icon-primary-default transition-colors group-disabled:text-icon-disabled",{"rotate-180":t==="prev"},r?.icon)}),i]});export{m as ArrowNavigationButton};
2
+ //# sourceMappingURL=ArrowNavigationButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrowNavigationButton.js","sources":["../../../../../../lib/shared/ui/carouselBase/ui/ArrowNavigationButton.tsx"],"sourcesContent":["import type { ComponentPropsWithRef } from 'react'\nimport { Icon } from '../../icon'\nimport type { NavigationMode } from '../model'\nimport { cn } from '$/shared/utils'\n\nexport type ArrowNavigationButtonClasses = {\n button?: string\n icon?: string\n}\n\ninterface ArrowNavigationButtonProps extends Omit<ComponentPropsWithRef<'button'>, 'onClick'> {\n mode: NavigationMode\n onClick: (mode: NavigationMode) => void\n classes?: ArrowNavigationButtonClasses\n}\n\nexport const ArrowNavigationButton = ({ mode, onClick, children, classes, ...props }: ArrowNavigationButtonProps) => {\n return (\n <button\n className={cn('group flex size-8 cursor-pointer items-center justify-center p-1', classes?.button)}\n type='button'\n onClick={() => onClick(mode)}\n {...props}\n >\n <Icon\n name='arrows/arrowRight'\n className={cn(\n 'h-full w-full text-icon-primary-default transition-colors group-disabled:text-icon-disabled',\n { 'rotate-180': mode === 'prev' },\n classes?.icon\n )}\n />\n {children}\n </button>\n )\n}\n"],"names":["ArrowNavigationButton","mode","onClick","children","classes","props","jsxs","cn","jsx","Icon"],"mappings":"sIAgBO,MAAMA,EAAwB,CAAC,CAAE,KAAAC,EAAM,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,GAAGC,KAEzEC,EAAC,SAAA,CACC,UAAWC,EAAG,mEAAoEH,GAAS,MAAM,EACjG,KAAK,SACL,QAAS,IAAMF,EAAQD,CAAI,EAC1B,GAAGI,EAEJ,SAAA,CAAAG,EAACC,EAAA,CACC,KAAK,oBACL,UAAWF,EACT,8FACA,CAAE,aAAcN,IAAS,MAAA,EACzBG,GAAS,IAAA,CACX,CAAA,EAEDD,CAAA,CAAA,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CarouselContent.js","sources":["../../../../../../lib/shared/ui/carouselBase/ui/CarouselContent.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from 'react'\nimport type { DotsOptions, UseDotsNavigationReturn } from '../model'\nimport { DotsNavigations, type DotsNavigationsClasses } from './DotsNavigations'\nimport { useDevice } from '$/shared/hooks'\nimport { cn } from '$/shared/utils'\n\nexport type CarouselContentClasses = {\n dotsClasses?: DotsNavigationsClasses\n slidesOverlay?: string\n slidesWrapper?: string\n}\n\nexport interface CarouselContentProps {\n classes?: CarouselContentClasses\n children: ReactNode\n dotsProps: UseDotsNavigationReturn\n dotsOptions: DotsOptions\n visibleIndex: number\n}\n\nexport const CarouselContent = forwardRef<HTMLDivElement, CarouselContentProps>(\n ({ visibleIndex, classes, children, dotsProps, dotsOptions }, ref) => {\n const { isMobile, isDesktop } = useDevice()\n const { mobVisible, deskVisible, ...dotsRestOptions } = dotsOptions ?? {}\n\n //Отображения точек если переданы и мобильное разрешение\n const withDotsOnMob = mobVisible && isMobile\n //Отображения точек если переданы и полноэкранное разрешение\n const withDotsOnDesk = deskVisible && isDesktop\n\n const dotsFullProps = {\n visibleIndex,\n ...dotsProps\n }\n\n return (\n <div className={cn('mx-auto overflow-hidden', classes?.slidesOverlay)} ref={ref}>\n <div className={cn('flex touch-pan-y gap-6', classes?.slidesWrapper)}>{children}</div>\n {(withDotsOnDesk || withDotsOnMob) && <DotsNavigations {...dotsFullProps} {...dotsRestOptions} />}\n </div>\n )\n }\n)\n"],"names":["CarouselContent","forwardRef","visibleIndex","classes","children","dotsProps","dotsOptions","ref","isMobile","isDesktop","useDevice","mobVisible","deskVisible","dotsRestOptions","withDotsOnMob","withDotsOnDesk","dotsFullProps","jsxs","cn","jsx","DotsNavigations"],"mappings":"8OAoBO,MAAMA,EAAkBC,EAC7B,CAAC,CAAE,aAAAC,EAAc,QAAAC,EAAS,SAAAC,EAAU,UAAAC,EAAW,YAAAC,CAAA,EAAeC,IAAQ,CACpE,KAAM,CAAE,SAAAC,EAAU,UAAAC,CAAA,EAAcC,EAAA,EAC1B,CAAE,WAAAC,EAAY,YAAAC,EAAa,GAAGC,CAAA,EAAoBP,GAAe,CAAA,EAGjEQ,EAAgBH,GAAcH,EAE9BO,EAAiBH,GAAeH,EAEhCO,EAAgB,CACpB,aAAAd,EACA,GAAGG,CAAA,EAGL,OACEY,EAAC,OAAI,UAAWC,EAAG,0BAA2Bf,GAAS,aAAa,EAAG,IAAAI,EACrE,SAAA,CAAAY,EAAC,OAAI,UAAWD,EAAG,yBAA0Bf,GAAS,aAAa,EAAI,SAAAC,EAAS,GAC9EW,GAAkBD,IAAkBK,EAACC,GAAiB,GAAGJ,EAAgB,GAAGH,CAAA,CAAiB,CAAA,EACjG,CAEJ,CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CarouselSlide.js","sources":["../../../../../../lib/shared/ui/carouselBase/ui/CarouselSlide.tsx"],"sourcesContent":["import { type CarouselSlideVariant, renderSlideVariant } from '../model'\nimport type { DiscriminatedUnion } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\nexport type CarouselSlideClasses = {\n root?: string\n slide?: string\n}\n\nexport type CarouselSlideProps = {\n classes?: CarouselSlideClasses\n}\n\nexport const CarouselSlide = ({ classes, ...props }: DiscriminatedUnion<'variant', CarouselSlideVariant>) => {\n return (\n <div className={cn(classes?.root)}>\n <div className={cn('flex translate-x-0 translate-y-0 transform-gpu select-none flex-col', classes?.slide)}>\n {renderSlideVariant(props)}\n </div>\n </div>\n )\n}\n"],"names":["CarouselSlide","classes","props","cn","jsx","renderSlideVariant"],"mappings":"2IAaO,MAAMA,EAAgB,CAAC,CAAE,QAAAC,EAAS,GAAGC,OAEvC,MAAA,CAAI,UAAWC,EAAGF,GAAS,IAAI,EAC9B,SAAAG,EAAC,MAAA,CAAI,UAAWD,EAAG,sEAAuEF,GAAS,KAAK,EACrG,SAAAI,EAAmBH,CAAK,EAC3B,EACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainerWithNavigation.js","sources":["../../../../../../lib/shared/ui/carouselBase/ui/ContainerWithNavigation.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport type { NavigationMode } from '../model'\nimport { ArrowNavigationButton, type ArrowNavigationButtonClasses } from './ArrowNavigationButton'\nimport { cn } from '$/shared/utils'\n\nexport type ContainerWithNavigationClasses = {\n wrapper?: string\n arrowLeftClasses?: ArrowNavigationButtonClasses\n arrowRightClasses?: ArrowNavigationButtonClasses\n}\n\nexport interface ContainerWithNavigationProps {\n children: ReactNode\n prevBtnDisabled: boolean\n nextBtnDisabled: boolean\n onClickNavigationButton: (mode: NavigationMode) => void\n classes?: ContainerWithNavigationClasses\n}\n\nexport const ContainerWithNavigation = ({\n children,\n prevBtnDisabled,\n nextBtnDisabled,\n onClickNavigationButton,\n classes\n}: ContainerWithNavigationProps) => {\n return (\n <div className={cn('relative flex items-center gap-1', classes?.wrapper)}>\n <ArrowNavigationButton\n mode='prev'\n onClick={onClickNavigationButton}\n disabled={prevBtnDisabled}\n classes={{\n button: cn('absolute -left-12 top-1/2 -transform-y-1/2', classes?.arrowLeftClasses?.button),\n icon: cn(classes?.arrowLeftClasses?.icon)\n }}\n />\n {children}\n <ArrowNavigationButton\n mode='next'\n onClick={onClickNavigationButton}\n disabled={nextBtnDisabled}\n classes={{\n button: cn('absolute -right-12 top-1/2 -transform-y-1/2', classes?.arrowRightClasses?.button),\n icon: cn(classes?.arrowRightClasses?.icon)\n }}\n />\n </div>\n )\n}\n"],"names":["ContainerWithNavigation","children","prevBtnDisabled","nextBtnDisabled","onClickNavigationButton","classes","cn","jsx","ArrowNavigationButton"],"mappings":"+JAmBO,MAAMA,EAA0B,CAAC,CACtC,SAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,wBAAAC,EACA,QAAAC,CACF,MAEK,MAAA,CAAI,UAAWC,EAAG,mCAAoCD,GAAS,OAAO,EACrE,SAAA,CAAAE,EAACC,EAAA,CACC,KAAK,OACL,QAASJ,EACT,SAAUF,EACV,QAAS,CACP,OAAQI,EAAG,6CAA8CD,GAAS,kBAAkB,MAAM,EAC1F,KAAMC,EAAGD,GAAS,kBAAkB,IAAI,CAAA,CAC1C,CAAA,EAEDJ,EACDM,EAACC,EAAA,CACC,KAAK,OACL,QAASJ,EACT,SAAUD,EACV,QAAS,CACP,OAAQG,EAAG,8CAA+CD,GAAS,mBAAmB,MAAM,EAC5F,KAAMC,EAAGD,GAAS,mBAAmB,IAAI,CAAA,CAC3C,CAAA,CACF,EACF"}
@@ -0,0 +1,2 @@
1
+ import{jsx as o}from"react/jsx-runtime";import{cn as s}from"../../../utils/cn.js";const i=({scrollSnaps:a,visibleIndex:m,onClickDot:c,position:t,classes:e,...n})=>o("div",{className:s("mt-4 flex items-center gap-[6px]",{"justify-center":t==="center","justify-end":t==="bot-right","justify-start":t==="bot-left"},e?.dotsWrapper),children:a.map((p,r)=>o("button",{type:"button",onClick:()=>c(r),className:s("size-2 cursor-pointer rounded-full bg-color-primary-tr-pressed",{"h-2 w-4 rounded-md bg-color-primary-default":r===m},e?.dot),...n},r))});export{i as DotsNavigations};
2
+ //# sourceMappingURL=DotsNavigations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DotsNavigations.js","sources":["../../../../../../lib/shared/ui/carouselBase/ui/DotsNavigations.tsx"],"sourcesContent":["import type { DotsOptions } from '../model'\nimport { cn } from '$/shared/utils'\n\nexport type DotsNavigationsClasses = {\n dotsWrapper?: string\n dot?: string\n}\n\ninterface DotsNavigationsProps extends Pick<DotsOptions, 'position'> {\n scrollSnaps: number[]\n onClickDot: (index: number) => void\n visibleIndex: number\n classes?: DotsNavigationsClasses\n}\n\nexport const DotsNavigations = ({ scrollSnaps, visibleIndex, onClickDot, position, classes, ...props }: DotsNavigationsProps) => {\n return (\n <div\n className={cn(\n 'mt-4 flex items-center gap-[6px]',\n {\n 'justify-center': position === 'center',\n 'justify-end': position === 'bot-right',\n 'justify-start': position === 'bot-left'\n },\n classes?.dotsWrapper\n )}\n >\n {scrollSnaps.map((_, index) => (\n <button\n type='button'\n key={index}\n onClick={() => onClickDot(index)}\n className={cn(\n 'size-2 cursor-pointer rounded-full bg-color-primary-tr-pressed',\n { 'h-2 w-4 rounded-md bg-color-primary-default': index === visibleIndex },\n classes?.dot\n )}\n {...props}\n ></button>\n ))}\n </div>\n )\n}\n"],"names":["DotsNavigations","scrollSnaps","visibleIndex","onClickDot","position","classes","props","jsx","cn","_","index"],"mappings":"kFAeO,MAAMA,EAAkB,CAAC,CAAE,YAAAC,EAAa,aAAAC,EAAc,WAAAC,EAAY,SAAAC,EAAU,QAAAC,EAAS,GAAGC,KAE3FC,EAAC,MAAA,CACC,UAAWC,EACT,mCACA,CACE,iBAAkBJ,IAAa,SAC/B,cAAeA,IAAa,YAC5B,gBAAiBA,IAAa,UAAA,EAEhCC,GAAS,WAAA,EAGV,SAAAJ,EAAY,IAAI,CAACQ,EAAGC,IACnBH,EAAC,SAAA,CACC,KAAK,SAEL,QAAS,IAAMJ,EAAWO,CAAK,EAC/B,UAAWF,EACT,iEACA,CAAE,8CAA+CE,IAAUR,CAAA,EAC3DG,GAAS,GAAA,EAEV,GAAGC,CAAA,EAPCI,CAAA,CASR,CAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ import{ArrowNavigationButton as e}from"./ArrowNavigationButton.js";import{CarouselSlide as l}from"./CarouselSlide.js";import{DotsNavigations as i}from"./DotsNavigations.js";import{CarouselContent as f}from"./CarouselContent.js";import{SlideProductCard as p}from"./slideVariants/SlideProductCard.js";import{SlideOnlyImage as d}from"./slideVariants/SlideOnlyImage.js";import{SlideFullScreen as S}from"./slideVariants/SlideFullScreen.js";export{e as ArrowNavigationButton,f as CarouselContent,l as CarouselSlide,i as DotsNavigations,S as SlideFullScreen,d as SlideOnlyImage,p as SlideProductCard};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{jsxs as t,jsx as r}from"react/jsx-runtime";import{cn as e}from"../../../../utils/cn.js";const i=({slideIndex:m,title:c,image:o,description:d,slideClasses:l})=>t("div",{className:e("flex h-full w-full flex-col gap-6",l?.root),children:[t("div",{className:e("flex items-center gap-4",l?.wrapper),children:[r("span",{className:e("mob-headline-bold-s flex size-10 items-center justify-center rounded-sm bg-color-blue-grey-500 text-color-white desktop:desk-title-bold-l desktop:size-12",l?.numeric),children:m+1}),t("div",{className:e("flex flex-1 flex-col gap-2",l?.textWrapper),children:[c&&r("div",{dangerouslySetInnerHTML:{__html:c},className:e(l?.title,"mob-title-bold-m desktop:desk-title-bold-s")}),d&&r("div",{dangerouslySetInnerHTML:{__html:d},className:e("desk-body-regular-l text-color-secondary",l?.description)})]})]}),o&&o?.src&&r("div",{className:e("mobile:h-[320px] mobile:w-[328px]"),children:r("img",{className:e("w-full object-cover mobile:h-[320px]",l?.image),src:o?.src,alt:o?.alt})})]});export{i as SlideFullScreen};
2
+ //# sourceMappingURL=SlideFullScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlideFullScreen.js","sources":["../../../../../../../lib/shared/ui/carouselBase/ui/slideVariants/SlideFullScreen.tsx"],"sourcesContent":["import type { ImageProps } from '../../model'\nimport { cn } from '$/shared/utils'\n\ntype SlideFullScreenClasses = {\n root?: string\n wrapper?: string\n numeric?: string\n textWrapper?: string\n title?: string\n description?: string\n image?: string\n}\n\nexport interface SlideFullScreenProps {\n slideIndex: number\n title?: string\n description?: string\n image?: ImageProps\n slideClasses?: SlideFullScreenClasses\n}\n\nexport const SlideFullScreen = ({ slideIndex, title, image, description, slideClasses }: SlideFullScreenProps) => {\n return (\n <div className={cn('flex h-full w-full flex-col gap-6', slideClasses?.root)}>\n <div className={cn('flex items-center gap-4', slideClasses?.wrapper)}>\n <span\n className={cn(\n 'mob-headline-bold-s flex size-10 items-center justify-center rounded-sm bg-color-blue-grey-500 text-color-white desktop:desk-title-bold-l desktop:size-12',\n slideClasses?.numeric\n )}\n >\n {slideIndex + 1}\n </span>\n\n <div className={cn('flex flex-1 flex-col gap-2', slideClasses?.textWrapper)}>\n {title && (\n <div\n dangerouslySetInnerHTML={{ __html: title }}\n className={cn(slideClasses?.title, 'mob-title-bold-m desktop:desk-title-bold-s')}\n />\n )}\n {description && (\n <div\n dangerouslySetInnerHTML={{ __html: description }}\n className={cn('desk-body-regular-l text-color-secondary', slideClasses?.description)}\n />\n )}\n </div>\n </div>\n {image && image?.src && (\n <div className={cn('mobile:h-[320px] mobile:w-[328px]')}>\n <img className={cn('w-full object-cover mobile:h-[320px]', slideClasses?.image)} src={image?.src} alt={image?.alt} />\n </div>\n )}\n </div>\n )\n}\n"],"names":["SlideFullScreen","slideIndex","title","image","description","slideClasses","cn","jsxs","jsx"],"mappings":"+FAqBO,MAAMA,EAAkB,CAAC,CAAE,WAAAC,EAAY,MAAAC,EAAO,MAAAC,EAAO,YAAAC,EAAa,aAAAC,OAEpE,MAAA,CAAI,UAAWC,EAAG,oCAAqCD,GAAc,IAAI,EACxE,SAAA,CAAAE,EAAC,OAAI,UAAWD,EAAG,0BAA2BD,GAAc,OAAO,EACjE,SAAA,CAAAG,EAAC,OAAA,CACC,UAAWF,EACT,4JACAD,GAAc,OAAA,EAGf,SAAAJ,EAAa,CAAA,CAAA,IAGf,MAAA,CAAI,UAAWK,EAAG,6BAA8BD,GAAc,WAAW,EACvE,SAAA,CAAAH,GACCM,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQN,CAAA,EACnC,UAAWI,EAAGD,GAAc,MAAO,4CAA4C,CAAA,CAAA,EAGlFD,GACCI,EAAC,MAAA,CACC,wBAAyB,CAAE,OAAQJ,CAAA,EACnC,UAAWE,EAAG,2CAA4CD,GAAc,WAAW,CAAA,CAAA,CACrF,CAAA,CAEJ,CAAA,EACF,EACCF,GAASA,GAAO,KACfK,EAAC,OAAI,UAAWF,EAAG,mCAAmC,EACpD,SAAAE,EAAC,MAAA,CAAI,UAAWF,EAAG,uCAAwCD,GAAc,KAAK,EAAG,IAAKF,GAAO,IAAK,IAAKA,GAAO,GAAA,CAAK,CAAA,CACrH,CAAA,EAEJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlideOnlyImage.js","sources":["../../../../../../../lib/shared/ui/carouselBase/ui/slideVariants/SlideOnlyImage.tsx"],"sourcesContent":["import type { ImageProps } from '../../model'\nimport { cn } from '$/shared/utils'\n\ntype SlideOnlyImageClasses = {\n root?: string\n image?: string\n}\n\nexport interface SlideOnlyImageProps {\n imgProps?: ImageProps\n slideClasses?: SlideOnlyImageClasses\n}\n\nexport const SlideOnlyImage = ({ imgProps, slideClasses }: SlideOnlyImageProps) => {\n return (\n <div className={cn('h-full w-full', slideClasses?.root)}>\n {imgProps && imgProps?.src && (\n <img className={cn('w-full object-contain', slideClasses?.image)} src={imgProps?.src} alt={imgProps?.alt} />\n )}\n </div>\n )\n}\n"],"names":["SlideOnlyImage","imgProps","slideClasses","jsx","cn"],"mappings":"qFAaO,MAAMA,EAAiB,CAAC,CAAE,SAAAC,EAAU,aAAAC,KAEvCC,EAAC,MAAA,CAAI,UAAWC,EAAG,gBAAiBF,GAAc,IAAI,EACnD,SAAAD,GAAYA,GAAU,KACrBE,EAAC,OAAI,UAAWC,EAAG,wBAAyBF,GAAc,KAAK,EAAG,IAAKD,GAAU,IAAK,IAAKA,GAAU,GAAA,CAAK,CAAA,CAE9G"}
@@ -0,0 +1,2 @@
1
+ import{jsxs as a,jsx as r}from"react/jsx-runtime";import{cn as c}from"../../../../utils/cn.js";import{Button as m}from"../../../button/Button.js";const x=({title:o,imgProps:l,description:d,buttonProps:t,slideClasses:e})=>a("div",{className:c("flex h-full w-full flex-col justify-between rounded-md bg-[#F3F4F7] p-6",e?.root),children:[a("div",{className:c("flex flex-col gap-2",e?.wrapper),children:[a("div",{className:c("flex flex-col gap-2",e?.textWrapper),children:[o&&r("h3",{className:c("desk-title-bold-s text-color-dark",e?.title),children:o}),d&&r("p",{className:c("desk-body-medium-l text-color-tetriary",e?.description),children:d})]}),l&&l?.src&&r("img",{className:c("w-full object-contain",e?.image),src:l?.src,alt:l?.alt})]}),t&&r(m,{size:"sm",className:c("w-full",e?.button),...t,children:t?.children||"Оформить заявку"})]});export{x as SlideProductCard};
2
+ //# sourceMappingURL=SlideProductCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlideProductCard.js","sources":["../../../../../../../lib/shared/ui/carouselBase/ui/slideVariants/SlideProductCard.tsx"],"sourcesContent":["import { Button, type ButtonProps } from '../../../button'\nimport type { ImageProps } from '../../model'\nimport { cn } from '$/shared/utils'\n\ntype SlideProductCardClasses = {\n root?: string\n wrapper?: string\n textWrapper?: string\n title?: string\n description?: string\n image?: string\n button?: string\n}\n\nexport interface SlideProductCardProps {\n title?: string\n description?: string\n imgProps?: ImageProps\n buttonProps?: ButtonProps\n slideClasses?: SlideProductCardClasses\n}\n\nexport const SlideProductCard = ({ title, imgProps, description, buttonProps, slideClasses }: SlideProductCardProps) => {\n return (\n <div className={cn('flex h-full w-full flex-col justify-between rounded-md bg-[#F3F4F7] p-6', slideClasses?.root)}>\n <div className={cn('flex flex-col gap-2', slideClasses?.wrapper)}>\n <div className={cn('flex flex-col gap-2', slideClasses?.textWrapper)}>\n {title && <h3 className={cn('desk-title-bold-s text-color-dark', slideClasses?.title)}>{title}</h3>}\n {description && (\n <p className={cn('desk-body-medium-l text-color-tetriary', slideClasses?.description)}>{description}</p>\n )}\n </div>\n {imgProps && imgProps?.src && (\n <img className={cn('w-full object-contain', slideClasses?.image)} src={imgProps?.src} alt={imgProps?.alt} />\n )}\n </div>\n\n {buttonProps && (\n <Button size='sm' className={cn('w-full', slideClasses?.button)} {...buttonProps}>\n {buttonProps?.children || 'Оформить заявку'}\n </Button>\n )}\n </div>\n )\n}\n"],"names":["SlideProductCard","title","imgProps","description","buttonProps","slideClasses","cn","jsxs","jsx","Button"],"mappings":"kJAsBO,MAAMA,EAAmB,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,YAAAC,EAAa,YAAAC,EAAa,aAAAC,OAEzE,MAAA,CAAI,UAAWC,EAAG,0EAA2ED,GAAc,IAAI,EAC9G,SAAA,CAAAE,EAAC,OAAI,UAAWD,EAAG,sBAAuBD,GAAc,OAAO,EAC7D,SAAA,CAAAE,EAAC,OAAI,UAAWD,EAAG,sBAAuBD,GAAc,WAAW,EAChE,SAAA,CAAAJ,GAASO,EAAC,MAAG,UAAWF,EAAG,oCAAqCD,GAAc,KAAK,EAAI,SAAAJ,CAAA,CAAM,EAC7FE,KACE,IAAA,CAAE,UAAWG,EAAG,yCAA0CD,GAAc,WAAW,EAAI,SAAAF,CAAA,CAAY,CAAA,EAExG,EACCD,GAAYA,GAAU,KACrBM,EAAC,MAAA,CAAI,UAAWF,EAAG,wBAAyBD,GAAc,KAAK,EAAG,IAAKH,GAAU,IAAK,IAAKA,GAAU,GAAA,CAAK,CAAA,EAE9G,EAECE,GACCI,EAACC,EAAA,CAAO,KAAK,KAAK,UAAWH,EAAG,SAAUD,GAAc,MAAM,EAAI,GAAGD,EAClE,SAAAA,GAAa,UAAY,iBAAA,CAC5B,CAAA,EAEJ"}
@@ -0,0 +1,2 @@
1
+ import{SlideProductCard as o}from"./SlideProductCard.js";import{SlideOnlyImage as d}from"./SlideOnlyImage.js";import{SlideFullScreen as t}from"./SlideFullScreen.js";export{t as SlideFullScreen,d as SlideOnlyImage,o as SlideProductCard};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- import{jsx as r}from"react/jsx-runtime";import{CarouselNative as s}from"../../../carousel/CarouselNative.js";import{RadioGroupControl as a}from"./RadioGroupControl.js";import{cn as n}from"../../../../utils/cn.js";import{RadioItemCard as l}from"../../uncontrolled/radio/ui/RadioItemCard.js";const c=({options:t,...o})=>r(a,{options:t,...o,classes:{...o?.classes,list:n("flex flex-row gap-4 max-w-[540px] overflow-x-auto",o?.classes?.list)},renderComponent:({options:e,...m})=>r(s,{items:e,renderComponent:i=>r(l,{...m,item:i})})});export{c as RadioGroupCardControl};
1
+ import{jsx as r}from"react/jsx-runtime";import{CarouselNative as s}from"../../../carouselBase/CarouselNative.js";import{RadioGroupControl as a}from"./RadioGroupControl.js";import{cn as n}from"../../../../utils/cn.js";import{RadioItemCard as l}from"../../uncontrolled/radio/ui/RadioItemCard.js";const c=({options:t,...o})=>r(a,{options:t,...o,classes:{...o?.classes,list:n("flex flex-row gap-4 max-w-[540px] overflow-x-auto",o?.classes?.list)},renderComponent:({options:e,...m})=>r(s,{items:e,renderComponent:i=>r(l,{...m,item:i})})});export{c as RadioGroupCardControl};
2
2
  //# sourceMappingURL=RadioGroupCardControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroupCardControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/radio/RadioGroupCardControl.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { CarouselNative } from '../../../carousel/CarouselNative'\nimport { RadioItemCard } from '../../uncontrolled/radio'\nimport { RadioGroupControl, type RadioGroupControlProps } from './RadioGroupControl'\nimport { cn } from '$/shared/utils'\n\nexport const RadioGroupCardControl = <TFieldValues extends FieldValues = FieldValues>({\n options,\n ...props\n}: RadioGroupControlProps<TFieldValues>) => {\n return (\n <RadioGroupControl\n options={options}\n {...props}\n classes={{\n ...props?.classes,\n list: cn('flex flex-row gap-4 max-w-[540px] overflow-x-auto', props?.classes?.list)\n }}\n renderComponent={({ options, ...props }) => (\n <CarouselNative items={options} renderComponent={(option) => <RadioItemCard {...props} item={option} />} />\n )}\n />\n )\n}\n"],"names":["RadioGroupCardControl","options","props","jsx","RadioGroupControl","cn","CarouselNative","option","RadioItemCard"],"mappings":"kSAMO,MAAMA,EAAwB,CAAiD,CACpF,QAAAC,EACA,GAAGC,CACL,IAEIC,EAACC,EAAA,CACC,QAAAH,EACC,GAAGC,EACJ,QAAS,CACP,GAAGA,GAAO,QACV,KAAMG,EAAG,sDAAuDH,GAAO,SAAS,IAAI,CAAA,EAEtF,gBAAiB,CAAC,CAAE,QAAAD,EAAS,GAAGC,KAC9BC,EAACG,EAAA,CAAe,MAAOL,EAAS,gBAAkBM,GAAWJ,EAACK,GAAe,GAAGN,EAAO,KAAMK,CAAA,CAAQ,CAAA,CAAI,CAAA,CAAA"}
1
+ {"version":3,"file":"RadioGroupCardControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/radio/RadioGroupCardControl.tsx"],"sourcesContent":["import { type FieldValues } from 'react-hook-form'\nimport { CarouselNative } from '../../../carouselBase/CarouselNative'\nimport { RadioItemCard } from '../../uncontrolled/radio'\nimport { RadioGroupControl, type RadioGroupControlProps } from './RadioGroupControl'\nimport { cn } from '$/shared/utils'\n\nexport const RadioGroupCardControl = <TFieldValues extends FieldValues = FieldValues>({\n options,\n ...props\n}: RadioGroupControlProps<TFieldValues>) => {\n return (\n <RadioGroupControl\n options={options}\n {...props}\n classes={{\n ...props?.classes,\n list: cn('flex flex-row gap-4 max-w-[540px] overflow-x-auto', props?.classes?.list)\n }}\n renderComponent={({ options, ...props }) => (\n <CarouselNative items={options} renderComponent={(option) => <RadioItemCard {...props} item={option} />} />\n )}\n />\n )\n}\n"],"names":["RadioGroupCardControl","options","props","jsx","RadioGroupControl","cn","CarouselNative","option","RadioItemCard"],"mappings":"sSAMO,MAAMA,EAAwB,CAAiD,CACpF,QAAAC,EACA,GAAGC,CACL,IAEIC,EAACC,EAAA,CACC,QAAAH,EACC,GAAGC,EACJ,QAAS,CACP,GAAGA,GAAO,QACV,KAAMG,EAAG,sDAAuDH,GAAO,SAAS,IAAI,CAAA,EAEtF,gBAAiB,CAAC,CAAE,QAAAD,EAAS,GAAGC,KAC9BC,EAACG,EAAA,CAAe,MAAOL,EAAS,gBAAkBM,GAAWJ,EAACK,GAAe,GAAGN,EAAO,KAAMK,CAAA,CAAQ,CAAA,CAAI,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import{jsxs as m,jsx as i}from"react/jsx-runtime";import*as b from"react";import{forwardRef as D}from"react";import{NumericFormat as E}from"react-number-format";import{SliderInner as J}from"../Slider.js";import{useSliderAlgorithmic as K}from"./hooks/useSliderAlgorithmic.js";import{cn as r}from"../../../../../../utils/cn.js";import{mergeRefs as Q}from"../../../../../../utils/mergeRefs.js";import{getInputSliderSuffix as f}from"../../model/helpers/getInputSliderSuffix.js";import{InputBase as T}from"../../../input/Input.js";import{Icon as U}from"../../../../../icon/Icon.js";const W=i(U,{name:"general/edit",className:"size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800"}),ie=D(({classes:h,invalid:I,externalHandlers:e,disabled:p,value:t,onChange:n,min:s,max:c,suffix:a,label:N,attachmentProps:u,additionalSuffix:x,readOnly:l,componentType:k,dataLayers:w,...d},S)=>{const y=b.useId(),g=b.useRef(null),C=()=>{g?.current?.focus()},{sliderValue:R,sliderStep:v,sliderMin:B,sliderMax:j,handleChangeSlider:A}=K({min:Number(s),max:Number(c),defaultValue:0,value:t,onChange:n}),{root:F,slider:M,textLeft:V,textRight:$,inputRoot:z,textContainer:G,input:L,field:q}=h||{};return m("div",{"aria-label":k,className:r("flex w-full flex-col gap-1",F),children:[m("div",{className:r("relative w-full select-none",{"select-none":l},q),children:[i(T,{label:N,value:t,attachmentProps:{onClickIcon:l?void 0:u?.onClickIcon||C,icon:l?void 0:u?.icon||W,...u},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...z},onBlur:o=>{d?.onBlur&&d?.onBlur(o),e?.onBlur&&e.onBlur(o)},onClick:e?.onClick,onFocus:e?.onBlur,renderValues:()=>i(E,{id:y,readOnly:l,"aria-invalid":I?"true":"false",value:t,disabled:p,suffix:` ${f(a,t)} ${x??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:Q(g,S),onValueChange:({floatValue:o})=>{o!==void 0&&(n&&n(o),e?.onInputChange?.(o))},"data-id":"slider",className:r("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",L),"data-layer-id":w?.targetId,...d})}),i(J,{classes:{...M},step:v,value:R,disabled:p,min:Number(B),max:Number(j),onChange:A,externalHandlers:e})]}),m("div",{className:r("flex justify-between",G),children:[s&&i("span",{className:r("desk-body-regular-m text-color-tetriary",V),children:f(a,s,!1)}),c&&i("span",{className:r("desk-body-regular-m text-color-tetriary",$),children:f(a,c,!1)})]})]})});export{ie as SliderAlgorithmic};
1
+ import{jsxs as m,jsx as i}from"react/jsx-runtime";import*as h from"react";import{forwardRef as E}from"react";import{NumericFormat as J}from"react-number-format";import{SliderInner as K}from"../Slider.js";import{useSliderAlgorithmic as Q}from"./hooks/useSliderAlgorithmic.js";import{cn as r}from"../../../../../../utils/cn.js";import{mergeRefs as T}from"../../../../../../utils/mergeRefs.js";import{getInputSliderSuffix as f}from"../../model/helpers/getInputSliderSuffix.js";import{InputBase as U}from"../../../input/Input.js";import{Icon as W}from"../../../../../icon/Icon.js";const X=i(W,{name:"general/edit",className:"size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800"}),te=E(({classes:b,invalid:I,externalHandlers:e,disabled:p,value:t,onChange:n,min:s,max:c,suffix:a,label:N,attachmentProps:u,additionalSuffix:x,readOnly:l,componentType:k,dataLayers:w,...d},S)=>{const y=h.useId(),g=h.useRef(null),B=()=>{g?.current?.focus()},{sliderValue:C,sliderStep:R,sliderMin:v,sliderMax:j,handleChangeSlider:A,handleBlur:F}=Q({min:Number(s),max:Number(c),defaultValue:0,value:t,onChange:n}),{root:M,slider:V,textLeft:$,textRight:z,inputRoot:G,textContainer:L,input:q,field:D}=b||{};return m("div",{"aria-label":k,className:r("flex w-full flex-col gap-1",M),children:[m("div",{className:r("relative w-full select-none",{"select-none":l},D),children:[i(U,{label:N,value:t,attachmentProps:{onClickIcon:l?void 0:u?.onClickIcon||B,icon:l?void 0:u?.icon||X,...u},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...G},onBlur:o=>{d?.onBlur&&d?.onBlur(o),e?.onBlur&&e.onBlur(o),F()},onClick:e?.onClick,onFocus:e?.onBlur,renderValues:()=>i(J,{id:y,readOnly:l,"aria-invalid":I?"true":"false",value:t,disabled:p,suffix:` ${f(a,t)} ${x??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:T(g,S),onValueChange:({floatValue:o})=>{o!==void 0&&(n&&n(o),e?.onInputChange?.(o))},"data-id":"slider",className:r("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",q),"data-layer-id":w?.targetId,...d})}),i(K,{classes:{...V},step:R,value:C,disabled:p,min:Number(v),max:Number(j),onChange:A,externalHandlers:e})]}),m("div",{className:r("flex justify-between",L),children:[s&&i("span",{className:r("desk-body-regular-m text-color-tetriary",$),children:f(a,s,!1)}),c&&i("span",{className:r("desk-body-regular-m text-color-tetriary",z),children:f(a,c,!1)})]})]})});export{te as SliderAlgorithmic};
2
2
  //# sourceMappingURL=SliderAlgorithmic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliderAlgorithmic.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { type SliderAlgorithmicProps } from '../../model'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { SliderInner } from '../Slider'\nimport { useSliderAlgorithmic } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderAlgorithmic = forwardRef<HTMLInputElement, SliderAlgorithmicProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n dataLayers,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { sliderValue, sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderAlgorithmic({\n min: Number(min),\n max: Number(max),\n defaultValue: 0,\n value,\n onChange\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue !== undefined) {\n if (onChange) onChange(floatValue)\n externalHandlers?.onInputChange?.(floatValue)\n }\n }}\n data-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n data-layer-id={dataLayers?.targetId}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={sliderValue}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n externalHandlers={externalHandlers}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderAlgorithmic","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","attachmentProps","additionalSuffix","readOnly","componentType","dataLayers","props","ref","inputId","React","inputRef","handleIconClick","sliderValue","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderAlgorithmic","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"ikBAUA,MAAMA,EACJC,EAACC,EAAA,CACC,KAAK,eACL,UAAU,wGAAA,CACZ,EAGWC,GAAoBC,EAC/B,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,IAAAC,EACA,IAAAC,EACA,OAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,cAAAC,EACA,WAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9CE,EAAkB,IAAM,CAC5BD,GAAU,SAAS,MAAA,CACrB,EAEM,CAAE,YAAAE,EAAa,WAAAC,EAAY,UAAAC,EAAW,UAAAC,EAAW,mBAAAC,CAAA,EAAuBC,EAAqB,CACjG,IAAK,OAAOpB,CAAG,EACf,IAAK,OAAOC,CAAG,EACf,aAAc,EACd,MAAAH,EACA,SAAAC,CAAA,CACD,EAEK,CAAE,KAAAsB,EAAM,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,UAAAC,EAAW,cAAAC,EAAe,MAAAC,EAAO,MAAAC,CAAA,EAAUlC,GAAW,CAAA,EAEjG,OACEmC,EAAC,OAAI,aAAYtB,EAAe,UAAWuB,EAAG,6BAA8BT,CAAI,EAC9E,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+B,CAAG,cAAgBxB,CAAA,EAAYsB,CAAK,EACpF,SAAA,CAAAtC,EAACyC,EAAA,CACC,MAAA5B,EACA,MAAAL,EACA,gBAAiB,CACf,YAAaQ,EAAW,OAAYF,GAAiB,aAAeU,EACpE,KAAMR,EAAW,OAAYF,GAAiB,MAAQf,EACtD,GAAGe,CAAA,EAEL,QAAS,CACP,UAAW,qFACX,GAAGqB,CAAA,EAEL,OAASO,GAAM,CACTvB,GAAO,QAAQA,GAAO,OAAOuB,CAAC,EAC9BpC,GAAkB,QAAQA,EAAiB,OAAOoC,CAAC,CACzD,EACA,QAASpC,GAAkB,QAC3B,QAASA,GAAkB,OAC3B,aAAc,IACZN,EAAC2C,EAAA,CACC,GAAItB,EACJ,SAAAL,EACA,eAAcX,EAAU,OAAS,QACjC,MAAAG,EACA,SAAAD,EACA,OAAQ,IAAIqC,EAAqBhC,EAAQJ,CAAK,CAAC,IAAIO,GAAoB,EAAE,GACzE,oBAAoB,WACpB,kBAAmB,IACnB,cAAe,GACf,YAAa8B,EAAUtB,EAAUH,CAAG,EACpC,cAAe,CAAC,CAAE,WAAA0B,KAAiB,CAC7BA,IAAe,SACbrC,KAAmBqC,CAAU,EACjCxC,GAAkB,gBAAgBwC,CAAU,EAEhD,EACA,UAAQ,SACR,UAAWN,EACT,yGAEAH,CAAA,EAEF,gBAAenB,GAAY,SAC1B,GAAGC,CAAA,CAAA,CACN,CAAA,EAGJnB,EAAC+C,EAAA,CACC,QAAS,CAAE,GAAGf,CAAA,EACd,KAAMN,EACN,MAAOD,EACP,SAAAlB,EACA,IAAK,OAAOoB,CAAS,EACrB,IAAK,OAAOC,CAAS,EACrB,SAAUC,EACV,iBAAAvB,CAAA,CAAA,CACF,EACF,IACC,MAAA,CAAI,UAAWkC,EAAG,uBAAwBJ,CAAa,EACrD,SAAA,CAAA1B,GACCV,EAAC,OAAA,CAAK,UAAWwC,EAAG,0CAA2CP,CAAQ,EACpE,SAAAW,EAAqBhC,EAAQF,EAAK,EAAK,CAAA,CAC1C,EAEDC,GACCX,EAAC,OAAA,CAAK,UAAWwC,EAAG,0CAA2CN,CAAS,EACrE,SAAAU,EAAqBhC,EAAQD,EAAK,EAAK,CAAA,CAC1C,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ,CACF"}
1
+ {"version":3,"file":"SliderAlgorithmic.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { type SliderAlgorithmicProps } from '../../model'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { SliderInner } from '../Slider'\nimport { useSliderAlgorithmic } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderAlgorithmic = forwardRef<HTMLInputElement, SliderAlgorithmicProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n dataLayers,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { sliderValue, sliderStep, sliderMin, sliderMax, handleChangeSlider, handleBlur } = useSliderAlgorithmic({\n min: Number(min),\n max: Number(max),\n defaultValue: 0,\n value,\n onChange\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n handleBlur()\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue !== undefined) {\n if (onChange) onChange(floatValue)\n externalHandlers?.onInputChange?.(floatValue)\n }\n }}\n data-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n data-layer-id={dataLayers?.targetId}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={sliderValue}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n externalHandlers={externalHandlers}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderAlgorithmic","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","attachmentProps","additionalSuffix","readOnly","componentType","dataLayers","props","ref","inputId","React","inputRef","handleIconClick","sliderValue","sliderStep","sliderMin","sliderMax","handleChangeSlider","handleBlur","useSliderAlgorithmic","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"ikBAUA,MAAMA,EACJC,EAACC,EAAA,CACC,KAAK,eACL,UAAU,wGAAA,CACZ,EAGWC,GAAoBC,EAC/B,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,IAAAC,EACA,IAAAC,EACA,OAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,cAAAC,EACA,WAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9CE,EAAkB,IAAM,CAC5BD,GAAU,SAAS,MAAA,CACrB,EAEM,CAAE,YAAAE,EAAa,WAAAC,EAAY,UAAAC,EAAW,UAAAC,EAAW,mBAAAC,EAAoB,WAAAC,CAAA,EAAeC,EAAqB,CAC7G,IAAK,OAAOrB,CAAG,EACf,IAAK,OAAOC,CAAG,EACf,aAAc,EACd,MAAAH,EACA,SAAAC,CAAA,CACD,EAEK,CAAE,KAAAuB,EAAM,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,UAAAC,EAAW,cAAAC,EAAe,MAAAC,EAAO,MAAAC,CAAA,EAAUnC,GAAW,CAAA,EAEjG,OACEoC,EAAC,OAAI,aAAYvB,EAAe,UAAWwB,EAAG,6BAA8BT,CAAI,EAC9E,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+B,CAAG,cAAgBzB,CAAA,EAAYuB,CAAK,EACpF,SAAA,CAAAvC,EAAC0C,EAAA,CACC,MAAA7B,EACA,MAAAL,EACA,gBAAiB,CACf,YAAaQ,EAAW,OAAYF,GAAiB,aAAeU,EACpE,KAAMR,EAAW,OAAYF,GAAiB,MAAQf,EACtD,GAAGe,CAAA,EAEL,QAAS,CACP,UAAW,qFACX,GAAGsB,CAAA,EAEL,OAASO,GAAM,CACTxB,GAAO,QAAQA,GAAO,OAAOwB,CAAC,EAC9BrC,GAAkB,QAAQA,EAAiB,OAAOqC,CAAC,EACvDb,EAAA,CACF,EACA,QAASxB,GAAkB,QAC3B,QAASA,GAAkB,OAC3B,aAAc,IACZN,EAAC4C,EAAA,CACC,GAAIvB,EACJ,SAAAL,EACA,eAAcX,EAAU,OAAS,QACjC,MAAAG,EACA,SAAAD,EACA,OAAQ,IAAIsC,EAAqBjC,EAAQJ,CAAK,CAAC,IAAIO,GAAoB,EAAE,GACzE,oBAAoB,WACpB,kBAAmB,IACnB,cAAe,GACf,YAAa+B,EAAUvB,EAAUH,CAAG,EACpC,cAAe,CAAC,CAAE,WAAA2B,KAAiB,CAC7BA,IAAe,SACbtC,KAAmBsC,CAAU,EACjCzC,GAAkB,gBAAgByC,CAAU,EAEhD,EACA,UAAQ,SACR,UAAWN,EACT,yGAEAH,CAAA,EAEF,gBAAepB,GAAY,SAC1B,GAAGC,CAAA,CAAA,CACN,CAAA,EAGJnB,EAACgD,EAAA,CACC,QAAS,CAAE,GAAGf,CAAA,EACd,KAAMP,EACN,MAAOD,EACP,SAAAlB,EACA,IAAK,OAAOoB,CAAS,EACrB,IAAK,OAAOC,CAAS,EACrB,SAAUC,EACV,iBAAAvB,CAAA,CAAA,CACF,EACF,IACC,MAAA,CAAI,UAAWmC,EAAG,uBAAwBJ,CAAa,EACrD,SAAA,CAAA3B,GACCV,EAAC,OAAA,CAAK,UAAWyC,EAAG,0CAA2CP,CAAQ,EACpE,SAAAW,EAAqBjC,EAAQF,EAAK,EAAK,CAAA,CAC1C,EAEDC,GACCX,EAAC,OAAA,CAAK,UAAWyC,EAAG,0CAA2CN,CAAS,EACrE,SAAAU,EAAqBjC,EAAQD,EAAK,EAAK,CAAA,CAC1C,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ,CACF"}
@@ -1,2 +1,2 @@
1
- import{useEffect as y}from"react";import{useLogarithmic as M}from"../../../model/useLogarithmic.js";const L=({min:t,max:i,defaultValue:f,value:e,onChange:r})=>{const{fromSlider:s,toSlider:o,round:c}=M({min:t,max:i,defaultSum:f});console.log({min:typeof t,max:typeof i,defaultValue:typeof f,value:typeof e});const l=o(e),p=.01,S=o(t),u=o(i);return y(()=>{e&&(e>i&&r&&r(i),e<t&&r&&r(t))},[e,r,i,t]),{handleChangeSlider:d=>{d&&r&&r(c(s(d)))},toSlider:o,fromSlider:s,sliderValue:l,sliderStep:p,sliderMin:S,sliderMax:u}};export{L as useSliderAlgorithmic};
1
+ import{useLogarithmic as S}from"../../../model/useLogarithmic.js";const M=({min:t,max:e,defaultValue:l,value:i,onChange:r})=>{const{fromSlider:d,toSlider:o,round:f}=S({min:t,max:e,defaultSum:l});console.log({min:typeof t,max:typeof e,defaultValue:typeof l,value:typeof i});const c=o(i),n=.01,p=o(t),u=o(e);return{handleChangeSlider:s=>{s&&r&&r(f(d(s)))},handleBlur:()=>{i&&(i>e&&r&&r(e),i<t&&r&&r(t))},toSlider:o,fromSlider:d,sliderValue:c,sliderStep:n,sliderMin:p,sliderMax:u}};export{M as useSliderAlgorithmic};
2
2
  //# sourceMappingURL=useSliderAlgorithmic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSliderAlgorithmic.js","sources":["../../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.ts"],"sourcesContent":["import { useEffect } from 'react'\nimport { useLogarithmic } from '../../../model'\n\ninterface UseSliderAlgorithmic {\n min: number\n max: number\n defaultValue: number\n value: number | undefined\n onChange?: (value: number) => void // good\n}\n\nexport const useSliderAlgorithmic = ({ min, max, defaultValue, value, onChange }: UseSliderAlgorithmic) => {\n const { fromSlider, toSlider, round } = useLogarithmic({ min, max, defaultSum: defaultValue })\n\n console.log({\n min: typeof min,\n max: typeof max,\n defaultValue: typeof defaultValue,\n value: typeof value\n })\n\n const sliderValue = toSlider(value)\n\n const sliderStep = 0.01\n\n const sliderMin = toSlider(min)\n const sliderMax = toSlider(max)\n\n useEffect(() => {\n if (!value) return\n\n if (value > max) {\n if (onChange) onChange(max)\n }\n if (value < min) {\n if (onChange) onChange(min)\n }\n }, [value, onChange, max, min])\n\n const handleChangeSlider = (value?: number) => {\n if (!value) {\n return\n }\n if (onChange) onChange(round(fromSlider(value)))\n }\n\n return {\n handleChangeSlider,\n toSlider,\n fromSlider,\n sliderValue,\n sliderStep,\n sliderMin,\n sliderMax\n }\n}\n"],"names":["useSliderAlgorithmic","min","max","defaultValue","value","onChange","fromSlider","toSlider","round","useLogarithmic","sliderValue","sliderStep","sliderMin","sliderMax","useEffect"],"mappings":"oGAWO,MAAMA,EAAuB,CAAC,CAAE,IAAAC,EAAK,IAAAC,EAAK,aAAAC,EAAc,MAAAC,EAAO,SAAAC,KAAqC,CACzG,KAAM,CAAE,WAAAC,EAAY,SAAAC,EAAU,MAAAC,GAAUC,EAAe,CAAE,IAAAR,EAAK,IAAAC,EAAK,WAAYC,EAAc,EAE7F,QAAQ,IAAI,CACV,IAAK,OAAOF,EACZ,IAAK,OAAOC,EACZ,aAAc,OAAOC,EACrB,MAAO,OAAOC,CAAA,CACf,EAED,MAAMM,EAAcH,EAASH,CAAK,EAE5BO,EAAa,IAEbC,EAAYL,EAASN,CAAG,EACxBY,EAAYN,EAASL,CAAG,EAE9B,OAAAY,EAAU,IAAM,CACTV,IAEDA,EAAQF,GACNG,KAAmBH,CAAG,EAExBE,EAAQH,GACNI,KAAmBJ,CAAG,EAE9B,EAAG,CAACG,EAAOC,EAAUH,EAAKD,CAAG,CAAC,EASvB,CACL,mBAR0BG,GAAmB,CACxCA,GAGDC,GAAUA,EAASG,EAAMF,EAAWF,CAAK,CAAC,CAAC,CACjD,EAIE,SAAAG,EACA,WAAAD,EACA,YAAAI,EACA,WAAAC,EACA,UAAAC,EACA,UAAAC,CAAA,CAEJ"}
1
+ {"version":3,"file":"useSliderAlgorithmic.js","sources":["../../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.ts"],"sourcesContent":["import { useLogarithmic } from '../../../model'\n\ninterface UseSliderAlgorithmic {\n min: number\n max: number\n defaultValue: number\n value: number | undefined\n onChange?: (value: number) => void // good\n}\n\nexport const useSliderAlgorithmic = ({ min, max, defaultValue, value, onChange }: UseSliderAlgorithmic) => {\n const { fromSlider, toSlider, round } = useLogarithmic({ min, max, defaultSum: defaultValue })\n\n console.log({\n min: typeof min,\n max: typeof max,\n defaultValue: typeof defaultValue,\n value: typeof value\n })\n\n const sliderValue = toSlider(value)\n\n const sliderStep = 0.01\n\n const sliderMin = toSlider(min)\n const sliderMax = toSlider(max)\n\n const handleBlur = () => {\n if (!value) return\n\n if (value > max) {\n if (onChange) onChange(max)\n }\n if (value < min) {\n if (onChange) onChange(min)\n }\n }\n\n const handleChangeSlider = (value?: number) => {\n if (!value) {\n return\n }\n if (onChange) onChange(round(fromSlider(value)))\n }\n\n return {\n handleChangeSlider,\n handleBlur,\n toSlider,\n fromSlider,\n sliderValue,\n sliderStep,\n sliderMin,\n sliderMax\n }\n}\n"],"names":["useSliderAlgorithmic","min","max","defaultValue","value","onChange","fromSlider","toSlider","round","useLogarithmic","sliderValue","sliderStep","sliderMin","sliderMax"],"mappings":"kEAUO,MAAMA,EAAuB,CAAC,CAAE,IAAAC,EAAK,IAAAC,EAAK,aAAAC,EAAc,MAAAC,EAAO,SAAAC,KAAqC,CACzG,KAAM,CAAE,WAAAC,EAAY,SAAAC,EAAU,MAAAC,GAAUC,EAAe,CAAE,IAAAR,EAAK,IAAAC,EAAK,WAAYC,EAAc,EAE7F,QAAQ,IAAI,CACV,IAAK,OAAOF,EACZ,IAAK,OAAOC,EACZ,aAAc,OAAOC,EACrB,MAAO,OAAOC,CAAA,CACf,EAED,MAAMM,EAAcH,EAASH,CAAK,EAE5BO,EAAa,IAEbC,EAAYL,EAASN,CAAG,EACxBY,EAAYN,EAASL,CAAG,EAoB9B,MAAO,CACL,mBAR0BE,GAAmB,CACxCA,GAGDC,GAAUA,EAASG,EAAMF,EAAWF,CAAK,CAAC,CAAC,CACjD,EAIE,WApBiB,IAAM,CAClBA,IAEDA,EAAQF,GACNG,KAAmBH,CAAG,EAExBE,EAAQH,GACNI,KAAmBJ,CAAG,EAE9B,EAYE,SAAAM,EACA,WAAAD,EACA,YAAAI,EACA,WAAAC,EACA,UAAAC,EACA,UAAAC,CAAA,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsxs as d,jsx as i}from"react/jsx-runtime";import*as f from"react";import{forwardRef as L}from"react";import{NumericFormat as O}from"react-number-format";import{SliderInner as P}from"../Slider.js";import{useSliderMarks as q}from"./hooks/useSliderMarks.js";import{cn as r}from"../../../../../../utils/cn.js";import{mergeRefs as z}from"../../../../../../utils/mergeRefs.js";import{getInputSliderSuffix as u}from"../../model/helpers/getInputSliderSuffix.js";import{InputBase as A}from"../../../input/Input.js";const X=L(({classes:p,invalid:g,externalHandlers:e,disabled:m,value:t,onChange:l,suffix:n,label:h,marks:c,attachmentProps:b,additionalSuffix:x,componentType:y,dataLayers:N,...I},w)=>{const R=f.useId(),S=f.useRef(null),{sliderMin:s,sliderMax:a,handleChangeSlider:k}=q({marks:c,onChange:l,value:t}),{root:C,slider:B,textLeft:M,textRight:j,inputRoot:v,textContainer:F,input:$,field:G}=p||{};return d("div",{"aria-label":y,className:r("flex w-full flex-col gap-1",C),children:[d("div",{className:r("relative w-full select-none",G),children:[i(A,{label:h,value:t,attachmentProps:{...b},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...v},onClick:e?.onClick,onFocus:e?.onBlur,onBlur:o=>{e?.onBlur&&e?.onBlur(o)},renderValues:()=>i(O,{id:R,readOnly:!0,"aria-invalid":g?"true":"false",value:t,disabled:m,suffix:` ${u(n,t)} ${x??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:z(S,w),onValueChange:({floatValue:o})=>{o&&(l&&l(o),e?.onInputChange&&e.onInputChange(o))},"data-id":"slider",className:r("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",$),"data-layer-id":N?.targetId,...I})}),i(P,{classes:{...B},marks:c,step:null,value:t??0,disabled:m,min:Number(s),max:Number(a),onChange:k})]}),d("div",{className:r("flex justify-between",F),children:[s&&i("span",{className:r("desk-body-regular-m text-color-tetriary",M),children:u(n,s,!1)}),a&&i("span",{className:r("desk-body-regular-m text-color-tetriary",j),children:u(n,a,!1)})]})]})});export{X as SliderMarks};
1
+ import{jsxs as d,jsx as i}from"react/jsx-runtime";import*as f from"react";import{forwardRef as O}from"react";import{NumericFormat as P}from"react-number-format";import{SliderInner as q}from"../Slider.js";import{useSliderMarks as z}from"./hooks/useSliderMarks.js";import{cn as e}from"../../../../../../utils/cn.js";import{mergeRefs as A}from"../../../../../../utils/mergeRefs.js";import{getInputSliderSuffix as u}from"../../model/helpers/getInputSliderSuffix.js";import{InputBase as D}from"../../../input/Input.js";const Y=O(({classes:p,invalid:g,externalHandlers:r,disabled:m,value:t,onChange:l,suffix:n,label:h,marks:c,attachmentProps:b,additionalSuffix:x,componentType:y,dataLayers:N,...I},w)=>{const R=f.useId(),S=f.useRef(null),{sliderMin:s,sliderMax:a,handleChangeSlider:k,handleBlur:C}=z({marks:c,onChange:l,value:t}),{root:B,slider:M,textLeft:j,textRight:v,inputRoot:F,textContainer:$,input:G,field:L}=p||{};return d("div",{"aria-label":y,className:e("flex w-full flex-col gap-1",B),children:[d("div",{className:e("relative w-full select-none",L),children:[i(D,{label:h,value:t,attachmentProps:{...b},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...F},onClick:r?.onClick,onFocus:r?.onBlur,onBlur:o=>{r?.onBlur?.(o),C()},renderValues:()=>i(P,{id:R,readOnly:!0,"aria-invalid":g?"true":"false",value:t,disabled:m,suffix:` ${u(n,t)} ${x??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:A(S,w),onValueChange:({floatValue:o})=>{o&&(l&&l(o),r?.onInputChange&&r.onInputChange(o))},"data-id":"slider",className:e("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",G),"data-layer-id":N?.targetId,...I})}),i(q,{classes:{...M},marks:c,step:null,value:t??0,disabled:m,min:Number(s),max:Number(a),onChange:k})]}),d("div",{className:e("flex justify-between",$),children:[s&&i("span",{className:e("desk-body-regular-m text-color-tetriary",j),children:u(n,s,!1)}),a&&i("span",{className:e("desk-body-regular-m text-color-tetriary",v),children:u(n,a,!1)})]})]})});export{Y as SliderMarks};
2
2
  //# sourceMappingURL=SliderMarks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SliderMarks.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { type SliderMarksProps } from '../../model'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { SliderInner } from '../Slider'\nimport { useSliderMarks } from './hooks'\nimport { InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport const SliderMarks = forwardRef<HTMLInputElement, SliderMarksProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n suffix,\n label,\n marks,\n attachmentProps,\n additionalSuffix,\n componentType,\n dataLayers,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const { sliderMin, sliderMax, handleChangeSlider } = useSliderMarks({\n marks,\n onChange,\n value\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n onBlur={(e) => {\n if (externalHandlers?.onBlur) {\n externalHandlers?.onBlur(e)\n }\n }}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n input\n )}\n data-layer-id={dataLayers?.targetId}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n marks={marks}\n step={null}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {sliderMin && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, sliderMin, false)}\n </span>\n )}\n {sliderMax && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, sliderMax, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["SliderMarks","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","suffix","label","marks","attachmentProps","additionalSuffix","componentType","dataLayers","props","ref","inputId","React","inputRef","sliderMin","sliderMax","handleChangeSlider","useSliderMarks","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","jsx","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"kgBAUO,MAAMA,EAAcC,EACzB,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,WAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9C,CAAE,UAAAE,EAAW,UAAAC,EAAW,mBAAAC,CAAA,EAAuBC,EAAe,CAClE,MAAAb,EACA,SAAAH,EACA,MAAAD,CAAA,CACD,EAEK,CAAE,KAAAkB,EAAM,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,UAAAC,EAAW,cAAAC,EAAe,MAAAC,EAAO,MAAAC,CAAA,EAAU7B,GAAW,CAAA,EACjG,OACE8B,EAAC,OAAI,aAAYnB,EAAe,UAAWoB,EAAG,6BAA8BT,CAAI,EAC9E,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+BF,CAAK,EACrD,SAAA,CAAAG,EAACC,EAAA,CACC,MAAA1B,EACA,MAAAH,EACA,gBAAiB,CACf,GAAGK,CAAA,EAEL,QAAS,CACP,UAAW,qFACX,GAAGiB,CAAA,EAEL,QAASxB,GAAkB,QAC3B,QAASA,GAAkB,OAC3B,OAASgC,GAAM,CACThC,GAAkB,QACpBA,GAAkB,OAAOgC,CAAC,CAE9B,EACA,aAAc,IACZF,EAACG,EAAA,CACC,GAAIpB,EACJ,SAAQ,GACR,eAAcd,EAAU,OAAS,QACjC,MAAAG,EACA,SAAAD,EACA,OAAQ,IAAIiC,EAAqB9B,EAAQF,CAAK,CAAC,IAAIM,GAAoB,EAAE,GACzE,oBAAoB,WACpB,kBAAmB,IACnB,cAAe,GACf,YAAa2B,EAAUpB,EAAUH,CAAG,EACpC,cAAe,CAAC,CAAE,WAAAwB,KAAiB,CAC7BA,IACEjC,KAAmBiC,CAAU,EAC7BpC,GAAkB,eACpBA,EAAiB,cAAcoC,CAAU,EAG/C,EACA,UAAQ,SACR,UAAWP,EACT,yGACAH,CAAA,EAEF,gBAAehB,GAAY,SAC1B,GAAGC,CAAA,CAAA,CACN,CAAA,EAGJmB,EAACO,EAAA,CACC,QAAS,CAAE,GAAGhB,CAAA,EACd,MAAAf,EACA,KAAM,KACN,MAAOJ,GAAS,EAChB,SAAAD,EACA,IAAK,OAAOe,CAAS,EACrB,IAAK,OAAOC,CAAS,EACrB,SAAUC,CAAA,CAAA,CACZ,EACF,IACC,MAAA,CAAI,UAAWW,EAAG,uBAAwBJ,CAAa,EACrD,SAAA,CAAAT,GACCc,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CP,CAAQ,EACpE,SAAAY,EAAqB9B,EAAQY,EAAW,EAAK,CAAA,CAChD,EAEDC,GACCa,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CN,CAAS,EACrE,SAAAW,EAAqB9B,EAAQa,EAAW,EAAK,CAAA,CAChD,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ,CACF"}
1
+ {"version":3,"file":"SliderMarks.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { type SliderMarksProps } from '../../model'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { SliderInner } from '../Slider'\nimport { useSliderMarks } from './hooks'\nimport { InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport const SliderMarks = forwardRef<HTMLInputElement, SliderMarksProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n suffix,\n label,\n marks,\n attachmentProps,\n additionalSuffix,\n componentType,\n dataLayers,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const { sliderMin, sliderMax, handleChangeSlider, handleBlur } = useSliderMarks({\n marks,\n onChange,\n value\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n onBlur={(e) => {\n externalHandlers?.onBlur?.(e)\n handleBlur()\n }}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n input\n )}\n data-layer-id={dataLayers?.targetId}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n marks={marks}\n step={null}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {sliderMin && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, sliderMin, false)}\n </span>\n )}\n {sliderMax && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, sliderMax, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["SliderMarks","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","suffix","label","marks","attachmentProps","additionalSuffix","componentType","dataLayers","props","ref","inputId","React","inputRef","sliderMin","sliderMax","handleChangeSlider","handleBlur","useSliderMarks","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","jsx","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"kgBAUO,MAAMA,EAAcC,EACzB,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,WAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9C,CAAE,UAAAE,EAAW,UAAAC,EAAW,mBAAAC,EAAoB,WAAAC,CAAA,EAAeC,EAAe,CAC9E,MAAAd,EACA,SAAAH,EACA,MAAAD,CAAA,CACD,EAEK,CAAE,KAAAmB,EAAM,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,UAAAC,EAAW,cAAAC,EAAe,MAAAC,EAAO,MAAAC,CAAA,EAAU9B,GAAW,CAAA,EACjG,OACE+B,EAAC,OAAI,aAAYpB,EAAe,UAAWqB,EAAG,6BAA8BT,CAAI,EAC9E,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+BF,CAAK,EACrD,SAAA,CAAAG,EAACC,EAAA,CACC,MAAA3B,EACA,MAAAH,EACA,gBAAiB,CACf,GAAGK,CAAA,EAEL,QAAS,CACP,UAAW,qFACX,GAAGkB,CAAA,EAEL,QAASzB,GAAkB,QAC3B,QAASA,GAAkB,OAC3B,OAASiC,GAAM,CACbjC,GAAkB,SAASiC,CAAC,EAC5Bd,EAAA,CACF,EACA,aAAc,IACZY,EAACG,EAAA,CACC,GAAIrB,EACJ,SAAQ,GACR,eAAcd,EAAU,OAAS,QACjC,MAAAG,EACA,SAAAD,EACA,OAAQ,IAAIkC,EAAqB/B,EAAQF,CAAK,CAAC,IAAIM,GAAoB,EAAE,GACzE,oBAAoB,WACpB,kBAAmB,IACnB,cAAe,GACf,YAAa4B,EAAUrB,EAAUH,CAAG,EACpC,cAAe,CAAC,CAAE,WAAAyB,KAAiB,CAC7BA,IACElC,KAAmBkC,CAAU,EAC7BrC,GAAkB,eACpBA,EAAiB,cAAcqC,CAAU,EAG/C,EACA,UAAQ,SACR,UAAWP,EACT,yGACAH,CAAA,EAEF,gBAAejB,GAAY,SAC1B,GAAGC,CAAA,CAAA,CACN,CAAA,EAGJoB,EAACO,EAAA,CACC,QAAS,CAAE,GAAGhB,CAAA,EACd,MAAAhB,EACA,KAAM,KACN,MAAOJ,GAAS,EAChB,SAAAD,EACA,IAAK,OAAOe,CAAS,EACrB,IAAK,OAAOC,CAAS,EACrB,SAAUC,CAAA,CAAA,CACZ,EACF,IACC,MAAA,CAAI,UAAWY,EAAG,uBAAwBJ,CAAa,EACrD,SAAA,CAAAV,GACCe,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CP,CAAQ,EACpE,SAAAY,EAAqB/B,EAAQY,EAAW,EAAK,CAAA,CAChD,EAEDC,GACCc,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CN,CAAS,EACrE,SAAAW,EAAqB/B,EAAQa,EAAW,EAAK,CAAA,CAChD,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ,CACF"}
@@ -1,2 +1,2 @@
1
- import{useEffect as d}from"react";const n=({marks:s,onChange:r,value:i})=>{const f=Math.min(...s),t=Math.max(...s),c=e=>{e&&r&&r(e)};return d(()=>{i&&i>t&&r?.(t)},[r,t,i]),{handleChangeSlider:c,sliderMin:f,sliderMax:t}};export{n as useSliderMarks};
1
+ const a=({marks:n,onChange:r,value:i})=>{const d=Math.min(...n),e=Math.max(...n);return{handleChangeSlider:t=>{t&&r&&r(t)},sliderMin:d,sliderMax:e,handleBlur:()=>{i&&i>e&&r?.(e)}}};export{a as useSliderMarks};
2
2
  //# sourceMappingURL=useSliderMarks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSliderMarks.js","sources":["../../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.ts"],"sourcesContent":["import { useEffect } from 'react'\n\ninterface UseSliderMarks {\n marks: number[]\n onChange?: (value: number) => void\n value: number | undefined\n}\n\nexport const useSliderMarks = ({ marks, onChange, value }: UseSliderMarks) => {\n const sliderMin = Math.min(...marks)\n const sliderMax = Math.max(...marks)\n\n const handleChangeSlider = (value?: number) => {\n if (!value) {\n return\n }\n if (onChange) onChange(value)\n }\n\n useEffect(() => {\n if (value && value > sliderMax) {\n onChange?.(sliderMax)\n }\n }, [onChange, sliderMax, value])\n\n return {\n handleChangeSlider,\n sliderMin,\n sliderMax\n }\n}\n"],"names":["useSliderMarks","marks","onChange","value","sliderMin","sliderMax","handleChangeSlider","useEffect"],"mappings":"kCAQO,MAAMA,EAAiB,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,MAAAC,KAA4B,CAC5E,MAAMC,EAAY,KAAK,IAAI,GAAGH,CAAK,EAC7BI,EAAY,KAAK,IAAI,GAAGJ,CAAK,EAE7BK,EAAsBH,GAAmB,CACxCA,GAGDD,KAAmBC,CAAK,CAC9B,EAEA,OAAAI,EAAU,IAAM,CACVJ,GAASA,EAAQE,GACnBH,IAAWG,CAAS,CAExB,EAAG,CAACH,EAAUG,EAAWF,CAAK,CAAC,EAExB,CACL,mBAAAG,EACA,UAAAF,EACA,UAAAC,CAAA,CAEJ"}
1
+ {"version":3,"file":"useSliderMarks.js","sources":["../../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.ts"],"sourcesContent":["interface UseSliderMarks {\n marks: number[]\n onChange?: (value: number) => void\n value: number | undefined\n}\n\nexport const useSliderMarks = ({ marks, onChange, value }: UseSliderMarks) => {\n const sliderMin = Math.min(...marks)\n const sliderMax = Math.max(...marks)\n\n const handleChangeSlider = (value?: number) => {\n if (!value) {\n return\n }\n if (onChange) onChange(value)\n }\n\n const handleBlur = () => {\n if (value && value > sliderMax) {\n onChange?.(sliderMax)\n }\n }\n\n return {\n handleChangeSlider,\n sliderMin,\n sliderMax,\n handleBlur\n }\n}\n"],"names":["useSliderMarks","marks","onChange","value","sliderMin","sliderMax"],"mappings":"AAMO,MAAMA,EAAiB,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,MAAAC,KAA4B,CAC5E,MAAMC,EAAY,KAAK,IAAI,GAAGH,CAAK,EAC7BI,EAAY,KAAK,IAAI,GAAGJ,CAAK,EAenC,MAAO,CACL,mBAd0BE,GAAmB,CACxCA,GAGDD,KAAmBC,CAAK,CAC9B,EAUE,UAAAC,EACA,UAAAC,EACA,WAViB,IAAM,CACnBF,GAASA,EAAQE,GACnBH,IAAWG,CAAS,CAExB,CAME,CAEJ"}