From 9253952c2014e1ead81f3cb11d87d4d0532b1dbe Mon Sep 17 00:00:00 2001 From: edde746 Date: Fri, 18 Aug 2023 10:48:03 +0000 Subject: [PATCH] deploy: 52868af138cb009f89c53c16a1a7e3f535133b14 --- 404.md | 14 +++++++- README.md | 14 +++++++- canned-responses/plugin.js | 65 ++++++++++++++++++++++++++++++++++++ canned-responses/plugin.json | 1 + 4 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 canned-responses/plugin.js create mode 100644 canned-responses/plugin.json diff --git a/404.md b/404.md index 08cfe22..f607a4f 100644 --- a/404.md +++ b/404.md @@ -5,6 +5,18 @@ permalink: /404.html # shelter-plugins -`https://edde746.github.io/shelter-plugins/gpt` - Generate responses based on recent messages in the channel and a prompt. +## gpt + +`https://edde746.github.io/shelter-plugins/gpt` + +Generate responses based on recent messages in the channel and a prompt. ![GPT Plugin Showcase](/previews/gpt.png) + +## canned-responses + +`https://edde746.github.io/shelter-plugins/canned-responses` + +Quickly send a canned response. + +![Canned Responses Plugin Showcase](/previews/responses.png) diff --git a/README.md b/README.md index 793c046..84e24e2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,17 @@ # shelter-plugins -`https://edde746.github.io/shelter-plugins/gpt` - Generate responses based on recent messages in the channel and a prompt. +## gpt + +`https://edde746.github.io/shelter-plugins/gpt` + +Generate responses based on recent messages in the channel and a prompt. ![GPT Plugin Showcase](/previews/gpt.png) + +## canned-responses + +`https://edde746.github.io/shelter-plugins/canned-responses` + +Quickly send a canned response. + +![Canned Responses Plugin Showcase](/previews/responses.png) diff --git a/canned-responses/plugin.js b/canned-responses/plugin.js new file mode 100644 index 0000000..d239651 --- /dev/null +++ b/canned-responses/plugin.js @@ -0,0 +1,65 @@ +(()=>{var S=Object.create;var h=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var E=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var D=(e,n)=>()=>(n||e((n={exports:{}}).exports,n),n.exports),T=(e,n)=>{for(var t in n)h(e,t,{get:n[t],enumerable:!0})},x=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let a of E(n))!I.call(e,a)&&a!==t&&h(e,a,{get:()=>n[a],enumerable:!(o=z(n,a))||o.enumerable});return e};var g=(e,n,t)=>(t=e!=null?S(R(e)):{},x(n||!e||!e.__esModule?h(t,"default",{value:e,enumerable:!0}):t,e)),A=e=>x(h({},"__esModule",{value:!0}),e);var m=D((ie,b)=>{b.exports=shelter.solidWeb});var re={};T(re,{onLoad:()=>se,onUnload:()=>oe});var v=g(m(),1),y=g(m(),1),f=g(m(),1),M=g(m(),1),p=g(m(),1),c=g(m(),1),L=(0,v.template)('
',4),U=(0,v.template)('
',6),j=(0,v.template)('

Canned Responses

',8),O=(0,v.template)("
",2),q=(0,v.template)('

No canned responses

Click the "Manage" button to add some.

