lula2 0.6.4-nightly.1 → 0.6.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,2 +0,0 @@
1
- import"../chunks/DsnmJJEf.js";import{aR as he,p as U,am as S,d as h,T as L,G as _,h as i,an as X,ao as A,c as r,n as P,r as a,b as p,e as Y,J as O,K as N,aj as le,a as K,f as I,ap as ze,g as ie,a0 as we,u as Ee,aq as Se,b0 as Le,s as $,i as He,o as Ae,b1 as De,b2 as ye}from"../chunks/BnySH2DD.js";import{l as H,p as C,i as E,a as be,s as ke}from"../chunks/BDFhLgJd.js";import{g as Pe}from"../chunks/CYCHlyTI.js";import{a as je,p as Re,D as Ne}from"../chunks/B1RHKOaU.js";import{i as q}from"../chunks/BZU_Nz1O.js";import{a as ee,f as Ce,e as Te,d as Ve,i as Be,w as ce}from"../chunks/CfxzrOg_.js";he(["change"]);var Oe=A("<title> </title>"),Ue=A('<svg><!><path d="M11.41 26.59L7.83 23 28 23 28 21 7.83 21 11.41 17.41 10 16 4 22 10 28 11.41 26.59zM28 10L22 4 20.59 5.41 24.17 9 4 9 4 11 24.17 11 20.59 14.59 22 16 28 10z"></path></svg>');function Ye(v,t){const e=H(t,["children","$$slots","$$events","$$legacy"]),y=H(e,["size","title"]);U(t,!1);const o=L(),m=L();let g=C(t,"size",8,16),s=C(t,"title",8,void 0);S(()=>(_(e),_(s())),()=>{h(o,e["aria-label"]||e["aria-labelledby"]||s())}),S(()=>(i(o),_(e)),()=>{h(m,{"aria-hidden":i(o)?void 0:!0,role:i(o)?"img":void 0,focusable:Number(e.tabindex)===0?!0:void 0})}),X(),q();var n=Ue();ee(n,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:g(),height:g(),...i(m),...y}));var l=r(n);{var b=d=>{var c=Oe(),k=r(c,!0);a(c),O(()=>N(k,s())),p(d,c)};E(l,d=>{s()&&d(b)})}P(),a(n),p(v,n),Y()}var Ie=I('<a href="/setup" class="inline-flex items-center gap-2 px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 transition-colors" title="Switch control set"><!> Switch</a>'),Ge=I('<div class="text-sm text-gray-500 dark:text-gray-400">Loading...</div>');function Fe(v,t){U(t,!1);const e=()=>be(Ce,"$appState",y),[y,o]=ke();q();var m=le(),g=K(m);{var s=l=>{var b=Ie(),d=r(b);Ye(d,{size:16}),P(),a(b),p(l,b)},n=l=>{var b=Ge();p(l,b)};E(g,l=>{e().isConnected?l(s):l(n,!1)})}p(v,m),Y(),o()}var Ze=A("<title> </title>"),Je=A('<svg><!><path d="M17.4141 16L24 9.4141 22.5859 8 16 14.5859 9.4143 8 8 9.4141 14.5859 16 8 22.5859 9.4143 24 16 17.4141 22.5859 24 24 22.5859 17.4141 16z"></path></svg>');function Ke(v,t){const e=H(t,["children","$$slots","$$events","$$legacy"]),y=H(e,["size","title"]);U(t,!1);const o=L(),m=L();let g=C(t,"size",8,16),s=C(t,"title",8,void 0);S(()=>(_(e),_(s())),()=>{h(o,e["aria-label"]||e["aria-labelledby"]||s())}),S(()=>(i(o),_(e)),()=>{h(m,{"aria-hidden":i(o)?void 0:!0,role:i(o)?"img":void 0,focusable:Number(e.tabindex)===0?!0:void 0})}),X(),q();var n=Je();ee(n,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:g(),height:g(),...i(m),...y}));var l=r(n);{var b=d=>{var c=Ze(),k=r(c,!0);a(c),O(()=>N(k,s())),p(d,c)};E(l,d=>{s()&&d(b)})}P(),a(n),p(v,n),Y()}function qe(v,t){v.target===v.currentTarget&&t()}var We=(v,t)=>v.key==="Escape"&&t(),Qe=v=>v.stopPropagation(),Xe=I("<option> </option>"),et=I(`<div class="fixed inset-0 bg-gray-700 dark:bg-gray-900 bg-opacity-50 dark:bg-opacity-75 overflow-y-auto h-full w-full z-50 flex items-center justify-center p-4" role="dialog" aria-modal="true" tabindex="-1"><div class="bg-white dark:bg-gray-800 rounded-lg shadow-xl p-6 w-full max-w-md mx-auto" role="document"><div class="flex items-center justify-between mb-4"><h2 class="text-xl font-semibold text-gray-900 dark:text-white"> </h2> <button class="text-gray-400 dark:text-gray-500 hover:text-gray-600 dark:hover:text-gray-300" aria-label="Close dialog"><!></button></div> <div class="mb-6"><p class="text-sm text-gray-600 dark:text-gray-400 mb-4">Choose which column should contain the mappings data:</p> <div class="space-y-2"><label for="column-select" class="block text-sm font-medium text-gray-700 dark:text-gray-300">Mappings Column</label> <select id="column-select" class="w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-md shadow-sm bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500"></select></div> <div class="mt-3 p-3 bg-blue-50 dark:bg-blue-900/20 rounded-md"><p class="text-xs text-blue-600 dark:text-blue-400"><strong>Note:</strong> Mappings data will be formatted as "status: description..." in the
2
- selected column.</p></div></div> <div class="flex justify-end space-x-3"><button class="px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 transition-colors">Cancel</button> <button class="px-4 py-2 text-sm font-medium text-white bg-blue-600 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 rounded-lg transition-colors"> </button></div></div></div>`);function tt(v,t){U(t,!0);let e=C(t,"isOpen",15),y=C(t,"columnHeaders",19,()=>[]),o=C(t,"defaultColumn",3,"Mappings");const m=ze();let g=ie(we(o()));Ee(()=>{e()&&h(g,o())});function s(z){return e()&&setTimeout(()=>z.focus(),0),{update(D){D&&setTimeout(()=>z.focus(),0)}}}function n(){m("export",{format:t.format,mappingsColumn:i(g)}),e(!1)}function l(){m("cancel"),e(!1)}function b(z){z.key==="Escape"?l():z.key==="Enter"&&n()}var d=le();Se("keydown",Le,b);var c=K(d);{var k=z=>{var D=et();D.__click=[qe,l],D.__keydown=[We,l];var te=r(D);te.__click=[Qe];var ae=r(te),re=r(ae),ue=r(re);a(re);var f=$(re,2);f.__click=l;var x=r(f);Ke(x,{class:"w-6 h-6"}),a(f),a(ae);var u=$(ae,2),M=$(r(u),2),w=$(r(M),2);Te(w,21,y,Be,(j,G)=>{var F=Xe(),ge=r(F,!0);a(F);var de={};O(()=>{N(ge,i(G).label),de!==(de=i(G).value)&&(F.value=(F.__value=i(G).value)??"")}),p(j,F)}),a(w),je(w,(j,G)=>s?.(j),e),He(()=>Ve(w,()=>i(g),j=>h(g,j))),a(M),P(2),a(u);var T=$(u,2),J=r(T);J.__click=l;var W=$(J,2);W.__click=n;var ve=r(W);a(W),a(T),a(te),a(D),O((j,G)=>{N(ue,`Export as ${j??""}`),N(ve,`Export ${G??""}`)},[()=>t.format.toUpperCase(),()=>t.format.toUpperCase()]),p(z,D)};E(c,z=>{e()&&z(k)})}p(v,d),Y()}he(["click","keydown"]);var at=A("<title> </title>"),rt=A('<svg><!><path d="M31 16L24 23 22.59 21.59 28.17 16 22.59 10.41 24 9 31 16zM1 16L8 9 9.41 10.41 3.83 16 9.41 21.59 8 23 1 16z"></path><path d="M5.91 15H26.080000000000002V17H5.91z" transform="rotate(-75 15.996 16)"></path></svg>');function ot(v,t){const e=H(t,["children","$$slots","$$events","$$legacy"]),y=H(e,["size","title"]);U(t,!1);const o=L(),m=L();let g=C(t,"size",8,16),s=C(t,"title",8,void 0);S(()=>(_(e),_(s())),()=>{h(o,e["aria-label"]||e["aria-labelledby"]||s())}),S(()=>(i(o),_(e)),()=>{h(m,{"aria-hidden":i(o)?void 0:!0,role:i(o)?"img":void 0,focusable:Number(e.tabindex)===0?!0:void 0})}),X(),q();var n=rt();ee(n,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:g(),height:g(),...i(m),...y}));var l=r(n);{var b=d=>{var c=at(),k=r(c,!0);a(c),O(()=>N(k,s())),p(d,c)};E(l,d=>{s()&&d(b)})}P(2),a(n),p(v,n),Y()}var st=A("<title> </title>"),nt=A('<svg><!><path d="M13 21L26.17 21 23.59 23.59 25 25 30 20 25 15 23.59 16.41 26.17 19 13 19 13 21z"></path><path d="M22,14V10a1,1,0,0,0-.29-.71l-7-7A1,1,0,0,0,14,2H4A2,2,0,0,0,2,4V28a2,2,0,0,0,2,2H20a2,2,0,0,0,2-2V26H20v2H4V4h8v6a2,2,0,0,0,2,2h6v2Zm-8-4V4.41L19.59,10Z"></path></svg>');function it(v,t){const e=H(t,["children","$$slots","$$events","$$legacy"]),y=H(e,["size","title"]);U(t,!1);const o=L(),m=L();let g=C(t,"size",8,16),s=C(t,"title",8,void 0);S(()=>(_(e),_(s())),()=>{h(o,e["aria-label"]||e["aria-labelledby"]||s())}),S(()=>(i(o),_(e)),()=>{h(m,{"aria-hidden":i(o)?void 0:!0,role:i(o)?"img":void 0,focusable:Number(e.tabindex)===0?!0:void 0})}),X(),q();var n=nt();ee(n,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:g(),height:g(),...i(m),...y}));var l=r(n);{var b=d=>{var c=st(),k=r(c,!0);a(c),O(()=>N(k,s())),p(d,c)};E(l,d=>{s()&&d(b)})}P(2),a(n),p(v,n),Y()}var lt=A("<title> </title>"),dt=A('<svg><!><path d="M26 24v4H6V24H4v4H4a2 2 0 002 2H26a2 2 0 002-2h0V24zM26 14L24.59 12.59 17 20.17 17 2 15 2 15 20.17 7.41 12.59 6 14 16 24 26 14z"></path></svg>');function _e(v,t){const e=H(t,["children","$$slots","$$events","$$legacy"]),y=H(e,["size","title"]);U(t,!1);const o=L(),m=L();let g=C(t,"size",8,16),s=C(t,"title",8,void 0);S(()=>(_(e),_(s())),()=>{h(o,e["aria-label"]||e["aria-labelledby"]||s())}),S(()=>(i(o),_(e)),()=>{h(m,{"aria-hidden":i(o)?void 0:!0,role:i(o)?"img":void 0,focusable:Number(e.tabindex)===0?!0:void 0})}),X(),q();var n=dt();ee(n,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:g(),height:g(),...i(m),...y}));var l=r(n);{var b=d=>{var c=lt(),k=r(c,!0);a(c),O(()=>N(k,s())),p(d,c)};E(l,d=>{s()&&d(b)})}P(),a(n),p(v,n),Y()}var ct=A("<title> </title>"),ut=A('<svg><!><path fill-rule="evenodd" d="M16,2a14,14,0,0,0-4.43,27.28c.7.13,1-.3,1-.67s0-1.21,0-2.38c-3.89.84-4.71-1.88-4.71-1.88A3.71,3.71,0,0,0,6.24,22.3c-1.27-.86.1-.85.1-.85A2.94,2.94,0,0,1,8.48,22.9a3,3,0,0,0,4.08,1.16,2.93,2.93,0,0,1,.88-1.87c-3.1-.36-6.37-1.56-6.37-6.92a5.4,5.4,0,0,1,1.44-3.76,5,5,0,0,1,.14-3.7s1.17-.38,3.85,1.43a13.3,13.3,0,0,1,7,0c2.67-1.81,3.84-1.43,3.84-1.43a5,5,0,0,1,.14,3.7,5.4,5.4,0,0,1,1.44,3.76c0,5.38-3.27,6.56-6.39,6.91a3.33,3.33,0,0,1,.95,2.59c0,1.87,0,3.38,0,3.84s.25.81,1,.67A14,14,0,0,0,16,2Z"></path></svg>');function vt(v,t){const e=H(t,["children","$$slots","$$events","$$legacy"]),y=H(e,["size","title"]);U(t,!1);const o=L(),m=L();let g=C(t,"size",8,16),s=C(t,"title",8,void 0);S(()=>(_(e),_(s())),()=>{h(o,e["aria-label"]||e["aria-labelledby"]||s())}),S(()=>(i(o),_(e)),()=>{h(m,{"aria-hidden":i(o)?void 0:!0,role:i(o)?"img":void 0,focusable:Number(e.tabindex)===0?!0:void 0})}),X(),q();var n=ut();ee(n,()=>({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor",preserveAspectRatio:"xMidYMid meet",width:g(),height:g(),...i(m),...y}));var l=r(n);{var b=d=>{var c=ct(),k=r(c,!0);a(c),O(()=>N(k,s())),p(d,c)};E(l,d=>{s()&&d(b)})}P(),a(n),p(v,n),Y()}var gt=(v,t)=>t("csv"),ft=(v,t)=>t("excel"),pt=(v,t)=>t("json"),mt=I('<div class="space-y-1 p-1"><button class="w-full text-left px-3 py-2 text-sm rounded-md transition-colors duration-200 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"><div class="flex items-center gap-2"><!> <span>Export as CSV</span></div></button> <button class="w-full text-left px-3 py-2 text-sm rounded-md transition-colors duration-200 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"><div class="flex items-center gap-2"><!> <span>Export as Excel</span></div></button> <button class="w-full text-left px-3 py-2 text-sm rounded-md transition-colors duration-200 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-700"><div class="flex items-center gap-2"><!> <span>Export as JSON</span></div></button></div>'),bt=I('<div class="flex-1 flex justify-center items-center"><div class="text-center"><div class="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"></div> <p class="text-gray-500 dark:text-gray-400">Switching control set...</p></div></div>'),ht=I('<div class="flex-1 flex justify-center items-center"><div class="text-center"><div class="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"></div> <p class="text-gray-500 dark:text-gray-400"> </p></div></div>'),xt=I('<header class="bg-white dark:bg-gray-900 shadow-sm border-b border-gray-200 dark:border-gray-700 flex-shrink-0"><div class="w-full px-6 lg:px-8"><div class="flex justify-between items-center h-16"><div class="flex items-center"><a href="/" class="flex items-center space-x-3 hover:opacity-80 transition-opacity"><img src="/lula.png" class="h-8 w-8" alt="Lula Logo"/> <div class="flex flex-col"><span class="text-xl font-bold text-gray-900 dark:text-white">Lula</span> <span class="text-xs text-gray-500 dark:text-gray-400 -mt-1">Gitops for Compliance</span></div></a></div> <div class="flex items-center space-x-4"><!> <!> <a class="p-2 text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-lg transition-colors" title="Github" href="https://github.com/defenseunicorns/lula" target="_blank"><!></a></div></div></div></header> <div class="flex-1 flex gap-6 p-6 overflow-hidden"><!></div>',1),yt=I('<div class="h-screen flex flex-col"><!></div> <!>',1);function Et(v,t){U(t,!0);const e=()=>be(Ce,"$appState",o),y=()=>be(Re,"$page",o),[o,m]=ke();let g=!1,s=ie(!1),n=ie("csv"),l=ie(we([])),b=ie("Mappings");async function d(){try{if(!e().currentPath){console.error("No current control set path available"),h(l,[{value:"Mappings",label:"Mappings (Default)"}],!0),h(b,"Mappings");return}const x=await fetch("/api/export-column-headers");if(x.ok){const u=await x.json();h(l,u.columnHeaders||[],!0),h(b,u.defaultColumn||"Mappings",!0)}else console.error("Failed to load column headers"),h(l,[{value:"Mappings",label:"Mappings (Default)"}],!0),h(b,"Mappings")}catch(f){console.error("Error loading column headers:",f),h(l,[{value:"Mappings",label:"Mappings (Default)"}],!0),h(b,"Mappings")}}async function c(f){if(f==="json")try{const x=`/api/export-controls?format=${f}`,u=document.createElement("a");u.href=x,u.download="",document.body.appendChild(u),u.click(),document.body.removeChild(u)}catch(x){console.error("Export failed:",x)}else h(n,f,!0),await d(),h(s,!0)}async function k(f){try{const{format:x,mappingsColumn:u}=f.detail,M=`/api/export-controls?format=${x}&mappingsColumn=${encodeURIComponent(u)}`,w=document.createElement("a");w.href=M,w.download="",document.body.appendChild(w),w.click(),document.body.removeChild(w)}catch(x){console.error("Export failed:",x)}}Ae(()=>{ce.connect();let f=null;const x=async()=>{if(g||y().url.pathname==="/setup"||e().isSwitchingControlSet)return;const u=e();if(u.isConnected){if(g=!0,(!u.name||u.name==="Unknown Control Set"||u.id==="unknown"||u.id==="default")&&(!u.controls||u.controls.length===0)){await ce.scanControlSets();const M=await new Promise(w=>{const T=J=>{window.removeEventListener("control-sets-list",T),w(J.detail)};window.addEventListener("control-sets-list",T),setTimeout(()=>{window.removeEventListener("control-sets-list",T),w(null)},2e3)});M&&Array.isArray(M)&&M.length===1?(console.log("Auto-loading single control set:",M[0].path),await ce.switchControlSet(M[0].path)):Pe("/setup")}}else f=window.setTimeout(x,500)};return f=window.setTimeout(x,100),()=>{f&&clearTimeout(f)}}),De(()=>{ce.disconnect()});var z=yt(),D=K(z),te=r(D);{var ae=f=>{var x=xt(),u=K(x),M=r(u),w=r(M),T=$(r(w),2),J=r(T);Fe(J,{});var W=$(J,2);{var ve=R=>{Ne(R,{buttonLabel:"Export",get buttonIcon(){return _e},buttonClass:"inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 dark:text-gray-300 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 transition-colors",dropdownClass:"w-48",children:fe=>{var se=mt(),Q=r(se);Q.__click=[gt,c];var V=r(Q),Z=r(V);it(Z,{class:"w-4 h-4"}),P(2),a(V),a(Q);var B=$(Q,2);B.__click=[ft,c];var ne=r(B),pe=r(ne);_e(pe,{class:"w-4 h-4"}),P(2),a(ne),a(B);var me=$(B,2);me.__click=[pt,c];var xe=r(me),Me=r(xe);ot(Me,{class:"w-4 h-4"}),P(2),a(xe),a(me),a(se),p(fe,se)},$$slots:{default:!0}})};E(W,R=>{e().isConnected&&e().controls&&e().controls.length>0&&R(ve)})}var j=$(W,2),G=r(j);vt(G,{class:"w-5 h-5"}),a(j),a(T),a(w),a(M),a(u);var F=$(u,2),ge=r(F);{var de=R=>{var oe=bt();p(R,oe)},$e=R=>{var oe=le(),fe=K(oe);{var se=V=>{var Z=ht(),B=r(Z),ne=$(r(B),2),pe=r(ne,!0);a(ne),a(B),a(Z),O(()=>N(pe,e().isConnected?e().fieldSchema?"Loading controls...":"Loading schema...":"Connecting...")),p(V,Z)},Q=V=>{var Z=le(),B=K(Z);ye(B,()=>t.children),p(V,Z)};E(fe,V=>{!e().isConnected||!e().controls||e().controls.length===0||!e().fieldSchema?V(se):V(Q,!1)},!0)}p(R,oe)};E(ge,R=>{e().isSwitchingControlSet?R(de):R($e,!1)})}a(F),p(f,x)},re=f=>{var x=le(),u=K(x);ye(u,()=>t.children),p(f,x)};E(te,f=>{y().url.pathname!=="/setup"?f(ae):f(re,!1)})}a(D);var ue=$(D,2);tt(ue,{get format(){return i(n)},get columnHeaders(){return i(l)},get defaultColumn(){return i(b)},get isOpen(){return i(s)},set isOpen(f){h(s,f,!0)},$$events:{export:k,cancel:()=>{}}}),p(v,z),Y(),m()}he(["click"]);export{Et as component};