added rounded

This commit is contained in:
liyunze 2026-09-01 16:00:25 +08:00
parent 4135cdca3a
commit 2bb6c09b5e
6 changed files with 3333 additions and 3173 deletions

View file

@ -13,76 +13,86 @@
// If the loader is already loaded, just stop.
if (!self.define) {
let registry = {};
let registry = {};
// Used for `eval` and `importScripts` where we can't get script URL by other means.
// In both cases, it's safe to use a global var because those functions are synchronous.
let nextDefineUri;
// Used for `eval` and `importScripts` where we can't get script URL by other means.
// In both cases, it's safe to use a global var because those functions are synchronous.
let nextDefineUri;
const singleRequire = (uri, parentUri) => {
uri = new URL(uri + ".js", parentUri).href;
return registry[uri] || (
new Promise(resolve => {
if ("document" in self) {
const script = document.createElement("script");
script.src = uri;
script.onload = resolve;
document.head.appendChild(script);
} else {
nextDefineUri = uri;
importScripts(uri);
resolve();
}
})
.then(() => {
let promise = registry[uri];
if (!promise) {
throw new Error(`Module ${uri} didnt register its module`);
}
return promise;
})
);
};
const singleRequire = (uri, parentUri) => {
uri = new URL(uri + ".js", parentUri).href;
return (
registry[uri] ||
new Promise((resolve) => {
if ("document" in self) {
const script = document.createElement("script");
script.src = uri;
script.onload = resolve;
document.head.appendChild(script);
} else {
nextDefineUri = uri;
importScripts(uri);
resolve();
}
})
self.define = (depsNames, factory) => {
const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href;
if (registry[uri]) {
// Module is already loading or loaded.
return;
}
let exports = {};
const require = depUri => singleRequire(depUri, uri);
const specialDeps = {
module: { uri },
exports,
require
};
registry[uri] = Promise.all(depsNames.map(
depName => specialDeps[depName] || require(depName)
)).then(deps => {
factory(...deps);
return exports;
});
};
.then(() => {
let promise = registry[uri];
if (!promise) {
throw new Error(`Module ${uri} didnt register its module`);
}
return promise;
})
);
};
self.define = (depsNames, factory) => {
const uri =
nextDefineUri ||
("document" in self ? document.currentScript.src : "") ||
location.href;
if (registry[uri]) {
// Module is already loading or loaded.
return;
}
let exports = {};
const require = (depUri) => singleRequire(depUri, uri);
const specialDeps = {
module: { uri },
exports,
require,
};
registry[uri] = Promise.all(
depsNames.map((depName) => specialDeps[depName] || require(depName)),
).then((deps) => {
factory(...deps);
return exports;
});
};
}
define(['./workbox-7e5eb42b'], (function (workbox) { 'use strict';
define(["./workbox-7e5eb42b"], function (workbox) {
"use strict";
self.skipWaiting();
workbox.clientsClaim();
/**
* The precacheAndRoute() method efficiently caches and responds to
* requests for URLs in the manifest.
* See https://goo.gl/S9QRab
*/
workbox.precacheAndRoute([{
"url": "/",
"revision": "0.or5ntbjovsg"
}], {});
workbox.cleanupOutdatedCaches();
workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("/"), {
allowlist: [/^\/$/]
}));
}));
self.skipWaiting();
workbox.clientsClaim();
/**
* The precacheAndRoute() method efficiently caches and responds to
* requests for URLs in the manifest.
* See https://goo.gl/S9QRab
*/
workbox.precacheAndRoute(
[
{
url: "/",
revision: "0.or5ntbjovsg",
},
],
{},
);
workbox.cleanupOutdatedCaches();
workbox.registerRoute(
new workbox.NavigationRoute(workbox.createHandlerBoundToURL("/"), {
allowlist: [/^\/$/],
}),
);
});

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="DSEC Notebook — a resource hub for Deakin University students. Shared study notes, questions and answers for SIT and Mathematics units."
content="A resource hub for Deakin University students. Shared study notes, questions and answers for SIT and Mathematics units."
/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />

View file

