@redneckz/wildless-cms-uni-blocks 0.8.10 → 0.8.12

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 (151) hide show
  1. package/bundle/bundle.umd.js +79 -93
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/bundle/services/BlockRouter/BlockRouter.d.ts +1 -3
  4. package/bundle/ui-kit/Img/ImgAsPicture.d.ts +0 -2
  5. package/bundle/utils/adjustHref.d.ts +3 -0
  6. package/bundle/utils/dirname.d.ts +1 -0
  7. package/bundle/utils/url.d.ts +2 -2
  8. package/dist/ProjectSettings.js +3 -4
  9. package/dist/ProjectSettings.js.map +1 -1
  10. package/dist/hooks/useLink.js +4 -16
  11. package/dist/hooks/useLink.js.map +1 -1
  12. package/dist/services/BlockRouter/BlockRouter.d.ts +1 -3
  13. package/dist/services/BlockRouter/BlockRouter.js +6 -9
  14. package/dist/services/BlockRouter/BlockRouter.js.map +1 -1
  15. package/dist/services/BlockRouter/useBlockRouterProvider.js +2 -10
  16. package/dist/services/BlockRouter/useBlockRouterProvider.js.map +1 -1
  17. package/dist/setup-fixture.js +3 -4
  18. package/dist/setup-fixture.js.map +1 -1
  19. package/dist/ui-kit/BlockWrapper.js +3 -2
  20. package/dist/ui-kit/BlockWrapper.js.map +1 -1
  21. package/dist/ui-kit/Icon/Icon.js +5 -1
  22. package/dist/ui-kit/Icon/Icon.js.map +1 -1
  23. package/dist/ui-kit/Img/ImgAsPicture.d.ts +0 -2
  24. package/dist/ui-kit/Img/ImgAsPicture.js +18 -21
  25. package/dist/ui-kit/Img/ImgAsPicture.js.map +1 -1
  26. package/dist/utils/adjustHref.d.ts +3 -0
  27. package/dist/utils/adjustHref.js +14 -0
  28. package/dist/utils/adjustHref.js.map +1 -0
  29. package/dist/utils/dirname.d.ts +1 -0
  30. package/dist/utils/dirname.js +5 -0
  31. package/dist/utils/dirname.js.map +1 -0
  32. package/dist/utils/url.d.ts +2 -2
  33. package/dist/utils/url.js +1 -1
  34. package/dist/utils/url.js.map +1 -1
  35. package/dist/wlc.json +0 -1
  36. package/lib/ProjectSettings.js +3 -4
  37. package/lib/ProjectSettings.js.map +1 -1
  38. package/lib/hooks/useLink.js +5 -17
  39. package/lib/hooks/useLink.js.map +1 -1
  40. package/lib/services/BlockRouter/BlockRouter.d.ts +1 -3
  41. package/lib/services/BlockRouter/BlockRouter.js +5 -7
  42. package/lib/services/BlockRouter/BlockRouter.js.map +1 -1
  43. package/lib/services/BlockRouter/useBlockRouterProvider.js +2 -10
  44. package/lib/services/BlockRouter/useBlockRouterProvider.js.map +1 -1
  45. package/lib/setup-fixture.js +3 -4
  46. package/lib/setup-fixture.js.map +1 -1
  47. package/lib/ui-kit/BlockWrapper.js +3 -2
  48. package/lib/ui-kit/BlockWrapper.js.map +1 -1
  49. package/lib/ui-kit/Icon/Icon.js +5 -1
  50. package/lib/ui-kit/Icon/Icon.js.map +1 -1
  51. package/lib/ui-kit/Img/ImgAsPicture.d.ts +0 -2
  52. package/lib/ui-kit/Img/ImgAsPicture.js +17 -19
  53. package/lib/ui-kit/Img/ImgAsPicture.js.map +1 -1
  54. package/lib/utils/adjustHref.d.ts +3 -0
  55. package/lib/utils/adjustHref.js +11 -0
  56. package/lib/utils/adjustHref.js.map +1 -0
  57. package/lib/utils/dirname.d.ts +1 -0
  58. package/lib/utils/dirname.js +2 -0
  59. package/lib/utils/dirname.js.map +1 -0
  60. package/lib/utils/url.d.ts +2 -2
  61. package/lib/utils/url.js +1 -1
  62. package/lib/utils/url.js.map +1 -1
  63. package/lib/wlc.json +0 -1
  64. package/mobile/bundle/bundle.umd.js +79 -93
  65. package/mobile/bundle/bundle.umd.min.js +1 -1
  66. package/mobile/bundle/services/BlockRouter/BlockRouter.d.ts +1 -3
  67. package/mobile/bundle/ui-kit/Img/ImgAsPicture.d.ts +0 -2
  68. package/mobile/bundle/utils/adjustHref.d.ts +3 -0
  69. package/mobile/bundle/utils/dirname.d.ts +1 -0
  70. package/mobile/bundle/utils/url.d.ts +2 -2
  71. package/mobile/dist/ProjectSettings.js +3 -4
  72. package/mobile/dist/ProjectSettings.js.map +1 -1
  73. package/mobile/dist/hooks/useLink.js +4 -16
  74. package/mobile/dist/hooks/useLink.js.map +1 -1
  75. package/mobile/dist/services/BlockRouter/BlockRouter.d.ts +1 -3
  76. package/mobile/dist/services/BlockRouter/BlockRouter.js +6 -9
  77. package/mobile/dist/services/BlockRouter/BlockRouter.js.map +1 -1
  78. package/mobile/dist/services/BlockRouter/useBlockRouterProvider.js +2 -10
  79. package/mobile/dist/services/BlockRouter/useBlockRouterProvider.js.map +1 -1
  80. package/mobile/dist/setup-fixture.js +3 -4
  81. package/mobile/dist/setup-fixture.js.map +1 -1
  82. package/mobile/dist/ui-kit/BlockWrapper.js +3 -2
  83. package/mobile/dist/ui-kit/BlockWrapper.js.map +1 -1
  84. package/mobile/dist/ui-kit/Icon/Icon.js +5 -1
  85. package/mobile/dist/ui-kit/Icon/Icon.js.map +1 -1
  86. package/mobile/dist/ui-kit/Img/ImgAsPicture.d.ts +0 -2
  87. package/mobile/dist/ui-kit/Img/ImgAsPicture.js +18 -21
  88. package/mobile/dist/ui-kit/Img/ImgAsPicture.js.map +1 -1
  89. package/mobile/dist/utils/adjustHref.d.ts +3 -0
  90. package/mobile/dist/utils/adjustHref.js +14 -0
  91. package/mobile/dist/utils/adjustHref.js.map +1 -0
  92. package/mobile/dist/utils/dirname.d.ts +1 -0
  93. package/mobile/dist/utils/dirname.js +5 -0
  94. package/mobile/dist/utils/dirname.js.map +1 -0
  95. package/mobile/dist/utils/url.d.ts +2 -2
  96. package/mobile/dist/utils/url.js +1 -1
  97. package/mobile/dist/utils/url.js.map +1 -1
  98. package/mobile/dist/wlc.json +0 -1
  99. package/mobile/lib/ProjectSettings.js +3 -4
  100. package/mobile/lib/ProjectSettings.js.map +1 -1
  101. package/mobile/lib/hooks/useLink.js +5 -17
  102. package/mobile/lib/hooks/useLink.js.map +1 -1
  103. package/mobile/lib/services/BlockRouter/BlockRouter.d.ts +1 -3
  104. package/mobile/lib/services/BlockRouter/BlockRouter.js +5 -7
  105. package/mobile/lib/services/BlockRouter/BlockRouter.js.map +1 -1
  106. package/mobile/lib/services/BlockRouter/useBlockRouterProvider.js +2 -10
  107. package/mobile/lib/services/BlockRouter/useBlockRouterProvider.js.map +1 -1
  108. package/mobile/lib/setup-fixture.js +3 -4
  109. package/mobile/lib/setup-fixture.js.map +1 -1
  110. package/mobile/lib/ui-kit/BlockWrapper.js +3 -2
  111. package/mobile/lib/ui-kit/BlockWrapper.js.map +1 -1
  112. package/mobile/lib/ui-kit/Icon/Icon.js +5 -1
  113. package/mobile/lib/ui-kit/Icon/Icon.js.map +1 -1
  114. package/mobile/lib/ui-kit/Img/ImgAsPicture.d.ts +0 -2
  115. package/mobile/lib/ui-kit/Img/ImgAsPicture.js +17 -19
  116. package/mobile/lib/ui-kit/Img/ImgAsPicture.js.map +1 -1
  117. package/mobile/lib/utils/adjustHref.d.ts +3 -0
  118. package/mobile/lib/utils/adjustHref.js +11 -0
  119. package/mobile/lib/utils/adjustHref.js.map +1 -0
  120. package/mobile/lib/utils/dirname.d.ts +1 -0
  121. package/mobile/lib/utils/dirname.js +2 -0
  122. package/mobile/lib/utils/dirname.js.map +1 -0
  123. package/mobile/lib/utils/url.d.ts +2 -2
  124. package/mobile/lib/utils/url.js +1 -1
  125. package/mobile/lib/utils/url.js.map +1 -1
  126. package/mobile/lib/wlc.json +0 -1
  127. package/mobile/src/ProjectSettings.ts +4 -4
  128. package/mobile/src/hooks/useLink.ts +5 -18
  129. package/mobile/src/services/BlockRouter/BlockRouter.ts +5 -8
  130. package/mobile/src/services/BlockRouter/useBlockRouterProvider.ts +4 -10
  131. package/mobile/src/setup-fixture.ts +5 -4
  132. package/mobile/src/ui-kit/BlockWrapper.tsx +3 -2
  133. package/mobile/src/ui-kit/Icon/Icon.tsx +5 -1
  134. package/mobile/src/ui-kit/Img/ImgAsPicture.tsx +23 -28
  135. package/mobile/src/utils/adjustHref.ts +17 -0
  136. package/mobile/src/utils/dirname.ts +1 -0
  137. package/mobile/src/utils/url.ts +2 -3
  138. package/mobile/src/wlc.json +0 -1
  139. package/package.json +1 -1
  140. package/src/ProjectSettings.ts +4 -4
  141. package/src/hooks/useLink.ts +5 -18
  142. package/src/services/BlockRouter/BlockRouter.ts +5 -8
  143. package/src/services/BlockRouter/useBlockRouterProvider.ts +4 -10
  144. package/src/setup-fixture.ts +5 -4
  145. package/src/ui-kit/BlockWrapper.tsx +3 -2
  146. package/src/ui-kit/Icon/Icon.tsx +5 -1
  147. package/src/ui-kit/Img/ImgAsPicture.tsx +23 -28
  148. package/src/utils/adjustHref.ts +17 -0
  149. package/src/utils/dirname.ts +1 -0
  150. package/src/utils/url.ts +2 -3
  151. package/src/wlc.json +0 -1
