diff --git a/.cspell/custom-dictionary.txt b/.cspell/custom-dictionary.txt
index 062ae2ed..d488c5a4 100644
--- a/.cspell/custom-dictionary.txt
+++ b/.cspell/custom-dictionary.txt
@@ -11,10 +11,13 @@ fontnik
Geoportal
geouri
GNIS
+Haettenschweiler
+inconsolata
JURDSG
JURFIPSDSG
JURNM
latlng
+lato
lcov
mlat
mlon
diff --git a/index.html b/index.html
index f3a3ffc3..53cfacc1 100644
--- a/index.html
+++ b/index.html
@@ -22,7 +22,7 @@
- %VITE_TITLE%
+
diff --git a/package-lock.json b/package-lock.json
index 38a93bcb..8bb6436f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,6 +11,7 @@
"dependencies": {
"@esri/calcite-components": "^2.8.2",
"@types/geojson": "^7946.0.14",
+ "@wsdot/web-styles": "github:WSDOT-GIS/wsdot-web-styles",
"dms-conversion": "^3.1.3"
},
"devDependencies": {
@@ -33,7 +34,7 @@
"eslint-plugin-sonarjs": "^1.0.3",
"gh-pages": "^6.1.1",
"jsdom": "^24.0.0",
- "lefthook": "^1.6.12",
+ "lefthook": "1.6.11",
"optionator": "^0.9.4",
"prettier": "^3.2.5",
"tsx": "^4.10.5",
@@ -1177,6 +1178,18 @@
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz",
"integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q=="
},
+ "node_modules/@fontsource/inconsolata": {
+ "version": "4.5.10",
+ "resolved": "https://registry.npmjs.org/@fontsource/inconsolata/-/inconsolata-4.5.10.tgz",
+ "integrity": "sha512-kShpiWE3RD4LH4YlZPbyE4VMt826DA7Ugw1jNJt54mxpP7nUsI9gflQOLWSJ9AMLkqPLpjza9iZkKRmU8Q7MOQ==",
+ "optional": true
+ },
+ "node_modules/@fontsource/lato": {
+ "version": "4.5.10",
+ "resolved": "https://registry.npmjs.org/@fontsource/lato/-/lato-4.5.10.tgz",
+ "integrity": "sha512-2hYR6r661Cq9B8zugtu6yxuOKqrVhAgfOSaPSq8XoxbC4ebsl0KOTy/vPoP+9U7JuQVLfrmikirW4a9Z0nDUug==",
+ "optional": true
+ },
"node_modules/@fontsource/overpass": {
"version": "5.0.18",
"resolved": "https://registry.npmjs.org/@fontsource/overpass/-/overpass-5.0.18.tgz",
@@ -2148,6 +2161,14 @@
"integrity": "sha512-vRq+GniJAYSBmTRnhCYPAPq6THYqovJ/gzGThWbgEZUQaBccndGTi1hdiUP15HzEco0I6t4RCtXyX0rsSmwgPw==",
"dev": true
},
+ "node_modules/@wsdot/web-styles": {
+ "version": "1.0.0",
+ "resolved": "git+ssh://git@github.com/WSDOT-GIS/wsdot-web-styles.git#4a41e1f8fdb93432f19be81a22a46d1f34232738",
+ "optionalDependencies": {
+ "@fontsource/inconsolata": "^4.5.9",
+ "@fontsource/lato": "^4.5.10"
+ }
+ },
"node_modules/@zip.js/zip.js": {
"version": "2.7.35",
"resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.35.tgz",
@@ -3890,20 +3911,6 @@
"dev": true,
"license": "ISC"
},
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
"node_modules/function-bind": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
@@ -4709,29 +4716,29 @@
}
},
"node_modules/lefthook": {
- "version": "1.6.12",
- "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-1.6.12.tgz",
- "integrity": "sha512-SoHhB0L1D5twH5KKsGAT1h4qF+RhGfPo/JC5z60H0RDuFWtSwFNOeFpT4Qa7XwM6J9c1fvqZzOH9/4XF7dG9Uw==",
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-1.6.11.tgz",
+ "integrity": "sha512-2KE1thWjxr3R5SFwX6rDTNM87AXRU3p67st+xelooKtuOsW6/jW9pXkii2WaxmeUaWW567v5EozUqynSQANHwA==",
"dev": true,
"hasInstallScript": true,
"bin": {
"lefthook": "bin/index.js"
},
"optionalDependencies": {
- "lefthook-darwin-arm64": "1.6.12",
- "lefthook-darwin-x64": "1.6.12",
- "lefthook-freebsd-arm64": "1.6.12",
- "lefthook-freebsd-x64": "1.6.12",
- "lefthook-linux-arm64": "1.6.12",
- "lefthook-linux-x64": "1.6.12",
- "lefthook-windows-arm64": "1.6.12",
- "lefthook-windows-x64": "1.6.12"
+ "lefthook-darwin-arm64": "1.6.11",
+ "lefthook-darwin-x64": "1.6.11",
+ "lefthook-freebsd-arm64": "1.6.11",
+ "lefthook-freebsd-x64": "1.6.11",
+ "lefthook-linux-arm64": "1.6.11",
+ "lefthook-linux-x64": "1.6.11",
+ "lefthook-windows-arm64": "1.6.11",
+ "lefthook-windows-x64": "1.6.11"
}
},
"node_modules/lefthook-darwin-arm64": {
- "version": "1.6.12",
- "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.6.12.tgz",
- "integrity": "sha512-IJa50i+78nGxtSvnxLSDfSjBjjM7Ixl03V4+yl3Kdn+S+FwzEZet3LYTLbnKFUVy9Bg23obI3yXgwUx+tJjFXg==",
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.6.11.tgz",
+ "integrity": "sha512-PgCqdD1fv+DDKjNLOzGte+g10FmZmeILMnKewBy+GswtwnxSQknFj1ZoQ7jnXyxO6UstztHXQzogx8/qC5pUuA==",
"cpu": [
"arm64"
],
@@ -4742,9 +4749,9 @@
]
},
"node_modules/lefthook-darwin-x64": {
- "version": "1.6.12",
- "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-1.6.12.tgz",
- "integrity": "sha512-h11ByUtwM78FShgWgSUyyZtwKW6pjYfYvTygw24c/lZXKjupfowK5Ps5A73hCsjr0AEJNVpgW1S5Jd22gIJJCA==",
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-1.6.11.tgz",
+ "integrity": "sha512-cMuItUfWaJ4gN2DywcwPEUxL2IOPkE1ERWWmsl1yL0evOF3FUl7cz4hHaVCPRP8Tqeu9zQf8ZEINOUVzBWXqxQ==",
"cpu": [
"x64"
],
@@ -4755,9 +4762,9 @@
]
},
"node_modules/lefthook-freebsd-arm64": {
- "version": "1.6.12",
- "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.6.12.tgz",
- "integrity": "sha512-Aw1+AosL8r/LFSVKG7i8GI1FpHnWFG66/6DBDUgCwNAwhNCXt7tERAM8dj9S6EqmqHCQCC0nI/6qKNBsFPk7Ow==",
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.6.11.tgz",
+ "integrity": "sha512-VhL/XNguxFCCAMMjtvBPi50vaPBdvkU4UhOqZFY9PzhJHHxzgMURKTijs0VKv8rPVwVH1U/GehbzMNtpm9OQrg==",
"cpu": [
"arm64"
],
@@ -4768,9 +4775,9 @@
]
},
"node_modules/lefthook-freebsd-x64": {
- "version": "1.6.12",
- "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.6.12.tgz",
- "integrity": "sha512-G8Dg7UuRstXrqaEA8MSOZikz6PpjPUQu3QmiihzcyGdzI76jFsmjJb2vkrnvMsH9u2gWb3J4sp3TULhbMHXwSw==",
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.6.11.tgz",
+ "integrity": "sha512-G1t40OK6eocScka6VOEy/UBzigbo5gI2YuN4srjNgjkx4GxAbLnZc/MxlB6n5+VfjuqXz9Oq5VhiwAP0fNyVbA==",
"cpu": [
"x64"
],
@@ -4781,9 +4788,9 @@
]
},
"node_modules/lefthook-linux-arm64": {
- "version": "1.6.12",
- "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-1.6.12.tgz",
- "integrity": "sha512-fwO0i6x5EPelL66EwaySzGzvVbN2vLFZDUWuTi8nZzEgBsCBuG0mORxZg91cNCGLRPT3sgzWPraTkyzIJa7kHg==",
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-1.6.11.tgz",
+ "integrity": "sha512-821liECaVeVIjADr1Me/zKpxsXGxGaUThBy1swghzhHMX3JmM6gcRMR5cC8gsMnt7/rxOGK4CJBibgomwhWq4Q==",
"cpu": [
"arm64"
],
@@ -4794,9 +4801,9 @@
]
},
"node_modules/lefthook-linux-x64": {
- "version": "1.6.12",
- "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-1.6.12.tgz",
- "integrity": "sha512-pRAZKZhSoirjRwDF0TrqxgkeXtUmJqaUi0kGmMJmutToqo9IXQcnpueVmyV9Z1m6lLJn4PpKoFydY6tFXqvyNQ==",
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-1.6.11.tgz",
+ "integrity": "sha512-enjQZjftjA22GIAriLgWLycNQiGGWvmKcDoIr2o5Tcw++dUuOAqtT34SOQv2bN1pPJ7M1wRHCBH/9Y7cjUrS0A==",
"cpu": [
"x64"
],
@@ -4807,9 +4814,9 @@
]
},
"node_modules/lefthook-windows-arm64": {
- "version": "1.6.12",
- "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-1.6.12.tgz",
- "integrity": "sha512-jMMIoqNKtiqGrwyWeN3JXGXi7H7iAXsGB5v4DkcUbdw9y50qhruxWz84I2PoxwYmZVeMxRR+VpYvS7nOvBmzWA==",
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-1.6.11.tgz",
+ "integrity": "sha512-g07uiJRYq649QDXtkHlg/JyAi5yN7FjsEG3tMxnqTHw1nk0743ai8Ui4VjYP6cU5J3OI/+uvIUDUskYwCo/z5w==",
"cpu": [
"arm64"
],
@@ -4820,9 +4827,9 @@
]
},
"node_modules/lefthook-windows-x64": {
- "version": "1.6.12",
- "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-1.6.12.tgz",
- "integrity": "sha512-XqEBVIhp/Fd1Fs+VBlPhrSJlUkyXEJuxQmiYSYow3C18RNpQQrJFVFpz0wE/IDTn2jOXx+p5+hcdlJb+s6bnpA==",
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-1.6.11.tgz",
+ "integrity": "sha512-VV8MDnBwd4zpmARZ0fq6RaHc8jmO4A7lU0YShbXeiIrpFE5UJ4qoxmZpV+vFNRJ5tGUVVyWdnPgUmNsf9zKcKA==",
"cpu": [
"x64"
],
diff --git a/package.json b/package.json
index 9e41ae36..f03df529 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"clean": "git clean -dfx --exclude \"node_modules/**\" --exclude \".mailmap\"",
"dev": "vite",
"lint": "eslint . --fix",
- "prettier": "prettier .",
+ "prettier": "prettier . --write",
"publish": "npm run build && node tools/publish.mjs",
"test": "vitest run",
"test:watch": "vitest",
@@ -38,7 +38,7 @@
"eslint-plugin-sonarjs": "^1.0.3",
"gh-pages": "^6.1.1",
"jsdom": "^24.0.0",
- "lefthook": "^1.6.12",
+ "lefthook": "1.6.11",
"optionator": "^0.9.4",
"prettier": "^3.2.5",
"tsx": "^4.10.5",
@@ -71,6 +71,7 @@
"dependencies": {
"@esri/calcite-components": "^2.8.2",
"@types/geojson": "^7946.0.14",
+ "@wsdot/web-styles": "github:WSDOT-GIS/wsdot-web-styles",
"dms-conversion": "^3.1.3"
}
}
diff --git a/src/index.css b/src/index.css
index 627e3393..b3c35655 100644
--- a/src/index.css
+++ b/src/index.css
@@ -1,4 +1,11 @@
+:root {
+ font-family: "Lato", Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
+}
+#wsdot-logo {
+ fill: var(--wsdot-logo-green);
+ margin-right: 1rem;
+}
html,
body,
@@ -29,4 +36,4 @@ calcite-loader {
calcite-rating {
margin-top: 0.25rem;
-}
\ No newline at end of file
+}
diff --git a/src/main.ts b/src/main.ts
index 7a1f1505..c0555572 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -2,6 +2,31 @@ import { createElcErrorAlert } from "./createElcErrorAlert";
import { emitErrorEvent } from "./errorEvent";
import type MapView from "@arcgis/core/views/MapView";
import "@esri/calcite-components";
+import "@fontsource/inconsolata";
+import "@fontsource/lato";
+
+import("@wsdot/web-styles/css/wsdot-colors.css");
+
+async function addWsdotLogo() {
+ const { default: svg } = await import(
+ "@wsdot/web-styles/images/wsdot-logo/wsdot-logo-black.svg?raw"
+ );
+ const dp = new DOMParser();
+ const wsdotLogo = dp.parseFromString(svg, "image/svg+xml").documentElement;
+
+ wsdotLogo.id = "wsdot-logo";
+
+ /* __PURE__ */ console.debug("wsdot logo", wsdotLogo);
+ const headingSelector = "h2";
+ const headingElement = document.body.querySelector(headingSelector);
+ if (!headingElement) {
+ throw new Error("Heading element not found");
+ }
+ headingElement.prepend(wsdotLogo);
+ return wsdotLogo;
+}
+
+void addWsdotLogo();
window.addEventListener("elc-error", (event) => {
/* __PURE__ */ console.group("elc-error event listener");