pixalynx/keyboard

This code defines the physical layout and key components of a USB-C dongle featuring an nRF52840 microcontroller with antenna, USB-A connector, status LED, pair button, firmware debug test points, and associated passive components and interface connectors.

Version
1.0.0
License
unset
Stars
0

dist/index.cjs

'use strict';

var jsxRuntime = require('react/jsx-runtime');
var react = require('react');
var seveibar_KeyHotSocket = require('@tsci/seveibar.KeyHotSocket');
var seveibar_KeyShaftForHotSocket = require('@tsci/seveibar.KeyShaftForHotSocket');

const pinLabels$c = {
    pin1: ["P1_11"],
    pin2: ["P1_10"],
    pin3: ["P0_03"],
    pin4: ["P0_28"],
    pin5: ["GND1"],
    pin6: ["P1_13"],
    pin7: ["P0_02"],
    pin8: ["P0_29"],
    pin9: ["P0_31"],
    pin10: ["P0_30"],
    pin11: ["P0_00"],
    pin12: ["P0_26"],
    pin13: ["P0_01"],
    pin14: ["P0_06"],
    pin15: ["P0_05"],
    pin16: ["P0_08"],
    pin17: ["P1_09"],
    pin18: ["P0_04"],
    pin19: ["VDD"],
    pin20: ["P0_12"],
    pin21: ["GND2"],
    pin22: ["P0_07"],
    pin23: ["VDDH"],
    pin24: ["GND3"],
    pin25: ["DCCH"],
    pin26: ["RESET"],
    pin27: ["VBUS"],
    pin28: ["P0_15"],
    pin29: ["D_NEG"],
    pin30: ["P0_17"],
    pin31: ["D_POS"],
    pin32: ["P0_20"],
    pin33: ["P0_13"],
    pin34: ["P0_22"],
    pin35: ["P0_24"],
    pin36: ["P1_00"],
    pin37: ["SWDIO"],
    pin38: ["P1_02"],
    pin39: ["SWDCLK"],
    pin40: ["P1_04"],
    pin41: ["P0_09"],
    pin42: ["P1_06"],
    pin43: ["P0_10"]
};
const pinAttributes$5 = {
    pin5: { requiresGround: true },
    pin21: { requiresGround: true },
    pin23: { requiresPower: true },
    pin24: { requiresGround: true }
};
// Pin names per the Ebyte E73-2G4M08S1C user manual (v1.x pin definition
// table). VDD is the REG0 output when the module is powered through VDDH.
const E73_2G4M08S1C = (props) => {
    return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$c, pinAttributes: pinAttributes$5, supplierPartNumbers: {
            "jlcpcb": [
                "C356849"
            ]
        }, manufacturerPartNumber: "E73-2G4M08S1C", footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin43"], pcbX: "-6.50494mm", pcbY: "-6.204458mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin42"], pcbX: "-4.404868mm", pcbY: "-5.569458mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin41"], pcbX: "-6.50494mm", pcbY: "-4.934458mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin40"], pcbX: "-4.405122mm", pcbY: "-4.299458mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin39"], pcbX: "-6.50494mm", pcbY: "-3.664458mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin38"], pcbX: "-4.405122mm", pcbY: "-3.029458mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin37"], pcbX: "-6.50494mm", pcbY: "-2.394458mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin36"], pcbX: "-4.405122mm", pcbY: "-1.759458mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin35"], pcbX: "-6.50494mm", pcbY: "-1.124458mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin34"], pcbX: "-4.405122mm", pcbY: "-0.489458mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin33"], pcbX: "-6.50494mm", pcbY: "0.145542mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin32"], pcbX: "-4.405122mm", pcbY: "0.780542mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin31"], pcbX: "-6.50494mm", pcbY: "1.415542mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin30"], pcbX: "-4.405122mm", pcbY: "2.050542mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin29"], pcbX: "-6.50494mm", pcbY: "2.685542mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin28"], pcbX: "-4.405122mm", pcbY: "3.320542mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin27"], pcbX: "-6.50494mm", pcbY: "3.955542mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin26"], pcbX: "-6.50494mm", pcbY: "5.225542mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin25"], pcbX: "-4.445mm", pcbY: "7.825486mm", width: "0.8999982mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin24"], pcbX: "-3.81mm", pcbY: "5.725414mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin23"], pcbX: "-3.175mm", pcbY: "7.825486mm", width: "0.8999982mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin22"], pcbX: "-2.54mm", pcbY: "5.725414mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin21"], pcbX: "-1.905mm", pcbY: "7.825486mm", width: "0.8999982mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin20"], pcbX: "-1.27mm", pcbY: "5.725414mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin19"], pcbX: "-0.635mm", pcbY: "7.825486mm", width: "0.8999982mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin18"], pcbX: "0mm", pcbY: "5.725414mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin17"], pcbX: "0.635mm", pcbY: "7.825486mm", width: "0.8999982mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin16"], pcbX: "1.27mm", pcbY: "5.725414mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin15"], pcbX: "1.905mm", pcbY: "7.825486mm", width: "0.8999982mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin14"], pcbX: "2.54mm", pcbY: "5.725414mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin13"], pcbX: "3.175mm", pcbY: "7.825486mm", width: "0.8999982mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin12"], pcbX: "3.81mm", pcbY: "5.725414mm", width: "0.8999982mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin11"], pcbX: "4.445mm", pcbY: "7.825486mm", width: "0.8999982mm", height: "1.999996mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin10"], pcbX: "6.50494mm", pcbY: "5.225542mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin9"], pcbX: "6.50494mm", pcbY: "3.955542mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin8"], pcbX: "6.50494mm", pcbY: "2.685542mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin7"], pcbX: "6.50494mm", pcbY: "1.415542mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "6.50494mm", pcbY: "0.145542mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "6.50494mm", pcbY: "-1.124458mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "6.50494mm", pcbY: "-2.394458mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "6.500114mm", pcbY: "-3.68935mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "6.50494mm", pcbY: "-4.934458mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "6.50494mm", pcbY: "-6.204458mm", width: "1.999996mm", height: "0.8999982mm", shape: "rect" }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 5.07606300000009, "y": 7.811515999999983 }, { "x": 6.499631399999885, "y": 7.811515999999983 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -5.0803809999999885, "y": -7.428484000000026 }, { "x": 5.07961899999998, "y": -7.428484000000026 }, { "x": 5.07961899999998, "y": -9.587483999999904 }, { "x": -5.0803809999999885, "y": -9.587483999999904 }, { "x": -5.0803809999999885, "y": -7.428484000000026 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 3.806062999999881, "y": 7.811515999999983 }, { "x": 3.813682999999969, "y": 7.811515999999983 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 2.536063000000013, "y": 7.811515999999983 }, { "x": 2.543683000000101, "y": 7.811515999999983 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 1.266063000000031, "y": 7.811515999999983 }, { "x": 1.2736830000000054, "y": 7.811515999999983 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -0.003937000000064472, "y": 7.811515999999983 }, { "x": 0.0036830000000236396, "y": 7.811515999999983 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -1.2739370000000463, "y": 7.811515999999983 }, { "x": -1.2663169999999582, "y": 7.811515999999983 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -2.543937000000028, "y": 7.811515999999983 }, { "x": -2.5363170000000537, "y": 7.811515999999983 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -3.81393700000001, "y": 7.811515999999983 }, { "x": -3.806316999999922, "y": 7.811515999999983 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": 7.811515999999983 }, { "x": -5.076316999999904, "y": 7.811515999999983 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": -6.835647999999992 }, { "x": 6.499631399999885, "y": -10.18847340000002 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": -5.565648000000124 }, { "x": 6.499631399999885, "y": -5.573267999999871 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": -4.295648000000028 }, { "x": 6.499631399999885, "y": -4.303267999999889 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": -3.0256480000000465 }, { "x": 6.499631399999885, "y": -3.033268000000021 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": -1.7556480000000647 }, { "x": 6.499631399999885, "y": -1.7632679999999255 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": -0.4856479999999692 }, { "x": 6.499631399999885, "y": -0.49326799999994364 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": 0.7843519999998989 }, { "x": 6.499631399999885, "y": 0.7767320000000382 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": 2.0543519999998807 }, { "x": 6.499631399999885, "y": 2.0467320000001337 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": 3.324326600000063 }, { "x": 6.499631399999885, "y": 3.316732000000002 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": 4.594351999999958 }, { "x": 6.499631399999885, "y": 4.5867066000000705 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": 7.811515999999983 }, { "x": 6.499631399999885, "y": 5.856732000000079 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": -6.835647999999992 }, { "x": -6.500393400000007, "y": -10.18847340000002 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": -5.565673399999923 }, { "x": -6.500393400000007, "y": -5.573267999999871 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": -4.295648000000028 }, { "x": -6.500393400000007, "y": -4.30329340000003 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": -3.0256480000000465 }, { "x": -6.500393400000007, "y": -3.033268000000021 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": -1.7556480000000647 }, { "x": -6.500393400000007, "y": -1.7632679999999255 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": -0.4856479999999692 }, { "x": -6.500393400000007, "y": -0.49326799999994364 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": 0.7843519999998989 }, { "x": -6.500393400000007, "y": 0.7767320000000382 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": 2.0543519999998807 }, { "x": -6.500393400000007, "y": 2.0467320000001337 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": 3.324351999999976 }, { "x": -6.500393400000007, "y": 3.316732000000002 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": 4.594351999999958 }, { "x": -6.500393400000007, "y": 4.586731999999984 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": -6.500393400000007, "y": 7.811515999999983 }, { "x": -6.500393400000007, "y": 5.856732000000079 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ "x": 6.499631399999885, "y": -10.18847340000002 }, { "x": -6.50036799999998, "y": -10.18847340000002 }] }), jsxRuntime.jsx("silkscreencircle", { pcbX: "6.985mm", pcbY: "-7.063486mm", radius: "0.127mm" }), jsxRuntime.jsx("silkscreenrect", { pcbX: "-3.238881mm", pcbY: "-8.571484mm", width: "1.397mm", height: "0.508mm", strokeWidth: "0.254mm" }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0.012319mm", pcbY: "9.827516mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ "x": -7.743381000000113, "y": 9.07751600000006 }, { "x": 7.768018999999981, "y": 9.07751600000006 }, { "x": 7.768018999999981, "y": -10.447084000000018 }, { "x": -7.743381000000113, "y": -10.447084000000018 }, { "x": -7.743381000000113, "y": 9.07751600000006 }] })] }), cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C356849.obj?uuid=b3edabdd105b4c4bb978bf18f45b7e60",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C356849.step?uuid=b3edabdd105b4c4bb978bf18f45b7e60",
            pcbRotationOffset: 0,
            modelOriginPosition: { x: 0, y: 1.1784837999999809, z: 0 },
        }, ...props }));
};

