generated from tpl/obsidian-sample-plugin
			Use a formula for text size for better performance
This commit is contained in:
		
							parent
							
								
									349fcd903e
								
							
						
					
					
						commit
						36e346a849
					
				
							
								
								
									
										11
									
								
								package.json
								
								
								
								
							
							
						
						
									
										11
									
								
								package.json
								
								
								
								
							| 
						 | 
				
			
			@ -19,18 +19,15 @@
 | 
			
		|||
		"@popperjs/core": "^2.11.8",
 | 
			
		||||
		"@types/chroma-js": "^3.1.1",
 | 
			
		||||
		"@types/node": "^24.0.6",
 | 
			
		||||
		"@types/textfit": "^2.4.5",
 | 
			
		||||
		"@typescript-eslint/eslint-plugin": "5.29.0",
 | 
			
		||||
		"@typescript-eslint/parser": "5.29.0",
 | 
			
		||||
		"builtin-modules": "3.3.0",
 | 
			
		||||
		"dotenv": "^17.0.0",
 | 
			
		||||
		"dotenv-expand": "^12.0.2",
 | 
			
		||||
		"esbuild": "0.17.3",
 | 
			
		||||
		"esbuild": "0.25.5",
 | 
			
		||||
		"esbuild-svelte": "^0.9.3",
 | 
			
		||||
		"eslint": "^9.30.0",
 | 
			
		||||
		"globals": "^16.2.0",
 | 
			
		||||
		"handlebars": "^4.7.8",
 | 
			
		||||
		"lucide-svelte": "^0.525.0",
 | 
			
		||||
		"moment": "^2.30.1",
 | 
			
		||||
		"npm-run-all": "^4.1.5",
 | 
			
		||||
		"obsidian": "latest",
 | 
			
		||||
