@redneckz/wildless-cms-uni-blocks 0.2.28 → 0.2.32

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 (152) hide show
  1. package/dist/Blocks.d.ts +2 -3
  2. package/dist/Blocks.js +4 -6
  3. package/dist/Blocks.js.map +1 -1
  4. package/dist/ContentPage.js +4 -4
  5. package/dist/ContentPage.js.map +1 -1
  6. package/dist/ContentPageContext.d.ts +2 -0
  7. package/dist/Header/Header.d.ts +7 -0
  8. package/dist/Header/Header.js +24 -0
  9. package/dist/Header/Header.js.map +1 -0
  10. package/dist/Header/HeaderContent.d.ts +9 -0
  11. package/dist/Header/HeaderContent.js +2 -0
  12. package/dist/Header/HeaderContent.js.map +1 -0
  13. package/dist/Header/HeaderSecondaryMenu.d.ts +6 -0
  14. package/dist/Header/HeaderSecondaryMenu.js +11 -0
  15. package/dist/Header/HeaderSecondaryMenu.js.map +1 -0
  16. package/dist/Header/HeaderSecondaryMenuButton.d.ts +5 -0
  17. package/dist/Header/HeaderSecondaryMenuButton.js +6 -0
  18. package/dist/Header/HeaderSecondaryMenuButton.js.map +1 -0
  19. package/dist/Header/index.d.ts +3 -0
  20. package/dist/Header/index.js +5 -0
  21. package/dist/Header/index.js.map +1 -0
  22. package/dist/Header/isSubItemActive.d.ts +3 -0
  23. package/dist/Header/isSubItemActive.js +10 -0
  24. package/dist/Header/isSubItemActive.js.map +1 -0
  25. package/dist/Header/isTopItemActive.d.ts +3 -0
  26. package/dist/Header/isTopItemActive.js +14 -0
  27. package/dist/Header/isTopItemActive.js.map +1 -0
  28. package/dist/Header/mergeTopItems.d.ts +2 -0
  29. package/dist/Header/mergeTopItems.js +10 -0
  30. package/dist/Header/mergeTopItems.js.map +1 -0
  31. package/dist/Icons.d.ts +11 -2
  32. package/dist/Icons.js +19 -7
  33. package/dist/Icons.js.map +1 -1
  34. package/dist/Img.js +2 -2
  35. package/dist/Img.js.map +1 -1
  36. package/dist/LikeControl.js +1 -1
  37. package/dist/LikeControl.js.map +1 -1
  38. package/dist/ProductTile.d.ts +25 -0
  39. package/dist/ProductTile.js +27 -0
  40. package/dist/ProductTile.js.map +1 -0
  41. package/dist/types.d.ts +6 -3
  42. package/dist/ui-kit/BlockItem.d.ts +3 -0
  43. package/dist/ui-kit/BlockItem.js +10 -2
  44. package/dist/ui-kit/BlockItem.js.map +1 -1
  45. package/dist/ui-kit/Breadcrumb.d.ts +6 -0
  46. package/dist/ui-kit/Breadcrumb.js +13 -0
  47. package/dist/ui-kit/Breadcrumb.js.map +1 -0
  48. package/dist/ui-kit/Button.d.ts +5 -0
  49. package/dist/ui-kit/Button.js +18 -0
  50. package/dist/ui-kit/Button.js.map +1 -1
  51. package/dist/ui-kit/HeaderItem.js +2 -3
  52. package/dist/ui-kit/HeaderItem.js.map +1 -1
  53. package/dist/ui-kit/Logo.js +1 -1
  54. package/dist/ui-kit/Logo.js.map +1 -1
  55. package/dist/ui-kit/SVG.d.ts +10 -4
  56. package/dist/ui-kit/SVG.js +2 -2
  57. package/dist/ui-kit/SVG.js.map +1 -1
  58. package/dist/ui-kit/TopItem.d.ts +1 -0
  59. package/dist/ui-kit/TopItem.js +4 -4
  60. package/dist/ui-kit/TopItem.js.map +1 -1
  61. package/dist/utils/url.d.ts +2 -0
  62. package/dist/utils/url.js +7 -0
  63. package/dist/utils/url.js.map +1 -0
  64. package/lib/Blocks.d.ts +2 -3
  65. package/lib/Blocks.js +3 -5
  66. package/lib/Blocks.js.map +1 -1
  67. package/lib/ContentPage.js +4 -4
  68. package/lib/ContentPage.js.map +1 -1
  69. package/lib/ContentPageContext.d.ts +2 -0
  70. package/lib/Header/Header.d.ts +7 -0
  71. package/lib/Header/Header.js +22 -0
  72. package/lib/Header/Header.js.map +1 -0
  73. package/lib/Header/HeaderContent.d.ts +9 -0
  74. package/lib/Header/HeaderContent.js +2 -0
  75. package/lib/Header/HeaderContent.js.map +1 -0
  76. package/lib/Header/HeaderSecondaryMenu.d.ts +6 -0
  77. package/lib/Header/HeaderSecondaryMenu.js +9 -0
  78. package/lib/Header/HeaderSecondaryMenu.js.map +1 -0
  79. package/lib/Header/HeaderSecondaryMenuButton.d.ts +5 -0
  80. package/lib/Header/HeaderSecondaryMenuButton.js +4 -0
  81. package/lib/Header/HeaderSecondaryMenuButton.js.map +1 -0
  82. package/lib/Header/index.d.ts +3 -0
  83. package/lib/Header/index.js +2 -0
  84. package/lib/Header/index.js.map +1 -0
  85. package/lib/Header/isSubItemActive.d.ts +3 -0
  86. package/lib/Header/isSubItemActive.js +7 -0
  87. package/lib/Header/isSubItemActive.js.map +1 -0
  88. package/lib/Header/isTopItemActive.d.ts +3 -0
  89. package/lib/Header/isTopItemActive.js +11 -0
  90. package/lib/Header/isTopItemActive.js.map +1 -0
  91. package/lib/Header/mergeTopItems.d.ts +2 -0
  92. package/lib/Header/mergeTopItems.js +7 -0
  93. package/lib/Header/mergeTopItems.js.map +1 -0
  94. package/lib/Icons.d.ts +11 -2
  95. package/lib/Icons.js +11 -5
  96. package/lib/Icons.js.map +1 -1
  97. package/lib/Img.js +2 -2
  98. package/lib/Img.js.map +1 -1
  99. package/lib/LikeControl.js +1 -1
  100. package/lib/LikeControl.js.map +1 -1
  101. package/lib/ProductTile.d.ts +25 -0
  102. package/lib/ProductTile.js +25 -0
  103. package/lib/ProductTile.js.map +1 -0
  104. package/lib/common.css +1 -1
  105. package/lib/types.d.ts +6 -3
  106. package/lib/ui-kit/BlockItem.d.ts +3 -0
  107. package/lib/ui-kit/BlockItem.js +10 -2
  108. package/lib/ui-kit/BlockItem.js.map +1 -1
  109. package/lib/ui-kit/Breadcrumb.d.ts +6 -0
  110. package/lib/ui-kit/Breadcrumb.js +11 -0
  111. package/lib/ui-kit/Breadcrumb.js.map +1 -0
  112. package/lib/ui-kit/Button.d.ts +5 -0
  113. package/lib/ui-kit/Button.js +17 -1
  114. package/lib/ui-kit/Button.js.map +1 -1
  115. package/lib/ui-kit/HeaderItem.js +3 -4
  116. package/lib/ui-kit/HeaderItem.js.map +1 -1
  117. package/lib/ui-kit/Logo.js +1 -1
  118. package/lib/ui-kit/Logo.js.map +1 -1
  119. package/lib/ui-kit/SVG.d.ts +10 -4
  120. package/lib/ui-kit/SVG.js +2 -2
  121. package/lib/ui-kit/SVG.js.map +1 -1
  122. package/lib/ui-kit/TopItem.d.ts +1 -0
  123. package/lib/ui-kit/TopItem.js +4 -4
  124. package/lib/ui-kit/TopItem.js.map +1 -1
  125. package/lib/utils/url.d.ts +2 -0
  126. package/lib/utils/url.js +3 -0
  127. package/lib/utils/url.js.map +1 -0
  128. package/package.json +9 -2
  129. package/dist/Header.d.ts +0 -15
  130. package/dist/Header.js +0 -33
  131. package/dist/Header.js.map +0 -1
  132. package/dist/ProductBlock.d.ts +0 -22
  133. package/dist/ProductBlock.js +0 -17
  134. package/dist/ProductBlock.js.map +0 -1
  135. package/dist/ProductColumnBlock.d.ts +0 -13
  136. package/dist/ProductColumnBlock.js +0 -11
  137. package/dist/ProductColumnBlock.js.map +0 -1
  138. package/dist/ui-kit/PrimaryButton.d.ts +0 -5
  139. package/dist/ui-kit/PrimaryButton.js +0 -8
  140. package/dist/ui-kit/PrimaryButton.js.map +0 -1
  141. package/lib/Header.d.ts +0 -15
  142. package/lib/Header.js +0 -31
  143. package/lib/Header.js.map +0 -1
  144. package/lib/ProductBlock.d.ts +0 -22
  145. package/lib/ProductBlock.js +0 -15
  146. package/lib/ProductBlock.js.map +0 -1
  147. package/lib/ProductColumnBlock.d.ts +0 -13
  148. package/lib/ProductColumnBlock.js +0 -9
  149. package/lib/ProductColumnBlock.js.map +0 -1
  150. package/lib/ui-kit/PrimaryButton.d.ts +0 -5
  151. package/lib/ui-kit/PrimaryButton.js +0 -6
  152. package/lib/ui-kit/PrimaryButton.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ import type { ContentPageContext } from './ContentPageContext';
