@iit/precision-ui 0.10.5 → 0.10.6

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.
@@ -216,7 +216,7 @@ const W = u("pb-12", {
216
216
  {
217
217
  className: n(
218
218
  "gap-4 absolute bottom-8 z-30 w-[96%] px-10 sm:px-8 lg:px-0",
219
- r.length === 4 ? "grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 left-1/2 -translate-x-1/2" : r.length === 3 ? "grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-3 left-1/2 -translate-x-1/2" : "flex flex-col md:flex-row"
219
+ r.length === 4 ? "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 left-1/2 -translate-x-1/2" : r.length === 3 ? "grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 left-1/2 -translate-x-1/2" : "flex flex-col md:flex-row"
220
220
  )
221
221
  },
222
222
  r.map((a) => /* @__PURE__ */ e.createElement(
@@ -1 +1 @@
1
- {"version":3,"file":"index.es40.js","sources":["../src/sections/Hero.tsx"],"sourcesContent":["import { BreadcrumbProps, Breadcrumbs } from '@/components/breadcrumbs'\r\n\r\nimport { ButtonPrimary } from '@/components/ui/button'\r\nimport { CommonButtonProps } from './common'\r\nimport Heading from '@/components/core/typography/Heading'\r\nimport React from 'react'\r\nimport SafeHtmlRenderer from '@/components/SafeHtml'\r\nimport SearchInputWithButton from '@/components/ui/input/SearchInputWithButton'\r\nimport Text from '@/components/core/typography/Text'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport { cva } from 'class-variance-authority'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\n// import { SearchInput } from '@/components/ui/input'\r\n\r\nconst contentContainerVariants = cva('pb-12', {\r\n variants: {\r\n size: {\r\n default: 'sm:pb-32',\r\n medium: 'sm:pb-[116px]',\r\n large: 'sm:pb-32', // not used, copy from default\r\n smaller: 'sm:pb-16',\r\n small: 'sm:pb-10',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'default',\r\n },\r\n})\r\n\r\nconst sliderContentVariants = cva('', {\r\n variants: {\r\n size: {\r\n default: 'sm:pb-[80px]',\r\n medium: 'sm:pb-6',\r\n small: 'sm:pb-6',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'default',\r\n },\r\n})\r\n\r\nconst titleVariants = cva('', {\r\n variants: {\r\n contentContainerSize: {\r\n default: 'mb-5 lg:max-w-[700px] w-full',\r\n medium: 'lg:max-w-[590px]',\r\n large: 'lg:max-w-5xl',\r\n small: 'lg:max-w-[700px]', // not used, copy from default\r\n },\r\n },\r\n defaultVariants: {\r\n contentContainerSize: 'default',\r\n },\r\n})\r\n\r\nconst descVariants = cva('', {\r\n variants: {\r\n contentContainerSize: {\r\n default: 'lg:max-w-[460px]',\r\n medium: 'lg:max-w-[370px]',\r\n large: 'lg:max-w-2xl',\r\n small: 'lg:max-w-[460px]', // not used, copy from default\r\n },\r\n },\r\n defaultVariants: {\r\n contentContainerSize: 'default',\r\n },\r\n})\r\n\r\nexport interface HeroProps {\r\n title: string\r\n desc?: string\r\n price?: string\r\n oldPrice?: string\r\n image?: string\r\n buttons?: CommonButtonProps[]\r\n childrenComponentType?: 'search-news'\r\n breadcrumbs?: BreadcrumbProps[]\r\n bottomButtons?: CommonButtonProps[]\r\n size?: 'default' | 'small' | 'medium'\r\n contentContainerSize?: 'default' | 'medium' | 'small' | 'large'\r\n contentContainerBottomSize?: 'default' | 'small' | 'smaller'\r\n imageSize?: 'default' | 'small' | 'medium'\r\n linesImage?: string\r\n onButtonClick?: (uniqId?: string) => void\r\n}\r\n\r\nexport const HeroButton: React.FC<CommonButtonProps> = ({\r\n text,\r\n href,\r\n target,\r\n anchor,\r\n theme,\r\n className,\r\n linkClassName,\r\n iconDirection,\r\n onClick,\r\n}) => {\r\n if (href) {\r\n return (\r\n <ButtonPrimary\r\n href={href}\r\n theme={theme}\r\n className={cn(className)}\r\n linkClassName={linkClassName}\r\n iconDirection={iconDirection}\r\n target={target}\r\n >\r\n {text}\r\n </ButtonPrimary>\r\n )\r\n }\r\n\r\n if (anchor) {\r\n // TODO: the whole button is not clickable, but it should be\r\n return (\r\n <ButtonPrimary asChild theme={theme} iconDirection={iconDirection}>\r\n <a href={href}>{text}</a>\r\n </ButtonPrimary>\r\n )\r\n }\r\n\r\n if (target) {\r\n return (\r\n <ButtonPrimary asChild theme={theme} iconDirection={iconDirection}>\r\n <a href={href} target={target} rel=\"noopener noreferrer\">\r\n {text}\r\n </a>\r\n </ButtonPrimary>\r\n )\r\n }\r\n\r\n return (\r\n <ButtonPrimary\r\n theme={theme}\r\n iconDirection={iconDirection}\r\n onClick={onClick}\r\n className={cn(className)}\r\n >\r\n {text}\r\n </ButtonPrimary>\r\n )\r\n}\r\n\r\nconst childrenComponent = (componentType: 'search-news') => {\r\n switch (componentType) {\r\n case 'search-news':\r\n return (\r\n <div\r\n data-test-id=\"search-news\"\r\n className=\"w-full h-full flex justify-center items-center\"\r\n >\r\n <SearchInputWithButton\r\n placeholder=\"Фильтр по тарифам\"\r\n onChange={(event) => {\r\n console.log(event.target.value)\r\n }}\r\n className=\"w-[456px]\"\r\n // className=\"h-16 w-72 mt-2 bg-whitish\"\r\n />\r\n </div>\r\n )\r\n\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nconst Hero: React.FC<HeroProps> = ({\r\n title,\r\n contentContainerSize,\r\n contentContainerBottomSize,\r\n desc,\r\n price,\r\n oldPrice,\r\n image,\r\n buttons,\r\n childrenComponentType,\r\n breadcrumbs,\r\n bottomButtons,\r\n size = 'default',\r\n imageSize,\r\n linesImage,\r\n onButtonClick,\r\n}) => {\r\n const imageWidth = (size: 'small' | 'medium' | 'default') => {\r\n switch (size) {\r\n case 'small':\r\n return 448\r\n case 'medium':\r\n return 552\r\n default:\r\n return 664\r\n }\r\n }\r\n const imageHeight = (size: 'small' | 'medium' | 'default') => {\r\n switch (size) {\r\n case 'small':\r\n return 336\r\n case 'medium':\r\n return 456\r\n default:\r\n return 544\r\n }\r\n }\r\n\r\n const ImageWrapper = getAdapter('ImageWrapper')\r\n\r\n return (\r\n <section className=\"container relative\">\r\n <div className=\"mx-auto w-full h-[606px]1 bg-gradient-to-b from-navy to-sapphire text-white rounded-2xl px-6 relative overflow-hidden\">\r\n <div\r\n data-test-id=\"content-container\"\r\n className={cn(\r\n 'w-full relative z-20 grid grid-cols-1 sm:grid-cols-9',\r\n contentContainerVariants({\r\n size: contentContainerBottomSize || size,\r\n }),\r\n bottomButtons?.length == 1 && 'pb-36 xl:pb-32',\r\n bottomButtons?.length == 2 && 'pb-36 xl:pb-32',\r\n bottomButtons?.length == 3 && 'pb-52 md:pb-48 xl:pb-32',\r\n bottomButtons?.length == 4 && 'pb-[280px] sm:pb-52 xl:pb-32',\r\n )}\r\n >\r\n {/* Navigation */}\r\n <div className=\"right-divider_with-tongue1 col-span-2 mt-6 pr-4 relative hidden lg:block\">\r\n {breadcrumbs && <Breadcrumbs list={breadcrumbs} />}\r\n </div>\r\n\r\n {/* Slider Content */}\r\n <div\r\n className={cn(\r\n 'w-auto sm:p-10 pt-10 sm:pt-32 flex flex-col justify-center items-start col-span-7 border-[1px] border-t-0 border-r-0 border-b-0 border-l-0 lg:border-l-[1px] border-whitish-opacity-16 border-solid pb-4',\r\n sliderContentVariants({ size }),\r\n bottomButtons ? 'pb-[60px]' : '',\r\n )}\r\n >\r\n <Heading\r\n level={1}\r\n as={'h1'}\r\n className={cn('', titleVariants({ contentContainerSize }))}\r\n >\r\n <SafeHtmlRenderer html={title} />\r\n </Heading>\r\n\r\n <div className=\"space-y-8 w-full\">\r\n <Text\r\n variant=\"body\"\r\n className={cn(\r\n descVariants({ contentContainerSize }),\r\n 'text-whitish-opacity-60',\r\n )}\r\n >\r\n {desc}\r\n </Text>\r\n\r\n {(price || oldPrice) && (\r\n <div className=\"flex space-x-5 items-baseline\">\r\n {oldPrice && (\r\n <Text\r\n variant=\"lead-text\"\r\n className=\"text-whitish-opacity-32 line-through\"\r\n >\r\n {oldPrice}\r\n </Text>\r\n )}\r\n <Heading level={3} as={'div'}>\r\n {price}\r\n </Heading>\r\n </div>\r\n )}\r\n\r\n {buttons && (\r\n <div className=\"flex gap-4 mt-12 w-full flex-col md:flex-row\">\r\n {buttons.map((button) => (\r\n <HeroButton\r\n key={button.text}\r\n className=\"w-full md:w-fit\"\r\n target={button.target}\r\n {...button}\r\n onClick={() => onButtonClick?.(button.uniqId)}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {childrenComponentType && (\r\n <div className=\"mt-5\">\r\n {childrenComponent(childrenComponentType)}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n\r\n {bottomButtons && (\r\n <div\r\n className={cn(\r\n 'gap-4 absolute bottom-8 z-30 w-[96%] px-10 sm:px-8 lg:px-0',\r\n bottomButtons.length === 4\r\n ? 'grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 left-1/2 -translate-x-1/2'\r\n : bottomButtons.length === 3\r\n ? 'grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-3 left-1/2 -translate-x-1/2'\r\n : 'flex flex-col md:flex-row',\r\n )}\r\n >\r\n {bottomButtons.map((button) => (\r\n <HeroButton\r\n key={button.text}\r\n theme=\"opacity\"\r\n {...button}\r\n className=\"w-full backdrop-blur-[8px]\"\r\n linkClassName=\"w-full\"\r\n onClick={() => onButtonClick?.(button.uniqId)}\r\n target={button.target}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n\r\n {image && (\r\n <div className=\"hidden sm:block absolute bottom-0 right-6 floating\">\r\n <ImageWrapper\r\n src={image}\r\n alt={title}\r\n // width={size === \"default\" ? 664 : 448}\r\n // height={size === \"default\" ? 544 : 336}\r\n width={imageWidth(imageSize || size)}\r\n height={imageHeight(imageSize || size)}\r\n objectFit=\"contain\"\r\n />\r\n </div>\r\n )}\r\n\r\n {linesImage && (\r\n <div className=\"absolute bottom-0 right-6 fadeLines\">\r\n <ImageWrapper\r\n src={linesImage}\r\n alt={title}\r\n // width={size === \"default\" ? 664 : 448}\r\n // height={size === \"default\" ? 544 : 336}\r\n width={imageWidth(imageSize || size)}\r\n height={imageHeight(imageSize || size)}\r\n objectFit=\"contain\"\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </section>\r\n )\r\n}\r\n\r\nexport default Hero\r\n"],"names":["contentContainerVariants","cva","sliderContentVariants","titleVariants","descVariants","HeroButton","text","href","target","anchor","theme","className","linkClassName","iconDirection","onClick","React","ButtonPrimary","cn","childrenComponent","componentType","SearchInputWithButton","event","Hero","title","contentContainerSize","contentContainerBottomSize","desc","price","oldPrice","image","buttons","childrenComponentType","breadcrumbs","bottomButtons","size","imageSize","linesImage","onButtonClick","imageWidth","imageHeight","ImageWrapper","getAdapter","Breadcrumbs","Heading","SafeHtmlRenderer","Text","button","Hero$1"],"mappings":"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"}
1
+ {"version":3,"file":"index.es40.js","sources":["../src/sections/Hero.tsx"],"sourcesContent":["import { BreadcrumbProps, Breadcrumbs } from '@/components/breadcrumbs'\r\n\r\nimport { ButtonPrimary } from '@/components/ui/button'\r\nimport { CommonButtonProps } from './common'\r\nimport Heading from '@/components/core/typography/Heading'\r\nimport React from 'react'\r\nimport SafeHtmlRenderer from '@/components/SafeHtml'\r\nimport SearchInputWithButton from '@/components/ui/input/SearchInputWithButton'\r\nimport Text from '@/components/core/typography/Text'\r\nimport { cn } from '@/lib/utils/cn'\r\nimport { cva } from 'class-variance-authority'\r\nimport { getAdapter } from '@/Adapters'\r\n\r\n// import { SearchInput } from '@/components/ui/input'\r\n\r\nconst contentContainerVariants = cva('pb-12', {\r\n variants: {\r\n size: {\r\n default: 'sm:pb-32',\r\n medium: 'sm:pb-[116px]',\r\n large: 'sm:pb-32', // not used, copy from default\r\n smaller: 'sm:pb-16',\r\n small: 'sm:pb-10',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'default',\r\n },\r\n})\r\n\r\nconst sliderContentVariants = cva('', {\r\n variants: {\r\n size: {\r\n default: 'sm:pb-[80px]',\r\n medium: 'sm:pb-6',\r\n small: 'sm:pb-6',\r\n },\r\n },\r\n defaultVariants: {\r\n size: 'default',\r\n },\r\n})\r\n\r\nconst titleVariants = cva('', {\r\n variants: {\r\n contentContainerSize: {\r\n default: 'mb-5 lg:max-w-[700px] w-full',\r\n medium: 'lg:max-w-[590px]',\r\n large: 'lg:max-w-5xl',\r\n small: 'lg:max-w-[700px]', // not used, copy from default\r\n },\r\n },\r\n defaultVariants: {\r\n contentContainerSize: 'default',\r\n },\r\n})\r\n\r\nconst descVariants = cva('', {\r\n variants: {\r\n contentContainerSize: {\r\n default: 'lg:max-w-[460px]',\r\n medium: 'lg:max-w-[370px]',\r\n large: 'lg:max-w-2xl',\r\n small: 'lg:max-w-[460px]', // not used, copy from default\r\n },\r\n },\r\n defaultVariants: {\r\n contentContainerSize: 'default',\r\n },\r\n})\r\n\r\nexport interface HeroProps {\r\n title: string\r\n desc?: string\r\n price?: string\r\n oldPrice?: string\r\n image?: string\r\n buttons?: CommonButtonProps[]\r\n childrenComponentType?: 'search-news'\r\n breadcrumbs?: BreadcrumbProps[]\r\n bottomButtons?: CommonButtonProps[]\r\n size?: 'default' | 'small' | 'medium'\r\n contentContainerSize?: 'default' | 'medium' | 'small' | 'large'\r\n contentContainerBottomSize?: 'default' | 'small' | 'smaller'\r\n imageSize?: 'default' | 'small' | 'medium'\r\n linesImage?: string\r\n onButtonClick?: (uniqId?: string) => void\r\n}\r\n\r\nexport const HeroButton: React.FC<CommonButtonProps> = ({\r\n text,\r\n href,\r\n target,\r\n anchor,\r\n theme,\r\n className,\r\n linkClassName,\r\n iconDirection,\r\n onClick,\r\n}) => {\r\n if (href) {\r\n return (\r\n <ButtonPrimary\r\n href={href}\r\n theme={theme}\r\n className={cn(className)}\r\n linkClassName={linkClassName}\r\n iconDirection={iconDirection}\r\n target={target}\r\n >\r\n {text}\r\n </ButtonPrimary>\r\n )\r\n }\r\n\r\n if (anchor) {\r\n // TODO: the whole button is not clickable, but it should be\r\n return (\r\n <ButtonPrimary asChild theme={theme} iconDirection={iconDirection}>\r\n <a href={href}>{text}</a>\r\n </ButtonPrimary>\r\n )\r\n }\r\n\r\n if (target) {\r\n return (\r\n <ButtonPrimary asChild theme={theme} iconDirection={iconDirection}>\r\n <a href={href} target={target} rel=\"noopener noreferrer\">\r\n {text}\r\n </a>\r\n </ButtonPrimary>\r\n )\r\n }\r\n\r\n return (\r\n <ButtonPrimary\r\n theme={theme}\r\n iconDirection={iconDirection}\r\n onClick={onClick}\r\n className={cn(className)}\r\n >\r\n {text}\r\n </ButtonPrimary>\r\n )\r\n}\r\n\r\nconst childrenComponent = (componentType: 'search-news') => {\r\n switch (componentType) {\r\n case 'search-news':\r\n return (\r\n <div\r\n data-test-id=\"search-news\"\r\n className=\"w-full h-full flex justify-center items-center\"\r\n >\r\n <SearchInputWithButton\r\n placeholder=\"Фильтр по тарифам\"\r\n onChange={(event) => {\r\n console.log(event.target.value)\r\n }}\r\n className=\"w-[456px]\"\r\n // className=\"h-16 w-72 mt-2 bg-whitish\"\r\n />\r\n </div>\r\n )\r\n\r\n default:\r\n return null\r\n }\r\n}\r\n\r\nconst Hero: React.FC<HeroProps> = ({\r\n title,\r\n contentContainerSize,\r\n contentContainerBottomSize,\r\n desc,\r\n price,\r\n oldPrice,\r\n image,\r\n buttons,\r\n childrenComponentType,\r\n breadcrumbs,\r\n bottomButtons,\r\n size = 'default',\r\n imageSize,\r\n linesImage,\r\n onButtonClick,\r\n}) => {\r\n const imageWidth = (size: 'small' | 'medium' | 'default') => {\r\n switch (size) {\r\n case 'small':\r\n return 448\r\n case 'medium':\r\n return 552\r\n default:\r\n return 664\r\n }\r\n }\r\n const imageHeight = (size: 'small' | 'medium' | 'default') => {\r\n switch (size) {\r\n case 'small':\r\n return 336\r\n case 'medium':\r\n return 456\r\n default:\r\n return 544\r\n }\r\n }\r\n\r\n const ImageWrapper = getAdapter('ImageWrapper')\r\n\r\n return (\r\n <section className=\"container relative\">\r\n <div className=\"mx-auto w-full h-[606px]1 bg-gradient-to-b from-navy to-sapphire text-white rounded-2xl px-6 relative overflow-hidden\">\r\n <div\r\n data-test-id=\"content-container\"\r\n className={cn(\r\n 'w-full relative z-20 grid grid-cols-1 sm:grid-cols-9',\r\n contentContainerVariants({\r\n size: contentContainerBottomSize || size,\r\n }),\r\n bottomButtons?.length == 1 && 'pb-36 xl:pb-32',\r\n bottomButtons?.length == 2 && 'pb-36 xl:pb-32',\r\n bottomButtons?.length == 3 && 'pb-52 md:pb-48 xl:pb-32',\r\n bottomButtons?.length == 4 && 'pb-[280px] sm:pb-52 xl:pb-32',\r\n )}\r\n >\r\n {/* Navigation */}\r\n <div className=\"right-divider_with-tongue1 col-span-2 mt-6 pr-4 relative hidden lg:block\">\r\n {breadcrumbs && <Breadcrumbs list={breadcrumbs} />}\r\n </div>\r\n\r\n {/* Slider Content */}\r\n <div\r\n className={cn(\r\n 'w-auto sm:p-10 pt-10 sm:pt-32 flex flex-col justify-center items-start col-span-7 border-[1px] border-t-0 border-r-0 border-b-0 border-l-0 lg:border-l-[1px] border-whitish-opacity-16 border-solid pb-4',\r\n sliderContentVariants({ size }),\r\n bottomButtons ? 'pb-[60px]' : '',\r\n )}\r\n >\r\n <Heading\r\n level={1}\r\n as={'h1'}\r\n className={cn('', titleVariants({ contentContainerSize }))}\r\n >\r\n <SafeHtmlRenderer html={title} />\r\n </Heading>\r\n\r\n <div className=\"space-y-8 w-full\">\r\n <Text\r\n variant=\"body\"\r\n className={cn(\r\n descVariants({ contentContainerSize }),\r\n 'text-whitish-opacity-60',\r\n )}\r\n >\r\n {desc}\r\n </Text>\r\n\r\n {(price || oldPrice) && (\r\n <div className=\"flex space-x-5 items-baseline\">\r\n {oldPrice && (\r\n <Text\r\n variant=\"lead-text\"\r\n className=\"text-whitish-opacity-32 line-through\"\r\n >\r\n {oldPrice}\r\n </Text>\r\n )}\r\n <Heading level={3} as={'div'}>\r\n {price}\r\n </Heading>\r\n </div>\r\n )}\r\n\r\n {buttons && (\r\n <div className=\"flex gap-4 mt-12 w-full flex-col md:flex-row\">\r\n {buttons.map((button) => (\r\n <HeroButton\r\n key={button.text}\r\n className=\"w-full md:w-fit\"\r\n target={button.target}\r\n {...button}\r\n onClick={() => onButtonClick?.(button.uniqId)}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {childrenComponentType && (\r\n <div className=\"mt-5\">\r\n {childrenComponent(childrenComponentType)}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n\r\n {bottomButtons && (\r\n <div\r\n className={cn(\r\n 'gap-4 absolute bottom-8 z-30 w-[96%] px-10 sm:px-8 lg:px-0',\r\n bottomButtons.length === 4\r\n ? 'grid grid-cols-1 md:grid-cols-2 xl:grid-cols-4 left-1/2 -translate-x-1/2'\r\n : bottomButtons.length === 3\r\n ? 'grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 left-1/2 -translate-x-1/2'\r\n : 'flex flex-col md:flex-row',\r\n )}\r\n >\r\n {bottomButtons.map((button) => (\r\n <HeroButton\r\n key={button.text}\r\n theme=\"opacity\"\r\n {...button}\r\n className=\"w-full backdrop-blur-[8px]\"\r\n linkClassName=\"w-full\"\r\n onClick={() => onButtonClick?.(button.uniqId)}\r\n target={button.target}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n\r\n {image && (\r\n <div className=\"hidden sm:block absolute bottom-0 right-6 floating\">\r\n <ImageWrapper\r\n src={image}\r\n alt={title}\r\n // width={size === \"default\" ? 664 : 448}\r\n // height={size === \"default\" ? 544 : 336}\r\n width={imageWidth(imageSize || size)}\r\n height={imageHeight(imageSize || size)}\r\n objectFit=\"contain\"\r\n />\r\n </div>\r\n )}\r\n\r\n {linesImage && (\r\n <div className=\"absolute bottom-0 right-6 fadeLines\">\r\n <ImageWrapper\r\n src={linesImage}\r\n alt={title}\r\n // width={size === \"default\" ? 664 : 448}\r\n // height={size === \"default\" ? 544 : 336}\r\n width={imageWidth(imageSize || size)}\r\n height={imageHeight(imageSize || size)}\r\n objectFit=\"contain\"\r\n />\r\n </div>\r\n )}\r\n </div>\r\n </section>\r\n )\r\n}\r\n\r\nexport default Hero\r\n"],"names":["contentContainerVariants","cva","sliderContentVariants","titleVariants","descVariants","HeroButton","text","href","target","anchor","theme","className","linkClassName","iconDirection","onClick","React","ButtonPrimary","cn","childrenComponent","componentType","SearchInputWithButton","event","Hero","title","contentContainerSize","contentContainerBottomSize","desc","price","oldPrice","image","buttons","childrenComponentType","breadcrumbs","bottomButtons","size","imageSize","linesImage","onButtonClick","imageWidth","imageHeight","ImageWrapper","getAdapter","Breadcrumbs","Heading","SafeHtmlRenderer","Text","button","Hero$1"],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -3332,6 +3332,9 @@ html {
3332
3332
  .md\:basis-1\/2{
3333
3333
  flex-basis: 50%;
3334
3334
  }
3335
+ .md\:grid-cols-2{
3336
+ grid-template-columns: repeat(2, minmax(0, 1fr));
3337
+ }
3335
3338
  .md\:flex-row{
3336
3339
  flex-direction: row;
3337
3340
  }
package/package.json CHANGED
@@ -13,7 +13,7 @@
13
13
  "type": "git",
14
14
  "url": "git+https://github.com/wowxoxo/precision-ui.git"
15
15
  },
16
- "version": "0.10.5",
16
+ "version": "0.10.6",
17
17
  "type": "module",
18
18
  "module": "./dist/index.es.js",
19
19
  "types": "./dist/index.d.ts",