gitextract_1fnc526q/ ├── .eslintrc.cjs ├── .gitignore ├── README.md ├── components.json ├── index.html ├── package.json ├── playwright/ │ ├── components/ │ │ ├── controls.ts │ │ ├── editor.ts │ │ ├── index.ts │ │ └── pdf-document.ts │ ├── controls.spec.ts │ ├── sections.spec.ts │ └── yaml.ts ├── playwright.config.ts ├── public/ │ ├── cache-sw.js │ └── site.webmanifest ├── src/ │ ├── App.tsx │ ├── app.css │ ├── controls/ │ │ ├── controls-layout.css │ │ ├── controls-layout.tsx │ │ ├── file-controls.css │ │ ├── file-controls.tsx │ │ ├── index.ts │ │ ├── preview-controls.css │ │ ├── preview-controls.tsx │ │ ├── title-controls.css │ │ └── title-controls.tsx │ ├── documents/ │ │ ├── bar.tsx │ │ ├── document.tsx │ │ ├── events-section.tsx │ │ ├── fonts.ts │ │ ├── grouped-section.tsx │ │ ├── icons/ │ │ │ ├── github-icon.tsx │ │ │ ├── globe-icon.tsx │ │ │ ├── index.ts │ │ │ ├── linkedin-icon.tsx │ │ │ ├── location-icon.tsx │ │ │ ├── mail-icon.tsx │ │ │ ├── map-pin-icon.tsx │ │ │ └── phone-icon.tsx │ │ ├── index.ts │ │ ├── rich-text.tsx │ │ ├── section.tsx │ │ ├── sections/ │ │ │ ├── awards-section.tsx │ │ │ ├── basics-section/ │ │ │ │ ├── contacts.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── info-item.tsx │ │ │ │ └── location-info-item.tsx │ │ │ ├── certificates-section.tsx │ │ │ ├── education-section.tsx │ │ │ ├── index.ts │ │ │ ├── projects-section.tsx │ │ │ ├── publications-section.tsx │ │ │ ├── skills-section.tsx │ │ │ ├── volunteer-section.tsx │ │ │ └── work-section.tsx │ │ ├── stack.tsx │ │ ├── svg-icon.tsx │ │ ├── theme.ts │ │ ├── use-has-page-break.ts │ │ └── utils/ │ │ ├── format-date.test.ts │ │ ├── format-date.ts │ │ ├── get-sections-order.test.ts │ │ ├── get-sections-order.ts │ │ └── index.ts │ ├── editing/ │ │ ├── index.ts │ │ ├── schema.css │ │ ├── schema.tsx │ │ ├── type-highlighter.tsx │ │ ├── yaml-editor.css │ │ └── yaml-editor.tsx │ ├── icons/ │ │ ├── download-icon.tsx │ │ ├── folder-icon.tsx │ │ ├── index.ts │ │ ├── info-icon.tsx │ │ ├── pdf-icon.tsx │ │ ├── plus-icon.tsx │ │ ├── zoom-in-icon.tsx │ │ └── zoom-out-icon.tsx │ ├── index.css │ ├── main.tsx │ ├── panes-layout.tsx │ ├── parsing/ │ │ ├── index.ts │ │ ├── parse-yaml.ts │ │ ├── resume-schema.json │ │ ├── sample.ts │ │ ├── use-yaml-parsing.test.tsx │ │ ├── use-yaml-parsing.ts │ │ ├── validate-json.ts │ │ └── yaml-to-json.ts │ ├── persistence/ │ │ ├── file-management.ts │ │ ├── index.ts │ │ ├── use-yaml-persistence.test.ts │ │ └── use-yaml-persistence.ts │ ├── rendering/ │ │ ├── debounced-queue.test.ts │ │ ├── debounced-queue.ts │ │ ├── double-buffered.tsx │ │ ├── index.ts │ │ ├── multi-page-document.tsx │ │ ├── pdf.css │ │ ├── pdf.tsx │ │ ├── use-render.tsx │ │ ├── use-scale.test.ts │ │ └── use-scale.ts │ ├── types.ts │ ├── utils/ │ │ ├── clamp.ts │ │ ├── deferred.ts │ │ ├── index.ts │ │ ├── sleep.ts │ │ └── use-debounced-effect.ts │ └── vite-env.d.ts ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts