@redneckz/wildless-cms-uni-blocks 0.3.47 → 0.3.48

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 (102) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +25 -29
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +2 -2
  5. package/dist/components/NavigatorTabs/NavigatorTabItem.js +1 -1
  6. package/dist/components/NavigatorTabs/NavigatorTabItem.js.map +1 -1
  7. package/dist/components/NavigatorTabs/NavigatorTabs.js +6 -9
  8. package/dist/components/NavigatorTabs/NavigatorTabs.js.map +1 -1
  9. package/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +2 -12
  10. package/dist/components/ProductTile/ProductTile.js +2 -3
  11. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  12. package/dist/components/ProductTile/ProductTileContent.d.ts +2 -2
  13. package/dist/components/StepsBlock/StepsBlock.js +1 -1
  14. package/dist/components/StepsBlock/StepsBlock.js.map +1 -1
  15. package/dist/components/Tile/Tile.js +2 -3
  16. package/dist/components/Tile/Tile.js.map +1 -1
  17. package/dist/components/Tile/TileContent.d.ts +2 -2
  18. package/dist/types.d.ts +5 -1
  19. package/dist/ui-kit/Button/ButtonInner.js +1 -1
  20. package/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  21. package/lib/common.css +1 -1
  22. package/lib/components/BaseTile/getTileHeadingType.d.ts +1 -1
  23. package/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +2 -2
  24. package/lib/components/NavigatorTabs/NavigatorTabItem.js +1 -1
  25. package/lib/components/NavigatorTabs/NavigatorTabItem.js.map +1 -1
  26. package/lib/components/NavigatorTabs/NavigatorTabs.js +7 -10
  27. package/lib/components/NavigatorTabs/NavigatorTabs.js.map +1 -1
  28. package/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +2 -12
  29. package/lib/components/ProductTile/ProductTile.js +2 -3
  30. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  31. package/lib/components/ProductTile/ProductTileContent.d.ts +2 -2
  32. package/lib/components/StepsBlock/StepsBlock.js +1 -1
  33. package/lib/components/StepsBlock/StepsBlock.js.map +1 -1
  34. package/lib/components/Tile/Tile.js +2 -3
  35. package/lib/components/Tile/Tile.js.map +1 -1
  36. package/lib/components/Tile/TileContent.d.ts +2 -2
  37. package/lib/types.d.ts +5 -1
  38. package/lib/ui-kit/Button/ButtonInner.js +1 -1
  39. package/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  40. package/mobile/bundle/bundle.umd.js +1 -1
  41. package/mobile/bundle/bundle.umd.min.js +1 -1
  42. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.d.ts +2 -2
  43. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js +1 -1
  44. package/mobile/dist/components/NavigatorTabs/NavigatorTabItem.js.map +1 -1
  45. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js +6 -9
  46. package/mobile/dist/components/NavigatorTabs/NavigatorTabs.js.map +1 -1
  47. package/mobile/dist/components/NavigatorTabs/NavigatorTabsContent.d.ts +2 -12
  48. package/mobile/dist/components/ProductTile/ProductTile.js +2 -3
  49. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  50. package/mobile/dist/components/ProductTile/ProductTileContent.d.ts +2 -2
  51. package/mobile/dist/components/Tile/Tile.js +2 -3
  52. package/mobile/dist/components/Tile/Tile.js.map +1 -1
  53. package/mobile/dist/components/Tile/TileContent.d.ts +2 -2
  54. package/mobile/dist/types.d.ts +5 -1
  55. package/mobile/dist/ui-kit/Button/ButtonInner.js +1 -1
  56. package/mobile/dist/ui-kit/Button/ButtonInner.js.map +1 -1
  57. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.d.ts +2 -2
  58. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js +1 -1
  59. package/mobile/lib/components/NavigatorTabs/NavigatorTabItem.js.map +1 -1
  60. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js +7 -10
  61. package/mobile/lib/components/NavigatorTabs/NavigatorTabs.js.map +1 -1
  62. package/mobile/lib/components/NavigatorTabs/NavigatorTabsContent.d.ts +2 -12
  63. package/mobile/lib/components/ProductTile/ProductTile.js +2 -3
  64. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  65. package/mobile/lib/components/ProductTile/ProductTileContent.d.ts +2 -2
  66. package/mobile/lib/components/Tile/Tile.js +2 -3
  67. package/mobile/lib/components/Tile/Tile.js.map +1 -1
  68. package/mobile/lib/components/Tile/TileContent.d.ts +2 -2
  69. package/mobile/lib/types.d.ts +5 -1
  70. package/mobile/lib/ui-kit/Button/ButtonInner.js +1 -1
  71. package/mobile/lib/ui-kit/Button/ButtonInner.js.map +1 -1
  72. package/mobile/src/components/ContentPage/ContentPage.page.json +6 -6
  73. package/mobile/src/components/NavigatorTabs/NavigatorTabItem.tsx +4 -4
  74. package/mobile/src/components/NavigatorTabs/NavigatorTabs.example.json +3 -3
  75. package/mobile/src/components/NavigatorTabs/NavigatorTabs.tsx +11 -14
  76. package/mobile/src/components/NavigatorTabs/NavigatorTabsContent.ts +2 -12
  77. package/mobile/src/components/ProductTile/ProductTile.example.json +1 -0
  78. package/mobile/src/components/ProductTile/ProductTile.tsx +3 -2
  79. package/mobile/src/components/ProductTile/ProductTileContent.ts +2 -1
  80. package/mobile/src/components/Tile/Tile.example.json +1 -0
  81. package/mobile/src/components/Tile/Tile.tsx +2 -2
  82. package/mobile/src/components/Tile/TileContent.ts +2 -1
  83. package/mobile/src/types.ts +5 -1
  84. package/mobile/src/ui-kit/Button/ButtonInner.tsx +1 -1
  85. package/package.json +1 -1
  86. package/src/components/ContentPage/ContentPage.page.json +6 -6
  87. package/src/components/NavigatorTabs/NavigatorTabItem.tsx +4 -4
  88. package/src/components/NavigatorTabs/NavigatorTabs.example.json +3 -3
  89. package/src/components/NavigatorTabs/NavigatorTabs.fixture.tsx +6 -1
  90. package/src/components/NavigatorTabs/NavigatorTabs.tsx +11 -14
  91. package/src/components/NavigatorTabs/NavigatorTabsContent.ts +2 -12
  92. package/src/components/ProductTile/ProductTile.example.json +1 -0
  93. package/src/components/ProductTile/ProductTile.fixture.tsx +7 -2
  94. package/src/components/ProductTile/ProductTile.tsx +3 -2
  95. package/src/components/ProductTile/ProductTileContent.ts +2 -1
  96. package/src/components/StepsBlock/StepsBlock.tsx +1 -1
  97. package/src/components/Tile/Tile.example.json +1 -0
  98. package/src/components/Tile/Tile.fixture.tsx +5 -0
  99. package/src/components/Tile/Tile.tsx +2 -2
  100. package/src/components/Tile/TileContent.ts +2 -1
  101. package/src/types.ts +5 -1
  102. package/src/ui-kit/Button/ButtonInner.tsx +1 -1
