UI - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: настройки проекта, модалки и drag-and-drop канон

This commit is contained in:
DCCONSTRUCTIONS
2026-04-20 09:22:37 +03:00
parent bd7a7d96fe
commit df68c96795
47 changed files with 703 additions and 275 deletions
@@ -202,10 +202,10 @@ function CustomMenu(props: ICustomMenuDropdownProps) {
className={cn(
"nodedc-glass-modal nodedc-glass-popup-surface my-1 min-w-[13rem] overflow-y-auto rounded-[1.25rem] border-0 px-2 py-2.5 text-12 whitespace-nowrap shadow-none outline-none",
{
"max-h-60": maxHeight === "lg",
"max-h-48": maxHeight === "md",
"max-h-36": maxHeight === "rg",
"max-h-28": maxHeight === "sm",
"max-h-[min(85vh,40rem)]": maxHeight === "lg",
"max-h-[min(70vh,24rem)]": maxHeight === "md",
"max-h-[min(55vh,18rem)]": maxHeight === "rg",
"max-h-[min(40vh,12rem)]": maxHeight === "sm",
},
optionsClassName
)}
@@ -122,7 +122,7 @@ function CustomSelect(props: ICustomSelectProps) {
<Combobox.Options data-prevent-outside-click>
<div
className={cn(
"z-30 my-1 min-w-48 overflow-y-scroll rounded-md border-[0.5px] border-subtle-1 bg-surface-1 px-2 py-2.5 text-11 whitespace-nowrap focus:outline-none",
"nodedc-dropdown-surface z-30 my-1 min-w-48 overflow-y-scroll whitespace-nowrap focus:outline-none",
optionsClassName
)}
ref={setPopperElement}
@@ -166,9 +166,9 @@ function Option(props: ICustomSelectItemProps) {
value={value}
className={({ active }) =>
cn(
"flex cursor-pointer items-center justify-between gap-2 truncate rounded-sm px-1 py-1.5 text-secondary select-none",
"nodedc-dropdown-option cursor-pointer text-secondary",
{
"bg-layer-transparent-hover": active,
"bg-white/6": active,
},
className
)
@@ -75,8 +75,14 @@ export function AlertModalCore(props: Props) {
const Icon = VARIANT_ICONS[variant];
return (
<ModalCore isOpen={isOpen} handleClose={handleClose} position={position} width={width}>
<div className="flex flex-col items-center gap-4 p-5 sm:flex-row sm:items-start">
<ModalCore
isOpen={isOpen}
handleClose={handleClose}
position={position}
width={width}
className="transition-[width] ease-linear"
>
<div className="flex flex-col items-center gap-4 px-6 pt-6 pb-5 sm:flex-row sm:items-start">
{!hideIcon && (
<span
className={cn(
@@ -88,15 +94,24 @@ export function AlertModalCore(props: Props) {
</span>
)}
<div className="text-center sm:text-left">
<h3 className="text-16 font-medium">{title}</h3>
<h3 className="text-18 font-medium text-secondary">{title}</h3>
<p className="mt-1 text-13 text-secondary">{content}</p>
</div>
</div>
<div className="flex flex-col-reverse gap-2 border-t-[0.5px] border-subtle px-5 py-4 sm:flex-row sm:justify-end">
<Button variant="secondary" onClick={handleClose}>
<div className="flex flex-col-reverse gap-3 border-t border-subtle/70 px-6 py-4 sm:flex-row sm:justify-end">
<Button variant="secondary" onClick={handleClose} className="nodedc-modal-secondary-button min-w-[8.25rem]">
{secondaryButtonText}
</Button>
<Button variant={BUTTON_VARIANTS[variant]} tabIndex={1} onClick={handleSubmit} loading={isSubmitting}>
<Button
variant={BUTTON_VARIANTS[variant]}
tabIndex={1}
onClick={handleSubmit}
loading={isSubmitting}
className={cn("min-w-[8.25rem]", {
"nodedc-modal-danger-button": variant === "danger",
"nodedc-modal-primary-button": variant === "primary",
})}
>
{isSubmitting ? primaryButtonText.loading : primaryButtonText.default}
</Button>
</div>