.git/hooks/commit-msgConventional commits provide a consistent way to structure commit messages, which helps with automation, release notes generation, and understanding the history of a project. The format adheres to the following structure:
| // Detect Windows ARM64 using the UA Client Hints API (navigator.userAgentData). | |
| // The legacy navigator.userAgent string is unreliable for distinguishing ARM64 | |
| // from x64 on Windows — Chrome and Edge on ARM64 report "x64" because they | |
| // run x86-emulated, so the UA string says "Win64; x64" on both architectures. | |
| // getHighEntropyValues() provides the real hardware architecture. | |
| async function detectWindowsTarget() { | |
| try { | |
| if (navigator.userAgentData) { | |
| var hints = await navigator.userAgentData.getHighEntropyValues( |
| <script> | |
| // Apply theme from system preference before first paint to avoid FOUC. | |
| // Session-only toggle overrides this (see end of <body>); not persisted. | |
| (function () { | |
| try { | |
| if (window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches) { | |
| document.documentElement.setAttribute("data-theme", "dark"); | |
| } | |
| } catch (e) {} | |
| })(); |
| const DATA_URI = | |
| 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=='; |
| function extractMeetingUrl(location: string): string { | |
| // Check if it's a goo.gl redirect URL with embedded meet.google.com link | |
| if (location.includes("goo.gl") && location.includes("meet.google.com")) { | |
| // Extract the actual meet.google.com URL from the redirect | |
| const meetMatch = location.match(/meet\.google\.com\/[a-z]+-[a-z]+-[a-z]+/i); | |
| if (meetMatch) { | |
| return `https://${meetMatch[0]}`; | |
| } | |
| } | |
| return location; |
| { | |
| "$schema": "https://biomejs.dev/schemas/2.3.2/schema.json", | |
| "vcs": { | |
| "enabled": false, | |
| "clientKind": "git", | |
| "useIgnoreFile": false | |
| }, | |
| "files": { | |
| "ignoreUnknown": true | |
| }, |
| const version = await $`git describe --tags --always`.text(); | |
| const buildTime = new Date().toISOString(); | |
| const gitCommit = await $`git rev-parse HEAD`.text(); |
| function formatDuration(seconds: number): string { | |
| let m = Math. floor (seconds / 60); | |
| let s = seconds % 60; | |
| return `${m}:${s.toString().padStart(2, "0")}`; | |
| } |
| <script lang="ts"> | |
| import { scale } from 'svelte/transition'; | |
| let hoveredIndex = $state(null as number | null); | |
| let selected = $state(null as number | null); | |
| // Create an array of years from 1993 to 2024 | |
| let YEARS = Array.from({ length: 2024 - 1993 + 1 }, (_, i) => 2024 - i); | |
| let handleMouseEnter = (index: number) => { |
| type Options = { | |
| /** The time before the copied status is reset. */ | |
| delay: number; | |
| /** Whether to reset the copied status after a delay. */ | |
| reset: boolean; | |
| }; | |
| /** Use this hook to copy text to the clipboard and show a copied state. | |
| * | |
| * ## Usage |