@yamlresume/playground 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,289 @@
1
+ import he from '@monaco-editor/react';
2
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
3
+ import { IconArrowBackUp, IconArrowForwardUp, IconEraser, IconPrinter, IconExternalLink, IconDownload, IconCheck, IconCopy, IconFileCode, IconEdit, IconEye, IconFileText, IconTex, IconMarkdown, IconHtml } from '@tabler/icons-react';
4
+ import { useRef, useCallback, useState, useEffect, useMemo } from 'react';
5
+ import le from 'clsx';
6
+ import { getResumeRenderer } from '@yamlresume/core';
7
+ import { parse } from 'yaml';
8
+ import { Group, Panel, Separator } from 'react-resizable-panels';
9
+
10
+ var s={xs:12,sm:16,md:20,lg:24,xl:28},l={xs:1,sm:1.25,md:1.5,lg:1.75,xl:2},y="#1e1e1e",oe=14;function be(e){let o={displayName:"LaTeX",name:"latex",mimeTypes:["text/latex","text/tex"],fileExtensions:["tex","sty","cls"],tokenPostfix:".latex",defaultToken:"",keywords:["addcontentsline","addtocontents","addtocounter","address","addtolength","addvspace","alph","appendix","arabic","author","backslash","baselineskip","baselinestretch","bf","bibitem","bigskipamount","bigskip","boldmath","boldsymbol","cal","caption","cdots","centering","chapter","circle","cite","cleardoublepage","clearpage","cline","closing","color","copyright","dashbox","date","ddots","documentclass","dotfill","em","emph","ensuremath","epigraph","euro","fbox","flushbottom","fnsymbol","footnote","footnotemark","footnotesize","footnotetext","frac","frame","framebox","frenchspacing","hfill","hline","href","hrulefill","hspace","huge","Huge","hyphenation","include","includegraphics","includeonly","indent","input","it","item","kill","label","large","Large","LARGE","LaTeX","LaTeXe","ldots","left","lefteqn","line","linebreak","linethickness","linewidth","listoffigures","listoftables","location","makebox","maketitle","markboth","mathcal","mathop","mbox","medskip","multicolumn","multiput","newcommand","newcolumntype","newcounter","newenvironment","newfont","newlength","newline","newpage","newsavebox","newtheorem","nocite","noindent","nolinebreak","nonfrenchspacing","normalsize","nopagebreak","not","onecolumn","opening","oval","overbrace","overline","pagebreak","pagenumbering","pageref","pagestyle","par","paragraph","parbox","parindent","parskip","part","protect","providecommand","put","raggedbottom","raggedleft","raggedright","raisebox","ref","renewcommand","right","rm","roman","rule","savebox","sbox","sc","scriptsize","section","setcounter","setlength","settowidth","sf","shortstack","signature","sl","slash","small","smallskip","sout","space","sqrt","stackrel","stepcounter","subparagraph","subsection","subsubsection","tableofcontents","telephone","TeX","textbf","textcolor","textit","textmd","textnormal","textrm","textsc","textsf","textsl","texttt","textup","textwidth","textheight","thanks","thispagestyle","tiny","title","today","tt","twocolumn","typeout","typein","uline","underbrace","underline","unitlength","usebox","usecounter","uwave","value","vbox","vcenter","vdots","vector","verb","vfill","vline","vphantom","vspace","RequirePackage","NeedsTeXFormat","usepackage","input","include","documentclass","documentstyle","def","edef","defcommand","if","ifdim","ifnum","ifx","fi","else","begingroup","endgroup","definecolor","textcolor","color","eifstrequal","eeifstrequal"],tokenizer:{root:[[/(\\begin)(\s*)(\{)([\w\-*@]+)(\})/,["keyword.predefined","white","@brackets",{token:"tag.env-$4",bracket:"@open"},"@brackets"]],[/(\\end)(\s*)(\{)([\w\-*@]+)(\})/,["keyword.predefined","white","@brackets",{token:"tag.env-$4",bracket:"@close"},"@brackets"]],[/\\\[a-zA-Z@]/,"keyword"],[/\\\\[^a-zA-Z@]/,"keyword"],[/\\@[a-zA-Z@]+/,"keyword.at"],[/\\([a-zA-Z@]+)/,{cases:{"$1@keywords":"keyword.predefined","@default":"keyword"}}],{include:"@whitespace"},[/[{}()[\]]/,"@brackets"],[/#+\d/,"number.arg"],[/\\-?(?:\d+(?:\.\d+)?|\.\d+)\s*(?:em|ex|pt|pc|sp|cm|mm|in)/,"number.len"]],whitespace:[[/[ \t\r\n]+/,"white"],["%.*$","comment"]]}},t={comments:{lineComment:"%"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"$",close:"$"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"$",close:"$"}]};e.languages.getLanguages().some(r=>r.id==="latex")||(e.languages.register({id:"latex"}),e.languages.setMonarchTokensProvider("latex",o),e.languages.setLanguageConfiguration("latex",t));}function x({value:e,onChange:o,language:t,readOnly:r=false,lineNumbers:a=true,minimap:i=true,onMount:n}){return jsx(he,{height:"100%",language:t,value:e,onChange:o,theme:"vs-dark",onMount:n,beforeMount:be,options:{readOnly:r,domReadOnly:r,lineNumbers:a?"on":"off",minimap:{enabled:i},fontSize:oe,lineNumbersMinChars:4,padding:{top:8},automaticLayout:true,roundedSelection:false,smoothScrolling:true}})}var v=(e="resume.yaml",o=false)=>{let t=e.split(/[/\\]/).pop()||e;return o?t.replace(/\.(ya?ml|json)$/,""):t},T=e=>{switch(e){case "html":return ".html";case "latex":return ".tex";case "markdown":return ".md";default:return ""}},A=(e,o)=>{try{let t=e?.layouts;if(!e||!t[o]){console.warn("No resume or layout found for download");return}let a=getResumeRenderer(e,o).render(),i=t[o],n=T(i.engine),p=`resume.${o}${n}`,c=new Blob([a],{type:"text/plain"}),d=URL.createObjectURL(c),m=document.createElement("a");m.href=d,m.download=p,document.body.appendChild(m),m.click(),document.body.removeChild(m),URL.revokeObjectURL(d);}catch(t){console.error("Failed to download resume:",t);}},M=(e,o)=>{try{let t=e?.layouts;if(!e||!t[o])return console.warn("No resume or layout found for copy"),Promise.resolve();let a=getResumeRenderer(e,o).render();return navigator.clipboard.writeText(a)}catch(t){return console.error("Failed to copy resume:",t),Promise.resolve()}},D=(e,o)=>{try{let t=e?.layouts;if(!e||!t[o]){console.warn("No resume or layout found for print");return}if(t[o].engine!=="html"){console.warn("Printing is only supported for HTML layouts");return}let i=getResumeRenderer(e,o).render(),n=document.createElement("iframe");n.style.position="absolute",n.style.width="0px",n.style.height="0px",n.style.border="none",document.body.appendChild(n);let p=n.contentWindow?.document;p&&(p.open(),p.write(i),p.close(),n.contentWindow?.focus(),n.contentWindow?.print()),setTimeout(()=>{document.body.removeChild(n);},1e3);}catch(t){console.error("Failed to print resume:",t);}},_=(e,o)=>{try{let t=e?.layouts;if(!e||!t[o]){console.warn("No resume or layout found for new tab");return}if(t[o].engine!=="html"){console.warn("Open in new tab is only supported for HTML layouts");return}let i=getResumeRenderer(e,o).render(),n=new Blob([i],{type:"text/html"}),p=URL.createObjectURL(n);window.open(p,"_blank");}catch(t){console.error("Failed to open resume in new tab:",t);}};function ne({filename:e="resume.yaml"}){let o=v(e);return jsxs("div",{className:le("flex items-center gap-2","h-full px-4","border-r border-neutral-600"),style:{backgroundColor:y},children:[jsx(IconFileCode,{size:s.sm,stroke:l.sm}),jsx("span",{children:o})]})}function W({value:e,onChange:o,onMount:t}){return jsx(x,{language:"yaml",value:e,onChange:o,onMount:t})}function z({value:e,onChange:o,filename:t}){let r=useRef(null),a=d=>{r.current=d;},i=useCallback(()=>{r.current?.trigger("source","undo",null);},[]),n=useCallback(()=>{r.current?.trigger("source","redo",null);},[]),p=useCallback(()=>{let d=r.current?.getValue();return d?navigator.clipboard.writeText(d):Promise.resolve()},[]),c=useCallback(()=>{r.current&&window.confirm("Are you sure you want to clear the editor?")&&r.current.setValue("");},[]);return jsxs(P,{children:[jsxs(w,{children:[jsx("div",{className:"flex h-full",children:jsx(ne,{filename:t})}),jsx("div",{className:"flex-1"}),jsxs("div",{className:"flex items-center gap-0.5 pr-2",children:[jsx(R,{onClick:p}),jsx(h,{}),jsx(g,{onClick:i,title:"Undo",children:jsx(IconArrowBackUp,{size:s.sm,stroke:l.sm})}),jsx(g,{onClick:n,title:"Redo",children:jsx(IconArrowForwardUp,{size:s.sm,stroke:l.sm})}),jsx(h,{}),jsx(g,{onClick:c,title:"Clear",children:jsx(IconEraser,{size:s.sm,stroke:l.sm})})]})]}),jsx(C,{children:jsx(W,{value:e,onChange:o,onMount:a})})]})}function U({resume:e,layoutIndex:o}){let[t,r]=useState(""),[a,i]=useState("html"),[n,p]=useState(null);return useEffect(()=>{if(e)try{let c=e.layouts?.[o];if(!c){p(`Layout at index ${o} not found.`);return}if(typeof c.engine!="string"){p("Layout is incomplete - missing engine property.");return}let d=c.engine;i(d);let m=getResumeRenderer(e,o);r(m.render()),p(null);}catch(c){p(`Render Error: ${c instanceof Error?c.message:String(c)}`);}},[e,o]),{renderedContent:t,engine:a,error:n}}var N=`# MIT License
11
+ #
12
+ # Copyright (c) 2023\u2013Present PPResume (https://ppresume.com)
13
+ #
14
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
15
+ # of this software and associated documentation files (the "Software"), to
16
+ # deal in the Software without restriction, including without limitation the
17
+ # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
18
+ # sell copies of the Software, and to permit persons to whom the Software is
19
+ # furnished to do so, subject to the following conditions:
20
+ #
21
+ # The above copyright notice and this permission notice shall be included in
22
+ # all copies or substantial portions of the Software.
23
+ #
24
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
29
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
30
+ # IN THE SOFTWARE.
31
+
32
+ # yaml-language-server: $schema=https://yamlresume.dev/schema.json
33
+ #
34
+ # YAMLResume provides a builtin schema to validate resumes and help avoid lots
35
+ # of low level mistakes.
36
+ #
37
+ # You need to install https://github.com/redhat-developer/yaml-language-server
38
+ # in order to get the best editing experience in your choice of editor/IDE.
39
+ #
40
+ # ref:
41
+ # - https://yamlresume.dev/docs/compiler/schema
42
+ # - https://yamlresume.dev/docs/compiler/schema/json
43
+
44
+ ---
45
+ content:
46
+ basics:
47
+ name: Andy Dufresne
48
+ headline: Headed for the Pacific
49
+ phone: "(213) 555-9876"
50
+ email: hi@ppresume.com
51
+ url: https://ppresume.com/gallery
52
+ # All summary fields supports a limited rich text capabilities in markdown
53
+ # syntax:
54
+ #
55
+ # - bold, (e.g, **bold**)
56
+ # - italic, (e.g, *italic*)
57
+ # - ordered list, unordored list and nested sub list
58
+ # - links (e.g. [link](https://ppresume.com))
59
+ summary: |
60
+ - Computer Science major with strong foundation in data structures, algorithms, and software development
61
+ - Pixel perfect full stack web developer, specialised in creating high-quality, visually appealing websites
62
+ - Experiened in databases (SQL, NoSQL), familiar with server-side technologies (Node.js, Express, etc.)
63
+ - Team player, with detail-oriented mindset and a keen eye for design and user experiences
64
+ location:
65
+ address: 123 Main Street
66
+ city: Sacramento
67
+ region: California
68
+ country: United States
69
+ postalCode: "95814"
70
+ profiles:
71
+ - network: Line
72
+ url: https://line.com/PPResumeX
73
+ username: PPResumeX
74
+ - network: Twitter
75
+ url: https://twitter.com/PPResumeX
76
+ username: PPResumeX
77
+ education:
78
+ - institution: University of Southern California
79
+ url: https://www.cs.usc.edu/
80
+ # Valid degree options:
81
+ #
82
+ # - 'Middle School'
83
+ # - 'High School'
84
+ # - 'Diploma'
85
+ # - 'Associate'
86
+ # - 'Bachelor'
87
+ # - 'Master'
88
+ # - 'Doctor'
89
+ degree: Bachelor
90
+ area: Computer Engineering and Computer Science
91
+ score: "3.8"
92
+ # Should be a valid date string that can be parsed by \\\`new Date(dateStr)\\\`
93
+ # in JavaScript, eg. '2020-01', '2020-02-03', 'Jul 1, 2023' etc.
94
+ #
95
+ # The date part would be removed in the final output as most of the time
96
+ # people won't really care about the exact date for your working
97
+ # experience or education background, etc.
98
+ # ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date
99
+ startDate: Sep 1, 2016
100
+ # Leave endDate blank to indicate "Present"
101
+ endDate: Jul 1, 2020
102
+ courses:
103
+ - Discrete Methods in Computer Science
104
+ - Programming Language Concepts
105
+ - Data Structures and Object-Oriented Design
106
+ - Operating Systems
107
+ - Computer Architecture
108
+ - Database Systems
109
+ - Computer Networking
110
+ - Introduction to the Theory of Computing
111
+ summary: |
112
+ - Developed proficiency in programming languages such as Java, C++, and Python
113
+ - Gained hands-on experience in software development through various projects and assignments
114
+ - Strong communication and teamwork skills acquired through group projects and presentations
115
+ work:
116
+ - name: PPResume
117
+ url: https://ppresume.com
118
+ startDate: Dec 1, 2022
119
+ endDate:
120
+ position: Senior Software Engineer
121
+ summary: |
122
+ - Developed and implemented efficient and scalable code, ensuring high-quality and maintainable web applications
123
+ - Collaborated with cross-functional teams to gather project requirements and translate them into technical solutions
124
+ - Conducted thorough testing and debugging to identify and resolve any issues or bugs in the software
125
+ - Actively participated in code reviews, providing valuable feedback to improve code quality and adherence to best practices
126
+ - Mentored and guided junior developers, fostering a collaborative and growth-oriented team environment
127
+ keywords:
128
+ - Scalability
129
+ - Growth
130
+ - Quality
131
+ - Mentorship
132
+ - name: PPResume
133
+ url: https://ppresume.com
134
+ startDate: Sep 1, 2020
135
+ endDate: Dec 1, 2022
136
+ position: Software Engineer
137
+ summary: |
138
+ - Created reusable React components to ensure code efficiency and maintainability
139
+ - Integrated with RESTful APIs to fetch and display dynamic data on the frontend
140
+ - Implemented client-side routing using React Router for smooth navigation between pages
141
+ - Actively participated in Agile development methodologies, attending daily stand-up meetings and sprint planning sessions
142
+ keywords:
143
+ - RESTful
144
+ - React
145
+ - Agile
146
+ languages:
147
+ # Valid language fluency options:
148
+ #
149
+ # - 'Elementary Proficiency'
150
+ # - 'Limited Working Proficiency'
151
+ # - 'Minimum Professional Proficiency'
152
+ # - 'Full Professional Proficiency'
153
+ # - 'Native or Bilingual Proficiency'
154
+ - language: English
155
+ fluency: Native or Bilingual Proficiency
156
+ keywords:
157
+ - TOEFL 110
158
+ - IELTS 7.5
159
+ - language: Chinese
160
+ fluency: Elementary Proficiency
161
+ keywords: []
162
+ skills:
163
+ # Valid level options:
164
+ #
165
+ # - 'Novice'
166
+ # - 'Beginner'
167
+ # - 'Intermediate'
168
+ # - 'Advanced'
169
+ # - 'Expert'
170
+ # - 'Master'
171
+ - name: Web Development
172
+ level: Expert
173
+ keywords:
174
+ - Python
175
+ - Ruby
176
+ - CSS
177
+ - React
178
+ - JavaScript
179
+ - name: DevOps
180
+ level: Intermediate
181
+ keywords:
182
+ - Python
183
+ - Kubernetes
184
+ - Docker
185
+ - Shell
186
+ - Ansible
187
+ - name: Design
188
+ level: Intermediate
189
+ keywords:
190
+ - Sketch
191
+ - Figma
192
+ - Photoshop
193
+ awards:
194
+ - title: Dean's List
195
+ awarder: University of Southern California
196
+ date: Oct 2016
197
+ summary: |
198
+ Awarded to students who achieve a high academic standing by maintaining a specified grade point average (GPA) during a semester.
199
+ certificates:
200
+ - name: AWS Certified Developer - Associate
201
+ url: https://aws.amazon.com/certification/
202
+ issuer: AWS
203
+ date: Mar 2021
204
+ publications:
205
+ - publisher: ACM Transactions on Interactive Intelligent Systems
206
+ url: https://dl.acm.org/journal/tiis
207
+ name: Enhancing Human-Computer Interaction through Augmented Reality
208
+ releaseDate: Dec 2017
209
+ summary: |
210
+ - Explores the potential of augmented reality (AR) in improving interaction between humans and computers
211
+ - Highlights benefits of AR in various areas such as gaming, education, healthcare, and design
212
+ - Discusses challenges and future directions of AR technology in enhancing user experience
213
+ references:
214
+ - name: Dr. Amanda Reynolds
215
+ phone: "(555) 123-4567"
216
+ relationship: Computer Science Professor
217
+ email: amanda.reynolds@usc.edu
218
+ summary: |
219
+ Andy Dufresne shows exceptional problem-solving skills and a solid understanding of programming concepts, he would bring immense value to any team or organization he becomes a part of.
220
+ projects:
221
+ - name: EduWeb
222
+ url: https://www.eduweb.xyz/
223
+ description: A web-based educational platform for interactive learning
224
+ startDate: Sep 2016
225
+ endDate: Dec 2016
226
+ summary: |
227
+ - Designed to enhance online learning experiences
228
+ - Facilitates students' engagement and collaboration through interactive features and user-friendly interface
229
+ - Offers a wide range of courses across various subjects
230
+ - Aims to improve the way students learn through the power of the web
231
+ keywords:
232
+ - Education
233
+ - Online Learning
234
+ - HCI
235
+ interests:
236
+ - name: Sports
237
+ keywords:
238
+ - Soccer
239
+ - Swimming
240
+ - Bicycling
241
+ - Hiking
242
+ - name: Music
243
+ keywords:
244
+ - Piano
245
+ - Guitar
246
+ volunteer:
247
+ - organization: USC Computer Science and Engineering Society
248
+ url: https://www.usccsesociety.org/
249
+ position: Tech Mentor
250
+ startDate: Sep 2015
251
+ endDate: Jul 2023
252
+ summary: |
253
+ - Volunteered as a Tech Mentor at USC Computer Science and Engineering Society
254
+ - Provided guidance and assistance to fellow students in their technical projects and coursework
255
+ - Assisted in organizing workshops, coding competitions, and networking events for the society members
256
+ - Contributed to fostering a collaborative and supportive environment within the student community
257
+
258
+ # Top-level locale setting
259
+ locale:
260
+ # Use \\\`yamlresume languages list\\\` to get the list of supported languages
261
+ language: en
262
+
263
+ # Multiple output layouts configuration
264
+ layouts:
265
+ - engine: html
266
+ # Use \\\`yamlresume templates list\\\` to get the list of available templates
267
+ template: calm
268
+ typography:
269
+ # HTML engine only supports font size in px unit, from 10px to 24px
270
+ fontSize: 16px
271
+ - engine: markdown
272
+ - engine: latex
273
+ page:
274
+ margins:
275
+ top: 2.5cm
276
+ left: 1.5cm
277
+ right: 1.5cm
278
+ bottom: 2.5cm
279
+ showPageNumbers: true
280
+ # Use \\\`yamlresume templates list\\\` to get the list of available templates
281
+ template: moderncv-banking
282
+ typography:
283
+ # LaTeX engine only supports 10pt, 11pt, and 12pt
284
+ fontSize: 11pt
285
+ `;function X({yaml:e=N,onChange:o}){let[t,r]=useState(0),a=n=>{o?.(n);},i=useMemo(()=>{try{return parse(e)}catch{return null}},[e]);return useEffect(()=>{let n=i?.layouts||[];t>=n.length&&n.length>0&&r(n.length-1);},[i?.layouts,t]),{yaml:e,handleYamlChange:a,activeLayoutIndex:t,setActiveLayoutIndex:r,resume:i}}function Ae({yaml:e=N,onChange:o,filename:t}){let{yaml:r,handleYamlChange:a,activeLayoutIndex:i,setActiveLayoutIndex:n,resume:p}=X({yaml:e,onChange:o}),c=jsx(z,{value:r,onChange:m=>a(m||""),filename:t}),d=jsx(J,{activeLayoutIndex:i,setActiveLayoutIndex:n,resume:p,filename:t});return jsxs("div",{className:le("flex flex-col h-full w-full gap-4","text-neutral-200"),style:{backgroundColor:y},children:[jsx(F,{editorPanel:c,previewPanel:d}),jsx(Z,{editorPanel:c,previewPanel:d})]})}function Z({editorPanel:e,previewPanel:o}){return jsx("div",{className:"hidden md:flex flex-1 overflow-hidden",children:jsxs(Group,{orientation:"horizontal",children:[jsx(Panel,{minSize:360,className:"flex flex-col",children:e}),jsx(K,{}),jsx(Panel,{minSize:360,className:"flex flex-col",children:o})]})})}function G({label:e,active:o,onClick:t,icon:r}){return jsxs("button",{type:"button",onClick:t,className:le("flex-1 flex items-center justify-center gap-2 h-10","text-sm","transition-colors",o&&"border-b-2 border-neutral-200 font-medium"),children:[jsx(r,{size:s.sm,stroke:l.sm}),e]})}function se({activeTab:e,onTabChange:o}){return jsxs("div",{className:"flex md:hidden border-b border-neutral-400",children:[jsx(G,{label:"Editor",icon:IconEdit,active:e==="editor",onClick:()=>o("editor")}),jsx(G,{label:"Preview",icon:IconEye,active:e==="preview",onClick:()=>o("preview")})]})}function F({editorPanel:e,previewPanel:o}){let[t,r]=useState("editor");return jsxs("div",{className:"flex-1 flex flex-col gap-2 overflow-hidden md:hidden",children:[jsx(se,{activeTab:t,onTabChange:r}),jsx("div",{className:le("flex-1 flex-col min-h-0",t==="editor"?"flex":"hidden"),children:e}),jsx("div",{className:le("flex-1 flex-col min-h-0",t==="preview"?"flex":"hidden"),children:o})]})}function Y({content:e,language:o}){return jsx(x,{language:o,value:e,readOnly:true,minimap:false,lineNumbers:false})}function Q({content:e}){return jsx("iframe",{title:"Resume HTML Preview",className:"w-full h-full border-none",srcDoc:e})}var pe="data:image/png;base64,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";function me(){return jsxs("div",{className:le("h-full w-full","flex flex-col items-center justify-center gap-4","text-neutral-200"),children:[jsx("img",{src:pe,alt:"YAML Resume Logo",className:"w-32 h-32 opacity-70 grayscale",draggable:false}),jsx("div",{className:"text-lg font-medium",children:"No Layouts Defined"}),jsx("p",{className:"max-w-xs text-center text-sm text-neutral-400",children:"Your resume appears to be empty or contains no layout definitions."})]})}function rt(e){switch(e){case "html":return jsx(IconHtml,{size:s.sm,stroke:l.sm});case "markdown":return jsx(IconMarkdown,{size:s.sm,stroke:l.sm});case "latex":return jsx(IconTex,{size:s.sm,stroke:l.sm});default:return jsx(IconFileText,{size:s.sm,stroke:l.sm})}}function ue({active:e,onClick:o,engine:t,index:r,filename:a}){return jsxs("button",{type:"button",onClick:o,className:le("flex items-center gap-2 max-w-[200px]","h-full px-4","transition-colors border-r border-neutral-600 last:border-neutral-400"),title:`${a}.${r}${T(t)}`,role:"tab","aria-selected":e,style:{backgroundColor:e&&y},children:[rt(t),jsxs("span",{className:"truncate",children:[a,".",r,T(t)]})]})}function de({children:e}){return jsx("div",{role:"tablist",className:le("flex h-full overflow-x-auto"),children:e})}function ee({resume:e,layoutIndex:o}){let{renderedContent:t,engine:r,error:a}=U({resume:e,layoutIndex:o});return a?jsx("div",{role:"alert","aria-live":"polite",className:le("h-full w-full p-4","font-mono text-red-500 bg-red-50","border border-red-200"),children:a}):jsx("div",{className:"h-full w-full flex flex-col bg-white",children:r==="html"?jsx(Q,{content:t}):jsx(Y,{content:t,language:r})})}function J({activeLayoutIndex:e,filename:o,resume:t,setActiveLayoutIndex:r}){let a=useMemo(()=>(t?.layouts||[]).map((m,b)=>({layout:m,originalIndex:b})).filter(m=>m.layout!==null&&m.layout!==void 0&&typeof m.layout.engine=="string"),[t?.layouts]),i=v(o,true)||"resume",n=useCallback(()=>{M(t,e);},[t,e]),p=useCallback(()=>{D(t,e);},[t,e]),c=useCallback(()=>{_(t,e);},[t,e]),d=useCallback(()=>{A(t,e);},[t,e]);return a.length===0?jsxs(P,{children:[jsx(w,{}),jsx(me,{})]}):jsxs(P,{children:[jsxs(w,{children:[jsx(de,{children:a.map(({layout:m,originalIndex:b})=>jsx(ue,{active:e===b,onClick:()=>r(b),engine:m.engine,index:b,filename:i},`${m.engine}-${b}`))}),jsx("div",{className:"flex-1"}),jsxs("div",{className:"flex items-center gap-0.5 pr-2",children:[jsx(R,{onClick:n}),jsx(h,{}),t?.layouts?.[e]?.engine==="html"&&jsxs(Fragment,{children:[jsx(g,{onClick:p,title:"Print",children:jsx(IconPrinter,{size:s.sm,stroke:l.sm})}),jsx(g,{onClick:c,title:"Open in New Tab",children:jsx(IconExternalLink,{size:s.sm,stroke:l.sm})}),jsx(h,{})]}),jsx(g,{onClick:d,title:"Download",children:jsx(IconDownload,{size:s.sm,stroke:l.sm})})]})]}),jsx(C,{children:jsx(ee,{resume:t,layoutIndex:e})})]})}function P({children:e}){return jsx("div",{className:le("flex-1 flex flex-col","border border-neutral-400 overflow-hidden"),children:e})}function C({children:e}){return jsx("div",{className:"flex-1 relative",children:e})}function K(){return jsx(Separator,{className:le("w-2","flex flex-col justify-center items-center group","transition-colors cursor-col-resize"),"data-testid":"separator",children:jsx("div",{className:le("w-1 h-8","bg-neutral-400","group-hover:bg-neutral-300")})})}function w({children:e}){return jsx("div",{className:le("flex items-center border-b border-neutral-400 h-10 text-sm","bg-neutral-800"),children:e})}function g({onClick:e,children:o,title:t}){return jsx("button",{type:"button",onClick:e,className:le("flex items-center justify-center h-8 w-8","text-neutral-200 hover:text-neutral-700 hover:bg-neutral-200","transition-colors","focus:outline-none focus:ring-1 focus:ring-neutral-400"),title:t,children:o})}function R({onClick:e,title:o="Copy"}){let[t,r]=useState(false);return jsx(g,{onClick:async()=>{try{await e(),r(!0),setTimeout(()=>r(!1),2e3);}catch(i){console.error("Failed to copy",i);}},title:o,children:t?jsx(IconCheck,{size:s.sm,stroke:l.sm}):jsx(IconCopy,{size:s.sm,stroke:l.sm})})}function h(){return jsx("div",{className:"w-px h-4 bg-neutral-400 mx-1"})}
286
+
287
+ export { Y as CodeViewer, y as EDITOR_BG_COLOR, oe as EDITOR_FONT_SIZE, x as Editor, z as EditorPanel, Q as HtmlViewer, s as ICON_SIZES, l as ICON_STROKES, P as Panel, C as PanelContent, K as PanelSeparator, w as PanelToolbar, Ae as Playground, Z as PlaygroundDesktop, F as PlaygroundMobile, J as PreviewPanel, W as ResumeEditor, ee as ResumeViewer, g as ToolbarButton, R as ToolbarCopyButton, h as ToolbarSeparator, M as copyResumeToClipboard, A as downloadResume, v as getBasename, T as getExtension, _ as openResumeInNewTab, D as printResume, U as useResumeRenderer, X as useResumeState };
288
+ //# sourceMappingURL=index.js.map
289
+ //# sourceMappingURL=index.js.map