@redneckz/wildless-cms-uni-blocks 0.6.49 → 0.7.1

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 (209) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +71 -19
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  5. package/bundle/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  6. package/bundle/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  7. package/bundle/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  8. package/bundle/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  9. package/bundle/icons/IconName.d.ts +4 -2
  10. package/bundle/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  11. package/bundle/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  12. package/bundle/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  13. package/bundle/utils/style.d.ts +1 -0
  14. package/cosmos-static/icons/ArrowRightIcon.svg +1 -1
  15. package/cosmos-static/icons/ArrowTopRightIcon.svg +1 -0
  16. package/dist/components/Blocks.js +2 -0
  17. package/dist/components/Blocks.js.map +1 -1
  18. package/dist/components/CarouselCard/CarouselCard.js +2 -2
  19. package/dist/components/CarouselCard/CarouselCard.js.map +1 -1
  20. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +1 -1
  21. package/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  22. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  23. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -9
  24. package/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  25. package/dist/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  26. package/dist/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  27. package/dist/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  28. package/dist/components/SwipeListControlBlock/SwipeListControlBlock.js +14 -0
  29. package/dist/components/SwipeListControlBlock/SwipeListControlBlock.js.map +1 -0
  30. package/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  31. package/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.js +2 -0
  32. package/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.js.map +1 -0
  33. package/dist/icons/IconName.d.ts +4 -2
  34. package/dist/icons/IconName.js +2 -0
  35. package/dist/icons/IconName.js.map +1 -1
  36. package/dist/ui-kit/BlockWrapper.js +1 -1
  37. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  38. package/dist/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  39. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js +8 -5
  40. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  41. package/dist/ui-kit/SwipeListControl/SwipeListControl.js +3 -2
  42. package/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  43. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  44. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +12 -3
  45. package/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  46. package/dist/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  47. package/dist/utils/style.d.ts +1 -0
  48. package/dist/utils/style.js +5 -0
  49. package/dist/utils/style.js.map +1 -0
  50. package/lib/common.css +1 -1
  51. package/lib/components/Blocks.js +2 -0
  52. package/lib/components/Blocks.js.map +1 -1
  53. package/lib/components/CarouselCard/CarouselCard.js +2 -2
  54. package/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  55. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +1 -1
  56. package/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  57. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  58. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -9
  59. package/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  60. package/lib/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  61. package/lib/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  62. package/lib/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  63. package/lib/components/SwipeListControlBlock/SwipeListControlBlock.fixture.d.ts +5 -0
  64. package/lib/components/SwipeListControlBlock/SwipeListControlBlock.js +12 -0
  65. package/lib/components/SwipeListControlBlock/SwipeListControlBlock.js.map +1 -0
  66. package/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  67. package/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.js +2 -0
  68. package/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.js.map +1 -0
  69. package/lib/icons/IconName.d.ts +4 -2
  70. package/lib/icons/IconName.js +2 -0
  71. package/lib/icons/IconName.js.map +1 -1
  72. package/lib/ui-kit/BlockWrapper.js +1 -1
  73. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  74. package/lib/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  75. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js +8 -5
  76. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  77. package/lib/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.d.ts +1 -0
  78. package/lib/ui-kit/SwipeListControl/SwipeListControl.js +3 -2
  79. package/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  80. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  81. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +12 -3
  82. package/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  83. package/lib/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  84. package/lib/utils/style.d.ts +1 -0
  85. package/lib/utils/style.js +2 -0
  86. package/lib/utils/style.js.map +1 -0
  87. package/mobile/bundle/bundle.umd.js +25 -12
  88. package/mobile/bundle/bundle.umd.min.js +1 -1
  89. package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  90. package/mobile/bundle/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  91. package/mobile/bundle/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  92. package/mobile/bundle/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  93. package/mobile/bundle/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  94. package/mobile/bundle/icons/IconName.d.ts +4 -2
  95. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  96. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  97. package/mobile/bundle/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  98. package/mobile/bundle/utils/style.d.ts +1 -0
  99. package/mobile/dist/components/CarouselCard/CarouselCard.js +2 -2
  100. package/mobile/dist/components/CarouselCard/CarouselCard.js.map +1 -1
  101. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js +1 -1
  102. package/mobile/dist/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  103. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  104. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -9
  105. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  106. package/mobile/dist/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  107. package/mobile/dist/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  108. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  109. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlock.js +14 -0
  110. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlock.js.map +1 -0
  111. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  112. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.js +2 -0
  113. package/mobile/dist/components/SwipeListControlBlock/SwipeListControlBlockContent.js.map +1 -0
  114. package/mobile/dist/icons/IconName.d.ts +4 -2
  115. package/mobile/dist/icons/IconName.js +2 -0
  116. package/mobile/dist/icons/IconName.js.map +1 -1
  117. package/mobile/dist/ui-kit/BlockWrapper.js +1 -1
  118. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  119. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  120. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js +8 -5
  121. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  122. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js +3 -2
  123. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  124. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  125. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js +12 -3
  126. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  127. package/mobile/dist/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  128. package/mobile/dist/utils/style.d.ts +1 -0
  129. package/mobile/dist/utils/style.js +5 -0
  130. package/mobile/dist/utils/style.js.map +1 -0
  131. package/mobile/lib/components/CarouselCard/CarouselCard.js +2 -2
  132. package/mobile/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  133. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js +1 -1
  134. package/mobile/lib/components/CarouselProgramsCard/CarouselProgramsCard.js.map +1 -1
  135. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.d.ts +1 -1
  136. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js +12 -9
  137. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCard.js.map +1 -1
  138. package/mobile/lib/components/CarouselTariffsCard/CarouselTariffsCardContent.d.ts +1 -1
  139. package/mobile/lib/components/LinkDocs/LinkDocsContent.d.ts +4 -0
  140. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlock.d.ts +6 -0
  141. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlock.js +12 -0
  142. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlock.js.map +1 -0
  143. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.d.ts +5 -0
  144. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.js +2 -0
  145. package/mobile/lib/components/SwipeListControlBlock/SwipeListControlBlockContent.js.map +1 -0
  146. package/mobile/lib/icons/IconName.d.ts +4 -2
  147. package/mobile/lib/icons/IconName.js +2 -0
  148. package/mobile/lib/icons/IconName.js.map +1 -1
  149. package/mobile/lib/ui-kit/BlockWrapper.js +1 -1
  150. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  151. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.d.ts +2 -1
  152. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js +8 -5
  153. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  154. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js +3 -2
  155. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControl.js.map +1 -1
  156. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.d.ts +2 -0
  157. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js +12 -3
  158. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlDots.js.map +1 -1
  159. package/mobile/lib/ui-kit/SwipeListControl/SwipeListControlProps.d.ts +7 -0
  160. package/mobile/lib/utils/style.d.ts +1 -0
  161. package/mobile/lib/utils/style.js +2 -0
  162. package/mobile/lib/utils/style.js.map +1 -0
  163. package/mobile/src/common.css +11 -0
  164. package/mobile/src/components/Carousel/Carousel.ui.json +8 -0
  165. package/mobile/src/components/CarouselCard/CarouselCard.tsx +11 -5
  166. package/mobile/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +1 -1
  167. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.example.json +11 -3
  168. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +29 -17
  169. package/mobile/src/components/CarouselTariffsCard/CarouselTariffsCardContent.ts +1 -1
  170. package/mobile/src/components/LinkDocs/LinkDocsContent.ts +4 -0
  171. package/mobile/src/components/SwipeListControlBlock/SwipeListControlBlock.example.json +18 -0
  172. package/mobile/src/components/SwipeListControlBlock/SwipeListControlBlock.tsx +23 -0
  173. package/mobile/src/components/SwipeListControlBlock/SwipeListControlBlock.ui.json +1 -0
  174. package/mobile/src/components/SwipeListControlBlock/SwipeListControlBlockContent.ts +6 -0
  175. package/mobile/src/icons/ArrowRightIcon.svg +1 -1
  176. package/mobile/src/icons/ArrowTopRightIcon.svg +1 -0
  177. package/mobile/src/icons/IconName.ts +4 -4
  178. package/mobile/src/ui-kit/BlockWrapper.tsx +1 -1
  179. package/mobile/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +19 -10
  180. package/mobile/src/ui-kit/SwipeListControl/SwipeListControl.tsx +6 -2
  181. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +20 -4
  182. package/mobile/src/ui-kit/SwipeListControl/SwipeListControlProps.ts +8 -0
  183. package/mobile/src/utils/style.ts +2 -0
  184. package/package.json +2 -2
  185. package/src/common.css +11 -0
  186. package/src/components/Blocks.ts +2 -0
  187. package/src/components/Carousel/Carousel.ui.json +8 -0
  188. package/src/components/CarouselCard/CarouselCard.tsx +11 -5
  189. package/src/components/CarouselProgramsCard/CarouselProgramsCard.tsx +1 -1
  190. package/src/components/CarouselTariffsCard/CarouselTariffsCard.example.json +11 -3
  191. package/src/components/CarouselTariffsCard/CarouselTariffsCard.fixture.tsx +3 -3
  192. package/src/components/CarouselTariffsCard/CarouselTariffsCard.tsx +29 -17
  193. package/src/components/CarouselTariffsCard/CarouselTariffsCardContent.ts +1 -1
  194. package/src/components/LinkDocs/LinkDocsContent.ts +4 -0
  195. package/src/components/SwipeListControlBlock/SwipeListControlBlock.example.json +18 -0
  196. package/src/components/SwipeListControlBlock/SwipeListControlBlock.fixture.tsx +27 -0
  197. package/src/components/SwipeListControlBlock/SwipeListControlBlock.tsx +23 -0
  198. package/src/components/SwipeListControlBlock/SwipeListControlBlock.ui.json +1 -0
  199. package/src/components/SwipeListControlBlock/SwipeListControlBlockContent.ts +6 -0
  200. package/src/icons/ArrowRightIcon.svg +1 -1
  201. package/src/icons/ArrowTopRightIcon.svg +1 -0
  202. package/src/icons/IconName.ts +333 -6
  203. package/src/ui-kit/BlockWrapper.tsx +1 -1
  204. package/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +19 -10
  205. package/src/ui-kit/SwipeListControl/SwipeListControl.fixture.mobile.tsx +6 -1
  206. package/src/ui-kit/SwipeListControl/SwipeListControl.tsx +6 -2
  207. package/src/ui-kit/SwipeListControl/SwipeListControlDots.tsx +20 -4
  208. package/src/ui-kit/SwipeListControl/SwipeListControlProps.ts +8 -0
  209. package/src/utils/style.ts +2 -0
