@redneckz/wildless-cms-uni-blocks 0.8.2 → 0.8.4

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 (255) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +110 -29
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/Carousel/CarouselContent.d.ts +6 -1
  5. package/bundle/components/Carousel/CarouselScrollButtons.d.ts +13 -0
  6. package/bundle/components/CarouselBankHistoryCard/CarouselBankHistoryCard.d.ts +9 -0
  7. package/bundle/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.d.ts +9 -0
  8. package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +0 -1
  9. package/bundle/components/Footer/MediaButton.d.ts +2 -2
  10. package/bundle/components/Footer/SocialMedia.d.ts +2 -2
  11. package/bundle/hooks/useLink.d.ts +1 -1
  12. package/bundle/services/sitemap/isHrefActive.d.ts +2 -1
  13. package/bundle/services/sitemap/isTopItemActive.d.ts +2 -3
  14. package/dist/components/Blocks.js +2 -0
  15. package/dist/components/Blocks.js.map +1 -1
  16. package/dist/components/Carousel/Carousel.js +27 -6
  17. package/dist/components/Carousel/Carousel.js.map +1 -1
  18. package/dist/components/Carousel/CarouselContent.d.ts +6 -1
  19. package/dist/components/Carousel/CarouselScrollButtons.d.ts +13 -0
  20. package/dist/components/Carousel/CarouselScrollButtons.js +35 -0
  21. package/dist/components/Carousel/CarouselScrollButtons.js.map +1 -0
  22. package/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.d.ts +9 -0
  23. package/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js +46 -0
  24. package/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js.map +1 -0
  25. package/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.d.ts +9 -0
  26. package/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.js +2 -0
  27. package/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.js.map +1 -0
  28. package/dist/components/CarouselCard/CarouselCard.js +1 -1
  29. package/dist/components/CarouselCard/CarouselCard.js.map +1 -1
  30. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  31. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  32. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +1 -1
  33. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  34. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +0 -1
  35. package/dist/components/Footer/MediaButton.d.ts +2 -2
  36. package/dist/components/Footer/SocialMedia.d.ts +2 -2
  37. package/dist/components/Footer/SocialMedia.js +2 -1
  38. package/dist/components/Footer/SocialMedia.js.map +1 -1
  39. package/dist/hooks/useLink.d.ts +1 -1
  40. package/dist/hooks/useLink.js +2 -2
  41. package/dist/hooks/useLink.js.map +1 -1
  42. package/dist/services/sitemap/findActiveSubItem.js +2 -2
  43. package/dist/services/sitemap/findActiveSubItem.js.map +1 -1
  44. package/dist/services/sitemap/isHrefActive.d.ts +2 -1
  45. package/dist/services/sitemap/isHrefActive.js +6 -2
  46. package/dist/services/sitemap/isHrefActive.js.map +1 -1
  47. package/dist/services/sitemap/isTopItemActive.d.ts +2 -3
  48. package/dist/services/sitemap/isTopItemActive.js +1 -2
  49. package/dist/services/sitemap/isTopItemActive.js.map +1 -1
  50. package/dist/ui-kit/TopItem/TopItem.js +1 -1
  51. package/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  52. package/dist/utils/url.js +1 -7
  53. package/dist/utils/url.js.map +1 -1
  54. package/lib/common.css +1 -1
  55. package/lib/components/Blocks.js +2 -0
  56. package/lib/components/Blocks.js.map +1 -1
  57. package/lib/components/Carousel/Carousel.fixture.d.ts +1 -0
  58. package/lib/components/Carousel/Carousel.js +28 -7
  59. package/lib/components/Carousel/Carousel.js.map +1 -1
  60. package/lib/components/Carousel/CarouselContent.d.ts +6 -1
  61. package/lib/components/Carousel/CarouselScrollButtons.d.ts +13 -0
  62. package/lib/components/Carousel/CarouselScrollButtons.js +33 -0
  63. package/lib/components/Carousel/CarouselScrollButtons.js.map +1 -0
  64. package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.d.ts +9 -0
  65. package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.fixture.d.ts +15 -0
  66. package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js +44 -0
  67. package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js.map +1 -0
  68. package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.d.ts +9 -0
  69. package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.js +2 -0
  70. package/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.js.map +1 -0
  71. package/lib/components/CarouselCard/CarouselCard.js +1 -1
  72. package/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  73. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  74. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  75. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +1 -1
  76. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  77. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +0 -1
  78. package/lib/components/Footer/MediaButton.d.ts +2 -2
  79. package/lib/components/Footer/SocialMedia.d.ts +2 -2
  80. package/lib/components/Footer/SocialMedia.js +2 -1
  81. package/lib/components/Footer/SocialMedia.js.map +1 -1
  82. package/lib/hooks/useLink.d.ts +1 -1
  83. package/lib/hooks/useLink.js +2 -2
  84. package/lib/hooks/useLink.js.map +1 -1
  85. package/lib/services/sitemap/findActiveSubItem.js +2 -2
  86. package/lib/services/sitemap/findActiveSubItem.js.map +1 -1
  87. package/lib/services/sitemap/isHrefActive.d.ts +2 -1
  88. package/lib/services/sitemap/isHrefActive.js +7 -3
  89. package/lib/services/sitemap/isHrefActive.js.map +1 -1
  90. package/lib/services/sitemap/isTopItemActive.d.ts +2 -3
  91. package/lib/services/sitemap/isTopItemActive.js +1 -2
  92. package/lib/services/sitemap/isTopItemActive.js.map +1 -1
  93. package/lib/ui-kit/TopItem/TopItem.js +1 -1
  94. package/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  95. package/lib/utils/url.js +1 -7
  96. package/lib/utils/url.js.map +1 -1
  97. package/mobile/bundle/bundle.umd.js +12 -19
  98. package/mobile/bundle/bundle.umd.min.js +1 -1
  99. package/mobile/bundle/components/Carousel/CarouselContent.d.ts +6 -1
  100. package/mobile/bundle/components/Carousel/CarouselScrollButtons.d.ts +13 -0
  101. package/mobile/bundle/components/CarouselBankHistoryCard/CarouselBankHistoryCard.d.ts +9 -0
  102. package/mobile/bundle/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.d.ts +9 -0
  103. package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +0 -1
  104. package/mobile/bundle/components/Footer/MediaButton.d.ts +2 -2
  105. package/mobile/bundle/hooks/useLink.d.ts +1 -1
  106. package/mobile/bundle/services/sitemap/isHrefActive.d.ts +2 -1
  107. package/mobile/bundle/services/sitemap/isTopItemActive.d.ts +2 -3
  108. package/mobile/dist/components/Carousel/Carousel.js +27 -6
  109. package/mobile/dist/components/Carousel/Carousel.js.map +1 -1
  110. package/mobile/dist/components/Carousel/CarouselContent.d.ts +6 -1
  111. package/mobile/dist/components/Carousel/CarouselScrollButtons.d.ts +13 -0
  112. package/mobile/dist/components/Carousel/CarouselScrollButtons.js +35 -0
  113. package/mobile/dist/components/Carousel/CarouselScrollButtons.js.map +1 -0
  114. package/mobile/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.d.ts +9 -0
  115. package/mobile/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js +46 -0
  116. package/mobile/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js.map +1 -0
  117. package/mobile/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.d.ts +9 -0
  118. package/mobile/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.js +2 -0
  119. package/mobile/dist/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.js.map +1 -0
  120. package/mobile/dist/components/CarouselCard/CarouselCard.js +1 -1
  121. package/mobile/dist/components/CarouselCard/CarouselCard.js.map +1 -1
  122. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  123. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  124. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +1 -1
  125. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  126. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +0 -1
  127. package/mobile/dist/components/Footer/MediaButton.d.ts +2 -2
  128. package/mobile/dist/hooks/useLink.d.ts +1 -1
  129. package/mobile/dist/hooks/useLink.js +2 -2
  130. package/mobile/dist/hooks/useLink.js.map +1 -1
  131. package/mobile/dist/services/sitemap/findActiveSubItem.js +2 -2
  132. package/mobile/dist/services/sitemap/findActiveSubItem.js.map +1 -1
  133. package/mobile/dist/services/sitemap/isHrefActive.d.ts +2 -1
  134. package/mobile/dist/services/sitemap/isHrefActive.js +6 -2
  135. package/mobile/dist/services/sitemap/isHrefActive.js.map +1 -1
  136. package/mobile/dist/services/sitemap/isTopItemActive.d.ts +2 -3
  137. package/mobile/dist/services/sitemap/isTopItemActive.js +1 -2
  138. package/mobile/dist/services/sitemap/isTopItemActive.js.map +1 -1
  139. package/mobile/dist/ui-kit/TopItem/TopItem.js +1 -1
  140. package/mobile/dist/ui-kit/TopItem/TopItem.js.map +1 -1
  141. package/mobile/dist/utils/url.js +1 -7
  142. package/mobile/dist/utils/url.js.map +1 -1
  143. package/mobile/lib/components/Carousel/Carousel.js +28 -7
  144. package/mobile/lib/components/Carousel/Carousel.js.map +1 -1
  145. package/mobile/lib/components/Carousel/CarouselContent.d.ts +6 -1
  146. package/mobile/lib/components/Carousel/CarouselScrollButtons.d.ts +13 -0
  147. package/mobile/lib/components/Carousel/CarouselScrollButtons.js +33 -0
  148. package/mobile/lib/components/Carousel/CarouselScrollButtons.js.map +1 -0
  149. package/mobile/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.d.ts +9 -0
  150. package/mobile/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js +44 -0
  151. package/mobile/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCard.js.map +1 -0
  152. package/mobile/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.d.ts +9 -0
  153. package/mobile/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.js +2 -0
  154. package/mobile/lib/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.js.map +1 -0
  155. package/mobile/lib/components/CarouselCard/CarouselCard.js +1 -1
  156. package/mobile/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  157. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +1 -1
  158. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  159. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +1 -1
  160. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  161. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +0 -1
  162. package/mobile/lib/components/Footer/MediaButton.d.ts +2 -2
  163. package/mobile/lib/hooks/useLink.d.ts +1 -1
  164. package/mobile/lib/hooks/useLink.js +2 -2
  165. package/mobile/lib/hooks/useLink.js.map +1 -1
  166. package/mobile/lib/services/sitemap/findActiveSubItem.js +2 -2
  167. package/mobile/lib/services/sitemap/findActiveSubItem.js.map +1 -1
  168. package/mobile/lib/services/sitemap/isHrefActive.d.ts +2 -1
  169. package/mobile/lib/services/sitemap/isHrefActive.js +7 -3
  170. package/mobile/lib/services/sitemap/isHrefActive.js.map +1 -1
  171. package/mobile/lib/services/sitemap/isTopItemActive.d.ts +2 -3
  172. package/mobile/lib/services/sitemap/isTopItemActive.js +1 -2
  173. package/mobile/lib/services/sitemap/isTopItemActive.js.map +1 -1
  174. package/mobile/lib/ui-kit/TopItem/TopItem.js +1 -1
  175. package/mobile/lib/ui-kit/TopItem/TopItem.js.map +1 -1
  176. package/mobile/lib/utils/url.js +1 -7
  177. package/mobile/lib/utils/url.js.map +1 -1
  178. package/mobile/src/common.css +17 -0
  179. package/mobile/src/components/Carousel/Carousel.tsx +43 -32
  180. package/mobile/src/components/Carousel/CarouselContent.ts +6 -1
  181. package/mobile/src/components/Carousel/CarouselScrollButtons.tsx +81 -0
  182. package/mobile/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.example.json +4 -0
  183. package/mobile/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.tsx +85 -0
  184. package/mobile/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.ui.json +1 -0
  185. package/mobile/src/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.ts +9 -0
  186. package/mobile/src/components/CarouselCard/CarouselCard.tsx +2 -2
  187. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +1 -1
  188. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +1 -1
  189. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.ui.json +10 -9
  190. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +0 -1
  191. package/mobile/src/components/Footer/MediaButton.tsx +2 -2
  192. package/mobile/src/hooks/useLink.ts +4 -4
  193. package/mobile/src/services/sitemap/findActiveSubItem.ts +2 -2
  194. package/mobile/src/services/sitemap/isHrefActive.ts +14 -6
  195. package/mobile/src/services/sitemap/isTopItemActive.ts +3 -3
  196. package/mobile/src/ui-kit/TopItem/TopItem.tsx +1 -1
  197. package/mobile/src/utils/url.ts +1 -9
  198. package/package.json +3 -3
  199. package/src/common.css +17 -0
  200. package/src/components/Blocks.ts +2 -0
  201. package/src/components/Carousel/Carousel.fixture.tsx +20 -0
  202. package/src/components/Carousel/Carousel.tsx +43 -32
  203. package/src/components/Carousel/CarouselContent.ts +6 -1
  204. package/src/components/Carousel/CarouselScrollButtons.tsx +81 -0
  205. package/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.example.json +4 -0
  206. package/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.fixture.tsx +19 -0
  207. package/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.tsx +85 -0
  208. package/src/components/CarouselBankHistoryCard/CarouselBankHistoryCard.ui.json +1 -0
  209. package/src/components/CarouselBankHistoryCard/CarouselBankHistoryCardContent.ts +9 -0
  210. package/src/components/CarouselCard/CarouselCard.tsx +2 -2
  211. package/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +1 -1
  212. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +1 -1
  213. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.ui.json +10 -9
  214. package/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +0 -1
  215. package/src/components/Footer/MediaButton.tsx +2 -2
  216. package/src/components/Footer/SocialMedia.tsx +6 -3
  217. package/src/hooks/useLink.ts +4 -4
  218. package/src/services/sitemap/findActiveSubItem.ts +2 -2
  219. package/src/services/sitemap/isHrefActive.ts +14 -6
  220. package/src/services/sitemap/isTopItemActive.ts +3 -3
  221. package/src/ui-kit/TopItem/TopItem.tsx +1 -1
  222. package/src/utils/url.ts +1 -9
  223. package/tailwind.config.cjs +2 -0
  224. package/bundle/services/sitemap/isSubItemActive.d.ts +0 -4
  225. package/bundle/utils/adjustHref.d.ts +0 -1
  226. package/dist/services/sitemap/isSubItemActive.d.ts +0 -4
  227. package/dist/services/sitemap/isSubItemActive.js +0 -6
  228. package/dist/services/sitemap/isSubItemActive.js.map +0 -1
  229. package/dist/utils/adjustHref.d.ts +0 -1
  230. package/dist/utils/adjustHref.js +0 -9
  231. package/dist/utils/adjustHref.js.map +0 -1
  232. package/lib/services/sitemap/isSubItemActive.d.ts +0 -4
  233. package/lib/services/sitemap/isSubItemActive.js +0 -3
  234. package/lib/services/sitemap/isSubItemActive.js.map +0 -1
  235. package/lib/utils/adjustHref.d.ts +0 -1
  236. package/lib/utils/adjustHref.js +0 -6
  237. package/lib/utils/adjustHref.js.map +0 -1
  238. package/mobile/bundle/services/sitemap/isSubItemActive.d.ts +0 -4
  239. package/mobile/bundle/utils/adjustHref.d.ts +0 -1
  240. package/mobile/dist/services/sitemap/isSubItemActive.d.ts +0 -4
  241. package/mobile/dist/services/sitemap/isSubItemActive.js +0 -6
  242. package/mobile/dist/services/sitemap/isSubItemActive.js.map +0 -1
  243. package/mobile/dist/utils/adjustHref.d.ts +0 -1
  244. package/mobile/dist/utils/adjustHref.js +0 -9
  245. package/mobile/dist/utils/adjustHref.js.map +0 -1
  246. package/mobile/lib/services/sitemap/isSubItemActive.d.ts +0 -4
  247. package/mobile/lib/services/sitemap/isSubItemActive.js +0 -3
  248. package/mobile/lib/services/sitemap/isSubItemActive.js.map +0 -1
  249. package/mobile/lib/utils/adjustHref.d.ts +0 -1
  250. package/mobile/lib/utils/adjustHref.js +0 -6
  251. package/mobile/lib/utils/adjustHref.js.map +0 -1
  252. package/mobile/src/services/sitemap/isSubItemActive.ts +0 -7
  253. package/mobile/src/utils/adjustHref.ts +0 -7
  254. package/src/services/sitemap/isSubItemActive.ts +0 -7
  255. package/src/utils/adjustHref.ts +0 -7