@@ -1,12 +1,10 @@
1
1
  import { useEffect, useRef } from '@redneckz/uni-jsx/lib/hooks';
2
- import { useRouter } from '../../hooks/useRouter.js';
3
2
  import { debounce } from '../../utils/debounce.js';
4
3
  import { trackBlock } from './BlockRouter.js';
5
4
  import { blockRouterEventBus } from './blockRouterEventBus.js';
6
5
  import { findActiveBlock } from './findActiveBlock.js';
7
6
  const isScrolledEnough = () => globalThis.scrollY > (globalThis.innerHeight * 3) / 4;
8
7
  export function useBlockRouterProvider(scrollTarget = globalThis) {
9
- const router = useRouter();
10
8
  const intersectionsMapRef = useRef(new Map());
11
9
  useEffect(() => blockRouterEventBus.subscribe('intersection', ({ block, intersection }) => {
12
10
  if (intersectionsMapRef.current) {
@@ -15,19 +13,13 @@ export function useBlockRouterProvider(scrollTarget = globalThis) {
15
13
  }), []);
16
14
  useEffect(() => {
17
15
  const handleScroll = debounce(() => {
18
- if (isScrolledEnough()) {
19
- const activeBlock = findActiveBlock([...(intersectionsMapRef.current || [])]);
20
- trackBlock(router, activeBlock);
21
- }
22
- else {
23
- trackBlock(router);
24
- }
16
+ trackBlock(isScrolledEnough() ? findActiveBlock([...(intersectionsMapRef.current || [])]) : undefined);
25
17
  }, 100);
26
18
  scrollTarget.addEventListener('scroll', handleScroll);
27
19
  return () => {
28
20
  handleScroll.dispose();
29
21
  scrollTarget.removeEventListener('scroll', handleScroll);
30
22
  };
31
- }, [router, scrollTarget]);
23
+ }, [scrollTarget]);
32
24
  }
