@redneckz/wildless-cms-uni-blocks 0.3.17 → 0.3.20

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 (112) hide show
  1. package/README.md +43 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +42 -8
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/cosmos-static/icons/ArrowsRewindRight.svg +1 -0
  6. package/dist/components/BaseTile/BaseTile.js +1 -1
  7. package/dist/components/BaseTile/BaseTile.js.map +1 -1
  8. package/dist/components/Blocks.d.ts +1 -0
  9. package/dist/components/Blocks.js +2 -0
  10. package/dist/components/Blocks.js.map +1 -1
  11. package/dist/components/ComparisonTable/TableColumn.js +1 -1
  12. package/dist/components/ComparisonTable/TableColumn.js.map +1 -1
  13. package/dist/components/ProductBlock/ProductBlockContent.d.ts +7 -1
  14. package/dist/components/ProductBlock/ProductBlockInner.js +9 -2
  15. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  16. package/dist/components/ProductGallery/ProductGalleryContent.d.ts +1 -1
  17. package/dist/components/ProductGalleryGreen/ProductGalleryGreen.d.ts +5 -0
  18. package/dist/components/ProductGalleryGreen/ProductGalleryGreen.js +32 -0
  19. package/dist/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -0
  20. package/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.d.ts +30 -0
  21. package/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.js +2 -0
  22. package/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.js.map +1 -0
  23. package/dist/icons/IconName.d.ts +3 -2
  24. package/dist/icons/IconName.js +1 -0
  25. package/dist/icons/IconName.js.map +1 -1
  26. package/dist/ui-kit/Heading/Heading.js +2 -2
  27. package/dist/ui-kit/Heading/Heading.js.map +1 -1
  28. package/lib/common.css +1 -1
  29. package/lib/components/BaseTile/BaseTile.js +1 -1
  30. package/lib/components/BaseTile/BaseTile.js.map +1 -1
  31. package/lib/components/Blocks.d.ts +1 -0
  32. package/lib/components/Blocks.js +2 -0
  33. package/lib/components/Blocks.js.map +1 -1
  34. package/lib/components/ComparisonTable/TableColumn.js +1 -1
  35. package/lib/components/ComparisonTable/TableColumn.js.map +1 -1
  36. package/lib/components/ProductBlock/ProductBlockContent.d.ts +7 -1
  37. package/lib/components/ProductBlock/ProductBlockInner.js +9 -2
  38. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  39. package/lib/components/ProductGallery/ProductGalleryContent.d.ts +1 -1
  40. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.d.ts +5 -0
  41. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.fixture.d.ts +4 -0
  42. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.js +30 -0
  43. package/lib/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -0
  44. package/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.d.ts +30 -0
  45. package/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.js +2 -0
  46. package/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.js.map +1 -0
  47. package/lib/icons/IconName.d.ts +3 -2
  48. package/lib/icons/IconName.js +1 -0
  49. package/lib/icons/IconName.js.map +1 -1
  50. package/lib/ui-kit/Heading/Heading.js +2 -2
  51. package/lib/ui-kit/Heading/Heading.js.map +1 -1
  52. package/mobile/bundle/bundle.umd.js +2 -2
  53. package/mobile/bundle/bundle.umd.min.js +1 -1
  54. package/mobile/dist/components/BaseTile/BaseTile.js +1 -1
  55. package/mobile/dist/components/BaseTile/BaseTile.js.map +1 -1
  56. package/mobile/dist/components/ComparisonTable/TableColumn.js +1 -1
  57. package/mobile/dist/components/ComparisonTable/TableColumn.js.map +1 -1
  58. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +7 -1
  59. package/mobile/dist/components/ProductGallery/ProductGalleryContent.d.ts +1 -1
  60. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.d.ts +5 -0
  61. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.js +32 -0
  62. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -0
  63. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.d.ts +30 -0
  64. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.js +2 -0
  65. package/mobile/dist/components/ProductGalleryGreen/ProductGalleryGreenContent.js.map +1 -0
  66. package/mobile/dist/icons/IconName.d.ts +3 -2
  67. package/mobile/dist/icons/IconName.js +1 -0
  68. package/mobile/dist/icons/IconName.js.map +1 -1
  69. package/mobile/lib/components/BaseTile/BaseTile.js +1 -1
  70. package/mobile/lib/components/BaseTile/BaseTile.js.map +1 -1
  71. package/mobile/lib/components/ComparisonTable/TableColumn.js +1 -1
  72. package/mobile/lib/components/ComparisonTable/TableColumn.js.map +1 -1
  73. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +7 -1
  74. package/mobile/lib/components/ProductGallery/ProductGalleryContent.d.ts +1 -1
  75. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.d.ts +5 -0
  76. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.js +30 -0
  77. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreen.js.map +1 -0
  78. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.d.ts +30 -0
  79. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.js +2 -0
  80. package/mobile/lib/components/ProductGalleryGreen/ProductGalleryGreenContent.js.map +1 -0
  81. package/mobile/lib/icons/IconName.d.ts +3 -2
  82. package/mobile/lib/icons/IconName.js +1 -0
  83. package/mobile/lib/icons/IconName.js.map +1 -1
  84. package/mobile/src/common.css +0 -30
  85. package/mobile/src/components/BaseTile/BaseTile.tsx +1 -1
  86. package/mobile/src/components/ComparisonTable/TableColumn.tsx +1 -1
  87. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +7 -1
  88. package/mobile/src/components/ProductGallery/ProductGalleryContent.ts +1 -1
  89. package/mobile/src/components/ProductGalleryGreen/ProductGalleryGreen.example.json +22 -0
  90. package/mobile/src/components/ProductGalleryGreen/ProductGalleryGreen.tsx +98 -0
  91. package/mobile/src/components/ProductGalleryGreen/ProductGalleryGreenContent.ts +32 -0
  92. package/mobile/src/components/Tile/Tile.example.json +1 -3
  93. package/mobile/src/icons/ArrowsRewindRight.svg +16 -0
  94. package/mobile/src/icons/IconName.ts +3 -3
  95. package/package.json +1 -1
  96. package/src/common.css +0 -30
  97. package/src/components/BaseTile/BaseTile.tsx +1 -1
  98. package/src/components/Blocks.ts +2 -0
  99. package/src/components/ComparisonTable/TableColumn.tsx +1 -1
  100. package/src/components/ProductBlock/ProductBlockContent.ts +7 -1
  101. package/src/components/ProductBlock/ProductBlockInner.tsx +23 -15
  102. package/src/components/ProductGallery/ProductGallery.fixture.mobile.tsx +2 -2
  103. package/src/components/ProductGallery/ProductGallery.fixture.tsx +4 -4
  104. package/src/components/ProductGallery/ProductGalleryContent.ts +1 -1
  105. package/src/components/ProductGalleryGreen/ProductGalleryGreen.example.json +22 -0
  106. package/src/components/ProductGalleryGreen/ProductGalleryGreen.fixture.tsx +114 -0
  107. package/src/components/ProductGalleryGreen/ProductGalleryGreen.tsx +98 -0
  108. package/src/components/ProductGalleryGreen/ProductGalleryGreenContent.ts +32 -0
  109. package/src/components/Tile/Tile.example.json +1 -3
  110. package/src/icons/ArrowsRewindRight.svg +16 -0
  111. package/src/icons/IconName.ts +149 -4
  112. package/src/ui-kit/Heading/Heading.tsx +2 -2