| 
						 | 
				
			
			@ -44,14 +41,12 @@
 | 
			
		|||
		"typescript": "5.0.4"
 | 
			
		||||
	},
 | 
			
		||||
	"dependencies": {
 | 
			
		||||
		"@humanspeak/svelte-virtual-list": "^0.2.6",
 | 
			
		||||
		"@leveluptuts/svelte-fit": "^1.0.3",
 | 
			
		||||
		"chart.js": "^4.5.0",
 | 
			
		||||
		"chroma-js": "^3.1.2",
 | 
			
		||||
		"esbuild-sass-plugin": "^3.3.1",
 | 
			
		||||
		"fitty": "^2.4.2",
 | 
			
		||||
		"handlebars": "^4.7.8",
 | 
			
		||||
		"just-memoize": "^2.2.0",
 | 
			
		||||
		"textfit": "^2.4.0",
 | 
			
		||||
		"lucide-svelte": "^0.525.0",
 | 
			
		||||
		"uuid": "^11.1.0",
 | 
			
		||||
		"yaml": "^2.8.0",
 | 
			
		||||
		"zod": "^3.25.67"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										345
									
								
								pnpm-lock.yaml
								
								
								
								
							
							
						
						
									
										345
									
								
								pnpm-lock.yaml
								
								
								
								
							| 
						 | 
				
			
			@ -8,12 +8,6 @@ importers:
 | 
			
		|||
 | 
			
		||||
  .:
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@humanspeak/svelte-virtual-list':
 | 
			
		||||
        specifier: ^0.2.6
 | 
			
		||||
        version: 0.2.6(svelte@5.34.8)
 | 
			
		||||
      '@leveluptuts/svelte-fit':
 | 
			
		||||
        specifier: ^1.0.3
 | 
			
		||||
        version: 1.0.3
 | 
			
		||||
      chart.js:
 | 
			
		||||
        specifier: ^4.5.0
 | 
			
		||||
        version: 4.5.0
 | 
			
		||||
| 
						 | 
				
			
			@ -22,16 +16,16 @@ importers:
 | 
			
		|||
        version: 3.1.2
 | 
			
		||||
      esbuild-sass-plugin:
 | 
			
		||||
        specifier: ^3.3.1
 | 
			
		||||
        version: 3.3.1(esbuild@0.17.3)(sass-embedded@1.89.2)
 | 
			
		||||
      fitty:
 | 
			
		||||
        specifier: ^2.4.2
 | 
			
		||||
        version: 2.4.2
 | 
			
		||||
        version: 3.3.1(esbuild@0.25.5)(sass-embedded@1.89.2)
 | 
			
		||||
      handlebars:
 | 
			
		||||
        specifier: ^4.7.8
 | 
			
		||||
        version: 4.7.8
 | 
			
		||||
      just-memoize:
 | 
			
		||||
        specifier: ^2.2.0
 | 
			
		||||
        version: 2.2.0
 | 
			
		||||
      textfit:
 | 
			
		||||
        specifier: ^2.4.0
 | 
			
		||||
        version: 2.4.0
 | 
			
		||||
      lucide-svelte:
 | 
			
		||||
        specifier: ^0.525.0
 | 
			
		||||
        version: 0.525.0(svelte@5.34.8)
 | 
			
		||||
      uuid:
 | 
			
		||||
        specifier: ^11.1.0
 | 
			
		||||
        version: 11.1.0
 | 
			
		||||
| 
						 | 
				
			
			@ -57,9 +51,6 @@ importers:
 | 
			
		|||
      '@types/node':
 | 
			
		||||
        specifier: ^24.0.6
 | 
			
		||||
        version: 24.0.6
 | 
			
		||||
      '@types/textfit':
 | 
			
		||||
        specifier: ^2.4.5
 | 
			
		||||
        version: 2.4.5
 | 
			
		||||
      '@typescript-eslint/eslint-plugin':
 | 
			
		||||
        specifier: 5.29.0
 | 
			
		||||
        version: 5.29.0(@typescript-eslint/parser@5.29.0(eslint@9.30.0)(typescript@5.0.4))(eslint@9.30.0)(typescript@5.0.4)
 | 
			
		||||
| 
						 | 
				
			
			@ -76,23 +67,17 @@ importers:
 | 
			
		|||
        specifier: ^12.0.2
 | 
			
		||||
        version: 12.0.2
 | 
			
		||||
      esbuild:
 | 
			
		||||
        specifier: 0.17.3
 | 
			
		||||
        version: 0.17.3
 | 
			
		||||
        specifier: 0.25.5
 | 
			
		||||
        version: 0.25.5
 | 
			
		||||
      esbuild-svelte:
 | 
			
		||||
        specifier: ^0.9.3
 | 
			
		||||
        version: 0.9.3(esbuild@0.17.3)(svelte@5.34.8)
 | 
			
		||||
        version: 0.9.3(esbuild@0.25.5)(svelte@5.34.8)
 | 
			
		||||
      eslint:
 | 
			
		||||
        specifier: ^9.30.0
 | 
			
		||||
        version: 9.30.0
 | 
			
		||||
      globals:
 | 
			
		||||
        specifier: ^16.2.0
 | 
			
		||||
        version: 16.2.0
 | 
			
		||||
      handlebars:
 | 
			
		||||
        specifier: ^4.7.8
 | 
			
		||||
        version: 4.7.8
 | 
			
		||||
      lucide-svelte:
 | 
			
		||||
        specifier: ^0.525.0
 | 
			
		||||
        version: 0.525.0(svelte@5.34.8)
 | 
			
		||||
      moment:
 | 
			
		||||
        specifier: ^2.30.1
 | 
			
		||||
        version: 2.30.1
 | 
			
		||||
| 
						 | 
				
			
			@ -142,135 +127,153 @@ packages:
 | 
			
		|||
  '@codemirror/view@6.37.2':
 | 
			
		||||
    resolution: {integrity: sha512-XD3LdgQpxQs5jhOOZ2HRVT+Rj59O4Suc7g2ULvZ+Yi8eCkickrkZ5JFuoDhs2ST1mNI5zSsNYgR3NGa4OUrbnw==}
 | 
			
		||||
 | 
			
		||||
  '@esbuild/android-arm64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-XvJsYo3dO3Pi4kpalkyMvfQsjxPWHYjoX4MDiB/FUM4YMfWcXa5l4VCwFWVYI1+92yxqjuqrhNg0CZg3gSouyQ==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/aix-ppc64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [ppc64]
 | 
			
		||||
    os: [aix]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/android-arm64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [arm64]
 | 
			
		||||
    os: [android]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/android-arm@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-1Mlz934GvbgdDmt26rTLmf03cAgLg5HyOgJN+ZGCeP3Q9ynYTNMn2/LQxIl7Uy+o4K6Rfi2OuLsr12JQQR8gNg==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/android-arm@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [arm]
 | 
			
		||||
    os: [android]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/android-x64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-nuV2CmLS07Gqh5/GrZLuqkU9Bm6H6vcCspM+zjp9TdQlxJtIe+qqEXQChmfc7nWdyr/yz3h45Utk1tUn8Cz5+A==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/android-x64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [x64]
 | 
			
		||||
    os: [android]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/darwin-arm64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-01Hxaaat6m0Xp9AXGM8mjFtqqwDjzlMP0eQq9zll9U85ttVALGCGDuEvra5Feu/NbP5AEP1MaopPwzsTcUq1cw==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/darwin-arm64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [arm64]
 | 
			
		||||
    os: [darwin]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/darwin-x64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-Eo2gq0Q/er2muf8Z83X21UFoB7EU6/m3GNKvrhACJkjVThd0uA+8RfKpfNhuMCl1bKRfBzKOk6xaYKQZ4lZqvA==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/darwin-x64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [x64]
 | 
			
		||||
    os: [darwin]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/freebsd-arm64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-CN62ESxaquP61n1ZjQP/jZte8CE09M6kNn3baos2SeUfdVBkWN5n6vGp2iKyb/bm/x4JQzEvJgRHLGd5F5b81w==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/freebsd-arm64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [arm64]
 | 
			
		||||
    os: [freebsd]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/freebsd-x64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-feq+K8TxIznZE+zhdVurF3WNJ/Sa35dQNYbaqM/wsCbWdzXr5lyq+AaTUSER2cUR+SXPnd/EY75EPRjf4s1SLg==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/freebsd-x64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [x64]
 | 
			
		||||
    os: [freebsd]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-arm64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-JHeZXD4auLYBnrKn6JYJ0o5nWJI9PhChA/Nt0G4MvLaMrvXuWnY93R3a7PiXeJQphpL1nYsaMcoV2QtuvRnF/g==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/linux-arm64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [arm64]
 | 
			
		||||
    os: [linux]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-arm@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-CLP3EgyNuPcg2cshbwkqYy5bbAgK+VhyfMU7oIYyn+x4Y67xb5C5ylxsNUjRmr8BX+MW3YhVNm6Lq6FKtRTWHQ==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/linux-arm@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [arm]
 | 
			
		||||
    os: [linux]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-ia32@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-FyXlD2ZjZqTFh0sOQxFDiWG1uQUEOLbEh9gKN/7pFxck5Vw0qjWSDqbn6C10GAa1rXJpwsntHcmLqydY9ST9ZA==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/linux-ia32@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [ia32]
 | 
			
		||||
    os: [linux]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-loong64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-OrDGMvDBI2g7s04J8dh8/I7eSO+/E7nMDT2Z5IruBfUO/RiigF1OF6xoH33Dn4W/OwAWSUf1s2nXamb28ZklTA==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/linux-loong64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [loong64]
 | 
			
		||||
    os: [linux]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-mips64el@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-DcnUpXnVCJvmv0TzuLwKBC2nsQHle8EIiAJiJ+PipEVC16wHXaPEKP0EqN8WnBe0TPvMITOUlP2aiL5YMld+CQ==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/linux-mips64el@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [mips64el]
 | 
			
		||||
    os: [linux]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-ppc64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-BDYf/l1WVhWE+FHAW3FzZPtVlk9QsrwsxGzABmN4g8bTjmhazsId3h127pliDRRu5674k1Y2RWejbpN46N9ZhQ==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/linux-ppc64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [ppc64]
 | 
			
		||||
    os: [linux]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-riscv64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-WViAxWYMRIi+prTJTyV1wnqd2mS2cPqJlN85oscVhXdb/ZTFJdrpaqm/uDsZPGKHtbg5TuRX/ymKdOSk41YZow==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/linux-riscv64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [riscv64]
 | 
			
		||||
    os: [linux]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-s390x@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-Iw8lkNHUC4oGP1O/KhumcVy77u2s6+KUjieUqzEU3XuWJqZ+AY7uVMrrCbAiwWTkpQHkr00BuXH5RpC6Sb/7Ug==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/linux-s390x@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [s390x]
 | 
			
		||||
    os: [linux]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-x64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-0AGkWQMzeoeAtXQRNB3s4J1/T2XbigM2/Mn2yU1tQSmQRmHIZdkGbVq2A3aDdNslPyhb9/lH0S5GMTZ4xsjBqg==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/linux-x64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [x64]
 | 
			
		||||
    os: [linux]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/netbsd-x64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-4+rR/WHOxIVh53UIQIICryjdoKdHsFZFD4zLSonJ9RRw7bhKzVyXbnRPsWSfwybYqw9sB7ots/SYyufL1mBpEg==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/netbsd-arm64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [arm64]
 | 
			
		||||
    os: [netbsd]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/netbsd-x64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [x64]
 | 
			
		||||
    os: [netbsd]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/openbsd-x64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-cVpWnkx9IYg99EjGxa5Gc0XmqumtAwK3aoz7O4Dii2vko+qXbkHoujWA68cqXjhh6TsLaQelfDO4MVnyr+ODeA==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/openbsd-arm64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [arm64]
 | 
			
		||||
    os: [openbsd]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/openbsd-x64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [x64]
 | 
			
		||||
    os: [openbsd]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/sunos-x64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-RxmhKLbTCDAY2xOfrww6ieIZkZF+KBqG7S2Ako2SljKXRFi+0863PspK74QQ7JpmWwncChY25JTJSbVBYGQk2Q==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/sunos-x64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [x64]
 | 
			
		||||
    os: [sunos]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/win32-arm64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-0r36VeEJ4efwmofxVJRXDjVRP2jTmv877zc+i+Pc7MNsIr38NfsjkQj23AfF7l0WbB+RQ7VUb+LDiqC/KY/M/A==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/win32-arm64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [arm64]
 | 
			
		||||
    os: [win32]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/win32-ia32@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-wgO6rc7uGStH22nur4aLFcq7Wh86bE9cOFmfTr/yxN3BXvDEdCSXyKkO+U5JIt53eTOgC47v9k/C1bITWL/Teg==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/win32-ia32@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [ia32]
 | 
			
		||||
    os: [win32]
 | 
			
		||||
 | 
			
		||||
  '@esbuild/win32-x64@0.17.3':
 | 
			
		||||
    resolution: {integrity: sha512-FdVl64OIuiKjgXBjwZaJLKp0eaEckifbhn10dXWhysMJkWblg3OEEGKSIyhiD5RSgAya8WzP3DNkngtIg3Nt7g==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  '@esbuild/win32-x64@0.25.5':
 | 
			
		||||
    resolution: {integrity: sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    cpu: [x64]
 | 
			
		||||
    os: [win32]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -324,11 +327,6 @@ packages:
 | 
			
		|||
    resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
 | 
			
		||||
    engines: {node: '>=18.18.0'}
 | 
			
		||||
 | 
			
		||||
  '@humanspeak/svelte-virtual-list@0.2.6':
 | 
			
		||||
    resolution: {integrity: sha512-nfD81b4LQw2bTSFYV/M0ky/pnUkfI0KYr5qCVJHZe6h3dUtXoNIhoxypI6JGBcpW3D8jN5Y53NOkfDggJNb5nA==}
 | 
			
		||||
    peerDependencies:
 | 
			
		||||
      svelte: ^5.0.0
 | 
			
		||||
 | 
			
		||||
  '@humanwhocodes/module-importer@1.0.1':
 | 
			
		||||
    resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
 | 
			
		||||
    engines: {node: '>=12.22'}
 | 
			
		||||
| 
						 | 
				
			
			@ -362,9 +360,6 @@ packages:
 | 
			
		|||
  '@kurkle/color@0.3.4':
 | 
			
		||||
    resolution: {integrity: sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==}
 | 
			
		||||
 | 
			
		||||
  '@leveluptuts/svelte-fit@1.0.3':
 | 
			
		||||
    resolution: {integrity: sha512-Hg8Xz06Mf1pwI92cY60LdFKDjXUkix0KcNP5orgGjtV7ecfK4zZ8gwPHOSDioZt73/7Muj1O43QzvtK2oPwEfA==}
 | 
			
		||||
 | 
			
		||||
  '@marijn/find-cluster-break@1.0.2':
 | 
			
		||||
    resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -479,24 +474,15 @@ packages:
 | 
			
		|||
  '@types/estree@1.0.8':
 | 
			
		||||
    resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
 | 
			
		||||
 | 
			
		||||
  '@types/jquery@3.5.32':
 | 
			
		||||
    resolution: {integrity: sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==}
 | 
			
		||||
 | 
			
		||||
  '@types/json-schema@7.0.15':
 | 
			
		||||
    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
 | 
			
		||||
 | 
			
		||||
  '@types/node@24.0.6':
 | 
			
		||||
    resolution: {integrity: sha512-ZOyn+gOs749xU7ovp+Ibj0g1o3dFRqsfPnT22C2t5JzcRvgsEDpGawPbCISGKLudJk9Y0wiu9sYd6kUh0pc9TA==}
 | 
			
		||||
 | 
			
		||||
  '@types/sizzle@2.3.9':
 | 
			
		||||
    resolution: {integrity: sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==}
 | 
			
		||||
 | 
			
		||||
  '@types/tern@0.23.9':
 | 
			
		||||
    resolution: {integrity: sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==}
 | 
			
		||||
 | 
			
		||||
  '@types/textfit@2.4.5':
 | 
			
		||||
    resolution: {integrity: sha512-C/1i+vGFD7xi1UZPePa6pNdoR0eGFCOe7QrZlTuPGPF+Y4JnFcp9cSJGZko+6tW8GmdDdKt7S9W6sCf3ncvk5g==}
 | 
			
		||||
 | 
			
		||||
  '@typescript-eslint/eslint-plugin@5.29.0':
 | 
			
		||||
    resolution: {integrity: sha512-kgTsISt9pM53yRFQmLZ4npj99yGl3x3Pl7z4eA66OuTzAGC4bQB5H5fuLwPnqTKU3yyrrg4MIhjF17UYnL4c0w==}
 | 
			
		||||
    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
 | 
			
		||||
| 
						 | 
				
			
			@ -790,9 +776,9 @@ packages:
 | 
			
		|||
      esbuild: '>=0.17.0'
 | 
			
		||||
      svelte: '>=4.2.1 <6'
 | 
			
		||||
 | 
			
		||||
  esbuild@0.17.3:
 | 
			
		||||
    resolution: {integrity: sha512-9n3AsBRe6sIyOc6kmoXg2ypCLgf3eZSraWFRpnkto+svt8cZNuKTkb1bhQcitBcvIqjNiK7K0J3KPmwGSfkA8g==}
 | 
			
		||||
    engines: {node: '>=12'}
 | 
			
		||||
  esbuild@0.25.5:
 | 
			
		||||
    resolution: {integrity: sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ==}
 | 
			
		||||
    engines: {node: '>=18'}
 | 
			
		||||
    hasBin: true
 | 
			
		||||
 | 
			
		||||
  escape-string-regexp@1.0.5:
 | 
			
		||||
| 
						 | 
				
			
			@ -905,9 +891,6 @@ packages:
 | 
			
		|||
    resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
 | 
			
		||||
    engines: {node: '>=10'}
 | 
			
		||||
 | 
			
		||||
  fitty@2.4.2:
 | 
			
		||||
    resolution: {integrity: sha512-GNhWgImK4+wEkgEZjBkQMyu5NLSmmryg/CaRP7zYby+TWzCrUou6BHL+iqbjKzJRXMyzuJkH+LBB1+lh4oO77g==}
 | 
			
		||||
 | 
			
		||||
  flat-cache@4.0.1:
 | 
			
		||||
    resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
 | 
			
		||||
    engines: {node: '>=16'}
 | 
			
		||||
| 
						 | 
				
			
			@ -1717,9 +1700,6 @@ packages:
 | 
			
		|||
    resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==}
 | 
			
		||||
    engines: {node: '>=16.0.0'}
 | 
			
		||||
 | 
			
		||||
  textfit@2.4.0:
 | 
			
		||||
    resolution: {integrity: sha512-/x4aoY5+/tJmu+iwpBH1yw75TFp86M6X15SvaaY/Eep7YySQYtqdOifEtfvVyMwzl7SZ+G4RQw00FD9g5R6i1Q==}
 | 
			
		||||
 | 
			
		||||
  to-regex-range@5.0.1:
 | 
			
		||||
    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
 | 
			
		||||
    engines: {node: '>=8.0'}
 | 
			
		||||
| 
						 | 
				
			
			@ -1856,70 +1836,79 @@ snapshots:
 | 
			
		|||
      style-mod: 4.1.2
 | 
			
		||||
      w3c-keyname: 2.2.8
 | 
			
		||||
 | 
			
		||||
  '@esbuild/android-arm64@0.17.3':
 | 
			
		||||
  '@esbuild/aix-ppc64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/android-arm@0.17.3':
 | 
			
		||||
  '@esbuild/android-arm64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/android-x64@0.17.3':
 | 
			
		||||
  '@esbuild/android-arm@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/darwin-arm64@0.17.3':
 | 
			
		||||
  '@esbuild/android-x64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/darwin-x64@0.17.3':
 | 
			
		||||
  '@esbuild/darwin-arm64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/freebsd-arm64@0.17.3':
 | 
			
		||||
  '@esbuild/darwin-x64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/freebsd-x64@0.17.3':
 | 
			
		||||
  '@esbuild/freebsd-arm64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-arm64@0.17.3':
 | 
			
		||||
  '@esbuild/freebsd-x64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-arm@0.17.3':
 | 
			
		||||
  '@esbuild/linux-arm64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-ia32@0.17.3':
 | 
			
		||||
  '@esbuild/linux-arm@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-loong64@0.17.3':
 | 
			
		||||
  '@esbuild/linux-ia32@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-mips64el@0.17.3':
 | 
			
		||||
  '@esbuild/linux-loong64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-ppc64@0.17.3':
 | 
			
		||||
  '@esbuild/linux-mips64el@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-riscv64@0.17.3':
 | 
			
		||||
  '@esbuild/linux-ppc64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-s390x@0.17.3':
 | 
			
		||||
  '@esbuild/linux-riscv64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/linux-x64@0.17.3':
 | 
			
		||||
  '@esbuild/linux-s390x@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/netbsd-x64@0.17.3':
 | 
			
		||||
  '@esbuild/linux-x64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/openbsd-x64@0.17.3':
 | 
			
		||||
  '@esbuild/netbsd-arm64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/sunos-x64@0.17.3':
 | 
			
		||||
  '@esbuild/netbsd-x64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/win32-arm64@0.17.3':
 | 
			
		||||
  '@esbuild/openbsd-arm64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/win32-ia32@0.17.3':
 | 
			
		||||
  '@esbuild/openbsd-x64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/win32-x64@0.17.3':
 | 
			
		||||
  '@esbuild/sunos-x64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/win32-arm64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/win32-ia32@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@esbuild/win32-x64@0.25.5':
 | 
			
		||||
    optional: true
 | 
			
		||||
 | 
			
		||||
  '@eslint-community/eslint-utils@4.7.0(eslint@9.30.0)':
 | 
			
		||||
| 
						 | 
				
			
			@ -1977,11 +1966,6 @@ snapshots:
 | 
			
		|||
      '@humanfs/core': 0.19.1
 | 
			
		||||
      '@humanwhocodes/retry': 0.3.1
 | 
			
		||||
 | 
			
		||||
  '@humanspeak/svelte-virtual-list@0.2.6(svelte@5.34.8)':
 | 
			
		||||
    dependencies:
 | 
			
		||||
      esm-env: 1.2.2
 | 
			
		||||
      svelte: 5.34.8
 | 
			
		||||
 | 
			
		||||
  '@humanwhocodes/module-importer@1.0.1': {}
 | 
			
		||||
 | 
			
		||||
  '@humanwhocodes/retry@0.3.1': {}
 | 
			
		||||
| 
						 | 
				
			
			@ -2007,8 +1991,6 @@ snapshots:
 | 
			
		|||
 | 
			
		||||
  '@kurkle/color@0.3.4': {}
 | 
			
		||||
 | 
			
		||||
  '@leveluptuts/svelte-fit@1.0.3': {}
 | 
			
		||||
 | 
			
		||||
  '@marijn/find-cluster-break@1.0.2': {}
 | 
			
		||||
 | 
			
		||||
  '@nodelib/fs.scandir@2.1.5':
 | 
			
		||||
| 
						 | 
				
			
			@ -2098,26 +2080,16 @@ snapshots:
 | 
			
		|||
 | 
			
		||||
  '@types/estree@1.0.8': {}
 | 
			
		||||
 | 
			
		||||
  '@types/jquery@3.5.32':
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@types/sizzle': 2.3.9
 | 
			
		||||
 | 
			
		||||
  '@types/json-schema@7.0.15': {}
 | 
			
		||||
 | 
			
		||||
  '@types/node@24.0.6':
 | 
			
		||||
    dependencies:
 | 
			
		||||
      undici-types: 7.8.0
 | 
			
		||||
 | 
			
		||||
  '@types/sizzle@2.3.9': {}
 | 
			
		||||
 | 
			
		||||
  '@types/tern@0.23.9':
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@types/estree': 1.0.8
 | 
			
		||||
 | 
			
		||||
  '@types/textfit@2.4.5':
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@types/jquery': 3.5.32
 | 
			
		||||
 | 
			
		||||
  '@typescript-eslint/eslint-plugin@5.29.0(@typescript-eslint/parser@5.29.0(eslint@9.30.0)(typescript@5.0.4))(eslint@9.30.0)(typescript@5.0.4)':
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@typescript-eslint/parser': 5.29.0(eslint@9.30.0)(typescript@5.0.4)
 | 
			
		||||
| 
						 | 
				
			
			@ -2476,44 +2448,47 @@ snapshots:
 | 
			
		|||
      is-date-object: 1.1.0
 | 
			
		||||
      is-symbol: 1.1.1
 | 
			
		||||
 | 
			
		||||
  esbuild-sass-plugin@3.3.1(esbuild@0.17.3)(sass-embedded@1.89.2):
 | 
			
		||||
  esbuild-sass-plugin@3.3.1(esbuild@0.25.5)(sass-embedded@1.89.2):
 | 
			
		||||
    dependencies:
 | 
			
		||||
      esbuild: 0.17.3
 | 
			
		||||
      esbuild: 0.25.5
 | 
			
		||||
      resolve: 1.22.10
 | 
			
		||||
      safe-identifier: 0.4.2
 | 
			
		||||
      sass: 1.89.2
 | 
			
		||||
      sass-embedded: 1.89.2
 | 
			
		||||
 | 
			
		||||
  esbuild-svelte@0.9.3(esbuild@0.17.3)(svelte@5.34.8):
 | 
			
		||||
  esbuild-svelte@0.9.3(esbuild@0.25.5)(svelte@5.34.8):
 | 
			
		||||
    dependencies:
 | 
			
		||||
      '@jridgewell/trace-mapping': 0.3.25
 | 
			
		||||
      esbuild: 0.17.3
 | 
			
		||||
      esbuild: 0.25.5
 | 
			
		||||
      svelte: 5.34.8
 | 
			
		||||
 | 
			
		||||
  esbuild@0.17.3:
 | 
			
		||||
  esbuild@0.25.5:
 | 
			
		||||
    optionalDependencies:
 | 
			
		||||
      '@esbuild/android-arm': 0.17.3
 | 
			
		||||
      '@esbuild/android-arm64': 0.17.3
 | 
			
		||||
      '@esbuild/android-x64': 0.17.3
 | 
			
		||||
      '@esbuild/darwin-arm64': 0.17.3
 | 
			
		||||
      '@esbuild/darwin-x64': 0.17.3
 | 
			
		||||
      '@esbuild/freebsd-arm64': 0.17.3
 | 
			
		||||
      '@esbuild/freebsd-x64': 0.17.3
 | 
			
		||||
      '@esbuild/linux-arm': 0.17.3
 | 
			
		||||
      '@esbuild/linux-arm64': 0.17.3
 | 
			
		||||
      '@esbuild/linux-ia32': 0.17.3
 | 
			
		||||
      '@esbuild/linux-loong64': 0.17.3
 | 
			
		||||
      '@esbuild/linux-mips64el': 0.17.3
 | 
			
		||||
      '@esbuild/linux-ppc64': 0.17.3
 | 
			
		||||
      '@esbuild/linux-riscv64': 0.17.3
 | 
			
		||||
      '@esbuild/linux-s390x': 0.17.3
 | 
			
		||||
      '@esbuild/linux-x64': 0.17.3
 | 
			
		||||
      '@esbuild/netbsd-x64': 0.17.3
 | 
			
		||||
      '@esbuild/openbsd-x64': 0.17.3
 | 
			
		||||
      '@esbuild/sunos-x64': 0.17.3
 | 
			
		||||
      '@esbuild/win32-arm64': 0.17.3
 | 
			
		||||
      '@esbuild/win32-ia32': 0.17.3
 | 
			
		||||
      '@esbuild/win32-x64': 0.17.3
 | 
			
		||||
      '@esbuild/aix-ppc64': 0.25.5
 | 
			
		||||
      '@esbuild/android-arm': 0.25.5
 | 
			
		||||
      '@esbuild/android-arm64': 0.25.5
 | 
			
		||||
      '@esbuild/android-x64': 0.25.5
 | 
			
		||||
      '@esbuild/darwin-arm64': 0.25.5
 | 
			
		||||
      '@esbuild/darwin-x64': 0.25.5
 | 
			
		||||
      '@esbuild/freebsd-arm64': 0.25.5
 | 
			
		||||
      '@esbuild/freebsd-x64': 0.25.5
 | 
			
		||||
      '@esbuild/linux-arm': 0.25.5
 | 
			
		||||
      '@esbuild/linux-arm64': 0.25.5
 | 
			
		||||
      '@esbuild/linux-ia32': 0.25.5
 | 
			
		||||
      '@esbuild/linux-loong64': 0.25.5
 | 
			
		||||
      '@esbuild/linux-mips64el': 0.25.5
 | 
			
		||||
      '@esbuild/linux-ppc64': 0.25.5
 | 
			
		||||
      '@esbuild/linux-riscv64': 0.25.5
 | 
			
		||||
      '@esbuild/linux-s390x': 0.25.5
 | 
			
		||||
      '@esbuild/linux-x64': 0.25.5
 | 
			
		||||
      '@esbuild/netbsd-arm64': 0.25.5
 | 
			
		||||
      '@esbuild/netbsd-x64': 0.25.5
 | 
			
		||||
      '@esbuild/openbsd-arm64': 0.25.5
 | 
			
		||||
      '@esbuild/openbsd-x64': 0.25.5
 | 
			
		||||
      '@esbuild/sunos-x64': 0.25.5
 | 
			
		||||
      '@esbuild/win32-arm64': 0.25.5
 | 
			
		||||
      '@esbuild/win32-ia32': 0.25.5
 | 
			
		||||
      '@esbuild/win32-x64': 0.25.5
 | 
			
		||||
 | 
			
		||||
  escape-string-regexp@1.0.5: {}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2641,8 +2616,6 @@ snapshots:
 | 
			
		|||
      locate-path: 6.0.0
 | 
			
		||||
      path-exists: 4.0.0
 | 
			
		||||
 | 
			
		||||
  fitty@2.4.2: {}
 | 
			
		||||
 | 
			
		||||
  flat-cache@4.0.1:
 | 
			
		||||
    dependencies:
 | 
			
		||||
      flatted: 3.3.3
 | 
			
		||||
| 
						 | 
				
			
			@ -3439,8 +3412,6 @@ snapshots:
 | 
			
		|||
 | 
			
		||||
  sync-message-port@1.1.3: {}
 | 
			
		||||
 | 
			
		||||
  textfit@2.4.0: {}
 | 
			
		||||
 | 
			
		||||
  to-regex-range@5.0.1:
 | 
			
		||||
    dependencies:
 | 
			
		||||
      is-number: 7.0.0
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,7 +22,6 @@
 | 
			
		|||
	import Rating from "@ui/components/Rating.svelte";
 | 
			
		||||
	import { v4 as uuidv4 } from "uuid";
 | 
			
		||||
	import memoize from "just-memoize";
 | 
			
		||||
	import VirtualList from "@humanspeak/svelte-virtual-list";
 | 
			
		||||
 | 
			
		||||
	interface Props {
 | 
			
		||||
		plugin: BookTrackerPlugin;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,6 @@
 | 
			
		|||
	import BookshelfItem from "./BookshelfItem.svelte";
 | 
			
		||||
	import { Color, type ColorName } from "@utils/color";
 | 
			
		||||
	import type { HTMLAttributes } from "svelte/elements";
 | 
			
		||||
	import { fit } from "@leveluptuts/svelte-fit";
 | 
			
		||||
 | 
			
		||||
	interface Props {
 | 
			
		||||
		children?: Snippet;
 | 
			
		||||
| 
						 | 
				
			
			@ -45,6 +44,23 @@
 | 
			
		|||
	const color = $derived(Color.fromName(colorName));
 | 
			
		||||
	const backgroundColor = $derived(color.chroma.css());
 | 
			
		||||
	const textColor = $derived(color.contrastColor.chroma.css());
 | 
			
		||||
 | 
			
		||||
	const titleFontSize = $derived(
 | 
			
		||||
		orientation === "front"
 | 
			
		||||
			? 16
 | 
			
		||||
			: Math.min(
 | 
			
		||||
					16,
 | 
			
		||||
					Math.max(8, (width + 120 - (title?.length ?? 0)) / 10),
 | 
			
		||||
				),
 | 
			
		||||
	);
 | 
			
		||||
	const subtitleFontSize = $derived(
 | 
			
		||||
		orientation === "front"
 | 
			
		||||
			? 12
 | 
			
		||||
			: Math.min(
 | 
			
		||||
					14,
 | 
			
		||||
					Math.max(6, (width + 60 - (subtitle?.length ?? 0)) / 10),
 | 
			
		||||
				),
 | 
			
		||||
	);
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<BookshelfItem>
 | 
			
		||||
| 
						 | 
				
			
			@ -75,13 +91,16 @@
 | 
			
		|||
		{/if}
 | 
			
		||||
		<div class="book-inner">
 | 
			
		||||
			{#if title}
 | 
			
		||||
				<h2 class="book-title">
 | 
			
		||||
				<h2 class="book-title" style:font-size="{titleFontSize}px">
 | 
			
		||||
					{title}
 | 
			
		||||
				</h2>
 | 
			
		||||
				{#if subtitle}
 | 
			
		||||
					<h3 class="book-subtitle">
 | 
			
		||||
					<p
 | 
			
		||||
						class="book-subtitle"
 | 
			
		||||
						style:font-size="{subtitleFontSize}px"
 | 
			
		||||
					>
 | 
			
		||||
						{subtitle}
 | 
			
		||||
					</h3>
 | 
			
		||||
					</p>
 | 
			
		||||
				{/if}
 | 
			
		||||
			{/if}
 | 
			
		||||
			{#if authors && orientation === "front"}
 | 
			
		||||
| 
						 | 
				
			
			@ -160,18 +179,14 @@
 | 
			
		|||
			}
 | 
			
		||||
 | 
			
		||||
			.book-title {
 | 
			
		||||
				font-size: 16px;
 | 
			
		||||
				height: $content-height;
 | 
			
		||||
				font-weight: var(--bold-weight);
 | 
			
		||||
				max-height: $content-height;
 | 
			
		||||
				width: var(--book-content-width);
 | 
			
		||||
 | 
			
		||||
				&:has(+ .book-subtitle) {
 | 
			
		||||
					height: calc(#{$content-height} / 2);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			.book-subtitle {
 | 
			
		||||
				font-size: 12px;
 | 
			
		||||
				height: calc(#{$content-height} / 2);
 | 
			
		||||
				font-weight: var(--font-weight);
 | 
			
		||||
				max-height: calc(#{$content-height} / 2);
 | 
			
		||||
				width: var(--book-content-width);
 | 
			
		||||
				align-items: start;
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			@ -249,14 +264,25 @@
 | 
			
		|||
				padding-left: $padding-left;
 | 
			
		||||
 | 
			
		||||
				.book-title {
 | 
			
		||||
					height: calc(var(--book-height) / 4);
 | 
			
		||||
					max-height: unset;
 | 
			
		||||
					height: calc(var(--book-height) / 2);
 | 
			
		||||
 | 
			
		||||
					&:has(+ .book-subtitle) {
 | 
			
		||||
						height: calc(var(--book-height) / 3);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				.book-subtitle {
 | 
			
		||||
					height: calc(var(--book-height) / 4);
 | 
			
		||||
					max-height: unset;
 | 
			
		||||
					height: calc(var(--book-height) / 3);
 | 
			
		||||
 | 
			
		||||
					& + .book-authors {
 | 
			
		||||
						height: calc(var(--book-height) / 3);
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				.book-authors {
 | 
			
		||||
					max-height: unset;
 | 
			
		||||
					height: calc(var(--book-height) / 2);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,45 +1,13 @@
 | 
			
		|||
<script lang="ts">
 | 
			
		||||
	import { type Snippet } from "svelte";
 | 
			
		||||
	import type { ActionReturn } from "svelte/action";
 | 
			
		||||
	import textFit from "textfit";
 | 
			
		||||
 | 
			
		||||
	interface Props {
 | 
			
		||||
		children?: Snippet;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	let { children }: Props = $props();
 | 
			
		||||
 | 
			
		||||
	const fitAllText = (el: HTMLDivElement): ActionReturn => {
 | 
			
		||||
		const observer = new MutationObserver(() => {
 | 
			
		||||
			requestAnimationFrame(() => {
 | 
			
		||||
				textFit(el.getElementsByClassName("book-title"), {
 | 
			
		||||
					minFontSize: 8,
 | 
			
		||||
					maxFontSize: 16,
 | 
			
		||||
					multiLine: true,
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
				textFit(el.getElementsByClassName("book-subtitle"), {
 | 
			
		||||
					minFontSize: 6,
 | 
			
		||||
					maxFontSize: 14,
 | 
			
		||||
					multiLine: true,
 | 
			
		||||
				});
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		observer.observe(el, {
 | 
			
		||||
			childList: true,
 | 
			
		||||
			subtree: true,
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		return {
 | 
			
		||||
			destroy() {
 | 
			
		||||
				observer.disconnect();
 | 
			
		||||
			},
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<div class="bookshelf" use:fitAllText>
 | 
			
		||||
<div class="bookshelf">
 | 
			
		||||
	{@render children?.()}
 | 
			
		||||
</div>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue