fritzkit 0.0.0-stage → 0.1.1

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 (319) hide show
  1. package/.claude-plugin/marketplace.json +12 -0
  2. package/.claude-plugin/plugin.json +13 -0
  3. package/CHANGELOG.md +8 -0
  4. package/LICENSE +21 -0
  5. package/README.md +429 -2
  6. package/dist/cli/commands/doctor.d.ts +4 -0
  7. package/dist/cli/commands/doctor.js +7 -0
  8. package/dist/cli/commands/doctor.js.map +1 -0
  9. package/dist/cli/commands/export.d.ts +17 -0
  10. package/dist/cli/commands/export.js +81 -0
  11. package/dist/cli/commands/export.js.map +1 -0
  12. package/dist/cli/commands/kicad.d.ts +10 -0
  13. package/dist/cli/commands/kicad.js +22 -0
  14. package/dist/cli/commands/kicad.js.map +1 -0
  15. package/dist/cli/commands/parts.d.ts +22 -0
  16. package/dist/cli/commands/parts.js +46 -0
  17. package/dist/cli/commands/parts.js.map +1 -0
  18. package/dist/cli/commands/prune.d.ts +14 -0
  19. package/dist/cli/commands/prune.js +67 -0
  20. package/dist/cli/commands/prune.js.map +1 -0
  21. package/dist/cli/commands/render.d.ts +24 -0
  22. package/dist/cli/commands/render.js +62 -0
  23. package/dist/cli/commands/render.js.map +1 -0
  24. package/dist/cli/commands/schema.d.ts +10 -0
  25. package/dist/cli/commands/schema.js +35 -0
  26. package/dist/cli/commands/schema.js.map +1 -0
  27. package/dist/cli/commands/ui.d.ts +14 -0
  28. package/dist/cli/commands/ui.js +67 -0
  29. package/dist/cli/commands/ui.js.map +1 -0
  30. package/dist/cli/commands/validate.d.ts +24 -0
  31. package/dist/cli/commands/validate.js +91 -0
  32. package/dist/cli/commands/validate.js.map +1 -0
  33. package/dist/cli/context.d.ts +81 -0
  34. package/dist/cli/context.js +139 -0
  35. package/dist/cli/context.js.map +1 -0
  36. package/dist/cli/main.d.ts +2 -0
  37. package/dist/cli/main.js +8 -0
  38. package/dist/cli/main.js.map +1 -0
  39. package/dist/cli/program.d.ts +21 -0
  40. package/dist/cli/program.js +158 -0
  41. package/dist/cli/program.js.map +1 -0
  42. package/dist/cli/raster.d.ts +4 -0
  43. package/dist/cli/raster.js +9 -0
  44. package/dist/cli/raster.js.map +1 -0
  45. package/dist/core/compile/breadboard-util.d.ts +12 -0
  46. package/dist/core/compile/breadboard-util.js +107 -0
  47. package/dist/core/compile/breadboard-util.js.map +1 -0
  48. package/dist/core/compile/breadboard.d.ts +60 -0
  49. package/dist/core/compile/breadboard.js +513 -0
  50. package/dist/core/compile/breadboard.js.map +1 -0
  51. package/dist/core/compile/fzp.d.ts +12 -0
  52. package/dist/core/compile/fzp.js +183 -0
  53. package/dist/core/compile/fzp.js.map +1 -0
  54. package/dist/core/compile/icon.d.ts +17 -0
  55. package/dist/core/compile/icon.js +27 -0
  56. package/dist/core/compile/icon.js.map +1 -0
  57. package/dist/core/compile/index.d.ts +4 -0
  58. package/dist/core/compile/index.js +62 -0
  59. package/dist/core/compile/index.js.map +1 -0
  60. package/dist/core/compile/pcb.d.ts +39 -0
  61. package/dist/core/compile/pcb.js +164 -0
  62. package/dist/core/compile/pcb.js.map +1 -0
  63. package/dist/core/compile/schematic.d.ts +69 -0
  64. package/dist/core/compile/schematic.js +240 -0
  65. package/dist/core/compile/schematic.js.map +1 -0
  66. package/dist/core/compile/style.d.ts +52 -0
  67. package/dist/core/compile/style.js +72 -0
  68. package/dist/core/compile/style.js.map +1 -0
  69. package/dist/core/compile/types.d.ts +50 -0
  70. package/dist/core/compile/types.js +15 -0
  71. package/dist/core/compile/types.js.map +1 -0
  72. package/dist/core/export/bin.d.ts +61 -0
  73. package/dist/core/export/bin.js +221 -0
  74. package/dist/core/export/bin.js.map +1 -0
  75. package/dist/core/export/fzpz.d.ts +37 -0
  76. package/dist/core/export/fzpz.js +121 -0
  77. package/dist/core/export/fzpz.js.map +1 -0
  78. package/dist/core/export/index.d.ts +5 -0
  79. package/dist/core/export/index.js +6 -0
  80. package/dist/core/export/index.js.map +1 -0
  81. package/dist/core/export/install.d.ts +77 -0
  82. package/dist/core/export/install.js +183 -0
  83. package/dist/core/export/install.js.map +1 -0
  84. package/dist/core/export/prune.d.ts +72 -0
  85. package/dist/core/export/prune.js +165 -0
  86. package/dist/core/export/prune.js.map +1 -0
  87. package/dist/core/fritzing.d.ts +22 -0
  88. package/dist/core/fritzing.js +77 -0
  89. package/dist/core/fritzing.js.map +1 -0
  90. package/dist/core/identity.d.ts +29 -0
  91. package/dist/core/identity.js +70 -0
  92. package/dist/core/identity.js.map +1 -0
  93. package/dist/core/image/bbox.d.ts +27 -0
  94. package/dist/core/image/bbox.js +24 -0
  95. package/dist/core/image/bbox.js.map +1 -0
  96. package/dist/core/image/index.d.ts +8 -0
  97. package/dist/core/image/index.js +9 -0
  98. package/dist/core/image/index.js.map +1 -0
  99. package/dist/core/image/key.d.ts +72 -0
  100. package/dist/core/image/key.js +317 -0
  101. package/dist/core/image/key.js.map +1 -0
  102. package/dist/core/image/prepare.d.ts +31 -0
  103. package/dist/core/image/prepare.js +98 -0
  104. package/dist/core/image/prepare.js.map +1 -0
  105. package/dist/core/image/remover.d.ts +17 -0
  106. package/dist/core/image/remover.js +51 -0
  107. package/dist/core/image/remover.js.map +1 -0
  108. package/dist/core/index.d.ts +16 -0
  109. package/dist/core/index.js +17 -0
  110. package/dist/core/index.js.map +1 -0
  111. package/dist/core/kicad/footprint.d.ts +104 -0
  112. package/dist/core/kicad/footprint.js +317 -0
  113. package/dist/core/kicad/footprint.js.map +1 -0
  114. package/dist/core/kicad/index.d.ts +25 -0
  115. package/dist/core/kicad/index.js +197 -0
  116. package/dist/core/kicad/index.js.map +1 -0
  117. package/dist/core/kicad/sexpr.d.ts +35 -0
  118. package/dist/core/kicad/sexpr.js +163 -0
  119. package/dist/core/kicad/sexpr.js.map +1 -0
  120. package/dist/core/resolve.d.ts +113 -0
  121. package/dist/core/resolve.js +301 -0
  122. package/dist/core/resolve.js.map +1 -0
  123. package/dist/core/schema/part.d.ts +995 -0
  124. package/dist/core/schema/part.js +278 -0
  125. package/dist/core/schema/part.js.map +1 -0
  126. package/dist/core/schema/part.schema.json +1122 -0
  127. package/dist/core/svg.d.ts +20 -0
  128. package/dist/core/svg.js +56 -0
  129. package/dist/core/svg.js.map +1 -0
  130. package/dist/core/units.d.ts +28 -0
  131. package/dist/core/units.js +42 -0
  132. package/dist/core/units.js.map +1 -0
  133. package/dist/core/validate/checker.d.ts +46 -0
  134. package/dist/core/validate/checker.js +142 -0
  135. package/dist/core/validate/checker.js.map +1 -0
  136. package/dist/core/validate/doctor.d.ts +25 -0
  137. package/dist/core/validate/doctor.js +156 -0
  138. package/dist/core/validate/doctor.js.map +1 -0
  139. package/dist/core/validate/explain.d.ts +10 -0
  140. package/dist/core/validate/explain.js +135 -0
  141. package/dist/core/validate/explain.js.map +1 -0
  142. package/dist/core/validate/index.d.ts +21 -0
  143. package/dist/core/validate/index.js +96 -0
  144. package/dist/core/validate/index.js.map +1 -0
  145. package/dist/core/validate/structural.d.ts +74 -0
  146. package/dist/core/validate/structural.js +664 -0
  147. package/dist/core/validate/structural.js.map +1 -0
  148. package/dist/core/workspace.d.ts +69 -0
  149. package/dist/core/workspace.js +213 -0
  150. package/dist/core/workspace.js.map +1 -0
  151. package/dist/mcp/jsonpatch.d.ts +30 -0
  152. package/dist/mcp/jsonpatch.js +145 -0
  153. package/dist/mcp/jsonpatch.js.map +1 -0
  154. package/dist/mcp/main.d.ts +2 -0
  155. package/dist/mcp/main.js +5 -0
  156. package/dist/mcp/main.js.map +1 -0
  157. package/dist/mcp/server.d.ts +28 -0
  158. package/dist/mcp/server.js +310 -0
  159. package/dist/mcp/server.js.map +1 -0
  160. package/dist/server/api.d.ts +72 -0
  161. package/dist/server/api.js +507 -0
  162. package/dist/server/api.js.map +1 -0
  163. package/dist/server/events.d.ts +28 -0
  164. package/dist/server/events.js +134 -0
  165. package/dist/server/events.js.map +1 -0
  166. package/dist/server/http.d.ts +36 -0
  167. package/dist/server/http.js +127 -0
  168. package/dist/server/http.js.map +1 -0
  169. package/dist/server/index.d.ts +65 -0
  170. package/dist/server/index.js +193 -0
  171. package/dist/server/index.js.map +1 -0
  172. package/dist/ui/assets/index-DLU8opyI.js +63 -0
  173. package/dist/ui/assets/index-GhUA-T3b.css +1 -0
  174. package/dist/ui/index.html +14 -0
  175. package/package.json +89 -4
  176. package/skills/fritzkit/SKILL.md +690 -0
  177. package/skills/fritzkit/reference/examples.md +275 -0
  178. package/skills/fritzkit/reference/part-json.md +333 -0
  179. package/skills/fritzkit/scripts/measure.py +197 -0
  180. package/tools/fzp-checker/.python-version +1 -0
  181. package/tools/fzp-checker/README.md +45 -0
  182. package/tools/fzp-checker/check_fzp.py +48 -0
  183. package/tools/fzp-checker/pyproject.toml +26 -0
  184. package/tools/fzp-checker/uv.lock +266 -0
  185. package/tools/fzp-checker/vendor/LICENSE.txt +8 -0
  186. package/tools/fzp-checker/vendor/UPSTREAM.md +25 -0
  187. package/tools/fzp-checker/vendor/fzp_checker.py +14 -0
  188. package/tools/fzp-checker/vendor/scripts/checks/__init__.py +26 -0
  189. package/tools/fzp-checker/vendor/scripts/checks/check_missing_leg_ids.py +44 -0
  190. package/tools/fzp-checker/vendor/scripts/checks/checkascii.py +27 -0
  191. package/tools/fzp-checker/vendor/scripts/checks/checkcase.py +156 -0
  192. package/tools/fzp-checker/vendor/scripts/checks/checkcopies.py +104 -0
  193. package/tools/fzp-checker/vendor/scripts/checks/connector_numbering.py +79 -0
  194. package/tools/fzp-checker/vendor/scripts/checks/connectors_misnumbered.py +228 -0
  195. package/tools/fzp-checker/vendor/scripts/checks/explain_errors.md +95 -0
  196. package/tools/fzp-checker/vendor/scripts/checks/fzp_checker_runner.py +717 -0
  197. package/tools/fzp-checker/vendor/scripts/checks/fzp_checkers.py +1069 -0
  198. package/tools/fzp-checker/vendor/scripts/checks/fzp_svg_checkers.py +62 -0
  199. package/tools/fzp-checker/vendor/scripts/checks/fzp_utils.py +222 -0
  200. package/tools/fzp-checker/vendor/scripts/checks/inspector_fc51.png +0 -0
  201. package/tools/fzp-checker/vendor/scripts/checks/invisibleconnectors.py +118 -0
  202. package/tools/fzp-checker/vendor/scripts/checks/nolayeridcheck.txt +758 -0
  203. package/tools/fzp-checker/vendor/scripts/checks/requirements.txt +3 -0
  204. package/tools/fzp-checker/vendor/scripts/checks/svg_checkers.py +953 -0
  205. package/tools/fzp-checker/vendor/scripts/checks/svg_utils.py +96 -0
  206. package/tools/fzp-checker/vendor/scripts/checks/test_checkers.py +839 -0
  207. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/author_missing.fzp.test +3 -0
  208. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/author_present.fzp.test +4 -0
  209. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/buses_missing_id.fzp.test +8 -0
  210. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/buses_missing_node_members.fzp.test +7 -0
  211. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/buses_present_valid.fzp.test +8 -0
  212. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/connector_layers_missing_attributes.fzp.test +16 -0
  213. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/connector_layers_present_valid.fzp.test +14 -0
  214. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/connector_numbering_invalid.fzp.test +70 -0
  215. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/connector_numbering_valid.fzp.test +70 -0
  216. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/connector_refs_valid.fzp.test +53 -0
  217. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_invalid_mixed.fzp.test +11 -0
  218. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_invalid_silkscreen_nested.fzp.test +11 -0
  219. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_invalid_style_attr.fzp.test +11 -0
  220. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_invalid_white_stroke.fzp.test +11 -0
  221. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_invalid_wrong_color.fzp.test +11 -0
  222. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_valid_inherited.fzp.test +11 -0
  223. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_valid_legacy.fzp.test +12 -0
  224. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_valid_nested_copper.fzp.test +12 -0
  225. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_valid_none.fzp.test +11 -0
  226. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_valid_standard.fzp.test +12 -0
  227. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/copper_color_valid_uppercase.fzp.test +11 -0
  228. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/css_connector.fzp.test +100 -0
  229. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/description_missing.fzp.test +3 -0
  230. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/description_present.fzp.test +4 -0
  231. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/duplicate_ids.fzp.test +27 -0
  232. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/family_property_missing.fzp.test +6 -0
  233. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/family_property_present_valid.fzp.test +6 -0
  234. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/font_size.fzp.test +46 -0
  235. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/fritzing_version_invalid_format.fzp.test +4 -0
  236. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/fritzing_version_missing.fzp.test +4 -0
  237. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/fritzing_version_present_valid.fzp.test +4 -0
  238. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/gorn_absent.fzp.test +15 -0
  239. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/gorn_present.fzp.test +15 -0
  240. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/hybrid_connectors.fzp.test +232 -0
  241. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/invalid_xml.fzp.test +12 -0
  242. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/layer_ids_match.fzp.test +29 -0
  243. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/layer_ids_mismatch.fzp.test +30 -0
  244. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/layer_nesting_invalid.fzp.test +11 -0
  245. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/layer_nesting_valid.fzp.test +11 -0
  246. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/matrix_transform.fzp.test +8 -0
  247. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/missing_connector_refs.fzp.test +63 -0
  248. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/missing_leg_ids.fzp.test +34 -0
  249. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/module_id_missing.fzp.test +4 -0
  250. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/module_id_non_alnum.fzp.test +4 -0
  251. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/module_id_present.fzp.test +4 -0
  252. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/module_id_special_chars_absent.fzp.test +4 -0
  253. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/module_id_special_chars_present.fzp.test +4 -0
  254. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/module_id_too_short.fzp.test +4 -0
  255. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/no_layer_invalid.fzp.test +19 -0
  256. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/no_layer_namedview.fzp.test +19 -0
  257. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/no_layer_valid.fzp.test +19 -0
  258. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/pcb_only.fzp.test +48 -0
  259. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/property_fields_missing_name.fzp.test +6 -0
  260. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/property_fields_missing_value.fzp.test +6 -0
  261. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/property_fields_present.fzp.test +6 -0
  262. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/required_tags_missing.fzp.test +3 -0
  263. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/required_tags_present.fzp.test +11 -0
  264. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/stroke_test.fzp.test +60 -0
  265. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/template_svgs.fzp.test +35 -0
  266. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/title_missing.fzp.test +3 -0
  267. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/title_present.fzp.test +4 -0
  268. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/unique_ids.fzp.test +27 -0
  269. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/unique_property_names_duplicates.fzp.test +7 -0
  270. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/unique_property_names_unique.fzp.test +7 -0
  271. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/valid_xml.fzp.test +249 -0
  272. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/version_invalid_format.fzp.test +4 -0
  273. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/version_missing.fzp.test +3 -0
  274. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/version_present_valid.fzp.test +4 -0
  275. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/views_missing.fzp.test +3 -0
  276. package/tools/fzp-checker/vendor/scripts/checks/test_data/core/views_present.fzp.test +8 -0
  277. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/connector_refs_valid_breadboard.svg +7 -0
  278. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/duplicate_ids_breadboard.svg +13 -0
  279. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/gorn_absent_breadboard.svg +7 -0
  280. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/gorn_present_breadboard.svg +7 -0
  281. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/hybrid_connectors_breadboard.svg +102 -0
  282. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/layer_nesting_invalid.svg +13 -0
  283. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/layer_nesting_valid.svg +13 -0
  284. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/matrix_transform.svg +11 -0
  285. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/missing_connector_refs_breadboard.svg +8 -0
  286. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/missing_leg_ids_breadboard.svg +9 -0
  287. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/test_layer_ids_match_breadboard.svg +9 -0
  288. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/test_layer_ids_mismatch_breadboard.svg +9 -0
  289. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/breadboard/unique_ids_breadboard.svg +13 -0
  290. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/icon/hybrid_connectors_icon.svg +78 -0
  291. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/icon/no_layer_invalid.svg +4 -0
  292. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/icon/no_layer_namedview.svg +9 -0
  293. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/icon/no_layer_valid.svg +7 -0
  294. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/icon/plain_pcb.svg +10 -0
  295. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/connector_refs_valid_pcb.svg +10 -0
  296. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_invalid_mixed.svg +8 -0
  297. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_invalid_silkscreen_nested.svg +10 -0
  298. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_invalid_style_attr.svg +6 -0
  299. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_invalid_white_stroke.svg +6 -0
  300. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_invalid_wrong_color.svg +6 -0
  301. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_valid_inherited.svg +7 -0
  302. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_valid_legacy.svg +10 -0
  303. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_valid_nested_copper.svg +9 -0
  304. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_valid_none.svg +7 -0
  305. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_valid_standard.svg +10 -0
  306. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/copper_color_valid_uppercase.svg +7 -0
  307. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/css_connector.svg +25 -0
  308. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/font_size.svg +54 -0
  309. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/hybrid_connectors_pcb.svg +35 -0
  310. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/missing_connector_refs_pcb.svg +14 -0
  311. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/pcb-arduino-shield.svg +25 -0
  312. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/stroke_test.svg +12 -0
  313. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/test_layer_ids_match_pcb.svg +12 -0
  314. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/pcb/test_layer_ids_mismatch_pcb.svg +12 -0
  315. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/schematic/connector_refs_valid_schematic.svg +7 -0
  316. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/schematic/hybrid_connectors_schematic.svg +59 -0
  317. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/schematic/missing_connector_refs_schematic.svg +8 -0
  318. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/schematic/test_layer_ids_match_schematic.svg +6 -0
  319. package/tools/fzp-checker/vendor/scripts/checks/test_data/svg/core/schematic/test_layer_ids_mismatch_schematic.svg +6 -0