@@ -2,7 +2,8 @@ import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useCallback, useRef } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import type { IntersectionObserverOptions } from '../../hooks/useIntersectionObserver';
4
4
  import { mapChildren } from '../../utils/mapChildren';
5
- import type { SwipeContainerProps } from './SwipeListControlProps';
5
+ import { style } from '../../utils/style';
6
+ import type { SwipeContainerProps, SwipeListControlType } from './SwipeListControlProps';
6
7
  import { SwipeListItem } from './SwipeListItem';
7
8
 
8
9
  type ItemsVisibilityList = Array<IntersectionObserverEntry | undefined>;
@@ -20,6 +21,7 @@ interface SwipeListContainerProps extends SwipeContainerProps {
20
21
  snapAlign?: 'snap-start' | 'snap-center' | 'snap-end';
21
22
  onVisibleItemsChange?: (itemsVisibilityList: ItemsVisibilityList) => void;
22
23
  onVisibleIndicesChange?: (indices: number[]) => void;
24
+ listType?: SwipeListControlType;
23
25
  }
24
26
 
25
27
  const childStyleMap = ['min-w-[100%]', 'min-w-[50%]', 'min-w-[33.33%]', 'min-w-[25%]'];
@@ -32,6 +34,7 @@ export const SwipeListContainer = JSX<SwipeListContainerProps>(
32
34
  visibleItemCount = 0,
33
35
  gap = 0,
34
36
  padding = 0,
37
+ listType = 'horizontal-list',
35
38
  snapAlign = 'snap-center',
36
39
  children,
37
40
  onVisibleItemsChange,
@@ -54,25 +57,31 @@ export const SwipeListContainer = JSX<SwipeListContainerProps>(
54
57
  },
55
58
  [onVisibleItemsChange, onVisibleIndicesChange],
56
59
  );
