@redneckz/wildless-cms-uni-blocks 0.3.23 → 0.3.24

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 (258) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +28 -49
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/ComparisonTable/ComparisonTable.mobile.js +17 -5
  5. package/dist/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  6. package/dist/components/ComparisonTable/ComparisonTableContent.d.ts +3 -2
  7. package/dist/components/ContentPage/ContentPage.js.map +1 -1
  8. package/dist/components/Gallery/Gallery.mobile.js +4 -4
  9. package/dist/components/Gallery/Gallery.mobile.js.map +1 -1
  10. package/dist/components/Gallery/GalleryCardInner.js +3 -8
  11. package/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  12. package/dist/components/Gallery/GalleryContent.d.ts +3 -2
  13. package/dist/components/LinkDocs/LinkDocsContent.d.ts +3 -9
  14. package/dist/components/ProductBlock/ProductBlock.mobile.js +7 -5
  15. package/dist/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  16. package/dist/components/ProductBlock/ProductBlockContent.d.ts +4 -0
  17. package/dist/components/ProductBlock/ProductBlockInner.js +2 -2
  18. package/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  19. package/dist/components/ProductBlock/ProductBlockInner.mobile.js +8 -3
  20. package/dist/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
  21. package/dist/components/ProductBlock/renderBenefit.mobile.d.ts +2 -1
  22. package/dist/components/ProductBlock/renderBenefit.mobile.js +1 -1
  23. package/dist/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
  24. package/dist/components/ProductGallery/ProductGalleryContent.d.ts +4 -1
  25. package/dist/components/TariffsTable/TariffsTableCell.js +4 -4
  26. package/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  27. package/dist/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  28. package/dist/components/TariffsTable/TariffsTableTileCell.js +4 -2
  29. package/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  30. package/dist/components/TextBlock/TextBlock.mobile.js +1 -1
  31. package/dist/components/TextBlock/TextBlock.mobile.js.map +1 -1
  32. package/dist/components/Tile/Tile.js +1 -1
  33. package/dist/components/Tile/Tile.js.map +1 -1
  34. package/dist/icons/IconName.d.ts +1 -1
  35. package/dist/icons/IconName.js.map +1 -1
  36. package/dist/ui-kit/Icon/Icon.js +2 -1
  37. package/dist/ui-kit/Icon/Icon.js.map +1 -1
  38. package/dist/ui-kit/Icon/IconProps.d.ts +2 -2
  39. package/dist/ui-kit/Img/Img.js +3 -1
  40. package/dist/ui-kit/Img/Img.js.map +1 -1
  41. package/dist/ui-kit/List/List.d.ts +1 -1
  42. package/dist/ui-kit/List/List.js +7 -2
  43. package/dist/ui-kit/List/List.js.map +1 -1
  44. package/dist/ui-kit/List/ListItem.d.ts +1 -1
  45. package/dist/ui-kit/List/ListItem.js +4 -9
  46. package/dist/ui-kit/List/ListItem.js.map +1 -1
  47. package/dist/ui-kit/List/ListProps.d.ts +2 -0
  48. package/lib/common.css +1 -1
  49. package/lib/components/ComparisonTable/ComparisonTable.mobile.js +17 -5
  50. package/lib/components/ComparisonTable/ComparisonTable.mobile.js.map +1 -1
  51. package/lib/components/ComparisonTable/ComparisonTableContent.d.ts +3 -2
  52. package/lib/components/ContentPage/ContentPage.js.map +1 -1
  53. package/lib/components/Gallery/Gallery.mobile.js +4 -4
  54. package/lib/components/Gallery/Gallery.mobile.js.map +1 -1
  55. package/lib/components/Gallery/GalleryCardInner.js +3 -8
  56. package/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  57. package/lib/components/Gallery/GalleryContent.d.ts +3 -2
  58. package/lib/components/LinkDocs/LinkDocsContent.d.ts +3 -9
  59. package/lib/components/ProductBlock/ProductBlock.fixture.mobile.d.ts +4 -0
  60. package/lib/components/ProductBlock/ProductBlock.mobile.js +7 -5
  61. package/lib/components/ProductBlock/ProductBlock.mobile.js.map +1 -1
  62. package/lib/components/ProductBlock/ProductBlockContent.d.ts +4 -0
  63. package/lib/components/ProductBlock/ProductBlockInner.js +2 -2
  64. package/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  65. package/lib/components/ProductBlock/ProductBlockInner.mobile.js +8 -3
  66. package/lib/components/ProductBlock/ProductBlockInner.mobile.js.map +1 -1
  67. package/lib/components/ProductBlock/renderBenefit.mobile.d.ts +2 -1
  68. package/lib/components/ProductBlock/renderBenefit.mobile.js +1 -1
  69. package/lib/components/ProductBlock/renderBenefit.mobile.js.map +1 -1
  70. package/lib/components/ProductGallery/ProductGalleryContent.d.ts +4 -1
  71. package/lib/components/TariffsTable/TariffsTableCell.js +4 -4
  72. package/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  73. package/lib/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  74. package/lib/components/TariffsTable/TariffsTableTileCell.js +4 -2
  75. package/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  76. package/lib/components/TextBlock/TextBlock.mobile.js +1 -1
  77. package/lib/components/TextBlock/TextBlock.mobile.js.map +1 -1
  78. package/lib/components/Tile/Tile.js +1 -1
  79. package/lib/components/Tile/Tile.js.map +1 -1
  80. package/lib/icons/IconName.js.map +1 -1
  81. package/lib/ui-kit/Icon/Icon.js +2 -1
  82. package/lib/ui-kit/Icon/Icon.js.map +1 -1
  83. package/lib/ui-kit/Icon/IconProps.d.ts +2 -2
  84. package/lib/ui-kit/Img/Img.js +3 -1
  85. package/lib/ui-kit/Img/Img.js.map +1 -1
  86. package/lib/ui-kit/List/List.d.ts +1 -1
  87. package/lib/ui-kit/List/List.fixture.d.ts +10 -0
  88. package/lib/ui-kit/List/List.js +7 -2
  89. package/lib/ui-kit/List/List.js.map +1 -1
  90. package/lib/ui-kit/List/ListItem.d.ts +1 -1
  91. package/lib/ui-kit/List/ListItem.js +4 -9
  92. package/lib/ui-kit/List/ListItem.js.map +1 -1
  93. package/lib/ui-kit/List/ListProps.d.ts +2 -0
  94. package/mobile/bundle/bundle.umd.js +61 -63
  95. package/mobile/bundle/bundle.umd.min.js +1 -1
  96. package/mobile/dist/components/ComparisonTable/ComparisonTable.js +17 -5
  97. package/mobile/dist/components/ComparisonTable/ComparisonTable.js.map +1 -1
  98. package/mobile/dist/components/ComparisonTable/ComparisonTableContent.d.ts +3 -2
  99. package/mobile/dist/components/ContentPage/ContentPage.js.map +1 -1
  100. package/mobile/dist/components/Gallery/Gallery.js +4 -4
  101. package/mobile/dist/components/Gallery/Gallery.js.map +1 -1
  102. package/mobile/dist/components/Gallery/GalleryCardInner.js +3 -8
  103. package/mobile/dist/components/Gallery/GalleryCardInner.js.map +1 -1
  104. package/mobile/dist/components/Gallery/GalleryContent.d.ts +3 -2
  105. package/mobile/dist/components/LinkDocs/LinkDocsContent.d.ts +3 -9
  106. package/mobile/dist/components/ProductBlock/ProductBlock.js +7 -5
  107. package/mobile/dist/components/ProductBlock/ProductBlock.js.map +1 -1
  108. package/mobile/dist/components/ProductBlock/ProductBlockContent.d.ts +4 -0
  109. package/mobile/dist/components/ProductBlock/ProductBlockInner.js +8 -3
  110. package/mobile/dist/components/ProductBlock/ProductBlockInner.js.map +1 -1
  111. package/mobile/dist/components/ProductBlock/renderBenefit.d.ts +2 -1
  112. package/mobile/dist/components/ProductBlock/renderBenefit.js +1 -1
  113. package/mobile/dist/components/ProductBlock/renderBenefit.js.map +1 -1
  114. package/mobile/dist/components/ProductGallery/ProductGalleryContent.d.ts +4 -1
  115. package/mobile/dist/components/TariffsTable/TariffsTableCell.js +4 -4
  116. package/mobile/dist/components/TariffsTable/TariffsTableCell.js.map +1 -1
  117. package/mobile/dist/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  118. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js +4 -2
  119. package/mobile/dist/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  120. package/mobile/dist/components/TextBlock/TextBlock.js +1 -1
  121. package/mobile/dist/components/TextBlock/TextBlock.js.map +1 -1
  122. package/mobile/dist/components/Tile/Tile.js +1 -1
  123. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  124. package/mobile/dist/ui-kit/Icon/Icon.js +2 -1
  125. package/mobile/dist/ui-kit/Icon/Icon.js.map +1 -1
  126. package/mobile/dist/ui-kit/Icon/IconProps.d.ts +2 -2
  127. package/mobile/dist/ui-kit/List/List.d.ts +1 -1
  128. package/mobile/dist/ui-kit/List/List.js +7 -2
  129. package/mobile/dist/ui-kit/List/List.js.map +1 -1
  130. package/mobile/dist/ui-kit/List/ListItem.d.ts +1 -1
  131. package/mobile/dist/ui-kit/List/ListItem.js +4 -9
  132. package/mobile/dist/ui-kit/List/ListItem.js.map +1 -1
  133. package/mobile/dist/ui-kit/List/ListProps.d.ts +2 -0
  134. package/mobile/lib/components/ComparisonTable/ComparisonTable.js +17 -5
  135. package/mobile/lib/components/ComparisonTable/ComparisonTable.js.map +1 -1
  136. package/mobile/lib/components/ComparisonTable/ComparisonTableContent.d.ts +3 -2
  137. package/mobile/lib/components/ContentPage/ContentPage.js.map +1 -1
  138. package/mobile/lib/components/Gallery/Gallery.js +4 -4
  139. package/mobile/lib/components/Gallery/Gallery.js.map +1 -1
  140. package/mobile/lib/components/Gallery/GalleryCardInner.js +3 -8
  141. package/mobile/lib/components/Gallery/GalleryCardInner.js.map +1 -1
  142. package/mobile/lib/components/Gallery/GalleryContent.d.ts +3 -2
  143. package/mobile/lib/components/LinkDocs/LinkDocsContent.d.ts +3 -9
  144. package/mobile/lib/components/ProductBlock/ProductBlock.js +7 -5
  145. package/mobile/lib/components/ProductBlock/ProductBlock.js.map +1 -1
  146. package/mobile/lib/components/ProductBlock/ProductBlockContent.d.ts +4 -0
  147. package/mobile/lib/components/ProductBlock/ProductBlockInner.js +8 -3
  148. package/mobile/lib/components/ProductBlock/ProductBlockInner.js.map +1 -1
  149. package/mobile/lib/components/ProductBlock/renderBenefit.d.ts +2 -1
  150. package/mobile/lib/components/ProductBlock/renderBenefit.js +1 -1
  151. package/mobile/lib/components/ProductBlock/renderBenefit.js.map +1 -1
  152. package/mobile/lib/components/ProductGallery/ProductGalleryContent.d.ts +4 -1
  153. package/mobile/lib/components/TariffsTable/TariffsTableCell.js +4 -4
  154. package/mobile/lib/components/TariffsTable/TariffsTableCell.js.map +1 -1
  155. package/mobile/lib/components/TariffsTable/TariffsTableContent.d.ts +1 -1
  156. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js +4 -2
  157. package/mobile/lib/components/TariffsTable/TariffsTableTileCell.js.map +1 -1
  158. package/mobile/lib/components/TextBlock/TextBlock.js +1 -1
  159. package/mobile/lib/components/TextBlock/TextBlock.js.map +1 -1
  160. package/mobile/lib/components/Tile/Tile.js +1 -1
  161. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  162. package/mobile/lib/ui-kit/Icon/Icon.js +2 -1
  163. package/mobile/lib/ui-kit/Icon/Icon.js.map +1 -1
  164. package/mobile/lib/ui-kit/Icon/IconProps.d.ts +2 -2
  165. package/mobile/lib/ui-kit/List/List.d.ts +1 -1
  166. package/mobile/lib/ui-kit/List/List.js +7 -2
  167. package/mobile/lib/ui-kit/List/List.js.map +1 -1
  168. package/mobile/lib/ui-kit/List/ListItem.d.ts +1 -1
  169. package/mobile/lib/ui-kit/List/ListItem.js +4 -9
  170. package/mobile/lib/ui-kit/List/ListItem.js.map +1 -1
  171. package/mobile/lib/ui-kit/List/ListProps.d.ts +2 -0
  172. package/mobile/src/components/ComparisonTable/ComparisonTable.tsx +51 -30
  173. package/mobile/src/components/ComparisonTable/ComparisonTableContent.ts +3 -2
  174. package/mobile/src/components/ContentPage/ContentPage.tsx +0 -1
  175. package/mobile/src/components/Gallery/Gallery.tsx +5 -4
  176. package/mobile/src/components/Gallery/GalleryCardInner.tsx +12 -17
  177. package/mobile/src/components/Gallery/GalleryContent.ts +3 -2
  178. package/mobile/src/components/LinkDocs/LinkDocsContent.ts +3 -10
  179. package/mobile/src/components/ProductBlock/ProductBlock.example.json +1 -0
  180. package/mobile/src/components/ProductBlock/ProductBlock.tsx +17 -12
  181. package/mobile/src/components/ProductBlock/ProductBlockContent.ts +4 -0
  182. package/mobile/src/components/ProductBlock/ProductBlockInner.tsx +25 -5
  183. package/mobile/src/components/ProductBlock/renderBenefit.tsx +2 -1
  184. package/mobile/src/components/ProductGallery/ProductGalleryContent.ts +4 -1
  185. package/mobile/src/components/TariffsTable/TariffsTableCell.tsx +28 -27
  186. package/mobile/src/components/TariffsTable/TariffsTableContent.ts +1 -1
  187. package/mobile/src/components/TariffsTable/TariffsTableTileCell.tsx +33 -31
  188. package/mobile/src/components/TextBlock/TextBlock.example.json +2 -1
  189. package/mobile/src/components/TextBlock/TextBlock.tsx +2 -2
  190. package/mobile/src/components/Tile/Tile.tsx +3 -1
  191. package/mobile/src/ui-kit/Icon/Icon.tsx +7 -1
  192. package/mobile/src/ui-kit/Icon/IconProps.ts +2 -2
  193. package/mobile/src/ui-kit/List/List.tsx +9 -3
  194. package/mobile/src/ui-kit/List/ListItem.tsx +5 -12
  195. package/mobile/src/ui-kit/List/ListProps.ts +2 -0
  196. package/package.json +1 -1
  197. package/src/components/ComparisonTable/ComparisonTable.fixture.mobile.tsx +1 -1
  198. package/src/components/ComparisonTable/ComparisonTable.mobile.tsx +51 -30
  199. package/src/components/ComparisonTable/ComparisonTableContent.ts +3 -2
  200. package/src/components/ContentPage/ContentPage.tsx +0 -1
  201. package/src/components/Gallery/Gallery.fixture.mobile.tsx +3 -2
  202. package/src/components/Gallery/Gallery.mobile.tsx +5 -4
  203. package/src/components/Gallery/GalleryCardInner.tsx +12 -17
  204. package/src/components/Gallery/GalleryContent.ts +3 -2
  205. package/src/components/LinkDocs/LinkDocsContent.ts +3 -10
  206. package/src/components/ProductBlock/ProductBlock.example.json +1 -0
  207. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +49 -13
  208. package/src/components/ProductBlock/ProductBlock.mobile.tsx +17 -12
  209. package/src/components/ProductBlock/ProductBlockContent.ts +4 -0
  210. package/src/components/ProductBlock/ProductBlockInner.mobile.tsx +25 -5
  211. package/src/components/ProductBlock/ProductBlockInner.tsx +8 -1
  212. package/src/components/ProductBlock/renderBenefit.mobile.tsx +2 -1
  213. package/src/components/ProductGallery/ProductGalleryContent.ts +4 -1
  214. package/src/components/TariffsTable/TariffsTableCell.tsx +28 -27
  215. package/src/components/TariffsTable/TariffsTableContent.ts +1 -1
  216. package/src/components/TariffsTable/TariffsTableTileCell.tsx +33 -31
  217. package/src/components/TextBlock/TextBlock.example.json +2 -1
  218. package/src/components/TextBlock/TextBlock.fixture.mobile.tsx +8 -0
  219. package/src/components/TextBlock/TextBlock.mobile.tsx +2 -2
  220. package/src/components/Tile/Tile.tsx +3 -1
  221. package/src/icons/IconName.ts +152 -3
  222. package/src/ui-kit/Icon/Icon.tsx +7 -1
  223. package/src/ui-kit/Icon/IconProps.ts +2 -2
  224. package/src/ui-kit/Img/Img.tsx +5 -2
  225. package/src/ui-kit/List/List.fixture.tsx +37 -0
  226. package/src/ui-kit/List/List.tsx +9 -3
  227. package/src/ui-kit/List/ListItem.tsx +5 -12
  228. package/src/ui-kit/List/ListProps.ts +2 -0
  229. package/dist/ui-kit/BlockItem/BlockItem.d.ts +0 -2
  230. package/dist/ui-kit/BlockItem/BlockItem.js +0 -23
  231. package/dist/ui-kit/BlockItem/BlockItem.js.map +0 -1
  232. package/dist/ui-kit/BlockItem/BlockItemProps.d.ts +0 -21
  233. package/dist/ui-kit/BlockItem/BlockItemProps.js +0 -2
  234. package/dist/ui-kit/BlockItem/BlockItemProps.js.map +0 -1
  235. package/lib/ui-kit/BlockItem/BlockItem.d.ts +0 -2
  236. package/lib/ui-kit/BlockItem/BlockItem.fixture.d.ts +0 -8
  237. package/lib/ui-kit/BlockItem/BlockItem.js +0 -21
  238. package/lib/ui-kit/BlockItem/BlockItem.js.map +0 -1
  239. package/lib/ui-kit/BlockItem/BlockItemProps.d.ts +0 -21
  240. package/lib/ui-kit/BlockItem/BlockItemProps.js +0 -2
  241. package/lib/ui-kit/BlockItem/BlockItemProps.js.map +0 -1
  242. package/mobile/dist/ui-kit/BlockItem/BlockItem.d.ts +0 -2
  243. package/mobile/dist/ui-kit/BlockItem/BlockItem.js +0 -23
  244. package/mobile/dist/ui-kit/BlockItem/BlockItem.js.map +0 -1
  245. package/mobile/dist/ui-kit/BlockItem/BlockItemProps.d.ts +0 -21
  246. package/mobile/dist/ui-kit/BlockItem/BlockItemProps.js +0 -2
  247. package/mobile/dist/ui-kit/BlockItem/BlockItemProps.js.map +0 -1
  248. package/mobile/lib/ui-kit/BlockItem/BlockItem.d.ts +0 -2
  249. package/mobile/lib/ui-kit/BlockItem/BlockItem.js +0 -21
  250. package/mobile/lib/ui-kit/BlockItem/BlockItem.js.map +0 -1
  251. package/mobile/lib/ui-kit/BlockItem/BlockItemProps.d.ts +0 -21
  252. package/mobile/lib/ui-kit/BlockItem/BlockItemProps.js +0 -2
  253. package/mobile/lib/ui-kit/BlockItem/BlockItemProps.js.map +0 -1
  254. package/mobile/src/ui-kit/BlockItem/BlockItem.tsx +0 -33
  255. package/mobile/src/ui-kit/BlockItem/BlockItemProps.ts +0 -23
  256. package/src/ui-kit/BlockItem/BlockItem.fixture.tsx +0 -12
  257. package/src/ui-kit/BlockItem/BlockItem.tsx +0 -33
  258. package/src/ui-kit/BlockItem/BlockItemProps.ts +0 -23
