diff --git a/lib/domains/character/CharacterFactory.test.tsx b/lib/domains/character/CharacterFactory.test.tsx index cf046e4ae..698a7164a 100644 --- a/lib/domains/character/CharacterFactory.test.tsx +++ b/lib/domains/character/CharacterFactory.test.tsx @@ -2,8 +2,9 @@ import produce from "immer"; import { CharacterFactory } from "./CharacterFactory"; import { DefaultTemplates } from "./DefaultTemplates"; import { ComplexCharacter } from "./mocks/ComplexCharacter"; +import { DuplicateIds } from "./mocks/DuplicateIds"; import { Warden } from "./mocks/WardenLeMagane"; -import { IV1Character } from "./types"; +import { ICharacter, IV1Character } from "./types"; describe("CharacterFactory.migrate", () => { describe("v1", () => { @@ -691,4 +692,27 @@ describe("CharacterFactory.duplicate", () => { }); }); }); + + it("should handle duplicate id imports", () => { + const result = CharacterFactory.makeFromJson(DuplicateIds); + + const ids = [result.id]; + + for (const page of result.pages) { + ids.push(page.id); + for (const row of page.rows) { + for (const column of row.columns) { + for (const section of column.sections) { + ids.push(section.id); + for (const block of section.blocks) { + ids.push(block.id); + } + } + } + } + } + + // This should check for duplicates + expect(new Set(ids).size).toEqual(ids.length); + }); }); diff --git a/lib/domains/character/CharacterFactory.tsx b/lib/domains/character/CharacterFactory.tsx index 1ef4ca1b0..11d7c78e2 100644 --- a/lib/domains/character/CharacterFactory.tsx +++ b/lib/domains/character/CharacterFactory.tsx @@ -50,7 +50,7 @@ export const CharacterFactory = { default: undefined, }; const migratedSheet = this.migrate(newSheet); - return migratedSheet; + return CharacterFactory.resetAllIds(migratedSheet); }, migrate(character: any): ICharacter { try { diff --git a/lib/domains/character/mocks/DuplicateIds.ts b/lib/domains/character/mocks/DuplicateIds.ts new file mode 100644 index 000000000..e0b439999 --- /dev/null +++ b/lib/domains/character/mocks/DuplicateIds.ts @@ -0,0 +1,1188 @@ +import { ICharacter } from "../types"; + +export const DuplicateIds: ICharacter = { + lastUpdated: 1708556695, + name: "", + pages: [ + { + rows: [ + { + columns: [ + { + sections: [ + { + id: "b2a2e2fe-70f7-44b9-b0e4-5754b81ddf16", + label: "POWERS", + blocks: [ + { + label: "PP", + type: "PointCounter", + meta: { + max: "0", + isMainPointCounter: false, + }, + value: "0", + }, + { + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + label: "Power & Effect", + type: "Text", + value: "", + meta: {}, + }, + { + id: "lamp", + label: "P", + type: "Numeric", + value: "3", + meta: { + width: 0.33, + }, + }, + { + label: "Range", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "4ed7a1ae-43df-4b39-a018-24ba07b076c0", + label: "Duration", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "6e005ede-bdf8-413e-863b-ab2a017d235b", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "lamp", + label: "Power & Effect", + type: "Text", + value: "Test 2343415", + meta: {}, + }, + { + id: "f01e24ff-cfc7-41e8-9431-d05c2f8e61b7", + label: "P", + type: "Numeric", + value: "3", + meta: { + width: 0.33, + }, + }, + { + id: "94b5ab21-554c-4b3b-a8a2-40ef1b59919f", + label: "Range", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "7494942a-9f0d-4b18-aa52-0df82a08c5fb", + label: "Duration", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "3cd88071-321c-4367-a051-b9761b41c197", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "bfc629d2-94be-4d95-8a3e-e6b2d06bad1d", + label: "Power & Effect", + type: "Text", + value: "", + meta: {}, + }, + { + id: "800929f8-63b7-461f-8ea5-68c7ad9e6b00", + label: "P", + type: "Numeric", + value: "4", + meta: { + width: 0.33, + }, + }, + { + id: "39177902-b007-4d9e-8ac4-c3452cae5877", + label: "Range", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "e71de0b8-07a2-467c-b89f-1afe6d97d5f2", + label: "Duration", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "2", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "0898eb14-d6fe-43f8-b0b1-4998a6bf46be", + label: "Power & Effect", + type: "Text", + value: "", + meta: {}, + }, + { + id: "cacdf303-312e-4432-adb3-aa88291b6e4a", + label: "PP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "2119f196-7fa9-4663-b974-a23225fac117", + label: "Range", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "5b0bcc6a-58e2-45fe-ad57-4cc866b48a4f", + label: "Duration", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "a484f0f8-5249-4190-9676-58703fe8f6a0", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "e3ebcdf1-3c71-4ef4-bd3c-4e30edac0441", + label: "Power & Effect", + type: "Text", + value: "", + meta: {}, + }, + { + id: "305e71cc-1c16-4718-9467-791629f1a6d4", + label: "PP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "408e7f18-e369-423e-9610-54b60f369b1e", + label: "Range", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "810eef9f-3f2d-4334-ac1c-8bea136153e5", + label: "Duration", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "d0667e60-f571-4da8-9057-bd74f700b4d6", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "8afbcfb0-0656-4a39-bead-bd10df73a0f8", + label: "Power & Effect", + type: "Text", + value: "", + meta: {}, + }, + { + id: "3e0d3135-93e8-4f54-b4a2-212f52dfdb83", + label: "PP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "091ecd92-e551-4cc5-a962-2f7ce1745e7b", + label: "Range", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "5be6ee16-cd19-4333-b5a7-90c90f0b2c13", + label: "Duration", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "68f75661-62f7-4be1-982b-8765d6b78f1d", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "ee934713-72fc-4fea-9b78-0fe5d18cff32", + label: "Power & Effect", + type: "Text", + value: "", + meta: {}, + }, + { + id: "63e5fb07-8cb5-4099-9dbc-ddf840ba71fc", + label: "PP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "6e712ead-c1e9-4a6b-9fd9-0e1be4739371", + label: "Range", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "7d726663-a45c-4a54-af42-33df7ed99270", + label: "Duration", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "ff118cc4-9420-467b-a3c0-192731ce54d7", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "2ec3335e-fb0f-4e6c-8aa6-d3fc8942154f", + label: "Power & Effect", + type: "Text", + value: "", + meta: {}, + }, + { + id: "d8c36791-188a-452f-8af3-587bd988b595", + label: "PP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "b260b02e-d4d2-4755-84e7-927169d12745", + label: "Range", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "db15e1af-705b-44b8-87b8-4736ce96e3e2", + label: "Duration", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + ], + }, + ], + }, + { + sections: [ + { + id: "19795bbd-bf8c-4cc5-ab64-7bc4a8af653d", + label: "WEAPONS", + blocks: [ + { + id: "145589f4-7e80-4a58-a6cd-ff5a84150704", + label: "Weapon & Notes", + type: "Text", + value: "", + meta: {}, + }, + { + id: "594f1e04-9f30-4af4-966e-5947502e5ad9", + label: "Range", + type: "Text", + value: "#/#/#", + meta: { + width: 0.5, + helperText: "Short / Med / Long (per 2-yard space)", + }, + }, + { + id: "4fcf98b5-0dd4-4ec5-9d15-a6d96f49f2e2", + label: "Damage", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "9cd151df-3a89-427f-942d-1c2de4782951", + label: "AP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "a22f3791-63d7-43db-b78b-05da00100c83", + label: "RoF", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "ce3a50cf-973c-410e-aa27-f39f72a55470", + label: "Weight", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "b1dcc29b-c822-426d-99b9-6885c8beb5aa", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "56111f34-50b6-49de-ab4c-970d36819bd3", + label: "Weapon & Notes", + type: "Text", + value: "", + meta: {}, + }, + { + id: "779f7030-0056-4104-af9d-07850678a0c5", + label: "Range", + type: "Text", + value: "#/#/#", + meta: { + width: 0.5, + helperText: "Short / Med / Long (per 2-yard space)", + }, + }, + { + id: "f46fb727-a469-479c-8d4d-74a1b887471d", + label: "Damage", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "a5762798-3677-4d3f-87c6-c0b5890bf642", + label: "AP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "6ef14fcc-96eb-4adf-b91b-9b2ef14c4a81", + label: "RoF", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "466cffd4-974a-476f-b87a-bfb628474367", + label: "Weight", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "aee5a762-445b-45d5-89fc-29f38a2287c2", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "4d1e4ccb-d3d5-4b4e-96a0-fb71f3da86bb", + label: "Weapon & Notes", + type: "Text", + value: "", + meta: {}, + }, + { + id: "233fbff0-ac8a-4df9-a02f-fa46fba4b7a9", + label: "Range", + type: "Text", + value: "#/#/#", + meta: { + width: 0.5, + helperText: "Short / Med / Long (per 2-yard space)", + }, + }, + { + id: "ca4cf6fa-0e65-468c-bfe5-398980f083ce", + label: "Damage", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "92da9b8d-c04c-4608-8ec0-cee36dc7fd49", + label: "AP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "5d95fc3b-ed14-4235-860b-85b452366c64", + label: "RoF", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "b0efe54b-da09-4e53-bd48-00de9c3f78b9", + label: "Weight", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "e404fab5-85f0-48df-8b50-15679e640527", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "dc63f1e4-c31f-4068-a0bc-478ee3ba45ed", + label: "Weapon & Notes", + type: "Text", + value: "", + meta: {}, + }, + { + id: "c6586ce2-b063-4e8c-ab9a-434205c8d436", + label: "Range", + type: "Text", + value: "#/#/#", + meta: { + width: 0.5, + helperText: "Short / Med / Long (per 2-yard space)", + }, + }, + { + id: "0f65e77f-459d-4135-8636-81d0c46a0cbe", + label: "Damage", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "414ba660-7a42-4c82-9b5b-e1ef655d05f5", + label: "AP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "d8b97f13-f7b1-458b-a3bb-069e665021f6", + label: "RoF", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "a35c05e3-e72d-4d5d-9145-278e2293da06", + label: "Weight", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "aaeaba15-1859-497b-bdfd-1547865a0a86", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "a96f1619-a319-4c33-a33f-814d265302ac", + label: "Weapon & Notes", + type: "Text", + value: "", + meta: {}, + }, + { + id: "f2210c42-5089-4fb4-8f2d-4b228b912dc1", + label: "Range", + type: "Text", + value: "#/#/#", + meta: { + width: 0.5, + helperText: "Short / Med / Long (per 2-yard space)", + }, + }, + { + id: "bdb963e5-c17a-466d-b5f2-95389c5902e9", + label: "Damage", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "2dea86c6-9a1d-42e0-b726-47981b8a0a5c", + label: "AP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "3c0b43b3-8a9f-49d4-9009-2b960d7c8883", + label: "RoF", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "63d04a84-bdc5-4aa1-a39d-20accd8e4e29", + label: "Weight", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "7ddb8ac3-8dac-485a-bb4a-809f5377f009", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "4c86e10b-4ec6-4487-a359-c1811b98bf6a", + label: "Weapon & Notes", + type: "Text", + value: "", + meta: {}, + }, + { + id: "a1bf5413-0c68-440c-a02c-9fe19374fdc7", + label: "Range", + type: "Text", + value: "#/#/#", + meta: { + width: 0.5, + helperText: "Short / Med / Long (per 2-yard space)", + }, + }, + { + id: "0e304c7d-f3b0-4fc8-93b3-2055414182ac", + label: "Damage", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "5dae7db3-8360-4ca4-aead-167003cac3f0", + label: "AP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "f0096c04-0dcb-43b3-a06c-db690725ac00", + label: "RoF", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "dcc27cda-9e6d-452b-9125-57525a812269", + label: "Weight", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "6302f931-6bbc-4c6f-bfee-8c7495303aec", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "d8388eac-8907-4082-b2e8-2443862444d3", + label: "Weapon & Notes", + type: "Text", + value: "", + meta: {}, + }, + { + id: "913a1d0b-c17a-4f01-a0e6-f71147c94416", + label: "Range", + type: "Text", + value: "#/#/#", + meta: { + width: 0.5, + helperText: "Short / Med / Long (per 2-yard space)", + }, + }, + { + id: "5d9529f7-f9a1-47de-8700-688048ea98f2", + label: "Damage", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "82e43842-8b00-4ec7-a7cb-c8ed50bf8e7b", + label: "AP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "f15c4ae5-bcb5-4f05-ab72-7e6d9f3f4655", + label: "RoF", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "c450c81d-1b55-42f8-850c-e4ac78268769", + label: "Weight", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "623beb76-4f83-497b-942f-d3900535cad5", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "e3ccae2a-46b7-46de-a3e2-9389131c61cc", + label: "Weapon & Notes", + type: "Text", + value: "", + meta: {}, + }, + { + id: "4317ad2f-3b52-4aa8-84fb-bdd9d1d3e686", + label: "Range", + type: "Text", + value: "#/#/#", + meta: { + width: 0.5, + helperText: "Short / Med / Long (per 2-yard space)", + }, + }, + { + id: "34bd94da-0af2-42f8-ba89-73ccd19a42b3", + label: "Damage", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "64e303c5-884b-40de-9dea-0cddee8b85d6", + label: "AP", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "ac5564d9-4aed-4ea6-b672-3c6cbe50f42d", + label: "RoF", + type: "Numeric", + value: "", + meta: { + width: 0.33, + }, + }, + { + id: "208b7be5-5911-40b3-93a7-33674c5dd333", + label: "Weight", + type: "Text", + value: "", + meta: { + width: 0.33, + }, + }, + ], + }, + ], + }, + ], + }, + ], + label: "Gear, Powers, Weapons", + }, + { + id: "c4424b92-b217-4d4f-9551-2b74cec7a34c", + rows: [ + { + columns: [ + { + sections: [ + { + id: "b2d6a44f-a11a-4c02-aa07-7354c6cc3be1", + label: "HINDRANCES", + blocks: [ + { + id: "225cb077-4560-49c4-89c0-98ff66dcf691", + type: "Text", + value: "", + meta: {}, + }, + { + id: "08b29896-496f-40c2-99df-8fe2f7815a3e", + type: "Text", + value: "", + meta: {}, + }, + { + id: "e6d76f46-b82d-46df-9d15-dbe5ebdaa806", + type: "Text", + value: "", + meta: {}, + }, + ], + }, + ], + }, + { + sections: [ + { + id: "d5f1a383-6bcb-4a10-bdb5-41e27a455cee", + label: "EDGES", + blocks: [ + { + id: "74ff22c2-ee01-42e6-b551-47f71be4b87f", + type: "Text", + value: "", + meta: {}, + }, + { + id: "0b92b53c-e240-4e01-9788-fe7f8f92901c", + type: "Text", + value: "", + meta: {}, + }, + { + id: "99036eb7-66fb-4722-976b-b2bb47334cd4", + type: "Text", + value: "", + meta: {}, + }, + ], + }, + ], + }, + ], + }, + { + columns: [ + { + sections: [ + { + id: "c8314c5c-083c-4d24-ab24-56a567555b53", + label: "ADVANCES", + blocks: [ + { + id: "63125a59-668c-4672-9017-e86c820bacaa", + label: "N", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "8f0e4597-feee-45e7-b0da-ccabcc1fc01f", + label: "N", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "ead075c3-9b31-4054-b507-9a9a7e79df4d", + label: "N", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "ab6e42ab-a2eb-4abd-b58f-79ab78e2537d", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "cb6004bc-0fc4-422e-8988-08906f1740fb", + label: "S", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "639f7348-2864-44f6-be2f-a31dc520c1d4", + label: "S", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "03749740-cb6e-4654-bb27-cb347ffe6cc3", + label: "S", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "f8131638-68fd-441f-8fa2-7b0fcb82cf73", + label: "S", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "e227fa6a-79ba-474f-8932-f302164c2b0b", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "77868cef-660b-4dfe-9609-22200793c25b", + label: "V", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "0bf14d1f-f917-47aa-bbc9-0ac9be9a4bf1", + label: "V", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "3b76c217-25b5-44ef-877e-ffedb40c1f65", + label: "V", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "d08f53d4-ae6d-4337-ad1d-a91e00b1c28e", + label: "V", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "942dbd2c-384c-4a25-90dc-bbcd4434ef9c", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "c83e60f7-f20e-433b-a4d1-f1ce79e77477", + label: "H", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "b63045eb-458a-47ab-a268-1ddafa7e67ac", + label: "H", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "3b5cf292-70b7-4b77-aadf-9151e3450b12", + label: "H", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "b4f04c8c-ac6a-4b39-93aa-fb880ac45215", + label: "H", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "ed7cc12c-d14d-4fb2-8f63-36a11808ebce", + label: "", + type: "Separator", + meta: { + hasLabel: false, + }, + value: "", + }, + { + id: "a74fdd2c-b07e-4d6c-9263-17ebb1ad1238", + label: "L", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "82d2bf90-1f14-407d-bcfb-0415028c5ab4", + label: "L", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "b90b5b8c-56b1-4593-9d73-a123f11541af", + label: "L", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + { + id: "617f9482-6ac5-4112-be67-a03852b53d5b", + label: "L", + type: "Text", + value: "", + meta: { + width: 0.5, + }, + }, + ], + }, + ], + }, + ], + }, + ], + label: "Hindrances, Edges, Advances", + }, + ], + template: "Blank", + theme: { + hideSectionBackground: false, + labelFontSize: 1.25, + backgroundColor: "#ffffff", + style: + " @import url('https://fonts.googleapis.com/css2?family=Akshar:wght@300;500;600&display=swap');", + pageHeadingFontFamily: "Akshar", + pageHeadingFontWeight: "500", + sectionHeadingFontFamily: "Akshar", + sectionHeadingFontWeight: "700", + labelFontWeight: "500", + labelFontFamily: "Akshar", + textFontFamily: "Akshar", + textFontWeight: "500", + textFontSize: 1, + sectionHeadingFontSize: 1.375, + infoTextFontFamily: "Akshar", + infoTextFontWeight: "300", + helperTextFontFamily: "Akshar", + helperTextFontWeight: "300", + helperTextFontSize: 1, + }, + version: 6, + wide: false, + id: "381872d5-4f72-4475-afda-5fdd7c47ae4a", + fariType: "character", +} as unknown as ICharacter;