33
25
  //# sourceMappingURL=useBlockRouterProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBlockRouterProvider.js","sourceRoot":"","sources":["../../../src/services/BlockRouter/useBlockRouterProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAErF,MAAM,UAAU,sBAAsB,CAAC,eAA4B,UAAU;IAC3E,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,mBAAmB,GAAG,MAAM,CAA2C,IAAI,GAAG,EAAE,CAAC,CAAC;IAExF,SAAS,CACP,GAAG,EAAE,CACH,mBAAmB,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;QACxE,IAAI,mBAAmB,CAAC,OAAO,EAAE;YAC/B,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;SACtD;IACH,CAAC,CAAC,EACJ,EAAE,CACH,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE;YACjC,IAAI,gBAAgB,EAAE,EAAE;gBACtB,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC9E,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;aACjC;iBAAM;gBACL,UAAU,CAAC,MAAM,CAAC,CAAC;aACpB;QACH,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEtD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,EAAE,CAAC;YACvB,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"useBlockRouterProvider.js","sourceRoot":"","sources":["../../../src/services/BlockRouter/useBlockRouterProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAErF,MAAM,UAAU,sBAAsB,CAAC,eAA4B,UAAU;IAC3E,MAAM,mBAAmB,GAAG,MAAM,CAA2C,IAAI,GAAG,EAAE,CAAC,CAAC;IAExF,SAAS,CACP,GAAG,EAAE,CACH,mBAAmB,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;QACxE,IAAI,mBAAmB,CAAC,OAAO,EAAE;YAC/B,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;SACtD;IACH,CAAC,CAAC,EACJ,EAAE,CACH,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE;YACjC,UAAU,CACR,gBAAgB,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAC3F,CAAC;QACJ,CAAC,EAAE,GAAG,CAAC,CAAC;QAER,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAEtD,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,OAAO,EAAE,CAAC;YACvB,YAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAC3D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;AACrB,CAAC"}
@@ -3,10 +3,11 @@ import { useEffect, useState } from 'react';
3
3
  import { handlerDecorator } from './hooks/handlerDecorator.js';
4
4
  import { useRouter } from './hooks/useRouter.js';
5
5
  import { projectSettings } from './ProjectSettings.js';
6
+ import { joinPath } from './utils/url.js';
6
7
  import wlc from './wlc.json.js';
7
8
  projectSettings.setup(wlc);