',6),F=(0,v.template)('
',10),{observeDom:H,ui:{injectCss:W,Button:$,openModal:Y,ModalRoot:G,ModalHeader:J,ModalBody:K,ModalFooter:de,ModalSizes:Q,ButtonColors:w,ButtonSizes:N,TextArea:V,TextBox:X,niceScrollbarsClass:Z},plugin:{store:l},util:{getFiber:ee}}=shelter;l.responses||(l.responses=[]);var k=null,te=()=>(0,c.createComponent)(G,{get size(){return Q.MEDIUM},get children(){return[(0,c.createComponent)(J,{close:()=>k(),children:"Canned Responses"}),(0,c.createComponent)(K,{get children(){let e=L.cloneNode(!0),n=e.firstChild;return(0,p.insert)(n,(0,c.createComponent)($,{onClick:()=>{l.responses.push({id:Math.random().toString(36).substring(7),name:"New Response",content:""})},grow:!0,style:{width:"100%"},children:"Add Response"})),(0,p.insert)(e,()=>l.responses.map(t=>(()=>{let o=U.cloneNode(!0),a=o.firstChild,d=a.firstChild;return(0,p.insert)(a,(0,c.createComponent)(X,{get value(){return t.name},placeholder:"Response name",onInput:s=>{let r=l.responses.findIndex(({id:i})=>i===t.id);l.responses[r].name=s}}),d),(0,p.insert)(d,(0,c.createComponent)($,{get color(){return w.RED},get size(){return N.MEDIUM},onClick:()=>{l.responses.splice(l.responses.findIndex(({id:s})=>s===t.id),1),l.responses=[...l.responses]},children:"Delete"})),(0,p.insert)(o,(0,c.createComponent)(V,{get value(){return t.content},placeholder:"Message content",onInput:s=>{let r=l.responses.findIndex(({id:i})=>i===t.id);l.responses[r].content=s}}),null),o})()),null),e}})]}}),ne=e=>{let n=document.querySelector('[class*="slateContainer-"]');ee(n).child.pendingProps.editor.insertText(e)},u=null,B=null,_=()=>{if(u){u.remove(),u=null;return}let e=B.getBoundingClientRect();u=document.body.appendChild((()=>{let t=j.cloneNode(!0),o=t.firstChild,a=o.firstChild,d=o.nextSibling;return t.style.setProperty("width","300px"),(0,p.insert)(o,(0,c.createComponent)($,{onClick:()=>{_(),k=Y(s=>te())},children:"Manage"}),null),(0,p.insert)(d,(()=>{let s=(0,M.memo)(()=>l.responses.length>0);return()=>s()?(()=>{let r=O.cloneNode(!0);return r.style.setProperty("display","grid"),r.style.setProperty("gap",".5rem"),(0,p.insert)(r,()=>l.responses.map(i=>(0,c.createComponent)($,{get size(){return N.MEDIUM},get color(){return w.SECONDARY},style:{width:"100%"},grow:!0,onClick:()=>{console.log(i.content),ne(i.content),_()},get children(){return i.name}}))),(0,f.effect)(()=>r.className=`${Z()} send-responses`),r})():q.cloneNode(!0)})()),(0,f.effect)(s=>{let r=`${e.top+(e.height+18)}px`,i=`${e.left+e.width/2}px`,C=`translate(-50%, calc(-100% - ${e.height+18}px))`;return r!==s._v$&&t.style.setProperty("top",s._v$=r),i!==s._v$2&&t.style.setProperty("left",s._v$2=i),C!==s._v$3&&t.style.setProperty("transform",s._v$3=C),s},{_v$:void 0,_v$2:void 0,_v$3:void 0}),t})());let n=t=>{u?.contains(t.target)||(u?.remove(),u=null,document.removeEventListener("click",n))};document.addEventListener("click",n)},P=null;function se(){W(` + .send-responses { + max-height: 200px; + overflow-y: auto; + } +.response .header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: .25rem; +} + +.response { + margin-bottom: .5rem; +} + +.add-response { + margin-bottom: .75rem; +} + +.send-popout { + background: var(--modal-background); + color: var(--text-normal); + border-radius: 4px; + padding: var(--spacing-16); + position: absolute; + top: 0px; + left: 0px; + z-index: 1000; + box-shadow: var(--elevation-stroke),var(--elevation-high); +} + +.send-popout .header { + display: flex; + justify-content: space-between; + align-items: center; +} + +.send-popout .header h3 { + font-size: 1.1rem; + font-weight: 600; +} + +.send-popout .body { + margin-top: var(--spacing-16); +} + +.no-responses { + text-align: center; +} + +.no-responses h4 { + font-size: 1.06rem; + font-weight: 600; +} + +.no-responses p { + margin-top: 0; + color: var(--text-muted); +} + +.pr-2 { + padding-right: .5rem; +} +`),P=H('[class^="channelTextArea"] [class^="buttons"]',e=>{if(document.querySelector("#canned-responses"))return;let n=e.lastChild.previousSibling;B=e.insertBefore((()=>{let t=F.cloneNode(!0),o=t.firstChild,a=o.firstChild;return o.$$click=_,(0,f.effect)(d=>{let s=n.className,r=n.firstChild.className,i=n.firstChild.firstChild.className;return s!==d._v$4&&(t.className=d._v$4=s),r!==d._v$5&&(o.className=d._v$5=r),i!==d._v$6&&(a.className=d._v$6=i),d},{_v$4:void 0,_v$5:void 0,_v$6:void 0}),t})(),e.firstChild)})}function oe(){P(),u?.remove()}(0,y.delegateEvents)(["click"]);return A(re);})(); diff --git a/canned-responses/plugin.json b/canned-responses/plugin.json new file mode 100644 index 0000000..b585110 --- /dev/null +++ b/canned-responses/plugin.json @@ -0,0 +1 @@ +{"name":"canned-responses","author":"edde746","description":"Quickly send canned responses","hash":"a44df937156693b5a909b51e42bae8ee"} \ No newline at end of file