@jjlmoya/utils-diy 1.10.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +3 -1
  4. package/src/index.ts +2 -0
  5. package/src/pages/[locale]/[slug].astro +28 -12
  6. package/src/tests/locale_completeness.test.ts +7 -9
  7. package/src/tests/shared-test-helpers.ts +56 -0
  8. package/src/tests/tool_exports.test.ts +34 -0
  9. package/src/tests/tool_validation.test.ts +2 -2
  10. package/src/tool/balusterCalculator/baluster-calculator.css +9 -9
  11. package/src/tool/balusterCalculator/bibliography.astro +2 -10
  12. package/src/tool/balusterCalculator/bibliography.ts +16 -0
  13. package/src/tool/balusterCalculator/i18n/de.ts +2 -15
  14. package/src/tool/balusterCalculator/i18n/en.ts +2 -15
  15. package/src/tool/balusterCalculator/i18n/es.ts +2 -15
  16. package/src/tool/balusterCalculator/i18n/fr.ts +2 -15
  17. package/src/tool/balusterCalculator/i18n/id.ts +2 -15
  18. package/src/tool/balusterCalculator/i18n/it.ts +2 -15
  19. package/src/tool/balusterCalculator/i18n/ja.ts +2 -15
  20. package/src/tool/balusterCalculator/i18n/ko.ts +2 -15
  21. package/src/tool/balusterCalculator/i18n/nl.ts +2 -15
  22. package/src/tool/balusterCalculator/i18n/pl.ts +2 -15
  23. package/src/tool/balusterCalculator/i18n/pt.ts +2 -15
  24. package/src/tool/balusterCalculator/i18n/ru.ts +2 -15
  25. package/src/tool/balusterCalculator/i18n/sv.ts +2 -15
  26. package/src/tool/balusterCalculator/i18n/tr.ts +2 -15
  27. package/src/tool/balusterCalculator/i18n/zh.ts +2 -15
  28. package/src/tool/balusterCalculator/seo.astro +1 -1
  29. package/src/tool/clayCalculator/bibliography.astro +2 -10
  30. package/src/tool/clayCalculator/bibliography.ts +12 -0
  31. package/src/tool/clayCalculator/clay-shrinkage-calculator.css +30 -30
  32. package/src/tool/clayCalculator/i18n/de.ts +2 -11
  33. package/src/tool/clayCalculator/i18n/en.ts +2 -11
  34. package/src/tool/clayCalculator/i18n/es.ts +2 -11
  35. package/src/tool/clayCalculator/i18n/fr.ts +2 -11
  36. package/src/tool/clayCalculator/i18n/id.ts +2 -11
  37. package/src/tool/clayCalculator/i18n/it.ts +2 -11
  38. package/src/tool/clayCalculator/i18n/ja.ts +2 -11
  39. package/src/tool/clayCalculator/i18n/ko.ts +2 -11
  40. package/src/tool/clayCalculator/i18n/nl.ts +2 -11
  41. package/src/tool/clayCalculator/i18n/pl.ts +2 -11
  42. package/src/tool/clayCalculator/i18n/pt.ts +2 -11
  43. package/src/tool/clayCalculator/i18n/ru.ts +2 -11
  44. package/src/tool/clayCalculator/i18n/sv.ts +2 -11
  45. package/src/tool/clayCalculator/i18n/tr.ts +2 -11
  46. package/src/tool/clayCalculator/i18n/zh.ts +2 -11
  47. package/src/tool/clayCalculator/seo.astro +1 -1
  48. package/src/tool/concreteCalculator/bibliography.astro +2 -9
  49. package/src/tool/concreteCalculator/bibliography.ts +7 -0
  50. package/src/tool/concreteCalculator/concrete-mortar-calculator.css +18 -18
  51. package/src/tool/concreteCalculator/i18n/de.ts +2 -15
  52. package/src/tool/concreteCalculator/i18n/en.ts +2 -15
  53. package/src/tool/concreteCalculator/i18n/es.ts +2 -15
  54. package/src/tool/concreteCalculator/i18n/fr.ts +2 -15
  55. package/src/tool/concreteCalculator/i18n/id.ts +2 -15
  56. package/src/tool/concreteCalculator/i18n/it.ts +2 -15
  57. package/src/tool/concreteCalculator/i18n/ja.ts +2 -15
  58. package/src/tool/concreteCalculator/i18n/ko.ts +2 -15
  59. package/src/tool/concreteCalculator/i18n/nl.ts +2 -15
  60. package/src/tool/concreteCalculator/i18n/pl.ts +2 -15
  61. package/src/tool/concreteCalculator/i18n/pt.ts +2 -15
  62. package/src/tool/concreteCalculator/i18n/ru.ts +2 -15
  63. package/src/tool/concreteCalculator/i18n/sv.ts +2 -15
  64. package/src/tool/concreteCalculator/i18n/tr.ts +2 -15
  65. package/src/tool/concreteCalculator/i18n/zh.ts +2 -15
  66. package/src/tool/concreteCalculator/seo.astro +2 -1
  67. package/src/tool/cutOptimizer/bibliography.astro +2 -9
  68. package/src/tool/cutOptimizer/bibliography.ts +12 -0
  69. package/src/tool/cutOptimizer/cut-optimizer.css +25 -25
  70. package/src/tool/cutOptimizer/i18n/de.ts +2 -11
  71. package/src/tool/cutOptimizer/i18n/en.ts +2 -11
  72. package/src/tool/cutOptimizer/i18n/es.ts +2 -11
  73. package/src/tool/cutOptimizer/i18n/fr.ts +2 -11
  74. package/src/tool/cutOptimizer/i18n/id.ts +2 -11
  75. package/src/tool/cutOptimizer/i18n/it.ts +2 -11
  76. package/src/tool/cutOptimizer/i18n/ja.ts +2 -11
  77. package/src/tool/cutOptimizer/i18n/ko.ts +2 -11
  78. package/src/tool/cutOptimizer/i18n/nl.ts +2 -11
  79. package/src/tool/cutOptimizer/i18n/pl.ts +2 -11
  80. package/src/tool/cutOptimizer/i18n/pt.ts +2 -11
  81. package/src/tool/cutOptimizer/i18n/ru.ts +2 -11
  82. package/src/tool/cutOptimizer/i18n/sv.ts +2 -11
  83. package/src/tool/cutOptimizer/i18n/tr.ts +2 -11
  84. package/src/tool/cutOptimizer/i18n/zh.ts +2 -11
  85. package/src/tool/cutOptimizer/seo.astro +2 -1
  86. package/src/tool/drillCalculator/bibliography.astro +2 -9
  87. package/src/tool/drillCalculator/bibliography.ts +12 -0
  88. package/src/tool/drillCalculator/drill-rpm-calculator.css +57 -57
  89. package/src/tool/drillCalculator/i18n/de.ts +2 -5
  90. package/src/tool/drillCalculator/i18n/en.ts +2 -5
  91. package/src/tool/drillCalculator/i18n/es.ts +2 -5
  92. package/src/tool/drillCalculator/i18n/fr.ts +2 -5
  93. package/src/tool/drillCalculator/i18n/id.ts +2 -5
  94. package/src/tool/drillCalculator/i18n/it.ts +2 -5
  95. package/src/tool/drillCalculator/i18n/ja.ts +2 -5
  96. package/src/tool/drillCalculator/i18n/ko.ts +2 -5
  97. package/src/tool/drillCalculator/i18n/nl.ts +2 -5
  98. package/src/tool/drillCalculator/i18n/pl.ts +2 -5
  99. package/src/tool/drillCalculator/i18n/pt.ts +2 -5
  100. package/src/tool/drillCalculator/i18n/ru.ts +2 -5
  101. package/src/tool/drillCalculator/i18n/sv.ts +2 -5
  102. package/src/tool/drillCalculator/i18n/tr.ts +2 -5
  103. package/src/tool/drillCalculator/i18n/zh.ts +2 -5
  104. package/src/tool/drillCalculator/seo.astro +2 -1
  105. package/src/tool/drillSharpener/bibliography.astro +2 -9
  106. package/src/tool/drillSharpener/bibliography.ts +16 -0
  107. package/src/tool/drillSharpener/drill-sharpening-master.css +1 -1
  108. package/src/tool/drillSharpener/i18n/de.ts +2 -5
  109. package/src/tool/drillSharpener/i18n/en.ts +2 -6
  110. package/src/tool/drillSharpener/i18n/es.ts +2 -6
  111. package/src/tool/drillSharpener/i18n/fr.ts +2 -6
  112. package/src/tool/drillSharpener/i18n/id.ts +2 -5
  113. package/src/tool/drillSharpener/i18n/it.ts +2 -5
  114. package/src/tool/drillSharpener/i18n/ja.ts +2 -5
  115. package/src/tool/drillSharpener/i18n/ko.ts +2 -5
  116. package/src/tool/drillSharpener/i18n/nl.ts +2 -5
  117. package/src/tool/drillSharpener/i18n/pl.ts +2 -5
  118. package/src/tool/drillSharpener/i18n/pt.ts +2 -5
  119. package/src/tool/drillSharpener/i18n/ru.ts +2 -5
  120. package/src/tool/drillSharpener/i18n/sv.ts +2 -5
  121. package/src/tool/drillSharpener/i18n/tr.ts +2 -5
  122. package/src/tool/drillSharpener/i18n/zh.ts +2 -5
  123. package/src/tool/drillSharpener/seo.astro +2 -1
  124. package/src/tool/epoxyCalculator/bibliography.astro +2 -10
  125. package/src/tool/epoxyCalculator/bibliography.ts +20 -0
  126. package/src/tool/epoxyCalculator/epoxy-resin-calculator.css +13 -13
  127. package/src/tool/epoxyCalculator/i18n/de.ts +2 -5
  128. package/src/tool/epoxyCalculator/i18n/en.ts +2 -19
  129. package/src/tool/epoxyCalculator/i18n/es.ts +2 -19
  130. package/src/tool/epoxyCalculator/i18n/fr.ts +2 -19
  131. package/src/tool/epoxyCalculator/i18n/id.ts +2 -5
  132. package/src/tool/epoxyCalculator/i18n/it.ts +2 -5
  133. package/src/tool/epoxyCalculator/i18n/ja.ts +2 -5
  134. package/src/tool/epoxyCalculator/i18n/ko.ts +2 -5
  135. package/src/tool/epoxyCalculator/i18n/nl.ts +2 -5
  136. package/src/tool/epoxyCalculator/i18n/pl.ts +2 -5
  137. package/src/tool/epoxyCalculator/i18n/pt.ts +2 -5
  138. package/src/tool/epoxyCalculator/i18n/ru.ts +2 -5
  139. package/src/tool/epoxyCalculator/i18n/sv.ts +2 -5
  140. package/src/tool/epoxyCalculator/i18n/tr.ts +2 -5
  141. package/src/tool/epoxyCalculator/i18n/zh.ts +2 -5
  142. package/src/tool/epoxyCalculator/seo.astro +1 -1
  143. package/src/tool/furnitureFit/bibliography.astro +2 -9
  144. package/src/tool/furnitureFit/bibliography.ts +12 -0
  145. package/src/tool/furnitureFit/furniture-fit-calculator.css +7 -7
  146. package/src/tool/furnitureFit/i18n/de.ts +2 -5
  147. package/src/tool/furnitureFit/i18n/en.ts +2 -5
  148. package/src/tool/furnitureFit/i18n/es.ts +2 -5
  149. package/src/tool/furnitureFit/i18n/fr.ts +2 -5
  150. package/src/tool/furnitureFit/i18n/id.ts +2 -5
  151. package/src/tool/furnitureFit/i18n/it.ts +2 -5
  152. package/src/tool/furnitureFit/i18n/ja.ts +2 -5
  153. package/src/tool/furnitureFit/i18n/ko.ts +2 -5
  154. package/src/tool/furnitureFit/i18n/nl.ts +2 -5
  155. package/src/tool/furnitureFit/i18n/pl.ts +2 -5
  156. package/src/tool/furnitureFit/i18n/pt.ts +2 -5
  157. package/src/tool/furnitureFit/i18n/ru.ts +2 -5
  158. package/src/tool/furnitureFit/i18n/sv.ts +2 -5
  159. package/src/tool/furnitureFit/i18n/tr.ts +2 -5
  160. package/src/tool/furnitureFit/i18n/zh.ts +2 -5
  161. package/src/tool/furnitureFit/seo.astro +2 -1
  162. package/src/tool/mortarCalculator/bibliography.astro +2 -9
  163. package/src/tool/mortarCalculator/bibliography.ts +20 -0
  164. package/src/tool/mortarCalculator/i18n/de.ts +2 -5
  165. package/src/tool/mortarCalculator/i18n/en.ts +2 -19
  166. package/src/tool/mortarCalculator/i18n/es.ts +2 -19
  167. package/src/tool/mortarCalculator/i18n/fr.ts +2 -19
  168. package/src/tool/mortarCalculator/i18n/id.ts +2 -5
  169. package/src/tool/mortarCalculator/i18n/it.ts +2 -5
  170. package/src/tool/mortarCalculator/i18n/ja.ts +2 -5
  171. package/src/tool/mortarCalculator/i18n/ko.ts +2 -5
  172. package/src/tool/mortarCalculator/i18n/nl.ts +2 -5
  173. package/src/tool/mortarCalculator/i18n/pl.ts +2 -5
  174. package/src/tool/mortarCalculator/i18n/pt.ts +2 -5
  175. package/src/tool/mortarCalculator/i18n/ru.ts +2 -5
  176. package/src/tool/mortarCalculator/i18n/sv.ts +2 -5
  177. package/src/tool/mortarCalculator/i18n/tr.ts +2 -5
  178. package/src/tool/mortarCalculator/i18n/zh.ts +2 -5
  179. package/src/tool/mortarCalculator/lime-mortar-calculator.css +30 -30
  180. package/src/tool/mortarCalculator/seo.astro +2 -1
  181. package/src/tool/passepartoutCalculator/bibliography.astro +2 -9
  182. package/src/tool/passepartoutCalculator/bibliography.ts +16 -0
  183. package/src/tool/passepartoutCalculator/i18n/de.ts +2 -6
  184. package/src/tool/passepartoutCalculator/i18n/en.ts +2 -15
  185. package/src/tool/passepartoutCalculator/i18n/es.ts +2 -15
  186. package/src/tool/passepartoutCalculator/i18n/fr.ts +2 -15
  187. package/src/tool/passepartoutCalculator/i18n/id.ts +2 -6
  188. package/src/tool/passepartoutCalculator/i18n/it.ts +2 -6
  189. package/src/tool/passepartoutCalculator/i18n/ja.ts +2 -6
  190. package/src/tool/passepartoutCalculator/i18n/ko.ts +2 -6
  191. package/src/tool/passepartoutCalculator/i18n/nl.ts +2 -6
  192. package/src/tool/passepartoutCalculator/i18n/pl.ts +2 -6
  193. package/src/tool/passepartoutCalculator/i18n/pt.ts +2 -6
  194. package/src/tool/passepartoutCalculator/i18n/ru.ts +2 -6
  195. package/src/tool/passepartoutCalculator/i18n/sv.ts +2 -6
  196. package/src/tool/passepartoutCalculator/i18n/tr.ts +2 -6
  197. package/src/tool/passepartoutCalculator/i18n/zh.ts +2 -6
  198. package/src/tool/passepartoutCalculator/passepartout-calculator.css +26 -26
  199. package/src/tool/passepartoutCalculator/seo.astro +2 -1
  200. package/src/tool/stairCalculator/bibliography.astro +2 -9
  201. package/src/tool/stairCalculator/bibliography.ts +16 -0
  202. package/src/tool/stairCalculator/i18n/de.ts +2 -5
  203. package/src/tool/stairCalculator/i18n/en.ts +2 -6
  204. package/src/tool/stairCalculator/i18n/es.ts +2 -6
  205. package/src/tool/stairCalculator/i18n/fr.ts +2 -6
  206. package/src/tool/stairCalculator/i18n/id.ts +2 -5
  207. package/src/tool/stairCalculator/i18n/it.ts +2 -5
  208. package/src/tool/stairCalculator/i18n/ja.ts +2 -5
  209. package/src/tool/stairCalculator/i18n/ko.ts +2 -5
  210. package/src/tool/stairCalculator/i18n/nl.ts +2 -5
  211. package/src/tool/stairCalculator/i18n/pl.ts +2 -5
  212. package/src/tool/stairCalculator/i18n/pt.ts +2 -5
  213. package/src/tool/stairCalculator/i18n/ru.ts +2 -5
  214. package/src/tool/stairCalculator/i18n/sv.ts +2 -5
  215. package/src/tool/stairCalculator/i18n/tr.ts +2 -5
  216. package/src/tool/stairCalculator/i18n/zh.ts +2 -5
  217. package/src/tool/stairCalculator/seo.astro +2 -1
  218. package/src/tool/stairCalculator/stair-calculator.css +10 -10
  219. package/src/tool/thermalExpansionCalculator/bibliography.astro +2 -9
  220. package/src/tool/thermalExpansionCalculator/bibliography.ts +16 -0
  221. package/src/tool/thermalExpansionCalculator/i18n/de.ts +2 -6
  222. package/src/tool/thermalExpansionCalculator/i18n/en.ts +2 -6
  223. package/src/tool/thermalExpansionCalculator/i18n/es.ts +2 -6
  224. package/src/tool/thermalExpansionCalculator/i18n/fr.ts +2 -6
  225. package/src/tool/thermalExpansionCalculator/i18n/id.ts +2 -6
  226. package/src/tool/thermalExpansionCalculator/i18n/it.ts +2 -6
  227. package/src/tool/thermalExpansionCalculator/i18n/ja.ts +2 -6
  228. package/src/tool/thermalExpansionCalculator/i18n/ko.ts +2 -6
  229. package/src/tool/thermalExpansionCalculator/i18n/nl.ts +2 -6
  230. package/src/tool/thermalExpansionCalculator/i18n/pl.ts +2 -6
  231. package/src/tool/thermalExpansionCalculator/i18n/pt.ts +2 -6
  232. package/src/tool/thermalExpansionCalculator/i18n/ru.ts +2 -6
  233. package/src/tool/thermalExpansionCalculator/i18n/sv.ts +2 -6
  234. package/src/tool/thermalExpansionCalculator/i18n/tr.ts +2 -6
  235. package/src/tool/thermalExpansionCalculator/i18n/zh.ts +2 -6
  236. package/src/tool/thermalExpansionCalculator/seo.astro +2 -1
  237. package/src/tool/thermalExpansionCalculator/thermal-expansion-calculator.css +19 -19
  238. package/src/tool/voltageDropCalculator/bibliography.astro +2 -9
  239. package/src/tool/voltageDropCalculator/bibliography.ts +16 -0
  240. package/src/tool/voltageDropCalculator/i18n/de.ts +2 -5
  241. package/src/tool/voltageDropCalculator/i18n/en.ts +2 -6
  242. package/src/tool/voltageDropCalculator/i18n/es.ts +2 -6
  243. package/src/tool/voltageDropCalculator/i18n/fr.ts +2 -6
  244. package/src/tool/voltageDropCalculator/i18n/id.ts +2 -5
  245. package/src/tool/voltageDropCalculator/i18n/it.ts +2 -5
  246. package/src/tool/voltageDropCalculator/i18n/ja.ts +2 -5
  247. package/src/tool/voltageDropCalculator/i18n/ko.ts +2 -5
  248. package/src/tool/voltageDropCalculator/i18n/nl.ts +2 -5
  249. package/src/tool/voltageDropCalculator/i18n/pl.ts +2 -5
  250. package/src/tool/voltageDropCalculator/i18n/pt.ts +2 -5
  251. package/src/tool/voltageDropCalculator/i18n/ru.ts +2 -5
  252. package/src/tool/voltageDropCalculator/i18n/sv.ts +2 -5
  253. package/src/tool/voltageDropCalculator/i18n/tr.ts +2 -5
  254. package/src/tool/voltageDropCalculator/i18n/zh.ts +2 -5
  255. package/src/tool/voltageDropCalculator/seo.astro +2 -1
  256. package/src/tool/voltageDropCalculator/voltage-drop-calculator.css +24 -24
  257. package/src/tool/workshopFractionConverter/bibliography.astro +6 -0
  258. package/src/tool/workshopFractionConverter/bibliography.ts +12 -0
  259. package/src/tool/workshopFractionConverter/client.ts +183 -0
  260. package/src/tool/workshopFractionConverter/component.astro +226 -0
  261. package/src/tool/workshopFractionConverter/converter.ts +110 -0
  262. package/src/tool/workshopFractionConverter/engine.ts +223 -0
  263. package/src/tool/workshopFractionConverter/entry.ts +24 -0
  264. package/src/tool/workshopFractionConverter/i18n/de.ts +141 -0
  265. package/src/tool/workshopFractionConverter/i18n/en.ts +141 -0
  266. package/src/tool/workshopFractionConverter/i18n/es.ts +141 -0
  267. package/src/tool/workshopFractionConverter/i18n/fr.ts +141 -0
  268. package/src/tool/workshopFractionConverter/i18n/id.ts +141 -0
  269. package/src/tool/workshopFractionConverter/i18n/it.ts +141 -0
  270. package/src/tool/workshopFractionConverter/i18n/ja.ts +141 -0
  271. package/src/tool/workshopFractionConverter/i18n/ko.ts +141 -0
  272. package/src/tool/workshopFractionConverter/i18n/nl.ts +141 -0
  273. package/src/tool/workshopFractionConverter/i18n/pl.ts +141 -0
  274. package/src/tool/workshopFractionConverter/i18n/pt.ts +141 -0
  275. package/src/tool/workshopFractionConverter/i18n/ru.ts +141 -0
  276. package/src/tool/workshopFractionConverter/i18n/sv.ts +141 -0
  277. package/src/tool/workshopFractionConverter/i18n/tr.ts +141 -0
  278. package/src/tool/workshopFractionConverter/i18n/zh.ts +141 -0
  279. package/src/tool/workshopFractionConverter/index.ts +11 -0
  280. package/src/tool/workshopFractionConverter/seo.astro +15 -0
  281. package/src/tool/workshopFractionConverter/types-client.ts +89 -0
  282. package/src/tool/workshopFractionConverter/ui-updater.ts +94 -0
  283. package/src/tool/workshopFractionConverter/ui.ts +38 -0
  284. package/src/tool/workshopFractionConverter/workshop-fraction-converter.css +563 -0
  285. package/src/tools.ts +2 -1
  286. package/src/types.ts +1 -1
