brd-ui-kit 0.1.88 → 0.1.90
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/approval-log.view-CZoufOXF.js +283 -0
- package/dist/approval-log.view-CZoufOXF.js.map +1 -0
- package/dist/approval-log.view-DC5xl6KF.cjs +5 -0
- package/dist/approval-log.view-DC5xl6KF.cjs.map +1 -0
- package/dist/brd-ui-kit.css +1 -1
- package/dist/components/approval-log/approval-log.d.ts +1 -1
- package/dist/components/approval-log/approval-log.view.d.ts +15 -0
- package/dist/components/forms/form-files-uploader.d.ts +1 -1
- package/dist/components/forms/form-input-password.d.ts +1 -1
- package/dist/components/transfer-list/transfer-list-card.d.ts +4 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +6 -1
- package/dist/components/ui/input/input.d.ts +1 -1
- package/dist/components-approval-log-approval-log.cjs +5 -6
- package/dist/components-approval-log-approval-log.cjs.map +1 -1
- package/dist/components-approval-log-approval-log.js +161 -268
- package/dist/components-approval-log-approval-log.js.map +1 -1
- package/dist/components-approval-log-approval-log.view.cjs +2 -0
- package/dist/components-approval-log-approval-log.view.cjs.map +1 -0
- package/dist/components-approval-log-approval-log.view.js +69 -0
- package/dist/components-approval-log-approval-log.view.js.map +1 -0
- package/dist/components-avatar-uploader-avatar-uploader.cjs +2 -2
- package/dist/components-avatar-uploader-avatar-uploader.cjs.map +1 -1
- package/dist/components-avatar-uploader-avatar-uploader.js +10 -11
- package/dist/components-avatar-uploader-avatar-uploader.js.map +1 -1
- package/dist/components-basic-avatar-basic-avatar.cjs +1 -3
- package/dist/components-basic-avatar-basic-avatar.cjs.map +1 -1
- package/dist/components-basic-avatar-basic-avatar.js +7 -69
- package/dist/components-basic-avatar-basic-avatar.js.map +1 -1
- package/dist/components-basic-avatar.cjs +1 -1
- package/dist/components-basic-avatar.js +1 -1
- package/dist/components-checkbox-group-checkbox-group.cjs +1 -1
- package/dist/components-checkbox-group-checkbox-group.cjs.map +1 -1
- package/dist/components-checkbox-group-checkbox-group.js +1 -1
- package/dist/components-forms-form-files-uploader.cjs +1 -12
- package/dist/components-forms-form-files-uploader.cjs.map +1 -1
- package/dist/components-forms-form-files-uploader.js +27 -3045
- package/dist/components-forms-form-files-uploader.js.map +1 -1
- package/dist/components-forms-form-input-password.cjs +1 -29
- package/dist/components-forms-form-input-password.cjs.map +1 -1
- package/dist/components-forms-form-input-password.js +29 -363
- package/dist/components-forms-form-input-password.js.map +1 -1
- package/dist/components-input-contact-input-contact.cjs +1 -1
- package/dist/components-input-contact-input-contact.cjs.map +1 -1
- package/dist/components-input-contact-input-contact.js +1 -1
- package/dist/components-story-drawer-story-drawer.cjs +1 -1
- package/dist/components-story-drawer-story-drawer.cjs.map +1 -1
- package/dist/components-story-drawer-story-drawer.js +10 -11
- package/dist/components-story-drawer-story-drawer.js.map +1 -1
- package/dist/components-transfer-list-transfer-list-card.cjs +4 -4
- package/dist/components-transfer-list-transfer-list-card.cjs.map +1 -1
- package/dist/components-transfer-list-transfer-list-card.js +69 -59
- package/dist/components-transfer-list-transfer-list-card.js.map +1 -1
- package/dist/components-transfer-list-transfer-list.cjs +1 -1
- package/dist/components-transfer-list-transfer-list.cjs.map +1 -1
- package/dist/components-transfer-list-transfer-list.js +58 -52
- package/dist/components-transfer-list-transfer-list.js.map +1 -1
- package/dist/components-ui-dropdown-menu-dropdown-menu.cjs +2 -2
- package/dist/components-ui-dropdown-menu-dropdown-menu.cjs.map +1 -1
- package/dist/components-ui-dropdown-menu-dropdown-menu.js +32 -23
- package/dist/components-ui-dropdown-menu-dropdown-menu.js.map +1 -1
- package/dist/components-ui-input-input.cjs.map +1 -1
- package/dist/components-ui-input-input.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +267 -268
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
- package/dist/components-ui-typography-typography.styles-C6G6MFUq.js +0 -105
- package/dist/components-ui-typography-typography.styles-C6G6MFUq.js.map +0 -1
- package/dist/components-ui-typography-typography.styles-CMzY_pXl.cjs +0 -2
- package/dist/components-ui-typography-typography.styles-CMzY_pXl.cjs.map +0 -1
|
@@ -1,81 +1,85 @@
|
|
|
1
|
-
import { jsxs as w, jsx as
|
|
2
|
-
import { useMemo as
|
|
3
|
-
import {
|
|
4
|
-
import { Button as C } from "./components-ui-button-button.js";
|
|
1
|
+
import { jsxs as w, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo as c, useState as j, useCallback as i } from "react";
|
|
3
|
+
import { Button as v } from "./components-ui-button-button.js";
|
|
5
4
|
import "./components-ui-button-button.styles.js";
|
|
6
|
-
import { Icon as
|
|
5
|
+
import { Icon as C } from "./components-ui-icon-icon.js";
|
|
7
6
|
import "brd-phosphor-strokes-icons/icons";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
[n, I]
|
|
15
|
-
), k = s(
|
|
7
|
+
import { TransferListCard as M } from "./components-transfer-list-transfer-list-card.js";
|
|
8
|
+
const m = !1, f = !0, G = ({ list: t, onChange: g }) => {
|
|
9
|
+
const a = c(() => t.filter((e) => !e.inTarget), [t]), l = c(() => t.filter((e) => e.inTarget), [t]), [n, p] = j([]), u = c(() => new Set(n), [n]), T = c(() => new Set(a.map((e) => e.id)), [a]), I = c(
|
|
10
|
+
() => new Set(l.map((e) => e.id)),
|
|
11
|
+
[l]
|
|
12
|
+
), b = c(
|
|
16
13
|
() => n.filter((e) => T.has(e)).length,
|
|
17
14
|
[n, T]
|
|
18
|
-
),
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
), k = c(
|
|
16
|
+
() => n.filter((e) => I.has(e)).length,
|
|
17
|
+
[n, I]
|
|
18
|
+
), y = c(
|
|
19
|
+
() => t.length === l.length,
|
|
20
|
+
[t.length, l.length]
|
|
21
|
+
), S = i((e) => {
|
|
22
|
+
p(
|
|
23
|
+
(o) => o.includes(e) ? o.filter((d) => d !== e) : [...o, e]
|
|
21
24
|
);
|
|
22
|
-
}, []), r =
|
|
23
|
-
(e,
|
|
24
|
-
const d =
|
|
25
|
+
}, []), r = i(
|
|
26
|
+
(e, o) => {
|
|
27
|
+
const d = o ?? n;
|
|
25
28
|
if (d.length === 0) return;
|
|
26
|
-
const O = new Set(d), _ =
|
|
27
|
-
...
|
|
29
|
+
const O = new Set(d), _ = t.map((h) => !O.has(h.id) || h.inTarget === e ? h : {
|
|
30
|
+
...h,
|
|
28
31
|
inTarget: e
|
|
29
32
|
});
|
|
30
|
-
|
|
33
|
+
g(_), p([]);
|
|
31
34
|
},
|
|
32
|
-
[
|
|
33
|
-
), x =
|
|
35
|
+
[t, g, n]
|
|
36
|
+
), x = i(
|
|
34
37
|
(e) => {
|
|
35
38
|
r(
|
|
36
39
|
e,
|
|
37
|
-
|
|
40
|
+
t.filter((o) => o.inTarget !== e).map((o) => o.id)
|
|
38
41
|
);
|
|
39
42
|
},
|
|
40
|
-
[
|
|
41
|
-
), L =
|
|
43
|
+
[t, r]
|
|
44
|
+
), L = i(
|
|
42
45
|
(e) => {
|
|
43
|
-
r(
|
|
46
|
+
r(f, [e]);
|
|
44
47
|
},
|
|
45
48
|
[r]
|
|
46
|
-
), N =
|
|
49
|
+
), N = i(
|
|
47
50
|
(e) => {
|
|
48
51
|
r(m, [e]);
|
|
49
52
|
},
|
|
50
53
|
[r]
|
|
51
54
|
);
|
|
52
55
|
return /* @__PURE__ */ w("div", { className: "flex h-full min-h-0 w-fit gap-6", children: [
|
|
53
|
-
/* @__PURE__ */
|
|
54
|
-
|
|
56
|
+
/* @__PURE__ */ s(
|
|
57
|
+
M,
|
|
55
58
|
{
|
|
56
|
-
items:
|
|
57
|
-
selectedSet:
|
|
59
|
+
items: a,
|
|
60
|
+
selectedSet: u,
|
|
58
61
|
onSelectItem: S,
|
|
59
62
|
onMoveItem: L,
|
|
60
63
|
direction: "right",
|
|
61
64
|
showHeaderTooltip: !0,
|
|
62
65
|
headerButton: {
|
|
63
66
|
icon: "caret-right",
|
|
64
|
-
onClick: () => x(
|
|
65
|
-
disabled:
|
|
67
|
+
onClick: () => x(f),
|
|
68
|
+
disabled: a.length === 0
|
|
66
69
|
},
|
|
67
|
-
showFooterIcons: !1
|
|
70
|
+
showFooterIcons: !1,
|
|
71
|
+
emptyText: "Все пункты выполнены"
|
|
68
72
|
}
|
|
69
73
|
),
|
|
70
74
|
/* @__PURE__ */ w("div", { className: "flex h-full flex-col justify-center gap-8", children: [
|
|
71
|
-
/* @__PURE__ */
|
|
72
|
-
|
|
75
|
+
/* @__PURE__ */ s(
|
|
76
|
+
v,
|
|
73
77
|
{
|
|
74
78
|
variant: "circle",
|
|
75
|
-
onClick: () => r(
|
|
79
|
+
onClick: () => r(f),
|
|
76
80
|
disabled: b === 0,
|
|
77
|
-
children: /* @__PURE__ */
|
|
78
|
-
|
|
81
|
+
children: /* @__PURE__ */ s(
|
|
82
|
+
C,
|
|
79
83
|
{
|
|
80
84
|
type: "caret-right",
|
|
81
85
|
className: "text-placeholder-text"
|
|
@@ -83,14 +87,14 @@ const m = !1, h = !0, D = ({ list: o, onChange: u }) => {
|
|
|
83
87
|
)
|
|
84
88
|
}
|
|
85
89
|
),
|
|
86
|
-
/* @__PURE__ */
|
|
87
|
-
|
|
90
|
+
/* @__PURE__ */ s(
|
|
91
|
+
v,
|
|
88
92
|
{
|
|
89
93
|
variant: "circle",
|
|
90
94
|
onClick: () => r(m),
|
|
91
95
|
disabled: k === 0,
|
|
92
|
-
children: /* @__PURE__ */
|
|
93
|
-
|
|
96
|
+
children: /* @__PURE__ */ s(
|
|
97
|
+
C,
|
|
94
98
|
{
|
|
95
99
|
type: "caret-left",
|
|
96
100
|
className: "text-placeholder-text"
|
|
@@ -99,25 +103,27 @@ const m = !1, h = !0, D = ({ list: o, onChange: u }) => {
|
|
|
99
103
|
}
|
|
100
104
|
)
|
|
101
105
|
] }),
|
|
102
|
-
/* @__PURE__ */
|
|
103
|
-
|
|
106
|
+
/* @__PURE__ */ s(
|
|
107
|
+
M,
|
|
104
108
|
{
|
|
105
|
-
items:
|
|
106
|
-
selectedSet:
|
|
109
|
+
items: l,
|
|
110
|
+
selectedSet: u,
|
|
111
|
+
allCompleted: y,
|
|
107
112
|
onSelectItem: S,
|
|
108
113
|
onMoveItem: N,
|
|
109
114
|
direction: "left",
|
|
110
115
|
headerButton: {
|
|
111
116
|
icon: "caret-left",
|
|
112
117
|
onClick: () => x(m),
|
|
113
|
-
disabled:
|
|
118
|
+
disabled: l.length === 0
|
|
114
119
|
},
|
|
115
|
-
showFooterIcons: !0
|
|
120
|
+
showFooterIcons: !0,
|
|
121
|
+
emptyText: "В ожидании заполнения"
|
|
116
122
|
}
|
|
117
123
|
)
|
|
118
124
|
] });
|
|
119
125
|
};
|
|
120
126
|
export {
|
|
121
|
-
|
|
127
|
+
G as TransferList
|
|
122
128
|
};
|
|
123
129
|
//# sourceMappingURL=components-transfer-list-transfer-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-transfer-list-transfer-list.js","sources":["../src/components/transfer-list/transfer-list.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport {
|
|
1
|
+
{"version":3,"file":"components-transfer-list-transfer-list.js","sources":["../src/components/transfer-list/transfer-list.tsx"],"sourcesContent":["import { useCallback, useMemo, useState } from \"react\";\nimport { Button } from \"../ui/button\";\nimport { Icon } from \"../ui/icon\";\nimport { TransferListCard } from \"./transfer-list-card\";\n\nexport type TransferListItem = {\n id: string;\n label: string;\n disabled?: boolean;\n inTarget: boolean;\n};\n\ntype Props = {\n list: TransferListItem[];\n onChange: (item: TransferListItem[]) => void;\n};\n\nconst MOVE_TO_LEFT = false;\nconst MOVE_TO_RIGHT = true;\n\nexport const TransferList = ({ list, onChange }: Props) => {\n const leftItems = useMemo(() => list.filter((i) => !i.inTarget), [list]);\n const rightItems = useMemo(() => list.filter((i) => i.inTarget), [list]);\n\n const [selectedIds, setSelectedIds] = useState<string[]>([]);\n\n const selectedSet = useMemo(() => new Set(selectedIds), [selectedIds]);\n const leftIdSet = useMemo(() => new Set(leftItems.map((item) => item.id)), [leftItems]);\n const rightIdSet = useMemo(\n () => new Set(rightItems.map((item) => item.id)),\n [rightItems],\n );\n\n const selectedLeftCount = useMemo(\n () => selectedIds.filter((id) => leftIdSet.has(id)).length,\n [selectedIds, leftIdSet],\n );\n const selectedRightCount = useMemo(\n () => selectedIds.filter((id) => rightIdSet.has(id)).length,\n [selectedIds, rightIdSet],\n );\n\n const allCompleted = useMemo(\n () => list.length === rightItems.length,\n [list.length, rightItems.length],\n );\n\n const onSelectItem = useCallback((id: string) => {\n setSelectedIds((prev) =>\n prev.includes(id) ? prev.filter((itemId) => itemId !== id) : [...prev, id],\n );\n }, []);\n\n const moveSelectedItems = useCallback(\n (move: boolean, ids?: string[]) => {\n const resolvedIds = ids ?? selectedIds;\n if (resolvedIds.length === 0) return;\n\n const idsToMoveSet = new Set(resolvedIds);\n\n const newData = list.map((item) => {\n if (!idsToMoveSet.has(item.id) || item.inTarget === move) {\n return item;\n }\n\n return {\n ...item,\n inTarget: move,\n };\n });\n\n onChange(newData);\n setSelectedIds([]);\n },\n [list, onChange, selectedIds],\n );\n\n const allMoveSelectedItems = useCallback(\n (move: boolean) => {\n moveSelectedItems(\n move,\n list.filter((item) => item.inTarget !== move).map((item) => item.id),\n );\n },\n [list, moveSelectedItems],\n );\n\n const moveToRight = useCallback(\n (itemId: string) => {\n moveSelectedItems(MOVE_TO_RIGHT, [itemId]);\n },\n [moveSelectedItems],\n );\n\n const moveToLeft = useCallback(\n (itemId: string) => {\n moveSelectedItems(MOVE_TO_LEFT, [itemId]);\n },\n [moveSelectedItems],\n );\n\n return (\n <div className=\"flex h-full min-h-0 w-fit gap-6\">\n <TransferListCard\n items={leftItems}\n selectedSet={selectedSet}\n onSelectItem={onSelectItem}\n onMoveItem={moveToRight}\n direction=\"right\"\n showHeaderTooltip={true}\n headerButton={{\n icon: \"caret-right\",\n onClick: () => allMoveSelectedItems(MOVE_TO_RIGHT),\n disabled: leftItems.length === 0,\n }}\n showFooterIcons={false}\n emptyText=\"Все пункты выполнены\"\n />\n\n <div className=\"flex h-full flex-col justify-center gap-8\">\n <Button\n variant=\"circle\"\n onClick={() => moveSelectedItems(MOVE_TO_RIGHT)}\n disabled={selectedLeftCount === 0}\n >\n <Icon\n type=\"caret-right\"\n className=\"text-placeholder-text\"\n />\n </Button>\n\n <Button\n variant=\"circle\"\n onClick={() => moveSelectedItems(MOVE_TO_LEFT)}\n disabled={selectedRightCount === 0}\n >\n <Icon\n type=\"caret-left\"\n className=\"text-placeholder-text\"\n />\n </Button>\n </div>\n\n <TransferListCard\n items={rightItems}\n selectedSet={selectedSet}\n allCompleted={allCompleted}\n onSelectItem={onSelectItem}\n onMoveItem={moveToLeft}\n direction=\"left\"\n headerButton={{\n icon: \"caret-left\",\n onClick: () => allMoveSelectedItems(MOVE_TO_LEFT),\n disabled: rightItems.length === 0,\n }}\n showFooterIcons\n emptyText=\"В ожидании заполнения\"\n />\n </div>\n );\n};\n"],"names":["MOVE_TO_LEFT","MOVE_TO_RIGHT","TransferList","list","onChange","leftItems","useMemo","i","rightItems","selectedIds","setSelectedIds","useState","selectedSet","leftIdSet","item","rightIdSet","selectedLeftCount","id","selectedRightCount","allCompleted","onSelectItem","useCallback","prev","itemId","moveSelectedItems","move","ids","resolvedIds","idsToMoveSet","newData","allMoveSelectedItems","moveToRight","moveToLeft","jsxs","jsx","TransferListCard","Button","Icon"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime");require("@radix-ui/react-accessible-icon");require("@radix-ui/react-accordion");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-aspect-ratio");require("@radix-ui/react-avatar");require("@radix-ui/react-checkbox");require("@radix-ui/react-collapsible");require("@radix-ui/react-context-menu");require("@radix-ui/react-dialog");require("@radix-ui/react-direction");const C=require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-form");require("@radix-ui/react-hover-card");require("@radix-ui/react-label");require("@radix-ui/react-menubar");require("@radix-ui/react-navigation-menu");require("@radix-ui/react-one-time-password-field");require("@radix-ui/react-password-toggle-field");require("@radix-ui/react-popover");require("@radix-ui/react-portal");require("@radix-ui/react-progress");require("@radix-ui/react-radio-group");require("@radix-ui/react-scroll-area");require("@radix-ui/react-select");require("@radix-ui/react-separator");require("@radix-ui/react-slider");require("@radix-ui/react-slot");require("@radix-ui/react-switch");require("@radix-ui/react-tabs");require("@radix-ui/react-toast");require("@radix-ui/react-toggle");require("@radix-ui/react-toggle-group");require("@radix-ui/react-toolbar");require("@radix-ui/react-tooltip");require("@radix-ui/react-visually-hidden");const p=require("./components-ui-icon-icon.cjs");require("brd-phosphor-strokes-icons/icons");const t=require("./lib-utils.cjs"),d=require("./components-ui-dropdown-menu-dropdown-menu.styles.cjs");function D(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const
|
|
2
|
-
data-[highlighted]:bg-transparent`,e.alert&&"text-error-text"),onSelect:l=>{if(e.readOnly){l.preventDefault();return}e.onSelect?.(),r?.(e)},children:[u,n.jsx("span",{className:t.cn(d.dropdownMenuItemTextClassName,e.readOnly&&d.dropdownMenuReadonlyItemTextClassName),children:e.label}),e.shortcut&&!e.readOnly?n.jsx("span",{className:d.dropdownMenuShortcutClassName,children:e.shortcut}):null]},
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime");require("@radix-ui/react-accessible-icon");require("@radix-ui/react-accordion");require("@radix-ui/react-alert-dialog");require("@radix-ui/react-aspect-ratio");require("@radix-ui/react-avatar");require("@radix-ui/react-checkbox");require("@radix-ui/react-collapsible");require("@radix-ui/react-context-menu");require("@radix-ui/react-dialog");require("@radix-ui/react-direction");const C=require("@radix-ui/react-dropdown-menu");require("@radix-ui/react-form");require("@radix-ui/react-hover-card");require("@radix-ui/react-label");require("@radix-ui/react-menubar");require("@radix-ui/react-navigation-menu");require("@radix-ui/react-one-time-password-field");require("@radix-ui/react-password-toggle-field");require("@radix-ui/react-popover");require("@radix-ui/react-portal");require("@radix-ui/react-progress");require("@radix-ui/react-radio-group");require("@radix-ui/react-scroll-area");require("@radix-ui/react-select");require("@radix-ui/react-separator");require("@radix-ui/react-slider");require("@radix-ui/react-slot");require("@radix-ui/react-switch");require("@radix-ui/react-tabs");require("@radix-ui/react-toast");require("@radix-ui/react-toggle");require("@radix-ui/react-toggle-group");require("@radix-ui/react-toolbar");require("@radix-ui/react-tooltip");require("@radix-ui/react-visually-hidden");const p=require("./components-ui-icon-icon.cjs");require("brd-phosphor-strokes-icons/icons");const t=require("./lib-utils.cjs"),d=require("./components-ui-dropdown-menu-dropdown-menu.styles.cjs");function D(e){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const u=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(r,s,u.get?u:{enumerable:!0,get:()=>e[s]})}}return r.default=e,Object.freeze(r)}const a=D(C);function w({...e}){return n.jsx(a.Root,{"data-slot":"dropdown-menu",...e})}function h({...e}){return n.jsx(a.Trigger,{"data-slot":"dropdown-menu-trigger",...e})}function x({className:e,sideOffset:r=4,align:s="end",...u}){return n.jsx(a.Portal,{children:n.jsx(a.Content,{"data-slot":"dropdown-menu-content",sideOffset:r,align:s,className:t.cn(d.dropdownMenuContentClassName,e),...u})})}function b({className:e,...r}){return n.jsx(a.Item,{"data-slot":"dropdown-menu-item",className:t.cn(d.dropdownMenuItemClassName,e),...r})}function j({className:e,children:r,checked:s,itemIndicator:u,closeOnSelect:l=!0,onSelect:o,...c}){const N=u!==null;return n.jsxs(a.CheckboxItem,{"data-slot":"dropdown-menu-checkbox-item",className:t.cn(d.dropdownMenuItemClassName,"border-none",e),checked:s,onSelect:i=>{o?.(i),!l&&!i.defaultPrevented&&i.preventDefault()},...c,children:[N&&n.jsx(a.ItemIndicator,{children:u??n.jsx(p.Icon,{type:"check",size:"small",className:d.dropdownMenuIconClassName})}),r]})}function y({trigger:e,items:r,onItemCheckedChange:s,contentProps:u,keepOpenOnItemSelect:l=!0}){return n.jsxs(w,{children:[n.jsx(h,{asChild:!0,children:e}),n.jsx(x,{...u,children:r.map(o=>n.jsx(j,{checked:o.checked,disabled:o.disabled,className:t.cn(o.className,o.checked&&o.checkedClassName),textValue:o.textValue,itemIndicator:o.itemIndicator,closeOnSelect:!l,onCheckedChange:c=>s(o.key,c===!0),children:n.jsxs("div",{className:t.cn("flex w-full items-center gap-2",(o.endAdornment||o.checkedEndAdornment)&&"justify-between"),children:[n.jsx("span",{children:o.label}),o.checked?o.checkedEndAdornment??o.endAdornment:o.endAdornment]})},o.key))})]})}function M({className:e,...r}){return n.jsx(a.Label,{"data-slot":"dropdown-menu-label",className:t.cn(d.dropdownMenuLabelClassName,e),...r})}function f({className:e,...r}){return n.jsx(a.Separator,{"data-slot":"dropdown-menu-separator",className:t.cn(d.dropdownMenuSeparatorClassName,e),...r})}function q({className:e,...r}){return n.jsx(a.SubTrigger,{"data-slot":"dropdown-menu-sub-trigger",className:t.cn(d.dropdownMenuSubTriggerClassName,e),...r})}function g({className:e,sideOffset:r=4,...s}){return n.jsx(a.Portal,{children:n.jsx(a.SubContent,{"data-slot":"dropdown-menu-sub-content",sideOffset:r,className:t.cn(d.dropdownMenuContentClassName,e),...s})})}function I(e){return e.icon?n.jsx("span",{className:d.dropdownMenuIconClassName,children:e.icon}):e.iconType?n.jsx(p.Icon,{type:e.iconType,className:t.cn(d.dropdownMenuIconClassName,e.alert&&"text-error-text")}):null}function m(e,r){const s=e.id??e.type+("label"in e?e.label:"");if(e.type==="separator")return n.jsx(f,{},s);if(e.type==="label")return n.jsx(M,{children:e.label},s);const u=e.readOnly?null:I(e);return e.children?.length?n.jsxs(a.Sub,{children:[n.jsxs(q,{disabled:e.disabled,children:[n.jsxs("span",{className:"flex items-center gap-2",children:[u,n.jsx("span",{children:e.label})]}),n.jsx(p.Icon,{type:"caret-right",size:"small",className:d.dropdownMenuIconClassName})]}),n.jsx(g,{children:e.children.map(l=>m(l,r))})]},s):n.jsxs(b,{disabled:e.disabled,className:t.cn(e.readOnly&&`pointer-events-none cursor-default justify-center
|
|
2
|
+
data-[highlighted]:bg-transparent`,e.alert&&"text-error-text"),onSelect:l=>{if(e.readOnly){l.preventDefault();return}e.onSelect?.(),r?.(e)},children:[u,n.jsx("span",{className:t.cn(d.dropdownMenuItemTextClassName,e.readOnly&&d.dropdownMenuReadonlyItemTextClassName),children:e.label}),e.shortcut&&!e.readOnly?n.jsx("span",{className:d.dropdownMenuShortcutClassName,children:e.shortcut}):null]},s)}function S({trigger:e,items:r,onAction:s,contentProps:u,open:l,onOpenChange:o}){return n.jsxs(w,{open:l,onOpenChange:o,children:[n.jsx(h,{asChild:!0,children:e}),n.jsx(x,{...u,children:r.map(c=>m(c,s))})]})}exports.DropdownMenuPrimitive=a;exports.CheckboxDropdownMenu=y;exports.ConfigurableDropdownMenu=S;exports.DropdownMenu=w;exports.DropdownMenuCheckboxItem=j;exports.DropdownMenuContent=x;exports.DropdownMenuItem=b;exports.DropdownMenuLabel=M;exports.DropdownMenuSeparator=f;exports.DropdownMenuSubContent=g;exports.DropdownMenuSubTrigger=q;exports.DropdownMenuTrigger=h;
|
|
3
3
|
//# sourceMappingURL=components-ui-dropdown-menu-dropdown-menu.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-ui-dropdown-menu-dropdown-menu.cjs","sources":["../src/components/ui/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport type { ComponentPropsWithoutRef, ComponentRef, ReactNode, Ref } from \"react\";\n\nimport type { IconType } from \"@/components/ui/icon\";\nimport { Icon } from \"@/components/ui/icon\";\nimport { cn } from \"@/lib/utils\";\nimport {\n dropdownMenuContentClassName,\n dropdownMenuIconClassName,\n dropdownMenuItemClassName,\n dropdownMenuItemTextClassName,\n dropdownMenuLabelClassName,\n dropdownMenuReadonlyItemTextClassName,\n dropdownMenuSeparatorClassName,\n dropdownMenuShortcutClassName,\n dropdownMenuSubTriggerClassName,\n} from \"./dropdown-menu.styles\";\n\ntype DropdownMenuRef = ComponentRef<typeof DropdownMenuPrimitive.Root>;\ntype DropdownMenuProps = ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> & {\n ref?: Ref<DropdownMenuRef>;\n};\n\ntype DropdownMenuTriggerRef = ComponentRef<typeof DropdownMenuPrimitive.Trigger>;\ntype DropdownMenuTriggerProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Trigger\n> & {\n ref?: Ref<DropdownMenuTriggerRef>;\n};\n\ntype DropdownMenuContentRef = ComponentRef<typeof DropdownMenuPrimitive.Content>;\ntype DropdownMenuContentProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Content\n> & {\n ref?: Ref<DropdownMenuContentRef>;\n};\n\ntype DropdownMenuItemRef = ComponentRef<typeof DropdownMenuPrimitive.Item>;\ntype DropdownMenuItemProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Item\n> & {\n ref?: Ref<DropdownMenuItemRef>;\n};\n\ntype DropdownMenuCheckboxItemRef = ComponentRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n>;\ntype DropdownMenuCheckboxItemProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n> & {\n ref?: Ref<DropdownMenuCheckboxItemRef>;\n itemIndicator?: ReactNode;\n closeOnSelect?: boolean;\n};\n\ntype DropdownMenuLabelRef = ComponentRef<typeof DropdownMenuPrimitive.Label>;\ntype DropdownMenuLabelProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Label\n> & {\n ref?: Ref<DropdownMenuLabelRef>;\n};\n\ntype DropdownMenuSeparatorRef = ComponentRef<typeof DropdownMenuPrimitive.Separator>;\ntype DropdownMenuSeparatorProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Separator\n> & {\n ref?: Ref<DropdownMenuSeparatorRef>;\n};\n\ntype DropdownMenuSubTriggerRef = ComponentRef<typeof DropdownMenuPrimitive.SubTrigger>;\ntype DropdownMenuSubTriggerProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubTrigger\n> & {\n ref?: Ref<DropdownMenuSubTriggerRef>;\n};\n\ntype DropdownMenuSubContentRef = ComponentRef<typeof DropdownMenuPrimitive.SubContent>;\ntype DropdownMenuSubContentProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubContent\n> & {\n ref?: Ref<DropdownMenuSubContentRef>;\n};\n\ntype DropdownMenuCheckboxOption = {\n key: string;\n label: ReactNode;\n checked: boolean;\n disabled?: boolean;\n className?: string;\n checkedClassName?: string;\n textValue?: string;\n itemIndicator?: ReactNode;\n endAdornment?: ReactNode;\n checkedEndAdornment?: ReactNode;\n};\n\ntype CheckboxDropdownMenuProps = {\n trigger: ReactNode;\n items: DropdownMenuCheckboxOption[];\n onItemCheckedChange: (key: string, checked: boolean) => void;\n contentProps?: Omit<DropdownMenuContentProps, \"children\">;\n keepOpenOnItemSelect?: boolean;\n};\n\nfunction DropdownMenu({ ...props }: DropdownMenuProps) {\n return (\n <DropdownMenuPrimitive.Root\n data-slot=\"dropdown-menu\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuTrigger({ ...props }: DropdownMenuTriggerProps) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n align = \"end\",\n ...props\n}: DropdownMenuContentProps) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n align={align}\n className={cn(dropdownMenuContentClassName, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuItem({ className, ...props }: DropdownMenuItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n className={cn(dropdownMenuItemClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n itemIndicator,\n closeOnSelect = true,\n onSelect,\n ...props\n}: DropdownMenuCheckboxItemProps) {\n const shouldRenderIndicator = itemIndicator !== null;\n\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(dropdownMenuItemClassName, \"border-none\", className)}\n checked={checked}\n onSelect={(event) => {\n onSelect?.(event);\n\n if (!closeOnSelect && !event.defaultPrevented) {\n event.preventDefault();\n }\n }}\n {...props}\n >\n {shouldRenderIndicator && (\n <DropdownMenuPrimitive.ItemIndicator>\n {itemIndicator ?? (\n <Icon\n type=\"check\"\n size=\"small\"\n className={dropdownMenuIconClassName}\n />\n )}\n </DropdownMenuPrimitive.ItemIndicator>\n )}\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction CheckboxDropdownMenu({\n trigger,\n items,\n onItemCheckedChange,\n contentProps,\n keepOpenOnItemSelect = true,\n}: CheckboxDropdownMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n <DropdownMenuContent {...contentProps}>\n {items.map((item) => (\n <DropdownMenuCheckboxItem\n key={item.key}\n checked={item.checked}\n disabled={item.disabled}\n className={cn(item.className, item.checked && item.checkedClassName)}\n textValue={item.textValue}\n itemIndicator={item.itemIndicator}\n closeOnSelect={!keepOpenOnItemSelect}\n onCheckedChange={(checked) => onItemCheckedChange(item.key, checked === true)}\n >\n <div\n className={cn(\n \"flex w-full items-center gap-2\",\n (item.endAdornment || item.checkedEndAdornment) && \"justify-between\",\n )}\n >\n <span>{item.label}</span>\n {item.checked\n ? (item.checkedEndAdornment ?? item.endAdornment)\n : item.endAdornment}\n </div>\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nfunction DropdownMenuLabel({ className, ...props }: DropdownMenuLabelProps) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n className={cn(dropdownMenuLabelClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: DropdownMenuSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(dropdownMenuSeparatorClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSubTrigger({ className, ...props }: DropdownMenuSubTriggerProps) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(dropdownMenuSubTriggerClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n sideOffset = 4,\n ...props\n}: DropdownMenuSubContentProps) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n sideOffset={sideOffset}\n className={cn(dropdownMenuContentClassName, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\ntype DropdownMenuConfigBase = {\n id?: string;\n disabled?: boolean;\n readOnly?: boolean;\n};\n\ntype DropdownMenuConfigLabel = DropdownMenuConfigBase & {\n type: \"label\";\n label: string;\n};\n\ntype DropdownMenuConfigSeparator = DropdownMenuConfigBase & {\n type: \"separator\";\n};\n\ntype DropdownMenuConfigItem = DropdownMenuConfigBase & {\n type?: \"item\";\n label: string;\n icon?: ReactNode;\n iconType?: IconType;\n shortcut?: string;\n alert?: boolean;\n children?: DropdownMenuConfigNode[];\n onSelect?: () => void;\n};\n\ntype DropdownMenuConfigNode =\n | DropdownMenuConfigLabel\n | DropdownMenuConfigSeparator\n | DropdownMenuConfigItem;\n\ntype ConfigurableDropdownMenuProps = {\n trigger: ReactNode;\n items: DropdownMenuConfigNode[];\n onAction?: (item: DropdownMenuConfigItem) => void;\n contentProps?: Omit<DropdownMenuContentProps, \"children\">;\n};\n\nfunction renderLeadingIcon(item: DropdownMenuConfigItem) {\n if (item.icon) {\n return <span className={dropdownMenuIconClassName}>{item.icon}</span>;\n }\n\n if (item.iconType) {\n return (\n <Icon\n type={item.iconType}\n className={cn(dropdownMenuIconClassName, item.alert && \"text-error-text\")}\n />\n );\n }\n\n return null;\n}\n\nfunction renderConfigNode(\n item: DropdownMenuConfigNode,\n onAction?: (item: DropdownMenuConfigItem) => void,\n) {\n const key = item.id ?? item.type + (\"label\" in item ? item.label : \"\");\n\n if (item.type === \"separator\") {\n return <DropdownMenuSeparator key={key} />;\n }\n\n if (item.type === \"label\") {\n return <DropdownMenuLabel key={key}>{item.label}</DropdownMenuLabel>;\n }\n\n const iconNode = item.readOnly ? null : renderLeadingIcon(item);\n\n // TODO: добавить передачу пропсов на цвет и стили\n if (item.children?.length) {\n return (\n <DropdownMenuPrimitive.Sub key={key}>\n <DropdownMenuSubTrigger disabled={item.disabled}>\n <span className=\"flex items-center gap-2\">\n {iconNode}\n <span>{item.label}</span>\n </span>\n <Icon\n type=\"caret-right\"\n size=\"small\"\n className={dropdownMenuIconClassName}\n />\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n {item.children.map((child) => renderConfigNode(child, onAction))}\n </DropdownMenuSubContent>\n </DropdownMenuPrimitive.Sub>\n );\n }\n\n return (\n <DropdownMenuItem\n key={key}\n disabled={item.disabled}\n className={cn(\n item.readOnly &&\n `pointer-events-none cursor-default justify-center\n data-[highlighted]:bg-transparent`,\n item.alert && \"text-error-text\",\n )}\n onSelect={(event) => {\n if (item.readOnly) {\n event.preventDefault();\n return;\n }\n\n item.onSelect?.();\n onAction?.(item);\n }}\n >\n {iconNode}\n <span\n className={cn(\n dropdownMenuItemTextClassName,\n item.readOnly && dropdownMenuReadonlyItemTextClassName,\n )}\n >\n {item.label}\n </span>\n {item.shortcut && !item.readOnly ? (\n <span className={dropdownMenuShortcutClassName}>{item.shortcut}</span>\n ) : null}\n </DropdownMenuItem>\n );\n}\n\nfunction ConfigurableDropdownMenu({\n trigger,\n items,\n onAction,\n contentProps,\n}: ConfigurableDropdownMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n <DropdownMenuContent {...contentProps}>\n {items.map((item) => renderConfigNode(item, onAction))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nexport {\n CheckboxDropdownMenu,\n ConfigurableDropdownMenu,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPrimitive,\n DropdownMenuSeparator,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n\nexport type {\n CheckboxDropdownMenuProps,\n ConfigurableDropdownMenuProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuCheckboxOption,\n DropdownMenuConfigItem,\n DropdownMenuConfigLabel,\n DropdownMenuConfigNode,\n DropdownMenuConfigSeparator,\n DropdownMenuContentProps,\n DropdownMenuItemProps,\n DropdownMenuLabelProps,\n DropdownMenuProps,\n DropdownMenuSeparatorProps,\n DropdownMenuSubContentProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuTriggerProps,\n};\n"],"names":["DropdownMenu","props","jsx","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuContent","className","sideOffset","align","cn","dropdownMenuContentClassName","DropdownMenuItem","dropdownMenuItemClassName","DropdownMenuCheckboxItem","children","checked","itemIndicator","closeOnSelect","onSelect","shouldRenderIndicator","jsxs","event","Icon","dropdownMenuIconClassName","CheckboxDropdownMenu","trigger","items","onItemCheckedChange","contentProps","keepOpenOnItemSelect","item","DropdownMenuLabel","dropdownMenuLabelClassName","DropdownMenuSeparator","dropdownMenuSeparatorClassName","DropdownMenuSubTrigger","dropdownMenuSubTriggerClassName","DropdownMenuSubContent","renderLeadingIcon","renderConfigNode","onAction","key","iconNode","child","dropdownMenuItemTextClassName","dropdownMenuReadonlyItemTextClassName","dropdownMenuShortcutClassName","ConfigurableDropdownMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components-ui-dropdown-menu-dropdown-menu.cjs","sources":["../src/components/ui/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport type { ComponentPropsWithoutRef, ComponentRef, ReactNode, Ref } from \"react\";\n\nimport type { IconType } from \"@/components/ui/icon\";\nimport { Icon } from \"@/components/ui/icon\";\nimport { cn } from \"@/lib/utils\";\nimport {\n dropdownMenuContentClassName,\n dropdownMenuIconClassName,\n dropdownMenuItemClassName,\n dropdownMenuItemTextClassName,\n dropdownMenuLabelClassName,\n dropdownMenuReadonlyItemTextClassName,\n dropdownMenuSeparatorClassName,\n dropdownMenuShortcutClassName,\n dropdownMenuSubTriggerClassName,\n} from \"./dropdown-menu.styles\";\n\ntype DropdownMenuRef = ComponentRef<typeof DropdownMenuPrimitive.Root>;\ntype DropdownMenuProps = ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> & {\n ref?: Ref<DropdownMenuRef>;\n};\n\ntype DropdownMenuTriggerRef = ComponentRef<typeof DropdownMenuPrimitive.Trigger>;\ntype DropdownMenuTriggerProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Trigger\n> & {\n ref?: Ref<DropdownMenuTriggerRef>;\n};\n\ntype DropdownMenuContentRef = ComponentRef<typeof DropdownMenuPrimitive.Content>;\ntype DropdownMenuContentProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Content\n> & {\n ref?: Ref<DropdownMenuContentRef>;\n};\n\ntype DropdownMenuItemRef = ComponentRef<typeof DropdownMenuPrimitive.Item>;\ntype DropdownMenuItemProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Item\n> & {\n ref?: Ref<DropdownMenuItemRef>;\n};\n\ntype DropdownMenuCheckboxItemRef = ComponentRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n>;\ntype DropdownMenuCheckboxItemProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n> & {\n ref?: Ref<DropdownMenuCheckboxItemRef>;\n itemIndicator?: ReactNode;\n closeOnSelect?: boolean;\n};\n\ntype DropdownMenuLabelRef = ComponentRef<typeof DropdownMenuPrimitive.Label>;\ntype DropdownMenuLabelProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Label\n> & {\n ref?: Ref<DropdownMenuLabelRef>;\n};\n\ntype DropdownMenuSeparatorRef = ComponentRef<typeof DropdownMenuPrimitive.Separator>;\ntype DropdownMenuSeparatorProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Separator\n> & {\n ref?: Ref<DropdownMenuSeparatorRef>;\n};\n\ntype DropdownMenuSubTriggerRef = ComponentRef<typeof DropdownMenuPrimitive.SubTrigger>;\ntype DropdownMenuSubTriggerProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubTrigger\n> & {\n ref?: Ref<DropdownMenuSubTriggerRef>;\n};\n\ntype DropdownMenuSubContentRef = ComponentRef<typeof DropdownMenuPrimitive.SubContent>;\ntype DropdownMenuSubContentProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubContent\n> & {\n ref?: Ref<DropdownMenuSubContentRef>;\n};\n\ntype DropdownMenuCheckboxOption = {\n key: string;\n label: ReactNode;\n checked: boolean;\n disabled?: boolean;\n className?: string;\n checkedClassName?: string;\n textValue?: string;\n itemIndicator?: ReactNode;\n endAdornment?: ReactNode;\n checkedEndAdornment?: ReactNode;\n};\n\ntype CheckboxDropdownMenuProps = {\n trigger: ReactNode;\n items: DropdownMenuCheckboxOption[];\n onItemCheckedChange: (key: string, checked: boolean) => void;\n contentProps?: Omit<DropdownMenuContentProps, \"children\">;\n keepOpenOnItemSelect?: boolean;\n};\n\nfunction DropdownMenu({ ...props }: DropdownMenuProps) {\n return (\n <DropdownMenuPrimitive.Root\n data-slot=\"dropdown-menu\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuTrigger({ ...props }: DropdownMenuTriggerProps) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n align = \"end\",\n ...props\n}: DropdownMenuContentProps) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n align={align}\n className={cn(dropdownMenuContentClassName, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuItem({ className, ...props }: DropdownMenuItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n className={cn(dropdownMenuItemClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n itemIndicator,\n closeOnSelect = true,\n onSelect,\n ...props\n}: DropdownMenuCheckboxItemProps) {\n const shouldRenderIndicator = itemIndicator !== null;\n\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(dropdownMenuItemClassName, \"border-none\", className)}\n checked={checked}\n onSelect={(event) => {\n onSelect?.(event);\n\n if (!closeOnSelect && !event.defaultPrevented) {\n event.preventDefault();\n }\n }}\n {...props}\n >\n {shouldRenderIndicator && (\n <DropdownMenuPrimitive.ItemIndicator>\n {itemIndicator ?? (\n <Icon\n type=\"check\"\n size=\"small\"\n className={dropdownMenuIconClassName}\n />\n )}\n </DropdownMenuPrimitive.ItemIndicator>\n )}\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction CheckboxDropdownMenu({\n trigger,\n items,\n onItemCheckedChange,\n contentProps,\n keepOpenOnItemSelect = true,\n}: CheckboxDropdownMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n <DropdownMenuContent {...contentProps}>\n {items.map((item) => (\n <DropdownMenuCheckboxItem\n key={item.key}\n checked={item.checked}\n disabled={item.disabled}\n className={cn(item.className, item.checked && item.checkedClassName)}\n textValue={item.textValue}\n itemIndicator={item.itemIndicator}\n closeOnSelect={!keepOpenOnItemSelect}\n onCheckedChange={(checked) => onItemCheckedChange(item.key, checked === true)}\n >\n <div\n className={cn(\n \"flex w-full items-center gap-2\",\n (item.endAdornment || item.checkedEndAdornment) && \"justify-between\",\n )}\n >\n <span>{item.label}</span>\n {item.checked\n ? (item.checkedEndAdornment ?? item.endAdornment)\n : item.endAdornment}\n </div>\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nfunction DropdownMenuLabel({ className, ...props }: DropdownMenuLabelProps) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n className={cn(dropdownMenuLabelClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: DropdownMenuSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(dropdownMenuSeparatorClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSubTrigger({ className, ...props }: DropdownMenuSubTriggerProps) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(dropdownMenuSubTriggerClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n sideOffset = 4,\n ...props\n}: DropdownMenuSubContentProps) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n sideOffset={sideOffset}\n className={cn(dropdownMenuContentClassName, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\ntype DropdownMenuConfigBase = {\n id?: string;\n disabled?: boolean;\n readOnly?: boolean;\n};\n\ntype DropdownMenuConfigLabel = DropdownMenuConfigBase & {\n type: \"label\";\n label: string;\n};\n\ntype DropdownMenuConfigSeparator = DropdownMenuConfigBase & {\n type: \"separator\";\n};\n\ntype DropdownMenuConfigItem = DropdownMenuConfigBase & {\n type?: \"item\";\n label: string;\n icon?: ReactNode;\n iconType?: IconType;\n shortcut?: string;\n alert?: boolean;\n children?: DropdownMenuConfigNode[];\n className?: string;\n iconClassName?: string;\n labelClassName?: string;\n onSelect?: () => void;\n};\n\ntype DropdownMenuConfigNode =\n | DropdownMenuConfigLabel\n | DropdownMenuConfigSeparator\n | DropdownMenuConfigItem;\n\ntype ConfigurableDropdownMenuProps = {\n trigger: ReactNode;\n items: DropdownMenuConfigNode[];\n onAction?: (item: DropdownMenuConfigItem) => void;\n contentProps?: Omit<DropdownMenuContentProps, \"children\">;\n open?: DropdownMenuProps[\"open\"];\n onOpenChange?: DropdownMenuProps[\"onOpenChange\"];\n};\n\nfunction renderLeadingIcon(item: DropdownMenuConfigItem) {\n if (item.icon) {\n return <span className={dropdownMenuIconClassName}>{item.icon}</span>;\n }\n\n if (item.iconType) {\n return (\n <Icon\n type={item.iconType}\n className={cn(dropdownMenuIconClassName, item.alert && \"text-error-text\")}\n />\n );\n }\n\n return null;\n}\n\nfunction renderConfigNode(\n item: DropdownMenuConfigNode,\n onAction?: (item: DropdownMenuConfigItem) => void,\n) {\n const key = item.id ?? item.type + (\"label\" in item ? item.label : \"\");\n\n if (item.type === \"separator\") {\n return <DropdownMenuSeparator key={key} />;\n }\n\n if (item.type === \"label\") {\n return <DropdownMenuLabel key={key}>{item.label}</DropdownMenuLabel>;\n }\n\n const iconNode = item.readOnly ? null : renderLeadingIcon(item);\n\n // TODO: добавить передачу пропсов на цвет и стили\n if (item.children?.length) {\n return (\n <DropdownMenuPrimitive.Sub key={key}>\n <DropdownMenuSubTrigger disabled={item.disabled}>\n <span className=\"flex items-center gap-2\">\n {iconNode}\n <span>{item.label}</span>\n </span>\n <Icon\n type=\"caret-right\"\n size=\"small\"\n className={dropdownMenuIconClassName}\n />\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n {item.children.map((child) => renderConfigNode(child, onAction))}\n </DropdownMenuSubContent>\n </DropdownMenuPrimitive.Sub>\n );\n }\n\n return (\n <DropdownMenuItem\n key={key}\n disabled={item.disabled}\n className={cn(\n item.readOnly &&\n `pointer-events-none cursor-default justify-center\n data-[highlighted]:bg-transparent`,\n item.alert && \"text-error-text\",\n )}\n onSelect={(event) => {\n if (item.readOnly) {\n event.preventDefault();\n return;\n }\n\n item.onSelect?.();\n onAction?.(item);\n }}\n >\n {iconNode}\n <span\n className={cn(\n dropdownMenuItemTextClassName,\n item.readOnly && dropdownMenuReadonlyItemTextClassName,\n )}\n >\n {item.label}\n </span>\n {item.shortcut && !item.readOnly ? (\n <span className={dropdownMenuShortcutClassName}>{item.shortcut}</span>\n ) : null}\n </DropdownMenuItem>\n );\n}\n\nfunction ConfigurableDropdownMenu({\n trigger,\n items,\n onAction,\n contentProps,\n open,\n onOpenChange,\n}: ConfigurableDropdownMenuProps) {\n return (\n <DropdownMenu\n open={open}\n onOpenChange={onOpenChange}\n >\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n <DropdownMenuContent {...contentProps}>\n {items.map((item) => renderConfigNode(item, onAction))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nexport {\n CheckboxDropdownMenu,\n ConfigurableDropdownMenu,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPrimitive,\n DropdownMenuSeparator,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n\nexport type {\n CheckboxDropdownMenuProps,\n ConfigurableDropdownMenuProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuCheckboxOption,\n DropdownMenuConfigItem,\n DropdownMenuConfigLabel,\n DropdownMenuConfigNode,\n DropdownMenuConfigSeparator,\n DropdownMenuContentProps,\n DropdownMenuItemProps,\n DropdownMenuLabelProps,\n DropdownMenuProps,\n DropdownMenuSeparatorProps,\n DropdownMenuSubContentProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuTriggerProps,\n};\n"],"names":["DropdownMenu","props","jsx","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuContent","className","sideOffset","align","cn","dropdownMenuContentClassName","DropdownMenuItem","dropdownMenuItemClassName","DropdownMenuCheckboxItem","children","checked","itemIndicator","closeOnSelect","onSelect","shouldRenderIndicator","jsxs","event","Icon","dropdownMenuIconClassName","CheckboxDropdownMenu","trigger","items","onItemCheckedChange","contentProps","keepOpenOnItemSelect","item","DropdownMenuLabel","dropdownMenuLabelClassName","DropdownMenuSeparator","dropdownMenuSeparatorClassName","DropdownMenuSubTrigger","dropdownMenuSubTriggerClassName","DropdownMenuSubContent","renderLeadingIcon","renderConfigNode","onAction","key","iconNode","child","dropdownMenuItemTextClassName","dropdownMenuReadonlyItemTextClassName","dropdownMenuShortcutClassName","ConfigurableDropdownMenu","open","onOpenChange"],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@ import "@radix-ui/react-visually-hidden";
|
|
|
37
37
|
import { Icon as m } from "./components-ui-icon-icon.js";
|
|
38
38
|
import "brd-phosphor-strokes-icons/icons";
|
|
39
39
|
import { cn as d } from "./lib-utils.js";
|
|
40
|
-
import {
|
|
40
|
+
import { dropdownMenuContentClassName as h, dropdownMenuIconClassName as u, dropdownMenuReadonlyItemTextClassName as M, dropdownMenuItemTextClassName as y, dropdownMenuShortcutClassName as x, dropdownMenuSeparatorClassName as k, dropdownMenuLabelClassName as D, dropdownMenuSubTriggerClassName as I, dropdownMenuItemClassName as f } from "./components-ui-dropdown-menu-dropdown-menu.styles.js";
|
|
41
41
|
function b({ ...e }) {
|
|
42
42
|
return /* @__PURE__ */ r(
|
|
43
43
|
a.Root,
|
|
@@ -68,7 +68,7 @@ function N({
|
|
|
68
68
|
"data-slot": "dropdown-menu-content",
|
|
69
69
|
sideOffset: n,
|
|
70
70
|
align: t,
|
|
71
|
-
className: d(
|
|
71
|
+
className: d(h, e),
|
|
72
72
|
...l
|
|
73
73
|
}
|
|
74
74
|
) });
|
|
@@ -78,7 +78,7 @@ function S({ className: e, ...n }) {
|
|
|
78
78
|
a.Item,
|
|
79
79
|
{
|
|
80
80
|
"data-slot": "dropdown-menu-item",
|
|
81
|
-
className: d(
|
|
81
|
+
className: d(f, e),
|
|
82
82
|
...n
|
|
83
83
|
}
|
|
84
84
|
);
|
|
@@ -90,26 +90,26 @@ function T({
|
|
|
90
90
|
itemIndicator: l,
|
|
91
91
|
closeOnSelect: c = !0,
|
|
92
92
|
onSelect: o,
|
|
93
|
-
...
|
|
93
|
+
...p
|
|
94
94
|
}) {
|
|
95
95
|
const C = l !== null;
|
|
96
96
|
return /* @__PURE__ */ s(
|
|
97
97
|
a.CheckboxItem,
|
|
98
98
|
{
|
|
99
99
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
100
|
-
className: d(
|
|
100
|
+
className: d(f, "border-none", e),
|
|
101
101
|
checked: t,
|
|
102
102
|
onSelect: (i) => {
|
|
103
103
|
o?.(i), !c && !i.defaultPrevented && i.preventDefault();
|
|
104
104
|
},
|
|
105
|
-
...
|
|
105
|
+
...p,
|
|
106
106
|
children: [
|
|
107
107
|
C && /* @__PURE__ */ r(a.ItemIndicator, { children: l ?? /* @__PURE__ */ r(
|
|
108
108
|
m,
|
|
109
109
|
{
|
|
110
110
|
type: "check",
|
|
111
111
|
size: "small",
|
|
112
|
-
className:
|
|
112
|
+
className: u
|
|
113
113
|
}
|
|
114
114
|
) }),
|
|
115
115
|
n
|
|
@@ -135,7 +135,7 @@ function ge({
|
|
|
135
135
|
textValue: o.textValue,
|
|
136
136
|
itemIndicator: o.itemIndicator,
|
|
137
137
|
closeOnSelect: !c,
|
|
138
|
-
onCheckedChange: (
|
|
138
|
+
onCheckedChange: (p) => t(o.key, p === !0),
|
|
139
139
|
children: /* @__PURE__ */ s(
|
|
140
140
|
"div",
|
|
141
141
|
{
|
|
@@ -159,7 +159,7 @@ function O({ className: e, ...n }) {
|
|
|
159
159
|
a.Label,
|
|
160
160
|
{
|
|
161
161
|
"data-slot": "dropdown-menu-label",
|
|
162
|
-
className: d(
|
|
162
|
+
className: d(D, e),
|
|
163
163
|
...n
|
|
164
164
|
}
|
|
165
165
|
);
|
|
@@ -169,7 +169,7 @@ function j({ className: e, ...n }) {
|
|
|
169
169
|
a.Separator,
|
|
170
170
|
{
|
|
171
171
|
"data-slot": "dropdown-menu-separator",
|
|
172
|
-
className: d(
|
|
172
|
+
className: d(k, e),
|
|
173
173
|
...n
|
|
174
174
|
}
|
|
175
175
|
);
|
|
@@ -179,7 +179,7 @@ function v({ className: e, ...n }) {
|
|
|
179
179
|
a.SubTrigger,
|
|
180
180
|
{
|
|
181
181
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
182
|
-
className: d(
|
|
182
|
+
className: d(I, e),
|
|
183
183
|
...n
|
|
184
184
|
}
|
|
185
185
|
);
|
|
@@ -194,17 +194,17 @@ function A({
|
|
|
194
194
|
{
|
|
195
195
|
"data-slot": "dropdown-menu-sub-content",
|
|
196
196
|
sideOffset: n,
|
|
197
|
-
className: d(
|
|
197
|
+
className: d(h, e),
|
|
198
198
|
...t
|
|
199
199
|
}
|
|
200
200
|
) });
|
|
201
201
|
}
|
|
202
202
|
function L(e) {
|
|
203
|
-
return e.icon ? /* @__PURE__ */ r("span", { className:
|
|
203
|
+
return e.icon ? /* @__PURE__ */ r("span", { className: u, children: e.icon }) : e.iconType ? /* @__PURE__ */ r(
|
|
204
204
|
m,
|
|
205
205
|
{
|
|
206
206
|
type: e.iconType,
|
|
207
|
-
className: d(
|
|
207
|
+
className: d(u, e.alert && "text-error-text")
|
|
208
208
|
}
|
|
209
209
|
) : null;
|
|
210
210
|
}
|
|
@@ -226,7 +226,7 @@ function g(e, n) {
|
|
|
226
226
|
{
|
|
227
227
|
type: "caret-right",
|
|
228
228
|
size: "small",
|
|
229
|
-
className:
|
|
229
|
+
className: u
|
|
230
230
|
}
|
|
231
231
|
)
|
|
232
232
|
] }),
|
|
@@ -253,13 +253,13 @@ function g(e, n) {
|
|
|
253
253
|
"span",
|
|
254
254
|
{
|
|
255
255
|
className: d(
|
|
256
|
-
|
|
257
|
-
e.readOnly &&
|
|
256
|
+
y,
|
|
257
|
+
e.readOnly && M
|
|
258
258
|
),
|
|
259
259
|
children: e.label
|
|
260
260
|
}
|
|
261
261
|
),
|
|
262
|
-
e.shortcut && !e.readOnly ? /* @__PURE__ */ r("span", { className:
|
|
262
|
+
e.shortcut && !e.readOnly ? /* @__PURE__ */ r("span", { className: x, children: e.shortcut }) : null
|
|
263
263
|
]
|
|
264
264
|
},
|
|
265
265
|
t
|
|
@@ -269,12 +269,21 @@ function Ce({
|
|
|
269
269
|
trigger: e,
|
|
270
270
|
items: n,
|
|
271
271
|
onAction: t,
|
|
272
|
-
contentProps: l
|
|
272
|
+
contentProps: l,
|
|
273
|
+
open: c,
|
|
274
|
+
onOpenChange: o
|
|
273
275
|
}) {
|
|
274
|
-
return /* @__PURE__ */ s(
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
276
|
+
return /* @__PURE__ */ s(
|
|
277
|
+
b,
|
|
278
|
+
{
|
|
279
|
+
open: c,
|
|
280
|
+
onOpenChange: o,
|
|
281
|
+
children: [
|
|
282
|
+
/* @__PURE__ */ r(w, { asChild: !0, children: e }),
|
|
283
|
+
/* @__PURE__ */ r(N, { ...l, children: n.map((p) => g(p, t)) })
|
|
284
|
+
]
|
|
285
|
+
}
|
|
286
|
+
);
|
|
278
287
|
}
|
|
279
288
|
export {
|
|
280
289
|
ge as CheckboxDropdownMenu,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-ui-dropdown-menu-dropdown-menu.js","sources":["../src/components/ui/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport type { ComponentPropsWithoutRef, ComponentRef, ReactNode, Ref } from \"react\";\n\nimport type { IconType } from \"@/components/ui/icon\";\nimport { Icon } from \"@/components/ui/icon\";\nimport { cn } from \"@/lib/utils\";\nimport {\n dropdownMenuContentClassName,\n dropdownMenuIconClassName,\n dropdownMenuItemClassName,\n dropdownMenuItemTextClassName,\n dropdownMenuLabelClassName,\n dropdownMenuReadonlyItemTextClassName,\n dropdownMenuSeparatorClassName,\n dropdownMenuShortcutClassName,\n dropdownMenuSubTriggerClassName,\n} from \"./dropdown-menu.styles\";\n\ntype DropdownMenuRef = ComponentRef<typeof DropdownMenuPrimitive.Root>;\ntype DropdownMenuProps = ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> & {\n ref?: Ref<DropdownMenuRef>;\n};\n\ntype DropdownMenuTriggerRef = ComponentRef<typeof DropdownMenuPrimitive.Trigger>;\ntype DropdownMenuTriggerProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Trigger\n> & {\n ref?: Ref<DropdownMenuTriggerRef>;\n};\n\ntype DropdownMenuContentRef = ComponentRef<typeof DropdownMenuPrimitive.Content>;\ntype DropdownMenuContentProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Content\n> & {\n ref?: Ref<DropdownMenuContentRef>;\n};\n\ntype DropdownMenuItemRef = ComponentRef<typeof DropdownMenuPrimitive.Item>;\ntype DropdownMenuItemProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Item\n> & {\n ref?: Ref<DropdownMenuItemRef>;\n};\n\ntype DropdownMenuCheckboxItemRef = ComponentRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n>;\ntype DropdownMenuCheckboxItemProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n> & {\n ref?: Ref<DropdownMenuCheckboxItemRef>;\n itemIndicator?: ReactNode;\n closeOnSelect?: boolean;\n};\n\ntype DropdownMenuLabelRef = ComponentRef<typeof DropdownMenuPrimitive.Label>;\ntype DropdownMenuLabelProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Label\n> & {\n ref?: Ref<DropdownMenuLabelRef>;\n};\n\ntype DropdownMenuSeparatorRef = ComponentRef<typeof DropdownMenuPrimitive.Separator>;\ntype DropdownMenuSeparatorProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Separator\n> & {\n ref?: Ref<DropdownMenuSeparatorRef>;\n};\n\ntype DropdownMenuSubTriggerRef = ComponentRef<typeof DropdownMenuPrimitive.SubTrigger>;\ntype DropdownMenuSubTriggerProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubTrigger\n> & {\n ref?: Ref<DropdownMenuSubTriggerRef>;\n};\n\ntype DropdownMenuSubContentRef = ComponentRef<typeof DropdownMenuPrimitive.SubContent>;\ntype DropdownMenuSubContentProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubContent\n> & {\n ref?: Ref<DropdownMenuSubContentRef>;\n};\n\ntype DropdownMenuCheckboxOption = {\n key: string;\n label: ReactNode;\n checked: boolean;\n disabled?: boolean;\n className?: string;\n checkedClassName?: string;\n textValue?: string;\n itemIndicator?: ReactNode;\n endAdornment?: ReactNode;\n checkedEndAdornment?: ReactNode;\n};\n\ntype CheckboxDropdownMenuProps = {\n trigger: ReactNode;\n items: DropdownMenuCheckboxOption[];\n onItemCheckedChange: (key: string, checked: boolean) => void;\n contentProps?: Omit<DropdownMenuContentProps, \"children\">;\n keepOpenOnItemSelect?: boolean;\n};\n\nfunction DropdownMenu({ ...props }: DropdownMenuProps) {\n return (\n <DropdownMenuPrimitive.Root\n data-slot=\"dropdown-menu\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuTrigger({ ...props }: DropdownMenuTriggerProps) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n align = \"end\",\n ...props\n}: DropdownMenuContentProps) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n align={align}\n className={cn(dropdownMenuContentClassName, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuItem({ className, ...props }: DropdownMenuItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n className={cn(dropdownMenuItemClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n itemIndicator,\n closeOnSelect = true,\n onSelect,\n ...props\n}: DropdownMenuCheckboxItemProps) {\n const shouldRenderIndicator = itemIndicator !== null;\n\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(dropdownMenuItemClassName, \"border-none\", className)}\n checked={checked}\n onSelect={(event) => {\n onSelect?.(event);\n\n if (!closeOnSelect && !event.defaultPrevented) {\n event.preventDefault();\n }\n }}\n {...props}\n >\n {shouldRenderIndicator && (\n <DropdownMenuPrimitive.ItemIndicator>\n {itemIndicator ?? (\n <Icon\n type=\"check\"\n size=\"small\"\n className={dropdownMenuIconClassName}\n />\n )}\n </DropdownMenuPrimitive.ItemIndicator>\n )}\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction CheckboxDropdownMenu({\n trigger,\n items,\n onItemCheckedChange,\n contentProps,\n keepOpenOnItemSelect = true,\n}: CheckboxDropdownMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n <DropdownMenuContent {...contentProps}>\n {items.map((item) => (\n <DropdownMenuCheckboxItem\n key={item.key}\n checked={item.checked}\n disabled={item.disabled}\n className={cn(item.className, item.checked && item.checkedClassName)}\n textValue={item.textValue}\n itemIndicator={item.itemIndicator}\n closeOnSelect={!keepOpenOnItemSelect}\n onCheckedChange={(checked) => onItemCheckedChange(item.key, checked === true)}\n >\n <div\n className={cn(\n \"flex w-full items-center gap-2\",\n (item.endAdornment || item.checkedEndAdornment) && \"justify-between\",\n )}\n >\n <span>{item.label}</span>\n {item.checked\n ? (item.checkedEndAdornment ?? item.endAdornment)\n : item.endAdornment}\n </div>\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nfunction DropdownMenuLabel({ className, ...props }: DropdownMenuLabelProps) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n className={cn(dropdownMenuLabelClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: DropdownMenuSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(dropdownMenuSeparatorClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSubTrigger({ className, ...props }: DropdownMenuSubTriggerProps) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(dropdownMenuSubTriggerClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n sideOffset = 4,\n ...props\n}: DropdownMenuSubContentProps) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n sideOffset={sideOffset}\n className={cn(dropdownMenuContentClassName, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\ntype DropdownMenuConfigBase = {\n id?: string;\n disabled?: boolean;\n readOnly?: boolean;\n};\n\ntype DropdownMenuConfigLabel = DropdownMenuConfigBase & {\n type: \"label\";\n label: string;\n};\n\ntype DropdownMenuConfigSeparator = DropdownMenuConfigBase & {\n type: \"separator\";\n};\n\ntype DropdownMenuConfigItem = DropdownMenuConfigBase & {\n type?: \"item\";\n label: string;\n icon?: ReactNode;\n iconType?: IconType;\n shortcut?: string;\n alert?: boolean;\n children?: DropdownMenuConfigNode[];\n onSelect?: () => void;\n};\n\ntype DropdownMenuConfigNode =\n | DropdownMenuConfigLabel\n | DropdownMenuConfigSeparator\n | DropdownMenuConfigItem;\n\ntype ConfigurableDropdownMenuProps = {\n trigger: ReactNode;\n items: DropdownMenuConfigNode[];\n onAction?: (item: DropdownMenuConfigItem) => void;\n contentProps?: Omit<DropdownMenuContentProps, \"children\">;\n};\n\nfunction renderLeadingIcon(item: DropdownMenuConfigItem) {\n if (item.icon) {\n return <span className={dropdownMenuIconClassName}>{item.icon}</span>;\n }\n\n if (item.iconType) {\n return (\n <Icon\n type={item.iconType}\n className={cn(dropdownMenuIconClassName, item.alert && \"text-error-text\")}\n />\n );\n }\n\n return null;\n}\n\nfunction renderConfigNode(\n item: DropdownMenuConfigNode,\n onAction?: (item: DropdownMenuConfigItem) => void,\n) {\n const key = item.id ?? item.type + (\"label\" in item ? item.label : \"\");\n\n if (item.type === \"separator\") {\n return <DropdownMenuSeparator key={key} />;\n }\n\n if (item.type === \"label\") {\n return <DropdownMenuLabel key={key}>{item.label}</DropdownMenuLabel>;\n }\n\n const iconNode = item.readOnly ? null : renderLeadingIcon(item);\n\n // TODO: добавить передачу пропсов на цвет и стили\n if (item.children?.length) {\n return (\n <DropdownMenuPrimitive.Sub key={key}>\n <DropdownMenuSubTrigger disabled={item.disabled}>\n <span className=\"flex items-center gap-2\">\n {iconNode}\n <span>{item.label}</span>\n </span>\n <Icon\n type=\"caret-right\"\n size=\"small\"\n className={dropdownMenuIconClassName}\n />\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n {item.children.map((child) => renderConfigNode(child, onAction))}\n </DropdownMenuSubContent>\n </DropdownMenuPrimitive.Sub>\n );\n }\n\n return (\n <DropdownMenuItem\n key={key}\n disabled={item.disabled}\n className={cn(\n item.readOnly &&\n `pointer-events-none cursor-default justify-center\n data-[highlighted]:bg-transparent`,\n item.alert && \"text-error-text\",\n )}\n onSelect={(event) => {\n if (item.readOnly) {\n event.preventDefault();\n return;\n }\n\n item.onSelect?.();\n onAction?.(item);\n }}\n >\n {iconNode}\n <span\n className={cn(\n dropdownMenuItemTextClassName,\n item.readOnly && dropdownMenuReadonlyItemTextClassName,\n )}\n >\n {item.label}\n </span>\n {item.shortcut && !item.readOnly ? (\n <span className={dropdownMenuShortcutClassName}>{item.shortcut}</span>\n ) : null}\n </DropdownMenuItem>\n );\n}\n\nfunction ConfigurableDropdownMenu({\n trigger,\n items,\n onAction,\n contentProps,\n}: ConfigurableDropdownMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n <DropdownMenuContent {...contentProps}>\n {items.map((item) => renderConfigNode(item, onAction))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nexport {\n CheckboxDropdownMenu,\n ConfigurableDropdownMenu,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPrimitive,\n DropdownMenuSeparator,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n\nexport type {\n CheckboxDropdownMenuProps,\n ConfigurableDropdownMenuProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuCheckboxOption,\n DropdownMenuConfigItem,\n DropdownMenuConfigLabel,\n DropdownMenuConfigNode,\n DropdownMenuConfigSeparator,\n DropdownMenuContentProps,\n DropdownMenuItemProps,\n DropdownMenuLabelProps,\n DropdownMenuProps,\n DropdownMenuSeparatorProps,\n DropdownMenuSubContentProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuTriggerProps,\n};\n"],"names":["DropdownMenu","props","jsx","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuContent","className","sideOffset","align","cn","dropdownMenuContentClassName","DropdownMenuItem","dropdownMenuItemClassName","DropdownMenuCheckboxItem","children","checked","itemIndicator","closeOnSelect","onSelect","shouldRenderIndicator","jsxs","event","Icon","dropdownMenuIconClassName","CheckboxDropdownMenu","trigger","items","onItemCheckedChange","contentProps","keepOpenOnItemSelect","item","DropdownMenuLabel","dropdownMenuLabelClassName","DropdownMenuSeparator","dropdownMenuSeparatorClassName","DropdownMenuSubTrigger","dropdownMenuSubTriggerClassName","DropdownMenuSubContent","renderLeadingIcon","renderConfigNode","onAction","key","iconNode","child","dropdownMenuItemTextClassName","dropdownMenuReadonlyItemTextClassName","dropdownMenuShortcutClassName","ConfigurableDropdownMenu"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components-ui-dropdown-menu-dropdown-menu.js","sources":["../src/components/ui/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["import { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\";\nimport type { ComponentPropsWithoutRef, ComponentRef, ReactNode, Ref } from \"react\";\n\nimport type { IconType } from \"@/components/ui/icon\";\nimport { Icon } from \"@/components/ui/icon\";\nimport { cn } from \"@/lib/utils\";\nimport {\n dropdownMenuContentClassName,\n dropdownMenuIconClassName,\n dropdownMenuItemClassName,\n dropdownMenuItemTextClassName,\n dropdownMenuLabelClassName,\n dropdownMenuReadonlyItemTextClassName,\n dropdownMenuSeparatorClassName,\n dropdownMenuShortcutClassName,\n dropdownMenuSubTriggerClassName,\n} from \"./dropdown-menu.styles\";\n\ntype DropdownMenuRef = ComponentRef<typeof DropdownMenuPrimitive.Root>;\ntype DropdownMenuProps = ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root> & {\n ref?: Ref<DropdownMenuRef>;\n};\n\ntype DropdownMenuTriggerRef = ComponentRef<typeof DropdownMenuPrimitive.Trigger>;\ntype DropdownMenuTriggerProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Trigger\n> & {\n ref?: Ref<DropdownMenuTriggerRef>;\n};\n\ntype DropdownMenuContentRef = ComponentRef<typeof DropdownMenuPrimitive.Content>;\ntype DropdownMenuContentProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Content\n> & {\n ref?: Ref<DropdownMenuContentRef>;\n};\n\ntype DropdownMenuItemRef = ComponentRef<typeof DropdownMenuPrimitive.Item>;\ntype DropdownMenuItemProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Item\n> & {\n ref?: Ref<DropdownMenuItemRef>;\n};\n\ntype DropdownMenuCheckboxItemRef = ComponentRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n>;\ntype DropdownMenuCheckboxItemProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.CheckboxItem\n> & {\n ref?: Ref<DropdownMenuCheckboxItemRef>;\n itemIndicator?: ReactNode;\n closeOnSelect?: boolean;\n};\n\ntype DropdownMenuLabelRef = ComponentRef<typeof DropdownMenuPrimitive.Label>;\ntype DropdownMenuLabelProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Label\n> & {\n ref?: Ref<DropdownMenuLabelRef>;\n};\n\ntype DropdownMenuSeparatorRef = ComponentRef<typeof DropdownMenuPrimitive.Separator>;\ntype DropdownMenuSeparatorProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.Separator\n> & {\n ref?: Ref<DropdownMenuSeparatorRef>;\n};\n\ntype DropdownMenuSubTriggerRef = ComponentRef<typeof DropdownMenuPrimitive.SubTrigger>;\ntype DropdownMenuSubTriggerProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubTrigger\n> & {\n ref?: Ref<DropdownMenuSubTriggerRef>;\n};\n\ntype DropdownMenuSubContentRef = ComponentRef<typeof DropdownMenuPrimitive.SubContent>;\ntype DropdownMenuSubContentProps = ComponentPropsWithoutRef<\n typeof DropdownMenuPrimitive.SubContent\n> & {\n ref?: Ref<DropdownMenuSubContentRef>;\n};\n\ntype DropdownMenuCheckboxOption = {\n key: string;\n label: ReactNode;\n checked: boolean;\n disabled?: boolean;\n className?: string;\n checkedClassName?: string;\n textValue?: string;\n itemIndicator?: ReactNode;\n endAdornment?: ReactNode;\n checkedEndAdornment?: ReactNode;\n};\n\ntype CheckboxDropdownMenuProps = {\n trigger: ReactNode;\n items: DropdownMenuCheckboxOption[];\n onItemCheckedChange: (key: string, checked: boolean) => void;\n contentProps?: Omit<DropdownMenuContentProps, \"children\">;\n keepOpenOnItemSelect?: boolean;\n};\n\nfunction DropdownMenu({ ...props }: DropdownMenuProps) {\n return (\n <DropdownMenuPrimitive.Root\n data-slot=\"dropdown-menu\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuTrigger({ ...props }: DropdownMenuTriggerProps) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n align = \"end\",\n ...props\n}: DropdownMenuContentProps) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n align={align}\n className={cn(dropdownMenuContentClassName, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuItem({ className, ...props }: DropdownMenuItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n className={cn(dropdownMenuItemClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n itemIndicator,\n closeOnSelect = true,\n onSelect,\n ...props\n}: DropdownMenuCheckboxItemProps) {\n const shouldRenderIndicator = itemIndicator !== null;\n\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(dropdownMenuItemClassName, \"border-none\", className)}\n checked={checked}\n onSelect={(event) => {\n onSelect?.(event);\n\n if (!closeOnSelect && !event.defaultPrevented) {\n event.preventDefault();\n }\n }}\n {...props}\n >\n {shouldRenderIndicator && (\n <DropdownMenuPrimitive.ItemIndicator>\n {itemIndicator ?? (\n <Icon\n type=\"check\"\n size=\"small\"\n className={dropdownMenuIconClassName}\n />\n )}\n </DropdownMenuPrimitive.ItemIndicator>\n )}\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction CheckboxDropdownMenu({\n trigger,\n items,\n onItemCheckedChange,\n contentProps,\n keepOpenOnItemSelect = true,\n}: CheckboxDropdownMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n <DropdownMenuContent {...contentProps}>\n {items.map((item) => (\n <DropdownMenuCheckboxItem\n key={item.key}\n checked={item.checked}\n disabled={item.disabled}\n className={cn(item.className, item.checked && item.checkedClassName)}\n textValue={item.textValue}\n itemIndicator={item.itemIndicator}\n closeOnSelect={!keepOpenOnItemSelect}\n onCheckedChange={(checked) => onItemCheckedChange(item.key, checked === true)}\n >\n <div\n className={cn(\n \"flex w-full items-center gap-2\",\n (item.endAdornment || item.checkedEndAdornment) && \"justify-between\",\n )}\n >\n <span>{item.label}</span>\n {item.checked\n ? (item.checkedEndAdornment ?? item.endAdornment)\n : item.endAdornment}\n </div>\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nfunction DropdownMenuLabel({ className, ...props }: DropdownMenuLabelProps) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n className={cn(dropdownMenuLabelClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({ className, ...props }: DropdownMenuSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(dropdownMenuSeparatorClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSubTrigger({ className, ...props }: DropdownMenuSubTriggerProps) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n className={cn(dropdownMenuSubTriggerClassName, className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n sideOffset = 4,\n ...props\n}: DropdownMenuSubContentProps) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n sideOffset={sideOffset}\n className={cn(dropdownMenuContentClassName, className)}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\ntype DropdownMenuConfigBase = {\n id?: string;\n disabled?: boolean;\n readOnly?: boolean;\n};\n\ntype DropdownMenuConfigLabel = DropdownMenuConfigBase & {\n type: \"label\";\n label: string;\n};\n\ntype DropdownMenuConfigSeparator = DropdownMenuConfigBase & {\n type: \"separator\";\n};\n\ntype DropdownMenuConfigItem = DropdownMenuConfigBase & {\n type?: \"item\";\n label: string;\n icon?: ReactNode;\n iconType?: IconType;\n shortcut?: string;\n alert?: boolean;\n children?: DropdownMenuConfigNode[];\n className?: string;\n iconClassName?: string;\n labelClassName?: string;\n onSelect?: () => void;\n};\n\ntype DropdownMenuConfigNode =\n | DropdownMenuConfigLabel\n | DropdownMenuConfigSeparator\n | DropdownMenuConfigItem;\n\ntype ConfigurableDropdownMenuProps = {\n trigger: ReactNode;\n items: DropdownMenuConfigNode[];\n onAction?: (item: DropdownMenuConfigItem) => void;\n contentProps?: Omit<DropdownMenuContentProps, \"children\">;\n open?: DropdownMenuProps[\"open\"];\n onOpenChange?: DropdownMenuProps[\"onOpenChange\"];\n};\n\nfunction renderLeadingIcon(item: DropdownMenuConfigItem) {\n if (item.icon) {\n return <span className={dropdownMenuIconClassName}>{item.icon}</span>;\n }\n\n if (item.iconType) {\n return (\n <Icon\n type={item.iconType}\n className={cn(dropdownMenuIconClassName, item.alert && \"text-error-text\")}\n />\n );\n }\n\n return null;\n}\n\nfunction renderConfigNode(\n item: DropdownMenuConfigNode,\n onAction?: (item: DropdownMenuConfigItem) => void,\n) {\n const key = item.id ?? item.type + (\"label\" in item ? item.label : \"\");\n\n if (item.type === \"separator\") {\n return <DropdownMenuSeparator key={key} />;\n }\n\n if (item.type === \"label\") {\n return <DropdownMenuLabel key={key}>{item.label}</DropdownMenuLabel>;\n }\n\n const iconNode = item.readOnly ? null : renderLeadingIcon(item);\n\n // TODO: добавить передачу пропсов на цвет и стили\n if (item.children?.length) {\n return (\n <DropdownMenuPrimitive.Sub key={key}>\n <DropdownMenuSubTrigger disabled={item.disabled}>\n <span className=\"flex items-center gap-2\">\n {iconNode}\n <span>{item.label}</span>\n </span>\n <Icon\n type=\"caret-right\"\n size=\"small\"\n className={dropdownMenuIconClassName}\n />\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent>\n {item.children.map((child) => renderConfigNode(child, onAction))}\n </DropdownMenuSubContent>\n </DropdownMenuPrimitive.Sub>\n );\n }\n\n return (\n <DropdownMenuItem\n key={key}\n disabled={item.disabled}\n className={cn(\n item.readOnly &&\n `pointer-events-none cursor-default justify-center\n data-[highlighted]:bg-transparent`,\n item.alert && \"text-error-text\",\n )}\n onSelect={(event) => {\n if (item.readOnly) {\n event.preventDefault();\n return;\n }\n\n item.onSelect?.();\n onAction?.(item);\n }}\n >\n {iconNode}\n <span\n className={cn(\n dropdownMenuItemTextClassName,\n item.readOnly && dropdownMenuReadonlyItemTextClassName,\n )}\n >\n {item.label}\n </span>\n {item.shortcut && !item.readOnly ? (\n <span className={dropdownMenuShortcutClassName}>{item.shortcut}</span>\n ) : null}\n </DropdownMenuItem>\n );\n}\n\nfunction ConfigurableDropdownMenu({\n trigger,\n items,\n onAction,\n contentProps,\n open,\n onOpenChange,\n}: ConfigurableDropdownMenuProps) {\n return (\n <DropdownMenu\n open={open}\n onOpenChange={onOpenChange}\n >\n <DropdownMenuTrigger asChild>{trigger}</DropdownMenuTrigger>\n <DropdownMenuContent {...contentProps}>\n {items.map((item) => renderConfigNode(item, onAction))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nexport {\n CheckboxDropdownMenu,\n ConfigurableDropdownMenu,\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPrimitive,\n DropdownMenuSeparator,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n\nexport type {\n CheckboxDropdownMenuProps,\n ConfigurableDropdownMenuProps,\n DropdownMenuCheckboxItemProps,\n DropdownMenuCheckboxOption,\n DropdownMenuConfigItem,\n DropdownMenuConfigLabel,\n DropdownMenuConfigNode,\n DropdownMenuConfigSeparator,\n DropdownMenuContentProps,\n DropdownMenuItemProps,\n DropdownMenuLabelProps,\n DropdownMenuProps,\n DropdownMenuSeparatorProps,\n DropdownMenuSubContentProps,\n DropdownMenuSubTriggerProps,\n DropdownMenuTriggerProps,\n};\n"],"names":["DropdownMenu","props","jsx","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuContent","className","sideOffset","align","cn","dropdownMenuContentClassName","DropdownMenuItem","dropdownMenuItemClassName","DropdownMenuCheckboxItem","children","checked","itemIndicator","closeOnSelect","onSelect","shouldRenderIndicator","jsxs","event","Icon","dropdownMenuIconClassName","CheckboxDropdownMenu","trigger","items","onItemCheckedChange","contentProps","keepOpenOnItemSelect","item","DropdownMenuLabel","dropdownMenuLabelClassName","DropdownMenuSeparator","dropdownMenuSeparatorClassName","DropdownMenuSubTrigger","dropdownMenuSubTriggerClassName","DropdownMenuSubContent","renderLeadingIcon","renderConfigNode","onAction","key","iconNode","child","dropdownMenuItemTextClassName","dropdownMenuReadonlyItemTextClassName","dropdownMenuShortcutClassName","ConfigurableDropdownMenu","open","onOpenChange"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwGA,SAASA,EAAa,EAAE,GAAGC,KAA4B;AACrD,SACE,gBAAAC;AAAA,IAACC,EAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACT,GAAGF;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASG,EAAoB,EAAE,GAAGH,KAAmC;AACnE,SACE,gBAAAC;AAAA,IAACC,EAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACT,GAAGF;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAoB;AAAA,EAC3B,WAAAC;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,OAAAC,IAAQ;AAAA,EACR,GAAGP;AACL,GAA6B;AAC3B,SACE,gBAAAC,EAACC,EAAsB,QAAtB,EACC,UAAA,gBAAAD;AAAA,IAACC,EAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,YAAAI;AAAA,MACA,OAAAC;AAAA,MACA,WAAWC,EAAGC,GAA8BJ,CAAS;AAAA,MACpD,GAAGL;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;AAEA,SAASU,EAAiB,EAAE,WAAAL,GAAW,GAAGL,KAAgC;AACxE,SACE,gBAAAC;AAAA,IAACC,EAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,WAAWM,EAAGG,GAA2BN,CAAS;AAAA,MACjD,GAAGL;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASY,EAAyB;AAAA,EAChC,WAAAP;AAAA,EACA,UAAAQ;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,UAAAC;AAAA,EACA,GAAGjB;AACL,GAAkC;AAChC,QAAMkB,IAAwBH,MAAkB;AAEhD,SACE,gBAAAI;AAAA,IAACjB,EAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,WAAWM,EAAGG,GAA2B,eAAeN,CAAS;AAAA,MACjE,SAAAS;AAAA,MACA,UAAU,CAACM,MAAU;AACnB,QAAAH,IAAWG,CAAK,GAEZ,CAACJ,KAAiB,CAACI,EAAM,oBAC3BA,EAAM,eAAA;AAAA,MAEV;AAAA,MACC,GAAGpB;AAAA,MAEH,UAAA;AAAA,QAAAkB,KACC,gBAAAjB,EAACC,EAAsB,eAAtB,EACE,UAAAa,KACC,gBAAAd;AAAA,UAACoB;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,MAAK;AAAA,YACL,WAAWC;AAAA,UAAA;AAAA,QAAA,GAGjB;AAAA,QAEDT;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,SAASU,GAAqB;AAAA,EAC5B,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,qBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,sBAAAC,IAAuB;AACzB,GAA8B;AAC5B,2BACG7B,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAE,EAACE,GAAA,EAAoB,SAAO,IAAE,UAAAqB,GAAQ;AAAA,sBACrCpB,GAAA,EAAqB,GAAGuB,GACtB,UAAAF,EAAM,IAAI,CAACI,MACV,gBAAA5B;AAAA,MAACW;AAAA,MAAA;AAAA,QAEC,SAASiB,EAAK;AAAA,QACd,UAAUA,EAAK;AAAA,QACf,WAAWrB,EAAGqB,EAAK,WAAWA,EAAK,WAAWA,EAAK,gBAAgB;AAAA,QACnE,WAAWA,EAAK;AAAA,QAChB,eAAeA,EAAK;AAAA,QACpB,eAAe,CAACD;AAAA,QAChB,iBAAiB,CAACd,MAAYY,EAAoBG,EAAK,KAAKf,MAAY,EAAI;AAAA,QAE5E,UAAA,gBAAAK;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWX;AAAA,cACT;AAAA,eACCqB,EAAK,gBAAgBA,EAAK,wBAAwB;AAAA,YAAA;AAAA,YAGrD,UAAA;AAAA,cAAA,gBAAA5B,EAAC,QAAA,EAAM,YAAK,MAAA,CAAM;AAAA,cACjB4B,EAAK,UACDA,EAAK,uBAAuBA,EAAK,eAClCA,EAAK;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACX;AAAA,MAnBKA,EAAK;AAAA,IAAA,CAqBb,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;AAEA,SAASC,EAAkB,EAAE,WAAAzB,GAAW,GAAGL,KAAiC;AAC1E,SACE,gBAAAC;AAAA,IAACC,EAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,WAAWM,EAAGuB,GAA4B1B,CAAS;AAAA,MAClD,GAAGL;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASgC,EAAsB,EAAE,WAAA3B,GAAW,GAAGL,KAAqC;AAClF,SACE,gBAAAC;AAAA,IAACC,EAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,WAAWM,EAAGyB,GAAgC5B,CAAS;AAAA,MACtD,GAAGL;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASkC,EAAuB,EAAE,WAAA7B,GAAW,GAAGL,KAAsC;AACpF,SACE,gBAAAC;AAAA,IAACC,EAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,WAAWM,EAAG2B,GAAiC9B,CAAS;AAAA,MACvD,GAAGL;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASoC,EAAuB;AAAA,EAC9B,WAAA/B;AAAA,EACA,YAAAC,IAAa;AAAA,EACb,GAAGN;AACL,GAAgC;AAC9B,SACE,gBAAAC,EAACC,EAAsB,QAAtB,EACC,UAAA,gBAAAD;AAAA,IAACC,EAAsB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,YAAAI;AAAA,MACA,WAAWE,EAAGC,GAA8BJ,CAAS;AAAA,MACpD,GAAGL;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;AA6CA,SAASqC,EAAkBR,GAA8B;AACvD,SAAIA,EAAK,OACA,gBAAA5B,EAAC,QAAA,EAAK,WAAWqB,GAA4B,YAAK,MAAK,IAG5DO,EAAK,WAEL,gBAAA5B;AAAA,IAACoB;AAAA,IAAA;AAAA,MACC,MAAMQ,EAAK;AAAA,MACX,WAAWrB,EAAGc,GAA2BO,EAAK,SAAS,iBAAiB;AAAA,IAAA;AAAA,EAAA,IAKvE;AACT;AAEA,SAASS,EACPT,GACAU,GACA;AACA,QAAMC,IAAMX,EAAK,MAAMA,EAAK,QAAQ,WAAWA,IAAOA,EAAK,QAAQ;AAEnE,MAAIA,EAAK,SAAS;AAChB,WAAO,gBAAA5B,EAAC+B,OAA2BQ,CAAK;AAG1C,MAAIX,EAAK,SAAS;AAChB,WAAO,gBAAA5B,EAAC6B,GAAA,EAA6B,UAAAD,EAAK,MAAA,GAAXW,CAAiB;AAGlD,QAAMC,IAAWZ,EAAK,WAAW,OAAOQ,EAAkBR,CAAI;AAG9D,SAAIA,EAAK,UAAU,SAEf,gBAAAV,EAACjB,EAAsB,KAAtB,EACC,UAAA;AAAA,IAAA,gBAAAiB,EAACe,GAAA,EAAuB,UAAUL,EAAK,UACrC,UAAA;AAAA,MAAA,gBAAAV,EAAC,QAAA,EAAK,WAAU,2BACb,UAAA;AAAA,QAAAsB;AAAA,QACD,gBAAAxC,EAAC,QAAA,EAAM,UAAA4B,EAAK,MAAA,CAAM;AAAA,MAAA,GACpB;AAAA,MACA,gBAAA5B;AAAA,QAACoB;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,MAAK;AAAA,UACL,WAAWC;AAAA,QAAA;AAAA,MAAA;AAAA,IACb,GACF;AAAA,IACA,gBAAArB,EAACmC,GAAA,EACE,UAAAP,EAAK,SAAS,IAAI,CAACa,MAAUJ,EAAiBI,GAAOH,CAAQ,CAAC,EAAA,CACjE;AAAA,EAAA,EAAA,GAd8BC,CAehC,IAKF,gBAAArB;AAAA,IAACT;AAAA,IAAA;AAAA,MAEC,UAAUmB,EAAK;AAAA,MACf,WAAWrB;AAAA,QACTqB,EAAK,YACH;AAAA;AAAA,QAEFA,EAAK,SAAS;AAAA,MAAA;AAAA,MAEhB,UAAU,CAACT,MAAU;AACnB,YAAIS,EAAK,UAAU;AACjB,UAAAT,EAAM,eAAA;AACN;AAAA,QACF;AAEA,QAAAS,EAAK,WAAA,GACLU,IAAWV,CAAI;AAAA,MACjB;AAAA,MAEC,UAAA;AAAA,QAAAY;AAAA,QACD,gBAAAxC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWO;AAAA,cACTmC;AAAA,cACAd,EAAK,YAAYe;AAAA,YAAA;AAAA,YAGlB,UAAAf,EAAK;AAAA,UAAA;AAAA,QAAA;AAAA,QAEPA,EAAK,YAAY,CAACA,EAAK,WACtB,gBAAA5B,EAAC,QAAA,EAAK,WAAW4C,GAAgC,UAAAhB,EAAK,SAAA,CAAS,IAC7D;AAAA,MAAA;AAAA,IAAA;AAAA,IA7BCW;AAAA,EAAA;AAgCX;AAEA,SAASM,GAAyB;AAAA,EAChC,SAAAtB;AAAA,EACA,OAAAC;AAAA,EACA,UAAAc;AAAA,EACA,cAAAZ;AAAA,EACA,MAAAoB;AAAA,EACA,cAAAC;AACF,GAAkC;AAChC,SACE,gBAAA7B;AAAA,IAACpB;AAAA,IAAA;AAAA,MACC,MAAAgD;AAAA,MACA,cAAAC;AAAA,MAEA,UAAA;AAAA,QAAA,gBAAA/C,EAACE,GAAA,EAAoB,SAAO,IAAE,UAAAqB,GAAQ;AAAA,QACtC,gBAAAvB,EAACG,GAAA,EAAqB,GAAGuB,GACtB,UAAAF,EAAM,IAAI,CAACI,MAASS,EAAiBT,GAAMU,CAAQ,CAAC,EAAA,CACvD;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components-ui-input-input.cjs","sources":["../src/components/ui/input/input.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"components-ui-input-input.cjs","sources":["../src/components/ui/input/input.tsx"],"sourcesContent":["import { cn } from \"@/lib/utils\";\nimport { type VariantProps } from \"class-variance-authority\";\nimport type { ComponentPropsWithRef } from \"react\";\n\nimport { inputVariants } from \"./input.styles\";\n\ntype InputProps = ComponentPropsWithRef<\"input\"> &\n VariantProps<typeof inputVariants> & { className?: string };\n\nconst Input = ({ className, sizeInput, type, variant, ...props }: InputProps) => {\n return (\n <input\n data-slot=\"input\"\n type={type || \"text\"}\n className={cn(inputVariants({ variant, sizeInput }), className)}\n {...props}\n />\n );\n};\nexport { Input };\n"],"names":["Input","className","sizeInput","type","variant","props","jsx","cn","inputVariants"],"mappings":"gPASMA,EAAQ,CAAC,CAAE,UAAAC,EAAW,UAAAC,EAAW,KAAAC,EAAM,QAAAC,EAAS,GAAGC,KAErDC,EAAAA,IAAC,QAAA,CACC,YAAU,QACV,KAAMH,GAAQ,OACd,UAAWI,EAAAA,GAAGC,gBAAc,CAAE,QAAAJ,EAAS,UAAAF,CAAA,CAAW,EAAGD,CAAS,EAC7D,GAAGI,CAAA,CAAA"}
|