8
9
  useRouter.setup(() => {
9
- const [href, setHref] = useState(`${globalThis.location.origin}${projectSettings.BASE_PATH}cards-credit`);
10
+ const [href, setHref] = useState(joinPath(globalThis.location.origin, projectSettings.BASE_PATH, 'cards-credit'));
10
11
  useEffect(() => {
11
12
  const handleHistoryChange = () => {
12
13
  setHref(globalThis.location.href);
@@ -18,9 +19,7 @@ useRouter.setup(() => {
18
19
  }, []);
19
20
  return {
20
21
  href,
21
- pathname: projectSettings.BASE_PATH
22
- ? new URL(href).pathname.substring(projectSettings.BASE_PATH.length - 1)
23
- : '',
22
+ pathname: new URL(href).pathname.substring(projectSettings.BASE_PATH ? projectSettings.BASE_PATH.length - 1 : 0),
24
23
  query: {},
25
24
  push: (url) => {
26
25
  globalThis.history.pushState(null, '', url);
@@ -1 +1 @@
1
- {"version":3,"file":"setup-fixture.js","sourceRoot":"","sources":["../src/setup-fixture.ts"],"names":[],"mappings":"AAAA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE3B,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;IACnB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAC9B,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,SAAS,cAAc,CACxE,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAE7D,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,eAAe,CAAC,SAAS;YACjC,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACxE,CAAC,CAAC,EAAE;QACN,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;YACvB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;IAC9C,EAAE,CAAC,cAAc,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"setup-fixture.js","sourceRoot":"","sources":["../src/setup-fixture.ts"],"names":[],"mappings":"AAAA,OAAO,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE3B,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;IACnB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAC9B,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,EAAE,cAAc,CAAC,CAChF,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,mBAAmB,GAAG,GAAG,EAAE;YAC/B,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC;QAEF,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAE7D,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAClE,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,IAAI;QACJ,QAAQ,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CACxC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CACrE;QACD,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE;YACpB,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE;YACvB,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,gBAAgB,CAAC,KAAK,CAAC,CAAC,OAAO,EAAO,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE;IAC9C,EAAE,CAAC,cAAc,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAC;AACd,CAAC,CAAC,CAAC"}
@@ -17,8 +17,9 @@ export const BlockWrapper = JSX(({ className = '', version = 'primary', block, t
17
17
  const [isVisible, setVisible] = useState(true);
18
18
  useEffect(() => defaultEventBus.subscribe('tab', (event) => {
19
19
  if (event.type === 'group') {
20
- const hasSettings = block?.labels?.length || block?.anchor;
21
- setVisible(event.label ? !hasSettings || Boolean(block?.labels?.includes(event.label)) : true);
20
+ setVisible(!block?.labels?.length ||
21
+ !event.label ||
22
+ Boolean(block?.labels?.includes(event.label)));
22
23
  }
23
24
  else {
24
25
  setVisible(true);
@@ -1 +1 @@
1
- {"version":3,"file":"BlockWrapper.js","sourceRoot":"","sources":["../../src/ui-kit/BlockWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAOvC,MAAM,CAAC,MAAM,WAAW,GAAiC;IACvD,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,4BAA4B;IACvC,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,kCAAkC;IAC/C,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAC7B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,MAAM,GAAG,GAAQ,GAAG,CAAC;IAErB,MAAM,GAAG,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,SAAS,CACP,GAAG,EAAE,CACH,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,MAAM,WAAW,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,CAAC;YAC3D,UAAU,CACR,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACnF,CAAC;SACH;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;IACH,CAAC,CAAC,EACJ,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,SAAS,CAAC,CAAC,CAAC,CACjB,KAAC,GAAG,IACF,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,KACtD,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpD,IAAI,EAAE,IAAI,YAET,QAAQ,GACL,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"BlockWrapper.js","sourceRoot":"","sources":["../../src/ui-kit/BlockWrapper.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC;AACpG,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAOvC,MAAM,CAAC,MAAM,WAAW,GAAiC;IACvD,OAAO,EAAE,4BAA4B;IACrC,SAAS,EAAE,4BAA4B;IACvC,IAAI,EAAE,mCAAmC;IACzC,WAAW,EAAE,kCAAkC;IAC/C,EAAE,EAAE,EAAE;CACP,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAC7B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,MAAM,GAAG,GAAQ,GAAG,CAAC;IAErB,MAAM,GAAG,GAAG,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAEhD,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,SAAS,CACP,GAAG,EAAE,CACH,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;YAC1B,UAAU,CACR,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM;gBACpB,CAAC,KAAK,CAAC,KAAK;gBACZ,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAChD,CAAC;SACH;aAAM;YACL,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;IACH,CAAC,CAAC,EACJ,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,SAAS,CAAC,CAAC,CAAC,CACjB,KAAC,GAAG,IACF,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,KACtD,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KACxC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpD,IAAI,EAAE,IAAI,YAET,QAAQ,GACL,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC"}
@@ -1,7 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
+ import { useRouter } from '../../hooks/useRouter.js';
3
4
  import { projectSettings } from '../../ProjectSettings.js';
5
+ import { adjustHref } from '../../utils/adjustHref.js';
4
6
  import { style } from '../../utils/style.js';
7
+ import { joinPath } from '../../utils/url.js';
5
8
  const svgUseStyleMap = {
6
9
  normal: '',
7
10
  color: 'text-primary-main',
@@ -9,7 +12,8 @@ const svgUseStyleMap = {
9
12
  white: 'text-black',
10
13
  };
11
14
  export const Icon = JSX(({ className = '', imageClassName = '', name = '', alt = `Иконка ${name}`, title = alt, iconVersion = 'color', asSVG, ...imgProps }) => {
12
- const href = `${projectSettings.CDN || ''}icons/${name}.svg`;
15
+ const router = useRouter();
16
+ const href = adjustHref(router)(joinPath(projectSettings.CDN, '/icons', `${name}.svg`));
13
17
  if (asSVG && iconVersion !== 'normal') {
14
18
  return (_jsx(Background, { className: className, children: _jsxs("svg", { className: style(getSvgSize(imgProps.width), svgUseStyleMap[iconVersion], iconVersion === 'white' ? 'invert' : '', imageClassName), ...imgProps, "aria-hidden": "true", children: [title ? _jsx("title", { children: title }) : null, alt ? _jsx("desc", { children: alt }) : null, _jsx("use", { href: `${href}#icon`, xlinkHref: `${href}#icon` })] }) }));
15
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../src/ui-kit/Icon/Icon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,MAAM,cAAc,GAAgC;IAClD,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CACrB,CAAC,EACC,SAAS,GAAG,EAAE,EACd,cAAc,GAAG,EAAE,EACnB,IAAI,GAAG,EAAE,EACT,GAAG,GAAG,UAAU,IAAI,EAAE,EACtB,KAAK,GAAG,GAAG,EACX,WAAW,GAAG,OAAO,EACrB,KAAK,EACL,GAAG,QAAQ,EACZ,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,GAAG,eAAe,CAAC,GAAG,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC;IAE7D,IAAI,KAAK,IAAI,WAAW,KAAK,QAAQ,EAAE;QACrC,OAAO,CACL,KAAC,UAAU,IAAC,SAAS,EAAE,SAAS,YAC9B,eACE,SAAS,EAAE,KAAK,CACd,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC1B,cAAc,CAAC,WAAW,CAAC,EAC3B,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EACvC,cAAc,CACf,KACG,QAAQ,iBACA,MAAM,aAEjB,KAAK,CAAC,CAAC,CAAC,0BAAQ,KAAK,GAAS,CAAC,CAAC,CAAC,IAAI,EACrC,GAAG,CAAC,CAAC,CAAC,yBAAO,GAAG,GAAQ,CAAC,CAAC,CAAC,IAAI,EAChC,cAAK,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,OAAO,GAAI,IACpD,GACK,CACd,CAAC;KACH;IAED,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,KACR,QAAQ,iBACA,MAAM,GAClB,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;AAEtE,MAAM,UAAU,GAAG,GAAG,CAAyB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CACzE,SAAS,CAAC,CAAC,CAAC,cAAK,SAAS,EAAE,SAAS,YAAG,QAAQ,GAAO,CAAC,CAAC,CAAC,QAAQ,CACnE,CAAC"}
1
+ {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../../src/ui-kit/Icon/Icon.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG3C,MAAM,cAAc,GAAgC;IAClD,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;CACpB,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CACrB,CAAC,EACC,SAAS,GAAG,EAAE,EACd,cAAc,GAAG,EAAE,EACnB,IAAI,GAAG,EAAE,EACT,GAAG,GAAG,UAAU,IAAI,EAAE,EACtB,KAAK,GAAG,GAAG,EACX,WAAW,GAAG,OAAO,EACrB,KAAK,EACL,GAAG,QAAQ,EACZ,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC;IAExF,IAAI,KAAK,IAAI,WAAW,KAAK,QAAQ,EAAE;QACrC,OAAO,CACL,KAAC,UAAU,IAAC,SAAS,EAAE,SAAS,YAC9B,eACE,SAAS,EAAE,KAAK,CACd,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC1B,cAAc,CAAC,WAAW,CAAC,EAC3B,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EACvC,cAAc,CACf,KACG,QAAQ,iBACA,MAAM,aAEjB,KAAK,CAAC,CAAC,CAAC,0BAAQ,KAAK,GAAS,CAAC,CAAC,CAAC,IAAI,EACrC,GAAG,CAAC,CAAC,CAAC,yBAAO,GAAG,GAAQ,CAAC,CAAC,CAAC,IAAI,EAChC,cAAK,IAAI,EAAE,GAAG,IAAI,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,OAAO,GAAI,IACpD,GACK,CACd,CAAC;KACH;IAED,OAAO,CACL,cACE,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,KACR,QAAQ,iBACA,MAAM,GAClB,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAc,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;AAEtE,MAAM,UAAU,GAAG,GAAG,CAAyB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CACzE,SAAS,CAAC,CAAC,CAAC,cAAK,SAAS,EAAE,SAAS,YAAG,QAAQ,GAAO,CAAC,CAAC,CAAC,QAAQ,CACnE,CAAC"}
@@ -1,4 +1,2 @@
1
- import type { ImgSource } from '../../model/Picture';
2
1
  import type { ImageProps } from './ImgProps';
3
2
  export declare const ImgAsPicture: import("@redneckz/uni-jsx").UNIComponent<ImageProps, any, any>;
4
- export declare function formatToMimeType(format: ImgSource['format']): string | undefined;
@@ -1,21 +1,20 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
- const sourcesComparator = (a, b) => {
4
- if (a.media && b.media) {
5
- return a.media - b.media;
6
- }
7
- return 0;
8
- };
3
+ import { useRouter } from '../../hooks/useRouter.js';
4
+ import { adjustHref } from '../../utils/adjustHref.js';
5
+ import { isURL, joinPath } from '../../utils/url.js';
6
+ const sourcesComparator = (a, b) => a?.media && b?.media ? a.media - b.media : 0;
9
7
  export const ImgAsPicture = JSX(({ className = '', image, imageClassName = '', isMobile = false, pathPrefix }) => {
10
- if (!image || (!image?.sources && !image?.src)) {
11
- return null;
12
- }
8
+ const router = useRouter();
13
9
  const pictureStyles = isMobile ? 'flex' : 'flex-none';
14
10
  return (_jsxs("picture", { className: `${pictureStyles} ${className}`, children: [image?.sources?.length
15
11
  ? image.sources
12
+ .filter((_) => _?.src)
16
13
  .sort(sourcesComparator)
17
- .map(({ src, format, media }, index) => (_jsx("source", { srcSet: addPathPrefixToSrcSet(src, pathPrefix), type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...image.size }, `${index}_${src}`)))
18
- : null, renderImg({ ...image, src: addPathPrefixToSrc(image.src, pathPrefix) }, imageClassName, isMobile)] }));
14
+ .map(({ src, format, media }, index) => (_jsx("source", { srcSet: adjustSrcset(router, pathPrefix)(src), type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...image.size }, `${index}_${src}`)))
15
+ : null, image?.src
16
+ ? renderImg({ ...image, src: adjustSrcset(router, pathPrefix)(image.src) }, imageClassName, isMobile)
17
+ : null] }));
19
18
  });
20
19
  const renderImg = (image, imageClassName = '', isMobile = false) => {
21
20
  const style = {
@@ -27,13 +26,12 @@ const renderImg = (image, imageClassName = '', isMobile = false) => {
27
26
  const imgStyle = isMobile ? 'm-auto' : 'm-0';
28
27
  return (_jsx("img", { src: image.src, className: `${imgStyle} ${imageClassName}`, alt: alt, title: title, style: style, ...image.size }));
29
28
  };
30
- const normalizePathPrefix = (pathPrefix = '') => pathPrefix && !pathPrefix.endsWith('/') ? `${pathPrefix}/` : pathPrefix;
31
- const addPathPrefixToSrc = (src, pathPrefix) => !src || src?.startsWith('data:image') ? src : `${normalizePathPrefix(pathPrefix)}${src}`;
32
- const addPathPrefixToSrcSet = (srcset, pathPrefix) => srcset
33
- ?.split(',')
34
- .map((src) => addPathPrefixToSrc(src.trim(), pathPrefix))
29
+ const adjustSrcset = (router, pathPrefix) => (srcset) => srcset
30
+ ?.split(/\s*,\s*/)
31
+ .map((src) => src.trim())
32
+ .filter(Boolean)
33
+ .map((src) => (isURL(src) ? src : joinPath(pathPrefix, src)))
34
+ .map(adjustHref(router))
35
35
  .join(', ');
36
- export function formatToMimeType(format) {
37
- return format ? `image/${String(format)}` : undefined;
38
- }
36
+ const formatToMimeType = (format) => format ? `image/${String(format)}` : undefined;
39
37
  //# sourceMappingURL=ImgAsPicture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImgAsPicture.js","sourceRoot":"","sources":["../../../src/ui-kit/Img/ImgAsPicture.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAIxC,MAAM,iBAAiB,GAAG,CAAC,CAAU,EAAE,CAAU,EAAE,EAAE;IACnD,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE;QACtB,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;KAC1B;IAED,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAC7B,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;IAC/E,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;QAC9C,OAAO,IAAI,CAAC;KACb;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;IAEtD,OAAO,CACL,mBAAS,SAAS,EAAE,GAAG,aAAa,IAAI,SAAS,EAAE,aAChD,KAAK,EAAE,OAAO,EAAE,MAAM;gBACrB,CAAC,CAAC,KAAK,CAAC,OAAO;qBACV,IAAI,CAAC,iBAAiB,CAAC;qBACvB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CACtC,iBAEE,MAAM,EAAE,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,EAC9C,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,EAC9B,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,eAAe,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,KACzC,KAAK,CAAC,IAAI,IAJT,GAAG,KAAK,IAAI,GAAG,EAAE,CAKtB,CACH,CAAC;gBACN,CAAC,CAAC,IAAI,EACP,SAAS,CACR,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAC5D,cAAc,EACd,QAAQ,CACT,IACO,CACX,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAc,EAAE,cAAc,GAAG,EAAE,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE;IAC1E,MAAM,KAAK,GAAG;QACZ,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM;QAC5D,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM;KAChE,CAAC;IAEF,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAE7C,OAAO,CACL,cACE,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,SAAS,EAAE,GAAG,QAAQ,IAAI,cAAc,EAAE,EAC1C,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,KACR,KAAK,CAAC,IAAI,GACd,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,CAC9C,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;AAE1E,MAAM,kBAAkB,GAAG,CAAC,GAAY,EAAE,UAAmB,EAAE,EAAE,CAC/D,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE,CAAC;AAE3F,MAAM,qBAAqB,GAAG,CAAC,MAAe,EAAE,UAAmB,EAAE,EAAE,CACrE,MAAM;IACJ,EAAE,KAAK,CAAC,GAAG,CAAC;KACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,CAAC;KACxD,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhB,MAAM,UAAU,gBAAgB,CAAC,MAA2B;IAC1D,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC"}
1
+ {"version":3,"file":"ImgAsPicture.js","sourceRoot":"","sources":["../../../src/ui-kit/Img/ImgAsPicture.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare const adjustHref: (router: {
2
+ pathname: string;
3
+ }) => (href: string | undefined) => string | undefined;
@@ -0,0 +1,11 @@
1
+ import { projectSettings } from '../ProjectSettings.js';
2
+ import { dirname } from './dirname.js';
3
+ import { isURL, joinPath } from './url.js';
4
+ export const adjustHref = (router) => (href) => {
5
+ if (!href || isURL(href) || (projectSettings.CDN && href.startsWith(projectSettings.CDN))) {
6
+ return href;
7
+ }
8
+ const isRelativeToBase = href.startsWith('/');
9
+ return joinPath(projectSettings.BASE_PATH, isRelativeToBase ? '/' : dirname(router.pathname), href);
10
+ };
11
+ //# sourceMappingURL=adjustHref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adjustHref.js","sourceRoot":"","sources":["../../src/utils/adjustHref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAA4B,EAAE,EAAE,CAAC,CAAC,IAAwB,EAAE,EAAE;IACvF,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE;QACzF,OAAO,IAAI,CAAC;KACb;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAE9C,OAAO,QAAQ,CACb,eAAe,CAAC,SAAS,EACzB,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EACjD,IAAI,CACL,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const dirname: (path: string | undefined) => string | undefined;
@@ -0,0 +1,2 @@
1
+ export const dirname = (path) => path?.split('/').slice(0, -1).join('/');
2
+ //# sourceMappingURL=dirname.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dirname.js","sourceRoot":"","sources":["../../src/utils/dirname.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { Target } from '../model/LinkProps';
2
- export declare const isURL: (href?: string) => href is `${string}//${string}`;
2
+ export declare const isURL: (href?: string) => href is `${string}:${string}`;
3
3
  export declare const isLocalURL: (href: string | undefined, target?: Target) => boolean;
4
4
  export declare const isHash: (href?: string) => href is `#${string}`;
5
5
  export declare const withoutQuery: (href?: string) => string;
6
- export declare const joinPath: (...path: string[]) => string;
6
+ export declare const joinPath: (...path: (string | undefined)[]) => string;
package/lib/utils/url.js CHANGED
@@ -1,4 +1,4 @@
1
- export const isURL = (href) => Boolean(href?.includes('//'));
1
+ export const isURL = (href) => Boolean(href?.includes(':'));
2
2
  export const isLocalURL = (href, target) => Boolean(href && !isURL(href) && (!target || target === '_self'));
3
3
  export const isHash = (href) => Boolean(href?.startsWith('#'));
4
4
  export const withoutQuery = (href) => (href || '').replace(/\?.*/, '').replace(/\/$/, '');
@@ -1 +1 @@
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,CACpD,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAc,EAAU,EAAE,CACpD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAiC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAEpG,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,CACpD,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAG,IAA4B,EAAU,EAAE,CAClE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC"}
package/lib/wlc.json CHANGED
@@ -2,6 +2,5 @@
2
2
  "PROD_BRANCH": "master",
3
3
  "FORCED_DRAFT_FLOW": false,
4
4
  "YANDEX_MAP_API_KEY": "f4b40c1e-1891-45f2-b307-90c481af210b",
5
- "BASE_PATH": "/natural/",
6
5
  "SITEMAP": "sayt-rshb"
7
6
  }
@@ -81,12 +81,10 @@
81
81
  return this._.FOOTER;
82
82
  }
83
83
  get CDN() {
84
- return this._.CDN;
84
+ return appendSlash(this._.CDN);
85
85
  }
86
86
  get BASE_PATH() {
87
- return this._.BASE_PATH && !this._.BASE_PATH.endsWith('/')
88
- ? `${this._.BASE_PATH}/`
89
- : this._.BASE_PATH;
87
+ return appendSlash(this._.BASE_PATH);
90
88
  }
91
89
  get YANDEX_MAP_API_KEY() {
92
90
  return this._.YANDEX_MAP_API_KEY;
@@ -95,6 +93,7 @@
95
93
  return this._.YANDEX_METRIKA_ID;
96
94
  }
97
95
  })();
96
+ const appendSlash = (url) => (url && !url.endsWith('/') ? `${url}/` : url);
98
97
 
99
98
  const AUTH_PREFIX = 'guest';
100
99
  const STORAGE_KEY = 'likesToken';
@@ -363,8 +362,9 @@
363
362
  const [isVisible, setVisible] = useState(true);
364
363
  useEffect(() => defaultEventBus.subscribe('tab', (event) => {
365
364
  if (event.type === 'group') {
366
- const hasSettings = block?.labels?.length || block?.anchor;
367
- setVisible(event.label ? !hasSettings || Boolean(block?.labels?.includes(event.label)) : true);
365
+ setVisible(!block?.labels?.length ||
366
+ !event.label ||
367
+ Boolean(block?.labels?.includes(event.label)));
368
368
  }
369
369
  else {
370
370
  setVisible(true);
@@ -425,6 +425,49 @@
425
425
  return (jsx("div", { ref: containerRef, className: `transition-max-h duration-300 overflow-hidden ${containerRef.current || !isUnfolded ? 'max-h-0' : ''} ${className}`, children: children }));
426
426
  });
427
427
 
428
+ function useRouter() {
429
+ return useRouter._impl();
430
+ }
431
+ useRouter._impl = () => ({
432
+ href: globalThis.location?.href || '/',
433
+ pathname: globalThis.location?.pathname || '/',
434
+ query: {},
435
+ push: () => {
436
+ // Do nothing
437
+ },
438
+ replace: () => {
439
+ // Do nothing
440
+ },
441
+ });
442
+ useRouter.setup = (impl) => {
443
+ useRouter._impl = impl;
444
+ };
445
+
446
+ const dirname = (path) => path?.split('/').slice(0, -1).join('/');
447
+
448
+ const isURL = (href) => Boolean(href?.includes(':'));
449
+ const isLocalURL = (href, target) => Boolean(href && !isURL(href) && (!target || target === '_self'));
450
+ const isHash = (href) => Boolean(href?.startsWith('#'));
451
+ const withoutQuery = (href) => (href || '').replace(/\?.*/, '').replace(/\/$/, '');
452
+ const joinPath = (...path) => path.filter(Boolean).join('/').replace(/\/+/g, '/');
453
+
454
+ var url = /*#__PURE__*/Object.freeze({
455
+ __proto__: null,
456
+ isURL: isURL,
457
+ isLocalURL: isLocalURL,
458
+ isHash: isHash,
459
+ withoutQuery: withoutQuery,
460
+ joinPath: joinPath
461
+ });
462
+
463
+ const adjustHref = (router) => (href) => {
464
+ if (!href || isURL(href) || (projectSettings.CDN && href.startsWith(projectSettings.CDN))) {
465
+ return href;
466
+ }
467
+ const isRelativeToBase = href.startsWith('/');
468
+ return joinPath(projectSettings.BASE_PATH, isRelativeToBase ? '/' : dirname(router.pathname), href);
469
+ };
470
+
428
471
  const svgUseStyleMap = {
429
472
  normal: '',
430
473
  color: 'text-primary-main',
@@ -432,7 +475,8 @@
432
475
  white: 'text-black',
433
476
  };
434
477
  const Icon = JSX(({ className = '', imageClassName = '', name = '', alt = `Иконка ${name}`, title = alt, iconVersion = 'color', asSVG, ...imgProps }) => {
435
- const href = `${projectSettings.CDN || ''}icons/${name}.svg`;
478
+ const router = useRouter();
479
+ const href = adjustHref(router)(joinPath(projectSettings.CDN, '/icons', `${name}.svg`));
436
480
  if (asSVG && iconVersion !== 'normal') {
437
481
  return (jsx(Background, { className: className, children: jsxs("svg", { className: style(getSvgSize(imgProps.width), svgUseStyleMap[iconVersion], iconVersion === 'white' ? 'invert' : '', imageClassName), ...imgProps, "aria-hidden": "true", children: [title ? jsx("title", { children: title }) : null, alt ? jsx("desc", { children: alt }) : null, jsx("use", { href: `${href}#icon`, xlinkHref: `${href}#icon` })] }) }));
438
482
  }
@@ -441,22 +485,18 @@
441
485
  const getSvgSize = (width) => (width ? '' : 'w-full h-full');
442
486
  const Background = JSX(({ className, children }) => className ? jsx("div", { className: className, children: children }) : children);
443
487
 
444
- const sourcesComparator = (a, b) => {
445
- if (a.media && b.media) {
446
- return a.media - b.media;
447
- }
448
- return 0;
449
- };
488
+ const sourcesComparator = (a, b) => a?.media && b?.media ? a.media - b.media : 0;
450
489
  const ImgAsPicture = JSX(({ className = '', image, imageClassName = '', isMobile = false, pathPrefix }) => {
451
- if (!image || (!image?.sources && !image?.src)) {
452
- return null;
453
- }
490
+ const router = useRouter();
454
491
  const pictureStyles = isMobile ? 'flex' : 'flex-none';
455
492
  return (jsxs("picture", { className: `${pictureStyles} ${className}`, children: [image?.sources?.length
456
493
  ? image.sources
494
+ .filter((_) => _?.src)
457
495
  .sort(sourcesComparator)
458
- .map(({ src, format, media }, index) => (jsx("source", { srcSet: addPathPrefixToSrcSet(src, pathPrefix), type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...image.size }, `${index}_${src}`)))
459
- : null, renderImg({ ...image, src: addPathPrefixToSrc(image.src, pathPrefix) }, imageClassName, isMobile)] }));
496
+ .map(({ src, format, media }, index) => (jsx("source", { srcSet: adjustSrcset(router, pathPrefix)(src), type: formatToMimeType(format), media: media ? `(max-width: ${media}px)` : '', ...image.size }, `${index}_${src}`)))
497
+ : null, image?.src
498
+ ? renderImg({ ...image, src: adjustSrcset(router, pathPrefix)(image.src) }, imageClassName, isMobile)
499
+ : null] }));
460
500
  });
461
501
  const renderImg = (image, imageClassName = '', isMobile = false) => {
462
502
  const style = {
@@ -468,15 +508,14 @@
468
508
  const imgStyle = isMobile ? 'm-auto' : 'm-0';
469
509
  return (jsx("img", { src: image.src, className: `${imgStyle} ${imageClassName}`, alt: alt, title: title, style: style, ...image.size }));
470
510
  };
471
- const normalizePathPrefix = (pathPrefix = '') => pathPrefix && !pathPrefix.endsWith('/') ? `${pathPrefix}/` : pathPrefix;
472
- const addPathPrefixToSrc = (src, pathPrefix) => !src || src?.startsWith('data:image') ? src : `${normalizePathPrefix(pathPrefix)}${src}`;
473
- const addPathPrefixToSrcSet = (srcset, pathPrefix) => srcset
474
- ?.split(',')
475
- .map((src) => addPathPrefixToSrc(src.trim(), pathPrefix))
511
+ const adjustSrcset = (router, pathPrefix) => (srcset) => srcset
512
+ ?.split(/\s*,\s*/)
513
+ .map((src) => src.trim())
514
+ .filter(Boolean)
515
+ .map((src) => (isURL(src) ? src : joinPath(pathPrefix, src)))
516
+ .map(adjustHref(router))
476
517
  .join(', ');
477
- function formatToMimeType(format) {
478
- return format ? `image/${String(format)}` : undefined;
479
- }
518
+ const formatToMimeType = (format) => format ? `image/${String(format)}` : undefined;
480
519
 
481
520
  const ImgInner = JSX(({ className = '', image, imageClassName = '', isMobile, pathPrefix, ...iconProps }) => {
482
521
  if (!image?.src && !image?.icon) {
@@ -666,31 +705,6 @@
666
705
  return (jsxs("div", { className: style(className, listType === 'vertical-list' ? 'relative h-full' : ''), children: [jsx(SwipeListContainer, { containerRef: containerRef, activeIndex: activeIndex, visibleItemCount: 1, gap: gap, padding: padding, onVisibleIndicesChange: scroll.handleVisibleIndicesChange, listType: listType, children: children }), showDots ? (jsx(SwipeListControlDots, { containerRef: containerRef, activeIndex: activeIndex, dotCount: itemCount, listType: listType })) : null] }));
667
706
  });
668
707
 
669
- const normalizeAnchor = (anchor) => anchor?.replace('#', '') || '';
670
- function gotoBlock(router, anchor) {
671
- router.replace(`#${normalizeAnchor(anchor)}`);
672
- }
673
- function trackBlock(router, block) {
674
- router.replace(`#${normalizeAnchor(block?.anchor)}`, undefined, {
675
- scroll: false,
676
- });
677
- }
678
-
679
- const isURL = (href) => Boolean(href?.includes('//'));
680
- const isLocalURL = (href, target) => Boolean(href && !isURL(href) && (!target || target === '_self'));
681
- const isHash = (href) => Boolean(href?.startsWith('#'));
682
- const withoutQuery = (href) => (href || '').replace(/\?.*/, '').replace(/\/$/, '');
683
- const joinPath = (...path) => path.filter(Boolean).join('/').replace(/\/+/g, '/');
684
-
685
- var url = /*#__PURE__*/Object.freeze({
686
- __proto__: null,
687
- isURL: isURL,
688
- isLocalURL: isLocalURL,
689
- isHash: isHash,
690
- withoutQuery: withoutQuery,
691
- joinPath: joinPath
692
- });
693
-
694
708
  /* eslint-disable @typescript-eslint/ban-types */
695
709
  const handlerDecorator = (handler, targetContent) => {
696
710
  return handlerDecorator._impl(handler, targetContent);
@@ -700,53 +714,24 @@
700
714
  handlerDecorator._impl = impl;
701
715
  };
702
716
 
703
- function useRouter() {
704
- return useRouter._impl();
705
- }
706
- useRouter._impl = () => ({
707
- href: globalThis.location?.href || '/',
708
- pathname: globalThis.location?.pathname || '/',
709
- query: {},
710
- push: () => {
711
- // Do nothing
712
- },
713
- replace: () => {
714
- // Do nothing
715
- },
716
- });
717
- useRouter.setup = (impl) => {
718
- useRouter._impl = impl;
719
- };
720
-
721
717
  function useLink(isRemote) {
722
718
  const router = useRouter();
723
719
  return (props) => ({
724
720
  ...props,
725
- href: adjustHref(props.href),
721
+ href: isRemote ? props.href : adjustHref(router)(props.href),
726
722
  'aria-label': props.text,
727
723
  onClick: handlerDecorator(handleHref(props), props),
728
724
  });
729
- function adjustHref(href) {
730
- const isRelativeToBase = !isRemote && href?.startsWith('/');
731
- return projectSettings.BASE_PATH && href && isRelativeToBase
732
- ? joinPath(projectSettings.BASE_PATH, href)
733
- : href;
734
- }
735
725
  function handleHref({ href, target, onClick }) {
736
726
  return (ev) => {
737
727
  onClick && onClick(ev);
738
- if (isRemote || !isLocalURL(href, target)) {
728
+ if (!href || isRemote || !isLocalURL(href, target)) {
739
729
  // Default routing
740
730
  return;
741
731
  }
742
732
  // Client routing
743
733
  ev?.preventDefault();
744
- if (isHash(href)) {
745
- gotoBlock(router, href);
746
- }
747
- else if (href) {
748
- router.push(href);
749
- }
734
+ router.push(href);
750
735
  };
751
736
  }
752
737
  }
@@ -1608,6 +1593,14 @@
1608
1593
  return debouncedCallback;
1609
1594
  };
1610
1595
 
1596
+ const normalizeAnchor = (anchor) => anchor?.replace('#', '') || '';
1597
+ function trackBlock(block) {
1598
+ const hash = `#${normalizeAnchor(block?.anchor)}`;
1599
+ if (globalThis.location?.hash !== hash) {
1600
+ globalThis.history?.replaceState(globalThis.history?.state, '', hash);
1601
+ }
1602
+ }
1603
+
1611
1604
  const SPECIAL_BLOCK_TYPES = ['Header', 'Footer'];
1612
1605
  const EPS = 0.01;
1613
1606
  const topLineDelta = ([, { target }]) => Math.abs(target.getBoundingClientRect().top);
@@ -1621,7 +1614,6 @@
1621
1614
 
1622
1615
  const isScrolledEnough = () => globalThis.scrollY > (globalThis.innerHeight * 3) / 4;
1623
1616
  function useBlockRouterProvider(scrollTarget = globalThis) {
1624
- const router = useRouter();
1625
1617
  const intersectionsMapRef = useRef(new Map());
1626
1618
  useEffect(() => blockRouterEventBus.subscribe('intersection', ({ block, intersection }) => {
1627
1619
  if (intersectionsMapRef.current) {
@@ -1630,20 +1622,14 @@
1630
1622
  }), []);
1631
1623
  useEffect(() => {
1632
1624
  const handleScroll = debounce(() => {
1633
- if (isScrolledEnough()) {
1634
- const activeBlock = findActiveBlock([...(intersectionsMapRef.current || [])]);
1635
- trackBlock(router, activeBlock);
1636
- }
1637
- else {
1638
- trackBlock(router);
1639
- }
1625
+ trackBlock(isScrolledEnough() ? findActiveBlock([...(intersectionsMapRef.current || [])]) : undefined);
1640
1626
  }, 100);
1641
1627
  scrollTarget.addEventListener('scroll', handleScroll);
1642
1628
  return () => {
1643
1629
  handleScroll.dispose();
1644
1630
  scrollTarget.removeEventListener('scroll', handleScroll);
1645
1631
  };
1646
- }, [router, scrollTarget]);
1632
+ }, [scrollTarget]);
1647
1633
  }
1648
1634
 
1649
1635
  const api = LikeAPI();
@@ -1718,7 +1704,7 @@
1718
1704
  return (list) => list.reduce((acc, el, i) => (acc.length ? acc.concat({ ...sep, key: i }, el) : [el]), []);
1719
1705
  }
1720
1706
 
1721
- const packageVersion = "0.8.10";
1707
+ const packageVersion = "0.8.12";
1722
1708
 
1723
1709
  exports.Blocks = Blocks;
1724
1710
  exports.ContentPage = ContentPage;