@@ -509,61 +509,61 @@
509
509
  50% { transform: translateY(-4px); }
510
510
  }
511
511
 
512
- :global(.theme-dark) .ec-panel-left {
512
+ .theme-dark .ec-panel-left {
513
513
  background: rgba(15, 23, 42, 0.8);
514
514
  border-color: rgba(51, 65, 85, 0.6);
515
515
  }
516
516
 
517
- :global(.theme-dark) .ec-tabs {
517
+ .theme-dark .ec-tabs {
518
518
  background: rgba(30, 41, 59, 0.6);
519
519
  }
520
520
 
521
- :global(.theme-dark) .ec-tab-btn {
521
+ .theme-dark .ec-tab-btn {
522
522
  color: #94a3b8;
523
523
  }
524
524
 
525
- :global(.theme-dark) .ec-tab-btn[data-ec-active="true"] {
525
+ .theme-dark .ec-tab-btn[data-ec-active="true"] {
526
526
  background: #f59e0b;
527
527
  color: #0f172a;
528
528
  }
529
529
 
530
- :global(.theme-dark) .ec-input {
530
+ .theme-dark .ec-input {
531
531
  background: #1e293b;
532
532
  border-color: #334155;
533
533
  color: #e2e8f0;
534
534
  }
535
535
 
536
- :global(.theme-dark) .ec-input:focus {
536
+ .theme-dark .ec-input:focus {
537
537
  border-color: #f59e0b;
538
538
  }
539
539
 
540
- :global(.theme-dark) .ec-slider {
540
+ .theme-dark .ec-slider {
541
541
  background: #334155;
542
542
  }
543
543
 
544
- :global(.theme-dark) .ec-custom-check-row {
544
+ .theme-dark .ec-custom-check-row {
545
545
  color: #94a3b8;
546
546
  }
547
547
 
548
- :global(.theme-dark) .ec-waste-row {
548
+ .theme-dark .ec-waste-row {
549
549
  background: rgba(30, 41, 59, 0.6);
550
550
  border-color: rgba(51, 65, 85, 0.4);
551
551
  }
552
552
 
553
- :global(.theme-dark) .ec-waste-icon {
553
+ .theme-dark .ec-waste-icon {
554
554
  background: #1e293b;
555
555
  }
556
556
 
557
- :global(.theme-dark) .ec-waste-title {
557
+ .theme-dark .ec-waste-title {
558
558
  color: #e2e8f0;
559
559
  }
560
560
 
561
- :global(.theme-dark) .ec-viz-card {
561
+ .theme-dark .ec-viz-card {
562
562
  background: #1e293b;
563
563
  border-color: #334155;
564
564
  }
565
565
 
566
- :global(.theme-dark) .ec-visual-shape {
566
+ .theme-dark .ec-visual-shape {
567
567
  background: #0f172a;
568
568
  border-color: rgba(148, 163, 184, 0.15);
569
569
  }
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoxidharz-rechner';
6
7
  const title = 'Epoxidharz Rechner: Mischung und Volumen';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Häufig gestellte Fragen',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Technische Referenzen',
76
- bibliography: [
77
- { name: 'TotalBoat - Support Center und technische Leitfäden', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - FAQ und Gebrauchsanweisung', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoxy-resin-calculator';
6
7
  const title = 'Epoxy Resin Calculator: Exact Mix and Volume';
@@ -89,25 +90,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Frequently Asked Questions',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Technical References',
93
- bibliography: [
94
- {
95
- name: 'TotalBoat - Support Center and Technical Guides',
96
- url: 'https://www.totalboat.com/pages/support',
97
- },
98
- {
99
- name: 'ArtResin - FAQ and Usage Guide',
100
- url: 'https://www.artresin.com/pages/artresin-faq',
101
- },
102
- {
103
- name: 'Smooth-On - Mold and Casting Calculators',
104
- url: 'https://www.smooth-on.com/support/calculators/',
105
- },
106
- {
107
- name: 'Polytek - Technical Support and Safety Data Sheets',
108
- url: 'https://www.polytek.com/technical-support',
109
- },
110
- ],
93
+ bibliography,
111
94
  howTo: howToData,
112
95
  schemas: [faqSchema, howToSchema, appSchema],
113
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-resina';
6
7
  const title = 'Calculadora de Resina Epoxi: Mezcla y Volumen Exacto';
@@ -89,25 +90,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Preguntas Frecuentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referencias Técnicas',
93
- bibliography: [
94
- {
95
- name: 'TotalBoat - Centro de Soporte y Guías Técnicas',
96
- url: 'https://www.totalboat.com/pages/support',
97
- },
98
- {
99
- name: 'ArtResin - Preguntas Frecuentes y Guía de Uso',
100
- url: 'https://www.artresin.com/pages/artresin-faq',
101
- },
102
- {
103
- name: 'Smooth-On - Calculadoras de Moldes y Vaciado',
104
- url: 'https://www.smooth-on.com/support/calculators/',
105
- },
106
- {
107
- name: 'Polytek - Soporte Técnico y Hojas de Seguridad',
108
- url: 'https://www.polytek.com/technical-support',
109
- },
110
- ],
93
+ bibliography,
111
94
  howTo: howToData,
112
95
  schemas: [faqSchema, howToSchema, appSchema],
113
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculateur-resine-epoxy';
6
7
  const title = 'Calculateur de Résine Époxy : Mélange et Volume Exact';
@@ -89,25 +90,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Questions Fréquentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Références Techniques',
93
- bibliography: [
94
- {
95
- name: 'TotalBoat - Centre de support et guides techniques',
96
- url: 'https://www.totalboat.com/pages/support',
97
- },
98
- {
99
- name: "ArtResin - FAQ et guide d'utilisation",
100
- url: 'https://www.artresin.com/pages/artresin-faq',
101
- },
102
- {
103
- name: 'Smooth-On - Calculateurs de moules et coulée',
104
- url: 'https://www.smooth-on.com/support/calculators/',
105
- },
106
- {
107
- name: 'Polytek - Support technique et fiches de sécurité',
108
- url: 'https://www.polytek.com/technical-support',
109
- },
110
- ],
93
+ bibliography,
111
94
  howTo: howToData,
112
95
  schemas: [faqSchema, howToSchema, appSchema],
113
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-resin-epoksi';
6
7
  const title = 'Kalkulator Resin Epoksi: Campuran dan Volume Tepat';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Pertanyaan Umum',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referensi Teknis',
76
- bibliography: [
77
- { name: 'TotalBoat - Pusat Dukungan dan Panduan Teknis', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - FAQ dan Panduan Penggunaan', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calcolatore-resina-epossidica';
6
7
  const title = 'Calcolatore di Resina Epossidica: Miscela e Volume Esatto';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Domande Frequenti',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Riferimenti Tecnici',
76
- bibliography: [
77
- { name: 'TotalBoat - Centro di Supporto e Guide Tecniche', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - Domande Frequenti e Guida d\'Uso', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoxy-resin-calculator';
6
7
  const title = 'エポキシ樹脂計算機:正確な配合と体積';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'よくある質問',
74
75
  faq: faqData,
75
- bibliographyTitle: '技術リファレンス',
76
- bibliography: [
77
- { name: 'TotalBoat - サポートセンター・技術ガイド', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - FAQ・使用ガイド', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoxy-resin-calculator';
6
7
  const title = '에폭시 레진 계산기: 정확한 혼합 및 부피';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: '자주 묻는 질문',
74
75
  faq: faqData,
75
- bibliographyTitle: '기술 참고 자료',
76
- bibliography: [
77
- { name: 'TotalBoat - 지원 센터 및 기술 가이드', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - FAQ 및 사용 가이드', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoxyhars-calculator';
6
7
  const title = 'Epoxyhars Calculator: Exacte Mengverhouding en Volume';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Veelgestelde Vragen',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Technische Referenties',
76
- bibliography: [
77
- { name: 'TotalBoat - Support Center en Technische Gidsen', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - FAQ en Gebruikershandleiding', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-zywicy-epoksydowej';
6
7
  const title = 'Kalkulator Żywicy Epoksydowej: Mieszanka i Dokładna Objętość';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Często Zadawane Pytania',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referencje Techniczne',
76
- bibliography: [
77
- { name: 'TotalBoat - Centrum Wsparcia i Przewodniki Techniczne', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - Często Zadawane Pytania i Instrukcja Obsługi', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-resina-epoxica';
6
7
  const title = 'Calculadora de Resina Epóxica: Mistura e Volume Exato';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Perguntas Frequentes',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referências Técnicas',
76
- bibliography: [
77
- { name: 'TotalBoat - Centro de Suporte e Guias Técnicos', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - Perguntas Frequentes e Guia de Uso', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-epoksidnoj-smoly';
6
7
  const title = 'Калькулятор эпоксидной смолы: точная смесь и объем';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Часто задаваемые вопросы',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Технические справочники',
76
- bibliography: [
77
- { name: 'TotalBoat - Центр поддержки и технические руководства', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - FAQ и руководство по использованию', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoxyharts-kalkylator';
6
7
  const title = 'Epoxyharts kalkylator: Exakt blandning och volym';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Vanliga frågor',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Tekniska referenser',
76
- bibliography: [
77
- { name: 'TotalBoat - Supportcenter och tekniska guider', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - FAQ och bruksanvisning', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoksi-recine-hesaplayici';
6
7
  const title = 'Epoksi Reçine Hesaplayıcı: Karışım ve Tam Hacim';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Sıkça Sorulan Sorular',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Teknik Referanslar',
76
- bibliography: [
77
- { name: 'TotalBoat - Destek Merkezi ve Teknik Kılavuzlar', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - SSS ve Kullanım Kılavuzu', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoxy-resin-calculator';
6
7
  const title = '环氧树脂计算器:混合比例与精确体积';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: '常见问题',
74
75
  faq: faqData,
75
- bibliographyTitle: '技术参考',
76
- bibliography: [
77
- { name: 'TotalBoat - 支持中心与技术指南', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - 常见问题与使用指南', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -12,4 +12,4 @@ const content = await epoxyCalculator.i18n[locale]?.();
12
12
  if (!content) return null;
13
13
  ---
14
14
 
15
- <SEORenderer content={{ locale: locale as string, sections: content.seo }} />
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -1,13 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { furnitureFit } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
- const { locale = 'es' } = Astro.props;
10
- const content = await furnitureFit.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
11
4
  ---
12
5
 
13
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,12 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'Geometric Fit in Confined Spaces (MDPI Buildings)',
6
+ url: 'https://www.mdpi.com/2075-5309/15/2/157',
7
+ },
8
+ {
9
+ name: 'Moving Sofa Problem: Wolfram MathWorld',
10
+ url: 'https://mathworld.wolfram.com/MovingSofaProblem.html',
11
+ },
12
+ ];
@@ -30,7 +30,7 @@
30
30
  border: 1px solid #f1f5f9;
31
31
  }
32
32
 
33
- :global(.theme-dark) .ff-card {
33
+ .theme-dark .ff-card {
34
34
  background: #0f172a;
35
35
  border-color: #1e293b;
36
36
  }
@@ -45,7 +45,7 @@
45
45
  margin: 0 0 1.5rem;
46
46
  }
47
47
 
48
- :global(.theme-dark) .ff-card-title {
48
+ .theme-dark .ff-card-title {
49
49
  color: #fff;
50
50
  }
51
51
 
@@ -97,7 +97,7 @@
97
97
  box-shadow: 0 0 0 2px #6366f1;
98
98
  }
99
99
 
100
- :global(.theme-dark) .ff-input {
100
+ .theme-dark .ff-input {
101
101
  background: #1e293b;
102
102
  color: #fff;
103
103
  }
@@ -127,7 +127,7 @@
127
127
  margin-top: 0.5rem;
128
128
  }
129
129
 
130
- :global(.theme-dark) .ff-margin-row {
130
+ .theme-dark .ff-margin-row {
131
131
  border-color: #1e293b;
132
132
  }
133
133
 
@@ -161,7 +161,7 @@
161
161
  overflow: hidden;
162
162
  }
163
163
 
164
- :global(.theme-dark) .ff-visual-container {
164
+ .theme-dark .ff-visual-container {
165
165
  background: #020617;
166
166
  border-color: #1e293b;
167
167
  }
@@ -203,7 +203,7 @@
203
203
  height: 200px;
204
204
  }
205
205
 
206
- :global(.theme-dark) .ff-space-box {
206
+ .theme-dark .ff-space-box {
207
207
  border-color: #334155;
208
208
  }
209
209
 
@@ -264,7 +264,7 @@
264
264
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
265
265
  }
266
266
 
267
- :global(.theme-dark) .ff-verdict {
267
+ .theme-dark .ff-verdict {
268
268
  background: #1e293b;
269
269
  border-color: #475569;
270
270
  color: #fff;
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'moebel-platz-rechner';
6
7
  const title = 'Platzrechner für Umzüge und Möbel';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Häufig gestellte Fragen',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Technische Referenzen',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'furniture-fit-calculator';
6
7
  const title = 'Furniture Fit Calculator: Will It Go Through the Door?';
@@ -89,11 +90,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
89
90
  description,
90
91
  faqTitle: 'Frequently Asked Questions',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Technical References',
93
- bibliography: [
94
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
95
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
96
- ],
93
+ bibliography,
97
94
  howTo: howToData,
98
95
  schemas: [faqSchema, howToSchema, appSchema],
99
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-espacio-muebles';
6
7
  const title = 'Calculadora de Espacio para Mudanzas y Muebles';
@@ -89,11 +90,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
89
90
  description,
90
91
  faqTitle: 'Preguntas Frecuentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referencias Técnicas',
93
- bibliography: [
94
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
95
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
96
- ],
93
+ bibliography,
97
94
  howTo: howToData,
98
95
  schemas: [faqSchema, howToSchema, appSchema],
99
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculateur-encombrement-meubles';
6
7
  const title = 'Calculateur de Place pour Meubles et Déménagement';
@@ -89,11 +90,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
89
90
  description,
90
91
  faqTitle: 'Questions Fréquentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Références Techniques',
93
- bibliography: [
94
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
95
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
96
- ],
93
+ bibliography,
97
94
  howTo: howToData,
98
95
  schemas: [faqSchema, howToSchema, appSchema],
99
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-ruang-furnitur';
6
7
  const title = 'Kalkulator Ruang untuk Pindahan dan Furnitur';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Pertanyaan Umum',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referensi Teknis',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [