--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="210mm"
+ height="297mm"
+ viewBox="0 0 210 297"
+ version="1.1"
+ id="svg1495"
+ inkscape:version="1.2.2 (1:1.2.2+202212051550+b0a8486541)"
+ sodipodi:docname="vocab-authors.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview1497"
+ pagecolor="#505050"
+ bordercolor="#eeeeee"
+ borderopacity="1"
+ inkscape:showpageshadow="0"
+ inkscape:pageopacity="0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#505050"
+ inkscape:document-units="mm"
+ showgrid="false"
+ showguides="true"
+ inkscape:zoom="1.5055415"
+ inkscape:cx="277.64096"
+ inkscape:cy="257.38247"
+ inkscape:window-width="1920"
+ inkscape:window-height="1020"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer1" />
+ <defs
+ id="defs1492" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#e9afaf;fill-opacity:0;stroke:none;stroke-width:1.265;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0.437671"
+ id="rect3992"
+ width="98.247856"
+ height="98.247856"
+ x="36.113533"
+ y="11.233727"
+ ry="0.23964004" />
+ <g
+ id="g2180-3-6"
+ transform="matrix(-0.7859676,0,0,0.81072937,127.15155,5.9964367)">
+ <path
+ style="fill:#1f2f88;fill-opacity:1;stroke:#00004c;stroke-width:1.265;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 56.228149,84.917128 c 0,-22.006943 6.057685,-30.736429 29.100392,-30.736429 23.042709,0 29.177939,8.537037 29.177939,30.736429 z"
+ id="path2122-6-2"
+ sodipodi:nodetypes="czcc" />
+ <ellipse
+ style="fill:#e9afaf;fill-opacity:1;stroke:#000000;stroke-width:1.43742;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="path2176-7-9"
+ cx="85.367317"
+ cy="36.281391"
+ rx="14.804181"
+ ry="14.835288" />
+ </g>
+ <g
+ id="g2180-3"
+ transform="matrix(0.7859676,0,0,0.81072937,43.420741,6.642729)">
+ <g
+ id="g3936">
+ <path
+ style="fill:#1f2f88;fill-opacity:1;stroke:#00004c;stroke-width:1.265;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 56.228149,84.917128 c 0,-22.006943 6.057685,-30.736429 29.100392,-30.736429 23.042709,0 29.177939,8.537037 29.177939,30.736429 z"
+ id="path2122-6"
+ sodipodi:nodetypes="czcc" />
+ <ellipse
+ style="fill:#e9afaf;fill-opacity:1;stroke:#000000;stroke-width:1.43742;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="path2176-7"
+ cx="85.367317"
+ cy="36.281391"
+ rx="14.804181"
+ ry="14.835288" />
+ </g>
+ </g>
+ <g
+ id="g2180-3-9"
+ transform="matrix(0.7859676,0,0,0.81072937,18.141516,29.355765)">
+ <path
+ style="fill:#1f2f88;fill-opacity:1;stroke:#00004c;stroke-width:1.265;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 56.228149,84.917128 c 0,-22.006943 6.057685,-30.736429 29.100392,-30.736429 23.042709,0 29.177939,8.537037 29.177939,30.736429 z"
+ id="path2122-6-3"
+ sodipodi:nodetypes="czcc" />
+ <ellipse
+ style="fill:#e9afaf;fill-opacity:1;stroke:#000000;stroke-width:1.43742;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ id="path2176-7-6"
+ cx="85.367317"
+ cy="36.281391"
+ rx="14.804181"
+ ry="14.835288" />
+ </g>
+ <rect
+ style="fill:#ff8080;fill-opacity:0;stroke:none;stroke-width:1.565;stroke-dasharray:none;stroke-opacity:1"
+ id="rect790"
+ width="67.242554"
+ height="67.242554"
+ x="47.263924"
+ y="17.674576"
+ ry="0.23964004" />
+ <rect
+ style="fill:#ff8080;fill-opacity:0;stroke-width:1.265;stroke-linejoin:round"
+ id="rect2120"
+ width="83.449043"
+ height="83.449043"
+ x="48.311005"
+ y="18.865093"
+ ry="0.23964004"
+ inkscape:export-filename="vocab-authors@2x.png"
+ inkscape:export-xdpi="8.272954"
+ inkscape:export-ydpi="8.272954" />
+ </g>
+</svg>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ width="210mm"
+ height="297mm"
+ viewBox="0 0 210 297"
+ version="1.1"
+ id="svg5"
+ inkscape:version="1.2.2 (1:1.2.2+202212051550+b0a8486541)"
+ sodipodi:docname="vocab-tag.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg">
+ <sodipodi:namedview
+ id="namedview7"
+ pagecolor="#505050"
+ bordercolor="#eeeeee"
+ borderopacity="1"
+ inkscape:showpageshadow="0"
+ inkscape:pageopacity="0"
+ inkscape:pagecheckerboard="0"
+ inkscape:deskcolor="#505050"
+ inkscape:document-units="mm"
+ showgrid="false"
+ inkscape:zoom="2.1291572"
+ inkscape:cx="171.42933"
+ inkscape:cy="193.73863"
+ inkscape:window-width="1920"
+ inkscape:window-height="1020"
+ inkscape:window-x="0"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="layer1" />
+ <defs
+ id="defs2" />
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <rect
+ style="fill:#ff8080;stroke:none;stroke-width:1.565;stroke-dasharray:none;stroke-opacity:1;fill-opacity:0"
+ id="rect790"
+ width="67.242554"
+ height="67.242554"
+ x="14.861292"
+ y="4.3405113"
+ ry="0.23964004" />
+ <path
+ id="rect234"
+ style="fill:#f9fbff;stroke:#000000;stroke-width:2.01092;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+ d="m 15.908384,5.3459598 2.964513,24.7375182 c -0.1204,0.120843 -0.120038,0.315318 8.05e-4,0.435717 l 39.745584,39.59822 c 0.120844,0.1204 0.315319,0.120039 0.435718,-8.04e-4 L 81.056781,48.032954 40.8742,8.0002975 Z M 27.023827,16.420188 a 4.642894,4.642894 0 0 1 6.566284,-0.01266 4.642894,4.642894 0 0 1 0.01173,6.566285 4.642894,4.642894 0 0 1 -6.565815,0.01219 4.642894,4.642894 0 0 1 -0.01219,-6.565816 z"
+ inkscape:export-filename="vocab-tag@2x.png"
+ inkscape:export-xdpi="12.087584"
+ inkscape:export-ydpi="12.087584" />
+ </g>
+</svg>
--- /dev/null
+! Copyright (C) 2023 Raghu Ranganathan.
+! See https://factorcode.org/license.txt for BSD license.
+
+USING: accessors arrays fonts kernel math math.parser ui
+ui.gadgets ui.gadgets.buttons ui.gadgets.editors
+ui.gadgets.labels ui.gadgets.packs ui.gadgets.tracks
+units units.si ;
+IN: 7guis
+
+: tfont ( -- font )
+ <font> default-sans-serif-font-name >>name
+ 18 >>size
+;
+
+:: counter-2 ( -- )
+ "0" <label> tfont >>font :> lb
+ [
+ horizontal <track> lb 1 track-add
+ "Count" <label> tfont >>font
+ [ drop lb [ dec> 1 + >dec ] change-text drop ] <border-button>
+ 1 track-add
+ "Counter" open-window
+ ] with-ui
+;
+
+:: temp-converter ( -- )
+ <editor> :> dc
+ <editor> :> df
+ dc model>> :> dcd
+ df model>> :> dfd
+ dcd dfd add-connection
+ dfd dcd add-connection
+ [
+ <shelf>
+ dc " Celsius = " <label> df " Fahrenheit" <label> 4array
+ add-gadgets "TempConv" open-window
+ ] with-ui
+;
--- /dev/null
+! Copyright (C) 2023 Your name.
+! See https://factorcode.org/license.txt for BSD license.
+USING: ;
+IN: plplot.ffi
+
--- /dev/null
+! Copyright (C) 2023 Raghu Ranganathan.
+! See https://factorcode.org/license.txt for BSD license.
+USING: accessors combinators kernel math math.rectangles
+math.vectors models namespaces opengl sequences sorting
+ui.commands ui.gadgets ui.gadgets.borders ui.gadgets.buttons
+ui.gadgets.glass ui.gadgets.packs ui.gadgets.worlds
+ui.gadgets.wrappers ui.gestures ui.operations ui.pens
+ui.pens.solid ui.theme ;
+
+IN: ui.gadgets.combo-boxes
+
--- /dev/null
+! Copyright (C) 2023 Your name.
+! See https://factorcode.org/license.txt for BSD license.
+USING: ;
+IN: ui.gadgets.combo-boxes
+
--- /dev/null
+! Copyright (C) 2023 Raghu Ranganathan.
+! See https://factorcode.org/license.txt for BSD license.
+USING: ;
+IN: ui.gadgets.labels
+
--- /dev/null
+! Copyright (C) 2023 Your name.
+! See https://factorcode.org/license.txt for BSD license.
+USING: ;
+IN: ui.gadgets.labels
+