@jjlmoya/utils-textiles 1.12.0 → 1.14.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 (244) hide show
  1. package/package.json +1 -1
  2. package/src/pages/[locale]/[slug].astro +30 -14
  3. package/src/tests/locale_completeness.test.ts +0 -33
  4. package/src/tests/shared-test-helpers.ts +56 -0
  5. package/src/tests/tool_exports.test.ts +34 -0
  6. package/src/tool/burnTest/bibliography.astro +2 -10
  7. package/src/tool/burnTest/bibliography.ts +16 -0
  8. package/src/tool/burnTest/i18n/de.ts +2 -16
  9. package/src/tool/burnTest/i18n/en.ts +2 -16
  10. package/src/tool/burnTest/i18n/es.ts +2 -16
  11. package/src/tool/burnTest/i18n/fr.ts +2 -16
  12. package/src/tool/burnTest/i18n/id.ts +2 -16
  13. package/src/tool/burnTest/i18n/it.ts +2 -16
  14. package/src/tool/burnTest/i18n/ja.ts +2 -16
  15. package/src/tool/burnTest/i18n/ko.ts +2 -16
  16. package/src/tool/burnTest/i18n/nl.ts +2 -16
  17. package/src/tool/burnTest/i18n/pl.ts +2 -16
  18. package/src/tool/burnTest/i18n/pt.ts +2 -16
  19. package/src/tool/burnTest/i18n/ru.ts +2 -16
  20. package/src/tool/burnTest/i18n/sv.ts +2 -16
  21. package/src/tool/burnTest/i18n/tr.ts +2 -16
  22. package/src/tool/burnTest/i18n/zh.ts +2 -16
  23. package/src/tool/burnTest/index.ts +1 -0
  24. package/src/tool/burnTest/seo.astro +2 -27
  25. package/src/tool/burnTest/textile-burn-test.css +11 -11
  26. package/src/tool/clothingSizeConverter/bibliography.astro +2 -10
  27. package/src/tool/clothingSizeConverter/bibliography.ts +10 -0
  28. package/src/tool/clothingSizeConverter/clothing-size-converter.css +13 -13
  29. package/src/tool/clothingSizeConverter/i18n/de.ts +2 -10
  30. package/src/tool/clothingSizeConverter/i18n/en.ts +2 -10
  31. package/src/tool/clothingSizeConverter/i18n/es.ts +2 -10
  32. package/src/tool/clothingSizeConverter/i18n/fr.ts +2 -10
  33. package/src/tool/clothingSizeConverter/i18n/id.ts +2 -10
  34. package/src/tool/clothingSizeConverter/i18n/it.ts +2 -10
  35. package/src/tool/clothingSizeConverter/i18n/ja.ts +2 -10
  36. package/src/tool/clothingSizeConverter/i18n/ko.ts +2 -10
  37. package/src/tool/clothingSizeConverter/i18n/nl.ts +2 -10
  38. package/src/tool/clothingSizeConverter/i18n/pl.ts +2 -10
  39. package/src/tool/clothingSizeConverter/i18n/pt.ts +2 -10
  40. package/src/tool/clothingSizeConverter/i18n/ru.ts +2 -10
  41. package/src/tool/clothingSizeConverter/i18n/sv.ts +2 -10
  42. package/src/tool/clothingSizeConverter/i18n/tr.ts +2 -10
  43. package/src/tool/clothingSizeConverter/i18n/zh.ts +2 -10
  44. package/src/tool/clothingSizeConverter/index.ts +1 -0
  45. package/src/tool/clothingSizeConverter/seo.astro +2 -27
  46. package/src/tool/fabricProjectCalculator/bibliography.astro +2 -10
  47. package/src/tool/fabricProjectCalculator/bibliography.ts +16 -0
  48. package/src/tool/fabricProjectCalculator/fabric-project-calculator.css +12 -12
  49. package/src/tool/fabricProjectCalculator/i18n/de.ts +2 -16
  50. package/src/tool/fabricProjectCalculator/i18n/en.ts +2 -16
  51. package/src/tool/fabricProjectCalculator/i18n/es.ts +2 -16
  52. package/src/tool/fabricProjectCalculator/i18n/fr.ts +2 -16
  53. package/src/tool/fabricProjectCalculator/i18n/id.ts +2 -16
  54. package/src/tool/fabricProjectCalculator/i18n/it.ts +2 -16
  55. package/src/tool/fabricProjectCalculator/i18n/ja.ts +2 -16
  56. package/src/tool/fabricProjectCalculator/i18n/ko.ts +2 -16
  57. package/src/tool/fabricProjectCalculator/i18n/nl.ts +2 -16
  58. package/src/tool/fabricProjectCalculator/i18n/pl.ts +2 -16
  59. package/src/tool/fabricProjectCalculator/i18n/pt.ts +2 -16
  60. package/src/tool/fabricProjectCalculator/i18n/ru.ts +2 -16
  61. package/src/tool/fabricProjectCalculator/i18n/sv.ts +2 -16
  62. package/src/tool/fabricProjectCalculator/i18n/tr.ts +2 -16
  63. package/src/tool/fabricProjectCalculator/i18n/zh.ts +2 -16
  64. package/src/tool/fabricProjectCalculator/index.ts +1 -0
  65. package/src/tool/fabricProjectCalculator/seo.astro +2 -27
  66. package/src/tool/fabricTruth/bibliography.astro +2 -10
  67. package/src/tool/fabricTruth/bibliography.ts +16 -0
  68. package/src/tool/fabricTruth/fabric-truthfulness.css +11 -11
  69. package/src/tool/fabricTruth/i18n/de.ts +2 -16
  70. package/src/tool/fabricTruth/i18n/en.ts +2 -16
  71. package/src/tool/fabricTruth/i18n/es.ts +2 -16
  72. package/src/tool/fabricTruth/i18n/fr.ts +2 -16
  73. package/src/tool/fabricTruth/i18n/id.ts +2 -16
  74. package/src/tool/fabricTruth/i18n/it.ts +2 -16
  75. package/src/tool/fabricTruth/i18n/ja.ts +2 -16
  76. package/src/tool/fabricTruth/i18n/ko.ts +2 -16
  77. package/src/tool/fabricTruth/i18n/nl.ts +2 -16
  78. package/src/tool/fabricTruth/i18n/pl.ts +2 -16
  79. package/src/tool/fabricTruth/i18n/pt.ts +2 -16
  80. package/src/tool/fabricTruth/i18n/ru.ts +2 -16
  81. package/src/tool/fabricTruth/i18n/sv.ts +2 -16
  82. package/src/tool/fabricTruth/i18n/tr.ts +2 -16
  83. package/src/tool/fabricTruth/i18n/zh.ts +2 -16
  84. package/src/tool/fabricTruth/index.ts +1 -0
  85. package/src/tool/fabricTruth/seo.astro +2 -27
  86. package/src/tool/fiberPrep/bibliography.astro +2 -10
  87. package/src/tool/fiberPrep/bibliography.ts +12 -0
  88. package/src/tool/fiberPrep/i18n/de.ts +2 -12
  89. package/src/tool/fiberPrep/i18n/en.ts +2 -12
  90. package/src/tool/fiberPrep/i18n/es.ts +2 -12
  91. package/src/tool/fiberPrep/i18n/fr.ts +2 -12
  92. package/src/tool/fiberPrep/i18n/id.ts +2 -12
  93. package/src/tool/fiberPrep/i18n/it.ts +2 -12
  94. package/src/tool/fiberPrep/i18n/ja.ts +2 -12
  95. package/src/tool/fiberPrep/i18n/ko.ts +2 -12
  96. package/src/tool/fiberPrep/i18n/nl.ts +2 -12
  97. package/src/tool/fiberPrep/i18n/pl.ts +2 -12
  98. package/src/tool/fiberPrep/i18n/pt.ts +2 -12
  99. package/src/tool/fiberPrep/i18n/ru.ts +2 -12
  100. package/src/tool/fiberPrep/i18n/sv.ts +2 -12
  101. package/src/tool/fiberPrep/i18n/tr.ts +2 -12
  102. package/src/tool/fiberPrep/i18n/zh.ts +2 -12
  103. package/src/tool/fiberPrep/index.ts +1 -0
  104. package/src/tool/fiberPrep/seo.astro +2 -27
  105. package/src/tool/knittingGauge/bibliography.astro +2 -10
  106. package/src/tool/knittingGauge/bibliography.ts +12 -0
  107. package/src/tool/knittingGauge/i18n/de.ts +2 -12
  108. package/src/tool/knittingGauge/i18n/en.ts +2 -12
  109. package/src/tool/knittingGauge/i18n/es.ts +2 -12
  110. package/src/tool/knittingGauge/i18n/fr.ts +2 -12
  111. package/src/tool/knittingGauge/i18n/id.ts +2 -12
  112. package/src/tool/knittingGauge/i18n/it.ts +2 -12
  113. package/src/tool/knittingGauge/i18n/ja.ts +2 -12
  114. package/src/tool/knittingGauge/i18n/ko.ts +2 -12
  115. package/src/tool/knittingGauge/i18n/nl.ts +2 -12
  116. package/src/tool/knittingGauge/i18n/pl.ts +2 -12
  117. package/src/tool/knittingGauge/i18n/pt.ts +2 -12
  118. package/src/tool/knittingGauge/i18n/ru.ts +2 -12
  119. package/src/tool/knittingGauge/i18n/sv.ts +2 -12
  120. package/src/tool/knittingGauge/i18n/tr.ts +2 -12
  121. package/src/tool/knittingGauge/i18n/zh.ts +2 -12
  122. package/src/tool/knittingGauge/index.ts +1 -0
  123. package/src/tool/knittingGauge/knitting-gauge-calculator.css +9 -9
  124. package/src/tool/knittingGauge/seo.astro +2 -27
  125. package/src/tool/laundryGuide/bibliography.astro +2 -10
  126. package/src/tool/laundryGuide/bibliography.ts +6 -0
  127. package/src/tool/laundryGuide/i18n/de.ts +2 -6
  128. package/src/tool/laundryGuide/i18n/en.ts +2 -6
  129. package/src/tool/laundryGuide/i18n/es.ts +2 -6
  130. package/src/tool/laundryGuide/i18n/fr.ts +2 -6
  131. package/src/tool/laundryGuide/i18n/id.ts +2 -6
  132. package/src/tool/laundryGuide/i18n/it.ts +2 -6
  133. package/src/tool/laundryGuide/i18n/ja.ts +2 -6
  134. package/src/tool/laundryGuide/i18n/ko.ts +2 -6
  135. package/src/tool/laundryGuide/i18n/nl.ts +2 -6
  136. package/src/tool/laundryGuide/i18n/pl.ts +2 -6
  137. package/src/tool/laundryGuide/i18n/pt.ts +2 -6
  138. package/src/tool/laundryGuide/i18n/ru.ts +2 -6
  139. package/src/tool/laundryGuide/i18n/sv.ts +2 -6
  140. package/src/tool/laundryGuide/i18n/tr.ts +2 -6
  141. package/src/tool/laundryGuide/i18n/zh.ts +2 -6
  142. package/src/tool/laundryGuide/index.ts +1 -0
  143. package/src/tool/laundryGuide/seo.astro +2 -27
  144. package/src/tool/needleConverter/bibliography.astro +2 -10
  145. package/src/tool/needleConverter/bibliography.ts +12 -0
  146. package/src/tool/needleConverter/i18n/de.ts +2 -12
  147. package/src/tool/needleConverter/i18n/en.ts +2 -12
  148. package/src/tool/needleConverter/i18n/es.ts +2 -12
  149. package/src/tool/needleConverter/i18n/fr.ts +2 -12
  150. package/src/tool/needleConverter/i18n/id.ts +2 -12
  151. package/src/tool/needleConverter/i18n/it.ts +2 -12
  152. package/src/tool/needleConverter/i18n/ja.ts +2 -12
  153. package/src/tool/needleConverter/i18n/ko.ts +2 -12
  154. package/src/tool/needleConverter/i18n/nl.ts +2 -12
  155. package/src/tool/needleConverter/i18n/pl.ts +2 -12
  156. package/src/tool/needleConverter/i18n/pt.ts +2 -12
  157. package/src/tool/needleConverter/i18n/ru.ts +2 -12
  158. package/src/tool/needleConverter/i18n/sv.ts +2 -12
  159. package/src/tool/needleConverter/i18n/tr.ts +2 -12
  160. package/src/tool/needleConverter/i18n/zh.ts +2 -12
  161. package/src/tool/needleConverter/index.ts +1 -0
  162. package/src/tool/needleConverter/knitting-needle-converter.css +13 -13
  163. package/src/tool/needleConverter/seo.astro +1 -1
  164. package/src/tool/sewingPatternScaler/bibliography.astro +2 -10
  165. package/src/tool/sewingPatternScaler/bibliography.ts +12 -0
  166. package/src/tool/sewingPatternScaler/i18n/de.ts +2 -12
  167. package/src/tool/sewingPatternScaler/i18n/en.ts +2 -12
  168. package/src/tool/sewingPatternScaler/i18n/es.ts +2 -12
  169. package/src/tool/sewingPatternScaler/i18n/fr.ts +2 -12
  170. package/src/tool/sewingPatternScaler/i18n/id.ts +2 -12
  171. package/src/tool/sewingPatternScaler/i18n/it.ts +2 -12
  172. package/src/tool/sewingPatternScaler/i18n/ja.ts +2 -12
  173. package/src/tool/sewingPatternScaler/i18n/ko.ts +2 -12
  174. package/src/tool/sewingPatternScaler/i18n/nl.ts +2 -12
  175. package/src/tool/sewingPatternScaler/i18n/pl.ts +2 -12
  176. package/src/tool/sewingPatternScaler/i18n/pt.ts +2 -12
  177. package/src/tool/sewingPatternScaler/i18n/ru.ts +2 -12
  178. package/src/tool/sewingPatternScaler/i18n/sv.ts +2 -12
  179. package/src/tool/sewingPatternScaler/i18n/tr.ts +2 -12
  180. package/src/tool/sewingPatternScaler/i18n/zh.ts +2 -12
  181. package/src/tool/sewingPatternScaler/index.ts +1 -0
  182. package/src/tool/sewingPatternScaler/seo.astro +2 -36
  183. package/src/tool/sewingPatternScaler/sewing-pattern-scaler.css +8 -8
  184. package/src/tool/shoeSizeConverter/bibliography.astro +2 -10
  185. package/src/tool/shoeSizeConverter/bibliography.ts +7 -0
  186. package/src/tool/shoeSizeConverter/i18n/de.ts +2 -7
  187. package/src/tool/shoeSizeConverter/i18n/en.ts +2 -7
  188. package/src/tool/shoeSizeConverter/i18n/es.ts +2 -7
  189. package/src/tool/shoeSizeConverter/i18n/fr.ts +2 -7
  190. package/src/tool/shoeSizeConverter/i18n/id.ts +2 -7
  191. package/src/tool/shoeSizeConverter/i18n/it.ts +2 -7
  192. package/src/tool/shoeSizeConverter/i18n/ja.ts +2 -7
  193. package/src/tool/shoeSizeConverter/i18n/ko.ts +2 -7
  194. package/src/tool/shoeSizeConverter/i18n/nl.ts +2 -7
  195. package/src/tool/shoeSizeConverter/i18n/pl.ts +2 -7
  196. package/src/tool/shoeSizeConverter/i18n/pt.ts +2 -7
  197. package/src/tool/shoeSizeConverter/i18n/ru.ts +2 -7
  198. package/src/tool/shoeSizeConverter/i18n/sv.ts +2 -7
  199. package/src/tool/shoeSizeConverter/i18n/tr.ts +2 -7
  200. package/src/tool/shoeSizeConverter/i18n/zh.ts +2 -7
  201. package/src/tool/shoeSizeConverter/index.ts +1 -0
  202. package/src/tool/shoeSizeConverter/seo.astro +2 -27
  203. package/src/tool/shoeSizeConverter/shoe-size-converter.css +3 -3
  204. package/src/tool/stainChemistry/bibliography.astro +2 -10
  205. package/src/tool/stainChemistry/bibliography.ts +16 -0
  206. package/src/tool/stainChemistry/i18n/de.ts +2 -16
  207. package/src/tool/stainChemistry/i18n/en.ts +2 -16
  208. package/src/tool/stainChemistry/i18n/es.ts +2 -16
  209. package/src/tool/stainChemistry/i18n/fr.ts +2 -16
  210. package/src/tool/stainChemistry/i18n/id.ts +2 -16
  211. package/src/tool/stainChemistry/i18n/it.ts +2 -16
  212. package/src/tool/stainChemistry/i18n/ja.ts +2 -16
  213. package/src/tool/stainChemistry/i18n/ko.ts +2 -16
  214. package/src/tool/stainChemistry/i18n/nl.ts +2 -16
  215. package/src/tool/stainChemistry/i18n/pl.ts +2 -16
  216. package/src/tool/stainChemistry/i18n/pt.ts +2 -16
  217. package/src/tool/stainChemistry/i18n/ru.ts +2 -16
  218. package/src/tool/stainChemistry/i18n/sv.ts +2 -16
  219. package/src/tool/stainChemistry/i18n/tr.ts +2 -16
  220. package/src/tool/stainChemistry/i18n/zh.ts +2 -16
  221. package/src/tool/stainChemistry/index.ts +1 -0
  222. package/src/tool/stainChemistry/seo.astro +2 -27
  223. package/src/tool/stainChemistry/stain-chemical-protocol.css +3 -3
  224. package/src/tool/yarnCalculator/bibliography.astro +2 -10
  225. package/src/tool/yarnCalculator/bibliography.ts +16 -0
  226. package/src/tool/yarnCalculator/i18n/de.ts +2 -16
  227. package/src/tool/yarnCalculator/i18n/en.ts +2 -16
  228. package/src/tool/yarnCalculator/i18n/es.ts +2 -16
  229. package/src/tool/yarnCalculator/i18n/fr.ts +2 -16
  230. package/src/tool/yarnCalculator/i18n/id.ts +2 -16
  231. package/src/tool/yarnCalculator/i18n/it.ts +2 -16
  232. package/src/tool/yarnCalculator/i18n/ja.ts +2 -16
  233. package/src/tool/yarnCalculator/i18n/ko.ts +2 -16
  234. package/src/tool/yarnCalculator/i18n/nl.ts +2 -16
  235. package/src/tool/yarnCalculator/i18n/pl.ts +2 -16
  236. package/src/tool/yarnCalculator/i18n/pt.ts +2 -16
  237. package/src/tool/yarnCalculator/i18n/ru.ts +2 -16
  238. package/src/tool/yarnCalculator/i18n/sv.ts +2 -16
  239. package/src/tool/yarnCalculator/i18n/tr.ts +2 -16
  240. package/src/tool/yarnCalculator/i18n/zh.ts +2 -16
  241. package/src/tool/yarnCalculator/index.ts +1 -0
  242. package/src/tool/yarnCalculator/seo.astro +2 -1
  243. package/src/tool/yarnCalculator/yarn-calculator.css +7 -7
  244. package/src/types.ts +2 -4
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'tygatatgangskalkylator-projekt';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Vanliga frågor',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliografi',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'kumas-ihtiyaci-hesaplama-proje';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Sıkça Sorulan Sorular',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Kaynakça',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'fabric-project-calculator';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: '常见问题',
90
90
  faq: faqData,
