brd-ui-kit 0.1.94 → 0.1.97

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 (79) hide show
  1. package/dist/{approval-log.view-BMiYO7Cf.cjs → approval-log.view-DICzq_XG.cjs} +2 -2
  2. package/dist/{approval-log.view-BMiYO7Cf.cjs.map → approval-log.view-DICzq_XG.cjs.map} +1 -1
  3. package/dist/{approval-log.view-D_-VDB_3.js → approval-log.view-DiYnnYJc.js} +2 -1
  4. package/dist/{approval-log.view-D_-VDB_3.js.map → approval-log.view-DiYnnYJc.js.map} +1 -1
  5. package/dist/brd-ui-kit.css +1 -1
  6. package/dist/components/checklist/checklist.d.ts +18 -0
  7. package/dist/components/checklist/index.d.ts +1 -0
  8. package/dist/components/checklist.d.ts +2 -0
  9. package/dist/components/stepper/index.d.ts +1 -0
  10. package/dist/components/stepper/stepper.d.ts +11 -0
  11. package/dist/components/stepper/stepper.styles.d.ts +4 -0
  12. package/dist/components/stepper.d.ts +2 -0
  13. package/dist/components/ui/checkbox/checkbox.d.ts +4 -6
  14. package/dist/components/ui/checkbox/checkbox.styles.d.ts +6 -1
  15. package/dist/components-approval-log-approval-log.cjs +1 -1
  16. package/dist/components-approval-log-approval-log.cjs.map +1 -1
  17. package/dist/components-approval-log-approval-log.js +4 -3
  18. package/dist/components-approval-log-approval-log.js.map +1 -1
  19. package/dist/components-approval-log-approval-log.view.cjs +1 -1
  20. package/dist/components-approval-log-approval-log.view.js +3 -2
  21. package/dist/components-approval-log-approval-log.view.js.map +1 -1
  22. package/dist/components-avatar-uploader-avatar-uploader.cjs +1 -1
  23. package/dist/components-avatar-uploader-avatar-uploader.cjs.map +1 -1
  24. package/dist/components-avatar-uploader-avatar-uploader.js +4 -3
  25. package/dist/components-avatar-uploader-avatar-uploader.js.map +1 -1
  26. package/dist/components-basic-avatar-basic-avatar.cjs +1 -1
  27. package/dist/components-basic-avatar-basic-avatar.js +3 -2
  28. package/dist/components-basic-avatar-basic-avatar.js.map +1 -1
  29. package/dist/components-basic-avatar.cjs +1 -1
  30. package/dist/components-basic-avatar.js +1 -1
  31. package/dist/components-checkbox-group-checkbox-group.cjs +1 -1
  32. package/dist/components-checkbox-group-checkbox-group.cjs.map +1 -1
  33. package/dist/components-checkbox-group-checkbox-group.js +4 -3
  34. package/dist/components-checkbox-group-checkbox-group.js.map +1 -1
  35. package/dist/components-checklist-checklist.cjs +3 -0
  36. package/dist/components-checklist-checklist.cjs.map +1 -0
  37. package/dist/components-checklist-checklist.js +61 -0
  38. package/dist/components-checklist-checklist.js.map +1 -0
  39. package/dist/components-checklist.cjs +2 -0
  40. package/dist/components-checklist.cjs.map +1 -0
  41. package/dist/components-checklist.js +5 -0
  42. package/dist/components-checklist.js.map +1 -0
  43. package/dist/components-input-contact-input-contact.cjs +1 -1
  44. package/dist/components-input-contact-input-contact.cjs.map +1 -1
  45. package/dist/components-input-contact-input-contact.js +4 -3
  46. package/dist/components-input-contact-input-contact.js.map +1 -1
  47. package/dist/components-input-search-input-search.cjs +1 -1
  48. package/dist/components-input-search-input-search.cjs.map +1 -1
  49. package/dist/components-input-search-input-search.js +4 -3
  50. package/dist/components-input-search-input-search.js.map +1 -1
  51. package/dist/components-stepper-stepper.cjs +2 -0
  52. package/dist/components-stepper-stepper.cjs.map +1 -0
  53. package/dist/components-stepper-stepper.js +46 -0
  54. package/dist/components-stepper-stepper.js.map +1 -0
  55. package/dist/components-stepper-stepper.styles.cjs +2 -0
  56. package/dist/components-stepper-stepper.styles.cjs.map +1 -0
  57. package/dist/components-stepper-stepper.styles.js +18 -0
  58. package/dist/components-stepper-stepper.styles.js.map +1 -0
  59. package/dist/components-stepper.cjs +2 -0
  60. package/dist/components-stepper.cjs.map +1 -0
  61. package/dist/components-stepper.js +5 -0
  62. package/dist/components-stepper.js.map +1 -0
  63. package/dist/components-story-drawer-story-drawer.cjs +1 -1
  64. package/dist/components-story-drawer-story-drawer.cjs.map +1 -1
  65. package/dist/components-story-drawer-story-drawer.js +4 -3
  66. package/dist/components-story-drawer-story-drawer.js.map +1 -1
  67. package/dist/components-ui-checkbox-checkbox.cjs +1 -1
  68. package/dist/components-ui-checkbox-checkbox.cjs.map +1 -1
  69. package/dist/components-ui-checkbox-checkbox.js +13 -13
  70. package/dist/components-ui-checkbox-checkbox.js.map +1 -1
  71. package/dist/components-ui-checkbox-checkbox.styles.cjs +11 -1
  72. package/dist/components-ui-checkbox-checkbox.styles.cjs.map +1 -1
  73. package/dist/components-ui-checkbox-checkbox.styles.js +27 -17
  74. package/dist/components-ui-checkbox-checkbox.styles.js.map +1 -1
  75. package/dist/index.cjs +1 -1
  76. package/dist/index.d.ts +3 -0
  77. package/dist/index.js +19 -13
  78. package/dist/index.js.map +1 -1
  79. package/package.json +19 -1