@@ -0,0 +1,60 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <module fritzingVersion='1.0.0' moduleId='stroke_test'>
3
+ <version>1</version>
4
+ <date>2023-05-09</date>
5
+ <author>Test Author</author>
6
+ <description>Test module for stroke checking</description>
7
+ <title>Stroke Test</title>
8
+ <url/>
9
+ <tags/>
10
+ <properties/>
11
+ <views>
12
+ <pcbView>
13
+ <layers image="pcb/stroke_test.svg">
14
+ <layer layerId="copper0"/>
15
+ </layers>
16
+ </pcbView>
17
+ </views>
18
+ <connectors>
19
+ <connector id="connector0" type="male" name="Connector 0">
20
+ <description>Connector 0 description</description>
21
+ <views>
22
+ <pcbView>
23
+ <p layer="copper0" svgId="connector0pin"/>
24
+ </pcbView>
25
+ </views>
26
+ </connector>
27
+ <connector id="connector1" type="male" name="Connector 1">
28
+ <description>Connector 1 description</description>
29
+ <views>
30
+ <pcbView>
31
+ <p layer="copper0" svgId="connector1pin"/>
32
+ </pcbView>
33
+ </views>
34
+ </connector>
35
+ <connector id="connector2" type="male" name="Connector 2">
36
+ <description>Connector 2 description</description>
37
+ <views>
38
+ <pcbView>
39
+ <p layer="copper1" svgId="connector2pin"/>
40
+ </pcbView>
41
+ </views>
42
+ </connector>
43
+ <connector id="connector3" type="male" name="Connector 3">
44
+ <description>Connector 3 description</description>
45
+ <views>
46
+ <pcbView>
47
+ <p layer="copper1" svgId="connector3pin"/>
48
+ </pcbView>
49
+ </views>
50
+ </connector>
51
+ <connector id="connector4" type="male" name="Connector 4">
52
+ <description>Connector 4 description</description>
53
+ <views>
54
+ <pcbView>
55
+ <p layer="copper1" svgId="connector4pin"/>
56
+ </pcbView>
57
+ </views>
58
+ </connector>
59
+ </connectors>
60
+ </module>
@@ -0,0 +1,35 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module moduleId="template_svgs_test" fritzingVersion="1.0.0">
3
+ <version>1</version>
4
+ <author>Test</author>
5
+ <title>Template SVGs Test</title>
6
+ <date>2024-01-01</date>
7
+ <label>Test</label>
8
+ <tags><tag>test</tag></tags>
9
+ <properties><property name="family">Test</property></properties>
10
+ <description>Test part referencing template SVGs that should not be reported as missing</description>
11
+ <views>
12
+ <iconView>
13
+ <layers image="icon/generic_ic_dip_8_300mil_icon.svg">
14
+ <layer layerId="icon"/>
15
+ </layers>
16
+ </iconView>
17
+ <breadboardView>
18
+ <layers image="breadboard/generic_ic_dip_8_300mil_bread.svg">
19
+ <layer layerId="breadboard"/>
20
+ </layers>
21
+ </breadboardView>
22
+ <schematicView>
23
+ <layers image="schematic/generic_ic_dip_8_300mil_schem.svg">
24
+ <layer layerId="schematic"/>
25
+ </layers>
26
+ </schematicView>
27
+ <pcbView>
28
+ <layers image="pcb/dip_8_300mil_pcb.svg">
29
+ <layer layerId="copper0"/>
30
+ <layer layerId="copper1"/>
31
+ </layers>
32
+ </pcbView>
33
+ </views>
34
+ <connectors/>
35
+ </module>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module>
3
+ </module>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module>
3
+ <title>Test Title</title>
4
+ </module>
@@ -0,0 +1,27 @@
1
+ <?xml version='1.0' encoding='UTF-8'?>
2
+ <module moduleId="unique_ids_test" fritzingVersion="0.9.3b.04.10.5958">
3
+ <version>1.0</version>
4
+ <author>Test</author>
5
+ <title>Test Part with Unique IDs</title>
6
+ <description>Test part for SVG IDs checker with all unique IDs</description>
7
+ <properties>
8
+ <property name="family">Test</property>
9
+ </properties>
10
+ <views>
11
+ <breadboardView>
12
+ <layers image="breadboard/unique_ids_breadboard.svg">
13
+ <layer layerId="breadboard"/>
14
+ </layers>
15
+ </breadboardView>
16
+ </views>
17
+ <connectors>
18
+ <connector id="connector0" name="pin" type="male">
19
+ <views>
20
+ <breadboardView>
21
+ <p layer="breadboard" terminalId="connector0pin"/>
22
+ </breadboardView>
23
+ </views>
24
+ </connector>
25
+ </connectors>
26
+ <buses/>
27
+ </module>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module>
3
+ <properties>
4
+ <property name="voltage">5V</property>
5
+ <property name="voltage">3.3V</property>
6
+ </properties>
7
+ </module>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module>
3
+ <properties>
4
+ <property name="voltage">5V</property>
5
+ <property name="current">1A</property>
6
+ </properties>
7
+ </module>
@@ -0,0 +1,249 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module fritzingVersion="1.0.3" moduleId="7segment13an">
3
+ <version>4</version>
4
+ <author>Stefan Hermann</author>
5
+ <title>7 Segment Display</title>
6
+ <label>7 Segment</label>
7
+ <date>2011-08-04</date>
8
+ <history data="2024-04-11" author="Kjell"> Interactive elements. Fix dots. Fix terminals and connectors </history>
9
+ <tags>
10
+ <tag>fritzing core</tag>
11
+ <tag>led</tag>
12
+ <tag>display</tag>
13
+ <tag>7</tag>
14
+ <tag>segment</tag>
15
+ </tags>
16
+ <properties>
17
+ <property name="family">Character Display</property>
18
+ <property name="type">7 Segment</property>
19
+ <property name="size">13mm</property>
20
+ <property name="common">anode</property>
21
+ </properties>
22
+ <description>7 Segment Display with common anode.</description>
23
+ <views>
24
+ <iconView>
25
+ <layers image="icon/7segment.svg">
26
+ <layer layerId="icon"/>
27
+ </layers>
28
+ </iconView>
29
+ <breadboardView>
30
+ <layers image="breadboard/7segment_13.svg">
31
+ <layer layerId="breadboard"/>
32
+ </layers>
33
+ </breadboardView>
34
+ <schematicView>
35
+ <layers image="schematic/7segment_13_an.svg">
36
+ <layer layerId="schematic"/>
37
+ </layers>
38
+ </schematicView>
39
+ <pcbView>
40
+ <layers image="pcb/7segment_13.svg">
41
+ <layer layerId="copper0"/>
42
+ <layer layerId="silkscreen"/>
43
+ <layer layerId="copper1"/>
44
+ </layers>
45
+ </pcbView>
46
+ </views>
47
+ <faction type="toggle" name="a">
48
+ <off> Off </off>
49
+ <on> On </on>
50
+ </faction>
51
+ <faction type="toggle" name="b">
52
+ <off> Off </off>
53
+ <on> On </on>
54
+ </faction>
55
+ <faction type="toggle" name="c">
56
+ <off> Off </off>
57
+ <on> On </on>
58
+ </faction>
59
+ <faction type="toggle" name="d">
60
+ <off> Off </off>
61
+ <on> On </on>
62
+ </faction>
63
+ <faction type="toggle" name="e">
64
+ <off> Off </off>
65
+ <on> On </on>
66
+ </faction>
67
+ <faction type="toggle" name="f">
68
+ <off> Off </off>
69
+ <on> On </on>
70
+ </faction>
71
+ <faction type="toggle" name="g">
72
+ <off> Off </off>
73
+ <on> On </on>
74
+ </faction>
75
+ <faction type="toggle" name="dp">
76
+ <off> Off </off>
77
+ <on> On </on>
78
+ </faction>
79
+
80
+ <connectors>
81
+
82
+ <connector id="connector1" name="Segment E" type="male">
83
+ <description>Segment E</description>
84
+ <views>
85
+ <breadboardView>
86
+ <p layer="breadboard" svgId="connector1pin"/>
87
+ </breadboardView>
88
+ <schematicView>
89
+ <p layer="schematic" svgId="connector1pin"/>
90
+ </schematicView>
91
+ <pcbView>
92
+ <p layer="copper1" svgId="connector1pin"/>
93
+ <p layer="copper0" svgId="connector1pin"/>
94
+ </pcbView>
95
+ </views>
96
+ </connector>
97
+
98
+ <connector id="connector2" name="Segment D" type="male">
99
+ <description>Segment D</description>
100
+ <views>
101
+ <breadboardView>
102
+ <p layer="breadboard" svgId="connector2pin"/>
103
+ </breadboardView>
104
+ <schematicView>
105
+ <p layer="schematic" svgId="connector2pin"/>
106
+ </schematicView>
107
+ <pcbView>
108
+ <p layer="copper1" svgId="connector2pin"/>
109
+ <p layer="copper0" svgId="connector2pin"/>
110
+ </pcbView>
111
+ </views>
112
+ </connector>
113
+
114
+ <connector id="connector3" name="common anode" type="male">
115
+ <description>common anode</description>
116
+ <views>
117
+ <breadboardView>
118
+ <p layer="breadboard" svgId="connector3pin"/>
119
+ </breadboardView>
120
+ <schematicView>
121
+ <p layer="schematic" svgId="connector3pin"/>
122
+ </schematicView>
123
+ <pcbView>
124
+ <p layer="copper1" svgId="connector3pin"/>
125
+ <p layer="copper0" svgId="connector3pin"/>
126
+ </pcbView>
127
+ </views>
128
+ </connector>
129
+
130
+ <connector id="connector4" name="Segment C" type="male">
131
+ <description>Segment C</description>
132
+ <views>
133
+ <breadboardView>
134
+ <p layer="breadboard" svgId="connector4pin"/>
135
+ </breadboardView>
136
+ <schematicView>
137
+ <p layer="schematic" svgId="connector4pin"/>
138
+ </schematicView>
139
+ <pcbView>
140
+ <p layer="copper1" svgId="connector4pin"/>
141
+ <p layer="copper0" svgId="connector4pin"/>
142
+ </pcbView>
143
+ </views>
144
+ </connector>
145
+
146
+ <connector id="connector5" name="Segment DP" type="male">
147
+ <description>Segment DP</description>
148
+ <views>
149
+ <breadboardView>
150
+ <p layer="breadboard" svgId="connector5pin"/>
151
+ </breadboardView>
152
+ <schematicView>
153
+ <p layer="schematic" svgId="connector5pin"/>
154
+ </schematicView>
155
+ <pcbView>
156
+ <p layer="copper1" svgId="connector5pin"/>
157
+ <p layer="copper0" svgId="connector5pin"/>
158
+ </pcbView>
159
+ </views>
160
+ </connector>
161
+
162
+ <connector id="connector6" name="Segment B" type="male">
163
+ <description>Segment B</description>
164
+ <views>
165
+ <breadboardView>
166
+ <p layer="breadboard" svgId="connector6pin"/>
167
+ </breadboardView>
168
+ <schematicView>
169
+ <p layer="schematic" svgId="connector6pin"/>
170
+ </schematicView>
171
+ <pcbView>
172
+ <p layer="copper1" svgId="connector6pin"/>
173
+ <p layer="copper0" svgId="connector6pin"/>
174
+ </pcbView>
175
+ </views>
176
+ </connector>
177
+
178
+ <connector id="connector7" name="Segment A" type="male">
179
+ <description>Segment A</description>
180
+ <views>
181
+ <breadboardView>
182
+ <p layer="breadboard" svgId="connector7pin"/>
183
+ </breadboardView>
184
+ <schematicView>
185
+ <p layer="schematic" svgId="connector7pin"/>
186
+ </schematicView>
187
+ <pcbView>
188
+ <p layer="copper1" svgId="connector7pin"/>
189
+ <p layer="copper0" svgId="connector7pin"/>
190
+ </pcbView>
191
+ </views>
192
+ </connector>
193
+
194
+ <connector id="connector8" name="common anode" type="male">
195
+ <description>common anode</description>
196
+ <views>
197
+ <breadboardView>
198
+ <p layer="breadboard" svgId="connector8pin"/>
199
+ </breadboardView>
200
+ <schematicView>
201
+ <p layer="schematic" svgId="connector8pin"/>
202
+ </schematicView>
203
+ <pcbView>
204
+ <p layer="copper1" svgId="connector8pin"/>
205
+ <p layer="copper0" svgId="connector8pin"/>
206
+ </pcbView>
207
+ </views>
208
+ </connector>
209
+
210
+ <connector id="connector9" name="Segment F" type="male">
211
+ <description>Segment F</description>
212
+ <views>
213
+ <breadboardView>
214
+ <p layer="breadboard" svgId="connector9pin"/>
215
+ </breadboardView>
216
+ <schematicView>
217
+ <p layer="schematic" svgId="connector9pin"/>
218
+ </schematicView>
219
+ <pcbView>
220
+ <p layer="copper1" svgId="connector9pin"/>
221
+ <p layer="copper0" svgId="connector9pin"/>
222
+ </pcbView>
223
+ </views>
224
+ </connector>
225
+
226
+ <connector id="connector10" name="Segment G" type="male">
227
+ <description>Segment G</description>
228
+ <views>
229
+ <breadboardView>
230
+ <p layer="breadboard" svgId="connector10pin"/>
231
+ </breadboardView>
232
+ <schematicView>
233
+ <p layer="schematic" svgId="connector10pin"/>
234
+ </schematicView>
235
+ <pcbView>
236
+ <p layer="copper1" svgId="connector10pin"/>
237
+ <p layer="copper0" svgId="connector10pin"/>
238
+ </pcbView>
239
+ </views>
240
+ </connector>
241
+
242
+ </connectors>
243
+ <buses>
244
+ <bus id="anode">
245
+ <nodeMember connectorId="connector3"/>
246
+ <nodeMember connectorId="connector8"/>
247
+ </bus>
248
+ </buses>
249
+ </module>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module>
3
+ <version>invalid</version>
4
+ </module>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module>
3
+ </module>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module>
3
+ <version>1</version>
4
+ </module>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module>
3
+ </module>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module>
3
+ <views>
4
+ <iconView>
5
+ <layers/>
6
+ </iconView>
7
+ </views>
8
+ </module>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg version="1.2" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg">
3
+ <g id="breadboard">
4
+ <circle id="connector0pin" cx="100" cy="100" r="27.5"/>
5
+ <circle id="connector1pin" cx="200" cy="100" r="27.5"/>
6
+ </g>
7
+ </svg>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
3
+ <g id="breadboard">
4
+ <rect x="0" y="0" width="100" height="100" fill="#f0f0f0"/>
5
+ <text id="label" x="10" y="20" fill="#000000" font-family="Noto Sans" font-size="3.5" text-anchor="middle">First Label</text>
6
+ <text id="label" x="10" y="25" fill="#000000" font-family="Noto Sans" font-size="3.5" text-anchor="middle">Second Label</text>
7
+ <text id="label" x="10" y="30" fill="#000000" font-family="Noto Sans" font-size="3.5" text-anchor="middle">Third Label</text>
8
+ <rect id="connector0pin" x="50" y="10" width="5" height="5" fill="#ffcc00"/>
9
+ <text id="unique1" x="60" y="20" fill="#000000" font-family="Noto Sans" font-size="3.5" text-anchor="middle">Unique</text>
10
+ <text id="label" x="10" y="40" fill="#000000" font-family="Noto Sans" font-size="3.5" text-anchor="middle">Fourth Label</text>
11
+ <circle id="label" cx="80" cy="50" r="5" fill="#ff0000"/>
12
+ </g>
13
+ </svg>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
3
+ <g id="breadboard">
4
+ <circle cx="50" cy="50" r="20" fill="red"/>
5
+ <rect x="10" y="10" width="30" height="30" fill="blue"/>
6
+ </g>
7
+ </svg>
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100">
3
+ <g id="breadboard" gorn="1.2.3">
4
+ <circle cx="50" cy="50" r="20" gorn="1.2.3.4" fill="red"/>
5
+ <rect x="10" y="10" width="30" height="30" gorn="1.2.3.5" fill="blue"/>
6
+ </g>
7
+ </svg>
@@ -0,0 +1,102 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="1.2in" height=".4in" version="1.1" viewBox="0 0 108 36" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
3
+ <metadata>
4
+ <rdf:RDF>
5
+ <cc:Work rdf:about="">
6
+ <dc:format>image/svg+xml</dc:format>
7
+ <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
8
+ <dc:title/>
9
+ </cc:Work>
10
+ </rdf:RDF>
11
+ </metadata>
12
+ <g id="breadboard" transform="translate(-105.71 -79.658)">
13
+ <g>
14
+ <rect id="connector6pin" x="113.12" y="100.6" width="3.189" height="3.189" rx="0" ry="0" fill="#8c8c8c"/>
15
+ <rect x="105.71" y="80.934" width="18" height="34.724" rx="0" ry="0" fill="#00ac00"/>
16
+ <rect x="106.16" y="93.302" width="17.1" height="22.158" rx="0" ry="0" fill="#00a500"/>
17
+ <rect x="109.93" y="97.41" width="9.5669" height="9.5669" fill="#514c38"/>
18
+ </g>
19
+ <g transform="translate(.78222 -24.576)">
20
+ <path transform="translate(105.71 80.934)" d="m3.4355 50.619-3.1895 3.1895h15.943l-3.1875-3.1895h-2e-3 -9.5645z" fill="#00ac00"/>
21
+ <path transform="translate(105.71 80.934)" d="m16.189 37.865-3.1875 3.1875v9.5664l3.1875 3.1895v-15.943z" fill="#00a000"/>
22
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865v15.943l3.1895-3.1895v-9.5645-2e-3l-3.1895-3.1875z" fill="#009400"/>
23
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865 3.1895 3.1875h9.5664l3.1875-3.1875h-15.943z" fill="#008400"/>
24
+ </g>
25
+ <rect id="connector0pin" x="113.12" y="109.56" width="3.189" height="3.189" fill="none"/>
26
+ <g transform="translate(18)">
27
+ <g>
28
+ <rect id="connector7pin" x="113.12" y="100.6" width="3.189" height="3.189" rx="0" ry="0" fill="#8c8c8c"/>
29
+ <rect x="105.71" y="80.934" width="18" height="34.724" rx="0" ry="0" fill="#00ac00"/>
30
+ <rect x="106.16" y="93.302" width="17.1" height="22.158" rx="0" ry="0" fill="#00a500"/>
31
+ <rect x="109.93" y="97.41" width="9.5669" height="9.5669" fill="#514c38"/>
32
+ </g>
33
+ <g transform="translate(.78222 -24.576)">
34
+ <path transform="translate(105.71 80.934)" d="m3.4355 50.619-3.1895 3.1895h15.943l-3.1875-3.1895h-2e-3 -9.5645z" fill="#00ac00"/>
35
+ <path transform="translate(105.71 80.934)" d="m16.189 37.865-3.1875 3.1875v9.5664l3.1875 3.1895v-15.943z" fill="#00a000"/>
36
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865v15.943l3.1895-3.1895v-9.5645-2e-3l-3.1895-3.1875z" fill="#009400"/>
37
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865 3.1895 3.1875h9.5664l3.1875-3.1875h-15.943z" fill="#008400"/>
38
+ </g>
39
+ <rect id="connector1pin" x="113.12" y="109.56" width="3.189" height="3.189" fill="none"/>
40
+ </g>
41
+ <g transform="translate(36)">
42
+ <g>
43
+ <rect id="connector8pin" x="113.12" y="100.6" width="3.189" height="3.189" rx="0" ry="0" fill="#8c8c8c"/>
44
+ <rect x="105.71" y="80.934" width="18" height="34.724" rx="0" ry="0" fill="#00ac00"/>
45
+ <rect x="106.16" y="93.302" width="17.1" height="22.158" rx="0" ry="0" fill="#00a500"/>
46
+ <rect x="109.93" y="97.41" width="9.5669" height="9.5669" fill="#514c38"/>
47
+ </g>
48
+ <g transform="translate(.78222 -24.576)">
49
+ <path transform="translate(105.71 80.934)" d="m3.4355 50.619-3.1895 3.1895h15.943l-3.1875-3.1895h-2e-3 -9.5645z" fill="#00ac00"/>
50
+ <path transform="translate(105.71 80.934)" d="m16.189 37.865-3.1875 3.1875v9.5664l3.1875 3.1895v-15.943z" fill="#00a000"/>
51
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865v15.943l3.1895-3.1895v-9.5645-2e-3l-3.1895-3.1875z" fill="#009400"/>
52
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865 3.1895 3.1875h9.5664l3.1875-3.1875h-15.943z" fill="#008400"/>
53
+ </g>
54
+ <rect id="connector2pin" x="113.12" y="109.56" width="3.189" height="3.189" fill="none"/>
55
+ </g>
56
+ <g transform="translate(54)">
57
+ <g>
58
+ <rect id="connector9pin" x="113.12" y="100.6" width="3.189" height="3.189" rx="0" ry="0" fill="#8c8c8c"/>
59
+ <rect x="105.71" y="80.934" width="18" height="34.724" rx="0" ry="0" fill="#00ac00"/>
60
+ <rect x="106.16" y="93.302" width="17.1" height="22.158" rx="0" ry="0" fill="#00a500"/>
61
+ <rect x="109.93" y="97.41" width="9.5669" height="9.5669" fill="#514c38"/>
62
+ </g>
63
+ <g transform="translate(.78222 -24.576)">
64
+ <path transform="translate(105.71 80.934)" d="m3.4355 50.619-3.1895 3.1895h15.943l-3.1875-3.1895h-2e-3 -9.5645z" fill="#00ac00"/>
65
+ <path transform="translate(105.71 80.934)" d="m16.189 37.865-3.1875 3.1875v9.5664l3.1875 3.1895v-15.943z" fill="#00a000"/>
66
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865v15.943l3.1895-3.1895v-9.5645-2e-3l-3.1895-3.1875z" fill="#009400"/>
67
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865 3.1895 3.1875h9.5664l3.1875-3.1875h-15.943z" fill="#008400"/>
68
+ </g>
69
+ <rect id="connector3pin" x="113.12" y="109.56" width="3.189" height="3.189" fill="none"/>
70
+ </g>
71
+ <g transform="translate(72)">
72
+ <g>
73
+ <rect id="connector10pin" x="113.12" y="100.6" width="3.189" height="3.189" rx="0" ry="0" fill="#8c8c8c"/>
74
+ <rect x="105.71" y="80.934" width="18" height="34.724" rx="0" ry="0" fill="#00ac00"/>
75
+ <rect x="106.16" y="93.302" width="17.1" height="22.158" rx="0" ry="0" fill="#00a500"/>
76
+ <rect x="109.93" y="97.41" width="9.5669" height="9.5669" fill="#514c38"/>
77
+ </g>
78
+ <g transform="translate(.78222 -24.576)">
79
+ <path transform="translate(105.71 80.934)" d="m3.4355 50.619-3.1895 3.1895h15.943l-3.1875-3.1895h-2e-3 -9.5645z" fill="#00ac00"/>
80
+ <path transform="translate(105.71 80.934)" d="m16.189 37.865-3.1875 3.1875v9.5664l3.1875 3.1895v-15.943z" fill="#00a000"/>
81
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865v15.943l3.1895-3.1895v-9.5645-2e-3l-3.1895-3.1875z" fill="#009400"/>
82
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865 3.1895 3.1875h9.5664l3.1875-3.1875h-15.943z" fill="#008400"/>
83
+ </g>
84
+ <rect id="connector4pin" x="113.12" y="109.56" width="3.189" height="3.189" fill="none"/>
85
+ </g>
86
+ <g transform="translate(90)">
87
+ <g>
88
+ <rect id="connector11pin" x="113.12" y="100.6" width="3.189" height="3.189" rx="0" ry="0" fill="#8c8c8c"/>
89
+ <rect x="105.71" y="80.934" width="18" height="34.724" rx="0" ry="0" fill="#00ac00"/>
90
+ <rect x="106.16" y="93.302" width="17.1" height="22.158" rx="0" ry="0" fill="#00a500"/>
91
+ <rect x="109.93" y="97.41" width="9.5669" height="9.5669" fill="#514c38"/>
92
+ </g>
93
+ <g transform="translate(.78222 -24.576)">
94
+ <path transform="translate(105.71 80.934)" d="m3.4355 50.619-3.1895 3.1895h15.943l-3.1875-3.1895h-2e-3 -9.5645z" fill="#00ac00"/>
95
+ <path transform="translate(105.71 80.934)" d="m16.189 37.865-3.1875 3.1875v9.5664l3.1875 3.1895v-15.943z" fill="#00a000"/>
96
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865v15.943l3.1895-3.1895v-9.5645-2e-3l-3.1895-3.1875z" fill="#009400"/>
97
+ <path transform="translate(105.71 80.934)" d="m0.24609 37.865 3.1895 3.1875h9.5664l3.1875-3.1875h-15.943z" fill="#008400"/>
98
+ </g>
99
+ <rect id="connector5pin" x="113.12" y="109.56" width="3.189" height="3.189" fill="none"/>
100
+ </g>
101
+ </g>
102
+ </svg>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100" height="100">
3
+ <g id="breadboard">
4
+ <!-- Invalid: silkscreen nested inside breadboard -->
5
+ <g id="silkscreen">
6
+ <rect x="10" y="10" width="20" height="20" fill="white"/>
7
+ </g>
8
+ <!-- Invalid: copper0 nested inside breadboard -->
9
+ <g id="copper0">
10
+ <circle cx="50" cy="50" r="10" fill="gold"/>
11
+ </g>
12
+ </g>
13
+ </svg>
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100" height="100">
3
+ <g id="breadboard">
4
+ <rect x="10" y="10" width="80" height="80" fill="none" stroke="black"/>
5
+ <circle cx="50" cy="50" r="30" fill="none" stroke="black"/>
6
+ </g>
7
+ <g id="silkscreen">
8
+ <rect x="5" y="5" width="90" height="90" fill="none" stroke="white"/>
9
+ </g>
10
+ <g id="copper0">
11
+ <circle cx="20" cy="20" r="10" fill="gold"/>
12
+ </g>
13
+ </svg>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg>
3
+ <g id="valid_matrix" transform="matrix(1,0,0,1,0,0)"/>
4
+ <g id="valid_matrix_space" transform="matrix(1 0 0 1 0 0)"/>
5
+ <g id="invalid_empty" transform="matrix(6,0,0,6,,0)"/>
6
+ <g id="invalid_count" transform="matrix(1,0,0,1,0)"/>
7
+ <g id="invalid_value" transform="matrix(a,0,0,1,0,0)"/>
8
+ <g id="malformed" transform="matrix(1,0,0,1,0"/>
9
+ <g id="valid_leading_dot" transform="matrix(.5 -.1 1 0 .32 .47)"/>
10
+ <g id="invalid_trailing_dot" transform="matrix(0 -1 1 0 32.9 47.)"/>
11
+ </svg>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg version="1.2" baseProfile="tiny" xmlns="http://www.w3.org/2000/svg">
3
+ <g id="breadboard">
4
+ <circle id="connector0pin" cx="100" cy="100" r="27.5"/>
5
+ <circle id="connector1pin" cx="200" cy="100" r="27.5"/>
6
+ <circle id="connector2pin" cx="300" cy="100" r="27.5"/> <!-- This one is in SVG but not referenced in FZP -->
7
+ </g>
8
+ </svg>