@reformer/builder 3.0.0-beta.6 → 3.0.0-beta.8
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.
- package/README.md +32 -198
- package/bin/reformer-builder.d.mts +7 -9
- package/bin/reformer-builder.mjs +43 -54
- package/dist/assets/css/index-CHjtwIsF.css +1 -0
- package/dist/assets/css/monaco-runtime-Ch4loDnq.css +1 -0
- package/dist/assets/i18n/en-uNov8AYL.js +1 -0
- package/dist/assets/i18n/ru-BNkTKaU6.js +1 -0
- package/dist/assets/js/index-C4LjLCAZ.js +57 -0
- package/dist/assets/monaco/html-DT-eqvPn.js +1 -0
- package/dist/assets/monaco/javascript-CIJHG94Q.js +1 -0
- package/dist/assets/monaco/jsonMode-rEmNPnut.js +12 -0
- package/dist/assets/monaco/monaco-runtime-Dqtu7Dpv.js +924 -0
- package/dist/assets/monaco/typescript-Bp6doald.js +1 -0
- package/dist/assets/monaco/xml-D8D5UF1F.js +1 -0
- package/dist/assets/monaco/yaml-DsiyZy1w.js +1 -0
- package/dist/assets/plugins/ai-CFoGZBd-.js +178 -0
- package/dist/assets/{byok-D0ncJaTq.js → plugins/ai-byok-a7JlkizL.js} +55 -55
- package/dist/assets/plugins/ai-knowledge-docs-BcbN7Ar1.js +1 -0
- package/dist/assets/plugins/ai-knowledge-index-CncxmxEf.js +1 -0
- package/dist/assets/plugins/codegen-DPh2ynzq.js +520 -0
- package/dist/assets/{MarkdownPreview-DXY3eJ1Z.js → plugins/editor-markdown-MarkdownPreview-CjVpNIV5.js} +20 -20
- package/dist/assets/plugins/editor-markdown-McTrLzET.js +2 -0
- package/dist/assets/plugins/editor-monaco-7BM478IS.js +14 -0
- package/dist/assets/plugins/editor-schema-DOoRcy16.js +4 -0
- package/dist/assets/plugins/files-WhQya3nC.js +2 -0
- package/dist/assets/plugins/plain-4ISpXJVh.js +78 -0
- package/dist/assets/plugins/plugin-manager-Ek0Ph0Jj.js +1 -0
- package/dist/assets/plugins/preview-BSh_puVw.js +1 -0
- package/dist/assets/plugins/preview-runtime-B8NzDg53.js +3 -0
- package/dist/assets/plugins/templates-BE9B0S3J.js +2 -0
- package/dist/assets/vendor/ajv-N5zGp_lm.js +8 -0
- package/dist/assets/vendor/calendar-base-BW48REpD-BYc4qqRC.js +1 -0
- package/dist/assets/vendor/carousel-BDyy29mt.js +1 -0
- package/dist/assets/vendor/chart-Cbp9J5YJ.js +52 -0
- package/dist/assets/vendor/collapsible-base-DZxAKbAF-DtQ4867U.js +1 -0
- package/dist/assets/vendor/drawer-BdLrIIeu.js +3 -0
- package/dist/assets/vendor/highlight.js/common-B96EybDa.js +5 -0
- package/dist/assets/vendor/index-BTAoX623.js +6 -0
- package/dist/assets/vendor/index-D8ACoUqy.js +51 -0
- package/dist/assets/vendor/input-otp-BoPlZ6dt.js +20 -0
- package/dist/assets/vendor/lucide-react/arrow-left-BlVPt6Ag.js +1 -0
- package/dist/assets/vendor/lucide-react/arrow-right-I5ntlq0-.js +1 -0
- package/dist/assets/vendor/lucide-react/calendar-L-57WZlQ.js +1 -0
- package/dist/assets/vendor/lucide-react/eye-DVTIIHcH.js +1 -0
- package/dist/assets/vendor/lucide-react/file-code-corner-DUfMS_yi.js +1 -0
- package/dist/assets/vendor/lucide-react/folder-tree-COyCkaDl.js +1 -0
- package/dist/assets/vendor/lucide-react/minus-zJRYKuAo.js +1 -0
- package/dist/assets/vendor/lucide-react/plus-B0WG2JcM.js +1 -0
- package/dist/assets/vendor/lucide-react/rotate-ccw-BSYk0mux.js +1 -0
- package/dist/assets/vendor/lucide-react/wrench-mybFdWHD.js +1 -0
- package/dist/assets/vendor/message-base-B5jT1FuY-BvDKjuSs.js +1 -0
- package/dist/assets/vendor/message-scroller-B2tlOtxT.js +1 -0
- package/dist/assets/vendor/reformer-builder-stack-reformer/node-token-VfZdCqcs.js +1 -0
- package/dist/assets/vendor/reformer-builder-stack-reformer/paths-DeGLVPUt.js +1 -0
- package/dist/assets/vendor/reformer-builder-stack-reformer/rules-CQSVDlmo.js +1 -0
- package/dist/assets/vendor/reformer-builder-stack-reformer/selectors-CjNSFsK9.js +1 -0
- package/dist/assets/vendor/reformer-builder-toolkit/marker-DiOaKX-e.js +4 -0
- package/dist/assets/vendor/reformer-builder-toolkit/naming-9aaM0Wbc.js +1 -0
- package/dist/assets/vendor/reformer-cdk/define-steps-CyGUrx9p-vcI1WbRz.js +1 -0
- package/dist/assets/vendor/reformer-cdk/file-upload-D8FOieMN.js +1 -0
- package/dist/assets/vendor/reformer-cdk/form-array-DlFEb40E.js +1 -0
- package/dist/assets/vendor/reformer-cdk/form-wizard-DDLs_-Ya.js +1 -0
- package/dist/assets/vendor/reformer-cdk/index-CeCSv2Go.js +1 -0
- package/dist/assets/vendor/reformer-cdk/list-DkqJWU70.js +1 -0
- package/dist/assets/vendor/reformer-form-registry/index-DflpiFcm.js +1 -0
- package/dist/assets/vendor/reformer-form-registry/loader-BK2c_fCA-BtIEWzon.js +2 -0
- package/dist/assets/vendor/reformer-form-registry/react-BiEQRau3.js +1 -0
- package/dist/assets/vendor/reformer-form-registry/storage-BbhnRE7V.js +1 -0
- package/dist/assets/vendor/reformer-form-registry/types-DoMH_n1U-BSN9tyeo.js +1 -0
- package/dist/assets/vendor/reformer-renderer-json/validate-DXzHWMfT.js +8 -0
- package/dist/assets/vendor/reformer-ui-kit/alert-base-WOl_V-qI-2ZIfaT1o.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/calendar-Bm2DDJDU.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/calendar-base.props-CqesU7CZ-tpDaVQbq.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/combobox-Dm4bFCVg.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/combobox-tree.props-BEQhnapq-DQmsBcYk.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/component-catalog-BEv0Zf-R.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/date-picker-CkVXt6Uh.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/date-picker-base.props-WBloFrDq-QhVYMCMG.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/input-otp-base.props-D1xRJiuO-DBKxHsz1.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/meta-YyKXxsBK.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/sidebar-CMzt3bAb.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/skeleton-base-C-lIzi0D-BjmjAmE9.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/toggle-group-multi.props-7kNpujN6-jLENMOcN.js +1 -0
- package/dist/assets/vendor/reformer-ui-kit/tree-node-schema-xHyN0QCr-CLbM_Aw_.js +1 -0
- package/dist/assets/vendor/render-DutGx1TC.js +46 -0
- package/dist/assets/vendor/sheet-base-Bdh947IC-CH2UsjIt.js +1 -0
- package/dist/assets/{typescript-BuFxP6n6.js → vendor/typescript/typescript-BejA4q8A.js} +1 -1
- package/dist/index.html +4 -4
- package/package.json +19 -18
- package/runtime-config.schema.json +32 -53
- package/dist/assets/App-DRJnHAjE.js +0 -1137
- package/dist/assets/BootError-CiPUX-Tr.js +0 -1
- package/dist/assets/ChatPanel-CnU7eT8N.js +0 -82
- package/dist/assets/CodeEditor-Wv0NRzV8.js +0 -1
- package/dist/assets/RawJsonEditor-c354H_pY.js +0 -1
- package/dist/assets/abap-DLDM7-KI.js +0 -1
- package/dist/assets/apex-DNDY2TF8.js +0 -1
- package/dist/assets/azcli-Y6nb8tq_.js +0 -1
- package/dist/assets/bat-BwHxbl9M.js +0 -1
- package/dist/assets/bicep-CFznDFnq.js +0 -2
- package/dist/assets/boot-5_JU0zay.js +0 -2
- package/dist/assets/cameligo-Bf6VGUru.js +0 -1
- package/dist/assets/clojure-Dnu-v4kV.js +0 -1
- package/dist/assets/coffee-Bd8akH9Z.js +0 -1
- package/dist/assets/cpp-BbWJElDN.js +0 -1
- package/dist/assets/csharp-Co3qMtFm.js +0 -1
- package/dist/assets/csp-D-4FJmMZ.js +0 -1
- package/dist/assets/cypher-cTPe9QuQ.js +0 -1
- package/dist/assets/dart-BOtBlQCF.js +0 -1
- package/dist/assets/dockerfile-BG73LgW2.js +0 -1
- package/dist/assets/ecl-BEgZUVRK.js +0 -1
- package/dist/assets/editor-BzOv8av-.css +0 -1
- package/dist/assets/editor.api-CMCnIB-P.js +0 -865
- package/dist/assets/elixir-BkW5O-1t.js +0 -1
- package/dist/assets/flow9-BeJ5waoc.js +0 -1
- package/dist/assets/freemarker2-C645vQBx.js +0 -3
- package/dist/assets/fsharp-PahG7c26.js +0 -1
- package/dist/assets/go-acbASCJo.js +0 -1
- package/dist/assets/graphql-BxJiqAUM.js +0 -1
- package/dist/assets/handlebars-B5DnoJkq.js +0 -1
- package/dist/assets/hcl-DtV1sZF8.js +0 -1
- package/dist/assets/html-TNLrm0oH.js +0 -1
- package/dist/assets/index--0tYkbnz.js +0 -3
- package/dist/assets/index-BKc-soqk.css +0 -1
- package/dist/assets/index-BLGbxQaR.js +0 -104
- package/dist/assets/index-Bb-H-IRh.js +0 -1
- package/dist/assets/index-BivFj4xA.js +0 -10
- package/dist/assets/index-C_YSTVSM.js +0 -68
- package/dist/assets/index-Crsub4wy.js +0 -5028
- package/dist/assets/index-D2vdVqoN.js +0 -11
- package/dist/assets/index-DBBur3Kg.js +0 -4709
- package/dist/assets/index-DzAasWzr.css +0 -1
- package/dist/assets/ini-Kd9XrMLS.js +0 -1
- package/dist/assets/java-CXBNlu9o.js +0 -1
- package/dist/assets/javascript-YmJoSFNK.js +0 -1
- package/dist/assets/jsonMode-BgHFRVOe.css +0 -1
- package/dist/assets/jsonMode-CUyarZ9Q.js +0 -70
- package/dist/assets/julia-cl7-CwDS.js +0 -1
- package/dist/assets/kotlin-s7OhZKlX.js +0 -1
- package/dist/assets/less-9HpZscsL.js +0 -2
- package/dist/assets/lexon-OrD6JF1K.js +0 -1
- package/dist/assets/liquid-CsrVJLkL.js +0 -1
- package/dist/assets/load-DahhU28W.js +0 -11
- package/dist/assets/lua-Cyyb5UIc.js +0 -1
- package/dist/assets/m3-B8OfTtLu.js +0 -1
- package/dist/assets/mdx-DDXJg3VI.js +0 -1
- package/dist/assets/mips-CiqrrVzr.js +0 -1
- package/dist/assets/monaco-languages-CfiXabIS.js +0 -2
- package/dist/assets/monaco-setup-DPehMZ7o.js +0 -12
- package/dist/assets/msdax-DmeGPVcC.js +0 -1
- package/dist/assets/mysql-C_tMU-Nz.js +0 -1
- package/dist/assets/objective-c-BDtDVThU.js +0 -1
- package/dist/assets/pascal-vHIfCaH5.js +0 -1
- package/dist/assets/pascaligo-DtZ0uQbO.js +0 -1
- package/dist/assets/perl-Ub6l9XKa.js +0 -1
- package/dist/assets/pgsql-BlNEE0v7.js +0 -1
- package/dist/assets/php-BBUBE1dy.js +0 -1
- package/dist/assets/pla-DSh2-awV.js +0 -1
- package/dist/assets/postiats-CocnycG-.js +0 -1
- package/dist/assets/powerquery-tScXyioY.js +0 -1
- package/dist/assets/powershell-COWaemsV.js +0 -1
- package/dist/assets/protobuf-Brw8urJB.js +0 -2
- package/dist/assets/pug-8SOpv6rk.js +0 -1
- package/dist/assets/python-DpnOD9VM.js +0 -1
- package/dist/assets/qsharp-Bw9ernYp.js +0 -1
- package/dist/assets/r-j7ic8hl3.js +0 -1
- package/dist/assets/razor-BsF1GcFZ.js +0 -1
- package/dist/assets/redis-Bu5POkcn.js +0 -1
- package/dist/assets/redshift-Bs9aos_-.js +0 -1
- package/dist/assets/reformer-ui-kit-11-Bml4F8Os.js +0 -1
- package/dist/assets/reformer-ui-kit-BWUaVvO0.js +0 -1
- package/dist/assets/restructuredtext-CqXO7rUv.js +0 -1
- package/dist/assets/ruby-zBfavPgS.js +0 -1
- package/dist/assets/rust-BzKRNQWT.js +0 -1
- package/dist/assets/sb-BBc9UKZt.js +0 -1
- package/dist/assets/scala-D9hQfWCl.js +0 -1
- package/dist/assets/scheme-BPhDTwHR.js +0 -1
- package/dist/assets/scss-CBJaRo0y.js +0 -3
- package/dist/assets/shell-DiJ1NA_G.js +0 -1
- package/dist/assets/solidity-Db0IVjzk.js +0 -1
- package/dist/assets/sophia-CnS9iZB_.js +0 -1
- package/dist/assets/sparql-CJmd_6j2.js +0 -1
- package/dist/assets/sql-ClhHkBeG.js +0 -1
- package/dist/assets/st-CHwy0fLd.js +0 -1
- package/dist/assets/swift-CnmFD0ga.js +0 -1
- package/dist/assets/systemverilog-Bs9z6M-B.js +0 -1
- package/dist/assets/tcl-Dm6ycUr_.js +0 -1
- package/dist/assets/twig-Csy3S7wG.js +0 -1
- package/dist/assets/typescript-D7ER-DvA.js +0 -1
- package/dist/assets/typespec-Btyra-wh.js +0 -1
- package/dist/assets/useFormField-BLbvmpme-CM4hze15.js +0 -1
- package/dist/assets/vb-Db0cS2oM.js +0 -1
- package/dist/assets/wgsl-BTesnYfV.js +0 -298
- package/dist/assets/xml-5MzZ4-DY.js +0 -1
- package/dist/assets/yaml-Ch0E2rII.js +0 -1
- /package/dist/assets/{codicon-Brq4_Ui5.ttf → fonts/codicon-Brq4_Ui5.ttf} +0 -0
- /package/dist/assets/{css-DdJfP1eB.js → monaco/css-DdJfP1eB.js} +0 -0
- /package/dist/assets/{editor.worker-CRaYpIdo.js → monaco/editor.worker-CRaYpIdo.js} +0 -0
- /package/dist/assets/{json.worker-C5PEkLU0.js → monaco/json.worker-C5PEkLU0.js} +0 -0
- /package/dist/assets/{markdown-BFxVWTOG.js → monaco/markdown-BFxVWTOG.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Y as s,ao as h,Z as e,as as j,au as P,av as g,aw as k,af as y,az as C,ap as v,aq as w,aQ as D}from"../../js/index-C4LjLCAZ.js";import{f as N,j as b}from"../calendar-base-BW48REpD-BYc4qqRC.js";import{e as J}from"./date-picker-base.props-WBloFrDq-QhVYMCMG.js";import{C as F}from"../lucide-react/calendar-L-57WZlQ.js";const d=s.forwardRef(function({value:a,onChange:r,placeholder:o="Выберите дату",dateFormat:l="PPP",className:c,disabled:u,...f},m){const[p,t]=s.useState(!1),n=s.useRef(null);return s.useImperativeHandle(m,()=>({...j(n),open:()=>t(!0),close:()=>t(!1)}),[]),e.jsxs(P,{open:p,onOpenChange:t,children:[e.jsx(g,{asChild:!0,children:e.jsxs(k,{ref:n,type:"button",variant:"outline","data-slot":"date-picker-trigger","data-empty":a?void 0:!0,disabled:u,className:y("w-full justify-start text-left font-normal data-[empty=true]:text-muted-foreground",c),...f,children:[e.jsx(F,{}),a?N(a,l):e.jsx("span",{children:o})]})}),e.jsx(C,{className:"w-auto p-0",align:"start",children:e.jsx(b,{mode:"single",selected:a,onSelect:x=>{r?.(x),t(!1)},autoFocus:!0})})]})});d.displayName="DatePicker";const i=s.forwardRef(function({selected:a,onSelect:r,...o},l){return e.jsx(d,{ref:l,value:a,onChange:r,...o})});i.displayName="DatePickerControlled";const B=h(w(i,D),v,{exposesHandle:!0});export{d as DatePicker,B as DatePickerBaseField,B as DatePickerField,J as datePickerBasePropsSchema};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e={type:"object",additionalProperties:!1,"x-registryName":"DatePicker",properties:{placeholder:{type:"string",default:"Выберите дату",description:"Текст кнопки-триггера, когда дата не выбрана.","x-doc":{group:"Textfield",type:"string"}},dateFormat:{type:"string",default:"PPP",description:"Формат отображения выбранной даты — токены date-fns (напр. dd.MM.yyyy).","x-doc":{group:"Behavior",type:"string"}},className:{type:"string",description:"Доп. CSS-класс кнопки-триггера.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"Date | null",description:"Выбранная дата. null — ничего не выбрано."},onChange:{group:"Control",type:"(value: Date | null) => void",description:"Выбор даты в календаре. Повторный клик по выбранной дате сбрасывает в null."}}},t=Object.freeze(Object.defineProperty({__proto__:null,datePickerBasePropsSchema:e},Symbol.toStringTag,{value:"Module"}));export{e,t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e={type:"object",additionalProperties:!1,"x-registryName":"InputOTP","x-variantGroup":"Input","x-variant":"OTP",properties:{maxLength:{type:"number",default:6,minimum:1,description:"Число слотов (длина кода). Дефолтная раскладка разворачивает одну группу из maxLength слотов.","x-doc":{group:"Behavior",type:"number"}},className:{type:"string",description:"Доп. CSS-класс скрытого input.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"string | null",description:"Набранный код. null — пусто."},onChange:{group:"Control",type:"(value: string | null) => void",description:"Изменение кода. Пустой ввод → null."}}},t=Object.freeze(Object.defineProperty({__proto__:null,inputOtpBasePropsSchema:e},Symbol.toStringTag,{value:"Module"}));export{e,t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as a,a as i,i as p,t as n,b as s,c as l,d,r as c,e as u,f as y,g as m,h as g,j as b,k as S,l as h,m as f,n as P,p as x,q as B,s as _,u as v}from"./toggle-group-multi.props-7kNpujN6-jLENMOcN.js";import{v as Fo,w as Vo,x as qo,y as Ro,z as Eo,A as Ko,B as Uo,C as Jo,D as Wo,E as Yo,F as Zo,G as Qo,H as Xo,I as et,J as ot,K as tt,L as rt,M as at,N as it,O as pt}from"./toggle-group-multi.props-7kNpujN6-jLENMOcN.js";import{o as j}from"./calendar-base.props-CqesU7CZ-tpDaVQbq.js";import{e as st}from"./calendar-base.props-CqesU7CZ-tpDaVQbq.js";import{p as k,a as O,d as T,s as C}from"./combobox-tree.props-BEQhnapq-DQmsBcYk.js";import{t as dt,r as ct,i as ut,n as yt}from"./combobox-tree.props-BEQhnapq-DQmsBcYk.js";import{t as N}from"./date-picker-base.props-WBloFrDq-QhVYMCMG.js";import{e as gt}from"./date-picker-base.props-WBloFrDq-QhVYMCMG.js";import{t as z}from"./input-otp-base.props-D1xRJiuO-DBKxHsz1.js";import{e as St}from"./input-otp-base.props-D1xRJiuO-DBKxHsz1.js";import"./tree-node-schema-xHyN0QCr-CLbM_Aw_.js";const M={value:{group:"Control",type:"unknown",kind:"readonly",description:"Текущее значение поля. Резолвится формой (сигнал модели), не задаётся в componentProps."},onChange:{group:"Control",type:"(value: unknown) => void",kind:"readonly",description:"Value-based колбэк изменения. Форма подставляет control.setValue."},onBlur:{group:"Control",type:"() => void",kind:"readonly",description:"Отметка touched. Форма подставляет control.markAsTouched."},disabled:{group:"State",type:"boolean",kind:"boolean",default:!1,description:"Блокировка поля. Задаётся через control.disable()/enable(), НЕ через componentProps: FormFieldControl.tsx:104-115 ставит disabled ПОСЛЕ спреда componentProps, поэтому componentProps.disabled мёртв."}},w={properties:{tooltip:{type:"string",description:"Подсказка-тултип у иконки (i) в самом контроле: у полей ввода и селектов — внутри справа (правее крестика очистки, левее шеврона/глаза), у Checkbox/Switch — после текста, у остальных — справа от контрола.","x-doc":{group:"Textfield",type:"string"}}}};function Do(e){const t=e.additionalProperties===!1;return{type:"object",properties:{...v.properties,...w.properties,...e.properties},...t?{additionalProperties:!1}:{},"x-runtimeProps":{...M,...e["x-runtimeProps"]}}}const $={type:"object",additionalProperties:!1,"x-registryName":"Accordion",properties:{className:{type:"string",description:"CSS-класс контейнера аккордеона (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},type:{type:"string",enum:["single","multiple"],description:"Режим раскрытия: одна секция за раз (single) или несколько (multiple).","x-doc":{group:"Behavior",type:"'single' | 'multiple'",kind:"enum"}},collapsible:{type:"boolean",description:"В режиме single разрешить закрыть открытую секцию (не оставлять всегда одну открытой).","x-doc":{group:"Behavior",type:"boolean",kind:"boolean"}},defaultValue:{type:"string",description:"Значение(-я) секции, открытой по умолчанию (uncontrolled).","x-doc":{group:"Behavior",type:"string | string[]"}},disabled:{type:"boolean",description:"Заблокировать взаимодействие со всеми секциями.","x-doc":{group:"Behavior",type:"boolean",kind:"boolean"}},orientation:{type:"string",enum:["vertical","horizontal"],default:"vertical",description:"Ориентация раскладки секций.","x-doc":{group:"Behavior",type:"'vertical' | 'horizontal'",kind:"enum"}}}},H=Object.freeze(Object.defineProperty({__proto__:null,accordionBasePropsSchema:$},Symbol.toStringTag,{value:"Module"})),A={type:"object",additionalProperties:!0,"x-registryName":"AlertDialog",properties:{defaultOpen:{type:"boolean",default:!1,description:"Открыт ли диалог изначально (неуправляемый режим).","x-doc":{group:"State",type:"boolean"}}}},D=Object.freeze(Object.defineProperty({__proto__:null,alertDialogBasePropsSchema:A},Symbol.toStringTag,{value:"Module"})),L={type:"object",additionalProperties:!1,"x-registryName":"Alert",properties:{className:{type:"string",description:"CSS-класс контейнера алерта (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},variant:{type:"string",enum:["default","destructive"],default:"default",description:"Визуальный тон алерта.","x-doc":{group:"Behavior",type:"'default' | 'destructive'",kind:"enum"}}}},G=Object.freeze(Object.defineProperty({__proto__:null,alertBasePropsSchema:L},Symbol.toStringTag,{value:"Module"})),I={type:"object",additionalProperties:!0,"x-registryName":"AspectRatio",properties:{ratio:{type:"number",default:1,description:"Соотношение сторон (ширина / высота), напр. 16/9 ≈ 1.78.","x-doc":{group:"Behavior",type:"number"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},F=Object.freeze(Object.defineProperty({__proto__:null,aspectRatioBasePropsSchema:I},Symbol.toStringTag,{value:"Module"})),V={type:"object",additionalProperties:!0,"x-registryName":"Attachment",properties:{state:{type:"string",enum:["idle","uploading","processing","error","done"],default:"done",description:"Состояние загрузки/обработки файла — влияет на стили рамки и анимацию.","x-doc":{group:"Behavior",type:"'idle' | 'uploading' | 'processing' | 'error' | 'done'",kind:"enum"}},size:{type:"string",enum:["default","sm","xs"],default:"default",description:"Размер чипа (отступы и типографика).","x-doc":{group:"Behavior",type:"'default' | 'sm' | 'xs'",kind:"enum"}},orientation:{type:"string",enum:["horizontal","vertical"],default:"horizontal",description:"Ориентация: горизонтальный чип или вертикальная карточка.","x-doc":{group:"Behavior",type:"'horizontal' | 'vertical'",kind:"enum"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},q=Object.freeze(Object.defineProperty({__proto__:null,attachmentBasePropsSchema:V},Symbol.toStringTag,{value:"Module"})),R={type:"object",additionalProperties:!1,"x-registryName":"Avatar",properties:{className:{type:"string",description:"CSS-класс аватара (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},size:{type:"string",enum:["default","sm","lg"],default:"default",description:"Размер аватара: sm (24px), default (32px), lg (40px).","x-doc":{group:"Behavior",type:"'default' | 'sm' | 'lg'",kind:"enum"}}}},E=Object.freeze(Object.defineProperty({__proto__:null,avatarBasePropsSchema:R},Symbol.toStringTag,{value:"Module"})),K={type:"object",additionalProperties:!1,"x-registryName":"Badge",properties:{className:{type:"string",description:"CSS-класс бейджа (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},variant:{type:"string",enum:["default","secondary","destructive","outline","ghost","link"],default:"default",description:"Визуальный вариант бейджа.","x-doc":{group:"Behavior",type:"'default' | 'secondary' | 'destructive' | 'outline' | 'ghost' | 'link'",kind:"enum"}}}},U=Object.freeze(Object.defineProperty({__proto__:null,badgeBasePropsSchema:K},Symbol.toStringTag,{value:"Module"})),J={type:"object",additionalProperties:!0,"x-registryName":"Breadcrumb",properties:{className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},W=Object.freeze(Object.defineProperty({__proto__:null,breadcrumbBasePropsSchema:J},Symbol.toStringTag,{value:"Module"})),Y={type:"object",additionalProperties:!0,"x-registryName":"Bubble",properties:{variant:{type:"string",enum:["default","secondary","muted","tinted","outline","ghost","destructive"],default:"default",description:"Вариант оформления пузыря.","x-doc":{group:"Behavior",type:"'default' | 'secondary' | 'muted' | 'tinted' | 'outline' | 'ghost' | 'destructive'",kind:"enum"}},align:{type:"string",enum:["start","end"],default:"start",description:"Сторона выравнивания пузыря (start — слева, end — справа).","x-doc":{group:"Behavior",type:"'start' | 'end'",kind:"enum"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},Z=Object.freeze(Object.defineProperty({__proto__:null,bubbleBasePropsSchema:Y},Symbol.toStringTag,{value:"Module"})),Q={type:"object",additionalProperties:!1,"x-registryName":"ButtonGroup",properties:{className:{type:"string",description:"CSS-класс группы кнопок (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},orientation:{type:"string",enum:["horizontal","vertical"],default:"horizontal",description:"Ориентация группы: горизонтальная (по умолчанию) или вертикальная (cva).","x-doc":{group:"Behavior",type:"'horizontal' | 'vertical'",kind:"enum"}}}},X=Object.freeze(Object.defineProperty({__proto__:null,buttonGroupBasePropsSchema:Q},Symbol.toStringTag,{value:"Module"})),ee={type:"object",additionalProperties:!1,"x-registryName":"Button",properties:{className:{type:"string",description:"Доп. CSS-класс кнопки (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},variant:{type:"string",enum:["default","destructive","outline","secondary","ghost","link"],default:"default",description:"Визуальный вариант кнопки (cva).","x-doc":{group:"Behavior",type:"'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link'",kind:"enum"}},size:{type:"string",enum:["default","xs","sm","lg","icon","icon-xs","icon-sm","icon-lg"],default:"default",description:"Размер кнопки (cva); icon-* — квадратные для иконок без текста.","x-doc":{group:"Behavior",type:"'default' | 'xs' | 'sm' | 'lg' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg'",kind:"enum"}},type:{type:"string",enum:["button","submit","reset"],description:"HTML-тип кнопки: button | submit | reset.","x-doc":{group:"Behavior",type:"'button' | 'submit' | 'reset'",kind:"enum"}},disabled:{type:"boolean",description:"Заблокировать кнопку.","x-doc":{group:"Behavior",type:"boolean",kind:"boolean"}}}},oe=Object.freeze(Object.defineProperty({__proto__:null,buttonBasePropsSchema:ee},Symbol.toStringTag,{value:"Module"})),te={type:"object",additionalProperties:!1,"x-registryName":"Card",properties:{className:{type:"string",description:"CSS-класс карточки-контейнера (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},re=Object.freeze(Object.defineProperty({__proto__:null,cardBasePropsSchema:te},Symbol.toStringTag,{value:"Module"})),ae={type:"object",additionalProperties:!0,"x-registryName":"Carousel",properties:{orientation:{type:"string",enum:["horizontal","vertical"],default:"horizontal",description:"Ориентация прокрутки карусели.","x-doc":{group:"Behavior",type:"'horizontal' | 'vertical'",kind:"enum"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},ie=Object.freeze(Object.defineProperty({__proto__:null,carouselBasePropsSchema:ae},Symbol.toStringTag,{value:"Module"})),pe={type:"object",additionalProperties:!0,"x-registryName":"Chart",properties:{className:{type:"string",description:"Доп. CSS-класс (Tailwind) — обычно задаёт высоту/ширину графика.","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},ne=Object.freeze(Object.defineProperty({__proto__:null,chartBasePropsSchema:pe},Symbol.toStringTag,{value:"Module"})),se={type:"object",additionalProperties:!1,"x-registryName":"Collapsible",properties:{className:{type:"string",description:"CSS-класс контейнера collapsible (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},defaultOpen:{type:"boolean",description:"Раскрыт ли collapsible по умолчанию (uncontrolled).","x-doc":{group:"Behavior",type:"boolean",kind:"boolean"}},disabled:{type:"boolean",description:"Заблокировать раскрытие/сворачивание.","x-doc":{group:"Behavior",type:"boolean",kind:"boolean"}}}},le=Object.freeze(Object.defineProperty({__proto__:null,collapsibleBasePropsSchema:se},Symbol.toStringTag,{value:"Module"})),de={type:"object",additionalProperties:!0,"x-registryName":"Command",properties:{shouldFilter:{type:"boolean",default:!0,description:"Авто-фильтрация и сортировка по поисковому запросу.","x-doc":{group:"Behavior",type:"boolean"}},loop:{type:"boolean",default:!1,description:"Зацикливать навигацию стрелками (с конца — в начало).","x-doc":{group:"Behavior",type:"boolean"}},disablePointerSelection:{type:"boolean",default:!1,description:"Отключить выбор пункта наведением мыши.","x-doc":{group:"Behavior",type:"boolean"}},vimBindings:{type:"boolean",default:!0,description:"Vim-хоткеи навигации (ctrl+n/j/p/k).","x-doc":{group:"Behavior",type:"boolean"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},ce=Object.freeze(Object.defineProperty({__proto__:null,commandBasePropsSchema:de},Symbol.toStringTag,{value:"Module"})),ue={type:"object",additionalProperties:!0,"x-registryName":"ContextMenu",properties:{dir:{type:"string",enum:["ltr","rtl"],default:"ltr",description:"Направление чтения — влияет на раскладку и навигацию с клавиатуры.","x-doc":{group:"Behavior",type:"'ltr' | 'rtl'",kind:"enum"}},modal:{type:"boolean",default:!0,description:"Модальный режим — блокирует взаимодействие с фоном при открытом меню.","x-doc":{group:"Behavior",type:"boolean"}}}},ye=Object.freeze(Object.defineProperty({__proto__:null,contextMenuBasePropsSchema:ue},Symbol.toStringTag,{value:"Module"})),me={type:"object",additionalProperties:!0,"x-registryName":"Dialog",properties:{defaultOpen:{type:"boolean",default:!1,description:"Открыт ли диалог изначально (неуправляемый режим).","x-doc":{group:"State",type:"boolean"}},modal:{type:"boolean",default:!0,description:"Модальный режим — блокирует взаимодействие с фоном.","x-doc":{group:"Behavior",type:"boolean"}}}},ge=Object.freeze(Object.defineProperty({__proto__:null,dialogBasePropsSchema:me},Symbol.toStringTag,{value:"Module"})),be={type:"object",additionalProperties:!0,"x-registryName":"Drawer",properties:{direction:{type:"string",enum:["top","bottom","left","right"],default:"bottom",description:"Сторона появления шторки.","x-doc":{group:"Behavior",type:"'top' | 'bottom' | 'left' | 'right'",kind:"enum"}},defaultOpen:{type:"boolean",default:!1,description:"Открыта ли шторка изначально (неуправляемый режим).","x-doc":{group:"State",type:"boolean"}},modal:{type:"boolean",default:!0,description:"Модальный режим — блокирует взаимодействие с фоном.","x-doc":{group:"Behavior",type:"boolean"}},dismissible:{type:"boolean",default:!0,description:"Можно ли закрыть свайпом/кликом по фону.","x-doc":{group:"Behavior",type:"boolean"}},handleOnly:{type:"boolean",default:!1,description:"Тянуть только за «ручку», а не за весь контент.","x-doc":{group:"Behavior",type:"boolean"}}}},Se=Object.freeze(Object.defineProperty({__proto__:null,drawerBasePropsSchema:be},Symbol.toStringTag,{value:"Module"})),he={type:"object",additionalProperties:!0,"x-registryName":"DropdownMenu",properties:{defaultOpen:{type:"boolean",default:!1,description:"Открыто ли меню изначально (неуправляемый режим).","x-doc":{group:"State",type:"boolean"}},modal:{type:"boolean",default:!0,description:"Модальный режим — блокирует взаимодействие с фоном, пока меню открыто.","x-doc":{group:"Behavior",type:"boolean"}},dir:{type:"string",enum:["ltr","rtl"],description:"Направление чтения — влияет на раскладку и навигацию клавиатурой.","x-doc":{group:"Behavior",type:"'ltr' | 'rtl'",kind:"enum"}}}},fe=Object.freeze(Object.defineProperty({__proto__:null,dropdownMenuBasePropsSchema:he},Symbol.toStringTag,{value:"Module"})),Pe={type:"object",additionalProperties:!0,"x-registryName":"Empty",properties:{className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},xe=Object.freeze(Object.defineProperty({__proto__:null,emptyBasePropsSchema:Pe},Symbol.toStringTag,{value:"Module"})),Be={type:"object",additionalProperties:!0,"x-registryName":"HoverCard",properties:{defaultOpen:{type:"boolean",default:!1,description:"Открыта ли карточка изначально (неуправляемый режим).","x-doc":{group:"State",type:"boolean"}},openDelay:{type:"number",default:700,description:"Задержка (мс) перед открытием при наведении.","x-doc":{group:"Behavior",type:"number"}},closeDelay:{type:"number",default:300,description:"Задержка (мс) перед закрытием при уходе курсора.","x-doc":{group:"Behavior",type:"number"}}}},_e=Object.freeze(Object.defineProperty({__proto__:null,hoverCardBasePropsSchema:Be},Symbol.toStringTag,{value:"Module"})),ve={type:"object",additionalProperties:!1,"x-registryName":"Icon",properties:{iconName:{type:"string",default:"Circle",description:"Имя иконки lucide (PascalCase, напр. Home, ArrowRight).","x-doc":{group:"Control",type:"string"}},size:{type:"number",default:24,minimum:8,description:"Размер в пикселях.","x-doc":{group:"Control",type:"number"}},color:{type:"string",description:"Цвет обводки (любой CSS-цвет; по умолчанию currentColor).","x-doc":{group:"Control",type:"string"}},strokeWidth:{type:"number",default:2,minimum:.5,description:"Толщина линий.","x-doc":{group:"Behavior",type:"number"}},className:{type:"string",description:"Доп. CSS-класс.","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},je=Object.freeze(Object.defineProperty({__proto__:null,iconBasePropsSchema:ve},Symbol.toStringTag,{value:"Module"})),ke={type:"object",additionalProperties:!1,"x-registryName":"InputGroup",properties:{className:{type:"string",description:"CSS-класс контейнера-группы (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},Oe=Object.freeze(Object.defineProperty({__proto__:null,inputGroupBasePropsSchema:ke},Symbol.toStringTag,{value:"Module"})),Te={type:"object",additionalProperties:!0,"x-registryName":"Item",properties:{variant:{type:"string",enum:["default","outline","muted"],default:"default",description:"Визуальный стиль: прозрачный, с рамкой или приглушённый фон.","x-doc":{group:"Behavior",type:"'default' | 'outline' | 'muted'",kind:"enum"}},size:{type:"string",enum:["default","sm"],default:"default",description:"Размер отступов и зазоров внутри строки.","x-doc":{group:"Behavior",type:"'default' | 'sm'",kind:"enum"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},Ce=Object.freeze(Object.defineProperty({__proto__:null,itemBasePropsSchema:Te},Symbol.toStringTag,{value:"Module"})),Ne={type:"object",additionalProperties:!0,"x-registryName":"Kbd",properties:{className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},ze=Object.freeze(Object.defineProperty({__proto__:null,kbdBasePropsSchema:Ne},Symbol.toStringTag,{value:"Module"})),Me={type:"object",additionalProperties:!1,"x-registryName":"Label",properties:{className:{type:"string",description:"CSS-класс подписи (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},htmlFor:{type:"string",description:"id связанного контрола (атрибут `for` тега `<label>`).","x-doc":{group:"Behavior",type:"string"}}}},we=Object.freeze(Object.defineProperty({__proto__:null,labelBasePropsSchema:Me},Symbol.toStringTag,{value:"Module"})),$e={type:"object",additionalProperties:!0,"x-registryName":"Marker",properties:{variant:{type:"string",enum:["default","separator","border"],default:"default",description:"Вариант оформления маркера.","x-doc":{group:"Behavior",type:"'default' | 'separator' | 'border'",kind:"enum"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},He=Object.freeze(Object.defineProperty({__proto__:null,markerBasePropsSchema:$e},Symbol.toStringTag,{value:"Module"})),Ae={type:"object",additionalProperties:!0,"x-registryName":"Menubar",properties:{dir:{type:"string",enum:["ltr","rtl"],default:"ltr",description:"Направление чтения (влияет на навигацию стрелками).","x-doc":{group:"Behavior",type:"'ltr' | 'rtl'",kind:"enum"}},loop:{type:"boolean",default:!1,description:"Зациклить перемещение фокуса стрелками по краям.","x-doc":{group:"Behavior",type:"boolean"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},De=Object.freeze(Object.defineProperty({__proto__:null,menubarBasePropsSchema:Ae},Symbol.toStringTag,{value:"Module"})),Le={type:"object",additionalProperties:!0,"x-registryName":"MessageScroller",properties:{className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},Ge=Object.freeze(Object.defineProperty({__proto__:null,messageScrollerBasePropsSchema:Le},Symbol.toStringTag,{value:"Module"})),Ie={type:"object",additionalProperties:!0,"x-registryName":"Message",properties:{align:{type:"string",enum:["start","end"],default:"start",description:"Сторона выравнивания сообщения (end — своё сообщение справа).","x-doc":{group:"Behavior",type:"'start' | 'end'",kind:"enum"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},Fe=Object.freeze(Object.defineProperty({__proto__:null,messageBasePropsSchema:Ie},Symbol.toStringTag,{value:"Module"})),Ve={type:"object",additionalProperties:!0,"x-registryName":"NavigationMenu",properties:{orientation:{type:"string",enum:["horizontal","vertical"],default:"horizontal",description:"Ориентация меню.","x-doc":{group:"Behavior",type:"'horizontal' | 'vertical'",kind:"enum"}},dir:{type:"string",enum:["ltr","rtl"],description:"Направление письма (слева-направо / справа-налево).","x-doc":{group:"Behavior",type:"'ltr' | 'rtl'",kind:"enum"}},viewport:{type:"boolean",default:!0,description:"Рендерить общий Viewport-оверлей для контента (иначе контент под каждым пунктом).","x-doc":{group:"Behavior",type:"boolean"}},delayDuration:{type:"number",default:200,description:"Задержка (мс) перед открытием меню при наведении.","x-doc":{group:"Behavior",type:"number"}},skipDelayDuration:{type:"number",default:300,description:"Окно (мс), в течение которого переход между пунктами открывает меню без задержки.","x-doc":{group:"Behavior",type:"number"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},qe=Object.freeze(Object.defineProperty({__proto__:null,navigationMenuBasePropsSchema:Ve},Symbol.toStringTag,{value:"Module"})),Re={type:"object",additionalProperties:!0,"x-registryName":"Pagination",properties:{className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},Ee=Object.freeze(Object.defineProperty({__proto__:null,paginationBasePropsSchema:Re},Symbol.toStringTag,{value:"Module"})),Ke={type:"object",additionalProperties:!0,"x-registryName":"Popover",properties:{defaultOpen:{type:"boolean",default:!1,description:"Открыт ли поповер изначально (неуправляемый режим).","x-doc":{group:"State",type:"boolean"}},modal:{type:"boolean",default:!1,description:"Модальный режим — блокирует взаимодействие с фоном и ловит фокус.","x-doc":{group:"Behavior",type:"boolean"}}}},Ue=Object.freeze(Object.defineProperty({__proto__:null,popoverBasePropsSchema:Ke},Symbol.toStringTag,{value:"Module"})),Je={type:"object",additionalProperties:!1,"x-registryName":"Progress",properties:{className:{type:"string",description:"CSS-класс дорожки прогресса (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},value:{type:"number",minimum:0,maximum:100,description:"Текущее значение прогресса в процентах (0–100).","x-doc":{group:"State",type:"number",kind:"number"}},max:{type:"number",minimum:1,default:100,description:"Максимальное значение шкалы (по умолчанию 100).","x-doc":{group:"State",type:"number",kind:"number"}}}},We=Object.freeze(Object.defineProperty({__proto__:null,progressBasePropsSchema:Je},Symbol.toStringTag,{value:"Module"})),Ye={type:"object",additionalProperties:!0,"x-registryName":"Resizable",properties:{direction:{type:"string",enum:["horizontal","vertical"],default:"horizontal",description:"Направление разделения панелей.","x-doc":{group:"Behavior",type:"'horizontal' | 'vertical'",kind:"enum"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},Ze=Object.freeze(Object.defineProperty({__proto__:null,resizableBasePropsSchema:Ye},Symbol.toStringTag,{value:"Module"})),Qe={type:"object",additionalProperties:!0,"x-registryName":"ScrollArea",properties:{type:{type:"string",enum:["auto","always","scroll","hover"],default:"hover",description:"Когда показывать скроллбары.","x-doc":{group:"Behavior",type:"'auto' | 'always' | 'scroll' | 'hover'",kind:"enum"}},size:{type:"string",enum:["default","xs"],default:"default",description:"Толщина полос прокрутки: default — 10px, xs — тонкие 6px для плотных рядов (вкладки, панели инструментов).","x-doc":{group:"Behavior",type:"'default' | 'xs'",kind:"enum"}},scrollHideDelay:{type:"number",default:600,description:"Задержка скрытия скроллбаров (мс) — для type=hover/scroll.","x-doc":{group:"Behavior",type:"number"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},Xe=Object.freeze(Object.defineProperty({__proto__:null,scrollAreaBasePropsSchema:Qe},Symbol.toStringTag,{value:"Module"})),eo={type:"object",additionalProperties:!1,"x-registryName":"Separator",properties:{className:{type:"string",description:"CSS-класс разделителя (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},orientation:{type:"string",enum:["horizontal","vertical"],default:"horizontal",description:"Ориентация разделителя: горизонтальный (по умолчанию) или вертикальный.","x-doc":{group:"Behavior",type:"'horizontal' | 'vertical'",kind:"enum"}},decorative:{type:"boolean",default:!0,description:"Декоративный ли разделитель. true (по умолчанию) — скрыт от AT; false — семантический separator.","x-doc":{group:"Behavior",type:"boolean",kind:"boolean"}}}},oo=Object.freeze(Object.defineProperty({__proto__:null,separatorBasePropsSchema:eo},Symbol.toStringTag,{value:"Module"})),to={type:"object",additionalProperties:!0,"x-registryName":"Sheet",properties:{defaultOpen:{type:"boolean",default:!1,description:"Открыта ли панель изначально (неуправляемый режим).","x-doc":{group:"State",type:"boolean"}},modal:{type:"boolean",default:!0,description:"Модальный режим — блокирует взаимодействие с фоном.","x-doc":{group:"Behavior",type:"boolean"}}}},ro=Object.freeze(Object.defineProperty({__proto__:null,sheetBasePropsSchema:to},Symbol.toStringTag,{value:"Module"})),ao={type:"object",additionalProperties:!0,"x-registryName":"Sidebar",properties:{side:{type:"string",enum:["left","right"],default:"left",description:"Сторона размещения.","x-doc":{group:"Behavior",type:"'left' | 'right'",kind:"enum"}},variant:{type:"string",enum:["sidebar","floating","inset"],default:"sidebar",description:"Вариант оформления.","x-doc":{group:"Behavior",type:"'sidebar' | 'floating' | 'inset'",kind:"enum"}},collapsible:{type:"string",enum:["offcanvas","icon","none"],default:"offcanvas",description:"Режим сворачивания.","x-doc":{group:"Behavior",type:"'offcanvas' | 'icon' | 'none'",kind:"enum"}},className:{type:"string",description:"Доп. CSS-класс (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},io=Object.freeze(Object.defineProperty({__proto__:null,sidebarBasePropsSchema:ao},Symbol.toStringTag,{value:"Module"})),po={type:"object",additionalProperties:!0,"x-registryName":"Skeleton",properties:{className:{type:"string",description:"Доп. CSS-класс (Tailwind) — задаёт размеры плейсхолдера (h-*/w-*).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},no=Object.freeze(Object.defineProperty({__proto__:null,skeletonBasePropsSchema:po},Symbol.toStringTag,{value:"Module"})),so={type:"object",additionalProperties:!0,"x-registryName":"Spinner",properties:{className:{type:"string",description:"Доп. CSS-класс (Tailwind); размер задаётся через size-* (по умолчанию size-4).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},lo=Object.freeze(Object.defineProperty({__proto__:null,spinnerBasePropsSchema:so},Symbol.toStringTag,{value:"Module"})),co={type:"object",additionalProperties:!1,"x-registryName":"Table",properties:{className:{type:"string",description:"CSS-класс таблицы (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},uo=Object.freeze(Object.defineProperty({__proto__:null,tableBasePropsSchema:co},Symbol.toStringTag,{value:"Module"})),yo={type:"object",additionalProperties:!1,"x-registryName":"Tabs",properties:{className:{type:"string",description:"CSS-класс контейнера табов (Tailwind).","x-doc":{group:"Control",type:"string",kind:"readonly"}},defaultValue:{type:"string",description:"Значение вкладки, активной по умолчанию (uncontrolled).","x-doc":{group:"Behavior",type:"string"}},orientation:{type:"string",enum:["horizontal","vertical"],default:"horizontal",description:"Ориентация раскладки табов.","x-doc":{group:"Behavior",type:"'horizontal' | 'vertical'",kind:"enum"}},activationMode:{type:"string",enum:["automatic","manual"],default:"automatic",description:"Активировать вкладку при фокусе (automatic) или только по клику/Enter (manual).","x-doc":{group:"Behavior",type:"'automatic' | 'manual'",kind:"enum"}}}},mo=Object.freeze(Object.defineProperty({__proto__:null,tabsBasePropsSchema:yo},Symbol.toStringTag,{value:"Module"})),go={type:"object",additionalProperties:!0,"x-registryName":"Tooltip",properties:{defaultOpen:{type:"boolean",default:!1,description:"Показан ли тултип изначально (неуправляемый режим).","x-doc":{group:"State",type:"boolean"}},delayDuration:{type:"number",default:700,description:"Задержка перед показом (мс).","x-doc":{group:"Behavior",type:"number"}},disableHoverableContent:{type:"boolean",default:!1,description:"Скрывать тултип при уходе курсора с триггера (нельзя навести на сам тултип).","x-doc":{group:"Behavior",type:"boolean"}}}},bo=Object.freeze(Object.defineProperty({__proto__:null,tooltipBasePropsSchema:go},Symbol.toStringTag,{value:"Module"}));function o(e,t,r){return{type:"object",additionalProperties:!1,"x-registryName":e,properties:{className:{type:"string",description:`Доп. CSS-класс для «${r}» (элемент <${t}>, Tailwind).`,"x-doc":{group:"Control",type:"string",kind:"readonly"}}}}}const So=o("TypographyH1","h1","Заголовок 1"),ho=o("TypographyH2","h2","Заголовок 2"),fo=o("TypographyH3","h3","Заголовок 3"),Po=o("TypographyH4","h4","Заголовок 4"),xo=o("TypographyP","p","Абзац"),Bo=o("TypographyBlockquote","blockquote","Цитата"),_o=o("TypographyList","ul","Список"),vo=o("TypographyInlineCode","code","Инлайн-код"),jo=o("TypographyLead","p","Лид-абзац"),ko=o("TypographyLarge","div","Крупный текст"),Oo=o("TypographySmall","small","Мелкий текст"),To=o("TypographyMuted","p","Приглушённый текст"),Co=Object.freeze(Object.defineProperty({__proto__:null,typographyBlockquotePropsSchema:Bo,typographyH1PropsSchema:So,typographyH2PropsSchema:ho,typographyH3PropsSchema:fo,typographyH4PropsSchema:Po,typographyInlineCodePropsSchema:vo,typographyLargePropsSchema:ko,typographyLeadPropsSchema:jo,typographyListPropsSchema:_o,typographyMutedPropsSchema:To,typographyPPropsSchema:xo,typographySmallPropsSchema:Oo},Symbol.toStringTag,{value:"Module"})),No=[H,D,G,F,q,E,U,a,W,Z,X,oe,j,re,ie,ne,i,le,k,O,T,C,ce,ye,N,ge,Se,fe,xe,p,n,_e,je,Oe,s,z,l,d,Ce,ze,we,He,De,Ge,Fe,c,u,qe,Ee,Ue,We,y,Ze,Xe,m,g,b,oo,ro,io,no,S,lo,h,uo,mo,f,P,x,B,bo,_,Co],Lo=Object.fromEntries(No.flatMap(e=>Object.values(e)).filter(e=>!!e&&typeof e=="object"&&"x-registryName"in e).map(e=>[e["x-registryName"],e]));export{$ as accordionBasePropsSchema,L as alertBasePropsSchema,A as alertDialogBasePropsSchema,I as aspectRatioBasePropsSchema,V as attachmentBasePropsSchema,R as avatarBasePropsSchema,K as badgeBasePropsSchema,Fo as boxBasePropsSchema,J as breadcrumbBasePropsSchema,Y as bubbleBasePropsSchema,ee as buttonBasePropsSchema,Q as buttonGroupBasePropsSchema,st as calendarBasePropsSchema,te as cardBasePropsSchema,ae as carouselBasePropsSchema,pe as chartBasePropsSchema,Vo as checkboxBasePropsSchema,se as collapsibleBasePropsSchema,dt as comboboxBasePropsSchema,ct as comboboxMultiPropsSchema,ut as comboboxTreeMultiPropsSchema,yt as comboboxTreePropsSchema,de as commandBasePropsSchema,ue as contextMenuBasePropsSchema,gt as datePickerBasePropsSchema,Lo as defaultPropSchemas,me as dialogBasePropsSchema,be as drawerBasePropsSchema,he as dropdownMenuBasePropsSchema,Pe as emptyBasePropsSchema,qo as fileUploadAvatarPropsSchema,Ro as fileUploadBasePropsSchema,Be as hoverCardBasePropsSchema,ve as iconBasePropsSchema,Eo as inputBasePropsSchema,ke as inputGroupBasePropsSchema,Ko as inputMaskBasePropsSchema,St as inputOtpBasePropsSchema,Uo as inputPasswordBasePropsSchema,Te as itemBasePropsSchema,Ne as kbdBasePropsSchema,Me as labelBasePropsSchema,$e as markerBasePropsSchema,Ae as menubarBasePropsSchema,Do as mergeFieldPropsSchema,Ie as messageBasePropsSchema,Le as messageScrollerBasePropsSchema,Jo as nativeSelectBasePropsSchema,Wo as nativeSelectMultiPropsSchema,Ve as navigationMenuBasePropsSchema,Re as paginationBasePropsSchema,Ke as popoverBasePropsSchema,Je as progressBasePropsSchema,Yo as radioGroupBasePropsSchema,Ye as resizableBasePropsSchema,Qe as scrollAreaBasePropsSchema,Zo as sectionBasePropsSchema,Qo as selectAsyncPropsSchema,Xo as selectMultiPropsSchema,eo as separatorBasePropsSchema,to as sheetBasePropsSchema,ao as sidebarBasePropsSchema,po as skeletonBasePropsSchema,et as sliderBasePropsSchema,so as spinnerBasePropsSchema,ot as switchBasePropsSchema,co as tableBasePropsSchema,yo as tabsBasePropsSchema,tt as textareaBasePropsSchema,rt as toggleBasePropsSchema,at as toggleGroupBasePropsSchema,it as toggleGroupMultiPropsSchema,go as tooltipBasePropsSchema,pt as treeBasePropsSchema,Bo as typographyBlockquotePropsSchema,So as typographyH1PropsSchema,ho as typographyH2PropsSchema,fo as typographyH3PropsSchema,Po as typographyH4PropsSchema,vo as typographyInlineCodePropsSchema,ko as typographyLargePropsSchema,jo as typographyLeadPropsSchema,_o as typographyListPropsSchema,To as typographyMutedPropsSchema,xo as typographyPPropsSchema,Oo as typographySmallPropsSchema};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Z as t,af as r,aR as g,aS as M,ag as C,aT as _,aU as $,aV as E,Y as d,aW as I,aX as O,aw as L}from"../../js/index-C4LjLCAZ.js";import{g as P,S as T,y as A,v as G,C as W,P as q}from"../sheet-base-Bdh947IC-CH2UsjIt.js";import{s as S}from"./skeleton-base-C-lIzi0D-BjmjAmE9.js";const N=768;function B(){const[a,e]=d.useState(void 0);return d.useEffect(()=>{const s=window.matchMedia(`(max-width: ${N-1}px)`),i=()=>{e(window.innerWidth<N)};return s.addEventListener("change",i),e(window.innerWidth<N),()=>s.removeEventListener("change",i)},[]),!!a}const D="sidebar_state",R=3600*24*7,V="16rem",F="18rem",H="3rem",K="b",y=d.createContext(null);function w(){const a=d.useContext(y);if(!a)throw new Error("useSidebar must be used within a SidebarProvider.");return a}function J({defaultOpen:a=!0,open:e,onOpenChange:s,className:i,style:n,children:l,...p}){const c=B(),[f,u]=d.useState(!1),[h,z]=d.useState(a),m=e??h,x=d.useCallback(o=>{const b=typeof o=="function"?o(m):o;s?s(b):z(b),document.cookie=`${D}=${b}; path=/; max-age=${R}`},[s,m]),v=d.useCallback(()=>c?u(o=>!o):x(o=>!o),[c,x,u]);d.useEffect(()=>{const o=b=>{b.key===K&&(b.metaKey||b.ctrlKey)&&(b.preventDefault(),v())};return window.addEventListener("keydown",o),()=>window.removeEventListener("keydown",o)},[v]);const j=m?"expanded":"collapsed",k=d.useMemo(()=>({state:j,open:m,setOpen:x,isMobile:c,openMobile:f,setOpenMobile:u,toggleSidebar:v}),[j,m,x,c,f,u,v]);return t.jsx(y.Provider,{value:k,children:t.jsx(I,{delayDuration:0,children:t.jsx("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":V,"--sidebar-width-icon":H,...n},className:r("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",i),...p,children:l})})})}function Q({side:a="left",variant:e="sidebar",collapsible:s="offcanvas",className:i,children:n,...l}){const{isMobile:p,state:c,openMobile:f,setOpenMobile:u}=w();return s==="none"?t.jsx("div",{"data-slot":"sidebar",className:r("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",i),...l,children:n}):p?t.jsx(P,{open:f,onOpenChange:u,...l,children:t.jsxs(T,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":F},side:a,children:[t.jsxs(A,{className:"sr-only",children:[t.jsx(G,{children:"Sidebar"}),t.jsx(W,{children:"Displays the mobile sidebar."})]}),t.jsx("div",{className:"flex h-full w-full flex-col",children:n})]})}):t.jsxs("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":c,"data-collapsible":c==="collapsed"?s:"","data-variant":e,"data-side":a,"data-slot":"sidebar",children:[t.jsx("div",{"data-slot":"sidebar-gap",className:r("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",e==="floating"||e==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),t.jsx("div",{"data-slot":"sidebar-container",className:r("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",a==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",e==="floating"||e==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",i),...l,children:t.jsx("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",children:n})})]})}function ee({className:a,onClick:e,...s}){const{toggleSidebar:i}=w();return t.jsxs(L,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon",className:r("size-7",a),onClick:n=>{e?.(n),i()},...s,children:[t.jsx(q,{}),t.jsx("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function ae({className:a,...e}){const{toggleSidebar:s}=w();return t.jsx("button",{"data-sidebar":"rail","data-slot":"sidebar-rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:s,title:"Toggle Sidebar",className:r("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",a),...e})}function te({className:a,...e}){return t.jsx("main",{"data-slot":"sidebar-inset",className:r("relative flex w-full flex-1 flex-col bg-background","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",a),...e})}function se({className:a,...e}){return t.jsx(M,{"data-slot":"sidebar-input","data-sidebar":"input",className:r("h-8 w-full bg-background shadow-none",a),...e})}function re({className:a,...e}){return t.jsx("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:r("flex flex-col gap-2 p-2",a),...e})}function ie({className:a,...e}){return t.jsx("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:r("flex flex-col gap-2 p-2",a),...e})}function ne({className:a,...e}){return t.jsx(O,{"data-slot":"sidebar-separator","data-sidebar":"separator",className:r("mx-2 w-auto bg-sidebar-border",a),...e})}function de({className:a,...e}){return t.jsx("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:r("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...e})}function oe({className:a,...e}){return t.jsx("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:r("relative flex w-full min-w-0 flex-col p-2",a),...e})}function le({className:a,asChild:e=!1,...s}){const i=e?g:"div";return t.jsx(i,{"data-slot":"sidebar-group-label","data-sidebar":"group-label",className:r("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",a),...s})}function ce({className:a,asChild:e=!1,...s}){const i=e?g:"button";return t.jsx(i,{"data-slot":"sidebar-group-action","data-sidebar":"group-action",className:r("absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","group-data-[collapsible=icon]:hidden",a),...s})}function ue({className:a,...e}){return t.jsx("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:r("w-full text-sm",a),...e})}function be({className:a,...e}){return t.jsx("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:r("flex w-full min-w-0 flex-col gap-1",a),...e})}function fe({className:a,...e}){return t.jsx("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:r("group/menu-item relative",a),...e})}const U=C("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function pe({asChild:a=!1,isActive:e=!1,variant:s="default",size:i="default",tooltip:n,className:l,...p}){const c=a?g:"button",{isMobile:f,state:u}=w(),h=t.jsx(c,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":i,"data-active":e,className:r(U({variant:s,size:i}),l),...p});return n?(typeof n=="string"&&(n={children:n}),t.jsxs(_,{children:[t.jsx($,{asChild:!0,children:h}),t.jsx(E,{side:"right",align:"center",hidden:u!=="collapsed"||f,...n})]})):h}function me({className:a,asChild:e=!1,showOnHover:s=!1,...i}){const n=e?g:"button";return t.jsx(n,{"data-slot":"sidebar-menu-action","data-sidebar":"menu-action",className:r("absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground ring-sidebar-ring outline-hidden transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",s&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground data-[state=open]:opacity-100 md:opacity-0",a),...i})}function ge({className:a,...e}){return t.jsx("div",{"data-slot":"sidebar-menu-badge","data-sidebar":"menu-badge",className:r("pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium text-sidebar-foreground tabular-nums select-none","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a),...e})}function he({className:a,showIcon:e=!1,...s}){const i=d.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return t.jsxs("div",{"data-slot":"sidebar-menu-skeleton","data-sidebar":"menu-skeleton",className:r("flex h-8 items-center gap-2 rounded-md px-2",a),...s,children:[e&&t.jsx(S,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),t.jsx(S,{className:"h-4 max-w-(--skeleton-width) flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":i}})]})}function xe({className:a,...e}){return t.jsx("ul",{"data-slot":"sidebar-menu-sub","data-sidebar":"menu-sub",className:r("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",a),...e})}function ve({className:a,...e}){return t.jsx("li",{"data-slot":"sidebar-menu-sub-item","data-sidebar":"menu-sub-item",className:r("group/menu-sub-item relative",a),...e})}function we({asChild:a=!1,size:e="md",isActive:s=!1,className:i,...n}){const l=a?g:"a";return t.jsx(l,{"data-slot":"sidebar-menu-sub-button","data-sidebar":"menu-sub-button","data-size":e,"data-active":s,className:r("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground ring-sidebar-ring outline-hidden hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",e==="sm"&&"text-xs",e==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",i),...n})}export{Q as Sidebar,de as SidebarContent,ie as SidebarFooter,oe as SidebarGroup,ce as SidebarGroupAction,ue as SidebarGroupContent,le as SidebarGroupLabel,re as SidebarHeader,se as SidebarInput,te as SidebarInset,be as SidebarMenu,me as SidebarMenuAction,ge as SidebarMenuBadge,pe as SidebarMenuButton,fe as SidebarMenuItem,he as SidebarMenuSkeleton,xe as SidebarMenuSub,we as SidebarMenuSubButton,ve as SidebarMenuSubItem,J as SidebarProvider,ae as SidebarRail,ne as SidebarSeparator,ee as SidebarTrigger,w as useSidebar};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Z as e,af as t}from"../../js/index-C4LjLCAZ.js";function n({className:s,...a}){return e.jsx("div",{"data-slot":"skeleton",className:t("animate-pulse rounded-md bg-accent",s),...a})}export{n as s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,e as t}from"./tree-node-schema-xHyN0QCr-CLbM_Aw_.js";const o={type:"object",additionalProperties:!1,"x-registryName":"Toggle",properties:{variant:{type:"string",enum:["default","outline"],default:"default",description:"Стиль cva: default (заливка при нажатии) | outline (граница).","x-doc":{group:"Control",type:"'default' | 'outline'",kind:"enum"}},size:{type:"string",enum:["default","sm","lg"],default:"default",description:"Размер cva: default | sm | lg.","x-doc":{group:"Control",type:"'default' | 'sm' | 'lg'",kind:"enum"}},className:{type:"string",description:"Доп. CSS-класс контрола (TogglePrimitive.Root).","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"boolean",description:"Состояние (true — нажат/pressed). undefined/null трактуется как false. Резолвится формой."},onChange:{group:"Control",type:"(value: boolean) => void",description:"Переключение; эмитит boolean (Radix onPressedChange)."}}},P=Object.freeze(Object.defineProperty({__proto__:null,toggleBasePropsSchema:o},Symbol.toStringTag,{value:"Module"})),r={type:"object",additionalProperties:!1,"x-registryName":"Input","x-variantGroup":"Input","x-variant":"Текст",properties:{type:{type:"string",enum:["text","email","tel","url","password","number","date"],default:"text",description:"HTML-тип input. number включает числовой буфер, остальные — строковые.","x-doc":{group:"Textfield",type:"'text' | 'email' | 'number' | 'date' | …",kind:"enum"}},placeholder:{type:"string",description:"Подсказка внутри поля.","x-doc":{group:"Textfield",type:"string"}},min:{type:"number",description:"Минимум (type=number). При min>=0 отрицательные значения зажимаются к 0.","x-doc":{group:"Behavior",type:"number"}},max:{type:"number",description:"Максимум (type=number).","x-doc":{group:"Behavior",type:"number"}},step:{type:"number",description:"Шаг (type=number).","x-doc":{group:"Behavior",type:"number"}},suggestions:{type:"array",items:{anyOf:[{type:"string"},{type:"object",required:["value"],additionalProperties:!1,properties:{value:{type:"string"},label:{type:"string"}}}]},description:"Подсказки при вводе: строки или { value, label? }. Значение остаётся свободным текстом — выбор подсказки лишь подставляет её value. Из кода можно передать и асинхронный ResourceConfig (как у Select), в JSON — через $dataSource. Не действует при type=number.","x-doc":{group:"Options",type:"Array<string | { value; label? }> | ResourceConfig",kind:"readonly"}},minChars:{type:"number",default:0,description:"С какой длины введённого текста показывать подсказки (при заданном suggestions).","x-doc":{group:"Options",type:"number"}},openOnFocus:{type:"boolean",default:!1,description:"Раскрывать подсказки при фокусе, не дожидаясь ввода (при заданном suggestions).","x-doc":{group:"Options",type:"boolean"}},readOnly:{type:"boolean",default:!1,description:"Значение видно и уходит с формой, но не редактируется. Отличие от disabled: поле остаётся фокусируемым и не выглядит выключенным.","x-doc":{group:"State",type:"boolean"}},className:{type:"string",description:"Доп. CSS-класс.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"string | number | null",description:"Значение поля. Для type=number — number|null, иначе string|null."},onChange:{group:"Control",type:"(value: string | number | null) => void",description:"Изменение. Пустой ввод → null. Для number частичный ввод («-», «1.») не эмитится."},filter:{group:"Options",type:"(option: NormalizedOption, query: string) => boolean",description:"Свой предикат совпадения подсказки. По умолчанию — подстрока label без учёта регистра."}}},_=Object.freeze(Object.defineProperty({__proto__:null,inputBasePropsSchema:r},Symbol.toStringTag,{value:"Module"})),i={type:"object",additionalProperties:!1,"x-registryName":"Select","x-variantGroup":"Select","x-variant":"Один",properties:{className:{type:"string",description:"Доп. CSS-класс триггера.","x-doc":{group:"Control",type:"string",kind:"readonly"}},options:{type:"array",items:{type:"object",required:["value","label"],additionalProperties:!1,properties:{value:{type:["string","number"]},label:{type:"string"},group:{type:"string"}}},description:"Inline-опции. Одинаковый group объединяется в секцию SelectLabel.","x-doc":{group:"Options",type:"Array<{ value; label; group? }>",kind:"readonly"}},placeholder:{type:"string",default:"Select an option...",description:"Подсказка в триггере.","x-doc":{group:"Textfield",type:"string"}},clearable:{type:"boolean",default:!1,description:"Показывать крестик очистки (сброс в null).","x-doc":{group:"Behavior",type:"boolean"}}},"x-runtimeProps":{value:{group:"Control",type:"string | null",description:"Выбранное значение (option.value). null — ничего не выбрано."},onChange:{group:"Control",type:"(value: string | null) => void",description:"Выбор; при очистке приходит null."},resource:{group:"Options",type:"ResourceConfig<unknown>",description:"Асинхронный источник опций (static / preload / partial). В JSON-форме недостижим: требует функцию load."}}},j=Object.freeze(Object.defineProperty({__proto__:null,selectAsyncPropsSchema:i},Symbol.toStringTag,{value:"Module"})),n={type:"object",additionalProperties:!1,"x-registryName":"SelectMulti","x-variantGroup":"Select","x-variant":"Несколько",properties:{className:{type:"string",description:"Доп. CSS-класс триггера.","x-doc":{group:"Control",type:"string",kind:"readonly"}},options:{type:"array",items:{type:"object",required:["value","label"],additionalProperties:!1,properties:{value:{type:"string"},label:{type:"string"},group:{type:"string"}}},description:"Inline-опции. Взаимоисключающи с resource: если заданы — источник не опрашивается.","x-doc":{group:"Options",type:"Array<{ value; label; group? }>",kind:"readonly"}},selectedOptions:{type:"array",items:{type:"object",required:["value","label"],additionalProperties:!1,properties:{value:{type:"string"},label:{type:"string"},group:{type:"string"}}},description:"Лейблы для уже выбранных значений, которых может не быть в текущей странице опций (сменился поиск, догрузилась страница, перезагрузился источник). Без справочника чип показал бы сырой value.","x-doc":{group:"Options",type:"Array<{ value; label; group? }>",kind:"readonly"}},placeholder:{type:"string",default:"Select options...",description:"Подсказка в триггере, пока ничего не выбрано.","x-doc":{group:"Textfield",type:"string"}},searchPlaceholder:{type:"string",default:"Search...",description:"Подсказка в поле поиска (показывается при resource с серверным поиском).","x-doc":{group:"Textfield",type:"string"}},emptyText:{type:"string",default:"No options found.",description:"Текст пустого состояния (ничего не найдено).","x-doc":{group:"Textfield",type:"string"}},clearable:{type:"boolean",default:!1,description:"Показывать крестик сброса всего выбора справа от триггера.","x-doc":{group:"Behavior",type:"boolean"}},maxItems:{type:"number",minimum:1,description:"Потолок числа выбранных: по достижении невыбранные пункты выключаются. Подсказка интерфейса, а не правило формы — ограничение задавайте валидатором maxLength(n).","x-doc":{group:"Behavior",type:"number"}},summaryThreshold:{type:"number",minimum:1,default:3,description:"Сколько чипов показать в триггере, прежде чем схлопнуть их в сводку «Выбрано: N».","x-doc":{group:"Behavior",type:"number"}}},"x-runtimeProps":{value:{group:"Control",type:"string[] | null",description:"Выбранные значения (option.value). Пустой выбор приходит как null, а не []: массив в начальном значении модели создал бы ArrayNode, и поля не было бы вовсе."},onChange:{group:"Control",type:"(value: string[] | null) => void",description:"Изменение выбора; снятие последнего значения → null."},resource:{group:"Options",type:"ResourceConfig<unknown>",description:"Асинхронный источник опций (static / preload / partial). В JSON-форме недостижим: требует функцию load."}}},T=Object.freeze(Object.defineProperty({__proto__:null,selectMultiPropsSchema:n},Symbol.toStringTag,{value:"Module"})),p={type:"object",additionalProperties:!1,"x-registryName":"Checkbox",properties:{label:{type:"string",description:"Подпись справа от чекбокса (inline-раскладка). Рендерит сам контрол.","x-doc":{group:"Textfield",type:"string"}},className:{type:"string",description:"Доп. CSS-класс контрола (CheckboxPrimitive.Root).","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"boolean",description:"Состояние чекбокса. undefined/null трактуется как false."},onChange:{group:"Control",type:"(value: boolean) => void",description:"Изменение. indeterminate приводится к false."}}},N=Object.freeze(Object.defineProperty({__proto__:null,checkboxBasePropsSchema:p},Symbol.toStringTag,{value:"Module"})),l={type:"object",additionalProperties:!1,"x-registryName":"Box",properties:{className:{type:"string",description:"CSS-класс layout-контейнера (atomic CSS / Tailwind: flex, grid, gap-*).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},O=Object.freeze(Object.defineProperty({__proto__:null,boxBasePropsSchema:l},Symbol.toStringTag,{value:"Module"})),k={type:"object",properties:{label:{type:"string",description:"Подпись поля (рендерит FormField.Label).","x-doc":{group:"Textfield",type:"string"}},required:{type:"boolean",default:!1,description:"Маркер «*» у метки + aria-required.","x-doc":{group:"State",type:"boolean"}},description:{type:"string",description:"Пояснение под полем (shadcn FieldDescription).","x-doc":{group:"Textfield",type:"string"}},labelTooltip:{type:"string",description:"Подсказка-тултип у иконки (i) после подписи поля (рисует FormField). У inline-контролов (Checkbox/Switch) иконка встаёт справа от контрола.","x-doc":{group:"Textfield",type:"string"}},testId:{type:"string",description:"data-testid для e2e (meta-проп; в DOM примитива не течёт).","x-doc":{group:"Behavior",type:"string",kind:"readonly"}}}},a={type:"object",additionalProperties:!1,"x-registryName":"RadioGroup",properties:{options:{type:"array",items:{type:"object",required:["value","label"],additionalProperties:!1,properties:{value:{type:"string"},label:{type:"string"},tooltip:{type:"string"}}},description:"Варианты выбора. Каждый рендерится как radio + подпись справа; `tooltip` — иконка-подсказка (i) после подписи варианта.","x-doc":{group:"Options",type:"Array<{ value; label; tooltip? }>",kind:"readonly"}},className:{type:"string",description:"Доп. CSS-класс контейнера группы (по умолчанию grid gap-3).","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"string | null",description:"Выбранное значение (option.value). null — ничего не выбрано."},onChange:{group:"Control",type:"(value: string | null) => void",description:"Выбор варианта; пустой выбор → null."}}},B=Object.freeze(Object.defineProperty({__proto__:null,radioGroupBasePropsSchema:a},Symbol.toStringTag,{value:"Module"})),s={type:"object",additionalProperties:!1,"x-registryName":"Section",properties:{title:{type:"string",description:"Заголовок секции. Не задан — заголовок не рендерится (только обёртка).","x-doc":{group:"Textfield",type:"string"}},titleAs:{type:"string",enum:["h1","h2","h3","h4","h5","h6"],default:"h3",description:"HTML-элемент заголовка (уровень h1-h6).","x-doc":{group:"Behavior",type:"'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'",kind:"enum"}},titleClassName:{type:"string",description:"Доп. CSS-класс заголовка.","x-doc":{group:"Control",type:"string",kind:"readonly"}},className:{type:"string",description:"Доп. CSS-класс контейнера `<section>` (напр. `grid grid-cols-2 gap-4`).","x-doc":{group:"Control",type:"string",kind:"readonly"}}}},F=Object.freeze(Object.defineProperty({__proto__:null,sectionBasePropsSchema:s},Symbol.toStringTag,{value:"Module"})),d={type:"object",additionalProperties:!1,"x-registryName":"Switch",properties:{label:{type:"string",description:"Подпись справа от переключателя (inline-раскладка; FormField верхнюю метку не рисует).","x-doc":{group:"Textfield",type:"string"}},className:{type:"string",description:"Доп. CSS-класс переключателя.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"boolean",description:"Состояние переключателя (true — включён). Резолвится формой."},onChange:{group:"Control",type:"(value: boolean) => void",description:"Переключение; эмитит boolean (Radix onCheckedChange, indeterminate → false)."}}},R=Object.freeze(Object.defineProperty({__proto__:null,switchBasePropsSchema:d},Symbol.toStringTag,{value:"Module"})),u={type:"object",additionalProperties:!1,"x-registryName":"Textarea",properties:{placeholder:{type:"string",description:"Подсказка внутри поля.","x-doc":{group:"Textfield",type:"string"}},rows:{type:"number",description:"Число видимых строк (HTML-атрибут rows).","x-doc":{group:"Behavior",type:"number"}},maxLength:{type:"number",description:"Максимальная длина ввода (HTML-атрибут maxLength). Не заменяет валидацию.","x-doc":{group:"Behavior",type:"number"}},readOnly:{type:"boolean",default:!1,description:"Значение видно и уходит с формой, но не редактируется. Отличие от disabled: поле остаётся фокусируемым и не выглядит выключенным.","x-doc":{group:"State",type:"boolean"}},className:{type:"string",description:"Доп. CSS-класс.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"string | null",description:"Значение поля. Пустой ввод → null."},onChange:{group:"Control",type:"(value: string | null) => void",description:"Изменение. Пустой ввод → null."}}},M=Object.freeze(Object.defineProperty({__proto__:null,textareaBasePropsSchema:u},Symbol.toStringTag,{value:"Module"})),c={type:"object",additionalProperties:!1,"x-registryName":"Tree",properties:{className:{type:"string",description:"Доп. CSS-класс контейнера дерева.","x-doc":{group:"Control",type:"string",kind:"readonly"}},nodes:{type:"array",items:t,description:"Узлы верхнего уровня. Не задан вместе с loadChildren — верхний уровень дерево прочитает само.","x-doc":{group:"Options",type:e,kind:"readonly"}},defaultExpandedIds:{type:"array",items:{type:"string"},description:"Адреса веток, раскрытых на старте (неуправляемо).","x-doc":{group:"State",type:"string[]",kind:"readonly"}},expandedIds:{type:"array",items:{type:"string"},description:"Раскрытые ветки (управляемо). Без него дерево держит раскрытие само.","x-doc":{group:"State",type:"string[]",kind:"readonly"}},selectionMode:{type:"string",enum:["single","multiple"],default:"single",description:"Режим выбора: один узел (курсор) или курсор плюс отмеченный набор.","x-doc":{group:"Behavior",type:"'single' | 'multiple'",kind:"enum"}},checkOn:{type:"string",enum:["modifier","click"],default:"modifier",description:"Как строка попадает в набор: modifier — навигатор файлов (щелчок заменяет набор, Ctrl/Shift его строят), click — выбор из списка (щелчок и пробел переключают членство).","x-doc":{group:"Behavior",type:"'modifier' | 'click'",kind:"enum"}},selectable:{type:"string",enum:["all","leaf"],default:"all",description:"Что можно выбрать. leaf — режим выбора файла: щелчок по ветке её раскрывает.","x-doc":{group:"Behavior",type:"'all' | 'leaf'",kind:"enum"}},search:{type:"string",description:"Поисковый запрос по подписи. Путь до совпадения раскрывается на время поиска; фильтр видит только прочитанные уровни.","x-doc":{group:"Textfield",type:"string"}},emptyText:{type:"string",default:"Пусто",description:"Текст пустого дерева.","x-doc":{group:"Textfield",type:"string"}},rowHeight:{type:"number",minimum:1,default:24,description:"Высота строки, px. На ней стоит виртуальный скролл.","x-doc":{group:"Behavior",type:"number",kind:"number"}},maxRows:{type:"number",minimum:1,description:"Сколько строк показать до появления прокрутки. Задаёт высоту по содержимому; без него высоту задаёт className вызывающего.","x-doc":{group:"Behavior",type:"number",kind:"number"}},virtualized:{type:"boolean",default:!0,description:"Виртуальный скролл. Выключают там, где дерево заведомо короткое, а разметка нужна целиком (серверная отрисовка).","x-doc":{group:"Behavior",type:"boolean",kind:"boolean"}}},"x-runtimeProps":{loadChildren:{group:"Control",type:"(node: TreeNode | null) => Promise<readonly TreeNode[]>",description:"Ленивое чтение уровня при первом раскрытии ветки; null — верхний уровень. Прочитанное запоминается."},selectedId:{group:"Control",type:"string | null",description:"Выделенный узел (управляемо) — «где я сейчас», одна строка."},onSelectedChange:{group:"Control",type:"(id: string | null) => void",description:"Смена выделения."},checkedIds:{group:"Control",type:"string[]",description:"Отмеченный набор (управляемо) — «что я выбрал». Отдельно от selectedId: набор и выделение отвечают на разные вопросы."},onCheckedChange:{group:"Control",type:"(ids: string[]) => void",description:"Смена набора; порядок — порядок строк дерева."},onExpandedChange:{group:"Control",type:"(ids: string[]) => void",description:"Смена раскрытых веток."},onActivate:{group:"Control",type:"(node: TreeNode, meta: { preview: boolean }) => void",description:"Запуск строки. preview=true — одиночный щелчок или пробел, false — двойной щелчок или Enter. Ветку дерево раскрывает само."},isNodeDisabled:{group:"Control",type:"(node: TreeNode) => boolean",description:"Запрет выбора поверх node.disabled — для запретов динамических: потолок числа выбранных, права на файл."},onRowClick:{group:"Control",type:"(node: TreeNode, event: React.MouseEvent) => void",description:"Щелчок ДО правил выбора дерева. Вызвавший preventDefault() берёт строку себе целиком — так потребитель со своими правилами остаётся хозяином, не отказываясь от отрисовки."},onRowDoubleClick:{group:"Control",type:"(node: TreeNode, event: React.MouseEvent) => void",description:"Двойной щелчок ДО запуска строки; preventDefault отменяет запуск."},onContextMenu:{group:"Control",type:"(event: React.MouseEvent) => void",description:"Правый щелчок по дереву целиком; строку потребитель находит по data-tree-id."},getRowProps:{group:"Control",type:"(node: TreeNode, row: TreeRow) => HTMLAttributes",description:"Доп. атрибуты строки: свои data-*, title, обработчики."},renderIcon:{group:"Control",type:"(node, state: { branch; expanded; selected; checked }) => ReactNode",description:"Значок строки; возврат null оставляет умолчание (каталог/файл)."},renderLabel:{group:"Control",type:"(node, state) => ReactNode",description:"Подпись строки; возврат null оставляет node.label."},renderActions:{group:"Control",type:"(node: TreeNode, state) => ReactNode",description:"Содержимое правого края строки: свои метки, кнопки, подсказки."},onLoadError:{group:"Control",type:"(error: unknown, node: TreeNode | null) => void",description:"Отказ чтения уровня. По умолчанию пишется в консоль."}}},$=Object.freeze(Object.defineProperty({__proto__:null,treeBasePropsSchema:c},Symbol.toStringTag,{value:"Module"})),g={type:"object",additionalProperties:!1,"x-registryName":"FileUpload","x-variantGroup":"FileUpload","x-variant":"Файлы",properties:{variant:{type:"string",enum:["button","dropzone","input"],default:"button",description:"Представление: кнопка-триггер, зона drag-and-drop или компактный инпут с кнопкой-иконкой.","x-doc":{group:"Control",type:"'button' | 'dropzone' | 'input'"}},placeholder:{type:"string",description:"Видимый текст кнопки (button), зоны (dropzone) или пустого инпута (input). Подпись поля — отдельная конвенция label (рендерит FormField).","x-doc":{group:"Textfield",type:"string"}},invalid:{type:"boolean",default:!1,description:"Явно пометить поле невалидным (подсветка рамки у dropzone/input). Под FormField не нужен: aria-invalid приходит от обёртки при ошибке валидации; button показывает ошибку текстом (FormField.Error).","x-doc":{group:"State",type:"boolean"}},hint:{type:"string",description:"Подсказка с ограничениями («PDF, до 5 МБ, максимум 3 файла»).","x-doc":{group:"Textfield",type:"string"}},accept:{type:"string",description:'Допустимые типы в синтаксисе нативного accept: ".pdf", "image/png", "image/*", список через запятую. Применяется и к drag-and-drop.',"x-doc":{group:"Behavior",type:"string"}},multiple:{type:"boolean",default:!1,description:"Несколько файлов. При false новая селекция заменяет текущую.","x-doc":{group:"Behavior",type:"boolean"}},maxFiles:{type:"number",minimum:1,description:"Максимум файлов в списке (действует при multiple).","x-doc":{group:"Behavior",type:"number"}},maxFileSize:{type:"number",minimum:0,description:"Максимальный размер одного файла, байты.","x-doc":{group:"Behavior",type:"number"}},minFileSize:{type:"number",minimum:0,description:"Минимальный размер одного файла, байты (1 — отсев пустых).","x-doc":{group:"Behavior",type:"number"}},maxTotalFileSize:{type:"number",minimum:0,description:"Максимальный суммарный размер всех файлов, байты.","x-doc":{group:"Behavior",type:"number"}},preventDuplicates:{type:"boolean",default:!0,description:"Отклонять дубликаты (совпадение имени и размера).","x-doc":{group:"Behavior",type:"boolean"}},allowDrop:{type:"boolean",default:!0,description:"Принимать drag-and-drop на зоне.","x-doc":{group:"Behavior",type:"boolean"}},allowPaste:{type:"boolean",default:!1,description:"Принимать файлы из буфера обмена (paste на сфокусированной зоне).","x-doc":{group:"Behavior",type:"boolean"}},capture:{type:"string",enum:["user","environment"],description:"Источник камеры для мобильного пикера (фронтальная/тыловая).","x-doc":{group:"Behavior",type:"'user' | 'environment'"}},autoUpload:{type:"boolean",default:!0,description:"Автозагрузка принятых файлов (действует при заданном uploader).","x-doc":{group:"Behavior",type:"boolean"}},className:{type:"string",description:"Доп. CSS-класс контейнера.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"File[] | RemoteFileRef[] | null",description:"Выбранные файлы. Без uploader — File[]; с uploader — сериализуемые дескрипторы загруженных. null — пусто."},onChange:{group:"Control",type:"(value: File[] | RemoteFileRef[] | null) => void",description:"Изменение списка; пустой список приходит как null."},uploader:{group:"Behavior",type:"(file: File, ctx: { onProgress; signal }) => Promise<RemoteFileRef>",description:"Загрузчик immediate-режима. В JSON-форме недостижим: требует функцию — передаётся через реестр."},onReject:{group:"Behavior",type:"(rejections: FileRejection[]) => void",description:"Файлы, отклонённые отбором (в значение поля не попадают)."}}},z=Object.freeze(Object.defineProperty({__proto__:null,fileUploadBasePropsSchema:g},Symbol.toStringTag,{value:"Module"})),y={type:"object",additionalProperties:!1,"x-registryName":"FileUploadAvatar","x-variantGroup":"FileUpload","x-variant":"Аватар",properties:{shape:{type:"string",enum:["circle","square"],default:"circle",description:"Форма превью.","x-doc":{group:"Control",type:"'circle' | 'square'"}},label:{type:"string",default:"Загрузить изображение",description:"Доступное имя зоны (aria-label).","x-doc":{group:"Textfield",type:"string"}},accept:{type:"string",default:"image/*",description:"Допустимые типы в синтаксисе нативного accept.","x-doc":{group:"Behavior",type:"string"}},maxFileSize:{type:"number",minimum:0,description:"Максимальный размер файла, байты.","x-doc":{group:"Behavior",type:"number"}},capture:{type:"string",enum:["user","environment"],description:"Источник камеры для мобильного пикера.","x-doc":{group:"Behavior",type:"'user' | 'environment'"}},invalid:{type:"boolean",default:!1,description:"Явно пометить поле невалидным (подсветка рамки зоны). Под FormField не нужен: aria-invalid приходит от обёртки при ошибке валидации.","x-doc":{group:"State",type:"boolean"}},className:{type:"string",description:"Доп. CSS-класс контейнера.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"File | RemoteFileRef | null",description:"Выбранное изображение (single). null — пусто."},onChange:{group:"Control",type:"(value: File | RemoteFileRef | null) => void",description:"Выбор/замена/удаление изображения."},uploader:{group:"Behavior",type:"(file: File, ctx: { onProgress; signal }) => Promise<RemoteFileRef>",description:"Загрузчик immediate-режима. В JSON-форме недостижим: требует функцию — передаётся через реестр."},onReject:{group:"Behavior",type:"(rejections: FileRejection[]) => void",description:"Файлы, отклонённые отбором."}}},w=Object.freeze(Object.defineProperty({__proto__:null,fileUploadAvatarPropsSchema:y},Symbol.toStringTag,{value:"Module"})),m={type:"object",additionalProperties:!1,"x-registryName":"InputMask","x-variantGroup":"Input","x-variant":"Маска",properties:{mask:{type:"string",description:"Шаблон маски-подсказки: '9' — цифра, прочие символы — литералы (уходят в placeholder). Напр. '+7 (999) 999-99-99'. Автовставки литералов нет — компонент только помечает формат.","x-doc":{group:"Textfield",type:"string"}},placeholder:{type:"string",description:"Подсказка внутри поля. По умолчанию равна mask.","x-doc":{group:"Textfield",type:"string"}},readOnly:{type:"boolean",default:!1,description:"Значение видно и уходит с формой, но не редактируется. Отличие от disabled: поле остаётся фокусируемым и не выглядит выключенным.","x-doc":{group:"State",type:"boolean"}},className:{type:"string",description:"Доп. CSS-класс.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"string | null",description:"Значение поля. null/undefined → пустое поле."},onChange:{group:"Control",type:"(value: string | null) => void",description:"Изменение. Пустой ввод → null."}}},A=Object.freeze(Object.defineProperty({__proto__:null,inputMaskBasePropsSchema:m},Symbol.toStringTag,{value:"Module"})),b={type:"object",additionalProperties:!1,"x-registryName":"InputPassword","x-variantGroup":"Input","x-variant":"Пароль",properties:{placeholder:{type:"string",default:"Password",description:"Подсказка внутри поля.","x-doc":{group:"Textfield",type:"string"}},showToggle:{type:"boolean",default:!0,description:"Показывать иконку переключения видимости (eye/eye-off). Появляется при непустом value.","x-doc":{group:"Behavior",type:"boolean"}},readOnly:{type:"boolean",default:!1,description:"Значение видно и уходит с формой, но не редактируется. Отличие от disabled: поле остаётся фокусируемым и не выглядит выключенным.","x-doc":{group:"State",type:"boolean"}},className:{type:"string",description:"Доп. CSS-класс.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"string | null",description:"Значение пароля. null/пусто — пустое поле."},onChange:{group:"Control",type:"(value: string | null) => void",description:"Изменение. Пустой ввод приводится к null."}}},G=Object.freeze(Object.defineProperty({__proto__:null,inputPasswordBasePropsSchema:b},Symbol.toStringTag,{value:"Module"})),x={type:"object",additionalProperties:!1,"x-registryName":"NativeSelect","x-variantGroup":"NativeSelect","x-variant":"Один",properties:{options:{type:"array",items:{type:"object",required:["value","label"],additionalProperties:!1,properties:{value:{type:["string","number"]},label:{type:"string"},group:{type:"string"}}},description:"Опции списка. Одинаковый group объединяется в <optgroup>.","x-doc":{group:"Options",type:"Array<{ value; label; group? }>",kind:"readonly"}},placeholder:{type:"string",description:'Подсказка-опция (value="") в начале списка.',"x-doc":{group:"Textfield",type:"string"}},className:{type:"string",description:"Доп. CSS-класс select.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"string | null",description:"Выбранное значение (option.value как строка). Пустой выбор → null."},onChange:{group:"Control",type:"(value: string | null) => void",description:'Изменение. Пустой выбор (value="") → null.'}}},I=Object.freeze(Object.defineProperty({__proto__:null,nativeSelectBasePropsSchema:x},Symbol.toStringTag,{value:"Module"})),v={type:"object",additionalProperties:!1,"x-registryName":"NativeSelectMulti","x-variantGroup":"NativeSelect","x-variant":"Несколько",properties:{options:{type:"array",items:{type:"object",required:["value","label"],additionalProperties:!1,properties:{value:{type:["string","number"]},label:{type:"string"},group:{type:"string"}}},description:"Опции списка. Строятся в <option> (сериализуемый источник для формы/DSL); одинаковый group объединяется в <optgroup>.","x-doc":{group:"Options",type:"Array<{ value; label; group? }>",kind:"readonly"}},rows:{type:"number",minimum:2,description:"Число видимых строк (нативный атрибут size). По умолчанию браузер показывает 4. Назван rows, а не size: size в ките — ступень шкалы размеров.","x-doc":{group:"Control",type:"number"}},maxItems:{type:"number",minimum:1,description:"Потолок числа выбранных: по достижении невыбранные опции выключаются. Подсказка интерфейса, а не правило формы — ограничение задавайте валидатором maxLength(n).","x-doc":{group:"Behavior",type:"number"}},className:{type:"string",description:"Доп. CSS-класс поля.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"string[] | null",description:"Выбранные значения (option.value как строки). Пустой выбор приходит как null, а не []: массив в начальном значении модели создал бы ArrayNode, и поля не было бы вовсе."},onChange:{group:"Control",type:"(value: string[] | null) => void",description:"Изменение выбора; снятие всех вариантов → null."}}},L=Object.freeze(Object.defineProperty({__proto__:null,nativeSelectMultiPropsSchema:v},Symbol.toStringTag,{value:"Module"})),f={type:"object",additionalProperties:!1,"x-registryName":"Slider",properties:{min:{type:"number",default:0,description:"Минимум диапазона (Radix min).","x-doc":{group:"Behavior",type:"number"}},max:{type:"number",default:100,description:"Максимум диапазона (Radix max).","x-doc":{group:"Behavior",type:"number"}},step:{type:"number",default:1,description:"Шаг изменения значения (Radix step).","x-doc":{group:"Behavior",type:"number"}},className:{type:"string",description:"Доп. CSS-класс слайдера (SliderPrimitive.Root).","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"number | null",description:"Значение слайдера (одно-thumb). null трактуется как min. Резолвится формой."},onChange:{group:"Control",type:"(value: number | null) => void",description:"Изменение; эмитит первое число массива Radix (onValueChange → arr[0])."}}},q=Object.freeze(Object.defineProperty({__proto__:null,sliderBasePropsSchema:f},Symbol.toStringTag,{value:"Module"})),S={type:"object",additionalProperties:!1,"x-registryName":"ToggleGroup","x-variantGroup":"ToggleGroup","x-variant":"Один",properties:{options:{type:"array",items:{type:"object",required:["value","label"],additionalProperties:!1,properties:{value:{type:"string"},label:{type:"string"}}},description:"Варианты выбора. Каждый рендерится как кнопка-переключатель.","x-doc":{group:"Options",type:"Array<{ value; label }>",kind:"readonly"}},variant:{type:"string",enum:["default","outline"],default:"default",description:"Визуальный стиль кнопок: плоские (default) или с рамкой (outline).","x-doc":{group:"Control",type:"'default' | 'outline'"}},className:{type:"string",description:"Доп. CSS-класс контейнера группы.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"string | null",description:"Выбранное значение (option.value). null — ничего не выбрано."},onChange:{group:"Control",type:"(value: string | null) => void",description:"Выбор варианта; пустой выбор → null."}}},D=Object.freeze(Object.defineProperty({__proto__:null,toggleGroupBasePropsSchema:S},Symbol.toStringTag,{value:"Module"})),h={type:"object",additionalProperties:!1,"x-registryName":"ToggleGroupMulti","x-variantGroup":"ToggleGroup","x-variant":"Несколько",properties:{options:{type:"array",items:{type:"object",required:["value","label"],additionalProperties:!1,properties:{value:{type:"string"},label:{type:"string"}}},description:"Варианты выбора. Каждый рендерится как кнопка-переключатель.","x-doc":{group:"Options",type:"Array<{ value; label }>",kind:"readonly"}},maxItems:{type:"number",minimum:1,description:"Потолок числа выбранных: по достижении невыбранные кнопки выключаются. Подсказка интерфейса, а не правило формы — ограничение задавайте валидатором maxLength(n).","x-doc":{group:"Behavior",type:"number"}},variant:{type:"string",enum:["default","outline"],default:"default",description:"Визуальный стиль кнопок: плоские (default) или с рамкой (outline).","x-doc":{group:"Control",type:"'default' | 'outline'"}},className:{type:"string",description:"Доп. CSS-класс контейнера группы.","x-doc":{group:"Control",type:"string",kind:"readonly"}}},"x-runtimeProps":{value:{group:"Control",type:"string[] | null",description:"Выбранные значения (option.value). Пустой выбор приходит как null, а не []: массив в начальном значении модели создал бы ArrayNode, и поля не было бы вовсе."},onChange:{group:"Control",type:"(value: string[] | null) => void",description:"Изменение выбора; снятие последнего варианта → null."}}},E=Object.freeze(Object.defineProperty({__proto__:null,toggleGroupMultiPropsSchema:h},Symbol.toStringTag,{value:"Module"}));export{m as A,b as B,x as C,v as D,a as E,s as F,i as G,n as H,f as I,d as J,u as K,o as L,S as M,h as N,c as O,N as a,A as b,G as c,_ as d,L as e,B as f,F as g,j as h,w as i,T as j,q as k,R as l,M as m,D as n,O as o,E as p,P as q,I as r,$ as s,z as t,k as u,l as v,p as w,y as x,g as y,r as z};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e={type:"object",required:["id","label"],additionalProperties:!1,properties:{id:{type:"string",description:"Адрес узла, уникальный в пределах дерева."},label:{type:"string",description:"Видимая подпись строки; по ней идёт поиск."},kind:{type:"string",enum:["branch","leaf"],description:"Ветка или лист. По умолчанию выводится из наличия children."},children:{type:"array",description:"Дети — такие же узлы (вложенность схемой не проверяется). У ветки отсутствие поля означает «уровень не прочитан»."},badge:{type:"string",description:"Метка справа от подписи."},badgeTone:{type:"string",enum:["default","secondary","destructive","outline"],description:"Тон метки."},title:{type:"string",description:"Подсказка при наведении; по умолчанию label."},disabled:{type:"boolean",description:"Строку нельзя выбрать."},loading:{type:"boolean",description:"Уровень читается прямо сейчас — вместо треугольника спиннер."},failed:{type:"boolean",description:"Уровень не прочитался — подпись становится тревожной."}}},i="Array<{ id; label; kind?; children?; badge?; … }>";export{e,i};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
var v=class extends Error{constructor(t){super(t),this.name="Eta Error"}},F=class extends v{constructor(t){super(t),this.name="EtaParser Error"}},P=class extends v{constructor(t){super(t),this.name="EtaRuntime Error"}},j=class extends v{constructor(t){super(t),this.name="EtaNameResolution Error"}};function m(t,e,n){let a=e.slice(0,n).split(/\n/),s=a.length,i=a[s-1].length+1;throw t+=" at line "+s+" col "+i+`:
|
|
2
|
+
|
|
3
|
+
`+e.split(/\n/)[s-1]+`
|
|
4
|
+
`+Array(i).join(" ")+"^",new F(t)}function R(t,e,n,a){let s=e.split(`
|
|
5
|
+
`),i=Math.max(n-3,0),c=Math.min(s.length,n+3),l=a,p=s.slice(i,c).map((f,h)=>{let r=h+i+1;return(r===n?" >> ":" ")+r+"| "+f}).join(`
|
|
6
|
+
`),g=new P((l?l+":"+n+`
|
|
7
|
+
`:"line "+n+`
|
|
8
|
+
`)+p+`
|
|
9
|
+
|
|
10
|
+
`+t.message);throw g.name=t.name,g.cause=t,g}const C=(async()=>{}).constructor;function B(t,e){let n=this.config,a=e?.async?C:Function;try{return new a(n.varName,"options",this.compileToString.call(this,t,e))}catch(s){throw s instanceof SyntaxError?new F(`Bad template syntax
|
|
11
|
+
|
|
12
|
+
`+s.message+`
|
|
13
|
+
`+Array(s.message.length+1).join("=")+`
|
|
14
|
+
`+this.compileToString.call(this,t,e)+`
|
|
15
|
+
`):s}}function D(t,e){let n=this.config,a=e?.async,s=this.compileBody,i=this.parse.call(this,t),c=`${n.functionHeader}
|
|
16
|
+
let include = (__eta_t, __eta_d) => this.render(__eta_t, {...${n.varName}, ...(__eta_d ?? {})}, options);
|
|
17
|
+
let includeAsync = (__eta_t, __eta_d) => this.renderAsync(__eta_t, {...${n.varName}, ...(__eta_d ?? {})}, options);
|
|
18
|
+
|
|
19
|
+
let __eta = {res: "", e: this.config.escapeFunction, f: this.config.filterFunction, blocks: {}${n.debug?', line: 1, templateStr: "'+t.replace(/\\|"/g,"\\$&").replace(/\r\n|\n|\r/g,"\\n")+'"':""}};
|
|
20
|
+
|
|
21
|
+
function layout(path, data) {
|
|
22
|
+
__eta.layout = path;
|
|
23
|
+
__eta.layoutData = data;
|
|
24
|
+
}${n.debug?"try {":""}${n.useWith?"with("+n.varName+"||{}){":""}
|
|
25
|
+
|
|
26
|
+
function ${n.outputFunctionName}(s){__eta.res+=s;}
|
|
27
|
+
function capture(fn){const s=__eta.res;__eta.res='';try{fn();return __eta.res}finally{__eta.res=s;}}
|
|
28
|
+
async function captureAsync(fn){const s=__eta.res;__eta.res='';try{await fn();return __eta.res}finally{__eta.res=s;}}
|
|
29
|
+
function block(name,fn){if(__eta.layout){if(fn){__eta.blocks[name]=capture(fn);}return '';}const b=${n.varName}.__blocks||{};if(name in b){return b[name];}return fn?capture(fn):'';}
|
|
30
|
+
async function blockAsync(name,fn){if(__eta.layout){if(fn){__eta.blocks[name]=await captureAsync(fn);}return '';}const b=${n.varName}.__blocks||{};if(name in b){return b[name];}return fn?await captureAsync(fn):'';}
|
|
31
|
+
|
|
32
|
+
${s.call(this,i)}
|
|
33
|
+
if (__eta.layout) {
|
|
34
|
+
__eta.res = ${a?"await includeAsync":"include"} (__eta.layout, {...${n.varName}, body: __eta.res, ...__eta.layoutData, __blocks: __eta.blocks});
|
|
35
|
+
}
|
|
36
|
+
${n.useWith?"}":""}${n.debug?"} catch (e) { this.RuntimeErr(e, __eta.templateStr, __eta.line, options.filepath) }":""}
|
|
37
|
+
return __eta.res;
|
|
38
|
+
`;if(n.plugins)for(let l=0;l<n.plugins.length;l++){let p=n.plugins[l];p.processFnString&&(c=p.processFnString(c,n))}return c}function M(t){let e=this.config,n=0,a=t.length,s="";for(;n<a;n++){let i=t[n];if(typeof i=="string")s+="__eta.res+='"+i+`';
|
|
39
|
+
`;else{let c=i.t,l=i.val||"";e.debug&&(s+="__eta.line="+i.lineNo+`
|
|
40
|
+
`),c==="r"?(e.autoFilter&&(l="__eta.f("+l+")"),s+="__eta.res+="+l+`;
|
|
41
|
+
`):c==="i"?(e.autoFilter&&(l="__eta.f("+l+")"),e.autoEscape&&(l="__eta.e("+l+")"),s+="__eta.res+="+l+`;
|
|
42
|
+
`):c==="e"?s+=l+`
|
|
43
|
+
`:Object.hasOwn(e.customTags,c)&&(s+=`__eta.res+=this.config.customTags[${JSON.stringify(c)}](${JSON.stringify(l)},${e.varName});
|
|
44
|
+
`)}}return s}function H(t,e,n,a){let s,i;return Array.isArray(e.autoTrim)?(s=e.autoTrim[1],i=e.autoTrim[0]):s=i=e.autoTrim,(n||n===!1)&&(s=n),(a||a===!1)&&(i=a),!i&&!s?t:s==="slurp"&&i==="slurp"?t.trim():(s==="_"||s==="slurp"?t=t.trimStart():(s==="-"||s==="nl")&&(t=t.replace(/^(?:\r\n|\n|\r)/,"")),i==="_"||i==="slurp"?t=t.trimEnd():(i==="-"||i==="nl")&&(t=t.replace(/(?:\r\n|\n|\r)$/,"")),t)}const J={"&":"&","<":"<",">":">",'"':""","'":"'"};function q(t){return J[t]}function z(t){let e=String(t);return/[&<>"']/.test(e)?e.replace(/[&<>"']/g,q):e}const T={autoEscape:!0,autoFilter:!1,autoTrim:[!1,"nl"],cache:!1,cacheFilepaths:!0,customTags:{},debug:!1,escapeFunction:z,filterFunction:t=>String(t),outputFunctionName:"output",functionHeader:"",parse:{exec:"",interpolate:"=",raw:"~"},plugins:[],rmWhitespace:!1,tags:["<%","%>"],useWith:!1,varName:"it",defaultExtension:".eta"},x=/`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g,w=/'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g,b=/"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;function $(t){return t.replace(/[.*+\-?^${}()|[\]\\]/g,"\\$&")}function G(t,e){return t.slice(0,e).split(`
|
|
45
|
+
`).length}function K(t){let e=this.config,n=[],a=!1,s=0,i=e.parse,c=Object.keys(e.customTags);if(e.plugins)for(let r=0;r<e.plugins.length;r++){let o=e.plugins[r];o.processTemplate&&(t=o.processTemplate(t,e))}e.rmWhitespace&&(t=t.replace(/[\r\n]+/g,`
|
|
46
|
+
`).replace(/^\s+|\s+$/gm,"")),x.lastIndex=0,w.lastIndex=0,b.lastIndex=0;function l(r,o){r&&(r=H(r,e,a,o),r&&(r=r.replace(/\\|'/g,"\\$&").replace(/\r\n|\n|\r/g,"\\n"),n.push(r)))}let p=[i.exec,i.interpolate,i.raw,...c].reduce((r,o)=>r&&o?r+"|"+$(o):o?$(o):r,""),g=RegExp($(e.tags[0])+"(-|_)?\\s*("+p+")?\\s*","g"),f=RegExp("'|\"|`|\\/\\*|(\\s*(-|_)?"+$(e.tags[1])+")","g"),h;for(;h=g.exec(t);){let r=t.slice(s,h.index);s=h[0].length+h.index;let o=h[1],d=h[2]||"";l(r,o),f.lastIndex=s;let u,y=!1;for(;u=f.exec(t);)if(u[1]){let _=t.slice(s,u.index);g.lastIndex=s=f.lastIndex,a=u[2],y={t:d===i.exec?"e":d===i.raw?"r":d===i.interpolate?"i":c.includes(d)?d:"",val:_};break}else{let _=u[0];if(_==="/*"){let S=t.indexOf("*/",f.lastIndex);S===-1&&m("unclosed comment",t,u.index),f.lastIndex=S}else _==="'"?(w.lastIndex=u.index,w.exec(t)?f.lastIndex=w.lastIndex:m("unclosed string",t,u.index)):_==='"'?(b.lastIndex=u.index,b.exec(t)?f.lastIndex=b.lastIndex:m("unclosed string",t,u.index)):_==="`"&&(x.lastIndex=u.index,x.exec(t)?f.lastIndex=x.lastIndex:m("unclosed string",t,u.index))}y?(e.debug&&(y.lineNo=G(t,h.index)),n.push(y)):m("unclosed tag",t,h.index)}if(l(t.slice(s,t.length),!1),e.plugins)for(let r=0;r<e.plugins.length;r++){let o=e.plugins[r];o.processAST&&(n=o.processAST(n,e))}return n}function I(t,e){let n=e?.async?this.templatesAsync:this.templatesSync;if(this.resolvePath&&this.readFile&&!t.startsWith("@")){let a=e.filepath,s=n.get(a);if(this.config.cache&&s)return s;{let i=this.readFile(a),c=this.compile(i,e);return this.config.cache&&n.define(a,c),c}}else{let a=n.get(t);if(a)return a;throw new j(`Failed to get template '${t}'`)}}function N(t,e,n){let a,s={...n,async:!1};return typeof t=="string"?(this.resolvePath&&this.readFile&&!t.startsWith("@")&&(s.filepath=this.resolvePath(t,s)),a=I.call(this,t,s)):a=t,a.call(this,e,s)}function k(t,e,n){let a,s={...n,async:!0};typeof t=="string"?(this.resolvePath&&this.readFile&&!t.startsWith("@")&&(s.filepath=this.resolvePath(t,s)),a=I.call(this,t,s)):a=t;let i=a.call(this,e,s);return Promise.resolve(i)}function L(t,e){let n=this.compile(t,{async:!1});return N.call(this,n,e)}function Q(t,e){let n=this.compile(t,{async:!0});return k.call(this,n,e)}var A=class{constructor(t){this.cache=t}define(t,e){this.cache[t]=e}get(t){return this.cache[t]}remove(t){delete this.cache[t]}reset(){this.cache={}}load(t){this.cache={...this.cache,...t}}},U=class{constructor(t){t?this.config={...T,...t}:this.config={...T};let e=[this.config.parse.exec,this.config.parse.interpolate,this.config.parse.raw,"-","_"];for(let n of Object.keys(this.config.customTags))if(e.includes(n))throw new v(`Custom tag prefix "${n}" conflicts with a built-in prefix`)}config;RuntimeErr=R;compile=B;compileToString=D;compileBody=M;parse=K;render=N;renderAsync=k;renderString=L;renderStringAsync=Q;filepathCache={};templatesSync=new A({});templatesAsync=new A({});resolvePath=null;readFile=null;configure(t){this.config={...this.config,...t}}withConfig(t){return{...this,config:{...this.config,...t}}}loadTemplate(t,e,n){if(typeof e=="string")(n?.async?this.templatesAsync:this.templatesSync).define(t,this.compile(e,n));else{let a=this.templatesSync;(e.constructor.name==="AsyncFunction"||n?.async)&&(a=this.templatesAsync),a.define(t,e)}}},V=class extends U{};const W=new V({autoEscape:!1,useWith:!1,varName:"it",tags:["<%","%>"],autoTrim:[!1,!1],rmWhitespace:!1,cache:!0,debug:!0}),E=new Map;function O(t,e){E.get(t)!==e&&(W.loadTemplate(t,e),E.set(t,e))}function X(t,e){O(t,e)}function Y(t,e,n){return O(t,e),W.render(t,n)}export{X as a,Y as r};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{ae as r,Z as e,ba as d,bb as n,bc as c,af as s,aJ as u,bd as f,be as m,bf as g,bg as h,bh as x}from"../js/index-C4LjLCAZ.js";const p=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],y=r("panel-left",p);function v({...t}){return e.jsx(d,{"data-slot":"sheet",...t})}function D({...t}){return e.jsx(x,{"data-slot":"sheet-trigger",...t})}function w({...t}){return e.jsx(n,{"data-slot":"sheet-close",...t})}function b({...t}){return e.jsx(g,{"data-slot":"sheet-portal",...t})}function N({className:t,...a}){return e.jsx(m,{"data-slot":"sheet-overlay",className:s("fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",t),...a})}function k({className:t,children:a,side:o="right",showCloseButton:i=!0,...l}){return e.jsxs(b,{children:[e.jsx(N,{}),e.jsxs(c,{"data-slot":"sheet-content",className:s("fixed z-50 flex flex-col gap-4 bg-background shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:animate-in data-[state=open]:duration-500",o==="right"&&"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",o==="left"&&"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",o==="top"&&"inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",o==="bottom"&&"inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",t),...l,children:[a,i&&e.jsxs(n,{className:"absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary",children:[e.jsx(u,{className:"size-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function C({className:t,...a}){return e.jsx("div",{"data-slot":"sheet-header",className:s("flex flex-col gap-1.5 p-4",t),...a})}function z({className:t,...a}){return e.jsx("div",{"data-slot":"sheet-footer",className:s("mt-auto flex flex-col gap-2 p-4",t),...a})}function P({className:t,...a}){return e.jsx(h,{"data-slot":"sheet-title",className:s("font-semibold text-foreground",t),...a})}function L({className:t,...a}){return e.jsx(f,{"data-slot":"sheet-description",className:s("text-sm text-muted-foreground",t),...a})}export{L as C,z as N,y as P,k as S,D as b,b as c,v as g,N as u,P as v,w as x,C as y};
|