@yuktishaalaa/yuktai 4.6.3 → 4.6.4

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/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./chunk-XQMQZMAH.mjs";function Tt(){let e=window;return e.Rewriter||e.ai?.rewriter||null}async function Ke(){try{let e=Tt();if(!e)return!1;if(typeof e.availability=="function"){let t=await e.availability();return t==="readily"||t==="available"||t==="downloadable"}return typeof e.capabilities=="function"?(await e.capabilities())?.available!=="no":typeof e.create=="function"}catch{return!1}}async function So(e){if(!e||e.trim().length<20)return{success:!1,original:e,rewritten:e,error:"Text too short"};try{let t=Tt();if(!t)throw new Error("Rewriter API not available");let o=await t.create({tone:"more-casual",format:"plain-text",length:"as-is",outputLanguage:"en"}),i=await o.rewrite(e,{context:"Rewrite this text in simple plain English. Use short sentences. Avoid jargon. Make it easy to understand for everyone."});return o.destroy(),{success:!0,original:e,rewritten:i.trim()}}catch(t){return{success:!1,original:e,rewritten:e,error:t instanceof Error?t.message:"Rewrite failed"}}}async function Ct(){if(!await Ke())return{fixed:0,error:"Chrome Built-in AI Rewriter not available. Enable via chrome://flags."};let t=document.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, blockquote, td, th, label, figcaption"),o=0;for(let i of t){let r=i.innerText?.trim();if(!r||r.length<20||i.closest("[data-yuktai-panel]"))continue;let a=await So(r);a.success&&a.rewritten!==r&&(i.dataset.yuktaiOriginal=r,i.innerText=a.rewritten,o++)}return{fixed:o}}function Et(){let e=document.querySelectorAll("[data-yuktai-original]");for(let t of e){let o=t.dataset.yuktaiOriginal;o&&(t.innerText=o,delete t.dataset.yuktaiOriginal)}}var Rt="yuktai-summary-box";function Pt(){let e=window;return e.Summarizer||e.ai?.summarizer||null}async function Ze(){try{let e=Pt();if(!e)return!1;if(typeof e.availability=="function"){let t=await e.availability();return t==="readily"||t==="available"||t==="downloadable"}return typeof e.capabilities=="function"?(await e.capabilities())?.available!=="no":typeof e.create=="function"}catch{return!1}}function Ao(){let e=document.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, blockquote, article, section"),t=[];for(let o of e){if(o.closest("[data-yuktai-panel]"))continue;let i=window.getComputedStyle(o);if(i.display==="none"||i.visibility==="hidden")continue;let r=o.innerText?.trim();r&&r.length>10&&t.push(r)}return t.join(" ").slice(0,5e3)}async function It(){if(!await Ze())return{success:!1,summary:"",error:"Chrome Built-in AI Summarizer not available. Enable via chrome://flags."};let t=Ao();if(!t||t.length<100)return{success:!1,summary:"",error:"Not enough text on this page to summarise."};try{let o=Pt();if(!o)throw new Error("Summarizer API not available");let i=await o.create({type:"tl;dr",format:"plain-text",length:"short",outputLanguage:"en"}),r=await i.summarize(t,{context:"Summarise this page in 2-3 simple sentences for a screen reader user who wants to know if this page is relevant to them."});return i.destroy(),To(r.trim()),{success:!0,summary:r.trim()}}catch(o){return{success:!1,summary:"",error:o instanceof Error?o.message:"Summary failed"}}}function To(e){We();let t=document.createElement("div");t.id=Rt,t.setAttribute("data-yuktai-panel","true"),t.setAttribute("role","region"),t.setAttribute("aria-label","Page summary by yuktai"),t.style.cssText=`
1
+ import{a as Pt}from"./chunk-3VGU4YGK.mjs";import{a as zt,b as De,c as He}from"./chunk-XQMQZMAH.mjs";function Mt(){let e=window;return e.Rewriter||e.ai?.rewriter||null}async function rt(){try{let e=Mt();if(!e)return!1;if(typeof e.availability=="function"){let t=await e.availability();return t==="readily"||t==="available"||t==="downloadable"}return typeof e.capabilities=="function"?(await e.capabilities())?.available!=="no":typeof e.create=="function"}catch{return!1}}async function Po(e){if(!e||e.trim().length<20)return{success:!1,original:e,rewritten:e,error:"Text too short"};try{let t=Mt();if(!t)throw new Error("Rewriter API not available");let o=await t.create({tone:"more-casual",format:"plain-text",length:"as-is",outputLanguage:"en"}),n=await o.rewrite(e,{context:"Rewrite this text in simple plain English. Use short sentences. Avoid jargon. Make it easy to understand for everyone."});return o.destroy(),{success:!0,original:e,rewritten:n.trim()}}catch(t){return{success:!1,original:e,rewritten:e,error:t instanceof Error?t.message:"Rewrite failed"}}}async function Wt(){if(!await rt())return{fixed:0,error:"Chrome Built-in AI Rewriter not available. Enable via chrome://flags."};let t=document.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, blockquote, td, th, label, figcaption"),o=0;for(let n of t){let i=n.innerText?.trim();if(!i||i.length<20||n.closest("[data-yuktai-panel]"))continue;let a=await Po(i);a.success&&a.rewritten!==i&&(n.dataset.yuktaiOriginal=i,n.innerText=a.rewritten,o++)}return{fixed:o}}function Gt(){let e=document.querySelectorAll("[data-yuktai-original]");for(let t of e){let o=t.dataset.yuktaiOriginal;o&&(t.innerText=o,delete t.dataset.yuktaiOriginal)}}var Ft="yuktai-summary-box";function $t(){let e=window;return e.Summarizer||e.ai?.summarizer||null}async function it(){try{let e=$t();if(!e)return!1;if(typeof e.availability=="function"){let t=await e.availability();return t==="readily"||t==="available"||t==="downloadable"}return typeof e.capabilities=="function"?(await e.capabilities())?.available!=="no":typeof e.create=="function"}catch{return!1}}function zo(){let e=document.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, blockquote, article, section"),t=[];for(let o of e){if(o.closest("[data-yuktai-panel]"))continue;let n=window.getComputedStyle(o);if(n.display==="none"||n.visibility==="hidden")continue;let i=o.innerText?.trim();i&&i.length>10&&t.push(i)}return t.join(" ").slice(0,5e3)}async function Bt(){if(!await it())return{success:!1,summary:"",error:"Chrome Built-in AI Summarizer not available. Enable via chrome://flags."};let t=zo();if(!t||t.length<100)return{success:!1,summary:"",error:"Not enough text on this page to summarise."};try{let o=$t();if(!o)throw new Error("Summarizer API not available");let n=await o.create({type:"tl;dr",format:"plain-text",length:"short",outputLanguage:"en"}),i=await n.summarize(t,{context:"Summarise this page in 2-3 simple sentences for a screen reader user who wants to know if this page is relevant to them."});return n.destroy(),Mo(i.trim()),{success:!0,summary:i.trim()}}catch(o){return{success:!1,summary:"",error:o instanceof Error?o.message:"Summary failed"}}}function Mo(e){Oe();let t=document.createElement("div");t.id=Ft,t.setAttribute("data-yuktai-panel","true"),t.setAttribute("role","region"),t.setAttribute("aria-label","Page summary by yuktai"),t.style.cssText=`
2
2
  position: fixed;
3
3
  top: 0;
4
4
  left: 0;
@@ -15,11 +15,11 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
15
15
  justify-content: space-between;
16
16
  gap: 12px;
17
17
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
18
- `;let o=document.createElement("p");o.style.cssText="margin: 0; flex: 1;",o.textContent=`\u{1F4CB} Page summary: ${e}`;let i=document.createElement("button");i.textContent="\xD7",i.setAttribute("aria-label","Close page summary"),i.style.cssText=`
18
+ `;let o=document.createElement("p");o.style.cssText="margin: 0; flex: 1;",o.textContent=`\u{1F4CB} Page summary: ${e}`;let n=document.createElement("button");n.textContent="\xD7",n.setAttribute("aria-label","Close page summary"),n.style.cssText=`
19
19
  background: none; border: none; color: #ffffff;
20
20
  font-size: 20px; cursor: pointer; padding: 0 4px;
21
21
  line-height: 1; flex-shrink: 0;
22
- `,i.addEventListener("click",We),t.appendChild(o),t.appendChild(i),document.body.prepend(t)}function We(){let e=document.getElementById(Rt);e&&e.remove()}var Be=[{code:"en",label:"English"},{code:"hi",label:"Hindi"},{code:"es",label:"Spanish"},{code:"fr",label:"French"},{code:"de",label:"German"},{code:"it",label:"Italian"},{code:"pt",label:"Portuguese"},{code:"nl",label:"Dutch"},{code:"pl",label:"Polish"},{code:"ru",label:"Russian"},{code:"ja",label:"Japanese"},{code:"ko",label:"Korean"},{code:"zh",label:"Chinese"},{code:"ar",label:"Arabic"},{code:"tr",label:"Turkish"},{code:"vi",label:"Vietnamese"},{code:"bn",label:"Bengali"},{code:"id",label:"Indonesian"}],$e="en";function Co(){let e=window;return e.Translator||e.translation||null}async function Eo(e){try{let t=window;if(!Co())return!1;if(t.Translator&&typeof t.Translator.availability=="function")try{let i=await t.Translator.availability({sourceLanguage:"en",targetLanguage:e});return i==="readily"||i==="available"||i==="downloadable"||i==="after-download"}catch{}return t.Translator&&typeof t.Translator.canTranslate=="function"?await t.Translator.canTranslate({sourceLanguage:"en",targetLanguage:e})!=="no":t.translation&&typeof t.translation.canTranslate=="function"?await t.translation.canTranslate({sourceLanguage:"en",targetLanguage:e})!=="no":!1}catch{return!1}}async function Ro(e){let t=window,o={sourceLanguage:"en",targetLanguage:e};if(t.Translator&&typeof t.Translator.create=="function")return await t.Translator.create(o);if(t.translation&&typeof t.translation.createTranslator=="function")return await t.translation.createTranslator(o);throw new Error("Translation API not available")}async function Lt(e){if(e===$e)return{success:!0,language:e,fixed:0};if(e==="en")return Qe(),$e="en",{success:!0,language:"en",fixed:0};if(!await Eo(e))return{success:!1,language:e,fixed:0,error:`Translation to ${e} not available. Enable via chrome://flags.`};try{let o=await Ro(e),i=document.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, blockquote, td, th, label, figcaption, span, a"),r=0;for(let a of i){if(a.closest("[data-yuktai-panel]")||a.children.length>0)continue;let n=a.innerText?.trim();if(!n||n.length<2)continue;a.dataset.yuktaiTranslationOriginal||(a.dataset.yuktaiTranslationOriginal=n);let s=await o.translate(n);s&&s!==n&&(a.innerText=s,r++)}return typeof o.destroy=="function"&&o.destroy(),$e=e,{success:!0,language:e,fixed:r}}catch(o){return{success:!1,language:e,fixed:0,error:o instanceof Error?o.message:"Translation failed"}}}function Qe(){let e=document.querySelectorAll("[data-yuktai-translation-original]");for(let t of e){let o=t.dataset.yuktaiTranslationOriginal;o&&(t.innerText=o,delete t.dataset.yuktaiTranslationOriginal)}$e="en"}var Po=[{phrases:["go to main","skip to main","main content"],action:"focus-main",label:"Jump to main content"},{phrases:["go to navigation","go to nav","open menu"],action:"focus-nav",label:"Jump to navigation"},{phrases:["go to search","search","find"],action:"focus-search",label:"Jump to search"},{phrases:["scroll down","page down","next"],action:"scroll-down",label:"Scroll down"},{phrases:["scroll up","page up","back up"],action:"scroll-up",label:"Scroll up"},{phrases:["go back","previous page"],action:"go-back",label:"Go back"},{phrases:["click","press","select"],action:"click-focused",label:"Click focused element"},{phrases:["next item","tab forward","tab"],action:"tab-forward",label:"Move to next element"},{phrases:["previous item","tab back","shift tab"],action:"tab-back",label:"Move to previous element"},{phrases:["stop listening","stop voice","quiet"],action:"stop-voice",label:"Stop voice control"}],ne=null,Ne=!1,be=null;function Xe(){return!!(window.SpeechRecognition||window.webkitSpeechRecognition)}function Io(e){let t=e.toLowerCase().trim();for(let o of Po)for(let i of o.phrases)if(t.includes(i))return{action:o.action,label:o.label};return null}function Lo(e){switch(e){case"focus-main":{let t=document.querySelector("main, [role='main'], #main");t&&(t.focus(),t.scrollIntoView({behavior:"smooth"}));break}case"focus-nav":{let t=document.querySelector("nav, [role='navigation']");t&&(t.focus(),t.scrollIntoView({behavior:"smooth"}));break}case"focus-search":{let t=document.querySelector("input[type='search'], input[role='searchbox'], [aria-label*='search' i]");t&&(t.focus(),t.scrollIntoView({behavior:"smooth"}));break}case"scroll-down":{window.scrollBy({top:400,behavior:"smooth"});break}case"scroll-up":{window.scrollBy({top:-400,behavior:"smooth"});break}case"go-back":{window.history.back();break}case"click-focused":{let t=document.activeElement;t&&t!==document.body&&t.click();break}case"tab-forward":{let t=Mt(),o=t.indexOf(document.activeElement),i=t[o+1]||t[0];i&&i.focus();break}case"tab-back":{let t=Mt(),o=t.indexOf(document.activeElement),i=t[o-1]||t[t.length-1];i&&i.focus();break}case"stop-voice":{Je();break}}}function Mt(){return Array.from(document.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(e=>!e.closest("[data-yuktai-panel]"))}function zt(e){if(!Xe())return!1;if(Ne)return!0;e&&(be=e);let t=window.SpeechRecognition||window.webkitSpeechRecognition;return ne=new t,ne.continuous=!0,ne.interimResults=!1,ne.lang="en-US",ne.onresult=o=>{let i=o.results[o.results.length-1][0].transcript,r=Io(i);if(r){Lo(r.action);let a={success:!0,command:i,action:r.label};if(be&&be(a),r.action==="stop-voice")return}},ne.onend=()=>{Ne&&ne?.start()},ne.onerror=o=>{o.error!=="no-speech"&&be&&be({success:!1,command:"",action:"",error:`Voice error: ${o.error}`})},ne.start(),Ne=!0,Mo(),!0}function Je(){Ne=!1,ne&&(ne.stop(),ne=null),be=null,Ft()}var Gt="yuktai-voice-indicator";function Mo(){Ft();let e=document.createElement("div");e.id=Gt,e.setAttribute("data-yuktai-panel","true"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-label","yuktai voice control is listening"),e.style.cssText=`
22
+ `,n.addEventListener("click",Oe),t.appendChild(o),t.appendChild(n),document.body.prepend(t)}function Oe(){let e=document.getElementById(Ft);e&&e.remove()}var _e=[{code:"en",label:"English"},{code:"hi",label:"Hindi"},{code:"es",label:"Spanish"},{code:"fr",label:"French"},{code:"de",label:"German"},{code:"it",label:"Italian"},{code:"pt",label:"Portuguese"},{code:"nl",label:"Dutch"},{code:"pl",label:"Polish"},{code:"ru",label:"Russian"},{code:"ja",label:"Japanese"},{code:"ko",label:"Korean"},{code:"zh",label:"Chinese"},{code:"ar",label:"Arabic"},{code:"tr",label:"Turkish"},{code:"vi",label:"Vietnamese"},{code:"bn",label:"Bengali"},{code:"id",label:"Indonesian"}],qe="en";function Wo(){let e=window;return e.Translator||e.translation||null}async function Go(e){try{let t=window;if(!Wo())return!1;if(t.Translator&&typeof t.Translator.availability=="function")try{let n=await t.Translator.availability({sourceLanguage:"en",targetLanguage:e});return n==="readily"||n==="available"||n==="downloadable"||n==="after-download"}catch{}return t.Translator&&typeof t.Translator.canTranslate=="function"?await t.Translator.canTranslate({sourceLanguage:"en",targetLanguage:e})!=="no":t.translation&&typeof t.translation.canTranslate=="function"?await t.translation.canTranslate({sourceLanguage:"en",targetLanguage:e})!=="no":!1}catch{return!1}}async function Fo(e){let t=window,o={sourceLanguage:"en",targetLanguage:e};if(t.Translator&&typeof t.Translator.create=="function")return await t.Translator.create(o);if(t.translation&&typeof t.translation.createTranslator=="function")return await t.translation.createTranslator(o);throw new Error("Translation API not available")}async function Nt(e){if(e===qe)return{success:!0,language:e,fixed:0};if(e==="en")return at(),qe="en",{success:!0,language:"en",fixed:0};if(!await Go(e))return{success:!1,language:e,fixed:0,error:`Translation to ${e} not available. Enable via chrome://flags.`};try{let o=await Fo(e),n=document.querySelectorAll("p, h1, h2, h3, h4, h5, h6, li, blockquote, td, th, label, figcaption, span, a"),i=0;for(let a of n){if(a.closest("[data-yuktai-panel]")||a.children.length>0)continue;let r=a.innerText?.trim();if(!r||r.length<2)continue;a.dataset.yuktaiTranslationOriginal||(a.dataset.yuktaiTranslationOriginal=r);let l=await o.translate(r);l&&l!==r&&(a.innerText=l,i++)}return typeof o.destroy=="function"&&o.destroy(),qe=e,{success:!0,language:e,fixed:i}}catch(o){return{success:!1,language:e,fixed:0,error:o instanceof Error?o.message:"Translation failed"}}}function at(){let e=document.querySelectorAll("[data-yuktai-translation-original]");for(let t of e){let o=t.dataset.yuktaiTranslationOriginal;o&&(t.innerText=o,delete t.dataset.yuktaiTranslationOriginal)}qe="en"}var $o=[{phrases:["go to main","skip to main","main content"],action:"focus-main",label:"Jump to main content"},{phrases:["go to navigation","go to nav","open menu"],action:"focus-nav",label:"Jump to navigation"},{phrases:["go to search","search","find"],action:"focus-search",label:"Jump to search"},{phrases:["scroll down","page down","next"],action:"scroll-down",label:"Scroll down"},{phrases:["scroll up","page up","back up"],action:"scroll-up",label:"Scroll up"},{phrases:["go back","previous page"],action:"go-back",label:"Go back"},{phrases:["click","press","select"],action:"click-focused",label:"Click focused element"},{phrases:["next item","tab forward","tab"],action:"tab-forward",label:"Move to next element"},{phrases:["previous item","tab back","shift tab"],action:"tab-back",label:"Move to previous element"},{phrases:["stop listening","stop voice","quiet"],action:"stop-voice",label:"Stop voice control"}],ie=null,je=!1,ve=null;function st(){return!!(window.SpeechRecognition||window.webkitSpeechRecognition)}function Bo(e){let t=e.toLowerCase().trim();for(let o of $o)for(let n of o.phrases)if(t.includes(n))return{action:o.action,label:o.label};return null}function No(e){switch(e){case"focus-main":{let t=document.querySelector("main, [role='main'], #main");t&&(t.focus(),t.scrollIntoView({behavior:"smooth"}));break}case"focus-nav":{let t=document.querySelector("nav, [role='navigation']");t&&(t.focus(),t.scrollIntoView({behavior:"smooth"}));break}case"focus-search":{let t=document.querySelector("input[type='search'], input[role='searchbox'], [aria-label*='search' i]");t&&(t.focus(),t.scrollIntoView({behavior:"smooth"}));break}case"scroll-down":{window.scrollBy({top:400,behavior:"smooth"});break}case"scroll-up":{window.scrollBy({top:-400,behavior:"smooth"});break}case"go-back":{window.history.back();break}case"click-focused":{let t=document.activeElement;t&&t!==document.body&&t.click();break}case"tab-forward":{let t=Dt(),o=t.indexOf(document.activeElement),n=t[o+1]||t[0];n&&n.focus();break}case"tab-back":{let t=Dt(),o=t.indexOf(document.activeElement),n=t[o-1]||t[t.length-1];n&&n.focus();break}case"stop-voice":{lt();break}}}function Dt(){return Array.from(document.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(e=>!e.closest("[data-yuktai-panel]"))}function Ht(e){if(!st())return!1;if(je)return!0;e&&(ve=e);let t=window.SpeechRecognition||window.webkitSpeechRecognition;return ie=new t,ie.continuous=!0,ie.interimResults=!1,ie.lang="en-US",ie.onresult=o=>{let n=o.results[o.results.length-1][0].transcript,i=Bo(n);if(i){No(i.action);let a={success:!0,command:n,action:i.label};if(ve&&ve(a),i.action==="stop-voice")return}},ie.onend=()=>{je&&ie?.start()},ie.onerror=o=>{o.error!=="no-speech"&&ve&&ve({success:!1,command:"",action:"",error:`Voice error: ${o.error}`})},ie.start(),je=!0,Do(),!0}function lt(){je=!1,ie&&(ie.stop(),ie=null),ve=null,qt()}var Ot="yuktai-voice-indicator";function Do(){qt();let e=document.createElement("div");e.id=Ot,e.setAttribute("data-yuktai-panel","true"),e.setAttribute("aria-live","polite"),e.setAttribute("aria-label","yuktai voice control is listening"),e.style.cssText=`
23
23
  position: fixed;
24
24
  bottom: 80px;
25
25
  left: 50%;
@@ -44,12 +44,12 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
44
44
  background: #ffffff;
45
45
  animation: yuktai-pulse 1.2s infinite;
46
46
  flex-shrink: 0;
47
- `,!document.getElementById("yuktai-pulse-style")){let i=document.createElement("style");i.id="yuktai-pulse-style",i.textContent=`
47
+ `,!document.getElementById("yuktai-pulse-style")){let n=document.createElement("style");n.id="yuktai-pulse-style",n.textContent=`
48
48
  @keyframes yuktai-pulse {
49
49
  0%, 100% { opacity: 1; transform: scale(1); }
50
50
  50% { opacity: 0.4; transform: scale(0.7); }
51
51
  }
52
- `,document.head.appendChild(i)}let o=document.createElement("span");o.textContent="Listening for commands...",e.appendChild(t),e.appendChild(o),document.body.appendChild(e)}function Ft(){let e=document.getElementById(Gt);e&&e.remove()}var zo=["button:not([aria-label]):not([aria-labelledby])","a:not([aria-label]):not([aria-labelledby])","input:not([aria-label]):not([aria-labelledby]):not([id])","select:not([aria-label]):not([aria-labelledby])","textarea:not([aria-label]):not([aria-labelledby])","[role='button']:not([aria-label])","[role='link']:not([aria-label])","[role='checkbox']:not([aria-label])","[role='tab']:not([aria-label])"].join(", ");function Wt(){let e=window;return e.Writer||e.ai?.writer||null}async function et(){try{let e=Wt();if(!e)return!1;if(typeof e.availability=="function"){let t=await e.availability();return t==="readily"||t==="available"||t==="downloadable"}return typeof e.capabilities=="function"?(await e.capabilities())?.available!=="no":typeof e.create=="function"}catch{return!1}}function Go(e){let t=[],o=e.innerText?.trim();o&&t.push(`element text: "${o}"`);let i=e.placeholder?.trim();i&&t.push(`placeholder: "${i}"`);let r=e.getAttribute("name")?.trim();r&&t.push(`name: "${r}"`);let a=e.getAttribute("type")?.trim();a&&t.push(`type: "${a}"`);let n=e.id;if(n){let l=document.querySelector(`label[for="${n}"]`);l&&t.push(`label: "${l.innerText?.trim()}"`)}let s=e.parentElement?.innerText?.trim().slice(0,60);s&&t.push(`parent context: "${s}"`),t.push(`tag: ${e.tagName.toLowerCase()}`);let p=e.getAttribute("role");return p&&t.push(`role: ${p}`),t.join(". ")}async function Fo(e,t){let o=`
52
+ `,document.head.appendChild(n)}let o=document.createElement("span");o.textContent="Listening for commands...",e.appendChild(t),e.appendChild(o),document.body.appendChild(e)}function qt(){let e=document.getElementById(Ot);e&&e.remove()}var Ho=["button:not([aria-label]):not([aria-labelledby])","a:not([aria-label]):not([aria-labelledby])","input:not([aria-label]):not([aria-labelledby]):not([id])","select:not([aria-label]):not([aria-labelledby])","textarea:not([aria-label]):not([aria-labelledby])","[role='button']:not([aria-label])","[role='link']:not([aria-label])","[role='checkbox']:not([aria-label])","[role='tab']:not([aria-label])"].join(", ");function _t(){let e=window;return e.Writer||e.ai?.writer||null}async function dt(){try{let e=_t();if(!e)return!1;if(typeof e.availability=="function"){let t=await e.availability();return t==="readily"||t==="available"||t==="downloadable"}return typeof e.capabilities=="function"?(await e.capabilities())?.available!=="no":typeof e.create=="function"}catch{return!1}}function Oo(e){let t=[],o=e.innerText?.trim();o&&t.push(`element text: "${o}"`);let n=e.placeholder?.trim();n&&t.push(`placeholder: "${n}"`);let i=e.getAttribute("name")?.trim();i&&t.push(`name: "${i}"`);let a=e.getAttribute("type")?.trim();a&&t.push(`type: "${a}"`);let r=e.id;if(r){let f=document.querySelector(`label[for="${r}"]`);f&&t.push(`label: "${f.innerText?.trim()}"`)}let l=e.parentElement?.innerText?.trim().slice(0,60);l&&t.push(`parent context: "${l}"`),t.push(`tag: ${e.tagName.toLowerCase()}`);let u=e.getAttribute("role");return u&&t.push(`role: ${u}`),t.join(". ")}async function qo(e,t){let o=`
53
53
  Generate a short, clear aria-label for an HTML element.
54
54
  The label must be 2-6 words maximum.
55
55
  The label must describe what the element does or what it is.
@@ -60,7 +60,7 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
60
60
  ${t}
61
61
 
62
62
  Output only the label. Nothing else.
63
- `.trim();return(await e.write(o)).trim().replace(/^["']|["']$/g,"").replace(/\.$/,"").trim()}async function $t(){if(!await et())return{success:!1,fixed:0,elements:[],error:"Chrome Built-in AI Writer not available. Enable via chrome://flags."};let t=document.querySelectorAll(zo);if(t.length===0)return{success:!0,fixed:0,elements:[]};try{let o=Wt();if(!o)throw new Error("Writer API not available");let i=await o.create({tone:"neutral",format:"plain-text",length:"short",outputLanguage:"en"}),r=0,a=[];for(let n of t){if(n.closest("[data-yuktai-panel]"))continue;let s=window.getComputedStyle(n);if(s.display==="none"||s.visibility==="hidden")continue;let p=Go(n),l=await Fo(i,p);l&&l.length>0&&(n.dataset.yuktaiLabelOriginal=n.getAttribute("aria-label")||"",n.setAttribute("aria-label",l),r++,a.push({tag:n.tagName.toLowerCase(),label:l}))}return i.destroy(),{success:!0,fixed:r,elements:a}}catch(o){return{success:!1,fixed:0,elements:[],error:o instanceof Error?o.message:"Label generation failed"}}}function Bt(){let e=document.querySelectorAll("[data-yuktai-label-original]");for(let t of e){let o=t.dataset.yuktaiLabelOriginal;o?t.setAttribute("aria-label",o):t.removeAttribute("aria-label"),delete t.dataset.yuktaiLabelOriginal}}var Oe=null,Nt=null;var Ht=null,tt=null,$=null,ye=null,He=null,ot=null,xe=null,De={deuteranopia:"yuktai-cb-d",protanopia:"yuktai-cb-p",tritanopia:"yuktai-cb-t"};var Dt=new Set(["input","select","textarea"]);var nt={nav:"navigation",header:"banner",footer:"contentinfo",main:"main",aside:"complementary"};function it(e,t="polite"){if(typeof window>"u"||!xe?.speechEnabled||!window.speechSynthesis)return;window.speechSynthesis.cancel();let o=new SpeechSynthesisUtterance(e);o.rate=1,o.pitch=1,o.volume=1;let i=window.speechSynthesis.getVoices();i.length>0&&(o.voice=i[0]),window.speechSynthesis.speak(o)}function Ut(e,t="info"){if(typeof document>"u")return;let i={success:{bg:"#0f9d58",border:"#0a7a44",icon:"\u2713"},error:{bg:"#d93025",border:"#b52a1c",icon:"\u2715"},warning:{bg:"#f29900",border:"#c67c00",icon:"\u26A0"},info:{bg:"#1a73e8",border:"#1557b0",icon:"\u2139"}}[t];$||($=document.createElement("div"),$.setAttribute("role","alert"),$.setAttribute("aria-live","assertive"),$.setAttribute("aria-atomic","true"),$.style.cssText=`
63
+ `.trim();return(await e.write(o)).trim().replace(/^["']|["']$/g,"").replace(/\.$/,"").trim()}async function jt(){if(!await dt())return{success:!1,fixed:0,elements:[],error:"Chrome Built-in AI Writer not available. Enable via chrome://flags."};let t=document.querySelectorAll(Ho);if(t.length===0)return{success:!0,fixed:0,elements:[]};try{let o=_t();if(!o)throw new Error("Writer API not available");let n=await o.create({tone:"neutral",format:"plain-text",length:"short",outputLanguage:"en"}),i=0,a=[];for(let r of t){if(r.closest("[data-yuktai-panel]"))continue;let l=window.getComputedStyle(r);if(l.display==="none"||l.visibility==="hidden")continue;let u=Oo(r),f=await qo(n,u);f&&f.length>0&&(r.dataset.yuktaiLabelOriginal=r.getAttribute("aria-label")||"",r.setAttribute("aria-label",f),i++,a.push({tag:r.tagName.toLowerCase(),label:f}))}return n.destroy(),{success:!0,fixed:i,elements:a}}catch(o){return{success:!1,fixed:0,elements:[],error:o instanceof Error?o.message:"Label generation failed"}}}function Yt(){let e=document.querySelectorAll("[data-yuktai-label-original]");for(let t of e){let o=t.dataset.yuktaiLabelOriginal;o?t.setAttribute("aria-label",o):t.removeAttribute("aria-label"),delete t.dataset.yuktaiLabelOriginal}}var Ue=null,Vt=null;var Ut=null,ct=null,j=null,ke=null,Ye=null,ut=null,Se=null,Ve={deuteranopia:"yuktai-cb-d",protanopia:"yuktai-cb-p",tritanopia:"yuktai-cb-t"};var Kt=new Set(["input","select","textarea"]);var pt={nav:"navigation",header:"banner",footer:"contentinfo",main:"main",aside:"complementary"};function ft(e,t="polite"){if(typeof window>"u"||!Se?.speechEnabled||!window.speechSynthesis)return;window.speechSynthesis.cancel();let o=new SpeechSynthesisUtterance(e);o.rate=1,o.pitch=1,o.volume=1;let n=window.speechSynthesis.getVoices();n.length>0&&(o.voice=n[0]),window.speechSynthesis.speak(o)}function oo(e,t="info"){if(typeof document>"u")return;let n={success:{bg:"#0f9d58",border:"#0a7a44",icon:"\u2713"},error:{bg:"#d93025",border:"#b52a1c",icon:"\u2715"},warning:{bg:"#f29900",border:"#c67c00",icon:"\u26A0"},info:{bg:"#1a73e8",border:"#1557b0",icon:"\u2139"}}[t];j||(j=document.createElement("div"),j.setAttribute("role","alert"),j.setAttribute("aria-live","assertive"),j.setAttribute("aria-atomic","true"),j.style.cssText=`
64
64
  position: fixed;
65
65
  top: 80px;
66
66
  right: 16px;
@@ -79,14 +79,14 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
79
79
  transition: transform 0.3s, opacity 0.3s;
80
80
  transform: translateX(120%);
81
81
  opacity: 0;
82
- `,document.body.appendChild($)),$.style.background=i.bg,$.style.border=`1px solid ${i.border}`,$.style.color="#fff",$.innerHTML=`
83
- <span style="font-size:18px;font-weight:700">${i.icon}</span>
82
+ `,document.body.appendChild(j)),j.style.background=n.bg,j.style.border=`1px solid ${n.border}`,j.style.color="#fff",j.innerHTML=`
83
+ <span style="font-size:18px;font-weight:700">${n.icon}</span>
84
84
  <span style="flex:1;line-height:1.4">${e}</span>
85
85
  <button
86
86
  onclick="this.parentElement.style.transform='translateX(120%)';this.parentElement.style.opacity='0'"
87
87
  style="background:none;border:none;color:#fff;cursor:pointer;font-size:18px;padding:0;line-height:1"
88
88
  aria-label="Close notification">\xD7</button>
89
- `,window.innerWidth<=480&&($.style.right="8px",$.style.left="8px",$.style.maxWidth="none",$.style.width="auto"),requestAnimationFrame(()=>{$&&($.style.transform="translateX(0)",$.style.opacity="1")}),setTimeout(()=>{$&&($.style.transform="translateX(120%)",$.style.opacity="0")},5e3)}function R(e,t="info",o=!0){Oe&&(Oe.textContent=e),Ut(e,t),o&&it(e,t==="error"?"assertive":"polite")}function Wo(){if(typeof document>"u"||Ht)return;let e=[{label:"Skip to main content",selector:"main,[role='main'],#main,#main-content"},{label:"Skip to navigation",selector:"nav,[role='navigation'],#nav,#navigation"},{label:"Skip to search",selector:"[role='search'],#search,input[type='search']"}],t=document.createElement("div");t.setAttribute("data-yuktai-skip-bar","true"),t.setAttribute("role","navigation"),t.setAttribute("aria-label","Skip links"),t.style.cssText=`
89
+ `,window.innerWidth<=480&&(j.style.right="8px",j.style.left="8px",j.style.maxWidth="none",j.style.width="auto"),requestAnimationFrame(()=>{j&&(j.style.transform="translateX(0)",j.style.opacity="1")}),setTimeout(()=>{j&&(j.style.transform="translateX(120%)",j.style.opacity="0")},5e3)}function G(e,t="info",o=!0){Ue&&(Ue.textContent=e),oo(e,t),o&&ft(e,t==="error"?"assertive":"polite")}function _o(){if(typeof document>"u"||Ut)return;let e=[{label:"Skip to main content",selector:"main,[role='main'],#main,#main-content"},{label:"Skip to navigation",selector:"nav,[role='navigation'],#nav,#navigation"},{label:"Skip to search",selector:"[role='search'],#search,input[type='search']"}],t=document.createElement("div");t.setAttribute("data-yuktai-skip-bar","true"),t.setAttribute("role","navigation"),t.setAttribute("aria-label","Skip links"),t.style.cssText=`
90
90
  position: fixed;
91
91
  top: 0;
92
92
  left: 0;
@@ -100,7 +100,7 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
100
100
  transform: translateY(-100%);
101
101
  transition: transform 0.2s ease;
102
102
  font-family: system-ui, sans-serif;
103
- `;let o=!1;if(e.forEach(({label:r,selector:a})=>{let n=document.querySelector(a);if(!n)return;o=!0,n.getAttribute("tabindex")||n.setAttribute("tabindex","-1");let s=document.createElement("a");s.href="#",s.textContent=r,s.style.cssText=`
103
+ `;let o=!1;if(e.forEach(({label:i,selector:a})=>{let r=document.querySelector(a);if(!r)return;o=!0,r.getAttribute("tabindex")||r.setAttribute("tabindex","-1");let l=document.createElement("a");l.href="#",l.textContent=i,l.style.cssText=`
104
104
  color: #fff;
105
105
  background: #1a73e8;
106
106
  padding: 8px 14px;
@@ -111,7 +111,7 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
111
111
  white-space: nowrap;
112
112
  border: 2px solid transparent;
113
113
  transition: background 0.15s, border-color 0.15s;
114
- `,s.addEventListener("focus",()=>{t.style.transform="translateY(0)"}),s.addEventListener("blur",()=>{setTimeout(()=>{t.matches(":focus-within")||(t.style.transform="translateY(-100%)")},2e3)}),s.addEventListener("click",p=>{p.preventDefault(),n.focus(),n.scrollIntoView({behavior:"smooth",block:"start"}),R(`Jumped to ${r.replace("Skip to ","")}`,"info"),t.style.transform="translateY(-100%)"}),t.appendChild(s)}),!o)return;window.innerWidth<768&&(t.style.transform="translateY(0)",t.style.position="sticky"),window.addEventListener("resize",()=>{window.innerWidth<768&&(t.style.transform="translateY(0)")}),document.body.insertBefore(t,document.body.firstChild),Ht=t}function $o(){if(typeof document>"u"||document.querySelector("[data-yuktai-focus-style]"))return;let e=document.createElement("style");e.setAttribute("data-yuktai-focus-style","true"),e.textContent=`
114
+ `,l.addEventListener("focus",()=>{t.style.transform="translateY(0)"}),l.addEventListener("blur",()=>{setTimeout(()=>{t.matches(":focus-within")||(t.style.transform="translateY(-100%)")},2e3)}),l.addEventListener("click",u=>{u.preventDefault(),r.focus(),r.scrollIntoView({behavior:"smooth",block:"start"}),G(`Jumped to ${i.replace("Skip to ","")}`,"info"),t.style.transform="translateY(-100%)"}),t.appendChild(l)}),!o)return;window.innerWidth<768&&(t.style.transform="translateY(0)",t.style.position="sticky"),window.addEventListener("resize",()=>{window.innerWidth<768&&(t.style.transform="translateY(0)")}),document.body.insertBefore(t,document.body.firstChild),Ut=t}function jo(){if(typeof document>"u"||document.querySelector("[data-yuktai-focus-style]"))return;let e=document.createElement("style");e.setAttribute("data-yuktai-focus-style","true"),e.textContent=`
115
115
 
116
116
  /* \u2500\u2500 Focus indicator \u2014 WCAG 2.4.11 minimum 2px solid \u2500\u2500 */
117
117
  [data-yuktai-a11y] *:focus-visible {
@@ -257,7 +257,7 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
257
257
  width: auto !important;
258
258
  }
259
259
  }
260
- `,document.head.appendChild(e),document.documentElement.setAttribute("data-yuktai-a11y","true")}function Bo(){typeof document>"u"||document.querySelector("[data-yuktai-kb-init]")||(document.documentElement.setAttribute("data-yuktai-kb-init","true"),document.addEventListener("keydown",e=>{let t=document.activeElement;if(!t)return;let o=t.getAttribute("role")||"";if(e.key==="Escape"){let i=t.closest("[role='dialog'],[role='alertdialog']");if(i){i.style.display="none",R("Dialog closed","info");return}let r=t.closest("[role='menu'],[role='menubar']");r&&(r.style.display="none",R("Menu closed","info"))}if(o==="menuitem"||t.closest("[role='menu'],[role='menubar']")){let i=t.closest("[role='menu'],[role='menubar']");if(!i)return;let r=Array.from(i.querySelectorAll("[role='menuitem']:not([disabled])")),a=r.indexOf(t);e.key==="ArrowDown"||e.key==="ArrowRight"?(e.preventDefault(),r[(a+1)%r.length]?.focus()):e.key==="ArrowUp"||e.key==="ArrowLeft"?(e.preventDefault(),r[(a-1+r.length)%r.length]?.focus()):e.key==="Home"?(e.preventDefault(),r[0]?.focus()):e.key==="End"&&(e.preventDefault(),r[r.length-1]?.focus())}if(o==="tab"||t.closest("[role='tablist']")){let i=t.closest("[role='tablist']");if(!i)return;let r=Array.from(i.querySelectorAll("[role='tab']:not([disabled])")),a=r.indexOf(t);if(e.key==="ArrowRight"||e.key==="ArrowDown"){e.preventDefault();let n=r[(a+1)%r.length];n?.focus(),n?.click()}else if(e.key==="ArrowLeft"||e.key==="ArrowUp"){e.preventDefault();let n=r[(a-1+r.length)%r.length];n?.focus(),n?.click()}}if(o==="option"||t.closest("[role='listbox']")){let i=t.closest("[role='listbox']");if(!i)return;let r=Array.from(i.querySelectorAll("[role='option']:not([aria-disabled='true'])")),a=r.indexOf(t);e.key==="ArrowDown"?(e.preventDefault(),r[(a+1)%r.length]?.focus()):e.key==="ArrowUp"?(e.preventDefault(),r[(a-1+r.length)%r.length]?.focus()):(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),t.setAttribute("aria-selected","true"),r.forEach(n=>{n!==t&&n.setAttribute("aria-selected","false")}),R(`Selected: ${t.textContent?.trim()}`,"success"))}e.altKey&&e.key==="a"&&(e.preventDefault(),No()),e.key==="Tab"&&xe?.speechEnabled&&setTimeout(()=>{let i=document.activeElement;if(!i)return;let r=i.getAttribute("aria-label")||i.getAttribute("title")||i.textContent?.trim()||i.tagName.toLowerCase(),a=i.getAttribute("role")||i.tagName.toLowerCase();it(`${r}, ${a}`)},100)}))}function qe(e){let t=e.querySelectorAll('button:not([disabled]),a[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"]),[role="button"]');if(t.length===0)return;let o=t[0],i=t[t.length-1];o.focus(),e.addEventListener("keydown",r=>{r.key==="Tab"&&(r.shiftKey?document.activeElement===o&&(r.preventDefault(),i.focus()):document.activeElement===i&&(r.preventDefault(),o.focus()))})}function No(){if(typeof document>"u")return;if(ye){ye.remove(),ye=null;return}let e=document.createElement("div");e.setAttribute("role","dialog"),e.setAttribute("aria-label","Keyboard shortcuts"),e.setAttribute("aria-modal","true"),e.setAttribute("data-yuktai-cheatsheet","true"),e.style.cssText=`
260
+ `,document.head.appendChild(e),document.documentElement.setAttribute("data-yuktai-a11y","true")}function Yo(){typeof document>"u"||document.querySelector("[data-yuktai-kb-init]")||(document.documentElement.setAttribute("data-yuktai-kb-init","true"),document.addEventListener("keydown",e=>{let t=document.activeElement;if(!t)return;let o=t.getAttribute("role")||"";if(e.key==="Escape"){let n=t.closest("[role='dialog'],[role='alertdialog']");if(n){n.style.display="none",G("Dialog closed","info");return}let i=t.closest("[role='menu'],[role='menubar']");i&&(i.style.display="none",G("Menu closed","info"))}if(o==="menuitem"||t.closest("[role='menu'],[role='menubar']")){let n=t.closest("[role='menu'],[role='menubar']");if(!n)return;let i=Array.from(n.querySelectorAll("[role='menuitem']:not([disabled])")),a=i.indexOf(t);e.key==="ArrowDown"||e.key==="ArrowRight"?(e.preventDefault(),i[(a+1)%i.length]?.focus()):e.key==="ArrowUp"||e.key==="ArrowLeft"?(e.preventDefault(),i[(a-1+i.length)%i.length]?.focus()):e.key==="Home"?(e.preventDefault(),i[0]?.focus()):e.key==="End"&&(e.preventDefault(),i[i.length-1]?.focus())}if(o==="tab"||t.closest("[role='tablist']")){let n=t.closest("[role='tablist']");if(!n)return;let i=Array.from(n.querySelectorAll("[role='tab']:not([disabled])")),a=i.indexOf(t);if(e.key==="ArrowRight"||e.key==="ArrowDown"){e.preventDefault();let r=i[(a+1)%i.length];r?.focus(),r?.click()}else if(e.key==="ArrowLeft"||e.key==="ArrowUp"){e.preventDefault();let r=i[(a-1+i.length)%i.length];r?.focus(),r?.click()}}if(o==="option"||t.closest("[role='listbox']")){let n=t.closest("[role='listbox']");if(!n)return;let i=Array.from(n.querySelectorAll("[role='option']:not([aria-disabled='true'])")),a=i.indexOf(t);e.key==="ArrowDown"?(e.preventDefault(),i[(a+1)%i.length]?.focus()):e.key==="ArrowUp"?(e.preventDefault(),i[(a-1+i.length)%i.length]?.focus()):(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),t.setAttribute("aria-selected","true"),i.forEach(r=>{r!==t&&r.setAttribute("aria-selected","false")}),G(`Selected: ${t.textContent?.trim()}`,"success"))}e.altKey&&e.key==="a"&&(e.preventDefault(),Vo()),e.key==="Tab"&&Se?.speechEnabled&&setTimeout(()=>{let n=document.activeElement;if(!n)return;let i=n.getAttribute("aria-label")||n.getAttribute("title")||n.textContent?.trim()||n.tagName.toLowerCase(),a=n.getAttribute("role")||n.tagName.toLowerCase();ft(`${i}, ${a}`)},100)}))}function Ke(e){let t=e.querySelectorAll('button:not([disabled]),a[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"]),[role="button"]');if(t.length===0)return;let o=t[0],n=t[t.length-1];o.focus(),e.addEventListener("keydown",i=>{i.key==="Tab"&&(i.shiftKey?document.activeElement===o&&(i.preventDefault(),n.focus()):document.activeElement===n&&(i.preventDefault(),o.focus()))})}function Vo(){if(typeof document>"u")return;if(ke){ke.remove(),ke=null;return}let e=document.createElement("div");e.setAttribute("role","dialog"),e.setAttribute("aria-label","Keyboard shortcuts"),e.setAttribute("aria-modal","true"),e.setAttribute("data-yuktai-cheatsheet","true"),e.style.cssText=`
261
261
  position: fixed;
262
262
  top: 50%;
263
263
  left: 50%;
@@ -281,13 +281,13 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
281
281
  style="background:none;border:none;color:#aaa;cursor:pointer;font-size:20px;padding:0;line-height:1"
282
282
  aria-label="Close shortcuts">\xD7</button>
283
283
  </div>
284
- ${t.map(([i,r])=>`
284
+ ${t.map(([n,i])=>`
285
285
  <div style="display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #2a2a4a">
286
- <kbd style="background:#2a2a4a;color:#74c0fc;padding:3px 8px;border-radius:4px;font-size:12px;font-family:monospace;border:1px solid #3a3a6a">${i}</kbd>
287
- <span style="font-size:12px;color:#ccc;text-align:right;flex:1;margin-left:12px">${r}</span>
286
+ <kbd style="background:#2a2a4a;color:#74c0fc;padding:3px 8px;border-radius:4px;font-size:12px;font-family:monospace;border:1px solid #3a3a6a">${n}</kbd>
287
+ <span style="font-size:12px;color:#ccc;text-align:right;flex:1;margin-left:12px">${i}</span>
288
288
  </div>
289
289
  `).join("")}
290
- `,e.querySelector("[data-yuktai-close]")?.addEventListener("click",()=>{e.remove(),ye=null}),e.addEventListener("keydown",i=>{i.key==="Escape"&&(e.remove(),ye=null)}),document.body.appendChild(e),ye=e,qe(e),R("Keyboard shortcuts opened. Press Escape to close.","info")}function Ho(e){if(typeof document>"u"||!xe?.showAuditBadge||typeof window<"u"&&!window.location.hostname.includes("localhost")&&!window.location.hostname.includes("127.0.0.1"))return;tt&&tt.remove();let t=e.score,o=t>=90?"#0f9d58":t>=70?"#f29900":"#d93025",i=t>=90?"\u267F":t>=70?"\u26A0":"\u2715",r=document.createElement("button");r.setAttribute("aria-label",`Accessibility score: ${t} out of 100`),r.setAttribute("data-yuktai-badge","true"),r.style.cssText=`
290
+ `,e.querySelector("[data-yuktai-close]")?.addEventListener("click",()=>{e.remove(),ke=null}),e.addEventListener("keydown",n=>{n.key==="Escape"&&(e.remove(),ke=null)}),document.body.appendChild(e),ke=e,Ke(e),G("Keyboard shortcuts opened. Press Escape to close.","info")}function Uo(e){if(typeof document>"u"||!Se?.showAuditBadge||typeof window<"u"&&!window.location.hostname.includes("localhost")&&!window.location.hostname.includes("127.0.0.1"))return;ct&&ct.remove();let t=e.score,o=t>=90?"#0f9d58":t>=70?"#f29900":"#d93025",n=t>=90?"\u267F":t>=70?"\u26A0":"\u2715",i=document.createElement("button");i.setAttribute("aria-label",`Accessibility score: ${t} out of 100`),i.setAttribute("data-yuktai-badge","true"),i.style.cssText=`
291
291
  position: fixed;
292
292
  bottom: 16px;
293
293
  left: 16px;
@@ -306,7 +306,7 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
306
306
  align-items: center;
307
307
  gap: 6px;
308
308
  transition: transform 0.15s;
309
- `,r.innerHTML=`${i} ${t}/100 <span style="font-weight:400;opacity:0.85">${e.details.length} issues</span>`,r.addEventListener("click",()=>Do(e)),document.body.appendChild(r),tt=r}function Do(e){let t=document.querySelector("[data-yuktai-audit-details]");if(t){t.remove();return}let o=document.createElement("div");o.setAttribute("data-yuktai-audit-details","true"),o.setAttribute("role","dialog"),o.setAttribute("aria-label","Accessibility audit details"),o.style.cssText=`
309
+ `,i.innerHTML=`${n} ${t}/100 <span style="font-weight:400;opacity:0.85">${e.details.length} issues</span>`,i.addEventListener("click",()=>Ko(e)),document.body.appendChild(i),ct=i}function Ko(e){let t=document.querySelector("[data-yuktai-audit-details]");if(t){t.remove();return}let o=document.createElement("div");o.setAttribute("data-yuktai-audit-details","true"),o.setAttribute("role","dialog"),o.setAttribute("aria-label","Accessibility audit details"),o.style.cssText=`
310
310
  position: fixed;
311
311
  bottom: 56px;
312
312
  left: 16px;
@@ -323,22 +323,22 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
323
323
  box-shadow: 0 8px 32px rgba(0,0,0,0.5);
324
324
  font-family: system-ui, sans-serif;
325
325
  font-size: 12px;
326
- `;let i={critical:"#d93025",serious:"#f29900",moderate:"#1a73e8",minor:"#0f9d58"};o.innerHTML=`
326
+ `;let n={critical:"#d93025",serious:"#f29900",moderate:"#1a73e8",minor:"#0f9d58"};o.innerHTML=`
327
327
  <div style="display:flex;justify-content:space-between;align-items:center;margin-bottom:12px">
328
328
  <strong style="font-size:14px;color:#74c0fc">Audit report</strong>
329
329
  <span style="color:#aaa">${e.fixed} fixed \xB7 ${e.renderTime}ms</span>
330
330
  </div>
331
- ${e.details.slice(0,20).map(r=>`
331
+ ${e.details.slice(0,20).map(i=>`
332
332
  <div style="padding:6px 0;border-bottom:1px solid #2a2a4a">
333
333
  <div style="display:flex;gap:6px;align-items:center">
334
- <span style="background:${i[r.severity]};color:#fff;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase">${r.severity}</span>
335
- <code style="color:#74c0fc">&lt;${r.tag}&gt;</code>
334
+ <span style="background:${n[i.severity]};color:#fff;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:700;text-transform:uppercase">${i.severity}</span>
335
+ <code style="color:#74c0fc">&lt;${i.tag}&gt;</code>
336
336
  </div>
337
- <div style="color:#ccc;margin-top:3px">${r.fix}</div>
337
+ <div style="color:#ccc;margin-top:3px">${i.fix}</div>
338
338
  </div>
339
339
  `).join("")}
340
340
  ${e.details.length>20?`<div style="color:#888;padding:8px 0;text-align:center">+${e.details.length-20} more issues</div>`:""}
341
- `,o.addEventListener("keydown",r=>{r.key==="Escape"&&o.remove()}),document.body.appendChild(o),qe(o)}function Kt(e){typeof document>"u"||(ot&&clearTimeout(ot),ot=setTimeout(()=>{if(He)return;let t=document.createElement("div");t.setAttribute("role","alertdialog"),t.setAttribute("aria-label","Session timeout warning"),t.setAttribute("aria-modal","true"),t.setAttribute("data-yuktai-timeout","true"),t.style.cssText=`
341
+ `,o.addEventListener("keydown",i=>{i.key==="Escape"&&o.remove()}),document.body.appendChild(o),Ke(o)}function no(e){typeof document>"u"||(ut&&clearTimeout(ut),ut=setTimeout(()=>{if(Ye)return;let t=document.createElement("div");t.setAttribute("role","alertdialog"),t.setAttribute("aria-label","Session timeout warning"),t.setAttribute("aria-modal","true"),t.setAttribute("data-yuktai-timeout","true"),t.style.cssText=`
342
342
  position: fixed;
343
343
  top: 50%;
344
344
  left: 50%;
@@ -367,31 +367,28 @@ import{a as St}from"./chunk-3VGU4YGK.mjs";import{a as At,b as Ge,c as Fe}from"./
367
367
  No, sign out
368
368
  </button>
369
369
  </div>
370
- `;let o=t.querySelector("[data-yuktai-extend]"),i=t.querySelector("[data-yuktai-dismiss]");o?.addEventListener("click",()=>{t.remove(),He=null,R("Session extended. You have more time.","success"),xe?.timeoutWarning&&Kt(xe.timeoutWarning)}),i?.addEventListener("click",()=>{t.remove(),He=null}),document.body.appendChild(t),He=t,qe(t),R("Warning: Your session will expire soon. Do you need more time?","warning")},e*1e3))}function Oo(e){if(typeof document>"u")return;let t=document.documentElement;if(t.toggleAttribute("data-yuktai-high-contrast",!!e.highContrast),t.toggleAttribute("data-yuktai-dark",!!e.darkMode),t.toggleAttribute("data-yuktai-reduce-motion",!!e.reduceMotion),t.toggleAttribute("data-yuktai-large-targets",!!e.largeTargets),t.toggleAttribute("data-yuktai-keyboard",!!e.keyboardHints),t.toggleAttribute("data-yuktai-dyslexia",!!e.dyslexiaFont),e.localFont?document.body.style.fontFamily=`"${e.localFont}", system-ui, sans-serif`:e.dyslexiaFont||(document.body.style.fontFamily=""),e.fontSizeMultiplier&&e.fontSizeMultiplier!==1?document.documentElement.style.fontSize=`${e.fontSizeMultiplier*100}%`:document.documentElement.style.fontSize="",e.colorBlindMode&&e.colorBlindMode!=="none"){let o=e.colorBlindMode==="achromatopsia"?"grayscale(100%)":`url(#${De[e.colorBlindMode]})`;document.body.style.filter=o}else document.body.style.filter=""}function qo(e){try{let t=localStorage.getItem("yuktai-a11y-prefs");t&&Object.assign(e,JSON.parse(t))}catch{}}async function Ot(e){if(e){if(!await Ke()){R("Plain English requires Chrome 127+","warning");return}R("Rewriting page in plain English...","info",!1);let o=await Ct();R(o.error?`Plain English failed: ${o.error}`:`${o.fixed} sections rewritten in plain English`,o.error?"error":"success",!1)}else Et(),R("Original text restored","info",!1)}async function qt(e){if(e){if(!await Ze()){R("Page summariser requires Chrome 127+","warning");return}R("Generating page summary...","info",!1);let o=await It();R(o.error?`Summary failed: ${o.error}`:"Page summary added at top",o.error?"error":"success",!1)}else We(),R("Page summary removed","info",!1)}async function _t(e){if(e==="en"){Qe(),R("Page restored to English","info",!1);return}R(`Translating page to ${e}...`,"info",!1);let t=await Lt(e);R(t.error?`Translation failed: ${t.error}`:`Page translated to ${e}`,t.error?"error":"success",!1)}async function Yt(e){if(e){if(!Xe()){R("Voice control not supported in this browser","warning");return}zt(t=>{t.success&&R(`Voice: ${t.action}`,"info",!1)}),R("Voice control started. Say a command.","success",!1)}else Je(),R("Voice control stopped","info",!1)}async function jt(e){if(e){if(!await et()){R("Smart labels requires Chrome 127+","warning");return}R("Generating smart labels...","info",!1);let o=await $t();R(o.error?`Smart labels failed: ${o.error}`:`${o.fixed} elements labelled`,o.error?"error":"success",!1)}else Bt(),R("Smart labels removed","info",!1)}function _o(){if(typeof document>"u"||Oe)return;let e=document.createElement("div");e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),e.setAttribute("aria-relevant","text"),e.style.cssText="position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);",document.body.appendChild(e),Oe=e}function Yo(){if(typeof document>"u"||Nt)return;let e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("aria-hidden","true"),e.style.cssText="position:absolute;width:0;height:0;overflow:hidden;",e.innerHTML=`
370
+ `;let o=t.querySelector("[data-yuktai-extend]"),n=t.querySelector("[data-yuktai-dismiss]");o?.addEventListener("click",()=>{t.remove(),Ye=null,G("Session extended. You have more time.","success"),Se?.timeoutWarning&&no(Se.timeoutWarning)}),n?.addEventListener("click",()=>{t.remove(),Ye=null}),document.body.appendChild(t),Ye=t,Ke(t),G("Warning: Your session will expire soon. Do you need more time?","warning")},e*1e3))}function Zo(e){if(typeof document>"u")return;let t=document.documentElement;if(t.toggleAttribute("data-yuktai-high-contrast",!!e.highContrast),t.toggleAttribute("data-yuktai-dark",!!e.darkMode),t.toggleAttribute("data-yuktai-reduce-motion",!!e.reduceMotion),t.toggleAttribute("data-yuktai-large-targets",!!e.largeTargets),t.toggleAttribute("data-yuktai-keyboard",!!e.keyboardHints),t.toggleAttribute("data-yuktai-dyslexia",!!e.dyslexiaFont),e.localFont?document.body.style.fontFamily=`"${e.localFont}", system-ui, sans-serif`:e.dyslexiaFont||(document.body.style.fontFamily=""),e.fontSizeMultiplier&&e.fontSizeMultiplier!==1?document.documentElement.style.fontSize=`${e.fontSizeMultiplier*100}%`:document.documentElement.style.fontSize="",e.colorBlindMode&&e.colorBlindMode!=="none"){let o=e.colorBlindMode==="achromatopsia"?"grayscale(100%)":`url(#${Ve[e.colorBlindMode]})`;document.body.style.filter=o}else document.body.style.filter=""}function Qo(e){try{let t=localStorage.getItem("yuktai-a11y-prefs");t&&Object.assign(e,JSON.parse(t))}catch{}}async function Zt(e){if(e){if(!await rt()){G("Plain English requires Chrome 127+","warning");return}G("Rewriting page in plain English...","info",!1);let o=await Wt();G(o.error?`Plain English failed: ${o.error}`:`${o.fixed} sections rewritten in plain English`,o.error?"error":"success",!1)}else Gt(),G("Original text restored","info",!1)}async function Qt(e){if(e){if(!await it()){G("Page summariser requires Chrome 127+","warning");return}G("Generating page summary...","info",!1);let o=await Bt();G(o.error?`Summary failed: ${o.error}`:"Page summary added at top",o.error?"error":"success",!1)}else Oe(),G("Page summary removed","info",!1)}async function Xt(e){if(e==="en"){at(),G("Page restored to English","info",!1);return}G(`Translating page to ${e}...`,"info",!1);let t=await Nt(e);G(t.error?`Translation failed: ${t.error}`:`Page translated to ${e}`,t.error?"error":"success",!1)}async function Jt(e){if(e){if(!st()){G("Voice control not supported in this browser","warning");return}Ht(t=>{t.success&&G(`Voice: ${t.action}`,"info",!1)}),G("Voice control started. Say a command.","success",!1)}else lt(),G("Voice control stopped","info",!1)}async function eo(e){if(e){if(!await dt()){G("Smart labels requires Chrome 127+","warning");return}G("Generating smart labels...","info",!1);let o=await jt();G(o.error?`Smart labels failed: ${o.error}`:`${o.fixed} elements labelled`,o.error?"error":"success",!1)}else Yt(),G("Smart labels removed","info",!1)}function Xo(){if(typeof document>"u"||Ue)return;let e=document.createElement("div");e.setAttribute("aria-live","polite"),e.setAttribute("aria-atomic","true"),e.setAttribute("aria-relevant","text"),e.style.cssText="position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);",document.body.appendChild(e),Ue=e}function Jo(){if(typeof document>"u"||Vt)return;let e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("aria-hidden","true"),e.style.cssText="position:absolute;width:0;height:0;overflow:hidden;",e.innerHTML=`
371
371
  <defs>
372
- <filter id="${De.deuteranopia}">
372
+ <filter id="${Ve.deuteranopia}">
373
373
  <feColorMatrix type="matrix"
374
374
  values="0.625 0.375 0 0 0 0.7 0.3 0 0 0 0 0.3 0.7 0 0 0 0 0 1 0"/>
375
375
  </filter>
376
- <filter id="${De.protanopia}">
376
+ <filter id="${Ve.protanopia}">
377
377
  <feColorMatrix type="matrix"
378
378
  values="0.567 0.433 0 0 0 0.558 0.442 0 0 0 0 0.242 0.758 0 0 0 0 0 1 0"/>
379
379
  </filter>
380
- <filter id="${De.tritanopia}">
380
+ <filter id="${Ve.tritanopia}">
381
381
  <feColorMatrix type="matrix"
382
382
  values="0.95 0.05 0 0 0 0 0.433 0.567 0 0 0 0.475 0.525 0 0 0 0 0 1 0"/>
383
383
  </filter>
384
384
  </defs>
385
- `,document.body.appendChild(e),Nt=e}function Vt(e){let t={critical:20,serious:10,moderate:5,minor:2},o=e.details.reduce((i,r)=>i+(t[r.severity]||0),0);return Math.max(0,Math.min(100,100-o))}var ie={name:"yuktai-a11y",version:"4.0.0",observer:null,async execute(e){if(!e.enabled)return this.stopObserver(),"yuktai: disabled.";xe=e,qo(e),_o(),Yo(),$o(),Bo(),e.showSkipLinks!==!1&&Wo(),e.showPreferencePanel,Oo(e);let t=this.applyFixes(e);t.score=Vt(t),e.showAuditBadge&&Ho(t),e.timeoutWarning&&Kt(e.timeoutWarning),e.autoFix&&this.startObserver(e),e.plainEnglish&&await Ot(!0),e.summarisePage&&await qt(!0),e.translateLanguage&&e.translateLanguage!=="en"&&await _t(e.translateLanguage),e.voiceControl&&await Yt(!0),e.smartLabels&&await jt(!0);let o=`${t.fixed} fixes applied. Score: ${t.score}/100.`;return R(o,t.score>=90?"success":"info",!1),`yuktai v4.0.0: ${o} Scanned ${t.scanned} elements in ${t.renderTime}ms.`},applyFixes(e){let t={fixed:0,scanned:0,renderTime:0,score:100,details:[]};if(typeof document>"u")return t;let o=performance.now(),i=document.querySelectorAll("*");t.scanned=i.length;let r=(a,n,s,p)=>{t.details.push({tag:a,fix:n,severity:s,element:p.outerHTML.slice(0,100)}),t.fixed++};return i.forEach(a=>{let n=a,s=n.tagName.toLowerCase();if(s==="html"&&!n.getAttribute("lang")&&(n.setAttribute("lang","en"),r(s,'lang="en" added',"critical",n)),s==="meta"){let l=n.getAttribute("name"),m=n.getAttribute("content")||"";l==="viewport"&&m.includes("user-scalable=no")&&(n.setAttribute("content",m.replace("user-scalable=no","user-scalable=yes")),r(s,"user-scalable=yes restored","serious",n)),l==="viewport"&&/maximum-scale=1(?:[^0-9]|$)/.test(m)&&(n.setAttribute("content",m.replace(/maximum-scale=1(?=[^0-9]|$)/,"maximum-scale=5")),r(s,"maximum-scale=5 restored","serious",n))}if(s==="main"&&!n.getAttribute("tabindex")&&(n.setAttribute("tabindex","-1"),n.getAttribute("id")||n.setAttribute("id","main-content")),s==="img"&&(n.hasAttribute("alt")||(n.setAttribute("alt",""),n.setAttribute("aria-hidden","true"),r(s,'alt="" aria-hidden="true"',"serious",n))),s==="svg"&&(!n.getAttribute("aria-hidden")&&!n.getAttribute("aria-label")&&!a.querySelector("title")&&(n.setAttribute("aria-hidden","true"),r(s,'aria-hidden="true" (decorative svg)',"minor",n)),n.getAttribute("focusable")||n.setAttribute("focusable","false")),s==="iframe"&&!n.getAttribute("title")&&!n.getAttribute("aria-label")&&(n.setAttribute("title","embedded content"),n.setAttribute("aria-label","embedded content"),r(s,"title + aria-label added","serious",n)),s==="button"){if(!n.innerText?.trim()&&!n.getAttribute("aria-label")){let l=n.getAttribute("title")||"button";n.setAttribute("aria-label",l),r(s,`aria-label="${l}" (empty button)`,"critical",n)}n.hasAttribute("disabled")&&!n.getAttribute("aria-disabled")&&(n.setAttribute("aria-disabled","true"),t.fixed++)}if(s==="a"){let l=n;!n.innerText?.trim()&&!n.getAttribute("aria-label")&&(n.setAttribute("aria-label",n.getAttribute("title")||"link"),r(s,"aria-label added (empty link)","critical",n)),l.target==="_blank"&&!l.rel?.includes("noopener")&&(l.rel="noopener noreferrer",t.fixed++)}if(Dt.has(s)){let l=n;if(!n.getAttribute("aria-label")&&!n.getAttribute("aria-labelledby")){let m=n.getAttribute("placeholder")||n.getAttribute("name")||s;n.setAttribute("aria-label",m),r(s,`aria-label="${m}"`,"serious",n)}if(n.hasAttribute("required")&&!n.getAttribute("aria-required")&&(n.setAttribute("aria-required","true"),t.fixed++),s==="input"&&!l.autocomplete){let m=l.name||"";l.type==="email"||m.includes("email")?l.autocomplete="email":l.type==="tel"||m.includes("tel")?l.autocomplete="tel":l.type==="password"&&(l.autocomplete="current-password"),t.fixed++}}s==="th"&&!n.getAttribute("scope")&&(n.setAttribute("scope",n.closest("thead")?"col":"row"),r(s,"scope added to <th>","moderate",n)),nt[s]&&!n.getAttribute("role")&&(n.setAttribute("role",nt[s]),r(s,`role="${nt[s]}"`,"minor",n));let p=n.getAttribute("role")||"";p==="tab"&&!n.getAttribute("aria-selected")&&(n.setAttribute("aria-selected","false"),t.fixed++),["alert","status","log"].includes(p)&&!n.getAttribute("aria-live")&&(n.setAttribute("aria-live",p==="alert"?"assertive":"polite"),r(s,`aria-live added on role=${p}`,"moderate",n)),p==="combobox"&&!n.getAttribute("aria-expanded")&&(n.setAttribute("aria-expanded","false"),r(s,'aria-expanded="false" on combobox',"serious",n)),(p==="checkbox"||p==="radio")&&!n.getAttribute("aria-checked")&&(n.setAttribute("aria-checked","false"),r(s,`aria-checked="false" on role=${p}`,"serious",n))}),t.renderTime=parseFloat((performance.now()-o).toFixed(2)),t},scan(){let e={fixed:0,scanned:0,renderTime:0,score:100,details:[]};if(typeof document>"u")return e;let t=performance.now(),o=document.querySelectorAll("*");e.scanned=o.length;let i=(r,a,n,s)=>e.details.push({tag:r,fix:a,severity:n,element:s.outerHTML.slice(0,100)});return o.forEach(r=>{let a=r,n=a.tagName.toLowerCase();(n==="a"||n==="button")&&!a.innerText?.trim()&&!a.getAttribute("aria-label")&&i(n,"needs aria-label (empty)","critical",a),n==="img"&&!a.hasAttribute("alt")&&i(n,"needs alt text","serious",a),Dt.has(n)&&!a.getAttribute("aria-label")&&!a.getAttribute("aria-labelledby")&&i(n,"needs aria-label","serious",a),n==="iframe"&&!a.getAttribute("title")&&!a.getAttribute("aria-label")&&i(n,"iframe needs title","serious",a)}),e.fixed=e.details.length,e.score=Vt(e),e.renderTime=parseFloat((performance.now()-t).toFixed(2)),e},startObserver(e){this.observer||typeof document>"u"||(this.observer=new MutationObserver(()=>this.applyFixes(e)),this.observer.observe(document.body,{childList:!0,subtree:!0,attributes:!1}))},stopObserver(){this.observer?.disconnect(),this.observer=null},announce:R,speak:it,showVisualAlert:Ut,trapFocus:qe,handlePlainEnglish:Ot,handleSummarisePage:qt,handleTranslate:_t,handleVoiceControl:Yt,handleSmartLabels:jt,SUPPORTED_LANGUAGES:Be};import fn,{useEffect as ve,useState as D,useCallback as ke}from"react";import{forwardRef as jo,useEffect as _e,useState as ce}from"react";import{jsx as d,jsxs as A}from"react/jsx-runtime";var rt={highContrast:!1,reduceMotion:!1,autoFix:!0,dyslexiaFont:!1,fontScale:100,localFont:"",darkMode:!1,largeTargets:!1,speechEnabled:!1,colorBlindMode:"none",showAuditBadge:!1,timeoutWarning:void 0,plainEnglish:!1,summarisePage:!1,translateLanguage:"en",voiceControl:!1,smartLabels:!1},he=[80,90,100,110,120,130],Vo=[{value:"none",label:"None"},{value:"deuteranopia",label:"Deuteranopia"},{value:"protanopia",label:"Protanopia"},{value:"tritanopia",label:"Tritanopia"},{value:"achromatopsia",label:"Greyscale"}],Uo=["Prompt API for Gemini Nano","Summarization API for Gemini Nano","Writer API for Gemini Nano","Rewriter API for Gemini Nano","Translation API"];function Ko(){let[e,t]=ce(typeof window<"u"?window.innerWidth:1024);return _e(()=>{let o=()=>t(window.innerWidth);return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[]),{isMobile:e<=480,isTablet:e>480&&e<=768}}function Zo({checked:e,onChange:t,label:o,disabled:i=!1}){return A("label",{"aria-label":o,style:{position:"relative",display:"inline-flex",width:"40px",height:"24px",cursor:i?"not-allowed":"pointer",flexShrink:0,opacity:i?.4:1},children:[d("input",{type:"checkbox",checked:e,disabled:i,onChange:r=>t(r.target.checked),style:{opacity:0,width:0,height:0,position:"absolute"}}),d("span",{style:{position:"absolute",inset:0,borderRadius:"99px",background:e?"#0d9488":"#cbd5e1",transition:"background 0.2s"}}),d("span",{style:{position:"absolute",top:"3px",left:e?"19px":"3px",width:"18px",height:"18px",background:"#fff",borderRadius:"50%",transition:"left 0.2s",boxShadow:"0 1px 3px rgba(0,0,0,0.2)",pointerEvents:"none"}})]})}function we({label:e,color:t="#64748b",badge:o,concept:i}){return A("div",{style:{margin:"10px 18px 4px"},children:[A("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[d("p",{style:{margin:0,fontSize:"10px",fontWeight:600,color:t,letterSpacing:"0.06em",textTransform:"uppercase"},children:e}),o&&d("span",{style:{fontSize:"9px",fontWeight:500,padding:"1px 7px",borderRadius:"99px",background:"#f5f3ff",color:"#7c3aed",border:"0.5px solid #c4b5fd",whiteSpace:"nowrap"},children:o})]}),i&&d("p",{style:{margin:"2px 0 0",fontSize:"9px",color:"#94a3b8",fontStyle:"italic"},children:i})]})}function ae({icon:e,label:t,desc:o,checked:i,onChange:r,disabled:a=!1,disabledReason:n,tip:s}){return A("div",{title:a?n:s,style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 18px",gap:"12px"},children:[A("div",{style:{display:"flex",alignItems:"center",gap:"10px",flex:1,minWidth:0},children:[d("span",{"aria-hidden":"true",style:{width:"32px",height:"32px",borderRadius:"8px",background:a?"#f1f5f9":"#f0fdfa",color:a?"#94a3b8":"#0d9488",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"15px",flexShrink:0,fontWeight:700},children:e}),A("div",{style:{minWidth:0},children:[d("p",{style:{margin:0,fontSize:"13px",fontWeight:500,color:a?"#94a3b8":"#0f172a",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t}),d("p",{style:{margin:0,fontSize:"10px",color:"#94a3b8"},children:a?n:o})]})]}),d(Zo,{checked:i,onChange:r,label:`Toggle ${t}`,disabled:a})]})}function X(){return d("div",{style:{height:"1px",background:"#f1f5f9"}})}function Ee({steps:e}){return A("div",{style:{margin:"0 18px 8px",padding:"8px 10px",background:"#f8fafc",borderRadius:"8px",border:"0.5px solid #e2e8f0"},children:[d("p",{style:{margin:"0 0 4px",fontSize:"9px",fontWeight:600,color:"#64748b",textTransform:"uppercase",letterSpacing:"0.05em"},children:"How to use"}),e.map((t,o)=>A("p",{style:{margin:"0 0 2px",fontSize:"10px",color:"#475569"},children:[o+1,". ",t]},o))]})}var at=jo(({position:e,settings:t,report:o,isActive:i,aiSupported:r,voiceSupported:a,set:n,onApply:s,onReset:p,onClose:l},m)=>{let{isMobile:u,isTablet:H}=Ko(),[F,Z]=ce([]),[B,h]=ce(""),[j,T]=ce(""),[b,M]=ce(!1),[w,S]=ce(null),[y,P]=ce("idle");_e(()=>{let c=window;!!(c.LanguageModel||c.ai?.languageModel)&&r?S("gemini"):Ge()&&S("transformers")},[r]),_e(()=>{if(w!=="transformers")return;let c=setInterval(()=>{P(Fe())},500);return()=>clearInterval(c)},[w]);let E=async()=>{if(!(!B.trim()||b)){if(!w){T("\u26A0\uFE0F No AI engine available on this device.");return}M(!0),T("");try{let c;w==="gemini"?c=await St(B):(P("loading"),c=await At(B),P("ready")),T(c.success&&c.answer?c.answer.replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/#+\s/g,"").trim():"\u26A0\uFE0F "+(c.error||"No answer found on this page"))}catch{T("\u26A0\uFE0F Failed to get answer. Please try again.")}M(!1)}};_e(()=>{(async()=>{try{let Y=window;if(!Y.queryLocalFonts)return;let Q=await Y.queryLocalFonts(),te=[...new Set(Q.map(le=>le.family))].sort();Z(te.slice(0,50))}catch{}})()},[]);let x=w==="gemini"?"Gemini Nano":w==="transformers"?"Transformers.js \xB7 All devices":"Detecting...",V=w==="transformers"&&y==="loading"?"Loading AI model... (first time only)":"...",_=u?{position:"fixed",bottom:0,left:0,right:0,zIndex:9999,background:"#fff",border:"1px solid #e2e8f0",borderRadius:"16px 16px 0 0",boxShadow:"0 -8px 32px rgba(0,0,0,0.12)",maxHeight:"90vh",overflowY:"auto",fontFamily:"system-ui,-apple-system,sans-serif",width:"100%"}:{position:"fixed",bottom:"84px",[e]:"24px",zIndex:9999,width:H?"300px":"320px",maxWidth:"calc(100vw - 48px)",background:"#fff",border:"1px solid #e2e8f0",borderRadius:"16px",boxShadow:"0 8px 32px rgba(0,0,0,0.12)",maxHeight:"80vh",overflowY:"auto",fontFamily:"system-ui,-apple-system,sans-serif"};return A("div",{ref:m,role:"dialog","aria-modal":"true","aria-label":"yuktai accessibility preferences","data-yuktai-panel":"true",style:_,children:[A("div",{style:{padding:"14px 18px 12px",borderBottom:"1px solid #f1f5f9",display:"flex",alignItems:"flex-start",justifyContent:"space-between",position:"sticky",top:0,background:"#fff",zIndex:1},children:[A("div",{children:[A("div",{style:{display:"flex",alignItems:"center",gap:"7px",marginBottom:"4px",flexWrap:"wrap"},children:[d("span",{style:{fontSize:"10px",fontWeight:700,padding:"2px 7px",borderRadius:"99px",background:"#f0fdfa",color:"#0d9488",letterSpacing:"0.05em",fontFamily:"monospace"},children:"@yuktishaalaa/yuktai"}),i&&d("span",{style:{fontSize:"10px",fontWeight:700,padding:"2px 7px",borderRadius:"99px",background:"#f0fdfa",color:"#0f766e",border:"1px solid #99f6e4"},children:"\u25CF ACTIVE"})]}),d("p",{style:{margin:"0 0 1px",fontSize:"15px",fontWeight:600,color:"#0f172a"},children:"Accessibility"}),d("p",{style:{margin:0,fontSize:"11px",color:"#64748b"},children:"WCAG 2.2 \xB7 Open source \xB7 Zero cost \xB7 All devices"})]}),d("button",{onClick:l,"aria-label":"Close accessibility panel",style:{background:"none",border:"none",cursor:"pointer",padding:"4px",color:"#94a3b8",fontSize:"20px",lineHeight:1,borderRadius:"6px",flexShrink:0,minWidth:u?"44px":"auto",minHeight:u?"44px":"auto",display:"flex",alignItems:"center",justifyContent:"center"},children:"\xD7"})]}),d(we,{label:"\u267F Core Accessibility",concept:"Rule-based engine \u2014 works on all browsers and devices"}),d(Ee,{steps:["Toggle any feature on","Click Apply settings","Preferences saved automatically"]}),d(ae,{icon:"\u{1F527}",label:"Auto-fix ARIA",desc:"Injects missing labels and roles automatically",checked:t.autoFix,onChange:c=>n("autoFix",c),tip:"Fixes aria-label, alt text, roles on every element"}),d(X,{}),d(ae,{icon:"\u{1F50A}",label:"Speak on focus",desc:"Browser reads elements aloud as you tab",checked:t.speechEnabled,onChange:c=>n("speechEnabled",c),tip:"Uses browser SpeechSynthesis \u2014 no install needed"}),d(X,{}),d(ae,{icon:"\u{1F399}\uFE0F",label:"Voice control",desc:"Say commands to navigate the page",checked:t.voiceControl,onChange:c=>n("voiceControl",c),disabled:!a,disabledReason:"Not supported in this browser",tip:'Say "scroll down", "go to main", "click"'}),d(X,{}),d(we,{label:"\u{1F916} AI Features",color:"#7c3aed",badge:"Gemini Nano",concept:"Large Language Model running privately on your device \u2014 Chrome 127+ only"}),d("div",{style:{margin:"4px 18px 6px",padding:"8px 10px",background:r?"#f0fdfa":"#f5f3ff",borderRadius:"8px",border:`0.5px solid ${r?"#99f6e4":"#c4b5fd"}`,fontSize:"10px",color:r?"#0f766e":"#7c3aed",lineHeight:1.5},children:r?"\u2705 Gemini Nano detected \u2014 AI features ready. Runs privately on your device.":"\u2699\uFE0F AI features need one-time setup \u2014 see guide below."}),!r&&A("div",{style:{margin:"0 18px 8px",padding:"10px 12px",background:"#fafafa",borderRadius:"8px",border:"0.5px solid #e2e8f0",fontSize:"11px",color:"#475569",lineHeight:1.7},children:[d("p",{style:{margin:"0 0 6px",fontWeight:600,color:"#0f172a",fontSize:"11px"},children:"\u{1F6E0} One-time setup \u2014 5 steps:"}),A("p",{style:{margin:"0 0 3px"},children:["1. Open Chrome \u2192 ",d("code",{style:{background:"#f1f5f9",padding:"1px 5px",borderRadius:"4px",fontSize:"10px",color:"#0d9488",fontFamily:"monospace"},children:"chrome://flags"})]}),d("p",{style:{margin:"0 0 3px"},children:"2. Enable each flag:"}),d("div",{style:{display:"flex",flexDirection:"column",gap:"2px",margin:"4px 0 6px 10px"},children:Uo.map(c=>A("span",{style:{fontSize:"10px",color:"#7c3aed",fontFamily:"monospace"},children:["\u2192 ",c]},c))}),A("p",{style:{margin:"0 0 3px"},children:["3. Click ",d("strong",{style:{color:"#0f172a"},children:"Relaunch"})]}),A("p",{style:{margin:"0 0 3px"},children:["4. ",d("code",{style:{background:"#f1f5f9",padding:"1px 5px",borderRadius:"4px",fontSize:"10px",color:"#0d9488",fontFamily:"monospace"},children:"chrome://components"})," \u2192 Optimization Guide On Device Model \u2192 Check for update"]}),d("p",{style:{margin:"0"},children:"5. Refresh \u2014 AI features unlock automatically \u2705"})]}),d(ae,{icon:"\u{1F4DD}",label:"Plain English mode",desc:"Rewrites complex text in simple language",checked:t.plainEnglish,onChange:c=>n("plainEnglish",c),disabled:!r,disabledReason:"Enable Gemini Nano \u2014 see setup above",tip:"AI concept: LLM text rewriting"}),d(X,{}),d(ae,{icon:"\u{1F4CB}",label:"Summarise page",desc:"3-sentence summary appears at top",checked:t.summarisePage,onChange:c=>n("summarisePage",c),disabled:!r,disabledReason:"Enable Gemini Nano \u2014 see setup above",tip:"AI concept: Abstractive summarisation"}),d(X,{}),d(ae,{icon:"\u{1F3F7}\uFE0F",label:"Smart aria-labels",desc:"AI generates meaningful labels for elements",checked:t.smartLabels,onChange:c=>n("smartLabels",c),disabled:!r,disabledReason:"Enable Gemini Nano \u2014 see setup above",tip:"AI concept: Context-aware label generation"}),d(X,{}),d(we,{label:"\u{1F441}\uFE0F Visual",concept:"CSS filter-based \u2014 works on all browsers and devices"}),d(Ee,{steps:["Toggle any visual mode","Changes apply instantly","Works on mobile and desktop"]}),d(ae,{icon:"\u25D1",label:"High contrast",desc:"Boosts contrast for low vision users",checked:t.highContrast,onChange:c=>n("highContrast",c),tip:"CSS filter: contrast()"}),d(X,{}),d(ae,{icon:"\u{1F319}",label:"Dark mode",desc:"Inverts colours \u2014 easy on eyes at night",checked:t.darkMode,onChange:c=>n("darkMode",c),tip:"CSS filter: invert + hue-rotate"}),d(X,{}),d(ae,{icon:"\u23F8\uFE0F",label:"Reduce motion",desc:"Disables all animations",checked:t.reduceMotion,onChange:c=>n("reduceMotion",c),tip:"WCAG 2.3.3 \u2014 vestibular disorders"}),d(X,{}),d(ae,{icon:"\u{1F446}",label:"Large targets",desc:"44\xD744px minimum touch targets",checked:t.largeTargets,onChange:c=>n("largeTargets",c),tip:"WCAG 2.5.8 \u2014 motor impaired users"}),d(X,{}),A("div",{style:{padding:"10px 18px"},children:[d("p",{style:{margin:"0 0 2px",fontSize:"12px",fontWeight:500,color:"#0f172a"},children:"\u{1F3A8} Colour blindness"}),d("p",{style:{margin:"0 0 8px",fontSize:"10px",color:"#94a3b8"},children:"SVG colour matrix filters \u2014 all devices"}),d("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px"},children:Vo.map(c=>d("button",{onClick:()=>n("colorBlindMode",c.value),"aria-pressed":t.colorBlindMode===c.value,style:{padding:"4px 10px",borderRadius:"20px",fontSize:"11px",fontWeight:500,border:`1px solid ${t.colorBlindMode===c.value?"#0d9488":"#e2e8f0"}`,background:t.colorBlindMode===c.value?"#f0fdfa":"#fff",color:t.colorBlindMode===c.value?"#0d9488":"#64748b",cursor:"pointer",minHeight:u?"36px":"auto"},children:c.label},c.value))})]}),d(X,{}),d(we,{label:"\u{1F524} Font",concept:"Browser Font API + CSS \u2014 Chrome 103+"}),d(Ee,{steps:["Toggle dyslexia font or pick from device","Adjust size with + / \u2212","Saved across visits"]}),d(ae,{icon:"Aa",label:"Dyslexia-friendly font",desc:"Atkinson Hyperlegible \u2014 research-backed",checked:t.dyslexiaFont,onChange:c=>n("dyslexiaFont",c),tip:"By Braille Institute \u2014 free and open source"}),d(X,{}),A("div",{style:{padding:"10px 18px"},children:[d("p",{style:{margin:"0 0 2px",fontSize:"12px",fontWeight:500,color:"#0f172a"},children:"\u{1F5A5}\uFE0F Local font"}),d("p",{style:{margin:"0 0 8px",fontSize:"10px",color:"#94a3b8"},children:"window.queryLocalFonts() \u2014 Chrome 103+"}),F.length>0?A("select",{value:t.localFont,onChange:c=>n("localFont",c.target.value),"aria-label":"Choose a font from your device",style:{width:"100%",padding:"8px 10px",borderRadius:"8px",border:"1px solid #e2e8f0",fontSize:"13px",color:"#0f172a",background:"#fff",cursor:"pointer",height:u?"44px":"36px"},children:[d("option",{value:"",children:"System default"}),F.map(c=>d("option",{value:c,style:{fontFamily:c},children:c},c))]}):d("p",{style:{margin:0,fontSize:"11px",color:"#94a3b8"},children:"Allow font access when Chrome prompts you."})]}),d(X,{}),A("div",{style:{padding:"10px 18px 14px"},children:[A("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10px"},children:[A("div",{children:[d("p",{style:{margin:0,fontSize:"12px",fontWeight:500,color:"#0f172a"},children:"\u{1F4CF} Text size"}),d("p",{style:{margin:0,fontSize:"10px",color:"#94a3b8"},children:"Scales all text on the page"})]}),A("span",{style:{fontSize:"12px",fontWeight:600,color:"#0d9488",background:"#f0fdfa",padding:"2px 8px",borderRadius:"99px"},children:[t.fontScale,"%"]})]}),A("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[d("button",{onClick:()=>{let c=he.indexOf(t.fontScale);c>0&&n("fontScale",he[c-1])},disabled:t.fontScale<=80,"aria-label":"Decrease text size",style:{width:u?"44px":"30px",height:u?"44px":"30px",borderRadius:"8px",border:"1px solid #e2e8f0",background:"#fff",cursor:t.fontScale<=80?"not-allowed":"pointer",fontSize:"16px",color:t.fontScale<=80?"#cbd5e1":"#0f172a",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:"\u2212"}),d("div",{style:{flex:1,display:"flex",gap:"3px"},children:he.map(c=>d("button",{onClick:()=>n("fontScale",c),"aria-label":`Set text size to ${c}%`,style:{flex:1,height:"6px",borderRadius:"99px",border:"none",cursor:"pointer",padding:0,background:c<=t.fontScale?"#0d9488":"#e2e8f0",transition:"background 0.15s"}},c))}),d("button",{onClick:()=>{let c=he.indexOf(t.fontScale);c<he.length-1&&n("fontScale",he[c+1])},disabled:t.fontScale>=130,"aria-label":"Increase text size",style:{width:u?"44px":"30px",height:u?"44px":"30px",borderRadius:"8px",border:"1px solid #e2e8f0",background:"#fff",cursor:t.fontScale>=130?"not-allowed":"pointer",fontSize:"16px",color:t.fontScale>=130?"#cbd5e1":"#0f172a",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:"+"})]})]}),d(X,{}),d(we,{label:"\u{1F310} Translate",color:"#7c3aed",badge:"Gemini Nano",concept:"Chrome Translation API \u2014 on device, no internet after setup"}),d(Ee,{steps:["Enable Gemini Nano first","Pick your language","Full page translates instantly"]}),A("div",{style:{padding:"6px 18px 12px"},children:[d("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px"},children:Be.slice(0,u?8:18).map(c=>d("button",{onClick:()=>n("translateLanguage",c.code),"aria-pressed":t.translateLanguage===c.code,disabled:!r,style:{padding:"4px 10px",borderRadius:"20px",fontSize:"11px",fontWeight:500,border:`1px solid ${t.translateLanguage===c.code?"#7c3aed":"#e2e8f0"}`,background:t.translateLanguage===c.code?"#f5f3ff":"#fff",color:t.translateLanguage===c.code?"#7c3aed":"#64748b",cursor:r?"pointer":"not-allowed",opacity:r?1:.5,minHeight:u?"36px":"auto"},children:c.label},c.code))}),!r&&d("p",{style:{margin:"6px 0 0",fontSize:"10px",color:"#94a3b8"},children:"Enable Gemini Nano using the setup guide above."})]}),d(X,{}),d(we,{label:"\u{1F4AC} Ask This Page",color:"#0d9488",badge:x,concept:"RAG \u2014 Retrieval Augmented Generation. Works on all devices including mobile."}),d(Ee,{steps:["Type any question about this page","Press Ask or hit Enter",w==="transformers"?"Transformers.js answers \u2014 works on mobile, offline":"Gemini Nano reads page and answers privately","Zero cost. No data leaves your device."]}),A("div",{style:{margin:"0 18px 8px",padding:"6px 10px",background:w==="gemini"?"#f0fdfa":w==="transformers"?"#f5f3ff":"#f8fafc",borderRadius:"8px",border:`0.5px solid ${w==="gemini"?"#99f6e4":w==="transformers"?"#c4b5fd":"#e2e8f0"}`,fontSize:"10px",color:w==="gemini"?"#0f766e":w==="transformers"?"#7c3aed":"#94a3b8"},children:[w==="gemini"&&"\u2705 Using Gemini Nano \u2014 on device, private, instant",w==="transformers"&&"\u2705 Using Transformers.js \u2014 works on mobile and all browsers",!w&&"\u23F3 Detecting AI engine...",w==="transformers"&&y==="loading"&&" \xB7 Loading model...",w==="transformers"&&y==="ready"&&" \xB7 Model ready \u2705"]}),A("div",{style:{padding:"0 18px 14px"},children:[A("div",{style:{display:"flex",gap:"6px",marginBottom:"8px"},children:[d("input",{type:"text",value:B,onChange:c=>h(c.target.value),onKeyDown:c=>{c.key==="Enter"&&E()},placeholder:"e.g. What does this page do?",disabled:b||!w,"aria-label":"Ask a question about this page",style:{flex:1,padding:"8px 10px",borderRadius:"8px",border:"1px solid #e2e8f0",fontSize:"12px",color:"#0f172a",background:w?"#fff":"#f8fafc",outline:"none",height:u?"44px":"36px"}}),d("button",{onClick:E,disabled:b||!B.trim()||!w,"aria-label":"Ask question",style:{padding:"8px 14px",borderRadius:"8px",border:"none",background:w&&B.trim()&&!b?"#0d9488":"#e2e8f0",color:w&&B.trim()&&!b?"#fff":"#94a3b8",fontSize:"12px",fontWeight:600,cursor:w&&B.trim()&&!b?"pointer":"not-allowed",flexShrink:0,height:u?"44px":"36px",minWidth:"52px",transition:"background 0.2s"},children:b?V:"Ask"})]}),j&&A("div",{role:"status","aria-live":"polite",style:{padding:"10px 12px",background:"#f0fdfa",border:"1px solid #99f6e4",borderRadius:"8px",fontSize:"12px",color:"#0f766e",lineHeight:1.6,maxHeight:"180px",overflowY:"auto"},children:[d("strong",{style:{display:"block",marginBottom:"4px",fontSize:"11px",color:"#0d9488"},children:"\u{1F4AC} Answer"}),j,d("button",{onClick:()=>{T(""),h("")},style:{display:"block",marginTop:"6px",background:"none",border:"none",color:"#94a3b8",fontSize:"10px",cursor:"pointer",padding:0},children:"Clear"})]})]}),o&&d("div",{role:"status",style:{margin:"0 14px 10px",padding:"8px 12px",background:"#f0fdfa",border:"1px solid #99f6e4",borderRadius:"8px",fontSize:"12px",color:"#0f766e",fontWeight:500,fontFamily:"monospace"},children:o.fixed>0?`\u2713 ${o.fixed} fixes \xB7 ${o.scanned} nodes \xB7 ${o.renderTime}ms \xB7 Score: ${o.score}/100`:`\u2713 0 auto-fixes needed \xB7 ${o.scanned} nodes \xB7 ${o.renderTime}ms`}),A("div",{style:{display:"flex",gap:"8px",padding:"12px 14px 14px",position:u?"sticky":"relative",bottom:u?0:"auto",background:"#fff",borderTop:"1px solid #f1f5f9"},children:[d("button",{onClick:p,style:{flex:1,padding:u?"12px 0":"8px 0",fontSize:"13px",fontWeight:500,borderRadius:"9px",border:"1px solid #e2e8f0",background:"#fff",color:"#64748b",cursor:"pointer"},children:"Reset"}),d("button",{onClick:s,style:{flex:2,padding:u?"12px 0":"8px 0",fontSize:"13px",fontWeight:600,borderRadius:"9px",border:"none",background:"#0d9488",color:"#fff",cursor:"pointer"},children:"Apply settings"})]})]})});at.displayName="WidgetPanel";import{useState as Re,useCallback as Qt}from"react";var Qo={hotel:["hotel","resort","motel","inn","accommodation","lodge","stay","room","booking","hospitality"],ecommerce:["shop","store","ecommerce","e-commerce","sell","product","cart","buy","marketplace","retail"],restaurant:["restaurant","food","cafe","cafeteria","menu","dining","eat","cuisine","bistro","takeaway","delivery"],portfolio:["portfolio","freelance","personal","designer","developer","creative","showcase","work","hire me"],blog:["blog","article","post","write","news","magazine","journal","content"],saas:["saas","dashboard","app","software","platform","tool","analytics","admin","manage","crm"],government:["government","govt","portal","citizen","scheme","welfare","municipal","public","official"],healthcare:["hospital","clinic","doctor","health","medical","patient","appointment","pharmacy"],education:["school","college","university","course","learn","education","student","lms","training"],realestate:["real estate","property","house","flat","apartment","rent","buy property","listing"],landing:["landing","startup","launch","product launch","coming soon","waitlist"],generic:[]},Xo={hotel:["home","rooms","booking","about","contact"],ecommerce:["home","products","cart","checkout","about","contact"],restaurant:["home","menu","reservations","about","contact"],portfolio:["home","portfolio","about","contact"],blog:["home","blog","about","contact"],saas:["home","pricing","dashboard","auth","about","contact"],government:["home","services","about","contact","faq"],healthcare:["home","services","booking","team","about","contact"],education:["home","services","pricing","about","contact"],realestate:["home","products","about","contact"],landing:["home","pricing","about","contact"],generic:["home","about","services","contact"]},Jo={home:["home","homepage","main","landing"],about:["about","who we are","our story","company"],contact:["contact","reach us","get in touch","location"],services:["service","what we offer","solution","offering"],pricing:["pricing","price","plan","subscription","cost","fee"],blog:["blog","article","news","post"],auth:["login","register","signup","sign up","sign in","auth","account"],dashboard:["dashboard","admin","panel","manage","analytics"],gallery:["gallery","photo","image","portfolio"],products:["product","shop","store","item","catalogue"],cart:["cart","basket","shopping cart"],checkout:["checkout","payment","pay","order"],rooms:["room","suite","accommodation","stay"],booking:["booking","reserve","reservation","schedule","appointment"],menu:["menu","food","dish","cuisine"],reservations:["reservation","table booking","book table"],portfolio:["portfolio","work","project","case study"],team:["team","staff","member","people","who we are"],faq:["faq","question","answer","help","support"],terms:["terms","condition","legal"],privacy:["privacy","policy","gdpr","data"]},en={Authentication:["login","register","auth","signup","sign in","account"],Payment:["payment","stripe","pay","checkout","billing"],Search:["search","filter","find"],"Dark mode":["dark mode","dark theme","night mode"],"Multi-language":["multilingual","multi language","translation","i18n"],SEO:["seo","search engine","meta","google"],Analytics:["analytics","tracking","stats","dashboard"],Email:["email","newsletter","contact form","notification"],Map:["map","location","address","google maps"],"Social media":["social","instagram","facebook","twitter","share"],"Image gallery":["gallery","photo","image","carousel"],"Booking system":["booking","reservation","appointment","schedule"],"Shopping cart":["cart","basket","shop","ecommerce"],"Blog/CMS":["blog","cms","content","article","post"]},tn={blue:["blue","navy","sky","ocean","corporate"],green:["green","nature","eco","environment","health","fresh"],purple:["purple","violet","luxury","creative","royal"],red:["red","bold","energy","passion","food"],orange:["orange","warm","friendly","fun"],teal:["teal","turquoise","modern","tech"],indigo:["indigo","professional","trust","finance","bank"],gray:["gray","minimal","clean","simple","neutral"]},on={hotel:"indigo",ecommerce:"blue",restaurant:"red",portfolio:"purple",blog:"gray",saas:"teal",government:"blue",healthcare:"green",education:"indigo",realestate:"orange",landing:"purple",generic:"blue"};function nn(e){let t=[/(?:for|called|named|company|business|brand)\s+["']?([A-Z][a-zA-Z\s]{1,30})["']?/i,/["']([A-Z][a-zA-Z\s]{1,30})["']/,/^([A-Z][a-zA-Z]+(?:\s[A-Z][a-zA-Z]+)?)/m];for(let o of t){let i=e.match(o);if(i?.[1]){let r=i[1].trim();if(r.length>2&&r.length<40)return r}}return"My Business"}function rn(e){let t=e.toLowerCase(),o="generic",i=0;for(let[r,a]of Object.entries(Qo)){let n=0;for(let s of a)t.includes(s)&&n++;n>i&&(i=n,o=r)}return o}function an(e,t){let o=e.toLowerCase(),i=new Set(Xo[t]);for(let[r,a]of Object.entries(Jo))for(let n of a)if(o.includes(n)){i.add(r);break}return i.add("home"),i.add("contact"),Array.from(i)}function sn(e){let t=e.toLowerCase(),o=[];for(let[i,r]of Object.entries(en))for(let a of r)if(t.includes(a)){o.push(i);break}return o}function ln(e,t){let o=e.toLowerCase();for(let[i,r]of Object.entries(tn))for(let a of r)if(o.includes(a))return i;return on[t]}function Zt(e){let t=rn(e),o=an(e,t),i=sn(e),r=ln(e,t);return{siteName:nn(e),websiteType:t,pages:o,features:i,theme:r,description:e.slice(0,200)}}import{Fragment as un,jsx as v,jsxs as W}from"react/jsx-runtime";var dn=["Hotel booking website for Grand Palace Hotels with rooms, booking and payment","E-commerce store for organic food products with cart and checkout","Restaurant website for Spice Garden with menu and table reservations","Portfolio website for a freelance designer with gallery and contact","SaaS dashboard for project management with pricing and auth","Government portal for citizen services with FAQ and contact"],cn={home:"\u{1F3E0}",about:"\u2139\uFE0F",contact:"\u{1F4EC}",services:"\u2699\uFE0F",pricing:"\u{1F4B0}",blog:"\u{1F4DD}",auth:"\u{1F510}",dashboard:"\u{1F4CA}",gallery:"\u{1F5BC}\uFE0F",products:"\u{1F6D2}",cart:"\u{1F6CD}\uFE0F",checkout:"\u{1F4B3}",rooms:"\u{1F6CF}\uFE0F",booking:"\u{1F4C5}",menu:"\u{1F37D}\uFE0F",reservations:"\u{1FA91}",portfolio:"\u{1F4BC}",team:"\u{1F465}",faq:"\u2753",terms:"\u{1F4C4}",privacy:"\u{1F512}"},pn={hotel:"\u{1F3E8}",ecommerce:"\u{1F6D2}",restaurant:"\u{1F37D}\uFE0F",portfolio:"\u{1F4BC}",blog:"\u{1F4DD}",saas:"\u26A1",government:"\u{1F3DB}\uFE0F",healthcare:"\u{1F3E5}",education:"\u{1F393}",realestate:"\u{1F3E0}",landing:"\u{1F680}",generic:"\u{1F310}"};function st({position:e,onClose:t}){let[o,i]=Re("input"),[r,a]=Re(""),[n,s]=Re(null),[p,l]=Re(0),[m,u]=Re(""),H=Qt(()=>{if(!r.trim())return;let h=Zt(r);s(h),i("preview")},[r]),F=Qt(async()=>{if(n){i("generating"),l(0),u("");try{let h=[{msg:"Parsing requirement...",pct:15},{msg:"Loading templates...",pct:30},{msg:"Generating pages...",pct:55},{msg:"Building components...",pct:70},{msg:"Creating styles...",pct:85},{msg:"Packaging ZIP...",pct:95}];for(let T of h)l(T.pct),await new Promise(b=>setTimeout(b,200));let{generateZip:j}=await import("./zip-generator-D5EXBBNS.mjs");await j(n),l(100),i("done")}catch(h){u(h instanceof Error?h.message:"Generation failed. Please try again."),i("preview")}}},[n]),Z=()=>{i("input"),a(""),s(null),l(0),u("")},B={position:"fixed",bottom:"204px",[e]:"24px",zIndex:9999,width:"340px",maxWidth:"calc(100vw - 48px)",background:"#fff",border:"1px solid #e2e8f0",borderRadius:"16px",boxShadow:"0 8px 32px rgba(0,0,0,0.14)",fontFamily:"system-ui,-apple-system,sans-serif",maxHeight:"75vh",overflowY:"auto"};return W("div",{role:"dialog","aria-modal":"true","aria-label":"yuktai Vibe Coder","data-yuktai-panel":"true",style:B,children:[W("div",{style:{padding:"14px 16px 12px",borderBottom:"1px solid #f1f5f9",display:"flex",alignItems:"flex-start",justifyContent:"space-between",position:"sticky",top:0,background:"#fff",zIndex:1},children:[W("div",{children:[v("p",{style:{margin:"0 0 2px",fontSize:"13px",fontWeight:700,color:"#0f172a"},children:"\u26A1 Vibe Coder"}),v("p",{style:{margin:0,fontSize:"10px",color:"#64748b"},children:"Describe your website \u2192 Download Next.js ZIP"})]}),v("button",{onClick:t,"aria-label":"Close vibe coder",style:{background:"none",border:"none",cursor:"pointer",color:"#94a3b8",fontSize:"18px",padding:"2px"},children:"\xD7"})]}),o==="input"&&W("div",{style:{padding:"14px 16px"},children:[v("p",{style:{margin:"0 0 10px",fontSize:"11px",color:"#64748b"},children:"Describe your business website in plain English. The plugin will generate a complete Next.js project for you."}),v("p",{style:{margin:"0 0 6px",fontSize:"10px",fontWeight:600,color:"#94a3b8",textTransform:"uppercase"},children:"Examples"}),v("div",{style:{display:"flex",flexDirection:"column",gap:"4px",marginBottom:"12px"},children:dn.slice(0,3).map(h=>v("button",{onClick:()=>a(h),style:{padding:"6px 10px",borderRadius:"8px",border:"1px solid #e2e8f0",background:"#f8fafc",color:"#475569",fontSize:"10px",cursor:"pointer",textAlign:"left",lineHeight:1.4},children:h},h))}),v("textarea",{value:r,onChange:h=>a(h.target.value),placeholder:"e.g. I need a hotel booking website with rooms, search, and payment for Grand Palace Hotels",rows:4,"aria-label":"Describe your website",style:{width:"100%",padding:"10px",borderRadius:"8px",border:"1px solid #e2e8f0",fontSize:"12px",color:"#0f172a",resize:"vertical",outline:"none",fontFamily:"inherit",lineHeight:1.5}}),v("button",{onClick:H,disabled:!r.trim(),style:{width:"100%",marginTop:"10px",padding:"10px",borderRadius:"8px",border:"none",background:r.trim()?"#f59e0b":"#e2e8f0",color:r.trim()?"#fff":"#94a3b8",fontSize:"13px",fontWeight:700,cursor:r.trim()?"pointer":"not-allowed",transition:"background 0.2s"},children:"Analyse Requirement \u2192"})]}),o==="preview"&&n&&W("div",{style:{padding:"14px 16px"},children:[m&&W("div",{style:{padding:"10px",background:"#fef2f2",border:"1px solid #fca5a5",borderRadius:"8px",marginBottom:"12px",fontSize:"11px",color:"#dc2626"},children:["\u26A0\uFE0F ",m]}),W("div",{style:{background:"#f8fafc",borderRadius:"10px",padding:"12px",marginBottom:"12px"},children:[W("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},children:[v("span",{style:{fontSize:"1.5rem"},children:pn[n.websiteType]||"\u{1F310}"}),W("div",{children:[v("p",{style:{margin:0,fontSize:"13px",fontWeight:700,color:"#0f172a"},children:n.siteName}),W("p",{style:{margin:0,fontSize:"10px",color:"#64748b",textTransform:"capitalize"},children:[n.websiteType," website \xB7 ",n.theme," theme"]})]})]}),W("p",{style:{margin:"8px 0 6px",fontSize:"10px",fontWeight:600,color:"#94a3b8",textTransform:"uppercase"},children:["Pages to generate (",n.pages.length,")"]}),v("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px"},children:n.pages.map(h=>W("span",{style:{padding:"2px 8px",borderRadius:"99px",background:"#f0fdf4",border:"1px solid #86efac",fontSize:"10px",color:"#166534",fontWeight:500},children:[cn[h]||"\u{1F4C4}"," ",h]},h))}),n.features.length>0&&W(un,{children:[v("p",{style:{margin:"10px 0 6px",fontSize:"10px",fontWeight:600,color:"#94a3b8",textTransform:"uppercase"},children:"Detected features"}),v("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px"},children:n.features.map(h=>v("span",{style:{padding:"2px 8px",borderRadius:"99px",background:"#f5f3ff",border:"1px solid #c4b5fd",fontSize:"10px",color:"#7c3aed",fontWeight:500},children:h},h))})]})]}),W("div",{style:{margin:"0 0 12px",padding:"10px 12px",background:"#f0fdf4",borderRadius:"8px",border:"1px solid #86efac"},children:[v("p",{style:{margin:"0 0 4px",fontSize:"10px",fontWeight:700,color:"#166534"},children:"\u{1F4E6} What you get:"}),W("p",{style:{margin:0,fontSize:"10px",color:"#166534",lineHeight:1.6},children:["\u2705 Complete Next.js 16 project",v("br",{}),"\u2705 Tailwind CSS + CSS Modules",v("br",{}),"\u2705 TypeScript configured",v("br",{}),"\u2705 Navbar + Footer components",v("br",{}),"\u2705 All ",n.pages.length," pages ready",v("br",{}),"\u2705 Mobile responsive",v("br",{}),"\u2705 npm run dev \u2192 works immediately"]})]}),W("div",{style:{display:"flex",gap:"8px"},children:[v("button",{onClick:Z,style:{flex:1,padding:"9px",borderRadius:"8px",border:"1px solid #e2e8f0",background:"#fff",color:"#64748b",fontSize:"12px",fontWeight:600,cursor:"pointer"},children:"\u2190 Edit"}),v("button",{onClick:F,style:{flex:2,padding:"9px",borderRadius:"8px",border:"none",background:"#f59e0b",color:"#fff",fontSize:"13px",fontWeight:700,cursor:"pointer"},children:"\u2B07\uFE0F Generate & Download ZIP"})]})]}),o==="generating"&&W("div",{style:{padding:"2rem 16px",textAlign:"center"},children:[v("p",{style:{fontSize:"2rem",marginBottom:"1rem"},children:"\u26A1"}),v("p",{style:{fontSize:"13px",fontWeight:700,color:"#0f172a",marginBottom:"0.5rem"},children:"Generating your project..."}),v("p",{style:{fontSize:"11px",color:"#64748b",marginBottom:"1.5rem"},children:p<30?"Parsing requirement...":p<55?"Loading templates...":p<70?"Generating pages...":p<85?"Building components...":p<95?"Creating styles...":"Packaging ZIP..."}),v("div",{style:{height:"8px",background:"#e2e8f0",borderRadius:"99px",overflow:"hidden"},children:v("div",{style:{height:"100%",width:`${p}%`,background:"#f59e0b",borderRadius:"99px",transition:"width 0.3s ease"}})}),W("p",{style:{marginTop:"0.5rem",fontSize:"10px",color:"#94a3b8"},children:[p,"%"]})]}),o==="done"&&n&&W("div",{style:{padding:"2rem 16px",textAlign:"center"},children:[v("p",{style:{fontSize:"3rem",marginBottom:"0.75rem"},children:"\u2705"}),W("p",{style:{fontSize:"14px",fontWeight:700,color:"#0f172a",marginBottom:"0.5rem"},children:[n.siteName," downloaded!"]}),v("p",{style:{fontSize:"11px",color:"#64748b",marginBottom:"1.5rem",lineHeight:1.6},children:"Your ZIP is downloading. Unzip it and run:"}),["npm install","npm run dev"].map(h=>v("div",{style:{background:"#0f172a",borderRadius:"8px",padding:"8px 12px",marginBottom:"6px",textAlign:"left"},children:W("code",{style:{fontSize:"12px",color:"#a7f3d0",fontFamily:"monospace"},children:["$ ",h]})},h)),v("p",{style:{fontSize:"11px",color:"#10b981",margin:"1rem 0",fontWeight:600},children:"Then open http://localhost:3000 \u{1F680}"}),W("div",{style:{display:"flex",gap:"8px"},children:[v("button",{onClick:Z,style:{flex:1,padding:"9px",borderRadius:"8px",border:"1px solid #e2e8f0",background:"#fff",color:"#64748b",fontSize:"12px",fontWeight:600,cursor:"pointer"},children:"New Project"}),v("button",{onClick:F,style:{flex:1,padding:"9px",borderRadius:"8px",border:"none",background:"#f59e0b",color:"#fff",fontSize:"12px",fontWeight:700,cursor:"pointer"},children:"\u2B07\uFE0F Download Again"})]})]})]})}import{Fragment as mn,jsx as I,jsxs as se}from"react/jsx-runtime";async function gn(){try{if(typeof window>"u")return!1;let e=window;if(e.LanguageModel)try{if(typeof e.LanguageModel.availability=="function"){let o=await e.LanguageModel.availability();if(o==="readily"||o==="available"||o==="downloadable")return!0}else return!0}catch{}if(e.Summarizer)try{let o=await e.Summarizer.availability?.();if(!o||o==="readily"||o==="available")return!0}catch{}if(e.Rewriter)try{let o=await e.Rewriter.availability?.();if(!o||o==="readily"||o==="available")return!0}catch{}if(e.Writer)try{let o=await e.Writer.availability?.();if(!o||o==="readily"||o==="available")return!0}catch{}let t=e.ai||globalThis.ai;if(t){if(t.languageModel?.availability)try{let o=await t.languageModel.availability();if(o==="readily"||o==="available")return!0}catch{}if(t.languageModel&&typeof t.languageModel.create=="function"||t.summarizer||t.rewriter||t.writer||t.languageModel)return!0}return!!(e.Translator||e.translation?.canTranslate)}catch{return!1}}function lt({position:e="left",children:t,config:o={},showRag:i=!1,showAgent:r=!1}){let[a,n]=D(!1),[s,p]=D(rt),[l,m]=D(null),[u,H]=D(!1),[F,Z]=D(!1),[B,h]=D(!1),j=fn.useRef(null),[T,b]=D(!1),[M,w]=D(""),[S,y]=D(""),[P,E]=D(!1),[x,V]=D(null),[_,c]=D("idle"),[Y,Q]=D(!1),[te,le]=D(""),[Ve,fe]=D(""),[oe,ge]=D(!1),[Ae,me]=D([]),[ee,Te]=D(null),O=24,Ue=84,Ce=i?144:84,vt=204,[g,k]=D(!1);ve(()=>{if(typeof window>"u")return;let f=window;!!(f.LanguageModel||f.ai?.languageModel)&&F?(V("gemini"),Te("gemini")):Ge()&&(V("transformers"),Te("transformers"))},[F]),ve(()=>{if(x!=="transformers")return;let f=setInterval(()=>c(Fe()),500);return()=>clearInterval(f)},[x]);let L=ke(async()=>{if(!(!M.trim()||P)){if(!x){y("\u26A0\uFE0F No AI engine available.");return}E(!0),y("");try{let f;if(x==="gemini"){let{askPage:G}=await import("./rag-MKBAGH6J.mjs");f=await G(M)}else{c("loading");let{askPageWithTransformers:G}=await import("./transformers-rag-HW4QKA5T.mjs");f=await G(M),c("ready")}y(f.success&&f.answer?f.answer.replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/#+\s/g,"").trim():"\u26A0\uFE0F "+(f.error||"No answer found."))}catch{y("\u26A0\uFE0F Something went wrong.")}E(!1)}},[M,P,x]),z=ke(async()=>{if(!te.trim()||oe)return;if(!ee){fe("\u26A0\uFE0F No AI engine available.");return}ge(!0),me([]),fe("");let{runAgent:f}=await import("./agent-JGLAYQMX.mjs");await f(te,ee,G=>{me(de=>[...de,G.text])}),ge(!1),fe("done")},[te,oe,ee]);ve(()=>{if(typeof window>"u")return;let G=setTimeout(async()=>{let de=window,ko=await gn();Z(ko),h(!!(de.SpeechRecognition||de.webkitSpeechRecognition))},800);return()=>clearTimeout(G)},[]),ve(()=>{if(!(typeof window>"u"))try{let f=localStorage.getItem("yuktai-a11y-prefs");f&&p(G=>({...G,...JSON.parse(f)}))}catch{}},[]);let U=ke(async f=>{let G={enabled:!0,highContrast:f.highContrast,darkMode:f.darkMode,reduceMotion:f.reduceMotion,largeTargets:f.largeTargets,speechEnabled:f.speechEnabled,autoFix:f.autoFix,dyslexiaFont:f.dyslexiaFont,localFont:f.localFont,fontSizeMultiplier:f.fontScale/100,colorBlindMode:f.colorBlindMode,showAuditBadge:f.showAuditBadge,showSkipLinks:!0,showPreferencePanel:!1,plainEnglish:f.plainEnglish,summarisePage:f.summarisePage,translateLanguage:f.translateLanguage,voiceControl:f.voiceControl,smartLabels:f.smartLabels,...o};await ie.execute(G),m(ie.applyFixes(G)),H(!0)},[o]),q=ke(async()=>{try{localStorage.setItem("yuktai-a11y-prefs",JSON.stringify(s))}catch{}await U(s),n(!1)},[s,U]),ho=ke(()=>{p(rt);try{localStorage.removeItem("yuktai-a11y-prefs")}catch{}let f=document.documentElement;["data-yuktai-high-contrast","data-yuktai-dark","data-yuktai-reduce-motion","data-yuktai-large-targets","data-yuktai-keyboard","data-yuktai-dyslexia"].forEach(G=>f.removeAttribute(G)),document.body.style.filter="",document.body.style.fontFamily="",document.documentElement.style.fontSize="",m(null),H(!1)},[]),wo=ke((f,G)=>{p(de=>({...de,[f]:G}))},[]);ve(()=>{let f=G=>{G.key==="Escape"&&(a&&n(!1),T&&b(!1),Y&&Q(!1),g&&k(!1))};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[a,T,Y]),ve(()=>{a&&j.current&&ie.trapFocus(j.current)},[a]);let Le=(f,G,de)=>({position:"fixed",bottom:`${f}px`,[e]:"24px",zIndex:9998,width:"52px",height:"52px",borderRadius:"50%",background:G,color:"#fff",border:"none",cursor:"pointer",fontSize:"22px",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 4px 16px rgba(0,0,0,0.25)",transition:"transform 0.15s, background 0.2s"}),Me=f=>{f.currentTarget.style.transform="scale(1.08)"},ze=f=>{f.currentTarget.style.transform="scale(1)"},kt=x==="gemini"?"Gemini Nano \xB7 On device":x==="transformers"?"Transformers.js \xB7 All devices":"Detecting...",vo=x==="transformers"&&_==="loading"?"Loading model...":"...";return se(mn,{children:[t,r&&I("button",{style:Le(204,g?"#d97706":"#f59e0b",g),"aria-label":"Open Vibe Coder",title:"\u26A1 Vibe Coder \u2014 Generate Next.js project",onClick:()=>{k(f=>!f),Q(!1),b(!1),n(!1)},onMouseEnter:Me,onMouseLeave:ze,children:"\u26A1"}),r&&g&&I(st,{position:e,onClose:()=>k(!1)}),r&&I("button",{style:Le(Ce,Y?"#059669":"#10b981",Y),"aria-label":"Open AI agent","aria-haspopup":"dialog","aria-expanded":Y,title:"\u{1F916} AI Agent \u2014 guide me through this page",onClick:()=>{Q(f=>!f),b(!1),n(!1)},onMouseEnter:Me,onMouseLeave:ze,children:"\u{1F916}"}),r&&Y&&se("div",{role:"dialog","aria-modal":"true","aria-label":"yuktai AI Agent","data-yuktai-panel":"true",style:{position:"fixed",bottom:`${Ce+64}px`,[e]:"24px",zIndex:9999,width:"300px",maxWidth:"calc(100vw - 48px)",background:"#fff",border:"1px solid #e2e8f0",borderRadius:"16px",boxShadow:"0 8px 32px rgba(0,0,0,0.12)",fontFamily:"system-ui,-apple-system,sans-serif",padding:"14px",maxHeight:"70vh",overflowY:"auto"},children:[se("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:"10px"},children:[se("div",{children:[I("p",{style:{margin:"0 0 2px",fontSize:"13px",fontWeight:600,color:"#0f172a"},children:"\u{1F916} AI Agent"}),I("p",{style:{margin:0,fontSize:"10px",color:"#10b981"},children:ee==="gemini"?"Gemini Nano \xB7 On device":ee==="transformers"?"Transformers.js \xB7 All devices":"Detecting..."})]}),I("button",{onClick:()=>Q(!1),"aria-label":"Close agent panel",style:{background:"none",border:"none",cursor:"pointer",color:"#94a3b8",fontSize:"18px",lineHeight:1,padding:"2px"},children:"\xD7"})]}),I("p",{style:{margin:"0 0 8px",fontSize:"11px",color:"#64748b"},children:"Tell me what you want to do on this page. I will guide you step by step."}),I("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px",marginBottom:"8px"},children:["Fill this form","Find contact info","What is this page?","Guide me to apply"].map(f=>I("button",{onClick:()=>le(f),style:{padding:"3px 8px",borderRadius:"20px",fontSize:"10px",border:"1px solid #e2e8f0",background:"#f8fafc",color:"#64748b",cursor:"pointer"},children:f},f))}),se("div",{style:{display:"flex",gap:"6px",marginBottom:"8px"},children:[I("input",{type:"text",value:te,onChange:f=>le(f.target.value),onKeyDown:f=>{f.key==="Enter"&&z()},placeholder:"e.g. Help me fill this form",disabled:oe||!ee,"aria-label":"Tell the agent what to do",style:{flex:1,padding:"8px 10px",borderRadius:"8px",border:"1px solid #e2e8f0",fontSize:"12px",color:"#0f172a",background:ee?"#fff":"#f8fafc",outline:"none",height:"36px"}}),I("button",{onClick:z,disabled:oe||!te.trim()||!ee,"aria-label":"Run agent",style:{padding:"8px 12px",borderRadius:"8px",border:"none",background:ee&&te.trim()&&!oe?"#10b981":"#e2e8f0",color:ee&&te.trim()&&!oe?"#fff":"#94a3b8",fontSize:"12px",fontWeight:600,cursor:ee&&te.trim()&&!oe?"pointer":"not-allowed",height:"36px",minWidth:"52px",transition:"background 0.2s"},children:oe?"...":"Go"})]}),Ae.length>0&&se("div",{style:{padding:"10px 12px",background:"#f0fdf4",border:"1px solid #86efac",borderRadius:"8px",fontSize:"11px",color:"#166534",lineHeight:1.7},children:[Ae.map((f,G)=>I("p",{style:{margin:"0 0 2px"},children:f},G)),Ve==="done"&&I("button",{onClick:()=>{me([]),le(""),fe("")},style:{display:"block",marginTop:"6px",background:"none",border:"none",color:"#94a3b8",fontSize:"10px",cursor:"pointer",padding:0},children:"Clear"})]}),!ee&&I("p",{style:{margin:"4px 0 0",fontSize:"10px",color:"#94a3b8"},children:"Enable Gemini Nano via chrome://flags for best results."})]}),i&&I("button",{style:Le(Ue,T?"#7c3aed":"#6d28d9",T),"aria-label":"Ask a question about this page","aria-haspopup":"dialog","aria-expanded":T,title:`\u{1F4AC} Ask this page \xB7 ${kt}`,onClick:()=>{b(f=>!f),n(!1),Q(!1)},onMouseEnter:Me,onMouseLeave:ze,children:"\u{1F4AC}"}),i&&T&&se("div",{role:"dialog","aria-modal":"true","aria-label":"Ask this page","data-yuktai-panel":"true",style:{position:"fixed",bottom:`${Ue+64}px`,[e]:"24px",zIndex:9999,width:"300px",maxWidth:"calc(100vw - 48px)",background:"#fff",border:"1px solid #e2e8f0",borderRadius:"16px",boxShadow:"0 8px 32px rgba(0,0,0,0.12)",fontFamily:"system-ui,-apple-system,sans-serif",padding:"14px"},children:[se("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:"10px"},children:[se("div",{children:[I("p",{style:{margin:"0 0 2px",fontSize:"13px",fontWeight:600,color:"#0f172a"},children:"\u{1F4AC} Ask this page"}),I("p",{style:{margin:0,fontSize:"10px",color:"#7c3aed"},children:kt}),x==="transformers"&&_==="loading"&&I("p",{style:{margin:"2px 0 0",fontSize:"9px",color:"#94a3b8"},children:"Downloading model \u2014 first time only"}),x==="transformers"&&_==="ready"&&I("p",{style:{margin:"2px 0 0",fontSize:"9px",color:"#10b981"},children:"Model ready \u2705 \u2014 works offline"})]}),I("button",{onClick:()=>b(!1),"aria-label":"Close ask panel",style:{background:"none",border:"none",cursor:"pointer",color:"#94a3b8",fontSize:"18px",lineHeight:1,padding:"2px"},children:"\xD7"})]}),se("div",{style:{display:"flex",gap:"6px",marginBottom:"8px"},children:[I("input",{type:"text",value:M,onChange:f=>w(f.target.value),onKeyDown:f=>{f.key==="Enter"&&L()},placeholder:"e.g. What does this page do?",disabled:P||!x,"aria-label":"Ask a question about this page",style:{flex:1,padding:"8px 10px",borderRadius:"8px",border:"1px solid #e2e8f0",fontSize:"12px",color:"#0f172a",background:x?"#fff":"#f8fafc",outline:"none",height:"36px"}}),I("button",{onClick:L,disabled:P||!M.trim()||!x,"aria-label":"Submit question",style:{padding:"8px 12px",borderRadius:"8px",border:"none",background:x&&M.trim()&&!P?"#7c3aed":"#e2e8f0",color:x&&M.trim()&&!P?"#fff":"#94a3b8",fontSize:"12px",fontWeight:600,cursor:x&&M.trim()&&!P?"pointer":"not-allowed",height:"36px",minWidth:"48px",transition:"background 0.2s"},children:P?vo:"Ask"})]}),S&&se("div",{style:{padding:"10px",background:"#f5f3ff",borderRadius:"8px",fontSize:"12px",color:"#4c1d95",lineHeight:1.6,maxHeight:"180px",overflowY:"auto"},children:[I("strong",{style:{display:"block",marginBottom:"4px",fontSize:"11px",color:"#7c3aed"},children:"\u{1F4AC} Answer"}),S,I("button",{onClick:()=>{y(""),w("")},style:{display:"block",marginTop:"6px",background:"none",border:"none",color:"#94a3b8",fontSize:"10px",cursor:"pointer",padding:0},children:"Clear"})]}),!x&&I("p",{style:{margin:"4px 0 0",fontSize:"10px",color:"#94a3b8"},children:"Detecting AI engine..."})]}),I("button",{style:Le(O,u?"#0d9488":"#1a73e8",a),"aria-label":"Open accessibility preferences","aria-haspopup":"dialog","aria-expanded":a,"data-yuktai-pref-toggle":"true",title:"\u267F Accessibility settings",onClick:()=>{n(f=>!f),b(!1),Q(!1)},onMouseEnter:Me,onMouseLeave:ze,children:"\u267F"}),a&&I(at,{ref:j,position:e,settings:s,report:l,isActive:u,aiSupported:F,voiceSupported:B,set:wo,onApply:q,onReset:ho,onClose:()=>n(!1)})]})}var Ye={name:"ai.text",async execute(e){return`\u{1F916} YuktAI says: ${e}`}};var je={name:"voice.text",async execute(e){return!e||e.trim()===""?"\u{1F3A4} No speech detected":`\u{1F3A4} You said: ${e}`}};var pe=class{plugins=new Map;register(t,o){if(!o||typeof o.execute!="function")throw new Error(`Invalid plugin: ${t}`);this.plugins.set(t,o)}use(t){return this.plugins.get(t)}async run(t,o){try{let i=this.use(t);if(!i)throw new Error(`Plugin not found: ${t}`);return await i.execute(o)}catch(i){throw console.error(`[YuktAI Runtime Error in ${t}]:`,i),i}}getPlugins(){return Array.from(this.plugins.keys())}};import{useEffect as dt,useMemo as Xt,useState as Pe}from"react";import{jsx as N,jsxs as re}from"react/jsx-runtime";function bn({data:e,columns:t,rowKey:o="id",view:i="auto",mobileBreakpoint:r=768,theme:a="default",locale:n="en-US",search:s=!0,selectable:p=!1,selectedKeys:l=[],onSelectionChange:m,pagination:u,loading:H=!1,highlightIds:F=[],highlightColor:Z="#fff3a3",autoScrollToHighlight:B=!1,onRowClick:h,onSortChange:j,empty:T="No data found.",className:b=""}){let[M,w]=Pe(""),[S,y]=Pe(1),[P,E]=Pe(),[x,V]=Pe("asc"),_=u!==!1&&u!==void 0,c=typeof u=="object"?u.pageSize??20:20,Y=Xt(()=>{let g=[...e];if(M.trim()){let k=M.trim().toLowerCase();g=g.filter(L=>t.some(z=>String(L[z.key]??"").toLowerCase().includes(k)))}return P&&g.sort((k,L)=>{let z=k[P],U=L[P];if(z==null&&U==null)return 0;if(z==null)return 1;if(U==null)return-1;if(typeof z=="number"&&typeof U=="number")return x==="asc"?z-U:U-z;let q=String(z).localeCompare(String(U),n,{numeric:!0,sensitivity:"base"});return x==="asc"?q:-q}),g},[e,t,M,P,x,n]),Q=_?Math.max(1,Math.ceil(Y.length/c)):1;dt(()=>{S>Q&&y(Q)},[S,Q]),dt(()=>{if(!B)return;let g=F[0];if(g==null)return;document.querySelector(`[data-yuktai-row-id="${CSS.escape(String(g))}"]`)?.scrollIntoView({behavior:"smooth",block:"center"})},[F,B]);let te=Xt(()=>{if(!_)return Y;let g=(S-1)*c;return Y.slice(g,g+c)},[Y,_,S,c]),[le,Ve]=Pe(!1);dt(()=>{let g=()=>{Ve(window.innerWidth<=r)};return g(),window.addEventListener("resize",g),()=>{window.removeEventListener("resize",g)}},[r]);let fe=i==="card"||i==="auto"&&le,oe=g=>String(g[o]??""),ge=g=>l.some(k=>String(k)===g),Ae=g=>F.some(k=>String(k)===g),me=g=>{if(!p)return;let k=oe(g),L=ge(k)?l.filter(z=>String(z)!==k):[...l,k];m?.(L)},ee=g=>{if(g.sortable===!1)return;let k=String(g.key),L=P===k&&x==="asc"?"desc":"asc";E(k),V(L),y(1),j?.({key:k,direction:L})},Te=(g,k,L)=>{if(k.render)return k.render(g[k.key],g,L);let z=g[k.key];if(z==null)return"";if(k.type==="date"){let U=new Date(String(z));if(!Number.isNaN(U.getTime()))return U.toLocaleDateString(n)}return k.type==="boolean"?z?"Yes":"No":String(z)},O=a==="dark",Ce={width:"100%",overflow:"hidden",border:a==="high-contrast"?"2px solid #000000":O?"1px solid #334155":"1px solid #e2e8f0",borderRadius:12,background:O?"#0f172a":"#ffffff",color:O?"#f8fafc":"#0f172a"},vt={padding:12,display:"flex",alignItems:"center",gap:12,borderBottom:O?"1px solid #334155":"1px solid #e2e8f0"};return H?N("div",{className:b,style:Ce,children:N("div",{style:{padding:32,textAlign:"center"},children:"Loading..."})}):re("div",{className:b,style:Ce,children:[s&&re("div",{style:vt,children:[N("input",{value:M,onChange:g=>{w(g.target.value),y(1)},placeholder:"Search...","aria-label":"Search grid",style:{width:"100%",maxWidth:360,padding:"9px 12px",borderRadius:8,border:O?"1px solid #475569":"1px solid #cbd5e1",background:O?"#1e293b":"#ffffff",color:O?"#ffffff":"#0f172a",outline:"none"}}),re("div",{style:{marginLeft:"auto",fontSize:13,opacity:.7},children:[Y.length," rows"]})]}),Y.length===0?N("div",{style:{padding:40,textAlign:"center",opacity:.7},children:T}):fe?N("div",{style:{display:"grid",gap:12,padding:12},children:te.map((g,k)=>{let L=oe(g),z=ge(L),U=Ae(L);return re("div",{"data-yuktai-row-id":L,onClick:()=>h?.(g,k),style:{padding:14,borderRadius:10,border:O?"1px solid #334155":"1px solid #e2e8f0",background:U?Z:z?O?"#1e3a5f":"#eff6ff":O?"#1e293b":"#ffffff",cursor:h?"pointer":"default"},children:[p&&N("input",{type:"checkbox",checked:z,onChange:()=>me(g),onClick:q=>q.stopPropagation(),"aria-label":`Select row ${L}`,style:{marginBottom:10}}),t.map(q=>re("div",{style:{display:"flex",gap:8,padding:"5px 0"},children:[N("strong",{style:{minWidth:100,opacity:.7},children:q.label}),N("span",{children:Te(g,q,k)})]},String(q.key)))]},L)})}):N("div",{style:{width:"100%",overflowX:"auto"},children:re("table",{style:{width:"100%",borderCollapse:"collapse"},children:[N("thead",{children:re("tr",{children:[p&&N("th",{style:{padding:10,borderBottom:O?"1px solid #334155":"1px solid #e2e8f0",width:44}}),t.filter(g=>!(le&&g.hiddenOnMobile)).map(g=>re("th",{onClick:()=>ee(g),style:{padding:10,textAlign:g.align??"left",borderBottom:O?"1px solid #334155":"1px solid #e2e8f0",whiteSpace:"nowrap",cursor:g.sortable===!1?"default":"pointer",width:g.width},children:[g.label,P===String(g.key)&&N("span",{style:{marginLeft:6},"aria-hidden":"true",children:x==="asc"?"\u2191":"\u2193"})]},String(g.key)))]})}),N("tbody",{children:te.map((g,k)=>{let L=oe(g),z=ge(L),U=Ae(L);return re("tr",{"data-yuktai-row-id":L,onClick:()=>h?.(g,k),style:{background:U?Z:z?O?"#1e3a5f":"#eff6ff":"transparent",cursor:h?"pointer":"default"},children:[p&&N("td",{style:{padding:10,borderBottom:O?"1px solid #334155":"1px solid #e2e8f0"},children:N("input",{type:"checkbox",checked:z,onChange:()=>me(g),onClick:q=>q.stopPropagation(),"aria-label":`Select row ${L}`})}),t.filter(q=>!(le&&q.hiddenOnMobile)).map(q=>N("td",{style:{padding:10,textAlign:q.align??"left",borderBottom:O?"1px solid #334155":"1px solid #e2e8f0"},children:Te(g,q,k)},String(q.key)))]},L)})})]})}),_&&re("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,padding:12,borderTop:O?"1px solid #334155":"1px solid #e2e8f0"},children:[re("span",{style:{fontSize:13,opacity:.7},children:["Page ",S," of"," ",Q]}),re("div",{style:{display:"flex",alignItems:"center",gap:6},children:[typeof u=="object"&&u.showSizeChanger&&u.sizeOptions&&u.sizeOptions.length>0&&N("select",{value:c,onChange:()=>{},"aria-label":"Page size",style:{padding:"6px 8px"},children:u.sizeOptions.map(g=>N("option",{value:g,children:g},g))}),N("button",{type:"button",disabled:S<=1,onClick:()=>y(g=>Math.max(1,g-1)),children:"Previous"}),N("button",{type:"button",disabled:S>=Q,onClick:()=>y(g=>Math.min(Q,g+1)),children:"Next"})]})]})]})}import{useState as Ie,useMemo as ct,useCallback as pt,useEffect as Jt}from"react";function yn(e){return e===!1?Number.MAX_SAFE_INTEGER:e===!0||e===void 0?10:e.pageSize??10}function xn(e){let{data:t,columns:o,pagination:i=!0,mobileBreakpoint:r=768}=e,[a,n]=Ie(null),[s,p]=Ie(""),[l,m]=Ie(1),[u,H]=Ie(yn(i)),[F,Z]=Ie(!1);Jt(()=>{if(typeof window>"u")return;let S=()=>{Z(window.innerWidth<r)};return S(),window.addEventListener("resize",S),()=>window.removeEventListener("resize",S)},[r]);let B=pt(S=>{n(y=>!y||y.key!==S?{key:S,direction:"asc"}:y.direction==="asc"?{key:S,direction:"desc"}:null),m(1)},[]),h=pt(()=>n(null),[]),j=ct(()=>{if(!s.trim())return t;let S=s.toLowerCase().trim();return t.filter(y=>o.some(P=>{let E=y[P.key];return E==null?!1:String(E).toLowerCase().includes(S)}))},[t,s,o]),T=ct(()=>{if(!a)return j;let S=[...j].sort((y,P)=>{let E=y[a.key],x=P[a.key];if(E===x)return 0;if(E==null)return 1;if(x==null)return-1;if(typeof E=="number"&&typeof x=="number")return E-x;if(E instanceof Date&&x instanceof Date)return E.getTime()-x.getTime();let V=String(E),_=String(x);return V.localeCompare(_,void 0,{sensitivity:"base",numeric:!0})});return a.direction==="desc"?S.reverse():S},[j,a]),b=Math.max(1,Math.ceil(T.length/u)),M=ct(()=>{if(i===!1)return T;let S=(l-1)*u;return T.slice(S,S+u)},[T,l,u,i]),w=pt(()=>{n(null),p(""),m(1)},[]);return Jt(()=>{l>b&&m(b)},[l,b]),{displayedData:M,totalCount:t.length,filteredCount:T.length,sort:a,toggleSort:B,clearSort:h,searchQuery:s,setSearchQuery:p,page:l,pageSize:u,totalPages:b,setPage:m,setPageSize:H,isMobile:F,reset:w}}import{useCallback as ut,useEffect as ft,useRef as eo,useState as Se}from"react";import{Fragment as Tn,jsx as J,jsxs as ue}from"react/jsx-runtime";function hn(e){let t=e.toLowerCase().trim();if(/^(search|find|show|filter)/.test(t))return{type:"search",payload:t.replace(/^(search|find|show|filter)\s+(for\s+|by\s+)?/,"").trim()};if(/sort/.test(t)){let o=/desc|high|large|top/.test(t)?"desc":"asc";return{type:"sort",payload:{key:t.match(/(name|age|salary|role|email|date)/)?.[1],dir:o}}}return/^(who|what|which|how many|highest|lowest|max|min|average|avg|total|sum)/.test(t)?{type:"question",payload:e}:{type:"search",payload:e}}function wn(e,t,o){if(t.length===0)return"There is no data to analyze.";let i=e.toLowerCase();if(/how many|count|total/.test(i))return`There are ${t.length} rows in the grid.`;let r=o.filter(n=>n.type==="number"),a=o.find(n=>i.includes(n.label.toLowerCase())||i.includes(n.key.toLowerCase()));if(/highest|maximum|max|top|largest/.test(i)){let n=a??r[0];if(!n)return"I could not find a column to analyze.";let s=t.map(u=>({row:u,val:Number(u[n.key])})).filter(u=>!isNaN(u.val)).sort((u,H)=>H.val-u.val);if(s.length===0)return`No numeric data in ${n.label}.`;let p=s[0],l=o.find(u=>u.key==="name"||u.label.toLowerCase()==="name"),m=l?String(p.row[l.key]):`Row ${t.indexOf(p.row)+1}`;return`The highest ${n.label} is ${p.val.toLocaleString("en-IN")}, held by ${m}.`}if(/lowest|minimum|min|smallest|bottom/.test(i)){let n=a??r[0];if(!n)return"I could not find a column to analyze.";let s=t.map(u=>({row:u,val:Number(u[n.key])})).filter(u=>!isNaN(u.val)).sort((u,H)=>u.val-H.val);if(s.length===0)return`No numeric data in ${n.label}.`;let p=s[0],l=o.find(u=>u.key==="name"||u.label.toLowerCase()==="name"),m=l?String(p.row[l.key]):`Row ${t.indexOf(p.row)+1}`;return`The lowest ${n.label} is ${p.val.toLocaleString("en-IN")}, held by ${m}.`}if(/average|avg|mean/.test(i)){let n=a??r[0];if(!n)return"I could not find a column to analyze.";let s=t.map(l=>Number(l[n.key])).filter(l=>!isNaN(l));if(s.length===0)return`No numeric data in ${n.label}.`;let p=s.reduce((l,m)=>l+m,0)/s.length;return`The average ${n.label} is ${Math.round(p).toLocaleString("en-IN")}.`}if(/sum|total/.test(i)){let n=a??r[0];if(!n)return"I could not find a column to analyze.";let s=t.map(l=>Number(l[n.key])).filter(l=>!isNaN(l));if(s.length===0)return`No numeric data in ${n.label}.`;let p=s.reduce((l,m)=>l+m,0);return`The total ${n.label} is ${p.toLocaleString("en-IN")}.`}if(/who|where|which|whose/.test(i)){let n=i.match(/\b([a-z]{3,})\b/g)?.filter(l=>!["who","where","which","whose","what","is","the","has","have"].includes(l));if(!n)return"I need a name to look up.";let s=n.join(" "),p=t.find(l=>Object.values(l).some(m=>String(m).toLowerCase().includes(s)));return p?o.map(l=>`${l.label}: ${String(p[l.key]??"")}`).join(", "):`I could not find anyone matching "${s}".`}return"I understand you have a question. Try asking 'highest salary' or 'how many rows'."}function vn(e="en-US"){let[t,o]=Se(!1),[i,r]=Se(""),[a,n]=Se(!0),s=eo(null);ft(()=>{if(typeof window>"u")return;let m=window.SpeechRecognition||window.webkitSpeechRecognition;if(!m){n(!1);return}let u=new m;return u.continuous=!1,u.interimResults=!1,u.lang=e,u.onresult=H=>{let F=H.results[0][0].transcript;r(F),o(!1)},u.onerror=()=>{o(!1)},u.onend=()=>{o(!1)},s.current=u,()=>{u.stop?.()}},[e]);let p=ut(()=>{if(s.current){r(""),o(!0);try{s.current.start()}catch{o(!1)}}},[]),l=ut(()=>{s.current?.stop(),o(!1)},[]);return{listening:t,transcript:i,supported:a,start:p,stop:l}}function kn(e,t){if(typeof window>"u"||!window.speechSynthesis)return;window.speechSynthesis.cancel();let o=new SpeechSynthesisUtterance(e);o.lang=t,o.rate=1,o.pitch=1,window.speechSynthesis.speak(o)}function Sn({data:e,columns:t,onSearch:o,onSort:i,theme:r="light",language:a="en-US"}){let[n,s]=Se(!1),[p,l]=Se(""),[m,u]=Se([{role:"ai",text:"Hi! Ask me anything about your data \u2014 like 'highest salary' or 'how many rows'. You can also say 'search Sandeep' or 'sort age descending'.",time:new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}]),H=eo(null),{listening:F,transcript:Z,supported:B,start:h,stop:j}=vn(a),T=r==="dark",b={bg:T?"#0F172A":"#FFFFFF",surface:T?"#1E293B":"#F8FAFC",border:T?"#334155":"#E2E8F0",text:T?"#F1F5F9":"#0F172A",muted:T?"#94A3B8":"#64748B",accent:"#10B981",userMsg:T?"#334155":"#DBEAFE",aiMsg:T?"#1E293B":"#F0FDF4"};ft(()=>{H.current?.scrollIntoView({behavior:"smooth"})},[m]);let M=ut(y=>{if(!y.trim())return;let P=new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});u(V=>[...V,{role:"user",text:y,time:P}]),l("");let E=hn(y),x="";if(E.type==="search")o(E.payload),x=`Searching for "${E.payload}"...`;else if(E.type==="sort"&&i){let{key:V,dir:_}=E.payload;V?(i(V,_),x=`Sorted by ${V} (${_==="asc"?"ascending":"descending"}).`):x="Which column should I sort? Try 'sort by salary'."}else E.type==="question"?x=wn(E.payload,e,t):x="I could not understand that request.";setTimeout(()=>{let V=new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});u(_=>[..._,{role:"ai",text:x,time:V}]),kn(x,a)},400)},[e,t,a,o,i]);ft(()=>{Z&&M(Z)},[Z,M]);let w=()=>{M(p)},S=["highest salary","how many rows","average age","search sandeep"];return ue(Tn,{children:[J("button",{type:"button",onClick:()=>s(y=>!y),"aria-label":n?"Close AI assistant":"Open AI assistant",style:{position:"fixed",bottom:24,right:24,zIndex:9998,width:56,height:56,borderRadius:28,background:b.accent,color:"#FFFFFF",border:"none",cursor:"pointer",boxShadow:"0 8px 20px rgba(16,185,129,0.3)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:20},children:n?"\u2715":"\u{1F916}"}),n&&ue("div",{role:"dialog","aria-label":"AI Grid Assistant",style:{position:"fixed",bottom:90,right:24,width:360,maxWidth:"calc(100vw - 48px)",height:480,maxHeight:"70vh",background:b.bg,border:`1px solid ${b.border}`,borderRadius:16,boxShadow:"0 20px 40px rgba(0,0,0,0.15)",zIndex:9997,display:"flex",flexDirection:"column",overflow:"hidden",fontFamily:"system-ui, sans-serif"},children:[ue("div",{style:{padding:"14px 16px",background:b.accent,color:"#FFFFFF",display:"flex",alignItems:"center",gap:10},children:[J("span",{style:{fontSize:22},children:"\u{1F916}"}),ue("div",{style:{flex:1},children:[J("div",{style:{fontWeight:700,fontSize:15},children:"Grid AI Assistant"}),J("div",{style:{fontSize:11,opacity:.9},children:B?"Voice + Chat \xB7 Offline \xB7 Free":"Chat only (voice not supported)"})]}),J("button",{type:"button",onClick:()=>s(!1),"aria-label":"Close",style:{background:"transparent",border:"none",color:"#FFFFFF",cursor:"pointer",fontSize:20,padding:4},children:"\u2715"})]}),ue("div",{style:{flex:1,overflowY:"auto",padding:12,display:"flex",flexDirection:"column",gap:8},children:[m.map((y,P)=>ue("div",{style:{alignSelf:y.role==="user"?"flex-end":"flex-start",maxWidth:"85%",padding:"8px 12px",borderRadius:12,background:y.role==="user"?b.userMsg:b.aiMsg,color:b.text,fontSize:13.5,lineHeight:1.5},children:[J("div",{children:y.text}),J("div",{style:{fontSize:10,opacity:.6,marginTop:4,textAlign:"right"},children:y.time})]},P)),F&&J("div",{style:{alignSelf:"flex-end",padding:"8px 12px",borderRadius:12,background:"#FEE2E2",color:"#991B1B",fontSize:13.5,fontStyle:"italic"},children:"\u{1F3A4} Listening..."}),J("div",{ref:H})]}),J("div",{style:{padding:"6px 12px",borderTop:`1px solid ${b.border}`,display:"flex",gap:6,overflowX:"auto",flexShrink:0},children:S.map(y=>J("button",{type:"button",onClick:()=>M(y),style:{padding:"4px 10px",borderRadius:12,background:b.surface,border:`1px solid ${b.border}`,color:b.text,fontSize:11.5,cursor:"pointer",whiteSpace:"nowrap"},children:y},y))}),ue("div",{style:{padding:10,display:"flex",gap:6,borderTop:`1px solid ${b.border}`,background:b.surface},children:[J("input",{type:"text",value:p,onChange:y=>l(y.target.value),onKeyDown:y=>{y.key==="Enter"&&w()},placeholder:"Ask or say a command...","aria-label":"Chat input",style:{flex:1,padding:"8px 12px",border:`1px solid ${b.border}`,borderRadius:8,background:b.bg,color:b.text,fontSize:13,outline:"none"}}),B&&J("button",{type:"button",onClick:F?j:h,"aria-label":F?"Stop listening":"Start voice input",style:{width:36,height:36,borderRadius:8,background:F?"#EF4444":b.accent,color:"#FFFFFF",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:16,flexShrink:0},children:"\u{1F3A4}"}),J("button",{type:"button",onClick:w,"aria-label":"Send",disabled:!p.trim(),style:{padding:"0 14px",background:p.trim()?b.accent:b.muted,color:"#FFFFFF",border:"none",borderRadius:8,cursor:p.trim()?"pointer":"not-allowed",fontSize:13,fontWeight:600,flexShrink:0},children:"Send"})]})]}),J("style",{children:`
386
- @keyframes yuktai-pulse {
385
+ `,document.body.appendChild(e),Vt=e}function to(e){let t={critical:20,serious:10,moderate:5,minor:2},o=e.details.reduce((n,i)=>n+(t[i.severity]||0),0);return Math.max(0,Math.min(100,100-o))}var ae={name:"yuktai-a11y",version:"4.0.0",observer:null,async execute(e){if(!e.enabled)return this.stopObserver(),"yuktai: disabled.";Se=e,Qo(e),Xo(),Jo(),jo(),Yo(),e.showSkipLinks!==!1&&_o(),e.showPreferencePanel,Zo(e);let t=this.applyFixes(e);t.score=to(t),e.showAuditBadge&&Uo(t),e.timeoutWarning&&no(e.timeoutWarning),e.autoFix&&this.startObserver(e),e.plainEnglish&&await Zt(!0),e.summarisePage&&await Qt(!0),e.translateLanguage&&e.translateLanguage!=="en"&&await Xt(e.translateLanguage),e.voiceControl&&await Jt(!0),e.smartLabels&&await eo(!0);let o=`${t.fixed} fixes applied. Score: ${t.score}/100.`;return G(o,t.score>=90?"success":"info",!1),`yuktai v4.0.0: ${o} Scanned ${t.scanned} elements in ${t.renderTime}ms.`},applyFixes(e){let t={fixed:0,scanned:0,renderTime:0,score:100,details:[]};if(typeof document>"u")return t;let o=performance.now(),n=document.querySelectorAll("*");t.scanned=n.length;let i=(a,r,l,u)=>{t.details.push({tag:a,fix:r,severity:l,element:u.outerHTML.slice(0,100)}),t.fixed++};return n.forEach(a=>{let r=a,l=r.tagName.toLowerCase();if(l==="html"&&!r.getAttribute("lang")&&(r.setAttribute("lang","en"),i(l,'lang="en" added',"critical",r)),l==="meta"){let f=r.getAttribute("name"),h=r.getAttribute("content")||"";f==="viewport"&&h.includes("user-scalable=no")&&(r.setAttribute("content",h.replace("user-scalable=no","user-scalable=yes")),i(l,"user-scalable=yes restored","serious",r)),f==="viewport"&&/maximum-scale=1(?:[^0-9]|$)/.test(h)&&(r.setAttribute("content",h.replace(/maximum-scale=1(?=[^0-9]|$)/,"maximum-scale=5")),i(l,"maximum-scale=5 restored","serious",r))}if(l==="main"&&!r.getAttribute("tabindex")&&(r.setAttribute("tabindex","-1"),r.getAttribute("id")||r.setAttribute("id","main-content")),l==="img"&&(r.hasAttribute("alt")||(r.setAttribute("alt",""),r.setAttribute("aria-hidden","true"),i(l,'alt="" aria-hidden="true"',"serious",r))),l==="svg"&&(!r.getAttribute("aria-hidden")&&!r.getAttribute("aria-label")&&!a.querySelector("title")&&(r.setAttribute("aria-hidden","true"),i(l,'aria-hidden="true" (decorative svg)',"minor",r)),r.getAttribute("focusable")||r.setAttribute("focusable","false")),l==="iframe"&&!r.getAttribute("title")&&!r.getAttribute("aria-label")&&(r.setAttribute("title","embedded content"),r.setAttribute("aria-label","embedded content"),i(l,"title + aria-label added","serious",r)),l==="button"){if(!r.innerText?.trim()&&!r.getAttribute("aria-label")){let f=r.getAttribute("title")||"button";r.setAttribute("aria-label",f),i(l,`aria-label="${f}" (empty button)`,"critical",r)}r.hasAttribute("disabled")&&!r.getAttribute("aria-disabled")&&(r.setAttribute("aria-disabled","true"),t.fixed++)}if(l==="a"){let f=r;!r.innerText?.trim()&&!r.getAttribute("aria-label")&&(r.setAttribute("aria-label",r.getAttribute("title")||"link"),i(l,"aria-label added (empty link)","critical",r)),f.target==="_blank"&&!f.rel?.includes("noopener")&&(f.rel="noopener noreferrer",t.fixed++)}if(Kt.has(l)){let f=r;if(!r.getAttribute("aria-label")&&!r.getAttribute("aria-labelledby")){let h=r.getAttribute("placeholder")||r.getAttribute("name")||l;r.setAttribute("aria-label",h),i(l,`aria-label="${h}"`,"serious",r)}if(r.hasAttribute("required")&&!r.getAttribute("aria-required")&&(r.setAttribute("aria-required","true"),t.fixed++),l==="input"&&!f.autocomplete){let h=f.name||"";f.type==="email"||h.includes("email")?f.autocomplete="email":f.type==="tel"||h.includes("tel")?f.autocomplete="tel":f.type==="password"&&(f.autocomplete="current-password"),t.fixed++}}l==="th"&&!r.getAttribute("scope")&&(r.setAttribute("scope",r.closest("thead")?"col":"row"),i(l,"scope added to <th>","moderate",r)),pt[l]&&!r.getAttribute("role")&&(r.setAttribute("role",pt[l]),i(l,`role="${pt[l]}"`,"minor",r));let u=r.getAttribute("role")||"";u==="tab"&&!r.getAttribute("aria-selected")&&(r.setAttribute("aria-selected","false"),t.fixed++),["alert","status","log"].includes(u)&&!r.getAttribute("aria-live")&&(r.setAttribute("aria-live",u==="alert"?"assertive":"polite"),i(l,`aria-live added on role=${u}`,"moderate",r)),u==="combobox"&&!r.getAttribute("aria-expanded")&&(r.setAttribute("aria-expanded","false"),i(l,'aria-expanded="false" on combobox',"serious",r)),(u==="checkbox"||u==="radio")&&!r.getAttribute("aria-checked")&&(r.setAttribute("aria-checked","false"),i(l,`aria-checked="false" on role=${u}`,"serious",r))}),t.renderTime=parseFloat((performance.now()-o).toFixed(2)),t},scan(){let e={fixed:0,scanned:0,renderTime:0,score:100,details:[]};if(typeof document>"u")return e;let t=performance.now(),o=document.querySelectorAll("*");e.scanned=o.length;let n=(i,a,r,l)=>e.details.push({tag:i,fix:a,severity:r,element:l.outerHTML.slice(0,100)});return o.forEach(i=>{let a=i,r=a.tagName.toLowerCase();(r==="a"||r==="button")&&!a.innerText?.trim()&&!a.getAttribute("aria-label")&&n(r,"needs aria-label (empty)","critical",a),r==="img"&&!a.hasAttribute("alt")&&n(r,"needs alt text","serious",a),Kt.has(r)&&!a.getAttribute("aria-label")&&!a.getAttribute("aria-labelledby")&&n(r,"needs aria-label","serious",a),r==="iframe"&&!a.getAttribute("title")&&!a.getAttribute("aria-label")&&n(r,"iframe needs title","serious",a)}),e.fixed=e.details.length,e.score=to(e),e.renderTime=parseFloat((performance.now()-t).toFixed(2)),e},startObserver(e){this.observer||typeof document>"u"||(this.observer=new MutationObserver(()=>this.applyFixes(e)),this.observer.observe(document.body,{childList:!0,subtree:!0,attributes:!1}))},stopObserver(){this.observer?.disconnect(),this.observer=null},announce:G,speak:ft,showVisualAlert:oo,trapFocus:Ke,handlePlainEnglish:Zt,handleSummarisePage:Qt,handleTranslate:Xt,handleVoiceControl:Jt,handleSmartLabels:eo,SUPPORTED_LANGUAGES:_e};import vn,{useEffect as Ce,useState as U,useCallback as Re}from"react";import{forwardRef as en,useEffect as Ze,useState as me}from"react";import{jsx as c,jsxs as L}from"react/jsx-runtime";var gt={highContrast:!1,reduceMotion:!1,autoFix:!0,dyslexiaFont:!1,fontScale:100,localFont:"",darkMode:!1,largeTargets:!1,speechEnabled:!1,colorBlindMode:"none",showAuditBadge:!1,timeoutWarning:void 0,plainEnglish:!1,summarisePage:!1,translateLanguage:"en",voiceControl:!1,smartLabels:!1},Ae=[80,90,100,110,120,130],tn=[{value:"none",label:"None"},{value:"deuteranopia",label:"Deuteranopia"},{value:"protanopia",label:"Protanopia"},{value:"tritanopia",label:"Tritanopia"},{value:"achromatopsia",label:"Greyscale"}],on=["Prompt API for Gemini Nano","Summarization API for Gemini Nano","Writer API for Gemini Nano","Rewriter API for Gemini Nano","Translation API"];function nn(){let[e,t]=me(typeof window<"u"?window.innerWidth:1024);return Ze(()=>{let o=()=>t(window.innerWidth);return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[]),{isMobile:e<=480,isTablet:e>480&&e<=768}}function rn({checked:e,onChange:t,label:o,disabled:n=!1}){return L("label",{"aria-label":o,style:{position:"relative",display:"inline-flex",width:"40px",height:"24px",cursor:n?"not-allowed":"pointer",flexShrink:0,opacity:n?.4:1},children:[c("input",{type:"checkbox",checked:e,disabled:n,onChange:i=>t(i.target.checked),style:{opacity:0,width:0,height:0,position:"absolute"}}),c("span",{style:{position:"absolute",inset:0,borderRadius:"99px",background:e?"#0d9488":"#cbd5e1",transition:"background 0.2s"}}),c("span",{style:{position:"absolute",top:"3px",left:e?"19px":"3px",width:"18px",height:"18px",background:"#fff",borderRadius:"50%",transition:"left 0.2s",boxShadow:"0 1px 3px rgba(0,0,0,0.2)",pointerEvents:"none"}})]})}function Te({label:e,color:t="#64748b",badge:o,concept:n}){return L("div",{style:{margin:"10px 18px 4px"},children:[L("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[c("p",{style:{margin:0,fontSize:"10px",fontWeight:600,color:t,letterSpacing:"0.06em",textTransform:"uppercase"},children:e}),o&&c("span",{style:{fontSize:"9px",fontWeight:500,padding:"1px 7px",borderRadius:"99px",background:"#f5f3ff",color:"#7c3aed",border:"0.5px solid #c4b5fd",whiteSpace:"nowrap"},children:o})]}),n&&c("p",{style:{margin:"2px 0 0",fontSize:"9px",color:"#94a3b8",fontStyle:"italic"},children:n})]})}function de({icon:e,label:t,desc:o,checked:n,onChange:i,disabled:a=!1,disabledReason:r,tip:l}){return L("div",{title:a?r:l,style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 18px",gap:"12px"},children:[L("div",{style:{display:"flex",alignItems:"center",gap:"10px",flex:1,minWidth:0},children:[c("span",{"aria-hidden":"true",style:{width:"32px",height:"32px",borderRadius:"8px",background:a?"#f1f5f9":"#f0fdfa",color:a?"#94a3b8":"#0d9488",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"15px",flexShrink:0,fontWeight:700},children:e}),L("div",{style:{minWidth:0},children:[c("p",{style:{margin:0,fontSize:"13px",fontWeight:500,color:a?"#94a3b8":"#0f172a",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:t}),c("p",{style:{margin:0,fontSize:"10px",color:"#94a3b8"},children:a?r:o})]})]}),c(rn,{checked:n,onChange:i,label:`Toggle ${t}`,disabled:a})]})}function te(){return c("div",{style:{height:"1px",background:"#f1f5f9"}})}function Me({steps:e}){return L("div",{style:{margin:"0 18px 8px",padding:"8px 10px",background:"#f8fafc",borderRadius:"8px",border:"0.5px solid #e2e8f0"},children:[c("p",{style:{margin:"0 0 4px",fontSize:"9px",fontWeight:600,color:"#64748b",textTransform:"uppercase",letterSpacing:"0.05em"},children:"How to use"}),e.map((t,o)=>L("p",{style:{margin:"0 0 2px",fontSize:"10px",color:"#475569"},children:[o+1,". ",t]},o))]})}var mt=en(({position:e,settings:t,report:o,isActive:n,aiSupported:i,voiceSupported:a,set:r,onApply:l,onReset:u,onClose:f},h)=>{let{isMobile:x,isTablet:P}=nn(),[V,K]=me([]),[N,A]=me(""),[F,m]=me(""),[w,E]=me(!1),[b,g]=me(null),[v,I]=me("idle");Ze(()=>{let d=window;!!(d.LanguageModel||d.ai?.languageModel)&&i?g("gemini"):De()&&g("transformers")},[i]),Ze(()=>{if(b!=="transformers")return;let d=setInterval(()=>{I(He())},500);return()=>clearInterval(d)},[b]);let B=async()=>{if(!(!N.trim()||w)){if(!b){m("\u26A0\uFE0F No AI engine available on this device.");return}E(!0),m("");try{let d;b==="gemini"?d=await Pt(N):(I("loading"),d=await zt(N),I("ready")),m(d.success&&d.answer?d.answer.replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/#+\s/g,"").trim():"\u26A0\uFE0F "+(d.error||"No answer found on this page"))}catch{m("\u26A0\uFE0F Failed to get answer. Please try again.")}E(!1)}};Ze(()=>{(async()=>{try{let H=window;if(!H.queryLocalFonts)return;let O=await H.queryLocalFonts(),q=[...new Set(O.map(D=>D.family))].sort();K(q.slice(0,50))}catch{}})()},[]);let R=b==="gemini"?"Gemini Nano":b==="transformers"?"Transformers.js \xB7 All devices":"Detecting...",ne=b==="transformers"&&v==="loading"?"Loading AI model... (first time only)":"...",z=x?{position:"fixed",bottom:0,left:0,right:0,zIndex:9999,background:"#fff",border:"1px solid #e2e8f0",borderRadius:"16px 16px 0 0",boxShadow:"0 -8px 32px rgba(0,0,0,0.12)",maxHeight:"90vh",overflowY:"auto",fontFamily:"system-ui,-apple-system,sans-serif",width:"100%"}:{position:"fixed",bottom:"84px",[e]:"24px",zIndex:9999,width:P?"300px":"320px",maxWidth:"calc(100vw - 48px)",background:"#fff",border:"1px solid #e2e8f0",borderRadius:"16px",boxShadow:"0 8px 32px rgba(0,0,0,0.12)",maxHeight:"80vh",overflowY:"auto",fontFamily:"system-ui,-apple-system,sans-serif"};return L("div",{ref:h,role:"dialog","aria-modal":"true","aria-label":"yuktai accessibility preferences","data-yuktai-panel":"true",style:z,children:[L("div",{style:{padding:"14px 18px 12px",borderBottom:"1px solid #f1f5f9",display:"flex",alignItems:"flex-start",justifyContent:"space-between",position:"sticky",top:0,background:"#fff",zIndex:1},children:[L("div",{children:[L("div",{style:{display:"flex",alignItems:"center",gap:"7px",marginBottom:"4px",flexWrap:"wrap"},children:[c("span",{style:{fontSize:"10px",fontWeight:700,padding:"2px 7px",borderRadius:"99px",background:"#f0fdfa",color:"#0d9488",letterSpacing:"0.05em",fontFamily:"monospace"},children:"@yuktishaalaa/yuktai"}),n&&c("span",{style:{fontSize:"10px",fontWeight:700,padding:"2px 7px",borderRadius:"99px",background:"#f0fdfa",color:"#0f766e",border:"1px solid #99f6e4"},children:"\u25CF ACTIVE"})]}),c("p",{style:{margin:"0 0 1px",fontSize:"15px",fontWeight:600,color:"#0f172a"},children:"Accessibility"}),c("p",{style:{margin:0,fontSize:"11px",color:"#64748b"},children:"WCAG 2.2 \xB7 Open source \xB7 Zero cost \xB7 All devices"})]}),c("button",{onClick:f,"aria-label":"Close accessibility panel",style:{background:"none",border:"none",cursor:"pointer",padding:"4px",color:"#94a3b8",fontSize:"20px",lineHeight:1,borderRadius:"6px",flexShrink:0,minWidth:x?"44px":"auto",minHeight:x?"44px":"auto",display:"flex",alignItems:"center",justifyContent:"center"},children:"\xD7"})]}),c(Te,{label:"\u267F Core Accessibility",concept:"Rule-based engine \u2014 works on all browsers and devices"}),c(Me,{steps:["Toggle any feature on","Click Apply settings","Preferences saved automatically"]}),c(de,{icon:"\u{1F527}",label:"Auto-fix ARIA",desc:"Injects missing labels and roles automatically",checked:t.autoFix,onChange:d=>r("autoFix",d),tip:"Fixes aria-label, alt text, roles on every element"}),c(te,{}),c(de,{icon:"\u{1F50A}",label:"Speak on focus",desc:"Browser reads elements aloud as you tab",checked:t.speechEnabled,onChange:d=>r("speechEnabled",d),tip:"Uses browser SpeechSynthesis \u2014 no install needed"}),c(te,{}),c(de,{icon:"\u{1F399}\uFE0F",label:"Voice control",desc:"Say commands to navigate the page",checked:t.voiceControl,onChange:d=>r("voiceControl",d),disabled:!a,disabledReason:"Not supported in this browser",tip:'Say "scroll down", "go to main", "click"'}),c(te,{}),c(Te,{label:"\u{1F916} AI Features",color:"#7c3aed",badge:"Gemini Nano",concept:"Large Language Model running privately on your device \u2014 Chrome 127+ only"}),c("div",{style:{margin:"4px 18px 6px",padding:"8px 10px",background:i?"#f0fdfa":"#f5f3ff",borderRadius:"8px",border:`0.5px solid ${i?"#99f6e4":"#c4b5fd"}`,fontSize:"10px",color:i?"#0f766e":"#7c3aed",lineHeight:1.5},children:i?"\u2705 Gemini Nano detected \u2014 AI features ready. Runs privately on your device.":"\u2699\uFE0F AI features need one-time setup \u2014 see guide below."}),!i&&L("div",{style:{margin:"0 18px 8px",padding:"10px 12px",background:"#fafafa",borderRadius:"8px",border:"0.5px solid #e2e8f0",fontSize:"11px",color:"#475569",lineHeight:1.7},children:[c("p",{style:{margin:"0 0 6px",fontWeight:600,color:"#0f172a",fontSize:"11px"},children:"\u{1F6E0} One-time setup \u2014 5 steps:"}),L("p",{style:{margin:"0 0 3px"},children:["1. Open Chrome \u2192 ",c("code",{style:{background:"#f1f5f9",padding:"1px 5px",borderRadius:"4px",fontSize:"10px",color:"#0d9488",fontFamily:"monospace"},children:"chrome://flags"})]}),c("p",{style:{margin:"0 0 3px"},children:"2. Enable each flag:"}),c("div",{style:{display:"flex",flexDirection:"column",gap:"2px",margin:"4px 0 6px 10px"},children:on.map(d=>L("span",{style:{fontSize:"10px",color:"#7c3aed",fontFamily:"monospace"},children:["\u2192 ",d]},d))}),L("p",{style:{margin:"0 0 3px"},children:["3. Click ",c("strong",{style:{color:"#0f172a"},children:"Relaunch"})]}),L("p",{style:{margin:"0 0 3px"},children:["4. ",c("code",{style:{background:"#f1f5f9",padding:"1px 5px",borderRadius:"4px",fontSize:"10px",color:"#0d9488",fontFamily:"monospace"},children:"chrome://components"})," \u2192 Optimization Guide On Device Model \u2192 Check for update"]}),c("p",{style:{margin:"0"},children:"5. Refresh \u2014 AI features unlock automatically \u2705"})]}),c(de,{icon:"\u{1F4DD}",label:"Plain English mode",desc:"Rewrites complex text in simple language",checked:t.plainEnglish,onChange:d=>r("plainEnglish",d),disabled:!i,disabledReason:"Enable Gemini Nano \u2014 see setup above",tip:"AI concept: LLM text rewriting"}),c(te,{}),c(de,{icon:"\u{1F4CB}",label:"Summarise page",desc:"3-sentence summary appears at top",checked:t.summarisePage,onChange:d=>r("summarisePage",d),disabled:!i,disabledReason:"Enable Gemini Nano \u2014 see setup above",tip:"AI concept: Abstractive summarisation"}),c(te,{}),c(de,{icon:"\u{1F3F7}\uFE0F",label:"Smart aria-labels",desc:"AI generates meaningful labels for elements",checked:t.smartLabels,onChange:d=>r("smartLabels",d),disabled:!i,disabledReason:"Enable Gemini Nano \u2014 see setup above",tip:"AI concept: Context-aware label generation"}),c(te,{}),c(Te,{label:"\u{1F441}\uFE0F Visual",concept:"CSS filter-based \u2014 works on all browsers and devices"}),c(Me,{steps:["Toggle any visual mode","Changes apply instantly","Works on mobile and desktop"]}),c(de,{icon:"\u25D1",label:"High contrast",desc:"Boosts contrast for low vision users",checked:t.highContrast,onChange:d=>r("highContrast",d),tip:"CSS filter: contrast()"}),c(te,{}),c(de,{icon:"\u{1F319}",label:"Dark mode",desc:"Inverts colours \u2014 easy on eyes at night",checked:t.darkMode,onChange:d=>r("darkMode",d),tip:"CSS filter: invert + hue-rotate"}),c(te,{}),c(de,{icon:"\u23F8\uFE0F",label:"Reduce motion",desc:"Disables all animations",checked:t.reduceMotion,onChange:d=>r("reduceMotion",d),tip:"WCAG 2.3.3 \u2014 vestibular disorders"}),c(te,{}),c(de,{icon:"\u{1F446}",label:"Large targets",desc:"44\xD744px minimum touch targets",checked:t.largeTargets,onChange:d=>r("largeTargets",d),tip:"WCAG 2.5.8 \u2014 motor impaired users"}),c(te,{}),L("div",{style:{padding:"10px 18px"},children:[c("p",{style:{margin:"0 0 2px",fontSize:"12px",fontWeight:500,color:"#0f172a"},children:"\u{1F3A8} Colour blindness"}),c("p",{style:{margin:"0 0 8px",fontSize:"10px",color:"#94a3b8"},children:"SVG colour matrix filters \u2014 all devices"}),c("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px"},children:tn.map(d=>c("button",{onClick:()=>r("colorBlindMode",d.value),"aria-pressed":t.colorBlindMode===d.value,style:{padding:"4px 10px",borderRadius:"20px",fontSize:"11px",fontWeight:500,border:`1px solid ${t.colorBlindMode===d.value?"#0d9488":"#e2e8f0"}`,background:t.colorBlindMode===d.value?"#f0fdfa":"#fff",color:t.colorBlindMode===d.value?"#0d9488":"#64748b",cursor:"pointer",minHeight:x?"36px":"auto"},children:d.label},d.value))})]}),c(te,{}),c(Te,{label:"\u{1F524} Font",concept:"Browser Font API + CSS \u2014 Chrome 103+"}),c(Me,{steps:["Toggle dyslexia font or pick from device","Adjust size with + / \u2212","Saved across visits"]}),c(de,{icon:"Aa",label:"Dyslexia-friendly font",desc:"Atkinson Hyperlegible \u2014 research-backed",checked:t.dyslexiaFont,onChange:d=>r("dyslexiaFont",d),tip:"By Braille Institute \u2014 free and open source"}),c(te,{}),L("div",{style:{padding:"10px 18px"},children:[c("p",{style:{margin:"0 0 2px",fontSize:"12px",fontWeight:500,color:"#0f172a"},children:"\u{1F5A5}\uFE0F Local font"}),c("p",{style:{margin:"0 0 8px",fontSize:"10px",color:"#94a3b8"},children:"window.queryLocalFonts() \u2014 Chrome 103+"}),V.length>0?L("select",{value:t.localFont,onChange:d=>r("localFont",d.target.value),"aria-label":"Choose a font from your device",style:{width:"100%",padding:"8px 10px",borderRadius:"8px",border:"1px solid #e2e8f0",fontSize:"13px",color:"#0f172a",background:"#fff",cursor:"pointer",height:x?"44px":"36px"},children:[c("option",{value:"",children:"System default"}),V.map(d=>c("option",{value:d,style:{fontFamily:d},children:d},d))]}):c("p",{style:{margin:0,fontSize:"11px",color:"#94a3b8"},children:"Allow font access when Chrome prompts you."})]}),c(te,{}),L("div",{style:{padding:"10px 18px 14px"},children:[L("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",marginBottom:"10px"},children:[L("div",{children:[c("p",{style:{margin:0,fontSize:"12px",fontWeight:500,color:"#0f172a"},children:"\u{1F4CF} Text size"}),c("p",{style:{margin:0,fontSize:"10px",color:"#94a3b8"},children:"Scales all text on the page"})]}),L("span",{style:{fontSize:"12px",fontWeight:600,color:"#0d9488",background:"#f0fdfa",padding:"2px 8px",borderRadius:"99px"},children:[t.fontScale,"%"]})]}),L("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[c("button",{onClick:()=>{let d=Ae.indexOf(t.fontScale);d>0&&r("fontScale",Ae[d-1])},disabled:t.fontScale<=80,"aria-label":"Decrease text size",style:{width:x?"44px":"30px",height:x?"44px":"30px",borderRadius:"8px",border:"1px solid #e2e8f0",background:"#fff",cursor:t.fontScale<=80?"not-allowed":"pointer",fontSize:"16px",color:t.fontScale<=80?"#cbd5e1":"#0f172a",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:"\u2212"}),c("div",{style:{flex:1,display:"flex",gap:"3px"},children:Ae.map(d=>c("button",{onClick:()=>r("fontScale",d),"aria-label":`Set text size to ${d}%`,style:{flex:1,height:"6px",borderRadius:"99px",border:"none",cursor:"pointer",padding:0,background:d<=t.fontScale?"#0d9488":"#e2e8f0",transition:"background 0.15s"}},d))}),c("button",{onClick:()=>{let d=Ae.indexOf(t.fontScale);d<Ae.length-1&&r("fontScale",Ae[d+1])},disabled:t.fontScale>=130,"aria-label":"Increase text size",style:{width:x?"44px":"30px",height:x?"44px":"30px",borderRadius:"8px",border:"1px solid #e2e8f0",background:"#fff",cursor:t.fontScale>=130?"not-allowed":"pointer",fontSize:"16px",color:t.fontScale>=130?"#cbd5e1":"#0f172a",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0},children:"+"})]})]}),c(te,{}),c(Te,{label:"\u{1F310} Translate",color:"#7c3aed",badge:"Gemini Nano",concept:"Chrome Translation API \u2014 on device, no internet after setup"}),c(Me,{steps:["Enable Gemini Nano first","Pick your language","Full page translates instantly"]}),L("div",{style:{padding:"6px 18px 12px"},children:[c("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px"},children:_e.slice(0,x?8:18).map(d=>c("button",{onClick:()=>r("translateLanguage",d.code),"aria-pressed":t.translateLanguage===d.code,disabled:!i,style:{padding:"4px 10px",borderRadius:"20px",fontSize:"11px",fontWeight:500,border:`1px solid ${t.translateLanguage===d.code?"#7c3aed":"#e2e8f0"}`,background:t.translateLanguage===d.code?"#f5f3ff":"#fff",color:t.translateLanguage===d.code?"#7c3aed":"#64748b",cursor:i?"pointer":"not-allowed",opacity:i?1:.5,minHeight:x?"36px":"auto"},children:d.label},d.code))}),!i&&c("p",{style:{margin:"6px 0 0",fontSize:"10px",color:"#94a3b8"},children:"Enable Gemini Nano using the setup guide above."})]}),c(te,{}),c(Te,{label:"\u{1F4AC} Ask This Page",color:"#0d9488",badge:R,concept:"RAG \u2014 Retrieval Augmented Generation. Works on all devices including mobile."}),c(Me,{steps:["Type any question about this page","Press Ask or hit Enter",b==="transformers"?"Transformers.js answers \u2014 works on mobile, offline":"Gemini Nano reads page and answers privately","Zero cost. No data leaves your device."]}),L("div",{style:{margin:"0 18px 8px",padding:"6px 10px",background:b==="gemini"?"#f0fdfa":b==="transformers"?"#f5f3ff":"#f8fafc",borderRadius:"8px",border:`0.5px solid ${b==="gemini"?"#99f6e4":b==="transformers"?"#c4b5fd":"#e2e8f0"}`,fontSize:"10px",color:b==="gemini"?"#0f766e":b==="transformers"?"#7c3aed":"#94a3b8"},children:[b==="gemini"&&"\u2705 Using Gemini Nano \u2014 on device, private, instant",b==="transformers"&&"\u2705 Using Transformers.js \u2014 works on mobile and all browsers",!b&&"\u23F3 Detecting AI engine...",b==="transformers"&&v==="loading"&&" \xB7 Loading model...",b==="transformers"&&v==="ready"&&" \xB7 Model ready \u2705"]}),L("div",{style:{padding:"0 18px 14px"},children:[L("div",{style:{display:"flex",gap:"6px",marginBottom:"8px"},children:[c("input",{type:"text",value:N,onChange:d=>A(d.target.value),onKeyDown:d=>{d.key==="Enter"&&B()},placeholder:"e.g. What does this page do?",disabled:w||!b,"aria-label":"Ask a question about this page",style:{flex:1,padding:"8px 10px",borderRadius:"8px",border:"1px solid #e2e8f0",fontSize:"12px",color:"#0f172a",background:b?"#fff":"#f8fafc",outline:"none",height:x?"44px":"36px"}}),c("button",{onClick:B,disabled:w||!N.trim()||!b,"aria-label":"Ask question",style:{padding:"8px 14px",borderRadius:"8px",border:"none",background:b&&N.trim()&&!w?"#0d9488":"#e2e8f0",color:b&&N.trim()&&!w?"#fff":"#94a3b8",fontSize:"12px",fontWeight:600,cursor:b&&N.trim()&&!w?"pointer":"not-allowed",flexShrink:0,height:x?"44px":"36px",minWidth:"52px",transition:"background 0.2s"},children:w?ne:"Ask"})]}),F&&L("div",{role:"status","aria-live":"polite",style:{padding:"10px 12px",background:"#f0fdfa",border:"1px solid #99f6e4",borderRadius:"8px",fontSize:"12px",color:"#0f766e",lineHeight:1.6,maxHeight:"180px",overflowY:"auto"},children:[c("strong",{style:{display:"block",marginBottom:"4px",fontSize:"11px",color:"#0d9488"},children:"\u{1F4AC} Answer"}),F,c("button",{onClick:()=>{m(""),A("")},style:{display:"block",marginTop:"6px",background:"none",border:"none",color:"#94a3b8",fontSize:"10px",cursor:"pointer",padding:0},children:"Clear"})]})]}),o&&c("div",{role:"status",style:{margin:"0 14px 10px",padding:"8px 12px",background:"#f0fdfa",border:"1px solid #99f6e4",borderRadius:"8px",fontSize:"12px",color:"#0f766e",fontWeight:500,fontFamily:"monospace"},children:o.fixed>0?`\u2713 ${o.fixed} fixes \xB7 ${o.scanned} nodes \xB7 ${o.renderTime}ms \xB7 Score: ${o.score}/100`:`\u2713 0 auto-fixes needed \xB7 ${o.scanned} nodes \xB7 ${o.renderTime}ms`}),L("div",{style:{display:"flex",gap:"8px",padding:"12px 14px 14px",position:x?"sticky":"relative",bottom:x?0:"auto",background:"#fff",borderTop:"1px solid #f1f5f9"},children:[c("button",{onClick:u,style:{flex:1,padding:x?"12px 0":"8px 0",fontSize:"13px",fontWeight:500,borderRadius:"9px",border:"1px solid #e2e8f0",background:"#fff",color:"#64748b",cursor:"pointer"},children:"Reset"}),c("button",{onClick:l,style:{flex:2,padding:x?"12px 0":"8px 0",fontSize:"13px",fontWeight:600,borderRadius:"9px",border:"none",background:"#0d9488",color:"#fff",cursor:"pointer"},children:"Apply settings"})]})]})});mt.displayName="WidgetPanel";import{useState as We,useCallback as io}from"react";var an={hotel:["hotel","resort","motel","inn","accommodation","lodge","stay","room","booking","hospitality"],ecommerce:["shop","store","ecommerce","e-commerce","sell","product","cart","buy","marketplace","retail"],restaurant:["restaurant","food","cafe","cafeteria","menu","dining","eat","cuisine","bistro","takeaway","delivery"],portfolio:["portfolio","freelance","personal","designer","developer","creative","showcase","work","hire me"],blog:["blog","article","post","write","news","magazine","journal","content"],saas:["saas","dashboard","app","software","platform","tool","analytics","admin","manage","crm"],government:["government","govt","portal","citizen","scheme","welfare","municipal","public","official"],healthcare:["hospital","clinic","doctor","health","medical","patient","appointment","pharmacy"],education:["school","college","university","course","learn","education","student","lms","training"],realestate:["real estate","property","house","flat","apartment","rent","buy property","listing"],landing:["landing","startup","launch","product launch","coming soon","waitlist"],generic:[]},sn={hotel:["home","rooms","booking","about","contact"],ecommerce:["home","products","cart","checkout","about","contact"],restaurant:["home","menu","reservations","about","contact"],portfolio:["home","portfolio","about","contact"],blog:["home","blog","about","contact"],saas:["home","pricing","dashboard","auth","about","contact"],government:["home","services","about","contact","faq"],healthcare:["home","services","booking","team","about","contact"],education:["home","services","pricing","about","contact"],realestate:["home","products","about","contact"],landing:["home","pricing","about","contact"],generic:["home","about","services","contact"]},ln={home:["home","homepage","main","landing"],about:["about","who we are","our story","company"],contact:["contact","reach us","get in touch","location"],services:["service","what we offer","solution","offering"],pricing:["pricing","price","plan","subscription","cost","fee"],blog:["blog","article","news","post"],auth:["login","register","signup","sign up","sign in","auth","account"],dashboard:["dashboard","admin","panel","manage","analytics"],gallery:["gallery","photo","image","portfolio"],products:["product","shop","store","item","catalogue"],cart:["cart","basket","shopping cart"],checkout:["checkout","payment","pay","order"],rooms:["room","suite","accommodation","stay"],booking:["booking","reserve","reservation","schedule","appointment"],menu:["menu","food","dish","cuisine"],reservations:["reservation","table booking","book table"],portfolio:["portfolio","work","project","case study"],team:["team","staff","member","people","who we are"],faq:["faq","question","answer","help","support"],terms:["terms","condition","legal"],privacy:["privacy","policy","gdpr","data"]},dn={Authentication:["login","register","auth","signup","sign in","account"],Payment:["payment","stripe","pay","checkout","billing"],Search:["search","filter","find"],"Dark mode":["dark mode","dark theme","night mode"],"Multi-language":["multilingual","multi language","translation","i18n"],SEO:["seo","search engine","meta","google"],Analytics:["analytics","tracking","stats","dashboard"],Email:["email","newsletter","contact form","notification"],Map:["map","location","address","google maps"],"Social media":["social","instagram","facebook","twitter","share"],"Image gallery":["gallery","photo","image","carousel"],"Booking system":["booking","reservation","appointment","schedule"],"Shopping cart":["cart","basket","shop","ecommerce"],"Blog/CMS":["blog","cms","content","article","post"]},cn={blue:["blue","navy","sky","ocean","corporate"],green:["green","nature","eco","environment","health","fresh"],purple:["purple","violet","luxury","creative","royal"],red:["red","bold","energy","passion","food"],orange:["orange","warm","friendly","fun"],teal:["teal","turquoise","modern","tech"],indigo:["indigo","professional","trust","finance","bank"],gray:["gray","minimal","clean","simple","neutral"]},un={hotel:"indigo",ecommerce:"blue",restaurant:"red",portfolio:"purple",blog:"gray",saas:"teal",government:"blue",healthcare:"green",education:"indigo",realestate:"orange",landing:"purple",generic:"blue"};function pn(e){let t=[/(?:for|called|named|company|business|brand)\s+["']?([A-Z][a-zA-Z\s]{1,30})["']?/i,/["']([A-Z][a-zA-Z\s]{1,30})["']/,/^([A-Z][a-zA-Z]+(?:\s[A-Z][a-zA-Z]+)?)/m];for(let o of t){let n=e.match(o);if(n?.[1]){let i=n[1].trim();if(i.length>2&&i.length<40)return i}}return"My Business"}function fn(e){let t=e.toLowerCase(),o="generic",n=0;for(let[i,a]of Object.entries(an)){let r=0;for(let l of a)t.includes(l)&&r++;r>n&&(n=r,o=i)}return o}function gn(e,t){let o=e.toLowerCase(),n=new Set(sn[t]);for(let[i,a]of Object.entries(ln))for(let r of a)if(o.includes(r)){n.add(i);break}return n.add("home"),n.add("contact"),Array.from(n)}function mn(e){let t=e.toLowerCase(),o=[];for(let[n,i]of Object.entries(dn))for(let a of i)if(t.includes(a)){o.push(n);break}return o}function bn(e,t){let o=e.toLowerCase();for(let[n,i]of Object.entries(cn))for(let a of i)if(o.includes(a))return n;return un[t]}function ro(e){let t=fn(e),o=gn(e,t),n=mn(e),i=bn(e,t);return{siteName:pn(e),websiteType:t,pages:o,features:n,theme:i,description:e.slice(0,200)}}import{Fragment as wn,jsx as T,jsxs as _}from"react/jsx-runtime";var yn=["Hotel booking website for Grand Palace Hotels with rooms, booking and payment","E-commerce store for organic food products with cart and checkout","Restaurant website for Spice Garden with menu and table reservations","Portfolio website for a freelance designer with gallery and contact","SaaS dashboard for project management with pricing and auth","Government portal for citizen services with FAQ and contact"],hn={home:"\u{1F3E0}",about:"\u2139\uFE0F",contact:"\u{1F4EC}",services:"\u2699\uFE0F",pricing:"\u{1F4B0}",blog:"\u{1F4DD}",auth:"\u{1F510}",dashboard:"\u{1F4CA}",gallery:"\u{1F5BC}\uFE0F",products:"\u{1F6D2}",cart:"\u{1F6CD}\uFE0F",checkout:"\u{1F4B3}",rooms:"\u{1F6CF}\uFE0F",booking:"\u{1F4C5}",menu:"\u{1F37D}\uFE0F",reservations:"\u{1FA91}",portfolio:"\u{1F4BC}",team:"\u{1F465}",faq:"\u2753",terms:"\u{1F4C4}",privacy:"\u{1F512}"},xn={hotel:"\u{1F3E8}",ecommerce:"\u{1F6D2}",restaurant:"\u{1F37D}\uFE0F",portfolio:"\u{1F4BC}",blog:"\u{1F4DD}",saas:"\u26A1",government:"\u{1F3DB}\uFE0F",healthcare:"\u{1F3E5}",education:"\u{1F393}",realestate:"\u{1F3E0}",landing:"\u{1F680}",generic:"\u{1F310}"};function bt({position:e,onClose:t}){let[o,n]=We("input"),[i,a]=We(""),[r,l]=We(null),[u,f]=We(0),[h,x]=We(""),P=io(()=>{if(!i.trim())return;let A=ro(i);l(A),n("preview")},[i]),V=io(async()=>{if(r){n("generating"),f(0),x("");try{let A=[{msg:"Parsing requirement...",pct:15},{msg:"Loading templates...",pct:30},{msg:"Generating pages...",pct:55},{msg:"Building components...",pct:70},{msg:"Creating styles...",pct:85},{msg:"Packaging ZIP...",pct:95}];for(let m of A)f(m.pct),await new Promise(w=>setTimeout(w,200));let{generateZip:F}=await import("./zip-generator-D5EXBBNS.mjs");await F(r),f(100),n("done")}catch(A){x(A instanceof Error?A.message:"Generation failed. Please try again."),n("preview")}}},[r]),K=()=>{n("input"),a(""),l(null),f(0),x("")},N={position:"fixed",bottom:"204px",[e]:"24px",zIndex:9999,width:"340px",maxWidth:"calc(100vw - 48px)",background:"#fff",border:"1px solid #e2e8f0",borderRadius:"16px",boxShadow:"0 8px 32px rgba(0,0,0,0.14)",fontFamily:"system-ui,-apple-system,sans-serif",maxHeight:"75vh",overflowY:"auto"};return _("div",{role:"dialog","aria-modal":"true","aria-label":"yuktai Vibe Coder","data-yuktai-panel":"true",style:N,children:[_("div",{style:{padding:"14px 16px 12px",borderBottom:"1px solid #f1f5f9",display:"flex",alignItems:"flex-start",justifyContent:"space-between",position:"sticky",top:0,background:"#fff",zIndex:1},children:[_("div",{children:[T("p",{style:{margin:"0 0 2px",fontSize:"13px",fontWeight:700,color:"#0f172a"},children:"\u26A1 Vibe Coder"}),T("p",{style:{margin:0,fontSize:"10px",color:"#64748b"},children:"Describe your website \u2192 Download Next.js ZIP"})]}),T("button",{onClick:t,"aria-label":"Close vibe coder",style:{background:"none",border:"none",cursor:"pointer",color:"#94a3b8",fontSize:"18px",padding:"2px"},children:"\xD7"})]}),o==="input"&&_("div",{style:{padding:"14px 16px"},children:[T("p",{style:{margin:"0 0 10px",fontSize:"11px",color:"#64748b"},children:"Describe your business website in plain English. The plugin will generate a complete Next.js project for you."}),T("p",{style:{margin:"0 0 6px",fontSize:"10px",fontWeight:600,color:"#94a3b8",textTransform:"uppercase"},children:"Examples"}),T("div",{style:{display:"flex",flexDirection:"column",gap:"4px",marginBottom:"12px"},children:yn.slice(0,3).map(A=>T("button",{onClick:()=>a(A),style:{padding:"6px 10px",borderRadius:"8px",border:"1px solid #e2e8f0",background:"#f8fafc",color:"#475569",fontSize:"10px",cursor:"pointer",textAlign:"left",lineHeight:1.4},children:A},A))}),T("textarea",{value:i,onChange:A=>a(A.target.value),placeholder:"e.g. I need a hotel booking website with rooms, search, and payment for Grand Palace Hotels",rows:4,"aria-label":"Describe your website",style:{width:"100%",padding:"10px",borderRadius:"8px",border:"1px solid #e2e8f0",fontSize:"12px",color:"#0f172a",resize:"vertical",outline:"none",fontFamily:"inherit",lineHeight:1.5}}),T("button",{onClick:P,disabled:!i.trim(),style:{width:"100%",marginTop:"10px",padding:"10px",borderRadius:"8px",border:"none",background:i.trim()?"#f59e0b":"#e2e8f0",color:i.trim()?"#fff":"#94a3b8",fontSize:"13px",fontWeight:700,cursor:i.trim()?"pointer":"not-allowed",transition:"background 0.2s"},children:"Analyse Requirement \u2192"})]}),o==="preview"&&r&&_("div",{style:{padding:"14px 16px"},children:[h&&_("div",{style:{padding:"10px",background:"#fef2f2",border:"1px solid #fca5a5",borderRadius:"8px",marginBottom:"12px",fontSize:"11px",color:"#dc2626"},children:["\u26A0\uFE0F ",h]}),_("div",{style:{background:"#f8fafc",borderRadius:"10px",padding:"12px",marginBottom:"12px"},children:[_("div",{style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"8px"},children:[T("span",{style:{fontSize:"1.5rem"},children:xn[r.websiteType]||"\u{1F310}"}),_("div",{children:[T("p",{style:{margin:0,fontSize:"13px",fontWeight:700,color:"#0f172a"},children:r.siteName}),_("p",{style:{margin:0,fontSize:"10px",color:"#64748b",textTransform:"capitalize"},children:[r.websiteType," website \xB7 ",r.theme," theme"]})]})]}),_("p",{style:{margin:"8px 0 6px",fontSize:"10px",fontWeight:600,color:"#94a3b8",textTransform:"uppercase"},children:["Pages to generate (",r.pages.length,")"]}),T("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px"},children:r.pages.map(A=>_("span",{style:{padding:"2px 8px",borderRadius:"99px",background:"#f0fdf4",border:"1px solid #86efac",fontSize:"10px",color:"#166534",fontWeight:500},children:[hn[A]||"\u{1F4C4}"," ",A]},A))}),r.features.length>0&&_(wn,{children:[T("p",{style:{margin:"10px 0 6px",fontSize:"10px",fontWeight:600,color:"#94a3b8",textTransform:"uppercase"},children:"Detected features"}),T("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px"},children:r.features.map(A=>T("span",{style:{padding:"2px 8px",borderRadius:"99px",background:"#f5f3ff",border:"1px solid #c4b5fd",fontSize:"10px",color:"#7c3aed",fontWeight:500},children:A},A))})]})]}),_("div",{style:{margin:"0 0 12px",padding:"10px 12px",background:"#f0fdf4",borderRadius:"8px",border:"1px solid #86efac"},children:[T("p",{style:{margin:"0 0 4px",fontSize:"10px",fontWeight:700,color:"#166534"},children:"\u{1F4E6} What you get:"}),_("p",{style:{margin:0,fontSize:"10px",color:"#166534",lineHeight:1.6},children:["\u2705 Complete Next.js 16 project",T("br",{}),"\u2705 Tailwind CSS + CSS Modules",T("br",{}),"\u2705 TypeScript configured",T("br",{}),"\u2705 Navbar + Footer components",T("br",{}),"\u2705 All ",r.pages.length," pages ready",T("br",{}),"\u2705 Mobile responsive",T("br",{}),"\u2705 npm run dev \u2192 works immediately"]})]}),_("div",{style:{display:"flex",gap:"8px"},children:[T("button",{onClick:K,style:{flex:1,padding:"9px",borderRadius:"8px",border:"1px solid #e2e8f0",background:"#fff",color:"#64748b",fontSize:"12px",fontWeight:600,cursor:"pointer"},children:"\u2190 Edit"}),T("button",{onClick:V,style:{flex:2,padding:"9px",borderRadius:"8px",border:"none",background:"#f59e0b",color:"#fff",fontSize:"13px",fontWeight:700,cursor:"pointer"},children:"\u2B07\uFE0F Generate & Download ZIP"})]})]}),o==="generating"&&_("div",{style:{padding:"2rem 16px",textAlign:"center"},children:[T("p",{style:{fontSize:"2rem",marginBottom:"1rem"},children:"\u26A1"}),T("p",{style:{fontSize:"13px",fontWeight:700,color:"#0f172a",marginBottom:"0.5rem"},children:"Generating your project..."}),T("p",{style:{fontSize:"11px",color:"#64748b",marginBottom:"1.5rem"},children:u<30?"Parsing requirement...":u<55?"Loading templates...":u<70?"Generating pages...":u<85?"Building components...":u<95?"Creating styles...":"Packaging ZIP..."}),T("div",{style:{height:"8px",background:"#e2e8f0",borderRadius:"99px",overflow:"hidden"},children:T("div",{style:{height:"100%",width:`${u}%`,background:"#f59e0b",borderRadius:"99px",transition:"width 0.3s ease"}})}),_("p",{style:{marginTop:"0.5rem",fontSize:"10px",color:"#94a3b8"},children:[u,"%"]})]}),o==="done"&&r&&_("div",{style:{padding:"2rem 16px",textAlign:"center"},children:[T("p",{style:{fontSize:"3rem",marginBottom:"0.75rem"},children:"\u2705"}),_("p",{style:{fontSize:"14px",fontWeight:700,color:"#0f172a",marginBottom:"0.5rem"},children:[r.siteName," downloaded!"]}),T("p",{style:{fontSize:"11px",color:"#64748b",marginBottom:"1.5rem",lineHeight:1.6},children:"Your ZIP is downloading. Unzip it and run:"}),["npm install","npm run dev"].map(A=>T("div",{style:{background:"#0f172a",borderRadius:"8px",padding:"8px 12px",marginBottom:"6px",textAlign:"left"},children:_("code",{style:{fontSize:"12px",color:"#a7f3d0",fontFamily:"monospace"},children:["$ ",A]})},A)),T("p",{style:{fontSize:"11px",color:"#10b981",margin:"1rem 0",fontWeight:600},children:"Then open http://localhost:3000 \u{1F680}"}),_("div",{style:{display:"flex",gap:"8px"},children:[T("button",{onClick:K,style:{flex:1,padding:"9px",borderRadius:"8px",border:"1px solid #e2e8f0",background:"#fff",color:"#64748b",fontSize:"12px",fontWeight:600,cursor:"pointer"},children:"New Project"}),T("button",{onClick:V,style:{flex:1,padding:"9px",borderRadius:"8px",border:"none",background:"#f59e0b",color:"#fff",fontSize:"12px",fontWeight:700,cursor:"pointer"},children:"\u2B07\uFE0F Download Again"})]})]})]})}import{Fragment as Sn,jsx as $,jsxs as ce}from"react/jsx-runtime";async function kn(){try{if(typeof window>"u")return!1;let e=window;if(e.LanguageModel)try{if(typeof e.LanguageModel.availability=="function"){let o=await e.LanguageModel.availability();if(o==="readily"||o==="available"||o==="downloadable")return!0}else return!0}catch{}if(e.Summarizer)try{let o=await e.Summarizer.availability?.();if(!o||o==="readily"||o==="available")return!0}catch{}if(e.Rewriter)try{let o=await e.Rewriter.availability?.();if(!o||o==="readily"||o==="available")return!0}catch{}if(e.Writer)try{let o=await e.Writer.availability?.();if(!o||o==="readily"||o==="available")return!0}catch{}let t=e.ai||globalThis.ai;if(t){if(t.languageModel?.availability)try{let o=await t.languageModel.availability();if(o==="readily"||o==="available")return!0}catch{}if(t.languageModel&&typeof t.languageModel.create=="function"||t.summarizer||t.rewriter||t.writer||t.languageModel)return!0}return!!(e.Translator||e.translation?.canTranslate)}catch{return!1}}function yt({position:e="left",children:t,config:o={},showRag:n=!1,showAgent:i=!1}){let[a,r]=U(!1),[l,u]=U(gt),[f,h]=U(null),[x,P]=U(!1),[V,K]=U(!1),[N,A]=U(!1),F=vn.useRef(null),[m,w]=U(!1),[E,b]=U(""),[g,v]=U(""),[I,B]=U(!1),[R,ne]=U(null),[z,d]=U("idle"),[H,O]=U(!1),[q,D]=U(""),[re,Z]=U(""),[se,ye]=U(!1),[Fe,le]=U([]),[Y,Ie]=U(null),ot=24,he=84,xe=n?144:84,nt=204,[pe,Pe]=U(!1);Ce(()=>{if(typeof window>"u")return;let s=window;!!(s.LanguageModel||s.ai?.languageModel)&&V?(ne("gemini"),Ie("gemini")):De()&&(ne("transformers"),Ie("transformers"))},[V]),Ce(()=>{if(R!=="transformers")return;let s=setInterval(()=>d(He()),500);return()=>clearInterval(s)},[R]);let $e=Re(async()=>{if(!(!E.trim()||I)){if(!R){v("\u26A0\uFE0F No AI engine available.");return}B(!0),v("");try{let s;if(R==="gemini"){let{askPage:y}=await import("./rag-MKBAGH6J.mjs");s=await y(E)}else{d("loading");let{askPageWithTransformers:y}=await import("./transformers-rag-HW4QKA5T.mjs");s=await y(E),d("ready")}v(s.success&&s.answer?s.answer.replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/#+\s/g,"").trim():"\u26A0\uFE0F "+(s.error||"No answer found."))}catch{v("\u26A0\uFE0F Something went wrong.")}B(!1)}},[E,I,R]),Be=Re(async()=>{if(!q.trim()||se)return;if(!Y){Z("\u26A0\uFE0F No AI engine available.");return}ye(!0),le([]),Z("");let{runAgent:s}=await import("./agent-JGLAYQMX.mjs");await s(q,Y,y=>{le(k=>[...k,y.text])}),ye(!1),Z("done")},[q,se,Y]);Ce(()=>{if(typeof window>"u")return;let y=setTimeout(async()=>{let k=window,ee=await kn();K(ee),A(!!(k.SpeechRecognition||k.webkitSpeechRecognition))},800);return()=>clearTimeout(y)},[]),Ce(()=>{if(!(typeof window>"u"))try{let s=localStorage.getItem("yuktai-a11y-prefs");s&&u(y=>({...y,...JSON.parse(s)}))}catch{}},[]);let ze=Re(async s=>{let y={enabled:!0,highContrast:s.highContrast,darkMode:s.darkMode,reduceMotion:s.reduceMotion,largeTargets:s.largeTargets,speechEnabled:s.speechEnabled,autoFix:s.autoFix,dyslexiaFont:s.dyslexiaFont,localFont:s.localFont,fontSizeMultiplier:s.fontScale/100,colorBlindMode:s.colorBlindMode,showAuditBadge:s.showAuditBadge,showSkipLinks:!0,showPreferencePanel:!1,plainEnglish:s.plainEnglish,summarisePage:s.summarisePage,translateLanguage:s.translateLanguage,voiceControl:s.voiceControl,smartLabels:s.smartLabels,...o};await ae.execute(y),h(ae.applyFixes(y)),P(!0)},[o]),W=Re(async()=>{try{localStorage.setItem("yuktai-a11y-prefs",JSON.stringify(l))}catch{}await ze(l),r(!1)},[l,ze]),Lt=Re(()=>{u(gt);try{localStorage.removeItem("yuktai-a11y-prefs")}catch{}let s=document.documentElement;["data-yuktai-high-contrast","data-yuktai-dark","data-yuktai-reduce-motion","data-yuktai-large-targets","data-yuktai-keyboard","data-yuktai-dyslexia"].forEach(y=>s.removeAttribute(y)),document.body.style.filter="",document.body.style.fontFamily="",document.documentElement.style.fontSize="",h(null),P(!1)},[]),It=Re((s,y)=>{u(k=>({...k,[s]:y}))},[]);Ce(()=>{let s=y=>{y.key==="Escape"&&(a&&r(!1),m&&w(!1),H&&O(!1),pe&&Pe(!1))};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[a,m,H]),Ce(()=>{a&&F.current&&ae.trapFocus(F.current)},[a]);let fe=(s,y,k)=>({position:"fixed",bottom:`${s}px`,[e]:"24px",zIndex:9998,width:"52px",height:"52px",borderRadius:"50%",background:y,color:"#fff",border:"none",cursor:"pointer",fontSize:"22px",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 4px 16px rgba(0,0,0,0.25)",transition:"transform 0.15s, background 0.2s"}),we=s=>{s.currentTarget.style.transform="scale(1.08)"},ge=s=>{s.currentTarget.style.transform="scale(1)"},Ne=R==="gemini"?"Gemini Nano \xB7 On device":R==="transformers"?"Transformers.js \xB7 All devices":"Detecting...",p=R==="transformers"&&z==="loading"?"Loading model...":"...";return ce(Sn,{children:[t,i&&$("button",{style:fe(204,pe?"#d97706":"#f59e0b",pe),"aria-label":"Open Vibe Coder",title:"\u26A1 Vibe Coder \u2014 Generate Next.js project",onClick:()=>{Pe(s=>!s),O(!1),w(!1),r(!1)},onMouseEnter:we,onMouseLeave:ge,children:"\u26A1"}),i&&pe&&$(bt,{position:e,onClose:()=>Pe(!1)}),i&&$("button",{style:fe(xe,H?"#059669":"#10b981",H),"aria-label":"Open AI agent","aria-haspopup":"dialog","aria-expanded":H,title:"\u{1F916} AI Agent \u2014 guide me through this page",onClick:()=>{O(s=>!s),w(!1),r(!1)},onMouseEnter:we,onMouseLeave:ge,children:"\u{1F916}"}),i&&H&&ce("div",{role:"dialog","aria-modal":"true","aria-label":"yuktai AI Agent","data-yuktai-panel":"true",style:{position:"fixed",bottom:`${xe+64}px`,[e]:"24px",zIndex:9999,width:"300px",maxWidth:"calc(100vw - 48px)",background:"#fff",border:"1px solid #e2e8f0",borderRadius:"16px",boxShadow:"0 8px 32px rgba(0,0,0,0.12)",fontFamily:"system-ui,-apple-system,sans-serif",padding:"14px",maxHeight:"70vh",overflowY:"auto"},children:[ce("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:"10px"},children:[ce("div",{children:[$("p",{style:{margin:"0 0 2px",fontSize:"13px",fontWeight:600,color:"#0f172a"},children:"\u{1F916} AI Agent"}),$("p",{style:{margin:0,fontSize:"10px",color:"#10b981"},children:Y==="gemini"?"Gemini Nano \xB7 On device":Y==="transformers"?"Transformers.js \xB7 All devices":"Detecting..."})]}),$("button",{onClick:()=>O(!1),"aria-label":"Close agent panel",style:{background:"none",border:"none",cursor:"pointer",color:"#94a3b8",fontSize:"18px",lineHeight:1,padding:"2px"},children:"\xD7"})]}),$("p",{style:{margin:"0 0 8px",fontSize:"11px",color:"#64748b"},children:"Tell me what you want to do on this page. I will guide you step by step."}),$("div",{style:{display:"flex",flexWrap:"wrap",gap:"4px",marginBottom:"8px"},children:["Fill this form","Find contact info","What is this page?","Guide me to apply"].map(s=>$("button",{onClick:()=>D(s),style:{padding:"3px 8px",borderRadius:"20px",fontSize:"10px",border:"1px solid #e2e8f0",background:"#f8fafc",color:"#64748b",cursor:"pointer"},children:s},s))}),ce("div",{style:{display:"flex",gap:"6px",marginBottom:"8px"},children:[$("input",{type:"text",value:q,onChange:s=>D(s.target.value),onKeyDown:s=>{s.key==="Enter"&&Be()},placeholder:"e.g. Help me fill this form",disabled:se||!Y,"aria-label":"Tell the agent what to do",style:{flex:1,padding:"8px 10px",borderRadius:"8px",border:"1px solid #e2e8f0",fontSize:"12px",color:"#0f172a",background:Y?"#fff":"#f8fafc",outline:"none",height:"36px"}}),$("button",{onClick:Be,disabled:se||!q.trim()||!Y,"aria-label":"Run agent",style:{padding:"8px 12px",borderRadius:"8px",border:"none",background:Y&&q.trim()&&!se?"#10b981":"#e2e8f0",color:Y&&q.trim()&&!se?"#fff":"#94a3b8",fontSize:"12px",fontWeight:600,cursor:Y&&q.trim()&&!se?"pointer":"not-allowed",height:"36px",minWidth:"52px",transition:"background 0.2s"},children:se?"...":"Go"})]}),Fe.length>0&&ce("div",{style:{padding:"10px 12px",background:"#f0fdf4",border:"1px solid #86efac",borderRadius:"8px",fontSize:"11px",color:"#166534",lineHeight:1.7},children:[Fe.map((s,y)=>$("p",{style:{margin:"0 0 2px"},children:s},y)),re==="done"&&$("button",{onClick:()=>{le([]),D(""),Z("")},style:{display:"block",marginTop:"6px",background:"none",border:"none",color:"#94a3b8",fontSize:"10px",cursor:"pointer",padding:0},children:"Clear"})]}),!Y&&$("p",{style:{margin:"4px 0 0",fontSize:"10px",color:"#94a3b8"},children:"Enable Gemini Nano via chrome://flags for best results."})]}),n&&$("button",{style:fe(he,m?"#7c3aed":"#6d28d9",m),"aria-label":"Ask a question about this page","aria-haspopup":"dialog","aria-expanded":m,title:`\u{1F4AC} Ask this page \xB7 ${Ne}`,onClick:()=>{w(s=>!s),r(!1),O(!1)},onMouseEnter:we,onMouseLeave:ge,children:"\u{1F4AC}"}),n&&m&&ce("div",{role:"dialog","aria-modal":"true","aria-label":"Ask this page","data-yuktai-panel":"true",style:{position:"fixed",bottom:`${he+64}px`,[e]:"24px",zIndex:9999,width:"300px",maxWidth:"calc(100vw - 48px)",background:"#fff",border:"1px solid #e2e8f0",borderRadius:"16px",boxShadow:"0 8px 32px rgba(0,0,0,0.12)",fontFamily:"system-ui,-apple-system,sans-serif",padding:"14px"},children:[ce("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:"10px"},children:[ce("div",{children:[$("p",{style:{margin:"0 0 2px",fontSize:"13px",fontWeight:600,color:"#0f172a"},children:"\u{1F4AC} Ask this page"}),$("p",{style:{margin:0,fontSize:"10px",color:"#7c3aed"},children:Ne}),R==="transformers"&&z==="loading"&&$("p",{style:{margin:"2px 0 0",fontSize:"9px",color:"#94a3b8"},children:"Downloading model \u2014 first time only"}),R==="transformers"&&z==="ready"&&$("p",{style:{margin:"2px 0 0",fontSize:"9px",color:"#10b981"},children:"Model ready \u2705 \u2014 works offline"})]}),$("button",{onClick:()=>w(!1),"aria-label":"Close ask panel",style:{background:"none",border:"none",cursor:"pointer",color:"#94a3b8",fontSize:"18px",lineHeight:1,padding:"2px"},children:"\xD7"})]}),ce("div",{style:{display:"flex",gap:"6px",marginBottom:"8px"},children:[$("input",{type:"text",value:E,onChange:s=>b(s.target.value),onKeyDown:s=>{s.key==="Enter"&&$e()},placeholder:"e.g. What does this page do?",disabled:I||!R,"aria-label":"Ask a question about this page",style:{flex:1,padding:"8px 10px",borderRadius:"8px",border:"1px solid #e2e8f0",fontSize:"12px",color:"#0f172a",background:R?"#fff":"#f8fafc",outline:"none",height:"36px"}}),$("button",{onClick:$e,disabled:I||!E.trim()||!R,"aria-label":"Submit question",style:{padding:"8px 12px",borderRadius:"8px",border:"none",background:R&&E.trim()&&!I?"#7c3aed":"#e2e8f0",color:R&&E.trim()&&!I?"#fff":"#94a3b8",fontSize:"12px",fontWeight:600,cursor:R&&E.trim()&&!I?"pointer":"not-allowed",height:"36px",minWidth:"48px",transition:"background 0.2s"},children:I?p:"Ask"})]}),g&&ce("div",{style:{padding:"10px",background:"#f5f3ff",borderRadius:"8px",fontSize:"12px",color:"#4c1d95",lineHeight:1.6,maxHeight:"180px",overflowY:"auto"},children:[$("strong",{style:{display:"block",marginBottom:"4px",fontSize:"11px",color:"#7c3aed"},children:"\u{1F4AC} Answer"}),g,$("button",{onClick:()=>{v(""),b("")},style:{display:"block",marginTop:"6px",background:"none",border:"none",color:"#94a3b8",fontSize:"10px",cursor:"pointer",padding:0},children:"Clear"})]}),!R&&$("p",{style:{margin:"4px 0 0",fontSize:"10px",color:"#94a3b8"},children:"Detecting AI engine..."})]}),$("button",{style:fe(ot,x?"#0d9488":"#1a73e8",a),"aria-label":"Open accessibility preferences","aria-haspopup":"dialog","aria-expanded":a,"data-yuktai-pref-toggle":"true",title:"\u267F Accessibility settings",onClick:()=>{r(s=>!s),w(!1),O(!1)},onMouseEnter:we,onMouseLeave:ge,children:"\u267F"}),a&&$(mt,{ref:F,position:e,settings:l,report:f,isActive:x,aiSupported:V,voiceSupported:N,set:It,onApply:W,onReset:Lt,onClose:()=>r(!1)})]})}var Qe={name:"ai.text",async execute(e){return`\u{1F916} YuktAI says: ${e}`}};var Xe={name:"voice.text",async execute(e){return!e||e.trim()===""?"\u{1F3A4} No speech detected":`\u{1F3A4} You said: ${e}`}};var be=class{plugins=new Map;register(t,o){if(!o||typeof o.execute!="function")throw new Error(`Invalid plugin: ${t}`);this.plugins.set(t,o)}use(t){return this.plugins.get(t)}async run(t,o){try{let n=this.use(t);if(!n)throw new Error(`Plugin not found: ${t}`);return await n.execute(o)}catch(n){throw console.error(`[YuktAI Runtime Error in ${t}]:`,n),n}}getPlugins(){return Array.from(this.plugins.keys())}};import{useEffect as tt,useMemo as uo,useState as Le}from"react";import{useCallback as ht,useEffect as et,useMemo as ao,useRef as so,useState as Ee}from"react";import{Fragment as Mn,jsx as C,jsxs as oe}from"react/jsx-runtime";var lo={"en-US":{title:"Grid AI Assistant",subtitle:"Ask about your data",ask:"Ask",placeholder:"Ask or type a command...",listening:"Listening...",send:"Send",close:"Close",open:"Open AI assistant",inputLanguage:"Input language",english:"English",telugu:"\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41",searchStarted:e=>`Searching for "${e}".`,sortedAscending:e=>`Sorted by ${e} in ascending order.`,sortedDescending:e=>`Sorted by ${e} in descending order.`,count:e=>`There are ${e} rows in the grid.`,highest:(e,t,o)=>`The highest ${e} is ${t}, held by ${o}.`,lowest:(e,t,o)=>`The lowest ${e} is ${t}, held by ${o}.`,average:(e,t)=>`The average ${e} is ${t}.`,total:(e,t)=>`The total ${e} is ${t}.`,noData:"There is no data to analyze.",noColumn:"I could not find a column to analyze.",noNumericData:e=>`There is no numeric data in ${e}.`,notFound:e=>`I could not find anything matching "${e}".`,needName:"Please provide a value to look up.",fallback:"I can search, sort, count, and analyze the grid data.",unsupportedVoice:"Voice input is not supported in this browser."},"te-IN":{title:"\u0C17\u0C4D\u0C30\u0C3F\u0C21\u0C4D AI \u0C38\u0C39\u0C3E\u0C2F\u0C15\u0C41\u0C21\u0C41",subtitle:"\u0C2E\u0C40 \u0C21\u0C47\u0C1F\u0C3E \u0C17\u0C41\u0C30\u0C3F\u0C02\u0C1A\u0C3F \u0C05\u0C21\u0C17\u0C02\u0C21\u0C3F",ask:"\u0C05\u0C21\u0C17\u0C02\u0C21\u0C3F",placeholder:"\u0C2A\u0C4D\u0C30\u0C36\u0C4D\u0C28 \u0C32\u0C47\u0C26\u0C3E \u0C06\u0C26\u0C47\u0C36\u0C02 \u0C1F\u0C48\u0C2A\u0C4D \u0C1A\u0C47\u0C2F\u0C02\u0C21\u0C3F...",listening:"\u0C35\u0C3F\u0C02\u0C1F\u0C41\u0C28\u0C4D\u0C28\u0C3E\u0C28\u0C41...",send:"\u0C2A\u0C02\u0C2A\u0C02\u0C21\u0C3F",close:"\u0C2E\u0C42\u0C38\u0C3F\u0C35\u0C47\u0C2F\u0C02\u0C21\u0C3F",open:"AI \u0C38\u0C39\u0C3E\u0C2F\u0C15\u0C41\u0C21\u0C3F\u0C28\u0C3F \u0C24\u0C46\u0C30\u0C35\u0C02\u0C21\u0C3F",inputLanguage:"\u0C07\u0C28\u0C4D\u200C\u0C2A\u0C41\u0C1F\u0C4D \u0C2D\u0C3E\u0C37",english:"English",telugu:"\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41",searchStarted:e=>`\u201C${e}\u201D \u0C15\u0C4B\u0C38\u0C02 \u0C36\u0C4B\u0C27\u0C3F\u0C38\u0C4D\u0C24\u0C41\u0C28\u0C4D\u0C28\u0C3E\u0C28\u0C41.`,sortedAscending:e=>`${e}\u0C28\u0C41 \u0C06\u0C30\u0C4B\u0C39\u0C23 \u0C15\u0C4D\u0C30\u0C2E\u0C02\u0C32\u0C4B \u0C05\u0C2E\u0C30\u0C4D\u0C1A\u0C3E\u0C28\u0C41.`,sortedDescending:e=>`${e}\u0C28\u0C41 \u0C05\u0C35\u0C30\u0C4B\u0C39\u0C23 \u0C15\u0C4D\u0C30\u0C2E\u0C02\u0C32\u0C4B \u0C05\u0C2E\u0C30\u0C4D\u0C1A\u0C3E\u0C28\u0C41.`,count:e=>`\u0C17\u0C4D\u0C30\u0C3F\u0C21\u0C4D\u200C\u0C32\u0C4B \u0C2E\u0C4A\u0C24\u0C4D\u0C24\u0C02 ${e} \u0C35\u0C30\u0C41\u0C38\u0C32\u0C41 \u0C09\u0C28\u0C4D\u0C28\u0C3E\u0C2F\u0C3F.`,highest:(e,t,o)=>`\u0C05\u0C24\u0C4D\u0C2F\u0C27\u0C3F\u0C15 ${e} \u0C35\u0C3F\u0C32\u0C41\u0C35 ${t}. \u0C07\u0C26\u0C3F ${o}\u0C15\u0C41 \u0C38\u0C02\u0C2C\u0C02\u0C27\u0C3F\u0C02\u0C1A\u0C3F\u0C28\u0C26\u0C3F.`,lowest:(e,t,o)=>`\u0C05\u0C24\u0C4D\u0C2F\u0C32\u0C4D\u0C2A ${e} \u0C35\u0C3F\u0C32\u0C41\u0C35 ${t}. \u0C07\u0C26\u0C3F ${o}\u0C15\u0C41 \u0C38\u0C02\u0C2C\u0C02\u0C27\u0C3F\u0C02\u0C1A\u0C3F\u0C28\u0C26\u0C3F.`,average:(e,t)=>`${e} \u0C38\u0C17\u0C1F\u0C41 \u0C35\u0C3F\u0C32\u0C41\u0C35 ${t}.`,total:(e,t)=>`${e} \u0C2E\u0C4A\u0C24\u0C4D\u0C24\u0C02 \u0C35\u0C3F\u0C32\u0C41\u0C35 ${t}.`,noData:"\u0C35\u0C3F\u0C36\u0C4D\u0C32\u0C47\u0C37\u0C3F\u0C02\u0C1A\u0C21\u0C3E\u0C28\u0C3F\u0C15\u0C3F \u0C21\u0C47\u0C1F\u0C3E \u0C32\u0C47\u0C26\u0C41.",noColumn:"\u0C35\u0C3F\u0C36\u0C4D\u0C32\u0C47\u0C37\u0C3F\u0C02\u0C1A\u0C21\u0C3E\u0C28\u0C3F\u0C15\u0C3F \u0C24\u0C17\u0C3F\u0C28 \u0C15\u0C3E\u0C32\u0C2E\u0C4D \u0C15\u0C28\u0C2C\u0C21\u0C32\u0C47\u0C26\u0C41.",noNumericData:e=>`${e}\u0C32\u0C4B \u0C38\u0C02\u0C16\u0C4D\u0C2F\u0C3E \u0C38\u0C2E\u0C3E\u0C1A\u0C3E\u0C30\u0C02 \u0C32\u0C47\u0C26\u0C41.`,notFound:e=>`\u201C${e}\u201D\u0C15\u0C41 \u0C38\u0C30\u0C3F\u0C2A\u0C4B\u0C32\u0C47 \u0C38\u0C2E\u0C3E\u0C1A\u0C3E\u0C30\u0C02 \u0C15\u0C28\u0C2C\u0C21\u0C32\u0C47\u0C26\u0C41.`,needName:"\u0C36\u0C4B\u0C27\u0C3F\u0C02\u0C1A\u0C21\u0C3E\u0C28\u0C3F\u0C15\u0C3F \u0C12\u0C15 \u0C35\u0C3F\u0C32\u0C41\u0C35 \u0C07\u0C35\u0C4D\u0C35\u0C02\u0C21\u0C3F.",fallback:"\u0C17\u0C4D\u0C30\u0C3F\u0C21\u0C4D\u200C\u0C32\u0C4B \u0C36\u0C4B\u0C27\u0C28, \u0C15\u0C4D\u0C30\u0C2E\u0C2C\u0C26\u0C4D\u0C27\u0C40\u0C15\u0C30\u0C23, \u0C32\u0C46\u0C15\u0C4D\u0C15\u0C3F\u0C02\u0C2A\u0C41 \u0C2E\u0C30\u0C3F\u0C2F\u0C41 \u0C21\u0C47\u0C1F\u0C3E \u0C35\u0C3F\u0C36\u0C4D\u0C32\u0C47\u0C37\u0C23 \u0C1A\u0C47\u0C2F\u0C17\u0C32\u0C28\u0C41.",unsupportedVoice:"\u0C08 \u0C2C\u0C4D\u0C30\u0C4C\u0C1C\u0C30\u0C4D\u200C\u0C32\u0C4B \u0C35\u0C3E\u0C2F\u0C3F\u0C38\u0C4D \u0C07\u0C28\u0C4D\u200C\u0C2A\u0C41\u0C1F\u0C4D\u200C\u0C15\u0C41 \u0C2E\u0C26\u0C4D\u0C26\u0C24\u0C41 \u0C32\u0C47\u0C26\u0C41."}};function ue(e){return e.toLowerCase().trim().replace(/\s+/g," ")}function An(e,t){let o=ue(e);if(t==="te-IN")return/^(శోధించు|శోధించండి|వెతుకు|వెతకండి|చూపించు|చూపించండి|ఫిల్టర్)/.test(o)?{type:"search",payload:o.replace(/^(శోధించు|శోధించండి|వెతుకు|వెతకండి|చూపించు|చూపించండి|ఫిల్టర్)\s*/u,"").trim()||e}:/క్రమబద్ధీకర|అమర్చ|సార్ట్/.test(o)?{type:"sort",payload:{key:void 0,dir:/అవరోహణ|పెద్ద|అధిక|చివర/.test(o)?"desc":"asc"}}:/ఎన్ని|ఎంతమంది|లెక్క|మొత్తం వరుస|వరుసలు/.test(o)?{type:"question",payload:e}:/అత్యధిక|గరిష్ఠ|పెద్ద|ఎక్కువ/.test(o)?{type:"question",payload:e}:/అత్యల్ప|కనిష్ఠ|చిన్న|తక్కువ/.test(o)?{type:"question",payload:e}:/సగటు|సగటు విలువ/.test(o)?{type:"question",payload:e}:/మొత్తం|కలిపి/.test(o)?{type:"question",payload:e}:{type:"search",payload:e};if(/^(search|find|show|filter)/.test(o))return{type:"search",payload:o.replace(/^(search|find|show|filter)\s+(for\s+|by\s+)?/,"").trim()||e};if(/sort/.test(o)){let n=/desc|descending|high|higher|large|largest|top/.test(o);return{type:"sort",payload:{key:o.match(/(?:by|on)\s+([a-z0-9_-]+)/)?.[1],dir:n?"desc":"asc"}}}return/how many|count|highest|maximum|max|top|largest|lowest|minimum|min|smallest|bottom|average|avg|mean|sum|total|who|which|where|whose/.test(o)?{type:"question",payload:e}:{type:"search",payload:e}}function co(e,t){let o=ue(e);return t.find(n=>{let i=ue(n.key),a=ue(n.label);return o.includes(i)||o.includes(a)})}function Je(e,t){return e.toLocaleString(t==="te-IN"?"te-IN":"en-IN")}function Tn(e,t,o,n){let i=lo[n];if(t.length===0)return i.noData;let a=ue(e),r=o.filter(m=>m.type==="number"),l=co(e,o),u=l?.type==="number"?l:r[0],f=/how many|count|rows|ఎన్ని|ఎంతమంది|లెక్క|వరుసలు/.test(a);if(f)return i.count(t.length);if(/highest|maximum|max|top|largest|అత్యధిక|గరిష్ఠ|పెద్ద|ఎక్కువ/.test(a)){let m=l??u;if(!m)return i.noColumn;let w=t.map(v=>({row:v,value:Number(v[m.key])})).filter(v=>!Number.isNaN(v.value)).sort((v,I)=>I.value-v.value);if(w.length===0)return i.noNumericData(m.label);let E=w[0],b=o.find(v=>v.key==="name"||ue(v.label)==="name"),g=b?String(E.row[b.key]??""):n==="te-IN"?"\u0C08 \u0C35\u0C30\u0C41\u0C38":"this row";return i.highest(m.label,Je(E.value,n),g)}if(/lowest|minimum|min|smallest|bottom|అత్యల్ప|కనిష్ఠ|చిన్న|తక్కువ/.test(a)){let m=l??u;if(!m)return i.noColumn;let w=t.map(v=>({row:v,value:Number(v[m.key])})).filter(v=>!Number.isNaN(v.value)).sort((v,I)=>v.value-I.value);if(w.length===0)return i.noNumericData(m.label);let E=w[0],b=o.find(v=>v.key==="name"||ue(v.label)==="name"),g=b?String(E.row[b.key]??""):n==="te-IN"?"\u0C08 \u0C35\u0C30\u0C41\u0C38":"this row";return i.lowest(m.label,Je(E.value,n),g)}if(/average|avg|mean|సగటు/.test(a)){let m=l??u;if(!m)return i.noColumn;let w=t.map(b=>Number(b[m.key])).filter(b=>!Number.isNaN(b));if(w.length===0)return i.noNumericData(m.label);let E=w.reduce((b,g)=>b+g,0)/w.length;return i.average(m.label,Je(Math.round(E*100)/100,n))}if(/sum|total|మొత్తం|కలిపి/.test(a)&&!f){let m=l??u;if(!m)return i.noColumn;let w=t.map(b=>Number(b[m.key])).filter(b=>!Number.isNaN(b));if(w.length===0)return i.noNumericData(m.label);let E=w.reduce((b,g)=>b+g,0);return i.total(m.label,Je(E,n))}let K=a.match(/[\p{L}\p{N}_-]+/gu)??[],N=new Set(["who","what","which","where","whose","is","the","has","have","show","find","search","for","by","about"]),F=K.filter(m=>!N.has(m)).join(" ").trim();if(F){let m=t.find(w=>Object.values(w).some(E=>String(E??"").toLowerCase().includes(F.toLowerCase())));return m?o.map(w=>`${w.label}: ${String(m[w.key]??"")}`).join(n==="te-IN"?" \xB7 ":", "):i.notFound(F)}return i.fallback}function Cn(e,t){if(typeof window>"u"||!window.speechSynthesis)return;window.speechSynthesis.cancel();let o=new SpeechSynthesisUtterance(e);o.lang=t,o.rate=1,o.pitch=1,window.speechSynthesis.speak(o)}function Rn(e){let[t,o]=Ee(!1),[n,i]=Ee(""),[a,r]=Ee(!0),l=so(null);et(()=>{if(typeof window>"u")return;let h=window.SpeechRecognition||window.webkitSpeechRecognition;if(!h){r(!1),l.current=null;return}let x=new h;return x.continuous=!1,x.interimResults=!1,x.lang=e,x.onresult=P=>{let V=P?.results?.[0]?.[0]?.transcript??"";i(V),o(!1)},x.onerror=()=>{o(!1)},x.onend=()=>{o(!1)},l.current=x,()=>{try{x.stop()}catch{}l.current=null}},[e]);let u=ht(()=>{if(l.current){i(""),o(!0);try{l.current.start()}catch{o(!1)}}},[]),f=ht(()=>{try{l.current?.stop()}catch{}o(!1)},[]);return{listening:t,transcript:n,supported:a,start:u,stop:f}}function En(){return oe("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[C("circle",{cx:"11",cy:"11",r:"6.5"}),C("path",{d:"m16 16 5 5"})]})}function Ln(){return oe("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[C("rect",{x:"8",y:"3",width:"8",height:"12",rx:"4"}),C("path",{d:"M5 11a7 7 0 0 0 14 0"}),C("path",{d:"M12 18v3"}),C("path",{d:"M8 21h8"})]})}function In(){return oe("svg",{width:"17",height:"17",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.3",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[C("path",{d:"m4 4 16 8-16 8 4-8-4-8Z"}),C("path",{d:"M8 12h12"})]})}function Pn(){return oe("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.4",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[C("path",{d:"m6 6 12 12"}),C("path",{d:"m18 6-12 12"})]})}function zn({data:e,columns:t,onSearch:o,onSort:n,theme:i="light",language:a="en-US",inputLanguage:r="en-US",embedded:l=!1}){let u=lo[a],f=i==="dark",[h,x]=Ee(l),[P,V]=Ee(""),[K,N]=Ee([]),A=so(null),{listening:F,transcript:m,supported:w,start:E,stop:b}=Rn(r),g=ao(()=>({bg:f?"#0F172A":"#FFFFFF",surface:f?"#1E293B":"#F8FAFC",border:f?"#334155":"#E2E8F0",text:f?"#F1F5F9":"#0F172A",muted:f?"#94A3B8":"#64748B",accent:"#10B981",userMsg:f?"#334155":"#DBEAFE",aiMsg:f?"#1E293B":"#F0FDF4"}),[f]),v=ao(()=>({role:"ai",text:a==="te-IN"?"\u0C2E\u0C40 \u0C17\u0C4D\u0C30\u0C3F\u0C21\u0C4D \u0C21\u0C47\u0C1F\u0C3E \u0C17\u0C41\u0C30\u0C3F\u0C02\u0C1A\u0C3F \u0C2A\u0C4D\u0C30\u0C36\u0C4D\u0C28 \u0C05\u0C21\u0C17\u0C02\u0C21\u0C3F.":"Ask me about your grid data.",time:new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})}),[a]);et(()=>{N(z=>z.length>0?z:[v])},[v]),et(()=>{A.current?.scrollIntoView({behavior:"smooth"})},[K]);let I=ht(z=>{let d=z.trim();if(!d)return;let H=new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});N(D=>[...D,{role:"user",text:d,time:H}]),V("");let O=An(d,a),q="";if(O.type==="search"){let D=String(O.payload??d);o(D),q=u.searchStarted(D)}if(O.type==="sort"){let D=O.payload?.key,re=D?t.find(Z=>ue(Z.key)===ue(D)||ue(Z.label)===ue(D)):void 0;if(re||(re=co(d,t)),re&&n){let Z=O.payload?.dir==="desc"?"desc":"asc";n(String(re.key),Z),q=Z==="asc"?u.sortedAscending(re.label):u.sortedDescending(re.label)}else q=u.noColumn}O.type==="question"&&(q=Tn(O.payload??d,e,t,a)),q||(q=u.fallback),window.setTimeout(()=>{let D=new Date().toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});N(re=>[...re,{role:"ai",text:q,time:D}]),Cn(q,a)},250)},[t,e,a,o,n,u]);et(()=>{m&&I(m)},[m,I]);let B=()=>{I(P)},R=a==="te-IN"?["\u0C05\u0C24\u0C4D\u0C2F\u0C27\u0C3F\u0C15 \u0C35\u0C3F\u0C32\u0C41\u0C35","\u0C0E\u0C28\u0C4D\u0C28\u0C3F \u0C35\u0C30\u0C41\u0C38\u0C32\u0C41","\u0C38\u0C17\u0C1F\u0C41 \u0C35\u0C3F\u0C32\u0C41\u0C35","\u0C36\u0C4B\u0C27\u0C3F\u0C02\u0C1A\u0C02\u0C21\u0C3F"]:["highest value","how many rows","average value","search"],ne=oe("div",{style:{width:l?"100%":360,maxWidth:l?"100%":"calc(100vw - 48px)",height:l?390:480,maxHeight:"70vh",background:g.bg,border:`1px solid ${g.border}`,borderRadius:l?12:16,boxShadow:l?"none":"0 20px 40px rgba(0,0,0,0.15)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[oe("div",{style:{padding:"12px 14px",background:g.accent,color:"#FFFFFF",display:"flex",alignItems:"center",gap:10},children:[C("div",{style:{width:34,height:34,borderRadius:10,display:"flex",alignItems:"center",justifyContent:"center",background:"rgba(255,255,255,0.18)",fontSize:17},children:"AI"}),oe("div",{style:{flex:1,minWidth:0},children:[C("div",{style:{fontWeight:700,fontSize:14},children:u.title}),C("div",{style:{fontSize:11,opacity:.9},children:u.subtitle})]}),!l&&C("button",{type:"button",onClick:()=>x(!1),"aria-label":u.close,title:u.close,style:{width:32,height:32,border:"none",borderRadius:8,background:"rgba(255,255,255,0.12)",color:"#FFFFFF",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer"},children:C(Pn,{})})]}),oe("div",{style:{padding:"8px 10px",borderBottom:`1px solid ${g.border}`,display:"flex",alignItems:"center",gap:8,background:g.surface},children:[C("span",{style:{fontSize:11,color:g.muted},children:u.inputLanguage}),oe("select",{value:r,disabled:!0,"aria-label":u.inputLanguage,style:{padding:"5px 8px",borderRadius:7,border:`1px solid ${g.border}`,background:g.bg,color:g.text,fontSize:11},children:[C("option",{value:"en-US",children:u.english}),C("option",{value:"te-IN",children:u.telugu})]})]}),oe("div",{style:{flex:1,overflowY:"auto",padding:10,display:"flex",flexDirection:"column",gap:8},children:[K.map((z,d)=>oe("div",{style:{alignSelf:z.role==="user"?"flex-end":"flex-start",maxWidth:"88%",padding:"8px 11px",borderRadius:11,background:z.role==="user"?g.userMsg:g.aiMsg,color:g.text,fontSize:13,lineHeight:1.5},children:[C("div",{children:z.text}),C("div",{style:{marginTop:3,fontSize:10,opacity:.55,textAlign:"right"},children:z.time})]},`${z.time}-${d}`)),F&&C("div",{style:{alignSelf:"flex-end",padding:"8px 11px",borderRadius:11,background:f?"#3F1D2E":"#FEE2E2",color:f?"#FCA5A5":"#991B1B",fontSize:13},children:u.listening}),C("div",{ref:A})]}),C("div",{style:{padding:"7px 10px",borderTop:`1px solid ${g.border}`,display:"flex",gap:6,overflowX:"auto",flexShrink:0},children:R.map(z=>C("button",{type:"button",onClick:()=>I(z),style:{padding:"5px 9px",borderRadius:12,border:`1px solid ${g.border}`,background:g.surface,color:g.text,fontSize:10.5,cursor:"pointer",whiteSpace:"nowrap"},children:z},z))}),oe("div",{style:{padding:9,display:"flex",gap:6,borderTop:`1px solid ${g.border}`,background:g.surface},children:[oe("div",{style:{position:"relative",flex:1},children:[C(En,{}),C("input",{type:"text",value:P,onChange:z=>V(z.target.value),onKeyDown:z=>{z.key==="Enter"&&B()},placeholder:u.placeholder,"aria-label":u.ask,style:{width:"100%",boxSizing:"border-box",padding:"9px 10px 9px 34px",borderRadius:8,border:`1px solid ${g.border}`,background:g.bg,color:g.text,fontSize:12,outline:"none"}})]}),w?C("button",{type:"button",onClick:F?b:E,"aria-label":F?u.listening:u.inputLanguage,title:F?u.listening:u.inputLanguage,style:{width:38,height:38,border:"none",borderRadius:8,background:F?"#EF4444":g.accent,color:"#FFFFFF",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",flexShrink:0},children:C(Ln,{})}):null,C("button",{type:"button",onClick:B,disabled:!P.trim(),"aria-label":u.send,title:u.send,style:{width:38,height:38,border:"none",borderRadius:8,background:P.trim()?g.accent:g.muted,color:"#FFFFFF",display:"flex",alignItems:"center",justifyContent:"center",cursor:P.trim()?"pointer":"not-allowed",opacity:P.trim()?1:.6,flexShrink:0},children:C(In,{})})]})]});return l?C("div",{style:{width:"100%",minWidth:0},children:h?ne:oe("button",{type:"button",onClick:()=>x(!0),"aria-label":u.open,style:{minHeight:40,padding:"8px 13px",borderRadius:9,border:"1px solid #10B981",background:f?"#064E3B":"#ECFDF5",color:f?"#A7F3D0":"#047857",display:"inline-flex",alignItems:"center",gap:8,cursor:"pointer",fontSize:12,fontWeight:600},children:[C("span",{"aria-hidden":"true",children:"AI"}),u.ask]})}):oe(Mn,{children:[!h&&C("button",{type:"button",onClick:()=>x(!0),"aria-label":u.open,title:u.title,style:{position:"fixed",bottom:24,right:24,zIndex:9998,width:56,height:56,borderRadius:28,background:g.accent,color:"#FFFFFF",border:"none",cursor:"pointer",boxShadow:"0 8px 20px rgba(16,185,129,0.3)",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700,fontSize:14},children:"AI"}),h&&C("div",{style:{position:"fixed",bottom:90,right:24,zIndex:9997},children:ne}),C("style",{children:`
386
+ @keyframes yuktai-ai-pulse {
387
387
  0%, 100% {
388
388
  transform: scale(1);
389
- box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4);
390
389
  }
391
-
392
390
  50% {
393
- transform: scale(1.1);
394
- box-shadow: 0 0 0 8px rgba(239, 68, 68, 0);
391
+ transform: scale(1.05);
395
392
  }
396
393
  }
397
- `})]})}var An=Sn;import{useEffect as Cn}from"react";function gt(e,t){let o=t.trim().toLowerCase(),i=e.data.filter(a=>e.columns.some(n=>String(a[n.key]??"").toLowerCase().includes(o))),r=i.map(a=>String(a.id??"")).filter(Boolean);return e.onHighlightRows?.(r),{success:!0,message:`${i.length} row(s) found.`,data:i}}function mt(e){return{success:!0,message:`${e.data.length} row(s).`,data:e.data.length}}function bt(e){return{success:!0,message:"Grid columns retrieved.",data:e.columns}}function yt(e,t){let o=e.data.find(i=>String(i.id??"")===t);return o?{success:!0,message:"Row found.",data:o}:{success:!1,message:`Row "${t}" not found.`}}function xt(e,t){return e.onHighlightRows?.(t),{success:!0,message:`${t.length} row(s) highlighted.`,data:t}}function ht(e,t){return e.onSelectRow?.(t),{success:!0,message:`Row "${t}" selected.`,data:t}}function wt(e,t){return e.onOpenRow?.(t),{success:!0,message:`Row "${t}" opened.`,data:t}}function to({data:e,columns:t,name:o="yuktai_grid",onSelectRow:i,onHighlightRows:r,onOpenRow:a}){return Cn(()=>{let n=document.modelContext;if(!n)return;let s=new AbortController,p={data:e,columns:t,onSelectRow:i,onHighlightRows:r,onOpenRow:a};return(async()=>{await n.registerTool({name:`${o}_search`,title:"Search Grid",description:"Search the grid.",inputSchema:{type:"object",properties:{query:{type:"string"}},required:["query"]},execute:async({query:m})=>gt(p,m)},{signal:s.signal}),await n.registerTool({name:`${o}_count`,title:"Count Grid",description:"Count grid rows.",inputSchema:{type:"object",properties:{}},execute:async()=>mt(p)},{signal:s.signal}),await n.registerTool({name:`${o}_columns`,title:"Get Grid Columns",description:"Get grid columns.",inputSchema:{type:"object",properties:{}},execute:async()=>bt(p)},{signal:s.signal}),await n.registerTool({name:`${o}_get_row`,title:"Get Grid Row",description:"Get a grid row by ID.",inputSchema:{type:"object",properties:{id:{type:"string"}},required:["id"]},execute:async({id:m})=>yt(p,m)},{signal:s.signal}),await n.registerTool({name:`${o}_highlight`,title:"Highlight Grid Rows",description:"Highlight grid rows.",inputSchema:{type:"object",properties:{ids:{type:"array",items:{type:"string"}}},required:["ids"]},execute:async({ids:m})=>xt(p,m)},{signal:s.signal}),await n.registerTool({name:`${o}_select`,title:"Select Grid Row",description:"Select a grid row.",inputSchema:{type:"object",properties:{id:{type:"string"}},required:["id"]},execute:async({id:m})=>ht(p,m)},{signal:s.signal}),await n.registerTool({name:`${o}_open`,title:"Open Grid Row",description:"Open a grid row.",inputSchema:{type:"object",properties:{id:{type:"string"}},required:["id"]},execute:async({id:m})=>wt(p,m)},{signal:s.signal})})().catch(()=>{}),()=>{s.abort()}},[e,t,o,i,r,a]),null}import{useCallback as En,useState as Rn}from"react";function oo({tools:e,onResult:t,onError:o}){let[i,r]=Rn(!1),a=En(async(n,s={})=>{let p=e.find(l=>l.name===n);if(!p){let l=new Error(`Tool "${n}" not found.`);throw o?.(l),l}r(!0);try{let l=await p.execute(s);return t?.(l),l}catch(l){let m=l instanceof Error?l:new Error(String(l));throw o?.(m),m}finally{r(!1)}},[e,t,o]);return{loading:i,tools:e,executeTool:a}}var Pn=oo;import{jsx as In}from"react/jsx-runtime";function K({size:e=20,color:t="currentColor",strokeWidth:o=2.5,label:i,children:r,...a}){return In("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!i?"true":void 0,"aria-label":i,role:i?"img":void 0,focusable:"false",...a,children:r})}import{jsx as no,jsxs as Ln}from"react/jsx-runtime";function io(e){return Ln(K,{...e,children:[no("circle",{cx:"11",cy:"11",r:"7"}),no("path",{d:"m20 20-4-4"})]})}import{jsx as ro,jsxs as Mn}from"react/jsx-runtime";function ao(e){return Mn(K,{...e,children:[ro("path",{d:"M12 19V5"}),ro("path",{d:"m5 12 7-7 7 7"})]})}import{jsx as so,jsxs as zn}from"react/jsx-runtime";function lo(e){return zn(K,{...e,children:[so("path",{d:"M12 5v14"}),so("path",{d:"m5 12 7 7 7-7"})]})}import{jsx as co}from"react/jsx-runtime";function po(e){return co(K,{...e,children:co("path",{d:"m15 18-6-6 6-6"})})}import{jsx as uo}from"react/jsx-runtime";function fo(e){return uo(K,{...e,children:uo("path",{d:"m9 18 6-6-6-6"})})}import{jsx as go}from"react/jsx-runtime";function mo(e){return go(K,{...e,children:go("path",{d:"M5 12.5 10 17.5 19.5 7"})})}import{jsx as bo,jsxs as Gn}from"react/jsx-runtime";function yo(e){return Gn(K,{...e,children:[bo("path",{d:"M18 6 6 18"}),bo("path",{d:"m6 6 12 12"})]})}function Fn(){if(typeof globalThis>"u")return new pe;if(!globalThis.__yuktai_runtime__){let e=new pe;e.register(ie.name,ie),e.register(Ye.name,Ye),e.register(je.name,je),globalThis.__yuktai_runtime__=e}return globalThis.__yuktai_runtime__}var xo=typeof window<"u"?Fn():new pe,Yr={wcagPlugin:ie,list(){return xo.getPlugins()},use(e){return xo.use(e)},fix(e){return ie.applyFixes({enabled:!0,autoFix:!0,...e})},scan(){return ie.scan()}};export{mo as CheckIcon,po as ChevronLeftIcon,fo as ChevronRightIcon,yo as CloseIcon,K as IconBase,pe as Runtime,io as SearchIcon,lo as SortDownIcon,ao as SortUpIcon,Yr as YuktAI,lt as YuktAIWrapper,bn as YuktaiGrid,An as YuktaiGridAI,Pn as YuktaiGridAgent,to as YuktaiGridWebMCP,Ye as aiPlugin,mt as countGrid,lt as default,bt as getColumns,yt as getRow,xt as highlightRows,wt as openRow,gt as searchGrid,ht as selectRow,xn as useGrid,oo as useYuktaiGridAgent,je as voicePlugin,ie as wcag,ie as wcagPlugin};
394
+ `})]})}var xt=zn;import{jsx as S,jsxs as X}from"react/jsx-runtime";var Wn={"en-US":{search:"Search...",searchAria:"Search grid",rows:"rows",row:"row",loading:"Loading...",noData:"No data found.",selectRow:"Select row",pageSize:"Page size",page:"Page",of:"of",previous:"Previous",next:"Next",yes:"Yes",no:"No",sortAscending:"Sort ascending",sortDescending:"Sort descending"},"te-IN":{search:"\u0C36\u0C4B\u0C27\u0C3F\u0C02\u0C1A\u0C02\u0C21\u0C3F...",searchAria:"\u0C17\u0C4D\u0C30\u0C3F\u0C21\u0C4D\u200C\u0C32\u0C4B \u0C36\u0C4B\u0C27\u0C3F\u0C02\u0C1A\u0C02\u0C21\u0C3F",rows:"\u0C35\u0C30\u0C41\u0C38\u0C32\u0C41",row:"\u0C35\u0C30\u0C41\u0C38",loading:"\u0C32\u0C4B\u0C21\u0C4D \u0C05\u0C35\u0C41\u0C24\u0C4B\u0C02\u0C26\u0C3F...",noData:"\u0C21\u0C47\u0C1F\u0C3E \u0C15\u0C28\u0C2C\u0C21\u0C32\u0C47\u0C26\u0C41.",selectRow:"\u0C35\u0C30\u0C41\u0C38\u0C28\u0C41 \u0C0E\u0C02\u0C1A\u0C41\u0C15\u0C4B\u0C02\u0C21\u0C3F",pageSize:"\u0C2A\u0C47\u0C1C\u0C40 \u0C2A\u0C30\u0C3F\u0C2E\u0C3E\u0C23\u0C02",page:"\u0C2A\u0C47\u0C1C\u0C40",of:"\u0C32\u0C4B",previous:"\u0C35\u0C46\u0C28\u0C41\u0C15\u0C15\u0C41",next:"\u0C2E\u0C41\u0C02\u0C26\u0C41\u0C15\u0C41",yes:"\u0C05\u0C35\u0C41\u0C28\u0C41",no:"\u0C15\u0C3E\u0C26\u0C41",sortAscending:"\u0C06\u0C30\u0C4B\u0C39\u0C23 \u0C15\u0C4D\u0C30\u0C2E\u0C02\u0C32\u0C4B \u0C05\u0C2E\u0C30\u0C4D\u0C1A\u0C02\u0C21\u0C3F",sortDescending:"\u0C05\u0C35\u0C30\u0C4B\u0C39\u0C23 \u0C15\u0C4D\u0C30\u0C2E\u0C02\u0C32\u0C4B \u0C05\u0C2E\u0C30\u0C4D\u0C1A\u0C02\u0C21\u0C3F"}};function Gn({size:e=20,color:t="currentColor",strokeWidth:o=2.4}){return X("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[S("circle",{cx:"11",cy:"11",r:"6.5"}),S("path",{d:"m16 16 5 5"})]})}function Fn({size:e=18,color:t="currentColor",strokeWidth:o=2.4,label:n}){return X("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":n?void 0:!0,"aria-label":n,role:n?"img":void 0,children:[n?S("title",{children:n}):null,S("path",{d:"m6 15 6-6 6 6"})]})}function $n({size:e=18,color:t="currentColor",strokeWidth:o=2.4,label:n}){return X("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":n?void 0:!0,"aria-label":n,role:n?"img":void 0,children:[n?S("title",{children:n}):null,S("path",{d:"m6 9 6 6 6-6"})]})}function Bn({size:e=20,color:t="currentColor",strokeWidth:o=2.4}){return S("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:S("path",{d:"m15 18-6-6 6-6"})})}function Nn({size:e=20,color:t="currentColor",strokeWidth:o=2.4}){return S("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:S("path",{d:"m9 18 6-6-6-6"})})}function po({size:e=18,color:t="currentColor",strokeWidth:o=2.4}){return S("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:S("path",{d:"m5 12 4 4L19 6"})})}function Dn({data:e,columns:t,rowKey:o="id",view:n="auto",mobileBreakpoint:i=768,theme:a="default",locale:r="en-US",ai:l=!1,search:u=!0,selectable:f=!1,selectedKeys:h=[],onSelectionChange:x,pagination:P,loading:V=!1,highlightIds:K=[],highlightColor:N="#fff3a3",autoScrollToHighlight:A=!1,onRowClick:F,onSortChange:m,empty:w,className:E=""}){let b=r==="te-IN"?"te-IN":"en-US",g=Wn[b],v=l===!0||typeof l=="object"&&l!==null,I=P!==!1&&P!==void 0,B=typeof P=="object"?P.pageSize??20:20,R=typeof P=="object"&&P.sizeOptions&&P.sizeOptions.length>0?P.sizeOptions:[10,20,50,100],[ne,z]=Le(""),[d,H]=Le(1),[O,q]=Le(B),[D,re]=Le(),[Z,se]=Le("asc"),[ye,Fe]=Le(!1);tt(()=>{q(B),H(1)},[B]),tt(()=>{let p=()=>{Fe(window.innerWidth<=i)};return p(),window.addEventListener("resize",p),()=>{window.removeEventListener("resize",p)}},[i]);let le=uo(()=>{let p=[...e];if(ne.trim()){let s=ne.trim().toLowerCase();p=p.filter(y=>t.some(k=>String(y[k.key]??"").toLowerCase().includes(s)))}return D&&p.sort((s,y)=>{let k=s[D],ee=y[D];if(k==null&&ee==null)return 0;if(k==null)return 1;if(ee==null)return-1;if(typeof k=="number"&&typeof ee=="number")return Z==="asc"?k-ee:ee-k;let Q=String(k).localeCompare(String(ee),r,{numeric:!0,sensitivity:"base"});return Z==="asc"?Q:-Q}),p},[e,t,ne,D,Z,r]),Y=I?Math.max(1,Math.ceil(le.length/O)):1;tt(()=>{d>Y&&H(Y)},[d,Y]),tt(()=>{if(!A)return;let p=K[0];if(p==null)return;let s=typeof CSS<"u"&&typeof CSS.escape=="function"?CSS.escape(String(p)):String(p).replace(/["\\]/g,"\\$&");document.querySelector(`[data-yuktai-row-id="${s}"]`)?.scrollIntoView({behavior:"smooth",block:"center"})},[K,A,d]);let Ie=uo(()=>{if(!I)return le;let p=(d-1)*O;return le.slice(p,p+O)},[le,I,d,O]),ot=n==="card"||n==="auto"&&ye,he=p=>String(p[o]??""),xe=p=>h.some(s=>String(s)===p),nt=p=>K.some(s=>String(s)===p),pe=p=>{if(!f)return;let s=he(p),y=xe(s)?h.filter(k=>String(k)!==s):[...h,s];x?.(y)},Pe=p=>{if(p.sortable===!1)return;let s=String(p.key),y=D===s&&Z==="asc"?"desc":"asc";re(s),se(y),H(1),m?.({key:s,direction:y})},$e=p=>{z(p),H(1)},Be=(p,s)=>{let y=t.find(k=>String(k.key)===p||k.label.toLowerCase()===p.toLowerCase());y&&(re(String(y.key)),se(s),H(1),m?.({key:String(y.key),direction:s}))},ze=(p,s,y)=>{if(s.render)return s.render(p[s.key],p,y);let k=p[s.key];if(k==null)return"";if(s.type==="date"){let ee=new Date(String(k));if(!Number.isNaN(ee.getTime()))return ee.toLocaleDateString(r)}return s.type==="boolean"?k?g.yes:g.no:String(k)},W=a==="dark",fe={width:"100%",overflow:"hidden",border:a==="high-contrast"?"2px solid #000000":W?"1px solid #334155":"1px solid #e2e8f0",borderRadius:12,background:W?"#0f172a":"#ffffff",color:W?"#f8fafc":"#0f172a",fontFamily:a==="dyslexia"?"Arial, sans-serif":void 0},we={padding:12,display:"flex",alignItems:"center",gap:12,flexWrap:"wrap",borderBottom:W?"1px solid #334155":"1px solid #e2e8f0"},ge=p=>({width:40,height:40,minWidth:40,display:"inline-flex",alignItems:"center",justifyContent:"center",padding:0,borderRadius:8,border:W?"1px solid #475569":"1px solid #cbd5e1",background:p?W?"#1e293b":"#f8fafc":W?"#1e293b":"#ffffff",color:p?"#94a3b8":W?"#f8fafc":"#0f172a",cursor:p?"not-allowed":"pointer",opacity:p?.55:1});if(V)return S("div",{className:E,style:fe,children:S("div",{style:{padding:32,textAlign:"center"},children:g.loading})});let Ne=t.map(p=>({key:String(p.key),label:p.label,type:p.type==="number"?"number":p.type==="date"?"date":"text"}));return X("div",{className:E,style:fe,children:[(u||v)&&X("div",{style:we,children:[u&&X("div",{style:{position:"relative",width:"100%",maxWidth:420},children:[S("div",{style:{position:"absolute",left:12,top:"50%",transform:"translateY(-50%)",display:"flex",alignItems:"center",color:W?"#cbd5e1":"#64748b",pointerEvents:"none"},children:S(Gn,{size:19})}),S("input",{value:ne,onChange:p=>{z(p.target.value),H(1)},placeholder:g.search,"aria-label":g.searchAria,style:{width:"100%",padding:"10px 12px 10px 40px",borderRadius:8,border:W?"1px solid #475569":"1px solid #cbd5e1",background:W?"#1e293b":"#ffffff",color:W?"#ffffff":"#0f172a",outline:"none",boxSizing:"border-box"}})]}),X("div",{style:{marginLeft:"auto",fontSize:13,opacity:.7,whiteSpace:"nowrap"},children:[le.length," ",le.length===1?g.row:g.rows]}),v&&S(xt,{data:e,columns:Ne,onSearch:$e,onSort:Be,theme:W?"dark":"light",language:b,inputLanguage:"en-US",embedded:!0})]}),le.length===0?S("div",{style:{padding:40,textAlign:"center",opacity:.7},children:w??g.noData}):ot?S("div",{style:{display:"grid",gap:12,padding:12},children:Ie.map((p,s)=>{let y=he(p),k=xe(y),ee=nt(y);return X("div",{"data-yuktai-row-id":y,onClick:()=>F?.(p,s),style:{padding:14,borderRadius:10,border:W?"1px solid #334155":"1px solid #e2e8f0",background:ee?N:k?W?"#1e3a5f":"#eff6ff":W?"#1e293b":"#ffffff",cursor:F?"pointer":"default"},children:[f&&S("button",{type:"button",onClick:Q=>{Q.stopPropagation(),pe(p)},"aria-label":`${g.selectRow} ${y}`,"aria-pressed":k,style:{width:32,height:32,display:"inline-flex",alignItems:"center",justifyContent:"center",padding:0,marginBottom:10,borderRadius:7,border:k?"1px solid #2563eb":"1px solid #cbd5e1",background:k?"#2563eb":"transparent",color:k?"#ffffff":"currentColor",cursor:"pointer"},children:k&&S(po,{size:17})}),t.map(Q=>X("div",{style:{display:"flex",gap:8,padding:"5px 0",alignItems:"flex-start"},children:[S("strong",{style:{minWidth:100,opacity:.7},children:Q.label}),S("span",{children:ze(p,Q,s)})]},String(Q.key)))]},y)})}):S("div",{style:{width:"100%",overflowX:"auto"},children:X("table",{style:{width:"100%",borderCollapse:"collapse"},children:[S("thead",{children:X("tr",{children:[f&&S("th",{style:{padding:10,borderBottom:W?"1px solid #334155":"1px solid #e2e8f0",width:52}}),t.filter(p=>!(ye&&p.hiddenOnMobile)).map(p=>{let s=D===String(p.key);return S("th",{onClick:()=>Pe(p),style:{padding:10,textAlign:p.align??"left",borderBottom:W?"1px solid #334155":"1px solid #e2e8f0",whiteSpace:"nowrap",cursor:p.sortable===!1?"default":"pointer",width:p.width,userSelect:"none"},children:X("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[p.label,s&&(Z==="asc"?S(Fn,{size:17,label:g.sortAscending}):S($n,{size:17,label:g.sortDescending}))]})},String(p.key))})]})}),S("tbody",{children:Ie.map((p,s)=>{let y=he(p),k=xe(y),ee=nt(y);return X("tr",{"data-yuktai-row-id":y,onClick:()=>F?.(p,s),style:{background:ee?N:k?W?"#1e3a5f":"#eff6ff":"transparent",cursor:F?"pointer":"default"},children:[f&&S("td",{style:{padding:10,borderBottom:W?"1px solid #334155":"1px solid #e2e8f0"},children:S("button",{type:"button",onClick:Q=>{Q.stopPropagation(),pe(p)},"aria-label":`${g.selectRow} ${y}`,"aria-pressed":k,style:{width:28,height:28,display:"inline-flex",alignItems:"center",justifyContent:"center",padding:0,borderRadius:6,border:k?"1px solid #2563eb":W?"1px solid #64748b":"1px solid #cbd5e1",background:k?"#2563eb":"transparent",color:k?"#ffffff":"currentColor",cursor:"pointer"},children:k&&S(po,{size:16})})}),t.filter(Q=>!(ye&&Q.hiddenOnMobile)).map(Q=>S("td",{style:{padding:10,textAlign:Q.align??"left",borderBottom:W?"1px solid #334155":"1px solid #e2e8f0"},children:ze(p,Q,s)},String(Q.key)))]},y)})})]})}),I&&X("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap",padding:12,borderTop:W?"1px solid #334155":"1px solid #e2e8f0"},children:[X("span",{style:{fontSize:13,opacity:.7},children:[g.page," ",d," ",g.of," ",Y]}),X("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[typeof P=="object"&&P.showSizeChanger&&S("select",{value:O,onChange:p=>{let s=Number(p.target.value);!Number.isFinite(s)||s<=0||(q(s),H(1))},"aria-label":g.pageSize,style:{minHeight:40,padding:"7px 10px",borderRadius:8,border:W?"1px solid #475569":"1px solid #cbd5e1",background:W?"#1e293b":"#ffffff",color:W?"#ffffff":"#0f172a"},children:R.map(p=>S("option",{value:p,children:p},p))}),S("button",{type:"button",disabled:d<=1,onClick:()=>H(p=>Math.max(1,p-1)),"aria-label":g.previous,title:g.previous,style:ge(d<=1),children:S(Bn,{size:20})}),S("button",{type:"button",disabled:d>=Y,onClick:()=>H(p=>Math.min(Y,p+1)),"aria-label":g.next,title:g.next,style:ge(d>=Y),children:S(Nn,{size:20})})]})]})]})}import{useState as Ge,useMemo as wt,useCallback as vt,useEffect as fo}from"react";function Hn(e){return e===!1?Number.MAX_SAFE_INTEGER:e===!0||e===void 0?10:e.pageSize??10}function On(e){let{data:t,columns:o,pagination:n=!0,mobileBreakpoint:i=768}=e,[a,r]=Ge(null),[l,u]=Ge(""),[f,h]=Ge(1),[x,P]=Ge(Hn(n)),[V,K]=Ge(!1);fo(()=>{if(typeof window>"u")return;let g=()=>{K(window.innerWidth<i)};return g(),window.addEventListener("resize",g),()=>window.removeEventListener("resize",g)},[i]);let N=vt(g=>{r(v=>!v||v.key!==g?{key:g,direction:"asc"}:v.direction==="asc"?{key:g,direction:"desc"}:null),h(1)},[]),A=vt(()=>r(null),[]),F=wt(()=>{if(!l.trim())return t;let g=l.toLowerCase().trim();return t.filter(v=>o.some(I=>{let B=v[I.key];return B==null?!1:String(B).toLowerCase().includes(g)}))},[t,l,o]),m=wt(()=>{if(!a)return F;let g=[...F].sort((v,I)=>{let B=v[a.key],R=I[a.key];if(B===R)return 0;if(B==null)return 1;if(R==null)return-1;if(typeof B=="number"&&typeof R=="number")return B-R;if(B instanceof Date&&R instanceof Date)return B.getTime()-R.getTime();let ne=String(B),z=String(R);return ne.localeCompare(z,void 0,{sensitivity:"base",numeric:!0})});return a.direction==="desc"?g.reverse():g},[F,a]),w=Math.max(1,Math.ceil(m.length/x)),E=wt(()=>{if(n===!1)return m;let g=(f-1)*x;return m.slice(g,g+x)},[m,f,x,n]),b=vt(()=>{r(null),u(""),h(1)},[]);return fo(()=>{f>w&&h(w)},[f,w]),{displayedData:E,totalCount:t.length,filteredCount:m.length,sort:a,toggleSort:N,clearSort:A,searchQuery:l,setSearchQuery:u,page:f,pageSize:x,totalPages:w,setPage:h,setPageSize:P,isMobile:V,reset:b}}import{useEffect as qn}from"react";function kt(e,t){let o=t.trim().toLowerCase(),n=e.data.filter(a=>e.columns.some(r=>String(a[r.key]??"").toLowerCase().includes(o))),i=n.map(a=>String(a.id??"")).filter(Boolean);return e.onHighlightRows?.(i),{success:!0,message:`${n.length} row(s) found.`,data:n}}function St(e){return{success:!0,message:`${e.data.length} row(s).`,data:e.data.length}}function At(e){return{success:!0,message:"Grid columns retrieved.",data:e.columns}}function Tt(e,t){let o=e.data.find(n=>String(n.id??"")===t);return o?{success:!0,message:"Row found.",data:o}:{success:!1,message:`Row "${t}" not found.`}}function Ct(e,t){return e.onHighlightRows?.(t),{success:!0,message:`${t.length} row(s) highlighted.`,data:t}}function Rt(e,t){return e.onSelectRow?.(t),{success:!0,message:`Row "${t}" selected.`,data:t}}function Et(e,t){return e.onOpenRow?.(t),{success:!0,message:`Row "${t}" opened.`,data:t}}function go({data:e,columns:t,name:o="yuktai_grid",onSelectRow:n,onHighlightRows:i,onOpenRow:a}){return qn(()=>{let r=document.modelContext;if(!r)return;let l=new AbortController,u={data:e,columns:t,onSelectRow:n,onHighlightRows:i,onOpenRow:a};return(async()=>{await r.registerTool({name:`${o}_search`,title:"Search Grid",description:"Search the grid.",inputSchema:{type:"object",properties:{query:{type:"string"}},required:["query"]},execute:async({query:h})=>kt(u,h)},{signal:l.signal}),await r.registerTool({name:`${o}_count`,title:"Count Grid",description:"Count grid rows.",inputSchema:{type:"object",properties:{}},execute:async()=>St(u)},{signal:l.signal}),await r.registerTool({name:`${o}_columns`,title:"Get Grid Columns",description:"Get grid columns.",inputSchema:{type:"object",properties:{}},execute:async()=>At(u)},{signal:l.signal}),await r.registerTool({name:`${o}_get_row`,title:"Get Grid Row",description:"Get a grid row by ID.",inputSchema:{type:"object",properties:{id:{type:"string"}},required:["id"]},execute:async({id:h})=>Tt(u,h)},{signal:l.signal}),await r.registerTool({name:`${o}_highlight`,title:"Highlight Grid Rows",description:"Highlight grid rows.",inputSchema:{type:"object",properties:{ids:{type:"array",items:{type:"string"}}},required:["ids"]},execute:async({ids:h})=>Ct(u,h)},{signal:l.signal}),await r.registerTool({name:`${o}_select`,title:"Select Grid Row",description:"Select a grid row.",inputSchema:{type:"object",properties:{id:{type:"string"}},required:["id"]},execute:async({id:h})=>Rt(u,h)},{signal:l.signal}),await r.registerTool({name:`${o}_open`,title:"Open Grid Row",description:"Open a grid row.",inputSchema:{type:"object",properties:{id:{type:"string"}},required:["id"]},execute:async({id:h})=>Et(u,h)},{signal:l.signal})})().catch(()=>{}),()=>{l.abort()}},[e,t,o,n,i,a]),null}import{useCallback as _n,useState as jn}from"react";function mo({tools:e,onResult:t,onError:o}){let[n,i]=jn(!1),a=_n(async(r,l={})=>{let u=e.find(f=>f.name===r);if(!u){let f=new Error(`Tool "${r}" not found.`);throw o?.(f),f}i(!0);try{let f=await u.execute(l);return t?.(f),f}catch(f){let h=f instanceof Error?f:new Error(String(f));throw o?.(h),h}finally{i(!1)}},[e,t,o]);return{loading:n,tools:e,executeTool:a}}var Yn=mo;import{jsx as Vn}from"react/jsx-runtime";function J({size:e=20,color:t="currentColor",strokeWidth:o=2.5,label:n,children:i,...a}){return Vn("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:o,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!n?"true":void 0,"aria-label":n,role:n?"img":void 0,focusable:"false",...a,children:i})}import{jsx as bo,jsxs as Un}from"react/jsx-runtime";function yo(e){return Un(J,{...e,children:[bo("circle",{cx:"11",cy:"11",r:"7"}),bo("path",{d:"m20 20-4-4"})]})}import{jsx as ho,jsxs as Kn}from"react/jsx-runtime";function xo(e){return Kn(J,{...e,children:[ho("path",{d:"M12 19V5"}),ho("path",{d:"m5 12 7-7 7 7"})]})}import{jsx as wo,jsxs as Zn}from"react/jsx-runtime";function vo(e){return Zn(J,{...e,children:[wo("path",{d:"M12 5v14"}),wo("path",{d:"m5 12 7 7 7-7"})]})}import{jsx as ko}from"react/jsx-runtime";function So(e){return ko(J,{...e,children:ko("path",{d:"m15 18-6-6 6-6"})})}import{jsx as Ao}from"react/jsx-runtime";function To(e){return Ao(J,{...e,children:Ao("path",{d:"m9 18 6-6-6-6"})})}import{jsx as Co}from"react/jsx-runtime";function Ro(e){return Co(J,{...e,children:Co("path",{d:"M5 12.5 10 17.5 19.5 7"})})}import{jsx as Eo,jsxs as Qn}from"react/jsx-runtime";function Lo(e){return Qn(J,{...e,children:[Eo("path",{d:"M18 6 6 18"}),Eo("path",{d:"m6 6 12 12"})]})}function Xn(){if(typeof globalThis>"u")return new be;if(!globalThis.__yuktai_runtime__){let e=new be;e.register(ae.name,ae),e.register(Qe.name,Qe),e.register(Xe.name,Xe),globalThis.__yuktai_runtime__=e}return globalThis.__yuktai_runtime__}var Io=typeof window<"u"?Xn():new be,da={wcagPlugin:ae,list(){return Io.getPlugins()},use(e){return Io.use(e)},fix(e){return ae.applyFixes({enabled:!0,autoFix:!0,...e})},scan(){return ae.scan()}};export{Ro as CheckIcon,So as ChevronLeftIcon,To as ChevronRightIcon,Lo as CloseIcon,J as IconBase,be as Runtime,yo as SearchIcon,vo as SortDownIcon,xo as SortUpIcon,da as YuktAI,yt as YuktAIWrapper,Dn as YuktaiGrid,xt as YuktaiGridAI,Yn as YuktaiGridAgent,go as YuktaiGridWebMCP,Qe as aiPlugin,St as countGrid,yt as default,At as getColumns,Tt as getRow,Ct as highlightRows,Et as openRow,kt as searchGrid,Rt as selectRow,On as useGrid,mo as useYuktaiGridAgent,Xe as voicePlugin,ae as wcag,ae as wcagPlugin};