@@ -1,10 +1,10 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { BlockVersion } from '../../model/BlockVersion';
3
- import { BlockItem } from '../../ui-kit/BlockItem/BlockItem';
4
2
  import { Button } from '../../ui-kit/Button/Button';
5
3
  import { Icon } from '../../ui-kit/Icon/Icon';
6
4
  import { Img } from '../../ui-kit/Img/Img';
7
- import type { GalleryCard } from './GalleryContent';
5
+ import { List } from '../../ui-kit/List/List';
6
+ import type { GalleryCard, GalleryItem } from './GalleryContent';
7
+ import type { BlockVersion } from '../../model/BlockVersion';
8
8
 
9
9
  export const GalleryCardInner = JSX<GalleryCard>(
10
10
  ({ title, description, image, items, button, version }) => {
@@ -43,21 +43,16 @@ function renderCardTitle(title: string, className: string) {
43
43
  return <div className={`font-medium text-xl m-0 ${className}`}>{title}</div>;
44
44
  }
45
45
 
46
- function renderItems(items, version) {
46
+ function renderItems(items: GalleryItem[], version: BlockVersion = 'primary') {
47
47
  return (
48
- <section className={`max-w-[308px] mt-2`} role="list">
49
- {items
50
- .filter((item) => item?.text)
51
- .map((item, i) => renderItem(item.text as string, i, version))}
52
- </section>
53
- );
54
- }
55
-
56
- function renderItem(item: string, i: number, version?: BlockVersion) {
57
- return (
58
- <BlockItem key={String(i)} version={version ?? 'primary'}>
59
- <span className="text-sm">{item}</span>
60
- </BlockItem>
48
+ <List
49
+ className={`max-w-[308px] mt-2 text-sm ${
50
+ version === 'primary' ? '!text-secondary-text' : ''
51
+ }`}
52
+ itemClassName="mt-1 first:mt-0"
53
+ items={items.filter((item) => item?.text).map((item) => item.text as string)}
54
+ version={version}
55
+ />
61
56
  );
62
57
  }
63
58
 
@@ -1,6 +1,7 @@
1
1
  import type { BlockVersion } from '../../model/BlockVersion';
2
2
  import type { Picture } from '../../model/Picture';
3
3
  import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
4
+ import type { ListOrientation } from '../../model/ListOrientation';
4
5
 
5
6
  /**
6
7
  * @title Элемент списка
@@ -41,6 +42,6 @@ export interface GalleryContent {
41
42
  * @minItems 3
42
43
  */
43
44
  cards?: GalleryCard[];
44
- /** @title Горизонтальная прокрутка (для мобильных прокрутка shift+mouseScroll) */
45
- isScroll?: boolean; //TODO: for mobile
45
+ /** @title Отображать элементы в моб. версии (прокрутка shift+mouseScroll) */
46
+ useSwiper?: ListOrientation; //TODO: for mobile
46
47
  }
@@ -1,6 +1,7 @@
1
1
  import type { LinkProps } from '../../model/LinkProps';
2
2
  import type { IconName } from '../../ui-kit/Icon/IconProps';
3
3
  import type { AlignType } from '../BaseTile/BaseTileProps';
4
+ import type { ListOrientation } from '../../model/ListOrientation';
4
5
 
5
6
  /**
6
7
  * @title Отображение списка
@@ -11,15 +12,6 @@ import type { AlignType } from '../BaseTile/BaseTileProps';
11
12
  */
12
13
  export type LinkColumnsMode = 'single' | 'double';
13
14
 
14
- /**
15
- * @title Отображение списка (моб.)
16
- * @enumNames [
17
- * "Вертикально",
18
- * "Горизонтально",
19
- * ]
20
- */
21
- export type LinkListMode = 'vertical' | 'horizontal';
22
-
23
15
  /**
24
16
  * @title Элемент списка
25
17
  */
@@ -41,7 +33,8 @@ export interface LinkDocsContent {
41
33
  /** @title Список */
42
34
  documents?: LinkDocsItem[];
43
35
  columnsMode?: LinkColumnsMode;
44
- listMode?: LinkListMode; // TODO: мобильный проп
36
+ /** @title Отображать элементы в моб. версии (прокрутка shift+mouseScroll) */
37
+ listMode?: ListOrientation; // TODO: мобильный проп
45
38
  /** @title Рамка элементов (моб.) */ // TODO: мобильный проп
46
39
  hasBorder?: boolean;
47
40
  align?: AlignType;
@@ -9,6 +9,7 @@
9
9
  }
10
10
  },
11
11
  "items": ["Элемент списка 1", "Элемент списка 2", "Элемент списка 3"],
12
+ "isDotted": true,
12
13
  "buttons": [
13
14
  {
14
15
  "text": "Кнопка",
@@ -1,18 +1,23 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { ProductBlockInner } from './ProductBlockInner';
2
3
  import type { UniBlockProps } from '../../types';
3
4
  import type { ProductBlockContent } from './ProductBlockContent';
4
- import { ProductBlockInner } from './ProductBlockInner';
5
+ import type { BlockVersion } from '../../model/BlockVersion';
6
+
7
+ const productBlockStyleMap: Record<BlockVersion, string> = {
8
+ primary: 'bg-white text-primary-text',
9
+ secondary: 'bg-primary-main text-white',
10
+ };
5
11
 
6
12
  export interface ProductBlockProps extends ProductBlockContent, UniBlockProps {}
7
13
 
8
- export const ProductBlock = JSX<ProductBlockProps>(
9
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
10
- (props /* Get rid of image and benefits */) => {
11
- const { className } = props;
12
- return (
13
- <section className={`font-sans bg-white px-4 py-6 ${className || ''}`}>
14
- <ProductBlockInner {...props} />
15
- </section>
16
- );
17
- },
18
- );
14
+ export const ProductBlock = JSX<ProductBlockProps>((props /* Get rid of image and benefits */) => {
15
+ const { className = '', version = 'primary' } = props;
16
+ return (
17
+ <section
18
+ className={`font-sans bg-white px-4 py-6 ${productBlockStyleMap[version]} ${className}`}
19
+ >
20
+ <ProductBlockInner {...props} />
21
+ </section>
22
+ );
23
+ });
@@ -20,6 +20,10 @@ export type ProductBlockInnerContent = HeadingContent &
20
20
  */
21
21
  benefits?: Benefit[];
22
22
  version?: BlockVersion;
23
+ /** @title Буллиты */
24
+ isDotted?: boolean;
25
+ /** @title Лейбл (моб.) */
26
+ label?: string;
23
27
  /**
24
28
  * @title Стиль для текстовой части
25
29
  * @hidden
@@ -7,6 +7,7 @@ import { Img } from '../../ui-kit/Img/Img';
7
7
  import { List } from '../../ui-kit/List/List';
8
8
  import { BaseTile } from '../BaseTile/BaseTile';
9
9
  import type { ProductBlockInnerContent } from './ProductBlockContent';
10
+ import type { BlockVersion } from '../../model/BlockVersion';
10
11
  import { renderBenefit } from './renderBenefit';
11
12
 
12
13
  export type ProductBlockInnerProps = ProductBlockInnerContent & UniBlockProps;
@@ -23,10 +24,13 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
23
24
  image,
24
25
  items,
25
26
  version = 'primary',
27
+ isDotted = true,
28
+ label,
26
29
  }) => {
27
30
  return (
28
- <div className={`w-full text-primary-text ${className}`}>
31
+ <div className={`w-full ${className}`}>
29
32
  <div>
33
+ {label ? renderLabel(label, version) : null}
30
34
  <BaseTile
31
35
  context={context}
32
36
  title={
@@ -54,7 +58,14 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
54
58
  {benefits?.filter((items) => items.label)?.length ? (
55
59
  <div className="mt-3">{benefits.map((_, i) => renderBenefit(_, i, version))}</div>
56
60
  ) : null}
57
- {items?.length ? <List className="mt-3" items={items} /> : null}
61
+ {items?.length ? (
62
+ <List
63
+ className="mt-3 text-m-md"
64
+ items={items}
65
+ version={version}
66
+ isDotted={isDotted}
67
+ />
68
+ ) : null}
58
69
  </BaseTile>
59
70
  </div>
60
71
  {renderImage(image)}
@@ -65,8 +76,17 @@ export const ProductBlockInner = JSX<ProductBlockInnerProps>(
65
76
 
66
77
  function renderImage(image) {
67
78
  return image?.src ? (
68
- <div className="mt-5">
69
- <Img image={{ className: 'block', ...image }} />
70
- </div>
79
+ <Img imageClassName="mt-5 mx-auto block" image={{ className: 'block', ...image }} />
71
80
  ) : null;
72
81
  }
82
+
83
+ const labelStyleMap: Record<BlockVersion, string> = {
84
+ primary: 'text-primary-main border-secondary-hover',
85
+ secondary: 'text-white/80',
86
+ };
87
+
88
+ const renderLabel = (label: string, version: BlockVersion) => (
89
+ <div className={`m-xs px-2.5 py-1.5 mb-5 rounded-md border-2 w-fit ${labelStyleMap[version]}`}>
90
+ {label}
91
+ </div>
92
+ );
@@ -11,7 +11,7 @@ const benefitDescStyleMap: Record<BlockVersion, string> = {
11
11
  secondary: 'text-white',
12
12
  };
13
13
 
14
- export function renderBenefit(benefit: Benefit, i: number, version: string) {
14
+ export function renderBenefit(benefit: Benefit, i: number, version: BlockVersion) {
15
15
  return (
16
16
  <div key={String(i)} className="flex gap-3 items-center mb-2.5 last:mb-0">
17
17
  {benefit.icon && (
@@ -21,6 +21,7 @@ export function renderBenefit(benefit: Benefit, i: number, version: string) {
21
21
  width="24"
22
22
  height="24"
23
23
  asSVG
24
+ color={version}
24
25
  />
25
26
  )}
26
27
  <div className={`font-medium text-m-title-xs m-0 ${benefitTitleStyleMap[version]}`}>
@@ -27,6 +27,9 @@ export interface ProductGalleryContent {
27
27
  * @hidden //! temporary not used
28
28
  */
29
29
  duration?: number;
30
- /** @title Слайды */
30
+ /**
31
+ * @title Слайды
32
+ * @minItems 2
33
+ */
31
34
  slides?: ProductSlide[];
32
35
  }
@@ -1,9 +1,10 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { BlockItem } from '../../ui-kit/BlockItem/BlockItem';
3
2
  import { Button } from '../../ui-kit/Button/Button';
4
3
  import { Icon } from '../../ui-kit/Icon/Icon';
5
4
  import { Img } from '../../ui-kit/Img/Img';
6
- import type { TariffsTableCellData } from './TariffsTableContent';
5
+ import { List } from '../../ui-kit/List/List';
6
+ import type { TariffsTableCellData, TariffsTableList } from './TariffsTableContent';
7
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
7
8
 
8
9
  export interface TariffsTableCellProps {
9
10
  cell: TariffsTableCellData[];
@@ -32,31 +33,31 @@ const renderCellInner = (
32
33
  )}
33
34
  {label ? <div className="text-xl font-medium m-0">{label}</div> : null}
34
35
  {description ? <div className="text-sm text-secondary-text">{description}</div> : null}
35
- {list?.items?.length ? (
36
- <div className="flex flex-col justify-between items-start">
37
- <div role="list">
38
- {list.items.map((text, idx) => (
39
- <BlockItem
40
- className="text-sm"
41
- key={String(idx)}
42
- text={text}
43
- version="gray"
44
- isDotted={list.isDotted ?? true}
45
- />
46
- ))}
47
- </div>
48
- </div>
49
- ) : null}
36
+ {list?.items?.length ? renderList(list) : null}
50
37
  {image && <Img image={image} />}
51
- {buttons?.length
52
- ? buttons.map(({ icon, ...buttonProps }, idx) => (
53
- <Button
54
- className={`${idx > 0 ? 'ml-3' : ''} w-12 h-12`}
55
- key={String(idx)}
56
- appendLeft={icon && <Icon name={icon} width="24px" height="24px" asSVG />}
57
- {...buttonProps}
58
- />
59
- ))
60
- : null}
38
+ {buttons?.length ? renderButtons(buttons) : null}
39
+ </div>
40
+ );
41
+
42
+ const renderList = (list: TariffsTableList) => (
43
+ <List
44
+ className="flex flex-col justify-between items-start text-sm"
45
+ version="gray"
46
+ items={list.items}
47
+ isDotted={list.isDotted ?? true}
48
+ />
49
+ );
50
+
51
+ const renderButtons = (buttons: ButtonWithIconProps[]) => (
52
+ <div>
53
+ {buttons.map(({ icon, rounded, ...buttonProps }, idx) => (
54
+ <Button
55
+ className={`${idx > 0 && rounded ? 'ml-3' : ''} w-12 h-12`}
56
+ key={String(idx)}
57
+ rounded={rounded}
58
+ appendLeft={icon && <Icon name={icon} width="24px" height="24px" asSVG />}
59
+ {...buttonProps}
60
+ />
61
+ ))}
61
62
  </div>
62
63
  );
@@ -56,7 +56,7 @@ export type TariffsTableContent = HeadingContent &
56
56
  columns?: TariffsTableColumn[];
57
57
  /** @title Параметры */
58
58
  rowHeaders?: TariffsTableRowHeader[];
59
- /** @title Направление таблицы (моб.) */
59
+ /** @title Отображать элементы в моб. версии (прокрутка shift+mouseScroll) */
60
60
  orientation?: ListOrientation;
61
61
  };