const pinLabels$b = {
    pin1: ["DO"],
    pin2: ["GND"],
    pin3: ["DI"],
    pin4: ["VDD"]
};
const pinAttributes$4 = {
    pin2: { requiresGround: true },
    pin4: { requiresPower: true }
};
const WS2812C_2020_V1 = (props) => {
    return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$b, pinAttributes: pinAttributes$4, supplierPartNumbers: {
            "jlcpcb": [
                "C2976072"
            ]
        }, manufacturerPartNumber: "WS2812C-2020-V1", footprint: "dfn4_p1.1001mm_w2.7301mm_pw0.7mm_pl0.9mm", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2976072.obj?uuid=caa88715b11f4aa189b02e52bbb84e4f",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2976072.step?uuid=caa88715b11f4aa189b02e52bbb84e4f",
            pcbRotationOffset: 0,
            modelOriginPosition: { "x": 0, "y": 0, "z": -0.10003630000001063 },
        }, ...props }));
};

const pinLabels$a = {
    pin1: ["cathode", "neg"],
    pin2: ["anode", "pos"]
};
const A_1N4148WS = (props) => {
    const { name = "D1", ...restProps } = props;
    return (jsxRuntime.jsx("diode", { name: name, pinLabels: pinLabels$a, supplierPartNumbers: {
            "jlcpcb": [
                "C57759"
            ]
        }, manufacturerPartNumber: "1N4148WS", footprint: "smdpads2_p2.3452mm_pw1mm_ph0.75mm", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C57759.obj?uuid=973acf8a660c48b1975f1ba1c890421a",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C57759.step?uuid=973acf8a660c48b1975f1ba1c890421a",
            pcbRotationOffset: 0,
            modelOriginPosition: { x: 0.000012699999956566899, y: 0.000012699999842880061, z: -0.01 },
        }, ...restProps }));
};

const pinLabels$9 = {
    pin1: ["N_OE"],
    pin2: ["A"],
    pin3: ["GND"],
    pin4: ["Y"],
    pin5: ["VCC"]
};
const pinAttributes$3 = {
    pin3: { requiresGround: true },
    pin5: { requiresPower: true }
};
const SN74AHCT1G125DBVR = (props) => {
    return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$9, pinAttributes: pinAttributes$3, supplierPartNumbers: {
            "jlcpcb": [
                "C7484"
            ]
        }, manufacturerPartNumber: "SN74AHCT1G125DBVR", footprint: "sot25_w2.6mm_pl1.1mm_pin1location(rightside,bottom)", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C7484.obj?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C7484.step?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
            pcbRotationOffset: 180,
            modelOriginPosition: { x: 0, y: -12700000070253736e-21, z: -0.049083 },
        }, ...props }));
};

