brd-ui-kit 0.1.71 → 0.1.72
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.
- package/dist/brd-ui-kit.css +1 -1
- package/dist/components/basic-table/basic-table.d.ts +3 -1
- package/dist/components/input-contact/input-contact.d.ts +2 -2
- package/dist/components/ui/calendar/calendar.d.ts +19 -0
- package/dist/components/ui/calendar/calendar.styles.d.ts +4 -0
- package/dist/components/ui/calendar/index.d.ts +2 -0
- package/dist/components/ui/calendar.d.ts +2 -0
- package/dist/components/ui/icon/icon-presets.d.ts +35 -0
- package/dist/components/ui/icon/icon.d.ts +11 -7
- package/dist/components/ui/icon/index.d.ts +3 -1
- package/dist/components/ui/table/table.d.ts +2 -1
- package/dist/components-app-pagination-app-pagination.cjs +1 -1
- package/dist/components-app-pagination-app-pagination.cjs.map +1 -1
- package/dist/components-app-pagination-app-pagination.js +35 -35
- package/dist/components-app-pagination-app-pagination.js.map +1 -1
- package/dist/components-app-sidebar-app-sidebar.cjs +1 -1
- package/dist/components-app-sidebar-app-sidebar.cjs.map +1 -1
- package/dist/components-app-sidebar-app-sidebar.js +16 -16
- package/dist/components-app-sidebar-app-sidebar.js.map +1 -1
- package/dist/components-avatar-uploader-avatar-uploader.cjs +1 -1
- package/dist/components-avatar-uploader-avatar-uploader.cjs.map +1 -1
- package/dist/components-avatar-uploader-avatar-uploader.js +3 -4
- package/dist/components-avatar-uploader-avatar-uploader.js.map +1 -1
- package/dist/components-basic-avatar-basic-avatar.cjs +2 -2
- package/dist/components-basic-avatar-basic-avatar.cjs.map +1 -1
- package/dist/components-basic-avatar-basic-avatar.js +12 -12
- package/dist/components-basic-avatar-basic-avatar.js.map +1 -1
- package/dist/components-basic-table-basic-table.cjs +2 -2
- package/dist/components-basic-table-basic-table.cjs.map +1 -1
- package/dist/components-basic-table-basic-table.js +259 -255
- package/dist/components-basic-table-basic-table.js.map +1 -1
- package/dist/components-files-uploader-files-uploader.cjs +3 -3
- package/dist/components-files-uploader-files-uploader.cjs.map +1 -1
- package/dist/components-files-uploader-files-uploader.js +29 -29
- package/dist/components-files-uploader-files-uploader.js.map +1 -1
- package/dist/components-input-contact-input-contact.cjs +4 -8
- package/dist/components-input-contact-input-contact.cjs.map +1 -1
- package/dist/components-input-contact-input-contact.js +92 -109
- package/dist/components-input-contact-input-contact.js.map +1 -1
- package/dist/components-input-password-input-password.cjs +1 -1
- package/dist/components-input-password-input-password.cjs.map +1 -1
- package/dist/components-input-password-input-password.js +2 -2
- package/dist/components-input-password-input-password.js.map +1 -1
- package/dist/components-ui-button-button.styles.cjs +4 -4
- package/dist/components-ui-button-button.styles.cjs.map +1 -1
- package/dist/components-ui-button-button.styles.js +5 -5
- package/dist/components-ui-button-button.styles.js.map +1 -1
- package/dist/components-ui-calendar-calendar.cjs +13 -0
- package/dist/components-ui-calendar-calendar.cjs.map +1 -0
- package/dist/components-ui-calendar-calendar.js +3761 -0
- package/dist/components-ui-calendar-calendar.js.map +1 -0
- package/dist/components-ui-calendar-calendar.styles.cjs +14 -0
- package/dist/components-ui-calendar-calendar.styles.cjs.map +1 -0
- package/dist/components-ui-calendar-calendar.styles.js +34 -0
- package/dist/components-ui-calendar-calendar.styles.js.map +1 -0
- package/dist/components-ui-calendar.cjs +2 -0
- package/dist/components-ui-calendar.cjs.map +1 -0
- package/dist/components-ui-calendar.js +6 -0
- package/dist/components-ui-calendar.js.map +1 -0
- package/dist/components-ui-checkbox-checkbox.cjs +1 -1
- package/dist/components-ui-checkbox-checkbox.cjs.map +1 -1
- package/dist/components-ui-checkbox-checkbox.js +12 -11
- package/dist/components-ui-checkbox-checkbox.js.map +1 -1
- package/dist/components-ui-combobox-combobox.cjs +4 -4
- package/dist/components-ui-combobox-combobox.cjs.map +1 -1
- package/dist/components-ui-combobox-combobox.js +4 -4
- package/dist/components-ui-combobox-combobox.js.map +1 -1
- package/dist/components-ui-dialog-dialog.cjs +1 -1
- package/dist/components-ui-dialog-dialog.cjs.map +1 -1
- package/dist/components-ui-dialog-dialog.js +4 -10
- package/dist/components-ui-dialog-dialog.js.map +1 -1
- package/dist/components-ui-icon-icon-presets.cjs +2 -0
- package/dist/components-ui-icon-icon-presets.cjs.map +1 -0
- package/dist/components-ui-icon-icon-presets.js +14 -0
- package/dist/components-ui-icon-icon-presets.js.map +1 -0
- package/dist/components-ui-icon-icon.cjs +1 -1
- package/dist/components-ui-icon-icon.cjs.map +1 -1
- package/dist/components-ui-icon-icon.js +62714 -34
- package/dist/components-ui-icon-icon.js.map +1 -1
- package/dist/components-ui-icon.cjs +1 -1
- package/dist/components-ui-icon.js +4 -2
- package/dist/components-ui-icon.js.map +1 -1
- package/dist/components-ui-pagination-pagination.cjs +1 -1
- package/dist/components-ui-pagination-pagination.cjs.map +1 -1
- package/dist/components-ui-pagination-pagination.js +50 -50
- package/dist/components-ui-pagination-pagination.js.map +1 -1
- package/dist/components-ui-select-select.cjs +1 -1
- package/dist/components-ui-select-select.cjs.map +1 -1
- package/dist/components-ui-select-select.js +1 -1
- package/dist/components-ui-select-select.js.map +1 -1
- package/dist/components-ui-sonner-sonner.cjs +1 -1
- package/dist/components-ui-sonner-sonner.cjs.map +1 -1
- package/dist/components-ui-sonner-sonner.js +14 -14
- package/dist/components-ui-sonner-sonner.js.map +1 -1
- package/dist/components-ui-table-table.cjs +4 -4
- package/dist/components-ui-table-table.cjs.map +1 -1
- package/dist/components-ui-table-table.js +89 -85
- package/dist/components-ui-table-table.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +23 -20
- package/dist/index.js.map +1 -1
- package/dist/types/types.d.ts +2 -2
- package/package.json +27 -16
- package/dist/components/ui/icon/icon-dictionary.d.ts +0 -60
- package/dist/components/ui/icon/overrides.d.ts +0 -21
- package/dist/components-ui-icon-icon-dictionary.cjs +0 -2
- package/dist/components-ui-icon-icon-dictionary.cjs.map +0 -1
- package/dist/components-ui-icon-icon-dictionary.js +0 -63
- package/dist/components-ui-icon-icon-dictionary.js.map +0 -1
- package/dist/components-ui-icon-overrides.cjs +0 -2
- package/dist/components-ui-icon-overrides.cjs.map +0 -1
- package/dist/components-ui-icon-overrides.js +0 -175
- package/dist/components-ui-icon-overrides.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-app-pagination-app-pagination.cjs","sources":["../src/components/app-pagination/app-pagination.tsx"],"sourcesContent":["import { getPageNumbers } from \"@/utils/helpers\";\
|
|
1
|
+
{"version":3,"file":"components-app-pagination-app-pagination.cjs","sources":["../src/components/app-pagination/app-pagination.tsx"],"sourcesContent":["import { getPageNumbers } from \"@/utils/helpers\";\nimport { cn } from \"@/lib/utils\";\nimport { Icon } from \"../ui/icon\";\nimport { Button } from \"../ui/button\";\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n} from \"../ui/pagination\";\nimport {\n appPaginationContentVariants,\n appPaginationNavigationButtonVariants,\n appPaginationPageVariants,\n type AppPaginationSize,\n} from \"./app-pagination.styles\";\n\ntype Props = {\n currentPage: number;\n totalPages: number;\n maxVisiblePages?: number;\n className?: string;\n showNavigation?: boolean;\n prevLabel?: string;\n nextLabel?: string;\n size?: AppPaginationSize;\n ellipsisStep?: number;\n onPageChange: (page: number) => void;\n};\n\nconst DEFAULT_VISIBLE_PAGES = 5;\nconst DEFAULT_ELLIPSIS_STEP = 5;\n\nexport const AppPagination = ({\n currentPage,\n totalPages,\n maxVisiblePages = DEFAULT_VISIBLE_PAGES,\n className,\n showNavigation = true,\n prevLabel,\n nextLabel,\n size = \"default\",\n ellipsisStep = DEFAULT_ELLIPSIS_STEP,\n onPageChange,\n}: Props) => {\n if (totalPages <= 1) return null;\n\n const pageNumbers = getPageNumbers(maxVisiblePages, currentPage, totalPages);\n\n const handlePageChange = (page: number) => {\n if (page >= 1 && page <= totalPages) {\n onPageChange(page);\n }\n };\n\n const handleEllipsisClick = (type: \"ellipsis-start\" | \"ellipsis-end\") => {\n if (type === \"ellipsis-start\") {\n const newPage = Math.max(1, currentPage - ellipsisStep);\n handlePageChange(newPage);\n } else {\n const newPage = Math.min(totalPages, currentPage + ellipsisStep);\n handlePageChange(newPage);\n }\n };\n\n return (\n <Pagination className=\"w-fit\">\n <PaginationContent\n className={cn(appPaginationContentVariants({ size }), className)}\n >\n {showNavigation && (\n <PaginationItem>\n <Button\n variant=\"ghost\"\n disabled={currentPage === 1}\n onClick={() => handlePageChange(currentPage - 1)}\n className={appPaginationNavigationButtonVariants({\n size,\n side: \"prev\",\n })}\n aria-label=\"Предыдущая страница\"\n >\n {prevLabel || <Icon type=\"caret-left\" size=\"small\" />}\n </Button>\n </PaginationItem>\n )}\n\n {pageNumbers.map((page) => {\n if (page === \"ellipsis-start\" || page === \"ellipsis-end\") {\n return (\n <PaginationItem key={page}>\n <Button\n variant=\"ghost\"\n onClick={() => handleEllipsisClick(page)}\n className={appPaginationPageVariants({ size })}\n aria-label={\n page === \"ellipsis-start\"\n ? `Перейти на ${ellipsisStep} страниц назад`\n : `Перейти на ${ellipsisStep} страниц вперед`\n }\n title={\n page === \"ellipsis-start\"\n ? `Нажать чтобы перейти на ${ellipsisStep} страниц назад`\n : `Нажать чтобы перейти на ${ellipsisStep} страниц вперед`\n }\n >\n ...\n </Button>\n </PaginationItem>\n );\n }\n\n return (\n <PaginationItem key={page}>\n <PaginationLink\n isActive={currentPage === page}\n onClick={() => handlePageChange(page)}\n className={appPaginationPageVariants({\n size,\n active: currentPage === page,\n })}\n aria-label={`Страница ${page}`}\n aria-current={currentPage === page ? \"page\" : undefined}\n >\n {page}\n </PaginationLink>\n </PaginationItem>\n );\n })}\n\n {showNavigation && (\n <PaginationItem>\n <Button\n variant=\"ghost\"\n disabled={currentPage === totalPages}\n onClick={() => handlePageChange(currentPage + 1)}\n className={appPaginationNavigationButtonVariants({\n size,\n side: \"next\",\n })}\n aria-label=\"Следующая страница\"\n >\n {nextLabel || <Icon type=\"caret-right\" size=\"small\" />}\n </Button>\n </PaginationItem>\n )}\n </PaginationContent>\n </Pagination>\n );\n};\n"],"names":["DEFAULT_VISIBLE_PAGES","DEFAULT_ELLIPSIS_STEP","AppPagination","currentPage","totalPages","maxVisiblePages","className","showNavigation","prevLabel","nextLabel","size","ellipsisStep","onPageChange","pageNumbers","getPageNumbers","handlePageChange","page","handleEllipsisClick","type","newPage","jsx","Pagination","jsxs","PaginationContent","cn","appPaginationContentVariants","PaginationItem","Button","appPaginationNavigationButtonVariants","Icon","appPaginationPageVariants","PaginationLink"],"mappings":"icA8BMA,EAAwB,EACxBC,EAAwB,EAEjBC,EAAgB,CAAC,CAC5B,YAAAC,EACA,WAAAC,EACA,gBAAAC,EAAkBL,EAClB,UAAAM,EACA,eAAAC,EAAiB,GACjB,UAAAC,EACA,UAAAC,EACA,KAAAC,EAAO,UACP,aAAAC,EAAeV,EACf,aAAAW,CACF,IAAa,CACX,GAAIR,GAAc,EAAG,OAAO,KAE5B,MAAMS,EAAcC,EAAAA,eAAeT,EAAiBF,EAAaC,CAAU,EAErEW,EAAoBC,GAAiB,CACrCA,GAAQ,GAAKA,GAAQZ,GACvBQ,EAAaI,CAAI,CAErB,EAEMC,EAAuBC,GAA4C,CACvE,GAAIA,IAAS,iBAAkB,CAC7B,MAAMC,EAAU,KAAK,IAAI,EAAGhB,EAAcQ,CAAY,EACtDI,EAAiBI,CAAO,CAC1B,KAAO,CACL,MAAMA,EAAU,KAAK,IAAIf,EAAYD,EAAcQ,CAAY,EAC/DI,EAAiBI,CAAO,CAC1B,CACF,EAEA,OACEC,EAAAA,IAACC,EAAAA,WAAA,CAAW,UAAU,QACpB,SAAAC,EAAAA,KAACC,EAAAA,kBAAA,CACC,UAAWC,EAAAA,GAAGC,EAAAA,6BAA6B,CAAE,KAAAf,CAAA,CAAM,EAAGJ,CAAS,EAE9D,SAAA,CAAAC,SACEmB,iBAAA,CACC,SAAAN,EAAAA,IAACO,EAAAA,OAAA,CACC,QAAQ,QACR,SAAUxB,IAAgB,EAC1B,QAAS,IAAMY,EAAiBZ,EAAc,CAAC,EAC/C,UAAWyB,EAAAA,sCAAsC,CAC/C,KAAAlB,EACA,KAAM,MAAA,CACP,EACD,aAAW,sBAEV,YAAaU,EAAAA,IAACS,EAAAA,KAAA,CAAK,KAAK,aAAa,KAAK,OAAA,CAAQ,CAAA,CAAA,EAEvD,EAGDhB,EAAY,IAAKG,GACZA,IAAS,kBAAoBA,IAAS,qBAErCU,EAAAA,eAAA,CACC,SAAAN,EAAAA,IAACO,EAAAA,OAAA,CACC,QAAQ,QACR,QAAS,IAAMV,EAAoBD,CAAI,EACvC,UAAWc,EAAAA,0BAA0B,CAAE,KAAApB,EAAM,EAC7C,aACEM,IAAS,iBACL,cAAcL,CAAY,iBAC1B,cAAcA,CAAY,kBAEhC,MACEK,IAAS,iBACL,2BAA2BL,CAAY,iBACvC,2BAA2BA,CAAY,kBAE9C,SAAA,KAAA,CAAA,GAfkBK,CAkBrB,QAKDU,EAAAA,eAAA,CACC,SAAAN,EAAAA,IAACW,EAAAA,eAAA,CACC,SAAU5B,IAAgBa,EAC1B,QAAS,IAAMD,EAAiBC,CAAI,EACpC,UAAWc,EAAAA,0BAA0B,CACnC,KAAApB,EACA,OAAQP,IAAgBa,CAAA,CACzB,EACD,aAAY,YAAYA,CAAI,GAC5B,eAAcb,IAAgBa,EAAO,OAAS,OAE7C,SAAAA,CAAA,CAAA,GAXgBA,CAarB,CAEH,EAEAT,SACEmB,iBAAA,CACC,SAAAN,EAAAA,IAACO,EAAAA,OAAA,CACC,QAAQ,QACR,SAAUxB,IAAgBC,EAC1B,QAAS,IAAMW,EAAiBZ,EAAc,CAAC,EAC/C,UAAWyB,EAAAA,sCAAsC,CAC/C,KAAAlB,EACA,KAAM,MAAA,CACP,EACD,aAAW,qBAEV,YAAaU,EAAAA,IAACS,EAAAA,KAAA,CAAK,KAAK,cAAc,KAAK,OAAA,CAAQ,CAAA,CAAA,CACtD,CACF,CAAA,CAAA,CAAA,EAGN,CAEJ"}
|
|
@@ -1,71 +1,71 @@
|
|
|
1
1
|
import { jsx as n, jsxs as L } from "react/jsx-runtime";
|
|
2
|
-
import { getPageNumbers as
|
|
2
|
+
import { getPageNumbers as p } from "./utils-helpers.js";
|
|
3
3
|
import { cn as x } from "./lib-utils.js";
|
|
4
|
-
import {
|
|
4
|
+
import { Icon as e } from "./components-ui-icon-icon.js";
|
|
5
5
|
import { Button as c } from "./components-ui-button-button.js";
|
|
6
6
|
import "./components-ui-button-button.styles.js";
|
|
7
|
-
import { Pagination as
|
|
8
|
-
import { appPaginationNavigationButtonVariants as h, appPaginationPageVariants as
|
|
9
|
-
const
|
|
7
|
+
import { Pagination as A, PaginationContent as $, PaginationItem as s, PaginationLink as V } from "./components-ui-pagination-pagination.js";
|
|
8
|
+
import { appPaginationNavigationButtonVariants as h, appPaginationPageVariants as f, appPaginationContentVariants as _ } from "./components-app-pagination-app-pagination.styles.js";
|
|
9
|
+
const u = 5, B = 5, U = ({
|
|
10
10
|
currentPage: a,
|
|
11
|
-
totalPages:
|
|
12
|
-
maxVisiblePages:
|
|
11
|
+
totalPages: l,
|
|
12
|
+
maxVisiblePages: b = u,
|
|
13
13
|
className: C,
|
|
14
14
|
showNavigation: d = !0,
|
|
15
|
-
prevLabel:
|
|
16
|
-
nextLabel:
|
|
17
|
-
size:
|
|
18
|
-
ellipsisStep: t =
|
|
19
|
-
onPageChange:
|
|
15
|
+
prevLabel: N,
|
|
16
|
+
nextLabel: v,
|
|
17
|
+
size: o = "default",
|
|
18
|
+
ellipsisStep: t = B,
|
|
19
|
+
onPageChange: E
|
|
20
20
|
}) => {
|
|
21
|
-
if (
|
|
22
|
-
const
|
|
23
|
-
i >= 1 && i <=
|
|
21
|
+
if (l <= 1) return null;
|
|
22
|
+
const k = p(b, a, l), r = (i) => {
|
|
23
|
+
i >= 1 && i <= l && E(i);
|
|
24
24
|
}, I = (i) => {
|
|
25
25
|
if (i === "ellipsis-start") {
|
|
26
26
|
const m = Math.max(1, a - t);
|
|
27
|
-
|
|
27
|
+
r(m);
|
|
28
28
|
} else {
|
|
29
|
-
const m = Math.min(
|
|
30
|
-
|
|
29
|
+
const m = Math.min(l, a + t);
|
|
30
|
+
r(m);
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
|
-
return /* @__PURE__ */ n(
|
|
34
|
-
|
|
33
|
+
return /* @__PURE__ */ n(A, { className: "w-fit", children: /* @__PURE__ */ L(
|
|
34
|
+
$,
|
|
35
35
|
{
|
|
36
|
-
className: x(
|
|
36
|
+
className: x(_({ size: o }), C),
|
|
37
37
|
children: [
|
|
38
38
|
d && /* @__PURE__ */ n(s, { children: /* @__PURE__ */ n(
|
|
39
39
|
c,
|
|
40
40
|
{
|
|
41
41
|
variant: "ghost",
|
|
42
42
|
disabled: a === 1,
|
|
43
|
-
onClick: () =>
|
|
43
|
+
onClick: () => r(a - 1),
|
|
44
44
|
className: h({
|
|
45
|
-
size:
|
|
45
|
+
size: o,
|
|
46
46
|
side: "prev"
|
|
47
47
|
}),
|
|
48
48
|
"aria-label": "Предыдущая страница",
|
|
49
|
-
children:
|
|
49
|
+
children: N || /* @__PURE__ */ n(e, { type: "caret-left", size: "small" })
|
|
50
50
|
}
|
|
51
51
|
) }),
|
|
52
|
-
|
|
52
|
+
k.map((i) => i === "ellipsis-start" || i === "ellipsis-end" ? /* @__PURE__ */ n(s, { children: /* @__PURE__ */ n(
|
|
53
53
|
c,
|
|
54
54
|
{
|
|
55
55
|
variant: "ghost",
|
|
56
56
|
onClick: () => I(i),
|
|
57
|
-
className:
|
|
57
|
+
className: f({ size: o }),
|
|
58
58
|
"aria-label": i === "ellipsis-start" ? `Перейти на ${t} страниц назад` : `Перейти на ${t} страниц вперед`,
|
|
59
59
|
title: i === "ellipsis-start" ? `Нажать чтобы перейти на ${t} страниц назад` : `Нажать чтобы перейти на ${t} страниц вперед`,
|
|
60
60
|
children: "..."
|
|
61
61
|
}
|
|
62
62
|
) }, i) : /* @__PURE__ */ n(s, { children: /* @__PURE__ */ n(
|
|
63
|
-
|
|
63
|
+
V,
|
|
64
64
|
{
|
|
65
65
|
isActive: a === i,
|
|
66
|
-
onClick: () =>
|
|
67
|
-
className:
|
|
68
|
-
size:
|
|
66
|
+
onClick: () => r(i),
|
|
67
|
+
className: f({
|
|
68
|
+
size: o,
|
|
69
69
|
active: a === i
|
|
70
70
|
}),
|
|
71
71
|
"aria-label": `Страница ${i}`,
|
|
@@ -77,14 +77,14 @@ const B = 5, P = 5, R = ({
|
|
|
77
77
|
c,
|
|
78
78
|
{
|
|
79
79
|
variant: "ghost",
|
|
80
|
-
disabled: a ===
|
|
81
|
-
onClick: () =>
|
|
80
|
+
disabled: a === l,
|
|
81
|
+
onClick: () => r(a + 1),
|
|
82
82
|
className: h({
|
|
83
|
-
size:
|
|
83
|
+
size: o,
|
|
84
84
|
side: "next"
|
|
85
85
|
}),
|
|
86
86
|
"aria-label": "Следующая страница",
|
|
87
|
-
children:
|
|
87
|
+
children: v || /* @__PURE__ */ n(e, { type: "caret-right", size: "small" })
|
|
88
88
|
}
|
|
89
89
|
) })
|
|
90
90
|
]
|
|
@@ -92,6 +92,6 @@ const B = 5, P = 5, R = ({
|
|
|
92
92
|
) });
|
|
93
93
|
};
|
|
94
94
|
export {
|
|
95
|
-
|
|
95
|
+
U as AppPagination
|
|
96
96
|
};
|
|
97
97
|
//# sourceMappingURL=components-app-pagination-app-pagination.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-app-pagination-app-pagination.js","sources":["../src/components/app-pagination/app-pagination.tsx"],"sourcesContent":["import { getPageNumbers } from \"@/utils/helpers\";\
|
|
1
|
+
{"version":3,"file":"components-app-pagination-app-pagination.js","sources":["../src/components/app-pagination/app-pagination.tsx"],"sourcesContent":["import { getPageNumbers } from \"@/utils/helpers\";\nimport { cn } from \"@/lib/utils\";\nimport { Icon } from \"../ui/icon\";\nimport { Button } from \"../ui/button\";\nimport {\n Pagination,\n PaginationContent,\n PaginationItem,\n PaginationLink,\n} from \"../ui/pagination\";\nimport {\n appPaginationContentVariants,\n appPaginationNavigationButtonVariants,\n appPaginationPageVariants,\n type AppPaginationSize,\n} from \"./app-pagination.styles\";\n\ntype Props = {\n currentPage: number;\n totalPages: number;\n maxVisiblePages?: number;\n className?: string;\n showNavigation?: boolean;\n prevLabel?: string;\n nextLabel?: string;\n size?: AppPaginationSize;\n ellipsisStep?: number;\n onPageChange: (page: number) => void;\n};\n\nconst DEFAULT_VISIBLE_PAGES = 5;\nconst DEFAULT_ELLIPSIS_STEP = 5;\n\nexport const AppPagination = ({\n currentPage,\n totalPages,\n maxVisiblePages = DEFAULT_VISIBLE_PAGES,\n className,\n showNavigation = true,\n prevLabel,\n nextLabel,\n size = \"default\",\n ellipsisStep = DEFAULT_ELLIPSIS_STEP,\n onPageChange,\n}: Props) => {\n if (totalPages <= 1) return null;\n\n const pageNumbers = getPageNumbers(maxVisiblePages, currentPage, totalPages);\n\n const handlePageChange = (page: number) => {\n if (page >= 1 && page <= totalPages) {\n onPageChange(page);\n }\n };\n\n const handleEllipsisClick = (type: \"ellipsis-start\" | \"ellipsis-end\") => {\n if (type === \"ellipsis-start\") {\n const newPage = Math.max(1, currentPage - ellipsisStep);\n handlePageChange(newPage);\n } else {\n const newPage = Math.min(totalPages, currentPage + ellipsisStep);\n handlePageChange(newPage);\n }\n };\n\n return (\n <Pagination className=\"w-fit\">\n <PaginationContent\n className={cn(appPaginationContentVariants({ size }), className)}\n >\n {showNavigation && (\n <PaginationItem>\n <Button\n variant=\"ghost\"\n disabled={currentPage === 1}\n onClick={() => handlePageChange(currentPage - 1)}\n className={appPaginationNavigationButtonVariants({\n size,\n side: \"prev\",\n })}\n aria-label=\"Предыдущая страница\"\n >\n {prevLabel || <Icon type=\"caret-left\" size=\"small\" />}\n </Button>\n </PaginationItem>\n )}\n\n {pageNumbers.map((page) => {\n if (page === \"ellipsis-start\" || page === \"ellipsis-end\") {\n return (\n <PaginationItem key={page}>\n <Button\n variant=\"ghost\"\n onClick={() => handleEllipsisClick(page)}\n className={appPaginationPageVariants({ size })}\n aria-label={\n page === \"ellipsis-start\"\n ? `Перейти на ${ellipsisStep} страниц назад`\n : `Перейти на ${ellipsisStep} страниц вперед`\n }\n title={\n page === \"ellipsis-start\"\n ? `Нажать чтобы перейти на ${ellipsisStep} страниц назад`\n : `Нажать чтобы перейти на ${ellipsisStep} страниц вперед`\n }\n >\n ...\n </Button>\n </PaginationItem>\n );\n }\n\n return (\n <PaginationItem key={page}>\n <PaginationLink\n isActive={currentPage === page}\n onClick={() => handlePageChange(page)}\n className={appPaginationPageVariants({\n size,\n active: currentPage === page,\n })}\n aria-label={`Страница ${page}`}\n aria-current={currentPage === page ? \"page\" : undefined}\n >\n {page}\n </PaginationLink>\n </PaginationItem>\n );\n })}\n\n {showNavigation && (\n <PaginationItem>\n <Button\n variant=\"ghost\"\n disabled={currentPage === totalPages}\n onClick={() => handlePageChange(currentPage + 1)}\n className={appPaginationNavigationButtonVariants({\n size,\n side: \"next\",\n })}\n aria-label=\"Следующая страница\"\n >\n {nextLabel || <Icon type=\"caret-right\" size=\"small\" />}\n </Button>\n </PaginationItem>\n )}\n </PaginationContent>\n </Pagination>\n );\n};\n"],"names":["DEFAULT_VISIBLE_PAGES","DEFAULT_ELLIPSIS_STEP","AppPagination","currentPage","totalPages","maxVisiblePages","className","showNavigation","prevLabel","nextLabel","size","ellipsisStep","onPageChange","pageNumbers","getPageNumbers","handlePageChange","page","handleEllipsisClick","type","newPage","jsx","Pagination","jsxs","PaginationContent","cn","appPaginationContentVariants","PaginationItem","Button","appPaginationNavigationButtonVariants","Icon","appPaginationPageVariants","PaginationLink"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),t=require("./lib-utils.cjs"),x=require("./components-ui-icon-icon.cjs"),y=require("./components-ui-navigation-item-navigation-item.cjs"),q=require("./components-ui-navigation-menu-navigation-menu.cjs"),r=require("./components-app-sidebar-app-sidebar.styles.cjs"),M=({groups:l,title:m="CRM",brandMark:h,state:i="expanded",activeItemId:c,showToggle:v=!0,onStateChange:d,onItemSelect:j,className:g,...N})=>{const n=i==="collapsed",_=l.filter(s=>s.placement!=="bottom"),p=l.filter(s=>s.placement==="bottom"),f=n?"expanded":"collapsed",S=()=>{d?.(f)},b=s=>s.map(o=>a.jsx(q.NavigationMenu,{title:o.title,collapsed:n,className:t.cn(o.divider&&"border-delicate-border border-b"),children:o.items.map(e=>{const u=c?c===e.id:!!e.active;return a.jsx(y.NavigationItem,{icon:a.jsx(x.Icon,{type:e.icon}),label:e.label,badge:e.badge,active:u,collapsed:n,disabled:e.disabled,href:e.href,target:e.target,rel:e.rel,onAction:()=>{j?.(e),e.onClick?.(e)},"aria-current":u?"page":void 0},e.id)})},o.id));return a.jsxs("aside",{className:t.cn(r.appSidebarRootVariants({state:i}),g),"aria-label":"Боковая навигация",...N,children:[a.jsxs("header",{className:r.appSidebarHeaderVariants({state:i}),children:[a.jsxs("div",{className:r.appSidebarBrandVariants({state:i}),children:[h,a.jsx("p",{className:r.appSidebarBrandTitleClassName,children:m})]}),v&&a.jsx("button",{type:"button",className:r.appSidebarToggleButtonVariants(),onClick:S,"aria-label":n?"Развернуть боковую навигацию":"Свернуть боковую навигацию",disabled:!d,children:a.jsx(x.Icon,{type:"
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),t=require("./lib-utils.cjs"),x=require("./components-ui-icon-icon.cjs"),y=require("./components-ui-navigation-item-navigation-item.cjs"),q=require("./components-ui-navigation-menu-navigation-menu.cjs"),r=require("./components-app-sidebar-app-sidebar.styles.cjs"),M=({groups:l,title:m="CRM",brandMark:h,state:i="expanded",activeItemId:c,showToggle:v=!0,onStateChange:d,onItemSelect:j,className:g,...N})=>{const n=i==="collapsed",_=l.filter(s=>s.placement!=="bottom"),p=l.filter(s=>s.placement==="bottom"),f=n?"expanded":"collapsed",S=()=>{d?.(f)},b=s=>s.map(o=>a.jsx(q.NavigationMenu,{title:o.title,collapsed:n,className:t.cn(o.divider&&"border-delicate-border border-b"),children:o.items.map(e=>{const u=c?c===e.id:!!e.active;return a.jsx(y.NavigationItem,{icon:a.jsx(x.Icon,{type:e.icon}),label:e.label,badge:e.badge,active:u,collapsed:n,disabled:e.disabled,href:e.href,target:e.target,rel:e.rel,onAction:()=>{j?.(e),e.onClick?.(e)},"aria-current":u?"page":void 0},e.id)})},o.id));return a.jsxs("aside",{className:t.cn(r.appSidebarRootVariants({state:i}),g),"aria-label":"Боковая навигация",...N,children:[a.jsxs("header",{className:r.appSidebarHeaderVariants({state:i}),children:[a.jsxs("div",{className:r.appSidebarBrandVariants({state:i}),children:[h,a.jsx("p",{className:r.appSidebarBrandTitleClassName,children:m})]}),v&&a.jsx("button",{type:"button",className:r.appSidebarToggleButtonVariants(),onClick:S,"aria-label":n?"Развернуть боковую навигацию":"Свернуть боковую навигацию",disabled:!d,children:a.jsx(x.Icon,{type:"caret-up-down",strokeWidth:1.5,className:t.cn("transition-transform duration-200",n?"-rotate-90":"rotate-90")})})]}),a.jsxs("div",{className:"flex min-h-0 flex-1 flex-col",children:[a.jsx("div",{className:"min-h-0 flex-1 overflow-y-auto",children:b(_)}),p.length>0&&a.jsx("div",{className:"mt-auto",children:b(p)})]})]})};exports.AppSidebar=M;
|
|
2
2
|
//# sourceMappingURL=components-app-sidebar-app-sidebar.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-app-sidebar-app-sidebar.cjs","sources":["../src/components/app-sidebar/app-sidebar.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport type { IconTypes } from \"@/types/types\";\nimport { Icon } from \"../ui/icon\";\nimport { NavigationItem } from \"../ui/navigation-item\";\nimport { NavigationMenu } from \"../ui/navigation-menu\";\nimport {\n appSidebarBrandTitleClassName,\n appSidebarBrandVariants,\n appSidebarHeaderVariants,\n appSidebarRootVariants,\n appSidebarToggleButtonVariants,\n type AppSidebarState,\n} from \"./app-sidebar.styles\";\n\nexport type AppSidebarItem = {\n id: string;\n label: string;\n icon: IconTypes;\n disabled?: boolean;\n active?: boolean;\n badge?: React.ReactNode;\n href?: string;\n target?: React.HTMLAttributeAnchorTarget;\n rel?: string;\n onClick?: (item: AppSidebarItem) => void;\n};\n\nexport type AppSidebarGroup = {\n id: string;\n title?: string;\n divider?: boolean;\n placement?: \"top\" | \"bottom\";\n items: AppSidebarItem[];\n};\n\ntype Props = React.HTMLAttributes<HTMLElement> & {\n groups: AppSidebarGroup[];\n title?: string;\n brandMark?: React.ReactNode;\n state?: AppSidebarState;\n activeItemId?: string;\n showToggle?: boolean;\n onStateChange?: (nextState: AppSidebarState) => void;\n onItemSelect?: (item: AppSidebarItem) => void;\n};\n\nconst AppSidebar = ({\n groups,\n title = \"CRM\",\n brandMark,\n state = \"expanded\",\n activeItemId,\n showToggle = true,\n onStateChange,\n onItemSelect,\n className,\n ...props\n}: Props) => {\n const isCollapsed = state === \"collapsed\";\n const topGroups = groups.filter((group) => group.placement !== \"bottom\");\n const bottomGroups = groups.filter((group) => group.placement === \"bottom\");\n const nextState = isCollapsed ? \"expanded\" : \"collapsed\";\n\n const handleToggle = () => {\n onStateChange?.(nextState);\n };\n\n const renderGroups = (items: AppSidebarGroup[]) => {\n return items.map((group) => (\n <NavigationMenu\n key={group.id}\n title={group.title}\n collapsed={isCollapsed}\n className={cn(group.divider && \"border-delicate-border border-b\")}\n >\n {group.items.map((item) => {\n const isActive = activeItemId ? activeItemId === item.id : Boolean(item.active);\n\n return (\n <NavigationItem\n key={item.id}\n icon={<Icon type={item.icon} />}\n label={item.label}\n badge={item.badge}\n active={isActive}\n collapsed={isCollapsed}\n disabled={item.disabled}\n href={item.href}\n target={item.target}\n rel={item.rel}\n onAction={() => {\n onItemSelect?.(item);\n item.onClick?.(item);\n }}\n aria-current={isActive ? \"page\" : undefined}\n />\n );\n })}\n </NavigationMenu>\n ));\n };\n\n return (\n <aside\n className={cn(appSidebarRootVariants({ state }), className)}\n aria-label=\"Боковая навигация\"\n {...props}\n >\n <header className={appSidebarHeaderVariants({ state })}>\n <div className={appSidebarBrandVariants({ state })}>\n {brandMark}\n <p className={appSidebarBrandTitleClassName}>{title}</p>\n </div>\n\n {showToggle && (\n <button\n type=\"button\"\n className={appSidebarToggleButtonVariants()}\n onClick={handleToggle}\n aria-label={\n isCollapsed ? \"Развернуть боковую навигацию\" : \"Свернуть боковую навигацию\"\n }\n disabled={!onStateChange}\n >\n <Icon\n type=\"
|
|
1
|
+
{"version":3,"file":"components-app-sidebar-app-sidebar.cjs","sources":["../src/components/app-sidebar/app-sidebar.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport type { IconTypes } from \"@/types/types\";\nimport { Icon } from \"../ui/icon\";\nimport { NavigationItem } from \"../ui/navigation-item\";\nimport { NavigationMenu } from \"../ui/navigation-menu\";\nimport {\n appSidebarBrandTitleClassName,\n appSidebarBrandVariants,\n appSidebarHeaderVariants,\n appSidebarRootVariants,\n appSidebarToggleButtonVariants,\n type AppSidebarState,\n} from \"./app-sidebar.styles\";\n\nexport type AppSidebarItem = {\n id: string;\n label: string;\n icon: IconTypes;\n disabled?: boolean;\n active?: boolean;\n badge?: React.ReactNode;\n href?: string;\n target?: React.HTMLAttributeAnchorTarget;\n rel?: string;\n onClick?: (item: AppSidebarItem) => void;\n};\n\nexport type AppSidebarGroup = {\n id: string;\n title?: string;\n divider?: boolean;\n placement?: \"top\" | \"bottom\";\n items: AppSidebarItem[];\n};\n\ntype Props = React.HTMLAttributes<HTMLElement> & {\n groups: AppSidebarGroup[];\n title?: string;\n brandMark?: React.ReactNode;\n state?: AppSidebarState;\n activeItemId?: string;\n showToggle?: boolean;\n onStateChange?: (nextState: AppSidebarState) => void;\n onItemSelect?: (item: AppSidebarItem) => void;\n};\n\nconst AppSidebar = ({\n groups,\n title = \"CRM\",\n brandMark,\n state = \"expanded\",\n activeItemId,\n showToggle = true,\n onStateChange,\n onItemSelect,\n className,\n ...props\n}: Props) => {\n const isCollapsed = state === \"collapsed\";\n const topGroups = groups.filter((group) => group.placement !== \"bottom\");\n const bottomGroups = groups.filter((group) => group.placement === \"bottom\");\n const nextState = isCollapsed ? \"expanded\" : \"collapsed\";\n\n const handleToggle = () => {\n onStateChange?.(nextState);\n };\n\n const renderGroups = (items: AppSidebarGroup[]) => {\n return items.map((group) => (\n <NavigationMenu\n key={group.id}\n title={group.title}\n collapsed={isCollapsed}\n className={cn(group.divider && \"border-delicate-border border-b\")}\n >\n {group.items.map((item) => {\n const isActive = activeItemId ? activeItemId === item.id : Boolean(item.active);\n\n return (\n <NavigationItem\n key={item.id}\n icon={<Icon type={item.icon} />}\n label={item.label}\n badge={item.badge}\n active={isActive}\n collapsed={isCollapsed}\n disabled={item.disabled}\n href={item.href}\n target={item.target}\n rel={item.rel}\n onAction={() => {\n onItemSelect?.(item);\n item.onClick?.(item);\n }}\n aria-current={isActive ? \"page\" : undefined}\n />\n );\n })}\n </NavigationMenu>\n ));\n };\n\n return (\n <aside\n className={cn(appSidebarRootVariants({ state }), className)}\n aria-label=\"Боковая навигация\"\n {...props}\n >\n <header className={appSidebarHeaderVariants({ state })}>\n <div className={appSidebarBrandVariants({ state })}>\n {brandMark}\n <p className={appSidebarBrandTitleClassName}>{title}</p>\n </div>\n\n {showToggle && (\n <button\n type=\"button\"\n className={appSidebarToggleButtonVariants()}\n onClick={handleToggle}\n aria-label={\n isCollapsed ? \"Развернуть боковую навигацию\" : \"Свернуть боковую навигацию\"\n }\n disabled={!onStateChange}\n >\n <Icon\n type=\"caret-up-down\"\n strokeWidth={1.5}\n className={cn(\n \"transition-transform duration-200\",\n isCollapsed ? \"-rotate-90\" : \"rotate-90\",\n )}\n />\n </button>\n )}\n </header>\n\n <div className=\"flex min-h-0 flex-1 flex-col\">\n <div className=\"min-h-0 flex-1 overflow-y-auto\">{renderGroups(topGroups)}</div>\n\n {bottomGroups.length > 0 && (\n <div className=\"mt-auto\">{renderGroups(bottomGroups)}</div>\n )}\n </div>\n </aside>\n );\n};\n\nexport { AppSidebar };\n"],"names":["AppSidebar","groups","title","brandMark","state","activeItemId","showToggle","onStateChange","onItemSelect","className","props","isCollapsed","topGroups","group","bottomGroups","nextState","handleToggle","renderGroups","items","jsx","NavigationMenu","cn","item","isActive","NavigationItem","Icon","jsxs","appSidebarRootVariants","appSidebarHeaderVariants","appSidebarBrandVariants","appSidebarBrandTitleClassName","appSidebarToggleButtonVariants"],"mappings":"4XA8CMA,EAAa,CAAC,CAClB,OAAAC,EACA,MAAAC,EAAQ,MACR,UAAAC,EACA,MAAAC,EAAQ,WACR,aAAAC,EACA,WAAAC,EAAa,GACb,cAAAC,EACA,aAAAC,EACA,UAAAC,EACA,GAAGC,CACL,IAAa,CACX,MAAMC,EAAcP,IAAU,YACxBQ,EAAYX,EAAO,OAAQY,GAAUA,EAAM,YAAc,QAAQ,EACjEC,EAAeb,EAAO,OAAQY,GAAUA,EAAM,YAAc,QAAQ,EACpEE,EAAYJ,EAAc,WAAa,YAEvCK,EAAe,IAAM,CACzBT,IAAgBQ,CAAS,CAC3B,EAEME,EAAgBC,GACbA,EAAM,IAAKL,GAChBM,EAAAA,IAACC,EAAAA,eAAA,CAEC,MAAOP,EAAM,MACb,UAAWF,EACX,UAAWU,EAAAA,GAAGR,EAAM,SAAW,iCAAiC,EAE/D,SAAAA,EAAM,MAAM,IAAKS,GAAS,CACzB,MAAMC,EAAWlB,EAAeA,IAAiBiB,EAAK,GAAK,EAAQA,EAAK,OAExE,OACEH,EAAAA,IAACK,EAAAA,eAAA,CAEC,KAAML,EAAAA,IAACM,EAAAA,KAAA,CAAK,KAAMH,EAAK,KAAM,EAC7B,MAAOA,EAAK,MACZ,MAAOA,EAAK,MACZ,OAAQC,EACR,UAAWZ,EACX,SAAUW,EAAK,SACf,KAAMA,EAAK,KACX,OAAQA,EAAK,OACb,IAAKA,EAAK,IACV,SAAU,IAAM,CACdd,IAAec,CAAI,EACnBA,EAAK,UAAUA,CAAI,CACrB,EACA,eAAcC,EAAW,OAAS,MAAA,EAd7BD,EAAK,EAAA,CAiBhB,CAAC,CAAA,EA3BIT,EAAM,EAAA,CA6Bd,EAGH,OACEa,EAAAA,KAAC,QAAA,CACC,UAAWL,EAAAA,GAAGM,EAAAA,uBAAuB,CAAE,MAAAvB,CAAA,CAAO,EAAGK,CAAS,EAC1D,aAAW,oBACV,GAAGC,EAEJ,SAAA,CAAAgB,EAAAA,KAAC,UAAO,UAAWE,EAAAA,yBAAyB,CAAE,MAAAxB,CAAA,CAAO,EACnD,SAAA,CAAAsB,EAAAA,KAAC,OAAI,UAAWG,EAAAA,wBAAwB,CAAE,MAAAzB,CAAA,CAAO,EAC9C,SAAA,CAAAD,EACDgB,EAAAA,IAAC,IAAA,CAAE,UAAWW,EAAAA,8BAAgC,SAAA5B,CAAA,CAAM,CAAA,EACtD,EAECI,GACCa,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAWY,EAAAA,+BAAA,EACX,QAASf,EACT,aACEL,EAAc,+BAAiC,6BAEjD,SAAU,CAACJ,EAEX,SAAAY,EAAAA,IAACM,EAAAA,KAAA,CACC,KAAK,gBACL,YAAa,IACb,UAAWJ,EAAAA,GACT,oCACAV,EAAc,aAAe,WAAA,CAC/B,CAAA,CACF,CAAA,CACF,EAEJ,EAEAe,EAAAA,KAAC,MAAA,CAAI,UAAU,+BACb,SAAA,CAAAP,MAAC,MAAA,CAAI,UAAU,iCAAkC,SAAAF,EAAaL,CAAS,EAAE,EAExEE,EAAa,OAAS,GACrBK,EAAAA,IAAC,OAAI,UAAU,UAAW,SAAAF,EAAaH,CAAY,CAAA,CAAE,CAAA,CAAA,CAEzD,CAAA,CAAA,CAAA,CAGN"}
|
|
@@ -1,35 +1,35 @@
|
|
|
1
1
|
import { jsxs as i, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { cn as
|
|
3
|
-
import { Icon as
|
|
2
|
+
import { cn as d } from "./lib-utils.js";
|
|
3
|
+
import { Icon as f } from "./components-ui-icon-icon.js";
|
|
4
4
|
import { NavigationItem as C } from "./components-ui-navigation-item-navigation-item.js";
|
|
5
5
|
import { NavigationMenu as V } from "./components-ui-navigation-menu-navigation-menu.js";
|
|
6
6
|
import { appSidebarBrandTitleClassName as k, appSidebarBrandVariants as A, appSidebarToggleButtonVariants as G, appSidebarHeaderVariants as T, appSidebarRootVariants as j } from "./components-app-sidebar-app-sidebar.styles.js";
|
|
7
7
|
const z = ({
|
|
8
|
-
groups:
|
|
9
|
-
title:
|
|
8
|
+
groups: n,
|
|
9
|
+
title: h = "CRM",
|
|
10
10
|
brandMark: N,
|
|
11
11
|
state: l = "expanded",
|
|
12
12
|
activeItemId: s,
|
|
13
|
-
showToggle:
|
|
13
|
+
showToggle: u = !0,
|
|
14
14
|
onStateChange: c,
|
|
15
|
-
onItemSelect:
|
|
15
|
+
onItemSelect: v,
|
|
16
16
|
className: x,
|
|
17
17
|
...g
|
|
18
18
|
}) => {
|
|
19
|
-
const r = l === "collapsed", S =
|
|
19
|
+
const r = l === "collapsed", S = n.filter((o) => o.placement !== "bottom"), p = n.filter((o) => o.placement === "bottom"), y = r ? "expanded" : "collapsed", B = () => {
|
|
20
20
|
c?.(y);
|
|
21
21
|
}, b = (o) => o.map((t) => /* @__PURE__ */ e(
|
|
22
22
|
V,
|
|
23
23
|
{
|
|
24
24
|
title: t.title,
|
|
25
25
|
collapsed: r,
|
|
26
|
-
className:
|
|
26
|
+
className: d(t.divider && "border-delicate-border border-b"),
|
|
27
27
|
children: t.items.map((a) => {
|
|
28
28
|
const m = s ? s === a.id : !!a.active;
|
|
29
29
|
return /* @__PURE__ */ e(
|
|
30
30
|
C,
|
|
31
31
|
{
|
|
32
|
-
icon: /* @__PURE__ */ e(
|
|
32
|
+
icon: /* @__PURE__ */ e(f, { type: a.icon }),
|
|
33
33
|
label: a.label,
|
|
34
34
|
badge: a.badge,
|
|
35
35
|
active: m,
|
|
@@ -39,7 +39,7 @@ const z = ({
|
|
|
39
39
|
target: a.target,
|
|
40
40
|
rel: a.rel,
|
|
41
41
|
onAction: () => {
|
|
42
|
-
|
|
42
|
+
v?.(a), a.onClick?.(a);
|
|
43
43
|
},
|
|
44
44
|
"aria-current": m ? "page" : void 0
|
|
45
45
|
},
|
|
@@ -52,16 +52,16 @@ const z = ({
|
|
|
52
52
|
return /* @__PURE__ */ i(
|
|
53
53
|
"aside",
|
|
54
54
|
{
|
|
55
|
-
className:
|
|
55
|
+
className: d(j({ state: l }), x),
|
|
56
56
|
"aria-label": "Боковая навигация",
|
|
57
57
|
...g,
|
|
58
58
|
children: [
|
|
59
59
|
/* @__PURE__ */ i("header", { className: T({ state: l }), children: [
|
|
60
60
|
/* @__PURE__ */ i("div", { className: A({ state: l }), children: [
|
|
61
61
|
N,
|
|
62
|
-
/* @__PURE__ */ e("p", { className: k, children:
|
|
62
|
+
/* @__PURE__ */ e("p", { className: k, children: h })
|
|
63
63
|
] }),
|
|
64
|
-
|
|
64
|
+
u && /* @__PURE__ */ e(
|
|
65
65
|
"button",
|
|
66
66
|
{
|
|
67
67
|
type: "button",
|
|
@@ -70,11 +70,11 @@ const z = ({
|
|
|
70
70
|
"aria-label": r ? "Развернуть боковую навигацию" : "Свернуть боковую навигацию",
|
|
71
71
|
disabled: !c,
|
|
72
72
|
children: /* @__PURE__ */ e(
|
|
73
|
-
|
|
73
|
+
f,
|
|
74
74
|
{
|
|
75
|
-
type: "
|
|
75
|
+
type: "caret-up-down",
|
|
76
76
|
strokeWidth: 1.5,
|
|
77
|
-
className:
|
|
77
|
+
className: d(
|
|
78
78
|
"transition-transform duration-200",
|
|
79
79
|
r ? "-rotate-90" : "rotate-90"
|
|
80
80
|
)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-app-sidebar-app-sidebar.js","sources":["../src/components/app-sidebar/app-sidebar.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport type { IconTypes } from \"@/types/types\";\nimport { Icon } from \"../ui/icon\";\nimport { NavigationItem } from \"../ui/navigation-item\";\nimport { NavigationMenu } from \"../ui/navigation-menu\";\nimport {\n appSidebarBrandTitleClassName,\n appSidebarBrandVariants,\n appSidebarHeaderVariants,\n appSidebarRootVariants,\n appSidebarToggleButtonVariants,\n type AppSidebarState,\n} from \"./app-sidebar.styles\";\n\nexport type AppSidebarItem = {\n id: string;\n label: string;\n icon: IconTypes;\n disabled?: boolean;\n active?: boolean;\n badge?: React.ReactNode;\n href?: string;\n target?: React.HTMLAttributeAnchorTarget;\n rel?: string;\n onClick?: (item: AppSidebarItem) => void;\n};\n\nexport type AppSidebarGroup = {\n id: string;\n title?: string;\n divider?: boolean;\n placement?: \"top\" | \"bottom\";\n items: AppSidebarItem[];\n};\n\ntype Props = React.HTMLAttributes<HTMLElement> & {\n groups: AppSidebarGroup[];\n title?: string;\n brandMark?: React.ReactNode;\n state?: AppSidebarState;\n activeItemId?: string;\n showToggle?: boolean;\n onStateChange?: (nextState: AppSidebarState) => void;\n onItemSelect?: (item: AppSidebarItem) => void;\n};\n\nconst AppSidebar = ({\n groups,\n title = \"CRM\",\n brandMark,\n state = \"expanded\",\n activeItemId,\n showToggle = true,\n onStateChange,\n onItemSelect,\n className,\n ...props\n}: Props) => {\n const isCollapsed = state === \"collapsed\";\n const topGroups = groups.filter((group) => group.placement !== \"bottom\");\n const bottomGroups = groups.filter((group) => group.placement === \"bottom\");\n const nextState = isCollapsed ? \"expanded\" : \"collapsed\";\n\n const handleToggle = () => {\n onStateChange?.(nextState);\n };\n\n const renderGroups = (items: AppSidebarGroup[]) => {\n return items.map((group) => (\n <NavigationMenu\n key={group.id}\n title={group.title}\n collapsed={isCollapsed}\n className={cn(group.divider && \"border-delicate-border border-b\")}\n >\n {group.items.map((item) => {\n const isActive = activeItemId ? activeItemId === item.id : Boolean(item.active);\n\n return (\n <NavigationItem\n key={item.id}\n icon={<Icon type={item.icon} />}\n label={item.label}\n badge={item.badge}\n active={isActive}\n collapsed={isCollapsed}\n disabled={item.disabled}\n href={item.href}\n target={item.target}\n rel={item.rel}\n onAction={() => {\n onItemSelect?.(item);\n item.onClick?.(item);\n }}\n aria-current={isActive ? \"page\" : undefined}\n />\n );\n })}\n </NavigationMenu>\n ));\n };\n\n return (\n <aside\n className={cn(appSidebarRootVariants({ state }), className)}\n aria-label=\"Боковая навигация\"\n {...props}\n >\n <header className={appSidebarHeaderVariants({ state })}>\n <div className={appSidebarBrandVariants({ state })}>\n {brandMark}\n <p className={appSidebarBrandTitleClassName}>{title}</p>\n </div>\n\n {showToggle && (\n <button\n type=\"button\"\n className={appSidebarToggleButtonVariants()}\n onClick={handleToggle}\n aria-label={\n isCollapsed ? \"Развернуть боковую навигацию\" : \"Свернуть боковую навигацию\"\n }\n disabled={!onStateChange}\n >\n <Icon\n type=\"
|
|
1
|
+
{"version":3,"file":"components-app-sidebar-app-sidebar.js","sources":["../src/components/app-sidebar/app-sidebar.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport type { IconTypes } from \"@/types/types\";\nimport { Icon } from \"../ui/icon\";\nimport { NavigationItem } from \"../ui/navigation-item\";\nimport { NavigationMenu } from \"../ui/navigation-menu\";\nimport {\n appSidebarBrandTitleClassName,\n appSidebarBrandVariants,\n appSidebarHeaderVariants,\n appSidebarRootVariants,\n appSidebarToggleButtonVariants,\n type AppSidebarState,\n} from \"./app-sidebar.styles\";\n\nexport type AppSidebarItem = {\n id: string;\n label: string;\n icon: IconTypes;\n disabled?: boolean;\n active?: boolean;\n badge?: React.ReactNode;\n href?: string;\n target?: React.HTMLAttributeAnchorTarget;\n rel?: string;\n onClick?: (item: AppSidebarItem) => void;\n};\n\nexport type AppSidebarGroup = {\n id: string;\n title?: string;\n divider?: boolean;\n placement?: \"top\" | \"bottom\";\n items: AppSidebarItem[];\n};\n\ntype Props = React.HTMLAttributes<HTMLElement> & {\n groups: AppSidebarGroup[];\n title?: string;\n brandMark?: React.ReactNode;\n state?: AppSidebarState;\n activeItemId?: string;\n showToggle?: boolean;\n onStateChange?: (nextState: AppSidebarState) => void;\n onItemSelect?: (item: AppSidebarItem) => void;\n};\n\nconst AppSidebar = ({\n groups,\n title = \"CRM\",\n brandMark,\n state = \"expanded\",\n activeItemId,\n showToggle = true,\n onStateChange,\n onItemSelect,\n className,\n ...props\n}: Props) => {\n const isCollapsed = state === \"collapsed\";\n const topGroups = groups.filter((group) => group.placement !== \"bottom\");\n const bottomGroups = groups.filter((group) => group.placement === \"bottom\");\n const nextState = isCollapsed ? \"expanded\" : \"collapsed\";\n\n const handleToggle = () => {\n onStateChange?.(nextState);\n };\n\n const renderGroups = (items: AppSidebarGroup[]) => {\n return items.map((group) => (\n <NavigationMenu\n key={group.id}\n title={group.title}\n collapsed={isCollapsed}\n className={cn(group.divider && \"border-delicate-border border-b\")}\n >\n {group.items.map((item) => {\n const isActive = activeItemId ? activeItemId === item.id : Boolean(item.active);\n\n return (\n <NavigationItem\n key={item.id}\n icon={<Icon type={item.icon} />}\n label={item.label}\n badge={item.badge}\n active={isActive}\n collapsed={isCollapsed}\n disabled={item.disabled}\n href={item.href}\n target={item.target}\n rel={item.rel}\n onAction={() => {\n onItemSelect?.(item);\n item.onClick?.(item);\n }}\n aria-current={isActive ? \"page\" : undefined}\n />\n );\n })}\n </NavigationMenu>\n ));\n };\n\n return (\n <aside\n className={cn(appSidebarRootVariants({ state }), className)}\n aria-label=\"Боковая навигация\"\n {...props}\n >\n <header className={appSidebarHeaderVariants({ state })}>\n <div className={appSidebarBrandVariants({ state })}>\n {brandMark}\n <p className={appSidebarBrandTitleClassName}>{title}</p>\n </div>\n\n {showToggle && (\n <button\n type=\"button\"\n className={appSidebarToggleButtonVariants()}\n onClick={handleToggle}\n aria-label={\n isCollapsed ? \"Развернуть боковую навигацию\" : \"Свернуть боковую навигацию\"\n }\n disabled={!onStateChange}\n >\n <Icon\n type=\"caret-up-down\"\n strokeWidth={1.5}\n className={cn(\n \"transition-transform duration-200\",\n isCollapsed ? \"-rotate-90\" : \"rotate-90\",\n )}\n />\n </button>\n )}\n </header>\n\n <div className=\"flex min-h-0 flex-1 flex-col\">\n <div className=\"min-h-0 flex-1 overflow-y-auto\">{renderGroups(topGroups)}</div>\n\n {bottomGroups.length > 0 && (\n <div className=\"mt-auto\">{renderGroups(bottomGroups)}</div>\n )}\n </div>\n </aside>\n );\n};\n\nexport { AppSidebar };\n"],"names":["AppSidebar","groups","title","brandMark","state","activeItemId","showToggle","onStateChange","onItemSelect","className","props","isCollapsed","topGroups","group","bottomGroups","nextState","handleToggle","renderGroups","items","jsx","NavigationMenu","cn","item","isActive","NavigationItem","Icon","jsxs","appSidebarRootVariants","appSidebarHeaderVariants","appSidebarBrandVariants","appSidebarBrandTitleClassName","appSidebarToggleButtonVariants"],"mappings":";;;;;;AA8CA,MAAMA,IAAa,CAAC;AAAA,EAClB,QAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,cAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,GAAGC;AACL,MAAa;AACX,QAAMC,IAAcP,MAAU,aACxBQ,IAAYX,EAAO,OAAO,CAACY,MAAUA,EAAM,cAAc,QAAQ,GACjEC,IAAeb,EAAO,OAAO,CAACY,MAAUA,EAAM,cAAc,QAAQ,GACpEE,IAAYJ,IAAc,aAAa,aAEvCK,IAAe,MAAM;AACzB,IAAAT,IAAgBQ,CAAS;AAAA,EAC3B,GAEME,IAAe,CAACC,MACbA,EAAM,IAAI,CAACL,MAChB,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MAEC,OAAOP,EAAM;AAAA,MACb,WAAWF;AAAA,MACX,WAAWU,EAAGR,EAAM,WAAW,iCAAiC;AAAA,MAE/D,UAAAA,EAAM,MAAM,IAAI,CAACS,MAAS;AACzB,cAAMC,IAAWlB,IAAeA,MAAiBiB,EAAK,KAAK,EAAQA,EAAK;AAExE,eACE,gBAAAH;AAAA,UAACK;AAAA,UAAA;AAAA,YAEC,MAAM,gBAAAL,EAACM,GAAA,EAAK,MAAMH,EAAK,MAAM;AAAA,YAC7B,OAAOA,EAAK;AAAA,YACZ,OAAOA,EAAK;AAAA,YACZ,QAAQC;AAAA,YACR,WAAWZ;AAAA,YACX,UAAUW,EAAK;AAAA,YACf,MAAMA,EAAK;AAAA,YACX,QAAQA,EAAK;AAAA,YACb,KAAKA,EAAK;AAAA,YACV,UAAU,MAAM;AACd,cAAAd,IAAec,CAAI,GACnBA,EAAK,UAAUA,CAAI;AAAA,YACrB;AAAA,YACA,gBAAcC,IAAW,SAAS;AAAA,UAAA;AAAA,UAd7BD,EAAK;AAAA,QAAA;AAAA,MAiBhB,CAAC;AAAA,IAAA;AAAA,IA3BIT,EAAM;AAAA,EAAA,CA6Bd;AAGH,SACE,gBAAAa;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWL,EAAGM,EAAuB,EAAE,OAAAvB,EAAA,CAAO,GAAGK,CAAS;AAAA,MAC1D,cAAW;AAAA,MACV,GAAGC;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAgB,EAAC,YAAO,WAAWE,EAAyB,EAAE,OAAAxB,EAAA,CAAO,GACnD,UAAA;AAAA,UAAA,gBAAAsB,EAAC,SAAI,WAAWG,EAAwB,EAAE,OAAAzB,EAAA,CAAO,GAC9C,UAAA;AAAA,YAAAD;AAAA,YACD,gBAAAgB,EAAC,KAAA,EAAE,WAAWW,GAAgC,UAAA5B,EAAA,CAAM;AAAA,UAAA,GACtD;AAAA,UAECI,KACC,gBAAAa;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,WAAWY,EAAA;AAAA,cACX,SAASf;AAAA,cACT,cACEL,IAAc,iCAAiC;AAAA,cAEjD,UAAU,CAACJ;AAAA,cAEX,UAAA,gBAAAY;AAAA,gBAACM;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,aAAa;AAAA,kBACb,WAAWJ;AAAA,oBACT;AAAA,oBACAV,IAAc,eAAe;AAAA,kBAAA;AAAA,gBAC/B;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QACF,GAEJ;AAAA,QAEA,gBAAAe,EAAC,OAAA,EAAI,WAAU,gCACb,UAAA;AAAA,UAAA,gBAAAP,EAAC,OAAA,EAAI,WAAU,kCAAkC,UAAAF,EAAaL,CAAS,GAAE;AAAA,UAExEE,EAAa,SAAS,KACrB,gBAAAK,EAAC,SAAI,WAAU,WAAW,UAAAF,EAAaH,CAAY,EAAA,CAAE;AAAA,QAAA,EAAA,CAEzD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./brd-ui-kit.css');const i=require("react/jsx-runtime");;/* empty css */const x=require("./lib-utils.cjs");require("class-variance-authority");const f=require("react");require("./components-ui-badge-badge.styles.cjs");require("./components-ui-button-button.cjs");require("./components-ui-button-button.styles.cjs");require("./components-ui-card-card.cjs");require("./components-ui-checkbox-checkbox.cjs");require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./brd-ui-kit.css');const i=require("react/jsx-runtime");;/* empty css */const x=require("./lib-utils.cjs");require("class-variance-authority");const f=require("react");require("./components-ui-badge-badge.styles.cjs");require("./components-ui-button-button.cjs");require("./components-ui-button-button.styles.cjs");require("./components-ui-card-card.cjs");require("./components-ui-checkbox-checkbox.cjs");require("./components-ui-combobox-combobox.cjs");require("./components-ui-dialog-dialog.cjs");require("./components-ui-label-label.cjs");require("./components-ui-separator-separator.cjs");require("./components-ui-field-field.styles.cjs");require("./components-ui-input-input.styles.cjs");require("./components-ui-textarea-textarea.cjs");require("./components-ui-input-group-input-group.styles.cjs");require("./components-ui-navigation-item-navigation-item.styles.cjs");require("./components-ui-navigation-menu-navigation-menu.styles.cjs");require("./components-ui-pagination-pagination.cjs");require("./components-ui-progress-progress.cjs");require("./components-ui-radio-group-radio-group.cjs");require("./components-ui-switch-switch.cjs");require("./components-ui-table-table.cjs");require("./components-ui-tabs-tabs.cjs");require("./components-ui-tooltip-tooltip.cjs");const v=require("./components-ui-typography-typography.cjs");require("./components-ui-typography-typography.styles.cjs");require("./components-app-pagination-app-pagination.styles.cjs");require("./components-app-sidebar-app-sidebar.styles.cjs");require("./components-select-field-select-field.cjs");require("./lodash-kqhtUJfz.cjs");require("./chart-CgVfpT_X.cjs");const A=require("./components-basic-avatar-basic-avatar.cjs");require("./index-DGxwh2Ms.cjs");require("./index-fTTv8YY8.cjs");const y=require("./index-DJD-8LQA.cjs");require("./components-input-phone-input-phone.cjs");require("./components-ui-calendar-calendar.styles.cjs");const j=1,b=[".jpg",".png"],h=({src:u,fullName:o,maxFiles:a=j,accept:c=b,avatarProps:q,containerClassName:p,onChange:s})=>{const n=f.useMemo(()=>{const[e,r]=o?.split(" "),t=e?.charAt(0)||"",g=r?.charAt(0)||"";return(t+g).toUpperCase()||"?"},[o]),{getRootProps:l,getInputProps:d}=y.useDropzone({accept:{"image/*":c},maxFiles:a,onDrop:e=>{const r=e[0];if(r){const t=URL.createObjectURL(r);s?.(t)}}}),m=e=>{e.stopPropagation(),s?.("")};return i.jsxs("div",{...l(),className:x.cn(`bg-info-new-bg flex h-18 w-18 cursor-pointer items-center justify-center
|
|
2
2
|
overflow-hidden rounded-full transition-colors`,p),children:[i.jsx("input",{...d()}),u?i.jsx(A.BasicAvatar,{...q,image:{src:u},initials:{text:n},hasBadge:!0,onClick:m}):i.jsx(v.Typography,{variant:"body-xxl-medium",className:"text-info-new-text flex items-center justify-center",children:n})]})};exports.AvatarUpload=h;
|
|
3
3
|
//# sourceMappingURL=components-avatar-uploader-avatar-uploader.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-avatar-uploader-avatar-uploader.cjs","sources":["../src/components/avatar-uploader/avatar-uploader.tsx"],"sourcesContent":["import { cn } from \"@/index\";\nimport { useMemo } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { BasicAvatar, type BasicAvatarProps } from \"../basic-avatar\";\nimport { Typography } from \"../ui/typography\";\n\ntype Props = {\n maxFiles?: number;\n src?: string;\n fullName: string;\n accept?: string[];\n avatarProps?: BasicAvatarProps;\n containerClassName?: string;\n onChange?: (src: string | null) => void;\n};\n\nconst DEFAULT_MAX_FILES = 1;\nconst DEFAULT_ACCEPT = [\".jpg\", \".png\"];\n\nexport const AvatarUpload = ({\n src,\n fullName,\n maxFiles = DEFAULT_MAX_FILES,\n accept = DEFAULT_ACCEPT,\n avatarProps,\n containerClassName,\n onChange,\n}: Props) => {\n const initials = useMemo(() => {\n const [firstName, lastName] = fullName?.split(\" \");\n const first = firstName?.charAt(0) || \"\";\n const last = lastName?.charAt(0) || \"\";\n\n return (first + last).toUpperCase() || \"?\";\n }, [fullName]);\n\n const { getRootProps, getInputProps } = useDropzone({\n accept: { \"image/*\": accept },\n maxFiles,\n onDrop: (files) => {\n const file = files[0];\n if (file) {\n const previewUrl = URL.createObjectURL(file);\n onChange?.(previewUrl);\n }\n },\n });\n\n const removeAvatar = (e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n onChange?.(\"\");\n };\n\n return (\n <div\n {...getRootProps()}\n className={cn(\n `bg-info-new-bg flex h-18 w-18 cursor-pointer items-center justify-center\n overflow-hidden rounded-full transition-colors`,\n containerClassName,\n )}\n >\n <input {...getInputProps()} />\n {src ? (\n <BasicAvatar\n {...avatarProps}\n image={{\n src,\n }}\n initials={{ text: initials }}\n hasBadge\n onClick={removeAvatar}\n />\n ) : (\n <Typography\n variant=\"body-xxl-medium\"\n className=\"text-info-new-text flex items-center justify-center\"\n >\n {initials}\n </Typography>\n )}\n </div>\n );\n};\n\nexport type { Props as AvatarUploadProps };\n"],"names":["DEFAULT_MAX_FILES","DEFAULT_ACCEPT","AvatarUpload","src","fullName","maxFiles","accept","avatarProps","containerClassName","onChange","initials","useMemo","firstName","lastName","first","last","getRootProps","getInputProps","useDropzone","files","file","previewUrl","removeAvatar","jsxs","cn","jsx","BasicAvatar","Typography"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components-avatar-uploader-avatar-uploader.cjs","sources":["../src/components/avatar-uploader/avatar-uploader.tsx"],"sourcesContent":["import { cn } from \"@/index\";\nimport { useMemo } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { BasicAvatar, type BasicAvatarProps } from \"../basic-avatar\";\nimport { Typography } from \"../ui/typography\";\n\ntype Props = {\n maxFiles?: number;\n src?: string;\n fullName: string;\n accept?: string[];\n avatarProps?: BasicAvatarProps;\n containerClassName?: string;\n onChange?: (src: string | null) => void;\n};\n\nconst DEFAULT_MAX_FILES = 1;\nconst DEFAULT_ACCEPT = [\".jpg\", \".png\"];\n\nexport const AvatarUpload = ({\n src,\n fullName,\n maxFiles = DEFAULT_MAX_FILES,\n accept = DEFAULT_ACCEPT,\n avatarProps,\n containerClassName,\n onChange,\n}: Props) => {\n const initials = useMemo(() => {\n const [firstName, lastName] = fullName?.split(\" \");\n const first = firstName?.charAt(0) || \"\";\n const last = lastName?.charAt(0) || \"\";\n\n return (first + last).toUpperCase() || \"?\";\n }, [fullName]);\n\n const { getRootProps, getInputProps } = useDropzone({\n accept: { \"image/*\": accept },\n maxFiles,\n onDrop: (files) => {\n const file = files[0];\n if (file) {\n const previewUrl = URL.createObjectURL(file);\n onChange?.(previewUrl);\n }\n },\n });\n\n const removeAvatar = (e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n onChange?.(\"\");\n };\n\n return (\n <div\n {...getRootProps()}\n className={cn(\n `bg-info-new-bg flex h-18 w-18 cursor-pointer items-center justify-center\n overflow-hidden rounded-full transition-colors`,\n containerClassName,\n )}\n >\n <input {...getInputProps()} />\n {src ? (\n <BasicAvatar\n {...avatarProps}\n image={{\n src,\n }}\n initials={{ text: initials }}\n hasBadge\n onClick={removeAvatar}\n />\n ) : (\n <Typography\n variant=\"body-xxl-medium\"\n className=\"text-info-new-text flex items-center justify-center\"\n >\n {initials}\n </Typography>\n )}\n </div>\n );\n};\n\nexport type { Props as AvatarUploadProps };\n"],"names":["DEFAULT_MAX_FILES","DEFAULT_ACCEPT","AvatarUpload","src","fullName","maxFiles","accept","avatarProps","containerClassName","onChange","initials","useMemo","firstName","lastName","first","last","getRootProps","getInputProps","useDropzone","files","file","previewUrl","removeAvatar","jsxs","cn","jsx","BasicAvatar","Typography"],"mappings":"08DAgBA,MAAMA,EAAoB,EACpBC,EAAiB,CAAC,OAAQ,MAAM,EAEzBC,EAAe,CAAC,CAC3B,IAAAC,EACA,SAAAC,EACA,SAAAC,EAAWL,EACX,OAAAM,EAASL,EACT,YAAAM,EACA,mBAAAC,EACA,SAAAC,CACF,IAAa,CACX,MAAMC,EAAWC,EAAAA,QAAQ,IAAM,CAC7B,KAAM,CAACC,EAAWC,CAAQ,EAAIT,GAAU,MAAM,GAAG,EAC3CU,EAAQF,GAAW,OAAO,CAAC,GAAK,GAChCG,EAAOF,GAAU,OAAO,CAAC,GAAK,GAEpC,OAAQC,EAAQC,GAAM,YAAA,GAAiB,GACzC,EAAG,CAACX,CAAQ,CAAC,EAEP,CAAE,aAAAY,EAAc,cAAAC,CAAA,EAAkBC,cAAY,CAClD,OAAQ,CAAE,UAAWZ,CAAA,EACrB,SAAAD,EACA,OAASc,GAAU,CACjB,MAAMC,EAAOD,EAAM,CAAC,EACpB,GAAIC,EAAM,CACR,MAAMC,EAAa,IAAI,gBAAgBD,CAAI,EAC3CX,IAAWY,CAAU,CACvB,CACF,CAAA,CACD,EAEKC,EAAgB,GAAwC,CAC5D,EAAE,gBAAA,EACFb,IAAW,EAAE,CACf,EAEA,OACEc,EAAAA,KAAC,MAAA,CACE,GAAGP,EAAA,EACJ,UAAWQ,EAAAA,GACT;AAAA,wDAEAhB,CAAA,EAGF,SAAA,CAAAiB,EAAAA,IAAC,QAAA,CAAO,GAAGR,EAAA,CAAc,CAAG,EAC3Bd,EACCsB,EAAAA,IAACC,EAAAA,YAAA,CACE,GAAGnB,EACJ,MAAO,CACL,IAAAJ,CAAA,EAEF,SAAU,CAAE,KAAMO,CAAA,EAClB,SAAQ,GACR,QAASY,CAAA,CAAA,EAGXG,EAAAA,IAACE,EAAAA,WAAA,CACC,QAAQ,kBACR,UAAU,sDAET,SAAAjB,CAAA,CAAA,CACH,CAAA,CAAA,CAIR"}
|
|
@@ -8,8 +8,6 @@ import "./components-ui-button-button.js";
|
|
|
8
8
|
import "./components-ui-button-button.styles.js";
|
|
9
9
|
import "./components-ui-card-card.js";
|
|
10
10
|
import "./components-ui-checkbox-checkbox.js";
|
|
11
|
-
import "lucide-react";
|
|
12
|
-
import "./components-ui-icon-overrides.js";
|
|
13
11
|
import "./components-ui-combobox-combobox.js";
|
|
14
12
|
import "./components-ui-dialog-dialog.js";
|
|
15
13
|
import "./components-ui-label-label.js";
|
|
@@ -39,7 +37,8 @@ import "./index-C4iHL8Gs.js";
|
|
|
39
37
|
import "./index-C6N9aMq_.js";
|
|
40
38
|
import { u as j } from "./index-CVlBIwtP.js";
|
|
41
39
|
import "./components-input-phone-input-phone.js";
|
|
42
|
-
|
|
40
|
+
import "./components-ui-calendar-calendar.styles.js";
|
|
41
|
+
const w = 1, y = [".jpg", ".png"], ct = ({
|
|
43
42
|
src: p,
|
|
44
43
|
fullName: m,
|
|
45
44
|
maxFiles: n = w,
|
|
@@ -99,6 +98,6 @@ const w = 1, y = [".jpg", ".png"], lt = ({
|
|
|
99
98
|
);
|
|
100
99
|
};
|
|
101
100
|
export {
|
|
102
|
-
|
|
101
|
+
ct as AvatarUpload
|
|
103
102
|
};
|
|
104
103
|
//# sourceMappingURL=components-avatar-uploader-avatar-uploader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-avatar-uploader-avatar-uploader.js","sources":["../src/components/avatar-uploader/avatar-uploader.tsx"],"sourcesContent":["import { cn } from \"@/index\";\nimport { useMemo } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { BasicAvatar, type BasicAvatarProps } from \"../basic-avatar\";\nimport { Typography } from \"../ui/typography\";\n\ntype Props = {\n maxFiles?: number;\n src?: string;\n fullName: string;\n accept?: string[];\n avatarProps?: BasicAvatarProps;\n containerClassName?: string;\n onChange?: (src: string | null) => void;\n};\n\nconst DEFAULT_MAX_FILES = 1;\nconst DEFAULT_ACCEPT = [\".jpg\", \".png\"];\n\nexport const AvatarUpload = ({\n src,\n fullName,\n maxFiles = DEFAULT_MAX_FILES,\n accept = DEFAULT_ACCEPT,\n avatarProps,\n containerClassName,\n onChange,\n}: Props) => {\n const initials = useMemo(() => {\n const [firstName, lastName] = fullName?.split(\" \");\n const first = firstName?.charAt(0) || \"\";\n const last = lastName?.charAt(0) || \"\";\n\n return (first + last).toUpperCase() || \"?\";\n }, [fullName]);\n\n const { getRootProps, getInputProps } = useDropzone({\n accept: { \"image/*\": accept },\n maxFiles,\n onDrop: (files) => {\n const file = files[0];\n if (file) {\n const previewUrl = URL.createObjectURL(file);\n onChange?.(previewUrl);\n }\n },\n });\n\n const removeAvatar = (e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n onChange?.(\"\");\n };\n\n return (\n <div\n {...getRootProps()}\n className={cn(\n `bg-info-new-bg flex h-18 w-18 cursor-pointer items-center justify-center\n overflow-hidden rounded-full transition-colors`,\n containerClassName,\n )}\n >\n <input {...getInputProps()} />\n {src ? (\n <BasicAvatar\n {...avatarProps}\n image={{\n src,\n }}\n initials={{ text: initials }}\n hasBadge\n onClick={removeAvatar}\n />\n ) : (\n <Typography\n variant=\"body-xxl-medium\"\n className=\"text-info-new-text flex items-center justify-center\"\n >\n {initials}\n </Typography>\n )}\n </div>\n );\n};\n\nexport type { Props as AvatarUploadProps };\n"],"names":["DEFAULT_MAX_FILES","DEFAULT_ACCEPT","AvatarUpload","src","fullName","maxFiles","accept","avatarProps","containerClassName","onChange","initials","useMemo","firstName","lastName","first","last","getRootProps","getInputProps","useDropzone","files","file","previewUrl","removeAvatar","e","jsxs","cn","jsx","BasicAvatar","Typography"],"mappings":"
|
|
1
|
+
{"version":3,"file":"components-avatar-uploader-avatar-uploader.js","sources":["../src/components/avatar-uploader/avatar-uploader.tsx"],"sourcesContent":["import { cn } from \"@/index\";\nimport { useMemo } from \"react\";\nimport { useDropzone } from \"react-dropzone\";\nimport { BasicAvatar, type BasicAvatarProps } from \"../basic-avatar\";\nimport { Typography } from \"../ui/typography\";\n\ntype Props = {\n maxFiles?: number;\n src?: string;\n fullName: string;\n accept?: string[];\n avatarProps?: BasicAvatarProps;\n containerClassName?: string;\n onChange?: (src: string | null) => void;\n};\n\nconst DEFAULT_MAX_FILES = 1;\nconst DEFAULT_ACCEPT = [\".jpg\", \".png\"];\n\nexport const AvatarUpload = ({\n src,\n fullName,\n maxFiles = DEFAULT_MAX_FILES,\n accept = DEFAULT_ACCEPT,\n avatarProps,\n containerClassName,\n onChange,\n}: Props) => {\n const initials = useMemo(() => {\n const [firstName, lastName] = fullName?.split(\" \");\n const first = firstName?.charAt(0) || \"\";\n const last = lastName?.charAt(0) || \"\";\n\n return (first + last).toUpperCase() || \"?\";\n }, [fullName]);\n\n const { getRootProps, getInputProps } = useDropzone({\n accept: { \"image/*\": accept },\n maxFiles,\n onDrop: (files) => {\n const file = files[0];\n if (file) {\n const previewUrl = URL.createObjectURL(file);\n onChange?.(previewUrl);\n }\n },\n });\n\n const removeAvatar = (e: React.MouseEvent<HTMLDivElement>) => {\n e.stopPropagation();\n onChange?.(\"\");\n };\n\n return (\n <div\n {...getRootProps()}\n className={cn(\n `bg-info-new-bg flex h-18 w-18 cursor-pointer items-center justify-center\n overflow-hidden rounded-full transition-colors`,\n containerClassName,\n )}\n >\n <input {...getInputProps()} />\n {src ? (\n <BasicAvatar\n {...avatarProps}\n image={{\n src,\n }}\n initials={{ text: initials }}\n hasBadge\n onClick={removeAvatar}\n />\n ) : (\n <Typography\n variant=\"body-xxl-medium\"\n className=\"text-info-new-text flex items-center justify-center\"\n >\n {initials}\n </Typography>\n )}\n </div>\n );\n};\n\nexport type { Props as AvatarUploadProps };\n"],"names":["DEFAULT_MAX_FILES","DEFAULT_ACCEPT","AvatarUpload","src","fullName","maxFiles","accept","avatarProps","containerClassName","onChange","initials","useMemo","firstName","lastName","first","last","getRootProps","getInputProps","useDropzone","files","file","previewUrl","removeAvatar","e","jsxs","cn","jsx","BasicAvatar","Typography"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,MAAMA,IAAoB,GACpBC,IAAiB,CAAC,QAAQ,MAAM,GAEzBC,KAAe,CAAC;AAAA,EAC3B,KAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC,IAAWL;AAAA,EACX,QAAAM,IAASL;AAAA,EACT,aAAAM;AAAA,EACA,oBAAAC;AAAA,EACA,UAAAC;AACF,MAAa;AACX,QAAMC,IAAWC,EAAQ,MAAM;AAC7B,UAAM,CAACC,GAAWC,CAAQ,IAAIT,GAAU,MAAM,GAAG,GAC3CU,IAAQF,GAAW,OAAO,CAAC,KAAK,IAChCG,IAAOF,GAAU,OAAO,CAAC,KAAK;AAEpC,YAAQC,IAAQC,GAAM,YAAA,KAAiB;AAAA,EACzC,GAAG,CAACX,CAAQ,CAAC,GAEP,EAAE,cAAAY,GAAc,eAAAC,EAAA,IAAkBC,EAAY;AAAA,IAClD,QAAQ,EAAE,WAAWZ,EAAA;AAAA,IACrB,UAAAD;AAAA,IACA,QAAQ,CAACc,MAAU;AACjB,YAAMC,IAAOD,EAAM,CAAC;AACpB,UAAIC,GAAM;AACR,cAAMC,IAAa,IAAI,gBAAgBD,CAAI;AAC3C,QAAAX,IAAWY,CAAU;AAAA,MACvB;AAAA,IACF;AAAA,EAAA,CACD,GAEKC,IAAe,CAACC,MAAwC;AAC5D,IAAAA,EAAE,gBAAA,GACFd,IAAW,EAAE;AAAA,EACf;AAEA,SACE,gBAAAe;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGR,EAAA;AAAA,MACJ,WAAWS;AAAA,QACT;AAAA;AAAA,QAEAjB;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAkB,EAAC,SAAA,EAAO,GAAGT,EAAA,EAAc,CAAG;AAAA,QAC3Bd,IACC,gBAAAuB;AAAA,UAACC;AAAA,UAAA;AAAA,YACE,GAAGpB;AAAA,YACJ,OAAO;AAAA,cACL,KAAAJ;AAAA,YAAA;AAAA,YAEF,UAAU,EAAE,MAAMO,EAAA;AAAA,YAClB,UAAQ;AAAA,YACR,SAASY;AAAA,UAAA;AAAA,QAAA,IAGX,gBAAAI;AAAA,UAACE;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,WAAU;AAAA,YAET,UAAAlB;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./brd-ui-kit.css');const e=require("react/jsx-runtime");;/* empty css */const r=require("./lib-utils.cjs");require("class-variance-authority");require("react");require("./components-ui-badge-badge.styles.cjs");require("./components-ui-button-button.cjs");require("./components-ui-button-button.styles.cjs");require("./components-ui-card-card.cjs");require("./components-ui-checkbox-checkbox.cjs");const p=require("./components-ui-icon-icon.cjs");require("./components-ui-combobox-combobox.cjs");require("./components-ui-dialog-dialog.cjs");require("./components-ui-label-label.cjs");require("./components-ui-separator-separator.cjs");require("./components-ui-field-field.styles.cjs");require("./components-ui-input-input.styles.cjs");require("./components-ui-textarea-textarea.cjs");require("./components-ui-input-group-input-group.styles.cjs");require("./components-ui-navigation-item-navigation-item.styles.cjs");require("./components-ui-navigation-menu-navigation-menu.styles.cjs");require("./components-ui-pagination-pagination.cjs");require("./components-ui-progress-progress.cjs");require("./components-ui-radio-group-radio-group.cjs");require("./components-ui-switch-switch.cjs");require("./components-ui-table-table.cjs");require("./components-ui-tabs-tabs.cjs");require("./components-ui-tooltip-tooltip.cjs");const m=require("./components-ui-typography-typography.cjs");require("./components-ui-typography-typography.styles.cjs");const i=require("./components-ui-avatar-avatar.cjs");require("
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./brd-ui-kit.css');const e=require("react/jsx-runtime");;/* empty css */const r=require("./lib-utils.cjs");require("class-variance-authority");require("react");require("./components-ui-badge-badge.styles.cjs");require("./components-ui-button-button.cjs");require("./components-ui-button-button.styles.cjs");require("./components-ui-card-card.cjs");require("./components-ui-checkbox-checkbox.cjs");const p=require("./components-ui-icon-icon.cjs");require("./components-ui-combobox-combobox.cjs");require("./components-ui-dialog-dialog.cjs");require("./components-ui-label-label.cjs");require("./components-ui-separator-separator.cjs");require("./components-ui-field-field.styles.cjs");require("./components-ui-input-input.styles.cjs");require("./components-ui-textarea-textarea.cjs");require("./components-ui-input-group-input-group.styles.cjs");require("./components-ui-navigation-item-navigation-item.styles.cjs");require("./components-ui-navigation-menu-navigation-menu.styles.cjs");require("./components-ui-pagination-pagination.cjs");require("./components-ui-progress-progress.cjs");require("./components-ui-radio-group-radio-group.cjs");require("./components-ui-switch-switch.cjs");require("./components-ui-table-table.cjs");require("./components-ui-tabs-tabs.cjs");require("./components-ui-tooltip-tooltip.cjs");const m=require("./components-ui-typography-typography.cjs");require("./components-ui-typography-typography.styles.cjs");const i=require("./components-ui-avatar-avatar.cjs");require("./components-app-pagination-app-pagination.styles.cjs");require("./components-app-sidebar-app-sidebar.styles.cjs");require("./components-select-field-select-field.cjs");require("./lodash-kqhtUJfz.cjs");require("./chart-CgVfpT_X.cjs");require("./index-DGxwh2Ms.cjs");require("./index-fTTv8YY8.cjs");require("./components-input-phone-input-phone.cjs");require("./components-ui-calendar-calendar.styles.cjs");const x=({initials:u,avatar:t,fallback:n,image:a,icon:c,showDeleteOnHover:o=!0,onClick:q=()=>{}})=>{const s=e.jsxs(i.Avatar,{...t,className:r.cn("h-18 w-18",t?.className),children:[e.jsx(i.AvatarImage,{...a,alt:"avatar",className:r.cn("h-full w-full border-0",a?.className)}),e.jsx(i.AvatarFallback,{...n,children:e.jsx(m.Typography,{variant:"body-xxl-medium",className:r.cn("text-info-new-text",u?.className),children:u?.text})})]});return o?e.jsxs("div",{className:"relative inline-block",children:[s,e.jsx("div",{className:`text-primary-bg bg-primary-inverse-bg/50 absolute inset-0 flex
|
|
2
2
|
cursor-pointer items-center justify-center rounded-full opacity-0
|
|
3
|
-
transition-opacity hover:opacity-100`,onClick:l=>l.stopPropagation(),children:e.jsx(p.Icon,{...c,type:"
|
|
3
|
+
transition-opacity hover:opacity-100`,onClick:l=>l.stopPropagation(),children:e.jsx(p.Icon,{...c,type:"x",onClick:q})})]}):s};exports.BasicAvatar=x;
|
|
4
4
|
//# sourceMappingURL=components-basic-avatar-basic-avatar.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-basic-avatar-basic-avatar.cjs","sources":["../src/components/basic-avatar/basic-avatar.tsx"],"sourcesContent":["import { Icon, Typography, cn } from \"@/index\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"../ui/avatar\";\nimport type { IconProps } from \"../ui/icon\";\n\ntype AvatarProps = React.ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: \"default\" | \"sm\" | \"lg\";\n};\ntype AvatarFallbackProps = React.ComponentProps<typeof AvatarPrimitive.Fallback>;\ntype AvatarImageProps = React.ComponentProps<typeof AvatarPrimitive.Image>;\n\ntype Props = {\n initials?: {\n text?: string;\n className?: string;\n };\n hasBadge?: boolean;\n avatar?: AvatarProps;\n fallback?: AvatarFallbackProps;\n image?: AvatarImageProps;\n showDeleteOnHover?: boolean;\n icon?: IconProps;\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nexport const BasicAvatar = ({\n initials,\n avatar,\n fallback,\n image,\n icon,\n showDeleteOnHover = true,\n onClick = () => {},\n}: Props) => {\n const content = (\n <Avatar\n {...avatar}\n className={cn(\"h-18 w-18\", avatar?.className)}\n >\n <AvatarImage\n {...image}\n alt=\"avatar\"\n className={cn(\"h-full w-full border-0\", image?.className)}\n />\n <AvatarFallback {...fallback}>\n <Typography\n variant=\"body-xxl-medium\"\n className={cn(\"text-info-new-text\", initials?.className)}\n >\n {initials?.text}\n </Typography>\n </AvatarFallback>\n </Avatar>\n );\n\n if (!showDeleteOnHover) {\n return content;\n }\n\n return (\n <div className=\"relative inline-block\">\n {content}\n <div\n className=\"text-primary-bg bg-primary-inverse-bg/50 absolute inset-0 flex\n cursor-pointer items-center justify-center rounded-full opacity-0\n transition-opacity hover:opacity-100\"\n onClick={(e) => e.stopPropagation()}\n >\n <Icon\n {...icon}\n type=\"
|
|
1
|
+
{"version":3,"file":"components-basic-avatar-basic-avatar.cjs","sources":["../src/components/basic-avatar/basic-avatar.tsx"],"sourcesContent":["import { Icon, Typography, cn } from \"@/index\";\nimport { Avatar as AvatarPrimitive } from \"radix-ui\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"../ui/avatar\";\nimport type { IconProps } from \"../ui/icon\";\n\ntype AvatarProps = React.ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: \"default\" | \"sm\" | \"lg\";\n};\ntype AvatarFallbackProps = React.ComponentProps<typeof AvatarPrimitive.Fallback>;\ntype AvatarImageProps = React.ComponentProps<typeof AvatarPrimitive.Image>;\n\ntype Props = {\n initials?: {\n text?: string;\n className?: string;\n };\n hasBadge?: boolean;\n avatar?: AvatarProps;\n fallback?: AvatarFallbackProps;\n image?: AvatarImageProps;\n showDeleteOnHover?: boolean;\n icon?: IconProps;\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nexport const BasicAvatar = ({\n initials,\n avatar,\n fallback,\n image,\n icon,\n showDeleteOnHover = true,\n onClick = () => {},\n}: Props) => {\n const content = (\n <Avatar\n {...avatar}\n className={cn(\"h-18 w-18\", avatar?.className)}\n >\n <AvatarImage\n {...image}\n alt=\"avatar\"\n className={cn(\"h-full w-full border-0\", image?.className)}\n />\n <AvatarFallback {...fallback}>\n <Typography\n variant=\"body-xxl-medium\"\n className={cn(\"text-info-new-text\", initials?.className)}\n >\n {initials?.text}\n </Typography>\n </AvatarFallback>\n </Avatar>\n );\n\n if (!showDeleteOnHover) {\n return content;\n }\n\n return (\n <div className=\"relative inline-block\">\n {content}\n <div\n className=\"text-primary-bg bg-primary-inverse-bg/50 absolute inset-0 flex\n cursor-pointer items-center justify-center rounded-full opacity-0\n transition-opacity hover:opacity-100\"\n onClick={(e) => e.stopPropagation()}\n >\n <Icon\n {...icon}\n type=\"x\"\n onClick={onClick}\n />\n </div>\n </div>\n );\n};\n\nexport type {\n AvatarFallbackProps,\n AvatarImageProps,\n AvatarProps,\n Props as BasicAvatarProps,\n};\n"],"names":["BasicAvatar","initials","avatar","fallback","image","icon","showDeleteOnHover","onClick","content","jsxs","Avatar","cn","jsx","AvatarImage","AvatarFallback","Typography","e","Icon"],"mappings":"k8DAyBO,MAAMA,EAAc,CAAC,CAC1B,SAAAC,EACA,OAAAC,EACA,SAAAC,EACA,MAAAC,EACA,KAAAC,EACA,kBAAAC,EAAoB,GACpB,QAAAC,EAAU,IAAM,CAAC,CACnB,IAAa,CACX,MAAMC,EACJC,EAAAA,KAACC,EAAAA,OAAA,CACE,GAAGR,EACJ,UAAWS,EAAAA,GAAG,YAAaT,GAAQ,SAAS,EAE5C,SAAA,CAAAU,EAAAA,IAACC,EAAAA,YAAA,CACE,GAAGT,EACJ,IAAI,SACJ,UAAWO,EAAAA,GAAG,yBAA0BP,GAAO,SAAS,CAAA,CAAA,EAE1DQ,EAAAA,IAACE,EAAAA,eAAA,CAAgB,GAAGX,EAClB,SAAAS,EAAAA,IAACG,EAAAA,WAAA,CACC,QAAQ,kBACR,UAAWJ,EAAAA,GAAG,qBAAsBV,GAAU,SAAS,EAEtD,SAAAA,GAAU,IAAA,CAAA,CACb,CACF,CAAA,CAAA,CAAA,EAIJ,OAAKK,EAKHG,EAAAA,KAAC,MAAA,CAAI,UAAU,wBACZ,SAAA,CAAAD,EACDI,EAAAA,IAAC,MAAA,CACC,UAAU;AAAA;AAAA,gDAGV,QAAUI,GAAMA,EAAE,gBAAA,EAElB,SAAAJ,EAAAA,IAACK,EAAAA,KAAA,CACE,GAAGZ,EACJ,KAAK,IACL,QAAAE,CAAA,CAAA,CACF,CAAA,CACF,EACF,EAlBOC,CAoBX"}
|
|
@@ -28,8 +28,7 @@ import "./components-ui-tabs-tabs.js";
|
|
|
28
28
|
import "./components-ui-tooltip-tooltip.js";
|
|
29
29
|
import { Typography as f } from "./components-ui-typography-typography.js";
|
|
30
30
|
import "./components-ui-typography-typography.styles.js";
|
|
31
|
-
import { Avatar as u, AvatarImage as
|
|
32
|
-
import "lucide-react";
|
|
31
|
+
import { Avatar as u, AvatarImage as x, AvatarFallback as v } from "./components-ui-avatar-avatar.js";
|
|
33
32
|
import "./components-app-pagination-app-pagination.styles.js";
|
|
34
33
|
import "./components-app-sidebar-app-sidebar.styles.js";
|
|
35
34
|
import "./components-select-field-select-field.js";
|
|
@@ -38,14 +37,15 @@ import "./chart-D15EtNmb.js";
|
|
|
38
37
|
import "./index-C4iHL8Gs.js";
|
|
39
38
|
import "./index-C6N9aMq_.js";
|
|
40
39
|
import "./components-input-phone-input-phone.js";
|
|
40
|
+
import "./components-ui-calendar-calendar.styles.js";
|
|
41
41
|
const ir = ({
|
|
42
42
|
initials: o,
|
|
43
43
|
avatar: i,
|
|
44
44
|
fallback: a,
|
|
45
45
|
image: m,
|
|
46
|
-
icon:
|
|
47
|
-
showDeleteOnHover:
|
|
48
|
-
onClick:
|
|
46
|
+
icon: n,
|
|
47
|
+
showDeleteOnHover: s = !0,
|
|
48
|
+
onClick: c = () => {
|
|
49
49
|
}
|
|
50
50
|
}) => {
|
|
51
51
|
const p = /* @__PURE__ */ e(
|
|
@@ -55,14 +55,14 @@ const ir = ({
|
|
|
55
55
|
className: t("h-18 w-18", i?.className),
|
|
56
56
|
children: [
|
|
57
57
|
/* @__PURE__ */ r(
|
|
58
|
-
|
|
58
|
+
x,
|
|
59
59
|
{
|
|
60
60
|
...m,
|
|
61
61
|
alt: "avatar",
|
|
62
62
|
className: t("h-full w-full border-0", m?.className)
|
|
63
63
|
}
|
|
64
64
|
),
|
|
65
|
-
/* @__PURE__ */ r(
|
|
65
|
+
/* @__PURE__ */ r(v, { ...a, children: /* @__PURE__ */ r(
|
|
66
66
|
f,
|
|
67
67
|
{
|
|
68
68
|
variant: "body-xxl-medium",
|
|
@@ -73,7 +73,7 @@ const ir = ({
|
|
|
73
73
|
]
|
|
74
74
|
}
|
|
75
75
|
);
|
|
76
|
-
return
|
|
76
|
+
return s ? /* @__PURE__ */ e("div", { className: "relative inline-block", children: [
|
|
77
77
|
p,
|
|
78
78
|
/* @__PURE__ */ r(
|
|
79
79
|
"div",
|
|
@@ -81,13 +81,13 @@ const ir = ({
|
|
|
81
81
|
className: `text-primary-bg bg-primary-inverse-bg/50 absolute inset-0 flex
|
|
82
82
|
cursor-pointer items-center justify-center rounded-full opacity-0
|
|
83
83
|
transition-opacity hover:opacity-100`,
|
|
84
|
-
onClick: (
|
|
84
|
+
onClick: (l) => l.stopPropagation(),
|
|
85
85
|
children: /* @__PURE__ */ r(
|
|
86
86
|
d,
|
|
87
87
|
{
|
|
88
|
-
...
|
|
89
|
-
type: "
|
|
90
|
-
onClick:
|
|
88
|
+
...n,
|
|
89
|
+
type: "x",
|
|
90
|
+
onClick: c
|
|
91
91
|
}
|
|
92
92
|
)
|
|
93
93
|
}
|