@divayth/brick-ui 0.0.2 → 0.0.4

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 (52) hide show
  1. package/dist/index.js +33 -18
  2. package/dist/styles.css +1 -1
  3. package/dist/ui/Button/Button.d.ts +8 -8
  4. package/dist/ui/Button/Button.d.ts.map +1 -1
  5. package/dist/ui/Button/Button.js +25 -9
  6. package/dist/ui/Button/Button.module.css.js +18 -16
  7. package/dist/ui/Card/Card.js +11 -11
  8. package/dist/ui/Card/Card.module.css.js +3 -5
  9. package/dist/ui/Chip/Chip.d.ts.map +1 -1
  10. package/dist/ui/Chip/Chip.js +12 -11
  11. package/dist/ui/Flex/Flex.js +1 -1
  12. package/dist/ui/Flex/constants.d.ts +1 -1
  13. package/dist/ui/Flex/constants.d.ts.map +1 -1
  14. package/dist/ui/IconButton/IconButton.d.ts +10 -8
  15. package/dist/ui/IconButton/IconButton.d.ts.map +1 -1
  16. package/dist/ui/IconButton/IconButton.js +50 -34
  17. package/dist/ui/IconButton/IconButton.module.css.js +27 -25
  18. package/dist/ui/List/List.d.ts +24 -0
  19. package/dist/ui/List/List.d.ts.map +1 -0
  20. package/dist/ui/List/List.js +74 -0
  21. package/dist/ui/Modal/Modal.d.ts +32 -0
  22. package/dist/ui/Modal/Modal.d.ts.map +1 -0
  23. package/dist/ui/Modal/Modal.js +134 -0
  24. package/dist/ui/Modal/Modal.module.css.js +25 -0
  25. package/dist/ui/Modal/ModalContext.d.ts +9 -0
  26. package/dist/ui/Modal/ModalContext.d.ts.map +1 -0
  27. package/dist/ui/Modal/ModalContext.js +7 -0
  28. package/dist/ui/Modal/ModalProvider.d.ts +3 -0
  29. package/dist/ui/Modal/ModalProvider.d.ts.map +1 -0
  30. package/dist/ui/Modal/ModalProvider.js +21 -0
  31. package/dist/ui/NoData/NoData.d.ts +9 -0
  32. package/dist/ui/NoData/NoData.d.ts.map +1 -0
  33. package/dist/ui/NoData/NoData.js +39 -0
  34. package/dist/ui/Tabs/Tab.d.ts +7 -0
  35. package/dist/ui/Tabs/Tab.d.ts.map +1 -0
  36. package/dist/ui/Tabs/Tab.js +26 -0
  37. package/dist/ui/Tabs/Tabs.d.ts +11 -0
  38. package/dist/ui/Tabs/Tabs.d.ts.map +1 -0
  39. package/dist/ui/Tabs/Tabs.js +11 -0
  40. package/dist/ui/Tabs/Tabs.module.css.js +13 -0
  41. package/dist/ui/Tabs/TabsList.d.ts +4 -0
  42. package/dist/ui/Tabs/TabsList.d.ts.map +1 -0
  43. package/dist/ui/Tabs/TabsList.js +27 -0
  44. package/dist/ui/Tabs/TabsPanel.d.ts +6 -0
  45. package/dist/ui/Tabs/TabsPanel.d.ts.map +1 -0
  46. package/dist/ui/Tabs/TabsPanel.js +10 -0
  47. package/dist/ui/Tabs/context.d.ts +15 -0
  48. package/dist/ui/Tabs/context.d.ts.map +1 -0
  49. package/dist/ui/Tabs/context.js +13 -0
  50. package/dist/ui/index.d.ts +7 -1
  51. package/dist/ui/index.d.ts.map +1 -1
  52. package/package.json +1 -1
