* Define global variables for colors, layout, and spacing scales in
* Replace hardcoded padding, gap, color, and border values with CSS variables across guide components (, , , , )
* Add utility class to guide frames in for unified styling
- Add programmatic navigation to the guide view after successful form submission.
- Add class names and layout styling for header, navigation sidebar, and action buttons.
- Update Guide view print layout.
- Add class names to Guide layout elements (, ).
- Restrict guide max-width and add padding.
- Update global styling to use outline.
- Hide anchor tags and reset main margin in print media query.
- Add Settings route, component, and useSettings hook
- Add Settings link to nav
- Fix sidebar to use fixed positioning instead of flexbox
- Fix footer to stay within sidebar column
- Reset form after save in useGuideForm
- Use SubmitEvent type for handleSaveGuide
- Split GuideForm into outer/inner components to gate rendering on
guide context loading, fixing empty edit form on hard reload
- Add loading state to GuideContext
- Replace URL.createObjectURL in render with useMemo + useEffect cleanup
to fix memory leak and empty src warning
- Fix frame reorder bug by keying Frame on frame.id instead of index
- Merge useNewGuide and NewGuide into useGuideForm and GuideForm
to handle both create and edit flows
- Add /edit-guide/:id route pointing to GuideForm
- Replace Edit button in Guide view with Link to edit route
- Add defaultValue to Frame title input for edit pre-population
- Delete NewGuide.tsx, NewGuide.css, useNewGuide.ts
- Render guide title, description, frames, and steps from context
- Add delete and export PDF actions via useGuide hook
- Add print media query to hide header, footer, and buttons
- Extract guide logic into useGuide hook
- Add Guide.css for view-specific styles
- Wrap application root with IDBProvider and GuideProvider
- Replace mock data in App component with real guides from useGuides hook
- Update useNewGuide hook to save compiled guides to IndexedDB and update global state
- Add updateTitle prop to Frame component
- Add handleUpdateFrameTitle to useNewGuide hook
- Wire onChange handlers for guide title, description, and frame title inputs
- Add explicit type=button to frame and step buttons to prevent unwanted form submission
- Move e.preventDefault() form submission logic into useNewGuide hook
- Fix TypeScript assignment error by adding 'title' to initial frame objects
- Export CompiledGuideType and update schema type references
- Remove standalone steps state; steps now live inside each Frame object
- Initialize each frame with one default empty step on file upload
- Update handleAddSteps, handleUpdateStep, handleRemoveStep to operate
on frames array via nested map/filter
- Rename handleUpdateStepText -> handleUpdateStep
- Rename schema types to StepType, FrameType, GuideType
- Add steps and title fields to FrameSchema
- Wire FileUpload onChange and render Frame components in NewGuide
- Add NewGuide.css and basic input/textarea border styles
- Add useNewGuide hook with state and handlers for guide, frames, and steps
- Add title, description, and file upload inputs to NewGuide
- Add FileUpload component and supporting hooks
- Add guideId to FrameSchema, remove steps and order
- Remove content field and frames array from GuideSchema
- Remove order field from StepsSchema