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