├── .gitattributes
├── .github
└── FUNDING.yml
├── .gitignore
├── CHANGELOG.md
├── README.md
├── assets
└── web.png
└── src
├── icons
├── 128.png
├── 256.png
├── 32.png
└── 48.png
├── manifest.json
└── scripts
├── iconify-assets.js
├── iconify-jquery.js
├── iconify-main.js
└── iconify-snackbar.js
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | patreon: razoo
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | 📃CHANGELOG
3 |
4 |
5 | - Full Changelog can be found on the Website [here](https://kyutefox.com/changelog/iconify-browser-extension).
6 |
7 | ### December 03, 2024 - 1.0.7 (Update)
8 | > - Update:
9 |
10 | - Updated with new bypass method for IconScout
11 | - Fixed IconScout Not Downloading SVG [ both free and premium ]
12 | - Fixed 3D Icon Download in IconScout
13 | - Fixed IconScout Not Download Lottie [ both free and premium ]
14 |
15 | ### August 07, 2024 - 1.0.6 (Update)
16 |
17 | > - Update:
18 |
19 | - Fixed 0 Byte in IconScout
20 |
21 |
22 | ### August 30, 2023 - 1.0.2 (Update)
23 |
24 | > - New:
25 |
26 | - Download any icon as SVG ( Font Awesome )
27 |
28 | > - New:
29 |
30 | - Generate Premium Font Awesome CDN and use icon directly
31 |
32 | ### August 09, 2023, 1.0.1 (Update & Fixes)
33 |
34 | > - New:
35 |
36 | - Added Animated Lottie Download for (IconScout) in JSON.
37 |
38 | - Added Copy SVG button to copy code directly (FlatIcon).
39 |
40 | > - Update:
41 |
42 | - Added Error Message for non-supported icons.
43 |
44 | - Improved performance in IconScout.
45 |
46 | ### April 13, 2023, 1.0.0 (Inconify - The Beggining)
47 |
48 | > - New:
49 |
50 | - Added popup message for error.
51 |
52 | - Added animations to download button.
53 |
54 | - Added custom download button.
55 |
56 | - Added support for IconScout.
57 |
58 | - Added support for Icons8.
59 |
60 | - Added support for Microsoft Edge.
61 |
62 | - All new Iconify known as Flaticon Premium.
63 |
64 | > - Update:
65 |
66 | - Updated to manifest version 3.0
67 |
68 | - Updated from server dependent to local.
69 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | 
4 |
5 |
👋 Welcome to Iconify
6 |
7 | The Ultimate Browser Extension for **QUALITY** SVG Icons
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | 
25 |
26 |
27 |
28 | ## 👍 Table of Contents:
29 |
30 | - 🚀 [Getting Started](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#-getting-started)
31 | - 🌎 [Supported Sites](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#-supported-sites)
32 | - 🛠️ [Installation](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#%EF%B8%8F-installation)
33 | - [Chrome](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#chrome-browser)
34 | - [Firefox](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#firefox-browser)
35 | - [Microsoft Edge](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#microsoft-edge)
36 | - [How to Use?](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#how-to-use)
37 | - ❗❗ [Troubleshoot](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#-troubleshoot)
38 | - 🔗 [Useful Links](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#-useful-links)
39 | - 🤝 [Show Your Support](https://github.com/Kyutefox/Iconify?tab=readme-ov-file#-show-your-support)
40 |
41 | ## 🚀 Getting Started
42 |
43 |
44 |
Introducing Iconify, the ultimate browser extension for anyone looking to enhance their design projects with high-quality SVG icons. With Iconify, you can easily access and download premium SVG icons from Flaticon,Icons8,FontAwesome and Iconscout one of the largest databases of vector icons available online.
45 |
46 |
This extension is supported on the following browsers:
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | ✅
66 |
67 |
68 | ✅
69 |
70 |
71 | ✅
72 |
73 |
74 | ❌
75 |
76 |
77 |
78 |
79 |
Whether you are a designer, developer, or just someone who appreciates good design, Iconify is the perfect tool to take your projects to the next level. With its extensive power to download premium icons, you will have access to a vast range of options that will help you create beautiful and professional designs in no time. So why wait? Install Iconify today and start designing like a pro!
80 |
81 |
82 | ## 🌏 Supported Sites
83 |
84 | - [x] [Font Awesome](https://fontawesome.com/)
85 | - [x] [Flaticon](https://flaticon.com)
86 | - [x] [Icons8](https://icons8.com)
87 | - [x] [Iconscout](https://iconscout.com/)
88 |
89 | Want more sites? Create an [Issue](https://github.com/Kyutefox/Iconify/issues) and let us know!
90 |
91 | ## 🛠️ Installation
92 |
93 | - Installation Guide can be found on the Website [here](https://kyutefox.com/products/iconify-browser-extension#installation-1)
94 |
95 | > [!Caution]
96 | > Before installing and using Iconify, it is important to uninstall the "Flaticon premium" version of this extension and clear your cache to prevent any conflicts or unresponsiveness.
97 |
98 |
99 | ### Prerequisite
100 |
101 | > [!Warning]
102 | > You must be logged in to the respective icon site to download icon from that site.
103 |
104 | ### Chrome Browser:
105 |
106 | > [!Important]
107 | > The Iconify extension for Chrome is currently unavailable at the Chrome Web Store. To install this extension on Chrome, you must download it manually from the download option located on the top right of this page or from the [GitHub Release Page](https://github.com/kyutefox/Iconify/releases).
108 |
109 | ```
110 |
111 | 1. Extract the downloaded ZIP file to your local PC.
112 | 2. hit chrome://extensions/ in the address bar.
113 | 3. From the extension window turn on Developer mode from top right corner.
114 | 4. Now click on Load unpacked button on top left side of the same window.
115 | 5. Now locate the extracted folder and click on open folder.
116 | 6. Enjoy !!
117 |
118 | ```
119 |
120 |
121 | ### Firefox Browser
122 |
123 | > [!Note]
124 | > The Iconify extension is officially available on the Firefox Add-ons Store.
125 |
126 | ```
127 |
128 | 1. Open your Firefox Browser and head on to Firefox Add-ons Store
129 | 2. Install the addon to your browser
130 | 3. Goto Manage Extensions
131 | 4. Click on Iconify, and the click on Permissions
132 | 5. Turn on all the switch
133 | 6. Enjoy !!
134 |
135 | ```
136 |
137 | ### Microsoft Edge
138 |
139 | > [!Note]
140 | > The Iconify extension is officially available on the Edge Add-ons Store.
141 |
142 | ```
143 |
144 | 1. Open your Firefox Browser and head on to Edge Add-ons Store
145 | 2. Install the addon to your browser
146 | 3. Enjoy !!
147 |
148 | ```
149 |
150 | ### How to use?
151 |
152 | > [!Tip]
153 | > Using Iconify is simply straight forward.
154 |
155 | ```
156 |
157 | 1. Now head to (Flaticon, Icons8 or Iconscout) website of your choice.
158 | 2. Login with your any account, if not create one and login.
159 | 3. Click the icon you would like to download.
160 | 4. You will see the premium buttons are now available to download.
161 | 5. Click on SVG or Download button which ever is available.
162 | 6. Enjoy the premium icons.
163 |
164 | ```
165 |
166 |
167 |
168 |
169 | Is it Safe?
170 |
171 |
172 |
173 |
174 | If you're concerned about the safety of using Iconify, you'll be pleased to know that the extension is 100% safe and secure to use. The extension does not track any of your browser data or any other personal information, so you can browse and download premium SVG icons with complete peace of mind.
175 |
176 |
177 | The way Iconify works is by replacing your non-premium account token with a premium token from the server when you click on the SVG button. This token is then used to send a request to the respective icon server, which returns the icon as if you were a premium user. The extension then parses the icon and creates a downloadable icon in SVG format.
178 |
179 | Aside from this process, the extension does not do anything else that might raise security concerns. You can use Iconify knowing that your data and personal information are completely safe.
180 |
181 | In conclusion, Iconify is a safe and secure extension that provides premium SVG icons for your design projects. With its user-friendly interface and seamless integration with Flaticon's server, you can browse, search, and download premium icons with ease and confidence.
182 |
183 |
184 |
185 | ## ❗❗ Troubleshoot
186 |
187 | > [!Important]
188 | > If you face any error while using Iconify try CTRL + R to hard reload once the pages loads.
189 |
190 | ## 📃 Changelog
191 |
192 | - Full Changelog can be found on the Website [here](https://kyutefox.com/changelog/iconify-browser-extension) or in the [Changelog file](https://github.com/Kyutefox/Iconify/blob/main/CHANGELOG.md)
193 |
194 | ## 🔗 Useful Links
195 |
196 | > - Full Documentation
197 | > - Full Changelog
198 | > - Homepage
199 | > - Author Profile
200 |
201 | ## 🤝 Show Your Support
202 |
203 | > - Did this project leave you impressed? Shower some love with a ⭐️!
204 |
205 |
--------------------------------------------------------------------------------
/assets/web.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kyutefox/Iconify/a96b20ca1c498cb0c310ba08ab71a3a8ecb98c45/assets/web.png
--------------------------------------------------------------------------------
/src/icons/128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kyutefox/Iconify/a96b20ca1c498cb0c310ba08ab71a3a8ecb98c45/src/icons/128.png
--------------------------------------------------------------------------------
/src/icons/256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kyutefox/Iconify/a96b20ca1c498cb0c310ba08ab71a3a8ecb98c45/src/icons/256.png
--------------------------------------------------------------------------------
/src/icons/32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kyutefox/Iconify/a96b20ca1c498cb0c310ba08ab71a3a8ecb98c45/src/icons/32.png
--------------------------------------------------------------------------------
/src/icons/48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kyutefox/Iconify/a96b20ca1c498cb0c310ba08ab71a3a8ecb98c45/src/icons/48.png
--------------------------------------------------------------------------------
/src/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name" : "Iconify",
3 | "version" : "1.0.7",
4 | "description" : "Upgrade your designs with our browser extension! Download premium SVG icons and stickers.",
5 | "manifest_version": 3,
6 | "icons": {
7 | "32" : "./icons/32.png",
8 | "48" : "./icons/48.png",
9 | "128" : "./icons/128.png",
10 | "256" : "./icons/256.png"
11 | },
12 | "content_scripts": [
13 | {
14 | "matches": [
15 | "https://www.flaticon.com/*",
16 | "https://iconscout.com/*",
17 | "https://icons8.com/*",
18 | "https://fontawesome.com/*"
19 | ],
20 | "js": [
21 | "./scripts/iconify-jquery.js",
22 | "./scripts/iconify-assets.js",
23 | "./scripts/iconify-snackbar.js",
24 | "./scripts/iconify-main.js"
25 | ],
26 | "run_at" : "document_idle",
27 | "all_frames": true
28 | }
29 | ]
30 | }
31 |
--------------------------------------------------------------------------------
/src/scripts/iconify-jquery.js:
--------------------------------------------------------------------------------
1 | /*! jQuery v3.6.4 | (c) OpenJS Foundation and other contributors | jquery.org/license */
2 | !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.4",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssHas=ce(function(){try{return C.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML=" ",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML=" ";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssHas||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML=" ",v.option=!!ce.lastChild;var ge={thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0 {
19 | // Create the button element
20 | const button = $('', {
21 | id: 'getFontawesomeCdn',
22 | class: "position-relative",
23 | text: 'Generate Premium Icon CDN Link',
24 | click: function() {
25 | let versionSelector = $(document).find("#choose_aversionoffontawesome").val() ?? "6.4.2";
26 | let link = `https://site-assets.fontawesome.com/releases/v${versionSelector}/css/all.css`
27 | const textToCopy = link;
28 | const tempInput = $(' ');
29 | $(document).find("body").append(tempInput);
30 | tempInput.val(textToCopy).select();
31 | document.execCommand('copy');
32 | tempInput.remove();
33 | Snackbar.show({ text : "CDN link copied to clipboard" , showAction : false})
34 | }
35 | });
36 |
37 | // Set the button's position and styles
38 | button.css({
39 | position: 'fixed',
40 | bottom: '20px',
41 | right: '20px',
42 | zIndex: '999',
43 | padding: "10px 20px",
44 | background: "#007bff",
45 | color: "#fff",
46 | border: "none",
47 | cursor: "pointer",
48 | borderRadius: "4px", /* Added border radius */
49 | });
50 |
51 |
52 | // Append the button to the container
53 | var container = $('body');
54 | container.append(button);
55 | }
56 |
57 | const initFontAwesome = () => {
58 | let button = $(document).find("#fontAwesomeSVGDownload");
59 | if(button.length < 1){
60 | $(document).find(".icon-actions").append("Download SVG ");
61 | }
62 | }
63 |
64 | // Create download
65 | const downloadIcon = function (text = "", downloadAbleName = "", extension = "svg",drc = false)
66 | {
67 | let newAnchorElement = document.createElement("a");
68 | if(drc === true)
69 | {
70 | newAnchorElement.setAttribute("href", text);
71 |
72 | }else
73 | {
74 | newAnchorElement.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(text));
75 |
76 | }
77 | newAnchorElement.setAttribute("download", (downloadAbleName + `.${extension}`) ?? "iconify.svg");
78 | newAnchorElement.style.display = "none";
79 | document.body.appendChild(newAnchorElement);
80 | newAnchorElement.click();
81 | document.body.removeChild(newAnchorElement);
82 | }
83 |
84 | async function downloadPNG(imageSrc,name) {
85 | const image = await fetch(imageSrc)
86 | const imageBlog = await image.blob()
87 | const imageURL = URL.createObjectURL(imageBlog)
88 |
89 | const link = document.createElement('a')
90 | link.href = imageURL
91 | link.download = name;
92 | document.body.appendChild(link)
93 | link.click()
94 | document.body.removeChild(link)
95 | }
96 |
97 | // Create download json
98 | const downloadJson = function (data = {}, downloadAbleName = "", extension = "json"){
99 | let jsonString = JSON.stringify(data, null, 2);
100 | let blob = new Blob([jsonString], { type: 'application/json' });
101 | let url = URL.createObjectURL(blob);
102 | let link = document.createElement('a');
103 | link.href = url;
104 | link.download = (downloadAbleName + "." + extension) ?? "iconify.json";
105 | document.body.appendChild(link);
106 | link.click();
107 | URL.revokeObjectURL(url);
108 | }
109 |
110 | //Copy SVG to clipboard
111 | const copyToClipBoard = function (text, clickedButtonElement, replacer)
112 | {
113 | const tempTextarea = $('