@@ -1,5 +1,5 @@
1
- "use strict";require('./brd-ui-kit.css');const e=require("react/jsx-runtime"),o=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 n=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 t=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"),w=require("./utils-helpers.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 y=({initials:r,avatar:l,fallback:p,image:a,icon:c,showDeleteOnHover:d=!0,onClick:q=()=>{}})=>{const s=e.jsxs(m.Avatar,{...l,className:o.cn("h-18 w-18",l?.className),children:[e.jsx(m.AvatarImage,{...a,alt:"avatar",className:o.cn("h-full w-full border-0",a?.className)}),e.jsx(m.AvatarFallback,{...p,children:e.jsx(t.Typography,{variant:"body-xxl-medium",className:o.cn("text-info-new-text",r?.className),children:w.getInitials(r?.text??"")})})]});return d?e.jsxs("div",{className:"relative inline-block",children:[s,e.jsx("div",{className:`text-primary-bg bg-primary-inverse-bg/50 absolute inset-0 flex
1
+ "use strict";require('./brd-ui-kit.css');const e=require("react/jsx-runtime"),o=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 n=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 t=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"),w=require("./utils-helpers.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");require("./components-stepper-stepper.styles.cjs");const y=({initials:r,avatar:l,fallback:p,image:a,icon:c,showDeleteOnHover:d=!0,onClick:q=()=>{}})=>{const s=e.jsxs(m.Avatar,{...l,className:o.cn("h-18 w-18",l?.className),children:[e.jsx(m.AvatarImage,{...a,alt:"avatar",className:o.cn("h-full w-full border-0",a?.className)}),e.jsx(m.AvatarFallback,{...p,children:e.jsx(t.Typography,{variant:"body-xxl-medium",className:o.cn("text-info-new-text",r?.className),children:w.getInitials(r?.text??"")})})]});return d?e.jsxs("div",{className:"relative inline-block",children:[s,e.jsx("div",{className:`text-primary-bg bg-primary-inverse-bg/50 absolute inset-0 flex
2
2
  cursor-pointer items-center justify-center rounded-full opacity-0
3
3
  transition-opacity hover:opacity-100`,onClick:u=>u.stopPropagation(),children:e.jsx(g.Icon,{...c,type:"x",onClick:q})})]}):s},T=[{id:"select",label:"Выбрать",iconType:"check-circle"},{id:"edit",label:"Редактировать",iconType:"pencil-simple"},{id:"delete",label:"Удалить",iconType:"trash",alert:!0}],k={align:"end",side:"bottom",sideOffset:-72},b=n.memo(({item:r,isSelected:l,isEditing:p,isSelectMode:a,onAction:c,getBadge:d})=>{const{isOpened:q,openPopup:s,closePopup:u}=j.usePopupControls(),x=n.useCallback(i=>{r.id&&c(r.id,i)},[r.id,c]),f=n.useCallback(i=>{i.pointerType==="mouse"&&i.button===0&&i.preventDefault()},[]),N=n.useCallback(()=>{if(r.id){if(a){x({id:"select",label:"Выбрать"});return}s()}},[x,a,r.id,s]),v=n.useCallback(i=>{if(i){s();return}u()},[u,s]);return e.jsx(_.ConfigurableDropdownMenu,{items:T,onAction:x,contentProps:k,open:q,onOpenChange:v,trigger:e.jsxs("div",{onPointerDown:f,onClick:N,className:o.cn(`flex cursor-pointer flex-col gap-2.5 px-4 py-3
4
4
  shadow-[0_-2px_4px_0_rgba(0,0,0,0.05)]`,l&&"bg-negotiation-bg",p&&"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(t.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(t.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(t.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:o.cn("flex items-center gap-1.25 rounded-lg border px-3 py-1",h.bg,h.color),children:[e.jsx(t.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-BMiYO7Cf.cjs.map
5
+ //# sourceMappingURL=approval-log.view-DICzq_XG.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval-log.view-BMiYO7Cf.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 { getInitials } from \"@/utils/helpers\";\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\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":["BasicAvatar","initials","avatar","fallback","image","icon","showDeleteOnHover","onClick","content","jsxs","Avatar","cn","jsx","AvatarImage","AvatarFallback","Typography","getInitials","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":"6xGA0BO,MAAMA,EAAc,CAAC,CAC1B,SAAAC,EACA,OAAAC,EACA,SAAAC,EACA,MAAAC,EACA,KAAAC,EACA,kBAAAC,EAAoB,GACpB,QAAAC,EAAU,IAAM,CAAC,CACnB,IAAa,CACX,MAAMC,EACJC,EAAAA,KAACC,EAAAA,OAAA,CACE,GAAGR,EACJ,UAAWS,EAAAA,GAAG,YAAaT,GAAQ,SAAS,EAE5C,SAAA,CAAAU,EAAAA,IAACC,EAAAA,YAAA,CACE,GAAGT,EACJ,IAAI,SACJ,UAAWO,EAAAA,GAAG,yBAA0BP,GAAO,SAAS,CAAA,CAAA,EAE1DQ,EAAAA,IAACE,EAAAA,eAAA,CAAgB,GAAGX,EAClB,SAAAS,EAAAA,IAACG,EAAAA,WAAA,CACC,QAAQ,kBACR,UAAWJ,EAAAA,GAAG,qBAAsBV,GAAU,SAAS,EAEtD,SAAAe,EAAAA,YAAYf,GAAU,MAAQ,EAAE,CAAA,CAAA,CACnC,CACF,CAAA,CAAA,CAAA,EAIJ,OAAKK,EAKHG,EAAAA,KAAC,MAAA,CAAI,UAAU,wBACZ,SAAA,CAAAD,EACDI,EAAAA,IAAC,MAAA,CACC,UAAU;AAAA;AAAA,gDAGV,QAAUK,GAAMA,EAAE,gBAAA,EAElB,SAAAL,EAAAA,IAACM,EAAAA,KAAA,CACE,GAAGb,EACJ,KAAK,IACL,QAAAE,CAAA,CAAA,CACF,CAAA,CACF,EACF,EAlBOC,CAoBX,ECpDMW,EAAyC,CAC7C,CAAE,GAAI,SAAU,MAAO,UAAW,SAAU,cAAA,EAC5C,CAAE,GAAI,OAAQ,MAAO,gBAAiB,SAAU,eAAA,EAChD,CAAE,GAAI,SAAU,MAAO,UAAW,SAAU,QAAS,MAAO,EAAA,CAC9D,EAEMC,EAA0B,CAC9B,MAAO,MACP,KAAM,SACN,WAAY,GACd,EAEaC,EAAkBC,EAAAA,KAC7B,CAAC,CAAE,KAAAC,EAAM,WAAAC,EAAY,UAAAC,EAAW,aAAAC,EAAc,SAAAC,EAAU,SAAAC,KAAsB,CAC5E,KAAM,CAAE,SAAAC,EAAU,UAAAC,EAAW,WAAAC,CAAA,EAAeC,EAAAA,iBAAA,EAEtCC,EAAeC,EAAAA,YAClBC,GAAmC,CAC7BZ,EAAK,IAIVI,EAASJ,EAAK,GAAIY,CAAM,CAC1B,EACA,CAACZ,EAAK,GAAII,CAAQ,CAAA,EAGdS,EAA2BF,EAAAA,YAC9BG,GAAwC,CACnCA,EAAM,cAAgB,SAAWA,EAAM,SAAW,GACpDA,EAAM,eAAA,CAEV,EACA,CAAA,CAAC,EAGGC,EAAqBJ,EAAAA,YAAY,IAAM,CAC3C,GAAKX,EAAK,GAIV,IAAIG,EAAc,CAChBO,EAAa,CAAE,GAAI,SAAU,MAAO,UAAW,EAC/C,MACF,CAEAH,EAAA,EACF,EAAG,CAACG,EAAcP,EAAcH,EAAK,GAAIO,CAAS,CAAC,EAE7CS,EAAmBL,EAAAA,YACtBM,GAAkB,CACjB,GAAIA,EAAM,CACRV,EAAA,EACA,MACF,CAEAC,EAAA,CACF,EACA,CAACA,EAAYD,CAAS,CAAA,EAGxB,OACElB,EAAAA,IAAC6B,EAAAA,yBAAA,CACC,MAAOtB,EACP,SAAUc,EACV,aAAcb,EACd,KAAMS,EACN,aAAcU,EACd,QACE9B,EAAAA,KAAC,MAAA,CACC,cAAe2B,EACf,QAASE,EACT,UAAW3B,EAAAA,GACT;AAAA,sDAEAa,GAAc,oBACdC,GAAa,kBAAA,EAGf,SAAA,CAAAhB,EAAAA,KAAC,MAAA,CAAI,UAAU,aACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,QACb,SAAA,CAAAG,EAAAA,IAACZ,EAAA,CACC,SAAU,CACR,KAAMuB,EAAK,SACX,UAAW,mBAAA,EAEb,OAAQ,CACN,UAAW,WAAA,EAEb,kBAAmB,EAAA,CAAA,EAGrBX,EAAAA,IAACG,EAAAA,WAAA,CACC,QAAQ,kBACR,UAAU,kCAET,SAAAQ,EAAK,SAAA,CAAA,CACR,EACF,EAEAd,EAAAA,KAAC,MAAA,CAAI,UAAU,+BACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,2CACb,SAAA,CAAAG,EAAAA,IAACG,EAAAA,WAAA,CACC,QAAQ,iBACR,UAAU,oBAET,SAAAQ,EAAK,QAAA,CAAA,EAGRX,EAAAA,IAACM,EAAAA,KAAA,CACC,KAAK,eACL,UAAU,qBAAA,CAAA,CACZ,EACF,EACAN,EAAAA,IAACG,EAAAA,WAAA,CACC,QAAQ,kBACR,UAAU,oBAET,SAAAQ,EAAK,OAAA,CAAA,EAEPA,EAAK,UACJX,EAAAA,IAAC,MAAA,CACC,IAAKW,EAAK,SACV,IAAI,wBACJ,UAAU,2CAAA,CAAA,CACZ,CAAA,CAEJ,CAAA,EACF,EACAX,MAAC,OAAI,UAAU,kBACZ,WAAK,KAAK,IAAK8B,GAAQ,CACtB,MAAMC,EAAQf,EAASc,CAAG,EAC1B,OACEjC,EAAAA,KAAC,MAAA,CAEC,UAAWE,EAAAA,GACT,yDACAgC,EAAM,GACNA,EAAM,KAAA,EAGR,SAAA,CAAA/B,EAAAA,IAACG,EAAAA,WAAA,CAAW,QAAQ,kBAAmB,SAAA2B,EAAI,EAE3C9B,EAAAA,IAACM,EAAAA,KAAA,CACC,KAAK,eACL,KAAM,GACN,YAAa,IAAA,CAAA,CACf,CAAA,EAbKwB,CAAA,CAgBX,CAAC,CAAA,CACH,CAAA,CAAA,CAAA,CACF,CAAA,CAIR,CACF,EAEArB,EAAgB,YAAc"}
1
+ {"version":3,"file":"approval-log.view-DICzq_XG.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 { getInitials } from \"@/utils/helpers\";\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\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":["BasicAvatar","initials","avatar","fallback","image","icon","showDeleteOnHover","onClick","content","jsxs","Avatar","cn","jsx","AvatarImage","AvatarFallback","Typography","getInitials","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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"}
@@ -65,6 +65,7 @@ import "brd-phosphor-strokes-icons/icons/TelegramLogo";
65
65
  import "brd-phosphor-strokes-icons/icons/WhatsAppLogoFilled";
66
66
  import "./components-input-phone-input-phone.js";
67
67
  import "./components-card-info-card-info.styles.js";
68
+ import "./components-stepper-stepper.styles.js";
68
69
  import './brd-ui-kit.css';const P = ({
69
70
  initials: r,
70
71
  avatar: l,
@@ -275,4 +276,4 @@ export {
275
276
  D as A,
276
277
  P as B
277
278
  };
278
- //# sourceMappingURL=approval-log.view-D_-VDB_3.js.map
279
+ //# sourceMappingURL=approval-log.view-DiYnnYJc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval-log.view-D_-VDB_3.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 { getInitials } from \"@/utils/helpers\";\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\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":["BasicAvatar","initials","avatar","fallback","image","icon","showDeleteOnHover","onClick","content","jsxs","Avatar","cn","jsx","AvatarImage","AvatarFallback","Typography","getInitials","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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"}
1
+ {"version":3,"file":"approval-log.view-DiYnnYJc.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 { getInitials } from \"@/utils/helpers\";\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\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":["BasicAvatar","initials","avatar","fallback","image","icon","showDeleteOnHover","onClick","content","jsxs","Avatar","cn","jsx","AvatarImage","AvatarFallback","Typography","getInitials","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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"}