@atme-lab/ui-kit 0.1.26 → 0.1.27

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 (266) hide show
  1. package/dist/components/primitives/Callout/Callout.d.ts +1 -0
  2. package/dist/index.cjs10.js +1 -1
  3. package/dist/index.cjs11.js +1 -1
  4. package/dist/index.cjs12.js +1 -1
  5. package/dist/index.cjs13.js +1 -1
  6. package/dist/index.cjs14.js +1 -1
  7. package/dist/index.cjs15.js +1 -1
  8. package/dist/index.cjs16.js +1 -1
  9. package/dist/index.cjs18.js +1 -1
  10. package/dist/index.cjs19.js +1 -1
  11. package/dist/index.cjs20.js +1 -1
  12. package/dist/index.cjs21.js +1 -1
  13. package/dist/index.cjs22.js +1 -1
  14. package/dist/index.cjs23.js +1 -1
  15. package/dist/index.cjs24.js +1 -1
  16. package/dist/index.cjs24.js.map +1 -1
  17. package/dist/index.cjs25.js +1 -1
  18. package/dist/index.cjs26.js +1 -1
  19. package/dist/index.cjs27.js +1 -1
  20. package/dist/index.cjs28.js +1 -1
  21. package/dist/index.cjs30.js +1 -1
  22. package/dist/index.cjs31.js +1 -1
  23. package/dist/index.cjs32.js +1 -1
  24. package/dist/index.cjs389.js +1 -1
  25. package/dist/index.cjs394.js +1 -1
  26. package/dist/index.cjs395.js +1 -1
  27. package/dist/index.cjs415.js +6 -1
  28. package/dist/index.cjs415.js.map +1 -1
  29. package/dist/index.cjs416.js +6 -1
  30. package/dist/index.cjs416.js.map +1 -1
  31. package/dist/index.cjs417.js +1 -1
  32. package/dist/index.cjs417.js.map +1 -1
  33. package/dist/index.cjs418.js +1 -1
  34. package/dist/index.cjs418.js.map +1 -1
  35. package/dist/index.cjs419.js +1 -6
  36. package/dist/index.cjs419.js.map +1 -1
  37. package/dist/index.cjs420.js +1 -6
  38. package/dist/index.cjs420.js.map +1 -1
  39. package/dist/index.cjs424.js +1 -1
  40. package/dist/index.cjs425.js +1 -1
  41. package/dist/index.cjs426.js +1 -1
  42. package/dist/index.cjs427.js +1 -1
  43. package/dist/index.cjs428.js +1 -1
  44. package/dist/index.cjs429.js +1 -1
  45. package/dist/index.cjs430.js +1 -1
  46. package/dist/index.cjs432.js +1 -1
  47. package/dist/index.cjs434.js +1 -1
  48. package/dist/index.cjs437.js +1 -1
  49. package/dist/index.cjs442.js +1 -1
  50. package/dist/index.cjs442.js.map +1 -1
  51. package/dist/index.cjs443.js +1 -1
  52. package/dist/index.cjs443.js.map +1 -1
  53. package/dist/index.cjs444.js +1 -1
  54. package/dist/index.cjs444.js.map +1 -1
  55. package/dist/index.cjs445.js +1 -1
  56. package/dist/index.cjs445.js.map +1 -1
  57. package/dist/index.cjs446.js +1 -1
  58. package/dist/index.cjs446.js.map +1 -1
  59. package/dist/index.cjs447.js +1 -1
  60. package/dist/index.cjs447.js.map +1 -1
  61. package/dist/index.cjs448.js +1 -1
  62. package/dist/index.cjs448.js.map +1 -1
  63. package/dist/index.cjs449.js +1 -1
  64. package/dist/index.cjs449.js.map +1 -1
  65. package/dist/index.cjs45.js +1 -1
  66. package/dist/index.cjs450.js +1 -1
  67. package/dist/index.cjs450.js.map +1 -1
  68. package/dist/index.cjs451.js +1 -1
  69. package/dist/index.cjs451.js.map +1 -1
  70. package/dist/index.cjs452.js +1 -1
  71. package/dist/index.cjs452.js.map +1 -1
  72. package/dist/index.cjs453.js +1 -1
  73. package/dist/index.cjs453.js.map +1 -1
  74. package/dist/index.cjs454.js +1 -1
  75. package/dist/index.cjs454.js.map +1 -1
  76. package/dist/index.cjs455.js +1 -1
  77. package/dist/index.cjs455.js.map +1 -1
  78. package/dist/index.cjs456.js +1 -1
  79. package/dist/index.cjs456.js.map +1 -1
  80. package/dist/index.cjs46.js +1 -1
  81. package/dist/index.cjs46.js.map +1 -1
  82. package/dist/index.cjs47.js +1 -1
  83. package/dist/index.cjs47.js.map +1 -1
  84. package/dist/index.cjs48.js +1 -1
  85. package/dist/index.cjs50.js +1 -1
  86. package/dist/index.cjs51.js +1 -1
  87. package/dist/index.cjs51.js.map +1 -1
  88. package/dist/index.cjs52.js +1 -1
  89. package/dist/index.cjs53.js +1 -1
  90. package/dist/index.cjs53.js.map +1 -1
  91. package/dist/index.cjs54.js +1 -1
  92. package/dist/index.cjs54.js.map +1 -1
  93. package/dist/index.cjs55.js +1 -1
  94. package/dist/index.cjs55.js.map +1 -1
  95. package/dist/index.cjs56.js +1 -1
  96. package/dist/index.cjs56.js.map +1 -1
  97. package/dist/index.cjs57.js +1 -1
  98. package/dist/index.cjs58.js +1 -1
  99. package/dist/index.cjs58.js.map +1 -1
  100. package/dist/index.cjs59.js +1 -1
  101. package/dist/index.cjs59.js.map +1 -1
  102. package/dist/index.cjs60.js +1 -1
  103. package/dist/index.cjs61.js +1 -1
  104. package/dist/index.cjs61.js.map +1 -1
  105. package/dist/index.cjs62.js +1 -1
  106. package/dist/index.cjs63.js +1 -1
  107. package/dist/index.cjs64.js +1 -1
  108. package/dist/index.cjs65.js +1 -1
  109. package/dist/index.cjs66.js +1 -1
  110. package/dist/index.cjs67.js +1 -1
  111. package/dist/index.cjs67.js.map +1 -1
  112. package/dist/index.cjs68.js +1 -1
  113. package/dist/index.cjs69.js +1 -1
  114. package/dist/index.cjs69.js.map +1 -1
  115. package/dist/index.cjs70.js +1 -1
  116. package/dist/index.cjs70.js.map +1 -1
  117. package/dist/index.cjs71.js +1 -1
  118. package/dist/index.cjs72.js +1 -1
  119. package/dist/index.cjs73.js +1 -1
  120. package/dist/index.cjs74.js +1 -1
  121. package/dist/index.cjs74.js.map +1 -1
  122. package/dist/index.cjs76.js +1 -1
  123. package/dist/index.cjs77.js +1 -1
  124. package/dist/index.cjs77.js.map +1 -1
  125. package/dist/index.cjs9.js +1 -1
  126. package/dist/index.esm10.js +2 -2
  127. package/dist/index.esm11.js +1 -1
  128. package/dist/index.esm12.js +3 -3
  129. package/dist/index.esm13.js +1 -1
  130. package/dist/index.esm14.js +1 -1
  131. package/dist/index.esm15.js +1 -1
  132. package/dist/index.esm16.js +1 -1
  133. package/dist/index.esm18.js +1 -1
  134. package/dist/index.esm19.js +1 -1
  135. package/dist/index.esm20.js +1 -1
  136. package/dist/index.esm21.js +2 -2
  137. package/dist/index.esm22.js +2 -2
  138. package/dist/index.esm23.js +1 -1
  139. package/dist/index.esm24.js +15 -14
  140. package/dist/index.esm24.js.map +1 -1
  141. package/dist/index.esm25.js +1 -1
  142. package/dist/index.esm26.js +2 -2
  143. package/dist/index.esm27.js +1 -1
  144. package/dist/index.esm28.js +1 -1
  145. package/dist/index.esm30.js +2 -2
  146. package/dist/index.esm31.js +1 -1
  147. package/dist/index.esm32.js +3 -3
  148. package/dist/index.esm389.js +1 -1
  149. package/dist/index.esm394.js +1 -1
  150. package/dist/index.esm395.js +1 -1
  151. package/dist/index.esm415.js +9 -5
  152. package/dist/index.esm415.js.map +1 -1
  153. package/dist/index.esm416.js +18 -5
  154. package/dist/index.esm416.js.map +1 -1
  155. package/dist/index.esm417.js +8 -2
  156. package/dist/index.esm417.js.map +1 -1
  157. package/dist/index.esm418.js +5 -6
  158. package/dist/index.esm418.js.map +1 -1
  159. package/dist/index.esm419.js +5 -15
  160. package/dist/index.esm419.js.map +1 -1
  161. package/dist/index.esm420.js +5 -17
  162. package/dist/index.esm420.js.map +1 -1
  163. package/dist/index.esm424.js +1 -1
  164. package/dist/index.esm425.js +2 -2
  165. package/dist/index.esm426.js +3 -3
  166. package/dist/index.esm427.js +3 -3
  167. package/dist/index.esm428.js +1 -1
  168. package/dist/index.esm429.js +2 -2
  169. package/dist/index.esm430.js +1 -1
  170. package/dist/index.esm432.js +1 -1
  171. package/dist/index.esm434.js +7 -7
  172. package/dist/index.esm437.js +1 -1
  173. package/dist/index.esm442.js +5 -18
  174. package/dist/index.esm442.js.map +1 -1
  175. package/dist/index.esm443.js +9 -16
  176. package/dist/index.esm443.js.map +1 -1
  177. package/dist/index.esm444.js +6 -11
  178. package/dist/index.esm444.js.map +1 -1
  179. package/dist/index.esm445.js +3 -4
  180. package/dist/index.esm445.js.map +1 -1
  181. package/dist/index.esm446.js +84 -3
  182. package/dist/index.esm446.js.map +1 -1
  183. package/dist/index.esm447.js +34 -27
  184. package/dist/index.esm447.js.map +1 -1
  185. package/dist/index.esm448.js +27 -30
  186. package/dist/index.esm448.js.map +1 -1
  187. package/dist/index.esm449.js +13 -20
  188. package/dist/index.esm449.js.map +1 -1
  189. package/dist/index.esm45.js +16 -39
  190. package/dist/index.esm45.js.map +1 -1
  191. package/dist/index.esm450.js +16 -3
  192. package/dist/index.esm450.js.map +1 -1
  193. package/dist/index.esm451.js +11 -5
  194. package/dist/index.esm451.js.map +1 -1
  195. package/dist/index.esm452.js +4 -9
  196. package/dist/index.esm452.js.map +1 -1
  197. package/dist/index.esm453.js +3 -6
  198. package/dist/index.esm453.js.map +1 -1
  199. package/dist/index.esm454.js +33 -3
  200. package/dist/index.esm454.js.map +1 -1
  201. package/dist/index.esm455.js +26 -85
  202. package/dist/index.esm455.js.map +1 -1
  203. package/dist/index.esm456.js +3 -37
  204. package/dist/index.esm456.js.map +1 -1
  205. package/dist/index.esm46.js +16 -17
  206. package/dist/index.esm46.js.map +1 -1
  207. package/dist/index.esm47.js +7 -16
  208. package/dist/index.esm47.js.map +1 -1
  209. package/dist/index.esm48.js +39 -40
  210. package/dist/index.esm48.js.map +1 -1
  211. package/dist/index.esm50.js +8 -32
  212. package/dist/index.esm50.js.map +1 -1
  213. package/dist/index.esm51.js +28 -9
  214. package/dist/index.esm51.js.map +1 -1
  215. package/dist/index.esm52.js +58 -6
  216. package/dist/index.esm52.js.map +1 -1
  217. package/dist/index.esm53.js +41 -9
  218. package/dist/index.esm53.js.map +1 -1
  219. package/dist/index.esm54.js +11 -7
  220. package/dist/index.esm54.js.map +1 -1
  221. package/dist/index.esm55.js +30 -9
  222. package/dist/index.esm55.js.map +1 -1
  223. package/dist/index.esm56.js +37 -28
  224. package/dist/index.esm56.js.map +1 -1
  225. package/dist/index.esm57.js +64 -10
  226. package/dist/index.esm57.js.map +1 -1
  227. package/dist/index.esm58.js +9 -30
  228. package/dist/index.esm58.js.map +1 -1
  229. package/dist/index.esm59.js +88 -9
  230. package/dist/index.esm59.js.map +1 -1
  231. package/dist/index.esm60.js +34 -19
  232. package/dist/index.esm60.js.map +1 -1
  233. package/dist/index.esm61.js +127 -47
  234. package/dist/index.esm61.js.map +1 -1
  235. package/dist/index.esm62.js +28 -10
  236. package/dist/index.esm62.js.map +1 -1
  237. package/dist/index.esm63.js +42 -5
  238. package/dist/index.esm63.js.map +1 -1
  239. package/dist/index.esm64.js +7 -3
  240. package/dist/index.esm64.js.map +1 -1
  241. package/dist/index.esm65.js +47 -65
  242. package/dist/index.esm65.js.map +1 -1
  243. package/dist/index.esm66.js +10 -36
  244. package/dist/index.esm66.js.map +1 -1
  245. package/dist/index.esm67.js +5 -88
  246. package/dist/index.esm67.js.map +1 -1
  247. package/dist/index.esm68.js +6 -34
  248. package/dist/index.esm68.js.map +1 -1
  249. package/dist/index.esm69.js +8 -126
  250. package/dist/index.esm69.js.map +1 -1
  251. package/dist/index.esm70.js +7 -59
  252. package/dist/index.esm70.js.map +1 -1
  253. package/dist/index.esm71.js +27 -40
  254. package/dist/index.esm71.js.map +1 -1
  255. package/dist/index.esm72.js +32 -6
  256. package/dist/index.esm72.js.map +1 -1
  257. package/dist/index.esm73.js +5 -15
  258. package/dist/index.esm73.js.map +1 -1
  259. package/dist/index.esm74.js +20 -109
  260. package/dist/index.esm74.js.map +1 -1
  261. package/dist/index.esm76.js +15 -28
  262. package/dist/index.esm76.js.map +1 -1
  263. package/dist/index.esm77.js +109 -30
  264. package/dist/index.esm77.js.map +1 -1
  265. package/dist/index.esm9.js +1 -1
  266. package/package.json +1 -1
