a homebrewed DnD campaign based in the Honkai: Star Rail universe
hsr honkaistarrail dnd

refactor: remove some unused code

This code was originally for implementing a color picker, although that component will have to be re-included in the
future (not a current priority).

+51 -183
+4 -5
app/package.json
··· 24 24 }, 25 25 "dependencies": { 26 26 "@lucide/svelte": "catalog:svelte", 27 - "@starlight/color": "link:../packages/color", 28 - "@starlight/icons": "link:../packages/icons", 29 - "@starlight/storybook-utils": "link:../packages/storybook-utils", 30 - "@starlight/tokenizer": "link:../packages/tokenizer", 31 - "@starlight/types": "link:../packages/types", 27 + "@starlight/icons": "workspace:../packages/icons", 28 + "@starlight/storybook-utils": "workspace:../packages/storybook-utils", 29 + "@starlight/tokenizer": "workspace:../packages/tokenizer", 30 + "@starlight/types": "workspace:../packages/types", 32 31 "@supabase/ssr": "catalog:app", 33 32 "@supabase/supabase-js": "catalog:app", 34 33 "bits-ui": "catalog:svelte",
-44
app/src/lib/form/ColorPicker/ColorPicker.svelte
··· 1 - <script lang="ts"> 2 - import { linearGradient, applyGradient, type Number4 } from '@starlight/color' 3 - 4 - // oxlint-disable-next-line no-unassigned-vars 5 - let canvas: HTMLCanvasElement 6 - let size = $state(300) 7 - 8 - $effect(() => { 9 - const context = canvas.getContext('2d') as CanvasRenderingContext2D 10 - const gradientVertWb = linearGradient(context, { 11 - points: [0, 0, 0, size], 12 - colorStops: [ 13 - [0, 'rgba(0,0,0,0)'], 14 - [1, '#000'] 15 - ], 16 - }) 17 - 18 - const gradientHorizBlue = linearGradient(context, { 19 - points: [0, 0, context.canvas.width, 0], 20 - colorStops: [ 21 - [0, '#fff'], 22 - [1, 'rgba(0,0,255,1)'], 23 - ], 24 - }) 25 - 26 - const fillRect: Number4 = [0, 0, context.canvas.width, context.canvas.height] 27 - applyGradient(context, { gradient: gradientHorizBlue, fillRect: fillRect }) 28 - applyGradient(context, { gradient: gradientVertWb, fillRect: fillRect }) 29 - 30 - canvas.addEventListener('click', (e) => { 31 - const [x, y] = [e.clientX, e.clientY] 32 - const pixel = context.getImageData(x, y, 1, 1).data 33 - const rgb = `rgb(${pixel[0]},${pixel[1]},${pixel[2]})` 34 - 35 - document.body.style.background = rgb 36 - }) 37 - }) 38 - </script> 39 - 40 - <canvas 41 - bind:this={canvas} 42 - width={size} 43 - height={size} 44 - ></canvas>
-1
app/src/lib/form/ColorPicker/index.ts
··· 1 - export { default as ColorPicker } from './ColorPicker.svelte'
-4
packages/color/.oxlintrc.json
··· 1 - { 2 - "$schema": "./../../node_modules/oxlint/configuration_schema.json", 3 - "extends": ["./../../.oxlintrc.json"] 4 - }
-31
packages/color/package.json
··· 1 - { 2 - "name": "@starlight/color", 3 - "version": "1.0.0", 4 - "private": true, 5 - "license": "MIT", 6 - "author": "Samantha Nguyen", 7 - "files": [ 8 - "./dist" 9 - ], 10 - "type": "module", 11 - "module": "./dist/index.js", 12 - "types": "./dist/index.d.ts", 13 - "exports": { 14 - ".": { 15 - "types": "./dist/index.d.ts", 16 - "import": "./dist/index.js" 17 - } 18 - }, 19 - "scripts": { 20 - "build": "tsdown", 21 - "dev": "tsdown --watch", 22 - "test": "vitest --typecheck.enabled --coverage", 23 - "test-ui": "vitest --ui --typecheck.enabled --coverage", 24 - "fmt": "oxfmt --config=../../.oxfmtrc.json", 25 - "lint": "oxlint", 26 - "fix": "oxlint --fix" 27 - }, 28 - "devDependencies": { 29 - "typescript": "catalog:dev" 30 - } 31 - }
-32
packages/color/src/index.ts
··· 1 - export type Number4 = [number, number, number, number] 2 - export type ColorStop = [number, string] 3 - export type LinearGradientOptions = { 4 - points: Number4 5 - colorStops: ColorStop[] 6 - } 7 - 8 - export type ApplyLinearGradientOptions = { 9 - gradient: CanvasGradient 10 - fillRect: Number4 11 - } 12 - 13 - export const linearGradient = ( 14 - context: CanvasRenderingContext2D, 15 - options: LinearGradientOptions, 16 - ): CanvasGradient => { 17 - const { points, colorStops } = options 18 - const gradient = context.createLinearGradient(...points) 19 - for (const colorStop of colorStops) { 20 - gradient.addColorStop(...colorStop) 21 - } 22 - 23 - return gradient 24 - } 25 - 26 - export const applyGradient = ( 27 - context: CanvasRenderingContext2D, 28 - options: ApplyLinearGradientOptions, 29 - ): void => { 30 - context.fillStyle = options.gradient 31 - context.fillRect(...options.fillRect) 32 - }
-9
packages/color/tsdown.config.ts
··· 1 - import { defineConfig } from 'tsdown' 2 - 3 - export default defineConfig({ 4 - entry: 'src/index.ts', 5 - platform: 'browser', 6 - minify: true, 7 - dts: true, 8 - publint: true, 9 - })
+46 -56
pnpm-lock.yaml
··· 41 41 specifier: ^5.9.3 42 42 version: 5.9.3 43 43 wrangler: 44 - specifier: ^4.54.0 45 - version: 4.56.0 44 + specifier: 4.54.0 45 + version: 4.54.0 46 46 storybook: 47 47 '@storybook/addon-a11y': 48 48 specifier: ^10.1.10 ··· 253 253 version: 4.0.16(@types/node@25.0.3)(@vitest/browser-playwright@4.0.16)(@vitest/ui@4.0.16)(jiti@2.6.1)(lightningcss@1.30.2) 254 254 wrangler: 255 255 specifier: catalog:dev 256 - version: 4.56.0(@cloudflare/workers-types@4.20251225.0) 256 + version: 4.54.0(@cloudflare/workers-types@4.20251225.0) 257 257 258 258 app: 259 259 dependencies: 260 260 '@lucide/svelte': 261 261 specifier: catalog:svelte 262 262 version: 0.562.0(svelte@5.46.1) 263 - '@starlight/color': 264 - specifier: link:../packages/color 265 - version: link:../packages/color 266 263 '@starlight/icons': 267 - specifier: link:../packages/icons 264 + specifier: workspace:../packages/icons 268 265 version: link:../packages/icons 269 266 '@starlight/storybook-utils': 270 - specifier: link:../packages/storybook-utils 267 + specifier: workspace:../packages/storybook-utils 271 268 version: link:../packages/storybook-utils 272 269 '@starlight/tokenizer': 273 - specifier: link:../packages/tokenizer 270 + specifier: workspace:../packages/tokenizer 274 271 version: link:../packages/tokenizer 275 272 '@starlight/types': 276 - specifier: link:../packages/types 273 + specifier: workspace:../packages/types 277 274 version: link:../packages/types 278 275 '@supabase/ssr': 279 276 specifier: catalog:app ··· 311 308 devDependencies: 312 309 '@sveltejs/adapter-cloudflare': 313 310 specifier: catalog:svelte 314 - version: 7.2.4(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(wrangler@4.56.0(@cloudflare/workers-types@4.20251225.0)) 311 + version: 7.2.4(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(wrangler@4.54.0(@cloudflare/workers-types@4.20251225.0)) 315 312 '@sveltejs/kit': 316 313 specifier: catalog:svelte 317 314 version: 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)) ··· 358 355 specifier: catalog:svelte 359 356 version: 2.0.1(svelte@5.46.1)(vitest@4.0.16) 360 357 361 - packages/color: 362 - devDependencies: 363 - typescript: 364 - specifier: catalog:dev 365 - version: 5.9.3 366 - 367 358 packages/icons: 368 359 dependencies: 369 360 '@lucide/svelte': ··· 494 485 workerd: 495 486 optional: true 496 487 497 - '@cloudflare/workerd-darwin-64@1.20251217.0': 498 - resolution: {integrity: sha512-DN6vT+9ho61d/1/YuILW4VS+N1JBLaixWRL1vqNmhgbf8J8VHwWWotrRruEUYigJKx2yZyw6YsasE+yLXgx/Fw==} 488 + '@cloudflare/workerd-darwin-64@1.20251210.0': 489 + resolution: {integrity: sha512-Nn9X1moUDERA9xtFdCQ2XpQXgAS9pOjiCxvOT8sVx9UJLAiBLkfSCGbpsYdarODGybXCpjRlc77Yppuolvt7oQ==} 499 490 engines: {node: '>=16'} 500 491 cpu: [x64] 501 492 os: [darwin] 502 493 503 - '@cloudflare/workerd-darwin-arm64@1.20251217.0': 504 - resolution: {integrity: sha512-5nZOpRTkHmtcTc4Wbr1mj/O3dLb6aHZSiJuVBgtdbVcVmOXueSay3hnw1PXEyR+vpTKGUPkM+omUIslKHWnXDw==} 494 + '@cloudflare/workerd-darwin-arm64@1.20251210.0': 495 + resolution: {integrity: sha512-Mg8iYIZQFnbevq/ls9eW/eneWTk/EE13Pej1MwfkY5et0jVpdHnvOLywy/o+QtMJFef1AjsqXGULwAneYyBfHw==} 505 496 engines: {node: '>=16'} 506 497 cpu: [arm64] 507 498 os: [darwin] 508 499 509 - '@cloudflare/workerd-linux-64@1.20251217.0': 510 - resolution: {integrity: sha512-uoPGhMaZVXPpCsU0oG3HQzyVpXCGi5rU+jcHRjUI7DXM4EwctBGvZ380Knkja36qtl+ZvSKVR1pUFSGdK+45Pg==} 500 + '@cloudflare/workerd-linux-64@1.20251210.0': 501 + resolution: {integrity: sha512-kjC2fCZhZ2Gkm1biwk2qByAYpGguK5Gf5ic8owzSCUw0FOUfQxTZUT9Lp3gApxsfTLbbnLBrX/xzWjywH9QR4g==} 511 502 engines: {node: '>=16'} 512 503 cpu: [x64] 513 504 os: [linux] 514 505 515 - '@cloudflare/workerd-linux-arm64@1.20251217.0': 516 - resolution: {integrity: sha512-ixHnHKsiz1Xko+eDgCJOZ7EEUZKtmnYq3AjW3nkVcLFypSLks4C29E45zVewdaN4wq8sCLeyQCl6r1kS17+DQQ==} 506 + '@cloudflare/workerd-linux-arm64@1.20251210.0': 507 + resolution: {integrity: sha512-2IB37nXi7PZVQLa1OCuO7/6pNxqisRSO8DmCQ5x/3sezI5op1vwOxAcb1osAnuVsVN9bbvpw70HJvhKruFJTuA==} 517 508 engines: {node: '>=16'} 518 509 cpu: [arm64] 519 510 os: [linux] 520 511 521 - '@cloudflare/workerd-windows-64@1.20251217.0': 522 - resolution: {integrity: sha512-rP6USX+7ctynz3AtmKi+EvlLP3Xdr1ETrSdcnv693/I5QdUwBxq4yE1Lj6CV7GJizX6opXKYg8QMq0Q4eB9zRQ==} 512 + '@cloudflare/workerd-windows-64@1.20251210.0': 513 + resolution: {integrity: sha512-Uaz6/9XE+D6E7pCY4OvkCuJHu7HcSDzeGcCGY1HLhojXhHd7yL52c3yfiyJdS8hPatiAa0nn5qSI/42+aTdDSw==} 523 514 engines: {node: '>=16'} 524 515 cpu: [x64] 525 516 os: [win32] ··· 2672 2663 resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 2673 2664 engines: {node: '>=4'} 2674 2665 2675 - miniflare@4.20251217.0: 2676 - resolution: {integrity: sha512-8xsTQbPS6YV+ABZl9qiJIbsum6hbpbhqiyKpOVdzZrhK+1N8EFpT8R6aBZff7kezGmxYZSntjgjqTwJmj3JLgA==} 2666 + miniflare@4.20251210.0: 2667 + resolution: {integrity: sha512-k6kIoXwGVqlPZb0hcn+X7BmnK+8BjIIkusQPY22kCo2RaQJ/LzAjtxHQdGXerlHSnJyQivDQsL6BJHMpQfUFyw==} 2677 2668 engines: {node: '>=18.0.0'} 2678 2669 hasBin: true 2679 2670 ··· 3600 3591 resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 3601 3592 engines: {node: '>=0.10.0'} 3602 3593 3603 - workerd@1.20251217.0: 3604 - resolution: {integrity: sha512-s3mHDSWwHTduyY8kpHOsl27ZJ4ziDBJlc18PfBvNMqNnhO7yBeemlxH7bo7yQyU1foJrIZ6IENHDDg0Z9N8zQA==} 3594 + workerd@1.20251210.0: 3595 + resolution: {integrity: sha512-9MUUneP1BnRE9XAYi94FXxHmiLGbO75EHQZsgWqSiOXjoXSqJCw8aQbIEPxCy19TclEl/kHUFYce8ST2W+Qpjw==} 3605 3596 engines: {node: '>=16'} 3606 3597 hasBin: true 3607 3598 ··· 3609 3600 resolution: {integrity: sha512-+TvsA6VAVoMC3XDKR5MoC/qlLqDixEfOBysDEKnPIPou/NvoPWCAuXHXMsswwlvmEuvX56lQjvELLyLuzTKvRw==} 3610 3601 engines: {node: '>=12'} 3611 3602 3612 - wrangler@4.56.0: 3613 - resolution: {integrity: sha512-Nqi8duQeRbA+31QrD6QlWHW3IZVnuuRxMy7DEg46deUzywivmaRV/euBN5KKXDPtA24VyhYsK7I0tkb7P5DM2w==} 3603 + wrangler@4.54.0: 3604 + resolution: {integrity: sha512-bANFsjDwJLbprYoBK+hUDZsVbUv2SqJd8QvArLIcZk+fPq4h/Ohtj5vkKXD3k0s2bD1DXLk08D+hYmeNH+xC6A==} 3614 3605 engines: {node: '>=20.0.0'} 3615 - deprecated: Version 4.55.0 and 4.56.0 can incorrectly automatically delegate 'wrangler deploy' to 'opennextjs-cloudflare'. Use an older or newer version. 3616 3606 hasBin: true 3617 3607 peerDependencies: 3618 - '@cloudflare/workers-types': ^4.20251217.0 3608 + '@cloudflare/workers-types': ^4.20251210.0 3619 3609 peerDependenciesMeta: 3620 3610 '@cloudflare/workers-types': 3621 3611 optional: true ··· 3741 3731 dependencies: 3742 3732 mime: 3.0.0 3743 3733 3744 - '@cloudflare/unenv-preset@2.7.13(unenv@2.0.0-rc.24)(workerd@1.20251217.0)': 3734 + '@cloudflare/unenv-preset@2.7.13(unenv@2.0.0-rc.24)(workerd@1.20251210.0)': 3745 3735 dependencies: 3746 3736 unenv: 2.0.0-rc.24 3747 3737 optionalDependencies: 3748 - workerd: 1.20251217.0 3738 + workerd: 1.20251210.0 3749 3739 3750 - '@cloudflare/workerd-darwin-64@1.20251217.0': 3740 + '@cloudflare/workerd-darwin-64@1.20251210.0': 3751 3741 optional: true 3752 3742 3753 - '@cloudflare/workerd-darwin-arm64@1.20251217.0': 3743 + '@cloudflare/workerd-darwin-arm64@1.20251210.0': 3754 3744 optional: true 3755 3745 3756 - '@cloudflare/workerd-linux-64@1.20251217.0': 3746 + '@cloudflare/workerd-linux-64@1.20251210.0': 3757 3747 optional: true 3758 3748 3759 - '@cloudflare/workerd-linux-arm64@1.20251217.0': 3749 + '@cloudflare/workerd-linux-arm64@1.20251210.0': 3760 3750 optional: true 3761 3751 3762 - '@cloudflare/workerd-windows-64@1.20251217.0': 3752 + '@cloudflare/workerd-windows-64@1.20251210.0': 3763 3753 optional: true 3764 3754 3765 3755 '@cloudflare/workers-types@4.20251225.0': {} ··· 4556 4546 dependencies: 4557 4547 '@sveltejs/kit': 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)) 4558 4548 4559 - '@sveltejs/adapter-cloudflare@7.2.4(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(wrangler@4.56.0(@cloudflare/workers-types@4.20251225.0))': 4549 + '@sveltejs/adapter-cloudflare@7.2.4(@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(wrangler@4.54.0(@cloudflare/workers-types@4.20251225.0))': 4560 4550 dependencies: 4561 4551 '@cloudflare/workers-types': 4.20251225.0 4562 4552 '@sveltejs/kit': 2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.46.1)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)) 4563 4553 worktop: 0.8.0-next.18 4564 - wrangler: 4.56.0(@cloudflare/workers-types@4.20251225.0) 4554 + wrangler: 4.54.0(@cloudflare/workers-types@4.20251225.0) 4565 4555 4566 4556 '@sveltejs/kit@2.49.2(@sveltejs/vite-plugin-svelte@6.2.1(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2)))(svelte@5.46.0)(vite@7.3.0(@types/node@25.0.3)(jiti@2.6.1)(lightningcss@1.30.2))': 4567 4557 dependencies: ··· 5723 5713 5724 5714 min-indent@1.0.1: {} 5725 5715 5726 - miniflare@4.20251217.0: 5716 + miniflare@4.20251210.0: 5727 5717 dependencies: 5728 5718 '@cspotcode/source-map-support': 0.8.1 5729 5719 acorn: 8.14.0 ··· 5733 5723 sharp: 0.33.5 5734 5724 stoppable: 1.1.0 5735 5725 undici: 7.14.0 5736 - workerd: 1.20251217.0 5726 + workerd: 1.20251210.0 5737 5727 ws: 8.18.0 5738 5728 youch: 4.1.0-beta.10 5739 5729 zod: 3.22.3 ··· 6703 6693 6704 6694 word-wrap@1.2.5: {} 6705 6695 6706 - workerd@1.20251217.0: 6696 + workerd@1.20251210.0: 6707 6697 optionalDependencies: 6708 - '@cloudflare/workerd-darwin-64': 1.20251217.0 6709 - '@cloudflare/workerd-darwin-arm64': 1.20251217.0 6710 - '@cloudflare/workerd-linux-64': 1.20251217.0 6711 - '@cloudflare/workerd-linux-arm64': 1.20251217.0 6712 - '@cloudflare/workerd-windows-64': 1.20251217.0 6698 + '@cloudflare/workerd-darwin-64': 1.20251210.0 6699 + '@cloudflare/workerd-darwin-arm64': 1.20251210.0 6700 + '@cloudflare/workerd-linux-64': 1.20251210.0 6701 + '@cloudflare/workerd-linux-arm64': 1.20251210.0 6702 + '@cloudflare/workerd-windows-64': 1.20251210.0 6713 6703 6714 6704 worktop@0.8.0-next.18: 6715 6705 dependencies: 6716 6706 mrmime: 2.0.1 6717 6707 regexparam: 3.0.0 6718 6708 6719 - wrangler@4.56.0(@cloudflare/workers-types@4.20251225.0): 6709 + wrangler@4.54.0(@cloudflare/workers-types@4.20251225.0): 6720 6710 dependencies: 6721 6711 '@cloudflare/kv-asset-handler': 0.4.1 6722 - '@cloudflare/unenv-preset': 2.7.13(unenv@2.0.0-rc.24)(workerd@1.20251217.0) 6712 + '@cloudflare/unenv-preset': 2.7.13(unenv@2.0.0-rc.24)(workerd@1.20251210.0) 6723 6713 blake3-wasm: 2.1.5 6724 6714 esbuild: 0.27.0 6725 - miniflare: 4.20251217.0 6715 + miniflare: 4.20251210.0 6726 6716 path-to-regexp: 6.3.0 6727 6717 unenv: 2.0.0-rc.24 6728 - workerd: 1.20251217.0 6718 + workerd: 1.20251210.0 6729 6719 optionalDependencies: 6730 6720 '@cloudflare/workers-types': 4.20251225.0 6731 6721 fsevents: 2.3.3
+1 -1
pnpm-workspace.yaml
··· 16 16 node-modules-inspector: ^1.2.0 17 17 type-fest: ^5.3.1 18 18 typescript: ^5.9.3 19 - wrangler: ^4.54.0 19 + wrangler: 4.54.0 20 20 storybook: 21 21 '@storybook/addon-a11y': ^10.1.10 22 22 '@storybook/addon-docs': ^10.1.10