@atme-lab/ui-kit 0.1.19 → 0.1.20

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 (294) hide show
  1. package/dist/index.cjs10.js +1 -1
  2. package/dist/index.cjs11.js +1 -1
  3. package/dist/index.cjs12.js +1 -1
  4. package/dist/index.cjs13.js +1 -1
  5. package/dist/index.cjs14.js +1 -1
  6. package/dist/index.cjs15.js +1 -1
  7. package/dist/index.cjs16.js +1 -1
  8. package/dist/index.cjs17.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.cjs25.js +1 -1
  17. package/dist/index.cjs26.js +1 -1
  18. package/dist/index.cjs27.js +1 -1
  19. package/dist/index.cjs28.js +1 -1
  20. package/dist/index.cjs29.js +1 -1
  21. package/dist/index.cjs30.js +1 -1
  22. package/dist/index.cjs36.js +1 -1
  23. package/dist/index.cjs38.js +1 -1
  24. package/dist/index.cjs38.js.map +1 -1
  25. package/dist/index.cjs385.js +1 -1
  26. package/dist/index.cjs386.js +1 -1
  27. package/dist/index.cjs386.js.map +1 -1
  28. package/dist/index.cjs387.js +1 -1
  29. package/dist/index.cjs387.js.map +1 -1
  30. package/dist/index.cjs388.js +1 -1
  31. package/dist/index.cjs388.js.map +1 -1
  32. package/dist/index.cjs389.js +1 -1
  33. package/dist/index.cjs389.js.map +1 -1
  34. package/dist/index.cjs39.js +1 -1
  35. package/dist/index.cjs390.js +1 -1
  36. package/dist/index.cjs390.js.map +1 -1
  37. package/dist/index.cjs391.js +1 -1
  38. package/dist/index.cjs391.js.map +1 -1
  39. package/dist/index.cjs392.js +1 -1
  40. package/dist/index.cjs392.js.map +1 -1
  41. package/dist/index.cjs40.js +1 -9
  42. package/dist/index.cjs40.js.map +1 -1
  43. package/dist/index.cjs41.js +1 -22
  44. package/dist/index.cjs41.js.map +1 -1
  45. package/dist/index.cjs42.js +9 -1
  46. package/dist/index.cjs42.js.map +1 -1
  47. package/dist/index.cjs420.js +1 -1
  48. package/dist/index.cjs421.js +1 -1
  49. package/dist/index.cjs422.js +1 -1
  50. package/dist/index.cjs423.js +1 -1
  51. package/dist/index.cjs424.js +1 -1
  52. package/dist/index.cjs425.js +1 -1
  53. package/dist/index.cjs426.js +1 -1
  54. package/dist/index.cjs428.js +1 -1
  55. package/dist/index.cjs43.js +22 -1
  56. package/dist/index.cjs43.js.map +1 -1
  57. package/dist/index.cjs430.js +1 -1
  58. package/dist/index.cjs433.js +1 -1
  59. package/dist/index.cjs438.js +1 -1
  60. package/dist/index.cjs438.js.map +1 -1
  61. package/dist/index.cjs439.js +1 -1
  62. package/dist/index.cjs439.js.map +1 -1
  63. package/dist/index.cjs44.js +1 -1
  64. package/dist/index.cjs440.js +1 -1
  65. package/dist/index.cjs440.js.map +1 -1
  66. package/dist/index.cjs441.js +1 -1
  67. package/dist/index.cjs441.js.map +1 -1
  68. package/dist/index.cjs442.js +1 -1
  69. package/dist/index.cjs442.js.map +1 -1
  70. package/dist/index.cjs443.js +1 -1
  71. package/dist/index.cjs443.js.map +1 -1
  72. package/dist/index.cjs444.js +1 -1
  73. package/dist/index.cjs444.js.map +1 -1
  74. package/dist/index.cjs445.js +1 -1
  75. package/dist/index.cjs445.js.map +1 -1
  76. package/dist/index.cjs446.js +1 -1
  77. package/dist/index.cjs446.js.map +1 -1
  78. package/dist/index.cjs447.js +1 -1
  79. package/dist/index.cjs447.js.map +1 -1
  80. package/dist/index.cjs448.js +1 -1
  81. package/dist/index.cjs448.js.map +1 -1
  82. package/dist/index.cjs449.js +1 -1
  83. package/dist/index.cjs449.js.map +1 -1
  84. package/dist/index.cjs45.js +1 -1
  85. package/dist/index.cjs450.js +1 -1
  86. package/dist/index.cjs450.js.map +1 -1
  87. package/dist/index.cjs451.js +1 -1
  88. package/dist/index.cjs451.js.map +1 -1
  89. package/dist/index.cjs452.js +1 -1
  90. package/dist/index.cjs452.js.map +1 -1
  91. package/dist/index.cjs46.js +1 -1
  92. package/dist/index.cjs47.js +1 -1
  93. package/dist/index.cjs48.js +1 -1
  94. package/dist/index.cjs48.js.map +1 -1
  95. package/dist/index.cjs49.js +1 -1
  96. package/dist/index.cjs5.js +1 -1
  97. package/dist/index.cjs5.js.map +1 -1
  98. package/dist/index.cjs50.js +1 -1
  99. package/dist/index.cjs51.js +1 -1
  100. package/dist/index.cjs51.js.map +1 -1
  101. package/dist/index.cjs52.js +1 -1
  102. package/dist/index.cjs52.js.map +1 -1
  103. package/dist/index.cjs53.js +1 -1
  104. package/dist/index.cjs53.js.map +1 -1
  105. package/dist/index.cjs54.js +1 -1
  106. package/dist/index.cjs54.js.map +1 -1
  107. package/dist/index.cjs55.js +1 -1
  108. package/dist/index.cjs56.js +1 -1
  109. package/dist/index.cjs56.js.map +1 -1
  110. package/dist/index.cjs57.js +1 -1
  111. package/dist/index.cjs58.js +1 -1
  112. package/dist/index.cjs59.js +1 -1
  113. package/dist/index.cjs59.js.map +1 -1
  114. package/dist/index.cjs60.js +1 -1
  115. package/dist/index.cjs60.js.map +1 -1
  116. package/dist/index.cjs61.js +1 -1
  117. package/dist/index.cjs62.js +1 -1
  118. package/dist/index.cjs63.js +1 -1
  119. package/dist/index.cjs63.js.map +1 -1
  120. package/dist/index.cjs64.js +1 -1
  121. package/dist/index.cjs64.js.map +1 -1
  122. package/dist/index.cjs65.js +1 -1
  123. package/dist/index.cjs65.js.map +1 -1
  124. package/dist/index.cjs66.js +1 -1
  125. package/dist/index.cjs67.js +1 -1
  126. package/dist/index.cjs67.js.map +1 -1
  127. package/dist/index.cjs68.js +1 -1
  128. package/dist/index.cjs69.js +1 -1
  129. package/dist/index.cjs69.js.map +1 -1
  130. package/dist/index.cjs70.js +1 -1
  131. package/dist/index.cjs71.js +1 -1
  132. package/dist/index.cjs71.js.map +1 -1
  133. package/dist/index.cjs72.js +1 -1
  134. package/dist/index.cjs73.js +1 -1
  135. package/dist/index.cjs73.js.map +1 -1
  136. package/dist/index.cjs86.js +1 -1
  137. package/dist/index.cjs9.js +1 -1
  138. package/dist/index.esm10.js +3 -3
  139. package/dist/index.esm11.js +2 -2
  140. package/dist/index.esm12.js +4 -4
  141. package/dist/index.esm13.js +2 -2
  142. package/dist/index.esm14.js +2 -2
  143. package/dist/index.esm15.js +2 -2
  144. package/dist/index.esm16.js +2 -2
  145. package/dist/index.esm17.js +2 -2
  146. package/dist/index.esm18.js +2 -2
  147. package/dist/index.esm19.js +2 -2
  148. package/dist/index.esm20.js +2 -2
  149. package/dist/index.esm21.js +3 -3
  150. package/dist/index.esm22.js +3 -3
  151. package/dist/index.esm23.js +2 -2
  152. package/dist/index.esm24.js +3 -3
  153. package/dist/index.esm25.js +2 -2
  154. package/dist/index.esm26.js +2 -2
  155. package/dist/index.esm27.js +2 -2
  156. package/dist/index.esm28.js +3 -3
  157. package/dist/index.esm29.js +2 -2
  158. package/dist/index.esm30.js +4 -4
  159. package/dist/index.esm36.js +1 -1
  160. package/dist/index.esm38.js +5 -8
  161. package/dist/index.esm38.js.map +1 -1
  162. package/dist/index.esm385.js +2 -2
  163. package/dist/index.esm386.js +29 -5
  164. package/dist/index.esm386.js.map +1 -1
  165. package/dist/index.esm387.js +24 -25
  166. package/dist/index.esm387.js.map +1 -1
  167. package/dist/index.esm388.js +50 -29
  168. package/dist/index.esm388.js.map +1 -1
  169. package/dist/index.esm389.js +7 -24
  170. package/dist/index.esm389.js.map +1 -1
  171. package/dist/index.esm39.js +41 -2
  172. package/dist/index.esm39.js.map +1 -1
  173. package/dist/index.esm390.js +7 -50
  174. package/dist/index.esm390.js.map +1 -1
  175. package/dist/index.esm391.js +25 -7
  176. package/dist/index.esm391.js.map +1 -1
  177. package/dist/index.esm392.js +5 -7
  178. package/dist/index.esm392.js.map +1 -1
  179. package/dist/index.esm40.js +7 -25
  180. package/dist/index.esm40.js.map +1 -1
  181. package/dist/index.esm41.js +2 -602
  182. package/dist/index.esm41.js.map +1 -1
  183. package/dist/index.esm42.js +26 -5
  184. package/dist/index.esm42.js.map +1 -1
  185. package/dist/index.esm420.js +1 -1
  186. package/dist/index.esm421.js +2 -2
  187. package/dist/index.esm422.js +3 -3
  188. package/dist/index.esm423.js +3 -3
  189. package/dist/index.esm424.js +1 -1
  190. package/dist/index.esm425.js +2 -2
  191. package/dist/index.esm426.js +1 -1
  192. package/dist/index.esm428.js +1 -1
  193. package/dist/index.esm43.js +602 -65
  194. package/dist/index.esm43.js.map +1 -1
  195. package/dist/index.esm430.js +7 -7
  196. package/dist/index.esm433.js +1 -1
  197. package/dist/index.esm438.js +18 -5
  198. package/dist/index.esm438.js.map +1 -1
  199. package/dist/index.esm439.js +16 -9
  200. package/dist/index.esm439.js.map +1 -1
  201. package/dist/index.esm44.js +42 -36
  202. package/dist/index.esm44.js.map +1 -1
  203. package/dist/index.esm440.js +11 -6
  204. package/dist/index.esm440.js.map +1 -1
  205. package/dist/index.esm441.js +4 -3
  206. package/dist/index.esm441.js.map +1 -1
  207. package/dist/index.esm442.js +3 -84
  208. package/dist/index.esm442.js.map +1 -1
  209. package/dist/index.esm443.js +27 -34
  210. package/dist/index.esm443.js.map +1 -1
  211. package/dist/index.esm444.js +30 -27
  212. package/dist/index.esm444.js.map +1 -1
  213. package/dist/index.esm445.js +20 -13
  214. package/dist/index.esm445.js.map +1 -1
  215. package/dist/index.esm446.js +3 -16
  216. package/dist/index.esm446.js.map +1 -1
  217. package/dist/index.esm447.js +5 -11
  218. package/dist/index.esm447.js.map +1 -1
  219. package/dist/index.esm448.js +9 -4
  220. package/dist/index.esm448.js.map +1 -1
  221. package/dist/index.esm449.js +6 -3
  222. package/dist/index.esm449.js.map +1 -1
  223. package/dist/index.esm45.js +28 -8
  224. package/dist/index.esm45.js.map +1 -1
  225. package/dist/index.esm450.js +3 -33
  226. package/dist/index.esm450.js.map +1 -1
  227. package/dist/index.esm451.js +85 -26
  228. package/dist/index.esm451.js.map +1 -1
  229. package/dist/index.esm452.js +37 -3
  230. package/dist/index.esm452.js.map +1 -1
  231. package/dist/index.esm46.js +64 -8
  232. package/dist/index.esm46.js.map +1 -1
  233. package/dist/index.esm47.js +11 -47
  234. package/dist/index.esm48.js +30 -11
  235. package/dist/index.esm48.js.map +1 -1
  236. package/dist/index.esm49.js +39 -5
  237. package/dist/index.esm49.js.map +1 -1
  238. package/dist/index.esm5.js +2 -2
  239. package/dist/index.esm5.js.map +1 -1
  240. package/dist/index.esm50.js +16 -32
  241. package/dist/index.esm50.js.map +1 -1
  242. package/dist/index.esm51.js +16 -7
  243. package/dist/index.esm51.js.map +1 -1
  244. package/dist/index.esm52.js +5 -9
  245. package/dist/index.esm52.js.map +1 -1
  246. package/dist/index.esm53.js +14 -7
  247. package/dist/index.esm53.js.map +1 -1
  248. package/dist/index.esm54.js +87 -43
  249. package/dist/index.esm54.js.map +1 -1
  250. package/dist/index.esm55.js +32 -8
  251. package/dist/index.esm55.js.map +1 -1
  252. package/dist/index.esm56.js +41 -28
  253. package/dist/index.esm56.js.map +1 -1
  254. package/dist/index.esm57.js +36 -40
  255. package/dist/index.esm57.js.map +1 -1
  256. package/dist/index.esm58.js +6 -10
  257. package/dist/index.esm58.js.map +1 -1
  258. package/dist/index.esm59.js +9 -30
  259. package/dist/index.esm59.js.map +1 -1
  260. package/dist/index.esm60.js +7 -41
  261. package/dist/index.esm60.js.map +1 -1
  262. package/dist/index.esm61.js +8 -39
  263. package/dist/index.esm61.js.map +1 -1
  264. package/dist/index.esm62.js +8 -28
  265. package/dist/index.esm62.js.map +1 -1
  266. package/dist/index.esm63.js +85 -17
  267. package/dist/index.esm63.js.map +1 -1
  268. package/dist/index.esm64.js +35 -16
  269. package/dist/index.esm64.js.map +1 -1
  270. package/dist/index.esm65.js +120 -5
  271. package/dist/index.esm65.js.map +1 -1
  272. package/dist/index.esm66.js +47 -59
  273. package/dist/index.esm66.js.map +1 -1
  274. package/dist/index.esm67.js +11 -85
  275. package/dist/index.esm67.js.map +1 -1
  276. package/dist/index.esm68.js +5 -34
  277. package/dist/index.esm68.js.map +1 -1
  278. package/dist/index.esm69.js +41 -120
  279. package/dist/index.esm69.js.map +1 -1
  280. package/dist/index.esm70.js +8 -40
  281. package/dist/index.esm70.js.map +1 -1
  282. package/dist/index.esm71.js +28 -16
  283. package/dist/index.esm71.js.map +1 -1
  284. package/dist/index.esm72.js +58 -13
  285. package/dist/index.esm72.js.map +1 -1
  286. package/dist/index.esm73.js +16 -87
  287. package/dist/index.esm73.js.map +1 -1
  288. package/dist/index.esm86.js +1 -1
  289. package/dist/index.esm9.js +2 -2
  290. package/dist/server.cjs.js +1 -1
  291. package/dist/server.cjs.js.map +1 -1
  292. package/dist/server.esm.js +2 -2
  293. package/dist/server.esm.js.map +1 -1
  294. package/package.json +1 -1