@@ -1,113 +1,24 @@
1
1
  "use client";
2
- import { j as s } from "./index.esm38.js";
3
- import N from "./index.esm44.js";
4
- import { AnimatedEyeIcon as v } from "./index.esm391.js";
5
- import { AnimatedClockIcon as f } from "./index.esm392.js";
6
- import a from "./index.esm393.js";
7
- import { FileTextIcon as g } from "./index.esm394.js";
8
- import { Typography as c } from "./index.esm9.js";
9
- import { EyeIcon as w } from "./index.esm395.js";
10
- function h(e) {
11
- return e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}K` : String(e);
12
- }
13
- function y(e) {
14
- if (e < 60) return `${e} мин`;
15
- const i = Math.floor(e / 60), r = e % 60;
16
- return r > 0 ? `${i} ч ${r} мин` : `${i} ч`;
17
- }
18
- function k({
19
- title: e,
20
- description: i,
21
- viewsCount: r,
22
- readingTimeMinutes: t,
23
- author: n,
24
- imageUrl: d,
25
- imageAlt: I,
26
- formattedDate: m,
27
- view: x,
28
- tags: o,
29
- href: j,
30
- className: p
31
- }) {
32
- return x === "row" ? /* @__PURE__ */ s.jsxs("div", { className: N(a.content, a["content--row"], p), children: [
33
- /* @__PURE__ */ s.jsx("div", { className: a.rowIcon, "aria-hidden": !0, children: /* @__PURE__ */ s.jsx(g, { size: 24, strokeWidth: 2 }) }),
34
- /* @__PURE__ */ s.jsxs("div", { className: a.rowBody, children: [
35
- o && /* @__PURE__ */ s.jsx("div", { className: a.tagsSlotRow, onClick: (l) => l.stopPropagation(), children: o }),
36
- /* @__PURE__ */ s.jsx(c, { variant: "h5", as: "h2", className: a.title, title: e, children: e }),
37
- /* @__PURE__ */ s.jsxs("div", { className: a.rowMeta, children: [
38
- /* @__PURE__ */ s.jsx(c, { variant: "caption", className: a.date, children: m }),
39
- r != null && /* @__PURE__ */ s.jsxs("span", { className: a.views, title: "Просмотры", children: [
40
- /* @__PURE__ */ s.jsx(w, { size: 14, strokeWidth: 2 }),
41
- /* @__PURE__ */ s.jsx("span", { children: h(r) })
42
- ] })
43
- ] })
44
- ] })
45
- ] }) : x === "card" ? /* @__PURE__ */ s.jsxs(
46
- "div",
47
- {
48
- className: N(
49
- a.content,
50
- a["content--card"],
51
- !d && a["content--card-no-image"],
52
- p
53
- ),
54
- children: [
55
- /* @__PURE__ */ s.jsxs("div", { className: a.cardBody, children: [
56
- n ? /* @__PURE__ */ s.jsxs("div", { className: a.author, onClick: (l) => l.stopPropagation(), children: [
57
- n.avatarUrl ? /* @__PURE__ */ s.jsx(
58
- "img",
59
- {
60
- src: n.avatarUrl,
61
- alt: "",
62
- className: a.authorAvatar,
63
- width: 32,
64
- height: 32
65
- }
66
- ) : /* @__PURE__ */ s.jsx("div", { className: a.authorAvatarPlaceholder, "aria-hidden": !0, children: n.name.charAt(0).toUpperCase() }),
67
- /* @__PURE__ */ s.jsx(c, { variant: "caption", className: a.authorName, children: n.name }),
68
- /* @__PURE__ */ s.jsx(c, { variant: "caption", className: a.date, children: m })
69
- ] }) : /* @__PURE__ */ s.jsx(c, { variant: "caption", className: a.date, children: m }),
70
- /* @__PURE__ */ s.jsx(c, { variant: "h5", as: "h2", className: a.title, title: e, children: e }),
71
- i && /* @__PURE__ */ s.jsx(c, { variant: "caption", className: a.description, children: i }),
72
- /* @__PURE__ */ s.jsxs("div", { className: a.cardFooter, children: [
73
- o && /* @__PURE__ */ s.jsx("div", { className: a.tagsSlotCard, onClick: (l) => l.stopPropagation(), children: o }),
74
- j ? /* @__PURE__ */ s.jsxs("a", { href: j, className: a.meta, children: [
75
- t != null && /* @__PURE__ */ s.jsxs("span", { className: a.readingTime, title: "Время чтения", children: [
76
- /* @__PURE__ */ s.jsx(f, { size: 14, className: a.clockIcon }),
77
- /* @__PURE__ */ s.jsx("span", { children: y(t) })
78
- ] }),
79
- r != null && /* @__PURE__ */ s.jsxs("span", { className: a.views, title: "Просмотры", children: [
80
- /* @__PURE__ */ s.jsx(v, { size: 14, className: a.eyeIcon }),
81
- /* @__PURE__ */ s.jsx("span", { children: h(r) })
82
- ] })
83
- ] }) : /* @__PURE__ */ s.jsxs("div", { className: a.meta, children: [
84
- t != null && /* @__PURE__ */ s.jsxs("span", { className: a.readingTime, title: "Время чтения", children: [
85
- /* @__PURE__ */ s.jsx(f, { size: 14, className: a.clockIcon }),
86
- /* @__PURE__ */ s.jsx("span", { children: y(t) })
87
- ] }),
88
- r != null && /* @__PURE__ */ s.jsxs("span", { className: a.views, title: "Просмотры", children: [
89
- /* @__PURE__ */ s.jsx(v, { size: 14, className: a.eyeIcon }),
90
- /* @__PURE__ */ s.jsx("span", { children: h(r) })
91
- ] })
92
- ] })
93
- ] })
94
- ] }),
95
- d && /* @__PURE__ */ s.jsx("div", { className: a.previewWrap, children: /* @__PURE__ */ s.jsx(
96
- "img",
97
- {
98
- src: d,
99
- alt: I || e,
100
- className: a.previewImage,
101
- decoding: "async",
102
- loading: "lazy"
103
- }
104
- ) })
105
- ]
106
- }
107
- ) : null;
108
- }
109
- k.displayName = "ArticlePreviewContent";
2
+ const c = "_callout_1vzc5_1", o = "_callout--tone-info_1vzc5_16", n = "_callout--tone-warning_1vzc5_23", t = "_callout--tone-success_1vzc5_30", l = "_icon_1vzc5_37", _ = "_iconSvg_1vzc5_49", e = "_text_1vzc5_55", a = {
3
+ callout: c,
4
+ "callout--tone-info": "_callout--tone-info_1vzc5_16",
5
+ calloutToneInfo: o,
6
+ "callout--tone-warning": "_callout--tone-warning_1vzc5_23",
7
+ calloutToneWarning: n,
8
+ "callout--tone-success": "_callout--tone-success_1vzc5_30",
9
+ calloutToneSuccess: t,
10
+ icon: l,
11
+ iconSvg: _,
12
+ text: e
13
+ };
110
14
  export {
111
- k as ArticlePreviewContent
15
+ c as callout,
16
+ o as calloutToneInfo,
17
+ t as calloutToneSuccess,
18
+ n as calloutToneWarning,
19
+ a as default,
20
+ l as icon,
21
+ _ as iconSvg,
22
+ e as text
112
23
  };
113
24
  //# sourceMappingURL=index.esm74.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm74.js","sources":["../src/components/content/ArticlePreview/components/ArticlePreviewContent/ArticlePreviewContent.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Typography } from '../../../../primitives/Typography';\nimport { EyeIcon, FileTextIcon } from '../../../../primitives/Icon/Icons';\nimport { AnimatedEyeIcon } from './AnimatedEyeIcon';\nimport type { ArticlePreviewAuthor } from '../../ArticlePreview';\nimport { AnimatedClockIcon } from './AnimatedClockIcon';\nimport styles from './ArticlePreviewContent.module.pcss';\n\nexport type ArticlePreviewContentView = 'card' | 'row';\n\nexport interface ArticlePreviewContentProps {\n title: string;\n description?: string;\n viewsCount?: number;\n readingTimeMinutes?: number;\n author?: ArticlePreviewAuthor;\n imageUrl?: string;\n imageAlt?: string;\n formattedDate: string;\n view: ArticlePreviewContentView;\n tags?: React.ReactNode;\n href?: string;\n className?: string;\n}\n\nfunction formatViews(count: number): string {\n if (count >= 1_000_000) return `${(count / 1_000_000).toFixed(1)}M`;\n if (count >= 1_000) return `${(count / 1_000).toFixed(1)}K`;\n return String(count);\n}\n\nfunction formatReadingTime(minutes: number): string {\n if (minutes < 60) return `${minutes} мин`;\n const h = Math.floor(minutes / 60);\n const m = minutes % 60;\n return m > 0 ? `${h} ч ${m} мин` : `${h} ч`;\n}\n\nexport function ArticlePreviewContent({\n title,\n description,\n viewsCount,\n readingTimeMinutes,\n author,\n imageUrl,\n imageAlt,\n formattedDate,\n view,\n tags,\n href,\n className,\n}: ArticlePreviewContentProps) {\n if (view === 'row') {\n return (\n <div className={cn(styles.content, styles['content--row'], className)}>\n <div className={styles.rowIcon} aria-hidden>\n <FileTextIcon size={24} strokeWidth={2} />\n </div>\n <div className={styles.rowBody}>\n {tags && (\n <div className={styles.tagsSlotRow} onClick={(e) => e.stopPropagation()}>\n {tags}\n </div>\n )}\n <Typography variant=\"h5\" as=\"h2\" className={styles.title} title={title}>\n {title}\n </Typography>\n <div className={styles.rowMeta}>\n <Typography variant=\"caption\" className={styles.date}>\n {formattedDate}\n </Typography>\n {viewsCount != null && (\n <span className={styles.views} title=\"Просмотры\">\n <EyeIcon size={14} strokeWidth={2} />\n <span>{formatViews(viewsCount)}</span>\n </span>\n )}\n </div>\n </div>\n </div>\n );\n }\n\n if (view === 'card') {\n return (\n <div\n className={cn(\n styles.content,\n styles['content--card'],\n !imageUrl && styles['content--card-no-image'],\n className\n )}\n >\n <div className={styles.cardBody}>\n {author ? (\n <div className={styles.author} onClick={(e) => e.stopPropagation()}>\n {author.avatarUrl ? (\n <img\n src={author.avatarUrl}\n alt=\"\"\n className={styles.authorAvatar}\n width={32}\n height={32}\n />\n ) : (\n <div className={styles.authorAvatarPlaceholder} aria-hidden>\n {author.name.charAt(0).toUpperCase()}\n </div>\n )}\n <Typography variant=\"caption\" className={styles.authorName}>\n {author.name}\n </Typography>\n <Typography variant=\"caption\" className={styles.date}>\n {formattedDate}\n </Typography>\n </div>\n ) : (\n <Typography variant=\"caption\" className={styles.date}>\n {formattedDate}\n </Typography>\n )}\n <Typography variant=\"h5\" as=\"h2\" className={styles.title} title={title}>\n {title}\n </Typography>\n {description && (\n <Typography variant=\"caption\" className={styles.description}>\n {description}\n </Typography>\n )}\n <div className={styles.cardFooter}>\n {tags && (\n <div className={styles.tagsSlotCard} onClick={(e) => e.stopPropagation()}>\n {tags}\n </div>\n )}\n {href ? (\n <a href={href} className={styles.meta}>\n {readingTimeMinutes != null && (\n <span className={styles.readingTime} title=\"Время чтения\">\n <AnimatedClockIcon size={14} className={styles.clockIcon} />\n <span>{formatReadingTime(readingTimeMinutes)}</span>\n </span>\n )}\n {viewsCount != null && (\n <span className={styles.views} title=\"Просмотры\">\n <AnimatedEyeIcon size={14} className={styles.eyeIcon} />\n <span>{formatViews(viewsCount)}</span>\n </span>\n )}\n </a>\n ) : (\n <div className={styles.meta}>\n {readingTimeMinutes != null && (\n <span className={styles.readingTime} title=\"Время чтения\">\n <AnimatedClockIcon size={14} className={styles.clockIcon} />\n <span>{formatReadingTime(readingTimeMinutes)}</span>\n </span>\n )}\n {viewsCount != null && (\n <span className={styles.views} title=\"Просмотры\">\n <AnimatedEyeIcon size={14} className={styles.eyeIcon} />\n <span>{formatViews(viewsCount)}</span>\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n {imageUrl && (\n <div className={styles.previewWrap}>\n <img\n src={imageUrl}\n alt={imageAlt || title}\n className={styles.previewImage}\n decoding=\"async\"\n loading=\"lazy\"\n />\n </div>\n )}\n </div>\n );\n }\n\n return null;\n}\n\nArticlePreviewContent.displayName = 'ArticlePreviewContent';\n"],"names":["formatViews","count","formatReadingTime","minutes","h","m","ArticlePreviewContent","title","description","viewsCount","readingTimeMinutes","author","imageUrl","imageAlt","formattedDate","view","tags","href","className","jsxs","cn","styles","jsx","FileTextIcon","e","Typography","EyeIcon","AnimatedClockIcon","AnimatedEyeIcon"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm74.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1,33 +1,20 @@
1
1
  "use client";
2
- const r = "_wrapper_1xv65_1", p = "_wrapper--error_1xv65_22", _ = "_wrapper--disabled_1xv65_31", e = "_input_1xv65_37", a = "_iconStart_1xv65_62", w = "_iconEnd_1xv65_63", t = "_wrapper--sm_1xv65_72", n = "_wrapper--md_1xv65_82", o = "_wrapper--lg_1xv65_92", s = "_wrapper--fullWidth_1xv65_102", d = {
3
- wrapper: r,
4
- "wrapper--error": "_wrapper--error_1xv65_22",
5
- wrapperError: p,
6
- "wrapper--disabled": "_wrapper--disabled_1xv65_31",
7
- wrapperDisabled: _,
8
- input: e,
9
- iconStart: a,
10
- iconEnd: w,
11
- "wrapper--sm": "_wrapper--sm_1xv65_72",
12
- wrapperSm: t,
13
- "wrapper--md": "_wrapper--md_1xv65_82",
14
- wrapperMd: n,
15
- "wrapper--lg": "_wrapper--lg_1xv65_92",
16
- wrapperLg: o,
17
- "wrapper--fullWidth": "_wrapper--fullWidth_1xv65_102",
18
- wrapperFullWidth: s
2
+ const o = "_root_iwlyv_1", t = "_root--interactive_iwlyv_16", r = "_cardLink_iwlyv_20", _ = "_root--card_iwlyv_41", i = "_root--row_iwlyv_50", c = {
3
+ root: o,
4
+ "root--interactive": "_root--interactive_iwlyv_16",
5
+ rootInteractive: t,
6
+ cardLink: r,
7
+ "root--card": "_root--card_iwlyv_41",
8
+ rootCard: _,
9
+ "root--row": "_root--row_iwlyv_50",
10
+ rootRow: i
19
11
  };
20
12
  export {
21
- d as default,
22
- w as iconEnd,
23
- a as iconStart,
24
- e as input,
25
- r as wrapper,
26
- _ as wrapperDisabled,
27
- p as wrapperError,
28
- s as wrapperFullWidth,
29
- o as wrapperLg,
30
- n as wrapperMd,
31
- t as wrapperSm
13
+ r as cardLink,
14
+ c as default,
15
+ o as root,
16
+ _ as rootCard,
17
+ t as rootInteractive,
18
+ i as rootRow
32
19
  };
33
20
  //# sourceMappingURL=index.esm76.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm76.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm76.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,34 +1,113 @@
1
1
  "use client";
2
- const e = "_root_1k5u2_1", t = "_title_1k5u2_7", l = "_list_1k5u2_13", _ = "_item_1k5u2_20", i = "_item--level3_1k5u2_25", k = "_link_1k5u2_25", v = "_item--level4_1k5u2_29", n = "_item--level5_1k5u2_33", m = "_item--level6_1k5u2_37", o = "_link--active_1k5u2_64", s = "_linkText_1k5u2_64", c = {
3
- root: e,
4
- title: t,
5
- list: l,
6
- item: _,
7
- "item--level3": "_item--level3_1k5u2_25",
8
- itemLevel3: i,
9
- link: k,
10
- "item--level4": "_item--level4_1k5u2_29",
11
- itemLevel4: v,
12
- "item--level5": "_item--level5_1k5u2_33",
13
- itemLevel5: n,
14
- "item--level6": "_item--level6_1k5u2_37",
15
- itemLevel6: m,
16
- "link--active": "_link--active_1k5u2_64",
17
- linkActive: o,
18
- linkText: s
19
- };
2
+ import { j as s } from "./index.esm38.js";
3
+ import N from "./index.esm44.js";
4
+ import { AnimatedEyeIcon as v } from "./index.esm391.js";
5
+ import { AnimatedClockIcon as f } from "./index.esm392.js";
6
+ import a from "./index.esm393.js";
7
+ import { FileTextIcon as g } from "./index.esm394.js";
8
+ import { Typography as c } from "./index.esm9.js";
9
+ import { EyeIcon as w } from "./index.esm395.js";
10
+ function h(e) {
11
+ return e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}K` : String(e);
12
+ }
13
+ function y(e) {
14
+ if (e < 60) return `${e} мин`;
15
+ const i = Math.floor(e / 60), r = e % 60;
16
+ return r > 0 ? `${i} ч ${r} мин` : `${i} ч`;
17
+ }
18
+ function k({
19
+ title: e,
20
+ description: i,
21
+ viewsCount: r,
22
+ readingTimeMinutes: t,
23
+ author: n,
24
+ imageUrl: d,
25
+ imageAlt: I,
26
+ formattedDate: m,
27
+ view: x,
28
+ tags: o,
29
+ href: j,
30
+ className: p
31
+ }) {
32
+ return x === "row" ? /* @__PURE__ */ s.jsxs("div", { className: N(a.content, a["content--row"], p), children: [
33
+ /* @__PURE__ */ s.jsx("div", { className: a.rowIcon, "aria-hidden": !0, children: /* @__PURE__ */ s.jsx(g, { size: 24, strokeWidth: 2 }) }),
34
+ /* @__PURE__ */ s.jsxs("div", { className: a.rowBody, children: [
35
+ o && /* @__PURE__ */ s.jsx("div", { className: a.tagsSlotRow, onClick: (l) => l.stopPropagation(), children: o }),
36
+ /* @__PURE__ */ s.jsx(c, { variant: "h5", as: "h2", className: a.title, title: e, children: e }),
37
+ /* @__PURE__ */ s.jsxs("div", { className: a.rowMeta, children: [
38
+ /* @__PURE__ */ s.jsx(c, { variant: "caption", className: a.date, children: m }),
39
+ r != null && /* @__PURE__ */ s.jsxs("span", { className: a.views, title: "Просмотры", children: [
40
+ /* @__PURE__ */ s.jsx(w, { size: 14, strokeWidth: 2 }),
41
+ /* @__PURE__ */ s.jsx("span", { children: h(r) })
42
+ ] })
43
+ ] })
44
+ ] })
45
+ ] }) : x === "card" ? /* @__PURE__ */ s.jsxs(
46
+ "div",
47
+ {
48
+ className: N(
49
+ a.content,
50
+ a["content--card"],
51
+ !d && a["content--card-no-image"],
52
+ p
53
+ ),
54
+ children: [
55
+ /* @__PURE__ */ s.jsxs("div", { className: a.cardBody, children: [
56
+ n ? /* @__PURE__ */ s.jsxs("div", { className: a.author, onClick: (l) => l.stopPropagation(), children: [
57
+ n.avatarUrl ? /* @__PURE__ */ s.jsx(
58
+ "img",
59
+ {
60
+ src: n.avatarUrl,
61
+ alt: "",
62
+ className: a.authorAvatar,
63
+ width: 32,
64
+ height: 32
65
+ }
66
+ ) : /* @__PURE__ */ s.jsx("div", { className: a.authorAvatarPlaceholder, "aria-hidden": !0, children: n.name.charAt(0).toUpperCase() }),
67
+ /* @__PURE__ */ s.jsx(c, { variant: "caption", className: a.authorName, children: n.name }),
68
+ /* @__PURE__ */ s.jsx(c, { variant: "caption", className: a.date, children: m })
69
+ ] }) : /* @__PURE__ */ s.jsx(c, { variant: "caption", className: a.date, children: m }),
70
+ /* @__PURE__ */ s.jsx(c, { variant: "h5", as: "h2", className: a.title, title: e, children: e }),
71
+ i && /* @__PURE__ */ s.jsx(c, { variant: "caption", className: a.description, children: i }),
72
+ /* @__PURE__ */ s.jsxs("div", { className: a.cardFooter, children: [
73
+ o && /* @__PURE__ */ s.jsx("div", { className: a.tagsSlotCard, onClick: (l) => l.stopPropagation(), children: o }),
74
+ j ? /* @__PURE__ */ s.jsxs("a", { href: j, className: a.meta, children: [
75
+ t != null && /* @__PURE__ */ s.jsxs("span", { className: a.readingTime, title: "Время чтения", children: [
76
+ /* @__PURE__ */ s.jsx(f, { size: 14, className: a.clockIcon }),
77
+ /* @__PURE__ */ s.jsx("span", { children: y(t) })
78
+ ] }),
79
+ r != null && /* @__PURE__ */ s.jsxs("span", { className: a.views, title: "Просмотры", children: [
80
+ /* @__PURE__ */ s.jsx(v, { size: 14, className: a.eyeIcon }),
81
+ /* @__PURE__ */ s.jsx("span", { children: h(r) })
82
+ ] })
83
+ ] }) : /* @__PURE__ */ s.jsxs("div", { className: a.meta, children: [
84
+ t != null && /* @__PURE__ */ s.jsxs("span", { className: a.readingTime, title: "Время чтения", children: [
85
+ /* @__PURE__ */ s.jsx(f, { size: 14, className: a.clockIcon }),
86
+ /* @__PURE__ */ s.jsx("span", { children: y(t) })
87
+ ] }),
88
+ r != null && /* @__PURE__ */ s.jsxs("span", { className: a.views, title: "Просмотры", children: [
89
+ /* @__PURE__ */ s.jsx(v, { size: 14, className: a.eyeIcon }),
90
+ /* @__PURE__ */ s.jsx("span", { children: h(r) })
91
+ ] })
92
+ ] })
93
+ ] })
94
+ ] }),
95
+ d && /* @__PURE__ */ s.jsx("div", { className: a.previewWrap, children: /* @__PURE__ */ s.jsx(
96
+ "img",
97
+ {
98
+ src: d,
99
+ alt: I || e,
100
+ className: a.previewImage,
101
+ decoding: "async",
102
+ loading: "lazy"
103
+ }
104
+ ) })
105
+ ]
106
+ }
107
+ ) : null;
108
+ }
109
+ k.displayName = "ArticlePreviewContent";
20
110
  export {
21
- c as default,
22
- _ as item,
23
- i as itemLevel3,
24
- v as itemLevel4,
25
- n as itemLevel5,
26
- m as itemLevel6,
27
- k as link,
28
- o as linkActive,
29
- s as linkText,
30
- l as list,
31
- e as root,
32
- t as title
111
+ k as ArticlePreviewContent
33
112
  };
