@chaibuilder/sdk 3.0.4 → 3.0.5

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.
@@ -1,6 +1,6 @@
1
1
  import { jsx as a, jsxs as m } from "react/jsx-runtime";
2
2
  import * as x from "react";
3
- import { a1 as V, a3 as T, a6 as N, a9 as R, a4 as E, v as y, au as I, b1 as D, a5 as A } from "./toggle-C6VUu_7m.js";
3
+ import { a1 as V, a3 as T, a6 as N, a9 as R, a4 as E, v as y, au as I, b1 as D, a5 as A } from "./toggle-Cud7csHn.js";
4
4
  import * as b from "culori";
5
5
  import { getAllRegisteredFonts as P } from "@chaibuilder/runtime";
6
6
  import { useTranslation as H } from "react-i18next";
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),w=require("react"),i=require("./toggle-C5f1IJ1G.cjs"),T=require("culori"),V=require("@chaibuilder/runtime"),N=require("react-i18next");function $(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const S=$(w),y=$(T),f=e=>e?e%1===0?e:e.toFixed(4):"0",R=e=>`hsl(${f(e.h)} ${f(e.s*100)}% ${f(e.l*100)}%)`,E=(e,o="hsl",t="4")=>{try{const r=y.parse(e);if(!r)throw new Error("Invalid color input");switch(o){case"hsl":{const s=y.converter("hsl")(r);return t==="4"?R(s):`${f(s.h)} ${f(s.s*100)}% ${f(s.l*100)}%`}case"rgb":return y.formatRgb(r);case"oklch":{const s=y.converter("oklch")(r);return`oklch(${f(s.l)} ${f(s.c)} ${f(s.h)})`}case"hex":return y.formatHex(r);default:return e}}catch(r){return console.error(`Failed to convert color: ${e}`,r),e}},b=e=>E(e,"hex"),I=e=>{const o={fontFamily:{heading:"",body:""},borderRadius:"",colors:{}};try{const t=F(e);if(!t.isValid)return console.warn("CSS validation failed:",t.error),k();const r=C(e,":root"),s=C(e,".dark"),c=m(r,"--font-sans")||m(r,"--font-family")||m(r,"--font-heading")||m(r,"--font-body"),a=D(c);o.fontFamily={heading:a,body:a};const u=m(r,"--radius")||m(r,"--border-radius")||"0.5rem";o.borderRadius=P(u),["background","foreground","primary","primary-foreground","secondary","secondary-foreground","muted","muted-foreground","accent","accent-foreground","destructive","destructive-foreground","border","input","ring","card","card-foreground","popover","popover-foreground"].forEach(l=>{const p=m(r,`--${l}`),g=m(s,`--${l}`);if(p||g){const d=p?v(p):"#000000",x=g?v(g):d;o.colors[l]=[d,x]}})}catch(t){return console.error("Error parsing CSS to ChaiThemeValues:",t),k()}return o},C=(e,o)=>{var r,s;const t=new RegExp(`${j(o)}\\s*{([^}]+)}`);return((s=(r=e.match(t))==null?void 0:r[1])==null?void 0:s.trim())||null},m=(e,o)=>{var s;if(!e)return null;const t=new RegExp(`${j(o)}\\s*:\\s*([^;]+)`),r=e.match(t);return((s=r==null?void 0:r[1])==null?void 0:s.trim())||null},v=e=>{if(!e||typeof e!="string")return"#000000";try{const o=e.replace(/var\([^)]+\)/g,"").trim();if(!o)return"#000000";if(/^[a-z]+$/i.test(o))return b(o)||"#000000";if(/^#?([0-9A-F]{3,4}|[0-9A-F]{6}|[0-9A-F]{8})$/i.test(o.replace(/#/g,""))){const r=o.startsWith("#")?o:`#${o}`;return r.length<=5?`#${r.slice(1).split("").map(s=>s+s).join("")}`.slice(0,7):r.length>7?r.slice(0,7):r}if(/^(rgb|hsl|oklch)a?\(/i.test(o))return b(o)||"#000000";const t=o.match(/^(\d+\.?\d*)\s+(\d+\.?\d*)%\s+(\d+\.?\d*)%$/);if(t){const[r,s,c,a]=t,u=`hsl(${s} ${c}% ${a}%)`;return b(u)||"#000000"}if(/^[\d.]+[\s,]+[\d.]+[\s,]+[\d.]+(?:[\s,/]+[\d.]+)?$/.test(o)){const r=o.split(/[\s,]+/).filter(Boolean);if(r.length>=3){const c=r.some(a=>a.includes("%"))?`hsl(${r[0]} ${r[1]} ${r[2]})`:`rgb(${r[0]}, ${r[1]}, ${r[2]})`;return b(c)||"#000000"}}return b(o)||"#000000"}catch(o){return console.warn("Failed to process color:",e,o),"#000000"}},D=e=>{const o=V.getAllRegisteredFonts();if(!e)return"ui-sans-serif, system-ui, sans-serif";try{const r=e.replace(/["']/g,"").trim().split(",")[0].trim(),s=o.find(c=>c.family.toLowerCase()===r.toLowerCase());return(s==null?void 0:s.family)||"ui-sans-serif, system-ui, sans-serif"}catch(t){return console.warn("Error processing font family:",e,t),"ui-sans-serif, system-ui, sans-serif"}},P=e=>{if(!e)return"8px";try{const o=e.trim();if(o.endsWith("px"))return o;if(o.endsWith("rem")){const r=parseFloat(o.replace("rem",""));if(!isNaN(r))return`${Math.round(r*16)}px`}if(o.endsWith("em")){const r=parseFloat(o.replace("em",""));if(!isNaN(r))return`${Math.round(r*16)}px`}const t=parseFloat(o);return isNaN(t)?"8px":`${Math.round(t)}px`}catch(o){return console.warn("Error converting border radius to px:",e,o),"8px"}},k=()=>({fontFamily:{heading:"ui-sans-serif, system-ui, sans-serif",body:"ui-sans-serif, system-ui, sans-serif"},borderRadius:"8px",colors:{background:["#ffffff","#000000"],foreground:["#000000","#ffffff"],primary:["#3b82f6","#60a5fa"],"primary-foreground":["#ffffff","#1e293b"],secondary:["#f1f5f9","#334155"],"secondary-foreground":["#0f172a","#f8fafc"],muted:["#f8fafc","#1e293b"],"muted-foreground":["#64748b","#94a3b8"],accent:["#f1f5f9","#334155"],"accent-foreground":["#0f172a","#f8fafc"],destructive:["#ef4444","#f87171"],"destructive-foreground":["#ffffff","#1e293b"],border:["#e2e8f0","#475569"],input:["#e2e8f0","#475569"],ring:["#3b82f6","#60a5fa"],card:["#ffffff","#0f172a"],"card-foreground":["#000000","#f8fafc"],popover:["#ffffff","#0f172a"],"popover-foreground":["#000000","#f8fafc"]}}),j=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),q=e=>["background","foreground","primary","primary-foreground"].every(r=>e.colors[r]&&Array.isArray(e.colors[r])&&e.colors[r].length>=2)&&!!e.fontFamily.heading&&!!e.fontFamily.body&&!!e.borderRadius,F=e=>{if(!e||typeof e!="string")return{isValid:!1,error:"Please enter valid CSS content"};const o=e.trim();if(!o)return{isValid:!1,error:"Please enter CSS content"};try{if(!o.includes("{")||!o.includes("}"))return{isValid:!1,error:"Invalid CSS format. CSS should contain proper block structure with { }"};const t=(o.match(/{/g)||[]).length,r=(o.match(/}/g)||[]).length;return t!==r?{isValid:!1,error:"Invalid CSS format. Unmatched braces detected"}:!o.includes("--")||!o.includes(":")?{isValid:!1,error:"Invalid CSS format. CSS should contain variable definitions like --primary: #color"}:!o.includes(":root")&&!o.includes(".dark")?{isValid:!1,error:"CSS should contain at least :root or .dark selector with theme variables"}:{isValid:!0}}catch(t){return console.error("CSS validation error:",t),{isValid:!1,error:"Failed to parse CSS. Please check your syntax."}}},M=`:root {
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),w=require("react"),i=require("./toggle-ByUaDO5Y.cjs"),T=require("culori"),V=require("@chaibuilder/runtime"),N=require("react-i18next");function $(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(o,t,r.get?r:{enumerable:!0,get:()=>e[t]})}}return o.default=e,Object.freeze(o)}const S=$(w),y=$(T),f=e=>e?e%1===0?e:e.toFixed(4):"0",R=e=>`hsl(${f(e.h)} ${f(e.s*100)}% ${f(e.l*100)}%)`,E=(e,o="hsl",t="4")=>{try{const r=y.parse(e);if(!r)throw new Error("Invalid color input");switch(o){case"hsl":{const s=y.converter("hsl")(r);return t==="4"?R(s):`${f(s.h)} ${f(s.s*100)}% ${f(s.l*100)}%`}case"rgb":return y.formatRgb(r);case"oklch":{const s=y.converter("oklch")(r);return`oklch(${f(s.l)} ${f(s.c)} ${f(s.h)})`}case"hex":return y.formatHex(r);default:return e}}catch(r){return console.error(`Failed to convert color: ${e}`,r),e}},b=e=>E(e,"hex"),I=e=>{const o={fontFamily:{heading:"",body:""},borderRadius:"",colors:{}};try{const t=F(e);if(!t.isValid)return console.warn("CSS validation failed:",t.error),k();const r=C(e,":root"),s=C(e,".dark"),c=m(r,"--font-sans")||m(r,"--font-family")||m(r,"--font-heading")||m(r,"--font-body"),a=D(c);o.fontFamily={heading:a,body:a};const u=m(r,"--radius")||m(r,"--border-radius")||"0.5rem";o.borderRadius=P(u),["background","foreground","primary","primary-foreground","secondary","secondary-foreground","muted","muted-foreground","accent","accent-foreground","destructive","destructive-foreground","border","input","ring","card","card-foreground","popover","popover-foreground"].forEach(l=>{const p=m(r,`--${l}`),g=m(s,`--${l}`);if(p||g){const d=p?v(p):"#000000",x=g?v(g):d;o.colors[l]=[d,x]}})}catch(t){return console.error("Error parsing CSS to ChaiThemeValues:",t),k()}return o},C=(e,o)=>{var r,s;const t=new RegExp(`${j(o)}\\s*{([^}]+)}`);return((s=(r=e.match(t))==null?void 0:r[1])==null?void 0:s.trim())||null},m=(e,o)=>{var s;if(!e)return null;const t=new RegExp(`${j(o)}\\s*:\\s*([^;]+)`),r=e.match(t);return((s=r==null?void 0:r[1])==null?void 0:s.trim())||null},v=e=>{if(!e||typeof e!="string")return"#000000";try{const o=e.replace(/var\([^)]+\)/g,"").trim();if(!o)return"#000000";if(/^[a-z]+$/i.test(o))return b(o)||"#000000";if(/^#?([0-9A-F]{3,4}|[0-9A-F]{6}|[0-9A-F]{8})$/i.test(o.replace(/#/g,""))){const r=o.startsWith("#")?o:`#${o}`;return r.length<=5?`#${r.slice(1).split("").map(s=>s+s).join("")}`.slice(0,7):r.length>7?r.slice(0,7):r}if(/^(rgb|hsl|oklch)a?\(/i.test(o))return b(o)||"#000000";const t=o.match(/^(\d+\.?\d*)\s+(\d+\.?\d*)%\s+(\d+\.?\d*)%$/);if(t){const[r,s,c,a]=t,u=`hsl(${s} ${c}% ${a}%)`;return b(u)||"#000000"}if(/^[\d.]+[\s,]+[\d.]+[\s,]+[\d.]+(?:[\s,/]+[\d.]+)?$/.test(o)){const r=o.split(/[\s,]+/).filter(Boolean);if(r.length>=3){const c=r.some(a=>a.includes("%"))?`hsl(${r[0]} ${r[1]} ${r[2]})`:`rgb(${r[0]}, ${r[1]}, ${r[2]})`;return b(c)||"#000000"}}return b(o)||"#000000"}catch(o){return console.warn("Failed to process color:",e,o),"#000000"}},D=e=>{const o=V.getAllRegisteredFonts();if(!e)return"ui-sans-serif, system-ui, sans-serif";try{const r=e.replace(/["']/g,"").trim().split(",")[0].trim(),s=o.find(c=>c.family.toLowerCase()===r.toLowerCase());return(s==null?void 0:s.family)||"ui-sans-serif, system-ui, sans-serif"}catch(t){return console.warn("Error processing font family:",e,t),"ui-sans-serif, system-ui, sans-serif"}},P=e=>{if(!e)return"8px";try{const o=e.trim();if(o.endsWith("px"))return o;if(o.endsWith("rem")){const r=parseFloat(o.replace("rem",""));if(!isNaN(r))return`${Math.round(r*16)}px`}if(o.endsWith("em")){const r=parseFloat(o.replace("em",""));if(!isNaN(r))return`${Math.round(r*16)}px`}const t=parseFloat(o);return isNaN(t)?"8px":`${Math.round(t)}px`}catch(o){return console.warn("Error converting border radius to px:",e,o),"8px"}},k=()=>({fontFamily:{heading:"ui-sans-serif, system-ui, sans-serif",body:"ui-sans-serif, system-ui, sans-serif"},borderRadius:"8px",colors:{background:["#ffffff","#000000"],foreground:["#000000","#ffffff"],primary:["#3b82f6","#60a5fa"],"primary-foreground":["#ffffff","#1e293b"],secondary:["#f1f5f9","#334155"],"secondary-foreground":["#0f172a","#f8fafc"],muted:["#f8fafc","#1e293b"],"muted-foreground":["#64748b","#94a3b8"],accent:["#f1f5f9","#334155"],"accent-foreground":["#0f172a","#f8fafc"],destructive:["#ef4444","#f87171"],"destructive-foreground":["#ffffff","#1e293b"],border:["#e2e8f0","#475569"],input:["#e2e8f0","#475569"],ring:["#3b82f6","#60a5fa"],card:["#ffffff","#0f172a"],"card-foreground":["#000000","#f8fafc"],popover:["#ffffff","#0f172a"],"popover-foreground":["#000000","#f8fafc"]}}),j=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),q=e=>["background","foreground","primary","primary-foreground"].every(r=>e.colors[r]&&Array.isArray(e.colors[r])&&e.colors[r].length>=2)&&!!e.fontFamily.heading&&!!e.fontFamily.body&&!!e.borderRadius,F=e=>{if(!e||typeof e!="string")return{isValid:!1,error:"Please enter valid CSS content"};const o=e.trim();if(!o)return{isValid:!1,error:"Please enter CSS content"};try{if(!o.includes("{")||!o.includes("}"))return{isValid:!1,error:"Invalid CSS format. CSS should contain proper block structure with { }"};const t=(o.match(/{/g)||[]).length,r=(o.match(/}/g)||[]).length;return t!==r?{isValid:!1,error:"Invalid CSS format. Unmatched braces detected"}:!o.includes("--")||!o.includes(":")?{isValid:!1,error:"Invalid CSS format. CSS should contain variable definitions like --primary: #color"}:!o.includes(":root")&&!o.includes(".dark")?{isValid:!1,error:"CSS should contain at least :root or .dark selector with theme variables"}:{isValid:!0}}catch(t){return console.error("CSS validation error:",t),{isValid:!1,error:"Failed to parse CSS. Please check your syntax."}}},M=`:root {
2
2
  --background: 0 0% 100%;
3
3
  --foreground: oklch(0.52 0.13 144.17);
4
4
  --primary: #3e2723;
package/dist/render.cjs CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("./plugin-CSgw-f78.cjs"),u=require("./apply-binding-HQ9gBNJP.cjs"),t=require("lodash-es"),I=require("@tailwindcss/aspect-ratio"),q=require("@tailwindcss/forms"),$=require("@tailwindcss/typography");require("tailwindcss-animate");const E=require("./get-chai-builder-theme-B1tr_NJB.cjs"),L=require("@mhsdesign/jit-browser-tailwindcss"),F=require("@tailwindcss/container-queries"),m=require("react/jsx-runtime"),g=require("react"),R=require("@chaibuilder/runtime");function M(e,r){const a=e.filter(({_type:i})=>i==="GlobalBlock"||i==="PartialBlock");for(let i=0;i<a.length;i++){const l=a[i],s=t.get(l,"partialBlockId",t.get(l,"globalBlock",""));if(s==="")continue;let n=t.cloneDeep(t.get(r,s,[]));l._parent&&(n==null?void 0:n.length)>0&&(n=n.map(c=>(t.isEmpty(c._parent)&&(c._parent=l._parent),c)));const o=e.indexOf(l);e.splice(o,1,...n)}return e}const D=e=>{if(!e)return[];try{return JSON.parse(j(e)).filter(a=>!a._type.startsWith("@chai"))}catch{return[{_type:"Paragraph",_id:"error",content:"Invalid JSON. Please check the JSON string."}]}};function j(e){const r=/(asset:\/\/|https:\/\/asset\.localhost\/)(?:localhost\/)?[^"']+/g;return e.replace(r,a=>{const i=decodeURIComponent(a),l=i.indexOf("public");return l!==-1?i.substring(l+6):i})}async function O(e,r,a=[],i="",l){return await L.createTailwindcss({tailwindConfig:{darkMode:"class",safelist:a,theme:{extend:E.getChaiBuilderTheme(e)},plugins:[q,$,I,F,k.chaiBuilderPlugin],corePlugins:{preflight:l},...i?{prefix:`${i}`}:{}}}).generateStylesFromContent(` ${l?"@tailwind base;":""}
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const k=require("./plugin-CSgw-f78.cjs"),u=require("./apply-binding-HQ9gBNJP.cjs"),t=require("lodash-es"),q=require("@tailwindcss/aspect-ratio"),$=require("@tailwindcss/forms"),E=require("@tailwindcss/typography");require("tailwindcss-animate");const L=require("./get-chai-builder-theme-B1tr_NJB.cjs"),F=require("@mhsdesign/jit-browser-tailwindcss"),R=require("@tailwindcss/container-queries"),m=require("react/jsx-runtime"),g=require("react"),M=require("@chaibuilder/runtime");function D(e,r){const a=e.filter(({_type:i})=>i==="GlobalBlock"||i==="PartialBlock");for(let i=0;i<a.length;i++){const s=a[i],l=t.get(s,"partialBlockId",t.get(s,"globalBlock",""));if(l==="")continue;let n=t.cloneDeep(t.get(r,l,[]));s._parent&&(n==null?void 0:n.length)>0&&(n=n.map(c=>(t.isEmpty(c._parent)&&(c._parent=s._parent),c)));const o=e.indexOf(s);e.splice(o,1,...n)}return e}const j=e=>{if(!e)return[];try{return JSON.parse(O(e)).filter(a=>!a._type.startsWith("@chai"))}catch{return[{_type:"Paragraph",_id:"error",content:"Invalid JSON. Please check the JSON string."}]}};function O(e){const r=/(asset:\/\/|https:\/\/asset\.localhost\/)(?:localhost\/)?[^"']+/g;return e.replace(r,a=>{const i=decodeURIComponent(a),s=i.indexOf("public");return s!==-1?i.substring(s+6):i})}async function A(e,r,a=[],i="",s){return await F.createTailwindcss({tailwindConfig:{darkMode:"class",safelist:a,theme:{extend:L.getChaiBuilderTheme(e)},plugins:[$,E,q,R,k.chaiBuilderPlugin],corePlugins:{preflight:s},...i?{prefix:`${i}`}:{}}}).generateStylesFromContent(` ${s?"@tailwind base;":""}
2
2
  @tailwind components;
3
- @tailwind utilities;`,r)}const A=(e,r,a)=>{const i=JSON.stringify(e).replace(/#styles:([^"]*)/g,(l,s)=>`#styles:${s.replace(/,/g," ")}`.replace(/#styles:/g,""));return O(r,[i],[],"",a)},K=async(e,r=k.defaultThemeOptions,a=!1)=>await A(e,r,a);async function N(e){const r={pageProps:e.pageProps,block:e.block,lang:e.lang,draft:e.draft,inBuilder:!1},a=await e.dataProvider(r);return t.has(a,"$metadata")&&t.isFunction(e.dataProviderMetadataCallback)&&e.dataProviderMetadataCallback(e.block,a.$metadata),e.children({...t.omit(a,"$metadata")})}const J=()=>m.jsx("div",{}),V=e=>{const{block:r,lang:a,fallbackLang:i,children:l,externalData:s,blocks:n,draft:o,pageProps:c,dataProviderMetadataCallback:h}=e,d=R.getRegisteredChaiBlock(r._type),y=t.get(d,"component",null),f=t.get(e.repeaterData,"index",-1),b=t.get(e.repeaterData,"dataKey",""),C=a===i?"":a,p=u.applyBindingToBlockProps(u.applyLanguage(r,C,d),s,{index:f,key:b}),w=u.getBlockTagAttributes(r,!1),T=H(n,r._id,u.getBlockRuntimeProps(r._type)),S=t.has(d,"dataProvider")&&t.isFunction(d.dataProvider),_={...p,...w,...T},P={blockProps:{},inBuilder:!1,lang:a||i,..._};if(t.isNull(y))return null;if(S){const v=t.get(d,"suspenseFallback",J);return m.jsx(g.Suspense,{fallback:g.createElement(v),children:m.jsx(N,{lang:a,pageProps:c,block:_,dataProvider:d.dataProvider,...h?{dataProviderMetadataCallback:h}:{},draft:o,children:x=>g.createElement(y,{...P,...x,children:l({_id:r._id,_type:r._type,...t.isArray(p.repeaterItems)?{repeaterItems:u.applyLimit(p.repeaterItems,r),$repeaterItemsKey:p.$repeaterItemsKey}:{}})})})})}return m.jsx(g.Suspense,{children:g.createElement(y,{...P,children:l({_id:r._id,_type:r._type,...t.isArray(p.repeaterItems)?{repeaterItems:u.applyLimit(p.repeaterItems,r),$repeaterItemsKey:p.$repeaterItemsKey}:{}})})})},B=e=>{const{blocks:r,parent:a,repeaterData:i}=e;let l=t.uniqBy(t.filter(r,n=>t.has(n,"_id")&&(t.isEmpty(a)?!n._parent:n._parent===a)),"_id");const s=n=>t.filter(r,o=>o._parent===n).length>0;return t.map(l,n=>n?g.createElement(V,{...e,key:n._id,block:n},({_id:o,_type:c,repeaterItems:h,$repeaterItemsKey:d})=>c==="Repeater"?t.isArray(h)&&h.map((y,f)=>g.createElement(B,{...e,parent:n._id,key:`${t.get(n,"_parent","root")}-${n._id}-${f}`,repeaterData:{index:f,dataKey:d}})):s(o)?g.createElement(B,{...e,parent:n._id,key:`${t.get(n,"_parent","root")}-${n._id}`,repeaterData:i}):null):null)},H=(e,r,a)=>t.isEmpty(a)?{}:Object.entries(a).reduce((i,[l,s])=>{const n=[];let o=t.find(e,{_id:r});for(;o;)n.push(o),o=t.find(e,{_id:o._parent});const c=t.find(n,{_type:s.block});return c&&(i[l]=t.get(c,t.get(s,"prop"),null)),i},{});function U(e){if(t.isEmpty(e.lang)&&!t.isEmpty(e.fallbackLang))throw new Error("lang prop is required when fallbackLang is provided");if(t.isEmpty(e.blocks))return null;const r=e.lang??"en",a=e.fallbackLang??r;return m.jsx(B,{...e,lang:r,fallbackLang:a})}exports.getChaiThemeCssVariables=k.getChaiThemeCssVariables;exports.getThemeFontsCSSImport=k.getThemeFontsCSSImport;exports.getThemeFontsLinkMarkup=k.getThemeFontsLinkMarkup;exports.applyChaiDataBinding=u.applyChaiDataBinding;exports.convertHTMLToChaiBlocks=u.getBlocksFromHTML;exports.RenderChaiBlocks=U;exports.convertToBlocks=D;exports.getMergedPartialBlocks=M;exports.getStylesForBlocks=K;
3
+ @tailwind utilities;`,r)}const K=(e,r,a)=>{const i=JSON.stringify(e).replace(/#styles:([^"]*)/g,(s,l)=>`#styles:${l.replace(/,/g," ")}`.replace(/#styles:/g,""));return A(r,[i],[],"",a)},N=async(e,r=k.defaultThemeOptions,a=!1)=>await K(e,r,a);async function J(e){const r={pageProps:e.pageProps,block:e.block,lang:e.lang,draft:e.draft,inBuilder:!1},a=await e.dataProvider(r);return t.has(a,"$metadata")&&t.isFunction(e.dataProviderMetadataCallback)&&e.dataProviderMetadataCallback(e.block,a.$metadata),e.children({...t.omit(a,"$metadata")})}const V=()=>m.jsx("div",{}),H=e=>{const{block:r,lang:a,fallbackLang:i,children:s,externalData:l,blocks:n,draft:o,pageProps:c,dataProviderMetadataCallback:h}=e,d=M.getRegisteredChaiBlock(r._type),y=t.get(d,"component",null),f=t.get(e.repeaterData,"index",-1),b=t.get(e.repeaterData,"dataKey",""),w=a===i?"":a,p=u.applyBindingToBlockProps(u.applyLanguage(r,w,d),l,{index:f,key:b}),C=u.getBlockTagAttributes(r,!1),S=U(n,r._id,u.getBlockRuntimeProps(r._type)),T=t.has(d,"dataProvider")&&t.isFunction(d.dataProvider),B={...p,...C,...S},P={blockProps:{},inBuilder:!1,lang:a||i,...B},v=t.get(B,"_show",!0);if(t.isNull(y)||!v)return null;if(T){const x=t.get(d,"suspenseFallback",V);return m.jsx(g.Suspense,{fallback:g.createElement(x),children:m.jsx(J,{lang:a,pageProps:c,block:B,dataProvider:d.dataProvider,...h?{dataProviderMetadataCallback:h}:{},draft:o,children:I=>g.createElement(y,{...P,...I,children:s({_id:r._id,_type:r._type,...t.isArray(p.repeaterItems)?{repeaterItems:u.applyLimit(p.repeaterItems,r),$repeaterItemsKey:p.$repeaterItemsKey}:{}})})})})}return m.jsx(g.Suspense,{children:g.createElement(y,{...P,children:s({_id:r._id,_type:r._type,...t.isArray(p.repeaterItems)?{repeaterItems:u.applyLimit(p.repeaterItems,r),$repeaterItemsKey:p.$repeaterItemsKey}:{}})})})},_=e=>{const{blocks:r,parent:a,repeaterData:i}=e;let s=t.uniqBy(t.filter(r,n=>t.has(n,"_id")&&(t.isEmpty(a)?!n._parent:n._parent===a)),"_id");const l=n=>t.filter(r,o=>o._parent===n).length>0;return t.map(s,n=>n?g.createElement(H,{...e,key:n._id,block:n},({_id:o,_type:c,repeaterItems:h,$repeaterItemsKey:d})=>c==="Repeater"?t.isArray(h)&&h.map((y,f)=>g.createElement(_,{...e,parent:n._id,key:`${t.get(n,"_parent","root")}-${n._id}-${f}`,repeaterData:{index:f,dataKey:d}})):l(o)?g.createElement(_,{...e,parent:n._id,key:`${t.get(n,"_parent","root")}-${n._id}`,repeaterData:i}):null):null)},U=(e,r,a)=>t.isEmpty(a)?{}:Object.entries(a).reduce((i,[s,l])=>{const n=[];let o=t.find(e,{_id:r});for(;o;)n.push(o),o=t.find(e,{_id:o._parent});const c=t.find(n,{_type:l.block});return c&&(i[s]=t.get(c,t.get(l,"prop"),null)),i},{});function W(e){if(t.isEmpty(e.lang)&&!t.isEmpty(e.fallbackLang))throw new Error("lang prop is required when fallbackLang is provided");if(t.isEmpty(e.blocks))return null;const r=e.lang??"en",a=e.fallbackLang??r;return m.jsx(_,{...e,lang:r,fallbackLang:a})}exports.getChaiThemeCssVariables=k.getChaiThemeCssVariables;exports.getThemeFontsCSSImport=k.getThemeFontsCSSImport;exports.getThemeFontsLinkMarkup=k.getThemeFontsLinkMarkup;exports.applyChaiDataBinding=u.applyChaiDataBinding;exports.convertHTMLToChaiBlocks=u.getBlocksFromHTML;exports.RenderChaiBlocks=W;exports.convertToBlocks=j;exports.getMergedPartialBlocks=D;exports.getStylesForBlocks=N;
package/dist/render.js CHANGED
@@ -1,52 +1,52 @@
1
- import { d as F, c as O } from "./plugin-BOcGV_IY.js";
2
- import { a as ve, b as Se, e as xe } from "./plugin-BOcGV_IY.js";
3
- import { a as K, b as M, g as A, c as N, d as C } from "./apply-binding-tfi-KyyV.js";
4
- import { e as $e, f as Te } from "./apply-binding-tfi-KyyV.js";
5
- import { get as s, cloneDeep as J, isEmpty as u, has as P, isFunction as x, omit as E, isNull as j, isArray as _, uniqBy as q, filter as v, map as U, find as y } from "lodash-es";
6
- import V from "@tailwindcss/aspect-ratio";
7
- import W from "@tailwindcss/forms";
8
- import G from "@tailwindcss/typography";
1
+ import { d as O, c as K } from "./plugin-BOcGV_IY.js";
2
+ import { a as Se, b as xe, e as Ie } from "./plugin-BOcGV_IY.js";
3
+ import { a as M, b as A, g as N, c as J, d as C } from "./apply-binding-tfi-KyyV.js";
4
+ import { e as Te, f as Le } from "./apply-binding-tfi-KyyV.js";
5
+ import { get as s, cloneDeep as E, isEmpty as u, has as b, isFunction as x, omit as j, isNull as q, isArray as B, uniqBy as U, filter as v, map as V, find as _ } from "lodash-es";
6
+ import W from "@tailwindcss/aspect-ratio";
7
+ import G from "@tailwindcss/forms";
8
+ import H from "@tailwindcss/typography";
9
9
  import "tailwindcss-animate";
10
- import { g as H } from "./get-chai-builder-theme-BarMkcGH.js";
11
- import { createTailwindcss as z } from "@mhsdesign/jit-browser-tailwindcss";
12
- import Q from "@tailwindcss/container-queries";
10
+ import { g as z } from "./get-chai-builder-theme-BarMkcGH.js";
11
+ import { createTailwindcss as Q } from "@mhsdesign/jit-browser-tailwindcss";
12
+ import X from "@tailwindcss/container-queries";
13
13
  import { jsx as m } from "react/jsx-runtime";
14
14
  import { Suspense as S, createElement as g } from "react";
15
- import { getRegisteredChaiBlock as X } from "@chaibuilder/runtime";
16
- function _e(e, t) {
15
+ import { getRegisteredChaiBlock as Y } from "@chaibuilder/runtime";
16
+ function Be(e, t) {
17
17
  const a = e.filter(({ _type: n }) => n === "GlobalBlock" || n === "PartialBlock");
18
18
  for (let n = 0; n < a.length; n++) {
19
19
  const i = a[n], o = s(i, "partialBlockId", s(i, "globalBlock", ""));
20
20
  if (o === "") continue;
21
- let r = J(s(t, o, []));
21
+ let r = E(s(t, o, []));
22
22
  i._parent && (r == null ? void 0 : r.length) > 0 && (r = r.map((c) => (u(c._parent) && (c._parent = i._parent), c)));
23
23
  const l = e.indexOf(i);
24
24
  e.splice(l, 1, ...r);
25
25
  }
26
26
  return e;
27
27
  }
28
- const Be = (e) => {
28
+ const Pe = (e) => {
29
29
  if (!e) return [];
30
30
  try {
31
- return JSON.parse(Y(e)).filter((a) => !a._type.startsWith("@chai"));
31
+ return JSON.parse(Z(e)).filter((a) => !a._type.startsWith("@chai"));
32
32
  } catch {
33
33
  return [{ _type: "Paragraph", _id: "error", content: "Invalid JSON. Please check the JSON string." }];
34
34
  }
35
35
  };
36
- function Y(e) {
36
+ function Z(e) {
37
37
  const t = /(asset:\/\/|https:\/\/asset\.localhost\/)(?:localhost\/)?[^"']+/g;
38
38
  return e.replace(t, (a) => {
39
39
  const n = decodeURIComponent(a), i = n.indexOf("public");
40
40
  return i !== -1 ? n.substring(i + 6) : n;
41
41
  });
42
42
  }
43
- async function Z(e, t, a = [], n = "", i) {
44
- return await z({
43
+ async function ee(e, t, a = [], n = "", i) {
44
+ return await Q({
45
45
  tailwindConfig: {
46
46
  darkMode: "class",
47
47
  safelist: a,
48
- theme: { extend: H(e) },
49
- plugins: [W, G, V, Q, O],
48
+ theme: { extend: z(e) },
49
+ plugins: [G, H, W, X, K],
50
50
  corePlugins: { preflight: i },
51
51
  ...n ? { prefix: `${n}` } : {}
52
52
  }
@@ -57,11 +57,11 @@ async function Z(e, t, a = [], n = "", i) {
57
57
  t
58
58
  );
59
59
  }
60
- const ee = (e, t, a) => {
60
+ const te = (e, t, a) => {
61
61
  const n = JSON.stringify(e).replace(/#styles:([^"]*)/g, (i, o) => `#styles:${o.replace(/,/g, " ")}`.replace(/#styles:/g, ""));
62
- return Z(t, [n], [], "", a);
63
- }, Pe = async (e, t = F, a = !1) => await ee(e, t, a);
64
- async function te(e) {
62
+ return ee(t, [n], [], "", a);
63
+ }, be = async (e, t = O, a = !1) => await te(e, t, a);
64
+ async function ae(e) {
65
65
  const t = {
66
66
  pageProps: e.pageProps,
67
67
  block: e.block,
@@ -69,16 +69,16 @@ async function te(e) {
69
69
  draft: e.draft,
70
70
  inBuilder: !1
71
71
  }, a = await e.dataProvider(t);
72
- return P(a, "$metadata") && x(e.dataProviderMetadataCallback) && e.dataProviderMetadataCallback(e.block, a.$metadata), e.children({
73
- ...E(a, "$metadata")
72
+ return b(a, "$metadata") && x(e.dataProviderMetadataCallback) && e.dataProviderMetadataCallback(e.block, a.$metadata), e.children({
73
+ ...j(a, "$metadata")
74
74
  });
75
75
  }
76
- const ae = () => /* @__PURE__ */ m("div", {}), re = (e) => {
77
- const { block: t, lang: a, fallbackLang: n, children: i, externalData: o, blocks: r, draft: l, pageProps: c, dataProviderMetadataCallback: f } = e, d = X(t._type), h = s(d, "component", null), k = s(e.repeaterData, "index", -1), I = s(e.repeaterData, "dataKey", ""), p = K(
78
- M(t, a === n ? "" : a, d),
76
+ const re = () => /* @__PURE__ */ m("div", {}), ne = (e) => {
77
+ const { block: t, lang: a, fallbackLang: n, children: i, externalData: o, blocks: r, draft: l, pageProps: c, dataProviderMetadataCallback: f } = e, d = Y(t._type), h = s(d, "component", null), k = s(e.repeaterData, "index", -1), I = s(e.repeaterData, "dataKey", ""), p = M(
78
+ A(t, a === n ? "" : a, d),
79
79
  o,
80
80
  { index: k, key: I }
81
- ), $ = A(t, !1), T = ne(r, t._id, N(t._type)), L = P(d, "dataProvider") && x(d.dataProvider), b = {
81
+ ), $ = N(t, !1), T = ie(r, t._id, J(t._type)), L = b(d, "dataProvider") && x(d.dataProvider), y = {
82
82
  ...p,
83
83
  ...$,
84
84
  ...T
@@ -86,27 +86,27 @@ const ae = () => /* @__PURE__ */ m("div", {}), re = (e) => {
86
86
  blockProps: {},
87
87
  inBuilder: !1,
88
88
  lang: a || n,
89
- ...b
90
- };
91
- if (j(h)) return null;
89
+ ...y
90
+ }, D = s(y, "_show", !0);
91
+ if (q(h) || !D) return null;
92
92
  if (L) {
93
- const D = s(d, "suspenseFallback", ae);
94
- return /* @__PURE__ */ m(S, { fallback: g(D), children: /* @__PURE__ */ m(
95
- te,
93
+ const R = s(d, "suspenseFallback", re);
94
+ return /* @__PURE__ */ m(S, { fallback: g(R), children: /* @__PURE__ */ m(
95
+ ae,
96
96
  {
97
97
  lang: a,
98
98
  pageProps: c,
99
- block: b,
99
+ block: y,
100
100
  dataProvider: d.dataProvider,
101
101
  ...f ? { dataProviderMetadataCallback: f } : {},
102
102
  draft: l,
103
- children: (R) => g(h, {
103
+ children: (F) => g(h, {
104
104
  ...w,
105
- ...R,
105
+ ...F,
106
106
  children: i({
107
107
  _id: t._id,
108
108
  _type: t._type,
109
- ..._(p.repeaterItems) ? {
109
+ ...B(p.repeaterItems) ? {
110
110
  repeaterItems: C(p.repeaterItems, t),
111
111
  $repeaterItemsKey: p.$repeaterItemsKey
112
112
  } : {}
@@ -120,21 +120,21 @@ const ae = () => /* @__PURE__ */ m("div", {}), re = (e) => {
120
120
  children: i({
121
121
  _id: t._id,
122
122
  _type: t._type,
123
- ..._(p.repeaterItems) ? {
123
+ ...B(p.repeaterItems) ? {
124
124
  repeaterItems: C(p.repeaterItems, t),
125
125
  $repeaterItemsKey: p.$repeaterItemsKey
126
126
  } : {}
127
127
  })
128
128
  }) });
129
- }, B = (e) => {
129
+ }, P = (e) => {
130
130
  const { blocks: t, parent: a, repeaterData: n } = e;
131
- let i = q(
132
- v(t, (r) => P(r, "_id") && (u(a) ? !r._parent : r._parent === a)),
131
+ let i = U(
132
+ v(t, (r) => b(r, "_id") && (u(a) ? !r._parent : r._parent === a)),
133
133
  "_id"
134
134
  );
135
135
  const o = (r) => v(t, (l) => l._parent === r).length > 0;
136
- return U(i, (r) => r ? /* @__PURE__ */ g(re, { ...e, key: r._id, block: r }, ({ _id: l, _type: c, repeaterItems: f, $repeaterItemsKey: d }) => c === "Repeater" ? _(f) && f.map((h, k) => /* @__PURE__ */ g(
137
- B,
136
+ return V(i, (r) => r ? /* @__PURE__ */ g(ne, { ...e, key: r._id, block: r }, ({ _id: l, _type: c, repeaterItems: f, $repeaterItemsKey: d }) => c === "Repeater" ? B(f) && f.map((h, k) => /* @__PURE__ */ g(
137
+ P,
138
138
  {
139
139
  ...e,
140
140
  parent: r._id,
@@ -142,7 +142,7 @@ const ae = () => /* @__PURE__ */ m("div", {}), re = (e) => {
142
142
  repeaterData: { index: k, dataKey: d }
143
143
  }
144
144
  )) : o(l) ? /* @__PURE__ */ g(
145
- B,
145
+ P,
146
146
  {
147
147
  ...e,
148
148
  parent: r._id,
@@ -150,30 +150,30 @@ const ae = () => /* @__PURE__ */ m("div", {}), re = (e) => {
150
150
  repeaterData: n
151
151
  }
152
152
  ) : null) : null);
153
- }, ne = (e, t, a) => u(a) ? {} : Object.entries(a).reduce((n, [i, o]) => {
153
+ }, ie = (e, t, a) => u(a) ? {} : Object.entries(a).reduce((n, [i, o]) => {
154
154
  const r = [];
155
- let l = y(e, { _id: t });
155
+ let l = _(e, { _id: t });
156
156
  for (; l; )
157
- r.push(l), l = y(e, { _id: l._parent });
158
- const c = y(r, { _type: o.block });
157
+ r.push(l), l = _(e, { _id: l._parent });
158
+ const c = _(r, { _type: o.block });
159
159
  return c && (n[i] = s(c, s(o, "prop"), null)), n;
160
160
  }, {});
161
- function be(e) {
161
+ function we(e) {
162
162
  if (u(e.lang) && !u(e.fallbackLang))
163
163
  throw new Error("lang prop is required when fallbackLang is provided");
164
164
  if (u(e.blocks))
165
165
  return null;
166
166
  const t = e.lang ?? "en", a = e.fallbackLang ?? t;
167
- return /* @__PURE__ */ m(B, { ...e, lang: t, fallbackLang: a });
167
+ return /* @__PURE__ */ m(P, { ...e, lang: t, fallbackLang: a });
168
168
  }
169
169
  export {
170
- be as RenderChaiBlocks,
171
- $e as applyChaiDataBinding,
172
- Te as convertHTMLToChaiBlocks,
173
- Be as convertToBlocks,
174
- ve as getChaiThemeCssVariables,
175
- _e as getMergedPartialBlocks,
176
- Pe as getStylesForBlocks,
177
- Se as getThemeFontsCSSImport,
178
- xe as getThemeFontsLinkMarkup
170
+ we as RenderChaiBlocks,
171
+ Te as applyChaiDataBinding,
172
+ Le as convertHTMLToChaiBlocks,
173
+ Pe as convertToBlocks,
174
+ Se as getChaiThemeCssVariables,
175
+ Be as getMergedPartialBlocks,
176
+ be as getStylesForBlocks,
177
+ xe as getThemeFontsCSSImport,
178
+ Ie as getThemeFontsLinkMarkup
179
179
  };
@@ -0,0 +1 @@
1
+ "use strict";const o=require("react/jsx-runtime"),ft=require("@radix-ui/react-dropdown-menu"),f=require("@radix-ui/react-icons"),gt=require("react"),N=require("class-variance-authority"),g=require("cmdk"),xt=require("@radix-ui/react-dialog"),bt=require("@radix-ui/react-popover"),ht=require("@radix-ui/react-tooltip"),vt=require("@radix-ui/react-switch"),yt=require("@radix-ui/react-accordion"),Nt=require("@radix-ui/react-hover-card"),wt=require("@radix-ui/react-label"),Ct=require("@radix-ui/react-scroll-area"),jt=require("@radix-ui/react-tabs"),St=require("@radix-ui/react-slider"),Rt=require("@radix-ui/react-select"),Dt=require("@radix-ui/react-separator"),Tt=require("@radix-ui/react-avatar"),kt=require("@radix-ui/react-alert-dialog"),It=require("@radix-ui/react-slot"),_t=require("@radix-ui/react-context-menu"),Mt=require("@radix-ui/react-toggle"),At=require("clsx"),Pt=require("tailwind-merge");function p(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:()=>e[a]})}}return t.default=e,Object.freeze(t)}const d=p(ft),s=p(gt),i=p(xt),v=p(bt),y=p(ht),R=p(vt),b=p(yt),j=p(Nt),z=p(wt),x=p(Ct),h=p(jt),C=p(St),c=p(Rt),q=p(Dt),w=p(Tt),u=p(kt),l=p(_t),L=p(Mt);function r(...e){return Pt.twMerge(At.clsx(e))}const S=N.cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),H=s.forwardRef(({className:e,variant:t,size:a,asChild:n=!1,...m},pt)=>{const ut=n?It.Slot:"button";return o.jsx(ut,{className:r(S({variant:t,size:a,className:e})),ref:pt,...m})});H.displayName="Button";const zt=d.Root,qt=d.Trigger,Lt=d.Group,Ht=d.Portal,Gt=d.Sub,Vt=d.RadioGroup,G=s.forwardRef(({className:e,inset:t,children:a,...n},m)=>o.jsxs(d.SubTrigger,{ref:m,className:r("flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",t&&"pl-8",e),...n,children:[a,o.jsx(f.ChevronRightIcon,{className:"ml-auto h-4 w-4"})]}));G.displayName=d.SubTrigger.displayName;const V=s.forwardRef(({className:e,...t},a)=>o.jsx(d.SubContent,{ref:a,className:r("z-50 min-w-[8rem] origin-[--radix-dropdown-menu-content-transform-origin] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t}));V.displayName=d.SubContent.displayName;const O=s.forwardRef(({className:e,sideOffset:t=4,...a},n)=>o.jsx(d.Portal,{children:o.jsx(d.Content,{ref:n,sideOffset:t,className:r("z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md","origin-[--radix-dropdown-menu-content-transform-origin] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...a})}));O.displayName=d.Content.displayName;const F=s.forwardRef(({className:e,inset:t,...a},n)=>o.jsx(d.Item,{ref:n,className:r("relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0",t&&"pl-8",e),...a}));F.displayName=d.Item.displayName;const B=s.forwardRef(({className:e,children:t,checked:a,...n},m)=>o.jsxs(d.CheckboxItem,{ref:m,className:r("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:a,...n,children:[o.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(d.ItemIndicator,{children:o.jsx(f.CheckIcon,{className:"h-4 w-4"})})}),t]}));B.displayName=d.CheckboxItem.displayName;const U=s.forwardRef(({className:e,children:t,...a},n)=>o.jsxs(d.RadioItem,{ref:n,className:r("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...a,children:[o.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(d.ItemIndicator,{children:o.jsx(f.CircleIcon,{className:"h-2 w-2 fill-current"})})}),t]}));U.displayName=d.RadioItem.displayName;const E=s.forwardRef(({className:e,inset:t,...a},n)=>o.jsx(d.Label,{ref:n,className:r("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",e),...a}));E.displayName=d.Label.displayName;const J=s.forwardRef(({className:e,...t},a)=>o.jsx(d.Separator,{ref:a,className:r("-mx-1 my-1 h-px bg-muted",e),...t}));J.displayName=d.Separator.displayName;const K=({className:e,...t})=>o.jsx("span",{className:r("ml-auto text-xs tracking-widest opacity-60",e),...t});K.displayName="DropdownMenuShortcut";function Ot({className:e,...t}){return o.jsx("div",{className:r("animate-pulse rounded-md bg-primary/10",e),...t})}const Ft=N.cva("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),Q=s.forwardRef(({className:e,variant:t,...a},n)=>o.jsx("div",{ref:n,role:"alert",className:r(Ft({variant:t}),e),...a}));Q.displayName="Alert";const W=s.forwardRef(({className:e,...t},a)=>o.jsx("h5",{ref:a,className:r("mb-1 font-medium leading-none tracking-tight",e),...t}));W.displayName="AlertTitle";const X=s.forwardRef(({className:e,...t},a)=>o.jsx("div",{ref:a,className:r("text-sm [&_p]:leading-relaxed",e),...t}));X.displayName="AlertDescription";const Y=s.forwardRef(({className:e,type:t,...a},n)=>o.jsx("input",{type:t,className:r("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...a}));Y.displayName="Input";const Z=i.Root,Bt=i.Trigger,$=i.Portal,Ut=i.Close,D=s.forwardRef(({className:e,...t},a)=>o.jsx(i.Overlay,{ref:a,className:r("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));D.displayName=i.Overlay.displayName;const T=s.forwardRef(({className:e,children:t,...a},n)=>o.jsxs($,{children:[o.jsx(D,{}),o.jsxs(i.Content,{ref:n,className:r("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...a,children:[t,o.jsxs(i.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[o.jsx(f.Cross1Icon,{className:"h-4 w-4"}),o.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));T.displayName=i.Content.displayName;const ee=({className:e,...t})=>o.jsx("div",{className:r("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});ee.displayName="DialogHeader";const te=({className:e,...t})=>o.jsx("div",{className:r("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});te.displayName="DialogFooter";const ae=s.forwardRef(({className:e,...t},a)=>o.jsx(i.Title,{ref:a,className:r("text-lg font-semibold leading-none tracking-tight",e),...t}));ae.displayName=i.Title.displayName;const oe=s.forwardRef(({className:e,...t},a)=>o.jsx(i.Description,{ref:a,className:r("text-sm text-muted-foreground",e),...t}));oe.displayName=i.Description.displayName;const k=s.forwardRef(({className:e,...t},a)=>o.jsx(g.Command,{ref:a,className:r("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));k.displayName=g.Command.displayName;const Et=({children:e,...t})=>o.jsx(Z,{...t,children:o.jsx(T,{className:"overflow-hidden p-0",children:o.jsx(k,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:e})})}),re=s.forwardRef(({className:e,...t},a)=>o.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[o.jsx(f.MagnifyingGlassIcon,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),o.jsx(g.Command.Input,{ref:a,className:r("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));re.displayName=g.Command.Input.displayName;const se=s.forwardRef(({className:e,...t},a)=>o.jsx(g.Command.List,{ref:a,className:r("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));se.displayName=g.Command.List.displayName;const ne=s.forwardRef((e,t)=>o.jsx(g.Command.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));ne.displayName=g.Command.Empty.displayName;const ie=s.forwardRef(({className:e,...t},a)=>o.jsx(g.Command.Group,{ref:a,className:r("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));ie.displayName=g.Command.Group.displayName;const de=s.forwardRef(({className:e,...t},a)=>o.jsx(g.Command.Separator,{ref:a,className:r("-mx-1 h-px bg-border",e),...t}));de.displayName=g.Command.Separator.displayName;const le=s.forwardRef(({className:e,...t},a)=>o.jsx(g.Command.Item,{ref:a,className:r("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));le.displayName=g.Command.Item.displayName;const ce=({className:e,...t})=>o.jsx("span",{className:r("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});ce.displayName="CommandShortcut";const Jt=v.Root,Kt=v.Trigger,Qt=v.Anchor,me=s.forwardRef(({className:e,align:t="center",sideOffset:a=4,...n},m)=>o.jsx(v.Portal,{children:o.jsx(v.Content,{ref:m,align:t,sideOffset:a,className:r("z-50 w-72 origin-[--radix-popover-content-transform-origin] rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n})}));me.displayName=v.Content.displayName;const Wt=y.Provider,Xt=y.Root,Yt=y.Trigger,pe=s.forwardRef(({className:e,sideOffset:t=4,...a},n)=>o.jsx(y.Portal,{children:o.jsx(y.Content,{ref:n,sideOffset:t,className:r("z-50 origin-[--radix-tooltip-content-transform-origin] overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...a})}));pe.displayName=y.Content.displayName;const ue=N.cva("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Zt({className:e,variant:t,...a}){return o.jsx("div",{className:r(ue({variant:t}),e),...a})}const fe=s.forwardRef(({className:e,thumbClassName:t,...a},n)=>o.jsx(R.Root,{className:r("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...a,ref:n,children:o.jsx(R.Thumb,{className:r("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform",t,"data-[state=checked]:translate-x-3 data-[state=unchecked]:translate-x-0")})}));fe.displayName=R.Root.displayName;const $t=b.Root,ge=s.forwardRef(({className:e,...t},a)=>o.jsx(b.Item,{ref:a,className:r("border-b",e),...t}));ge.displayName="AccordionItem";const xe=s.forwardRef(({className:e,children:t,...a},n)=>o.jsx(b.Header,{className:"flex",children:o.jsxs(b.Trigger,{ref:n,className:r("flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline text-left [&[data-state=open]>svg]:rotate-180",e),...a,children:[t,o.jsx(f.ChevronDownIcon,{className:"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200"})]})}));xe.displayName=b.Trigger.displayName;const be=s.forwardRef(({className:e,children:t,...a},n)=>o.jsx(b.Content,{ref:n,className:"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...a,children:o.jsx("div",{className:r("pb-4 pt-0",e),children:t})}));be.displayName=b.Content.displayName;const ea=j.Root,ta=j.Trigger,he=s.forwardRef(({className:e,align:t="center",sideOffset:a=4,...n},m)=>o.jsx(j.Content,{ref:m,align:t,sideOffset:a,className:r("z-50 w-64 origin-[--radix-hover-card-content-transform-origin] rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n}));he.displayName=j.Content.displayName;const ve=s.forwardRef(({className:e,...t},a)=>o.jsx("textarea",{className:r("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:a,...t}));ve.displayName="Textarea";const ye=s.forwardRef(({className:e,...t},a)=>o.jsx("div",{ref:a,className:r("rounded-xl border bg-card text-card-foreground shadow",e),...t}));ye.displayName="Card";const Ne=s.forwardRef(({className:e,...t},a)=>o.jsx("div",{ref:a,className:r("flex flex-col space-y-1.5 p-6",e),...t}));Ne.displayName="CardHeader";const we=s.forwardRef(({className:e,...t},a)=>o.jsx("div",{ref:a,className:r("font-semibold leading-none tracking-tight",e),...t}));we.displayName="CardTitle";const Ce=s.forwardRef(({className:e,...t},a)=>o.jsx("div",{ref:a,className:r("text-sm text-muted-foreground",e),...t}));Ce.displayName="CardDescription";const je=s.forwardRef(({className:e,...t},a)=>o.jsx("div",{ref:a,className:r("p-6 pt-0",e),...t}));je.displayName="CardContent";const Se=s.forwardRef(({className:e,...t},a)=>o.jsx("div",{ref:a,className:r("flex items-center p-6 pt-0",e),...t}));Se.displayName="CardFooter";const aa=N.cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Re=s.forwardRef(({className:e,...t},a)=>o.jsx(z.Root,{ref:a,className:r(aa(),e),...t}));Re.displayName=z.Root.displayName;const De=s.forwardRef(({className:e,children:t,...a},n)=>o.jsxs(x.Root,{ref:n,className:r("relative overflow-hidden",e),...a,children:[o.jsx(x.Viewport,{className:"h-full w-full rounded-[inherit]",children:t}),o.jsx(I,{}),o.jsx(x.Corner,{})]}));De.displayName=x.Root.displayName;const I=s.forwardRef(({className:e,orientation:t="vertical",...a},n)=>o.jsx(x.ScrollAreaScrollbar,{ref:n,orientation:t,className:r("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...a,children:o.jsx(x.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-border"})}));I.displayName=x.ScrollAreaScrollbar.displayName;const oa=h.Root,Te=s.forwardRef(({className:e,...t},a)=>o.jsx(h.List,{ref:a,className:r("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));Te.displayName=h.List.displayName;const ke=s.forwardRef(({className:e,...t},a)=>o.jsx(h.Trigger,{ref:a,className:r("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));ke.displayName=h.Trigger.displayName;const Ie=s.forwardRef(({className:e,...t},a)=>o.jsx(h.Content,{ref:a,className:r("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));Ie.displayName=h.Content.displayName;const _e=s.forwardRef(({className:e,...t},a)=>o.jsxs(C.Root,{ref:a,className:r("relative flex w-full touch-none select-none items-center",e),...t,children:[o.jsx(C.Track,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-neutral-300",children:o.jsx(C.Range,{className:"absolute h-full bg-neutral-900"})}),o.jsx(C.Thumb,{className:"block h-4 w-4 rounded-full border border-neutral-900 bg-neutral-900 shadow transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-neutral-900 disabled:pointer-events-none disabled:opacity-50"})]}));_e.displayName=C.Root.displayName;const ra=c.Root,sa=c.Group,na=c.Value,Me=s.forwardRef(({className:e,children:t,...a},n)=>o.jsxs(c.Trigger,{ref:n,className:r("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground [&>span]:line-clamp-1",e),...a,children:[t,o.jsx(c.Icon,{asChild:!0,children:o.jsx(f.ChevronDownIcon,{className:"h-4 w-4 opacity-50"})})]}));Me.displayName=c.Trigger.displayName;const _=s.forwardRef(({className:e,...t},a)=>o.jsx(c.ScrollUpButton,{ref:a,className:r("flex cursor-default items-center justify-center py-1",e),...t,children:o.jsx(f.ChevronUpIcon,{className:"h-4 w-4"})}));_.displayName=c.ScrollUpButton.displayName;const M=s.forwardRef(({className:e,...t},a)=>o.jsx(c.ScrollDownButton,{ref:a,className:r("flex cursor-default items-center justify-center py-1",e),...t,children:o.jsx(f.ChevronDownIcon,{className:"h-4 w-4"})}));M.displayName=c.ScrollDownButton.displayName;const Ae=s.forwardRef(({className:e,children:t,position:a="popper",...n},m)=>o.jsx(c.Portal,{children:o.jsxs(c.Content,{ref:m,className:r("relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] origin-[--radix-select-content-transform-origin] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:a,...n,children:[o.jsx(_,{}),o.jsx(c.Viewport,{className:r("p-1",a==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),o.jsx(M,{})]})}));Ae.displayName=c.Content.displayName;const Pe=s.forwardRef(({className:e,...t},a)=>o.jsx(c.Label,{ref:a,className:r("px-2 py-1.5 text-sm font-semibold",e),...t}));Pe.displayName=c.Label.displayName;const ze=s.forwardRef(({className:e,children:t,...a},n)=>o.jsxs(c.Item,{ref:n,className:r("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...a,children:[o.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(c.ItemIndicator,{children:o.jsx(f.CheckIcon,{className:"h-4 w-4"})})}),o.jsx(c.ItemText,{children:t})]}));ze.displayName=c.Item.displayName;const qe=s.forwardRef(({className:e,...t},a)=>o.jsx(c.Separator,{ref:a,className:r("-mx-1 my-1 h-px bg-muted",e),...t}));qe.displayName=c.Separator.displayName;const Le=s.forwardRef(({className:e,orientation:t="horizontal",decorative:a=!0,...n},m)=>o.jsx(q.Root,{ref:m,decorative:a,orientation:t,className:r("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));Le.displayName=q.Root.displayName;const He=s.forwardRef(({className:e,...t},a)=>o.jsx(w.Root,{ref:a,className:r("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",e),...t}));He.displayName=w.Root.displayName;const Ge=s.forwardRef(({className:e,...t},a)=>o.jsx(w.Image,{ref:a,className:r("aspect-square h-full w-full",e),...t}));Ge.displayName=w.Image.displayName;const Ve=s.forwardRef(({className:e,...t},a)=>o.jsx(w.Fallback,{ref:a,className:r("flex h-full w-full items-center justify-center rounded-full bg-muted",e),...t}));Ve.displayName=w.Fallback.displayName;const ia=u.Root,da=u.Trigger,Oe=u.Portal,A=s.forwardRef(({className:e,...t},a)=>o.jsx(u.Overlay,{className:r("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:a}));A.displayName=u.Overlay.displayName;const Fe=s.forwardRef(({className:e,...t},a)=>o.jsxs(Oe,{children:[o.jsx(A,{}),o.jsx(u.Content,{ref:a,className:r("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));Fe.displayName=u.Content.displayName;const Be=({className:e,...t})=>o.jsx("div",{className:r("flex flex-col space-y-2 text-center sm:text-left",e),...t});Be.displayName="AlertDialogHeader";const Ue=({className:e,...t})=>o.jsx("div",{className:r("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Ue.displayName="AlertDialogFooter";const Ee=s.forwardRef(({className:e,...t},a)=>o.jsx(u.Title,{ref:a,className:r("text-lg font-semibold",e),...t}));Ee.displayName=u.Title.displayName;const Je=s.forwardRef(({className:e,...t},a)=>o.jsx(u.Description,{ref:a,className:r("text-sm text-muted-foreground",e),...t}));Je.displayName=u.Description.displayName;const Ke=s.forwardRef(({className:e,...t},a)=>o.jsx(u.Action,{ref:a,className:r(S(),e),...t}));Ke.displayName=u.Action.displayName;const Qe=s.forwardRef(({className:e,...t},a)=>o.jsx(u.Cancel,{ref:a,className:r(S({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));Qe.displayName=u.Cancel.displayName;const la=i.Root,ca=i.Trigger,ma=i.Close,We=i.Portal,P=s.forwardRef(({className:e,...t},a)=>o.jsx(i.Overlay,{className:r("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:a}));P.displayName=i.Overlay.displayName;const pa=N.cva("fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out",{variants:{side:{top:"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",bottom:"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",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",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"}},defaultVariants:{side:"right"}}),Xe=s.forwardRef(({side:e="right",className:t,children:a,...n},m)=>o.jsxs(We,{children:[o.jsx(P,{}),o.jsxs(i.Content,{ref:m,className:r(pa({side:e}),t),...n,children:[o.jsxs(i.Close,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[o.jsx(f.Cross1Icon,{className:"h-4 w-4"}),o.jsx("span",{className:"sr-only",children:"Close"})]}),a]})]}));Xe.displayName=i.Content.displayName;const Ye=({className:e,...t})=>o.jsx("div",{className:r("flex flex-col space-y-2 text-center sm:text-left",e),...t});Ye.displayName="SheetHeader";const Ze=({className:e,...t})=>o.jsx("div",{className:r("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Ze.displayName="SheetFooter";const $e=s.forwardRef(({className:e,...t},a)=>o.jsx(i.Title,{ref:a,className:r("text-lg font-semibold text-foreground",e),...t}));$e.displayName=i.Title.displayName;const et=s.forwardRef(({className:e,...t},a)=>o.jsx(i.Description,{ref:a,className:r("text-sm text-muted-foreground",e),...t}));et.displayName=i.Description.displayName;const ua=l.Root,fa=l.Trigger,ga=l.Group,xa=l.Portal,ba=l.Sub,ha=l.RadioGroup,tt=s.forwardRef(({className:e,inset:t,children:a,...n},m)=>o.jsxs(l.SubTrigger,{ref:m,className:r("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...n,children:[a,o.jsx(f.ChevronRightIcon,{className:"ml-auto h-4 w-4"})]}));tt.displayName=l.SubTrigger.displayName;const at=s.forwardRef(({className:e,...t},a)=>o.jsx(l.SubContent,{ref:a,className:r("z-50 min-w-[8rem] origin-[--radix-context-menu-content-transform-origin] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t}));at.displayName=l.SubContent.displayName;const ot=s.forwardRef(({className:e,...t},a)=>o.jsx(l.Portal,{children:o.jsx(l.Content,{ref:a,className:r("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] origin-[--radix-context-menu-content-transform-origin] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...t})}));ot.displayName=l.Content.displayName;const rt=s.forwardRef(({className:e,inset:t,...a},n)=>o.jsx(l.Item,{ref:n,className:r("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...a}));rt.displayName=l.Item.displayName;const st=s.forwardRef(({className:e,children:t,checked:a,...n},m)=>o.jsxs(l.CheckboxItem,{ref:m,className:r("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:a,...n,children:[o.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(l.ItemIndicator,{children:o.jsx(f.CheckIcon,{className:"h-4 w-4"})})}),t]}));st.displayName=l.CheckboxItem.displayName;const nt=s.forwardRef(({className:e,children:t,...a},n)=>o.jsxs(l.RadioItem,{ref:n,className:r("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...a,children:[o.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:o.jsx(l.ItemIndicator,{children:o.jsx(f.CircleIcon,{className:"h-2 w-2 fill-current"})})}),t]}));nt.displayName=l.RadioItem.displayName;const it=s.forwardRef(({className:e,inset:t,...a},n)=>o.jsx(l.Label,{ref:n,className:r("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...a}));it.displayName=l.Label.displayName;const dt=s.forwardRef(({className:e,...t},a)=>o.jsx(l.Separator,{ref:a,className:r("-mx-1 my-1 h-px bg-border",e),...t}));dt.displayName=l.Separator.displayName;const lt=({className:e,...t})=>o.jsx("span",{className:r("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});lt.displayName="ContextMenuShortcut";const ct=N.cva("inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",outline:"border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground"},size:{default:"h-9 px-2 min-w-9",sm:"h-8 px-1.5 min-w-8",lg:"h-10 px-2.5 min-w-10"}},defaultVariants:{variant:"default",size:"default"}}),mt=s.forwardRef(({className:e,variant:t,size:a,...n},m)=>o.jsx(L.Root,{ref:m,className:r(ct({variant:t,size:a,className:e})),...n}));mt.displayName=L.Root.displayName;exports.Accordion=$t;exports.AccordionContent=be;exports.AccordionItem=ge;exports.AccordionTrigger=xe;exports.Alert=Q;exports.AlertDescription=X;exports.AlertDialog=ia;exports.AlertDialogAction=Ke;exports.AlertDialogCancel=Qe;exports.AlertDialogContent=Fe;exports.AlertDialogDescription=Je;exports.AlertDialogFooter=Ue;exports.AlertDialogHeader=Be;exports.AlertDialogOverlay=A;exports.AlertDialogPortal=Oe;exports.AlertDialogTitle=Ee;exports.AlertDialogTrigger=da;exports.AlertTitle=W;exports.Avatar=He;exports.AvatarFallback=Ve;exports.AvatarImage=Ge;exports.Badge=Zt;exports.Button=H;exports.Card=ye;exports.CardContent=je;exports.CardDescription=Ce;exports.CardFooter=Se;exports.CardHeader=Ne;exports.CardTitle=we;exports.Command=k;exports.CommandDialog=Et;exports.CommandEmpty=ne;exports.CommandGroup=ie;exports.CommandInput=re;exports.CommandItem=le;exports.CommandList=se;exports.CommandSeparator=de;exports.CommandShortcut=ce;exports.ContextMenu=ua;exports.ContextMenuCheckboxItem=st;exports.ContextMenuContent=ot;exports.ContextMenuGroup=ga;exports.ContextMenuItem=rt;exports.ContextMenuLabel=it;exports.ContextMenuPortal=xa;exports.ContextMenuRadioGroup=ha;exports.ContextMenuRadioItem=nt;exports.ContextMenuSeparator=dt;exports.ContextMenuShortcut=lt;exports.ContextMenuSub=ba;exports.ContextMenuSubContent=at;exports.ContextMenuSubTrigger=tt;exports.ContextMenuTrigger=fa;exports.Dialog=Z;exports.DialogClose=Ut;exports.DialogContent=T;exports.DialogDescription=oe;exports.DialogFooter=te;exports.DialogHeader=ee;exports.DialogOverlay=D;exports.DialogPortal=$;exports.DialogTitle=ae;exports.DialogTrigger=Bt;exports.DropdownMenu=zt;exports.DropdownMenuCheckboxItem=B;exports.DropdownMenuContent=O;exports.DropdownMenuGroup=Lt;exports.DropdownMenuItem=F;exports.DropdownMenuLabel=E;exports.DropdownMenuPortal=Ht;exports.DropdownMenuRadioGroup=Vt;exports.DropdownMenuRadioItem=U;exports.DropdownMenuSeparator=J;exports.DropdownMenuShortcut=K;exports.DropdownMenuSub=Gt;exports.DropdownMenuSubContent=V;exports.DropdownMenuSubTrigger=G;exports.DropdownMenuTrigger=qt;exports.HoverCard=ea;exports.HoverCardContent=he;exports.HoverCardTrigger=ta;exports.Input=Y;exports.Label=Re;exports.Popover=Jt;exports.PopoverAnchor=Qt;exports.PopoverContent=me;exports.PopoverTrigger=Kt;exports.ScrollArea=De;exports.ScrollBar=I;exports.Select=ra;exports.SelectContent=Ae;exports.SelectGroup=sa;exports.SelectItem=ze;exports.SelectLabel=Pe;exports.SelectScrollDownButton=M;exports.SelectScrollUpButton=_;exports.SelectSeparator=qe;exports.SelectTrigger=Me;exports.SelectValue=na;exports.Separator=Le;exports.Sheet=la;exports.SheetClose=ma;exports.SheetContent=Xe;exports.SheetDescription=et;exports.SheetFooter=Ze;exports.SheetHeader=Ye;exports.SheetOverlay=P;exports.SheetPortal=We;exports.SheetTitle=$e;exports.SheetTrigger=ca;exports.Skeleton=Ot;exports.Slider=_e;exports.Switch=fe;exports.Tabs=oa;exports.TabsContent=Ie;exports.TabsList=Te;exports.TabsTrigger=ke;exports.Textarea=ve;exports.Toggle=mt;exports.Tooltip=Xt;exports.TooltipContent=pe;exports.TooltipProvider=Wt;exports.TooltipTrigger=Yt;exports.badgeVariants=ue;exports.buttonVariants=S;exports.cn=r;exports.toggleVariants=ct;