@jjlmoya/utils-textiles 1.1.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.
- package/package.json +60 -0
- package/src/category/i18n/en.ts +76 -0
- package/src/category/i18n/es.ts +76 -0
- package/src/category/i18n/fr.ts +73 -0
- package/src/category/index.ts +17 -0
- package/src/category/seo.astro +15 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +11 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +32 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +146 -0
- package/src/pages/[locale].astro +253 -0
- package/src/pages/index.astro +4 -0
- package/src/tests/faq_count.test.ts +19 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/seo_length.test.ts +22 -0
- package/src/tests/title_separators.test.ts +40 -0
- package/src/tests/tool_validation.test.ts +17 -0
- package/src/tool/burnTest/bibliography.astro +34 -0
- package/src/tool/burnTest/component.astro +602 -0
- package/src/tool/burnTest/i18n/en.ts +225 -0
- package/src/tool/burnTest/i18n/es.ts +225 -0
- package/src/tool/burnTest/i18n/fr.ts +225 -0
- package/src/tool/burnTest/index.ts +34 -0
- package/src/tool/burnTest/logic.ts +3 -0
- package/src/tool/burnTest/seo.astro +40 -0
- package/src/tool/burnTest/ui.ts +36 -0
- package/src/tool/clothingSizeConverter/bibliography.astro +34 -0
- package/src/tool/clothingSizeConverter/component.astro +1226 -0
- package/src/tool/clothingSizeConverter/i18n/en.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/es.ts +356 -0
- package/src/tool/clothingSizeConverter/i18n/fr.ts +356 -0
- package/src/tool/clothingSizeConverter/index.ts +34 -0
- package/src/tool/clothingSizeConverter/logic.ts +30 -0
- package/src/tool/clothingSizeConverter/seo.astro +40 -0
- package/src/tool/clothingSizeConverter/ui.ts +70 -0
- package/src/tool/fabricProjectCalculator/bibliography.astro +19 -0
- package/src/tool/fabricProjectCalculator/component.astro +914 -0
- package/src/tool/fabricProjectCalculator/i18n/en.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/es.ts +250 -0
- package/src/tool/fabricProjectCalculator/i18n/fr.ts +250 -0
- package/src/tool/fabricProjectCalculator/index.ts +34 -0
- package/src/tool/fabricProjectCalculator/logic.ts +89 -0
- package/src/tool/fabricProjectCalculator/seo.astro +40 -0
- package/src/tool/fabricProjectCalculator/ui.ts +57 -0
- package/src/tool/fabricTruth/bibliography.astro +40 -0
- package/src/tool/fabricTruth/component.astro +708 -0
- package/src/tool/fabricTruth/i18n/en.ts +282 -0
- package/src/tool/fabricTruth/i18n/es.ts +316 -0
- package/src/tool/fabricTruth/i18n/fr.ts +282 -0
- package/src/tool/fabricTruth/index.ts +34 -0
- package/src/tool/fabricTruth/logic.ts +91 -0
- package/src/tool/fabricTruth/seo.astro +40 -0
- package/src/tool/fabricTruth/ui.ts +28 -0
- package/src/tool/fiberPrep/bibliography.astro +33 -0
- package/src/tool/fiberPrep/component.astro +987 -0
- package/src/tool/fiberPrep/i18n/en.ts +225 -0
- package/src/tool/fiberPrep/i18n/es.ts +225 -0
- package/src/tool/fiberPrep/i18n/fr.ts +225 -0
- package/src/tool/fiberPrep/index.ts +34 -0
- package/src/tool/fiberPrep/logic.ts +36 -0
- package/src/tool/fiberPrep/seo.astro +40 -0
- package/src/tool/fiberPrep/ui.ts +38 -0
- package/src/tool/knittingGauge/bibliography.astro +14 -0
- package/src/tool/knittingGauge/component.astro +828 -0
- package/src/tool/knittingGauge/i18n/en.ts +234 -0
- package/src/tool/knittingGauge/i18n/es.ts +234 -0
- package/src/tool/knittingGauge/i18n/fr.ts +234 -0
- package/src/tool/knittingGauge/index.ts +34 -0
- package/src/tool/knittingGauge/logic.ts +28 -0
- package/src/tool/knittingGauge/seo.astro +40 -0
- package/src/tool/knittingGauge/ui.ts +41 -0
- package/src/tool/laundryGuide/bibliography.astro +33 -0
- package/src/tool/laundryGuide/component.astro +486 -0
- package/src/tool/laundryGuide/data-en.ts +166 -0
- package/src/tool/laundryGuide/data-es.ts +166 -0
- package/src/tool/laundryGuide/data-fr.ts +103 -0
- package/src/tool/laundryGuide/i18n/en.ts +275 -0
- package/src/tool/laundryGuide/i18n/es.ts +275 -0
- package/src/tool/laundryGuide/i18n/fr.ts +291 -0
- package/src/tool/laundryGuide/index.ts +29 -0
- package/src/tool/laundryGuide/logic.ts +19 -0
- package/src/tool/laundryGuide/seo.astro +40 -0
- package/src/tool/needleConverter/bibliography.astro +14 -0
- package/src/tool/needleConverter/component.astro +518 -0
- package/src/tool/needleConverter/i18n/en.ts +217 -0
- package/src/tool/needleConverter/i18n/es.ts +217 -0
- package/src/tool/needleConverter/i18n/fr.ts +217 -0
- package/src/tool/needleConverter/index.ts +34 -0
- package/src/tool/needleConverter/logic.ts +31 -0
- package/src/tool/needleConverter/seo.astro +15 -0
- package/src/tool/needleConverter/ui.ts +17 -0
- package/src/tool/sewingPatternScaler/bibliography.astro +14 -0
- package/src/tool/sewingPatternScaler/component.astro +550 -0
- package/src/tool/sewingPatternScaler/i18n/en.ts +196 -0
- package/src/tool/sewingPatternScaler/i18n/es.ts +231 -0
- package/src/tool/sewingPatternScaler/i18n/fr.ts +187 -0
- package/src/tool/sewingPatternScaler/index.ts +34 -0
- package/src/tool/sewingPatternScaler/logic.ts +35 -0
- package/src/tool/sewingPatternScaler/seo.astro +49 -0
- package/src/tool/sewingPatternScaler/ui.ts +29 -0
- package/src/tool/shoeSizeConverter/bibliography.astro +34 -0
- package/src/tool/shoeSizeConverter/component.astro +437 -0
- package/src/tool/shoeSizeConverter/i18n/en.ts +188 -0
- package/src/tool/shoeSizeConverter/i18n/es.ts +188 -0
- package/src/tool/shoeSizeConverter/i18n/fr.ts +188 -0
- package/src/tool/shoeSizeConverter/index.ts +34 -0
- package/src/tool/shoeSizeConverter/logic.ts +8 -0
- package/src/tool/shoeSizeConverter/seo.astro +40 -0
- package/src/tool/shoeSizeConverter/ui.ts +21 -0
- package/src/tool/stainChemistry/bibliography.astro +40 -0
- package/src/tool/stainChemistry/component.astro +717 -0
- package/src/tool/stainChemistry/i18n/en.ts +303 -0
- package/src/tool/stainChemistry/i18n/es.ts +300 -0
- package/src/tool/stainChemistry/i18n/fr.ts +310 -0
- package/src/tool/stainChemistry/index.ts +34 -0
- package/src/tool/stainChemistry/logic.ts +11 -0
- package/src/tool/stainChemistry/seo.astro +40 -0
- package/src/tool/stainChemistry/ui.ts +51 -0
- package/src/tool/yarnCalculator/bibliography.astro +19 -0
- package/src/tool/yarnCalculator/component.astro +792 -0
- package/src/tool/yarnCalculator/i18n/en.ts +310 -0
- package/src/tool/yarnCalculator/i18n/es.ts +310 -0
- package/src/tool/yarnCalculator/i18n/fr.ts +310 -0
- package/src/tool/yarnCalculator/index.ts +34 -0
- package/src/tool/yarnCalculator/logic.ts +84 -0
- package/src/tool/yarnCalculator/seo.astro +14 -0
- package/src/tool/yarnCalculator/ui.ts +42 -0
- package/src/tools.ts +16 -0
- package/src/types.ts +72 -0
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { YarnCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'yarn-calculator';
|
|
6
|
+
const title = 'Yarn Calculator: How many metres and balls do I need?';
|
|
7
|
+
const description =
|
|
8
|
+
'Accurately calculate the amount of yarn needed for your knitting and crochet projects based on pattern and size.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Why does crochet use more yarn than knitting?',
|
|
13
|
+
answer:
|
|
14
|
+
'Crochet creates overlapping knots and loops, resulting in a denser, thicker fabric per square centimetre. On average, a crochet project uses 25-35% more yarn than the same project knitted flat.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'What happens if I buy yarn from different dye lots?',
|
|
18
|
+
answer:
|
|
19
|
+
'Even if the colour looks identical in the shop, minimal chemical variations during dyeing can create visible "stripes" in the finished garment when knitted together. It is strongly recommended to buy all yarn at once, checking that the lot code is the same.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'How does tension (gauge) affect final yarn consumption?',
|
|
23
|
+
answer:
|
|
24
|
+
'If you knit loosely, each stitch uses more metres of yarn. If your gauge swatch is larger than the pattern specifies (e.g. 13 stitches instead of 15), your yarn consumption will increase substantially. It is vital to make a gauge swatch first.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'How do I calculate metres if I only have the ball weight?',
|
|
28
|
+
answer:
|
|
29
|
+
'Without the yardage data, it is difficult. Most balls indicate metres on their label. If they do not, search for the yarn name in databases like Ravelry to find the exact length per 50g or 100g.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Select the project',
|
|
36
|
+
text: 'Choose from a sweater, scarf, hat, socks or blanket to load the specific consumption baselines.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Set size and weight',
|
|
40
|
+
text: 'Specify the final dimensions (S, M, L, XL) and the yarn weight you will use (Fingering, DK, Worsted, Bulky).',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Enable multipliers',
|
|
44
|
+
text: 'If your pattern has cables, twists or complex textures, enable the texture switch to add the required supplement.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Get your shopping list',
|
|
48
|
+
text: 'Enter the metres per ball of your chosen yarn to see exactly how many units to add to your cart.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
name: step.name,
|
|
70
|
+
text: step.text,
|
|
71
|
+
})),
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
75
|
+
'@context': 'https://schema.org',
|
|
76
|
+
'@type': 'SoftwareApplication',
|
|
77
|
+
name: title,
|
|
78
|
+
description,
|
|
79
|
+
applicationCategory: 'UtilityApplication',
|
|
80
|
+
operatingSystem: 'All',
|
|
81
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
82
|
+
inLanguage: 'en',
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const content: ToolLocaleContent<YarnCalculatorUI> = {
|
|
86
|
+
slug,
|
|
87
|
+
title,
|
|
88
|
+
description,
|
|
89
|
+
faqTitle: 'Frequently Asked Questions',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliographyTitle: 'Bibliography',
|
|
92
|
+
bibliography: [
|
|
93
|
+
{
|
|
94
|
+
name: 'Craft Yarn Council: Standard Yarn Weights & Yardages',
|
|
95
|
+
url: 'https://www.craftyarncouncil.com/standards/yarn-weight-system',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'Interweave Essentials: Yarn Substitution and Estimation',
|
|
99
|
+
url: 'https://www.interweave.com/article/knitting/yarn-substitution-angelina-take-two/',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'The Woolery: Fibers and Calculation of Yarn Usage',
|
|
103
|
+
url: 'https://woolery.com/blogs/the-woolery-blog/yarn-weight-charts-helpful-guide/',
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
howTo: howToData,
|
|
107
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
108
|
+
seo: [
|
|
109
|
+
{
|
|
110
|
+
type: 'title',
|
|
111
|
+
text: 'Yarn Consumption Guide: How to Calculate Metres and Balls for Your Projects',
|
|
112
|
+
level: 2,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'paragraph',
|
|
116
|
+
html: 'Master knitting logistics and avoid running out of yarn with our technical precision calculator for knitting and crochet. One of the biggest fears for any knitter is <strong>"Yarn Chicken"</strong>: that critical moment at the end of a project where the yarn seems about to run out before casting off the last stitches. This calculator was developed to offer estimations based on industrial yardage and weight standards.',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'stats',
|
|
120
|
+
items: [
|
|
121
|
+
{ value: '+10%', label: 'Safety Margin', icon: 'mdi:security' },
|
|
122
|
+
{ value: 'Metric', label: 'Calculated in Metres', icon: 'mdi:ruler' },
|
|
123
|
+
{ value: 'Offline', label: 'Local Database', icon: 'mdi:wifi-off' },
|
|
124
|
+
],
|
|
125
|
+
columns: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Why Ball Weight Is Misleading',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: 'Many beginners make the mistake of buying yarn based solely on weight (e.g. "6 balls of 100g"). However, weight is a unit of mass, not length. Two yarns weighing 100g can have radically different lengths: a <strong>Bulky</strong> yarn may have only 80 metres, while a <strong>Fingering / Lace</strong> yarn can exceed 450 metres for the same weight.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'That is why our calculator always prioritises <strong>total metres</strong>. Once you know the length required for your size and project, divide it by the yardage on your specific ball label to get the exact number of units to purchase.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Standard Yardage Table by Weight',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'paragraph',
|
|
147
|
+
html: 'If you do not have the label to hand, use these reference yardages (per 100g of fibre) for your estimates:',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'table',
|
|
151
|
+
headers: ['Weight', 'Approx. Metres / 100g', 'Recommended Use', 'Suggested Needles'],
|
|
152
|
+
rows: [
|
|
153
|
+
['<strong>Lace / 0</strong>', '600 - 900m', 'Lace shawls, openwork', '1.5 - 2.5mm'],
|
|
154
|
+
['<strong>Fingering / 1</strong>', '360 - 450m', 'Socks, baby garments', '2.25 - 3.25mm'],
|
|
155
|
+
['<strong>Sport / 2</strong>', '270 - 320m', 'Light jackets', '3.25 - 3.75mm'],
|
|
156
|
+
['<strong>DK / 3</strong>', '200 - 250m', 'Sweaters, hats', '3.75 - 4.5mm'],
|
|
157
|
+
['<strong>Worsted / 4</strong>', '180 - 220m', 'Blankets, coats', '4.5 - 5.5mm'],
|
|
158
|
+
['<strong>Bulky / 5</strong>', '100 - 140m', 'XXL scarves, blankets', '6.0 - 8.0mm'],
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'tip',
|
|
163
|
+
title: 'The Tension (Gauge) Factor',
|
|
164
|
+
html: '<p>Remember that if you knit very loosely, your stitches will be larger and use more yarn than if you knit tightly. Our calculator applies a safety margin, but if you know your tension is extremely loose, consider adding an additional 5-10% to the results to avoid surprises.</p>',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'title',
|
|
168
|
+
text: 'Variables That Increase Yarn Consumption',
|
|
169
|
+
level: 3,
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'paragraph',
|
|
173
|
+
html: 'Not all stitch patterns use the same amount of fibre. When choosing your design, consider these multiplier factors:',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'comparative',
|
|
177
|
+
items: [
|
|
178
|
+
{
|
|
179
|
+
title: 'Stocking Stitch / Jersey',
|
|
180
|
+
description: 'Represents the baseline consumption and maximum yarn efficiency for any garment.',
|
|
181
|
+
icon: 'mdi:minus-circle-outline',
|
|
182
|
+
points: ['Ideal for beginners', 'Natural drape of fabric'],
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
title: 'Cables / Aran',
|
|
186
|
+
description: 'Crossing fibres "shortens" the piece, increasing consumption by 25%.',
|
|
187
|
+
icon: 'mdi:texture-box',
|
|
188
|
+
points: ['Requires more metres', 'Denser and heavier fabric'],
|
|
189
|
+
pointIcon: 'mdi:alert-circle-outline',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
title: 'Crochet',
|
|
193
|
+
description: 'Crochet knots use 30% more yarn than flat knitting.',
|
|
194
|
+
icon: 'mdi:hook',
|
|
195
|
+
points: ['Faster ball consumption', 'Three-dimensional texture'],
|
|
196
|
+
pointIcon: 'mdi:alert-circle-outline',
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
title: 'Ribbing',
|
|
200
|
+
description: 'The knit/purl structure accumulates more yarn per square centimetre.',
|
|
201
|
+
icon: 'mdi:unfold-more-horizontal',
|
|
202
|
+
points: ['Intermediate consumption (+15%)', 'High elastic recovery'],
|
|
203
|
+
},
|
|
204
|
+
],
|
|
205
|
+
columns: 2,
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
type: 'title',
|
|
209
|
+
text: 'Glossary for the Prepared Knitter',
|
|
210
|
+
level: 3,
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
type: 'glossary',
|
|
214
|
+
items: [
|
|
215
|
+
{
|
|
216
|
+
term: 'Dye Lot',
|
|
217
|
+
definition:
|
|
218
|
+
'Number identifying the dye vat in which the yarn was dyed. Different lots may have colour variations invisible in the ball but very visible in the finished garment.',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
term: 'Stash',
|
|
222
|
+
definition:
|
|
223
|
+
'A knitter\'s personal yarn collection. Identifying the weight of unlabelled yarn remnants is vital for calculating small projects.',
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
term: 'Put-up',
|
|
227
|
+
definition:
|
|
228
|
+
'The form in which yarn is presented (hank, ball or cone), which affects whether it needs to be wound before use.',
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
term: 'Yarn Chicken',
|
|
232
|
+
definition:
|
|
233
|
+
'The challenge of trying to finish a section of knitting with an apparently insufficient amount of yarn.',
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
type: 'title',
|
|
239
|
+
text: 'How to Use the Results of This Calculator',
|
|
240
|
+
level: 3,
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
type: 'paragraph',
|
|
244
|
+
html: 'Once the tool returns the number of metres and balls, we recommend the following manual verification steps:',
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
type: 'list',
|
|
248
|
+
items: [
|
|
249
|
+
'<strong>Check the actual ball yardage:</strong> Not all 100g balls have 200m. Verify this on the label to adjust the final calculation.',
|
|
250
|
+
'<strong>Add yardage for details:</strong> If you are adding fringe to a scarf or pompoms to a hat, add 50-80 extra metres to the total.',
|
|
251
|
+
'<strong>Gauge swatch:</strong> Knit a 10x10cm square. Weigh it on a precision scale. If it weighs 20g and your blanket is 100x100cm (100 squares), you will need exactly 2kg of yarn.',
|
|
252
|
+
'<strong>Always buy from the same lot:</strong> If the calculation says 7 balls, buy 8 if they are from different lots to have a safety margin or for hidden pieces like seams.',
|
|
253
|
+
],
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
type: 'summary',
|
|
257
|
+
title: 'Strategic Tips for Buying Yarn',
|
|
258
|
+
items: [
|
|
259
|
+
'Prioritise metres over grams to ensure the required length.',
|
|
260
|
+
'Crochet uses substantially more yarn than knitting; adjust the type selector accordingly.',
|
|
261
|
+
'Dense textures (cables) require a 25% increase in the yarn budget.',
|
|
262
|
+
'Always keep a label from each lot in case you need to reorder the same colour.',
|
|
263
|
+
'Use the 10% safety margin to knit the mandatory gauge swatch.',
|
|
264
|
+
],
|
|
265
|
+
},
|
|
266
|
+
],
|
|
267
|
+
ui: {
|
|
268
|
+
sectionProject: '1. PROJECT TYPE',
|
|
269
|
+
sectionSize: '2. DIMENSIONS / SIZE',
|
|
270
|
+
sectionWeight: '3. YARN WEIGHT',
|
|
271
|
+
sectionPattern: '4. PATTERN FEATURES',
|
|
272
|
+
sectionBall: '5. BALL DETAILS',
|
|
273
|
+
labelCables: 'Cables or dense textures?',
|
|
274
|
+
labelGrams: 'GRAMS / BALL',
|
|
275
|
+
labelMeters: 'METRES / BALL',
|
|
276
|
+
weightFine: 'Fine',
|
|
277
|
+
weightMedium: 'Medium',
|
|
278
|
+
weightThick: 'Thick',
|
|
279
|
+
weightXXL: 'XXL',
|
|
280
|
+
projectSweater: 'SWEATER',
|
|
281
|
+
projectScarf: 'SCARF',
|
|
282
|
+
projectHat: 'HAT',
|
|
283
|
+
projectSocks: 'SOCKS',
|
|
284
|
+
projectBlanket: 'BLANKET',
|
|
285
|
+
projectCardigan: 'CARDIGAN',
|
|
286
|
+
statPrefix: 'ESTIMATED TOTAL CONSUMPTION',
|
|
287
|
+
statSuffix: 'M',
|
|
288
|
+
statNote: 'Final yardage calculated with a 10% reserve stock.',
|
|
289
|
+
ballsFormatSingular: 'Buy {n} ball',
|
|
290
|
+
ballsFormatPlural: 'Buy {n} balls',
|
|
291
|
+
ballsDetailFormat: 'Balls of {w}g / {m}m each.',
|
|
292
|
+
alertTitle: 'Strategic safety:',
|
|
293
|
+
alertText:
|
|
294
|
+
'This calculation already guarantees you will not run out of yarn. Remember to check the dye lot number when buying your balls to avoid colour jumps.',
|
|
295
|
+
schemeSleeveLabel: 'Sleeves',
|
|
296
|
+
schemeSleeveEach: 'ea.',
|
|
297
|
+
schemeBodyLabel: 'Body',
|
|
298
|
+
schemeTotalHat: 'Hat Total',
|
|
299
|
+
schemeTotalFlat: 'Piece Total',
|
|
300
|
+
schemeTotalSocks: 'Pair Total',
|
|
301
|
+
sizeLabels: {
|
|
302
|
+
sweater: ['S', 'M', 'L', 'XL'],
|
|
303
|
+
cardigan: ['S', 'M', 'L', 'XL'],
|
|
304
|
+
hat: ['Child', 'S', 'M', 'L'],
|
|
305
|
+
scarf: ['Mini', 'M', 'Large', 'Maxi'],
|
|
306
|
+
socks: ['Child', 'Ad. S', 'Ad. M', 'Ad. L'],
|
|
307
|
+
blanket: ['Baby', 'Sofa', 'Single', 'Double'],
|
|
308
|
+
},
|
|
309
|
+
},
|
|
310
|
+
};
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { YarnCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'calculadora-lana-tejido';
|
|
6
|
+
const title = 'Calculadora de Lana: ¿Cuántos metros y ovillos necesito?';
|
|
7
|
+
const description =
|
|
8
|
+
'Calcula con precisión métrica la cantidad de lana o hilo necesaria para tus proyectos de punto y ganchillo a partir del patrón y la talla.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '¿Por qué el ganchillo (crochet) gasta más lana que el punto de media?',
|
|
13
|
+
answer:
|
|
14
|
+
'El ganchillo se basa en la creación de nudos y bucles superpuestos, lo que genera un tejido más denso y grueso por centímetro cuadrado. Por término medio, un proyecto de ganchillo consume entre un 25% y un 35% más de hilo que el mismo proyecto tejido a dos agujas (punto liso).',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '¿Qué pasa si compro lana de distintos lotes de tinte (Dye Lot)?',
|
|
18
|
+
answer:
|
|
19
|
+
'Incluso si el color parece idéntico en la tienda, las variaciones químicas mínimas durante el teñido pueden crear "franjas" visibles en la prenda terminada cuando se tejen juntas. Se recomienda encarecidamente comprar toda la lana de una vez verificando que el código de lote sea el mismo.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '¿Cómo afecta la tensión (gauge) al consumo final?',
|
|
23
|
+
answer:
|
|
24
|
+
'Si tejes de forma floja, cada punto consume más metros de hilo. Si tu muestra de tensión es más grande de lo que indica el patrón (ej. 13 puntos en lugar de 15), tu consumo de lana aumentará sustancialmente. Es vital realizar una muestra de tensión previa.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: '¿Cómo calculo los metros si solo tengo el peso del ovillo?',
|
|
28
|
+
answer:
|
|
29
|
+
'Sin el dato de metraje, es difícil. La mayoría de ovillos indican en su etiqueta los metros. Si no lo hacen, busca por el nombre de la lana en bases de datos como Ravelry para encontrar la longitud exacta por cada 50g o 100g.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Selecciona el proyecto',
|
|
36
|
+
text: 'Elige entre un jersey, bufanda, gorro, calcetines o manta para cargar las bases de consumo específicas.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Define la talla y grosor',
|
|
40
|
+
text: 'Indica las dimensiones finales (S, M, L, XL) y el grosor del hilo que vas a utilizar (Fingering, DK, Worsted, Bulky).',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Activa multiplicadores',
|
|
44
|
+
text: 'Si tu patrón tiene trenzas, ochos o texturas complejas, activa el switch de texturas para añadir el suplemento necesario.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Obtén la lista de compra',
|
|
48
|
+
text: 'Escribe los metros por ovillo de tu lana elegida para ver exactamente cuántas unidades debes meter en el carrito.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowTo> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
name: step.name,
|
|
70
|
+
text: step.text,
|
|
71
|
+
})),
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
75
|
+
'@context': 'https://schema.org',
|
|
76
|
+
'@type': 'SoftwareApplication',
|
|
77
|
+
name: title,
|
|
78
|
+
description,
|
|
79
|
+
applicationCategory: 'UtilityApplication',
|
|
80
|
+
operatingSystem: 'All',
|
|
81
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
82
|
+
inLanguage: 'es',
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const content: ToolLocaleContent<YarnCalculatorUI> = {
|
|
86
|
+
slug,
|
|
87
|
+
title,
|
|
88
|
+
description,
|
|
89
|
+
faqTitle: 'Preguntas Frecuentes',
|
|
90
|
+
faq: faqData,
|
|
91
|
+
bibliographyTitle: 'Bibliografía',
|
|
92
|
+
bibliography: [
|
|
93
|
+
{
|
|
94
|
+
name: 'Craft Yarn Council: Standard Yarn Weights & Yardages',
|
|
95
|
+
url: 'https://www.craftyarncouncil.com/standards/yarn-weight-system',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'Interweave Essentials: Yarn Substitution and Estimation',
|
|
99
|
+
url: 'https://www.interweave.com/article/knitting/yarn-substitution-angelina-take-two/',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: 'The Woolery: Fibers and Calculation of Yarn Usage',
|
|
103
|
+
url: 'https://woolery.com/blogs/the-woolery-blog/yarn-weight-charts-helpful-guide/',
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
howTo: howToData,
|
|
107
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
108
|
+
seo: [
|
|
109
|
+
{
|
|
110
|
+
type: 'title',
|
|
111
|
+
text: 'Guía de Consumo de Lana: Cómo Calcular metros y ovillos para tus proyectos',
|
|
112
|
+
level: 2,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'paragraph',
|
|
116
|
+
html: 'Domina la logística del tejido y evita quedarte sin hilo con nuestra calculadora técnica de precisión para punto y ganchillo. Uno de los mayores miedos de cualquier persona que teje es el <strong>"Yarn Chicken"</strong>: ese momento crítico al final de un proyecto donde parece que el hilo se va a terminar antes de cerrar los últimos puntos. Esta calculadora ha sido desarrollada para ofrecerte estimaciones basadas en estándares industriales de metraje y gramaje.',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'stats',
|
|
120
|
+
items: [
|
|
121
|
+
{ value: '+10%', label: 'Margen de Pánico', icon: 'mdi:security' },
|
|
122
|
+
{ value: 'Métrico', label: 'Cálculo en Metros', icon: 'mdi:ruler' },
|
|
123
|
+
{ value: 'Offline', label: 'Base de Datos Local', icon: 'mdi:wifi-off' },
|
|
124
|
+
],
|
|
125
|
+
columns: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: '¿Por qué el gramaje de los ovillos es engañoso?',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'paragraph',
|
|
134
|
+
html: 'Muchos principiantes cometen el error de comprar lana basándose exclusivamente en el peso (ej. "6 ovillos de 100g"). Sin embargo, el peso es una unidad de masa, no de longitud. Dos lanas que pesen 100g pueden tener longitudes radicalmente distintas: una lana tipo <strong>Bulky</strong> puede tener solo 80 metros, mientras que una <strong>Fingering / Lace</strong> puede superar los 450 metros en el mismo peso.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'paragraph',
|
|
138
|
+
html: 'Por ello, nuestra calculadora prioriza siempre los <strong>metros totales</strong>. Una vez que conoces la longitud necesaria para tu talla y proyecto, puedes dividirla por el metraje que indica la etiqueta de tu ovillo específico para obtener el número exacto de unidades que debes adquirir.',
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
type: 'title',
|
|
142
|
+
text: 'Tabla de Metrajes Estándar por Grosor',
|
|
143
|
+
level: 3,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'paragraph',
|
|
147
|
+
html: 'Si no tienes la etiqueta a mano, puedes usar estos metrajes de referencia (por cada 100g de fibra) para tus estimaciones:',
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'table',
|
|
151
|
+
headers: ['Grosor (Weight)', 'Metros aprox. / 100g', 'Uso Recomendado', 'Agujas Sugeridas'],
|
|
152
|
+
rows: [
|
|
153
|
+
['<strong>Lace / 0</strong>', '600 - 900m', 'Chales de encaje, calados', '1.5 - 2.5mm'],
|
|
154
|
+
['<strong>Fingering / 1</strong>', '360 - 450m', 'Calcetines, ropa bebé', '2.25 - 3.25mm'],
|
|
155
|
+
['<strong>Sport / 2</strong>', '270 - 320m', 'Chaquetas ligeras', '3.25 - 3.75mm'],
|
|
156
|
+
['<strong>DK / 3</strong>', '200 - 250m', 'Jerséis, gorros', '3.75 - 4.5mm'],
|
|
157
|
+
['<strong>Worsted / 4</strong>', '180 - 220m', 'Mantas, abrigos', '4.5 - 5.5mm'],
|
|
158
|
+
['<strong>Bulky / 5</strong>', '100 - 140m', 'Bufandas XXL, mantas', '6.0 - 8.0mm'],
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: 'tip',
|
|
163
|
+
title: 'El Factor de la Tensión (Gauge)',
|
|
164
|
+
html: '<p>Recuerda que si tejes de forma muy floja, tus puntos serán más grandes y consumirán más hilo que si tejes de forma apretada. Nuestra calculadora aplica un margen de seguridad, pero si sabes que tu tensión es extremadamente laxa, considera añadir un 5-10% adicional a los resultados para evitar sorpresas.</p>',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'title',
|
|
168
|
+
text: 'Variables que aumentan el consumo de hilo',
|
|
169
|
+
level: 3,
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
type: 'paragraph',
|
|
173
|
+
html: 'No todos los puntos consumen la misma cantidad de fibra. Al elegir tu diseño, ten en cuenta estos factores multiplicadores:',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'comparative',
|
|
177
|
+
items: [
|
|
178
|
+
{
|
|
179
|
+
title: 'Punto Liso / Jersey',
|
|
180
|
+
description: 'Representa el consumo base y la eficiencia máxima de hilo para cualquier prenda.',
|
|
181
|
+
icon: 'mdi:minus-circle-outline',
|
|
182
|
+
points: ['Ideal para principiantes', 'Caída natural del tejido'],
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
title: 'Trenzas / Ocho',
|
|
186
|
+
description: 'El cruce de fibras "acorta" la pieza, aumentando el consumo en un 25%.',
|
|
187
|
+
icon: 'mdi:texture-box',
|
|
188
|
+
points: ['Requiere más metros', 'Tejido más denso y pesado'],
|
|
189
|
+
pointIcon: 'mdi:alert-circle-outline',
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
title: 'Ganchillo (Crochet)',
|
|
193
|
+
description: 'Los nudos del ganchillo usan un 30% más hilo que el punto de media.',
|
|
194
|
+
icon: 'mdi:hook',
|
|
195
|
+
points: ['Gasto acelerado de ovillos', 'Textura tridimensional'],
|
|
196
|
+
pointIcon: 'mdi:alert-circle-outline',
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
title: 'Punto Elástico',
|
|
200
|
+
description: 'La estructura de derecho/revés acumula más lana por cm cuadrado.',
|
|
201
|
+
icon: 'mdi:unfold-more-horizontal',
|
|
202
|
+
points: ['Consumo intermedio (+15%)', 'Alta recuperación elástica'],
|
|
203
|
+
},
|
|
204
|
+
],
|
|
205
|
+
columns: 2,
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
type: 'title',
|
|
209
|
+
text: 'Glosario del Tejedor Previsor',
|
|
210
|
+
level: 3,
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
type: 'glossary',
|
|
214
|
+
items: [
|
|
215
|
+
{
|
|
216
|
+
term: 'Dye Lot (Lote de Tinte)',
|
|
217
|
+
definition:
|
|
218
|
+
'Número que identifica la tina de tinte en la que se tiñó la lana. Diferentes lotes pueden tener variaciones de color imperceptibles en el ovillo pero muy visibles en la prenda terminada.',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
term: 'Stash (Reserva)',
|
|
222
|
+
definition:
|
|
223
|
+
'La colección personal de hilos de un tejedor. Identificar el peso de los restos de hilos sin etiqueta es vital para calcular proyectos pequeños.',
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
term: 'Put-up',
|
|
227
|
+
definition:
|
|
228
|
+
'La forma en la que se presenta el hilo (en madeja, en ovillo o en cono), lo que afecta a si necesita ser ovillado antes de usar.',
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
term: 'Yarn Chicken',
|
|
232
|
+
definition:
|
|
233
|
+
'El reto de intentar terminar una sección de tejido con una cantidad de hilo que parece insuficiente.',
|
|
234
|
+
},
|
|
235
|
+
],
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
type: 'title',
|
|
239
|
+
text: 'Cómo usar los resultados de esta calculadora',
|
|
240
|
+
level: 3,
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
type: 'paragraph',
|
|
244
|
+
html: 'Una vez que la herramienta te devuelva el número de metros y ovillos, te recomendamos realizar los siguientes pasos de verificación manual:',
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
type: 'list',
|
|
248
|
+
items: [
|
|
249
|
+
'<strong>Comprueba el metraje de tu ovillo real:</strong> No todos los ovillos de 100g tienen 200m. Verifica este dato en la etiqueta para ajustar el cálculo final.',
|
|
250
|
+
'<strong>Suma el metraje de los detalles:</strong> Si vas a añadir flecos a una bufanda o pompones a un gorro, suma 50-80 metros extra al total.',
|
|
251
|
+
'<strong>Muestra de tensión:</strong> Teje un cuadrado de 10x10 cm. Pésalo en una báscula de precisión. Si pesa 20g y tu manta mide 100x100 (100 cuadrados), necesitarás exactamente 2kg de lana.',
|
|
252
|
+
'<strong>Compra siempre del mismo lote:</strong> Si el cálculo dice 7 ovillos, compra 8 si son de lotes distintos para tener margen de maniobra o para piezas ocultas como las costuras.',
|
|
253
|
+
],
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
type: 'summary',
|
|
257
|
+
title: 'Consejos Estratégicos para la Compra de Lana',
|
|
258
|
+
items: [
|
|
259
|
+
'Prioriza los metros sobre los gramos para asegurar la longitud necesaria.',
|
|
260
|
+
'El ganchillo consume sustancialmente más lana que el punto; ajusta el selector de tipo.',
|
|
261
|
+
'Las texturas densas (trenzas) requieren un aumento del 25% en el presupuesto de hilo.',
|
|
262
|
+
'Guarda siempre una etiqueta de cada lote por si necesitas pedir repuesto de color.',
|
|
263
|
+
'Usa el 10% de margen de seguridad para tejer la muestra de tensión obligatoria.',
|
|
264
|
+
],
|
|
265
|
+
},
|
|
266
|
+
],
|
|
267
|
+
ui: {
|
|
268
|
+
sectionProject: '1. TIPO DE PROYECTO',
|
|
269
|
+
sectionSize: '2. DIMENSIONES / TALLA',
|
|
270
|
+
sectionWeight: '3. GROSOR DEL HILO',
|
|
271
|
+
sectionPattern: '4. CARACTERÍSTICAS DEL PATRÓN',
|
|
272
|
+
sectionBall: '5. DATOS DEL OVILLO',
|
|
273
|
+
labelCables: '¿Trenzas o texturas densas?',
|
|
274
|
+
labelGrams: 'GRAMOS / OVILLO',
|
|
275
|
+
labelMeters: 'METROS / OVILLO',
|
|
276
|
+
weightFine: 'Fino',
|
|
277
|
+
weightMedium: 'Medio',
|
|
278
|
+
weightThick: 'Grueso',
|
|
279
|
+
weightXXL: 'XXL',
|
|
280
|
+
projectSweater: 'JERSEY',
|
|
281
|
+
projectScarf: 'BUFANDA',
|
|
282
|
+
projectHat: 'GORRO',
|
|
283
|
+
projectSocks: 'CALCETINES',
|
|
284
|
+
projectBlanket: 'MANTA',
|
|
285
|
+
projectCardigan: 'CHAQUETA',
|
|
286
|
+
statPrefix: 'CONSUMO ESTIMADO TOTAL',
|
|
287
|
+
statSuffix: 'M',
|
|
288
|
+
statNote: 'Metraje final calculado con stock de reserva del 10%.',
|
|
289
|
+
ballsFormatSingular: 'Compra {n} ovillo',
|
|
290
|
+
ballsFormatPlural: 'Compra {n} ovillos',
|
|
291
|
+
ballsDetailFormat: 'Ovillos de {w}g / {m}m cada uno.',
|
|
292
|
+
alertTitle: 'Seguridad estratégica:',
|
|
293
|
+
alertText:
|
|
294
|
+
'Este cálculo ya garantiza que no te quedarás sin hilo. Recuerda validar el número de lote (dye lot) al comprar tus ovillos para evitar saltos de color.',
|
|
295
|
+
schemeSleeveLabel: 'Mangas',
|
|
296
|
+
schemeSleeveEach: 'c/u',
|
|
297
|
+
schemeBodyLabel: 'Cuerpo',
|
|
298
|
+
schemeTotalHat: 'Total Gorro',
|
|
299
|
+
schemeTotalFlat: 'Total Pieza',
|
|
300
|
+
schemeTotalSocks: 'Total Par',
|
|
301
|
+
sizeLabels: {
|
|
302
|
+
sweater: ['S', 'M', 'L', 'XL'],
|
|
303
|
+
cardigan: ['S', 'M', 'L', 'XL'],
|
|
304
|
+
hat: ['Niño', 'S', 'M', 'L'],
|
|
305
|
+
scarf: ['Mini', 'M', 'Grande', 'Maxi'],
|
|
306
|
+
socks: ['Niño', 'Ad. S', 'Ad. M', 'Ad. L'],
|
|
307
|
+
blanket: ['Bebé', 'Sofá', 'Cama 90', 'Cama 150'],
|
|
308
|
+
},
|
|
309
|
+
},
|
|
310
|
+
};
|