@@ -0,0 +1,5 @@
1
+ import type { UniBlockProps } from '../../types';
2
+ import type { ProductGalleryGreenContent } from './ProductGalleryGreenContent';
3
+ export interface ProductGalleryProps extends ProductGalleryGreenContent, UniBlockProps {
4
+ }
5
+ export declare const ProductGalleryGreen: (props: import("@redneckz/uni-jsx").PropsWithChildren<ProductGalleryProps, any>, context?: any) => any;
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
+ import { JSX } from '@redneckz/uni-jsx';
3
+ import { Icon } from '../../ui-kit/Icon/Icon.js';
4
+ import { ProductBlockInner } from '../ProductBlock/ProductBlockInner.js';
5
+ export const ProductGalleryGreen = JSX(({ className = '', context, slides = [] }) => {
6
+ const galleryNav = slides.map((s) => s.nav);
7
+ const galleryBlocks = slides.map((s) => s.productBlock);
8
+ const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
9
+ return (_jsxs("section", { className: `box-border pt-[70px] relative font-sans overflow-hidden bg-primary-main w-100 ${className}`, children: [_jsx("div", { className: "flex duration-1000 pb-14", style: { transform: `translateX(-${activeSlideIndex}00%)` }, role: "list", children: galleryBlocks.map((_, i) => renderProductBlock(_, i, context)) }), _jsx("div", { className: "flex items-center absolute bottom-6 left-0 right-0 px-9 box-border", children: galleryNav.map((slide, i) => renderNavButton({
10
+ slide,
11
+ i,
12
+ activeSlideIndex,
13
+ onClick: () => setActiveSlideIndex(i),
14
+ })) })] }));
15
+ });
16
+ function renderProductBlock(block, i, context) {
17
+ return (_jsx("section", { className: "box-border relative flex grow-0 shrink-0 basis-full px-9", role: "listitem", children: _jsxs("div", { className: "flex grow", children: [block.backgroundText ? (_jsx("div", { className: "absolute text-[454px] font-bold text-white tracking-[-10px] leading-[299px] opacity-[.1] right-12 top-20 z-0", children: block.backgroundText })) : null, _jsx(ProductBlockInner, { className: "pl-2.5 pt-2.5 pb-1.5 pr-[6.25rem] z-[1]", context: context, textBlockClassName: "mb-[154px]", version: "secondary", ...block }), _jsx(Icon, { className: "absolute right-[460px] top-[200px] z-0 mb-4", name: "ArrowsRewindRight", width: "230", height: "187" })] }) }, String(i)));
18
+ }
19
+ function renderNavButton({ slide, i, activeSlideIndex, onClick }) {
20
+ const isActiveBtn = i === activeSlideIndex;
21
+ const btnClassName = isActiveBtn
22
+ ? 'bg-white shadow-dark-blue/42 h-[102px] w-[354px] min-w-[354px] max-w-[354px] p-0'
23
+ : 'bg-white/10 min-w-[277px] px-0 pt-4 pb-[23px] hover:py-[26px] hover:py-[26px] ease-in duration-300';
24
+ const btnTitleClassName = isActiveBtn ? 'text-primary-text' : 'text-white';
25
+ const btnDescClassName = isActiveBtn ? 'text-secondary-text' : 'text-white';
26
+ return (_jsx("button", { type: "button", onClick: onClick, "aria-label": slide?.title, className: `box-border font-sans group relative overflow-hidden border-white/50 border-[1px] cursor-pointer text-left mb-6a mx-1 grow basis-0 backdrop-blur-sm
27
+ ${btnClassName}
28
+ `, children: _jsxs("div", { className: "border-0 px-6", children: [_jsx("div", { className: `text-sm font-medium pb-[3px] ${btnTitleClassName}`, children: slide?.title }), _jsx("div", { className: `text-xs text-secondary-text ${btnDescClassName}`, children: slide.description })] }) }, String(i)));
29
+ }
30
+ //# sourceMappingURL=ProductGalleryGreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductGalleryGreen.js","sourceRoot":"","sources":["../../../src/components/ProductGalleryGreen/ProductGalleryGreen.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { ProductBlockInnerContent } from '../ProductBlock/ProductBlockContent';
2
+ /** @title Кнопка под слайдом */
3
+ interface ProductGalleryNav {
4
+ /** @title Заголовок */
5
+ title: string;
6
+ /** @title Описание */
7
+ description: string;
8
+ }
9
+ /**
10
+ * @title Слайд
11
+ */
12
+ export interface ProductSlide {
13
+ /** @title Превью содержимого слайда на навигации */
14
+ nav?: ProductGalleryNav;
15
+ /** @title Содержимое слайда */
16
+ productBlock: ProductBlockInnerContent;
17
+ }
18
+ /**
19
+ * @title Продуктовая галерея
20
+ */
21
+ export interface ProductGalleryGreenContent {
22
+ /**
23
+ * @title Задержка
24
+ * @hidden //! temporary not used
25
+ */
26
+ duration?: number;
27
+ /** @title Слайды */
28
+ slides?: ProductSlide[];
29
+ }
30
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ProductGalleryGreenContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductGalleryGreenContent.js","sourceRoot":"","sources":["../../../src/components/ProductGalleryGreen/ProductGalleryGreenContent.ts"],"names":[],"mappings":""}
@@ -1,6 +1,7 @@
1
1
  export declare enum IconMap {
2
2
  ActualBalanceIcon = "ActualBalanceIcon",
3
3
  AppleIcon = "AppleIcon",
4
+ ArrowsRewindRight = "ArrowsRewindRight",
4
5
  AtmIcon = "AtmIcon",
5
6
  BankIcon = "BankIcon",
6
7
  BurgerIcon = "BurgerIcon",
@@ -77,7 +78,7 @@ export declare enum IconMap {
77
78
  * @title Иконка
78
79
  * @enumNames [
79
80
  * "",
80
- * "Деньги", "Лого «Apple»", "Банкомат", "Банк", "Бургер", "Бургер (белый)", "Календарь 2", "Скруглённый календарь", "Календарь", "Календарь с галочкой", "Календарь белый", "Кред. карта", "Кред. карта под наклоном", "Кред. карта с галочкой", "Карта с драгоценностями", "Деньги внутри кошелька", "Часы", "Крестик", "Кресло", "Кредитные карты", "Скидка", "Документ", "Документ (одноцветный)", "Документ с текстом", "Доллар", "Земля", "Пустой кошелёк с возвратом", "Пустой кошелёк", "Пустой кошелёк (белый)", "Евро", "Геолокация", "Зеркало", "Глобус", "Gps", "Сетка", "Сетка (белая)", "Диаграмма роста", "Скидка", "JCB", "Лупа", "MasterCard", "Минус", "МИР", "Деньги", "Денежное страхование", "Монитор и мобильный", "Новый документ", "Офис", "Лого «Одноклассники»", "Бизнес", "Проценты (круг.)", "Проценты", "Проценты белые", "Персональная карта", "Лого «PlayMarket»", "Плюс", "Профиль, 2 персоны", "Профиль", "Рубль (круг.)", "Сейф", "Безопасность", "Подписанные документы", "Маленькие часы", "Лого «Telegram»", "UnionPay", "Пользователь", "Visa", "Лого «VK»", "Пополнение карты", "Кошелёк с плюсом", "Кошелёк", "Кошелёк с деньгами"
81
+ * "Деньги", "Лого «Apple»", "ArrowsRewindRight", "Банкомат", "Банк", "Бургер", "Бургер (белый)", "Календарь 2", "Скруглённый календарь", "Календарь", "Календарь с галочкой", "Календарь белый", "Кред. карта", "Кред. карта под наклоном", "Кред. карта с галочкой", "Карта с драгоценностями", "Деньги внутри кошелька", "Часы", "Крестик", "Кресло", "Кредитные карты", "Скидка", "Документ", "Документ (одноцветный)", "Документ с текстом", "Доллар", "Земля", "Пустой кошелёк с возвратом", "Пустой кошелёк", "Пустой кошелёк (белый)", "Евро", "Геолокация", "Зеркало", "Глобус", "Gps", "Сетка", "Сетка (белая)", "Диаграмма роста", "Скидка", "JCB", "Лупа", "MasterCard", "Минус", "МИР", "Деньги", "Денежное страхование", "Монитор и мобильный", "Новый документ", "Офис", "Лого «Одноклассники»", "Бизнес", "Проценты (круг.)", "Проценты", "Проценты белые", "Персональная карта", "Лого «PlayMarket»", "Плюс", "Профиль, 2 персоны", "Профиль", "Рубль (круг.)", "Сейф", "Безопасность", "Подписанные документы", "Маленькие часы", "Лого «Telegram»", "UnionPay", "Пользователь", "Visa", "Лого «VK»", "Пополнение карты", "Кошелёк с плюсом", "Кошелёк", "Кошелёк с деньгами"
81
82
  * ]
82
83
  */
83
- export declare type IconName = "" | "ActualBalanceIcon" | "AppleIcon" | "AtmIcon" | "BankIcon" | "BurgerIcon" | "BurgerIconWhite" | "Calendar2Icon" | "CalendarCircleIcon" | "CalendarIcon" | "CalendarTickIcon" | "CalendarWhiteIcon" | "CardIcon" | "CardPosIcon" | "CardTickIcon" | "CardWithGemIcon" | "ChartSquareIcon" | "ClockIcon" | "CloseIcon" | "ComfortableCompIcon" | "CreditCardsIcon" | "DiscountShapeIcon" | "DocIcon" | "DocIconMonoColor" | "DocumentTextIcon" | "DollarIcon" | "EarthIcon" | "EmptyWalletChangeIcon" | "EmptyWalletIcon" | "EmptyWalletWhiteIcon" | "EuroIcon" | "GeolocationIcon" | "GlassIcon" | "GlobalIcon" | "GpsIcon" | "GridIcon" | "GridIconWhite" | "InterestGrowthIcon" | "InterestIcon" | "JCBIcon" | "LoupeIcon" | "MasterCardIcon" | "MinusIcon" | "MirIcon" | "MoneyIcon" | "MoneyInsuranceIcon" | "MonitorMobileIcon" | "NewDocIcon" | "OfficeIcon" | "OkIcon" | "PassSendIcon" | "PercentageRoundIcon" | "PercentageSquareIcon" | "PercentageSquareWhiteIcon" | "PersonalCardIcon" | "PlayMarketIcon" | "PlusIcon" | "Profile2UserIcon" | "ProfileIcon" | "RoundRubleIcon" | "SafeIcon" | "ShieldTickIcon" | "SignDocsIcon" | "SmallClockIcon" | "TelegramIcon" | "UnionPayIcon" | "UserTickIcon" | "VisaIcon" | "VKIcon" | "WalletAdd2Icon" | "WalletAddIcon" | "WalletIcon" | "WalletWithMoneyIcon";
84
+ export declare type IconName = "" | "ActualBalanceIcon" | "AppleIcon" | "ArrowsRewindRight" | "AtmIcon" | "BankIcon" | "BurgerIcon" | "BurgerIconWhite" | "Calendar2Icon" | "CalendarCircleIcon" | "CalendarIcon" | "CalendarTickIcon" | "CalendarWhiteIcon" | "CardIcon" | "CardPosIcon" | "CardTickIcon" | "CardWithGemIcon" | "ChartSquareIcon" | "ClockIcon" | "CloseIcon" | "ComfortableCompIcon" | "CreditCardsIcon" | "DiscountShapeIcon" | "DocIcon" | "DocIconMonoColor" | "DocumentTextIcon" | "DollarIcon" | "EarthIcon" | "EmptyWalletChangeIcon" | "EmptyWalletIcon" | "EmptyWalletWhiteIcon" | "EuroIcon" | "GeolocationIcon" | "GlassIcon" | "GlobalIcon" | "GpsIcon" | "GridIcon" | "GridIconWhite" | "InterestGrowthIcon" | "InterestIcon" | "JCBIcon" | "LoupeIcon" | "MasterCardIcon" | "MinusIcon" | "MirIcon" | "MoneyIcon" | "MoneyInsuranceIcon" | "MonitorMobileIcon" | "NewDocIcon" | "OfficeIcon" | "OkIcon" | "PassSendIcon" | "PercentageRoundIcon" | "PercentageSquareIcon" | "PercentageSquareWhiteIcon" | "PersonalCardIcon" | "PlayMarketIcon" | "PlusIcon" | "Profile2UserIcon" | "ProfileIcon" | "RoundRubleIcon" | "SafeIcon" | "ShieldTickIcon" | "SignDocsIcon" | "SmallClockIcon" | "TelegramIcon" | "UnionPayIcon" | "UserTickIcon" | "VisaIcon" | "VKIcon" | "WalletAdd2Icon" | "WalletAddIcon" | "WalletIcon" | "WalletWithMoneyIcon";
@@ -3,6 +3,7 @@ export var IconMap;
3
3
  (function (IconMap) {
4
4
  IconMap["ActualBalanceIcon"] = "ActualBalanceIcon";
5
5
  IconMap["AppleIcon"] = "AppleIcon";
6
+ IconMap["ArrowsRewindRight"] = "ArrowsRewindRight";
6
7
  IconMap["AtmIcon"] = "AtmIcon";
7
8
  IconMap["BankIcon"] = "BankIcon";
8
9
  IconMap["BurgerIcon"] = "BurgerIcon";
@@ -1 +1 @@
1
- {"version":3,"file":"IconName.js","sourceRoot":"","sources":["../../src/icons/IconName.ts"],"names":[],"mappings":"AACA,0BAA0B;AAE1B,MAAM,CAAN,IAAY,OAEX;AAFD,WAAY,OAAO;IACjB,kDAAuC,CAAA;IAAE,kCAAuB,CAAA;IAAE,8BAAmB,CAAA;IAAE,gCAAqB,CAAA;IAAE,oCAAyB,CAAA;IAAE,8CAAmC,CAAA;IAAE,0CAA+B,CAAA;IAAE,oDAAyC,CAAA;IAAE,wCAA6B,CAAA;IAAE,gDAAqC,CAAA;IAAE,kDAAuC,CAAA;IAAE,gCAAqB,CAAA;IAAE,sCAA2B,CAAA;IAAE,wCAA6B,CAAA;IAAE,8CAAmC,CAAA;IAAE,8CAAmC,CAAA;IAAE,kCAAuB,CAAA;IAAE,kCAAuB,CAAA;IAAE,sDAA2C,CAAA;IAAE,8CAAmC,CAAA;IAAE,kDAAuC,CAAA;IAAE,8BAAmB,CAAA;IAAE,gDAAqC,CAAA;IAAE,gDAAqC,CAAA;IAAE,oCAAyB,CAAA;IAAE,kCAAuB,CAAA;IAAE,0DAA+C,CAAA;IAAE,8CAAmC,CAAA;IAAE,wDAA6C,CAAA;IAAE,gCAAqB,CAAA;IAAE,8CAAmC,CAAA;IAAE,kCAAuB,CAAA;IAAE,oCAAyB,CAAA;IAAE,8BAAmB,CAAA;IAAE,gCAAqB,CAAA;IAAE,0CAA+B,CAAA;IAAE,oDAAyC,CAAA;IAAE,wCAA6B,CAAA;IAAE,8BAAmB,CAAA;IAAE,kCAAuB,CAAA;IAAE,4CAAiC,CAAA;IAAE,kCAAuB,CAAA;IAAE,8BAAmB,CAAA;IAAE,kCAAuB,CAAA;IAAE,oDAAyC,CAAA;IAAE,kDAAuC,CAAA;IAAE,oCAAyB,CAAA;IAAE,oCAAyB,CAAA;IAAE,4BAAiB,CAAA;IAAE,wCAA6B,CAAA;IAAE,sDAA2C,CAAA;IAAE,wDAA6C,CAAA;IAAE,kEAAuD,CAAA;IAAE,gDAAqC,CAAA;IAAE,4CAAiC,CAAA;IAAE,gCAAqB,CAAA;IAAE,gDAAqC,CAAA;IAAE,sCAA2B,CAAA;IAAE,4CAAiC,CAAA;IAAE,gCAAqB,CAAA;IAAE,4CAAiC,CAAA;IAAE,wCAA6B,CAAA;IAAE,4CAAiC,CAAA;IAAE,wCAA6B,CAAA;IAAE,wCAA6B,CAAA;IAAE,wCAA6B,CAAA;IAAE,gCAAqB,CAAA;IAAE,4BAAiB,CAAA;IAAE,4CAAiC,CAAA;IAAE,0CAA+B,CAAA;IAAE,oCAAyB,CAAA;IAAE,sDAA2C,CAAA;AACtxE,CAAC,EAFW,OAAO,KAAP,OAAO,QAElB"}
1
+ {"version":3,"file":"IconName.js","sourceRoot":"","sources":["../../src/icons/IconName.ts"],"names":[],"mappings":"AACA,0BAA0B;AAE1B,MAAM,CAAN,IAAY,OAEX;AAFD,WAAY,OAAO;IACjB,kDAAuC,CAAA;IAAE,kCAAuB,CAAA;IAAE,kDAAuC,CAAA;IAAE,8BAAmB,CAAA;IAAE,gCAAqB,CAAA;IAAE,oCAAyB,CAAA;IAAE,8CAAmC,CAAA;IAAE,0CAA+B,CAAA;IAAE,oDAAyC,CAAA;IAAE,wCAA6B,CAAA;IAAE,gDAAqC,CAAA;IAAE,kDAAuC,CAAA;IAAE,gCAAqB,CAAA;IAAE,sCAA2B,CAAA;IAAE,wCAA6B,CAAA;IAAE,8CAAmC,CAAA;IAAE,8CAAmC,CAAA;IAAE,kCAAuB,CAAA;IAAE,kCAAuB,CAAA;IAAE,sDAA2C,CAAA;IAAE,8CAAmC,CAAA;IAAE,kDAAuC,CAAA;IAAE,8BAAmB,CAAA;IAAE,gDAAqC,CAAA;IAAE,gDAAqC,CAAA;IAAE,oCAAyB,CAAA;IAAE,kCAAuB,CAAA;IAAE,0DAA+C,CAAA;IAAE,8CAAmC,CAAA;IAAE,wDAA6C,CAAA;IAAE,gCAAqB,CAAA;IAAE,8CAAmC,CAAA;IAAE,kCAAuB,CAAA;IAAE,oCAAyB,CAAA;IAAE,8BAAmB,CAAA;IAAE,gCAAqB,CAAA;IAAE,0CAA+B,CAAA;IAAE,oDAAyC,CAAA;IAAE,wCAA6B,CAAA;IAAE,8BAAmB,CAAA;IAAE,kCAAuB,CAAA;IAAE,4CAAiC,CAAA;IAAE,kCAAuB,CAAA;IAAE,8BAAmB,CAAA;IAAE,kCAAuB,CAAA;IAAE,oDAAyC,CAAA;IAAE,kDAAuC,CAAA;IAAE,oCAAyB,CAAA;IAAE,oCAAyB,CAAA;IAAE,4BAAiB,CAAA;IAAE,wCAA6B,CAAA;IAAE,sDAA2C,CAAA;IAAE,wDAA6C,CAAA;IAAE,kEAAuD,CAAA;IAAE,gDAAqC,CAAA;IAAE,4CAAiC,CAAA;IAAE,gCAAqB,CAAA;IAAE,gDAAqC,CAAA;IAAE,sCAA2B,CAAA;IAAE,4CAAiC,CAAA;IAAE,gCAAqB,CAAA;IAAE,4CAAiC,CAAA;IAAE,wCAA6B,CAAA;IAAE,4CAAiC,CAAA;IAAE,wCAA6B,CAAA;IAAE,wCAA6B,CAAA;IAAE,wCAA6B,CAAA;IAAE,gCAAqB,CAAA;IAAE,4BAAiB,CAAA;IAAE,4CAAiC,CAAA;IAAE,0CAA+B,CAAA;IAAE,oCAAyB,CAAA;IAAE,sDAA2C,CAAA;AAC/zE,CAAC,EAFW,OAAO,KAAP,OAAO,QAElB"}
@@ -22,26 +22,6 @@
22
22
  }
23
23
  /* Ecosystem own | Yellow */
24
24
  [data-theme='eo'] {
25
- --color-primary-main: 221, 182, 61;
26
- --color-primary-hover: 187, 151, 39;
27
- --color-primary-active: 126, 99, 12;
28
- --color-secondary-hover: 241, 236, 221;
29
- --color-secondary-active: 229, 222, 199;
30
- --color-gradient-from: 141, 189, 76; /* TODO: change color to theme eo */
31
- --color-gradient-to: 69, 172, 69; /* TODO: change color to theme eo */
32
- }
33
-
34
- [data-theme='eo2'] {
35
- --color-primary-main: 255, 204, 0;
36
- --color-primary-hover: 187, 151, 39;
37
- --color-primary-active: 126, 99, 12;
38
- --color-secondary-hover: 241, 236, 221;
39
- --color-secondary-active: 229, 222, 199;
40
- --color-gradient-from: 141, 189, 76; /* TODO: change color to theme eo */
41
- --color-gradient-to: 69, 172, 69; /* TODO: change color to theme eo */
42
- }
43
-
44
- [data-theme='eo3'] {
45
25
  --color-primary-main: 225, 186, 30;
46
26
  --color-primary-hover: 187, 151, 39;
47
27
  --color-primary-active: 126, 99, 12;
@@ -51,16 +31,6 @@
51
31
  --color-gradient-to: 69, 172, 69; /* TODO: change color to theme eo */
52
32
  }
53
33
 
54
- [data-theme='eo4'] {
55
- --color-primary-main: 233, 191, 23;
56
- --color-primary-hover: 187, 151, 39;
57
- --color-primary-active: 126, 99, 12;
58
- --color-secondary-hover: 241, 236, 221;
59
- --color-secondary-active: 229, 222, 199;
60
- --color-gradient-from: 141, 189, 76; /* TODO: change color to theme eo */
61
- --color-gradient-to: 69, 172, 69; /* TODO: change color to theme eo */
62
- }
63
-
64
34
  @tailwind components;
65
35
  @tailwind utilities;
66
36
 
@@ -12,7 +12,7 @@ export const BaseTile = JSX<BaseTileProps>(
12
12
  <div className="flex grow w-full justify-between">
13
13
  <div className="flex flex-col justify-between w-full">
14
14
  <div>{children}</div>
15
- {buttons?.length ? <div>{buttons}</div> : null}
15
+ {buttons ? <div>{buttons}</div> : null}
16
16
  </div>
17
17
  {image}
18
18
  </div>
@@ -17,7 +17,7 @@ export interface TableColumnProps extends UniBlockProps {
17
17
 
18
18
  export const TableColumn = JSX<TableColumnProps>(
19
19
  ({ header, columnData, visibleRowLength = 0, isFillGradient, showRow, onToggleColumn }) => {
20
- const columnDataView = columnData.slice(0, showRow ? columnData.length : visibleRowLength);
20
+ const columnDataView = columnData?.slice(0, showRow ? columnData.length : visibleRowLength);
21
21
  const gradientClassName = isFillGradient ? GRADIENT : '';
22
22
  const buttonVersion: ButtonVersion = isFillGradient ? 'secondary' : 'primary';
23
23
  return (
@@ -20,7 +20,13 @@ export type ProductBlockInnerContent = HeadingContent &
20
20
  */
21
21
  benefits?: Benefit[];
22
22
  version?: BlockVersion;
23
- buttons?: ButtonContent[];
23
+ /**
24
+ * @title Стиль для текстовой части
25
+ * @hidden
26
+ */
27
+ textBlockClassName?: string;
28
+ /** @title Фоновый текст под иллюстрацией */
29
+ backgroundText?: string;
24
30
  };
25
31
 
26
32
  /**
@@ -5,7 +5,7 @@ interface ProductGalleryNav {
5
5
  /** @title Заголовок */
6
6
  title: string;
7
7
  /** @title Описание */
8
- desc: string;
8
+ description: string;
9
9
  }
10
10
 
11
11
  /**
@@ -0,0 +1,22 @@
1
+ {
2
+ "slides": [
3
+ {
4
+ "nav": {
5
+ "title": "Заголовок",
6
+ "description": "Описание"
7
+ },
8
+ "productBlock": {
9
+ "title": "Продуктовая галерея",
10
+ "image": {
11
+ "format": "webp",
12
+ "size": {
13
+ "width": 280
14
+ }
15
+ },
16
+ "version": "primary",
17
+ "description": "Описание",
18
+ "items": ["Элемент списка 1", "Элемент списка 2", "Элемент списка 3"]
19
+ }
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,98 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { UniBlockProps } from '../../types';
3
+ import { Icon } from '../../ui-kit/Icon/Icon';
4
+ import type { ProductBlockInnerContent } from '../ProductBlock/ProductBlockContent';
5
+ import { ProductBlockInner } from '../ProductBlock/ProductBlockInner';
6
+ import type { ProductGalleryGreenContent } from './ProductGalleryGreenContent';
7
+
8
+ export interface ProductGalleryProps extends ProductGalleryGreenContent, UniBlockProps {}
9
+
10
+ export const ProductGalleryGreen = JSX<ProductGalleryProps>(
11
+ ({ className = '', context, slides = [] }) => {
12
+ const galleryNav = slides.map((s) => s.nav);
13
+ const galleryBlocks = slides.map((s) => s.productBlock);
14
+ const [activeSlideIndex, setActiveSlideIndex] = context.useState(0);
15
+
16
+ return (
17
+ <section
18
+ className={`box-border pt-[70px] relative font-sans overflow-hidden bg-primary-main w-100 ${className}`}
19
+ >
20
+ <div
21
+ className="flex duration-1000 pb-14"
22
+ style={{ transform: `translateX(-${activeSlideIndex}00%)` }}
23
+ role="list"
24
+ >
25
+ {galleryBlocks.map((_, i) => renderProductBlock(_, i, context))}
26
+ </div>
27
+
28
+ <div className="flex items-center absolute bottom-6 left-0 right-0 px-9 box-border">
29
+ {galleryNav.map((slide, i) =>
30
+ renderNavButton({
31
+ slide,
32
+ i,
33
+ activeSlideIndex,
34
+ onClick: () => setActiveSlideIndex(i),
35
+ }),
36
+ )}
37
+ </div>
38
+ </section>
39
+ );
40
+ },
41
+ );
42
+
43
+ function renderProductBlock(block: ProductBlockInnerContent, i: number, context) {
44
+ return (
45
+ <section
46
+ key={String(i)}
47
+ className="box-border relative flex grow-0 shrink-0 basis-full px-9"
48
+ role="listitem"
49
+ >
50
+ <div className="flex grow">
51
+ {block.backgroundText ? (
52
+ <div className="absolute text-[454px] font-bold text-white tracking-[-10px] leading-[299px] opacity-[.1] right-12 top-20 z-0">
53
+ {block.backgroundText}
54
+ </div>
55
+ ) : null}
56
+ <ProductBlockInner
57
+ className="pl-2.5 pt-2.5 pb-1.5 pr-[6.25rem] z-[1]"
58
+ context={context}
59
+ textBlockClassName="mb-[154px]"
60
+ version="secondary"
61
+ {...block}
62
+ />
63
+ <Icon
64
+ className="absolute right-[460px] top-[200px] z-0 mb-4"
65
+ name="ArrowsRewindRight"
66
+ width="230"
67
+ height="187"
68
+ />
69
+ </div>
70
+ </section>
71
+ );
72
+ }
73
+
74
+ function renderNavButton({ slide, i, activeSlideIndex, onClick }) {
75
+ const isActiveBtn = i === activeSlideIndex;
76
+ const btnClassName = isActiveBtn
77
+ ? 'bg-white shadow-dark-blue/42 h-[102px] w-[354px] min-w-[354px] max-w-[354px] p-0'
78
+ : 'bg-white/10 min-w-[277px] px-0 pt-4 pb-[23px] hover:py-[26px] hover:py-[26px] ease-in duration-300';
79
+ const btnTitleClassName = isActiveBtn ? 'text-primary-text' : 'text-white';
80
+ const btnDescClassName = isActiveBtn ? 'text-secondary-text' : 'text-white';
81
+
82
+ return (
83
+ <button
84
+ type="button"
85
+ key={String(i)}
86
+ onClick={onClick}
87
+ aria-label={slide?.title}
88
+ className={`box-border font-sans group relative overflow-hidden border-white/50 border-[1px] cursor-pointer text-left mb-6a mx-1 grow basis-0 backdrop-blur-sm
89
+ ${btnClassName}
90
+ `}
91
+ >
92
+ <div className="border-0 px-6">
93
+ <div className={`text-sm font-medium pb-[3px] ${btnTitleClassName}`}>{slide?.title}</div>
94
+ <div className={`text-xs text-secondary-text ${btnDescClassName}`}>{slide.description}</div>
95
+ </div>
96
+ </button>
97
+ );
98
+ }
@@ -0,0 +1,32 @@
1
+ import type { ProductBlockInnerContent } from '../ProductBlock/ProductBlockContent';
2
+
3
+ /** @title Кнопка под слайдом */
4
+ interface ProductGalleryNav {
5
+ /** @title Заголовок */
6
+ title: string;
7
+ /** @title Описание */
8
+ description: string;
9
+ }
10
+
11
+ /**
12
+ * @title Слайд
13
+ */
14
+ export interface ProductSlide {
15
+ /** @title Превью содержимого слайда на навигации */
16
+ nav?: ProductGalleryNav;
17
+ /** @title Содержимое слайда */
18
+ productBlock: ProductBlockInnerContent;
19
+ }
20
+
21
+ /**
22
+ * @title Продуктовая галерея
23
+ */
24
+ export interface ProductGalleryGreenContent {
25
+ /**
26
+ * @title Задержка
27
+ * @hidden //! temporary not used
28
+ */
29
+ duration?: number;
30
+ /** @title Слайды */
31
+ slides?: ProductSlide[];
32
+ }
@@ -6,9 +6,7 @@
6
6
  "format": "webp",
7
7
  "size": {
8
8
  "width": 300
9
- },
10
- "alt": "Описание картинки",
11
- "title": "Подсказка"
9
+ }
12
10
  },
13
11
  "items": ["Пункт 1", "Пункт 2", "Пункт 3"],
14
12
  "buttons": [
@@ -0,0 +1,16 @@
1
+ <svg viewBox="0 0 230 187" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g filter="url(#filter0_d_7050_138706)">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M92.24 52.16L14 104.32V0L92.24 52.16ZM216.119 52.16L137.879 104.32V0L216.119 52.16Z" fill="white"/>
4
+ </g>
5
+ <defs>
6
+ <filter id="filter0_d_7050_138706" x="0.959999" y="0" width="228.199" height="186.907" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
7
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
8
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
9
+ <feOffset dy="69.5467"/>
10
+ <feGaussianBlur stdDeviation="6.52"/>
11
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0196078 0 0 0 0 0.0117647 0 0 0 0 0.0156863 0 0 0 0.1 0"/>
12
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_7050_138706"/>
13
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_7050_138706" result="shape"/>
14
+ </filter>
15
+ </defs>
16
+ </svg>
@@ -2,7 +2,7 @@
2
2
  // Generated. Do not touch
3
3
 
4
4
  export enum IconMap {
5
- ActualBalanceIcon = "ActualBalanceIcon", AppleIcon = "AppleIcon", AtmIcon = "AtmIcon", BankIcon = "BankIcon", BurgerIcon = "BurgerIcon", BurgerIconWhite = "BurgerIconWhite", Calendar2Icon = "Calendar2Icon", CalendarCircleIcon = "CalendarCircleIcon", CalendarIcon = "CalendarIcon", CalendarTickIcon = "CalendarTickIcon", CalendarWhiteIcon = "CalendarWhiteIcon", CardIcon = "CardIcon", CardPosIcon = "CardPosIcon", CardTickIcon = "CardTickIcon", CardWithGemIcon = "CardWithGemIcon", ChartSquareIcon = "ChartSquareIcon", ClockIcon = "ClockIcon", CloseIcon = "CloseIcon", ComfortableCompIcon = "ComfortableCompIcon", CreditCardsIcon = "CreditCardsIcon", DiscountShapeIcon = "DiscountShapeIcon", DocIcon = "DocIcon", DocIconMonoColor = "DocIconMonoColor", DocumentTextIcon = "DocumentTextIcon", DollarIcon = "DollarIcon", EarthIcon = "EarthIcon", EmptyWalletChangeIcon = "EmptyWalletChangeIcon", EmptyWalletIcon = "EmptyWalletIcon", EmptyWalletWhiteIcon = "EmptyWalletWhiteIcon", EuroIcon = "EuroIcon", GeolocationIcon = "GeolocationIcon", GlassIcon = "GlassIcon", GlobalIcon = "GlobalIcon", GpsIcon = "GpsIcon", GridIcon = "GridIcon", GridIconWhite = "GridIconWhite", InterestGrowthIcon = "InterestGrowthIcon", InterestIcon = "InterestIcon", JCBIcon = "JCBIcon", LoupeIcon = "LoupeIcon", MasterCardIcon = "MasterCardIcon", MinusIcon = "MinusIcon", MirIcon = "MirIcon", MoneyIcon = "MoneyIcon", MoneyInsuranceIcon = "MoneyInsuranceIcon", MonitorMobileIcon = "MonitorMobileIcon", NewDocIcon = "NewDocIcon", OfficeIcon = "OfficeIcon", OkIcon = "OkIcon", PassSendIcon = "PassSendIcon", PercentageRoundIcon = "PercentageRoundIcon", PercentageSquareIcon = "PercentageSquareIcon", PercentageSquareWhiteIcon = "PercentageSquareWhiteIcon", PersonalCardIcon = "PersonalCardIcon", PlayMarketIcon = "PlayMarketIcon", PlusIcon = "PlusIcon", Profile2UserIcon = "Profile2UserIcon", ProfileIcon = "ProfileIcon", RoundRubleIcon = "RoundRubleIcon", SafeIcon = "SafeIcon", ShieldTickIcon = "ShieldTickIcon", SignDocsIcon = "SignDocsIcon", SmallClockIcon = "SmallClockIcon", TelegramIcon = "TelegramIcon", UnionPayIcon = "UnionPayIcon", UserTickIcon = "UserTickIcon", VisaIcon = "VisaIcon", VKIcon = "VKIcon", WalletAdd2Icon = "WalletAdd2Icon", WalletAddIcon = "WalletAddIcon", WalletIcon = "WalletIcon", WalletWithMoneyIcon = "WalletWithMoneyIcon"
5
+ ActualBalanceIcon = "ActualBalanceIcon", AppleIcon = "AppleIcon", ArrowsRewindRight = "ArrowsRewindRight", AtmIcon = "AtmIcon", BankIcon = "BankIcon", BurgerIcon = "BurgerIcon", BurgerIconWhite = "BurgerIconWhite", Calendar2Icon = "Calendar2Icon", CalendarCircleIcon = "CalendarCircleIcon", CalendarIcon = "CalendarIcon", CalendarTickIcon = "CalendarTickIcon", CalendarWhiteIcon = "CalendarWhiteIcon", CardIcon = "CardIcon", CardPosIcon = "CardPosIcon", CardTickIcon = "CardTickIcon", CardWithGemIcon = "CardWithGemIcon", ChartSquareIcon = "ChartSquareIcon", ClockIcon = "ClockIcon", CloseIcon = "CloseIcon", ComfortableCompIcon = "ComfortableCompIcon", CreditCardsIcon = "CreditCardsIcon", DiscountShapeIcon = "DiscountShapeIcon", DocIcon = "DocIcon", DocIconMonoColor = "DocIconMonoColor", DocumentTextIcon = "DocumentTextIcon", DollarIcon = "DollarIcon", EarthIcon = "EarthIcon", EmptyWalletChangeIcon = "EmptyWalletChangeIcon", EmptyWalletIcon = "EmptyWalletIcon", EmptyWalletWhiteIcon = "EmptyWalletWhiteIcon", EuroIcon = "EuroIcon", GeolocationIcon = "GeolocationIcon", GlassIcon = "GlassIcon", GlobalIcon = "GlobalIcon", GpsIcon = "GpsIcon", GridIcon = "GridIcon", GridIconWhite = "GridIconWhite", InterestGrowthIcon = "InterestGrowthIcon", InterestIcon = "InterestIcon", JCBIcon = "JCBIcon", LoupeIcon = "LoupeIcon", MasterCardIcon = "MasterCardIcon", MinusIcon = "MinusIcon", MirIcon = "MirIcon", MoneyIcon = "MoneyIcon", MoneyInsuranceIcon = "MoneyInsuranceIcon", MonitorMobileIcon = "MonitorMobileIcon", NewDocIcon = "NewDocIcon", OfficeIcon = "OfficeIcon", OkIcon = "OkIcon", PassSendIcon = "PassSendIcon", PercentageRoundIcon = "PercentageRoundIcon", PercentageSquareIcon = "PercentageSquareIcon", PercentageSquareWhiteIcon = "PercentageSquareWhiteIcon", PersonalCardIcon = "PersonalCardIcon", PlayMarketIcon = "PlayMarketIcon", PlusIcon = "PlusIcon", Profile2UserIcon = "Profile2UserIcon", ProfileIcon = "ProfileIcon", RoundRubleIcon = "RoundRubleIcon", SafeIcon = "SafeIcon", ShieldTickIcon = "ShieldTickIcon", SignDocsIcon = "SignDocsIcon", SmallClockIcon = "SmallClockIcon", TelegramIcon = "TelegramIcon", UnionPayIcon = "UnionPayIcon", UserTickIcon = "UserTickIcon", VisaIcon = "VisaIcon", VKIcon = "VKIcon", WalletAdd2Icon = "WalletAdd2Icon", WalletAddIcon = "WalletAddIcon", WalletIcon = "WalletIcon", WalletWithMoneyIcon = "WalletWithMoneyIcon"
6
6
  }
7
7
 
8
8
  /**
@@ -10,7 +10,7 @@ export enum IconMap {
10
10
  * @title Иконка
11
11
  * @enumNames [
12
12
  * "",
13
- * "Деньги", "Лого «Apple»", "Банкомат", "Банк", "Бургер", "Бургер (белый)", "Календарь 2", "Скруглённый календарь", "Календарь", "Календарь с галочкой", "Календарь белый", "Кред. карта", "Кред. карта под наклоном", "Кред. карта с галочкой", "Карта с драгоценностями", "Деньги внутри кошелька", "Часы", "Крестик", "Кресло", "Кредитные карты", "Скидка", "Документ", "Документ (одноцветный)", "Документ с текстом", "Доллар", "Земля", "Пустой кошелёк с возвратом", "Пустой кошелёк", "Пустой кошелёк (белый)", "Евро", "Геолокация", "Зеркало", "Глобус", "Gps", "Сетка", "Сетка (белая)", "Диаграмма роста", "Скидка", "JCB", "Лупа", "MasterCard", "Минус", "МИР", "Деньги", "Денежное страхование", "Монитор и мобильный", "Новый документ", "Офис", "Лого «Одноклассники»", "Бизнес", "Проценты (круг.)", "Проценты", "Проценты белые", "Персональная карта", "Лого «PlayMarket»", "Плюс", "Профиль, 2 персоны", "Профиль", "Рубль (круг.)", "Сейф", "Безопасность", "Подписанные документы", "Маленькие часы", "Лого «Telegram»", "UnionPay", "Пользователь", "Visa", "Лого «VK»", "Пополнение карты", "Кошелёк с плюсом", "Кошелёк", "Кошелёк с деньгами"
13
+ * "Деньги", "Лого «Apple»", "ArrowsRewindRight", "Банкомат", "Банк", "Бургер", "Бургер (белый)", "Календарь 2", "Скруглённый календарь", "Календарь", "Календарь с галочкой", "Календарь белый", "Кред. карта", "Кред. карта под наклоном", "Кред. карта с галочкой", "Карта с драгоценностями", "Деньги внутри кошелька", "Часы", "Крестик", "Кресло", "Кредитные карты", "Скидка", "Документ", "Документ (одноцветный)", "Документ с текстом", "Доллар", "Земля", "Пустой кошелёк с возвратом", "Пустой кошелёк", "Пустой кошелёк (белый)", "Евро", "Геолокация", "Зеркало", "Глобус", "Gps", "Сетка", "Сетка (белая)", "Диаграмма роста", "Скидка", "JCB", "Лупа", "MasterCard", "Минус", "МИР", "Деньги", "Денежное страхование", "Монитор и мобильный", "Новый документ", "Офис", "Лого «Одноклассники»", "Бизнес", "Проценты (круг.)", "Проценты", "Проценты белые", "Персональная карта", "Лого «PlayMarket»", "Плюс", "Профиль, 2 персоны", "Профиль", "Рубль (круг.)", "Сейф", "Безопасность", "Подписанные документы", "Маленькие часы", "Лого «Telegram»", "UnionPay", "Пользователь", "Visa", "Лого «VK»", "Пополнение карты", "Кошелёк с плюсом", "Кошелёк", "Кошелёк с деньгами"
14
14
  * ]
15
15
  */
16
- export type IconName = "" | "ActualBalanceIcon" | "AppleIcon" | "AtmIcon" | "BankIcon" | "BurgerIcon" | "BurgerIconWhite" | "Calendar2Icon" | "CalendarCircleIcon" | "CalendarIcon" | "CalendarTickIcon" | "CalendarWhiteIcon" | "CardIcon" | "CardPosIcon" | "CardTickIcon" | "CardWithGemIcon" | "ChartSquareIcon" | "ClockIcon" | "CloseIcon" | "ComfortableCompIcon" | "CreditCardsIcon" | "DiscountShapeIcon" | "DocIcon" | "DocIconMonoColor" | "DocumentTextIcon" | "DollarIcon" | "EarthIcon" | "EmptyWalletChangeIcon" | "EmptyWalletIcon" | "EmptyWalletWhiteIcon" | "EuroIcon" | "GeolocationIcon" | "GlassIcon" | "GlobalIcon" | "GpsIcon" | "GridIcon" | "GridIconWhite" | "InterestGrowthIcon" | "InterestIcon" | "JCBIcon" | "LoupeIcon" | "MasterCardIcon" | "MinusIcon" | "MirIcon" | "MoneyIcon" | "MoneyInsuranceIcon" | "MonitorMobileIcon" | "NewDocIcon" | "OfficeIcon" | "OkIcon" | "PassSendIcon" | "PercentageRoundIcon" | "PercentageSquareIcon" | "PercentageSquareWhiteIcon" | "PersonalCardIcon" | "PlayMarketIcon" | "PlusIcon" | "Profile2UserIcon" | "ProfileIcon" | "RoundRubleIcon" | "SafeIcon" | "ShieldTickIcon" | "SignDocsIcon" | "SmallClockIcon" | "TelegramIcon" | "UnionPayIcon" | "UserTickIcon" | "VisaIcon" | "VKIcon" | "WalletAdd2Icon" | "WalletAddIcon" | "WalletIcon" | "WalletWithMoneyIcon";
16
+ export type IconName = "" | "ActualBalanceIcon" | "AppleIcon" | "ArrowsRewindRight" | "AtmIcon" | "BankIcon" | "BurgerIcon" | "BurgerIconWhite" | "Calendar2Icon" | "CalendarCircleIcon" | "CalendarIcon" | "CalendarTickIcon" | "CalendarWhiteIcon" | "CardIcon" | "CardPosIcon" | "CardTickIcon" | "CardWithGemIcon" | "ChartSquareIcon" | "ClockIcon" | "CloseIcon" | "ComfortableCompIcon" | "CreditCardsIcon" | "DiscountShapeIcon" | "DocIcon" | "DocIconMonoColor" | "DocumentTextIcon" | "DollarIcon" | "EarthIcon" | "EmptyWalletChangeIcon" | "EmptyWalletIcon" | "EmptyWalletWhiteIcon" | "EuroIcon" | "GeolocationIcon" | "GlassIcon" | "GlobalIcon" | "GpsIcon" | "GridIcon" | "GridIconWhite" | "InterestGrowthIcon" | "InterestIcon" | "JCBIcon" | "LoupeIcon" | "MasterCardIcon" | "MinusIcon" | "MirIcon" | "MoneyIcon" | "MoneyInsuranceIcon" | "MonitorMobileIcon" | "NewDocIcon" | "OfficeIcon" | "OkIcon" | "PassSendIcon" | "PercentageRoundIcon" | "PercentageSquareIcon" | "PercentageSquareWhiteIcon" | "PersonalCardIcon" | "PlayMarketIcon" | "PlusIcon" | "Profile2UserIcon" | "ProfileIcon" | "RoundRubleIcon" | "SafeIcon" | "ShieldTickIcon" | "SignDocsIcon" | "SmallClockIcon" | "TelegramIcon" | "UnionPayIcon" | "UserTickIcon" | "VisaIcon" | "VKIcon" | "WalletAdd2Icon" | "WalletAddIcon" | "WalletIcon" | "WalletWithMoneyIcon";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.3.17",
3
+ "version": "0.3.20",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
package/src/common.css CHANGED
@@ -22,26 +22,6 @@
22
22
  }
23
23
  /* Ecosystem own | Yellow */
24
24
  [data-theme='eo'] {
25
- --color-primary-main: 221, 182, 61;
26
- --color-primary-hover: 187, 151, 39;
27
- --color-primary-active: 126, 99, 12;
28
- --color-secondary-hover: 241, 236, 221;
29
- --color-secondary-active: 229, 222, 199;
30
- --color-gradient-from: 141, 189, 76; /* TODO: change color to theme eo */
31
- --color-gradient-to: 69, 172, 69; /* TODO: change color to theme eo */
32
- }
33
-
34
- [data-theme='eo2'] {
35
- --color-primary-main: 255, 204, 0;
36
- --color-primary-hover: 187, 151, 39;
37
- --color-primary-active: 126, 99, 12;
38
- --color-secondary-hover: 241, 236, 221;
39
- --color-secondary-active: 229, 222, 199;
40
- --color-gradient-from: 141, 189, 76; /* TODO: change color to theme eo */
41
- --color-gradient-to: 69, 172, 69; /* TODO: change color to theme eo */
42
- }
43
-
44
- [data-theme='eo3'] {
45
25
  --color-primary-main: 225, 186, 30;
46
26
  --color-primary-hover: 187, 151, 39;
47
27
  --color-primary-active: 126, 99, 12;
@@ -51,16 +31,6 @@
51
31
  --color-gradient-to: 69, 172, 69; /* TODO: change color to theme eo */
52
32
  }
53
33
 
54
- [data-theme='eo4'] {
55
- --color-primary-main: 233, 191, 23;
56
- --color-primary-hover: 187, 151, 39;
57
- --color-primary-active: 126, 99, 12;
58
- --color-secondary-hover: 241, 236, 221;
59
- --color-secondary-active: 229, 222, 199;
60
- --color-gradient-from: 141, 189, 76; /* TODO: change color to theme eo */
61
- --color-gradient-to: 69, 172, 69; /* TODO: change color to theme eo */
62
- }
63
-
64
34
  @tailwind components;
65
35
  @tailwind utilities;
66
36
 
@@ -12,7 +12,7 @@ export const BaseTile = JSX<BaseTileProps>(
12
12
  <div className="flex grow w-full justify-between">
13
13
  <div className="flex flex-col justify-between w-full">
14
14
  <div>{children}</div>
15
- {buttons?.length ? <div>{buttons}</div> : null}
15
+ {buttons ? <div>{buttons}</div> : null}
16
16
  </div>
17
17
  {image}
18
18
  </div>
@@ -15,6 +15,7 @@ import { PictureText } from './PictureText/PictureText';
15
15
  import { Placeholder } from './Placeholder/Placeholder';
16
16
  import { ProductBlock } from './ProductBlock/ProductBlock';
17
17
  import { ProductGallery } from './ProductGallery/ProductGallery';
18
+ import { ProductGalleryGreen } from './ProductGalleryGreen/ProductGalleryGreen';
18
19
  import { ProductTile } from './ProductTile/ProductTile';
19
20
  import { PromoTile } from './PromoTile/PromoTile';
20
21
  import { Recommendation } from './Recommendation/Recommendation';
@@ -39,6 +40,7 @@ export const Blocks = {
39
40
  PictureText,
40
41
  ProductBlock,
41
42
  ProductGallery,
43
+ ProductGalleryGreen,
42
44
  ProductTile,
43
45
  PromoTile,
44
46
  Recommendation,
@@ -17,7 +17,7 @@ export interface TableColumnProps extends UniBlockProps {
17
17
 
18
18
  export const TableColumn = JSX<TableColumnProps>(
19
19
  ({ header, columnData, visibleRowLength = 0, isFillGradient, showRow, onToggleColumn }) => {
20
- const columnDataView = columnData.slice(0, showRow ? columnData.length : visibleRowLength);
20
+ const columnDataView = columnData?.slice(0, showRow ? columnData.length : visibleRowLength);
21
21
  const gradientClassName = isFillGradient ? GRADIENT : '';
22
22
  const buttonVersion: ButtonVersion = isFillGradient ? 'secondary' : 'primary';
23
23
  return (
@@ -20,7 +20,13 @@ export type ProductBlockInnerContent = HeadingContent &
20
20
  */
21
21
  benefits?: Benefit[];
22
22
  version?: BlockVersion;
23
- buttons?: ButtonContent[];
23
+ /**
24
+ * @title Стиль для текстовой части
25
+ * @hidden
26
+ */
27
+ textBlockClassName?: string;
28
+ /** @title Фоновый текст под иллюстрацией */
29
+ backgroundText?: string;
24
30
  };
25
31
 
26
32
  /**
@@ -23,26 +23,16 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
23
23
  image,
24
24
  items,
25
25
  version = 'primary',
26
+ textBlockClassName = '',
26
27
  }) => {
28
+ const textColor = version === 'secondary' ? 'text-white' : '';
27
29
  return (
28
30
  <div className={`flex grow justify-between items-stretch ${className}`}>
29
- <div className={'flex flex-col'}>
31
+ <div className={`flex flex-col ${textBlockClassName}`}>
30
32
  <BaseTile
31
33
  context={context}
32
- title={
33
- title && (
34
- <Heading
35
- headingType={headingType}
36
- title={title}
37
- className="whitespace-pre-wrap max-w-[600px]"
38
- />
39
- )
40
- }
41
- buttons={
42
- buttons?.length ? (
43
- <ButtonSection context={context} buttons={buttons} className="flex mt-9 gap-3" />
44
- ) : null
45
- }
34
+ title={getTitle(title, headingType, textColor)}
35
+ buttons={getButtons(context, buttons)}
46
36
  >
47
37
  {description && (
48
38
  <Description className="mt-4 max-w-[600px]" description={description} />
@@ -62,3 +52,21 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
62
52
  );
63
53
  },
64
54
  );
55
+
56
+ const getTitle = (title, headingType, textColor) => {
57
+ return (
58
+ title && (
59
+ <Heading
60
+ headingType={headingType}
61
+ title={title}
62
+ className={`whitespace-pre-wrap max-w-[600px] ${textColor}`}
63
+ />
64
+ )
65
+ );
66
+ };
67
+
68
+ const getButtons = (context, buttons) => {
69
+ return buttons?.length ? (
70
+ <ButtonSection context={context} buttons={buttons} className="flex mt-9 gap-3" />
71
+ ) : null;
72
+ };