62
62
 
@@ -1,10 +1,15 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { TableTileHeader } from './TableTileHeader';
3
- import { BlockItem } from '../../ui-kit/BlockItem/BlockItem';
4
3
  import { Img } from '../../ui-kit/Img/Img';
5
4
  import { Button } from '../../ui-kit/Button/Button';
6
5
  import { Icon } from '../../ui-kit/Icon/Icon';
7
- import type { TariffsTableCellData, TariffsTableTileCellProps } from './TariffsTableContent';
6
+ import { List } from '../../ui-kit/List/List';
7
+ import type {
8
+ TariffsTableCellData,
9
+ TariffsTableList,
10
+ TariffsTableTileCellProps,
11
+ } from './TariffsTableContent';
12
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
8
13
 
9
14
  export const TariffsTableTileCell = JSX<TariffsTableTileCellProps>(({ header, data }) => {
10
15
  return (
@@ -27,35 +32,32 @@ const renderCellInner = (
27
32
  {description ? (
28
33
  <div className="text-m-sm text-secondary-text mt-[3px]">{description}</div>
29
34
  ) : null}
30
- {list?.items?.length ? (
31
- <div className="flex flex-col justify-between items-start">
32
- <div role="list">
33
- {list.items.map((text, idx) => (
34
- <BlockItem
35
- className="text-m-sm"
36
- key={String(idx)}
37
- text={text}
38
- version="gray"
39
- isDotted={list.isDotted ?? true}
40
- />
41
- ))}
42
- </div>
43
- </div>
44
- ) : null}
35
+ {list?.items?.length ? renderList(list) : null}
45
36
  {image && <Img image={{ ...image, className: 'm-0' }} />}
46
- {buttons?.length ? (
47
- <div>
48
- {buttons.map(({ icon, rounded, ...buttonProps }, idx) => (
49
- <Button
50
- className={`mt-3 ${idx > 0 && rounded ? 'ml-2.5' : ''} ${icon ? 'w-12 h-12' : ''}`}
51
- key={String(idx)}
52
- rounded={rounded}
53
- appendLeft={icon && <Icon name={icon} width="24px" height="24px" asSVG />}
54
- {...buttonProps}
55
- aria-label={icon}
56
- />
57
- ))}
58
- </div>
59
- ) : null}
37
+ {buttons?.length ? renderButtons(buttons) : null}
38
+ </div>
39
+ );
40
+
41
+ const renderList = (list: TariffsTableList) => (
42
+ <List
43
+ className="flex flex-col justify-between items-start text-m-sm"
44
+ version="gray"
45
+ items={list.items}
46
+ isDotted={list.isDotted ?? true}
47
+ />
48
+ );
49
+
50
+ const renderButtons = (buttons: ButtonWithIconProps[]) => (
51
+ <div>
52
+ {buttons.map(({ icon, rounded, ...buttonProps }, idx) => (
53
+ <Button
54
+ className={`mt-3 ${idx > 0 && rounded ? 'ml-2.5' : ''} ${icon ? 'w-12 h-12' : ''}`}
55
+ key={String(idx)}
56
+ rounded={rounded}
57
+ appendLeft={icon && <Icon name={icon} width="24px" height="24px" asSVG />}
58
+ {...buttonProps}
59
+ aria-label={icon}
60
+ />
61
+ ))}
60
62
  </div>
61
63
  );
@@ -9,5 +9,6 @@
9
9
  "width": 43,
10
10
  "height": 43
11
11
  }
12
- }
12
+ },
13
+ "isDotted": true
13
14
  }
