Skip to content

Commit 2945b08

Browse files
committed
Added themes.js as dependency ↞ [auto-sync from https://github.com/adamlui/ai-web-extensions/tree/main/duckduckgpt]
1 parent 53b4bdf commit 2945b08

1 file changed

Lines changed: 2 additions & 113 deletions

File tree

chatgpt/duckduckgpt/duckduckgpt.user.js

Lines changed: 2 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@
148148
// @description:zu Yengeza izimpendulo ze-AI ku-DuckDuckGo (inikwa amandla yi-GPT-4o!)
149149
// @author KudoAI
150150
// @namespace https://kudoai.com
151-
// @version 2025.9.16.10
151+
// @version 2025.9.20
152152
// @license MIT
153153
// @icon https://assets.ddgpt.com/images/icons/app/icon48.png?v=533ce0f
154154
// @icon64 https://assets.ddgpt.com/images/icons/app/icon64.png?v=533ce0f
@@ -207,6 +207,7 @@
207207
// @require https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@f4da9d4/assets/js/lib/chatbot/log.js#sha256-kjt26UXbx44I0/iDOf50F/LbRtsYcSwMHrexImR4D5A=
208208
// @require https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@199128d/assets/js/lib/chatbot/prompts.js#sha256-6U2C3dVLpYixR3UCNABCfvNpRa/9gJZYR8fElXmhGVk=
209209
// @require https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@4565425/assets/js/lib/chatbot/session.js#sha256-cH2e3l2bZQRekQHxaeSShdNguqD41evEOkMrrVIydHQ=
210+
// @require https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@1861401/assets/js/lib/chatbot/themes.js#sha256-ujpN5pwFdqQjF4UCsu7Pgge1aHbl6jNmbmcvw3AwoVM=
210211
// @require https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@3b0bccd/assets/js/lib/chatbot/ui.js#sha256-oN097tZtsr57Do6gpjDuRTQ1iLr3HzFxWmUmICvYD3c=
211212
// @require https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@4565425/assets/js/lib/chatbot/userscript.js#sha256-DTD+Tj/9angBw8/Q4e8PMz2SBwueqvNzeY8PwZlMgbs=
212213
// @require https://cdn.jsdelivr.net/gh/adamlui/ai-web-extensions@1e84c2e/assets/js/lib/dom.js/dist/dom.min.js#sha256-xovdxRnmYD/eCgBiGCu5+Vd3+WWIvLUKVtU/MnRueeU=
@@ -422,118 +423,6 @@
422423

423424
// Define UI functions
424425

425-
const themes = {
426-
apply(theme) {
427-
if (!this.styleNode) document.head.append(this.styleNode = dom.create.style())
428-
this.styleNode.textContent = this.styles[theme]
429-
},
430-
431-
selectors: {
432-
btn: {
433-
get after() { return this.shared.split(',').map(sel => `${sel}::after`).join(', ') },
434-
get before() { return this.shared.split(',').map(sel => `${sel}::before`).join(', ') },
435-
get hover() { return this.shared.split(',').map(sel => `${sel}:hover`).join(', ') },
436-
get hoverAfter() { return this.hover.split(',').map(sel => `${sel}::after`).join(', ') },
437-
get hoverBefore() { return this.hover.split(',').map(sel => `${sel}::before`).join(', ') },
438-
get hoverSVG() { return this.hover.split(',').map(sel => `${sel} svg`).join(', ') },
439-
modal: `body:has(#${app.slug}) .modal-buttons button`,
440-
modalPrimary: `body:has(#${app.slug}) .primary-modal-btn`,
441-
get shared() { return `${this.modal},${this.standby}` },
442-
get span() { return this.shared.split(',').map(sel => `${sel} span`).join(', ') },
443-
standby: `button.${app.slug}-standby-btn`,
444-
get svg() { return this.shared.split(',').map(sel => `${sel} svg`).join(', ') }
445-
}
446-
},
447-
448-
styles: {
449-
get lines() { const { selectors } = themes ; return `
450-
451-
/* General button styles */
452-
${selectors.btn.shared} {
453-
--content-color: ${ env.ui.app.scheme == 'light' ? '0,0,0' : '255,255,255' };
454-
--side-line-fill: linear-gradient(rgb(var(--content-color)), rgb(var(--content-color))) ;
455-
--skew: skew(-13deg) ; --counter-skew: skew(13deg) ; --btn-svg-zoom: scale(1.2) ;
456-
--btn-transition: 0.1s ease all ;
457-
position: relative ; border-width: 1px ; cursor: crosshair ;
458-
border: 1px solid rgb(var(--content-color)) ;
459-
background: /* side lines */
460-
var(--side-line-fill) left / 2px 50% no-repeat,
461-
var(--side-line-fill) right / 2px 50% no-repeat ;
462-
background-position-y: 81% ;
463-
background-color: #ffffff00 ; /* clear bg */
464-
color: rgba(var(--content-color), ${ env.ui.app.scheme == 'light' ? 0.85 : 1 }) ;
465-
font-size: 0.8em ; font-family: "Roboto", sans-serif ; text-transform: uppercase }
466-
${selectors.btn.svg} {
467-
stroke: rgba(var(--content-color), ${ env.ui.app.scheme == 'light' ? 0.65 : 1 }) ;
468-
${ config.fgAnimationsDisabled ? '' : `transition: var(--btn-transition) ;
469-
-webkit-transition: var(--btn-transition) ; -moz-transition: var(--btn-transition) ;
470-
-o-transition: var(--btn-transition) ; -ms-transition: var(--btn-transition)` }}
471-
${selectors.btn.span} { font-weight: 600 ; display: inline-block } /* text */
472-
${selectors.btn.before}, ${selectors.btn.after} { /* top/bottom lines */
473-
content: "" ; position: absolute ; background: rgb(var(--content-color)) ;
474-
${ config.fgAnimationsDisabled ? '' : `transition: var(--btn-transition) ;
475-
-webkit-transition: var(--btn-transition) ; -moz-transition: var(--btn-transition) ;
476-
-o-transition: var(--btn-transition) ; -ms-transition: var(--btn-transition)` }}
477-
${selectors.btn.before} { top: 0 ; left: 10% ; width: 65% ; height: 1px } /* top line */
478-
${selectors.btn.after} { bottom: 0 ; right: 10% ; width: 80% ; height: 1px } /* bottom line */
479-
${selectors.btn.hover} {
480-
color: rgb(var(--content-color)) ;
481-
background: /* extend side lines */
482-
var(--side-line-fill) left / 2px 100% no-repeat,
483-
var(--side-line-fill) right / 2px 100% no-repeat !important }
484-
${selectors.btn.hoverBefore} { left: 0 ; width: 20px } /* top line on hover */
485-
${selectors.btn.hoverAfter} { right: 0 ; width: 20px } /* bottom line on hover */
486-
${selectors.btn.hoverSVG} { transform: var(--btn-svg-zoom) ; stroke: rgba(var(--content-color),1) }
487-
488-
/* Modal styles */
489-
.${modals.class} { border-radius: 0 !important } /* square the corners to match the buttons */
490-
491-
/* Modal button styles */
492-
${selectors.btn.modal} {
493-
--modal-btn-y-offset: 2px ; --glow-color: #a0fdff ;
494-
--modal-btn-zoom: scale(1.075) ;
495-
--modal-btn-transition: transform 0.1s ease, background 0.2s ease, box-shadow 0.5s ease ;
496-
${ config.fgAnimationsDisabled ? /* override chatgpt.js transitions */
497-
`transition: none ;
498-
-webkit-transition: none ; -moz-transition: none ;
499-
-o-transition: none ; -ms-transition: none`
500-
: `transition: var(--modal-btn-transition) ;
501-
-webkit-transition: var(--modal-btn-transition) ;
502-
-moz-transition: var(--modal-btn-transition) ;
503-
-o-transition: var(--modal-btn-transition) ;
504-
-ms-transition: var(--modal-btn-transition)` }}
505-
${selectors.btn.modalPrimary} {
506-
${ env.ui.app.scheme == 'dark' ? 'background-color: white !important ; color: black'
507-
: 'background-color: black !important ; color: white' }}
508-
${selectors.btn.modal}:nth-child(odd) {
509-
transform: translateY(calc(-1 * var(--modal-btn-y-offset))) }
510-
${selectors.btn.modal}:nth-child(even) {
511-
transform: translateY(var(--modal-btn-y-offset)) }
512-
${selectors.btn.modal}:nth-child(odd):hover {
513-
transform: translateY(calc(-1 * var(--modal-btn-y-offset))) ${
514-
env.browser.isMobile ? '' : 'var(--modal-btn-zoom)' }}
515-
${selectors.btn.modal}:nth-child(even):hover {
516-
transform: translateY(var(--modal-btn-y-offset)) ${
517-
env.browser.isMobile ? '' : 'var(--modal-btn-zoom)' }}
518-
${selectors.btn.modal}:hover { /* add glow */
519-
background-color: var(--glow-color) !important ;
520-
box-shadow: 2px 1px 30px var(--glow-color) ;
521-
-webkit-box-shadow: 2px 1px 30px var(--glow-color) ;
522-
-moz-box-shadow: 2px 1px 30px var(--glow-color) }
523-
524-
/* Standby button styles */
525-
${selectors.btn.standby} {
526-
--standby-btn-transition: transform 0.18s ease, background 0.2s ease ;
527-
font-size: 11.5px ; width: 80% ; height: 51px ; margin-bottom: 16px }
528-
${selectors.btn.standby}:nth-child(odd) { margin-right: 20% ; margin-left: 15px }
529-
${selectors.btn.standby}:nth-child(even) { margin-left: 20% ; margin-bottom: 19px }
530-
${selectors.btn.standby}:hover {
531-
border : 1px rgba(var(--content-color), ${
532-
env.ui.app.scheme == 'dark' ? '1) solid' : '0.6) dotted' }}`
533-
}
534-
}
535-
}
536-
537426
window.update = {
538427

539428
appBottomPos() { app.div.style.bottom = `${ config.minimized ? 61 - app.div.offsetHeight : -7 }px` },

0 commit comments

Comments
 (0)