91
- bibliographyTitle: '参考文献',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,3 +1,4 @@
1
+ import type { ToolDefinition } from '../../types';
1
2
  import { fabricProjectCalculator } from './entry';
2
3
  export * from './entry';
3
4
  export const FABRIC_PROJECT_CALCULATOR_TOOL: ToolDefinition = {
@@ -1,11 +1,5 @@
1
1
  ---
2
- import {
3
- SEOTitle,
4
- SEOCard,
5
- SEOTip,
6
- SEOList,
7
- SEOArticle
8
- } from '@jjlmoya/utils-shared';
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
9
3
  import { fabricProjectCalculator } from './index';
10
4
  import type { KnownLocale } from '../../types';
11
5
 
@@ -16,25 +10,6 @@ interface Props {
16
10
  const { locale = 'es' } = Astro.props;
17
11
  const content = await fabricProjectCalculator.i18n[locale]?.();
18
12
  if (!content) return null;
19
-
20
- const { seo } = content;
21
13
  ---
22
14
 
23
- <SEOArticle>
24
- {seo.map((section: any) => {
25
- switch (section.type) {
26
- case 'title':
27
- return <SEOTitle title={section.text} level={section.level || 2} />;
28
- case 'paragraph':
29
- return <p set:html={section.html} />;
30
- case 'list':
31
- return <SEOList items={section.items} />;
32
- case 'card':
33
- return <SEOCard title={section.title} icon={section.icon}><Fragment set:html={section.html} /></SEOCard>;
34
- case 'tip':
35
- return <SEOTip title={section.title}><Fragment set:html={section.html} /></SEOTip>;
36
- default:
37
- return null;
38
- }
39
- })}
40
- </SEOArticle>
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { fabricTruth } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
-
10
- const { locale = 'es' } = Astro.props;
11
- const content = await fabricTruth.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {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: 'FTC - Textile Labeling Guide',
6
+ url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
7
+ },
8
+ {
9
+ name: 'European Commission - Textile Regulation',
10
+ url: 'https://ec.europa.eu/growth/tools-databases/nando/',
11
+ },
12
+ {
13
+ name: 'ISO 3758:2012 - Textile Care Symbols',
14
+ url: 'https://www.iso.org/standard/60465.html',
15
+ },
16
+ ];
@@ -171,13 +171,13 @@
171
171
  transition: all 0.2s;
172
172
  }