@@ -55,10 +55,10 @@ export const TextBlock = JSX<TextBlockProps>(
55
55
  ) : null}
56
56
  {items?.length ? (
57
57
  <List
58
- className="mt-1"
58
+ className="mt-1 text-m-md"
59
59
  items={items}
60
60
  isDotted={isDotted}
61
- version={blockVersion.indexOf('secondary') !== -1 ? 'secondary' : 'gray'}
61
+ version={blockVersion === 'secondary' ? 'secondary' : 'gray'}
62
62
  />
63
63
  ) : null}
64
64
  </div>
@@ -70,5 +70,7 @@ export const Tile = JSX<TileProps>((props) => {
70
70
  });
71
71
 
72
72
  function renderList(items, version) {
73
- return items?.length ? <List items={items} version={version} /> : null;
73
+ return items?.length ? (
74
+ <List items={items} itemClassName="mt-2.5 first:mt-0" version={version} />
75
+ ) : null;
74
76
  }
@@ -6,6 +6,7 @@ import { IconTitleMap } from '../../icons/IconName';
6
6
  const svgColorsMap: Record<IconColor, string> = {
7
7
  none: '',
8
8
  primary: 'text-primary-main',
9
+ secondary: 'text-primary-text',
9
10
  };
10
11
 
11
12
  export const Icon = JSX<IconProps>(
@@ -22,7 +23,12 @@ export const Icon = JSX<IconProps>(
22
23
 
23
24
  if (asSVG) {
24
25
  return (
25
- <svg className={`${svgColorsMap[color]} ${className}`} {...imgProps} aria-hidden="true">
26
+ <svg
27
+ className={`${svgColorsMap[color]} ${className}`}
28
+ {...imgProps}
29
+ aria-hidden="true"
30
+ style={color === 'secondary' ? { filter: 'invert(1)' } : null}
31
+ >
26
32
  {title ? <title>{title}</title> : null}
27
33
  {alt ? <desc>{alt}</desc> : null}
28
34
  <use href={`${href}#icon`} xlinkHref={`${href}#icon`} />
@@ -4,9 +4,9 @@ export type { IconName };
4
4
 
5
5
  /**
6
6
  * @title Цвет иконки (svg)
7
- * @enumNames ["Нет", "Основной"]
7
+ * @enumNames ["Нет", "Основной", "Второстепенный"]
8
8
  */
9
- export type IconColor = 'none' | 'primary';
9
+ export type IconColor = 'none' | 'primary' | 'secondary';
10
10
 
11
11
  export interface IconProps {
12
12
  className?: string;
@@ -1,12 +1,18 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { ListItem } from './ListItem';
3
- import { ListProps } from './ListProps';
3
+ import type { ListProps, ListItemVersion } from './ListProps';
4
+
5
+ const TEXT_STYLE_MAP: Record<ListItemVersion, string> = {
6
+ primary: 'text-primary-text',
7
+ secondary: 'text-white',
8
+ gray: 'text-secondary-text',
9
+ };
4
10
 
5
11
  export const List = JSX<ListProps>((props) => {
6
- const { className = '', itemClassName, isDotted, items, version } = props;
12
+ const { className = '', itemClassName, isDotted, items, version = 'primary' } = props;
7
13
 
8
14
  return (
9
- <section className={`${className}`} role="list">
15
+ <section className={`${TEXT_STYLE_MAP[version]} ${className}`} role="list">
10
16
  {items?.length
11
17
  ? items.map((_, i) => (
12
18
  <ListItem
@@ -1,5 +1,5 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import { ListItemVersion } from './ListProps';
2
+ import type { ListItemVersion } from './ListProps';
3
3
 
4
4
  /**
5
5
  * @title Параметры элемента списка
@@ -13,13 +13,7 @@ export interface ListItemProps {
13
13
 
14
14
  const LIST_STYLE_CLASSES = 'rounded-full inline-block mr-3 mt-2';
15
15
 
16
- const TEXT_STYLE_MAP: Record<ListItemVersion, string> = {
17
- primary: 'text-primary-text',
18
- secondary: 'text-white',
19
- gray: 'text-secondary-text',
20
- };
21
-
22
- const LIST_STYLE_MAP: Record<ListItemVersion, string> = {
16
+ const LIST_DOT_STYLE_MAP: Record<ListItemVersion, string> = {
23
17
  primary: 'bg-primary-main',
24
18
  secondary: 'bg-white',
25
19
  gray: 'bg-secondary-text',
@@ -30,14 +24,13 @@ export const ListItem = JSX<ListItemProps>(
30
24
  return (
31
25
  <div className={`font-sans flex items-start ${className}`} role="listitem">
32
26
  {isDotted && <div className={getListStyle(version)} />}
33
- <span className={`text-m-md ${TEXT_STYLE_MAP[version]}`}>{children}</span>
27
+ <span>{children}</span>
34
28
  </div>
35
29
  );
36
30
  },
37
31
  );
38
32
 
39
33
  const getListStyle = (version: ListItemVersion) => {
40
- const size =
41
- version === 'gray' ? 'w-[6px] h-[6px] min-w-[6px] min-h-[6px]' : 'w-2 h-2 min-w-2 min-h-2';
42
- return `${LIST_STYLE_CLASSES} ${LIST_STYLE_MAP[version]} ${size}`;
34
+ const size = version === 'gray' ? 'w-1.5 h-1.5 min-w-1.5 min-h-1.5' : 'w-2 h-2 min-w-2 min-h-2';
35
+ return `${LIST_STYLE_CLASSES} ${LIST_DOT_STYLE_MAP[version]} ${size}`;
43
36
  };
@@ -2,6 +2,7 @@ import type { ListContent } from './ListContent';
2
2
 
3
3
  /**
4
4
  * @title Версия списка
5
+ * @enumNames ["Основной", "Второстепенный", "Серый"]
5
6
  */
6
7
  export type ListItemVersion = 'primary' | 'secondary' | 'gray';
7
8
 
@@ -10,6 +11,7 @@ export type ListItemVersion = 'primary' | 'secondary' | 'gray';
10
11
  */
11
12
  export interface ListProps extends ListContent {
12
13
  className?: string;
14
+ /** @title Буллиты */
13
15
  isDotted?: boolean;
14
16
  version?: ListItemVersion;
15
17
  itemClassName?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.3.23",
3
+ "version": "0.3.24",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -143,7 +143,7 @@ export default {
143
143
  isColoredFirstColumn={true}
144
144
  context={context}
145
145
  rowHeaders={rowHeaders}
146
- useSwiper={true}
146
+ useSwiper={'horizontal'}
147
147
  columns={Array(2).fill(columns).flat()}
148
148
  visibleRowLength={2}
149
149
  />