import aluvia.all as pdk

y_splitter = pdk.YBranchPcell()
lay = y_splitter.Layout()
lay.visualize(annotate=True)

dir_coup = pdk.DirectionalCouplerPcell()
lay = dir_coup.Layout()
lay.visualize(annotate=True)

euler_bend = pdk.EulerBendPcell()
lay = euler_bend.Layout()
lay.visualize(annotate=True)

arc = pdk.ArcPathPcell()
lay = arc.Layout()
lay.visualize(annotate=True)

ring_res = pdk.RingRes_1x1Pcell()
lay = ring_res.Layout(straight_length=10, straight_height=20)
lay.visualize(annotate=True)

ring_res = pdk.RingRes_2x2Pcell()
lay = ring_res.Layout(use_total_length=True, straight_length=10, straight_height=20)
lay.visualize(annotate=True)

mmi1 = pdk.MMI_1x2Pcell()
lay = mmi1.Layout()
lay.visualize(annotate=True)

mmi2 = pdk.MMI_2x2Pcell()
lay = mmi2.Layout()
lay.visualize(annotate=True)

mmi3 = pdk.MMI_nxmPcell()
lay = mmi3.Layout(waveguide_offset_input=0)
lay.visualize(annotate=True)

spiral_sq = pdk.SquareSpiralPcell()
lay = spiral_sq.Layout()
lay.visualize(annotate=True)

spiral_sq_euler = pdk.SquareSpiralEulerPcell()
lay = spiral_sq_euler.Layout()
lay.visualize(annotate=True)

spiral = pdk.SpiralPcell()
lay = spiral.Layout()
lay.visualize(annotate=True)

spiral_euler = pdk.SpiralEulerPcell()
lay = spiral_euler.Layout()
lay.visualize(annotate=True)
