@companix/uikit 0.0.74 → 0.0.76

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.
@@ -4,10 +4,11 @@ export interface DrawerProps {
4
4
  onOpenChange: (value: boolean) => void;
5
5
  children: React.ReactNode;
6
6
  direction?: 'bottom' | 'top' | 'left' | 'right';
7
+ onClosed?: () => void;
7
8
  className?: string;
8
9
  size?: string;
9
10
  }
10
11
  export declare const Drawer: {
11
- ({ open, onOpenChange, children, size, direction, className }: DrawerProps): import("react/jsx-runtime").JSX.Element;
12
+ ({ open, onClosed, onOpenChange, children, size, direction, className }: DrawerProps): import("react/jsx-runtime").JSX.Element;
12
13
  Close: import('react').ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & import('react').RefAttributes<HTMLButtonElement>>;
13
14
  };
@@ -1,3 +1,13 @@
1
+ .scrollable {
2
+ &[data-scroll-x] {
3
+ overflow-x: scroll;
4
+ }
5
+
6
+ &[data-scroll-y] {
7
+ overflow-y: scroll;
8
+ }
9
+ }
10
+
1
11
  .scrollable::-webkit-scrollbar {
2
12
  width: var(--scrollbar-width);
3
13
  height: var(--scrollbar-width);
@@ -33,6 +43,11 @@
33
43
  border-top-width: calc(var(--thumb-padding) * 2);
34
44
  }
35
45
 
46
+ .hidden-scroll {
47
+ overflow-y: scroll;
48
+ height: 100%;
49
+ }
50
+
36
51
  .hidden-scroll::-webkit-scrollbar {
37
52
  display: none;
38
53
  }
@@ -1,25 +1,35 @@
1
- import { jsx as e, jsxs as o } from "react/jsx-runtime";
2
- import c from "classnames";
3
- import * as r from "@radix-ui/react-dialog";
1
+ import { jsx as r, jsxs as o } from "react/jsx-runtime";
2
+ import d from "classnames";
3
+ import * as e from "@radix-ui/react-dialog";
4
4
  import { VisuallyHidden as i } from "@radix-ui/react-visually-hidden";
