├── spectrum-1.8.1 ├── build │ └── .gitignore ├── .gitignore ├── .travis.yml ├── test │ ├── loaders.html │ ├── index.html │ ├── loaders.js │ ├── qunit.css │ └── tests.js ├── i18n │ ├── jquery.spectrum-tr.js │ ├── jquery.spectrum-dk.js │ ├── jquery.spectrum-sv.js │ ├── jquery.spectrum-fi.js │ ├── jquery.spectrum-ja.js │ ├── jquery.spectrum-it.js │ ├── jquery.spectrum-nl.js │ ├── jquery.spectrum-ar.js │ ├── jquery.spectrum-ko.js │ ├── jquery.spectrum-zh-cn.js │ ├── jquery.spectrum-ru.js │ ├── jquery.spectrum-zh-tw.js │ ├── jquery.spectrum-he.js │ ├── jquery.spectrum-fa.js │ ├── jquery.spectrum-pl.js │ ├── jquery.spectrum-hr.js │ ├── jquery.spectrum-lt.js │ ├── jquery.spectrum-ca.js │ ├── jquery.spectrum-de.js │ ├── jquery.spectrum-es.js │ ├── jquery.spectrum-fr.js │ ├── jquery.spectrum-id.js │ ├── jquery.spectrum-pt-br.js │ ├── jquery.spectrum-gr.js │ └── jquery.spectrum-cs.js ├── bower.json ├── package.json ├── LICENSE ├── Gruntfile.js ├── themes │ ├── sp-dark.css │ └── index.html ├── README.md ├── docs │ ├── toc.js │ ├── docs.css │ ├── prettify.js │ └── docs.js ├── example │ ├── testcase.html │ ├── index.html │ └── example.js └── spectrum.css ├── docs └── overview.png ├── logos └── logo_1.png ├── common ├── js │ ├── common │ │ └── broadcast.js │ ├── hotkeys.js │ ├── view │ │ ├── app.js │ │ └── panel.js │ └── config │ │ ├── panelHandlers.js │ │ └── app.js └── css │ ├── config.css │ └── panels.css ├── view.html ├── config.html ├── README.md └── lower-thirds_hotkeys.lua /spectrum-1.8.1/build/.gitignore: -------------------------------------------------------------------------------- 1 | spectrum-min.js 2 | -------------------------------------------------------------------------------- /spectrum-1.8.1/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | -------------------------------------------------------------------------------- /docs/overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scoreyb/obs-panels/HEAD/docs/overview.png -------------------------------------------------------------------------------- /logos/logo_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scoreyb/obs-panels/HEAD/logos/logo_1.png -------------------------------------------------------------------------------- /spectrum-1.8.1/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - 10 4 | before_script: 5 | - npm install -g grunt-cli 6 | script: 7 | - grunt travis --verbose -------------------------------------------------------------------------------- /spectrum-1.8.1/test/loaders.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Spectrum Tests 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-tr.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Turkish (tr) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["tr"] = { 8 | cancelText: "iptal", 9 | chooseText: "tamam" 10 | }; 11 | 12 | $.extend($.fn.spectrum.defaults, localization); 13 | 14 | })( jQuery ); 15 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-dk.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Danish (dk) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["dk"] = { 8 | cancelText: "annuller", 9 | chooseText: "Vælg" 10 | }; 11 | 12 | $.extend($.fn.spectrum.defaults, localization); 13 | 14 | })( jQuery ); 15 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-sv.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Swedish (sv) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["sv"] = { 8 | cancelText: "Avbryt", 9 | chooseText: "Välj" 10 | }; 11 | 12 | $.extend($.fn.spectrum.defaults, localization); 13 | 14 | })( jQuery ); 15 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-fi.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Finnish (fi) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["fi"] = { 8 | cancelText: "Kumoa", 9 | chooseText: "Valitse" 10 | }; 11 | 12 | $.extend($.fn.spectrum.defaults, localization); 13 | 14 | })( jQuery ); 15 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-ja.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Japanese (ja) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["ja"] = { 8 | cancelText: "中止", 9 | chooseText: "選択" 10 | }; 11 | 12 | $.extend($.fn.spectrum.defaults, localization); 13 | 14 | })( jQuery ); 15 | -------------------------------------------------------------------------------- /common/js/common/broadcast.js: -------------------------------------------------------------------------------- 1 | var Panel = Panel || {}; 2 | 3 | Panel.Broadcast = function (onmessage) { 4 | var channel = new BroadcastChannel('panel-comms-channel'); 5 | 6 | channel.onmessage = onmessage; 7 | 8 | var send = function (msg) { 9 | channel.postMessage(msg); 10 | }; 11 | 12 | var close = function () { 13 | channel.close(); 14 | }; 15 | 16 | return { 17 | send: send, 18 | close: close, 19 | }; 20 | }; -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-it.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Italian (it) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["it"] = { 8 | cancelText: "annulla", 9 | chooseText: "scegli", 10 | clearText: "Annulla selezione colore", 11 | noColorSelectedText: "Nessun colore selezionato" 12 | }; 13 | 14 | $.extend($.fn.spectrum.defaults, localization); 15 | 16 | })( jQuery ); 17 | -------------------------------------------------------------------------------- /view.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 |
18 | 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-nl.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Dutch (nl-nl) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["nl-nl"] = { 8 | cancelText: "Annuleer", 9 | chooseText: "Kies", 10 | clearText: "Wis kleur selectie", 11 | togglePaletteMoreText: 'Meer', 12 | togglePaletteLessText: 'Minder' 13 | }; 14 | 15 | $.extend($.fn.spectrum.defaults, localization); 16 | 17 | })( jQuery ); 18 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-ar.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Arabic (ar) localization 3 | // https://github.com/bgrins/spectrum 4 | (function ( $ ) { 5 | 6 | var localization = $.spectrum.localization["ar"] = { 7 | cancelText: "إلغاء", 8 | chooseText: "إختار", 9 | clearText: "إرجاع الألوان على ما كانت", 10 | noColorSelectedText: "لم تختار أي لون", 11 | togglePaletteMoreText: "أكثر", 12 | togglePaletteLessText: "أقل" 13 | }; 14 | 15 | $.extend($.fn.spectrum.defaults, localization); 16 | 17 | })( jQuery ); 18 | -------------------------------------------------------------------------------- /spectrum-1.8.1/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Spectrum Tests 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-ko.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Korean (ko) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["ko"] = { 8 | cancelText: "취소", 9 | chooseText: "선택", 10 | clearText: "선택 초기화", 11 | noColorSelectedText: "선택된 색상 없음", 12 | togglePaletteMoreText: "더보기", 13 | togglePaletteLessText: "줄이기" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "spectrum", 3 | "version": "1.8.1", 4 | "main": ["./spectrum.css", "./spectrum.js"], 5 | "docs": "http://bgrins.github.com/spectrum", 6 | "homepage": "http://bgrins.github.com/spectrum", 7 | "demo": "http://jsfiddle.net/bgrins/ctkY3/", 8 | "dependencies": { 9 | "jquery": ">=1.7.2" 10 | }, 11 | "ignore": [ 12 | ".gitignore", 13 | ".travis.yml", 14 | "build/", 15 | "docs/", 16 | "example/", 17 | "Gruntfile.js", 18 | "LICENSE", 19 | "README.md", 20 | "test/" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-zh-cn.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Simplified Chinese (zh-cn) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["zh-cn"] = { 8 | cancelText: "取消", 9 | chooseText: "选择", 10 | clearText: "清除", 11 | togglePaletteMoreText: "更多选项", 12 | togglePaletteLessText: "隐藏", 13 | noColorSelectedText: "尚未选择任何颜色" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-ru.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Russian (ru) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["ru"] = { 8 | cancelText: "Отмена", 9 | chooseText: "Выбрать", 10 | clearText: "Сбросить", 11 | noColorSelectedText: "Цвет не выбран", 12 | togglePaletteMoreText: "Ещё", 13 | togglePaletteLessText: "Скрыть" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-zh-tw.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Traditional Chinese (zh-tw) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["zh-tw"] = { 8 | cancelText: "取消", 9 | chooseText: "選擇", 10 | clearText: "清除", 11 | togglePaletteMoreText: "更多選項", 12 | togglePaletteLessText: "隱藏", 13 | noColorSelectedText: "尚未選擇任何顏色" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/test/loaders.js: -------------------------------------------------------------------------------- 1 | 2 | require(["../spectrum", "./qunit"], function (spectrum, QUnit) { 3 | QUnit.module("Initialization"); 4 | QUnit.test("Custom offset", function (assert) { 5 | assert.ok($.fn.spectrum, "Plugin has been loaded"); 6 | 7 | // Just do some basic stuff with the API as a sanity check. 8 | var el = $("").spectrum(); 9 | el.spectrum("set", "red"); 10 | assert.equal(el.spectrum("get").toName(), "red", "Basic color setting"); 11 | el.spectrum("destroy"); 12 | }); 13 | 14 | QUnit.start(); 15 | }); 16 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-he.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Hebrew (he) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["he"] = { 8 | cancelText: "בטל בחירה", 9 | chooseText: "בחר צבע", 10 | clearText: "אפס בחירה", 11 | noColorSelectedText: "לא נבחר צבע", 12 | togglePaletteMoreText: "עוד צבעים", 13 | togglePaletteLessText: "פחות צבעים" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-fa.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Persian (fa) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["fa"] = { 8 | cancelText: "لغو", 9 | chooseText: "انتخاب", 10 | clearText: "تنظیم مجدد رنگ", 11 | noColorSelectedText: "هیچ رنگی انتخاب نشده است!", 12 | togglePaletteMoreText: "بیشتر", 13 | togglePaletteLessText: "کمتر" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-pl.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Polish (pl) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["pl"] = { 8 | cancelText: "Anuluj", 9 | chooseText: "Wybierz", 10 | clearText: "Usuń wybór koloru", 11 | noColorSelectedText: "Nie wybrano koloru", 12 | togglePaletteMoreText: "Więcej", 13 | togglePaletteLessText: "Mniej" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-hr.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Croatian (hr) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["hr"] = { 8 | cancelText: "Odustani", 9 | chooseText: "Odaberi", 10 | clearText: "Poništi odabir", 11 | noColorSelectedText: "Niti jedna boja nije odabrana", 12 | togglePaletteMoreText: "Više", 13 | togglePaletteLessText: "Manje" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-lt.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Lithuanian (lt) localization 3 | // https://github.com/liesislukas 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["lt"] = { 8 | cancelText: "Atšaukti", 9 | chooseText: "Pasirinkti", 10 | clearText: "Išvalyti pasirinkimą", 11 | noColorSelectedText: "Spalva nepasirinkta", 12 | togglePaletteMoreText: "Daugiau", 13 | togglePaletteLessText: "Mažiau" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-ca.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Catalan (ca) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["ca"] = { 8 | cancelText: "Cancel·lar", 9 | chooseText: "Escollir", 10 | clearText: "Esborrar color seleccionat", 11 | noColorSelectedText: "Cap color seleccionat", 12 | togglePaletteMoreText: "Més", 13 | togglePaletteLessText: "Menys" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-de.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // German (de) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["de"] = { 8 | cancelText: "Abbrechen", 9 | chooseText: "Wählen", 10 | clearText: "Farbauswahl zurücksetzen", 11 | noColorSelectedText: "Keine Farbe ausgewählt", 12 | togglePaletteMoreText: "Mehr", 13 | togglePaletteLessText: "Weniger" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-es.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Spanish (es) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["es"] = { 8 | cancelText: "Cancelar", 9 | chooseText: "Elegir", 10 | clearText: "Borrar color seleccionado", 11 | noColorSelectedText: "Ningún color seleccionado", 12 | togglePaletteMoreText: "Más", 13 | togglePaletteLessText: "Menos" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-fr.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // French (fr) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["fr"] = { 8 | cancelText: "Annuler", 9 | chooseText: "Valider", 10 | clearText: "Effacer couleur sélectionnée", 11 | noColorSelectedText: "Aucune couleur sélectionnée", 12 | togglePaletteMoreText: "Plus", 13 | togglePaletteLessText: "Moins" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-id.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Indonesia/Bahasa Indonesia (id) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["id"] = { 8 | cancelText: "Batal", 9 | chooseText: "Pilih", 10 | clearText: "Hapus Pilihan Warna", 11 | noColorSelectedText: "Warna Tidak Dipilih", 12 | togglePaletteMoreText: "tambah", 13 | togglePaletteLessText: "kurangi" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-pt-br.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Brazilian (pt-br) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["pt-br"] = { 8 | cancelText: "Cancelar", 9 | chooseText: "Escolher", 10 | clearText: "Limpar cor selecionada", 11 | noColorSelectedText: "Nenhuma cor selecionada", 12 | togglePaletteMoreText: "Mais", 13 | togglePaletteLessText: "Menos" 14 | }; 15 | 16 | $.extend($.fn.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-gr.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Greek (gr) localization 3 | // https://github.com/bgrins/spectrum 4 | 5 | (function ( $ ) { 6 | 7 | var localization = $.spectrum.localization["gr"] = { 8 | cancelText: "Ακύρωση", 9 | chooseText: "Επιλογή", 10 | clearText: "Καθαρισμός επιλεγμένου χρώματος", 11 | noColorSelectedText: "Δεν έχει επιλεχθεί κάποιο χρώμα", 12 | togglePaletteMoreText: "Περισσότερα", 13 | togglePaletteLessText: "Λιγότερα" 14 | }; 15 | 16 | $.extend($.gr.spectrum.defaults, localization); 17 | 18 | })( jQuery ); 19 | -------------------------------------------------------------------------------- /spectrum-1.8.1/i18n/jquery.spectrum-cs.js: -------------------------------------------------------------------------------- 1 | // Spectrum Colorpicker 2 | // Czech (cs) localization 3 | // https://github.com/bgrins/spectrum 4 | // author localization cs Pavel Laupe Dvorak pavel@pavel-dvorak.cz 5 | 6 | (function ( $ ) { 7 | 8 | var localization = $.spectrum.localization["cs"] = { 9 | cancelText: "zrušit", 10 | chooseText: "vybrat", 11 | clearText: "Resetovat výměr barev", 12 | noColorSelectedText: "Žádná barva nebyla vybrána", 13 | togglePaletteMoreText: "více", 14 | togglePaletteLessText: "méně" 15 | }; 16 | 17 | $.extend($.fn.spectrum.defaults, localization); 18 | 19 | })( jQuery ); -------------------------------------------------------------------------------- /spectrum-1.8.1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "spectrum-colorpicker", 3 | "description": "Spectrum: the no hassle jQuery colorpicker", 4 | "version": "1.8.1", 5 | "main": "spectrum.js", 6 | "license": "MIT", 7 | "keywords": [ 8 | "jquery-plugin", 9 | "ecosystem:jquery", 10 | "color", 11 | "colorpicker", 12 | "ui" 13 | ], 14 | "homepage": "http://bgrins.github.com/spectrum", 15 | "repository": { 16 | "type": "git", 17 | "url": "https://bgrins.github.com/spectrum" 18 | }, 19 | "author": { 20 | "name": "Brian Grinstead", 21 | "email": "briangrinstead@gmail.com", 22 | "url": "http://briangrinstead.com/" 23 | }, 24 | "devDependencies": { 25 | "grunt": "^1.1.0", 26 | "grunt-contrib-jshint": "^2.1.0", 27 | "grunt-contrib-qunit": "^3.1.0", 28 | "grunt-contrib-uglify": "^4.0.1" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /spectrum-1.8.1/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) Brian Grinstead 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /common/js/hotkeys.js: -------------------------------------------------------------------------------- 1 | hotkeyMasterSwitch = 0; 2 | hotkeySwitch1 = 0; 3 | hotkeySwitch2 = 0; 4 | hotkeySwitch3 = 0; 5 | hotkeySwitch4 = 0; 6 | hotkeyAlt1Slot1 = 0; 7 | hotkeyAlt1Slot2 = 0; 8 | hotkeyAlt1Slot3 = 0; 9 | hotkeyAlt1Slot4 = 0; 10 | hotkeyAlt1Slot5 = 0; 11 | hotkeyAlt1Slot6 = 0; 12 | hotkeyAlt1Slot7 = 0; 13 | hotkeyAlt1Slot8 = 0; 14 | hotkeyAlt1Slot9 = 0; 15 | hotkeyAlt1Slot10 = 0; 16 | hotkeyAlt2Slot1 = 0; 17 | hotkeyAlt2Slot2 = 0; 18 | hotkeyAlt2Slot3 = 0; 19 | hotkeyAlt2Slot4 = 0; 20 | hotkeyAlt2Slot5 = 0; 21 | hotkeyAlt2Slot6 = 0; 22 | hotkeyAlt2Slot7 = 0; 23 | hotkeyAlt2Slot8 = 0; 24 | hotkeyAlt2Slot9 = 0; 25 | hotkeyAlt2Slot10 = 0; 26 | hotkeyAlt3Slot1 = 0; 27 | hotkeyAlt3Slot2 = 0; 28 | hotkeyAlt3Slot3 = 0; 29 | hotkeyAlt3Slot4 = 0; 30 | hotkeyAlt3Slot5 = 0; 31 | hotkeyAlt3Slot6 = 0; 32 | hotkeyAlt3Slot7 = 0; 33 | hotkeyAlt3Slot8 = 0; 34 | hotkeyAlt3Slot9 = 0; 35 | hotkeyAlt3Slot10 = 0; 36 | hotkeyAlt4Slot1 = 0; 37 | hotkeyAlt4Slot2 = 0; 38 | hotkeyAlt4Slot3 = 0; 39 | hotkeyAlt4Slot4 = 0; 40 | hotkeyAlt4Slot5 = 0; 41 | hotkeyAlt4Slot6 = 0; 42 | hotkeyAlt4Slot7 = 0; 43 | hotkeyAlt4Slot8 = 0; 44 | hotkeyAlt4Slot9 = 0; 45 | hotkeyAlt4Slot10 = 0; 46 | -------------------------------------------------------------------------------- /common/css/config.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: var(--bs-light) 3 | } 4 | 5 | .panels .panel { 6 | margin-bottom: 1em; 7 | } 8 | 9 | .panels .panel .title { 10 | white-space: nowrap; 11 | overflow-x: auto; 12 | padding-left: 10px; 13 | } 14 | 15 | .panels .panel .title:focus { 16 | outline: none; 17 | } 18 | 19 | .panels .panel .title:empty::after { 20 | color: var(--bs-gray); 21 | font-style: italic; 22 | content: 'Title'; 23 | } 24 | 25 | .switch { 26 | padding: 5px; 27 | } 28 | 29 | .switch input[type=checkbox] { 30 | height: 0; 31 | width: 0; 32 | visibility: hidden; 33 | float: left; 34 | } 35 | 36 | .switch span { 37 | cursor: pointer; 38 | text-indent: -9999px; 39 | width: 40px; 40 | height: 20px; 41 | background: var(--bs-gray); 42 | display: block; 43 | border-radius: 20px; 44 | position: relative; 45 | } 46 | 47 | .switch span:after { 48 | content: ''; 49 | position: absolute; 50 | top: 5px; 51 | left: 5px; 52 | width: 10px; 53 | height: 10px; 54 | background: var(--bs-white); 55 | border-radius: 5px; 56 | transition: 0.3s; 57 | } 58 | 59 | .switch input:checked + span { 60 | background: var(--bs-primary); 61 | } 62 | 63 | .switch input:checked + span:after { 64 | left: calc(100% - 5px); 65 | transform: translateX(-100%); 66 | } 67 | 68 | .switch span:active:after { 69 | width: 15px; 70 | } 71 | 72 | .input-short { 73 | max-width: 65px; 74 | } -------------------------------------------------------------------------------- /spectrum-1.8.1/Gruntfile.js: -------------------------------------------------------------------------------- 1 | 2 | module.exports = function(grunt) { 3 | 4 | grunt.initConfig({ 5 | pkg: grunt.file.readJSON('package.json'), 6 | 7 | qunit: { 8 | all: { 9 | options: { 10 | urls: ['test/index.html', 'test/loaders.html'], 11 | 12 | }, 13 | 14 | } 15 | }, 16 | 17 | jshint: { 18 | options: { 19 | sub: true, 20 | strict: true, 21 | newcap: false, 22 | globals: { 23 | jQuery: true 24 | } 25 | }, 26 | 27 | with_overrides: { 28 | options: { 29 | strict: false 30 | }, 31 | files: { 32 | src: ['i18n/*.js', 'test/tests.js'] 33 | } 34 | }, 35 | 36 | all: ['spectrum.js'] 37 | }, 38 | 39 | 40 | uglify: { 41 | options: { 42 | }, 43 | dist: { 44 | files: { 45 | 'build/spectrum-min.js': ['spectrum.js'] 46 | } 47 | } 48 | } 49 | 50 | }); 51 | 52 | 53 | grunt.loadNpmTasks('grunt-contrib-jshint'); 54 | grunt.loadNpmTasks('grunt-contrib-qunit'); 55 | grunt.loadNpmTasks('grunt-contrib-uglify'); 56 | 57 | 58 | // Testing tasks 59 | grunt.registerTask('test', ['jshint', 'qunit']); 60 | 61 | // Travis CI task. 62 | grunt.registerTask('travis', 'test'); 63 | 64 | // Default task. 65 | grunt.registerTask('default', ['test']); 66 | 67 | //Build Task. 68 | grunt.registerTask('build', ['test', 'uglify']); 69 | 70 | }; 71 | -------------------------------------------------------------------------------- /config.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 |
25 |
26 | Reload 27 | Clear config 28 | Reload view 29 | Debug 30 |
31 | 32 |
33 |
34 |
35 |
36 | 37 |
38 |
39 |
40 | 41 |
42 |
43 |
44 | 45 |
46 |
47 | 48 | -------------------------------------------------------------------------------- /common/js/view/app.js: -------------------------------------------------------------------------------- 1 | /** @var {Panel.Broadcast} instance of broadcast communication channel */ 2 | var view; 3 | 4 | /** @var {object} Details of all panels sent to the view - i.e. with rendered elements */ 5 | var panels = {}; 6 | 7 | // show debug information in the view 8 | var _debug = false; 9 | 10 | function clearAllPanels() { 11 | jQuery('.container').empty(); 12 | panels = {}; 13 | } 14 | 15 | /** 16 | * Run a command from the config view 17 | * @param {String} command 18 | */ 19 | function runCommand(command) { 20 | switch (command) { 21 | case 'CLEAR_PANELS': 22 | clearAllPanels(); 23 | break; 24 | 25 | case 'RELOAD': 26 | window.location.reload(); 27 | break; 28 | 29 | case 'DEBUG_ON': 30 | _debug = true; 31 | break; 32 | 33 | default: 34 | console.warn('Unknown command', command); 35 | view.send({ 36 | type: 'message', 37 | body: { 38 | severity: 'error', 39 | messages: ['Unknown command', command], 40 | } 41 | }); 42 | } 43 | } 44 | 45 | function init() { 46 | view = new Panel.Broadcast(function (msg) { 47 | if (_debug) { 48 | console.log('rx', msg.data); 49 | jQuery('.log').append(JSON.stringify(msg.data) + '
'); 50 | } 51 | 52 | view.send({ 53 | type: 'pong', 54 | }); 55 | 56 | var content = msg.data; 57 | var type = content.type; 58 | 59 | if (type === 'command') { 60 | runCommand(content.body); 61 | } else if (type === 'panel') { 62 | // we have received an inserted or changed panel. It has an ID for matching on 63 | var panel = content.body; 64 | 65 | var panelExists = panels.hasOwnProperty(panel.id); 66 | 67 | panels[panel.id] = panel; 68 | 69 | if (! panelExists) { 70 | Panel.panel.insert(panel); 71 | } 72 | 73 | Panel.panel.update(panel); 74 | } 75 | }); 76 | 77 | // make sure we initialise with the panels from the controller 78 | view.send({ 79 | type: 'command', 80 | body: 'GET_PANELS', 81 | }); 82 | } 83 | 84 | jQuery(window).ready(init); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # OBS Panels 2 | Overlays and lower thirds content for OBS live streams 3 | 4 | OBS Panels provides highly customisable overlays for your content. Use them to show the names of your speakers, or to provide context 5 | in the action. 6 | 7 | (coming soon) Use overlays to show more content, such as titles, paragraphs, bullet points, images etc. 8 | 9 | ![OBS Panels example](docs/overview.png?raw=true) 10 | 11 | # Installation 12 | Unlike many OBS plugins, all content required for OBS Panels is available immediately online. This removes the installation step, 13 | and will soon unlock additional collaborative tools and features. The online version is always up to date with the latest release. 14 | 15 | ## Online 16 | ### Config panel 17 | In OBS, go to *View > Docks > Custom Browser Docks*. 18 | 19 | Enter a dock name (e.g. OBS Panels) 20 | 21 | Enter the following URL in the URL field: **http://fjord-online.com/panels/config.html** 22 | 23 | ### View 24 | Add a new source: *Sources > Add > Browser* 25 | * 26 | Set the URL field to the hosted URL: **http://fjord-online.com/panels/view.html** 27 | 28 | Set the width and height to match your project resolution (e.g. 1920 x 1080, 4k is also supported) 29 | 30 | Uncheck the box 'Refresh browser when scene becomes active' 31 | 32 | Press OK 33 | 34 | Ensure that the browser layer is at the top of your display: *Right click > Order > Move to top* 35 | 36 | ## Local (offline) 37 | Download a recent release from the releases tab, or download a specific branch. 38 | 39 | Extract the zipped folder into a suitable location (e.g. user_folder/OBS-Panels) 40 | 41 | Follow the instructions for online installation, but replace the URLs with paths to your local config and view files 42 | 43 | # Need more docs? 44 | If you need more help, please just make an issue, or drop us a line at info@fjord-online.com. This is a new project - no question is too silly! 45 | 46 | # Contributing 47 | Contributions are welcome. Please consult the issues tab for improvements and fixes which are in progress. 48 | 49 | If your issue/new feature is not listed, please make an issue, or even better make a pull request! 50 | 51 | # License 52 | Anyone can use, share, fork. May be used in commercial live streams or recordings, but this may not be embedded or used in any commercial product offering - i.e. no resale of the features or code offered here. Share alike license. 53 | -------------------------------------------------------------------------------- /spectrum-1.8.1/themes/sp-dark.css: -------------------------------------------------------------------------------- 1 | /* Container */ 2 | .sp-dark.sp-container { 3 | background-color: #333; 4 | border: solid 1px #555; 5 | } 6 | 7 | /* Replacer (the little preview div that shows up instead of the ) */ 8 | .sp-dark.sp-replacer { 9 | border: solid 1px #fff; 10 | background: #333; 11 | color: #eee; 12 | vertical-align: middle; 13 | } 14 | .sp-replacer:hover, .sp-replacer.sp-active { 15 | border-color: #F0C49B; 16 | color: #fff; 17 | } 18 | .sp-replacer.sp-disabled { 19 | border-color: silver; 20 | color: silver; 21 | } 22 | .sp-dark .sp-preview { 23 | border: solid 1px #999; 24 | } 25 | .sp-dark .sp-cancel { 26 | color: #f99f9f !important; 27 | } 28 | 29 | .sp-dark, .sp-dark button, .sp-dark input, .sp-color, .sp-hue { 30 | 31 | } 32 | 33 | /* Input */ 34 | .sp-dark .sp-input-container { 35 | 36 | } 37 | .sp-dark .sp-initial-disabled .sp-input-container { 38 | 39 | } 40 | .sp-dark .sp-input { 41 | 42 | } 43 | .sp-dark .sp-input:focus { 44 | 45 | } 46 | .sp-dark .sp-input.sp-validation-error { 47 | 48 | } 49 | 50 | .sp-dark .sp-picker-container , .sp-dark .sp-palette-container { 51 | 52 | } 53 | .sp-dark .sp-picker-container { 54 | 55 | } 56 | 57 | /* Palettes */ 58 | .sp-dark .sp-palette-container { 59 | 60 | } 61 | 62 | .sp-dark .sp-palette .sp-thumb-el { 63 | 64 | } 65 | .sp-dark .sp-palette .sp-thumb-el:hover, .sp-dark .sp-palette .sp-thumb-el.sp-thumb-active { 66 | 67 | } 68 | .sp-dark .sp-thumb-el { 69 | } 70 | 71 | /* Initial */ 72 | .sp-dark .sp-initial { 73 | 74 | } 75 | .sp-dark .sp-initial span { 76 | 77 | } 78 | 79 | /* Buttons */ 80 | .sp-dark .sp-button-container { 81 | 82 | } 83 | 84 | /* Replacer (the little preview div that shows up instead of the ) */ 85 | .sp-dark.sp-replacer { 86 | 87 | } 88 | .sp-dark.sp-replacer:hover, .sp-dark.sp-replacer.sp-active { 89 | border-color: #F0C49B; 90 | color: #111; 91 | } 92 | .sp-dark.sp-replacer.sp-disabled { 93 | 94 | } 95 | .sp-dark .sp-dd { 96 | 97 | } 98 | 99 | 100 | 101 | .sp-dark .sp-preview { 102 | 103 | } 104 | .sp-dark .sp-palette { 105 | 106 | } 107 | .sp-dark .sp-palette .sp-thumb-el { 108 | 109 | } 110 | 111 | .sp-dark button { 112 | 113 | } 114 | .sp-dark button:hover { 115 | 116 | } 117 | .sp-dark button:active { 118 | 119 | } 120 | .sp-dark .sp-cancel { 121 | 122 | } 123 | .sp-dark .sp-cancel:hover { 124 | 125 | } 126 | .sp-dark .sp-palette span:hover, .sp-dark .sp-palette span.sp-thumb-active { 127 | 128 | } 129 | -------------------------------------------------------------------------------- /spectrum-1.8.1/README.md: -------------------------------------------------------------------------------- 1 | # Spectrum 2 | ## The No Hassle Colorpicker 3 | 4 | See the demo and docs: http://bgrins.github.io/spectrum. 5 | 6 | I wanted a colorpicker that didn't require images, and that had an API that made sense to me as a developer who has worked with color in a number of applications. I had tried a number of existing plugins, but decided to try and make a smaller, simpler one. 7 | 8 | I started using canvas, then switched to CSS gradients, since it turned out to be easier to manage, and provided better cross browser support. 9 | 10 | ### Basic Usage 11 | 12 | Head over to the [docs](http://bgrins.github.io/spectrum) for more information. There is a visual demo of the different options hosted at: http://bgrins.github.io/spectrum. 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 25 | ### npm 26 | 27 | Spectrum is registered as package with npm. It can be installed with: 28 | 29 | npm install spectrum-colorpicker 30 | 31 | ### Bower 32 | 33 | Spectrum is registered as a package with [Bower](http://bower.io/), so it can be pulled down using: 34 | 35 | bower install spectrum 36 | 37 | ### Using spectrum with a CDN 38 | 39 | CDN provided by [cdnjs](https://cdnjs.com/libraries/spectrum) 40 | 41 | 42 | 43 | 44 | ### Continuous Integration 45 | 46 | [![Build Status](https://secure.travis-ci.org/bgrins/spectrum.png?branch=master)](http://travis-ci.org/bgrins/spectrum) 47 | 48 | Visit https://travis-ci.org/bgrins/spectrum to view the status of the automated tests. 49 | 50 | ### Building Spectrum Locally 51 | 52 | If you'd like to download and use the plugin, head over to http://bgrins.github.io/spectrum/ and click the 'Download Zip' button. 53 | 54 | If you'd like to run the development version, spectrum uses Grunt to automate the testing, linting, and building. Head over to http://gruntjs.com/getting-started for more information. First, clone the repository, then run: 55 | 56 | npm install -g grunt-cli 57 | npm install 58 | 59 | # runs jshint and the unit test suite 60 | grunt 61 | 62 | # runs jshint, the unit test suite, and builds a minified version of the file. 63 | grunt build 64 | 65 | ### Internationalization 66 | 67 | If you are able to translate the text in the UI to another language, please do! You can do so by either [filing a pull request](https://github.com/bgrins/spectrum/pulls) or [opening an issue]( https://github.com/bgrins/spectrum/issues) with the translation. The existing languages are listed at: https://github.com/bgrins/spectrum/tree/master/i18n. 68 | 69 | For an example, see the [Dutch translation](i18n/jquery.spectrum-nl.js). 70 | -------------------------------------------------------------------------------- /spectrum-1.8.1/docs/toc.js: -------------------------------------------------------------------------------- 1 | !function($) { 2 | $.fn.toc = function(options) { 3 | var self = this; 4 | var opts = $.extend({}, jQuery.fn.toc.defaults, options); 5 | 6 | var container = $(opts.container); 7 | var headings = $(opts.selectors, container); 8 | var headingOffsets = []; 9 | var activeClassName = opts.prefix+'-active'; 10 | 11 | var findScrollableElement = function(els) { 12 | for (var i = 0, argLength = arguments.length; i < argLength; i++) { 13 | var el = arguments[i], 14 | $scrollElement = $(el); 15 | if ($scrollElement.scrollTop() > 0) { 16 | return $scrollElement; 17 | } else { 18 | $scrollElement.scrollTop(1); 19 | var isScrollable = $scrollElement.scrollTop() > 0; 20 | $scrollElement.scrollTop(0); 21 | if (isScrollable) { 22 | return $scrollElement; 23 | } 24 | } 25 | } 26 | return []; 27 | }; 28 | var scrollable = findScrollableElement(opts.container, 'body', 'html'); 29 | 30 | var scrollTo = function(e) { 31 | if (opts.smoothScrolling) { 32 | e.preventDefault(); 33 | var elScrollTo = $(e.target).attr('href'); 34 | var $el = $(elScrollTo); 35 | 36 | scrollable.animate({ scrollTop: $el.offset().top }, 400, 'swing', function() { 37 | location.hash = elScrollTo; 38 | }); 39 | } 40 | $('li', self).removeClass(activeClassName); 41 | $(e.target).parent().addClass(activeClassName); 42 | }; 43 | 44 | //highlight on scroll 45 | var timeout; 46 | var highlightOnScroll = function(e) { 47 | if (timeout) { 48 | clearTimeout(timeout); 49 | } 50 | timeout = setTimeout(function() { 51 | var top = $(window).scrollTop(); 52 | for (var i = 0, c = headingOffsets.length; i < c; i++) { 53 | if (headingOffsets[i] >= top) { 54 | $('li', self).removeClass(activeClassName); 55 | $('li:eq('+(i-1)+')', self).addClass(activeClassName); 56 | break; 57 | } 58 | } 59 | }, 50); 60 | }; 61 | if (opts.highlightOnScroll) { 62 | $(window).bind('scroll', highlightOnScroll); 63 | highlightOnScroll(); 64 | } 65 | 66 | return this.each(function() { 67 | //build TOC 68 | var ul = $('