34
113
  //# sourceMappingURL=index.esm77.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm77.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm77.js","sources":["../src/components/content/ArticlePreview/components/ArticlePreviewContent/ArticlePreviewContent.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Typography } from '../../../../primitives/Typography';\nimport { EyeIcon, FileTextIcon } from '../../../../primitives/Icon/Icons';\nimport { AnimatedEyeIcon } from './AnimatedEyeIcon';\nimport type { ArticlePreviewAuthor } from '../../ArticlePreview';\nimport { AnimatedClockIcon } from './AnimatedClockIcon';\nimport styles from './ArticlePreviewContent.module.pcss';\n\nexport type ArticlePreviewContentView = 'card' | 'row';\n\nexport interface ArticlePreviewContentProps {\n title: string;\n description?: string;\n viewsCount?: number;\n readingTimeMinutes?: number;\n author?: ArticlePreviewAuthor;\n imageUrl?: string;\n imageAlt?: string;\n formattedDate: string;\n view: ArticlePreviewContentView;\n tags?: React.ReactNode;\n href?: string;\n className?: string;\n}\n\nfunction formatViews(count: number): string {\n if (count >= 1_000_000) return `${(count / 1_000_000).toFixed(1)}M`;\n if (count >= 1_000) return `${(count / 1_000).toFixed(1)}K`;\n return String(count);\n}\n\nfunction formatReadingTime(minutes: number): string {\n if (minutes < 60) return `${minutes} мин`;\n const h = Math.floor(minutes / 60);\n const m = minutes % 60;\n return m > 0 ? `${h} ч ${m} мин` : `${h} ч`;\n}\n\nexport function ArticlePreviewContent({\n title,\n description,\n viewsCount,\n readingTimeMinutes,\n author,\n imageUrl,\n imageAlt,\n formattedDate,\n view,\n tags,\n href,\n className,\n}: ArticlePreviewContentProps) {\n if (view === 'row') {\n return (\n <div className={cn(styles.content, styles['content--row'], className)}>\n <div className={styles.rowIcon} aria-hidden>\n <FileTextIcon size={24} strokeWidth={2} />\n </div>\n <div className={styles.rowBody}>\n {tags && (\n <div className={styles.tagsSlotRow} onClick={(e) => e.stopPropagation()}>\n {tags}\n </div>\n )}\n <Typography variant=\"h5\" as=\"h2\" className={styles.title} title={title}>\n {title}\n </Typography>\n <div className={styles.rowMeta}>\n <Typography variant=\"caption\" className={styles.date}>\n {formattedDate}\n </Typography>\n {viewsCount != null && (\n <span className={styles.views} title=\"Просмотры\">\n <EyeIcon size={14} strokeWidth={2} />\n <span>{formatViews(viewsCount)}</span>\n </span>\n )}\n </div>\n </div>\n </div>\n );\n }\n\n if (view === 'card') {\n return (\n <div\n className={cn(\n styles.content,\n styles['content--card'],\n !imageUrl && styles['content--card-no-image'],\n className\n )}\n >\n <div className={styles.cardBody}>\n {author ? (\n <div className={styles.author} onClick={(e) => e.stopPropagation()}>\n {author.avatarUrl ? (\n <img\n src={author.avatarUrl}\n alt=\"\"\n className={styles.authorAvatar}\n width={32}\n height={32}\n />\n ) : (\n <div className={styles.authorAvatarPlaceholder} aria-hidden>\n {author.name.charAt(0).toUpperCase()}\n </div>\n )}\n <Typography variant=\"caption\" className={styles.authorName}>\n {author.name}\n </Typography>\n <Typography variant=\"caption\" className={styles.date}>\n {formattedDate}\n </Typography>\n </div>\n ) : (\n <Typography variant=\"caption\" className={styles.date}>\n {formattedDate}\n </Typography>\n )}\n <Typography variant=\"h5\" as=\"h2\" className={styles.title} title={title}>\n {title}\n </Typography>\n {description && (\n <Typography variant=\"caption\" className={styles.description}>\n {description}\n </Typography>\n )}\n <div className={styles.cardFooter}>\n {tags && (\n <div className={styles.tagsSlotCard} onClick={(e) => e.stopPropagation()}>\n {tags}\n </div>\n )}\n {href ? (\n <a href={href} className={styles.meta}>\n {readingTimeMinutes != null && (\n <span className={styles.readingTime} title=\"Время чтения\">\n <AnimatedClockIcon size={14} className={styles.clockIcon} />\n <span>{formatReadingTime(readingTimeMinutes)}</span>\n </span>\n )}\n {viewsCount != null && (\n <span className={styles.views} title=\"Просмотры\">\n <AnimatedEyeIcon size={14} className={styles.eyeIcon} />\n <span>{formatViews(viewsCount)}</span>\n </span>\n )}\n </a>\n ) : (\n <div className={styles.meta}>\n {readingTimeMinutes != null && (\n <span className={styles.readingTime} title=\"Время чтения\">\n <AnimatedClockIcon size={14} className={styles.clockIcon} />\n <span>{formatReadingTime(readingTimeMinutes)}</span>\n </span>\n )}\n {viewsCount != null && (\n <span className={styles.views} title=\"Просмотры\">\n <AnimatedEyeIcon size={14} className={styles.eyeIcon} />\n <span>{formatViews(viewsCount)}</span>\n </span>\n )}\n </div>\n )}\n </div>\n </div>\n {imageUrl && (\n <div className={styles.previewWrap}>\n <img\n src={imageUrl}\n alt={imageAlt || title}\n className={styles.previewImage}\n decoding=\"async\"\n loading=\"lazy\"\n />\n </div>\n )}\n </div>\n );\n }\n\n return null;\n}\n\nArticlePreviewContent.displayName = 'ArticlePreviewContent';\n"],"names":["formatViews","count","formatReadingTime","minutes","h","m","ArticlePreviewContent","title","description","viewsCount","readingTimeMinutes","author","imageUrl","imageAlt","formattedDate","view","tags","href","className","jsxs","cn","styles","jsx","FileTextIcon","e","Typography","EyeIcon","AnimatedClockIcon","AnimatedEyeIcon"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  import { j as f } from "./index.esm38.js";
3
3
  import a, { forwardRef as h } from "react";
4
4
  import l from "./index.esm44.js";
5
- import r from "./index.esm65.js";
5
+ import r from "./index.esm57.js";
6
6
  const c = h(
7
7
  ({ variant: t = "body", size: e, color: p, as: o, children: m, className: y, ...s }, n) => {
8
8
  const u = a.useMemo(() => o || (t.startsWith("h") ? t : t === "body" ? "p" : "span"), [o, t]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atme-lab/ui-kit",
3
- "version": "0.1.26",
3
+ "version": "0.1.27",
4
4
  "description": "Component library for personal projects",
5
5
  "type": "module",
6
6
  "sideEffects": false,