@@ -1,33 +1,13 @@
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 t = "_quote_10dbe_1", e = "_text_10dbe_9", o = "_author_10dbe_13", _ = {
3
+ quote: t,
4
+ text: e,
5
+ author: o
19
6
  };
20
7
  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
8
+ o as author,
9
+ _ as default,
10
+ t as quote,
11
+ e as text
32
12
  };
33
13
  //# sourceMappingURL=index.esm62.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm62.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm62.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,21 +1,89 @@
1
1
  "use client";
2
- const t = "_likeButton_1nv5d_1", n = "_heartWrap_1nv5d_49", _ = "_heart_1nv5d_49", o = "_countWrap_1nv5d_112", e = "_count_1nv5d_112", u = {
3
- likeButton: t,
4
- "likeButton--disabled": "_likeButton--disabled_1nv5d_19",
5
- "likeButton--liked": "_likeButton--liked_1nv5d_25",
6
- "likeButton--pop": "_likeButton--pop_1nv5d_49",
7
- heartWrap: n,
8
- heart: _,
9
- countWrap: o,
10
- "countWrap--bump": "_countWrap--bump_1nv5d_119",
11
- count: e
12
- };
2
+ const G = [
3
+ [[0, 0], [1, 0], [0, 1]],
4
+ [[0, 0], [1, 0], [1, 1]],
5
+ [[0, 0], [0, 1], [1, 1]],
6
+ [[0, 1], [1, 0], [1, 1]]
7
+ ], B = 9301, w = 49297, m = 233280, F = 4, M = 1, k = 8, X = 0.12, b = 0.3, N = { circle: 0.2, dot: 0.35, triangle: 0.5, diamond: 0.62, cross: 0.75 }, z = 0.3, V = 0.3, Y = 450, j = 320, Z = 300, q = 0.8, v = 0.17, J = 2, K = 5, Q = 0.75;
8
+ function _(t, o, a) {
9
+ return Math.floor(a() * (o - t + 1)) + t;
10
+ }
11
+ function g(t) {
12
+ return () => (t = (t * B + w) % m, t / m);
13
+ }
14
+ function tt(t, o, a, I, i, c = "right", e = 2) {
15
+ return $(t, o, a, I, i, c, e);
16
+ }
17
+ function $(t, o, a, I, i, c, e) {
18
+ if (t <= 0 || o <= 0) return [];
19
+ const u = Math.max(F, a), h = Math.max(M, Math.floor(o / u)), s = Math.min(k, Math.max(M, e));
20
+ let r = 1;
21
+ for (; r < h && o / (r + 1) >= u; )
22
+ r++;
23
+ let n = o / r;
24
+ n > t && (n = t, r = Math.max(M, Math.floor(o / n)));
25
+ const C = t / s, d = o / s;
26
+ if (n = Math.min(n, C, d), n <= 0) return [];
27
+ r = Math.max(M, Math.floor(o / n));
28
+ const p = Math.max(M, Math.floor(t / n)), x = () => i() > X, L = (l) => _(Math.max(M, Math.floor(l * b)), l, i), f = c === "right" || c === "left", y = f ? r : p, T = f ? p : r, A = c === "right" || c === "bottom", S = [];
29
+ for (let l = 0; l < y; l++) {
30
+ if (!x()) continue;
31
+ const R = L(T), O = A ? T - R : 0, P = A ? T : R;
32
+ for (let E = O; E < P; E++) {
33
+ const D = f ? E : l, U = f ? l : E;
34
+ W(S, D * n, U * n, n, n, I, i);
35
+ }
36
+ }
37
+ return S;
38
+ }
39
+ function H(t) {
40
+ const o = t();
41
+ if (o < N.circle) return { shapeType: "circle" };
42
+ if (o < N.dot)
43
+ return { shapeType: "dot", dotScale: z + t() * V };
44
+ if (o < N.triangle)
45
+ return {
46
+ shapeType: "triangle",
47
+ triangleIndex: _(0, G.length - 1, t)
48
+ };
49
+ if (o < N.diamond) return { shapeType: "diamond" };
50
+ if (o < N.cross) return { shapeType: "cross" };
51
+ const a = _(J, K, t);
52
+ return {
53
+ shapeType: "stripes",
54
+ stripeDirection: t() > 0.35 ? 1 : 0,
55
+ stripeCount: a,
56
+ stripeMask: Array.from({ length: a }, () => t() > 1 - Q)
57
+ };
58
+ }
59
+ function W(t, o, a, I, i, c, e) {
60
+ const u = _(0, c - 1, e);
61
+ let h = _(0, c - 1, e);
62
+ for (; h === u; )
63
+ h = _(0, c - 1, e);
64
+ const s = H(e);
65
+ t.push({
66
+ x: o,
67
+ y: a,
68
+ width: I,
69
+ height: i,
70
+ bgColorIndex: u,
71
+ shapeColorIndex: h,
72
+ shapeType: s.shapeType,
73
+ triangleIndex: s.triangleIndex,
74
+ stripeDirection: s.stripeDirection,
75
+ stripeCount: s.stripeCount,
76
+ stripeMask: s.stripeMask,
77
+ animationDelay: Math.floor(e() * Y),
78
+ animationDuration: j + Math.floor(e() * Z),
79
+ animationScaleFrom: q + e() * v,
80
+ dotScale: s.dotScale
81
+ });
82
+ }
13
83
  export {
14
- e as count,
15
- o as countWrap,
16
- u as default,
17
- _ as heart,
18
- n as heartWrap,
19
- t as likeButton
84
+ G as TRIANGLE_TEMPLATES,
85
+ g as createSeededRandom,
86
+ tt as generatePattern,
87
+ _ as getRandomInt
20
88
  };
