@@ -125,49 +125,53 @@ export default function DFAtoUI() {
125125 const [ isOpen , setIsOpen ] = useState ( false ) ;
126126
127127 return (
128- < div className = "h-screen w-screen flex bg-black text-white" >
128+ < div className = "h-[calc(100vh-3rem)] w-screen flex bg-black text-white" >
129129 { /* Floating Sidebar */ }
130130 < div
131- className = { `fixed left-0 top-0 h-screen bg-gray-900 transition-all duration-300 ease-in-out z-10 ${ isOpen ? 'w-64 md:w-1/4' : 'w-2 hover:w-64 md:hover:w-1/4'
131+ className = { `fixed left-0 top-[4rem] h-screen bg-gray-900 transition-all duration-300 ease-in-out z-10 ${ isOpen ? 'w-64 md:w-1/4' : 'w-2 hover:w-64 md:hover:w-1/4'
132132 } `}
133133 onMouseEnter = { ( ) => setIsOpen ( true ) }
134134 onMouseLeave = { ( ) => setIsOpen ( false ) }
135135 >
136136 < div className = { `p-5 ${ isOpen ? 'opacity-100' : 'opacity-0' } transition-opacity duration-300 overflow-y-auto h-full` } >
137- < h2 className = "text-lg font-semibold mb-4 " > Add a State:</ h2 >
137+ < h2 className = "text-lg font-semibold mb-2 " > Add a State:</ h2 >
138138 < NodeCreatorButton onAddNode = { addNode } />
139139
140- < h2 className = "text-lg font-semibold mt-6" > Add an Edge:</ h2 >
141-
142- < h2 className = "text-lg font-semibold mt-4" > Select Start State:</ h2 >
143- < select
144- value = { startState }
145- onChange = { ( e ) => setStartState ( e . target . value ) }
146- className = "w-full p-2 border border-gray-600 rounded bg-gray-800 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
147- >
148- < option value = "" disabled > Start state</ option >
149- { nodes . map ( node => (
150- < option key = { node . id } value = { node . id } >
151- { node . data . label } { node . data . isAcceptState ? "(Accept)" : "" }
152- </ option >
153- ) ) }
154- </ select >
155-
156- < h2 className = "text-lg font-semibold mt-4" > Select End State:</ h2 >
157- < select
158- value = { endState }
159- onChange = { ( e ) => setEndState ( e . target . value ) }
160- className = "w-full p-2 border border-gray-600 rounded bg-gray-800 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
161- >
162- < option value = "" disabled > End state</ option >
163- { nodes . map ( node => (
164- < option key = { node . id } value = { node . id } >
165- { node . data . label } { node . data . isAcceptState ? "(Accept)" : "" }
166- </ option >
167- ) ) }
168- </ select >
169-
170- < h2 className = "text-lg font-semibold mt-4" > Enter Transition Symbol:</ h2 >
140+ < h2 className = "text-lg font-semibold mt-3" > Add an Edge:</ h2 >
141+
142+ < div className = "flex items-center justify-between gap-4 mt-4" >
143+ < h2 className = "text-lg font-semibold text-justify" > Select Start State:</ h2 >
144+ < select
145+ value = { startState }
146+ onChange = { ( e ) => setStartState ( e . target . value ) }
147+ className = "w-fit p-2 border border-gray-600 rounded bg-gray-800 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
148+ >
149+ < option value = "" disabled > Start state</ option >
150+ { nodes . map ( node => (
151+ < option key = { node . id } value = { node . id } >
152+ { node . data . label } { node . data . isAcceptState ? "(Accept)" : "" }
153+ </ option >
154+ ) ) }
155+ </ select >
156+ </ div >
157+
158+ < div className = "flex items-center justify-between gap-4 mt-4" >
159+ < h2 className = "text-lg font-semibold" > Select End State:</ h2 >
160+ < select
161+ value = { endState }
162+ onChange = { ( e ) => setEndState ( e . target . value ) }
163+ className = "w-fit p-2 border border-gray-600 rounded bg-gray-800 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
164+ >
165+ < option value = "" disabled > End state</ option >
166+ { nodes . map ( node => (
167+ < option key = { node . id } value = { node . id } >
168+ { node . data . label } { node . data . isAcceptState ? "(Accept)" : "" }
169+ </ option >
170+ ) ) }
171+ </ select >
172+ </ div >
173+
174+ < h2 className = "text-lg font-semibold mt-4 mb-1.5" > Enter Transition Symbol:</ h2 >
171175 < input
172176 type = "text"
173177 value = { transitionSymbol }
@@ -176,21 +180,23 @@ export default function DFAtoUI() {
176180 className = "w-full p-2 border border-gray-600 rounded bg-gray-800 text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
177181 />
178182
179- < button
180- onClick = { ( ) => handleAddEdge ( ) }
181- className = "mt-4 w-full p-2 bg-gray-600 rounded border-solid-white cursor-pointer text-white hover:bg-gray-500 transition-colors"
182- >
183- Add Edge
184- </ button >
185-
186- < button
187- onClick = { handleDeleteElements }
188- className = "mt-4 w-full p-2 bg-gray-600 rounded border-solid-white cursor-pointer text-white hover:bg-gray-500 transition-colors"
189- >
190- Delete Elements
191- </ button >
192-
193- < h2 className = "text-lg font-semibold mt-6" > Validate String:</ h2 >
183+ < div className = "flex items-center justify-center gap-4 mt-4" >
184+ < button
185+ onClick = { ( ) => handleAddEdge ( ) }
186+ className = "w-full p-2 bg-gray-600 rounded border-solid-white cursor-pointer text-white hover:bg-gray-500 transition-colors"
187+ >
188+ Add Edge
189+ </ button >
190+
191+ < button
192+ onClick = { handleDeleteElements }
193+ className = "w-full p-2 bg-gray-600 rounded border-solid-white cursor-pointer text-white hover:bg-gray-500 transition-colors"
194+ >
195+ Delete Elements
196+ </ button >
197+ </ div >
198+
199+ < h2 className = "text-lg font-semibold mt-4 mb-1.5" > Validate String:</ h2 >
194200 < input
195201 type = "text"
196202 value = { input }
0 commit comments