@@ -1,7 +1,7 @@
1
1
  import type { IconVersion } from '../../model/IconVersion';
2
- import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
2
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
3
3
  export declare type ButtonSize = 'default' | 'small';
4
- interface MediaButtonProps extends ButtonProps {
4
+ interface MediaButtonProps extends ButtonWithIconProps {
5
5
  iconVersion?: IconVersion;
6
6
  buttonSize?: ButtonSize;
7
7
  }
@@ -4,5 +4,5 @@ interface ClickHandler {
4
4
  preventDefault: () => void;
5
5
  }): void;
6
6
  }
7
- export declare function useLink(): <L extends Partial<LinkProps & ClickHandler>>(props: L) => L & ClickHandler;
7
+ export declare function useLink(isRemote?: boolean): <L extends Partial<LinkProps & ClickHandler>>(props: L) => L & ClickHandler;
8
8
  export {};
@@ -2,11 +2,11 @@ import { useBlockRouter } from '../services/BlockRouter/useBlockRouter.js';
2
2
  import { isHash, isLocalURL } from '../utils/url.js';
3
3
  import { handlerDecorator } from './handlerDecorator.js';
4
4
  import { useRouter } from './useRouter.js';
5
- export function useLink() {
5
+ export function useLink(isRemote) {
6
6
  const router = useRouter();
7
7
  const blockRouter = useBlockRouter();
8
8
  const handleLocalURL = (href, target) => (ev) => {
9
- if (!isLocalURL(href, target)) {
9
+ if (isRemote || !isLocalURL(href, target)) {
10
10
  // Proceed with native handle
11
11
  return;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useLink.js","sourceRoot":"","sources":["../../src/hooks/useLink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxC,MAAM,UAAU,OAAO;IAGrB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,cAAc,GAClB,CAAC,IAAwB,EAAE,MAAe,EAAE,EAAE,CAAC,CAAC,EAAmC,EAAE,EAAE;QACrF,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;YAC7B,6BAA6B;YAC7B,OAAO;SACR;QAED,iBAAiB;QACjB,EAAE,EAAE,cAAc,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;YAChB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnB;IACH,CAAC,CAAC;IAEJ,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjB,GAAG,KAAK;QACR,YAAY,EAAE,KAAK,CAAC,IAAI;QACxB,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAmC,EAAE,EAAE;YAChE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAEnC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC,EAAE,KAAK,CAAC;KACV,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"useLink.js","sourceRoot":"","sources":["../../src/hooks/useLink.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAMxC,MAAM,UAAU,OAAO,CACrB,QAAkB;IAElB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,cAAc,GAClB,CAAC,IAAwB,EAAE,MAAe,EAAE,EAAE,CAAC,CAAC,EAAmC,EAAE,EAAE;QACrF,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE;YACzC,6BAA6B;YAC7B,OAAO;SACR;QAED,iBAAiB;QACjB,EAAE,EAAE,cAAc,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;YAChB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxB;aAAM,IAAI,IAAI,EAAE;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnB;IACH,CAAC,CAAC;IAEJ,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjB,GAAG,KAAK;QACR,YAAY,EAAE,KAAK,CAAC,IAAI;QACxB,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAmC,EAAE,EAAE;YAChE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAEnC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC,EAAE,KAAK,CAAC;KACV,CAAC,CAAC;AACL,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { maxBy } from '../../utils/maxBy.js';
2
- import { isSubItemActive } from './isSubItemActive.js';
2
+ import { isHrefActive } from './isHrefActive.js';
3
3
  export const findActiveSubItem = (router) => (items = []) => {
4
- const possibleActiveSubItems = items?.filter(isSubItemActive(router));
4
+ const possibleActiveSubItems = items?.filter(isHrefActive(router));
5
5
  return possibleActiveSubItems?.length
6
6
  ? maxBy((_) => _.href?.length || 0)(possibleActiveSubItems) // More specific item with max length
7
7
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"findActiveSubItem.js","sourceRoot":"","sources":["../../../src/services/sitemap/findActiveSubItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,iBAAiB,GAC5B,CAAC,MAAc,EAAE,EAAE,CACnB,CAAsB,QAAa,EAAE,EAAiB,EAAE;IACtD,MAAM,sBAAsB,GAAG,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtE,OAAO,sBAAsB,EAAE,MAAM;QACnC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,qCAAqC;QACpG,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"findActiveSubItem.js","sourceRoot":"","sources":["../../../src/services/sitemap/findActiveSubItem.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,iBAAiB,GAC5B,CAAC,MAAc,EAAE,EAAE,CACnB,CAAsB,QAAa,EAAE,EAAiB,EAAE;IACtD,MAAM,sBAAsB,GAAG,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE,OAAO,sBAAsB,EAAE,MAAM;QACnC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,qCAAqC;QACpG,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
- export declare const isHrefActive: (href: string | undefined, router: {
1
+ import type { Router } from '../../hooks/useRouter';
2
+ export declare const isHrefActive: (router: Router) => ({ href }: {
2
3
  href?: string | undefined;
3
4
  }) => boolean;
@@ -1,4 +1,8 @@
1
- import { adjustHref } from '../../utils/adjustHref.js';
2
- import { getPathname, isURL, withoutQuery } from '../../utils/url.js';
3
- export const isHrefActive = (href, router) => withoutQuery(isURL(href) ? router.href : getPathname(router.href)).startsWith(withoutQuery(adjustHref(href)));
1
+ import { projectSettings } from '../../ProjectSettings.js';
2
+ import { isURL, withoutQuery } from '../../utils/url.js';
3
+ export const isHrefActive = (router) => ({ href }) => {
4
+ const { BASE_PATH } = projectSettings;
5
+ const relativeHref = BASE_PATH && href?.startsWith(BASE_PATH) ? href.substring(BASE_PATH.length) : href;
6
+ return withoutQuery(isURL(href) ? router.href : router.pathname).startsWith(withoutQuery(relativeHref));
7
+ };
4
8
  //# sourceMappingURL=isHrefActive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isHrefActive.js","sourceRoot":"","sources":["../../../src/services/sitemap/isHrefActive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAwB,EAAE,MAAyB,EAAE,EAAE,CAClF,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAC3E,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAC/B,CAAC"}
1
+ {"version":3,"file":"isHrefActive.js","sourceRoot":"","sources":["../../../src/services/sitemap/isHrefActive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,CAAC,MAAM,YAAY,GACvB,CAAC,MAAc,EAAE,EAAE,CACnB,CAAC,EAAE,IAAI,EAAqB,EAAW,EAAE;IACvC,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC;IACtC,MAAM,YAAY,GAChB,SAAS,IAAI,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErF,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CACzE,YAAY,CAAC,YAAY,CAAC,CAC3B,CAAC;AACJ,CAAC,CAAC"}
@@ -1,4 +1,3 @@
1
+ import type { Router } from '../../hooks/useRouter';
1
2
  import { TopMenuItem } from './SitemapProps';
2
- export declare const isTopItemActive: (router: {
3
- href?: string;
4
- }) => (topItem: TopMenuItem) => boolean;
3
+ export declare const isTopItemActive: (router: Router) => (topItem: TopMenuItem) => boolean;
@@ -1,4 +1,3 @@
1
1
  import { isHrefActive } from './isHrefActive.js';
2
- import { isSubItemActive } from './isSubItemActive.js';
3
- export const isTopItemActive = (router) => (topItem) => topItem.items?.some(isSubItemActive(router)) || isHrefActive(topItem.href, router);
2
+ export const isTopItemActive = (router) => (topItem) => topItem.items?.some(isHrefActive(router)) || isHrefActive(router)(topItem);
4
3
  //# sourceMappingURL=isTopItemActive.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isTopItemActive.js","sourceRoot":"","sources":["../../../src/services/sitemap/isTopItemActive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,CAAC,MAAM,eAAe,GAC1B,CAAC,MAAyB,EAAE,EAAE,CAC9B,CAAC,OAAoB,EAAW,EAAE,CAChC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"isTopItemActive.js","sourceRoot":"","sources":["../../../src/services/sitemap/isTopItemActive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,CAAC,MAAM,eAAe,GAC1B,CAAC,MAAc,EAAE,EAAE,CACnB,CAAC,OAAoB,EAAW,EAAE,CAChC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC"}
@@ -3,7 +3,7 @@ import { JSX } from '@redneckz/uni-jsx';
3
3
  import { useLink } from '../../hooks/useLink.js';
4
4
  import { style } from '../../utils/style.js';
5
5
  export const TopItem = JSX(({ className = '', active, flat, children, ...rest }) => {
6
- const link = useLink();
6
+ const link = useLink(true);
7
7
  const { href, target, text, onClick } = link(rest);
8
8
  return (_jsx("a", { className: style(getLinkStyle(active, flat), className), href: href, target: target, onClick: onClick, rel: "noopener noreferrer", "aria-label": text, children: _jsx("span", { className: getTextStyle(active, flat), children: text || children }) }));
9
9
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TopItem.js","sourceRoot":"","sources":["../../../src/ui-kit/TopItem/TopItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAa1C,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAe,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC/F,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,CACL,YACE,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,EACvD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAC,qBAAqB,gBACb,IAAI,YAEhB,eAAM,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,YAAG,IAAI,IAAI,QAAQ,GAAQ,GACpE,CACL,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CACpD,KAAK,CACH,0EAA0E,EAC1E,MAAM;IACJ,CAAC,CAAC,oEAAoE;IACtE,CAAC,CAAC,oBAAoB,EACxB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CACxB,CAAC;AAEJ,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CACpD,KAAK,CACH,wBAAwB,EACxB,MAAM;IACJ,CAAC,CAAC,mBAAmB;IACrB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,EACxF,mFAAmF,CACpF,CAAC"}
1
+ {"version":3,"file":"TopItem.js","sourceRoot":"","sources":["../../../src/ui-kit/TopItem/TopItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAa1C,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CAAe,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;IAC/F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnD,OAAO,CACL,YACE,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,EACvD,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,GAAG,EAAC,qBAAqB,gBACb,IAAI,YAEhB,eAAM,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,YAAG,IAAI,IAAI,QAAQ,GAAQ,GACpE,CACL,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CACpD,KAAK,CACH,0EAA0E,EAC1E,MAAM;IACJ,CAAC,CAAC,oEAAoE;IACtE,CAAC,CAAC,oBAAoB,EACxB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CACxB,CAAC;AAEJ,MAAM,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CACpD,KAAK,CACH,wBAAwB,EACxB,MAAM;IACJ,CAAC,CAAC,mBAAmB;IACrB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,EACxF,mFAAmF,CACpF,CAAC"}
@@ -1,11 +1,5 @@
1
- import { projectSettings } from '../ProjectSettings.js';
2
1
  export const isURL = (href) => Boolean(href?.includes('//'));
3
- export const isLocalURL = (href, target) => Boolean(href &&
4
- !isURL(href) &&
5
- (projectSettings.BASE_PATH
6
- ? href.startsWith(projectSettings.BASE_PATH)
7
- : !href.startsWith('/')) &&
8
- (!target || target === '_self'));
2
+ export const isLocalURL = (href, target) => Boolean(href && !isURL(href) && (!target || target === '_self'));
9
3
  export const isHash = (href) => Boolean(href?.startsWith('#'));
10
4
  export const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
11
5
  export const getOrigin = (href) => (isURL(href) ? new URL(href).origin : undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAkC,EAAE,CACrE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAEhC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAwB,EAAE,MAAe,EAAE,EAAE,CACtE,OAAO,CACL,IAAI;IACF,CAAC,KAAK,CAAC,IAAI,CAAC;IACZ,CAAC,eAAe,CAAC,SAAS;QACxB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC;QAC5C,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC,CAAC,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,CAClC,CAAC;AAEJ,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAa,EAAwB,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAa,EAAU,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACjG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAkC,EAAE,CACrE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAEhC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAwB,EAAE,MAAe,EAAE,EAAE,CACtE,OAAO,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,IAAa,EAAwB,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAa,EAAU,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACjG,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC"}
@@ -92,6 +92,23 @@ html {
92
92
  text-fill-color: transparent;
93
93
  }
94
94
 
95
+ .gradient-color-text-on-green {
96
+ background: linear-gradient(180deg, #cec833 0%, #7dae3c 100%);
97
+ -webkit-background-clip: text;
98
+ -webkit-text-fill-color: transparent;
99
+ text-fill-color: transparent;
100
+ opacity: 0.5;
101
+ }
102
+
103
+ .gradient-color-text-on-yellow {
104
+ background: linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)),
105
+ linear-gradient(180deg, #cec833 0%, #7dae3c 100%);
106
+ -webkit-background-clip: text;
107
+ -webkit-text-fill-color: transparent;
108
+ text-fill-color: transparent;
109
+ opacity: 0.5;
110
+ }
111
+
95
112
  input[type='range'].slider {
96
113
  -webkit-appearance: none;
97
114
  height: 4px;
@@ -1,15 +1,14 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
2
3
  import { renderChildren } from '../../BlockRenderer/renderChildren';
4
+ import { BlockDef } from '../../model/ContentPageDef';
3
5
  import type { JSXBlock, UniBlockProps } from '../../model/JSXBlock';
4
6
  import { BlockWrapper } from '../../ui-kit/BlockWrapper';
5
- import { ScrollLeftButton, ScrollRightButton } from '../../ui-kit/Button/ArrowButton';
6
7
  import { SwipeListContainer } from '../../ui-kit/SwipeListControl/SwipeListContainer';
7
- import {
8
- SwipeListScroll,
9
- useSwipeListScroll,
10
- } from '../../ui-kit/SwipeListControl/useSwipeListScroll';
11
- import type { CarouselContent } from './CarouselContent';
8
+ import { useSwipeListScroll } from '../../ui-kit/SwipeListControl/useSwipeListScroll';
12
9
  import { style } from '../../utils/style';
10
+ import type { CarouselContent } from './CarouselContent';
11
+ import { CarouselScrollButtons } from './CarouselScrollButtons';
13
12
 
14
13
  export interface CarouselProps extends CarouselContent, UniBlockProps {
15
14
  itemCount?: number;
@@ -17,9 +16,6 @@ export interface CarouselProps extends CarouselContent, UniBlockProps {
17
16
 
18
17
  const ITEMS_GAP = 4;
19
18
 
20
- const blurBaseStyle = 'absolute top-0 bottom-0 z-50 w-[84px] pointer-events-none';
21
- const scrollButtonStyle = 'absolute top-[calc(50%-12px)] z-50';
22
-
23
19
  export const Carousel: JSXBlock<CarouselProps> = JSX<CarouselProps>(
24
20
  ({
25
21
  className = '',
@@ -27,17 +23,25 @@ export const Carousel: JSXBlock<CarouselProps> = JSX<CarouselProps>(
27
23
  visibleItemCount,
28
24
  isBlur = true,
29
25
  isCyclic = false,
26
+ arrowsPadded = true,
30
27
  isPadding = true,
31
28
  ...rest
32
29
  }) => {
33
30
  const { blocks: childBlocks } = rest.block || {};
34
31
  const count = itemCount || childBlocks?.length || 0;
35
32
 
33
+ const [activeIndex, setActiveIndex] = useState<number>(Math.floor((visibleItemCount || 0) / 2));
34
+
35
+ const increaseActiveIndex = useCallback(() => setActiveIndex((_) => _ + 1), []);
36
+ const decreaseActiveIndex = useCallback(() => setActiveIndex((_) => _ - 1), []);
37
+
36
38
  const [containerRef, scroll] = useSwipeListScroll<HTMLDivElement>({
37
39
  itemCount: count,
38
40
  isCyclic,
39
41
  });
40
42
 
43
+ const isBankHistoryCarousel = childBlocks && childBlocks[0]?.type === 'CarouselBankHistoryCard';
44
+
41
45
  return (
42
46
  <BlockWrapper className={style(getPaddingStyle(isPadding), className)} {...rest}>
43
47
  <div className="relative max-w-full">
@@ -48,15 +52,21 @@ export const Carousel: JSXBlock<CarouselProps> = JSX<CarouselProps>(
48
52
  gap={ITEMS_GAP}
49
53
  onVisibleIndicesChange={scroll.handleVisibleIndicesChange}
50
54
  >
51
- {renderChildren(rest)}
55
+ {renderChildren({
56
+ ...rest,
57
+ block: { ...rest.block, blocks: buildBlocks(childBlocks, activeIndex) },
58
+ })}
52
59
  </SwipeListContainer>
53
- {(scroll.canScrollLeft || scroll.canScrollRight) && isBlur ? (
54
- <div>
55
- <div className={`${blurBaseStyle} left-0 bg-opacity-from-white`} />
56
- <div className={`${blurBaseStyle} right-0 bg-opacity-to-white`} />
57
- </div>
58
- ) : null}
59
- {renderScrollButtons(scroll)}
60
+ <CarouselScrollButtons
61
+ scroll={scroll}
62
+ isBlur={isBlur}
63
+ arrowsPadded={arrowsPadded}
64
+ onScrollLeft={decreaseActiveIndex}
65
+ onScrollRight={increaseActiveIndex}
66
+ hasEdgeBlocks={isBankHistoryCarousel}
67
+ activeIndex={activeIndex}
68
+ itemCount={count}
69
+ />
60
70
  </div>
61
71
  </BlockWrapper>
62
72
  );
@@ -65,6 +75,7 @@ export const Carousel: JSXBlock<CarouselProps> = JSX<CarouselProps>(
65
75
 
66
76
  Carousel.childrenTypes = [
67
77
  'CarouselCard',
78
+ 'CarouselBankHistoryCard',
68
79
  'CarouselCatalogCard',
69
80
  'CarouselInvestmentCard',
70
81
  'CarouselProductCard',
@@ -74,20 +85,20 @@ Carousel.childrenTypes = [
74
85
  'CarouselInvestmentCard',
75
86
  ];
76
87
 
77
- const renderScrollButtons = ({
78
- scrollLeft,
79
- scrollRight,
80
- canScrollLeft,
81
- canScrollRight,
82
- }: SwipeListScroll) => (
83
- <div>
84
- {canScrollLeft ? (
85
- <ScrollLeftButton className={`${scrollButtonStyle} left-8`} onClick={scrollLeft} />
86
- ) : null}
87
- {canScrollRight ? (
88
- <ScrollRightButton className={`${scrollButtonStyle} right-8`} onClick={scrollRight} />
89
- ) : null}
90
- </div>
91
- );
88
+ const buildBlocks = (blocks?: BlockDef[], activeIndex?: number) => {
89
+ return blocks && blocks[0].type === 'CarouselBankHistoryCard'
90
+ ? blocks.map((_, i) => {
91
+ return {
92
+ ..._,
93
+ content: {
94
+ ..._.content,
95
+ orderNumber: i,
96
+ isActive: activeIndex === i,
97
+ blocksLength: blocks.length,
98
+ },
99
+ };
100
+ })
101
+ : blocks;
102
+ };
92
103
 
93
104
  const getPaddingStyle = (isPadding: boolean): string => (isPadding ? 'p-12' : '');
@@ -7,8 +7,13 @@ export interface CarouselContent {
7
7
  * @enumNames ["auto", "1", "2", "3"]
8
8
  */
9
9
  visibleItemCount?: 0 | 1 | 2 | 3 | 4;
10
- /** @title Добавление блюра */
10
+ /** @title Добавление блюра на стрелках*/
11
11
  isBlur?: boolean;
12
+ /**
13
+ * @title Добавление отступа на стрелках
14
+ * @default true
15
+ * */
16
+ arrowsPadded?: boolean;
12
17
  /** @title Цикличность */
13
18
  isCyclic?: boolean;
14
19
  /** @title Внутренний отступ */
@@ -0,0 +1,81 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { ScrollLeftButton, ScrollRightButton } from '../../ui-kit/Button/ArrowButton';
4
+ import { SwipeListScroll } from '../../ui-kit/SwipeListControl/useSwipeListScroll';
5
+ import { style } from '../../utils/style';
6
+
7
+ interface CarouselScrollButtonsProps {
8
+ scroll: SwipeListScroll;
9
+ arrowsPadded: boolean;
10
+ isBlur: boolean;
11
+ onScrollLeft: () => void;
12
+ onScrollRight: () => void;
13
+ hasEdgeBlocks?: boolean;
14
+ activeIndex: number;
15
+ itemCount: number;
16
+ }
17
+
18
+ const scrollButtonStyle = 'absolute top-[calc(50%-24px)] z-50';
19
+ const blurBaseStyle = 'absolute top-0 bottom-0 z-50 w-[84px] pointer-events-none';
20
+
21
+ export const CarouselScrollButtons = JSX<CarouselScrollButtonsProps>(
22
+ ({
23
+ scroll,
24
+ arrowsPadded,
25
+ isBlur,
26
+ onScrollLeft,
27
+ onScrollRight,
28
+ hasEdgeBlocks,
29
+ activeIndex,
30
+ itemCount,
31
+ }) => {
32
+ const { canScrollLeft, canScrollRight, scrollLeft, scrollRight } = scroll;
33
+
34
+ const canMoveLeft = hasEdgeBlocks ? activeIndex > 0 : canScrollLeft;
35
+ const canMoveRight = hasEdgeBlocks ? activeIndex < itemCount - 1 : canScrollRight;
36
+
37
+ const handleScrollLeft = useCallback(() => {
38
+ if (!hasEdgeBlocks) {
39
+ scrollLeft();
40
+ } else {
41
+ canScrollLeft && activeIndex !== itemCount - 1 && scrollLeft();
42
+ onScrollLeft();
43
+ }
44
+ }, [scrollLeft, onScrollLeft, hasEdgeBlocks, canScrollLeft, activeIndex, itemCount]);
45
+
46
+ const handleScrollRight = useCallback(() => {
47
+ if (!hasEdgeBlocks) {
48
+ scrollRight();
49
+ } else {
50
+ canScrollRight && activeIndex !== 0 && scrollRight();
51
+ onScrollRight();
52
+ }
53
+ }, [scrollRight, onScrollRight, hasEdgeBlocks, canScrollLeft, activeIndex, itemCount]);
54
+
55
+ return (
56
+ <div>
57
+ {renderBlur(isBlur, scroll)}
58
+ {canMoveLeft ? (
59
+ <ScrollLeftButton
60
+ className={style(scrollButtonStyle, arrowsPadded ? 'left-8' : 'left-0')}
61
+ onClick={handleScrollLeft}
62
+ />
63
+ ) : null}
64
+ {canMoveRight ? (
65
+ <ScrollRightButton
66
+ className={style(scrollButtonStyle, arrowsPadded ? 'right-8' : 'right-0')}
67
+ onClick={handleScrollRight}
68
+ />
69
+ ) : null}
70
+ </div>
71
+ );
72
+ },
73
+ );
74
+
75
+ const renderBlur = (isBlur: boolean, scroll: SwipeListScroll) =>
76
+ (scroll.canScrollLeft || scroll.canScrollRight) && isBlur ? (
77
+ <div>
78
+ <div className={style(blurBaseStyle, 'left-0 bg-opacity-from-white')} />
79
+ <div className={style(blurBaseStyle, 'right-0 bg-opacity-to-white')} />
80
+ </div>
81
+ ) : null;
@@ -0,0 +1,4 @@
1
+ {
2
+ "title": "Заголовок 1",
3
+ "description": "Описание 1"
4
+ }
@@ -0,0 +1,85 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { UniBlockProps } from '../../model/JSXBlock';
3
+ import { BlockWrapper } from '../../ui-kit/BlockWrapper';
4
+ import { style } from '../../utils/style';
5
+ import { Headline } from '../Headline/Headline';
6
+ import type { CarouselBankHistoryCardContent } from './CarouselBankHistoryCardContent';
7
+
8
+ interface CarouselBankHistoryCardProps extends CarouselBankHistoryCardContent, UniBlockProps {
9
+ isActive?: boolean;
10
+ orderNumber?: number;
11
+ blocksLength?: number;
12
+ }
13
+
14
+ export const CarouselBankHistoryCard = JSX<CarouselBankHistoryCardProps>(
15
+ ({ title, description, isActive, orderNumber = 0, blocksLength = 0 }) => {
16
+ return (
17
+ <BlockWrapper className="flex h-[485px]">
18
+ {isActive ? (
19
+ <div className="relative flex items-center w-full">
20
+ <Headline
21
+ headlineVersion="S"
22
+ title={title}
23
+ description={description}
24
+ align="text-left"
25
+ className={style(
26
+ 'absolute z-10 h-[385px] w-[440px] text-white shadow-dark-blue',
27
+ getActiveBlockPosition(orderNumber, blocksLength),
28
+ getBackgroundColor(orderNumber),
29
+ )}
30
+ />
31
+ </div>
32
+ ) : (
33
+ <div className="flex w-full items-center justify-center">
34
+ <div
35
+ className={style(
36
+ 'flex justify-center items-center h-[300px] w-[340px] font-mohave text-title-large tracking-[-0.03em]',
37
+ getBackgroundColor(orderNumber),
38
+ )}
39
+ >
40
+ <span className={getTextColor(orderNumber)}>{title}</span>
41
+ </div>
42
+ </div>
43
+ )}
44
+ </BlockWrapper>
45
+ );
46
+ },
47
+ );
48
+
49
+ const getBackgroundColor = (orderNumber: number) => {
50
+ const division = orderNumber % 3;
51
+ switch (division) {
52
+ case 0:
53
+ return 'bg-primary-main';
54
+ case 1:
55
+ return 'bg-green-light';
56
+ case 2:
57
+ return 'bg-yellow-light';
58
+
59
+ default:
60
+ return 'bg-primary-main';
61
+ }
62
+ };
63
+
64
+ const getTextColor = (orderNumber: number) => {
65
+ const division = orderNumber % 3;
66
+ switch (division) {
67
+ case 1:
68
+ return 'gradient-color-text-on-yellow';
69
+ case 2:
70
+ return 'gradient-color-text-on-yellow';
71
+
72
+ default:
73
+ return 'gradient-color-text-on-green';
74
+ }
75
+ };
76
+
77
+ const getActiveBlockPosition = (orderNumber: number, blocksLength: number) => {
78
+ if (orderNumber === 0) {
79
+ return 'left-9';
80
+ } else if (orderNumber === blocksLength - 1) {
81
+ return 'right-9';
82
+ } else {
83
+ return '-left-[25px]';
84
+ }
85
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @title Карточка карусели истории банка
3
+ */
4
+ export interface CarouselBankHistoryCardContent {
5
+ /** @title Заголовок */
6
+ title?: string;
7
+ /** @title Описание */
8
+ description?: string;
9
+ }
@@ -17,13 +17,13 @@ const CARD_WIDTH_MAP: Record<CarouselCardVersion, string> = {
17
17
  export const CarouselCard = JSX<CarouselCardProps>(
18
18
  ({ className = '', button, description, title, carouselVersion = 'normal' }) => (
19
19
  <section
20
- className={`flex pb-9 pl-12 border-box ${CARD_WIDTH_MAP[carouselVersion]} ${className}`}
20
+ className={`flex pb-9 pl-12 border-box h-full ${CARD_WIDTH_MAP[carouselVersion]} ${className}`}
21
21
  >
22
22
  <div className="relative w-full">
23
23
  <div className={`${BLOCK_CLASSES} z-10 top-9 right-12 bg-green-dark`} />
24
24
  <div className={`${BLOCK_CLASSES} z-10 top-6 right-8 bg-green`} />
25
25
  <div className={`${BLOCK_CLASSES} z-10 top-3 right-4 bg-green-light`} />
26
- <div className="relative bg-white z-10 p-10 border border-solid border-green-light">
26
+ <div className="relative h-full bg-white z-10 p-10 border border-solid border-green-light">
27
27
  <Headline
28
28
  className="!p-0"
29
29
  title={title}
@@ -19,7 +19,7 @@ const cardStyleMap: Record<ProductColorVersion, string> = {
19
19
  export const CarouselCatalogCard = JSX<CarouselCatalogCardProps>(
20
20
  ({ className = '', title, description, image, price, button, colors, ...rest }) => (
21
21
  <BlockWrapper
22
- className={`border box-border border-gray p-7 min-w-[392px] flex flex-col justify-left ${className}`}
22
+ className={`border box-border border-gray p-7 min-w-[392px] h-full flex flex-col justify-left ${className}`}
23
23
  {...rest}
24
24
  >
25
25
  {image?.src ? <Img className="mb-5 flex justify-center" image={image} /> : null}
@@ -36,7 +36,7 @@ export const CarouselRecommendationCard = JSX<RecommendationCardProps>(
36
36
  return (
37
37
  <BlockWrapper
38
38
  className={style(
39
- 'relative p-7 min-w-[524px] text-left box-border group-data-gray:bg-main-divider/50',
39
+ 'relative p-7 min-w-[524px] h-full text-left box-border group-data-gray:bg-main-divider/50',
40
40
  BORDER_STYLE,
41
41
  className,
42
42
  )}
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "content": {
3
- "items": {
4
- "image": {
5
- "ui:field": "picture"
6
- },
7
- "socialMedia": {
8
- "items": {
9
- "icon": {
10
- "ui:field": "picture"
11
- }
3
+ "image": {
4
+ "ui:field": "picture"
5
+ },
6
+ "socialMedia": {
7
+ "items": {
8
+ "icon": {
9
+ "ui:field": "icon"
10
+ },
11
+ "iconRight": {
12
+ "ui:field": "icon"
12
13
  }
13
14
  }
14
15
  }
@@ -10,7 +10,6 @@ import type { ListContent } from '../../ui-kit/List/ListContent';
10
10
  export interface CarouselRecommendationCardContent extends HeadlineCommonProps, ListContent {
11
11
  /**
12
12
  * @title Соц сети
13
- * @minItems 1
14
13
  */
15
14
  socialMedia?: ButtonWithIconProps[];
16
15
  /**
@@ -5,7 +5,7 @@ import { style } from '../../utils/style';
5
5
  import type { Picture } from '../../model/Picture';
6
6
  import type { IconVersion } from '../../model/IconVersion';
7
7
  import { Button } from '../../ui-kit/Button/Button';
8
- import type { ButtonProps } from '../../ui-kit/Button/ButtonProps';
8
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
9
9
 
10
10
  const ICONS_MAP: Array<{
11
11
  origins: string[];
@@ -46,7 +46,7 @@ const ICONS_MAP: Array<{
46
46
 
47
47
  export type ButtonSize = 'default' | 'small';
48
48
 
49
- interface MediaButtonProps extends ButtonProps {
49
+ interface MediaButtonProps extends ButtonWithIconProps {
50
50
  iconVersion?: IconVersion;
51
51
  buttonSize?: ButtonSize;
52
52
  }
@@ -8,15 +8,15 @@ interface ClickHandler {
8
8
  onClick(ev?: { preventDefault: () => void }): void;
9
9
  }
10
10
 
11
- export function useLink(): <L extends Partial<LinkProps & ClickHandler>>(
12
- props: L,
13
- ) => L & ClickHandler {
11
+ export function useLink(
12
+ isRemote?: boolean,
13
+ ): <L extends Partial<LinkProps & ClickHandler>>(props: L) => L & ClickHandler {
14
14
  const router = useRouter();
15
15
  const blockRouter = useBlockRouter();
16
16
 
17
17
  const handleLocalURL =
18
18
  (href: string | undefined, target?: Target) => (ev?: { preventDefault: () => void }) => {
19
- if (!isLocalURL(href, target)) {
19
+ if (isRemote || !isLocalURL(href, target)) {
20
20
  // Proceed with native handle
21
21
  return;
22
22
  }
@@ -1,12 +1,12 @@
1
1
  import type { Router } from '../../hooks/useRouter';
2
2
  import type { LinkProps } from '../../model/LinkProps';
3
3
  import { maxBy } from '../../utils/maxBy';
4
- import { isSubItemActive } from './isSubItemActive';
4
+ import { isHrefActive } from './isHrefActive';
5
5
 
6
6
  export const findActiveSubItem =
7
7
  (router: Router) =>
8
8
  <T extends LinkProps>(items: T[] = []): T | undefined => {
9
- const possibleActiveSubItems = items?.filter(isSubItemActive(router));
9
+ const possibleActiveSubItems = items?.filter(isHrefActive(router));
10
10
 
11
11
  return possibleActiveSubItems?.length
12
12
  ? maxBy((_: T) => _.href?.length || 0)(possibleActiveSubItems) // More specific item with max length