21
89
  //# sourceMappingURL=index.esm63.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm63.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm63.js","sources":["../src/components/content/DecorativeFrame/utils/patternGenerator.ts"],"sourcesContent":["export type Point2D = [number, number];\n\nexport const TRIANGLE_TEMPLATES: Point2D[][] = [\n [[0, 0], [1, 0], [0, 1]],\n [[0, 0], [1, 0], [1, 1]],\n [[0, 0], [0, 1], [1, 1]],\n [[0, 1], [1, 0], [1, 1]],\n];\n\nexport type ShapeType =\n | 'circle'\n | 'dot'\n | 'triangle'\n | 'diamond'\n | 'cross'\n | 'stripes'\n | null;\n\nexport interface CellConfig {\n x: number;\n y: number;\n width: number;\n height: number;\n bgColorIndex: number;\n shapeColorIndex: number;\n shapeType: ShapeType;\n triangleIndex?: number;\n stripeDirection?: 0 | 1;\n stripeCount?: number;\n stripeMask?: boolean[];\n animationDelay: number;\n animationDuration: number;\n animationScaleFrom?: number;\n dotScale?: number;\n}\n\nconst RNG_MULTIPLIER = 9301;\nconst RNG_INCREMENT = 49297;\nconst RNG_MODULUS = 233280;\n\nconst MIN_BOX_SIZE = 4;\nconst STRIP_LINES_MIN = 1;\nconst STRIP_LINES_MAX = 8;\nconst EMPTY_ROW_CHANCE = 0.12;\nconst FILL_COUNT_MIN_RATIO = 0.3;\n\nconst SHAPE_PROB = { circle: 0.2, dot: 0.35, triangle: 0.5, diamond: 0.62, cross: 0.75 } as const;\nconst DOT_SCALE_MIN = 0.3;\nconst DOT_SCALE_RANGE = 0.3;\nconst ANIM_DELAY_MAX = 450;\nconst ANIM_DURATION_MIN = 320;\nconst ANIM_DURATION_RANGE = 300;\nconst ANIM_SCALE_FROM_MIN = 0.8;\nconst ANIM_SCALE_FROM_RANGE = 0.17;\nconst STRIPE_COUNT_MIN = 2;\nconst STRIPE_COUNT_MAX = 5;\nconst STRIPE_VISIBLE_CHANCE = 0.75;\n\nexport function getRandomInt(min: number, max: number, rng: () => number): number {\n return Math.floor(rng() * (max - min + 1)) + min;\n}\n\nexport function createSeededRandom(seed: number): () => number {\n return () => {\n seed = (seed * RNG_MULTIPLIER + RNG_INCREMENT) % RNG_MODULUS;\n return seed / RNG_MODULUS;\n };\n}\n\nexport type PatternEdge = 'top' | 'right' | 'bottom' | 'left';\n\nexport function generatePattern(\n stripWidth: number,\n stripHeight: number,\n boxSize: number,\n colorCount: number,\n rng: () => number,\n edge: PatternEdge = 'right',\n stripDensity: number = 2\n): CellConfig[] {\n return generateEdgePattern(stripWidth, stripHeight, boxSize, colorCount, rng, edge, stripDensity);\n}\n\nfunction generateEdgePattern(\n stripWidth: number,\n stripHeight: number,\n boxSize: number,\n colorCount: number,\n rng: () => number,\n edge: PatternEdge,\n stripDensity: number\n): CellConfig[] {\n if (stripWidth <= 0 || stripHeight <= 0) return [];\n\n const safeBoxSize = Math.max(MIN_BOX_SIZE, boxSize);\n const maxRows = Math.max(STRIP_LINES_MIN, Math.floor(stripHeight / safeBoxSize));\n const minLines = Math.min(STRIP_LINES_MAX, Math.max(STRIP_LINES_MIN, stripDensity));\n\n let rowCount = 1;\n while (rowCount < maxRows && stripHeight / (rowCount + 1) >= safeBoxSize) {\n rowCount++;\n }\n\n let cellSize = stripHeight / rowCount;\n if (cellSize > stripWidth) {\n cellSize = stripWidth;\n rowCount = Math.max(STRIP_LINES_MIN, Math.floor(stripHeight / cellSize));\n }\n\n const maxCellByWidth = stripWidth / minLines;\n const maxCellByHeight = stripHeight / minLines;\n cellSize = Math.min(cellSize, maxCellByWidth, maxCellByHeight);\n if (cellSize <= 0) return [];\n\n rowCount = Math.max(STRIP_LINES_MIN, Math.floor(stripHeight / cellSize));\n const colCount = Math.max(STRIP_LINES_MIN, Math.floor(stripWidth / cellSize));\n\n const shouldFill = () => rng() > EMPTY_ROW_CHANCE;\n const fillCount = (max: number) =>\n getRandomInt(Math.max(STRIP_LINES_MIN, Math.floor(max * FILL_COUNT_MIN_RATIO)), max, rng);\n\n const isVerticalStrip = edge === 'right' || edge === 'left';\n const primaryCount = isVerticalStrip ? rowCount : colCount;\n const secondaryCount = isVerticalStrip ? colCount : rowCount;\n const isEndEdge = edge === 'right' || edge === 'bottom';\n\n const cells: CellConfig[] = [];\n\n for (let i = 0; i < primaryCount; i++) {\n if (!shouldFill()) continue;\n\n const count = fillCount(secondaryCount);\n const start = isEndEdge ? secondaryCount - count : 0;\n const end = isEndEdge ? secondaryCount : count;\n\n for (let j = start; j < end; j++) {\n const col = isVerticalStrip ? j : i;\n const row = isVerticalStrip ? i : j;\n pushCell(cells, col * cellSize, row * cellSize, cellSize, cellSize, colorCount, rng);\n }\n }\n\n return cells;\n}\n\nfunction pickShapeType(rng: () => number): {\n shapeType: ShapeType;\n triangleIndex?: number;\n stripeDirection?: 0 | 1;\n stripeCount?: number;\n stripeMask?: boolean[];\n dotScale?: number;\n} {\n const roll = rng();\n\n if (roll < SHAPE_PROB.circle) return { shapeType: 'circle' };\n if (roll < SHAPE_PROB.dot) {\n return { shapeType: 'dot', dotScale: DOT_SCALE_MIN + rng() * DOT_SCALE_RANGE };\n }\n if (roll < SHAPE_PROB.triangle) {\n return {\n shapeType: 'triangle',\n triangleIndex: getRandomInt(0, TRIANGLE_TEMPLATES.length - 1, rng),\n };\n }\n if (roll < SHAPE_PROB.diamond) return { shapeType: 'diamond' };\n if (roll < SHAPE_PROB.cross) return { shapeType: 'cross' };\n\n const stripeCount = getRandomInt(STRIPE_COUNT_MIN, STRIPE_COUNT_MAX, rng);\n return {\n shapeType: 'stripes',\n stripeDirection: rng() > 0.35 ? 1 : 0,\n stripeCount,\n stripeMask: Array.from({ length: stripeCount }, () => rng() > 1 - STRIPE_VISIBLE_CHANCE),\n };\n}\n\nfunction pushCell(\n cells: CellConfig[],\n x: number,\n y: number,\n width: number,\n height: number,\n colorCount: number,\n rng: () => number\n): void {\n const bgColorIndex = getRandomInt(0, colorCount - 1, rng);\n let shapeColorIndex = getRandomInt(0, colorCount - 1, rng);\n while (shapeColorIndex === bgColorIndex) {\n shapeColorIndex = getRandomInt(0, colorCount - 1, rng);\n }\n\n const shape = pickShapeType(rng);\n\n cells.push({\n x,\n y,\n width,\n height,\n bgColorIndex,\n shapeColorIndex,\n shapeType: shape.shapeType,\n triangleIndex: shape.triangleIndex,\n stripeDirection: shape.stripeDirection,\n stripeCount: shape.stripeCount,\n stripeMask: shape.stripeMask,\n animationDelay: Math.floor(rng() * ANIM_DELAY_MAX),\n animationDuration: ANIM_DURATION_MIN + Math.floor(rng() * ANIM_DURATION_RANGE),\n animationScaleFrom: ANIM_SCALE_FROM_MIN + rng() * ANIM_SCALE_FROM_RANGE,\n dotScale: shape.dotScale,\n });\n}\n"],"names":["TRIANGLE_TEMPLATES","RNG_MULTIPLIER","RNG_INCREMENT","RNG_MODULUS","MIN_BOX_SIZE","STRIP_LINES_MIN","STRIP_LINES_MAX","EMPTY_ROW_CHANCE","FILL_COUNT_MIN_RATIO","SHAPE_PROB","DOT_SCALE_MIN","DOT_SCALE_RANGE","ANIM_DELAY_MAX","ANIM_DURATION_MIN","ANIM_DURATION_RANGE","ANIM_SCALE_FROM_MIN","ANIM_SCALE_FROM_RANGE","STRIPE_COUNT_MIN","STRIPE_COUNT_MAX","STRIPE_VISIBLE_CHANCE","getRandomInt","min","max","rng","createSeededRandom","seed","generatePattern","stripWidth","stripHeight","boxSize","colorCount","edge","stripDensity","generateEdgePattern","safeBoxSize","maxRows","minLines","rowCount","cellSize","maxCellByWidth","maxCellByHeight","colCount","shouldFill","fillCount","isVerticalStrip","primaryCount","secondaryCount","isEndEdge","cells","i","count","start","end","j","col","row","pushCell","pickShapeType","roll","stripeCount","x","y","width","height","bgColorIndex","shapeColorIndex","shape"],"mappings":"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"}
