1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React from "https://esm.sh/react@18.2.0";
3import { createRoot } from "https://esm.sh/react-dom@18.2.0/client";
4import App from "./components/App.tsx";
5
6// Initialize React application
7createRoot(document.getElementById("root")!).render(<App />);
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React from "https://esm.sh/react@18.2.0";
3
4interface MarkdownPreviewProps {
9 * A component to render a simple preview of markdown content
10 */
11const MarkdownPreview: React.FC<MarkdownPreviewProps> = ({ markdown }) => {
12 // Simple markdown to HTML converter
13 const markdownToHtml = (markdown: string): string => {
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, { useRef, useEffect } from "https://esm.sh/react@18.2.0";
3
4interface EditorProps {
11 * Markdown editor component with auto-resize
12 */
13const Editor: React.FC<EditorProps> = ({ value, onChange, disabled = false }) => {
14 const textareaRef = useRef<HTMLTextAreaElement>(null);
15
33
34 // Handle tab key to insert spaces instead of changing focus
35 const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
36 if (e.key === 'Tab') {
37 e.preventDefault();
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, { useState, useEffect } from "https://esm.sh/react@18.2.0";
3import ProjectList from "./ProjectList.tsx";
4import Editor from "./Editor.tsx";
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import PDFDocument from "https://esm.sh/@react-pdf/renderer";
3import { createRoot } from "https://esm.sh/react-dom@18.2.0/client";
4import React, { useEffect, useState } from "https://esm.sh/react@18.2.0";
5
6interface AnalysisResult {
36 }, []);
37
38 const handleImageUpload = (event: React.ChangeEvent<HTMLInputElement>) => {
39 const file = event.target.files?.[0];
40 if (file) {
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, { useState } from "https://esm.sh/react@18.2.0";
3import { createRoot } from "https://esm.sh/react-dom@18.2.0/client";
4
5// Mock data for customer support
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React, { useRef, useEffect } from "https://esm.sh/react@18.2.0";
3
4interface EditorProps {
7}
8
9const Editor: React.FC<EditorProps> = ({ value, onChange }) => {
10 const textareaRef = useRef<HTMLTextAreaElement>(null);
11
29
30 // Handle tab key to insert spaces instead of changing focus
31 const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
32 if (e.key === 'Tab') {
33 e.preventDefault();
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React from "https://esm.sh/react@18.2.0";
3
4interface Project {
15}
16
17const ProjectList: React.FC<ProjectListProps> = ({ projects, onSelectProject, selectedProjectId }) => {
18 if (projects.length === 0) {
19 return (
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import React from "https://esm.sh/react@18.2.0";
3import { createRoot } from "https://esm.sh/react-dom@18.2.0/client";
4import App from "./components/App.tsx";
5
1/** @jsxImportSource https://esm.sh/react@18.2.0 */
2import { createRoot } from "https://esm.sh/react-dom@18.2.0/client";
3import React, { useEffect, useState } from "https://esm.sh/react@18.2.0";
4
5function JobPostingForm({ onSubmit }) {