UI - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: glass-сайдбар, popup рабочей области и полировка layout

This commit is contained in:
DCCONSTRUCTIONS
2026-04-19 17:23:12 +03:00
parent 4ba06307ed
commit b46390ccdd
27 changed files with 589 additions and 133 deletions
@@ -973,7 +973,7 @@ export default {
assignee: "Add assignees",
start_date: "Add start date",
due_date: "Add due date",
parent: "Add parent work item",
parent: "Add parent item",
sub_issue: "Add sub-work item",
relation: "Add relation",
link: "Add link",
@@ -1130,7 +1130,7 @@ export default {
assignee: "Добавить ответственных",
start_date: "Добавить дату начала",
due_date: "Добавить срок выполнения",
parent: "Добавить родительский рабочий элемент",
parent: "Добавить родительский элемент",
sub_issue: "Добавить подэлемент",
relation: "Добавить связь",
link: "Добавить ссылку",
@@ -27,6 +27,7 @@ const Button = React.forwardRef(function Button(props: ButtonProps, ref: React.F
return (
<button
data-slot="button"
ref={ref}
type={type}
className={cn(buttonVariants({ variant, size }), className)}
@@ -41,8 +41,9 @@ export interface DialogTitleProps extends React.ComponentProps<typeof BaseDialog
}
// Constants
const OVERLAY_CLASSNAME = cn("fixed inset-0 z-90 bg-backdrop");
const BASE_CLASSNAME = "relative text-left bg-surface-1 rounded-lg shadow-md w-full z-100 border border-subtle";
const OVERLAY_CLASSNAME = cn("fixed inset-0 z-90 bg-backdrop/70 backdrop-blur-sm");
const BASE_CLASSNAME =
"nodedc-glass-modal relative w-full rounded-[28px] border border-subtle/70 bg-surface-1/78 text-left shadow-[0_16px_48px_rgba(0,0,0,0.34)] backdrop-blur-2xl z-100";
// Utility functions
const getPositionClassNames = (position: DialogPosition) =>
@@ -27,6 +27,7 @@ const IconButton = React.forwardRef(function IconButton(
return (
<button
data-slot="icon-button"
ref={ref}
type={type}
className={cn(iconButtonVariants({ variant, size }), className)}
@@ -84,7 +84,7 @@ export function ModalPortal({
const positionClass = fullScreen ? "" : PORTAL_POSITION_CLASSES[position];
return cn(
"shadow-lg absolute top-0 h-full bg-white transition-transform duration-300 ease-out",
"nodedc-glass-modal absolute top-0 h-full rounded-[28px] border border-subtle/70 bg-surface-1/78 shadow-[0_16px_48px_rgba(0,0,0,0.34)] backdrop-blur-2xl transition-transform duration-300 ease-out",
widthClass,
positionClass,
contentClassName
@@ -101,7 +101,7 @@ export function ModalPortal({
>
{showOverlay && (
<div
className={cn("absolute inset-0 bg-black/50 transition-colors duration-300", overlayClassName)}
className={cn("absolute inset-0 bg-black/50 backdrop-blur-sm transition-colors duration-300", overlayClassName)}
onClick={handleOverlayClick}
aria-hidden="true"
/>
@@ -41,7 +41,7 @@ export function ModalCore(props: Props) {
leaveFrom="opacity-100"
leaveTo="opacity-0"
>
<div className="fixed inset-0 bg-backdrop transition-opacity" />
<div className="fixed inset-0 bg-backdrop/70 backdrop-blur-sm transition-opacity" />
</Transition.Child>
<div className="fixed inset-0 z-30 overflow-y-auto">
@@ -57,7 +57,7 @@ export function ModalCore(props: Props) {
>
<Dialog.Panel
className={cn(
"relative w-full transform rounded-lg bg-surface-1 text-left shadow-raised-200 transition-all",
"nodedc-glass-modal relative w-full transform rounded-[28px] border border-subtle/70 bg-surface-1/78 text-left shadow-[0_16px_48px_rgba(0,0,0,0.34)] backdrop-blur-2xl transition-all",
width,
className
)}