@@ -1,20 +1,39 @@
1
1
  "use client";
2
- import { j as t } from "./index.esm36.js";
3
- import n from "./index.esm416.js";
4
- const a = ({
5
- filled: r = !1,
6
- decorative: o = !0,
7
- ...e
8
- }) => /* @__PURE__ */ t.jsx(
9
- n,
10
- {
11
- fill: r ? "currentColor" : "none",
12
- stroke: "currentColor",
13
- "aria-hidden": o,
14
- ...e
15
- }
16
- );
2
+ const t = "_root_di5ju_1", o = "_root--edge-top_di5ju_7", r = "_root--edge-bottom_di5ju_11", i = "_root--edge-left_di5ju_15", _ = "_root--edge-right_di5ju_19", e = "_content_di5ju_23", s = "_strip_di5ju_29", d = "_strip--top_di5ju_37", p = "_strip--bottom_di5ju_38", g = "_strip--left_di5ju_43", u = "_strip--right_di5ju_44", j = "_stripMirror_di5ju_49", n = {
3
+ root: t,
4
+ "root--edge-top": "_root--edge-top_di5ju_7",
5
+ rootEdgeTop: o,
6
+ "root--edge-bottom": "_root--edge-bottom_di5ju_11",
7
+ rootEdgeBottom: r,
8
+ "root--edge-left": "_root--edge-left_di5ju_15",
9
+ rootEdgeLeft: i,
10
+ "root--edge-right": "_root--edge-right_di5ju_19",
11
+ rootEdgeRight: _,
12
+ content: e,
13
+ strip: s,
14
+ "strip--top": "_strip--top_di5ju_37",
15
+ stripTop: d,
16
+ "strip--bottom": "_strip--bottom_di5ju_38",
17
+ stripBottom: p,
18
+ "strip--left": "_strip--left_di5ju_43",
19
+ stripLeft: g,
20
+ "strip--right": "_strip--right_di5ju_44",
21
+ stripRight: u,
22
+ stripMirror: j
23
+ };
17
24
  export {
18
- a as HeartIcon
25
+ e as content,
26
+ n as default,
27
+ t as root,
28
+ r as rootEdgeBottom,
29
+ i as rootEdgeLeft,
30
+ _ as rootEdgeRight,
31
+ o as rootEdgeTop,
32
+ s as strip,
33
+ p as stripBottom,
34
+ g as stripLeft,
35
+ j as stripMirror,
36
+ u as stripRight,
37
+ d as stripTop
19
38
  };
20
39
  //# sourceMappingURL=index.esm64.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm64.js","sources":["../src/components/primitives/Icon/Icons/lucide/HeartIcon.tsx"],"sourcesContent":["import React from \"react\";\nimport { Heart, type LucideProps } from \"lucide-react\";\n\nexport interface HeartIconProps extends LucideProps {\n /** Залитое сердечко (лайк поставлен) */\n filled?: boolean;\n decorative?: boolean;\n className?: string;\n}\n\nexport const HeartIcon: React.FC<HeartIconProps> = ({\n filled = false,\n decorative = true,\n ...props\n}) => (\n <Heart\n fill={filled ? \"currentColor\" : \"none\"}\n stroke=\"currentColor\"\n aria-hidden={decorative}\n {...props}\n />\n);\n"],"names":["HeartIcon","filled","decorative","props","jsx","Heart"],"mappings":";;;AAUO,MAAMA,IAAsC,CAAC;AAAA,EAClD,QAAAC,IAAS;AAAA,EACT,YAAAC,IAAa;AAAA,EACb,GAAGC;AACL,MACEC,gBAAAA,EAAAA;AAAAA,EAACC;AAAA,EAAA;AAAA,IACC,MAAMJ,IAAS,iBAAiB;AAAA,IAChC,QAAO;AAAA,IACP,eAAaC;AAAA,IACZ,GAAGC;AAAA,EAAA;AACN;"}