// USB-C 16-pin top-mount receptacle, JLCPCB basic part C2765186
// ("TYPE-C 16PIN 2MD(073)"). Geometry is a verbatim copy of the footprint
// the parts engine fetches for this part number (12 SMD contacts at
// 0.5mm pitch, four plated shell slots, two 0.7mm alignment-peg holes),
// with the pegs expressed only as NPTH holes. The fetched version also
// carries the pegs as pcb_cutouts, which the placement checker flags as
// the connector overlapping its own cutouts and that in turn suppresses
// autorouting -- so the footprint is spelled out here instead. Pin numbers
// follow tscircuit's canonical USB-C order so `standard="usb_c"` still
// drives the schematic symbol.
const pinLabels$8 = {
    pin1: ["GND1"],
    pin2: ["VBUS1"],
    pin3: ["CC1"],
    pin4: ["DP1"],
    pin5: ["DM1", "DN1"],
    pin6: ["SBU1"],
    pin7: ["SBU2"],
    pin8: ["DM2", "DN2"],
    pin9: ["DP2"],
    pin10: ["CC2"],
    pin11: ["VBUS2"],
    pin12: ["GND2"],
    pin13: ["SHELL1"],
    pin14: ["SHELL2"],
    pin15: ["SHELL3"],
    pin16: ["SHELL4"],
};
const wide = { width: "0.55mm", height: "1.1mm", shape: "rect" };
const narrow = { width: "0.3mm", height: "1.1mm", shape: "rect" };
const TYPE_C_16PIN_2MD_073 = (props) => {
    return (jsxRuntime.jsx("connector", { standard: "usb_c", pinLabels: pinLabels$8, manufacturerPartNumber: "TYPE-C 16PIN 2MD(073)", supplierPartNumbers: { jlcpcb: ["C2765186"] }, footprint: jsxRuntime.jsxs("footprint", { children: [jsxRuntime.jsx("smtpad", { portHints: ["pin1"], pcbX: "-3.2mm", pcbY: "2.125mm", ...wide }), jsxRuntime.jsx("smtpad", { portHints: ["pin2"], pcbX: "-2.4mm", pcbY: "2.125mm", ...wide }), jsxRuntime.jsx("smtpad", { portHints: ["pin7"], pcbX: "-1.75mm", pcbY: "2.125mm", ...narrow }), jsxRuntime.jsx("smtpad", { portHints: ["pin3"], pcbX: "-1.25mm", pcbY: "2.125mm", ...narrow }), jsxRuntime.jsx("smtpad", { portHints: ["pin8"], pcbX: "-0.75mm", pcbY: "2.125mm", ...narrow }), jsxRuntime.jsx("smtpad", { portHints: ["pin4"], pcbX: "-0.25mm", pcbY: "2.125mm", ...narrow }), jsxRuntime.jsx("smtpad", { portHints: ["pin5"], pcbX: "0.25mm", pcbY: "2.125mm", ...narrow }), jsxRuntime.jsx("smtpad", { portHints: ["pin9"], pcbX: "0.75mm", pcbY: "2.125mm", ...narrow }), jsxRuntime.jsx("smtpad", { portHints: ["pin6"], pcbX: "1.25mm", pcbY: "2.125mm", ...narrow }), jsxRuntime.jsx("smtpad", { portHints: ["pin10"], pcbX: "1.75mm", pcbY: "2.125mm", ...narrow }), jsxRuntime.jsx("smtpad", { portHints: ["pin11"], pcbX: "2.4mm", pcbY: "2.125mm", ...wide }), jsxRuntime.jsx("smtpad", { portHints: ["pin12"], pcbX: "3.2mm", pcbY: "2.125mm", ...wide }), jsxRuntime.jsx("platedhole", { portHints: ["pin13"], shape: "pill", pcbX: "-4.325mm", pcbY: "1.575mm", outerWidth: "1.1mm", outerHeight: "1.9mm", holeWidth: "0.6mm", holeHeight: "1.4mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin14"], shape: "pill", pcbX: "4.325mm", pcbY: "1.575mm", outerWidth: "1.1mm", outerHeight: "1.9mm", holeWidth: "0.6mm", holeHeight: "1.4mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin15"], shape: "pill", pcbX: "-4.325mm", pcbY: "-2.625mm", outerWidth: "1.2mm", outerHeight: "1.6mm", holeWidth: "0.6mm", holeHeight: "1.0mm" }), jsxRuntime.jsx("platedhole", { portHints: ["pin16"], shape: "pill", pcbX: "4.325mm", pcbY: "-2.625mm", outerWidth: "1.2mm", outerHeight: "1.6mm", holeWidth: "0.6mm", holeHeight: "1.0mm" }), jsxRuntime.jsx("hole", { pcbX: "-2.89mm", pcbY: "1.055mm", diameter: "0.7mm" }), jsxRuntime.jsx("hole", { pcbX: "2.89mm", pcbY: "1.055mm", diameter: "0.7mm" }), jsxRuntime.jsx("silkscreenpath", { route: [{ x: 4.572, y: -1.647 }, { x: 4.572, y: 0.347 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ x: 4.572, y: -5.076 }, { x: 4.572, y: -3.603 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ x: -4.5, y: -1.644 }, { x: -4.5, y: 0.344 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ x: -4.5, y: -5.225 }, { x: -4.5, y: -3.606 }] }), jsxRuntime.jsx("silkscreenpath", { route: [{ x: 4.5, y: -5.225 }, { x: -4.5, y: -5.225 }] }), jsxRuntime.jsx("silkscreentext", { text: "{NAME}", pcbX: "0mm", pcbY: "3.6mm", anchorAlignment: "center", fontSize: "1mm" }), jsxRuntime.jsx("courtyardoutline", { outline: [{ x: -4.753, y: 2.934 }, { x: 4.815, y: 2.934 }, { x: 4.815, y: -5.491 }, { x: -4.753, y: -5.491 }, { x: -4.753, y: 2.934 }] })] }), cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2765186.obj?uuid=4ee8413127e64716b804db03d4b340ae",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2765186.step?uuid=4ee8413127e64716b804db03d4b340ae",
            pcbRotationOffset: 0,
            modelOriginPosition: { x: -127e-7, y: 1.57499705, z: -1.6800018 },
        }, ...props }));
};

const pinLabels$7 = {
    pin1: ["TEMP"],
    pin2: ["PROG"],
    pin3: ["GND"],
    pin4: ["VCC"],
    pin5: ["BAT"],
    pin6: ["N_STDBY"],
    pin7: ["N_CHRG"],
    pin8: ["CE"],
    pin9: ["EP"]
};
const pinAttributes$2 = {
    pin3: { requiresGround: true },
    pin4: { requiresPower: true }
};
const footprinterPinLabels$1 = {
    ...pinLabels$7,
    "pin9": [...pinLabels$7["pin9"], "thermalpad"],
};
const TP4056_42_ESOP8 = (props) => {
    return (jsxRuntime.jsx("chip", { pinLabels: footprinterPinLabels$1, pinAttributes: pinAttributes$2, supplierPartNumbers: {
            "jlcpcb": [
                "C16581"
            ]
        }, manufacturerPartNumber: "TP4056-42-ESOP8", footprint: "dfn8_thermalpad2.4mmx3.3mm_w7.02mm_pl1.2mm_pin1location(leftside,bottom)", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C16581.obj?uuid=9e2b03dd4dce46a190ce3fa245369fb2",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C16581.step?uuid=9e2b03dd4dce46a190ce3fa245369fb2",
            pcbRotationOffset: 90,
            modelOriginPosition: { x: 0.000012700000013410317, y: -12699999984988608e-21, z: -0.099425 },
        }, ...props }));
};

const pinLabels$6 = {
    pin1: ["pin1"],
    pin2: ["pin2"],
    pin3: ["pin3"],
    pin4: ["pin4"]
};
const S2B_PH_SM4_TB_LF__SN_ = (props) => {
    return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$6, supplierPartNumbers: {
            "jlcpcb": [
                "C295747"
            ]
        }, manufacturerPartNumber: "S2B-PH-SM4-TB(LF)(SN)", footprint: "fpc2_p2mm_pw1mm_pl3.8mm_mpx6.7mm_mpy5.85mm_mpw1.5mm_mpl3.4mm", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C295747.obj?uuid=e009435048914ef2b30a218c3065ed28",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C295747.step?uuid=e009435048914ef2b30a218c3065ed28",
            pcbRotationOffset: 0,
            modelOriginPosition: { x: -0.9999872999999297, y: 2.8499996000001833, z: 0 },
        }, ...props }));
};

const pinLabels$5 = {
    pin1: ["cathode", "neg"],
    pin2: ["anode", "pos"]
};
const SS14L = (props) => {
    const { name = "D1", ...restProps } = props;
    return (jsxRuntime.jsx("diode", { name: name, pinLabels: pinLabels$5, supplierPartNumbers: {
            "jlcpcb": [
                "C190475"
            ]
        }, manufacturerPartNumber: "SS14L", footprint: "smdpads2_p3.3mm_pw1mm_ph1.2mm", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C190475.obj?uuid=c6882627c5f64d6e8dd3b5c64b2adb0a",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C190475.step?uuid=c6882627c5f64d6e8dd3b5c64b2adb0a",
            pcbRotationOffset: 0,
            modelOriginPosition: { x: -12699999956566899e-21, y: -0.007010400000012851, z: -0.21 },
        }, ...restProps }));
};

const pinLabels$4 = {
    pin1: ["pin1"],
    pin2: ["pin2"],
    pin3: ["pin3"],
    pin4: ["pin4"]
};
const footprinterPinLabels = {
    ...pinLabels$4,
    "pin4": [...pinLabels$4["pin4"], "pin5", "pin6", "pin7"],
};
const MSK12C02 = (props) => {
    const { name = "SW1", ...restProps } = props;
    return (jsxRuntime.jsx("switch", { name: name, pinLabels: footprinterPinLabels, supplierPartNumbers: {
            "jlcpcb": [
                "C431540"
            ]
        }, manufacturerPartNumber: "MSK12C02", footprint: "smdslideswitch7_signalcols4_missing(2)_p1.5mm_pw0.6mm_pl1.524mm_mounty-2.2501mm_mpx7.1999mm_mpy2.3mm_mpw1.2mm_mpl0.7mm_holex1.5mm_holey-2.2502mm_holed0.9mm", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C431540.obj?uuid=fc12522ae2f04394b021187ce17b23bb",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C431540.step?uuid=fc12522ae2f04394b021187ce17b23bb",
            pcbRotationOffset: 180,
            modelOriginPosition: { x: 0.000025400000026820635, y: -0.7060877499999378, z: -10000000000287557e-22 },
        }, ...restProps }));
};