60
+
57
61
  const additionPadding = visibleItemCount > 0 ? gap * Number(visibleItemCount) - 1 : 0;
58
62
 
63
+ const isHorizontalList = listType === 'horizontal-list';
64
+ const containerStyle = {
65
+ ...(isHorizontalList ? getContainerStyle(padding, additionPadding) : {}),
66
+ gap: `${gap}px`,
67
+ };
68
+
59
69
  return (
60
70
  <div
61
- className={`box-border overflow-auto flex horizontal-list no-scrollbar ${className}`}
62
- style={{
63
- ...getContainerStyle(padding, additionPadding),
64
- gap: `${gap}px`,
65
- }}
71
+ className={style('box-border overflow-auto no-scrollbar', listType, className)}
72
+ style={containerStyle}
66
73
  role="list"
67
74
  ref={containerRef}
68
75
  >
69
76
  {mapChildren((child, idx) => (
70
77
  <SwipeListItem
71
78
  key={String(idx)}
72
- className={`${snapAlign} ${
73
- visibleItemCount ? childStyleMap[visibleItemCount - 1] : ''
74
- }`}
75
- style={getContainerStyle(padding / 4)}
79
+ className={style(
80
+ snapAlign,
81
+ visibleItemCount ? childStyleMap[visibleItemCount - 1] : '',
82
+ listType === 'vertical-list' ? 'h-full' : '',
83
+ )}
84
+ style={isHorizontalList ? getContainerStyle(padding / 4) : {}}
76
85
  activeIndex={activeIndex}
77
86
  idx={idx}
78
87
  observerOptions={observerOptions}
@@ -3,7 +3,7 @@ import '../../setup-fixture';
3
3
  import { SwipeListControl } from './SwipeListControl';
4
4
 
5
5
  const renderElement = (_: any, i: number): VNode => (
6
- <div key={String(i)} className="border border-gray rounded-md text-center h-12">
6
+ <div key={String(i)} className="border border-gray rounded-md text-center h-full">
7
7
  {`Element #${i}`}
8
8
  </div>
9
9
  );
@@ -45,4 +45,9 @@ export default {
45
45
  <SwipeListControl>string content</SwipeListControl>
46
46
  </div>
47
47
  ),
48
+ vertical: (
49
+ <div className="px-4 py-5 bg-white h-80">
50
+ <SwipeListControl listType="vertical-list">{generateChildren(3)}</SwipeListControl>
51
+ </div>
52
+ ),
48
53
  };
@@ -1,4 +1,5 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { style } from '../../utils/style';
2
3
  import { SwipeListContainer } from './SwipeListContainer';
3
4
  import { SwipeListControlDots } from './SwipeListControlDots';
4
5
  import type { SwipeListControlProps } from './SwipeListControlProps';
@@ -15,12 +16,13 @@ const DEFAULT_PADDING = 16;
15
16
 
16
17
  export const SwipeListControl = JSX<SwipeListControlProps>(
17
18
  ({
18
- className,
19
+ className = '',
19
20
  gap = DEFAULT_GAP,
20
21
  padding = DEFAULT_PADDING,
21
22
  showDots = true,
22
23
  children,
23
24
  onVisibleIndicesChange,
25
+ listType = 'horizontal-list',
24
26
  }) => {
25
27
  const itemCount = Array.isArray(children) ? children.length : 0;
26
28
 
@@ -31,7 +33,7 @@ export const SwipeListControl = JSX<SwipeListControlProps>(
31
33
  const [activeIndex] = scroll.visibleIndicesRange;
32
34
 
33
35
  return (
34
- <div className={className}>
36
+ <div className={style(className, listType === 'vertical-list' ? 'relative h-full' : '')}>
35
37
  <SwipeListContainer
36
38
  containerRef={containerRef}
37
39
  activeIndex={activeIndex}
@@ -39,6 +41,7 @@ export const SwipeListControl = JSX<SwipeListControlProps>(
39
41
  gap={gap}
40
42
  padding={padding}
41
43
  onVisibleIndicesChange={scroll.handleVisibleIndicesChange}
44
+ listType={listType}
42
45
  >
43
46
  {children}
44
47
  </SwipeListContainer>
@@ -47,6 +50,7 @@ export const SwipeListControl = JSX<SwipeListControlProps>(
47
50
  containerRef={containerRef}
48
51
  activeIndex={activeIndex}
49
52
  dotCount={itemCount}
53
+ listType={listType}
50
54
  />
51
55
  ) : null}
52
56
  </div>
@@ -1,15 +1,29 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import type { SwipeListControlType } from './SwipeListControlProps';
2
3
 
3
- const dotStyle = 'cursor-pointer bg-primary-main h-2 rounded-full transition-width duration-300';
4
+ const containerStyles: Record<SwipeListControlType, string> = {
5
+ 'horizontal-list': 'mx-auto mt-5 w-fit',
6
+ 'vertical-list': 'absolute flex-col justify-center h-full top-0 left-4',
7
+ };
8
+
9
+ const activeDotStyles: Record<SwipeListControlType, string> = {
10
+ 'horizontal-list': 'w-6',
11
+ 'vertical-list': 'h-6',
12
+ };
13
+
14
+ const dotStyle = 'cursor-pointer bg-primary-main rounded-full transition-width duration-300';
15
+
16
+ const inactiveDotStyle = 'w-2 h-2 opacity-30';
4
17
 
5
18
  interface SwipeListControlDotsProps {
6
19
  containerRef?: { current: HTMLDivElement | null };
7
20
  activeIndex?: number;
8
21
  dotCount?: number;
22
+ listType?: SwipeListControlType;
9
23
  }
10
24
 
11
25
  export const SwipeListControlDots = JSX<SwipeListControlDotsProps>(
12
- ({ containerRef, activeIndex, dotCount = 0 }) => {
26
+ ({ containerRef, activeIndex, dotCount = 0, listType = 'horizontal-list' }) => {
13
27
  const handleClick = (idx: number) => {
14
28
  if (idx !== activeIndex && containerRef?.current) {
15
29
  containerRef.current.children[idx]?.scrollIntoView({
@@ -20,11 +34,13 @@ export const SwipeListControlDots = JSX<SwipeListControlDotsProps>(
20
34
  };
21
35
 
22
36
  return dotCount ? (
23
- <div className="flex gap-2 mx-auto mt-5 w-fit">
37
+ <div className={`flex gap-2 ${containerStyles[listType]}`}>
24
38
  {new Array(dotCount).fill(null).map((_, idx: number) => (
25
39
  <div
26
40
  key={String(idx)}
27
- className={`${dotStyle} ${idx === activeIndex ? 'w-6' : 'w-2 opacity-30'}`}
41
+ className={`${dotStyle} ${
42
+ idx === activeIndex ? activeDotStyles[listType] : inactiveDotStyle
43
+ }`}
28
44
  role="button"
29
45
  aria-hidden
30
46
  onClick={() => handleClick(idx)}
@@ -1,3 +1,9 @@
1
+ /**
2
+ * @title Вид
3
+ * @enumNames ["Горизонтальный", "Вертикальный"]
4
+ */
5
+ export type SwipeListControlType = 'horizontal-list' | 'vertical-list';
6
+
1
7
  /**
2
8
  * @title Контейнер
3
9
  */
@@ -15,5 +21,7 @@ export interface SwipeListControlProps extends SwipeContainerProps {
15
21
  className?: string;
16
22
  /** @title Точки-индикаторы */
17
23
  showDots?: boolean;
24
+ /** @hidden */
18
25
  onVisibleIndicesChange?: (indices: number[]) => void;
26
+ listType?: SwipeListControlType;
19
27
  }
@@ -0,0 +1,2 @@
1
+ export const style = (...atoms: (string | null | undefined)[]): string =>
2
+ atoms.filter(Boolean).join(' ');