- Added `prop-types` for better prop validation in components. - Introduced `CurrencyProvider` to manage currency context and preload exchange rates. - Updated pricing logic in various components to support new price structure and display currency. - Refactored BOMSummary, MotorStep, and PowerSupplyStep to utilize new pricing methods and improve user experience. - Enhanced export utilities to format prices correctly in markdown and Excel outputs. - Updated hardware and component data structures to include detailed pricing information.
286 lines
9.8 KiB
JSON
286 lines
9.8 KiB
JSON
{
|
|
"hinges": {
|
|
"category": "Hinges",
|
|
"type": "mod",
|
|
"systems": {
|
|
"pivot-plate": {
|
|
"name": "Pivot Plate",
|
|
"description": "Pivot plate for the stand",
|
|
"image": "/images/options/pivot-plate.webp",
|
|
"hardwareCost": 10,
|
|
"price": {
|
|
"amount": 0,
|
|
"currency": "USD"
|
|
},
|
|
"printedParts": [
|
|
{
|
|
"id": "pivot-plate",
|
|
"name": "Pivot Plate Left",
|
|
"description": "Pivot plate for the stand",
|
|
"filamentEstimate": 150,
|
|
"colour": "primary",
|
|
"required": true,
|
|
"filePath": "OSSM - Stand - Pivot Plate.stl",
|
|
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Stand/OSSM%20-%20Stand%20-%203030%20Extrusion%20Base%20-%20Pivot%20Plate%20Left.stl?raw=true",
|
|
"quantity": 1,
|
|
"vendor": {
|
|
"manifest_id": "pivot-plate",
|
|
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Stand/OSSM - Stand - 3030 Extrusion Base - Pivot Plate Left.stl",
|
|
"pinned_sha": "52537c0896eaef83fd9771dcc633903c7aa6a8ab",
|
|
"pinned_raw_url": "https://raw.githubusercontent.com/KinkyMakers/OSSM-hardware/52537c0896eaef83fd9771dcc633903c7aa6a8ab/Printed Parts/Stand/OSSM - Stand - 3030 Extrusion Base - Pivot Plate Left.stl",
|
|
"checksum_sha256": "44a5527b613743acc394e4a6dfe89677d37c2e1c8a1537e76184812edbba0216",
|
|
"last_checked": "2026-01-07T09:38:41.826563+00:00",
|
|
"status": "up-to-date"
|
|
}
|
|
},
|
|
{
|
|
"id": "pivot-plate-right",
|
|
"name": "Pivot Plate Right",
|
|
"description": "Pivot plate for the stand",
|
|
"filamentEstimate": 150,
|
|
"colour": "primary",
|
|
"required": true,
|
|
"filePath": "OSSM - Stand - Pivot Plate.stl",
|
|
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Stand/OSSM%20-%20Stand%20-%203030%20Extrusion%20Base%20-%20Pivot%20Plate%20Right.stl?raw=true",
|
|
"quantity": 1,
|
|
"vendor": {
|
|
"manifest_id": "pivot-plate-right",
|
|
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Stand/OSSM - Stand - 3030 Extrusion Base - Pivot Plate Right.stl",
|
|
"pinned_sha": "52537c0896eaef83fd9771dcc633903c7aa6a8ab",
|
|
"pinned_raw_url": "https://raw.githubusercontent.com/KinkyMakers/OSSM-hardware/52537c0896eaef83fd9771dcc633903c7aa6a8ab/Printed Parts/Stand/OSSM - Stand - 3030 Extrusion Base - Pivot Plate Right.stl",
|
|
"checksum_sha256": "20fba186fd8c50f08b35d57c354e62288d582ad283aa474ee271b27f08aa972a",
|
|
"last_checked": "2026-01-07T10:37:58.707054+00:00",
|
|
"status": "up-to-date"
|
|
}
|
|
},
|
|
{
|
|
"id": "handle-spacer",
|
|
"name": "Handle Spacer",
|
|
"description": "Handle spacer for the stand",
|
|
"filamentEstimate": 20,
|
|
"colour": "primary",
|
|
"required": true,
|
|
"filePath": "OSSM - Stand - Pivot Spacer.stl",
|
|
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Stand/OSSM%20-%20Stand%20-%203030%20Extrusion%20Base%20-%20Handle%20Spacer.stl?raw=true",
|
|
"quantity": 8,
|
|
"vendor": {
|
|
"manifest_id": "handle-spacer",
|
|
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Stand/OSSM - Stand - 3030 Extrusion Base - Handle Spacer.stl",
|
|
"pinned_sha": "52537c0896eaef83fd9771dcc633903c7aa6a8ab",
|
|
"pinned_raw_url": "https://raw.githubusercontent.com/KinkyMakers/OSSM-hardware/52537c0896eaef83fd9771dcc633903c7aa6a8ab/Printed Parts/Stand/OSSM - Stand - 3030 Extrusion Base - Handle Spacer.stl",
|
|
"checksum_sha256": "55ede7dff60a31d68159b352b5f2c63792b7a0dbe9d543a43681c3e52d229115",
|
|
"last_checked": "2026-01-07T23:40:52.301339+00:00",
|
|
"status": "up-to-date"
|
|
}
|
|
}
|
|
],
|
|
"hardwareParts": [
|
|
{
|
|
"id": "hardware-fasteners-m6x25-shcs",
|
|
"required": true,
|
|
"quantity": 6
|
|
},
|
|
{
|
|
"id": "hardware-fasteners-m6-t-nuts",
|
|
"required": true,
|
|
"quantity": 6
|
|
},
|
|
{
|
|
"id": "hardware-fasteners-m6-washer",
|
|
"required": true,
|
|
"quantity": 6
|
|
},
|
|
{
|
|
"id": "hardware-fasteners-m6x25-handle",
|
|
"required": true,
|
|
"quantity": 2
|
|
}
|
|
]
|
|
},
|
|
"pitclamp-reinforced-3030": {
|
|
"name": "PitClamp Reinforced 3030 Hinges",
|
|
"description": "Reinforced 3030 hinges for PitClamp",
|
|
"image": "/images/options/pitclamp-reinforced-3030-hinges.jpg",
|
|
"hardwareCost": 15,
|
|
"price": {
|
|
"amount": 0,
|
|
"currency": "USD"
|
|
},
|
|
"printedParts": [
|
|
{
|
|
"id": "pitclamp-reinforced-3030",
|
|
"name": "PitClamp Reinforced 3030 Hinges",
|
|
"description": "Reinforced 3030 hinges for PitClamp",
|
|
"filamentEstimate": 200,
|
|
"colour": "primary",
|
|
"required": true,
|
|
"quantity": 1
|
|
}
|
|
],
|
|
"hardwareParts": [
|
|
{
|
|
"id": "pitclamp-reinforced-3030-hardware",
|
|
"required": true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"feet": {
|
|
"category": "Feet",
|
|
"type": "mod",
|
|
"printedParts": [
|
|
{
|
|
"id": "standard-feet",
|
|
"name": "Standard",
|
|
"description": "Standard feet",
|
|
"filamentEstimate": 50,
|
|
"image": "/images/options/standard-feet.jpg",
|
|
"hardwareCost": 0,
|
|
"price": {
|
|
"amount": 0,
|
|
"currency": "USD"
|
|
},
|
|
"colour": "secondary",
|
|
"required": true
|
|
},
|
|
{
|
|
"id": "suction-feet",
|
|
"name": "Suction",
|
|
"description": "Suction feet for better stability",
|
|
"filamentEstimate": 60,
|
|
"image": "/images/options/suction-feet.jpg",
|
|
"hardwareCost": 5,
|
|
"price": {
|
|
"amount": 0,
|
|
"currency": "USD"
|
|
},
|
|
"colour": "secondary",
|
|
"required": true
|
|
}
|
|
],
|
|
"hardwareParts": [
|
|
{
|
|
"id": "hardware-fasteners-m6x12-shcs",
|
|
"required": true,
|
|
"quantity": 4,
|
|
"relatedParts": [
|
|
"standard-feet"
|
|
]
|
|
},
|
|
{
|
|
"id": "hardware-fasteners-m6-t-nuts",
|
|
"required": true,
|
|
"quantity": 4,
|
|
"relatedParts": [
|
|
"standard-feet"
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"caps": {
|
|
"category": "Caps",
|
|
"type": "base",
|
|
"printedParts": [
|
|
{
|
|
"id": "ossm-3030-cap",
|
|
"name": "3030 Cap",
|
|
"description": "Cap mounting system",
|
|
"filamentEstimate": 10,
|
|
"timeEstimate": "2h10m",
|
|
"colour": "secondary",
|
|
"required": true,
|
|
"filePath": "OSSM - 3030 Cap.stl",
|
|
"quantity": 6,
|
|
"url": "https://github.com/KinkyMakers/OSSM-hardware/blob/main/Printed%20Parts/Stand/OSSM%20-%20Stand%20-%203030%20Extrusion%20Base%20-%20Extrusion%20Cap.stl?raw=true",
|
|
"vendor": {
|
|
"manifest_id": "ossm-3030-cap",
|
|
"local_path": "vendor/KinkyMakers-OSSM-hardware/Printed Parts/Stand/OSSM - Stand - 3030 Extrusion Base - Extrusion Cap.stl",
|
|
"pinned_sha": "52537c0896eaef83fd9771dcc633903c7aa6a8ab",
|
|
"pinned_raw_url": "https://raw.githubusercontent.com/KinkyMakers/OSSM-hardware/52537c0896eaef83fd9771dcc633903c7aa6a8ab/Printed Parts/Stand/OSSM - Stand - 3030 Extrusion Base - Extrusion Cap.stl",
|
|
"checksum_sha256": "56fa9bb318cdeadc6d1698a1e6cef9371e58b0bc9c7729985bf639d8da2f25da",
|
|
"last_checked": "2026-01-07T23:40:56.344743+00:00",
|
|
"status": "up-to-date"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"crossbarSupports": {
|
|
"category": "Crossbar Supports",
|
|
"type": "mod",
|
|
"printedParts": [
|
|
{
|
|
"id": "standard-90-degree-support",
|
|
"name": "Standard 90 Degree Support",
|
|
"description": "Standard 90 degree support for the stand (hardware only)",
|
|
"filamentEstimate": 0,
|
|
"image": "/images/options/standard-90-degree-support.jpg",
|
|
"hardwareCost": 10,
|
|
"price": {
|
|
"amount": {
|
|
"min": 10.00,
|
|
"max": 20.00
|
|
},
|
|
"currency": "USD"
|
|
},
|
|
"colour": "primary",
|
|
"required": true,
|
|
"isHardwareOnly": true
|
|
},
|
|
{
|
|
"id": "3d-printed-90-degree-support",
|
|
"name": "3D Printed 90 Degree Support",
|
|
"description": "3D printed 90 degree support for the stand",
|
|
"filamentEstimate": 100,
|
|
"image": "/images/options/3d-printed-90-degree-support.jpg",
|
|
"hardwareCost": 2,
|
|
"price": {
|
|
"amount": {
|
|
"min": 2.00,
|
|
"max": 4.00
|
|
},
|
|
"currency": "USD"
|
|
},
|
|
"colour": "secondary",
|
|
"required": true
|
|
}
|
|
],
|
|
"hardwareParts": [
|
|
{
|
|
"id": "hardware-fasteners-m6x12-shcs",
|
|
"required": true,
|
|
"quantity": 8,
|
|
"relatedParts": [
|
|
"3d-printed-90-degree-support",
|
|
"standard-90-degree-support"
|
|
]
|
|
},
|
|
{
|
|
"id": "hardware-fasteners-m6-t-nuts",
|
|
"required": true,
|
|
"quantity": 8,
|
|
"relatedParts": [
|
|
"3d-printed-90-degree-support",
|
|
"standard-90-degree-support"
|
|
]
|
|
},
|
|
{
|
|
"id": "hardware-fasteners-m6-washer",
|
|
"required": true,
|
|
"quantity": 8,
|
|
"relatedParts": [
|
|
"3d-printed-90-degree-support",
|
|
"standard-90-degree-support"
|
|
]
|
|
},
|
|
{
|
|
"id": "hardware-fasteners-3030-90-degree-support",
|
|
"required": true,
|
|
"quantity": 4,
|
|
"relatedParts": [
|
|
"standard-90-degree-support"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
} |