173
173
 
174
- :global(.total-badge.total-complete) {
174
+ .total-badge.total-complete {
175
175
  background: rgba(16, 185, 129, 0.1);
176
176
  color: #10b981;
177
177
  border-color: #10b981;
178
178
  }
179
179
 
180
- :global(.total-badge.total-error) {
180
+ .total-badge.total-error {
181
181
  background: rgba(239, 68, 68, 0.1);
182
182
  color: #ef4444;
183
183
  border-color: #ef4444;
@@ -226,11 +226,11 @@
226
226
  animation: fade-in 0.5s ease;
227
227
  }
228
228
 
229
- :global(.result-content.hidden) {
229
+ .result-content.hidden {
230
230
  display: none;
231
231
  }
232
232
 
233
- :global(.empty-state.hidden) {
233
+ .empty-state.hidden {
234
234
  display: none;
235
235
  }
236
236
 
@@ -250,43 +250,43 @@
250
250
  min-height: 100px;
251
251
  }
252
252
 
253
- :global(.verdict-card.color-red) {
253
+ .verdict-card.color-red {
254
254
  background: rgba(239, 68, 68, 0.1);
255
255
  color: #ef4444;
256
256
  border-left-color: #dc2626;
257
257
  }
258
258
 
259
- :global(.verdict-card.color-amber) {
259
+ .verdict-card.color-amber {
260
260
  background: rgba(251, 146, 60, 0.1);
261
261
  color: #f97316;
262
262
  border-left-color: #ea580c;
263
263
  }
264
264
 
265
- :global(.verdict-card.color-yellow) {
265
+ .verdict-card.color-yellow {
266
266
  background: rgba(234, 179, 8, 0.1);
267
267
  color: #ca8a04;
268
268
  border-left-color: #b45309;
269
269
  }
270
270
 
271
- :global(.verdict-card.color-emerald) {
271
+ .verdict-card.color-emerald {
272
272
  background: rgba(16, 185, 129, 0.1);
273
273
  color: #059669;
274
274
  border-left-color: #047857;
275
275
  }
276
276
 
277
- :global(.verdict-card.color-blue) {
277
+ .verdict-card.color-blue {
278
278
  background: rgba(59, 130, 246, 0.1);
279
279
  color: #2563eb;
280
280
  border-left-color: #1d4ed8;
281
281
  }
282
282
 
283
- :global(.verdict-card.color-indigo) {
283
+ .verdict-card.color-indigo {
284
284
  background: rgba(99, 102, 241, 0.1);
285
285
  color: #4f46e5;
286
286
  border-left-color: #4338ca;
287
287
  }
288
288
 
289
- :global(.verdict-card.color-gray) {
289
+ .verdict-card.color-gray {
290
290
  background: rgba(107, 114, 128, 0.1);
291
291
  color: #6b7280;
292
292
  border-left-color: #4b5563;
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'textil-wahrheit-faseranalyse';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Auf links waschen', html: 'Schützt Farben und Stickereien vor der Reibung mit der Trommel und anderen Kleidungsstücken.' },
261
262
  { type: 'paragraph', html: '"Weniger kaufen, besser wählen und langlebig machen." — Dieser Analysator ist Ihr erster Schritt zu einem bewussten und hochwertigen Kleiderschrank.' },
262
263
  ],
263
- faqTitle: 'Häufig gestellte Fragen',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Literaturhinweise',
266
- bibliography: [
267
- {
268
- name: 'FTC - Leitfaden zur Textilkennzeichnung',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'Europäische Kommission - Textilregulierung',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Textilpflegesymbole',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'fabric-truthfulness';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Inside Out Washing', html: 'Protects color and embroidery from rubbing against the drum and other garments.' },
261
262
  { type: 'paragraph', html: '"Buy less, choose better, and make it last." — This calculator is your first step towards a conscious and high-quality wardrobe.' },
262
263
  ],
263
- faqTitle: 'Frequently Asked Questions',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Bibliography',
266
- bibliography: [
267
- {
268
- name: 'FTC - Textile Labeling Guide',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'European Commission - Textile Regulation',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Textile Care Symbols',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'veracidad-textil';
@@ -260,7 +261,6 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Lavado del Revés', html: 'Protege el color y los bordados del roce con el tambor y otras prendas.' },
261
262
  { type: 'paragraph', html: '"Comprar menos, elegir mejor y hacerlo durar." — Esta calculadora es tu primer paso hacia un armario consciente y de alta calidad.' },
262
263
  ],
263
- faqTitle: 'Preguntas Frecuentes',
264
264
  faq: [
265
265
  {
266
266
  question: '¿Qué es el "Greenwashing" en la moda?',
@@ -279,21 +279,7 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
279
279
  answer: 'Busca composiciones monomateriales (100% Algodón, 100% Lana). Las mezclas complejas suelen usarse para abaratar costes de producción y ocultan fibras sintéticas bajo nombres comerciales atractivos.',
280
280
  },
281
281
  ],
282
- bibliographyTitle: 'Bibliografía',
283
- bibliography: [
284
- {
285
- name: 'FTC - Guía de Etiquetado Textil',
286
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
287
- },
288
- {
289
- name: 'Comisión Europea - Regulación Textil',
290
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
291
- },
292
- {
293
- name: 'ISO 3758:2012 - Símbolos de Cuidado Textil',
294
- url: 'https://www.iso.org/standard/60465.html',
295
- },
296
- ],
282
+ bibliography: bibliography,
297
283
  howTo: [
298
284
  {
299
285
  name: 'Localizar la etiqueta interna',
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'verite-textile';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Lavage à l\'envers', html: 'Protège la couleur et les broderies du frottement avec le tambour et d\'autres vêtements.' },
261
262
  { type: 'paragraph', html: '"Acheter moins, choisir mieux et faire durer." — Ce calculateur est votre première étape vers une garde-robe consciente et de haute qualité.' },
262
263
  ],
263
- faqTitle: 'Foire Aux Questions',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Bibliographie',
266
- bibliography: [
267
- {
268
- name: 'FTC - Guide d\'Étiquetage Textile',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'Commission Européenne - Réglementation Textile',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Symboles d\'Entretien Textile',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'kejujuran-tekstil-analisis-serat';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Cuci dengan Posisi Terbalik', html: 'Melindungi warna dan sulaman dari gesekan dengan drum mesin cuci dan pakaian lainnya.' },
261
262
  { type: 'paragraph', html: '"Beli lebih sedikit, pilih lebih baik, dan buat bertahan lama." — Alat analisis ini adalah langkah pertama Anda menuju lemari pakaian yang sadar dan berkualitas tinggi.' },
262
263
  ],
263
- faqTitle: 'Pertanyaan yang Sering Diajukan',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Referensi',
266
- bibliography: [
267
- {
268
- name: 'FTC - Panduan Pelabelan Tekstil',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'Komisi Eropa - Regulasi Tekstil',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Simbol Perawatan Tekstil',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'veridicita-tessile-analisi-fibre';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Lavaggio al Rovescio', html: 'Protegge il colore e i ricami dallo sfregamento con il cestello e altri capi.' },
261
262
  { type: 'paragraph', html: '"Comprare meno, scegliere meglio e farlo durare." — Questo analizzatore è il tuo primo passo verso un armadio consapevole e di alta qualità.' },
262
263
  ],
263
- faqTitle: 'Domande Frequenti',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Bibliografia',
266
- bibliography: [
267
- {
268
- name: 'FTC - Guida all\'Etichettatura Tessile',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'Commissione Europea - Regolamentazione Tessile',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Simboli di Manutenzione Tessile',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'fabric-truthfulness';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: '裏返して洗う', html: '色あせや刺繍を、洗濯槽や他の衣類との摩擦から守ります。' },
261
262
  { type: 'paragraph', html: '「少なく買い、より良く選び、長持ちさせる」 —— この分析ツールは、意識的で高品質なワードローブへの第一歩です。' },
262
263
  ],
263
- faqTitle: 'よくある質問',
264
264
  faq: faqData,
265
- bibliographyTitle: '参考文献',
266
- bibliography: [
267
- {
268
- name: 'FTC - 繊維製品表示ガイド',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: '欧州委員会 - 繊維規制',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - 織物の取扱い絵表示',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'fabric-truthfulness';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: '뒤집어서 세탁하기', html: '세탁조나 다른 옷과의 마찰로부터 색상과 자수를 보호합니다.' },
261
262
  { type: 'paragraph', html: '"적게 사고, 더 잘 고르고, 오래 입기." —— 이 분석 도구는 의식 있고 수준 높은 옷장을 향한 첫걸음입니다.' },
262
263
  ],
263
- faqTitle: '자주 묻는 질문',
264
264
  faq: faqData,
265
- bibliographyTitle: '참고 문헌',
266
- bibliography: [
267
- {
268
- name: 'FTC - 섬유 제품 라벨링 가이드',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: '유럽 위원회 - 섬유 규제',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - 섬유 관리 기호',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'textiel-waarheid-vezelkwaliteit-analyse';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Binnenstebuiten Wassen', html: 'Beschermt kleur en borduursels tegen wrijving met de trommel och andere kledingstappen.' },
261
262
  { type: 'paragraph', html: '"Koop minder, kies beter en laat het lang meegaan." — Deze analysator is je eerste stap naar een bewuste en hoogwaardige garderobe.' },
262
263
  ],
263
- faqTitle: 'Veelgestelde Vragen',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Bibliografie',
266
- bibliography: [
267
- {
268
- name: 'FTC - Gids voor Textieletikettering',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'Europese Commissie - Textielverordening',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Symbolen voor Textielverzorging',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'prawda-tekstylna-analiza-wlokien';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Pranie na lewej stronie', html: 'Chroni kolor i hafty przed ocieraniem o bęben i inne ubrania.' },
261
262
  { type: 'paragraph', html: '"Kupuj mniej, wybieraj lepiej i spraw, by służyło długo." — Ten analizator to Twój pierwszy krok w stronę świadomej i wysokiej jakości garderoby.' },
262
263
  ],
263
- faqTitle: 'Często zadawane pytania',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Bibliografia',
266
- bibliography: [
267
- {
268
- name: 'FTC - Przewodnik po etykietowaniu tekstyliów',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'Komisja Europejska - Regulacje dotyczące tekstyliów',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Symbole konserwacji tekstyliów',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'veracidade-textil-analise-fibras';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Lavagem do Avesso', html: 'Protege a cor e os bordados do roce com o tambor e outras peças.' },
261
262
  { type: 'paragraph', html: '"Comprar menos, escolher melhor e fazê-lo durar." — Esta calculadora é o seu primeiro passo para um armário consciente e de alta qualidade.' },
262
263
  ],
263
- faqTitle: 'Perguntas Frequentes',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Bibliografia',
266
- bibliography: [
267
- {
268
- name: 'FTC - Guia de Etiquetagem Têxtil',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'Comissão Europeia - Regulação Têxtil',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Símbolos de Cuidado Têxtil',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'pravda-o-tkani-analiz-kachestva-volokon';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Стирка наизнанку', html: 'Защищает цвет и вышивку от трения о барабан и другие вещи.' },
261
262
  { type: 'paragraph', html: '"Покупать меньше, выбирать лучше и делать так, чтобы вещь служила долго". — Этот анализатор — ваш первый шаг к осознанному и высококачественному гардеробу.' },
262
263
  ],
263
- faqTitle: 'Часто задаваемые вопросы',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Библиография',
266
- bibliography: [
267
- {
268
- name: 'FTC - Руководство по маркировке текстиля',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'Европейская комиссия - Регулирование текстиля',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Символы по уходу за текстилем',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };