mimir-ui-kit 1.41.5 → 1.41.6

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.
@@ -1 +1 @@
1
- ._card-trail_vv8gl_3{display:flex;flex-direction:column}._card-trail-header_vv8gl_7{display:flex;align-items:flex-end;justify-content:space-between}._card-trail-header_vv8gl_7:not(:last-child){margin-bottom:var(--mimir-space-xs)}._card-trail-header-title_vv8gl_15{margin-bottom:0;font-weight:var(--mimir-font-weight-text-medium);font-size:var(--mimir-size-text-l);font-family:var(--mimir-font-montserrat);line-height:var(--mimir-line-height-text-s1);letter-spacing:calc(var(--mimir-size-text-l) * -.02)}@media (max-width: 600px){._card-trail-header-title_vv8gl_15{font-size:var(--mimir-size-text-m);letter-spacing:calc(var(--mimir-size-text-m) * -.02)}}._card-trail-header-merged-button_vv8gl_29{margin-left:auto}._card-trail-list_vv8gl_32{display:flex;margin-bottom:0;padding:0;overflow:auto;white-space:nowrap;scroll-behavior:smooth;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}._card-trail-list_vv8gl_32::-webkit-scrollbar{display:none}._card-trail-list-item_vv8gl_45{white-space:normal;white-space:initial;scroll-snap-align:start}._card-trail-list-item_vv8gl_45._pointer_vv8gl_49{cursor:pointer}
1
+ ._card-trail_c21mz_3{display:flex;flex-direction:column}._card-trail-header_c21mz_7{display:flex;align-items:flex-end;justify-content:space-between}._card-trail-header_c21mz_7:not(:last-child){margin-bottom:var(--mimir-space-xs)}._card-trail-header-title_c21mz_15{margin-bottom:0;font-weight:var(--mimir-font-weight-text-medium);font-size:var(--mimir-size-text-l);font-family:var(--mimir-font-montserrat);line-height:var(--mimir-line-height-text-s1);letter-spacing:calc(var(--mimir-size-text-l) * -.02)}@media (max-width: 600px){._card-trail-header-title_c21mz_15{font-size:var(--mimir-size-text-m);letter-spacing:calc(var(--mimir-size-text-m) * -.02)}}._card-trail-header-merged-button_c21mz_29{margin-left:auto}._card-trail-list_c21mz_32{display:flex;margin-bottom:0;padding:0;overflow:auto;white-space:nowrap;scroll-behavior:smooth;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}._card-trail-list_c21mz_32::-webkit-scrollbar{display:none}._card-trail-list-item_c21mz_45{white-space:normal;white-space:initial;scroll-snap-align:start}._card-trail-list-item_c21mz_45._pointer_c21mz_49{cursor:pointer}
@@ -9,10 +9,18 @@ export type TProps = {
9
9
  * Расстояние между карточками.
10
10
  */
11
11
  spaceBetween?: number;
12
+ /**
13
+ * Делитель ширины карточками, который позволяет оставлять предыдщую карточку немного выглядывать.
14
+ */
15
+ dividedCardWidth?: number;
12
16
  /**
13
17
  * Количество карточек для перелистывания.
14
18
  */
15
19
  scrollStep?: number;
20
+ /**
21
+ * Index карточке, у которой надо брать ширирну.
22
+ */
23
+ currentCardIndex?: number;
16
24
  /**
17
25
  * Флаг, определяющий, нужно ли при клике на карточку скроллиться до нее.
18
26
  */
@@ -1,116 +1,118 @@
1
- import { jsxs as v, jsx as s } from "react/jsx-runtime";
1
+ import { jsxs as N, jsx as s } from "react/jsx-runtime";
2
2
  import { c as i } from "../../index-DIxK0V-G.js";
3
- import { forwardRef as x, useRef as p, useState as B, useEffect as H, Children as O } from "react";
4
- import { DEFAULT_SPACE_BETWEEN as R, DEFAULT_SCROLL_STEP as j } from "./constants.js";
5
- import { hasHorizontalScroll as u, isScrollAtEdge as C } from "./utils.js";
6
- import { useMergeRefs as F } from "../../hooks/useMergeRefs/useMergeRefs.js";
7
- import { useThrottledCallback as U } from "../../hooks/useThrottledCallback/index.js";
8
- import { MergedButton as $ } from "../MergedButton/MergedButton.js";
9
- import '../../assets/CardTrail.css';const q = "_pointer_vv8gl_49", l = {
10
- "card-trail": "_card-trail_vv8gl_3",
11
- "card-trail-header": "_card-trail-header_vv8gl_7",
12
- "card-trail-header-title": "_card-trail-header-title_vv8gl_15",
13
- "card-trail-header-merged-button": "_card-trail-header-merged-button_vv8gl_29",
14
- "card-trail-list": "_card-trail-list_vv8gl_32",
15
- "card-trail-list-item": "_card-trail-list-item_vv8gl_45",
16
- pointer: q
17
- }, P = x((b, N) => {
3
+ import { forwardRef as H, useRef as E, useState as u, useEffect as O, Children as $ } from "react";
4
+ import { DEFAULT_SPACE_BETWEEN as j, DEFAULT_SCROLL_STEP as V, DEFAULT_DIVIDED as q, DEFAULT_CARD_INDEX as X } from "./constants.js";
5
+ import { hasHorizontalScroll as h, isScrollAtEdge as S } from "./utils.js";
6
+ import { useMergeRefs as G } from "../../hooks/useMergeRefs/useMergeRefs.js";
7
+ import { useThrottledCallback as J } from "../../hooks/useThrottledCallback/index.js";
8
+ import { MergedButton as K } from "../MergedButton/MergedButton.js";
9
+ import '../../assets/CardTrail.css';const P = "_pointer_c21mz_49", c = {
10
+ "card-trail": "_card-trail_c21mz_3",
11
+ "card-trail-header": "_card-trail-header_c21mz_7",
12
+ "card-trail-header-title": "_card-trail-header-title_c21mz_15",
13
+ "card-trail-header-merged-button": "_card-trail-header-merged-button_c21mz_29",
14
+ "card-trail-list": "_card-trail-list_c21mz_32",
15
+ "card-trail-list-item": "_card-trail-list-item_c21mz_45",
16
+ pointer: P
17
+ }, lr = H((v, D) => {
18
18
  const {
19
- cardClassName: S,
20
- cardTrailClassName: E,
21
- cardTrailHeaderClassName: T,
22
- cardTrailListClassName: k,
23
- cardTrailMergedButtonClassName: L,
24
- children: h,
25
- title: m,
26
- spaceBetween: d = R,
27
- scrollStep: f = j,
28
- mergedButtonProps: c,
29
- scrollToCard: _ = !1,
30
- needButtons: w = !0
31
- } = b, r = p(null), n = p(null), [o, y] = B({
19
+ cardClassName: T,
20
+ cardTrailClassName: z,
21
+ cardTrailHeaderClassName: L,
22
+ cardTrailListClassName: A,
23
+ cardTrailMergedButtonClassName: W,
24
+ children: m,
25
+ title: f,
26
+ spaceBetween: d = j,
27
+ scrollStep: _ = V,
28
+ mergedButtonProps: l,
29
+ scrollToCard: C = !1,
30
+ needButtons: k = !0,
31
+ dividedCardWidth: p = q,
32
+ currentCardIndex: g = X
33
+ } = v, r = E(null), n = E(null), [o, I] = u({
32
34
  leftButton: !0,
33
35
  rightButton: !1
34
- }), [A, g] = B(
35
- () => u(r == null ? void 0 : r.current)
36
- ), W = F(r, N), z = U(() => {
37
- const t = !C(r.current, "left"), e = !C(r.current, "right");
38
- y({
39
- leftButton: !t,
40
- rightButton: !e
36
+ }), [w, B] = u(0), [y, b] = u(
37
+ () => h(r == null ? void 0 : r.current)
38
+ ), x = G(r, D), M = J(() => {
39
+ const e = !S(r.current, "left"), t = !S(r.current, "right");
40
+ I({
41
+ leftButton: !e,
42
+ rightButton: !t
41
43
  });
42
- }, 300), M = (t) => () => {
44
+ }, 300), F = (e) => () => {
43
45
  var a;
44
- if (!_)
46
+ if (!C)
45
47
  return;
46
- const e = (a = r == null ? void 0 : r.current) == null ? void 0 : a.querySelector(
47
- `[data-active-card='${t}']`
48
+ const t = (a = r == null ? void 0 : r.current) == null ? void 0 : a.querySelector(
49
+ `[data-active-card='${e}']`
48
50
  );
49
- e && (e == null || e.scrollIntoView({
51
+ t && (t == null || t.scrollIntoView({
50
52
  behavior: "smooth",
51
53
  block: "nearest",
52
54
  inline: "center"
53
55
  }));
54
- }, D = () => {
56
+ }, R = () => {
55
57
  var a;
56
58
  if (!r.current || o.leftButton) return;
57
- const t = r.current, e = ((a = t.children[0]) == null ? void 0 : a.clientWidth) ?? 0;
58
- t.scrollBy({
59
- left: -(e + d) * f,
59
+ const e = r.current, t = ((a = e.children[g]) == null ? void 0 : a.clientWidth) ?? 0;
60
+ B(t / p), e.scrollBy({
61
+ left: -(t + d) * _,
60
62
  behavior: "smooth"
61
63
  });
62
- }, I = () => {
64
+ }, U = () => {
63
65
  var a;
64
66
  if (!r.current || o.rightButton) return;
65
- const t = r.current, e = ((a = t.children[0]) == null ? void 0 : a.clientWidth) ?? 0;
66
- t.scrollBy({
67
- left: (e + d) * f,
67
+ const e = r.current, t = ((a = e.children[g]) == null ? void 0 : a.clientWidth) ?? 0;
68
+ B(t / p), e.scrollBy({
69
+ left: (t + d) * _,
68
70
  behavior: "smooth"
69
71
  });
70
72
  };
71
- return H(() => {
72
- const t = r.current;
73
- if (t)
73
+ return O(() => {
74
+ const e = r.current;
75
+ if (e)
74
76
  return n.current = new ResizeObserver(() => {
75
- g(u(r == null ? void 0 : r.current));
76
- }), n.current.observe(t), g(u(r == null ? void 0 : r.current)), () => {
77
+ b(h(r == null ? void 0 : r.current));
78
+ }), n.current.observe(e), b(h(r == null ? void 0 : r.current)), () => {
77
79
  n.current && n.current.disconnect();
78
80
  };
79
- }, [h]), /* @__PURE__ */ v("section", { className: i(l["card-trail"], E), children: [
80
- /* @__PURE__ */ v(
81
+ }, [m]), /* @__PURE__ */ N("section", { className: i(c["card-trail"], z), children: [
82
+ /* @__PURE__ */ N(
81
83
  "header",
82
84
  {
83
85
  className: i(
84
- l["card-trail-header"],
85
- T
86
+ c["card-trail-header"],
87
+ L
86
88
  ),
87
89
  children: [
88
- m && /* @__PURE__ */ s("h3", { className: l["card-trail-header-title"], children: m }),
89
- A && w && /* @__PURE__ */ s(
90
- $,
90
+ f && /* @__PURE__ */ s("h3", { className: c["card-trail-header-title"], children: f }),
91
+ y && k && /* @__PURE__ */ s(
92
+ K,
91
93
  {
92
94
  buttonsWrapperClassName: i(
93
- l["card-trail-header-merged-button"],
94
- L
95
+ c["card-trail-header-merged-button"],
96
+ W
95
97
  ),
96
98
  buttons: [
97
99
  {
98
100
  isIconButton: !0,
99
101
  iconName: "ArrowLeft16px",
100
102
  variant: "gray",
101
- onClick: D,
103
+ onClick: R,
102
104
  disabled: o.leftButton,
103
105
  size: "s",
104
- ...c == null ? void 0 : c.leftButton
106
+ ...l == null ? void 0 : l.leftButton
105
107
  },
106
108
  {
107
109
  isIconButton: !0,
108
110
  iconName: "ArrowRight16px",
109
111
  variant: "gray",
110
- onClick: I,
112
+ onClick: U,
111
113
  size: "s",
112
114
  disabled: o.rightButton,
113
- ...c == null ? void 0 : c.rightButton
115
+ ...l == null ? void 0 : l.rightButton
114
116
  }
115
117
  ]
116
118
  }
@@ -121,22 +123,22 @@ import '../../assets/CardTrail.css';const q = "_pointer_vv8gl_49", l = {
121
123
  /* @__PURE__ */ s(
122
124
  "ul",
123
125
  {
124
- onScroll: z,
125
- style: { gap: d },
126
- className: i(l["card-trail-list"], k),
127
- ref: W,
128
- children: O.map(h, (t, e) => /* @__PURE__ */ s(
126
+ onScroll: M,
127
+ style: { gap: d, scrollPadding: `0 ${w}px` },
128
+ className: i(c["card-trail-list"], A),
129
+ ref: x,
130
+ children: $.map(m, (e, t) => /* @__PURE__ */ s(
129
131
  "li",
130
132
  {
131
- onClick: M(e),
132
- "data-active-card": e,
133
- "data-testid": `card-trail-item-${e}`,
133
+ onClick: F(t),
134
+ "data-active-card": t,
135
+ "data-testid": `card-trail-item-${t}`,
134
136
  className: i(
135
- l["card-trail-list-item"],
136
- { [l.pointer]: _ },
137
- S
137
+ c["card-trail-list-item"],
138
+ { [c.pointer]: C },
139
+ T
138
140
  ),
139
- children: t
141
+ children: e
140
142
  }
141
143
  ))
142
144
  }
@@ -144,5 +146,5 @@ import '../../assets/CardTrail.css';const q = "_pointer_vv8gl_49", l = {
144
146
  ] });
145
147
  });
146
148
  export {
147
- P as CardTrail
149
+ lr as CardTrail
148
150
  };
@@ -1,2 +1,4 @@
1
1
  export declare const DEFAULT_SPACE_BETWEEN = 10;
2
2
  export declare const DEFAULT_SCROLL_STEP = 1;
3
+ export declare const DEFAULT_CARD_INDEX = 1;
4
+ export declare const DEFAULT_DIVIDED = 1;
@@ -1,5 +1,7 @@
1
- const E = 10, L = 1;
1
+ const E = 10, D = 1, _ = 1, A = 1;
2
2
  export {
3
- L as DEFAULT_SCROLL_STEP,
3
+ _ as DEFAULT_CARD_INDEX,
4
+ A as DEFAULT_DIVIDED,
5
+ D as DEFAULT_SCROLL_STEP,
4
6
  E as DEFAULT_SPACE_BETWEEN
5
7
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mimir-ui-kit",
3
3
  "private": false,
4
- "version": "1.41.5",
4
+ "version": "1.41.6",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": {