PageSourceSearch

https://findskill.ai/js/feedback.min.ce210201aa646c534ad7cd14365f3edb150d72321c42020b1f7bde70397f2586.js

js findskill.ai collected 2026-09-25 00:30:44 UTC 14,158 bytes, 2 lines download raw bytes

1(()=>{(function(){"use strict";var c="/api/feedback",t="skill_feedback_submitted";document.addEventListener("DOMContentLoaded",function(){d(),m(),p()});function d(){document.addEventListener("click",function(e){var t=e.target.closest(".btn-feedback");if(!t)return;e.preventDefault(),l(t)})}function l(e){var t=e.dataset.skillId,i=e.dataset.skillSlug,s=e.dataset.rating;if(!t||!s){console.error("[Feedback] Missing skill ID or rating");return}if(e.disabled)return;s==="down"?o(t,i,e):n(e,t,i,s,null)}function n(e,t,n,o,c){var h,l=e.closest(".feedback-buttons"),d=l?l.querySelectorAll(".btn-feedback"):[];d.forEach(function(e){e.disabled=!0}),h=Array.from(e.childNodes).map(function(e){return e.cloneNode(!0)}),i(e),r(t,n,o,c).then(function(n){if(n.success)u(t,o),s(e,l,o);else throw new Error(n.error&&n.error.message?n.error.message:"Failed to submit feedback")}).catch(function(t){console.error("[Feedback] Error:",t),a(e,h),d.forEach(function(e){e.disabled=!1}),f("Failed to submit feedback. Please try again.","error")})}function i(e){for(;e.firstChild;)e.removeChild(e.firstChild);var n,t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("width","18"),t.setAttribute("height","18"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.setAttribute("stroke","currentColor"),t.setAttribute("stroke-width","2.5"),t.setAttribute("aria-hidden","true"),t.classList.add("spin"),n=document.createElementNS("http://www.w3.org/2000/svg","circle"),n.setAttribute("cx","12"),n.setAttribute("cy","12"),n.setAttribute("r","10"),n.setAttribute("stroke-dasharray","50"),n.setAttribute("stroke-dashoffset","20"),t.appendChild(n),e.appendChild(t),e.appendChild(document.createTextNode(" Sending..."))}function a(e,t){for(;e.firstChild;)e.removeChild(e.firstChild);t.forEach(function(t){e.appendChild(t)})}function r(e,t,n,s){var o,i,a={"Content-Type":"application/json"};return typeof AuthModule!="undefined"&&AuthModule.getAccessToken&&(o=AuthModule.getAccessToken(),o&&(a.Authorization="Bearer "+o)),i={skill_id:e,skill_slug:t,rating:n},s&&(i.feedback_text=s),fetch(c,{method:"POST",headers:a,body:JSON.stringify(i)}).then(function(e){return e.json()})}function o(t,s,o){var i,a,r,c,l,d,u,h,m,f,p,g,v=document.getElementById("feedback-modal");v&&v.remove(),i=document.createElement("div"),i.id="feedback-modal",i.className="feedback-modal-backdrop",i.setAttribute("role","dialog"),i.setAttribute("aria-modal","true"),i.setAttribute("aria-labelledby","feedback-modal-title"),c=document.createElement("div"),c.className="feedback-modal",d=document.createElement("div"),d.className="feedback-modal-header",p=document.createElement("h3"),p.id="feedback-modal-title",p.textContent="What went wrong?",d.appendChild(p),r=document.createElement("button"),r.className="feedback-modal-close",r.setAttribute("aria-label","Close modal"),r.textContent="\xD7",r.addEventListener("click",function(){e(i)}),d.appendChild(r),c.appendChild(d),l=document.createElement("div"),l.className="feedback-modal-body",g=document.createElement("p"),g.textContent="Help us improve this skill by sharing what issues you encountered.",l.appendChild(g),a=document.createElement("textarea"),a.id="feedback-text",a.
1className="feedback-textarea",a.setAttribute("placeholder","e.g., The prompt didn't work with Claude, it gave an error about..."),a.setAttribute("rows","4"),a.setAttribute("maxlength","1000"),l.appendChild(a),u=document.createElement("div"),u.className="feedback-char-count",u.textContent="0 / 1000",l.appendChild(u),a.addEventListener("input",function(){u.textContent=a.value.length+" / 1000"}),c.appendChild(l),h=document.createElement("div"),h.className="feedback-modal-footer",m=document.createElement("button"),m.className="btn btn-secondary feedback-cancel-btn",m.textContent="Cancel",m.addEventListener("click",function(){e(i)}),h.appendChild(m),f=document.createElement("button"),f.className="btn btn-primary feedback-submit-btn",f.textContent="Submit Feedback",f.addEventListener("click",function(){var r=a.value.trim();e(i),n(o,t,s,"down",r)}),h.appendChild(f),c.appendChild(h),i.appendChild(c),document.body.appendChild(i),setTimeout(function(){a.focus()},100),i.addEventListener("click",function(t){t.target===i&&e(i)}),document.addEventListener("keydown",function t(n){n.key==="Escape"&&(e(i),document.removeEventListener("keydown",t))}),requestAnimationFrame(function(){i.classList.add("feedback-modal-visible")})}function e(e){e.classList.remove("feedback-modal-visible"),setTimeout(function(){e.remove()},200)}function s(e,t,n){var s,o,i,a,r,c,l,d,h,m,f,p,u=t?t.closest(".skill-feedback"):null;if(u&&(m=n==="up",p=m?"Thanks for the feedback!":"Thanks! We'll look into it.",u.classList.add("feedback-submitted"),a=u.querySelector(".feedback-buttons"),a)){for(;a.firstChild;)a.removeChild(a.firstChild);c=document.createElement("div"),c.className="feedback-thank-you",s=document.createElementNS("http://www.w3.org/2000/svg","svg"),s.setAttribute("width","24"),s.setAttribute("height","24"),s.setAttribute("viewBox","0 0 24 24"),s.setAttribute("fill","none"),s.setAttribute("stroke","currentColor"),s.setAttribute("stroke-width","2"),s.setAttribute("aria-hidden","true"),m?(l=document.createElementNS("http://www.w3.org/2000/svg","path"),l.setAttribute("d","M22 11.08V12a10 10 0 1 1-5.93-9.14"),s.appendChild(l),d=document.createElementNS("http://www.w3.org/2000/svg","polyline"),d.setAttribute("points","22 4 12 14.01 9 11.01"),s.appendChild(d)):(r=document.createElementNS("http://www.w3.org/2000/svg","circle"),r.setAttribute("cx","12"),r.setAttribute("cy","12"),r.setAttribute("r","10"),s.appendChild(r),h=document.createElementNS("http://www.w3.org/2000/svg","path"),h.setAttribute("d","M8 15h8"),s.appendChild(h),i=document.createElementNS("http://www.w3.org/2000/svg","line"),i.setAttribute("x1","9"),i.setAttribute("y1","9"),i.setAttribute("x2","9.01"),i.setAttribute("y2","9"),s.appendChild(i),o=document.createElementNS("http://www.w3.org/2000/svg","line"),o.setAttribute("x1","15"),o.setAttribute("y1","9"),o.setAttribute("x2","15.01"),o.setAttribute("y2","9"),s.appendChild(o)),c.appendChild(s),f=document.createElement("span"),f.textContent=p,c.appendChild(f),a.appendChild(c)}}function u(e,n){try{var s=JSON.parse(localStorage.getItem(t)||"{}");s[e]={rating:n,timestamp:Date.now()},localStorage.setItem(t,JSON.stringify(s))}catch(e){console.warn("[Feedback] Could not save to localStorage:",e)}}function h(e){try{var n=JSON.parse(localStorage.getItem(t)||"{}");return n[e]||null}catch{return null}}function m(){var e=document.querySelectorAll(".btn-feedback");e.forEach(function(e){var t,o=e.dataset.skillId,n=h(o);n&&(t=e.closest(".feedback-buttons"),t&&s(e,t,n.rating))})}function f(e,t){if(t=t||"info",typeof window.showToast=="function"){window.showToast(e,t);return}var n=document.createElement("div");n.className="toast toast--"+t,n.textContent=e,n.style.position="fixed",n.style.bottom="20px",n.style.left="50%",n.style.transform="translateX(-50%)",n.style.padding="12px 24px",n.style.background=t==="error"?"var(--color-error, #ef4444)":"var(--color-success, #22c55e)",n.style.color="white",n.style.borderRadius="8px",n.style.fontSize="14px",n.style.zIndex="9999",n.style.boxShadow="0 4px 12px rgba(0, 0, 0, 0.15)",n.style.animation="feedbackSlideUp 0.3s ease-out",document.body.appendChild(n),setTimeout(function(){n.style.animation="fadeOut 0.3s ease-out forwards",setTimeout(function(){n.remove()},300)},3e3)}function p(){if(document.getElementById("feedback-styles"))return;var e=document.createElement("style");e.id="feedback-styles",e.textContent=["/* Animations */","@keyframes feedbackSlideUp {","  from { opacity: 0; transform: translateX(-50%) translateY(20px); }","  to { opacity: 1; transform: translateX(-50%) translateY(0); }","}","@keyframes fadeOut {","  from { opacity: 1; }","  to { opacity: 0; }","}",".spin {","  animation: spin 1s linear infinite;","}","@keyframes spin {","  from { transform: rotate(0deg); }","  to { transform: rotate(360deg); }","}","@keyframes fadeIn {","  from { opacity: 0; }","  to { opacity: 1; }","}","","/* Thank you state */",".feedback-thank-you {","  display: flex;","  align-items: center;","  gap: var(--space-3, 12px);","  padding: var(--space-4, 16px) var(--space-6, 24px);","  background: rgba(34, 197, 94, 0.1);","  border: 1px solid rgba(34, 197, 94, 0.2);","  border-radius: var(--radius-lg, 12px);","  color: var(--color-success, #22c55e);","  font-weight: 500;","}",".feedback-submitted .feedback-buttons {","  animation: fadeIn 0.3s ease-out;","}","","/* Modal backdrop */",".feedback-modal-backdrop {","  position: fixed;","  inset: 0;","  background: rgba(0, 0, 0, 0.6);","  backdrop-filter: blur(4px);","  display: flex;","  align-items: center;","  justify-content: center;","  z-index: 10000;","  opacity: 0;","  transition: opacity 0.2s ease-out;","  padding: var(--space-4, 16px);","}",".feedback-modal-backdrop.feedback-modal-visible {","  opacity: 1;","}","","/* Modal */",".feedback-modal {","  background: var(--color-bg-primary, #0f0f12);","  border: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));","  border-radius: var(--radius-xl, 16px);","  max-width: 480px;","  width: 100%;","  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);","  transform: scale(0.95);","  transition: transform 0.2s ease-out;","}",".feedback-modal-visible .feedback-modal {","  transform: scale(1);","}","","/* Modal header */",".feedback-modal-header {","  display: flex;","  align-items: center;","  justify-content: space-between;","  padding: var(--space-5, 20px) var(--space-6, 24px);","  border-bottom: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));","}",".feedback-modal-header h3 {","  margin: 0;","  font-size: var(--text-lg, 1.125rem);","  font-weight: 600;","  color: var(--color-text-primary, #ffffff);","}",".feedback-modal-close {","  background: none;","  border: none;","  font-size: 24px;","  color: var(--color-text-tertiary, rgba(255, 255, 255, 0.5));","  cursor: pointer;","  padding: 0;","  line-height: 1;","  transition: color 0.15s;","}
1",".feedback-modal-close:hover {","  color: var(--color-text-primary, #ffffff);","}","","/* Modal body */",".feedback-modal-body {","  padding: var(--space-6, 24px);","}",".feedback-modal-body p {","  margin: 0 0 var(--space-4, 16px) 0;","  color: var(--color-text-secondary, rgba(255, 255, 255, 0.7));","  font-size: var(--text-sm, 0.875rem);","}",".feedback-textarea {","  width: 100%;","  padding: var(--space-3, 12px);","  background: var(--color-bg-secondary, rgba(255, 255, 255, 0.05));","  border: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));","  border-radius: var(--radius-lg, 12px);","  color: var(--color-text-primary, #ffffff);","  font-size: var(--text-sm, 0.875rem);","  font-family: inherit;","  resize: vertical;","  min-height: 100px;","  transition: border-color 0.15s;","}",".feedback-textarea:focus {","  outline: none;","  border-color: var(--color-primary, #5856d6);","}",".feedback-textarea::placeholder {","  color: var(--color-text-tertiary, rgba(255, 255, 255, 0.4));","}",".feedback-char-count {","  text-align: right;","  font-size: var(--text-xs, 0.75rem);","  color: var(--color-text-tertiary, rgba(255, 255, 255, 0.4));","  margin-top: var(--space-2, 8px);","}","","/* Modal footer */",".feedback-modal-footer {","  display: flex;","  gap: var(--space-3, 12px);","  justify-content: flex-end;","  padding: var(--space-4, 16px) var(--space-6, 24px);","  border-top: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));","}",".feedback-cancel-btn {","  background: transparent;","  border: 1px solid var(--color-border-primary, rgba(255, 255, 255, 0.1));","  color: var(--color-text-secondary, rgba(255, 255, 255, 0.7));","  padding: var(--space-2, 8px) var(--space-4, 16px);","  border-radius: var(--radius-md, 8px);","  font-size: var(--text-sm, 0.875rem);","  cursor: pointer;","  transition: all 0.15s;","}",".feedback-cancel-btn:hover {","  background: rgba(255, 255, 255, 0.05);","  border-color: rgba(255, 255, 255, 0.2);","}",".feedback-submit-btn {","  background: var(--color-primary, #5856d6);","  border: none;","  color: white;","  padding: var(--space-2, 8px) var(--space-4, 16px);","  border-radius: var(--radius-md, 8px);","  font-size: var(--text-sm, 0.875rem);","  font-weight: 500;","  cursor: pointer;","  transition: all 0.15s;","}",".feedback-submit-btn:hover {","  background: var(--color-primary-hover, #4845c7);","}","","/* Light mode overrides */",':root:not([data-theme="dark"]) .feedback-modal {',"  background: #ffffff;","  border-color: rgba(0, 0, 0, 0.1);","  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);","}",':root:not([data-theme="dark"]) .feedback-modal-header {',"  border-bottom-color: rgba(0, 0, 0, 0.1);","}",':root:not([data-theme="dark"]) .feedback-modal-header h3 {',"  color: #1a1a1a;","}",':root:not([data-theme="dark"]) .feedback-modal-close {',"  color: rgba(0, 0, 0, 0.4);","}",':root:not([data-theme="dark"]) .feedback-modal-close:hover {',"  color: #1a1a1a;","}",':root:not([data-theme="dark"]) .feedback-modal-body p {',"  color: #4a4a4a;","}",':root:not([data-theme="dark"]) .feedback-textarea {',"  background: #f5f5f7;","  border-color: rgba(0, 0, 0, 0.1);","  color: #1a1a1a;","}",':root:not([data-theme="dark"]) .feedback-textarea:focus {',"  border-color: var(--color-primary, #5856d6);","}",':root:not([data-theme="dark"]) .feedback-textarea::placeholder {',"  color: rgba(0, 0, 0, 0.4);","}",':root:not([data-theme="dark"]) .feedback-char-count {',"  color: rgba(0, 0, 0, 0.4);","}",':root:not([data-theme="dark"]) .feedback-modal-footer {',"  border-top-color: rgba(0, 0, 0, 0.1);","}",':root:not([data-theme="dark"]) .feedback-cancel-btn {',"  border-color: rgba(0, 0, 0, 0.15);","  color: #4a4a4a;","}",':root:not([data-theme="dark"]) .feedback-cancel-btn:hover {',"  background: rgba(0, 0, 0, 0.05);","  border-color: rgba(0, 0, 0, 0.2);","}",':root:not([data-theme="dark"]) .feedback-thank-you {',"  background: rgba(34, 197, 94, 0.08);","  border-color: rgba(34, 197, 94, 0.15);","}"].join(`
2`),document.head.appendChild(e)}})()})()

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.