@@ -1,29 +1,31 @@
1
- const o = "_root_1o2bt_2", t = "_xs_1o2bt_21", _ = "_sm_1o2bt_25", n = "_md_1o2bt_29", s = "_lg_1o2bt_33", c = "_xl_1o2bt_37", d = "_primary_1o2bt_41", a = "_secondary_1o2bt_49", r = "_danger_1o2bt_58", b = "_disabled_1o2bt_67", e = "_content_1o2bt_72", l = "_loading_1o2bt_80", g = {
2
- root: o,
3
- xs: t,
4
- sm: _,
5
- md: n,
6
- lg: s,
7
- xl: c,
8
- primary: d,
9
- secondary: a,
10
- danger: r,
11
- disabled: b,
12
- content: e,
13
- loading: l
1
+ const _ = "_root_1cl4z_2", c = "_xs_1cl4z_23", l = "_sm_1cl4z_28", o = "_md_1cl4z_33", n = "_lg_1cl4z_38", s = "_xl_1cl4z_43", t = "_primary_1cl4z_48", d = "_secondary_1cl4z_56", a = "_danger_1cl4z_65", e = "_filled_1cl4z_74", r = "_disabled_1cl4z_104", z = "_content_1cl4z_113", i = "_loading_1cl4z_121", g = {
2
+ root: _,
3
+ xs: c,
4
+ sm: l,
5
+ md: o,
6
+ lg: n,
7
+ xl: s,
8
+ primary: t,
9
+ secondary: d,
10
+ danger: a,
11
+ filled: e,
12
+ disabled: r,
13
+ content: z,
14
+ loading: i
14
15
  };
15
16
  export {
16
- e as content,
17
- r as danger,
17
+ z as content,
18
+ a as danger,
18
19
  g as default,
19
- b as disabled,
20
- s as lg,
21
- l as loading,
22
- n as md,
23
- d as primary,
24
- o as root,
25
- a as secondary,
26
- _ as sm,
27
- c as xl,
28
- t as xs
20
+ r as disabled,
21
+ e as filled,
22
+ n as lg,
23
+ i as loading,
24
+ o as md,
25
+ t as primary,
26
+ _ as root,
27
+ d as secondary,
28
+ l as sm,
29
+ s as xl,
30
+ c as xs
29
31
  };
@@ -0,0 +1,24 @@
1
+ import { type ComponentProps, type CSSProperties, type ReactNode } from "react";
2
+ import { type GapType } from "../Flex/constants.js";
3
+ declare const COLUMNS_SX: {
4
+ readonly 1: "grid-cols-1";
5
+ readonly 2: "grid-cols-2";
6
+ readonly 3: "grid-cols-3";
7
+ readonly 4: "grid-cols-4";
8
+ };
9
+ export interface ListProps extends ComponentProps<"div"> {
10
+ columns?: keyof typeof COLUMNS_SX;
11
+ gap?: GapType;
12
+ template?: CSSProperties["gridTemplateColumns"];
13
+ columnsTemplate?: CSSProperties["gridTemplateColumns"];
14
+ }
15
+ export interface ListItemProps extends Omit<ComponentProps<"div">, "children"> {
16
+ label: ReactNode;
17
+ value: ReactNode;
18
+ template?: CSSProperties["gridTemplateColumns"];
19
+ }
20
+ export declare const List: (({ children, columns, gap, template, columnsTemplate, className, style, ...props }: ListProps) => import("react").JSX.Element) & {
21
+ Item: ({ label, value, template, className, style, ...props }: ListItemProps) => import("react").JSX.Element;
22
+ };
23
+ export {};
24
+ //# sourceMappingURL=List.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../src/ui/List/List.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,aAAa,EAElB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAMf,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE5D,QAAA,MAAM,UAAU;;;;;CAKN,CAAC;AAEX,MAAM,WAAW,SAAU,SAAQ,cAAc,CAAC,KAAK,CAAC;IACtD,OAAO,CAAC,EAAE,MAAM,OAAO,UAAU,CAAC;IAClC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAChD,eAAe,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACxD;AA4CD,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IAC5E,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CACjD;AAsCD,eAAO,MAAM,IAAI,uFA3Ed,SAAS;mEA8CT,aAAa;CA6B+C,CAAC"}
@@ -0,0 +1,74 @@
1
+ import { jsx as o, jsxs as l } from "react/jsx-runtime";
2
+ import { Children as x, isValidElement as u, cloneElement as C } from "react";
3
+ import { Flex as N } from "../Flex/Flex.js";
4
+ import { Text as d } from "../Text/Text.js";
5
+ import a from "clsx";
6
+ import { GAP_SX as j } from "../Flex/constants.js";
7
+ const y = {
8
+ 1: "grid-cols-1",
9
+ 2: "grid-cols-2",
10
+ 3: "grid-cols-3",
11
+ 4: "grid-cols-4"
12
+ }, L = ({
13
+ children: t,
14
+ columns: s = 1,
15
+ gap: m = "sm",
16
+ template: e,
17
+ columnsTemplate: r,
18
+ className: n,
19
+ style: c,
20
+ ...p
21
+ }) => {
22
+ const f = e ? x.map(t, (i) => !u(i) || i.type !== g ? i : C(i, {
23
+ template: i.props.template ?? e
24
+ })) : t;
25
+ return /* @__PURE__ */ o(
26
+ "div",
27
+ {
28
+ className: a(
29
+ "grid w-full",
30
+ !r && y[s],
31
+ j[m],
32
+ n
33
+ ),
34
+ style: r ? { ...c, gridTemplateColumns: r } : c,
35
+ ...p,
36
+ children: f
37
+ }
38
+ );
39
+ }, g = ({
40
+ label: t,
41
+ value: s,
42
+ template: m,
43
+ className: e,
44
+ style: r,
45
+ ...n
46
+ }) => m ? /* @__PURE__ */ l(
47
+ "div",
48
+ {
49
+ className: a("grid items-center gap-4", e),
50
+ style: { ...r, gridTemplateColumns: m },
51
+ ...n,
52
+ children: [
53
+ /* @__PURE__ */ o(d, { className: "text-gray-1", children: t }),
54
+ /* @__PURE__ */ o("div", { className: "min-w-0", children: s })
55
+ ]
56
+ }
57
+ ) : /* @__PURE__ */ l(
58
+ N,
59
+ {
60
+ alignItems: "center",
61
+ gap: "md",
62
+ justifyContent: "between",
63
+ className: e,
64
+ style: r,
65
+ ...n,
66
+ children: [
67
+ /* @__PURE__ */ o(d, { className: "text-gray-1", children: t }),
68
+ s
69
+ ]
70
+ }
71
+ ), O = Object.assign(L, { Item: g });
72
+ export {
73
+ O as List
74
+ };
@@ -0,0 +1,32 @@
1
+ import { type ReactNode } from "react";
2
+ import { type ButtonProps } from "../Button/Button.js";
3
+ import { type FlexProps } from "../Flex/Flex.js";
4
+ export declare const MODAL_SIZE: {
5
+ readonly xs: "xs";
6
+ readonly sm: "sm";
7
+ readonly md: "md";
8
+ readonly lg: "lg";
9
+ readonly xl: "xl";
10
+ };
11
+ export type ModalSize = (typeof MODAL_SIZE)[keyof typeof MODAL_SIZE];
12
+ export interface ModalRootProps {
13
+ children: ReactNode;
14
+ size?: ModalSize;
15
+ className?: string;
16
+ closeDisabled?: boolean;
17
+ "aria-label"?: string;
18
+ }
19
+ interface HeaderProps extends FlexProps {
20
+ startIcon?: ReactNode;
21
+ withCloseButton?: boolean;
22
+ }
23
+ export declare const Modal: {
24
+ Root: ({ children, size, className, closeDisabled, "aria-label": ariaLabel, }: ModalRootProps) => import("react").JSX.Element;
25
+ Header: ({ children, startIcon, withCloseButton, ...props }: HeaderProps) => import("react").JSX.Element;
26
+ Content: ({ children, className, ref, ...props }: FlexProps) => import("react").JSX.Element;
27
+ Footer: ({ children, justifyContent, ...props }: FlexProps) => import("react").JSX.Element;
28
+ Cancel: ({ children, onClick, disabled, ...props }: ButtonProps) => import("react").JSX.Element;
29
+ Confirm: ({ children, type, ...props }: ButtonProps) => import("react").JSX.Element;
30
+ };
31
+ export {};
32
+ //# sourceMappingURL=Modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/ui/Modal/Modal.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EASf,MAAM,OAAO,CAAC;AAEf,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAUvD,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAWrE,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAqGD,UAAU,WAAY,SAAQ,SAAS;IACrC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAwGD,eAAO,MAAM,KAAK;mFAjLf,cAAc;iEAgFd,WAAW;sDAyB2C,SAAS;qDA+BF,SAAS;wDAWtE,WAAW;4CAwBX,WAAW;CAMyD,CAAC"}
@@ -0,0 +1,134 @@
1
+ "use client";
2
+ import { jsx as c, jsxs as O } from "react/jsx-runtime";
3
+ import { useContext as C, useRef as p, useState as R, useImperativeHandle as H, useLayoutEffect as N, useId as j, useMemo as B, useEffect as P, createContext as T } from "react";
4
+ import { Button as M } from "../Button/Button.js";
5
+ import { Flex as b } from "../Flex/Flex.js";
6
+ import { IconButton as X } from "../IconButton/IconButton.js";
7
+ import { Text as z } from "../Text/Text.js";
8
+ import E from "clsx";
9
+ import { X as A } from "lucide-react";
10
+ import { useModal as h } from "./ModalContext.js";
11
+ import u from "./Modal.module.css.js";
12
+ const D = {
13
+ xs: "xs",
14
+ sm: "sm",
15
+ md: "md",
16
+ lg: "lg",
17
+ xl: "xl"
18
+ }, v = T(
19
+ {}
20
+ );
21
+ let y = 0, x = "", w = "";
22
+ const F = () => (y === 0 && (x = document.body.style.overflow, w = document.documentElement.style.overflow, document.body.style.overflow = "hidden", document.documentElement.style.overflow = "hidden"), y += 1, () => {
23
+ y -= 1, y === 0 && (document.body.style.overflow = x, document.documentElement.style.overflow = w);
24
+ }), L = ({
25
+ children: o,
26
+ size: t = D.md,
27
+ className: r,
28
+ closeDisabled: l = !1,
29
+ "aria-label": n
30
+ }) => {
31
+ const { closeModal: s } = h(), i = p(null), a = p(!1), d = j(), m = B(
32
+ () => ({ titleId: d, closeDisabled: l }),
33
+ [d, l]
34
+ );
35
+ P(() => {
36
+ const e = i.current;
37
+ if (!e) return;
38
+ e.showModal();
39
+ const g = F();
40
+ return () => {
41
+ e.close(), g();
42
+ };
43
+ }, []);
44
+ const f = (e) => {
45
+ if (e.target !== e.currentTarget) return !1;
46
+ const { left: g, right: S, top: k, bottom: I } = e.currentTarget.getBoundingClientRect();
47
+ return e.clientX < g || e.clientX > S || e.clientY < k || e.clientY > I;
48
+ };
49
+ return /* @__PURE__ */ c(v.Provider, { value: m, children: /* @__PURE__ */ c(
50
+ "dialog",
51
+ {
52
+ ref: i,
53
+ className: E(u.root, u[t], r),
54
+ "aria-modal": "true",
55
+ "aria-labelledby": n ? void 0 : d,
56
+ "aria-label": n,
57
+ onCancel: (e) => {
58
+ e.preventDefault(), l || s();
59
+ },
60
+ onPointerDown: (e) => {
61
+ a.current = f(e);
62
+ },
63
+ onClick: (e) => {
64
+ !l && a.current && f(e) && s(), a.current = !1;
65
+ },
66
+ children: /* @__PURE__ */ c(b, { direction: "col", gap: "md", className: u.layout, children: o })
67
+ }
68
+ ) });
69
+ }, Y = ({
70
+ children: o,
71
+ startIcon: t,
72
+ withCloseButton: r = !0,
73
+ ...l
74
+ }) => {
75
+ const { closeModal: n } = h(), { titleId: s, closeDisabled: i } = C(v);
76
+ return /* @__PURE__ */ O(b, { justifyContent: "between", alignItems: "center", ...l, children: [
77
+ t,
78
+ /* @__PURE__ */ c(z, { id: s, size: "xl", weight: "medium", children: o }),
79
+ r && /* @__PURE__ */ c(
80
+ X,
81
+ {
82
+ className: u.close,
83
+ color: "secondary",
84
+ "aria-label": "Закрыть окно",
85
+ disabled: i,
86
+ onClick: n,
87
+ children: /* @__PURE__ */ c(A, {})
88
+ }
89
+ )
90
+ ] });
91
+ }, V = ({ children: o, className: t, ref: r, ...l }) => {
92
+ const n = p(null), [s, i] = R(!1);
93
+ return H(r, () => n.current, []), N(() => {
94
+ const a = n.current;
95
+ if (!a) return;
96
+ const d = () => i(a.scrollHeight > a.clientHeight), m = new ResizeObserver(d);
97
+ return m.observe(a), Array.from(a.children).forEach((f) => m.observe(f)), d(), () => m.disconnect();
98
+ }, [o]), /* @__PURE__ */ c(
99
+ b,
100
+ {
101
+ ref: n,
102
+ className: E(u.content, { [u.scrollable]: s }, t),
103
+ ...l,
104
+ children: o
105
+ }
106
+ );
107
+ }, Z = ({ children: o, justifyContent: t = "end", ...r }) => /* @__PURE__ */ c(b, { direction: "row", justifyContent: t, ...r, children: o }), _ = ({
108
+ children: o = "Отменить",
109
+ onClick: t,
110
+ disabled: r,
111
+ ...l
112
+ }) => {
113
+ const { closeModal: n } = h(), { closeDisabled: s } = C(v);
114
+ return /* @__PURE__ */ c(
115
+ M,
116
+ {
117
+ variant: "outlined",
118
+ disabled: r || s,
119
+ onClick: (i) => {
120
+ s || (t?.(i), i.defaultPrevented || n());
121
+ },
122
+ ...l,
123
+ children: o
124
+ }
125
+ );
126
+ }, q = ({
127
+ children: o = "Подтвердить",
128
+ type: t = "submit",
129
+ ...r
130
+ }) => /* @__PURE__ */ c(M, { type: t, ...r, children: o }), re = { Root: L, Header: Y, Content: V, Footer: Z, Cancel: _, Confirm: q };
131
+ export {
132
+ D as MODAL_SIZE,
133
+ re as Modal
134
+ };
@@ -0,0 +1,25 @@
1
+ const o = "_root_12ndw_2", _ = "_layout_12ndw_24", n = "_content_12ndw_28", s = "_scrollable_12ndw_36", t = "_xs_12ndw_40", l = "_sm_12ndw_41", c = "_md_12ndw_42", d = "_lg_12ndw_43", e = "_xl_12ndw_44", w = "_close_12ndw_46", a = {
2
+ root: o,
3
+ layout: _,
4
+ content: n,
5
+ scrollable: s,
6
+ xs: t,
7
+ sm: l,
8
+ md: c,
9
+ lg: d,
10
+ xl: e,
11
+ close: w
12
+ };
13
+ export {
14
+ w as close,
15
+ n as content,
16
+ a as default,
17
+ _ as layout,
18
+ d as lg,
19
+ c as md,
20
+ o as root,
21
+ s as scrollable,
22
+ l as sm,
23
+ e as xl,
24
+ t as xs
25
+ };
@@ -0,0 +1,9 @@
1
+ import { type ReactElement } from "react";
2
+ export interface ModalActions {
3
+ isOpen: boolean;
4
+ openModal: (modal: ReactElement) => void;
5
+ closeModal: () => void;
6
+ }
7
+ export declare const ModalContext: import("react").Context<ModalActions>;
8
+ export declare const useModal: () => ModalActions;
9
+ //# sourceMappingURL=ModalContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalContext.d.ts","sourceRoot":"","sources":["../../../src/ui/Modal/ModalContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,YAAY,EAAc,MAAM,OAAO,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,eAAO,MAAM,YAAY,uCAAkD,CAAC;AAE5E,eAAO,MAAM,QAAQ,oBAAiC,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { useContext as t, createContext as o } from "react";
3
+ const e = o({}), r = () => t(e);
4
+ export {
5
+ e as ModalContext,
6
+ r as useModal
7
+ };
@@ -0,0 +1,3 @@
1
+ import { type PropsWithChildren } from "react";
2
+ export declare const ModalProvider: ({ children }: PropsWithChildren) => import("react").JSX.Element;
3
+ //# sourceMappingURL=ModalProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModalProvider.d.ts","sourceRoot":"","sources":["../../../src/ui/Modal/ModalProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,iBAAiB,EAKvB,MAAM,OAAO,CAAC;AAIf,eAAO,MAAM,aAAa,GAAI,cAAc,iBAAiB,gCAwB5D,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsxs as d } from "react/jsx-runtime";
3
+ import { useState as m, useCallback as s, useMemo as i } from "react";
4
+ import { ModalContext as u } from "./ModalContext.js";
5
+ const v = ({ children: n }) => {
6
+ const [o, e] = m(null), t = !!o, l = s((c) => {
7
+ e(c);
8
+ }, []), r = s(() => {
9
+ e(null);
10
+ }, []), a = i(
11
+ () => ({ isOpen: t, openModal: l, closeModal: r }),
12
+ [t, l, r]
13
+ );
14
+ return /* @__PURE__ */ d(u.Provider, { value: a, children: [
15
+ n,
16
+ o
17
+ ] });
18
+ };
19
+ export {
20
+ v as ModalProvider
21
+ };
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from "react";
2
+ import { type FlexProps } from "../Flex/Flex.js";
3
+ export interface NoDataProps extends Omit<FlexProps, "children" | "title"> {
4
+ icon?: ReactNode;
5
+ title?: ReactNode;
6
+ description?: ReactNode;
7
+ }
8
+ export declare const NoData: ({ icon, title, description, className, ...props }: NoDataProps) => import("react").JSX.Element;
9
+ //# sourceMappingURL=NoData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NoData.d.ts","sourceRoot":"","sources":["../../../src/ui/NoData/NoData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIvD,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC;IACxE,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,eAAO,MAAM,MAAM,GAAI,mDAMpB,WAAW,gCAyBb,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
+ import { Flex as t } from "../Flex/Flex.js";
3
+ import { Text as i } from "../Text/Text.js";
4
+ import o from "clsx";
5
+ const g = ({
6
+ icon: r,
7
+ title: c = "Данных пока нет",
8
+ description: l,
9
+ className: s,
10
+ ...m
11
+ }) => /* @__PURE__ */ n(
12
+ t,
13
+ {
14
+ direction: "col",
15
+ alignItems: "center",
16
+ justifyContent: "center",
17
+ gap: "md",
18
+ className: o("h-full py-4 w-full text-center", s),
19
+ ...m,
20
+ children: [
21
+ r && /* @__PURE__ */ e(
22
+ t,
23
+ {
24
+ alignItems: "center",
25
+ justifyContent: "center",
26
+ className: "w-full shrink-0",
27
+ children: r
28
+ }
29
+ ),
30
+ /* @__PURE__ */ n(t, { direction: "col", alignItems: "center", gap: "xs", children: [
31
+ /* @__PURE__ */ e(i, { size: "lg", weight: "medium", children: c }),
32
+ l && /* @__PURE__ */ e(i, { className: "text-gray-1", children: l })
33
+ ] })
34
+ ]
35
+ }
36
+ );
37
+ export {
38
+ g as NoData
39
+ };
@@ -0,0 +1,7 @@
1
+ import type { ComponentProps } from 'react';
2
+ export interface TabProps extends Omit<ComponentProps<'button'>, 'value'> {
3
+ value: string;
4
+ color?: 'primary' | 'secondary';
5
+ }
6
+ export declare const Tab: ({ value, color, children, className, onClick, ...props }: TabProps) => import("react").JSX.Element;
7
+ //# sourceMappingURL=Tab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../../src/ui/Tabs/Tab.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAK5C,MAAM,WAAW,QAAS,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;CACjC;AAED,eAAO,MAAM,GAAG,GAAI,0DAAwE,QAAQ,gCAenG,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { jsx as d } from "react/jsx-runtime";
3
+ import { twMerge as f } from "tailwind-merge";
4
+ import { useTabs as l } from "./context.js";
5
+ import e from "./Tabs.module.css.js";
6
+ const y = ({ value: o, color: a = "secondary", children: s, className: c, onClick: b, ...m }) => {
7
+ const { tab: n, setTab: i } = l(), t = n === o;
8
+ return /* @__PURE__ */ d(
9
+ "button",
10
+ {
11
+ role: "tab",
12
+ type: "button",
13
+ "aria-selected": t,
14
+ tabIndex: t ? 0 : -1,
15
+ className: f(e.tab, e[a], t && e.active, c),
16
+ ...m,
17
+ onClick: (r) => {
18
+ b?.(r), r.defaultPrevented || i(o);
19
+ },
20
+ children: s
21
+ }
22
+ );
23
+ };
24
+ export {
25
+ y as Tab
26
+ };
@@ -0,0 +1,11 @@
1
+ export { useTabs, type TabsRootProps } from "./context.js";
2
+ export { type TabsListProps } from "./TabsList.js";
3
+ export { type TabProps } from "./Tab.js";
4
+ export { type TabsPanelProps } from "./TabsPanel.js";
5
+ export declare const Tabs: {
6
+ Root: ({ children, defaultValue, value, onChange }: import("./context.js").TabsRootProps) => import("react").JSX.Element;
7
+ List: ({ children, direction, className, ...props }: import("./TabsList.js").TabsListProps) => import("react").JSX.Element;
8
+ Tab: ({ value, color, children, className, onClick, ...props }: import("./Tab.js").TabProps) => import("react").JSX.Element;
9
+ Panel: ({ value, children, ...props }: import("./TabsPanel.js").TabsPanelProps) => import("react").JSX.Element | null;
10
+ };
11
+ //# sourceMappingURL=Tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/ui/Tabs/Tabs.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,eAAO,MAAM,IAAI;;;;;CAA4D,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use client";
2
+ import { TabsRoot as o } from "./context.js";
3
+ import { useTabs as f } from "./context.js";
4
+ import { TabsList as r } from "./TabsList.js";
5
+ import { Tab as t } from "./Tab.js";
6
+ import { TabsPanel as m } from "./TabsPanel.js";
7
+ const p = { Root: o, List: r, Tab: t, Panel: m };
8
+ export {
9
+ p as Tabs,
10
+ f as useTabs
11
+ };
@@ -0,0 +1,13 @@
1
+ const c = "_tab_zcvru_2", a = "_primary_zcvru_14", r = "_secondary_zcvru_15", t = "_active_zcvru_16", _ = {
2
+ tab: c,
3
+ primary: a,
4
+ secondary: r,
5
+ active: t
6
+ };
7
+ export {
8
+ t as active,
9
+ _ as default,
10
+ a as primary,
11
+ r as secondary,
12
+ c as tab
13
+ };
@@ -0,0 +1,4 @@
1
+ import { type FlexProps } from "../Flex/Flex.js";
2
+ export type TabsListProps = FlexProps;
3
+ export declare const TabsList: ({ children, direction, className, ...props }: TabsListProps) => import("react").JSX.Element;
4
+ //# sourceMappingURL=TabsList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsList.d.ts","sourceRoot":"","sources":["../../../src/ui/Tabs/TabsList.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEvD,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC;AAEtC,eAAO,MAAM,QAAQ,GAAI,8CAKtB,aAAa,gCAcf,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use client";
2
+ import { jsx as l } from "react/jsx-runtime";
3
+ import { twMerge as m } from "tailwind-merge";
4
+ import { Flex as s } from "../Flex/Flex.js";
5
+ const i = ({
6
+ children: r,
7
+ direction: o = "row",
8
+ className: e,
9
+ ...t
10
+ }) => /* @__PURE__ */ l(
11
+ s,
12
+ {
13
+ role: "tablist",
14
+ direction: o,
15
+ gap: "none",
16
+ className: m(
17
+ "rounded-lg overflow-hidden",
18
+ o === "row" ? "w-fit" : "w-full",
19
+ e
20
+ ),
21
+ ...t,
22
+ children: r
23
+ }
24
+ );
25
+ export {
26
+ i as TabsList
27
+ };
@@ -0,0 +1,6 @@
1
+ import type { ComponentProps } from "react";
2
+ export interface TabsPanelProps extends ComponentProps<"div"> {
3
+ value: string;
4
+ }
5
+ export declare const TabsPanel: ({ value, children, ...props }: TabsPanelProps) => import("react").JSX.Element | null;
6
+ //# sourceMappingURL=TabsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabsPanel.d.ts","sourceRoot":"","sources":["../../../src/ui/Tabs/TabsPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAG5C,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,KAAK,CAAC;IAC3D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,SAAS,GAAI,+BAA+B,cAAc,uCAQtE,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { jsx as n } from "react/jsx-runtime";
3
+ import { useTabs as a } from "./context.js";
4
+ const b = ({ value: r, children: t, ...o }) => {
5
+ const { tab: e } = a();
6
+ return e !== r ? null : /* @__PURE__ */ n("div", { role: "tabpanel", ...o, children: t });
7
+ };
8
+ export {
9
+ b as TabsPanel
10
+ };
@@ -0,0 +1,15 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface TabsRootProps {
3
+ children: ReactNode;
4
+ defaultValue?: string;
5
+ value?: string;
6
+ onChange?: (value: string) => void;
7
+ }
8
+ interface TabsContextValue {
9
+ tab: string;
10
+ setTab: (value: string) => void;
11
+ }
12
+ export declare const useTabs: () => TabsContextValue;
13
+ export declare const TabsRoot: ({ children, defaultValue, value, onChange }: TabsRootProps) => import("react").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/ui/Tabs/context.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAA8C,MAAM,OAAO,CAAC;AAElG,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,SAAS,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAGD,eAAO,MAAM,OAAO,wBAAgC,CAAC;AAErD,eAAO,MAAM,QAAQ,GAAI,6CAAkD,aAAa,gCAWvF,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use client";
2
+ import { jsx as m } from "react/jsx-runtime";
3
+ import { useState as x, useCallback as C, useMemo as T, useContext as d, createContext as f } from "react";
4
+ const r = f({}), v = () => d(r), j = ({ children: c, defaultValue: u = "", value: o, onChange: e }) => {
5
+ const [l, i] = x(u), t = o !== void 0, s = t ? o : l, n = C((a) => {
6
+ t || i(a), e?.(a);
7
+ }, [t, e]), b = T(() => ({ tab: s, setTab: n }), [s, n]);
8
+ return /* @__PURE__ */ m(r.Provider, { value: b, children: c });
9
+ };
10
+ export {
11
+ j as TabsRoot,
12
+ v as useTabs
13
+ };