2
+ import { Icons } from './Icons';
3
+ import { BlockVersion, Picture } from './types';
4
+ import type { ButtonProps } from './ui-kit/Button';
5
+ import { BreadcrumbProps } from './ui-kit/Breadcrumb';
6
+ export interface Benefit {
7
+ label: string;
8
+ description?: string;
9
+ icon?: keyof typeof Icons;
10
+ }
11
+ export interface ProductTileContent {
12
+ title?: string;
13
+ description?: string;
14
+ breadcrumbs?: BreadcrumbProps[];
15
+ image?: Picture;
16
+ benefits?: Benefit[];
17
+ items?: string[];
18
+ buttons?: ButtonProps[];
19
+ }
20
+ export interface ProductTileProps extends ProductTileContent {
21
+ className?: string;
22
+ version?: BlockVersion;
23
+ context: ContentPageContext;
24
+ }
25
+ export declare const ProductTile: (props: import("@redneckz/uni-jsx").PropsWithChildren<ProductTileProps, any>, context?: any) => any;
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
+ import { JSX } from '@redneckz/uni-jsx';
3
+ import { Icons } from './Icons.js';
4
+ import { Img } from './Img.js';
5
+ import { BlockItem } from './ui-kit/BlockItem.js';
6
+ import { Button } from './ui-kit/Button.js';
7
+ import { Breadcrumb } from './ui-kit/Breadcrumb.js';
8
+ import { useLink } from './useLink.js';
9
+ const productBlockStyleMap = {
10
+ primary: 'bg-white text-primary-text',
11
+ secondary: 'bg-brand text-white',
12
+ };
13
+ export const ProductTile = JSX(({ className, context, title, description, breadcrumbs, benefits, buttons, image, items, version = 'primary' }) => {
14
+ return (_jsxs("section", { className: `font-sans p-9 rounded-[40px] flex justify-between items-stretch relative ${className || ''} ${productBlockStyleMap[version]}`, children: [_jsxs("div", { className: "flex flex-col", children: [breadcrumbs?.length ? (_jsx("div", { className: "text-xs mb-6", children: join(_jsx("span", { className: "text-secondary mx-2", children: "/" }))(breadcrumbs.map((breadcrumb, i) => (_jsx(Breadcrumb, { ...useLink(context, { className: 'text-secondary', ...breadcrumb }) }, String(i))))) })) : null, title && (_jsx("h1", { className: "font-medium text-title m-0 whitespace-pre-wrap", children: title })), description && (_jsx("div", { className: "font-normal text-base max-w-[600px] mt-4", children: description })), benefits?.length ? (_jsx("div", { className: "flex gap-6 mt-7", children: benefits.map(renderBenefit) })) : null, items?.length ? (_jsx("section", { className: "space-y-2.5 mt-5", role: "list", children: items.map((_, i) => (_jsx(BlockItem, { text: _, version: version }, String(i)))) })) : null, buttons?.length ? (_jsx("div", { className: "flex mt-auto gap-4", children: buttons.map((button, index) => renderButton(button, index, context)) })) : null] }), image && _jsx(Img, { image: image, className: "absolute bottom-9 right-9" })] }));
15
+ });
16
+ function renderBenefit(benefit, i) {
17
+ return (_jsxs("div", { className: "flex gap-4 items-center", children: [benefit.icon && (_jsx("div", { className: "h-11 w-11 min-w-11 min-h-11 bg-main rounded-full p-[10px] box-border", children: Icons[benefit.icon]() })), _jsxs("div", { className: "flex gap-1 flex-col h-full", children: [_jsx("h4", { className: "font-medium text-xl m-0", children: benefit.label }), benefit.description && (_jsx("div", { className: "font-normal text-sm text-secondary", children: benefit.description }))] })] }, String(i)));
18
+ }
19
+ function renderButton(button, i, context) {
20
+ return button?.text ? (_jsx(Button, { ...useLink(context, button), className: "mt-8", version: button.version }, String(i))) : null;
21
+ }
22
+ function join(sep) {
23
+ return (list) => list.reduce((acc, el) => (acc.length ? acc.concat(sep, el) : [el]), []);
24
+ }
25
+ //# sourceMappingURL=ProductTile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductTile.js","sourceRoot":"","sources":["../src/ProductTile.tsx"],"names":[],"mappings":"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"}
package/lib/common.css CHANGED
@@ -1 +1 @@
1
- .pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.top-4{top:1rem}.right-4{right:1rem}.bottom-0{bottom:0}.right-0{right:0}.col-auto{grid-column:auto}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-7{grid-column:span 7/span 7}.col-span-8{grid-column:span 8/span 8}.col-span-9{grid-column:span 9/span 9}.col-span-10{grid-column:span 10/span 10}.col-span-11{grid-column:span 11/span 11}.col-span-12{grid-column:span 12/span 12}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.col-start-4{grid-column-start:4}.col-start-5{grid-column-start:5}.col-start-6{grid-column-start:6}.col-start-7{grid-column-start:7}.col-start-8{grid-column-start:8}.col-start-9{grid-column-start:9}.col-start-10{grid-column-start:10}.col-start-11{grid-column-start:11}.col-start-12{grid-column-start:12}.col-start-13{grid-column-start:13}.col-start-auto{grid-column-start:auto}.col-end-1{grid-column-end:1}.col-end-2{grid-column-end:2}.col-end-3{grid-column-end:3}.col-end-4{grid-column-end:4}.col-end-5{grid-column-end:5}.col-end-6{grid-column-end:6}.col-end-7{grid-column-end:7}.col-end-8{grid-column-end:8}.col-end-9{grid-column-end:9}.col-end-10{grid-column-end:10}.col-end-11{grid-column-end:11}.col-end-12{grid-column-end:12}.col-end-13{grid-column-end:13}.col-end-auto{grid-column-end:auto}.m-0{margin:0}.mx-3{margin-left:.75rem;margin-right:.75rem}.mr-8{margin-right:2rem}.mt-10{margin-top:2.5rem}.mb-4{margin-bottom:1rem}.mb-7{margin-bottom:1.75rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.ml-2\.5{margin-left:.625rem}.ml-2{margin-left:.5rem}.box-border{box-sizing:border-box}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-8{height:2rem}.h-\[470px\]{height:470px}.h-full{height:100%}.h-11{height:2.75rem}.h-\[2px\]{height:2px}.min-h-11{min-height:2.75rem}.w-full{width:100%}.w-8{width:2rem}.w-\[125px\]{width:125px}.w-11{width:2.75rem}.w-\[36px\]{width:36px}.w-10{width:2.5rem}.min-w-11{min-width:2.75rem}.min-w-\[7px\]{min-width:7px}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-col-resize{cursor:col-resize}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.resize{resize:both}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-5{gap:1.25rem}.gap-3{gap:.75rem}.gap-6{gap:1.5rem}.gap-4{gap:1rem}.gap-1{gap:.25rem}.overflow-hidden{overflow:hidden}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-full{border-radius:9999px}.rounded-\[40px\]{border-radius:40px}.rounded-3xl{border-radius:1.5rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-bl-3xl{border-bottom-left-radius:1.5rem}.rounded-br-3xl{border-bottom-right-radius:1.5rem}.rounded-tl-\[74px\]{border-top-left-radius:74px}.rounded-br-\[40px\]{border-bottom-right-radius:40px}.border{border-width:1px}.border-2{border-width:2px}.border-0{border-width:0}.border-b-2{border-bottom-width:2px}.border-solid{border-style:solid}.border-second-light{--tw-border-opacity:1;border-color:rgb(245 247 249/var(--tw-border-opacity))}.border-transparent{border-color:transparent}.border-brand{--tw-border-opacity:1;border-color:rgb(66 171 68/var(--tw-border-opacity))}.border-b-brand{--tw-border-opacity:1;border-bottom-color:rgb(66 171 68/var(--tw-border-opacity))}.bg-second-light{--tw-bg-opacity:1;background-color:rgb(245 247 249/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-promo,.bg-white{--tw-bg-opacity:1}.bg-promo{background-color:rgb(247 248 197/var(--tw-bg-opacity))}.bg-brand{--tw-bg-opacity:1;background-color:rgb(66 171 68/var(--tw-bg-opacity))}.bg-inherit{background-color:inherit}.p-20{padding:5rem}.p-2{padding:.5rem}.p-11{padding:2.75rem}.p-\[10px\]{padding:10px}.p-8{padding:2rem}.py-8{padding-bottom:2rem;padding-top:2rem}.px-20{padding-left:5rem;padding-right:5rem}.px-12{padding-left:3rem;padding-right:3rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.pt-0{padding-top:0}.pr-0{padding-right:0}.text-center{text-align:center}.font-sans{font-family:Ubuntu,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-title2{font-size:2.5rem;line-height:3rem}.text-base{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-title{font-size:2rem;line-height:2.5rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-bold{font-weight:700}.leading-snug{line-height:1.375}.text-second-primary{--tw-text-opacity:1;color:rgb(125 126 127/var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-brand{color:rgb(66 171 68/var(--tw-text-opacity))}.text-brand,.text-white{--tw-text-opacity:1}.text-white{color:rgb(255 255 255/var(--tw-text-opacity))}.no-underline{-webkit-text-decoration-line:none;text-decoration-line:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.rotate-180{transform:rotate(180deg)}.hover\:text-brand:hover{--tw-text-opacity:1;color:rgb(66 171 68/var(--tw-text-opacity))}
1
+ [data-theme=pc]{--color-primary-main:#42ab44;--color-primary-hover:#248341;--color-primary-active:#245f34;--color-secondary-hover:#c5e2c6;--color-secondary-active:#d8f2d9}[data-theme=bc]{--color-primary-main:#83b83e;--color-primary-hover:#5c921d;--color-primary-active:#3c5e10;--color-secondary-hover:#e8f4d9;--color-secondary-active:#d8e3ca}[data-theme=eo]{--color-primary-main:#ddb63d;--color-primary-hover:#bb9727;--color-primary-active:#7e630c;--color-secondary-hover:#f1ecdd;--color-secondary-active:#e5dec7}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.absolute{position:absolute}.relative{position:relative}.sticky{position:-webkit-sticky;position:sticky}.top-4{top:1rem}.right-4{right:1rem}.bottom-0{bottom:0}.right-0{right:0}.bottom-9{bottom:2.25rem}.right-9{right:2.25rem}.left-0{left:0}.-bottom-2{bottom:-.5rem}.col-auto{grid-column:auto}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-5{grid-column:span 5/span 5}.col-span-6{grid-column:span 6/span 6}.col-span-7{grid-column:span 7/span 7}.col-span-8{grid-column:span 8/span 8}.col-span-9{grid-column:span 9/span 9}.col-span-10{grid-column:span 10/span 10}.col-span-11{grid-column:span 11/span 11}.col-span-12{grid-column:span 12/span 12}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.col-start-4{grid-column-start:4}.col-start-5{grid-column-start:5}.col-start-6{grid-column-start:6}.col-start-7{grid-column-start:7}.col-start-8{grid-column-start:8}.col-start-9{grid-column-start:9}.col-start-10{grid-column-start:10}.col-start-11{grid-column-start:11}.col-start-12{grid-column-start:12}.col-start-13{grid-column-start:13}.col-start-auto{grid-column-start:auto}.col-end-1{grid-column-end:1}.col-end-2{grid-column-end:2}.col-end-3{grid-column-end:3}.col-end-4{grid-column-end:4}.col-end-5{grid-column-end:5}.col-end-6{grid-column-end:6}.col-end-7{grid-column-end:7}.col-end-8{grid-column-end:8}.col-end-9{grid-column-end:9}.col-end-10{grid-column-end:10}.col-end-11{grid-column-end:11}.col-end-12{grid-column-end:12}.col-end-13{grid-column-end:13}.col-end-auto{grid-column-end:auto}.m-0{margin:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mb-6{margin-bottom:1.5rem}.mt-4{margin-top:1rem}.mt-7{margin-top:1.75rem}.mt-5{margin-top:1.25rem}.mt-auto{margin-top:auto}.mt-8{margin-top:2rem}.mt-2{margin-top:.5rem}.mr-8{margin-right:2rem}.ml-auto{margin-left:auto}.mr-5{margin-right:1.25rem}.mr-7{margin-right:1.75rem}.ml-2\.5{margin-left:.625rem}.ml-2{margin-left:.5rem}.box-border{box-sizing:border-box}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.h-8{height:2rem}.h-\[308px\]{height:308px}.h-full{height:100%}.h-11{height:2.75rem}.h-\[1px\]{height:1px}.h-\[8px\]{height:8px}.h-\[2px\]{height:2px}.min-h-11{min-height:2.75rem}.w-full{width:100%}.w-8{width:2rem}.w-\[125px\]{width:125px}.w-11{width:2.75rem}.w-\[32px\]{width:32px}.w-\[24px\]{width:24px}.w-\[8px\]{width:8px}.w-\[36px\]{width:36px}.w-10{width:2.5rem}.min-w-11{min-width:2.75rem}.max-w-\[600px\]{max-width:600px}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-col-resize{cursor:col-resize}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.resize{resize:both}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-5{gap:1.25rem}.gap-3{gap:.75rem}.gap-6{gap:1.5rem}.gap-4{gap:1rem}.gap-1{gap:.25rem}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.625rem*var(--tw-space-y-reverse));margin-top:calc(.625rem*(1 - var(--tw-space-y-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.whitespace-pre-wrap{white-space:pre-wrap}.rounded-full{border-radius:9999px}.rounded-\[40px\]{border-radius:40px}.rounded-3xl{border-radius:1.5rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-bl-3xl{border-bottom-left-radius:1.5rem}.rounded-br-3xl{border-bottom-right-radius:1.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-0{border-width:0}.border-solid{border-style:solid}.border-main{--tw-border-opacity:1;border-color:rgb(240 244 240/var(--tw-border-opacity))}.border-primary-main{border-color:var(--color-primary-main)}.border-transparent{border-color:transparent}.bg-main{--tw-bg-opacity:1;background-color:rgb(240 244 240/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-main-divider{--tw-bg-opacity:1;background-color:rgb(235 237 240/var(--tw-bg-opacity))}.bg-inherit{background-color:inherit}.bg-primary-main{background-color:var(--color-primary-main)}.bg-secondary-light{--tw-bg-opacity:1;background-color:rgb(245 247 249/var(--tw-bg-opacity))}.bg-secondary-dark{--tw-bg-opacity:1;background-color:rgb(226 228 229/var(--tw-bg-opacity))}.p-20{padding:5rem}.p-2{padding:.5rem}.p-9{padding:2.25rem}.p-\[10px\]{padding:10px}.p-0{padding:0}.px-20{padding-left:5rem;padding-right:5rem}.px-9{padding-left:2.25rem;padding-right:2.25rem}.py-3\.5{padding-bottom:.875rem;padding-top:.875rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.pt-0{padding-top:0}.pt-5{padding-top:1.25rem}.pb-8{padding-bottom:2rem}.text-center{text-align:center}.font-sans{font-family:Ubuntu,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-xs{font-size:.75rem;line-height:1rem}.text-title{font-size:1.75rem;line-height:2.5rem}.text-base{font-size:1rem;line-height:1.5rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-bold{font-weight:700}.leading-snug{line-height:1.375}.text-primary-text{--tw-text-opacity:1;color:rgb(28 28 28/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-slate-700{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity))}.text-main{--tw-text-opacity:1;color:rgb(240 244 240/var(--tw-text-opacity))}.text-primary-main{color:var(--color-primary-main)}.text-secondary-text{--tw-text-opacity:1;color:rgb(125 126 127/var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.no-underline{-webkit-text-decoration-line:none;text-decoration-line:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.rotate-180{transform:rotate(180deg)}.hover\:bg-primary-hover:hover{background-color:var(--color-primary-hover)}.hover\:bg-secondary-hover:hover{background-color:var(--color-secondary-hover)}.hover\:text-primary-main:hover{color:var(--color-primary-main)}.hover\:text-secondary-hover:hover{color:var(--color-secondary-hover)}.active\:bg-primary-active:active{background-color:var(--color-primary-active)}.active\:bg-secondary-active:active{background-color:var(--color-secondary-active)}
package/lib/types.d.ts CHANGED
@@ -1,15 +1,17 @@
1
1
  import type { AvifOptions, FormatEnum, GifOptions, HeifOptions, JpegOptions, PngOptions, ResizeOptions, TiffOptions, WebpOptions } from 'sharp';
2
2
  import type { HeaderContent } from './Header';
3
3
  import type { PlaceholderContent } from './Placeholder';
4
- import type { ProductColumnBlockContent } from './ProductColumnBlock';
4
+ import type { ProductTileContent } from './ProductTile';
5
5
  import type { RichTextContent } from './RichText';
6
6
  import type { TextContent } from './Text';
7
7
  import type { TextWithImageContent } from './TextWithImage';
8
- import type { ProductBlockContent } from './ProductBlock';
9
- export declare type BlockContent = ProductColumnBlockContent | HeaderContent | TextContent | TextWithImageContent | RichTextContent | PlaceholderContent | ProductBlockContent;
8
+ export declare type BlockVersion = 'primary' | 'secondary';
9
+ export declare type ColorPalette = 'pc' | 'bc' | 'eo';
10
+ export declare type BlockContent = HeaderContent | TextContent | TextWithImageContent | RichTextContent | PlaceholderContent | ProductTileContent;
10
11
  export interface BlockDef {
11
12
  type: string;
12
13
  style?: string[];
14
+ version?: BlockVersion;
13
15
  content?: BlockContent;
14
16
  blocks?: BlockDef[];
15
17
  }
@@ -25,6 +27,7 @@ export interface ContentPageDef extends ContentPageMeta {
25
27
  style?: string[];
26
28
  blocks?: BlockDef[];
27
29
  likeControl?: boolean;
30
+ colorPalette?: ColorPalette;
28
31
  }
29
32
  export interface Img {
30
33
  src: string;
@@ -1,7 +1,10 @@
1
+ declare type BlockItemVersion = 'primary' | 'secondary';
1
2
  export interface BlockItemContent {
2
3
  text?: string;
3
4
  }
4
5
  export interface BlockItemProps extends BlockItemContent {
5
6
  className?: string;
7
+ version?: BlockItemVersion;
6
8
  }
7
9
  export declare const BlockItem: (props: import("@redneckz/uni-jsx").PropsWithChildren<BlockItemProps, any>, context?: any) => any;
10
+ export {};
@@ -1,6 +1,14 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
- export const BlockItem = JSX(({ className, text, children }) => {
4
- return (_jsxs("div", { className: `inline-block flex items-center ${className || ''}`, role: "listitem", children: [_jsx("div", { className: "inline-block min-w-[7px] h-[2px] bg-brand" }), _jsx("span", { className: "text-base text-second-primary font-normal font-sans mx-3", children: text || children })] }));
3
+ const listStyleMap = {
4
+ primary: 'bg-primary-main',
5
+ secondary: 'bg-white',
6
+ };
7
+ const textStyleMap = {
8
+ primary: 'text-primary-text',
9
+ secondary: 'text-white',
10
+ };
11
+ export const BlockItem = JSX(({ className, text, children, version = 'primary' }) => {
12
+ return (_jsxs("div", { className: `inline-block flex items-center ${className || ''}`, role: "listitem", children: [_jsx("div", { className: `inline-block w-[8px] h-[8px] rounded-full ${listStyleMap[version]}` }), _jsx("span", { className: `text-base font-normal font-sans mx-3 ${textStyleMap[version]}`, children: text || children })] }));
5
13
  });
6
14
  //# sourceMappingURL=BlockItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockItem.js","sourceRoot":"","sources":["../../src/ui-kit/BlockItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAUxC,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAiB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7E,OAAO,CACL,eAAK,SAAS,EAAE,kCAAkC,SAAS,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,UAAU,aAClF,cAAK,SAAS,EAAC,2CAA2C,GAAO,EACjE,eAAM,SAAS,EAAC,0DAA0D,YACvE,IAAI,IAAI,QAAQ,GACZ,IACH,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"BlockItem.js","sourceRoot":"","sources":["../../src/ui-kit/BlockItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAYxC,MAAM,YAAY,GAAqC;IACrD,OAAO,EAAE,iBAAiB;IAC1B,SAAS,EAAE,UAAU;CACtB,CAAC;AAEF,MAAM,YAAY,GAAqC;IACrD,OAAO,EAAE,mBAAmB;IAC5B,SAAS,EAAE,YAAY;CACxB,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAC1B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,EAAE,EAAE;IACrD,OAAO,CACL,eAAK,SAAS,EAAE,kCAAkC,SAAS,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,UAAU,aAClF,cAAK,SAAS,EAAE,6CAA6C,YAAY,CAAC,OAAO,CAAC,EAAE,GAAQ,EAC5F,eAAM,SAAS,EAAE,wCAAwC,YAAY,CAAC,OAAO,CAAC,EAAE,YAC7E,IAAI,IAAI,QAAQ,GACZ,IACH,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LinkContent } from './Link';
2
+ export interface BreadcrumbProps extends LinkContent {
3
+ className?: string;
4
+ onClick?: (ev: MouseEvent) => any;
5
+ }
6
+ export declare const Breadcrumb: (props: import("@redneckz/uni-jsx").PropsWithChildren<BreadcrumbProps, any>, context?: any) => any;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
+ import { JSX } from '@redneckz/uni-jsx';
3
+ export const Breadcrumb = JSX(({ text, href, target, onClick, className, children }) => {
4
+ if (href) {
5
+ return (_jsx("a", { className: `no-underline ${className || ''}`, href: href, target: target, onClick: onClick, children: _jsx("span", { className: `${className || ''}`, children: text || children }) }));
6
+ }
7
+ else {
8
+ return (_jsx("span", { className: `${className || ''}`, children: text || children }));
9
+ }
10
+ });
11
+ //# sourceMappingURL=Breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumb.js","sourceRoot":"","sources":["../../src/ui-kit/Breadcrumb.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAQxC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;IACtG,IAAI,IAAI,EAAE;QACR,OAAO,CACL,YACE,SAAS,EAAE,gBAAgB,SAAS,IAAI,EAAE,EAAE,EAC5C,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,YAEhB,eAAM,SAAS,EAAE,GAAG,SAAS,IAAI,EAAE,EAAE,YAAG,IAAI,IAAI,QAAQ,GAAQ,GAC9D,CACL,CAAC;KACH;SAAM;QACL,OAAO,CACL,eAAM,SAAS,EAAE,GAAG,SAAS,IAAI,EAAE,EAAE,YAClC,IAAI,IAAI,QAAQ,GACZ,CACR,CAAC;KACH;AACH,CAAC,CAAC,CAAC"}
@@ -1,5 +1,10 @@
1
1
  import type { LinkContent } from './Link';
2
+ declare type ButtonVersion = 'primary' | 'secondary';
2
3
  export interface ButtonProps extends LinkContent {
3
4
  className?: string;
4
5
  onClick?: (ev: MouseEvent) => any;
6
+ version?: ButtonVersion;
7
+ disabled?: Boolean;
5
8
  }
9
+ export declare const Button: (props: import("@redneckz/uni-jsx").PropsWithChildren<ButtonProps, any>, context?: any) => any;
10
+ export {};
@@ -1,2 +1,18 @@
1
- export {};
1
+ import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
+ import { JSX } from '@redneckz/uni-jsx';
3
+ const buttonStyleMap = {
4
+ primary: 'text-white bg-primary-main hover:bg-primary-hover active:bg-primary-active',
5
+ secondary: 'text-primary-main bg-secondary-light hover:bg-secondary-hover active:bg-secondary-active',
6
+ };
7
+ const buttonDisabledStyleMap = {
8
+ primary: 'bg-secondary-dark text-secondary-text',
9
+ secondary: 'bg-secondary-light text-secondary-text',
10
+ };
11
+ const styleButton = 'inline-block rounded-3xl px-9 py-3.5 text-center font-sans';
12
+ export const Button = JSX(({ className, text, href, target, onClick, children, disabled, version = 'primary' }) => {
13
+ if (disabled) {
14
+ return (_jsx("div", { role: "button", "area-disabled": "true", className: `${styleButton} select-none ${buttonDisabledStyleMap[version]} ${className || ''}`, children: _jsx("span", { className: "text-sm font-medium", children: text || children }) }));
15
+ }
16
+ return (_jsx("a", { className: `${styleButton} no-underline ${buttonStyleMap[version]} ${className || ''}`, href: href, target: target, onClick: onClick, children: _jsx("span", { className: "text-sm font-medium", children: text || children }) }));
17
+ });
2
18
  //# sourceMappingURL=Button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/ui-kit/Button.tsx"],"names":[],"mappings":""}
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/ui-kit/Button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAWxC,MAAM,cAAc,GAAkC;IACpD,OAAO,EAAE,4EAA4E;IACrF,SAAS,EACP,0FAA0F;CAC7F,CAAC;AAEF,MAAM,sBAAsB,GAAkC;IAC5D,OAAO,EAAE,uCAAuC;IAChD,SAAS,EAAE,wCAAwC;CACpD,CAAC;AAEF,MAAM,WAAW,GAAG,4DAA4D,CAAC;AAEjF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CACvB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,EAAE,EAAE;IACtF,IAAI,QAAQ,EAAE;QACZ,OAAO,CACL,cACE,IAAI,EAAC,QAAQ,mBACC,MAAM,EACpB,SAAS,EAAE,GAAG,WAAW,gBAAgB,sBAAsB,CAAC,OAAO,CAAC,IACtE,SAAS,IAAI,EACf,EAAE,YAEF,eAAM,SAAS,EAAC,qBAAqB,YAAE,IAAI,IAAI,QAAQ,GAAQ,GAC3D,CACP,CAAC;KACH;IAED,OAAO,CACL,YACE,SAAS,EAAE,GAAG,WAAW,iBAAiB,cAAc,CAAC,OAAO,CAAC,IAAI,SAAS,IAAI,EAAE,EAAE,EACtF,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,YAEhB,eAAM,SAAS,EAAC,qBAAqB,YAAE,IAAI,IAAI,QAAQ,GAAQ,GAC7D,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1,8 +1,7 @@
1
- import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
3
  export const HeaderItem = JSX(({ className, text, href, target, active, onClick, children }) => {
4
- const linkStyle = active ? 'border-b-brand' : 'border-transparent';
5
- const textStyle = active ? 'text-brand' : 'text-black hover:text-brand';
6
- return (_jsx("a", { className: `${linkStyle} border-0 border-b-2 border-solid inline-block bg-transparent py-2 text-center font-sans no-underline ${className || ''}`, href: href, target: target, onClick: onClick, children: _jsx("span", { className: `${textStyle} text-base font-normal`, children: text || children }) }));
4
+ const textStyle = active ? 'text-primary-main' : 'text-primary-text hover:text-primary-main';
5
+ return (_jsxs("a", { className: `relative inline-block bg-transparent text-center no-underline ${className || ''}`, href: href, target: target, onClick: onClick, children: [_jsx("span", { className: `font-sans font-normal text-base ${textStyle}`, children: text || children }), active ? (_jsx("div", { className: "absolute left-0 -bottom-2 w-full h-[2px] bg-primary-main" })) : null] }));
7
6
  });
8
7
  //# sourceMappingURL=HeaderItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderItem.js","sourceRoot":"","sources":["../../src/ui-kit/HeaderItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAKxC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAC3B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACnE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,6BAA6B,CAAC;IACxE,OAAO,CACL,YACE,SAAS,EAAE,GAAG,SAAS,yGACrB,SAAS,IAAI,EACf,EAAE,EACF,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,YAEhB,eAAM,SAAS,EAAE,GAAG,SAAS,wBAAwB,YAAG,IAAI,IAAI,QAAQ,GAAQ,GAC9E,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"HeaderItem.js","sourceRoot":"","sources":["../../src/ui-kit/HeaderItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAKxC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAC3B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,2CAA2C,CAAC;IAC7F,OAAO,CACL,aACE,SAAS,EAAE,iEACT,SAAS,IAAI,EACf,EAAE,EACF,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,aAEhB,eAAM,SAAS,EAAE,mCAAmC,SAAS,EAAE,YAAG,IAAI,IAAI,QAAQ,GAAQ,EACzF,MAAM,CAAC,CAAC,CAAC,CACR,cAAK,SAAS,EAAC,0DAA0D,GAAG,CAC7E,CAAC,CAAC,CAAC,IAAI,IACN,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -9,6 +9,6 @@ const LOGO_PATHS = [
9
9
  'M27.66 40.79c.27-.14.55-.28.8-.43v-5.98h-.8v6.4Z',
10
10
  ];
11
11
  export const Logo = JSX(({ className, href, children }) => {
12
- return (_jsxs("a", { className: `inline-flex items-center font-sans no-underline ${className || ''}`, href: href || 'https://rshb.ru/', target: "_blank", children: [_jsx(SVG, { className: "text-brand w-10", viewBox: "0 0 40 45", paths: LOGO_PATHS.map((d) => ({ d })) }), _jsx("span", { className: "text-black text-base font-medium ml-2.5", children: children || 'Россельхозбанк' })] }));
12
+ return (_jsxs("a", { className: `inline-flex items-center font-sans no-underline ${className || ''}`, href: href || 'https://rshb.ru/', target: "_blank", children: [_jsx(SVG, { className: "text-primary-main w-10", viewBox: "0 0 40 45", paths: LOGO_PATHS.map((d) => ({ d })) }), _jsx("span", { className: "text-black text-base font-medium ml-2.5", children: children || 'Россельхозбанк' })] }));
13
13
  });
14
14
  //# sourceMappingURL=Logo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../src/ui-kit/Logo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAO5B,MAAM,UAAU,GAAG;IACjB,w5CAAw5C;IACx5C,2OAA2O;IAC3O,0JAA0J;IAC1J,gpBAAgpB;IAChpB,kDAAkD;CACnD,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAY,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnE,OAAO,CACL,aACE,SAAS,EAAE,mDAAmD,SAAS,IAAI,EAAE,EAAE,EAC/E,IAAI,EAAE,IAAI,IAAI,kBAAkB,EAChC,MAAM,EAAC,QAAQ,aAEf,KAAC,GAAG,IAAC,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAI,EAC9F,eAAM,SAAS,EAAC,yCAAyC,YACtD,QAAQ,IAAI,gBAAgB,GACxB,IACL,CACL,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Logo.js","sourceRoot":"","sources":["../../src/ui-kit/Logo.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAO5B,MAAM,UAAU,GAAG;IACjB,w5CAAw5C;IACx5C,2OAA2O;IAC3O,0JAA0J;IAC1J,gpBAAgpB;IAChpB,kDAAkD;CACnD,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,CAAY,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnE,OAAO,CACL,aACE,SAAS,EAAE,mDAAmD,SAAS,IAAI,EAAE,EAAE,EAC/E,IAAI,EAAE,IAAI,IAAI,kBAAkB,EAChC,MAAM,EAAC,QAAQ,aAEf,KAAC,GAAG,IACF,SAAS,EAAC,wBAAwB,EAClC,OAAO,EAAC,WAAW,EACnB,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GACrC,EACF,eAAM,SAAS,EAAC,yCAAyC,YACtD,QAAQ,IAAI,gBAAgB,GACxB,IACL,CACL,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,11 +1,17 @@
1
- interface SVGPath {
2
- d: string;
1
+ interface SVGPathOptions {
3
2
  fill?: string;
3
+ stroke?: string;
4
+ strokeLinecap?: string;
5
+ strokeLinejoin?: string;
6
+ strokeWidth?: string;
7
+ strokeMiterlimit?: string;
8
+ }
9
+ interface SVGPath extends SVGPathOptions {
10
+ d: string;
4
11
  }
5
- export interface SVGProps {
12
+ export interface SVGProps extends SVGPathOptions {
6
13
  className?: string;
7
14
  viewBox?: string;
8
- fill?: string;
9
15
  paths: SVGPath[];
10
16
  }
11
17
  export declare const SVG: (props: import("@redneckz/uni-jsx").PropsWithChildren<SVGProps, any>, context?: any) => any;
package/lib/ui-kit/SVG.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
- export const SVG = JSX(({ className, viewBox, fill = 'none', paths }) => {
4
- return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: className, viewBox: viewBox, fill: fill, children: paths.map(({ d, fill }, i) => _jsx("path", { d: d, fill: fill || 'currentColor' }, i)) }));
3
+ export const SVG = JSX(({ className, viewBox, fill = 'none', paths, ...commonOptions }) => {
4
+ return (_jsx("svg", { xmlns: "http://www.w3.org/2000/svg", className: className, viewBox: viewBox, fill: fill, children: paths.map(({ d, fill, ...options }, i) => (_jsx("path", { d: d, fill: fill || 'currentColor', ...commonOptions, ...options }, i))) }));
5
5
  });
6
6
  //# sourceMappingURL=SVG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SVG.js","sourceRoot":"","sources":["../../src/ui-kit/SVG.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAcxC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAW,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IAChF,OAAO,CACL,cAAK,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,YACvF,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAc,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,cAAc,IAArC,CAAC,CAAwC,CAAC,GAChF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"SVG.js","sourceRoot":"","sources":["../../src/ui-kit/SVG.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAqBxC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CACpB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,EAAE,EAAE,EAAE;IACjE,OAAO,CACL,cAAK,KAAK,EAAC,4BAA4B,EAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,YACvF,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CACzC,eAAc,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,cAAc,KAAM,aAAa,KAAM,OAAO,IAArE,CAAC,CAAwE,CACrF,CAAC,GACE,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -4,6 +4,7 @@ export interface TopItemContent extends LinkContent {
4
4
  }
5
5
  export interface TopItemProps extends TopItemContent {
6
6
  className?: string;
7
+ flat?: boolean;
7
8
  onClick?: (ev: MouseEvent) => any;
8
9
  }
9
10
  export declare const TopItem: (props: import("@redneckz/uni-jsx").PropsWithChildren<TopItemProps, any>, context?: any) => any;
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "@redneckz/uni-jsx/jsx-runtime";
2
2
  import { JSX } from '@redneckz/uni-jsx';
3
- export const TopItem = JSX(({ className, text, href, target, active, onClick, children }) => {
4
- const linkStyle = active ? 'border-brand rounded-3xl' : 'border-transparent';
5
- const textStyle = active ? 'text-brand' : 'text-black hover:text-brand';
6
- return (_jsx("a", { className: `${linkStyle} border border-solid inline-block bg-transparent px-4 py-2 text-center font-sans no-underline ${className || ''}`, href: href, target: target, onClick: onClick, children: _jsx("span", { className: `${textStyle} text-base font-normal`, children: text || children }) }));
3
+ export const TopItem = JSX(({ className, text, href, target, active, flat, onClick, children }) => {
4
+ const linkStyle = active ? 'border-primary-main rounded-3xl' : 'border-transparent';
5
+ const textStyle = active ? 'text-primary-main' : 'text-primary-text hover:text-primary-main';
6
+ return (_jsx("a", { className: `inline-block border border-solid bg-transparent text-center no-underline ${flat ? '' : 'px-4 py-2'} ${linkStyle} ${className || ''}`, href: href, target: target, onClick: onClick, children: _jsx("span", { className: `font-sans font-normal text-sm ${textStyle}`, children: text || children }) }));
7
7
  });
8
8
  //# sourceMappingURL=TopItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopItem.js","sourceRoot":"","sources":["../../src/ui-kit/TopItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAYxC,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CACxB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAC7E,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,6BAA6B,CAAC;IACxE,OAAO,CACL,YACE,SAAS,EAAE,GAAG,SAAS,iGACrB,SAAS,IAAI,EACf,EAAE,EACF,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,YAEhB,eAAM,SAAS,EAAE,GAAG,SAAS,wBAAwB,YAAG,IAAI,IAAI,QAAQ,GAAQ,GAC9E,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
1
+ {"version":3,"file":"TopItem.js","sourceRoot":"","sources":["../../src/ui-kit/TopItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAaxC,MAAM,CAAC,MAAM,OAAO,GAAG,GAAG,CACxB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,oBAAoB,CAAC;IACpF,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,2CAA2C,CAAC;IAC7F,OAAO,CACL,YACE,SAAS,EAAE,4EACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WACd,IAAI,SAAS,IAAI,SAAS,IAAI,EAAE,EAAE,EAClC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,YAEhB,eAAM,SAAS,EAAE,iCAAiC,SAAS,EAAE,YAAG,IAAI,IAAI,QAAQ,GAAQ,GACtF,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const isURL: (href?: string | undefined) => boolean | undefined;
2
+ export declare const withoutQuery: (href?: string | undefined) => string;
@@ -0,0 +1,3 @@
1
+ export const isURL = (href) => href?.includes('//');
2
+ export const withoutQuery = (href) => (href || '').replace(/\/?\?.*/, '');
3
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.2.28",
3
+ "version": "0.2.32",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -52,7 +52,8 @@
52
52
  "build:style": "postcss './src/**/*.css' --env production --dir ./lib",
53
53
  "test": "jest --coverage",
54
54
  "cosmos": "cosmos",
55
- "cosmos:export": "cosmos-export"
55
+ "cosmos:export": "cosmos-export",
56
+ "prepare": "husky install || exit 0"
56
57
  },
57
58
  "peerDependencies": {
58
59
  "react": ">=16.8.0",
@@ -80,7 +81,9 @@
80
81
  "css-loader": "^6.7.1",
81
82
  "cssnano": "^5.1.7",
82
83
  "html-webpack-plugin": "^5.5.0",
84
+ "husky": "^8.0.1",
83
85
  "jest": "^27.5.1",
86
+ "lint-staged": "^12.4.2",
84
87
  "postcss": "^8.4.12",
85
88
  "postcss-cli": "^9.1.0",
86
89
  "postcss-loader": "^6.2.1",
@@ -95,5 +98,9 @@
95
98
  "typescript": "^4.6.3",
96
99
  "webpack": "^5.72.0",
97
100
  "webpack-cli": "^4.9.2"
101
+ },
102
+ "lint-staged": {
103
+ "src/**/*.{js,jsx,ts,tsx,css}": "prettier --write",
104
+ "src/**/*.{js,jsx,ts,tsx,css,json}": ["cosmos-export", "git add ./docs"]
98
105
  }
99
106
  }
package/dist/Header.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import type { LinkContent } from './ui-kit/Link';
2
- import type { ContentPageContext } from './ContentPageContext';
3
- declare type HeaderMenuItem = LinkContent;
4
- interface TopMenuItem extends HeaderMenuItem {
5
- items?: HeaderMenuItem[];
6
- }
7
- export interface HeaderContent {
8
- topItems?: TopMenuItem[];
9
- }
10
- export interface HeaderProps extends HeaderContent {
11
- className?: string;
12
- context: ContentPageContext;
13
- }
14
- export declare const Header: (props: import("@redneckz/uni-jsx").PropsWithChildren<HeaderProps, any>, context?: any) => any;
15
- export {};
package/dist/Header.js DELETED
@@ -1,33 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.Header = void 0;
3
- const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
- const uni_jsx_1 = require("@redneckz/uni-jsx");
5
- const HeaderItem_1 = require("./ui-kit/HeaderItem");
6
- const Logo_1 = require("./ui-kit/Logo");
7
- const TopItem_1 = require("./ui-kit/TopItem");
8
- const useLink_1 = require("./useLink");
9
- exports.Header = (0, uni_jsx_1.JSX)(({ className, context, topItems }) => {
10
- const router = context.useRouter();
11
- const activeTopItem = topItems?.find(isTopItemActive(router));
12
- const activeSubItem = activeTopItem?.items?.find(isSubItemActive(router));
13
- return ((0, jsx_runtime_1.jsxs)("div", { className: `py-8 px-20 bg-white rounded-bl-3xl rounded-br-3xl ${className || ''}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center", children: [(0, jsx_runtime_1.jsx)(Logo_1.Logo, { className: "mr-8" }), topItems?.length
14
- ? topItems.map((_, i) => ((0, jsx_runtime_1.jsx)(TopItem_1.TopItem, { active: _ === activeTopItem, ...(0, useLink_1.useLink)(context, _) }, String(i))))
15
- : null] }), activeTopItem?.items?.length ? ((0, jsx_runtime_1.jsx)("div", { className: "mt-10", children: activeTopItem.items.map((_) => ((0, jsx_runtime_1.jsx)(HeaderItem_1.HeaderItem, { className: "mr-8", active: _ === activeSubItem, ...(0, useLink_1.useLink)(context, _) }, _.href))) })) : null] }));
16
- });
17
- const isURL = (href) => href?.includes('//');
18
- const withoutQuery = (href) => (href || '').replace(/\/?\?.+/, '');
19
- function isTopItemActive({ href, pathname }) {
20
- return (item) => {
21
- const itemHref = withoutQuery(item.href);
22
- if (isURL(itemHref)) {
23
- return Boolean(href && href.startsWith(itemHref));
24
- }
25
- return Boolean(item.href && pathname.startsWith(itemHref));
26
- };
27
- }
28
- function isSubItemActive({ href, pathname }) {
29
- return (item) => {
30
- return withoutQuery(item.href) === (isURL(item.href) ? withoutQuery(href) : pathname);
31
- };
32
- }
33
- //# sourceMappingURL=Header.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../src/Header.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC,oDAAiD;AACjD,wCAAqC;AACrC,8CAA2C;AAE3C,uCAAoC;AAiBvB,QAAA,MAAM,GAAG,IAAA,aAAG,EAAc,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAEnC,MAAM,aAAa,GAAG,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,OAAO,CACL,iCAAK,SAAS,EAAE,qDAAqD,SAAS,IAAI,EAAE,EAAE,aACpF,iCAAK,SAAS,EAAC,mBAAmB,aAChC,uBAAC,WAAI,IAAC,SAAS,EAAC,MAAM,GAAG,EACxB,QAAQ,EAAE,MAAM;wBACf,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACrB,uBAAC,iBAAO,IAAiB,MAAM,EAAE,CAAC,KAAK,aAAa,KAAM,IAAA,iBAAO,EAAC,OAAO,EAAE,CAAC,CAAC,IAA/D,MAAM,CAAC,CAAC,CAAC,CAA0D,CAClF,CAAC;wBACJ,CAAC,CAAC,IAAI,IACJ,EACL,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAC9B,gCAAK,SAAS,EAAC,OAAO,YACnB,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC9B,uBAAC,uBAAU,IAET,SAAS,EAAC,MAAM,EAChB,MAAM,EAAE,CAAC,KAAK,aAAa,KACvB,IAAA,iBAAO,EAAC,OAAO,EAAE,CAAC,CAAC,IAHlB,CAAC,CAAC,IAAI,CAIX,CACH,CAAC,GACE,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;AAEtD,MAAM,YAAY,GAAG,CAAC,IAAa,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAE5E,SAAS,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAU;IACjD,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE;YACnB,OAAO,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;SACnD;QACD,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAU;IACjD,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACxF,CAAC,CAAC;AACJ,CAAC"}
@@ -1,22 +0,0 @@
1
- import type { ContentPageContext } from './ContentPageContext';
2
- import { Icons } from './Icons';
3
- import { Picture } from './types';
4
- import type { LinkContent } from './ui-kit/Link';
5
- export interface Benefit {
6
- label: string;
7
- description?: string;
8
- icon?: keyof typeof Icons;
9
- }
10
- export interface ProductBlockContent {
11
- title?: string;
12
- description?: string;
13
- image?: Picture;
14
- benefits?: Benefit[];
15
- items?: string[];
16
- button?: LinkContent;
17
- }
18
- export interface ProductBlockProps extends ProductBlockContent {
19
- className?: string;
20
- context: ContentPageContext;
21
- }
22
- export declare const ProductBlock: (props: import("@redneckz/uni-jsx").PropsWithChildren<ProductBlockProps, any>, context?: any) => any;
@@ -1,17 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.ProductBlock = void 0;
3
- const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
- const uni_jsx_1 = require("@redneckz/uni-jsx");
5
- const Icons_1 = require("./Icons");
6
- const Img_1 = require("./Img");
7
- const BlockItem_1 = require("./ui-kit/BlockItem");
8
- const PrimaryButton_1 = require("./ui-kit/PrimaryButton");
9
- const useLink_1 = require("./useLink");
10
- exports.ProductBlock = (0, uni_jsx_1.JSX)((props) => {
11
- const { className, context, title, description, benefits, button, image, items } = props;
12
- return ((0, jsx_runtime_1.jsxs)("section", { className: `font-sans bg-white rounded-[40px] h-[470px] flex justify-between relative overflow-hidden ${className}`, children: [(0, jsx_runtime_1.jsxs)("div", { className: ['flex', 'flex-col', 'p-11', image && 'pr-0'].filter(Boolean).join(' '), children: [title && (0, jsx_runtime_1.jsx)("h1", { className: "font-medium text-title2 m-0 mb-4 whitespace-pre-wrap", children: title }), description && ((0, jsx_runtime_1.jsx)("div", { className: "font-normal text-base text-second-primary mb-7", children: description })), benefits?.length ? (0, jsx_runtime_1.jsx)("div", { className: "flex gap-6", children: benefits.map(renderBenefit) }) : null, items?.length ? ((0, jsx_runtime_1.jsx)("section", { className: "flex flex-col", role: "list", children: items.map((_, i) => ((0, jsx_runtime_1.jsx)(BlockItem_1.BlockItem, { className: "mt-6", text: _ }, String(i)))) })) : null, button?.text ? ((0, jsx_runtime_1.jsx)("div", { className: "mt-auto", children: (0, jsx_runtime_1.jsx)(PrimaryButton_1.PrimaryButton, { ...(0, useLink_1.useLink)(context, button) }) })) : null] }), image && (0, jsx_runtime_1.jsx)("div", { className: "h-full flex", children: (0, jsx_runtime_1.jsx)(Img_1.Img, { image: image, className: "flex" }) })] }));
13
- });
14
- function renderBenefit(benefit, i) {
15
- return ((0, jsx_runtime_1.jsxs)("div", { className: "flex gap-4 items-center", children: [benefit.icon && ((0, jsx_runtime_1.jsx)("div", { className: "h-11 w-11 min-w-11 min-h-11 bg-second-light rounded-full p-[10px] box-border", children: Icons_1.Icons[benefit.icon]() })), (0, jsx_runtime_1.jsxs)("div", { className: "flex gap-1 flex-col", children: [(0, jsx_runtime_1.jsx)("h4", { className: "font-medium text-xl m-0", children: benefit.label }), benefit.description && ((0, jsx_runtime_1.jsx)("div", { className: "font-normal text-sm text-second-primary", children: benefit.description }))] })] }, String(i)));
16
- }
17
- //# sourceMappingURL=ProductBlock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductBlock.js","sourceRoot":"","sources":["../src/ProductBlock.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC,mCAAgC;AAChC,+BAA4B;AAE5B,kDAA+C;AAE/C,0DAAuD;AACvD,uCAAoC;AAsBvB,QAAA,YAAY,GAAG,IAAA,aAAG,EAAoB,CAAC,KAAK,EAAE,EAAE;IAC3D,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAEzF,OAAO,CACL,qCACE,SAAS,EAAE,6FAA6F,SAAS,EAAE,aAEnH,iCAAK,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aACpF,KAAK,IAAI,+BAAI,SAAS,EAAC,sDAAsD,YAAE,KAAK,GAAM,EAC1F,WAAW,IAAI,CACd,gCAAK,SAAS,EAAC,gDAAgD,YAAE,WAAW,GAAO,CACpF,EACA,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,gCAAK,SAAS,EAAC,YAAY,YAAE,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,GAAO,CAAC,CAAC,CAAC,IAAI,EACzF,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CACf,oCAAS,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,YAC3C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnB,uBAAC,qBAAS,IAAiB,SAAS,EAAC,MAAM,EAAC,IAAI,EAAE,CAAC,IAAnC,MAAM,CAAC,CAAC,CAAC,CAA8B,CACxD,CAAC,GACM,CACX,CAAC,CAAC,CAAC,IAAI,EACP,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CACd,gCAAK,SAAS,EAAC,SAAS,YACtB,uBAAC,6BAAa,OAAK,IAAA,iBAAO,EAAC,OAAO,EAAE,MAAM,CAAC,GAAI,GAC3C,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EACL,KAAK,IAAI,gCAAK,SAAS,EAAC,aAAa,YAAE,uBAAC,SAAG,IAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAC,MAAM,GAAG,GAAO,IAC7E,CACX,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,aAAa,CAAC,OAAgB,EAAE,CAAS;IAChD,OAAO,CACL,iCAAqB,SAAS,EAAC,yBAAyB,aACrD,OAAO,CAAC,IAAI,IAAI,CACf,gCAAK,SAAS,EAAC,8EAA8E,YAC1F,aAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,GAClB,CACP,EACD,iCAAK,SAAS,EAAC,qBAAqB,aAClC,+BAAI,SAAS,EAAC,yBAAyB,YAAE,OAAO,CAAC,KAAK,GAAM,EAC3D,OAAO,CAAC,WAAW,IAAI,CACtB,gCAAK,SAAS,EAAC,yCAAyC,YAAE,OAAO,CAAC,WAAW,GAAO,CACrF,IACG,KAXE,MAAM,CAAC,CAAC,CAAC,CAYb,CACP,CAAC;AACJ,CAAC"}
@@ -1,13 +0,0 @@
1
- import type { ContentPageContext } from './ContentPageContext';
2
- import type { LinkContent } from './ui-kit/Link';
3
- export interface ProductColumnBlockContent {
4
- title?: string;
5
- items?: string[];
6
- button?: LinkContent;
7
- promo?: boolean;
8
- }
9
- export interface ProductColumnBlockProps extends ProductColumnBlockContent {
10
- className?: string;
11
- context: ContentPageContext;
12
- }
13
- export declare const ProductColumnBlock: (props: import("@redneckz/uni-jsx").PropsWithChildren<ProductColumnBlockProps, any>, context?: any) => any;
@@ -1,11 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.ProductColumnBlock = void 0;
3
- const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
- const uni_jsx_1 = require("@redneckz/uni-jsx");
5
- const BlockItem_1 = require("./ui-kit/BlockItem");
6
- const PrimaryButton_1 = require("./ui-kit/PrimaryButton");
7
- const useLink_1 = require("./useLink");
8
- exports.ProductColumnBlock = (0, uni_jsx_1.JSX)(({ className, context, title, items, button, promo }) => {
9
- return ((0, jsx_runtime_1.jsxs)("div", { className: `relative p-8 bg-white text-black font-sans rounded-[40px] ${className || ''}`, children: [(0, jsx_runtime_1.jsx)("p", { className: "text-title font-medium m-0", children: title }), items?.length ? ((0, jsx_runtime_1.jsx)("section", { className: "flex flex-col", role: "list", children: items.map((_, i) => ((0, jsx_runtime_1.jsx)(BlockItem_1.BlockItem, { className: "mt-6", text: _ }, String(i)))) })) : null, button?.text ? (0, jsx_runtime_1.jsx)(PrimaryButton_1.PrimaryButton, { className: "mt-12", ...(0, useLink_1.useLink)(context, button) }) : null, promo && ((0, jsx_runtime_1.jsx)("div", { className: "absolute right-0 bottom-0 bg-promo font-normal px-12 py-3 text-xl rounded-tl-[74px] rounded-br-[40px]", children: "\u0410\u043A\u0446\u0438\u044F" }))] }));
10
- });
11
- //# sourceMappingURL=ProductColumnBlock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProductColumnBlock.js","sourceRoot":"","sources":["../src/ProductColumnBlock.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAExC,kDAA+C;AAE/C,0DAAuD;AACvD,uCAAoC;AAcvB,QAAA,kBAAkB,GAAG,IAAA,aAAG,EACnC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IACtD,OAAO,CACL,iCACE,SAAS,EAAE,6DAA6D,SAAS,IAAI,EAAE,EAAE,aAEzF,8BAAG,SAAS,EAAC,4BAA4B,YAAE,KAAK,GAAK,EACpD,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CACf,oCAAS,SAAS,EAAC,eAAe,EAAC,IAAI,EAAC,MAAM,YAC3C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACnB,uBAAC,qBAAS,IAAiB,SAAS,EAAC,MAAM,EAAC,IAAI,EAAE,CAAC,IAAnC,MAAM,CAAC,CAAC,CAAC,CAA8B,CACxD,CAAC,GACM,CACX,CAAC,CAAC,CAAC,IAAI,EACP,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,uBAAC,6BAAa,IAAC,SAAS,EAAC,OAAO,KAAK,IAAA,iBAAO,EAAC,OAAO,EAAE,MAAM,CAAC,GAAI,CAAC,CAAC,CAAC,IAAI,EACvF,KAAK,IAAI,CACR,gCAAK,SAAS,EAAC,uGAAuG,+CAEhH,CACP,IACG,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { LinkContent } from './Link';
2
- import type { ButtonProps } from './Button';
3
- export declare type PrimaryButtonContent = LinkContent;
4
- export declare type PrimaryButtonProps = ButtonProps;
5
- export declare const PrimaryButton: (props: import("@redneckz/uni-jsx").PropsWithChildren<ButtonProps, any>, context?: any) => any;
@@ -1,8 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.PrimaryButton = void 0;
3
- const jsx_runtime_1 = require("@redneckz/uni-jsx/jsx-runtime");
4
- const uni_jsx_1 = require("@redneckz/uni-jsx");
5
- exports.PrimaryButton = (0, uni_jsx_1.JSX)(({ className, text, href, target, onClick, children }) => {
6
- return ((0, jsx_runtime_1.jsx)("a", { className: `inline-block bg-brand rounded-3xl px-9 py-3.5 text-center font-sans no-underline ${className || ''}`, href: href, target: target, onClick: onClick, children: (0, jsx_runtime_1.jsx)("span", { className: "text-white text-sm font-medium", children: text || children }) }));
7
- });
8
- //# sourceMappingURL=PrimaryButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PrimaryButton.js","sourceRoot":"","sources":["../../src/ui-kit/PrimaryButton.tsx"],"names":[],"mappings":";;;AAAA,+CAAwC;AAO3B,QAAA,aAAa,GAAG,IAAA,aAAG,EAC9B,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvD,OAAO,CACL,8BACE,SAAS,EAAE,oFACT,SAAS,IAAI,EACf,EAAE,EACF,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,YAEhB,iCAAM,SAAS,EAAC,gCAAgC,YAAE,IAAI,IAAI,QAAQ,GAAQ,GACxE,CACL,CAAC;AACJ,CAAC,CACF,CAAC"}
package/lib/Header.d.ts DELETED
@@ -1,15 +0,0 @@
1
- import type { LinkContent } from './ui-kit/Link';
2
- import type { ContentPageContext } from './ContentPageContext';
3
- declare type HeaderMenuItem = LinkContent;
4
- interface TopMenuItem extends HeaderMenuItem {
5
- items?: HeaderMenuItem[];
6
- }
7
- export interface HeaderContent {
8
- topItems?: TopMenuItem[];
9
- }
10
- export interface HeaderProps extends HeaderContent {
11
- className?: string;
12
- context: ContentPageContext;
13
- }
14
- export declare const Header: (props: import("@redneckz/uni-jsx").PropsWithChildren<HeaderProps, any>, context?: any) => any;
15
- export {};