import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-GrlyTB2d.js";import{n as r,t as i}from"./Listbox-Y48zMyIW.js";var a=t({CustomRender:()=>p,Disabled:()=>m,MultiSelect:()=>f,SingleSelect:()=>d,__namedExportsOrder:()=>h,default:()=>u});function o(e){return e.multiple?(0,s.jsx)(i,{...e,multiple:!0}):(0,s.jsx)(i,{...e})}var s,c,l,u,d,f,p,m,h;function g(){return(g=e((()=>{r(),s=n(),{useArgs:c}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:l}=__STORYBOOK_MODULE_TEST__,u={title:`Shared/UI/Listbox`,component:o,args:{options:[{id:`low`,label:`Низкий`},{id:`medium`,label:`Средний`},{id:`high`,label:`Высокий`},{id:`critical`,label:`Критический`,disabled:!0}],multiple:!1,value:`medium`,onChange:l()},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{options:{description:`Массив доступных опций списка.`,control:!1},multiple:{description:`Режим множественного выбора.`,control:`boolean`},value:{description:`Текущее выбранное значение (или массив значений).`,control:!1},defaultValue:{description:`Начальное значение для uncontrolled-режима.`,control:!1},disabled:{description:`Блокирует фокусировку, навигацию и изменение выбора.`,control:`boolean`},onChange:{description:`Вызывается при выборе опции.`,control:!1},focusOnMount:{description:`Автофокус списка при монтировании.`,control:`boolean`},renderItem:{description:`Кастомный рендер строки списка.`,control:!1},getKey:{description:`Функция генерации ключа для опции.`,control:!1}}},d={render:function(e){let[,t]=c(),n=typeof e.value==`string`?e.value:`medium`;return(0,s.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:280},children:[(0,s.jsx)(o,{...e,multiple:!1,value:n,onChange:(n,r)=>{typeof n==`string`&&(e.onChange?.(n,r),t({value:n}))}}),(0,s.jsxs)(`div`,{children:[`Выбрано: `,n]})]})}},f={render:function(e){let[,t]=c(),n=Array.isArray(e.value)?e.value:[`low`,`high`];return(0,s.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:320},children:[(0,s.jsx)(o,{...e,multiple:!0,value:n,onChange:(n,r)=>{Array.isArray(n)&&(e.onChange?.(n,r),t({value:n}))}}),(0,s.jsxs)(`div`,{children:[`Выбрано: `,n.join(`, `)||`пусто`]})]})},args:{multiple:!0}},p={render:function(e){let[,t]=c(),n=typeof e.value==`string`?e.value:`low`;return(0,s.jsx)(o,{...e,value:n,onChange:(n,r)=>{typeof n==`string`&&(e.onChange?.(n,r),t({value:n}))},renderItem:(e,t,n)=>(0,s.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,width:`100%`,opacity:e.disabled?.5:1},children:[(0,s.jsx)(`span`,{children:e.label}),(0,s.jsx)(`span`,{children:t?`Выбрано`:n?`Фокус`:``})]})})}},m={args:{disabled:!0,value:`medium`},render:e=>(0,s.jsx)(o,{...e})},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    const [, updateArgs] = useArgs<ComponentProps<typeof StringListbox>>();
    const value = typeof args.value === "string" ? args.value : "medium";
    return <div style={{
      display: "grid",
      gap: 12,
      maxWidth: 280
    }}>
                <StringListbox {...args} multiple={false} value={value} onChange={(next, option) => {
        if (typeof next !== "string") return;
        args.onChange?.(next, option);
        updateArgs({
          value: next
        });
      }} />
                <div>Выбрано: {value}</div>
            </div>;
  }
}`,...d.parameters?.docs?.source}}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    const [, updateArgs] = useArgs<ComponentProps<typeof StringListbox>>();
    const value = Array.isArray(args.value) ? args.value : ["low", "high"];
    return <div style={{
      display: "grid",
      gap: 12,
      maxWidth: 320
    }}>
                <StringListbox {...args} multiple value={value} onChange={(next, option) => {
        if (!Array.isArray(next)) return;
        args.onChange?.(next, option);
        updateArgs({
          value: next
        });
      }} />
                <div>Выбрано: {value.join(", ") || "пусто"}</div>
            </div>;
  },
  args: {
    multiple: true
  }
}`,...f.parameters?.docs?.source}}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
  render: function Render(args) {
    const [, updateArgs] = useArgs<ComponentProps<typeof StringListbox>>();
    const value = typeof args.value === "string" ? args.value : "low";
    return <StringListbox {...args} value={value} onChange={(next, option) => {
      if (typeof next !== "string") return;
      args.onChange?.(next, option);
      updateArgs({
        value: next
      });
    }} renderItem={(option, selected, active) => <div style={{
      display: "flex",
      justifyContent: "space-between",
      width: "100%",
      opacity: option.disabled ? 0.5 : 1
    }}>
                        <span>{option.label}</span>
                        <span>{selected ? "Выбрано" : active ? "Фокус" : ""}</span>
                    </div>} />;
  }
}`,...p.parameters?.docs?.source}}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
  args: {
    disabled: true,
    value: "medium"
  },
  render: args => <StringListbox {...args} />
}`,...m.parameters?.docs?.source}}},h=[`SingleSelect`,`MultiSelect`,`CustomRender`,`Disabled`]})))()}export{d as a,f as i,m as n,g as o,a as r,p as t};