const pinLabels$3 = {
    pin1: ["OUT"],
    pin2: ["GND"],
    pin3: ["ISET"],
    pin4: ["EN"],
    pin5: ["IN"]
};
const SY6280AAC = (props) => {
    const { name = "SW1", ...restProps } = props;
    return (jsxRuntime.jsx("switch", { name: name, pinLabels: pinLabels$3, supplierPartNumbers: {
            "jlcpcb": [
                "C55136"
            ]
        }, manufacturerPartNumber: "SY6280AAC", footprint: "dfn6_missing(5)_p0.95mm_w3.47mm_pw0.49mm_pl1.16mm_pin1location(leftside,bottom)", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C55136.obj?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C55136.step?uuid=460193f9bf2d42e58cf3c2f675b07dc6",
            pcbRotationOffset: 90,
            modelOriginPosition: { x: 0.004489450000050965, y: 0.000012700000070253736, z: -0.049083 },
        }, ...restProps }));
};

const pinLabels$2 = {
    pin1: ["SW"],
    pin2: ["GND"],
    pin3: ["FB"],
    pin4: ["EN"],
    pin5: ["IN"],
    pin6: ["NC"]
};
const pinAttributes$1 = {
    pin2: { requiresGround: true },
    pin6: { doNotConnect: true }
};
const MT3608 = (props) => {
    return (jsxRuntime.jsx("chip", { pinLabels: pinLabels$2, pinAttributes: pinAttributes$1, supplierPartNumbers: {
            "jlcpcb": [
                "C84817"
            ]
        }, manufacturerPartNumber: "MT3608", footprint: "dfn6_p0.95mm_w3.3702mm_pw0.532mm_pl1.072mm_pin1location(leftside,bottom)", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C84817.obj?uuid=229b69761e2c45dba6a83d8866dec72d",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C84817.step?uuid=229b69761e2c45dba6a83d8866dec72d",
            pcbRotationOffset: 90,
            modelOriginPosition: { x: -12700000070253736e-21, y: 0.000012700000070253736, z: -0.048939 },
        }, ...props }));
};

const SWPA4030S220MT = (props) => {
    return (jsxRuntime.jsx("inductor", { inductance: "22uH", supplierPartNumbers: {
            "jlcpcb": [
                "C83472"
            ]
        }, manufacturerPartNumber: "SWPA4030S220MT", footprint: "smdpads2_p3.6002mm_pw1.9mm_ph3.7mm", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C83472.obj?uuid=17e6bc9de5ec4d44a160fa801e621a52",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C83472.step?uuid=17e6bc9de5ec4d44a160fa801e621a52",
            pcbRotationOffset: 0,
            modelOriginPosition: { x: 0, y: 0.00004999999988641868, z: 0 },
        }, ...props }));
};

const pinLabels$1 = {
    pin1: ["A"],
    pin2: ["B"],
    pin3: ["C"],
    pin4: ["D"]
};
const TS_1187A_B_A_B = (props) => {
    const { name = "SW1", ...restProps } = props;
    return (jsxRuntime.jsx("pushbutton", { name: name, pinLabels: pinLabels$1, supplierPartNumbers: {
            "jlcpcb": [
                "C318884"
            ]
        }, manufacturerPartNumber: "TS-1187A-B-A-B", footprint: "smdpushbutton4_px6mm_py3.7mm_pw1mm_ph0.75mm", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C318884.obj?uuid=91b67c1735f643ffb2e7226c23dd3492",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C318884.step?uuid=91b67c1735f643ffb2e7226c23dd3492",
            pcbRotationOffset: 0,
            modelOriginPosition: { x: 0.000012700000070253736, y: 0.0004999999999999449, z: -0.05 },
        }, ...restProps }));
};

const pinLabels = {
    pin1: ["pin1"],
    pin2: ["GND"],
    pin3: ["pin3"],
    pin4: ["pin4"],
    pin5: ["VBUS"],
    pin6: ["pin6"]
};
const pinAttributes = {
    pin2: { requiresGround: true }
};
const USBLC6_2SC6 = (props) => {
    return (jsxRuntime.jsx("chip", { pinLabels: pinLabels, pinAttributes: pinAttributes, supplierPartNumbers: {
            "jlcpcb": [
                "C2687116"
            ]
        }, manufacturerPartNumber: "USBLC6-2SC6", footprint: "dfn6_p0.95mm_w3.3702mm_pw0.532mm_pl1.072mm_pin1location(leftside,bottom)", cadModel: {
            objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2687116.obj?uuid=229b69761e2c45dba6a83d8866dec72d",
            stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2687116.step?uuid=229b69761e2c45dba6a83d8866dec72d",
            pcbRotationOffset: 90,
            modelOriginPosition: { x: -12700000070253736e-21, y: 0.000012700000070253736, z: -0.048939 },
        }, ...props }));
};

/*
 * FALCHION-65: a 65% wireless RGB keyboard, edge-to-edge.
 *
 *   - 68-key 65% layout (16u x 5u), hot-swap MX sockets
 *   - per-key RGB: a WS2812C-2020 on the top copper under every switch's LED
 *     lens, daisy-chained in a serpentine, fed from a switched 5 V boost
 *     rail through a 74AHCT1G125 level shifter
 *   - nRF52840 (Ebyte E73-2G4M08S1C). One radio, two link modes: BLE for
 *     everyday use, Nordic 2.4 GHz to the companion dongle for gaming. No
 *     extra RF hardware is needed for either -- it is a firmware choice.
 *   - Li-Po: TP4056 charger, power slide switch, Schottky OR into VSYS,
 *     which feeds the nRF52840's VDDH so its on-chip REG0 makes the 3.3 V
 *     rail (no external LDO, as on the nice!nano)
 *   - Windows / macOS slide switch on a GPIO, read by the firmware to swap
 *     the modifier layout
 *
 * BOARD SIZE: 306 x 102 mm against a 304.8 x 95.25 mm key block, i.e. 0.6 mm
 * of side margin and no dedicated component strips at all. Everything lives
 * in space the key grid already wastes:
 *
 *   top band     y 43.0 .. 51.0  -- above the row-0 socket bodies and out to
 *                the back edge. USB-C, charger, level shifter, both slide
 *                switches. Top side only.
 *   inter-row    y 24.0 .. 30.8 and y -33.3 .. -25.8 -- full-width bands
 *   bands        between one row's LEDs and the next row's sockets, free on
 *                both layers. Mounting holes go here.
 *   under the    the space bar is 6.25u wide but its socket is only 16 mm,
 *   space bar    leaving two large bottom-side pockets: region A at
 *                x -85..-30 and region B at x -14..39, both y -27..-51.
 *                Region A holds the radio module, reset and SWD; region B
 *                holds the LED boost and the battery connector.
 *
 * Everything is placed with absolute board coordinates on purpose: nested
 * <group>s were being auto-packed by tscircuit's board layout, which moved
 * the key cells away from their intended positions.
 */
