@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
@@ -26,7 +26,7 @@
26
26
  transition: transform 0.3s, box-shadow 0.3s;
27
27
  }
28
28
 
29
- :global(.theme-dark) .mc-panel {
29
+ .theme-dark .mc-panel {
30
30
  background: rgba(26, 26, 26, 0.8);
31
31
  border-color: rgba(255, 255, 255, 0.1);
32
32
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
@@ -45,7 +45,7 @@
45
45
  text-align: center;
46
46
  }
47
47
 
48
- :global(.theme-dark) .mc-panel-title {
48
+ .theme-dark .mc-panel-title {
49
49
  color: #f5f1e8;
50
50
  }
51
51
 
@@ -77,7 +77,7 @@
77
77
  pointer-events: none;
78
78
  }
79
79
 
80
- :global(.theme-dark) .mc-column-label {
80
+ .theme-dark .mc-column-label {
81
81
  fill: #f5f1e8;
82
82
  }
83
83
 
@@ -96,7 +96,7 @@
96
96
  border: 1px solid #e7e5e4;
97
97
  }
98
98
 
99
- :global(.theme-dark) .mc-phase-info {
99
+ .theme-dark .mc-phase-info {
100
100
  background: rgba(40, 35, 30, 0.5);
101
101
  border-color: rgba(255, 255, 255, 0.05);
102
102
  }
@@ -114,7 +114,7 @@
114
114
  line-height: 1.6;
115
115
  }
116
116
 
117
- :global(.theme-dark) .mc-phase-info p {
117
+ .theme-dark .mc-phase-info p {
118
118
  color: #a8a29e;
119
119
  }
120
120
 
@@ -140,7 +140,7 @@
140
140
  transition: all 0.3s;
141
141
  }
142
142
 
143
- :global(.theme-dark) .mc-material-btn {
143
+ .theme-dark .mc-material-btn {
144
144
  background: rgba(40, 35, 30, 0.5);
145
145
  border-color: rgba(255, 255, 255, 0.1);
146
146
  color: #a8a29e;
@@ -165,7 +165,7 @@
165
165
  border: 1px solid #e7e5e4;
166
166
  }
167
167
 
168
- :global(.theme-dark) .mc-cal-toggle {
168
+ .theme-dark .mc-cal-toggle {
169
169
  background: rgba(40, 35, 30, 0.5);
170
170
  border-color: rgba(255, 255, 255, 0.1);
171
171
  }
@@ -217,7 +217,7 @@
217
217
  gap: 0.125rem;
218
218
  }
219
219
 
220
- :global(.theme-dark) .mc-toggle-text {
220
+ .theme-dark .mc-toggle-text {
221
221
  color: #a8a29e;
222
222
  }
223
223
 
@@ -226,7 +226,7 @@
226
226
  color: #292524;
227
227
  }
228
228
 
229
- :global(.theme-dark) .mc-type-pasta {
229
+ .theme-dark .mc-type-pasta {
230
230
  color: #f5f1e8;
231
231
  }
232
232
 
@@ -244,7 +244,7 @@
244
244
  margin-bottom: 1rem;
245
245
  }
246
246
 
247
- :global(.theme-dark) .mc-bodegon-svg {
247
+ .theme-dark .mc-bodegon-svg {
248
248
  border-color: rgba(255, 255, 255, 0.1);
249
249
  background: rgba(10, 10, 10, 0.3);
250
250
  }
@@ -275,7 +275,7 @@
275
275
  color: #57534e;
276
276
  }
277
277
 
278
- :global(.theme-dark) .mc-quantity-display {
278
+ .theme-dark .mc-quantity-display {
279
279
  color: #a8a29e;
280
280
  }
281
281
 
@@ -297,7 +297,7 @@
297
297
  border: 1px solid #e7e5e4;
298
298
  }
299
299
 
300
- :global(.theme-dark) .mc-complementary {
300
+ .theme-dark .mc-complementary {
301
301
  background: rgba(40, 35, 30, 0.5);
302
302
  border-color: rgba(255, 255, 255, 0.1);
303
303
  }
@@ -312,7 +312,7 @@
312
312
  margin-bottom: 0.75rem;
313
313
  }
314
314
 
315
- :global(.theme-dark) .mc-complementary-header {
315
+ .theme-dark .mc-complementary-header {
316
316
  color: #a8a29e;
317
317
  }
318
318
 
@@ -340,7 +340,7 @@
340
340
  min-width: 4rem;
341
341
  }
342
342
 
343
- :global(.theme-dark) .mc-comp-label {
343
+ .theme-dark .mc-comp-label {
344
344
  color: #f5f1e8;
345
345
  }
346
346
 
@@ -359,7 +359,7 @@
359
359
  color: #78716c;
360
360
  }
361
361
 
362
- :global(.theme-dark) .mc-ratio-row {
362
+ .theme-dark .mc-ratio-row {
363
363
  color: #a8a29e;
364
364
  }
365
365
 
@@ -368,7 +368,7 @@
368
368
  color: #292524;
369
369
  }
370
370
 
371
- :global(.theme-dark) .mc-ratio-value {
371
+ .theme-dark .mc-ratio-value {
372
372
  color: #f5f1e8;
373
373
  }
374
374
 
@@ -381,7 +381,7 @@
381
381
  margin-bottom: 1.5rem;
382
382
  }
383
383
 
384
- :global(.theme-dark) .mc-wall-svg {
384
+ .theme-dark .mc-wall-svg {
385
385
  border-color: rgba(255, 255, 255, 0.1);
386
386
  background: #0a0a0a;
387
387
  }
@@ -404,7 +404,7 @@
404
404
  font-weight: 600;
405
405
  }
406
406
 
407
- :global(.theme-dark) .mc-coverage-label {
407
+ .theme-dark .mc-coverage-label {
408
408
  color: #a8a29e;
409
409
  }
410
410
 
@@ -436,7 +436,7 @@
436
436
  font-size: 0.875rem;
437
437
  }
438
438
 
439
- :global(.theme-dark) .mc-detail-row {
439
+ .theme-dark .mc-detail-row {
440
440
  border-bottom-color: rgba(255, 255, 255, 0.05);
441
441
  }
442
442
 
@@ -449,7 +449,7 @@
449
449
  font-weight: 500;
450
450
  }
451
451
 
452
- :global(.theme-dark) .mc-detail-label {
452
+ .theme-dark .mc-detail-label {
453
453
  color: #a8a29e;
454
454
  }
455
455
 
@@ -458,7 +458,7 @@
458
458
  color: #292524;
459
459
  }
460
460
 
461
- :global(.theme-dark) .mc-detail-value {
461
+ .theme-dark .mc-detail-value {
462
462
  color: #f5f1e8;
463
463
  }
464
464
 
@@ -476,7 +476,7 @@
476
476
  position: relative;
477
477
  }
478
478
 
479
- :global(.theme-dark) .mc-section-title {
479
+ .theme-dark .mc-section-title {
480
480
  color: #f5f1e8;
481
481
  }
482
482
 
@@ -506,7 +506,7 @@
506
506
  transform: scale(0.98);
507
507
  }
508
508
 
509
- :global(.theme-dark) .mc-grain-card {
509
+ .theme-dark .mc-grain-card {
510
510
  background: #1c1917;
511
511
  border-color: rgba(255, 255, 255, 0.1);
512
512
  }
@@ -524,7 +524,7 @@
524
524
  background: #fff;
525
525
  }
526
526
 
527
- :global(.theme-dark) .mc-grain-card.mc-active {
527
+ .theme-dark .mc-grain-card.mc-active {
528
528
  background: #292524;
529
529
  border-color: #c1694f;
530
530
  box-shadow: 0 8px 32px rgba(193, 105, 79, 0.3);
@@ -542,7 +542,7 @@
542
542
  margin: 0 0 0.5rem;
543
543
  }
544
544
 
545
- :global(.theme-dark) .mc-grain-title {
545
+ .theme-dark .mc-grain-title {
546
546
  color: #f5f1e8;
547
547
  }
548
548
 
@@ -552,7 +552,7 @@
552
552
  font-weight: 500;
553
553
  }
554
554
 
555
- :global(.theme-dark) .mc-grain-subtitle {
555
+ .theme-dark .mc-grain-subtitle {
556
556
  color: #a8a29e;
557
557
  }
558
558
 
@@ -564,7 +564,7 @@
564
564
  border: 1px solid #e7e5e4;
565
565
  }
566
566
 
567
- :global(.theme-dark) .mc-grain-visual {
567
+ .theme-dark .mc-grain-visual {
568
568
  background: #0a0a0a;
569
569
  border-color: rgba(255, 255, 255, 0.05);
570
570
  }
@@ -589,7 +589,7 @@
589
589
  border-bottom: 1px solid #e7e5e4;
590
590
  }
591
591
 
592
- :global(.theme-dark) .mc-spec-item {
592
+ .theme-dark .mc-spec-item {
593
593
  border-bottom-color: rgba(255, 255, 255, 0.05);
594
594
  }
595
595
 
@@ -603,7 +603,7 @@
603
603
  font-weight: 500;
604
604
  }
605
605
 
606
- :global(.theme-dark) .mc-spec-label {
606
+ .theme-dark .mc-spec-label {
607
607
  color: #a8a29e;
608
608
  }
609
609
 
@@ -613,6 +613,6 @@
613
613
  font-weight: 600;
614
614
  }
615
615
 
616
- :global(.theme-dark) .mc-spec-value {
616
+ .theme-dark .mc-spec-value {
617
617
  color: #f5f1e8;
618
618
  }
@@ -6,9 +6,10 @@ import type { KnownLocale } from '../../types';
6
6
  interface Props {
7
7
  locale?: KnownLocale;
8
8
  }
9
+
9
10
  const { locale = 'es' } = Astro.props;
10
11
  const content = await mortarCalculator.i18n[locale]?.();
11
12
  if (!content) return null;
12
13
  ---
13
14
 
14
- <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 { passepartoutCalculator } 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 passepartoutCalculator.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
11
4
  ---
12
5
 
13
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,16 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'ISO 9706: Permanence of Paper for Documents',
6
+ url: 'https://www.iso.org/standard/22495.html',
7
+ },
8
+ {
9
+ name: 'PPFA: Professional Picture Framers Association',
10
+ url: 'https://ppfa.com/',
11
+ },
12
+ {
13
+ name: 'Fine Art Trade Guild: Framing Standards',
14
+ url: 'https://www.fineart.co.uk/',
15
+ },
16
+ ];
@@ -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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'passepartout-rechner';
6
7
  const title = 'Passepartout Rechner: Ränder mit optischer Korrektur für Einrahmungen';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Häufig gestellte Fragen',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Technische Referenzen',
76
- bibliography: [
77
- { name: 'ISO 9706: Permanentes Papier für Dokumente', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: Professional Picture Framers Association', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: Framing Standards', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'passepartout-calculator';
6
7
  const title = 'Passepartout Calculator: Mat Board Margins with Optical Center Correction';
@@ -89,21 +90,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Frequently Asked Questions',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Technical References',
93
- bibliography: [
94
- {
95
- name: 'ISO 9706: Permanence of Paper for Documents',
96
- url: 'https://www.iso.org/standard/22495.html',
97
- },
98
- {
99
- name: 'PPFA: Professional Picture Framers Association',
100
- url: 'https://ppfa.com/',
101
- },
102
- {
103
- name: 'Fine Art Trade Guild: Framing Standards',
104
- url: 'https://www.fineart.co.uk/',
105
- },
106
- ],
93
+ bibliography,
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-passepartout';
6
7
  const title = 'Calculadora Passepartout: Márgenes con Corrección Óptica para Enmarcado';
@@ -89,21 +90,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Preguntas Frecuentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referencias Técnicas',
93
- bibliography: [
94
- {
95
- name: 'ISO 9706: Papel permanente para documentos',
96
- url: 'https://www.iso.org/standard/22495.html',
97
- },
98
- {
99
- name: 'PPFA: Professional Picture Framers Association',
100
- url: 'https://ppfa.com/',
101
- },
102
- {
103
- name: 'Fine Art Trade Guild: Framing Standards',
104
- url: 'https://www.fineart.co.uk/',
105
- },
106
- ],
93
+ bibliography,
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculateur-passe-partout';
6
7
  const title = 'Calculateur Passepartout: Marges avec Correction Optique pour Encadrement';
@@ -89,21 +90,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Questions Fréquentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Références Techniques',
93
- bibliography: [
94
- {
95
- name: 'ISO 9706: Permanence du papier pour documents',
96
- url: 'https://www.iso.org/standard/22495.html',
97
- },
98
- {
99
- name: 'PPFA: Professional Picture Framers Association',
100
- url: 'https://ppfa.com/',
101
- },
102
- {
103
- name: 'Fine Art Trade Guild: Normes d\'encadrement',
104
- url: 'https://www.fineart.co.uk/',
105
- },
106
- ],
93
+ bibliography,
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-passepartout';
6
7
  const title = 'Kalkulator Passepartout: Margin dengan Koreksi Optik untuk Pembingkaian';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Pertanyaan Umum',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referensi Teknis',
76
- bibliography: [
77
- { name: 'ISO 9706: Kertas permanen untuk dokumen', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: Professional Picture Framers Association', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: Standar Pembingkaian', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calcolatore-passepartout';
6
7
  const title = 'Calcolatore Passepartout: Margini con Correzione Ottica per Incorniciatura';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Domande Frequenti',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Riferimenti Tecnici',
76
- bibliography: [
77
- { name: 'ISO 9706: Carta permanente per documenti', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: Professional Picture Framers Association', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: Framing Standards', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'passepartout-calculator';
6
7
  const title = 'マット紙計算機:額装用視覚補正マージン';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'よくある質問',
74
75
  faq: faqData,
75
- bibliographyTitle: '技術リファレンス',
76
- bibliography: [
77
- { name: 'ISO 9706: 文書用長期保存紙', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: Professional Picture Framers Association', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: 額装基準', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'passepartout-calculator';
6
7
  const title = '매트지 계산기: 액자 제작을 위한 시각 보정 여백';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: '자주 묻는 질문',
74
75
  faq: faqData,
75
- bibliographyTitle: '기술 참고 자료',
76
- bibliography: [
77
- { name: 'ISO 9706: 문서용 보존지 표준', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: 전문 액자 제작자 협회', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: 액자 제작 표준', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'passepartout-rekenmachine';
6
7
  const title = 'Passepartout Calculator: Marges met Optische Correctie voor Inlijsten';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Veelgestelde Vragen',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Technische Referenties',
76
- bibliography: [
77
- { name: 'ISO 9706: Permanent papier voor documenten', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: Professional Picture Framers Association', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: Framing Standards', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-passe-partout';
6
7
  const title = 'Kalkulator Passepartout: Marginesy z Korekcją Optyczną do Oprawiania';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Często Zadawane Pytania',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referencje Techniczne',
76
- bibliography: [
77
- { name: 'ISO 9706: Trwały papier do dokumentów', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: Professional Picture Framers Association', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: Standardy Oprawiania', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-de-passepartout';
6
7
  const title = 'Calculadora Passepartout: Margens com Correção Ótica para Emolduramento';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Perguntas Frequentes',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referências Técnicas',
76
- bibliography: [
77
- { name: 'ISO 9706: Papel permanente para documentos', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: Professional Picture Framers Association', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: Framing Standards', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-passepartu';
6
7
  const title = 'Калькулятор паспарту: поля с оптической коррекцией для оформления';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Часто задаваемые вопросы',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Технические справочники',
76
- bibliography: [
77
- { name: 'ISO 9706: Долговечная бумага для документов', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: Профессиональная ассоциация оформителей картин', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: Стандарты оформления', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'passepartout-kalkylator';
6
7
  const title = 'Passepartout kalkylator: Marginaler med optisk korrektion för inramning';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Vanliga frågor',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Tekniska referenser',
76
- bibliography: [
77
- { name: 'ISO 9706: Permanent papper för dokument', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: Professional Picture Framers Association', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: Inramningsstandarder', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'paspartu-hesaplayici';
6
7
  const title = 'Paspartu Hesaplayıcı: Çerçeveleme İçin Optik Gözetimli Kenar Boşlukları';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Sıkça Sorulan Sorular',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Teknik Referanslar',
76
- bibliography: [
77
- { name: 'ISO 9706: Belgeler için kalıcı kağıt', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA: Professional Picture Framers Association', url: 'https://ppfa.com/' },
79
- { name: 'Fine Art Trade Guild: Çerçeveleme Standartları', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
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 { PassepartoutCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'passepartout-calculator';
6
7
  const title = '卡纸计算器:具有视觉偏差补偿的装裱边距';
@@ -72,12 +73,7 @@ export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: '常见问题',
74
75
  faq: faqData,
75
- bibliographyTitle: '技术参考',
76
- bibliography: [
77
- { name: 'ISO 9706:文档用永久性纸张', url: 'https://www.iso.org/standard/22495.html' },
78
- { name: 'PPFA:专业画框装裱师协会', url: 'https://ppfa.com/' },
79
- { name: '艺术贸易公会:装裱标准', url: 'https://www.fineart.co.uk/' },
80
- ],
76
+ bibliography,
81
77
  howTo: howToData,
82
78
  schemas: [faqSchema, howToSchema, appSchema],
83
79
  seo: [