diff --git a/launcher/package.json b/launcher/package.json index 3513d250c..34e5de005 100755 --- a/launcher/package.json +++ b/launcher/package.json @@ -3,7 +3,9 @@ "version": "2.3.1", "private": true, "description": "Stereum Ethereum Node Setup Launcher", - "author": "stereum.net", + "author": { + "name": "Stereum Launcher Team" + }, "scripts": { "serve": "vue-cli-service serve --port 8081", "build": "vue-cli-service build", diff --git a/launcher/public/output.css b/launcher/public/output.css index a5583b31a..90a61180a 100755 --- a/launcher/public/output.css +++ b/launcher/public/output.css @@ -163,7 +163,9 @@ } /* -! tailwindcss v3.4.13 | MIT License | https://tailwindcss.com + +! tailwindcss v3.4.16 | MIT License | https://tailwindcss.com + */ /* @@ -3061,22 +3063,22 @@ video { .divide-gray-300 > :not([hidden]) ~ :not([hidden]){ --tw-divide-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-divide-opacity)); + border-color: rgb(209 213 219 / var(--tw-divide-opacity, 1)); } .divide-gray-400 > :not([hidden]) ~ :not([hidden]){ --tw-divide-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-divide-opacity)); + border-color: rgb(156 163 175 / var(--tw-divide-opacity, 1)); } .divide-gray-600 > :not([hidden]) ~ :not([hidden]){ --tw-divide-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-divide-opacity)); + border-color: rgb(75 85 99 / var(--tw-divide-opacity, 1)); } .divide-gray-700 > :not([hidden]) ~ :not([hidden]){ --tw-divide-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-divide-opacity)); + border-color: rgb(55 65 81 / var(--tw-divide-opacity, 1)); } .self-start{ @@ -3393,172 +3395,172 @@ video { .border-\[\#171D22\]{ --tw-border-opacity: 1; - border-color: rgb(23 29 34 / var(--tw-border-opacity)); + border-color: rgb(23 29 34 / var(--tw-border-opacity, 1)); } .border-\[\#1c3634\]{ --tw-border-opacity: 1; - border-color: rgb(28 54 52 / var(--tw-border-opacity)); + border-color: rgb(28 54 52 / var(--tw-border-opacity, 1)); } .border-\[\#2c3136\]{ --tw-border-opacity: 1; - border-color: rgb(44 49 54 / var(--tw-border-opacity)); + border-color: rgb(44 49 54 / var(--tw-border-opacity, 1)); } .border-\[\#33393E\]{ --tw-border-opacity: 1; - border-color: rgb(51 57 62 / var(--tw-border-opacity)); + border-color: rgb(51 57 62 / var(--tw-border-opacity, 1)); } .border-\[\#336666\]{ --tw-border-opacity: 1; - border-color: rgb(51 102 102 / var(--tw-border-opacity)); + border-color: rgb(51 102 102 / var(--tw-border-opacity, 1)); } .border-\[\#3e4347\]{ --tw-border-opacity: 1; - border-color: rgb(62 67 71 / var(--tw-border-opacity)); + border-color: rgb(62 67 71 / var(--tw-border-opacity, 1)); } .border-\[\#4b8585\]{ --tw-border-opacity: 1; - border-color: rgb(75 133 133 / var(--tw-border-opacity)); + border-color: rgb(75 133 133 / var(--tw-border-opacity, 1)); } .border-\[\#6c7e78\]{ --tw-border-opacity: 1; - border-color: rgb(108 126 120 / var(--tw-border-opacity)); + border-color: rgb(108 126 120 / var(--tw-border-opacity, 1)); } .border-blue-100{ --tw-border-opacity: 1; - border-color: rgb(219 234 254 / var(--tw-border-opacity)); + border-color: rgb(219 234 254 / var(--tw-border-opacity, 1)); } .border-blue-300{ --tw-border-opacity: 1; - border-color: rgb(147 197 253 / var(--tw-border-opacity)); + border-color: rgb(147 197 253 / var(--tw-border-opacity, 1)); } .border-blue-400{ --tw-border-opacity: 1; - border-color: rgb(96 165 250 / var(--tw-border-opacity)); + border-color: rgb(96 165 250 / var(--tw-border-opacity, 1)); } .border-blue-500{ --tw-border-opacity: 1; - border-color: rgb(59 130 246 / var(--tw-border-opacity)); + border-color: rgb(59 130 246 / var(--tw-border-opacity, 1)); } .border-gray-100{ --tw-border-opacity: 1; - border-color: rgb(243 244 246 / var(--tw-border-opacity)); + border-color: rgb(243 244 246 / var(--tw-border-opacity, 1)); } .border-gray-200{ --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity)); + border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); } .border-gray-300{ --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity)); + border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); } .border-gray-400{ --tw-border-opacity: 1; - border-color: rgb(156 163 175 / var(--tw-border-opacity)); + border-color: rgb(156 163 175 / var(--tw-border-opacity, 1)); } .border-gray-500{ --tw-border-opacity: 1; - border-color: rgb(107 114 128 / var(--tw-border-opacity)); + border-color: rgb(107 114 128 / var(--tw-border-opacity, 1)); } .border-gray-600{ --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity)); + border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)); } .border-gray-700{ --tw-border-opacity: 1; - border-color: rgb(55 65 81 / var(--tw-border-opacity)); + border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); } .border-gray-800{ --tw-border-opacity: 1; - border-color: rgb(31 41 55 / var(--tw-border-opacity)); + border-color: rgb(31 41 55 / var(--tw-border-opacity, 1)); } .border-gray-950{ --tw-border-opacity: 1; - border-color: rgb(3 7 18 / var(--tw-border-opacity)); + border-color: rgb(3 7 18 / var(--tw-border-opacity, 1)); } .border-green-500{ --tw-border-opacity: 1; - border-color: rgb(34 197 94 / var(--tw-border-opacity)); + border-color: rgb(34 197 94 / var(--tw-border-opacity, 1)); } .border-orange-500{ --tw-border-opacity: 1; - border-color: rgb(249 115 22 / var(--tw-border-opacity)); + border-color: rgb(249 115 22 / var(--tw-border-opacity, 1)); } .border-red-400{ --tw-border-opacity: 1; - border-color: rgb(248 113 113 / var(--tw-border-opacity)); + border-color: rgb(248 113 113 / var(--tw-border-opacity, 1)); } .border-red-500{ --tw-border-opacity: 1; - border-color: rgb(239 68 68 / var(--tw-border-opacity)); + border-color: rgb(239 68 68 / var(--tw-border-opacity, 1)); } .border-red-600{ --tw-border-opacity: 1; - border-color: rgb(220 38 38 / var(--tw-border-opacity)); + border-color: rgb(220 38 38 / var(--tw-border-opacity, 1)); } .border-red-800{ --tw-border-opacity: 1; - border-color: rgb(153 27 27 / var(--tw-border-opacity)); + border-color: rgb(153 27 27 / var(--tw-border-opacity, 1)); } .border-slate-500{ --tw-border-opacity: 1; - border-color: rgb(100 116 139 / var(--tw-border-opacity)); + border-color: rgb(100 116 139 / var(--tw-border-opacity, 1)); } .border-teal-200{ --tw-border-opacity: 1; - border-color: rgb(153 246 228 / var(--tw-border-opacity)); + border-color: rgb(153 246 228 / var(--tw-border-opacity, 1)); } .border-teal-300{ --tw-border-opacity: 1; - border-color: rgb(94 234 212 / var(--tw-border-opacity)); + border-color: rgb(94 234 212 / var(--tw-border-opacity, 1)); } .border-teal-500{ --tw-border-opacity: 1; - border-color: rgb(20 184 166 / var(--tw-border-opacity)); + border-color: rgb(20 184 166 / var(--tw-border-opacity, 1)); } .border-teal-600{ --tw-border-opacity: 1; - border-color: rgb(13 148 136 / var(--tw-border-opacity)); + border-color: rgb(13 148 136 / var(--tw-border-opacity, 1)); } .border-teal-700{ --tw-border-opacity: 1; - border-color: rgb(15 118 110 / var(--tw-border-opacity)); + border-color: rgb(15 118 110 / var(--tw-border-opacity, 1)); } .border-teal-800{ --tw-border-opacity: 1; - border-color: rgb(17 94 89 / var(--tw-border-opacity)); + border-color: rgb(17 94 89 / var(--tw-border-opacity, 1)); } .border-transparent{ @@ -3567,7 +3569,7 @@ video { .border-white{ --tw-border-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-border-opacity)); + border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); } .border-b-transparent{ @@ -3576,32 +3578,32 @@ video { .border-b-white{ --tw-border-opacity: 1; - border-bottom-color: rgb(255 255 255 / var(--tw-border-opacity)); + border-bottom-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); } .border-l-gray-200{ --tw-border-opacity: 1; - border-left-color: rgb(229 231 235 / var(--tw-border-opacity)); + border-left-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); } .border-l-red-500{ --tw-border-opacity: 1; - border-left-color: rgb(239 68 68 / var(--tw-border-opacity)); + border-left-color: rgb(239 68 68 / var(--tw-border-opacity, 1)); } .border-r-\[\#264744\]{ --tw-border-opacity: 1; - border-right-color: rgb(38 71 68 / var(--tw-border-opacity)); + border-right-color: rgb(38 71 68 / var(--tw-border-opacity, 1)); } .border-r-\[\#88b79a\]{ --tw-border-opacity: 1; - border-right-color: rgb(136 183 154 / var(--tw-border-opacity)); + border-right-color: rgb(136 183 154 / var(--tw-border-opacity, 1)); } .border-r-blue-600{ --tw-border-opacity: 1; - border-right-color: rgb(37 99 235 / var(--tw-border-opacity)); + border-right-color: rgb(37 99 235 / var(--tw-border-opacity, 1)); } .border-r-transparent{ @@ -3610,682 +3612,682 @@ video { .border-r-white{ --tw-border-opacity: 1; - border-right-color: rgb(255 255 255 / var(--tw-border-opacity)); + border-right-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); } .border-t-\[\#88b79a\]{ --tw-border-opacity: 1; - border-top-color: rgb(136 183 154 / var(--tw-border-opacity)); + border-top-color: rgb(136 183 154 / var(--tw-border-opacity, 1)); } .border-t-blue-600{ --tw-border-opacity: 1; - border-top-color: rgb(37 99 235 / var(--tw-border-opacity)); + border-top-color: rgb(37 99 235 / var(--tw-border-opacity, 1)); } .border-t-white{ --tw-border-opacity: 1; - border-top-color: rgb(255 255 255 / var(--tw-border-opacity)); + border-top-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); } .bg-\[\#093A4C\]{ --tw-bg-opacity: 1; - background-color: rgb(9 58 76 / var(--tw-bg-opacity)); + background-color: rgb(9 58 76 / var(--tw-bg-opacity, 1)); } .bg-\[\#0F1217\]{ --tw-bg-opacity: 1; - background-color: rgb(15 18 23 / var(--tw-bg-opacity)); + background-color: rgb(15 18 23 / var(--tw-bg-opacity, 1)); } .bg-\[\#0d0d0e\]{ --tw-bg-opacity: 1; - background-color: rgb(13 13 14 / var(--tw-bg-opacity)); + background-color: rgb(13 13 14 / var(--tw-bg-opacity, 1)); } .bg-\[\#101111\]{ --tw-bg-opacity: 1; - background-color: rgb(16 17 17 / var(--tw-bg-opacity)); + background-color: rgb(16 17 17 / var(--tw-bg-opacity, 1)); } .bg-\[\#111213\]{ --tw-bg-opacity: 1; - background-color: rgb(17 18 19 / var(--tw-bg-opacity)); + background-color: rgb(17 18 19 / var(--tw-bg-opacity, 1)); } .bg-\[\#111315\]{ --tw-bg-opacity: 1; - background-color: rgb(17 19 21 / var(--tw-bg-opacity)); + background-color: rgb(17 19 21 / var(--tw-bg-opacity, 1)); } .bg-\[\#131313\]{ --tw-bg-opacity: 1; - background-color: rgb(19 19 19 / var(--tw-bg-opacity)); + background-color: rgb(19 19 19 / var(--tw-bg-opacity, 1)); } .bg-\[\#141516\]{ --tw-bg-opacity: 1; - background-color: rgb(20 21 22 / var(--tw-bg-opacity)); + background-color: rgb(20 21 22 / var(--tw-bg-opacity, 1)); } .bg-\[\#14171a\]{ --tw-bg-opacity: 1; - background-color: rgb(20 23 26 / var(--tw-bg-opacity)); + background-color: rgb(20 23 26 / var(--tw-bg-opacity, 1)); } .bg-\[\#151618\]{ --tw-bg-opacity: 1; - background-color: rgb(21 22 24 / var(--tw-bg-opacity)); + background-color: rgb(21 22 24 / var(--tw-bg-opacity, 1)); } .bg-\[\#151a1e\]{ --tw-bg-opacity: 1; - background-color: rgb(21 26 30 / var(--tw-bg-opacity)); + background-color: rgb(21 26 30 / var(--tw-bg-opacity, 1)); } .bg-\[\#161717\]{ --tw-bg-opacity: 1; - background-color: rgb(22 23 23 / var(--tw-bg-opacity)); + background-color: rgb(22 23 23 / var(--tw-bg-opacity, 1)); } .bg-\[\#171D22\]{ --tw-bg-opacity: 1; - background-color: rgb(23 29 34 / var(--tw-bg-opacity)); + background-color: rgb(23 29 34 / var(--tw-bg-opacity, 1)); } .bg-\[\#171a1b\]{ --tw-bg-opacity: 1; - background-color: rgb(23 26 27 / var(--tw-bg-opacity)); + background-color: rgb(23 26 27 / var(--tw-bg-opacity, 1)); } .bg-\[\#171a1c\]{ --tw-bg-opacity: 1; - background-color: rgb(23 26 28 / var(--tw-bg-opacity)); + background-color: rgb(23 26 28 / var(--tw-bg-opacity, 1)); } .bg-\[\#17A2B8\]{ --tw-bg-opacity: 1; - background-color: rgb(23 162 184 / var(--tw-bg-opacity)); + background-color: rgb(23 162 184 / var(--tw-bg-opacity, 1)); } .bg-\[\#18191a\]{ --tw-bg-opacity: 1; - background-color: rgb(24 25 26 / var(--tw-bg-opacity)); + background-color: rgb(24 25 26 / var(--tw-bg-opacity, 1)); } .bg-\[\#191b1e\]{ --tw-bg-opacity: 1; - background-color: rgb(25 27 30 / var(--tw-bg-opacity)); + background-color: rgb(25 27 30 / var(--tw-bg-opacity, 1)); } .bg-\[\#191c21\]{ --tw-bg-opacity: 1; - background-color: rgb(25 28 33 / var(--tw-bg-opacity)); + background-color: rgb(25 28 33 / var(--tw-bg-opacity, 1)); } .bg-\[\#1BA5F8\]{ --tw-bg-opacity: 1; - background-color: rgb(27 165 248 / var(--tw-bg-opacity)); + background-color: rgb(27 165 248 / var(--tw-bg-opacity, 1)); } .bg-\[\#1E2429\]{ --tw-bg-opacity: 1; - background-color: rgb(30 36 41 / var(--tw-bg-opacity)); + background-color: rgb(30 36 41 / var(--tw-bg-opacity, 1)); } .bg-\[\#1a2e2c\]{ --tw-bg-opacity: 1; - background-color: rgb(26 46 44 / var(--tw-bg-opacity)); + background-color: rgb(26 46 44 / var(--tw-bg-opacity, 1)); } .bg-\[\#1b1b1d\]{ --tw-bg-opacity: 1; - background-color: rgb(27 27 29 / var(--tw-bg-opacity)); + background-color: rgb(27 27 29 / var(--tw-bg-opacity, 1)); } .bg-\[\#1b1c1c\]{ --tw-bg-opacity: 1; - background-color: rgb(27 28 28 / var(--tw-bg-opacity)); + background-color: rgb(27 28 28 / var(--tw-bg-opacity, 1)); } .bg-\[\#1b1d1f\]{ --tw-bg-opacity: 1; - background-color: rgb(27 29 31 / var(--tw-bg-opacity)); + background-color: rgb(27 29 31 / var(--tw-bg-opacity, 1)); } .bg-\[\#1b3231\]{ --tw-bg-opacity: 1; - background-color: rgb(27 50 49 / var(--tw-bg-opacity)); + background-color: rgb(27 50 49 / var(--tw-bg-opacity, 1)); } .bg-\[\#1c1d1d\]{ --tw-bg-opacity: 1; - background-color: rgb(28 29 29 / var(--tw-bg-opacity)); + background-color: rgb(28 29 29 / var(--tw-bg-opacity, 1)); } .bg-\[\#1c2021\]{ --tw-bg-opacity: 1; - background-color: rgb(28 32 33 / var(--tw-bg-opacity)); + background-color: rgb(28 32 33 / var(--tw-bg-opacity, 1)); } .bg-\[\#1d1d1e\]{ --tw-bg-opacity: 1; - background-color: rgb(29 29 30 / var(--tw-bg-opacity)); + background-color: rgb(29 29 30 / var(--tw-bg-opacity, 1)); } .bg-\[\#1d1e1f\]{ --tw-bg-opacity: 1; - background-color: rgb(29 30 31 / var(--tw-bg-opacity)); + background-color: rgb(29 30 31 / var(--tw-bg-opacity, 1)); } .bg-\[\#1d1f20\]{ --tw-bg-opacity: 1; - background-color: rgb(29 31 32 / var(--tw-bg-opacity)); + background-color: rgb(29 31 32 / var(--tw-bg-opacity, 1)); } .bg-\[\#1d1f21\]{ --tw-bg-opacity: 1; - background-color: rgb(29 31 33 / var(--tw-bg-opacity)); + background-color: rgb(29 31 33 / var(--tw-bg-opacity, 1)); } .bg-\[\#1f2123\]{ --tw-bg-opacity: 1; - background-color: rgb(31 33 35 / var(--tw-bg-opacity)); + background-color: rgb(31 33 35 / var(--tw-bg-opacity, 1)); } .bg-\[\#1f2226\]{ --tw-bg-opacity: 1; - background-color: rgb(31 34 38 / var(--tw-bg-opacity)); + background-color: rgb(31 34 38 / var(--tw-bg-opacity, 1)); } .bg-\[\#202123\]{ --tw-bg-opacity: 1; - background-color: rgb(32 33 35 / var(--tw-bg-opacity)); + background-color: rgb(32 33 35 / var(--tw-bg-opacity, 1)); } .bg-\[\#202225\]{ --tw-bg-opacity: 1; - background-color: rgb(32 34 37 / var(--tw-bg-opacity)); + background-color: rgb(32 34 37 / var(--tw-bg-opacity, 1)); } .bg-\[\#202632\]{ --tw-bg-opacity: 1; - background-color: rgb(32 38 50 / var(--tw-bg-opacity)); + background-color: rgb(32 38 50 / var(--tw-bg-opacity, 1)); } .bg-\[\#212225\]{ --tw-bg-opacity: 1; - background-color: rgb(33 34 37 / var(--tw-bg-opacity)); + background-color: rgb(33 34 37 / var(--tw-bg-opacity, 1)); } .bg-\[\#212629\]{ --tw-bg-opacity: 1; - background-color: rgb(33 38 41 / var(--tw-bg-opacity)); + background-color: rgb(33 38 41 / var(--tw-bg-opacity, 1)); } .bg-\[\#21272c\]{ --tw-bg-opacity: 1; - background-color: rgb(33 39 44 / var(--tw-bg-opacity)); + background-color: rgb(33 39 44 / var(--tw-bg-opacity, 1)); } .bg-\[\#222526\]{ --tw-bg-opacity: 1; - background-color: rgb(34 37 38 / var(--tw-bg-opacity)); + background-color: rgb(34 37 38 / var(--tw-bg-opacity, 1)); } .bg-\[\#224141\]{ --tw-bg-opacity: 1; - background-color: rgb(34 65 65 / var(--tw-bg-opacity)); + background-color: rgb(34 65 65 / var(--tw-bg-opacity, 1)); } .bg-\[\#232428\]{ --tw-bg-opacity: 1; - background-color: rgb(35 36 40 / var(--tw-bg-opacity)); + background-color: rgb(35 36 40 / var(--tw-bg-opacity, 1)); } .bg-\[\#232528\]{ --tw-bg-opacity: 1; - background-color: rgb(35 37 40 / var(--tw-bg-opacity)); + background-color: rgb(35 37 40 / var(--tw-bg-opacity, 1)); } .bg-\[\#242529\]{ --tw-bg-opacity: 1; - background-color: rgb(36 37 41 / var(--tw-bg-opacity)); + background-color: rgb(36 37 41 / var(--tw-bg-opacity, 1)); } .bg-\[\#242628\]{ --tw-bg-opacity: 1; - background-color: rgb(36 38 40 / var(--tw-bg-opacity)); + background-color: rgb(36 38 40 / var(--tw-bg-opacity, 1)); } .bg-\[\#243535\]{ --tw-bg-opacity: 1; - background-color: rgb(36 53 53 / var(--tw-bg-opacity)); + background-color: rgb(36 53 53 / var(--tw-bg-opacity, 1)); } .bg-\[\#243d36\]{ --tw-bg-opacity: 1; - background-color: rgb(36 61 54 / var(--tw-bg-opacity)); + background-color: rgb(36 61 54 / var(--tw-bg-opacity, 1)); } .bg-\[\#252525\]{ --tw-bg-opacity: 1; - background-color: rgb(37 37 37 / var(--tw-bg-opacity)); + background-color: rgb(37 37 37 / var(--tw-bg-opacity, 1)); } .bg-\[\#264744\]{ --tw-bg-opacity: 1; - background-color: rgb(38 71 68 / var(--tw-bg-opacity)); + background-color: rgb(38 71 68 / var(--tw-bg-opacity, 1)); } .bg-\[\#282a2c\]{ --tw-bg-opacity: 1; - background-color: rgb(40 42 44 / var(--tw-bg-opacity)); + background-color: rgb(40 42 44 / var(--tw-bg-opacity, 1)); } .bg-\[\#292e32\]{ --tw-bg-opacity: 1; - background-color: rgb(41 46 50 / var(--tw-bg-opacity)); + background-color: rgb(41 46 50 / var(--tw-bg-opacity, 1)); } .bg-\[\#2a2c30\]{ --tw-bg-opacity: 1; - background-color: rgb(42 44 48 / var(--tw-bg-opacity)); + background-color: rgb(42 44 48 / var(--tw-bg-opacity, 1)); } .bg-\[\#2a2e30\]{ --tw-bg-opacity: 1; - background-color: rgb(42 46 48 / var(--tw-bg-opacity)); + background-color: rgb(42 46 48 / var(--tw-bg-opacity, 1)); } .bg-\[\#2c3136\]{ --tw-bg-opacity: 1; - background-color: rgb(44 49 54 / var(--tw-bg-opacity)); + background-color: rgb(44 49 54 / var(--tw-bg-opacity, 1)); } .bg-\[\#2d3035\]{ --tw-bg-opacity: 1; - background-color: rgb(45 48 53 / var(--tw-bg-opacity)); + background-color: rgb(45 48 53 / var(--tw-bg-opacity, 1)); } .bg-\[\#2d3438\]{ --tw-bg-opacity: 1; - background-color: rgb(45 52 56 / var(--tw-bg-opacity)); + background-color: rgb(45 52 56 / var(--tw-bg-opacity, 1)); } .bg-\[\#2e5151\]{ --tw-bg-opacity: 1; - background-color: rgb(46 81 81 / var(--tw-bg-opacity)); + background-color: rgb(46 81 81 / var(--tw-bg-opacity, 1)); } .bg-\[\#2f373c\]{ --tw-bg-opacity: 1; - background-color: rgb(47 55 60 / var(--tw-bg-opacity)); + background-color: rgb(47 55 60 / var(--tw-bg-opacity, 1)); } .bg-\[\#2f5a5a\]{ --tw-bg-opacity: 1; - background-color: rgb(47 90 90 / var(--tw-bg-opacity)); + background-color: rgb(47 90 90 / var(--tw-bg-opacity, 1)); } .bg-\[\#303232\]{ --tw-bg-opacity: 1; - background-color: rgb(48 50 50 / var(--tw-bg-opacity)); + background-color: rgb(48 50 50 / var(--tw-bg-opacity, 1)); } .bg-\[\#313539\]{ --tw-bg-opacity: 1; - background-color: rgb(49 53 57 / var(--tw-bg-opacity)); + background-color: rgb(49 53 57 / var(--tw-bg-opacity, 1)); } .bg-\[\#32363A\]{ --tw-bg-opacity: 1; - background-color: rgb(50 54 58 / var(--tw-bg-opacity)); + background-color: rgb(50 54 58 / var(--tw-bg-opacity, 1)); } .bg-\[\#333539\]{ --tw-bg-opacity: 1; - background-color: rgb(51 53 57 / var(--tw-bg-opacity)); + background-color: rgb(51 53 57 / var(--tw-bg-opacity, 1)); } .bg-\[\#33393E\]{ --tw-bg-opacity: 1; - background-color: rgb(51 57 62 / var(--tw-bg-opacity)); + background-color: rgb(51 57 62 / var(--tw-bg-opacity, 1)); } .bg-\[\#33393e\]{ --tw-bg-opacity: 1; - background-color: rgb(51 57 62 / var(--tw-bg-opacity)); + background-color: rgb(51 57 62 / var(--tw-bg-opacity, 1)); } .bg-\[\#334B3F\]{ --tw-bg-opacity: 1; - background-color: rgb(51 75 63 / var(--tw-bg-opacity)); + background-color: rgb(51 75 63 / var(--tw-bg-opacity, 1)); } .bg-\[\#334d4d\]{ --tw-bg-opacity: 1; - background-color: rgb(51 77 77 / var(--tw-bg-opacity)); + background-color: rgb(51 77 77 / var(--tw-bg-opacity, 1)); } .bg-\[\#336666\]{ --tw-bg-opacity: 1; - background-color: rgb(51 102 102 / var(--tw-bg-opacity)); + background-color: rgb(51 102 102 / var(--tw-bg-opacity, 1)); } .bg-\[\#343434\]{ --tw-bg-opacity: 1; - background-color: rgb(52 52 52 / var(--tw-bg-opacity)); + background-color: rgb(52 52 52 / var(--tw-bg-opacity, 1)); } .bg-\[\#363934\]{ --tw-bg-opacity: 1; - background-color: rgb(54 57 52 / var(--tw-bg-opacity)); + background-color: rgb(54 57 52 / var(--tw-bg-opacity, 1)); } .bg-\[\#387272\]{ --tw-bg-opacity: 1; - background-color: rgb(56 114 114 / var(--tw-bg-opacity)); + background-color: rgb(56 114 114 / var(--tw-bg-opacity, 1)); } .bg-\[\#393939\]{ --tw-bg-opacity: 1; - background-color: rgb(57 57 57 / var(--tw-bg-opacity)); + background-color: rgb(57 57 57 / var(--tw-bg-opacity, 1)); } .bg-\[\#3d4244\]{ --tw-bg-opacity: 1; - background-color: rgb(61 66 68 / var(--tw-bg-opacity)); + background-color: rgb(61 66 68 / var(--tw-bg-opacity, 1)); } .bg-\[\#3d4449\]{ --tw-bg-opacity: 1; - background-color: rgb(61 68 73 / var(--tw-bg-opacity)); + background-color: rgb(61 68 73 / var(--tw-bg-opacity, 1)); } .bg-\[\#3e4347\]{ --tw-bg-opacity: 1; - background-color: rgb(62 67 71 / var(--tw-bg-opacity)); + background-color: rgb(62 67 71 / var(--tw-bg-opacity, 1)); } .bg-\[\#495056\]{ --tw-bg-opacity: 1; - background-color: rgb(73 80 86 / var(--tw-bg-opacity)); + background-color: rgb(73 80 86 / var(--tw-bg-opacity, 1)); } .bg-\[\#4D56CB\]{ --tw-bg-opacity: 1; - background-color: rgb(77 86 203 / var(--tw-bg-opacity)); + background-color: rgb(77 86 203 / var(--tw-bg-opacity, 1)); } .bg-\[\#4d7575\]{ --tw-bg-opacity: 1; - background-color: rgb(77 117 117 / var(--tw-bg-opacity)); + background-color: rgb(77 117 117 / var(--tw-bg-opacity, 1)); } .bg-\[\#503C3C\]{ --tw-bg-opacity: 1; - background-color: rgb(80 60 60 / var(--tw-bg-opacity)); + background-color: rgb(80 60 60 / var(--tw-bg-opacity, 1)); } .bg-\[\#505f6d\]{ --tw-bg-opacity: 1; - background-color: rgb(80 95 109 / var(--tw-bg-opacity)); + background-color: rgb(80 95 109 / var(--tw-bg-opacity, 1)); } .bg-\[\#537263\]{ --tw-bg-opacity: 1; - background-color: rgb(83 114 99 / var(--tw-bg-opacity)); + background-color: rgb(83 114 99 / var(--tw-bg-opacity, 1)); } .bg-\[\#578f84\]{ --tw-bg-opacity: 1; - background-color: rgb(87 143 132 / var(--tw-bg-opacity)); + background-color: rgb(87 143 132 / var(--tw-bg-opacity, 1)); } .bg-\[\#609879\]{ --tw-bg-opacity: 1; - background-color: rgb(96 152 121 / var(--tw-bg-opacity)); + background-color: rgb(96 152 121 / var(--tw-bg-opacity, 1)); } .bg-\[\#70E763\]{ --tw-bg-opacity: 1; - background-color: rgb(112 231 99 / var(--tw-bg-opacity)); + background-color: rgb(112 231 99 / var(--tw-bg-opacity, 1)); } .bg-\[\#A0A0A0\]{ --tw-bg-opacity: 1; - background-color: rgb(160 160 160 / var(--tw-bg-opacity)); + background-color: rgb(160 160 160 / var(--tw-bg-opacity, 1)); } .bg-\[\#D1BB9E\]{ --tw-bg-opacity: 1; - background-color: rgb(209 187 158 / var(--tw-bg-opacity)); + background-color: rgb(209 187 158 / var(--tw-bg-opacity, 1)); } .bg-\[\#EB5353\]{ --tw-bg-opacity: 1; - background-color: rgb(235 83 83 / var(--tw-bg-opacity)); + background-color: rgb(235 83 83 / var(--tw-bg-opacity, 1)); } .bg-\[\#F7C566\]{ --tw-bg-opacity: 1; - background-color: rgb(247 197 102 / var(--tw-bg-opacity)); + background-color: rgb(247 197 102 / var(--tw-bg-opacity, 1)); } .bg-\[\#a7aeb5\]{ --tw-bg-opacity: 1; - background-color: rgb(167 174 181 / var(--tw-bg-opacity)); + background-color: rgb(167 174 181 / var(--tw-bg-opacity, 1)); } .bg-\[\#a846b8\]{ --tw-bg-opacity: 1; - background-color: rgb(168 70 184 / var(--tw-bg-opacity)); + background-color: rgb(168 70 184 / var(--tw-bg-opacity, 1)); } .bg-\[\#caced1\]{ --tw-bg-opacity: 1; - background-color: rgb(202 206 209 / var(--tw-bg-opacity)); + background-color: rgb(202 206 209 / var(--tw-bg-opacity, 1)); } .bg-\[\#e8ebeb\]{ --tw-bg-opacity: 1; - background-color: rgb(232 235 235 / var(--tw-bg-opacity)); + background-color: rgb(232 235 235 / var(--tw-bg-opacity, 1)); } .bg-\[\#eaecee\]{ --tw-bg-opacity: 1; - background-color: rgb(234 236 238 / var(--tw-bg-opacity)); + background-color: rgb(234 236 238 / var(--tw-bg-opacity, 1)); } .bg-\[\#fb923c\]{ --tw-bg-opacity: 1; - background-color: rgb(251 146 60 / var(--tw-bg-opacity)); + background-color: rgb(251 146 60 / var(--tw-bg-opacity, 1)); } .bg-amber-400{ --tw-bg-opacity: 1; - background-color: rgb(251 191 36 / var(--tw-bg-opacity)); + background-color: rgb(251 191 36 / var(--tw-bg-opacity, 1)); } .bg-black{ --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); + background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); } .bg-blue-300{ --tw-bg-opacity: 1; - background-color: rgb(147 197 253 / var(--tw-bg-opacity)); + background-color: rgb(147 197 253 / var(--tw-bg-opacity, 1)); } .bg-blue-400{ --tw-bg-opacity: 1; - background-color: rgb(96 165 250 / var(--tw-bg-opacity)); + background-color: rgb(96 165 250 / var(--tw-bg-opacity, 1)); } .bg-blue-500{ --tw-bg-opacity: 1; - background-color: rgb(59 130 246 / var(--tw-bg-opacity)); + background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1)); } .bg-blue-900{ --tw-bg-opacity: 1; - background-color: rgb(30 58 138 / var(--tw-bg-opacity)); + background-color: rgb(30 58 138 / var(--tw-bg-opacity, 1)); } .bg-cyan-300{ --tw-bg-opacity: 1; - background-color: rgb(103 232 249 / var(--tw-bg-opacity)); + background-color: rgb(103 232 249 / var(--tw-bg-opacity, 1)); } .bg-gray-100{ --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity)); + background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); } .bg-gray-200{ --tw-bg-opacity: 1; - background-color: rgb(229 231 235 / var(--tw-bg-opacity)); + background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)); } .bg-gray-300{ --tw-bg-opacity: 1; - background-color: rgb(209 213 219 / var(--tw-bg-opacity)); + background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1)); } .bg-gray-400{ --tw-bg-opacity: 1; - background-color: rgb(156 163 175 / var(--tw-bg-opacity)); + background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1)); } .bg-gray-50{ --tw-bg-opacity: 1; - background-color: rgb(249 250 251 / var(--tw-bg-opacity)); + background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); } .bg-gray-500{ --tw-bg-opacity: 1; - background-color: rgb(107 114 128 / var(--tw-bg-opacity)); + background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1)); } .bg-gray-600{ --tw-bg-opacity: 1; - background-color: rgb(75 85 99 / var(--tw-bg-opacity)); + background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1)); } .bg-gray-700{ --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); + background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)); } .bg-gray-800{ --tw-bg-opacity: 1; - background-color: rgb(31 41 55 / var(--tw-bg-opacity)); + background-color: rgb(31 41 55 / var(--tw-bg-opacity, 1)); } .bg-gray-900{ --tw-bg-opacity: 1; - background-color: rgb(17 24 39 / var(--tw-bg-opacity)); + background-color: rgb(17 24 39 / var(--tw-bg-opacity, 1)); } .bg-green-400{ --tw-bg-opacity: 1; - background-color: rgb(74 222 128 / var(--tw-bg-opacity)); + background-color: rgb(74 222 128 / var(--tw-bg-opacity, 1)); } .bg-green-500{ --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity)); + background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)); } .bg-green-600{ --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity)); + background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); } .bg-green-700{ --tw-bg-opacity: 1; - background-color: rgb(21 128 61 / var(--tw-bg-opacity)); + background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1)); } .bg-green-800{ --tw-bg-opacity: 1; - background-color: rgb(22 101 52 / var(--tw-bg-opacity)); + background-color: rgb(22 101 52 / var(--tw-bg-opacity, 1)); } .bg-lime-900{ --tw-bg-opacity: 1; - background-color: rgb(54 83 20 / var(--tw-bg-opacity)); + background-color: rgb(54 83 20 / var(--tw-bg-opacity, 1)); } .bg-orange-500{ --tw-bg-opacity: 1; - background-color: rgb(249 115 22 / var(--tw-bg-opacity)); + background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1)); } .bg-red-100{ --tw-bg-opacity: 1; - background-color: rgb(254 226 226 / var(--tw-bg-opacity)); + background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1)); } .bg-red-300{ --tw-bg-opacity: 1; - background-color: rgb(252 165 165 / var(--tw-bg-opacity)); + background-color: rgb(252 165 165 / var(--tw-bg-opacity, 1)); } .bg-red-500{ --tw-bg-opacity: 1; - background-color: rgb(239 68 68 / var(--tw-bg-opacity)); + background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1)); } .bg-red-600{ --tw-bg-opacity: 1; - background-color: rgb(220 38 38 / var(--tw-bg-opacity)); + background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1)); } .bg-red-700{ --tw-bg-opacity: 1; - background-color: rgb(185 28 28 / var(--tw-bg-opacity)); + background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1)); } .bg-red-800{ --tw-bg-opacity: 1; - background-color: rgb(153 27 27 / var(--tw-bg-opacity)); + background-color: rgb(153 27 27 / var(--tw-bg-opacity, 1)); } .bg-slate-200{ --tw-bg-opacity: 1; - background-color: rgb(226 232 240 / var(--tw-bg-opacity)); + background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1)); } .bg-slate-400{ --tw-bg-opacity: 1; - background-color: rgb(148 163 184 / var(--tw-bg-opacity)); + background-color: rgb(148 163 184 / var(--tw-bg-opacity, 1)); } .bg-slate-600{ --tw-bg-opacity: 1; - background-color: rgb(71 85 105 / var(--tw-bg-opacity)); + background-color: rgb(71 85 105 / var(--tw-bg-opacity, 1)); } .bg-teal-500{ --tw-bg-opacity: 1; - background-color: rgb(20 184 166 / var(--tw-bg-opacity)); + background-color: rgb(20 184 166 / var(--tw-bg-opacity, 1)); } .bg-teal-600{ --tw-bg-opacity: 1; - background-color: rgb(13 148 136 / var(--tw-bg-opacity)); + background-color: rgb(13 148 136 / var(--tw-bg-opacity, 1)); } .bg-teal-700{ --tw-bg-opacity: 1; - background-color: rgb(15 118 110 / var(--tw-bg-opacity)); + background-color: rgb(15 118 110 / var(--tw-bg-opacity, 1)); } .bg-teal-800{ --tw-bg-opacity: 1; - background-color: rgb(17 94 89 / var(--tw-bg-opacity)); + background-color: rgb(17 94 89 / var(--tw-bg-opacity, 1)); } .bg-transparent{ @@ -4294,37 +4296,39 @@ video { .bg-violet-500{ --tw-bg-opacity: 1; - background-color: rgb(139 92 246 / var(--tw-bg-opacity)); + background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1)); } .bg-violet-900{ --tw-bg-opacity: 1; - background-color: rgb(76 29 149 / var(--tw-bg-opacity)); + background-color: rgb(76 29 149 / var(--tw-bg-opacity, 1)); } .bg-white{ --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); } .bg-yellow-400{ --tw-bg-opacity: 1; - background-color: rgb(250 204 21 / var(--tw-bg-opacity)); + background-color: rgb(250 204 21 / var(--tw-bg-opacity, 1)); } .bg-zinc-200{ --tw-bg-opacity: 1; - background-color: rgb(228 228 231 / var(--tw-bg-opacity)); + background-color: rgb(228 228 231 / var(--tw-bg-opacity, 1)); } .bg-zinc-400{ --tw-bg-opacity: 1; - background-color: rgb(161 161 170 / var(--tw-bg-opacity)); + background-color: rgb(161 161 170 / var(--tw-bg-opacity, 1)); } .bg-zinc-700{ --tw-bg-opacity: 1; + background-color: rgb(63 63 70 / var(--tw-bg-opacity)); + } .bg-opacity-80{ @@ -4820,227 +4824,227 @@ video { .text-\[\#14171a\]{ --tw-text-opacity: 1; - color: rgb(20 23 26 / var(--tw-text-opacity)); + color: rgb(20 23 26 / var(--tw-text-opacity, 1)); } .text-\[\#336666\]{ --tw-text-opacity: 1; - color: rgb(51 102 102 / var(--tw-text-opacity)); + color: rgb(51 102 102 / var(--tw-text-opacity, 1)); } .text-\[\#4B878D\]{ --tw-text-opacity: 1; - color: rgb(75 135 141 / var(--tw-text-opacity)); + color: rgb(75 135 141 / var(--tw-text-opacity, 1)); } .text-\[\#dee3e3\]{ --tw-text-opacity: 1; - color: rgb(222 227 227 / var(--tw-text-opacity)); + color: rgb(222 227 227 / var(--tw-text-opacity, 1)); } .text-\[\#e6e4e4\]{ --tw-text-opacity: 1; - color: rgb(230 228 228 / var(--tw-text-opacity)); + color: rgb(230 228 228 / var(--tw-text-opacity, 1)); } .text-\[greenyellow\]{ --tw-text-opacity: 1; - color: rgb(173 255 47 / var(--tw-text-opacity)); + color: rgb(173 255 47 / var(--tw-text-opacity, 1)); } .text-amber-200{ --tw-text-opacity: 1; - color: rgb(253 230 138 / var(--tw-text-opacity)); + color: rgb(253 230 138 / var(--tw-text-opacity, 1)); } .text-amber-300{ --tw-text-opacity: 1; - color: rgb(252 211 77 / var(--tw-text-opacity)); + color: rgb(252 211 77 / var(--tw-text-opacity, 1)); } .text-amber-400{ --tw-text-opacity: 1; - color: rgb(251 191 36 / var(--tw-text-opacity)); + color: rgb(251 191 36 / var(--tw-text-opacity, 1)); } .text-amber-500{ --tw-text-opacity: 1; - color: rgb(245 158 11 / var(--tw-text-opacity)); + color: rgb(245 158 11 / var(--tw-text-opacity, 1)); } .text-amber-600{ --tw-text-opacity: 1; - color: rgb(217 119 6 / var(--tw-text-opacity)); + color: rgb(217 119 6 / var(--tw-text-opacity, 1)); } .text-black{ --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); + color: rgb(0 0 0 / var(--tw-text-opacity, 1)); } .text-blue-300{ --tw-text-opacity: 1; - color: rgb(147 197 253 / var(--tw-text-opacity)); + color: rgb(147 197 253 / var(--tw-text-opacity, 1)); } .text-blue-400{ --tw-text-opacity: 1; - color: rgb(96 165 250 / var(--tw-text-opacity)); + color: rgb(96 165 250 / var(--tw-text-opacity, 1)); } .text-cyan-400{ --tw-text-opacity: 1; - color: rgb(34 211 238 / var(--tw-text-opacity)); + color: rgb(34 211 238 / var(--tw-text-opacity, 1)); } .text-cyan-600{ --tw-text-opacity: 1; - color: rgb(8 145 178 / var(--tw-text-opacity)); + color: rgb(8 145 178 / var(--tw-text-opacity, 1)); } .text-gray-100{ --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity)); + color: rgb(243 244 246 / var(--tw-text-opacity, 1)); } .text-gray-200{ --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); + color: rgb(229 231 235 / var(--tw-text-opacity, 1)); } .text-gray-300{ --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); + color: rgb(209 213 219 / var(--tw-text-opacity, 1)); } .text-gray-400{ --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); + color: rgb(156 163 175 / var(--tw-text-opacity, 1)); } .text-gray-50{ --tw-text-opacity: 1; - color: rgb(249 250 251 / var(--tw-text-opacity)); + color: rgb(249 250 251 / var(--tw-text-opacity, 1)); } .text-gray-500{ --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); + color: rgb(107 114 128 / var(--tw-text-opacity, 1)); } .text-gray-600{ --tw-text-opacity: 1; - color: rgb(75 85 99 / var(--tw-text-opacity)); + color: rgb(75 85 99 / var(--tw-text-opacity, 1)); } .text-gray-700{ --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity)); + color: rgb(55 65 81 / var(--tw-text-opacity, 1)); } .text-gray-800{ --tw-text-opacity: 1; - color: rgb(31 41 55 / var(--tw-text-opacity)); + color: rgb(31 41 55 / var(--tw-text-opacity, 1)); } .text-gray-900{ --tw-text-opacity: 1; - color: rgb(17 24 39 / var(--tw-text-opacity)); + color: rgb(17 24 39 / var(--tw-text-opacity, 1)); } .text-green-400{ --tw-text-opacity: 1; - color: rgb(74 222 128 / var(--tw-text-opacity)); + color: rgb(74 222 128 / var(--tw-text-opacity, 1)); } .text-green-500{ --tw-text-opacity: 1; - color: rgb(34 197 94 / var(--tw-text-opacity)); + color: rgb(34 197 94 / var(--tw-text-opacity, 1)); } .text-green-600{ --tw-text-opacity: 1; - color: rgb(22 163 74 / var(--tw-text-opacity)); + color: rgb(22 163 74 / var(--tw-text-opacity, 1)); } .text-green-700{ --tw-text-opacity: 1; - color: rgb(21 128 61 / var(--tw-text-opacity)); + color: rgb(21 128 61 / var(--tw-text-opacity, 1)); } .text-orange-500{ --tw-text-opacity: 1; - color: rgb(249 115 22 / var(--tw-text-opacity)); + color: rgb(249 115 22 / var(--tw-text-opacity, 1)); } .text-orange-600{ --tw-text-opacity: 1; - color: rgb(234 88 12 / var(--tw-text-opacity)); + color: rgb(234 88 12 / var(--tw-text-opacity, 1)); } .text-red-400{ --tw-text-opacity: 1; - color: rgb(248 113 113 / var(--tw-text-opacity)); + color: rgb(248 113 113 / var(--tw-text-opacity, 1)); } .text-red-500{ --tw-text-opacity: 1; - color: rgb(239 68 68 / var(--tw-text-opacity)); + color: rgb(239 68 68 / var(--tw-text-opacity, 1)); } .text-red-600{ --tw-text-opacity: 1; - color: rgb(220 38 38 / var(--tw-text-opacity)); + color: rgb(220 38 38 / var(--tw-text-opacity, 1)); } .text-red-700{ --tw-text-opacity: 1; - color: rgb(185 28 28 / var(--tw-text-opacity)); + color: rgb(185 28 28 / var(--tw-text-opacity, 1)); } .text-red-800{ --tw-text-opacity: 1; - color: rgb(153 27 27 / var(--tw-text-opacity)); + color: rgb(153 27 27 / var(--tw-text-opacity, 1)); } .text-teal-400{ --tw-text-opacity: 1; - color: rgb(45 212 191 / var(--tw-text-opacity)); + color: rgb(45 212 191 / var(--tw-text-opacity, 1)); } .text-teal-500{ --tw-text-opacity: 1; - color: rgb(20 184 166 / var(--tw-text-opacity)); + color: rgb(20 184 166 / var(--tw-text-opacity, 1)); } .text-teal-600{ --tw-text-opacity: 1; - color: rgb(13 148 136 / var(--tw-text-opacity)); + color: rgb(13 148 136 / var(--tw-text-opacity, 1)); } .text-teal-700{ --tw-text-opacity: 1; - color: rgb(15 118 110 / var(--tw-text-opacity)); + color: rgb(15 118 110 / var(--tw-text-opacity, 1)); } .text-white{ --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); + color: rgb(255 255 255 / var(--tw-text-opacity, 1)); } .text-yellow-300{ --tw-text-opacity: 1; - color: rgb(253 224 71 / var(--tw-text-opacity)); + color: rgb(253 224 71 / var(--tw-text-opacity, 1)); } .text-yellow-400{ --tw-text-opacity: 1; - color: rgb(250 204 21 / var(--tw-text-opacity)); + color: rgb(250 204 21 / var(--tw-text-opacity, 1)); } .text-yellow-500{ --tw-text-opacity: 1; - color: rgb(234 179 8 / var(--tw-text-opacity)); + color: rgb(234 179 8 / var(--tw-text-opacity, 1)); } .placeholder-gray-400\/70::-webkit-input-placeholder{ @@ -5065,52 +5069,52 @@ video { .placeholder-gray-500::-webkit-input-placeholder{ --tw-placeholder-opacity: 1; - color: rgb(107 114 128 / var(--tw-placeholder-opacity)); + color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1)); } .placeholder-gray-500::-moz-placeholder{ --tw-placeholder-opacity: 1; - color: rgb(107 114 128 / var(--tw-placeholder-opacity)); + color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1)); } .placeholder-gray-500:-ms-input-placeholder{ --tw-placeholder-opacity: 1; - color: rgb(107 114 128 / var(--tw-placeholder-opacity)); + color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1)); } .placeholder-gray-500::-ms-input-placeholder{ --tw-placeholder-opacity: 1; - color: rgb(107 114 128 / var(--tw-placeholder-opacity)); + color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1)); } .placeholder-gray-500::placeholder{ --tw-placeholder-opacity: 1; - color: rgb(107 114 128 / var(--tw-placeholder-opacity)); + color: rgb(107 114 128 / var(--tw-placeholder-opacity, 1)); } .placeholder-red-500::-webkit-input-placeholder{ --tw-placeholder-opacity: 1; - color: rgb(239 68 68 / var(--tw-placeholder-opacity)); + color: rgb(239 68 68 / var(--tw-placeholder-opacity, 1)); } .placeholder-red-500::-moz-placeholder{ --tw-placeholder-opacity: 1; - color: rgb(239 68 68 / var(--tw-placeholder-opacity)); + color: rgb(239 68 68 / var(--tw-placeholder-opacity, 1)); } .placeholder-red-500:-ms-input-placeholder{ --tw-placeholder-opacity: 1; - color: rgb(239 68 68 / var(--tw-placeholder-opacity)); + color: rgb(239 68 68 / var(--tw-placeholder-opacity, 1)); } .placeholder-red-500::-ms-input-placeholder{ --tw-placeholder-opacity: 1; - color: rgb(239 68 68 / var(--tw-placeholder-opacity)); + color: rgb(239 68 68 / var(--tw-placeholder-opacity, 1)); } .placeholder-red-500::placeholder{ --tw-placeholder-opacity: 1; - color: rgb(239 68 68 / var(--tw-placeholder-opacity)); + color: rgb(239 68 68 / var(--tw-placeholder-opacity, 1)); } .opacity-0{ @@ -5328,7 +5332,7 @@ video { .ring-black{ --tw-ring-opacity: 1; - --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity, 1)); } .ring-opacity-5{ @@ -5588,52 +5592,52 @@ html body { .placeholder\:text-gray-400::-webkit-input-placeholder{ --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); + color: rgb(156 163 175 / var(--tw-text-opacity, 1)); } .placeholder\:text-gray-400::-moz-placeholder{ --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); + color: rgb(156 163 175 / var(--tw-text-opacity, 1)); } .placeholder\:text-gray-400:-ms-input-placeholder{ --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); + color: rgb(156 163 175 / var(--tw-text-opacity, 1)); } .placeholder\:text-gray-400::-ms-input-placeholder{ --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); + color: rgb(156 163 175 / var(--tw-text-opacity, 1)); } .placeholder\:text-gray-400::placeholder{ --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); + color: rgb(156 163 175 / var(--tw-text-opacity, 1)); } .placeholder\:text-gray-500::-webkit-input-placeholder{ --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); + color: rgb(107 114 128 / var(--tw-text-opacity, 1)); } .placeholder\:text-gray-500::-moz-placeholder{ --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); + color: rgb(107 114 128 / var(--tw-text-opacity, 1)); } .placeholder\:text-gray-500:-ms-input-placeholder{ --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); + color: rgb(107 114 128 / var(--tw-text-opacity, 1)); } .placeholder\:text-gray-500::-ms-input-placeholder{ --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); + color: rgb(107 114 128 / var(--tw-text-opacity, 1)); } .placeholder\:text-gray-500::placeholder{ --tw-text-opacity: 1; - color: rgb(107 114 128 / var(--tw-text-opacity)); + color: rgb(107 114 128 / var(--tw-text-opacity, 1)); } .after\:absolute::after{ @@ -5674,13 +5678,13 @@ html body { .after\:border-gray-300::after{ content: var(--tw-content); --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity)); + border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); } .after\:bg-white::after{ content: var(--tw-content); --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); + background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); } .after\:transition-all::after{ @@ -5704,22 +5708,22 @@ html body { .peer:checked ~ .peer-checked\:border-green-600{ --tw-border-opacity: 1; - border-color: rgb(22 163 74 / var(--tw-border-opacity)); + border-color: rgb(22 163 74 / var(--tw-border-opacity, 1)); } .peer:checked ~ .peer-checked\:bg-green-500{ --tw-bg-opacity: 1; - background-color: rgb(34 197 94 / var(--tw-bg-opacity)); + background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)); } .peer:checked ~ .peer-checked\:bg-green-600{ --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity)); + background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); } .peer:checked ~ .peer-checked\:text-green-600{ --tw-text-opacity: 1; - color: rgb(22 163 74 / var(--tw-text-opacity)); + color: rgb(22 163 74 / var(--tw-text-opacity, 1)); } .peer:checked ~ .peer-checked\:shadow-inner{ @@ -5744,7 +5748,7 @@ html body { .peer:checked ~ .peer-checked\:after\:border-white::after{ content: var(--tw-content); --tw-border-opacity: 1; - border-color: rgb(255 255 255 / var(--tw-border-opacity)); + border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); } .hover\:scale-105:hover{ @@ -5789,287 +5793,287 @@ html body { .hover\:border-\[\#3f4851\]:hover{ --tw-border-opacity: 1; - border-color: rgb(63 72 81 / var(--tw-border-opacity)); + border-color: rgb(63 72 81 / var(--tw-border-opacity, 1)); } .hover\:border-\[\#4d7575\]:hover{ --tw-border-opacity: 1; - border-color: rgb(77 117 117 / var(--tw-border-opacity)); + border-color: rgb(77 117 117 / var(--tw-border-opacity, 1)); } .hover\:border-amber-300:hover{ --tw-border-opacity: 1; - border-color: rgb(252 211 77 / var(--tw-border-opacity)); + border-color: rgb(252 211 77 / var(--tw-border-opacity, 1)); } .hover\:border-blue-400:hover{ --tw-border-opacity: 1; - border-color: rgb(96 165 250 / var(--tw-border-opacity)); + border-color: rgb(96 165 250 / var(--tw-border-opacity, 1)); } .hover\:border-gray-100:hover{ --tw-border-opacity: 1; - border-color: rgb(243 244 246 / var(--tw-border-opacity)); + border-color: rgb(243 244 246 / var(--tw-border-opacity, 1)); } .hover\:border-gray-200:hover{ --tw-border-opacity: 1; - border-color: rgb(229 231 235 / var(--tw-border-opacity)); + border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); } .hover\:border-gray-300:hover{ --tw-border-opacity: 1; - border-color: rgb(209 213 219 / var(--tw-border-opacity)); + border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); } .hover\:border-gray-500:hover{ --tw-border-opacity: 1; - border-color: rgb(107 114 128 / var(--tw-border-opacity)); + border-color: rgb(107 114 128 / var(--tw-border-opacity, 1)); } .hover\:border-gray-600:hover{ --tw-border-opacity: 1; - border-color: rgb(75 85 99 / var(--tw-border-opacity)); + border-color: rgb(75 85 99 / var(--tw-border-opacity, 1)); } .hover\:border-red-500:hover{ --tw-border-opacity: 1; - border-color: rgb(239 68 68 / var(--tw-border-opacity)); + border-color: rgb(239 68 68 / var(--tw-border-opacity, 1)); } .hover\:border-teal-200:hover{ --tw-border-opacity: 1; - border-color: rgb(153 246 228 / var(--tw-border-opacity)); + border-color: rgb(153 246 228 / var(--tw-border-opacity, 1)); } .hover\:border-teal-500:hover{ --tw-border-opacity: 1; - border-color: rgb(20 184 166 / var(--tw-border-opacity)); + border-color: rgb(20 184 166 / var(--tw-border-opacity, 1)); } .hover\:border-teal-600:hover{ --tw-border-opacity: 1; - border-color: rgb(13 148 136 / var(--tw-border-opacity)); + border-color: rgb(13 148 136 / var(--tw-border-opacity, 1)); } .hover\:bg-\[\#212325\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(33 35 37 / var(--tw-bg-opacity)); + background-color: rgb(33 35 37 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#222425\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(34 36 37 / var(--tw-bg-opacity)); + background-color: rgb(34 36 37 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#224141\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(34 65 65 / var(--tw-bg-opacity)); + background-color: rgb(34 65 65 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#23272a\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(35 39 42 / var(--tw-bg-opacity)); + background-color: rgb(35 39 42 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#234545\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(35 69 69 / var(--tw-bg-opacity)); + background-color: rgb(35 69 69 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#243535\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(36 53 53 / var(--tw-bg-opacity)); + background-color: rgb(36 53 53 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#244343\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(36 67 67 / var(--tw-bg-opacity)); + background-color: rgb(36 67 67 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#264e4e\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(38 78 78 / var(--tw-bg-opacity)); + background-color: rgb(38 78 78 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#282a2d\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(40 42 45 / var(--tw-bg-opacity)); + background-color: rgb(40 42 45 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#2b3034\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(43 48 52 / var(--tw-bg-opacity)); + background-color: rgb(43 48 52 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#325e5a\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(50 94 90 / var(--tw-bg-opacity)); + background-color: rgb(50 94 90 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#336666\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(51 102 102 / var(--tw-bg-opacity)); + background-color: rgb(51 102 102 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#374045\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(55 64 69 / var(--tw-bg-opacity)); + background-color: rgb(55 64 69 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#383c3f\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(56 60 63 / var(--tw-bg-opacity)); + background-color: rgb(56 60 63 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#3c434a\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(60 67 74 / var(--tw-bg-opacity)); + background-color: rgb(60 67 74 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#407d7d\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(64 125 125 / var(--tw-bg-opacity)); + background-color: rgb(64 125 125 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#447a75\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(68 122 117 / var(--tw-bg-opacity)); + background-color: rgb(68 122 117 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#488d8d\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(72 141 141 / var(--tw-bg-opacity)); + background-color: rgb(72 141 141 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#4c7960\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(76 121 96 / var(--tw-bg-opacity)); + background-color: rgb(76 121 96 / var(--tw-bg-opacity, 1)); } .hover\:bg-\[\#4d7575\]:hover{ --tw-bg-opacity: 1; - background-color: rgb(77 117 117 / var(--tw-bg-opacity)); + background-color: rgb(77 117 117 / var(--tw-bg-opacity, 1)); } .hover\:bg-black:hover{ --tw-bg-opacity: 1; - background-color: rgb(0 0 0 / var(--tw-bg-opacity)); + background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); } .hover\:bg-blue-100:hover{ --tw-bg-opacity: 1; - background-color: rgb(219 234 254 / var(--tw-bg-opacity)); + background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); } .hover\:bg-blue-300:hover{ --tw-bg-opacity: 1; - background-color: rgb(147 197 253 / var(--tw-bg-opacity)); + background-color: rgb(147 197 253 / var(--tw-bg-opacity, 1)); } .hover\:bg-blue-400:hover{ --tw-bg-opacity: 1; - background-color: rgb(96 165 250 / var(--tw-bg-opacity)); + background-color: rgb(96 165 250 / var(--tw-bg-opacity, 1)); } .hover\:bg-blue-500:hover{ --tw-bg-opacity: 1; - background-color: rgb(59 130 246 / var(--tw-bg-opacity)); + background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1)); } .hover\:bg-cyan-600:hover{ --tw-bg-opacity: 1; - background-color: rgb(8 145 178 / var(--tw-bg-opacity)); + background-color: rgb(8 145 178 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-100:hover{ --tw-bg-opacity: 1; - background-color: rgb(243 244 246 / var(--tw-bg-opacity)); + background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-300:hover{ --tw-bg-opacity: 1; - background-color: rgb(209 213 219 / var(--tw-bg-opacity)); + background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-500:hover{ --tw-bg-opacity: 1; - background-color: rgb(107 114 128 / var(--tw-bg-opacity)); + background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-600:hover{ --tw-bg-opacity: 1; - background-color: rgb(75 85 99 / var(--tw-bg-opacity)); + background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1)); } .hover\:bg-gray-700:hover{ --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); + background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)); } .hover\:bg-green-600:hover{ --tw-bg-opacity: 1; - background-color: rgb(22 163 74 / var(--tw-bg-opacity)); + background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); } .hover\:bg-lime-900:hover{ --tw-bg-opacity: 1; - background-color: rgb(54 83 20 / var(--tw-bg-opacity)); + background-color: rgb(54 83 20 / var(--tw-bg-opacity, 1)); } .hover\:bg-red-500:hover{ --tw-bg-opacity: 1; - background-color: rgb(239 68 68 / var(--tw-bg-opacity)); + background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1)); } .hover\:bg-red-600:hover{ --tw-bg-opacity: 1; - background-color: rgb(220 38 38 / var(--tw-bg-opacity)); + background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1)); } .hover\:bg-red-700:hover{ --tw-bg-opacity: 1; - background-color: rgb(185 28 28 / var(--tw-bg-opacity)); + background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1)); } .hover\:bg-red-800:hover{ --tw-bg-opacity: 1; - background-color: rgb(153 27 27 / var(--tw-bg-opacity)); + background-color: rgb(153 27 27 / var(--tw-bg-opacity, 1)); } .hover\:bg-red-950:hover{ --tw-bg-opacity: 1; - background-color: rgb(69 10 10 / var(--tw-bg-opacity)); + background-color: rgb(69 10 10 / var(--tw-bg-opacity, 1)); } .hover\:bg-slate-300:hover{ --tw-bg-opacity: 1; - background-color: rgb(203 213 225 / var(--tw-bg-opacity)); + background-color: rgb(203 213 225 / var(--tw-bg-opacity, 1)); } .hover\:bg-teal-600:hover{ --tw-bg-opacity: 1; - background-color: rgb(13 148 136 / var(--tw-bg-opacity)); + background-color: rgb(13 148 136 / var(--tw-bg-opacity, 1)); } .hover\:bg-teal-700:hover{ --tw-bg-opacity: 1; - background-color: rgb(15 118 110 / var(--tw-bg-opacity)); + background-color: rgb(15 118 110 / var(--tw-bg-opacity, 1)); } .hover\:bg-teal-800:hover{ --tw-bg-opacity: 1; - background-color: rgb(17 94 89 / var(--tw-bg-opacity)); + background-color: rgb(17 94 89 / var(--tw-bg-opacity, 1)); } .hover\:bg-teal-900:hover{ --tw-bg-opacity: 1; - background-color: rgb(19 78 74 / var(--tw-bg-opacity)); + background-color: rgb(19 78 74 / var(--tw-bg-opacity, 1)); } .hover\:bg-teal-950:hover{ --tw-bg-opacity: 1; - background-color: rgb(4 47 46 / var(--tw-bg-opacity)); + background-color: rgb(4 47 46 / var(--tw-bg-opacity, 1)); } .hover\:bg-opacity-10:hover{ @@ -6078,37 +6082,37 @@ html body { .hover\:text-black:hover{ --tw-text-opacity: 1; - color: rgb(0 0 0 / var(--tw-text-opacity)); + color: rgb(0 0 0 / var(--tw-text-opacity, 1)); } .hover\:text-gray-100:hover{ --tw-text-opacity: 1; - color: rgb(243 244 246 / var(--tw-text-opacity)); + color: rgb(243 244 246 / var(--tw-text-opacity, 1)); } .hover\:text-gray-200:hover{ --tw-text-opacity: 1; - color: rgb(229 231 235 / var(--tw-text-opacity)); + color: rgb(229 231 235 / var(--tw-text-opacity, 1)); } .hover\:text-gray-300:hover{ --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); + color: rgb(209 213 219 / var(--tw-text-opacity, 1)); } .hover\:text-gray-700:hover{ --tw-text-opacity: 1; - color: rgb(55 65 81 / var(--tw-text-opacity)); + color: rgb(55 65 81 / var(--tw-text-opacity, 1)); } .hover\:text-teal-500:hover{ --tw-text-opacity: 1; - color: rgb(20 184 166 / var(--tw-text-opacity)); + color: rgb(20 184 166 / var(--tw-text-opacity, 1)); } .hover\:text-white:hover{ --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); + color: rgb(255 255 255 / var(--tw-text-opacity, 1)); } .hover\:shadow-2xl:hover{ @@ -6211,12 +6215,12 @@ html body { .focus\:border-blue-500:focus{ --tw-border-opacity: 1; - border-color: rgb(59 130 246 / var(--tw-border-opacity)); + border-color: rgb(59 130 246 / var(--tw-border-opacity, 1)); } .focus\:border-teal-500:focus{ --tw-border-opacity: 1; - border-color: rgb(20 184 166 / var(--tw-border-opacity)); + border-color: rgb(20 184 166 / var(--tw-border-opacity, 1)); } .focus\:outline-none:focus{ @@ -6233,7 +6237,7 @@ html body { .focus\:ring-blue-300:focus{ --tw-ring-opacity: 1; - --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity)); + --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity, 1)); } .focus\:ring-opacity-40:focus{ @@ -6274,7 +6278,7 @@ html body { .active\:bg-\[\#1b1c1c\]:active{ --tw-bg-opacity: 1; - background-color: rgb(27 28 28 / var(--tw-bg-opacity)); + background-color: rgb(27 28 28 / var(--tw-bg-opacity, 1)); } .active\:shadow-none:active{ @@ -6313,22 +6317,22 @@ html body { @media (prefers-color-scheme: dark){ .dark\:text-gray-300{ --tw-text-opacity: 1; - color: rgb(209 213 219 / var(--tw-text-opacity)); + color: rgb(209 213 219 / var(--tw-text-opacity, 1)); } .dark\:text-gray-400{ --tw-text-opacity: 1; - color: rgb(156 163 175 / var(--tw-text-opacity)); + color: rgb(156 163 175 / var(--tw-text-opacity, 1)); } .dark\:hover\:bg-gray-700:hover{ --tw-bg-opacity: 1; - background-color: rgb(55 65 81 / var(--tw-bg-opacity)); + background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)); } .dark\:hover\:text-white:hover{ --tw-text-opacity: 1; - color: rgb(255 255 255 / var(--tw-text-opacity)); + color: rgb(255 255 255 / var(--tw-text-opacity, 1)); } } diff --git a/launcher/src/backend/CustomUrlProtocol.js b/launcher/src/backend/CustomUrlProtocol.js new file mode 100644 index 000000000..984a9127a --- /dev/null +++ b/launcher/src/backend/CustomUrlProtocol.js @@ -0,0 +1,136 @@ +import { BrowserWindow } from "electron"; +import { URL } from "url"; + +export class ProtocolHandler { + constructor(storageService) { + this.storageService = storageService; + } + + /** + * Focus or create main window + */ + focusWindow() { + const mainWindow = BrowserWindow.getAllWindows()[0]; + if (mainWindow) { + if (mainWindow.isMinimized()) { + mainWindow.restore(); + } + mainWindow.focus(); + } + } + + /** + * Get the default configuration + * @returns {Object} Default config object + */ + getDefaultConfig() { + return { + savedLanguage: { + language: "english", + flag: "img/flag/united-kingdom.png", + label: "en", + }, + savedConnections: [], + }; + } + + /** + * Validate server data + * @param {Object} server - Server object to validate + * @returns {boolean} Validation result + */ + validateServerData(server) { + return ( + server && + typeof server.name === "string" && + typeof server.host === "string" && + "user" in server && + "port" in server && + "keylocation" in server && + "useAuthKey" in server + ); + } + + /** + * Handle the custom URL protocol + * @param {string} urlString - The URL to handle + * @returns {Promise} Success status + */ + async handleCustomUrl(urlString) { + console.log("Handling custom URL:", urlString); + + try { + // Parse URL + const parsedUrl = new URL(urlString); + const data = parsedUrl.searchParams.get("data"); + + if (!data) { + console.warn("No data parameter found in URL"); + return false; + } + + // Parse data + const serverArray = JSON.parse(decodeURIComponent(data)); + if (!Array.isArray(serverArray)) { + console.error("Data is not an array"); + return false; + } + + // Read existing config + const existingConfig = (await this.storageService.readConfig()) || this.getDefaultConfig(); + + // savedConnections exists + if (!existingConfig.savedConnections) { + existingConfig.savedConnections = []; + } + + // validate srvers + let addedServers = 0; + for (const newServer of serverArray) { + if (this.validateServerData(newServer)) { + // Chck for duplicates + const isDuplicate = existingConfig.savedConnections.some((conn) => conn.host === newServer.host && conn.name === newServer.name); + + if (!isDuplicate) { + existingConfig.savedConnections.push({ + name: newServer.name, + host: newServer.host, + user: newServer.user || "", + port: newServer.port || "", + keylocation: newServer.keylocation || "", + useAuthKey: newServer.useAuthKey || false, + }); + addedServers++; + } else { + console.log(`Skipping duplicate server: ${newServer.host}`); + } + } else { + console.warn("Invalid server data:", newServer); + } + } + + // Write config + if (addedServers > 0) { + await this.storageService.writeConfig(existingConfig); + console.log(`Successfully added ${addedServers} server(s)`); + } + + this.focusWindow(); + + return addedServers > 0; + } catch (error) { + console.error("Error handling custom URL:", error); + return false; + } + } + + /** + * Generate a protocol URL + * @param {Object|Array} serverData - Server data to encode + * @returns {string} Encoded URL + */ + static generateProtocolUrl(serverData) { + const data = encodeURIComponent(JSON.stringify(Array.isArray(serverData) ? serverData : [serverData])); + return `stereumlauncher://open?data=${data}`; + } +} diff --git a/launcher/src/background.js b/launcher/src/background.js index 00364aa04..fe609de51 100755 --- a/launcher/src/background.js +++ b/launcher/src/background.js @@ -1,6 +1,6 @@ "use strict"; -import { app, protocol, BrowserWindow, shell, dialog, Menu, ipcMain } from "electron"; +import { app, protocol, BrowserWindow, shell, dialog, ipcMain, Menu } from "electron"; import { createProtocol } from "vue-cli-plugin-electron-builder/lib"; import { StorageService } from "./storageservice.js"; import { NodeConnection } from "./backend/NodeConnection.js"; @@ -14,6 +14,7 @@ import { ConfigManager } from "./backend/ConfigManager.js"; import { AuthenticationService } from "./backend/AuthenticationService.js"; import { TekuGasLimitConfig } from "./backend/TekuGasLimitConfig.js"; import { SSHService } from "./backend/SSHService.js"; +import { ProtocolHandler } from "./backend/CustomUrlProtocol.js"; import path from "path"; import { readFileSync, existsSync, mkdirSync, renameSync, readdir, rmSync } from "fs"; import url from "url"; @@ -34,6 +35,7 @@ const sshService = new SSHService(); const { globalShortcut } = require("electron"); const log = require("electron-log"); const stereumUpdater = new StereumUpdater(log, createWindow, isDevelopment); +const protocolHandler = new ProtocolHandler(storageService); stereumUpdater.initUpdater(); log.transports.console.level = process.env.LOG_LEVEL || "info"; log.transports.file.level = "debug"; @@ -853,6 +855,7 @@ ipcMain.handle("getSSVClusterInformation", async (event, args) => { // Scheme must be registered before the app is ready protocol.registerSchemesAsPrivileged([{ scheme: "app", privileges: { secure: true, standard: true } }]); +let mainWindow = null; async function createWindow(type = "main") { // Create the browser window. @@ -900,6 +903,9 @@ async function createWindow(type = "main") { } else { win.loadURL("app://./index.html"); } + + mainWindow = win; + return win; } win.on("ready-to-show", async () => { @@ -982,12 +988,8 @@ async function createWindow(type = "main") { // Disable CTRL+R and F5 in build if (!isDevelopment) { app.on("browser-window-focus", function () { - globalShortcut.register("CommandOrControl+R", () => { - // console.log("CommandOrControl+R is pressed: Shortcut Disabled"); - }); - globalShortcut.register("F5", () => { - // console.log("F5 is pressed: Shortcut Disabled"); - }); + globalShortcut.register("CommandOrControl+R", () => {}); + globalShortcut.register("F5", () => {}); }); app.on("browser-window-blur", function () { globalShortcut.unregister("CommandOrControl+R"); @@ -997,8 +999,6 @@ if (!isDevelopment) { // Quit when all windows are closed. app.on("window-all-closed", () => { - // On macOS it is common for applications and their menu bar - // to stay active until the user quits explicitly with Cmd + Q nodeConnection.logout(); if (process.platform !== "darwin") { app.quit(); @@ -1006,14 +1006,10 @@ app.on("window-all-closed", () => { }); app.on("activate", () => { - // On macOS it's common to re-create a window in the app when the - // dock icon is clicked and there are no other windows open. if (BrowserWindow.getAllWindows().length === 0) createWindow(); }); app.on("web-contents-created", (event, contents) => { - // open every new window in the OS's default browser instead of a - // new Electron windows. contents.setWindowOpenHandler((details) => { const parsedUrl = new url.URL(details.url); if (["https:", "http:", "mailto:"].includes(parsedUrl.protocol)) { @@ -1023,30 +1019,72 @@ app.on("web-contents-created", (event, contents) => { }); }); -// This method will be called when Electron has finished -// initialization and is ready to create browser windows. -// Some APIs can only be used after this event occurs. app.on("ready", async () => { - // workaround for linux whitescreen - // if(process.platform === "linux"){ - // app.commandLine.appendSwitch('--no-sandbox') - // } + if (process.env.WEBPACK_DEV_SERVER_URL) { + // Development mode + app.setAsDefaultProtocolClient("stereumlauncher", process.execPath, [path.resolve(process.argv[1])]); + } else { + // Production mode + app.setAsDefaultProtocolClient("stereumlauncher"); - // Disable "View" and "Window" Menu items in build (since CTRL+R and F5 is disabled also) - if (!isDevelopment) { + // Disable "View" and "Window" Menu items in build const hideMenuItems = ["viewmenu", "windowmenu"]; var menu = Menu.getApplicationMenu(); menu.items.filter((item) => hideMenuItems.includes(item.role)).map((item) => (item.visible = false)); Menu.setApplicationMenu(menu); + + // Check for updates in production stereumUpdater.checkForUpdates(); + } + + await createWindow(); +}); + +// Handle the protocol on Windows and Linux +if (process.platform === "win32" || process.platform === "linux") { + const gotTheLock = app.requestSingleInstanceLock(); + + if (!gotTheLock) { + app.quit(); } else { - // remove the comment if you try to debug the updater in dev mode - // await stereumUpdater.runDebug() - createWindow(); + app.on("second-instance", async (event, argv) => { + if (mainWindow) { + if (mainWindow.isMinimized()) mainWindow.restore(); + mainWindow.focus(); + + const url = argv.find((arg) => arg.startsWith("stereumlauncher://")); + if (url) { + await protocolHandler.handleCustomUrl(url); + } + } + }); + } +} + +// Handle the protocol on macOS +if (process.platform === "darwin") { + app.on("open-url", async (event, url) => { + event.preventDefault(); + + // If app is not ready, wait for it + if (!mainWindow) { + app.on("ready", async () => { + await protocolHandler.handleCustomUrl(url); + }); + } else { + await protocolHandler.handleCustomUrl(url); + } + }); +} + +// Handle URLs from command line arguments (works for all platforms) +app.on("ready", async () => { + const protocolUrl = process.argv.find((arg) => arg.startsWith("stereumlauncher://")); + if (protocolUrl) { + await protocolHandler.handleCustomUrl(protocolUrl); } }); -// Exit cleanly on request from parent process in development mode. if (isDevelopment) { if (process.platform === "win32") { process.on("message", (data) => { diff --git a/launcher/src/preload.js b/launcher/src/preload.js index d779442e4..7dcb577b4 100755 --- a/launcher/src/preload.js +++ b/launcher/src/preload.js @@ -1,14 +1,20 @@ -// src/preload.js const { contextBridge, ipcRenderer } = require("electron"); + contextBridge.exposeInMainWorld("promiseIpc", { send: (event, ...args) => ipcRenderer.invoke(event, ...args), addListener: (event, listener) => ipcRenderer.on(event, listener), removeListener: (channel, listener) => ipcRenderer.removeAllListeners(channel, listener), - // for terminal interaction + // For terminal interaction startShell: () => ipcRenderer.invoke("startShell"), onTerminalOutput: (callback) => { ipcRenderer.on("terminal-output", (_, arg) => callback(arg)); return () => ipcRenderer.removeListener("terminal-output", callback); }, + + // Custom URL handling + onCustomUrl: (callback) => { + ipcRenderer.on("handle-custom-url", (_, url) => callback(url)); + return () => ipcRenderer.removeListener("handle-custom-url", callback); + }, }); diff --git a/launcher/src/storageservice.js b/launcher/src/storageservice.js index bf7b091f7..6540c0cc7 100755 --- a/launcher/src/storageservice.js +++ b/launcher/src/storageservice.js @@ -1,17 +1,29 @@ const Store = require("electron-store"); +const log = require("electron-log"); export class StorageService { constructor() { this.store = new Store(); + log.info("StorageService initialized. Config file path:", this.store.path); } async writeConfig(config) { - this.store.set("config-v2", config); + try { + this.store.set("config-v2", config); + log.info("Config written:", config); + } catch (error) { + log.error("Error writing config:", error); + } } async readConfig() { - return new Promise((resolve) => { - resolve(this.store.get("config-v2")); - }); + try { + const config = this.store.get("config-v2"); + log.info("Config read:", config); + return new Promise((resolve) => resolve(config)); + } catch (error) { + log.error("Error reading config:", error); + return new Promise((resolve) => resolve(null)); + } } } diff --git a/launcher/src/store/ControlService.js b/launcher/src/store/ControlService.js index 44ca041a8..722f0c4be 100755 --- a/launcher/src/store/ControlService.js +++ b/launcher/src/store/ControlService.js @@ -755,6 +755,13 @@ class ControlService extends EventEmitter { async getSSVClusterInformation(serviceID) { return this.promiseIpc.send("getSSVClusterInformation", { serviceID }); } + + onCustomUrl(callback) { + this.addListener("handle-custom-url", (_, url) => { + console.log("Custom URL received:", url); + if (callback) callback(url); + }); + } } if (!instance) { instance = new ControlService(window.electron); diff --git a/launcher/vue.config.js b/launcher/vue.config.js index eb53590f1..4ffdf2b36 100755 --- a/launcher/vue.config.js +++ b/launcher/vue.config.js @@ -1,5 +1,3 @@ -// const path = require("path"); - module.exports = { parallel: false, pluginOptions: { @@ -13,12 +11,18 @@ module.exports = { appId: "com.stereum.launcher", productName: "Stereum-Launcher", afterSign: "@sapien99/vue-cli-plugin-electron-builder-notarize", - // options placed here will be merged with default configuration and passed to electron-builder buildDependenciesFromSource: false, nodeGypRebuild: false, npmRebuild: false, + // Define protocols once here at the root level + protocols: [ + { + name: "Stereum Launcher Protocol", + schemes: ["stereumlauncher"], + }, + ], linux: { - target: "AppImage", + target: ["AppImage", "deb"], artifactName: "Stereum-Launcher-${version}.${ext}", }, mac: { @@ -28,7 +32,7 @@ module.exports = { artifactName: "Stereum-Launcher-${version}.${ext}", }, win: { - sign: "./customsign.js", // use custom sign hook on windows + sign: "./customsign.js", //change to windows-signing.js artifactName: "Stereum-Launcher-Setup-${version}.${ext}", }, },