const U = 19.05; // key pitch (mm)
const BOARD = { width: 306, height: 102 };
const TOP_Y = BOARD.height / 2; // 51
const KB_X0 = -152.4; // left edge of the key block
const KB_Y0 = 46; // top edge of the key block
const TOP_BAND_Y = 47.8; // centre line for top-band parts
// Offsets inside one key cell, relative to the hot-swap socket origin. The
// seveibar KeyHotSocket footprint puts the MX stem at (0.635, -3.7) from its
// own origin (derived from the socket's two 3 mm locating holes), so every
// socket is shifted by the opposite amount to land the stem on the key's
// true centre.
const STEM = { x: 0.635, y: -3.7 };
const SHAFT_OFF = { x: 0, y: -0.52 }; // 4.2 mm stem hole, as in seveibar.Key
const LABEL_OFF = { x: 0, y: 5 };
// MX RGB switches carry their LED lens 5.08 mm "south" of the stem; the
// 2020 LED sits on the top copper under that lens.
const LED_OFF = { x: STEM.x, y: STEM.y - 5.08 };
// Bottom side, either side of the LED and clear of the socket pads: cap to
// the left, row diode to the right. Both stay inside the cell, so the cell
// pitch alone sets the board size.
const LED_CAP_OFF = { x: STEM.x - 6.2, y: LED_OFF.y };
const DIODE_OFF = { x: STEM.x + 6.0, y: STEM.y - 4.8 };
const k = (name, label, w = 1) => ({ name, label, w });
// Falchion-style 65% (ANSI): 15 / 15 / 14 / 14 / 10 keys, every row 16u.
const ROWS = [
    [
        k("ESC", "Esc"), k("N1", "1"), k("N2", "2"), k("N3", "3"), k("N4", "4"),
        k("N5", "5"), k("N6", "6"), k("N7", "7"), k("N8", "8"), k("N9", "9"),
        k("N0", "0"), k("MINUS", "-"), k("EQUAL", "="), k("BSPC", "Backspace", 2),
        k("DEL", "Del"),
    ],
    [
        k("TAB", "Tab", 1.5), k("Q", "Q"), k("W", "W"), k("E", "E"), k("R", "R"),
        k("T", "T"), k("Y", "Y"), k("U", "U"), k("I", "I"), k("O", "O"), k("P", "P"),
        k("LBRC", "["), k("RBRC", "]"), k("BSLS", "\\", 1.5), k("PGUP", "PgUp"),
    ],
    [
        k("CAPS", "Caps", 1.75), k("A", "A"), k("S", "S"), k("D", "D"), k("F", "F"),
        k("G", "G"), k("H", "H"), k("J", "J"), k("K", "K"), k("L", "L"),
        k("SCLN", ";"), k("QUOT", "'"), k("ENT", "Enter", 2.25), k("PGDN", "PgDn"),
    ],
    [
        k("LSFT", "Shift", 2.25), k("Z", "Z"), k("X", "X"), k("C", "C"), k("V", "V"),
        k("B", "B"), k("N", "N"), k("M", "M"), k("COMM", ","), k("DOT", "."),
        k("SLSH", "/"), k("RSFT", "Shift", 1.75), k("UP", "Up"), k("END", "End"),
    ],
    [
        k("LCTL", "Ctrl", 1.25), k("LGUI", "Win", 1.25), k("LALT", "Alt", 1.25),
        k("SPC", "Space", 6.25), k("RALT", "Alt"), k("FN", "Fn"), k("RCTL", "Ctrl"),
        k("LEFT", "Left"), k("DOWN", "Down"), k("RGHT", "Right"),
    ],
];
// Resolve physical centres and matrix row/col. The LED chain snakes across
// the board (row 0 left->right, row 1 right->left, ...) so each DOUT->DIN
// hop is a single key pitch.
const KEYS = [];
{
    let led = 0;
    ROWS.forEach((row, r) => {
        let xu = 0;
        const placed = row.map((key, c) => {
            const w = key.w ?? 1;
            const p = {
                ...key,
                row: r,
                col: c,
                x: KB_X0 + (xu + w / 2) * U,
                y: KB_Y0 - (r + 0.5) * U,
                led: -1,
            };
            xu += w;
            return p;
        });
        const chain = r % 2 === 0 ? placed : [...placed].reverse();
        chain.forEach((p) => {
            p.led = led++;
        });
        KEYS.push(...placed);
    });
}
const N_ROWS = ROWS.length;
const N_COLS = Math.max(...ROWS.map((r) => r.length));
/* Cherry PCB-mount stabilisers. Geometry from the daprice/keyswitches.pretty
   Stabilizer_MX_2u footprint (KiCad, y-down, converted here to y-up): per
   stem a 3.9878 mm non-plated hole 8.255 mm south of the key centre and a
   3.048 mm one 6.985 mm north of it. Stems sit +/-11.9 mm from the key
   centre for 2u / 2.25u keys and +/-50 mm for the 6.25u space bar. Every
   per-cell part stays inside +/-8.2 mm of its key, so the 2u/2.25u holes
   fall in copper-free space; the space-bar stems are the constraint on the
   two bottom-side pockets. */
const STAB_STEM_OFFSET = { "2": 11.9, "2.25": 11.9, "6.25": 50 };
const STAB_HOLES = KEYS.flatMap((key) => {
    const off = STAB_STEM_OFFSET[String(key.w ?? 1)];
    if (!off)
        return [];
    return [-1, 1].flatMap((side) => [
        { key: key.name, side, x: key.x + side * off, y: key.y - 8.255, d: 3.9878 },
        { key: key.name, side, x: key.x + side * off, y: key.y + 6.985, d: 3.048 },
    ]);
});
const rowNet = (r) => `net.ROW${r}`;
const colNet = (c) => `net.COL${c}`;
/* nRF52840 pin plan (E73 module pin names). P0.02-P0.05 and P0.28-P0.31 are
   the only ADC-capable pins, so P0.04 is reserved for battery sensing and the
   rest are spread across the matrix. P0.00/P0.01 (32 kHz crystal) and
   P0.09/P0.10 (NFC) are left unused so no special firmware configuration is
   needed. Spare after this: P0.05, P1.06, P1.13, P0.00, P0.01, P0.09, P0.10. */
const COL_PINS = [
    "P0_02", "P0_03", "P0_28", "P0_29", "P0_30", "P0_31", "P0_06", "P0_07",
    "P0_08", "P0_12", "P0_13", "P0_15", "P0_17", "P1_09", "P1_11",
];
const ROW_PINS = ["P0_20", "P0_22", "P0_24", "P0_26", "P1_00"];
const LED_DATA_PIN = "P1_02";
const LED_EN_PIN = "P1_10"; // enables the LED power path (load switch + boost)
const OS_SEL_PIN = "P1_04"; // Windows / macOS slide switch, internal pull-up
const VBAT_SENSE_PIN = "P0_04"; // AIN2, via the R8/R9 divider
const mcuMatrixPins = {};
COL_PINS.slice(0, N_COLS).forEach((pin, c) => (mcuMatrixPins[pin] = colNet(c)));
ROW_PINS.slice(0, N_ROWS).forEach((pin, r) => (mcuMatrixPins[pin] = rowNet(r)));
// Schematic layout (units). Sections are clustered by hand.
const SCH = {
    Usb: { x: -22, y: 8 },
    Charger: { x: -22, y: -2 },
    Battery: { x: -22, y: -12 },
    Mcu: { x: 0, y: 0 },
    LedDriver: { x: 12, y: 8 },
    LedPower: { x: 24, y: 8 },
    Debug: { x: 24, y: -6 },
    Matrix: { x: -22, y: -24, dx: 4.5, dy: 4.5 },
    Leds: { x: -22, y: -50, dx: 4.2, dy: 4, perRow: 17 },
};
/* Mounting holes live in the two full-width bands between key rows, where
   one row's LEDs have ended and the next row's sockets have not started. */
const BAND_HI = 27.3; // between rows 0 and 1
const BAND_LO = -29.5; // between rows 3 and 4
const MOUNT_HOLES = [
    [-149, BAND_HI], [-75, BAND_HI], [0, BAND_HI], [75, BAND_HI], [149, BAND_HI],
    [-149, BAND_LO], [-110, BAND_LO], [60, BAND_LO], [110, BAND_LO], [149, BAND_LO],
];
// SWD / reset test points, a column on the bottom side beside the module.
const TESTPOINTS = [
    { name: "TP1", net: "net.SWDIO", y: -31 },
    { name: "TP2", net: "net.SWDCLK", y: -34 },
    { name: "TP3", net: "net.NRST", y: -37 },
    { name: "TP4", net: "net.V3V3", y: -40 },
    { name: "TP5", net: "net.GND", y: -43 },
];
var index_circuit = () => (jsxRuntime.jsxs("board", { width: `${BOARD.width}mm`, height: `${BOARD.height}mm`, thickness: "1.6mm", routingDisabled: true, children: [jsxRuntime.jsx("net", { name: "GND", isGroundNet: true }), jsxRuntime.jsx("net", { name: "VBUS", isPowerNet: true }), jsxRuntime.jsx("net", { name: "VBAT", isPowerNet: true }), jsxRuntime.jsx("net", { name: "VSYS", isPowerNet: true }), jsxRuntime.jsx("net", { name: "V3V3", isPowerNet: true }), jsxRuntime.jsx("net", { name: "LED_5V", isPowerNet: true }), jsxRuntime.jsx("schematicsection", { name: "Usb", displayName: "USB-C" }), jsxRuntime.jsx("schematicsection", { name: "Charger", displayName: "TP4056 Li-Po Charger" }), jsxRuntime.jsx("schematicsection", { name: "Battery", displayName: "Battery, Power Switch, Gauge" }), jsxRuntime.jsx("schematicsection", { name: "Mcu", displayName: "nRF52840 (E73-2G4M08S1C)" }), jsxRuntime.jsx("schematicsection", { name: "LedDriver", displayName: "RGB Data Level Shifter" }), jsxRuntime.jsx("schematicsection", { name: "LedPower", displayName: "Switched 5 V LED Boost" }), jsxRuntime.jsx("schematicsection", { name: "Debug", displayName: "Reset + SWD + OS Switch" }), jsxRuntime.jsx("schematicsection", { name: "Matrix", displayName: "Key Matrix (68 keys)" }), jsxRuntime.jsx("schematicsection", { name: "Leds", displayName: "Per-Key RGB (WS2812C-2020)" }), MOUNT_HOLES.map(([x, y]) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("hole", { diameter: "2.2mm", pcbX: x, pcbY: y }) }, `mh-${x}-${y}`))), STAB_HOLES.map((h) => (jsxRuntime.jsx(react.Fragment, { children: jsxRuntime.jsx("hole", { diameter: `${h.d}mm`, pcbX: h.x, pcbY: h.y }) }, `stab-${h.key}-${h.side}-${h.d}`))), jsxRuntime.jsx("silkscreentext", { text: "FALCHION-65 RGB  \u00B7  nRF52840 / BLE + 2.4GHz", pcbX: 60, pcbY: TOP_Y - 2, fontSize: "1.8mm" }), jsxRuntime.jsx(TYPE_C_16PIN_2MD_073, { name: "J1", pcbX: -40, pcbY: TOP_Y - 4.1, pcbRotation: 180, schSectionName: "Usb", schX: SCH.Usb.x, schY: SCH.Usb.y }), jsxRuntime.jsx("resistor", { name: "R1", resistance: "5.1k", footprint: "0402", pcbX: -49, pcbY: TOP_BAND_Y, pcbRotation: 90, schSectionName: "Usb", schX: SCH.Usb.x + 5, schY: SCH.Usb.y + 1.5 }), jsxRuntime.jsx("resistor", { name: "R2", resistance: "5.1k", footprint: "0402", pcbX: -32, pcbY: TOP_BAND_Y, pcbRotation: 90, schSectionName: "Usb", schX: SCH.Usb.x + 5, schY: SCH.Usb.y - 1.5 }), jsxRuntime.jsx("trace", { from: "J1.VBUS1", to: "net.VBUS", thickness: "0.5mm" }), jsxRuntime.jsx("trace", { from: "J1.VBUS2", to: "net.VBUS", thickness: "0.5mm" }), jsxRuntime.jsx("trace", { from: "J1.GND1", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "J1.GND2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "J1.SHELL1", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "J1.SHELL2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "J1.SHELL3", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "J1.SHELL4", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "J1.CC1", to: "R1.pin1" }), jsxRuntime.jsx("trace", { from: "R1.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "J1.CC2", to: "R2.pin1" }), jsxRuntime.jsx("trace", { from: "R2.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "J1.DP1", to: "net.USB_DP" }), jsxRuntime.jsx("trace", { from: "J1.DP2", to: "net.USB_DP" }), jsxRuntime.jsx("trace", { from: "J1.DM1", to: "net.USB_DM" }), jsxRuntime.jsx("trace", { from: "J1.DM2", to: "net.USB_DM" }), jsxRuntime.jsx(USBLC6_2SC6, { name: "U9", pcbX: -26, pcbY: TOP_BAND_Y, schSectionName: "Usb", schX: SCH.Usb.x + 9, schY: SCH.Usb.y }), jsxRuntime.jsx("trace", { from: "U9.pin1", to: "net.USB_DP" }), jsxRuntime.jsx("trace", { from: "U9.pin6", to: "net.USB_DP" }), jsxRuntime.jsx("trace", { from: "U9.pin3", to: "net.USB_DM" }), jsxRuntime.jsx("trace", { from: "U9.pin4", to: "net.USB_DM" }), jsxRuntime.jsx("trace", { from: "U9.VBUS", to: "net.VBUS" }), jsxRuntime.jsx("trace", { from: "U9.GND", to: "net.GND" }), jsxRuntime.jsx(TP4056_42_ESOP8, { name: "U2", pcbX: -80, pcbY: TOP_BAND_Y - 0.6, pcbRotation: 90, schSectionName: "Charger", schX: SCH.Charger.x, schY: SCH.Charger.y }), jsxRuntime.jsx("capacitor", { name: "C1", capacitance: "10uF", footprint: "0805", maxDecouplingTraceLength: "30mm", pcbX: -88, pcbY: TOP_BAND_Y, pcbRotation: 90, schSectionName: "Charger", schX: SCH.Charger.x - 5, schY: SCH.Charger.y, schOrientation: "vertical" }), jsxRuntime.jsx("capacitor", { name: "C2", capacitance: "10uF", footprint: "0805", maxDecouplingTraceLength: "30mm", pcbX: -72, pcbY: TOP_BAND_Y, pcbRotation: 90, schSectionName: "Charger", schX: SCH.Charger.x + 5, schY: SCH.Charger.y, schOrientation: "vertical" }), jsxRuntime.jsx("resistor", { name: "R3", resistance: "2k", footprint: "0402", pcbX: -67, pcbY: TOP_BAND_Y, pcbRotation: 90, schSectionName: "Charger", schX: SCH.Charger.x, schY: SCH.Charger.y - 4 }), jsxRuntime.jsx("led", { name: "LED1", color: "red", footprint: "0603", pcbX: -62, pcbY: TOP_BAND_Y, pcbRotation: 90, schSectionName: "Charger", schX: SCH.Charger.x - 9, schY: SCH.Charger.y - 1, schRotation: 90 }), jsxRuntime.jsx("resistor", { name: "R4", resistance: "330", footprint: "0402", pcbX: -58, pcbY: TOP_BAND_Y, pcbRotation: 90, schSectionName: "Charger", schX: SCH.Charger.x - 9, schY: SCH.Charger.y - 4, schOrientation: "vertical" }), jsxRuntime.jsx("trace", { from: "net.VBUS", to: "U2.VCC", thickness: "0.5mm" }), jsxRuntime.jsx("trace", { from: "U2.GND", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "U2.EP", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "U2.CE", to: "net.VBUS" }), jsxRuntime.jsx("trace", { from: "U2.TEMP", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "U2.BAT", to: "net.VBAT", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "U2.PROG", to: "R3.pin1" }), jsxRuntime.jsx("trace", { from: "R3.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "C1.pin1", to: "net.VBUS" }), jsxRuntime.jsx("trace", { from: "C1.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "C2.pin1", to: "net.VBAT" }), jsxRuntime.jsx("trace", { from: "C2.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "U2.N_CHRG", to: "LED1.cathode" }), jsxRuntime.jsx("trace", { from: "LED1.anode", to: "R4.pin1" }), jsxRuntime.jsx("trace", { from: "R4.pin2", to: "net.VBUS" }), jsxRuntime.jsx(MSK12C02, { name: "SW1", pcbX: -128, pcbY: TOP_BAND_Y, schSectionName: "Battery", schX: SCH.Battery.x + 4, schY: SCH.Battery.y }), jsxRuntime.jsx("silkscreentext", { text: "PWR", pcbX: -128, pcbY: TOP_Y - 1.5, fontSize: "1.2mm" }), jsxRuntime.jsx(MSK12C02, { name: "SW3", pcbX: -116, pcbY: TOP_BAND_Y, schSectionName: "Debug", schX: SCH.Debug.x, schY: SCH.Debug.y + 4 }), jsxRuntime.jsx("silkscreentext", { text: "WIN / MAC", pcbX: -116, pcbY: TOP_Y - 1.5, fontSize: "1.2mm" }), jsxRuntime.jsx("trace", { from: "SW1.pin2", to: "net.VBAT", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "SW1.pin1", to: "net.VBAT_SW", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "SW1.pin4", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "SW3.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "SW3.pin1", to: "net.OS_SEL" }), jsxRuntime.jsx("trace", { from: "SW3.pin4", to: "net.GND" }), jsxRuntime.jsx(SS14L, { name: "D1", pcbX: -106, pcbY: TOP_BAND_Y, schSectionName: "Battery", schX: SCH.Battery.x + 9, schY: SCH.Battery.y }), jsxRuntime.jsx(SS14L, { name: "D3", pcbX: -100, pcbY: TOP_BAND_Y, schSectionName: "Battery", schX: SCH.Battery.x + 9, schY: SCH.Battery.y + 3 }), jsxRuntime.jsx("trace", { from: "D1.anode", to: "net.VBAT_SW", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "D1.cathode", to: "net.VSYS", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "D3.anode", to: "net.VBUS", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "D3.cathode", to: "net.VSYS", thickness: "0.6mm" }), jsxRuntime.jsx(SN74AHCT1G125DBVR, { name: "U6", pcbX: -147, pcbY: TOP_BAND_Y, schSectionName: "LedDriver", schX: SCH.LedDriver.x, schY: SCH.LedDriver.y }), jsxRuntime.jsx("capacitor", { name: "C3", capacitance: "100nF", footprint: "0402", pcbX: -143, pcbY: TOP_BAND_Y, pcbRotation: 90, schSectionName: "LedDriver", schX: SCH.LedDriver.x + 4, schY: SCH.LedDriver.y + 1, schOrientation: "vertical" }), jsxRuntime.jsx("capacitor", { name: "C4", capacitance: "22uF", footprint: "0805", pcbX: -138.5, pcbY: TOP_BAND_Y, pcbRotation: 90, schSectionName: "LedDriver", schX: SCH.LedDriver.x + 7, schY: SCH.LedDriver.y + 1, schOrientation: "vertical" }), jsxRuntime.jsx("trace", { from: "U6.A", to: "net.LED_DATA_3V3" }), jsxRuntime.jsx("trace", { from: "U6.Y", to: "net.LED_DIN0" }), jsxRuntime.jsx("trace", { from: "U6.N_OE", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "U6.VCC", to: "net.LED_5V" }), jsxRuntime.jsx("trace", { from: "U6.GND", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "C3.pin1", to: "net.LED_5V" }), jsxRuntime.jsx("trace", { from: "C3.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "C4.pin1", to: "net.LED_5V", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "C4.pin2", to: "net.GND" }), jsxRuntime.jsx(E73_2G4M08S1C, { name: "U1", layer: "bottom", pcbX: -50, pcbY: -41, schSectionName: "Mcu", schX: SCH.Mcu.x, schY: SCH.Mcu.y, connections: {
                ...mcuMatrixPins,
                [LED_DATA_PIN]: "net.LED_DATA_3V3",
                [LED_EN_PIN]: "net.LED_EN",
                [OS_SEL_PIN]: "net.OS_SEL",
                [VBAT_SENSE_PIN]: "net.VBAT_SENSE",
                VDDH: "net.VSYS",
                VDD: "net.V3V3",
                VBUS: "net.VBUS",
                D_POS: "net.USB_DP",
                D_NEG: "net.USB_DM",
                RESET: "net.NRST",
                SWDIO: "net.SWDIO",
                SWDCLK: "net.SWDCLK",
                GND1: "net.GND",
                GND2: "net.GND",
                GND3: "net.GND",
            } }), jsxRuntime.jsx("silkscreentext", { text: "RF KEEPOUT - NO COPPER / NO METAL CASE", layer: "bottom", pcbX: -50, pcbY: -48, fontSize: "1.2mm" }), jsxRuntime.jsx("capacitor", { name: "C5", capacitance: "4.7uF", footprint: "0603", layer: "bottom", pcbX: -53, pcbY: -28.8, pcbRotation: 90, schSectionName: "Mcu", schX: SCH.Mcu.x + 6, schY: SCH.Mcu.y + 4, schOrientation: "vertical" }), jsxRuntime.jsx("capacitor", { name: "C6", capacitance: "10uF", footprint: "0805", layer: "bottom", pcbX: -48, pcbY: -28.8, pcbRotation: 90, schSectionName: "Mcu", schX: SCH.Mcu.x + 9, schY: SCH.Mcu.y + 4, schOrientation: "vertical" }), jsxRuntime.jsx("trace", { from: "C5.pin1", to: "net.V3V3" }), jsxRuntime.jsx("trace", { from: "C5.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "C6.pin1", to: "net.VSYS" }), jsxRuntime.jsx("trace", { from: "C6.pin2", to: "net.GND" }), jsxRuntime.jsx("resistor", { name: "R8", resistance: "1M", footprint: "0402", layer: "bottom", pcbX: -41, pcbY: -30.5, pcbRotation: 90, schSectionName: "Battery", schX: SCH.Battery.x - 4, schY: SCH.Battery.y + 4, schOrientation: "vertical" }), jsxRuntime.jsx("resistor", { name: "R9", resistance: "1M", footprint: "0402", layer: "bottom", pcbX: -38.5, pcbY: -30.5, pcbRotation: 90, schSectionName: "Battery", schX: SCH.Battery.x - 4, schY: SCH.Battery.y, schOrientation: "vertical" }), jsxRuntime.jsx("capacitor", { name: "C7", capacitance: "100nF", footprint: "0402", layer: "bottom", pcbX: -36, pcbY: -30.5, pcbRotation: 90, schSectionName: "Battery", schX: SCH.Battery.x - 1, schY: SCH.Battery.y + 2, schOrientation: "vertical" }), jsxRuntime.jsx("trace", { from: "R8.pin1", to: "net.VBAT_SW" }), jsxRuntime.jsx("trace", { from: "R8.pin2", to: "net.VBAT_SENSE" }), jsxRuntime.jsx("trace", { from: "R9.pin1", to: "net.VBAT_SENSE" }), jsxRuntime.jsx("trace", { from: "R9.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "C7.pin1", to: "net.VBAT_SENSE" }), jsxRuntime.jsx("trace", { from: "C7.pin2", to: "net.GND" }), jsxRuntime.jsx(TS_1187A_B_A_B, { name: "SW2", layer: "bottom", pcbX: -36, pcbY: -38, schSectionName: "Debug", schX: SCH.Debug.x, schY: SCH.Debug.y }), jsxRuntime.jsx("trace", { from: "SW2.pin1", to: "net.NRST" }), jsxRuntime.jsx("trace", { from: "SW2.pin2", to: "net.GND" }), TESTPOINTS.map((tp, i) => (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx("testpoint", { name: tp.name, footprintVariant: "pad", padShape: "circle", padDiameter: "1.5mm", layer: "bottom", pcbX: -61, pcbY: tp.y, schSectionName: "Debug", schX: SCH.Debug.x + 4 + i * 1.5, schY: SCH.Debug.y }), jsxRuntime.jsx("trace", { from: `${tp.name}.pin1`, to: tp.net })] }, tp.name))), jsxRuntime.jsx(SY6280AAC, { name: "U7", layer: "bottom", pcbX: -10, pcbY: -31, schSectionName: "LedPower", schX: SCH.LedPower.x, schY: SCH.LedPower.y }), jsxRuntime.jsx("resistor", { name: "R7", resistance: "4.7k", footprint: "0402", layer: "bottom", pcbX: -10, pcbY: -35.5, pcbRotation: 90, schSectionName: "LedPower", schX: SCH.LedPower.x, schY: SCH.LedPower.y - 3, schOrientation: "vertical" }), jsxRuntime.jsx("capacitor", { name: "C8", capacitance: "22uF", footprint: "0805", layer: "bottom", pcbX: -5, pcbY: -31, pcbRotation: 90, schSectionName: "LedPower", schX: SCH.LedPower.x + 3, schY: SCH.LedPower.y - 2, schOrientation: "vertical" }), jsxRuntime.jsx(MT3608, { name: "U8", layer: "bottom", pcbX: -1, pcbY: -31, schSectionName: "LedPower", schX: SCH.LedPower.x + 6, schY: SCH.LedPower.y }), jsxRuntime.jsx("resistor", { name: "R5", resistance: "75k", footprint: "0402", layer: "bottom", pcbX: -1, pcbY: -35.5, pcbRotation: 90, schSectionName: "LedPower", schX: SCH.LedPower.x + 10, schY: SCH.LedPower.y, schOrientation: "vertical" }), jsxRuntime.jsx("resistor", { name: "R6", resistance: "10k", footprint: "0402", layer: "bottom", pcbX: 2.5, pcbY: -35.5, pcbRotation: 90, schSectionName: "LedPower", schX: SCH.LedPower.x + 10, schY: SCH.LedPower.y - 3, schOrientation: "vertical" }), jsxRuntime.jsx(SWPA4030S220MT, { name: "L1", layer: "bottom", pcbX: 4, pcbY: -31, schSectionName: "LedPower", schX: SCH.LedPower.x + 6, schY: SCH.LedPower.y + 3 }), jsxRuntime.jsx(SS14L, { name: "D2", layer: "bottom", pcbX: 10, pcbY: -31, schSectionName: "LedPower", schX: SCH.LedPower.x + 10, schY: SCH.LedPower.y + 3 }), jsxRuntime.jsx("capacitor", { name: "C9", capacitance: "22uF", footprint: "0805", layer: "bottom", pcbX: 14, pcbY: -31, pcbRotation: 90, schSectionName: "LedPower", schX: SCH.LedPower.x + 13, schY: SCH.LedPower.y - 2, schOrientation: "vertical" }), jsxRuntime.jsx("trace", { from: "U7.IN", to: "net.VSYS", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "U7.OUT", to: "net.LED_VIN", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "U7.EN", to: "net.LED_EN" }), jsxRuntime.jsx("trace", { from: "U7.GND", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "U7.ISET", to: "R7.pin1" }), jsxRuntime.jsx("trace", { from: "R7.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "C8.pin1", to: "net.LED_VIN" }), jsxRuntime.jsx("trace", { from: "C8.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "U8.IN", to: "net.LED_VIN", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "U8.EN", to: "net.LED_VIN" }), jsxRuntime.jsx("trace", { from: "U8.GND", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "L1.pin1", to: "net.LED_VIN", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "L1.pin2", to: "net.BOOST_SW", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "U8.SW", to: "net.BOOST_SW", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "D2.anode", to: "net.BOOST_SW", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "D2.cathode", to: "net.LED_5V", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "R5.pin1", to: "net.LED_5V" }), jsxRuntime.jsx("trace", { from: "R5.pin2", to: "net.BOOST_FB" }), jsxRuntime.jsx("trace", { from: "U8.FB", to: "net.BOOST_FB" }), jsxRuntime.jsx("trace", { from: "R6.pin1", to: "net.BOOST_FB" }), jsxRuntime.jsx("trace", { from: "R6.pin2", to: "net.GND" }), jsxRuntime.jsx("trace", { from: "C9.pin1", to: "net.LED_5V", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "C9.pin2", to: "net.GND" }), jsxRuntime.jsx(S2B_PH_SM4_TB_LF__SN_, { name: "J2", layer: "bottom", pcbX: 0, pcbY: -44.5, pcbRotation: 180, schSectionName: "Battery", schX: SCH.Battery.x, schY: SCH.Battery.y }), jsxRuntime.jsx("silkscreentext", { text: "BAT + -", layer: "bottom", pcbX: 0, pcbY: -35.5, fontSize: "1.2mm" }), jsxRuntime.jsx("trace", { from: "J2.pin1", to: "net.VBAT", thickness: "0.6mm" }), jsxRuntime.jsx("trace", { from: "J2.pin2", to: "net.GND" }), KEYS.map((key) => {
            const gx = key.x - STEM.x;
            const gy = key.y - STEM.y;
            const sx = SCH.Matrix.x + key.col * SCH.Matrix.dx;
            const sy = SCH.Matrix.y - key.row * SCH.Matrix.dy;
            const lx = SCH.Leds.x + (key.led % SCH.Leds.perRow) * SCH.Leds.dx;
            const ly = SCH.Leds.y - Math.floor(key.led / SCH.Leds.perRow) * SCH.Leds.dy;
            const din = `net.LED_DIN${key.led}`;
            const dout = key.led === KEYS.length - 1 ? "net.LED_DOUT_END" : `net.LED_DIN${key.led + 1}`;
            return (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(seveibar_KeyHotSocket.KeyHotSocket, { name: `SW_${key.name}`, pcbX: gx, pcbY: gy, schX: sx, schY: sy, connections: { pin2: colNet(key.col) }, ...{ schSectionName: "Matrix" } }), jsxRuntime.jsx(seveibar_KeyShaftForHotSocket.KeyShaftForHotSocket, { name: `SW_${key.name}_STEM`, pcbX: gx + SHAFT_OFF.x, pcbY: gy + SHAFT_OFF.y, ...{ doNotPlace: true } }), jsxRuntime.jsx("silkscreentext", { text: key.label, pcbX: gx + LABEL_OFF.x, pcbY: gy + LABEL_OFF.y, fontSize: "1.2mm" }), jsxRuntime.jsx(A_1N4148WS, { name: `D_${key.name}`, layer: "bottom", pcbX: gx + DIODE_OFF.x, pcbY: gy + DIODE_OFF.y, schX: sx, schY: sy - 1.6, schRotation: 90, schSectionName: "Matrix", connections: { anode: `.SW_${key.name} .pin1`, cathode: rowNet(key.row) } }), jsxRuntime.jsx(WS2812C_2020_V1, { name: `LED_${key.name}`, pcbX: gx + LED_OFF.x, pcbY: gy + LED_OFF.y, schX: lx, schY: ly, schSectionName: "Leds", connections: { VDD: "net.LED_5V", GND: "net.GND", DI: din, DO: dout } }), jsxRuntime.jsx("capacitor", { name: `C_${key.name}`, capacitance: "100nF", footprint: "0402", layer: "bottom", pcbX: gx + LED_CAP_OFF.x, pcbY: gy + LED_CAP_OFF.y, schX: lx + 2, schY: ly, schOrientation: "vertical", schSectionName: "Leds", connections: { pin1: "net.LED_5V", pin2: "net.GND" } })] }, key.name));
        })] }));

module.exports = index_circuit;