diff --git a/lib/components/normal-components/Board.ts b/lib/components/normal-components/Board.ts index 9c3adc235..13165aa86 100644 --- a/lib/components/normal-components/Board.ts +++ b/lib/components/normal-components/Board.ts @@ -237,6 +237,7 @@ export class Board extends Group { if (!pcbBoard) return const boardInformation: string[] = [] + if (this.props.title) boardInformation.push(this.props.title) if (platform.projectName) boardInformation.push(platform.projectName) if (platform.version) boardInformation.push(`v${platform.version}`) if (platform.url) boardInformation.push(platform.url) @@ -262,6 +263,14 @@ export class Board extends Group { }) } + doInitialSourceRender() { + const { db } = this.root! + const source_board = (db as any).source_board.insert({ + type: "pcb_board", + title: this.props.title, + }) + } + doInitialPcbComponentRender(): void { if (this.root?.pcbDisabled) return const { db } = this.root! diff --git a/package.json b/package.json index 1a36871cc..863939aac 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@tscircuit/matchpack": "^0.0.16", "@tscircuit/math-utils": "^0.0.21", "@tscircuit/miniflex": "^0.0.4", - "@tscircuit/props": "0.0.352", + "@tscircuit/props": "^0.0.353", "@tscircuit/schematic-autolayout": "^0.0.6", "@tscircuit/schematic-match-adapt": "^0.0.16", "@tscircuit/schematic-trace-solver": "^0.0.41", @@ -54,7 +54,7 @@ "bun-match-svg": "0.0.12", "calculate-elbow": "^0.0.12", "chokidar-cli": "^3.0.0", - "circuit-json": "^0.0.273", + "circuit-json": "^0.0.274", "circuit-json-to-bpc": "^0.0.13", "circuit-json-to-connectivity-map": "^0.0.22", "circuit-json-to-gltf": "^0.0.7", diff --git a/tests/components/normal-components/board-title.test.tsx b/tests/components/normal-components/board-title.test.tsx new file mode 100644 index 000000000..ba8d02aab --- /dev/null +++ b/tests/components/normal-components/board-title.test.tsx @@ -0,0 +1,27 @@ +import { test, expect } from "bun:test" +import { getTestFixture } from "tests/fixtures/get-test-fixture" + +test("board title appears in silkscreen", () => { + const { circuit } = getTestFixture({ + platform: { + printBoardInformationToSilkscreen: true, + }, + }) + + circuit.add( + + + , + ) + + circuit.render() + + const silkscreenTexts = circuit.db.pcb_silkscreen_text.list() + const titleText = silkscreenTexts.find((text) => + text.text.includes("My Custom Board"), + ) + + expect(titleText).toBeDefined() + expect(titleText?.text).toContain("My Custom Board") + expect(titleText?.layer).toBe("top") +})