import{n as e,o as t,r as n}from"./rolldown-runtime-C0FnF6B9.js";import{t as r}from"./react-C21x__mS.js";import{n as i}from"./iframe-DaN-XFub.js";import{t as a}from"./react-dom-2o2phaJG.js";import{a as o,n as s,r as c,t as l}from"./dom-B3G_GtJw.js";import{n as u,t as d}from"./Button-mjF9HSg0.js";function f({title:e,description:t,open:n,onClose:r,minWidth:i,children:a}){let c=(0,p.useId)(),u=(0,p.useId)(),d=o({active:n,trapFocus:!0,restoreFocus:!0,initialFocus:`auto`});if(s({active:n,onDismiss:r,containerRef:d}),!n||typeof document>`u`)return null;let f=l(`dialog-root`);return f?(0,m.createPortal)((0,h.jsx)(`div`,{className:`fixed inset0 flexCenter surfaceBackdrop`,style:{zIndex:`var(--z-dialog)`},onMouseDown:e=>e.target===e.currentTarget&&r(),children:(0,h.jsxs)(`div`,{ref:d,role:`dialog`,"aria-modal":`true`,"aria-labelledby":e?c:void 0,"aria-describedby":t?u:void 0,tabIndex:-1,className:`surface0 shadowMd paddingLg radiusSm`,style:{minWidth:i},children:[e&&(0,h.jsx)(`h2`,{id:c,className:`margin0`,children:e}),t&&(0,h.jsx)(`p`,{id:u,children:t}),a]})}),f):null}var p,m,h;function g(){return(g=e((()=>{p=t(r(),1),c(),m=a(),h=i()})))()}var _=n({Controlled:()=>x,Opened:()=>S,__namedExportsOrder:()=>C,default:()=>b}),v,y,b,x,S,C;function w(){return(w=e((()=>{v=r(),u(),g(),y=i(),b={title:`Shared/UI/Dialog`,component:f,args:{title:`Подтверждение операции`,description:`Проверьте параметры перед выполнением действия.`,open:!1,onClose:()=>{},minWidth:360,children:(0,y.jsx)(`div`,{children:`Содержимое диалога`})},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{title:{description:`Заголовок диалогового окна.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},open:{description:`Управляет видимостью диалога.`,control:`boolean`},onClose:{description:`Вызывается при закрытии диалога.`,control:!1},minWidth:{description:`Минимальная ширина контейнера окна.`,control:`text`},children:{description:`Контент внутри диалогового окна.`,control:!1}}},x={render:e=>{let[t,n]=(0,v.useState)(!1);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(d,{onClick:()=>n(!0),children:`Открыть диалог`}),(0,y.jsx)(f,{...e,open:t,onClose:()=>n(!1),children:(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`p`,{children:`Подтвердите выполнение действия.`}),(0,y.jsxs)(`div`,{style:{display:`flex`,gap:8,justifyContent:`flex-end`},children:[(0,y.jsx)(d,{variant:`transparent`,onClick:()=>n(!1),children:`Отмена`}),(0,y.jsx)(d,{variant:`success`,onClick:()=>n(!1),children:`Подтвердить`})]})]})})]})}},S={render:e=>{let[t,n]=(0,v.useState)(!0);return(0,y.jsx)(f,{...e,open:t,onClose:()=>n(!1),children:(0,y.jsx)(`div`,{children:`Диалог изначально открыт для демонстрации верстки.`})})},args:{open:!0}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
  render: args => {
    const [open, setOpen] = useState(false);
    return <>
                <Button onClick={() => setOpen(true)}>Открыть диалог</Button>
                <Dialog {...args} open={open} onClose={() => setOpen(false)} children={<div>
                            <p>Подтвердите выполнение действия.</p>
                            <div style={{
          display: "flex",
          gap: 8,
          justifyContent: "flex-end"
        }}>
                                <Button variant="transparent" onClick={() => setOpen(false)}>
                                    Отмена
                                </Button>
                                <Button variant="success" onClick={() => setOpen(false)}>
                                    Подтвердить
                                </Button>
                            </div>
                        </div>} />
            </>;
  }
}`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
  render: args => {
    const [open, setOpen] = useState(true);
    return <Dialog {...args} open={open} onClose={() => setOpen(false)} children={<div>Диалог изначально открыт для демонстрации верстки.</div>} />;
  },
  args: {
    open: true
  }
}`,...S.parameters?.docs?.source}}},C=[`Controlled`,`Opened`]})))()}export{w as i,_ as n,S as r,x as t};