1
+ {"version":3,"file":"index.esm64.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,124 @@
1
1
  "use client";
2
- const s = "_grid_16nbv_1", t = {
3
- grid: s
4
- };
2
+ import { j as s } from "./index.esm36.js";
3
+ import { TRIANGLE_TEMPLATES as u } from "./index.esm63.js";
4
+ import e from "./index.esm391.js";
5
+ function w(i) {
6
+ return `polygon(${i.map(([c, t]) => `${c * 100}% ${t * 100}%`).join(", ")})`;
7
+ }
8
+ function D({ cell: i, colors: l }) {
9
+ const c = l[i.bgColorIndex] ?? l[0], t = l[i.shapeColorIndex] ?? l[1], o = Math.min(i.width, i.height), {
10
+ x: y,
11
+ y: x,
12
+ width: C,
13
+ height: j,
14
+ shapeType: a,
15
+ triangleIndex: d,
16
+ stripeDirection: h,
17
+ stripeCount: r = 4,
18
+ stripeMask: b,
19
+ animationDelay: v,
20
+ animationDuration: N,
21
+ animationScaleFrom: f = 0.9,
22
+ dotScale: p = 0.45
23
+ } = i, m = h === 1 ? o : o / (r * 2 - 1), g = h === 1 ? o / (r * 2 - 1) : o, $ = b ?? Array(r).fill(!0), k = {
24
+ position: "absolute",
25
+ left: y,
26
+ top: x,
27
+ width: C,
28
+ height: j,
29
+ "--cell-delay": `${v}ms`,
30
+ "--cell-duration": `${N}ms`,
31
+ "--cell-scale-from": f
32
+ };
33
+ return /* @__PURE__ */ s.jsxs(
34
+ "div",
35
+ {
36
+ className: e.cell,
37
+ style: k,
38
+ "aria-hidden": !0,
39
+ children: [
40
+ /* @__PURE__ */ s.jsx("div", { className: e.bg, style: { backgroundColor: c } }),
41
+ a === "circle" && /* @__PURE__ */ s.jsx(
42
+ "div",
43
+ {
44
+ className: e.shapeCircle,
45
+ style: { backgroundColor: t }
46
+ }
47
+ ),
48
+ a === "dot" && /* @__PURE__ */ s.jsx(
49
+ "div",
50
+ {
51
+ className: e.shapeDot,
52
+ style: {
53
+ backgroundColor: t,
54
+ width: `${p * 100}%`,
55
+ height: `${p * 100}%`
56
+ }
57
+ }
58
+ ),
59
+ a === "triangle" && d !== void 0 && u[d] && /* @__PURE__ */ s.jsx(
60
+ "div",
61
+ {
62
+ className: e.shapeTriangle,
63
+ style: {
64
+ backgroundColor: t,
65
+ clipPath: w(u[d])
66
+ }
67
+ }
68
+ ),
69
+ a === "diamond" && /* @__PURE__ */ s.jsx(
70
+ "div",
71
+ {
72
+ className: e.shapeDiamond,
73
+ style: { backgroundColor: t }
74
+ }
75
+ ),
76
+ a === "cross" && /* @__PURE__ */ s.jsxs("div", { className: e.shapeCross, children: [
77
+ /* @__PURE__ */ s.jsx(
78
+ "div",
79
+ {
80
+ className: e.crossBar,
81
+ style: { backgroundColor: t }
82
+ }
83
+ ),
84
+ /* @__PURE__ */ s.jsx(
85
+ "div",
86
+ {
87
+ className: e.crossBarVertical,
88
+ style: { backgroundColor: t }
89
+ }
90
+ )
91
+ ] }),
92
+ a === "stripes" && /* @__PURE__ */ s.jsx("div", { className: e.stripes, children: Array.from(
93
+ { length: r },
94
+ (P, n) => $[n] ? /* @__PURE__ */ s.jsx(
95
+ "div",
96
+ {
97
+ className: e.stripe,
98
+ style: {
99
+ backgroundColor: t,
100
+ ...h === 1 ? {
101
+ top: `${2 * n * g / o * 100}%`,
102
+ left: 0,
103
+ width: "100%",
104
+ height: `${g / o * 100}%`
105
+ } : {
106
+ left: `${2 * n * m / o * 100}%`,
107
+ top: 0,
108
+ width: `${m / o * 100}%`,
109
+ height: "100%"
110
+ }
111
+ }
112
+ },
113
+ n
114
+ ) : null
115
+ ) })
116
+ ]
117
+ }
118
+ );
119
+ }
120
+ D.displayName = "PatternCell";
5
121
  export {
6
- t as default,
7
- s as grid
122
+ D as PatternCell
8
123
  };
9
124
  //# sourceMappingURL=index.esm65.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm65.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.esm65.js","sources":["../src/components/content/DecorativeFrame/components/PatternCell/PatternCell.tsx"],"sourcesContent":["import React from 'react';\nimport type { CellConfig, Point2D } from '../../utils/patternGenerator';\nimport { TRIANGLE_TEMPLATES } from '../../utils/patternGenerator';\nimport styles from './PatternCell.module.pcss';\n\nexport interface PatternCellProps {\n cell: CellConfig;\n colors: string[];\n}\n\nfunction polygonClipPath(template: Point2D[]): string {\n const points = template.map(([px, py]) => `${px * 100}% ${py * 100}%`).join(', ');\n return `polygon(${points})`;\n}\n\nexport function PatternCell({ cell, colors }: PatternCellProps) {\n const bgColor = colors[cell.bgColorIndex] ?? colors[0];\n const shapeColor = colors[cell.shapeColorIndex] ?? colors[1];\n const size = Math.min(cell.width, cell.height);\n const {\n x,\n y,\n width: cellWidth,\n height: cellHeight,\n shapeType,\n triangleIndex,\n stripeDirection,\n stripeCount = 4,\n stripeMask,\n animationDelay,\n animationDuration,\n animationScaleFrom = 0.9,\n dotScale = 0.45,\n } = cell;\n\n const stripeWidth =\n stripeDirection === 1 ? size : size / (stripeCount * 2 - 1);\n const stripeHeight =\n stripeDirection === 1 ? size / (stripeCount * 2 - 1) : size;\n const visibleStripes = stripeMask ?? Array(stripeCount).fill(true);\n\n const cellStyle: React.CSSProperties = {\n position: 'absolute',\n left: x,\n top: y,\n width: cellWidth,\n height: cellHeight,\n '--cell-delay': `${animationDelay}ms`,\n '--cell-duration': `${animationDuration}ms`,\n '--cell-scale-from': animationScaleFrom,\n } as React.CSSProperties;\n\n return (\n <div\n className={styles.cell}\n style={cellStyle}\n aria-hidden\n >\n <div className={styles.bg} style={{ backgroundColor: bgColor }} />\n\n {shapeType === 'circle' && (\n <div\n className={styles.shapeCircle}\n style={{ backgroundColor: shapeColor }}\n />\n )}\n\n {shapeType === 'dot' && (\n <div\n className={styles.shapeDot}\n style={{\n backgroundColor: shapeColor,\n width: `${dotScale * 100}%`,\n height: `${dotScale * 100}%`,\n }}\n />\n )}\n\n {shapeType === 'triangle' &&\n triangleIndex !== undefined &&\n TRIANGLE_TEMPLATES[triangleIndex] && (\n <div\n className={styles.shapeTriangle}\n style={{\n backgroundColor: shapeColor,\n clipPath: polygonClipPath(TRIANGLE_TEMPLATES[triangleIndex]!),\n }}\n />\n )}\n\n {shapeType === 'diamond' && (\n <div\n className={styles.shapeDiamond}\n style={{ backgroundColor: shapeColor }}\n />\n )}\n\n {shapeType === 'cross' && (\n <div className={styles.shapeCross}>\n <div\n className={styles.crossBar}\n style={{ backgroundColor: shapeColor }}\n />\n <div\n className={styles.crossBarVertical}\n style={{ backgroundColor: shapeColor }}\n />\n </div>\n )}\n\n {shapeType === 'stripes' && (\n <div className={styles.stripes}>\n {Array.from({ length: stripeCount }, (_, i) =>\n visibleStripes[i] ? (\n <div\n key={i}\n className={styles.stripe}\n style={{\n backgroundColor: shapeColor,\n ...(stripeDirection === 1\n ? {\n top: `${((2 * i * stripeHeight) / size) * 100}%`,\n left: 0,\n width: '100%',\n height: `${(stripeHeight / size) * 100}%`,\n }\n : {\n left: `${((2 * i * stripeWidth) / size) * 100}%`,\n top: 0,\n width: `${(stripeWidth / size) * 100}%`,\n height: '100%',\n }),\n }}\n />\n ) : null\n )}\n </div>\n )}\n </div>\n );\n}\n\nPatternCell.displayName = 'PatternCell';\n"],"names":["polygonClipPath","template","px","py","PatternCell","cell","colors","bgColor","shapeColor","size","x","y","cellWidth","cellHeight","shapeType","triangleIndex","stripeDirection","stripeCount","stripeMask","animationDelay","animationDuration","animationScaleFrom","dotScale","stripeWidth","stripeHeight","visibleStripes","cellStyle","jsxs","styles","jsx","TRIANGLE_TEMPLATES","_","i"],"mappings":"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"}
@@ -1,63 +1,51 @@
1
1
  "use client";
2
- const t = "_stack_45gcn_1", c = "_stack--direction-row_45gcn_6", s = "_stack--direction-column_45gcn_10", a = "_stack--direction-row-reverse_45gcn_14", n = "_stack--direction-column-reverse_45gcn_18", e = "_stack--align-start_45gcn_23", r = "_stack--align-end_45gcn_27", _ = "_stack--align-center_45gcn_31", i = "_stack--align-stretch_45gcn_35", k = "_stack--align-baseline_45gcn_39", o = "_stack--justify-start_45gcn_44", g = "_stack--justify-end_45gcn_48", l = "_stack--justify-center_45gcn_52", u = "_stack--justify-between_45gcn_56", y = "_stack--justify-around_45gcn_60", w = "_stack--justify-evenly_45gcn_64", f = "_stack--wrap-nowrap_45gcn_69", p = "_stack--wrap-wrap_45gcn_73", d = "_stack--wrap-wrap-reverse_45gcn_77", v = {
3
- stack: t,
4
- "stack--direction-row": "_stack--direction-row_45gcn_6",
5
- stackDirectionRow: c,
6
- "stack--direction-column": "_stack--direction-column_45gcn_10",
7
- stackDirectionColumn: s,
8
- "stack--direction-row-reverse": "_stack--direction-row-reverse_45gcn_14",
9
- stackDirectionRowReverse: a,
10
- "stack--direction-column-reverse": "_stack--direction-column-reverse_45gcn_18",
11
- stackDirectionColumnReverse: n,
12
- "stack--align-start": "_stack--align-start_45gcn_23",
13
- stackAlignStart: e,
14
- "stack--align-end": "_stack--align-end_45gcn_27",
15
- stackAlignEnd: r,
16
- "stack--align-center": "_stack--align-center_45gcn_31",
17
- stackAlignCenter: _,
18
- "stack--align-stretch": "_stack--align-stretch_45gcn_35",
19
- stackAlignStretch: i,
20
- "stack--align-baseline": "_stack--align-baseline_45gcn_39",
21
- stackAlignBaseline: k,
22
- "stack--justify-start": "_stack--justify-start_45gcn_44",
23
- stackJustifyStart: o,
24
- "stack--justify-end": "_stack--justify-end_45gcn_48",
25
- stackJustifyEnd: g,
26
- "stack--justify-center": "_stack--justify-center_45gcn_52",
27
- stackJustifyCenter: l,
28
- "stack--justify-between": "_stack--justify-between_45gcn_56",
29
- stackJustifyBetween: u,
30
- "stack--justify-around": "_stack--justify-around_45gcn_60",
31
- stackJustifyAround: y,
32
- "stack--justify-evenly": "_stack--justify-evenly_45gcn_64",
33
- stackJustifyEvenly: w,
34
- "stack--wrap-nowrap": "_stack--wrap-nowrap_45gcn_69",
35
- stackWrapNowrap: f,
36
- "stack--wrap-wrap": "_stack--wrap-wrap_45gcn_73",
37
- stackWrapWrap: p,
38
- "stack--wrap-wrap-reverse": "_stack--wrap-wrap-reverse_45gcn_77",
39
- stackWrapWrapReverse: d
40
- };
2
+ import { codeToHtml as n, createHighlighter as a } from "./index.esm79.js";
3
+ import { createOnigurumaEngine as o, loadWasm as i } from "./index.esm80.js";
4
+ import { addClassToHast as s, applyColorReplacements as g, createBundledHighlighter as m, createHighlighterCore as d, createPositionConverter as h, createShikiInternal as c, createShikiInternalSync as p, createSingletonShorthands as u, flatTokenVariants as T, getTokenStyleObject as k, guessEmbeddedLanguages as f, hastToHtml as S, isNoneTheme as b, isPlainLang as H, isSpecialLang as L, isSpecialTheme as x, makeSingletonHighlighter as y, normalizeGetter as C, normalizeTheme as z, resolveColorReplacements as I, splitLines as A, splitToken as E, splitTokens as W, stringifyTokenStyle as v, toArray as B, tokenizeAnsiWithTheme as D, tokenizeWithTheme as O, tokensToHast as P, transformerDecorations as R, warnDeprecated as j } from "./index.esm81.js";
5
+ import { bundledLanguages as G, bundledLanguagesAlias as N, bundledLanguagesBase as V, bundledLanguagesInfo as q } from "./index.esm82.js";
6
+ import { bundledThemes as J, bundledThemesInfo as K } from "./index.esm83.js";
7
+ import { ShikiError as Q } from "./index.esm84.js";
41
8
  export {
42
- v as default,
43
- t as stack,
44
- k as stackAlignBaseline,
45
- _ as stackAlignCenter,
46
- r as stackAlignEnd,
47
- e as stackAlignStart,
48
- i as stackAlignStretch,
49
- s as stackDirectionColumn,
50
- n as stackDirectionColumnReverse,
51
- c as stackDirectionRow,
52
- a as stackDirectionRowReverse,
53
- y as stackJustifyAround,
54
- u as stackJustifyBetween,
55
- l as stackJustifyCenter,
56
- g as stackJustifyEnd,
57
- w as stackJustifyEvenly,
58
- o as stackJustifyStart,
59
- f as stackWrapNowrap,
60
- p as stackWrapWrap,
61
- d as stackWrapWrapReverse
9
+ Q as ShikiError,
10
+ s as addClassToHast,
11
+ g as applyColorReplacements,
12
+ G as bundledLanguages,
13
+ N as bundledLanguagesAlias,
14
+ V as bundledLanguagesBase,
15
+ q as bundledLanguagesInfo,
16
+ J as bundledThemes,
17
+ K as bundledThemesInfo,
18
+ n as codeToHtml,
19
+ m as createBundledHighlighter,
20
+ a as createHighlighter,
21
+ d as createHighlighterCore,
22
+ o as createOnigurumaEngine,
23
+ h as createPositionConverter,
24
+ c as createShikiInternal,
25
+ p as createShikiInternalSync,
26
+ u as createSingletonShorthands,
27
+ T as flatTokenVariants,
28
+ k as getTokenStyleObject,
29
+ f as guessEmbeddedLanguages,
30
+ S as hastToHtml,
31
+ b as isNoneTheme,
32
+ H as isPlainLang,
33
+ L as isSpecialLang,
34
+ x as isSpecialTheme,
35
+ i as loadWasm,
36
+ y as makeSingletonHighlighter,
37
+ C as normalizeGetter,
38
+ z as normalizeTheme,
39
+ I as resolveColorReplacements,
40
+ A as splitLines,
41
+ E as splitToken,
42
+ W as splitTokens,
43
+ v as stringifyTokenStyle,
44
+ B as toArray,
45
+ D as tokenizeAnsiWithTheme,
46
+ O as tokenizeWithTheme,
47
+ P as tokensToHast,
48
+ R as transformerDecorations,
49
+ j as warnDeprecated
62
50
  };
63
51
  //# sourceMappingURL=index.esm66.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm66.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm66.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,89 +1,15 @@
1
1
  "use client";
2
- const G = [
3
- [[0, 0], [1, 0], [0, 1]],
4
- [[0, 0], [1, 0], [1, 1]],
5
- [[0, 0], [0, 1], [1, 1]],
6
- [[0, 1], [1, 0], [1, 1]]
7
- ], B = 9301, w = 49297, m = 233280, F = 4, M = 1, k = 8, X = 0.12, b = 0.3, N = { circle: 0.2, dot: 0.35, triangle: 0.5, diamond: 0.62, cross: 0.75 }, z = 0.3, V = 0.3, Y = 450, j = 320, Z = 300, q = 0.8, v = 0.17, J = 2, K = 5, Q = 0.75;
8
- function _(t, o, a) {
9
- return Math.floor(a() * (o - t + 1)) + t;
10
- }
11
- function g(t) {
12
- return () => (t = (t * B + w) % m, t / m);
13
- }
14
- function tt(t, o, a, I, i, c = "right", e = 2) {
15
- return $(t, o, a, I, i, c, e);
16
- }
17
- function $(t, o, a, I, i, c, e) {
18
- if (t <= 0 || o <= 0) return [];
19
- const u = Math.max(F, a), h = Math.max(M, Math.floor(o / u)), s = Math.min(k, Math.max(M, e));
20
- let r = 1;
21
- for (; r < h && o / (r + 1) >= u; )
22
- r++;
23
- let n = o / r;
24
- n > t && (n = t, r = Math.max(M, Math.floor(o / n)));
25
- const C = t / s, d = o / s;
26
- if (n = Math.min(n, C, d), n <= 0) return [];
27
- r = Math.max(M, Math.floor(o / n));
28
- const p = Math.max(M, Math.floor(t / n)), x = () => i() > X, L = (l) => _(Math.max(M, Math.floor(l * b)), l, i), f = c === "right" || c === "left", y = f ? r : p, T = f ? p : r, A = c === "right" || c === "bottom", S = [];
29
- for (let l = 0; l < y; l++) {
30
- if (!x()) continue;
31
- const R = L(T), O = A ? T - R : 0, P = A ? T : R;
32
- for (let E = O; E < P; E++) {
33
- const D = f ? E : l, U = f ? l : E;
34
- W(S, D * n, U * n, n, n, I, i);
35
- }
36
- }
37
- return S;
38
- }
39
- function H(t) {
40
- const o = t();
41
- if (o < N.circle) return { shapeType: "circle" };
42
- if (o < N.dot)
43
- return { shapeType: "dot", dotScale: z + t() * V };
44
- if (o < N.triangle)
45
- return {
46
- shapeType: "triangle",
47
- triangleIndex: _(0, G.length - 1, t)
48
- };
49
- if (o < N.diamond) return { shapeType: "diamond" };
50
- if (o < N.cross) return { shapeType: "cross" };
51
- const a = _(J, K, t);
52
- return {
53
- shapeType: "stripes",
54
- stripeDirection: t() > 0.35 ? 1 : 0,
55
- stripeCount: a,
56
- stripeMask: Array.from({ length: a }, () => t() > 1 - Q)
57
- };
58
- }
59
- function W(t, o, a, I, i, c, e) {
60
- const u = _(0, c - 1, e);
61
- let h = _(0, c - 1, e);
62
- for (; h === u; )
63
- h = _(0, c - 1, e);
64
- const s = H(e);
65
- t.push({
66
- x: o,
67
- y: a,
68
- width: I,
69
- height: i,
70
- bgColorIndex: u,
71
- shapeColorIndex: h,
72
- shapeType: s.shapeType,
73
- triangleIndex: s.triangleIndex,
74
- stripeDirection: s.stripeDirection,
75
- stripeCount: s.stripeCount,
76
- stripeMask: s.stripeMask,
77
- animationDelay: Math.floor(e() * Y),
78
- animationDuration: j + Math.floor(e() * Z),
79
- animationScaleFrom: q + e() * v,
80
- dotScale: s.dotScale
81
- });
82
- }
2
+ const e = "_root_yhe7w_1", o = "_filename_yhe7w_8", r = "_code_yhe7w_15", t = "_error_yhe7w_50", _ = {
3
+ root: e,
4
+ filename: o,
5
+ code: r,
6
+ error: t
7
+ };
83
8
  export {
84
- G as TRIANGLE_TEMPLATES,
85
- g as createSeededRandom,
86
- tt as generatePattern,
87
- _ as getRandomInt
9
+ r as code,
10
+ _ as default,
11
+ t as error,
12
+ o as filename,
13
+ e as root
88
14
  };
89
15
  //# sourceMappingURL=index.esm67.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm67.js","sources":["../src/components/content/DecorativeFrame/utils/patternGenerator.ts"],"sourcesContent":["export type Point2D = [number, number];\n\nexport const TRIANGLE_TEMPLATES: Point2D[][] = [\n [[0, 0], [1, 0], [0, 1]],\n [[0, 0], [1, 0], [1, 1]],\n [[0, 0], [0, 1], [1, 1]],\n [[0, 1], [1, 0], [1, 1]],\n];\n\nexport type ShapeType =\n | 'circle'\n | 'dot'\n | 'triangle'\n | 'diamond'\n | 'cross'\n | 'stripes'\n | null;\n\nexport interface CellConfig {\n x: number;\n y: number;\n width: number;\n height: number;\n bgColorIndex: number;\n shapeColorIndex: number;\n shapeType: ShapeType;\n triangleIndex?: number;\n stripeDirection?: 0 | 1;\n stripeCount?: number;\n stripeMask?: boolean[];\n animationDelay: number;\n animationDuration: number;\n animationScaleFrom?: number;\n dotScale?: number;\n}\n\nconst RNG_MULTIPLIER = 9301;\nconst RNG_INCREMENT = 49297;\nconst RNG_MODULUS = 233280;\n\nconst MIN_BOX_SIZE = 4;\nconst STRIP_LINES_MIN = 1;\nconst STRIP_LINES_MAX = 8;\nconst EMPTY_ROW_CHANCE = 0.12;\nconst FILL_COUNT_MIN_RATIO = 0.3;\n\nconst SHAPE_PROB = { circle: 0.2, dot: 0.35, triangle: 0.5, diamond: 0.62, cross: 0.75 } as const;\nconst DOT_SCALE_MIN = 0.3;\nconst DOT_SCALE_RANGE = 0.3;\nconst ANIM_DELAY_MAX = 450;\nconst ANIM_DURATION_MIN = 320;\nconst ANIM_DURATION_RANGE = 300;\nconst ANIM_SCALE_FROM_MIN = 0.8;\nconst ANIM_SCALE_FROM_RANGE = 0.17;\nconst STRIPE_COUNT_MIN = 2;\nconst STRIPE_COUNT_MAX = 5;\nconst STRIPE_VISIBLE_CHANCE = 0.75;\n\nexport function getRandomInt(min: number, max: number, rng: () => number): number {\n return Math.floor(rng() * (max - min + 1)) + min;\n}\n\nexport function createSeededRandom(seed: number): () => number {\n return () => {\n seed = (seed * RNG_MULTIPLIER + RNG_INCREMENT) % RNG_MODULUS;\n return seed / RNG_MODULUS;\n };\n}\n\nexport type PatternEdge = 'top' | 'right' | 'bottom' | 'left';\n\nexport function generatePattern(\n stripWidth: number,\n stripHeight: number,\n boxSize: number,\n colorCount: number,\n rng: () => number,\n edge: PatternEdge = 'right',\n stripDensity: number = 2\n): CellConfig[] {\n return generateEdgePattern(stripWidth, stripHeight, boxSize, colorCount, rng, edge, stripDensity);\n}\n\nfunction generateEdgePattern(\n stripWidth: number,\n stripHeight: number,\n boxSize: number,\n colorCount: number,\n rng: () => number,\n edge: PatternEdge,\n stripDensity: number\n): CellConfig[] {\n if (stripWidth <= 0 || stripHeight <= 0) return [];\n\n const safeBoxSize = Math.max(MIN_BOX_SIZE, boxSize);\n const maxRows = Math.max(STRIP_LINES_MIN, Math.floor(stripHeight / safeBoxSize));\n const minLines = Math.min(STRIP_LINES_MAX, Math.max(STRIP_LINES_MIN, stripDensity));\n\n let rowCount = 1;\n while (rowCount < maxRows && stripHeight / (rowCount + 1) >= safeBoxSize) {\n rowCount++;\n }\n\n let cellSize = stripHeight / rowCount;\n if (cellSize > stripWidth) {\n cellSize = stripWidth;\n rowCount = Math.max(STRIP_LINES_MIN, Math.floor(stripHeight / cellSize));\n }\n\n const maxCellByWidth = stripWidth / minLines;\n const maxCellByHeight = stripHeight / minLines;\n cellSize = Math.min(cellSize, maxCellByWidth, maxCellByHeight);\n if (cellSize <= 0) return [];\n\n rowCount = Math.max(STRIP_LINES_MIN, Math.floor(stripHeight / cellSize));\n const colCount = Math.max(STRIP_LINES_MIN, Math.floor(stripWidth / cellSize));\n\n const shouldFill = () => rng() > EMPTY_ROW_CHANCE;\n const fillCount = (max: number) =>\n getRandomInt(Math.max(STRIP_LINES_MIN, Math.floor(max * FILL_COUNT_MIN_RATIO)), max, rng);\n\n const isVerticalStrip = edge === 'right' || edge === 'left';\n const primaryCount = isVerticalStrip ? rowCount : colCount;\n const secondaryCount = isVerticalStrip ? colCount : rowCount;\n const isEndEdge = edge === 'right' || edge === 'bottom';\n\n const cells: CellConfig[] = [];\n\n for (let i = 0; i < primaryCount; i++) {\n if (!shouldFill()) continue;\n\n const count = fillCount(secondaryCount);\n const start = isEndEdge ? secondaryCount - count : 0;\n const end = isEndEdge ? secondaryCount : count;\n\n for (let j = start; j < end; j++) {\n const col = isVerticalStrip ? j : i;\n const row = isVerticalStrip ? i : j;\n pushCell(cells, col * cellSize, row * cellSize, cellSize, cellSize, colorCount, rng);\n }\n }\n\n return cells;\n}\n\nfunction pickShapeType(rng: () => number): {\n shapeType: ShapeType;\n triangleIndex?: number;\n stripeDirection?: 0 | 1;\n stripeCount?: number;\n stripeMask?: boolean[];\n dotScale?: number;\n} {\n const roll = rng();\n\n if (roll < SHAPE_PROB.circle) return { shapeType: 'circle' };\n if (roll < SHAPE_PROB.dot) {\n return { shapeType: 'dot', dotScale: DOT_SCALE_MIN + rng() * DOT_SCALE_RANGE };\n }\n if (roll < SHAPE_PROB.triangle) {\n return {\n shapeType: 'triangle',\n triangleIndex: getRandomInt(0, TRIANGLE_TEMPLATES.length - 1, rng),\n };\n }\n if (roll < SHAPE_PROB.diamond) return { shapeType: 'diamond' };\n if (roll < SHAPE_PROB.cross) return { shapeType: 'cross' };\n\n const stripeCount = getRandomInt(STRIPE_COUNT_MIN, STRIPE_COUNT_MAX, rng);\n return {\n shapeType: 'stripes',\n stripeDirection: rng() > 0.35 ? 1 : 0,\n stripeCount,\n stripeMask: Array.from({ length: stripeCount }, () => rng() > 1 - STRIPE_VISIBLE_CHANCE),\n };\n}\n\nfunction pushCell(\n cells: CellConfig[],\n x: number,\n y: number,\n width: number,\n height: number,\n colorCount: number,\n rng: () => number\n): void {\n const bgColorIndex = getRandomInt(0, colorCount - 1, rng);\n let shapeColorIndex = getRandomInt(0, colorCount - 1, rng);\n while (shapeColorIndex === bgColorIndex) {\n shapeColorIndex = getRandomInt(0, colorCount - 1, rng);\n }\n\n const shape = pickShapeType(rng);\n\n cells.push({\n x,\n y,\n width,\n height,\n bgColorIndex,\n shapeColorIndex,\n shapeType: shape.shapeType,\n triangleIndex: shape.triangleIndex,\n stripeDirection: shape.stripeDirection,\n stripeCount: shape.stripeCount,\n stripeMask: shape.stripeMask,\n animationDelay: Math.floor(rng() * ANIM_DELAY_MAX),\n animationDuration: ANIM_DURATION_MIN + Math.floor(rng() * ANIM_DURATION_RANGE),\n animationScaleFrom: ANIM_SCALE_FROM_MIN + rng() * ANIM_SCALE_FROM_RANGE,\n dotScale: shape.dotScale,\n });\n}\n"],"names":["TRIANGLE_TEMPLATES","RNG_MULTIPLIER","RNG_INCREMENT","RNG_MODULUS","MIN_BOX_SIZE","STRIP_LINES_MIN","STRIP_LINES_MAX","EMPTY_ROW_CHANCE","FILL_COUNT_MIN_RATIO","SHAPE_PROB","DOT_SCALE_MIN","DOT_SCALE_RANGE","ANIM_DELAY_MAX","ANIM_DURATION_MIN","ANIM_DURATION_RANGE","ANIM_SCALE_FROM_MIN","ANIM_SCALE_FROM_RANGE","STRIPE_COUNT_MIN","STRIPE_COUNT_MAX","STRIPE_VISIBLE_CHANCE","getRandomInt","min","max","rng","createSeededRandom","seed","generatePattern","stripWidth","stripHeight","boxSize","colorCount","edge","stripDensity","generateEdgePattern","safeBoxSize","maxRows","minLines","rowCount","cellSize","maxCellByWidth","maxCellByHeight","colCount","shouldFill","fillCount","isVerticalStrip","primaryCount","secondaryCount","isEndEdge","cells","i","count","start","end","j","col","row","pushCell","pickShapeType","roll","stripeCount","x","y","width","height","bgColorIndex","shapeColorIndex","shape"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm67.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}