@@ -1,15 +1,16 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useLink } from '../../hooks/useLink';
3
+ import { LinkProps } from '../../model/LinkProps';
2
4
  import type { UniBlockProps } from '../../types';
3
- import { getHash, isURL } from '../../utils/url';
4
- import type { Router } from '../ContentPage/ContentPageContext';
5
+ import { getHash } from '../../utils/url';
6
+ import type { ContentPageContext } from '../ContentPage/ContentPageContext';
5
7
  import { NavigatorTabItem } from './NavigatorTabItem';
6
- import type { NavigatorTab, NavigatorTabsContent } from './NavigatorTabsContent';
8
+ import type { NavigatorTabsContent } from './NavigatorTabsContent';
7
9
 
8
10
  export interface TabsBlockProps extends UniBlockProps, NavigatorTabsContent {}
9
11
 
10
12
  export const NavigatorTabs = JSX<TabsBlockProps>(
11
13
  ({ className = '', navigatorTabs, context, anchor = null }) => {
12
- const router = context.useRouter();
13
14
  const href = globalThis.location?.href; // TODO: remove globalThis, use href from router
14
15
 
15
16
  return (
@@ -17,13 +18,16 @@ export const NavigatorTabs = JSX<TabsBlockProps>(
17
18
  className={`sticky top-0 z-20 box-border flex gap-x-1 h-12 ${className}`}
18
19
  id={anchor}
19
20
  >
20
- {navigatorTabs ? navigatorTabs.map(renderTab(href, router)) : null}
21
+ {navigatorTabs ? navigatorTabs.map(renderTab(context, href)) : null}
21
22
  </section>
22
23
  );
23
24
  },
24
25
  );
25
26
 
26
- const renderTab = (href?: string, router?: Router) => (tab: NavigatorTab, i: number) => {
27
+ const renderTab = (context: ContentPageContext, href?: string) => (tab: LinkProps, i: number) => {
28
+ const { useRouter, handlerDecorator } = context;
29
+ const router = useRouter();
30
+
27
31
  const hash = getHash(href);
28
32
  const active = hash ? tab.href === hash : i === 0;
29
33
 
@@ -31,14 +35,7 @@ const renderTab = (href?: string, router?: Router) => (tab: NavigatorTab, i: num
31
35
  <NavigatorTabItem
32
36
  key={tab.href}
33
37
  active={active}
34
- onClick={() => handleRoute(router, tab.href)}
35
- {...tab}
38
+ {...useLink({ router, handlerDecorator }, tab)}
36
39
  />
37
40
  );
38
41
  };
39
-
40
- const handleRoute = (router?: Router, href?: string) => {
41
- if (isURL(href)) return; // if href if full URL - move to HTML href action, do not touch router
42
-
43
- router?.replace(href || '');
44
- };
@@ -1,14 +1,4 @@
1
- /**
2
- * @title Таб
3
- */
4
- export interface NavigatorTab {
5
- /** @title Название */
6
- label?: string;
7
- /** @title Якорь */
8
- href?: string;
9
- /** @title Таргет (target) */
10
- target?: string;
11
- }
1
+ import type { LinkProps } from '../../model/LinkProps';
12
2
 
13
3
  /**
14
4
  * @title Блок табов
@@ -18,5 +8,5 @@ export interface NavigatorTabsContent {
18
8
  * @title Список табов
19
9
  * @minItems 3
20
10
  */
21
- navigatorTabs?: NavigatorTab[];
11
+ navigatorTabs?: LinkProps[];
22
12
  }
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "title": "Продуктовая плитка",
3
+ "headingType": "h3",
3
4
  "description": "Описание",
4
5
  "image": {
5
6
  "format": "webp",
@@ -1,9 +1,9 @@
1
1
  import { context } from '../../setup-fixture';
2
2
 
3
- import { ProductTile } from './ProductTile';
4
3
  import type { Picture } from '../../model/Picture';
5
- import type { ProductTileContent } from './ProductTileContent';
6
4
  import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
5
+ import { ProductTile } from './ProductTile';
6
+ import type { ProductTileContent } from './ProductTileContent';
7
7
 
8
8
  const cardWithMoney: Picture = {
9
9
  src: 'card-with-diamond.png',
@@ -57,6 +57,7 @@ const buttonsSecondary: ButtonProps[] = [
57
57
 
58
58
  export const PRODUCT_TILE: ProductTileContent = {
59
59
  title: 'Акция! “Кредит На все, что хочется!”',
60
+ headingType: 'h3',
60
61
  description: 'Потребительский кредит на любые цели, без залога и поручительства',
61
62
  benefits,
62
63
  buttons: buttons,
@@ -64,6 +65,7 @@ export const PRODUCT_TILE: ProductTileContent = {
64
65
  };
65
66
  export const PRODUCT_PENSION_TILE: ProductTileContent = {
66
67
  title: 'Кредит пенсионный',
68
+ headingType: 'h3',
67
69
  description: 'Для людей в возрасте до 75 лет',
68
70
  benefits,
69
71
  buttons: buttonsSecondary,
@@ -81,6 +83,7 @@ export default {
81
83
  context={context}
82
84
  className="col-span-6"
83
85
  title="Акция! “Пенсионный кредит”"
86
+ headingType="h3"
84
87
  description={'Потребительский кредит на любые цели, без залога и поручительства'}
85
88
  benefits={benefits}
86
89
  buttons={buttonsSecondary}
@@ -94,6 +97,7 @@ export default {
94
97
  context={context}
95
98
  className="col-span-8"
96
99
  title="Кредит под залог недвижимости"
100
+ headingType="h3"
97
101
  description={'Без переоформления залогой недвижимости на банк'}
98
102
  benefits={benefits}
99
103
  buttons={buttonsSecondary}
@@ -107,6 +111,7 @@ export default {
107
111
  context={context}
108
112
  className="col-span-4"
109
113
  title="Кредит пенсионный"
114
+ headingType="h3"
110
115
  description={'Для людей в возрасте до 75 лет'}
111
116
  benefits={benefits}
112
117
  buttons={buttonsSecondary}
@@ -6,7 +6,6 @@ import { Description } from '../../ui-kit/Description/Description';
6
6
  import { Heading } from '../../ui-kit/Heading/Heading';
7
7
  import { Img } from '../../ui-kit/Img/Img';
8
8
  import { BaseTile } from '../BaseTile/BaseTile';
9
- import { getTileHeadingType } from '../BaseTile/getTileHeadingType';
10
9
  import { getTileMinHeight } from '../BaseTile/getTileMinHeight';
11
10
  import { getTileRightPadding } from '../BaseTile/getTileRightPadding';
12
11
  import type { Benefit } from '../BenefitsBlock/BenefitsBlockContent';
@@ -24,6 +23,7 @@ export const ProductTile = JSX<ProductTileProps>(
24
23
  context,
25
24
  className = '',
26
25
  title,
26
+ headingType = 'h3',
27
27
  description,
28
28
  benefits,
29
29
  buttons,
@@ -43,7 +43,8 @@ export const ProductTile = JSX<ProductTileProps>(
43
43
  title={
44
44
  title && (
45
45
  <Heading
46
- headingType={getTileHeadingType(className)}
46
+ headingType={headingType}
47
+ as="h3"
47
48
  title={title}
48
49
  className={`whitespace-pre-wrap max-w-[600px]`}
49
50
  />
@@ -1,7 +1,7 @@
1
1
  import type { BlockVersion } from '../../model/BlockVersion';
2
2
  import type { ButtonContent } from '../../ui-kit/Button/ButtonProps';
3
3
  import type { DescriptionContent } from '../../ui-kit/Description/DescriptionContent';
4
- import type { HeadingContent } from '../../ui-kit/Heading/HeadingContent';
4
+ import type { HeadingContent, HeadingTypeContent } from '../../ui-kit/Heading/HeadingContent';
5
5
  import type { ImageContent } from '../../ui-kit/Img/ImgProps';
6
6
  import type { TextBenefit } from '../BenefitsBlock/BenefitsBlockContent';
7
7
 
@@ -9,6 +9,7 @@ import type { TextBenefit } from '../BenefitsBlock/BenefitsBlockContent';
9
9
  * @title Продуктовая плитка
10
10
  */
11
11
  export type ProductTileContent = HeadingContent &
12
+ HeadingTypeContent &
12
13
  DescriptionContent &
13
14
  ButtonContent &
14
15
  ImageContent & {
@@ -81,7 +81,7 @@ const renderStepTitle = (step: Step, i: number, isMainButton: boolean) => {
81
81
  </div>
82
82
  {step?.button?.text && !isMainButton ? (
83
83
  <Button
84
- className="box-border mt-[38px] py-3 h-12 w-full max-w-[240px]"
84
+ className="box-border mt-8 py-3 h-12 w-full max-w-[240px]"
85
85
  version="primary"
86
86
  href="#"
87
87
  >
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "title": "Плитка",
3
+ "headingType": "h3",
3
4
  "titleSize": "M",
4
5
  "description": "Описание",
5
6
  "image": {
@@ -29,6 +29,7 @@ const image4: Picture = {
29
29
 
30
30
  export const TILE: TileContent = {
31
31
  title: 'Кредиты',
32
+ headingType: 'h3',
32
33
  items: ['До 3 млн ₽', 'до 5 лет'],
33
34
  buttons: [
34
35
  {
@@ -42,6 +43,7 @@ export const TILE: TileContent = {
42
43
 
43
44
  export const TILE_PREMIUM: TileContent = {
44
45
  title: 'Премиальные продукты',
46
+ headingType: 'h3',
45
47
  description:
46
48
  'Выделенные зоны обслуживания и персональный финансовый консультант. Полный спектр премиальных продуктов, подчеркивающих ваш статус',
47
49
  buttons: [
@@ -68,6 +70,7 @@ export default {
68
70
  version="secondary"
69
71
  className="col-span-4"
70
72
  title="Ипотека"
73
+ headingType="h3"
71
74
  items={[
72
75
  'Качественные фермерские продукты напрямую от производителей',
73
76
  'Самая большая база сельских туров по России',
@@ -91,6 +94,7 @@ export default {
91
94
  context={context}
92
95
  className="col-span-6"
93
96
  title="Банковские пластиковые карты"
97
+ headingType="h3"
94
98
  items={['Счета в разных валютах', 'Бесплатное обслуживание', 'Кэшбэк до 15% от покупок']}
95
99
  buttons={[
96
100
  {
@@ -115,6 +119,7 @@ export default {
115
119
  context={context}
116
120
  className="col-span-12 pr-28"
117
121
  title="Экосистема «СВОЕ», созданная для людей"
122
+ headingType="h3"
118
123
  items={[
119
124
  'Качественные фермерские продукты напрямую от производителей',
120
125
  'Самая большая база сельских туров по России',
@@ -7,7 +7,6 @@ import { Heading } from '../../ui-kit/Heading/Heading';
7
7
  import { Img } from '../../ui-kit/Img/Img';
8
8
  import { List } from '../../ui-kit/List/List';
9
9
  import { BaseTile } from '../BaseTile/BaseTile';
10
- import { getTileHeadingType } from '../BaseTile/getTileHeadingType';
11
10
  import { getTileMinHeight } from '../BaseTile/getTileMinHeight';
12
11
  import { getTileRightPadding } from '../BaseTile/getTileRightPadding';
13
12
  import type { TileContent } from './TileContent';
@@ -25,6 +24,7 @@ export const Tile = JSX<TileProps>((props) => {
25
24
  const {
26
25
  context,
27
26
  title,
27
+ headingType = 'h3',
28
28
  description,
29
29
  items,
30
30
  children,
@@ -49,7 +49,7 @@ export const Tile = JSX<TileProps>((props) => {
49
49
  title={
50
50
  title && (
51
51
  <Heading
52
- headingType={getTileHeadingType(className)}
52
+ headingType={headingType}
53
53
  as="h3"
54
54
  title={title}
55
55
  className={`whitespace-pre-wrap max-w-[600px] ${title ? 'mb-3' : ''}
@@ -1,7 +1,7 @@
1
1
  import type { BlockVersion } from '../../model/BlockVersion';
2
2
  import type { ButtonContent } from '../../ui-kit/Button/ButtonProps';
3
3
  import type { DescriptionContent } from '../../ui-kit/Description/DescriptionContent';
4
- import type { HeadingContent } from '../../ui-kit/Heading/HeadingContent';
4
+ import type { HeadingContent, HeadingTypeContent } from '../../ui-kit/Heading/HeadingContent';
5
5
  import type { ImageContent } from '../../ui-kit/Img/ImgProps';
6
6
  import type { ListContent } from '../../ui-kit/List/ListContent';
7
7
 
@@ -9,6 +9,7 @@ import type { ListContent } from '../../ui-kit/List/ListContent';
9
9
  * @title Плитка
10
10
  */
11
11
  export type TileContent = HeadingContent &
12
+ HeadingTypeContent &
12
13
  DescriptionContent &
13
14
  ListContent &
14
15
  ButtonContent &
package/src/types.ts CHANGED
@@ -2,7 +2,11 @@ import type { BlockContent } from './components/BlockContent';
2
2
  import type { ContentPageContext } from './components/ContentPage/ContentPageContext';
3
3
  import type { BlockVersion } from './model/BlockVersion';
4
4
 
5
- export type ColorPalette = 'pc' | 'bc' | 'eo' | 'eo2' | 'eo3' | 'eo4';
5
+ /**
6
+ * @title Цветовая палитра
7
+ * @enumNames ["", "Частным клиентам", "Бизнес клиентам", "Экосистема Своё"]
8
+ */
9
+ export type ColorPalette = '' | 'pc' | 'bc' | 'eo';
6
10
 
7
11
  export interface BaseBlockDef {
8
12
  type?: string;
@@ -14,7 +14,7 @@ export const ButtonInner = JSX<ButtonInnerProps>((props) => {
14
14
  {isWithText(props) ? (
15
15
  <div>
16
16
  <div className="text-m-2xs font-light text-left">{aboveText}</div>
17
- <div className="text-button-sm text-left">{text}</div>
17
+ <div className="text-button text-left">{text}</div>
18
18
  </div>
19
19
  ) : null}
20
20
  </div>