5
- import { customCSS as d } from "@companix/utils-browser";
6
- const p = ({ open: t, onOpenChange: l, children: a, size: s, direction: m, className: n }) => /* @__PURE__ */ e(r.Root, { open: t, onOpenChange: l, children: /* @__PURE__ */ o(r.Portal, { children: [
7
- /* @__PURE__ */ e(r.Overlay, { className: "drawer-overlay" }),
5
+ import { customCSS as p } from "@companix/utils-browser";
6
+ import { RemoveListener as f } from "./bundle.es54.js";
7
+ const h = ({
8
+ open: t,
9
+ onClosed: l,
10
+ onOpenChange: a,
11
+ children: m,
12
+ size: s,
13
+ direction: c,
14
+ className: n
15
+ }) => /* @__PURE__ */ r(e.Root, { open: t, onOpenChange: a, children: /* @__PURE__ */ o(e.Portal, { children: [
16
+ /* @__PURE__ */ r(e.Overlay, { className: "drawer-overlay" }),
8
17
  /* @__PURE__ */ o(
9
- r.Content,
18
+ e.Content,
10
19
  {
11
- style: d({ "--drawer-size": s ?? "50%" }),
12
- className: c("drawer", n),
13
- "data-direction": m,
20
+ style: p({ "--drawer-size": s ?? "50%" }),
21
+ className: d("drawer", n),
22
+ "data-direction": c,
14
23
  children: [
15
- /* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(r.Title, {}) }),
16
- /* @__PURE__ */ e(i, { children: /* @__PURE__ */ e(r.Description, {}) }),
17
- a
24
+ /* @__PURE__ */ r(f, { callback: l }),
25
+ /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(e.Title, {}) }),
26
+ /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(e.Description, {}) }),
27
+ m
18
28
  ]
19
29
  }
20
30
  )
21
31
  ] }) });
22
- p.Close = r.Close;
32
+ h.Close = e.Close;
23
33
  export {
24
- p as Drawer
34
+ h as Drawer
25
35
  };
@@ -2,7 +2,7 @@ import { jsxs as b, jsx as o } from "react/jsx-runtime";
2
2
  import h from "classnames";
3
3
  import { attr as e } from "@companix/utils-browser";
4
4
  import { forwardRef as x } from "react";
5
- import { useInputPadding as N } from "./bundle.es64.js";
5
+ import { useInputPadding as N } from "./bundle.es66.js";
6
6
  const v = x(
7
7
  ({
8
8
  required: s,
@@ -1,7 +1,7 @@
1
1
  import { jsxs as D, jsx as t } from "react/jsx-runtime";
2
2
  import { dateToFormat as $, weeks as g, createVoids as p, getDayIndex as b, getFirstDay as u, getMonthMaxDay as k } from "./bundle.es51.js";
3
- import { CalendarHeader as F } from "./bundle.es65.js";
4
- import { useCalendar as j } from "./bundle.es66.js";
3
+ import { CalendarHeader as F } from "./bundle.es64.js";
4
+ import { useCalendar as j } from "./bundle.es65.js";
5
5
  import { attr as m } from "@companix/utils-browser";
6
6
  import { isSameDate as f } from "./bundle.es58.js";
7
7
  import { useLayoutEffect as I } from "react";
@@ -1,16 +1,77 @@
1
- import { useRef as l, useCallback as p } from "react";
2
- import { useEffectWithLayout as d } from "./bundle.es67.js";
3
- const g = (r, f) => {
4
- const c = l(null), i = l(null), o = { Right: c, Left: i }, u = p((t) => {
5
- if (r.current) {
6
- const n = r.current.style, e = o[t];
7
- e.current && e.current.clientWidth ? n[`padding${t}`] !== `${e.current.clientWidth}px` && (n[`padding${t}`] = `${e.current.clientWidth}px`) : n[`padding${t}`] && (n[`padding${t}`] = "");
8
- }
9
- }, []);
10
- return d(() => {
11
- u("Left"), u("Right");
12
- }, f), { rightRef: c, leftRef: i };
1
+ import { jsxs as d, jsx as o } from "react/jsx-runtime";
2
+ import { useCallback as u, useMemo as h } from "react";
3
+ import { Select as p } from "./bundle.es12.js";
4
+ import { getMonths as k, getYears as z, DEFAULT_MAX_YEAR as f, DEFAULT_MIN_YEAR as g } from "./bundle.es51.js";
5
+ import { Icon as C } from "./bundle.es33.js";
6
+ import { faChevronLeft as E, faChevronRight as T } from "@companix/icons-solid";
7
+ import { setMonth as _, setYear as F } from "./bundle.es58.js";
8
+ const y = ({
9
+ viewDate: n,
10
+ onChange: c,
11
+ isMonthDisabled: a,
12
+ isYearDisabled: m,
13
+ onNextMonth: N,
14
+ onPrevMonth: v
15
+ }) => {
16
+ const e = n.getFullYear(), r = n.getMonth(), s = "ru", M = u(
17
+ (t) => {
18
+ c(_(n, t));
19
+ },
20
+ [c, n]
21
+ ), x = u(
22
+ (t) => {
23
+ c(F(n, t));
24
+ },
25
+ [c, n]
26
+ ), A = h(() => k(s).map((t) => ({
27
+ ...t,
28
+ className: "capitalize",
29
+ disabled: a && a(t.value)
30
+ })), [s, a]), Y = h(() => z(e, 100).map((t) => ({
31
+ ...t,
32
+ disabled: m && m(t.value)
33
+ })), [e, m]);
34
+ let l = r === 11 && e === f;
35
+ a && !l && (l = a(
36
+ r === 11 ? 0 : r + 1,
37
+ r === 11 ? Math.min(e + 1, f) : e
38
+ ));
39
+ let i = r === 0 && e === g;
40
+ return a && !i && (i = a(
41
+ r === 0 ? 11 : r - 1,
42
+ r === 0 ? Math.max(e - 1, g) : e
43
+ )), /* @__PURE__ */ d("div", { className: "calendar-header", children: [
44
+ !i && /* @__PURE__ */ o("button", { className: "calendar-navigation", "data-side": "left", onClick: v, children: /* @__PURE__ */ o(C, { icon: E }) }),
45
+ /* @__PURE__ */ d("div", { className: "calendar-pickers", children: [
46
+ /* @__PURE__ */ o(
47
+ p,
48
+ {
49
+ fill: !0,
50
+ options: Y,
51
+ size: "sm",
52
+ value: e,
53
+ minimalOptions: !0,
54
+ matchTarget: "min-width",
55
+ onChange: (t) => x(t)
56
+ }
57
+ ),
58
+ /* @__PURE__ */ o(
59
+ p,
60
+ {
61
+ fill: !0,
62
+ options: A,
63
+ size: "sm",
64
+ className: "capitalize",
65
+ value: r,
66
+ minimalOptions: !0,
67
+ matchTarget: "min-width",
68
+ onChange: (t) => M(t)
69
+ }
70
+ )
71
+ ] }),
72
+ !l && /* @__PURE__ */ o("button", { className: "calendar-navigation", "data-side": "right", onClick: N, children: /* @__PURE__ */ o(C, { icon: T }) })
73
+ ] });
13
74
  };
14
75
  export {
15
- g as useInputPadding
76
+ y as CalendarHeader
16
77
  };
@@ -1,77 +1,51 @@
1
- import { jsxs as d, jsx as o } from "react/jsx-runtime";
2
- import { useCallback as u, useMemo as h } from "react";
3
- import { Select as p } from "./bundle.es12.js";
4
- import { getMonths as k, getYears as z, DEFAULT_MAX_YEAR as f, DEFAULT_MIN_YEAR as g } from "./bundle.es51.js";
5
- import { Icon as C } from "./bundle.es33.js";
6
- import { faChevronLeft as E, faChevronRight as T } from "@companix/icons-solid";
7
- import { setMonth as _, setYear as F } from "./bundle.es58.js";
8
- const y = ({
9
- viewDate: n,
10
- onChange: c,
11
- isMonthDisabled: a,
12
- isYearDisabled: m,
13
- onNextMonth: N,
14
- onPrevMonth: v
1
+ import { subMonths as L, addMonths as N, useDayDisableCheker as R } from "./bundle.es58.js";
2
+ import { DEFAULT_MIN_YEAR as w, DEFAULT_MAX_YEAR as A } from "./bundle.es51.js";
3
+ import { useState as U, useCallback as M } from "react";
4
+ const X = ({
5
+ value: p,
6
+ disablePast: r,
7
+ disableFuture: c,
8
+ shouldDisableDate: E,
9
+ minDateTime: l,
10
+ maxDateTime: s
15
11
  }) => {
16
- const e = n.getFullYear(), r = n.getMonth(), s = "ru", M = u(
17
- (t) => {
18
- c(_(n, t));
12
+ const [e, u] = U(p || /* @__PURE__ */ new Date()), _ = M(() => {
13
+ u(L(e));
14
+ }, [e]), C = M(() => {
15
+ u(N(e, 1));
16
+ }, [e]), D = R({
17
+ disableFuture: c,
18
+ disablePast: r,
19
+ shouldDisableDate: E,
20
+ minDateTime: l,
21
+ maxDateTime: s
22
+ }), k = M(
23
+ (o, t) => {
24
+ const n = /* @__PURE__ */ new Date();
25
+ t = t || e.getFullYear();
26
+ const h = l ? l.getMonth() : 0, Y = s ? s.getMonth() : 11, F = l?.getFullYear() || w, f = s?.getFullYear() || A;
27
+ let g = t >= F && t <= f ? t === F && h > o || t === f && o > Y : !0;
28
+ return c && (g = g || (t === n.getFullYear() ? o > n.getMonth() : t > n.getFullYear())), r && (g = g || (t === n.getFullYear() ? o < n.getMonth() : t < n.getFullYear())), g;
19
29
  },
20
- [c, n]
21
- ), x = u(
22
- (t) => {
23
- c(F(n, t));
30
+ [c, r, e, l, s]
31
+ ), v = M(
32
+ (o) => {
33
+ const t = /* @__PURE__ */ new Date(), n = l?.getFullYear() || w, h = s?.getFullYear() || A;
34
+ let Y = n > o || o > h;
35
+ return c && (Y = Y || o > t.getFullYear()), r && (Y = Y || o < t.getFullYear()), Y;
24
36
  },
25
- [c, n]
26
- ), A = h(() => k(s).map((t) => ({
27
- ...t,
28
- className: "capitalize",
29
- disabled: a && a(t.value)
30
- })), [s, a]), Y = h(() => z(e, 100).map((t) => ({
31
- ...t,
32
- disabled: m && m(t.value)
33
- })), [e, m]);
34
- let l = r === 11 && e === f;
35
- a && !l && (l = a(
36
- r === 11 ? 0 : r + 1,
37
- r === 11 ? Math.min(e + 1, f) : e
38
- ));
39
- let i = r === 0 && e === g;
40
- return a && !i && (i = a(
41
- r === 0 ? 11 : r - 1,
42
- r === 0 ? Math.max(e - 1, g) : e
43
- )), /* @__PURE__ */ d("div", { className: "calendar-header", children: [
44
- !i && /* @__PURE__ */ o("button", { className: "calendar-navigation", "data-side": "left", onClick: v, children: /* @__PURE__ */ o(C, { icon: E }) }),
45
- /* @__PURE__ */ d("div", { className: "calendar-pickers", children: [
46
- /* @__PURE__ */ o(
47
- p,
48
- {
49
- fill: !0,
50
- options: Y,
51
- size: "sm",
52
- value: e,
53
- minimalOptions: !0,
54
- matchTarget: "min-width",
55
- onChange: (t) => x(t)
56
- }
57
- ),
58
- /* @__PURE__ */ o(
59
- p,
60
- {
61
- fill: !0,
62
- options: A,
63
- size: "sm",
64
- className: "capitalize",
65
- value: r,
66
- minimalOptions: !0,
67
- matchTarget: "min-width",
68
- onChange: (t) => M(t)
69
- }
70
- )
71
- ] }),
72
- !l && /* @__PURE__ */ o("button", { className: "calendar-navigation", "data-side": "right", onClick: N, children: /* @__PURE__ */ o(C, { icon: T }) })
73
- ] });
37
+ [c, r, l, s]
38
+ );
39
+ return {
40
+ viewDate: e,
41
+ setViewDate: u,
42
+ setPrevMonth: _,
43
+ setNextMonth: C,
44
+ isDayDisabled: D,
45
+ isMonthDisabled: k,
46
+ isYearDisabled: v
47
+ };
74
48
  };
75
49
  export {
76
- y as CalendarHeader
50
+ X as useCalendar
77
51
  };
@@ -1,51 +1,16 @@
1
- import { subMonths as L, addMonths as N, useDayDisableCheker as R } from "./bundle.es58.js";
2
- import { DEFAULT_MIN_YEAR as w, DEFAULT_MAX_YEAR as A } from "./bundle.es51.js";
3
- import { useState as U, useCallback as M } from "react";
4
- const X = ({
5
- value: p,
6
- disablePast: r,
7
- disableFuture: c,
8
- shouldDisableDate: E,
9
- minDateTime: l,
10
- maxDateTime: s
11
- }) => {
12
- const [e, u] = U(p || /* @__PURE__ */ new Date()), _ = M(() => {
13
- u(L(e));
14
- }, [e]), C = M(() => {
15
- u(N(e, 1));
16
- }, [e]), D = R({
17
- disableFuture: c,
18
- disablePast: r,
19
- shouldDisableDate: E,
20
- minDateTime: l,
21
- maxDateTime: s
22
- }), k = M(
23
- (o, t) => {
24
- const n = /* @__PURE__ */ new Date();
25
- t = t || e.getFullYear();
26
- const h = l ? l.getMonth() : 0, Y = s ? s.getMonth() : 11, F = l?.getFullYear() || w, f = s?.getFullYear() || A;
27
- let g = t >= F && t <= f ? t === F && h > o || t === f && o > Y : !0;
28
- return c && (g = g || (t === n.getFullYear() ? o > n.getMonth() : t > n.getFullYear())), r && (g = g || (t === n.getFullYear() ? o < n.getMonth() : t < n.getFullYear())), g;
29
- },
30
- [c, r, e, l, s]
31
- ), v = M(
32
- (o) => {
33
- const t = /* @__PURE__ */ new Date(), n = l?.getFullYear() || w, h = s?.getFullYear() || A;
34
- let Y = n > o || o > h;
35
- return c && (Y = Y || o > t.getFullYear()), r && (Y = Y || o < t.getFullYear()), Y;
36
- },
37
- [c, r, l, s]
38
- );
39
- return {
40
- viewDate: e,
41
- setViewDate: u,
42
- setPrevMonth: _,
43
- setNextMonth: C,
44
- isDayDisabled: D,
45
- isMonthDisabled: k,
46
- isYearDisabled: v
47
- };
1
+ import { useRef as l, useCallback as p } from "react";
2
+ import { useEffectWithLayout as d } from "./bundle.es67.js";
3
+ const g = (r, f) => {
4
+ const c = l(null), i = l(null), o = { Right: c, Left: i }, u = p((t) => {
5
+ if (r.current) {
6
+ const n = r.current.style, e = o[t];
7
+ e.current && e.current.clientWidth ? n[`padding${t}`] !== `${e.current.clientWidth}px` && (n[`padding${t}`] = `${e.current.clientWidth}px`) : n[`padding${t}`] && (n[`padding${t}`] = "");
8
+ }
9
+ }, []);
10
+ return d(() => {
11
+ u("Left"), u("Right");
12
+ }, f), { rightRef: c, leftRef: i };
48
13
  };
49
14
  export {
50
- X as useCalendar
15
+ g as useInputPadding
51
16
  };
@@ -1,88 +1,88 @@
1
- import { jsx as S } from "react/jsx-runtime";
2
- import I from "classnames";
3
- import { forwardRef as B } from "react";
4
- import { customCSS as r, px as i } from "@companix/utils-browser";
5
- const $ = B((t, c) => {
1
+ import { jsx as I } from "react/jsx-runtime";
2
+ import B from "classnames";
3
+ import { forwardRef as L } from "react";
4
+ import { customCSS as i, px as r, attr as c } from "@companix/utils-browser";
5
+ const C = L((o, m) => {
6
6
  let {
7
- interactionKind: m = "static",
8
- thumbPos: s = "center",
9
- thumbPadding: l = 4,
10
- heightAuto: g,
11
- scrollX: h,
12
- className: u,
7
+ interactionKind: s = "static",
8
+ thumbPos: g = "center",
9
+ thumbPadding: d = 4,
10
+ heightAuto: h,
11
+ scrollX: u,
12
+ className: p,
13
13
  scrollY: n,
14
- preventOnMouse: f,
15
- onWheel: p,
16
- maxHeight: d,
17
- onScroll: b,
18
- thumbColor: w,
19
- children: x
20
- } = t;
21
- const v = (() => {
22
- if (t.implementation === "edge") {
23
- l = 0;
24
- const { padding: o, scrollbarWidth: e } = t;
14
+ preventOnMouse: b,
15
+ onWheel: f,
16
+ maxHeight: l,
17
+ onScroll: w,
18
+ thumbColor: x,
19
+ children: v
20
+ } = o;
21
+ const S = (() => {
22
+ if (o.implementation === "edge") {
23
+ d = 0;
24
+ const { padding: t, scrollbarWidth: e } = o;
25
25
  return {
26
- ...r({ "--scrollbar-width": i(e) }),
27
- padding: `0px ${o - e}px 0px ${o}px`
26
+ ...i({ "--scrollbar-width": r(e) }),
27
+ padding: `0px ${t - e}px 0px ${t}px`
28
28
  };
29
29
  }
30
- if (t.implementation === "outer") {
31
- const { shadowPadding: o = 0, noneCorrect: e, scrollbarWidth: a } = t;
30
+ if (o.implementation === "outer") {
31
+ const { shadowPadding: t = 0, noneCorrect: e, scrollbarWidth: a } = o;
32
32
  return window.IS_MOBILE ? {
33
- padding: o,
34
- margin: -o
33
+ padding: t,
34
+ margin: -t
35
35
  } : {
36
- ...r({ "--scrollbar-width": i(a) }),
37
- padding: o,
38
- margin: -o,
39
- marginRight: e ? void 0 : `calc(-${a}px - ${o}px)`,
36
+ ...i({ "--scrollbar-width": r(a) }),
37
+ padding: t,
38
+ margin: -t,
39
+ marginRight: e ? void 0 : `calc(-${a}px - ${t}px)`,
40
40
  marginBottom: 0
41
41
  };
42
42
  }
43
- if (t.implementation === "inner") {
44
- const { padding: o } = t;
43
+ if (o.implementation === "inner") {
44
+ const { padding: t } = o;
45
45
  return window.IS_MOBILE ? {
46
- [n ? "paddingLeft" : "paddingTop"]: o,
47
- [n ? "paddingRight" : "paddingBottom"]: o
46
+ [n ? "paddingLeft" : "paddingTop"]: t,
47
+ [n ? "paddingRight" : "paddingBottom"]: t
48
48
  } : {
49
- [n ? "paddingLeft" : "paddingTop"]: o,
50
- ...r({ "--scrollbar-width": i(o) })
49
+ [n ? "paddingLeft" : "paddingTop"]: t,
50
+ ...i({ "--scrollbar-width": r(t) })
51
51
  };
52
52
  }
53
53
  return {};
54
54
  })();
55
- return /* @__PURE__ */ S(
55
+ return /* @__PURE__ */ I(
56
56
  "div",
57
57
  {
58
- ref: c,
59
- onWheel: p,
60
- onScroll: b,
61
- onMouseDown: (o) => {
62
- f && o.preventDefault();
58
+ ref: m,
59
+ onWheel: f,
60
+ onScroll: w,
61
+ onMouseDown: (t) => {
62
+ b && t.preventDefault();
63
63
  },
64
64
  style: {
65
- ...v,
66
- ...t.style,
67
- maxHeight: d ? i(d) : void 0,
68
- ...r({ "--thumb-padding": i(l) }),
69
- ...r({ "--thumb-color": w ?? "#c1c2c8bd" })
65
+ ...S,
66
+ ...o.style,
67
+ maxHeight: l ? r(l) : void 0,
68
+ ...i({ "--thumb-padding": r(d) }),
69
+ ...i({ "--thumb-color": x ?? "#c1c2c8bd" })
70
70
  },
71
- className: I(
71
+ "data-scroll-x": c(u),
72
+ "data-scroll-y": c(n),
73
+ className: B(
72
74
  !window.IS_MOBILE && "scrollable",
73
- u,
74
- g ? "" : "h-full",
75
+ p,
76
+ h ? "" : "h-full",
75
77
  {
76
- "overflow-y-scroll": n,
77
- "overflow-x-scroll": h,
78
- "scrollable-hover-interaction": m === "hover",
79
- "scrollable-border-position": s === "border"
78
+ "scrollable-hover-interaction": s === "hover",
79
+ "scrollable-border-position": g === "border"
80
80
  }
81
81
  ),
82
- children: x
82
+ children: v
83
83
  }
84
84
  );
85
85
  });
86
86
  export {
87
- $ as Scrollable
87
+ C as Scrollable
88
88
  };
@@ -59,7 +59,7 @@ const C = ({
59
59
  /* @__PURE__ */ c(
60
60
  "div",
61
61
  {
62
- className: L("hidden-scroll h-full overflow-y-scroll", g),
62
+ className: L("hidden-scroll", g),
63
63
  onScroll: M,
64
64
  ref: t,
65
65
  children: b
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@companix/uikit",
3
- "version": "0.0.74",
3
+ "version": "0.0.76",
4
4
  "main": "./dist/bundle.es.js",
5
5
  "module": "./dist/bundle.es.js",
6
6
  "types": "./dist/index.d.ts",
@@ -8,7 +8,7 @@
8
8
  "files": [
9
9
  "dist"
10
10
  ],
11
- "author": "Pavel Victorov",
11
+ "author": "Pavel Victorov.",
12
12
  "scripts": {
13
13
  "echo": "echo \"uikit\"",
14
14
  "dev": "vite --config vite.config.ts",