@ -107,7 +107,7 @@
bind:value={searchQuery}
placeholder="Search"
aria-label="Search notes and questions"
class="border-rule text-ink placeholder:text-faint focus:border-primary bg-surface w-40 rounded-none border px-2.5 py-1.5 text-[11px] tracking-wide transition-colors outline-none"
class="border-rule text-ink placeholder:text-faint focus:border-primary bg-surface w-40 rounded-sm border px-2.5 py-1.5 text-[11px] tracking-wide transition-colors outline-none"
/>
</form>
</nav>
@ -137,7 +137,7 @@
bind:value={searchQuery}
placeholder="Search"
aria-label="Search notes and questions"
class="border-rule text-ink placeholder:text-faint focus:border-primary bg-surface w-full rounded-none border px-3 py-2 text-sm tracking-wide transition-colors outline-none"
class="border-rule text-ink placeholder:text-faint focus:border-primary bg-surface w-full rounded-sm border px-3 py-2 text-sm tracking-wide transition-colors outline-none"
/>
</form>
<a href="/notes" class="nav-link block" onclick={() => (mobileMenuOpen = false)}

View file

@ -19,7 +19,7 @@
</script>
<svelte:head>
<title>Notebook — written by students</title>
<title>DSEC Notebook</title>
</svelte:head>
<div class="page">
@ -47,11 +47,11 @@
{:else if error}
<p class="kicker">{error}</p>
{:else}
<div class="grid grid-cols-1 sm:grid-cols-2">
<div class="grid grid-cols-1 sm:grid-cols-2 sm:gap-x-5">
{#each units as unit}
<a
href="/units/{unit.code}"
class="group border-rule flex items-baseline justify-between gap-4 border-b px-5 py-3"
class="group border-rule flex items-baseline justify-between gap-4 border-b py-3"
>
<span class="text-ink group-hover:text-primary font-serif text-lg"
>{unit.code}{unit.code2 ? ` / ${unit.code2}` : ""}</span

View file

@ -89,23 +89,23 @@ button {
}
.btn-primary {
@apply border-primary bg-primary hover:brightness-110 inline-flex items-center justify-center rounded-none border px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] text-white uppercase transition-colors disabled:cursor-not-allowed disabled:opacity-50;
@apply border-primary bg-primary inline-flex items-center justify-center rounded-sm border px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] text-white uppercase transition-colors hover:brightness-110 disabled:cursor-not-allowed disabled:opacity-50;
}
.btn-secondary {
@apply border-secondary text-secondary hover:bg-secondary hover:text-on-primary inline-flex items-center justify-center rounded-none border bg-transparent px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] uppercase transition-colors disabled:cursor-not-allowed disabled:opacity-50;
@apply border-secondary text-secondary hover:bg-secondary hover:text-on-primary inline-flex items-center justify-center rounded-sm border bg-transparent px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] uppercase transition-colors disabled:cursor-not-allowed disabled:opacity-50;
}
.btn-ghost {
@apply border-ink text-ink hover:border-primary hover:text-primary inline-flex items-center justify-center rounded-none border bg-transparent px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] uppercase transition-colors;
@apply border-ink text-ink hover:border-primary hover:text-primary inline-flex items-center justify-center rounded-sm border bg-transparent px-5 py-2.5 text-[11px] font-medium tracking-[0.14em] uppercase transition-colors;
}
.field {
@apply border-rule text-ink placeholder:text-faint focus:border-primary bg-surface block w-full rounded-none border px-3 py-2.5 text-sm transition-colors outline-none;
@apply border-rule text-ink placeholder:text-faint focus:border-primary bg-surface block w-full rounded-sm border px-3 py-2.5 text-sm transition-colors outline-none;
}
.chip {
@apply border-rule text-ink hover:border-ink bg-surface inline-flex items-center rounded-none border px-3 py-1.5 font-sans text-[11px] font-medium tracking-[0.12em] uppercase transition-colors;
@apply border-rule text-ink hover:border-ink bg-surface inline-flex items-center rounded-sm border px-3 py-1.5 font-sans text-[11px] font-medium tracking-[0.12em] uppercase transition-colors;
}
.chip-active {