brd-ui-kit 0.1.88 → 0.1.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/approval-log.view-CZoufOXF.js +283 -0
  2. package/dist/approval-log.view-CZoufOXF.js.map +1 -0
  3. package/dist/approval-log.view-DC5xl6KF.cjs +5 -0
  4. package/dist/approval-log.view-DC5xl6KF.cjs.map +1 -0
  5. package/dist/brd-ui-kit.css +1 -1
  6. package/dist/components/approval-log/approval-log.d.ts +1 -1
  7. package/dist/components/approval-log/approval-log.view.d.ts +15 -0
  8. package/dist/components/forms/form-files-uploader.d.ts +1 -1
  9. package/dist/components/forms/form-input-password.d.ts +1 -1
  10. package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +6 -1
  11. package/dist/components-approval-log-approval-log.cjs +5 -6
  12. package/dist/components-approval-log-approval-log.cjs.map +1 -1
  13. package/dist/components-approval-log-approval-log.js +161 -268
  14. package/dist/components-approval-log-approval-log.js.map +1 -1
  15. package/dist/components-approval-log-approval-log.view.cjs +2 -0
  16. package/dist/components-approval-log-approval-log.view.cjs.map +1 -0
  17. package/dist/components-approval-log-approval-log.view.js +69 -0
  18. package/dist/components-approval-log-approval-log.view.js.map +1 -0
  19. package/dist/components-avatar-uploader-avatar-uploader.cjs +2 -2
  20. package/dist/components-avatar-uploader-avatar-uploader.cjs.map +1 -1
  21. package/dist/components-avatar-uploader-avatar-uploader.js +10 -11
  22. package/dist/components-avatar-uploader-avatar-uploader.js.map +1 -1
  23. package/dist/components-basic-avatar-basic-avatar.cjs +1 -3
  24. package/dist/components-basic-avatar-basic-avatar.cjs.map +1 -1
  25. package/dist/components-basic-avatar-basic-avatar.js +7 -69
  26. package/dist/components-basic-avatar-basic-avatar.js.map +1 -1
  27. package/dist/components-basic-avatar.cjs +1 -1
  28. package/dist/components-basic-avatar.js +1 -1
  29. package/dist/components-checkbox-group-checkbox-group.cjs +1 -1
  30. package/dist/components-checkbox-group-checkbox-group.cjs.map +1 -1
  31. package/dist/components-checkbox-group-checkbox-group.js +1 -1
  32. package/dist/components-forms-form-files-uploader.cjs +1 -12
  33. package/dist/components-forms-form-files-uploader.cjs.map +1 -1
  34. package/dist/components-forms-form-files-uploader.js +27 -3045
  35. package/dist/components-forms-form-files-uploader.js.map +1 -1
  36. package/dist/components-forms-form-input-password.cjs +1 -29
  37. package/dist/components-forms-form-input-password.cjs.map +1 -1
  38. package/dist/components-forms-form-input-password.js +29 -363
  39. package/dist/components-forms-form-input-password.js.map +1 -1
  40. package/dist/components-input-contact-input-contact.cjs +1 -1
  41. package/dist/components-input-contact-input-contact.cjs.map +1 -1
  42. package/dist/components-input-contact-input-contact.js +1 -1
  43. package/dist/components-story-drawer-story-drawer.cjs +1 -1
  44. package/dist/components-story-drawer-story-drawer.cjs.map +1 -1
  45. package/dist/components-story-drawer-story-drawer.js +10 -11
  46. package/dist/components-story-drawer-story-drawer.js.map +1 -1
  47. package/dist/components-ui-dropdown-menu-dropdown-menu.cjs +2 -2
  48. package/dist/components-ui-dropdown-menu-dropdown-menu.cjs.map +1 -1
  49. package/dist/components-ui-dropdown-menu-dropdown-menu.js +32 -23
  50. package/dist/components-ui-dropdown-menu-dropdown-menu.js.map +1 -1
  51. package/dist/index.cjs +1 -1
  52. package/dist/index.js +267 -268
  53. package/dist/index.js.map +1 -1
  54. package/package.json +4 -1
  55. package/dist/components-ui-typography-typography.styles-C6G6MFUq.js +0 -105
  56. package/dist/components-ui-typography-typography.styles-C6G6MFUq.js.map +0 -1
  57. package/dist/components-ui-typography-typography.styles-CMzY_pXl.cjs +0 -2
  58. package/dist/components-ui-typography-typography.styles-CMzY_pXl.cjs.map +0 -1
@@ -0,0 +1,283 @@
1
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
+ import { cn as n } from "./lib-utils.js";
3
+ import "class-variance-authority";
4
+ import "./components-ui-badge-badge.styles.js";
5
+ import "./components-ui-button-button.js";
6
+ import "./components-ui-button-button.styles.js";
7
+ import "./components-ui-card-card.js";
8
+ import "./components-ui-checkbox-checkbox.js";
9
+ import "brd-phosphor-strokes-icons/icons/CaretDown";
10
+ import { usePopupControls as v } from "./hooks-usePopupControls.js";
11
+ import "./calendar-B78l3uF9.js";
12
+ import { Icon as g } from "./components-ui-icon-icon.js";
13
+ import "brd-phosphor-strokes-icons/icons";
14
+ import "./components-ui-combobox-combobox.js";
15
+ import "./components-ui-dialog-dialog.js";
16
+ import { memo as w, useCallback as d } from "react";
17
+ import "./components-ui-label-label.js";
18
+ import "./components-ui-separator-separator.js";
19
+ import "./components-ui-field-field.styles.js";
20
+ import "./components-ui-input-input.styles.js";
21
+ import "./components-ui-textarea-textarea.js";
22
+ import "./components-ui-input-group-input-group.styles.js";
23
+ import "./components-ui-navigation-item-navigation-item.styles.js";
24
+ import "./components-ui-navigation-menu-navigation-menu.styles.js";
25
+ import "./components-ui-pagination-pagination.js";
26
+ import "./components-ui-progress-progress.js";
27
+ import "./components-ui-radio-group-radio-group.js";
28
+ import "./components-ui-switch-switch.js";
29
+ import "./components-ui-toggle-toggle.styles.js";
30
+ import "./components-ui-toggle-group-toggle-group.js";
31
+ import "./components-ui-table-table.js";
32
+ import "./components-ui-tabs-tabs.js";
33
+ import "./components-ui-tooltip-tooltip.js";
34
+ import { Typography as l } from "./components-ui-typography-typography.js";
35
+ import "./components-ui-typography-typography.styles.js";
36
+ import "brd-phosphor-strokes-icons/icons/CaretLeft";
37
+ import "brd-phosphor-strokes-icons/icons/CaretRight";
38
+ import "./components-app-pagination-app-pagination.styles.js";
39
+ import "brd-phosphor-strokes-icons/icons/CaretUpDown";
40
+ import "./components-app-sidebar-app-sidebar.styles.js";
41
+ import "./components-data-table-data-table.styles.js";
42
+ import { ConfigurableDropdownMenu as C } from "./components-ui-dropdown-menu-dropdown-menu.js";
43
+ import "brd-phosphor-strokes-icons/icons/Eye";
44
+ import "brd-phosphor-strokes-icons/icons/EyeSlash";
45
+ import "./components-select-field-select-field.js";
46
+ import "./lodash-FemA_LCk.js";
47
+ import "./chart-DFbmMKiQ.js";
48
+ import { Avatar as T, AvatarImage as k, AvatarFallback as O } from "./components-ui-avatar-avatar.js";
49
+ import "./components-ui-dropdown-menu-dropdown-menu.styles.js";
50
+ import "brd-phosphor-strokes-icons/icons/CheckCircle";
51
+ import "brd-phosphor-strokes-icons/icons/Info";
52
+ import "brd-phosphor-strokes-icons/icons/SpinnerGap";
53
+ import "brd-phosphor-strokes-icons/icons/Warning";
54
+ import "brd-phosphor-strokes-icons/icons/X";
55
+ import "brd-phosphor-strokes-icons/icons/XCircle";
56
+ import "./index-C4iHL8Gs.js";
57
+ import "./index-C6N9aMq_.js";
58
+ import "brd-phosphor-strokes-icons/icons/Plus";
59
+ import "brd-phosphor-strokes-icons/icons/CaretUp";
60
+ import "brd-phosphor-strokes-icons/icons/EnvelopeSimple";
61
+ import "brd-phosphor-strokes-icons/icons/MaxLogo";
62
+ import "brd-phosphor-strokes-icons/icons/Phone";
63
+ import "brd-phosphor-strokes-icons/icons/TelegramLogo";
64
+ import "brd-phosphor-strokes-icons/icons/WhatsAppLogoFilled";
65
+ import "./components-input-phone-input-phone.js";
66
+ import "./components-card-info-card-info.styles.js";
67
+ import './brd-ui-kit.css';const A = (r) => {
68
+ const i = r.trim();
69
+ if (!i)
70
+ return "";
71
+ const [p = "", o = ""] = i.split(/\s+/);
72
+ return p && o ? `${p[0].toUpperCase()}${o[0].toUpperCase()}` : i.length <= 2 ? i.toUpperCase() : p[0].toUpperCase();
73
+ }, P = ({
74
+ initials: r,
75
+ avatar: i,
76
+ fallback: p,
77
+ image: o,
78
+ icon: s,
79
+ showDeleteOnHover: u = !0,
80
+ onClick: f = () => {
81
+ }
82
+ }) => {
83
+ const m = /* @__PURE__ */ a(
84
+ T,
85
+ {
86
+ ...i,
87
+ className: n("h-18 w-18", i?.className),
88
+ children: [
89
+ /* @__PURE__ */ e(
90
+ k,
91
+ {
92
+ ...o,
93
+ alt: "avatar",
94
+ className: n("h-full w-full border-0", o?.className)
95
+ }
96
+ ),
97
+ /* @__PURE__ */ e(O, { ...p, children: /* @__PURE__ */ e(
98
+ l,
99
+ {
100
+ variant: "body-xxl-medium",
101
+ className: n("text-info-new-text", r?.className),
102
+ children: A(r?.text ?? "")
103
+ }
104
+ ) })
105
+ ]
106
+ }
107
+ );
108
+ return u ? /* @__PURE__ */ a("div", { className: "relative inline-block", children: [
109
+ m,
110
+ /* @__PURE__ */ e(
111
+ "div",
112
+ {
113
+ className: `text-primary-bg bg-primary-inverse-bg/50 absolute inset-0 flex
114
+ cursor-pointer items-center justify-center rounded-full opacity-0
115
+ transition-opacity hover:opacity-100`,
116
+ onClick: (c) => c.stopPropagation(),
117
+ children: /* @__PURE__ */ e(
118
+ g,
119
+ {
120
+ ...s,
121
+ type: "x",
122
+ onClick: f
123
+ }
124
+ )
125
+ }
126
+ )
127
+ ] }) : m;
128
+ }, _ = [
129
+ { id: "select", label: "Выбрать", iconType: "check-circle" },
130
+ { id: "edit", label: "Редактировать", iconType: "pencil-simple" },
131
+ { id: "delete", label: "Удалить", iconType: "trash", alert: !0 }
132
+ ], U = {
133
+ align: "end",
134
+ side: "bottom",
135
+ sideOffset: -72
136
+ }, j = w(
137
+ ({ item: r, isSelected: i, isEditing: p, isSelectMode: o, onAction: s, getBadge: u }) => {
138
+ const { isOpened: f, openPopup: m, closePopup: c } = v(), x = d(
139
+ (t) => {
140
+ r.id && s(r.id, t);
141
+ },
142
+ [r.id, s]
143
+ ), N = d(
144
+ (t) => {
145
+ t.pointerType === "mouse" && t.button === 0 && t.preventDefault();
146
+ },
147
+ []
148
+ ), b = d(() => {
149
+ if (r.id) {
150
+ if (o) {
151
+ x({ id: "select", label: "Выбрать" });
152
+ return;
153
+ }
154
+ m();
155
+ }
156
+ }, [x, o, r.id, m]), y = d(
157
+ (t) => {
158
+ if (t) {
159
+ m();
160
+ return;
161
+ }
162
+ c();
163
+ },
164
+ [c, m]
165
+ );
166
+ return /* @__PURE__ */ e(
167
+ C,
168
+ {
169
+ items: _,
170
+ onAction: x,
171
+ contentProps: U,
172
+ open: f,
173
+ onOpenChange: y,
174
+ trigger: /* @__PURE__ */ a(
175
+ "div",
176
+ {
177
+ onPointerDown: N,
178
+ onClick: b,
179
+ className: n(
180
+ `flex cursor-pointer flex-col gap-2.5 px-4 py-3
181
+ shadow-[0_-2px_4px_0_rgba(0,0,0,0.05)]`,
182
+ i && "bg-negotiation-bg",
183
+ p && "bg-confidence-bg"
184
+ ),
185
+ children: [
186
+ /* @__PURE__ */ a("div", { className: "flex gap-3", children: [
187
+ /* @__PURE__ */ a("div", { className: "w-fit", children: [
188
+ /* @__PURE__ */ e(
189
+ P,
190
+ {
191
+ initials: {
192
+ text: r.userName,
193
+ className: "text-primary-text"
194
+ },
195
+ avatar: {
196
+ className: "h-12 w-12"
197
+ },
198
+ showDeleteOnHover: !1
199
+ }
200
+ ),
201
+ /* @__PURE__ */ e(
202
+ l,
203
+ {
204
+ variant: "body-xxs-medium",
205
+ className: "text-secondary-text text-center",
206
+ children: r.dateShort
207
+ }
208
+ )
209
+ ] }),
210
+ /* @__PURE__ */ a("div", { className: "flex w-full flex-col gap-2.5", children: [
211
+ /* @__PURE__ */ a("div", { className: "flex w-full items-center justify-between", children: [
212
+ /* @__PURE__ */ e(
213
+ l,
214
+ {
215
+ variant: "body-md-medium",
216
+ className: "text-primary-text",
217
+ children: r.userName
218
+ }
219
+ ),
220
+ /* @__PURE__ */ e(
221
+ g,
222
+ {
223
+ type: "check-circle",
224
+ className: "text-sub-label-text"
225
+ }
226
+ )
227
+ ] }),
228
+ /* @__PURE__ */ e(
229
+ l,
230
+ {
231
+ variant: "body-sm-regular",
232
+ className: "text-primary-text",
233
+ children: r.message
234
+ }
235
+ ),
236
+ r.imageUrl && /* @__PURE__ */ e(
237
+ "img",
238
+ {
239
+ src: r.imageUrl,
240
+ alt: "Вложенное изображение",
241
+ className: "max-h-65 w-full rounded-lg object-contain"
242
+ }
243
+ )
244
+ ] })
245
+ ] }),
246
+ /* @__PURE__ */ e("div", { className: "flex gap-3 px-4", children: r.tags.map((t) => {
247
+ const h = u(t);
248
+ return /* @__PURE__ */ a(
249
+ "div",
250
+ {
251
+ className: n(
252
+ "flex items-center gap-1.25 rounded-lg border px-3 py-1",
253
+ h.bg,
254
+ h.color
255
+ ),
256
+ children: [
257
+ /* @__PURE__ */ e(l, { variant: "body-xxs-medium", children: t }),
258
+ /* @__PURE__ */ e(
259
+ g,
260
+ {
261
+ type: "check-circle",
262
+ size: 15,
263
+ strokeWidth: 1.25
264
+ }
265
+ )
266
+ ]
267
+ },
268
+ t
269
+ );
270
+ }) })
271
+ ]
272
+ }
273
+ )
274
+ }
275
+ );
276
+ }
277
+ );
278
+ j.displayName = "ApprovalLogRow";
279
+ export {
280
+ j as A,
281
+ P as B
282
+ };
283
+ //# sourceMappingURL=approval-log.view-CZoufOXF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-log.view-CZoufOXF.js","sources":["../src/components/basic-avatar/basic-avatar.tsx","../src/components/approval-log/approval-log.view.tsx"],"sourcesContent":["import { Icon, Typography, cn } from \"@/index\";\nimport type { 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\nconst getInitials = (fullName: string): string => {\n const normalizedName = fullName.trim();\n\n if (!normalizedName) {\n return \"\";\n }\n\n const [firstName = \"\", lastName = \"\"] = normalizedName.split(/\\s+/);\n\n if (firstName && lastName) {\n return `${firstName[0].toUpperCase()}${lastName[0].toUpperCase()}`;\n }\n\n if (normalizedName.length <= 2) {\n return normalizedName.toUpperCase();\n }\n\n return firstName[0].toUpperCase();\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 {getInitials(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","import {\n BasicAvatar,\n cn,\n ConfigurableDropdownMenu,\n Icon,\n Typography,\n usePopupControls,\n type ApprovalLogItem,\n type DropdownMenuConfigItem,\n type DropdownMenuConfigNode,\n} from \"@/index\";\nimport { memo, useCallback, type PointerEvent } from \"react\";\n\ntype Props = {\n item: ApprovalLogItem;\n isSelected: boolean;\n isEditing: boolean;\n isSelectMode: boolean;\n onAction: (id: string, action: DropdownMenuConfigItem) => void;\n getBadge: (type: string) => {\n bg: string;\n color: string;\n };\n};\n\nconst NOTE_ACTIONS: DropdownMenuConfigNode[] = [\n { id: \"select\", label: \"Выбрать\", iconType: \"check-circle\" },\n { id: \"edit\", label: \"Редактировать\", iconType: \"pencil-simple\" },\n { id: \"delete\", label: \"Удалить\", iconType: \"trash\", alert: true },\n];\n\nconst NOTE_MENU_CONTENT_PROPS = {\n align: \"end\",\n side: \"bottom\",\n sideOffset: -72,\n} as const;\n\nexport const ApprovalLogView = memo(\n ({ item, isSelected, isEditing, isSelectMode, onAction, getBadge }: Props) => {\n const { isOpened, openPopup, closePopup } = usePopupControls();\n\n const handleAction = useCallback(\n (action: DropdownMenuConfigItem) => {\n if (!item.id) {\n return;\n }\n\n onAction(item.id, action);\n },\n [item.id, onAction],\n );\n\n const handleTriggerPointerDown = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === \"mouse\" && event.button === 0) {\n event.preventDefault();\n }\n },\n [],\n );\n\n const handleTriggerClick = useCallback(() => {\n if (!item.id) {\n return;\n }\n\n if (isSelectMode) {\n handleAction({ id: \"select\", label: \"Выбрать\" });\n return;\n }\n\n openPopup();\n }, [handleAction, isSelectMode, item.id, openPopup]);\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (open) {\n openPopup();\n return;\n }\n\n closePopup();\n },\n [closePopup, openPopup],\n );\n\n return (\n <ConfigurableDropdownMenu\n items={NOTE_ACTIONS}\n onAction={handleAction}\n contentProps={NOTE_MENU_CONTENT_PROPS}\n open={isOpened}\n onOpenChange={handleOpenChange}\n trigger={\n <div\n onPointerDown={handleTriggerPointerDown}\n onClick={handleTriggerClick}\n className={cn(\n `flex cursor-pointer flex-col gap-2.5 px-4 py-3\n shadow-[0_-2px_4px_0_rgba(0,0,0,0.05)]`,\n isSelected && \"bg-negotiation-bg\",\n isEditing && \"bg-confidence-bg\",\n )}\n >\n <div className=\"flex gap-3\">\n <div className=\"w-fit\">\n <BasicAvatar\n initials={{\n text: item.userName,\n className: \"text-primary-text\",\n }}\n avatar={{\n className: \"h-12 w-12\",\n }}\n showDeleteOnHover={false}\n />\n\n <Typography\n variant=\"body-xxs-medium\"\n className=\"text-secondary-text text-center\"\n >\n {item.dateShort}\n </Typography>\n </div>\n\n <div className=\"flex w-full flex-col gap-2.5\">\n <div className=\"flex w-full items-center justify-between\">\n <Typography\n variant=\"body-md-medium\"\n className=\"text-primary-text\"\n >\n {item.userName}\n </Typography>\n\n <Icon\n type=\"check-circle\"\n className=\"text-sub-label-text\"\n />\n </div>\n <Typography\n variant=\"body-sm-regular\"\n className=\"text-primary-text\"\n >\n {item.message}\n </Typography>\n {item.imageUrl && (\n <img\n src={item.imageUrl}\n alt=\"Вложенное изображение\"\n className=\"max-h-65 w-full rounded-lg object-contain\"\n />\n )}\n </div>\n </div>\n <div className=\"flex gap-3 px-4\">\n {item.tags.map((tag) => {\n const badge = getBadge(tag);\n return (\n <div\n key={tag}\n className={cn(\n \"flex items-center gap-1.25 rounded-lg border px-3 py-1\",\n badge.bg,\n badge.color,\n )}\n >\n <Typography variant=\"body-xxs-medium\">{tag}</Typography>\n\n <Icon\n type=\"check-circle\"\n size={15}\n strokeWidth={1.25}\n />\n </div>\n );\n })}\n </div>\n </div>\n }\n />\n );\n },\n);\n\nApprovalLogView.displayName = \"ApprovalLogRow\";\n"],"names":["getInitials","fullName","normalizedName","firstName","lastName","BasicAvatar","initials","avatar","fallback","image","icon","showDeleteOnHover","onClick","content","jsxs","Avatar","cn","jsx","AvatarImage","AvatarFallback","Typography","e","Icon","NOTE_ACTIONS","NOTE_MENU_CONTENT_PROPS","ApprovalLogView","memo","item","isSelected","isEditing","isSelectMode","onAction","getBadge","isOpened","openPopup","closePopup","usePopupControls","handleAction","useCallback","action","handleTriggerPointerDown","event","handleTriggerClick","handleOpenChange","open","ConfigurableDropdownMenu","tag","badge"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ "use strict";require('./brd-ui-kit.css');const e=require("react/jsx-runtime"),c=require("./lib-utils.cjs");require("class-variance-authority");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("brd-phosphor-strokes-icons/icons/CaretDown");const j=require("./hooks-usePopupControls.cjs");require("./calendar-BClkfQSD.cjs");const g=require("./components-ui-icon-icon.cjs");require("brd-phosphor-strokes-icons/icons");require("./components-ui-combobox-combobox.cjs");require("./components-ui-dialog-dialog.cjs");const o=require("react");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-toggle-toggle.styles.cjs");require("./components-ui-toggle-group-toggle-group.cjs");require("./components-ui-table-table.cjs");require("./components-ui-tabs-tabs.cjs");require("./components-ui-tooltip-tooltip.cjs");const l=require("./components-ui-typography-typography.cjs");require("./components-ui-typography-typography.styles.cjs");require("brd-phosphor-strokes-icons/icons/CaretLeft");require("brd-phosphor-strokes-icons/icons/CaretRight");require("./components-app-pagination-app-pagination.styles.cjs");require("brd-phosphor-strokes-icons/icons/CaretUpDown");require("./components-app-sidebar-app-sidebar.styles.cjs");require("./components-data-table-data-table.styles.cjs");const _=require("./components-ui-dropdown-menu-dropdown-menu.cjs");require("brd-phosphor-strokes-icons/icons/Eye");require("brd-phosphor-strokes-icons/icons/EyeSlash");require("./components-select-field-select-field.cjs");require("./lodash-kqhtUJfz.cjs");require("./chart-9H_9wEfR.cjs");const m=require("./components-ui-avatar-avatar.cjs");require("./components-ui-dropdown-menu-dropdown-menu.styles.cjs");require("brd-phosphor-strokes-icons/icons/CheckCircle");require("brd-phosphor-strokes-icons/icons/Info");require("brd-phosphor-strokes-icons/icons/SpinnerGap");require("brd-phosphor-strokes-icons/icons/Warning");require("brd-phosphor-strokes-icons/icons/X");require("brd-phosphor-strokes-icons/icons/XCircle");require("./index-DGxwh2Ms.cjs");require("./index-fTTv8YY8.cjs");require("brd-phosphor-strokes-icons/icons/Plus");require("brd-phosphor-strokes-icons/icons/CaretUp");require("brd-phosphor-strokes-icons/icons/EnvelopeSimple");require("brd-phosphor-strokes-icons/icons/MaxLogo");require("brd-phosphor-strokes-icons/icons/Phone");require("brd-phosphor-strokes-icons/icons/TelegramLogo");require("brd-phosphor-strokes-icons/icons/WhatsAppLogoFilled");require("./components-input-phone-input-phone.cjs");require("./components-card-info-card-info.styles.cjs");const w=r=>{const s=r.trim();if(!s)return"";const[t="",a=""]=s.split(/\s+/);return t&&a?`${t[0].toUpperCase()}${a[0].toUpperCase()}`:s.length<=2?s.toUpperCase():t[0].toUpperCase()},y=({initials:r,avatar:s,fallback:t,image:a,icon:u,showDeleteOnHover:d=!0,onClick:q=()=>{}})=>{const n=e.jsxs(m.Avatar,{...s,className:c.cn("h-18 w-18",s?.className),children:[e.jsx(m.AvatarImage,{...a,alt:"avatar",className:c.cn("h-full w-full border-0",a?.className)}),e.jsx(m.AvatarFallback,{...t,children:e.jsx(l.Typography,{variant:"body-xxl-medium",className:c.cn("text-info-new-text",r?.className),children:w(r?.text??"")})})]});return d?e.jsxs("div",{className:"relative inline-block",children:[n,e.jsx("div",{className:`text-primary-bg bg-primary-inverse-bg/50 absolute inset-0 flex
2
+ cursor-pointer items-center justify-center rounded-full opacity-0
3
+ transition-opacity hover:opacity-100`,onClick:p=>p.stopPropagation(),children:e.jsx(g.Icon,{...u,type:"x",onClick:q})})]}):n},C=[{id:"select",label:"Выбрать",iconType:"check-circle"},{id:"edit",label:"Редактировать",iconType:"pencil-simple"},{id:"delete",label:"Удалить",iconType:"trash",alert:!0}],T={align:"end",side:"bottom",sideOffset:-72},b=o.memo(({item:r,isSelected:s,isEditing:t,isSelectMode:a,onAction:u,getBadge:d})=>{const{isOpened:q,openPopup:n,closePopup:p}=j.usePopupControls(),x=o.useCallback(i=>{r.id&&u(r.id,i)},[r.id,u]),f=o.useCallback(i=>{i.pointerType==="mouse"&&i.button===0&&i.preventDefault()},[]),N=o.useCallback(()=>{if(r.id){if(a){x({id:"select",label:"Выбрать"});return}n()}},[x,a,r.id,n]),v=o.useCallback(i=>{if(i){n();return}p()},[p,n]);return e.jsx(_.ConfigurableDropdownMenu,{items:C,onAction:x,contentProps:T,open:q,onOpenChange:v,trigger:e.jsxs("div",{onPointerDown:f,onClick:N,className:c.cn(`flex cursor-pointer flex-col gap-2.5 px-4 py-3
4
+ shadow-[0_-2px_4px_0_rgba(0,0,0,0.05)]`,s&&"bg-negotiation-bg",t&&"bg-confidence-bg"),children:[e.jsxs("div",{className:"flex gap-3",children:[e.jsxs("div",{className:"w-fit",children:[e.jsx(y,{initials:{text:r.userName,className:"text-primary-text"},avatar:{className:"h-12 w-12"},showDeleteOnHover:!1}),e.jsx(l.Typography,{variant:"body-xxs-medium",className:"text-secondary-text text-center",children:r.dateShort})]}),e.jsxs("div",{className:"flex w-full flex-col gap-2.5",children:[e.jsxs("div",{className:"flex w-full items-center justify-between",children:[e.jsx(l.Typography,{variant:"body-md-medium",className:"text-primary-text",children:r.userName}),e.jsx(g.Icon,{type:"check-circle",className:"text-sub-label-text"})]}),e.jsx(l.Typography,{variant:"body-sm-regular",className:"text-primary-text",children:r.message}),r.imageUrl&&e.jsx("img",{src:r.imageUrl,alt:"Вложенное изображение",className:"max-h-65 w-full rounded-lg object-contain"})]})]}),e.jsx("div",{className:"flex gap-3 px-4",children:r.tags.map(i=>{const h=d(i);return e.jsxs("div",{className:c.cn("flex items-center gap-1.25 rounded-lg border px-3 py-1",h.bg,h.color),children:[e.jsx(l.Typography,{variant:"body-xxs-medium",children:i}),e.jsx(g.Icon,{type:"check-circle",size:15,strokeWidth:1.25})]},i)})})]})})});b.displayName="ApprovalLogRow";exports.ApprovalLogView=b;exports.BasicAvatar=y;
5
+ //# sourceMappingURL=approval-log.view-DC5xl6KF.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-log.view-DC5xl6KF.cjs","sources":["../src/components/basic-avatar/basic-avatar.tsx","../src/components/approval-log/approval-log.view.tsx"],"sourcesContent":["import { Icon, Typography, cn } from \"@/index\";\nimport type { 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\nconst getInitials = (fullName: string): string => {\n const normalizedName = fullName.trim();\n\n if (!normalizedName) {\n return \"\";\n }\n\n const [firstName = \"\", lastName = \"\"] = normalizedName.split(/\\s+/);\n\n if (firstName && lastName) {\n return `${firstName[0].toUpperCase()}${lastName[0].toUpperCase()}`;\n }\n\n if (normalizedName.length <= 2) {\n return normalizedName.toUpperCase();\n }\n\n return firstName[0].toUpperCase();\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 {getInitials(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","import {\n BasicAvatar,\n cn,\n ConfigurableDropdownMenu,\n Icon,\n Typography,\n usePopupControls,\n type ApprovalLogItem,\n type DropdownMenuConfigItem,\n type DropdownMenuConfigNode,\n} from \"@/index\";\nimport { memo, useCallback, type PointerEvent } from \"react\";\n\ntype Props = {\n item: ApprovalLogItem;\n isSelected: boolean;\n isEditing: boolean;\n isSelectMode: boolean;\n onAction: (id: string, action: DropdownMenuConfigItem) => void;\n getBadge: (type: string) => {\n bg: string;\n color: string;\n };\n};\n\nconst NOTE_ACTIONS: DropdownMenuConfigNode[] = [\n { id: \"select\", label: \"Выбрать\", iconType: \"check-circle\" },\n { id: \"edit\", label: \"Редактировать\", iconType: \"pencil-simple\" },\n { id: \"delete\", label: \"Удалить\", iconType: \"trash\", alert: true },\n];\n\nconst NOTE_MENU_CONTENT_PROPS = {\n align: \"end\",\n side: \"bottom\",\n sideOffset: -72,\n} as const;\n\nexport const ApprovalLogView = memo(\n ({ item, isSelected, isEditing, isSelectMode, onAction, getBadge }: Props) => {\n const { isOpened, openPopup, closePopup } = usePopupControls();\n\n const handleAction = useCallback(\n (action: DropdownMenuConfigItem) => {\n if (!item.id) {\n return;\n }\n\n onAction(item.id, action);\n },\n [item.id, onAction],\n );\n\n const handleTriggerPointerDown = useCallback(\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.pointerType === \"mouse\" && event.button === 0) {\n event.preventDefault();\n }\n },\n [],\n );\n\n const handleTriggerClick = useCallback(() => {\n if (!item.id) {\n return;\n }\n\n if (isSelectMode) {\n handleAction({ id: \"select\", label: \"Выбрать\" });\n return;\n }\n\n openPopup();\n }, [handleAction, isSelectMode, item.id, openPopup]);\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (open) {\n openPopup();\n return;\n }\n\n closePopup();\n },\n [closePopup, openPopup],\n );\n\n return (\n <ConfigurableDropdownMenu\n items={NOTE_ACTIONS}\n onAction={handleAction}\n contentProps={NOTE_MENU_CONTENT_PROPS}\n open={isOpened}\n onOpenChange={handleOpenChange}\n trigger={\n <div\n onPointerDown={handleTriggerPointerDown}\n onClick={handleTriggerClick}\n className={cn(\n `flex cursor-pointer flex-col gap-2.5 px-4 py-3\n shadow-[0_-2px_4px_0_rgba(0,0,0,0.05)]`,\n isSelected && \"bg-negotiation-bg\",\n isEditing && \"bg-confidence-bg\",\n )}\n >\n <div className=\"flex gap-3\">\n <div className=\"w-fit\">\n <BasicAvatar\n initials={{\n text: item.userName,\n className: \"text-primary-text\",\n }}\n avatar={{\n className: \"h-12 w-12\",\n }}\n showDeleteOnHover={false}\n />\n\n <Typography\n variant=\"body-xxs-medium\"\n className=\"text-secondary-text text-center\"\n >\n {item.dateShort}\n </Typography>\n </div>\n\n <div className=\"flex w-full flex-col gap-2.5\">\n <div className=\"flex w-full items-center justify-between\">\n <Typography\n variant=\"body-md-medium\"\n className=\"text-primary-text\"\n >\n {item.userName}\n </Typography>\n\n <Icon\n type=\"check-circle\"\n className=\"text-sub-label-text\"\n />\n </div>\n <Typography\n variant=\"body-sm-regular\"\n className=\"text-primary-text\"\n >\n {item.message}\n </Typography>\n {item.imageUrl && (\n <img\n src={item.imageUrl}\n alt=\"Вложенное изображение\"\n className=\"max-h-65 w-full rounded-lg object-contain\"\n />\n )}\n </div>\n </div>\n <div className=\"flex gap-3 px-4\">\n {item.tags.map((tag) => {\n const badge = getBadge(tag);\n return (\n <div\n key={tag}\n className={cn(\n \"flex items-center gap-1.25 rounded-lg border px-3 py-1\",\n badge.bg,\n badge.color,\n )}\n >\n <Typography variant=\"body-xxs-medium\">{tag}</Typography>\n\n <Icon\n type=\"check-circle\"\n size={15}\n strokeWidth={1.25}\n />\n </div>\n );\n })}\n </div>\n </div>\n }\n />\n );\n },\n);\n\nApprovalLogView.displayName = \"ApprovalLogRow\";\n"],"names":["getInitials","fullName","normalizedName","firstName","lastName","BasicAvatar","initials","avatar","fallback","image","icon","showDeleteOnHover","onClick","content","jsxs","Avatar","cn","jsx","AvatarImage","AvatarFallback","Typography","e","Icon","NOTE_ACTIONS","NOTE_MENU_CONTENT_PROPS","ApprovalLogView","memo","item","isSelected","isEditing","isSelectMode","onAction","getBadge","isOpened","openPopup","closePopup","usePopupControls","handleAction","useCallback","action","handleTriggerPointerDown","event","handleTriggerClick","handleOpenChange","open","ConfigurableDropdownMenu","tag","badge"],"mappings":"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"}