@@ -47,6 +47,11 @@ This extension, UT Registration Plus (UTRP), tries to streamline most of the unn
|
|||||||
|
|
||||||
- Run `pnpm build`
|
- Run `pnpm build`
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Beta builds</summary>
|
||||||
|
Use `BETA=true pnpm build` to build a beta build.
|
||||||
|
</details>
|
||||||
|
|
||||||
## Development: Loading the Extension Manually
|
## Development: Loading the Extension Manually
|
||||||
|
|
||||||
Open [chrome://extensions](chrome://extensions), ensure you have 'Developer Mode' enabled, and click 'Load unpacked'.
|
Open [chrome://extensions](chrome://extensions), ensure you have 'Developer Mode' enabled, and click 'Load unpacked'.
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "ut-registration-plus",
|
"name": "ut-registration-plus",
|
||||||
"displayName": "UT Registration Plus",
|
"displayName": "UT Registration Plus",
|
||||||
"version": "0.0.1",
|
"version": "2.0.0-beta1",
|
||||||
"description": "The UT Registration Plus extension is a Chrome extension that allows students to easily register for classes at The University of Texas at Austin.",
|
"description": "The UT Registration Plus extension is a Chrome extension that allows students to easily register for classes at The University of Texas at Austin.",
|
||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "sriramhariharan.com",
|
"homepage": "sriramhariharan.com",
|
||||||
|
|||||||
30
public/icons/icon_beta.svg
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Beta" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: none;
|
||||||
|
stroke: #fff;
|
||||||
|
stroke-width: 70.06px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: #005f86;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2, .cls-3 {
|
||||||
|
stroke-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<rect class="cls-2" width="1024" height="1024"/>
|
||||||
|
<g>
|
||||||
|
<circle class="cls-1" cx="512" cy="512" r="362"/>
|
||||||
|
<rect class="cls-3" x="466.29" y="283.46" width="91.41" height="457.07"/>
|
||||||
|
<rect class="cls-3" x="283.46" y="466.29" width="457.07" height="91.41"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 684 B |
BIN
public/icons/icon_beta_128.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
public/icons/icon_beta_16.png
Normal file
|
After Width: | Height: | Size: 429 B |
BIN
public/icons/icon_beta_32.png
Normal file
|
After Width: | Height: | Size: 791 B |
BIN
public/icons/icon_beta_48.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
30
public/icons/icon_development.svg
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Development" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: none;
|
||||||
|
stroke: #fff;
|
||||||
|
stroke-width: 70.06px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: #bf2178;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2, .cls-3 {
|
||||||
|
stroke-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<rect class="cls-2" x="0" width="1024" height="1024"/>
|
||||||
|
<g>
|
||||||
|
<circle class="cls-1" cx="512" cy="512" r="362"/>
|
||||||
|
<rect class="cls-3" x="466.29" y="283.46" width="91.41" height="457.07"/>
|
||||||
|
<rect class="cls-3" x="283.46" y="466.29" width="457.07" height="91.41"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 697 B |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 430 B After Width: | Height: | Size: 449 B |
|
Before Width: | Height: | Size: 849 B After Width: | Height: | Size: 729 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.0 KiB |
30
public/icons/icon_production.svg
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg id="Production" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.cls-1 {
|
||||||
|
fill: #bf5700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-1, .cls-2 {
|
||||||
|
stroke-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-3 {
|
||||||
|
fill: none;
|
||||||
|
stroke: #fff;
|
||||||
|
stroke-width: 70.06px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cls-2 {
|
||||||
|
fill: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<rect class="cls-1" width="1024" height="1024"/>
|
||||||
|
<g>
|
||||||
|
<circle class="cls-3" cx="512" cy="512" r="362"/>
|
||||||
|
<rect class="cls-2" x="466.29" y="283.46" width="91.41" height="457.07"/>
|
||||||
|
<rect class="cls-2" x="283.46" y="466.29" width="457.07" height="91.41"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 690 B |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 421 B |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 706 B |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 1.0 KiB |
@@ -9,7 +9,12 @@ const [major, minor, patch, label = '0'] = packageJson.version
|
|||||||
// split into version parts
|
// split into version parts
|
||||||
.split(/[.-]/);
|
.split(/[.-]/);
|
||||||
|
|
||||||
const mode = process.env.NODE_ENV;
|
const isBeta = !!process.env.BETA;
|
||||||
|
const mode = isBeta ? 'beta' : process.env.NODE_ENV;
|
||||||
|
|
||||||
|
if (isBeta && process.env.NODE_ENV !== 'production') throw new Error('Cannot have beta non-production build');
|
||||||
|
// eslint-disable-next-line no-nested-ternary
|
||||||
|
const nameSuffix = isBeta ? ' (beta)' : mode === 'development' ? ' (dev)' : '';
|
||||||
|
|
||||||
const HOST_PERMISSIONS: string[] = [
|
const HOST_PERMISSIONS: string[] = [
|
||||||
'*://*.utdirect.utexas.edu/apps/registrar/course_schedule/*',
|
'*://*.utdirect.utexas.edu/apps/registrar/course_schedule/*',
|
||||||
@@ -22,7 +27,7 @@ const HOST_PERMISSIONS: string[] = [
|
|||||||
|
|
||||||
const manifest = defineManifest(async () => ({
|
const manifest = defineManifest(async () => ({
|
||||||
manifest_version: 3,
|
manifest_version: 3,
|
||||||
name: `${packageJson.displayName ?? packageJson.name}${mode === 'development' ? ' (dev)' : ''}`,
|
name: `${packageJson.displayName ?? packageJson.name}${nameSuffix}`,
|
||||||
version: `${major}.${minor}.${patch}.${label}`,
|
version: `${major}.${minor}.${patch}.${label}`,
|
||||||
description: packageJson.description,
|
description: packageJson.description,
|
||||||
options_page: 'src/pages/options/index.html',
|
options_page: 'src/pages/options/index.html',
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export default defineConfig({
|
|||||||
shortcuts: {
|
shortcuts: {
|
||||||
focusable: 'outline-none ring-blue-500/50 dark:ring-blue-400/60 ring-0 focus-visible:ring-4',
|
focusable: 'outline-none ring-blue-500/50 dark:ring-blue-400/60 ring-0 focus-visible:ring-4',
|
||||||
btn: 'h-10 w-auto flex cursor-pointer justify-center items-center gap-2 rounded-1 px-4 py-0 text-4.5 btn-transition disabled:(cursor-not-allowed opacity-50) active:enabled:scale-96 focusable',
|
btn: 'h-10 w-auto flex cursor-pointer justify-center items-center gap-2 rounded-1 px-4 py-0 text-4.5 btn-transition disabled:(cursor-not-allowed opacity-50) active:enabled:scale-96 focusable',
|
||||||
link: 'text-ut-burntorange underline underline-offset-2 hover:text-ut-orange focus-visible:text-ut-orange focusable btn-transition ease-out-expo',
|
link: 'text-ut-burntorange link:text-ut-burntorange underline underline-offset-2 hover:text-ut-orange focus-visible:text-ut-orange focusable btn-transition ease-out-expo',
|
||||||
linkanimate:
|
linkanimate:
|
||||||
'relative cursor-pointer transition duration-100 ease-out after:(absolute left-0.4 right-0.4 h-2px scale-x-95 bg-ut-orange opacity-0 transition duration-250 ease-out-expo content-empty -bottom-0.75 -translate-y-0.5) active:scale-95 hover:text-ut-orange focus-visible:text-ut-orange hover:after:(opacity-100) !hover:after:translate-y-0 !hover:after:scale-x-100',
|
'relative cursor-pointer transition duration-100 ease-out after:(absolute left-0.4 right-0.4 h-2px scale-x-95 bg-ut-orange opacity-0 transition duration-250 ease-out-expo content-empty -bottom-0.75 -translate-y-0.5) active:scale-95 hover:text-ut-orange focus-visible:text-ut-orange hover:after:(opacity-100) !hover:after:translate-y-0 !hover:after:scale-x-100',
|
||||||
},
|
},
|
||||||
|
|||||||