{"_id":"@ampdresume/theme","_rev":"6-02a81f73d560fd375a437017d57be3e7","name":"@ampdresume/theme","dist-tags":{"latest":"0.1.16"},"versions":{"0.1.11":{"name":"@ampdresume/theme","version":"0.1.11","keywords":["resume","theme","ampdresume"],"author":{"name":"Michael R. Dinerstein"},"license":"MIT","_id":"@ampdresume/theme@0.1.11","maintainers":[{"name":"missionmike","email":"md@missionmike.dev"}],"homepage":"https://github.com/mission-minded-llc/ampdresume-theme#readme","bugs":{"url":"https://github.com/mission-minded-llc/ampdresume-theme/issues"},"dist":{"shasum":"0d60f081ba03adeb37b582b04a6391fea3783eb6","tarball":"https://registry.npmjs.org/@ampdresume/theme/-/theme-0.1.11.tgz","fileCount":7,"integrity":"sha512-H96VTC9b8XUhMn5ovIie/gAi2XbdNFy0vLCPm/0uhygqe5uKBi1VxuC1SOySTgcy7js/Kbkq1EgVPskQfTgcRw==","signatures":[{"sig":"MEUCIBbjJumdOAfsapq9mw/E0+UVd6aToh9O2SI8HoXTF9WWAiEAhC6iBC4pMqhrhMeDrfIduD2icG/yzUt2rczBmj1XIiU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103171},"main":"dist/exports.js","types":"dist/exports.d.ts","module":"dist/exports.mjs","exports":{".":{"import":"./dist/exports.mjs","require":"./dist/exports.js"}},"gitHead":"f77a4e1f5b8903e5c2b8b8add48ab89fc0e32208","scripts":{"dev":"next dev","lint":"next lint","test":"jest","build":"next build","check":"npm run types:check && npm run lint && npm run prettier && npm run test","start":"next start","prebuild":"tsx scripts/generateRobotsTxt.ts","prettier":"prettier --check .","build-lib":"tsup src/exports.ts --format esm,cjs --dts --tsconfig tsconfig.build.json --external react","types:check":"tsc --noEmit","test:coverage":"jest --coverage"},"_npmUser":{"name":"missionmike","email":"md@missionmike.dev"},"repository":{"url":"git+https://github.com/mission-minded-llc/ampdresume-theme.git","type":"git"},"_npmVersion":"9.6.7","description":"A theme package for Amp'd Resume","directories":{},"_nodeVersion":"18.17.0","dependencies":{"next":"15.0.3","sass":"^1.81.0","dayjs":"^1.11.13","react":"^18.3.1","@mui/base":"^5.0.0-beta.68","react-dom":"^18.3.1","html2pdf.js":"^0.10.2","react-color":"^2.19.3","@mui/material":"^6.1.9","@iconify/react":"^5.0.2","html-react-parser":"^5.2.1","@mui/icons-material":"^6.2.0","@mui/x-date-pickers":"^7.24.1","@next/third-parties":"^15.0.3","@mui/material-nextjs":"^6.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","jest":"^29.7.0","tsup":"^8.4.0","eslint":"^8","ts-jest":"^29.2.5","ts-node":"^10.9.2","prettier":"^3.3.3","babel-jest":"^29.7.0","typescript":"^5","@types/jest":"^29.5.14","@types/node":"^20","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@babel/preset-env":"^7.26.0","@types/react-color":"^3.0.13","@whatwg-node/fetch":"^0.10.1","eslint-config-next":"15.0.3","identity-obj-proxy":"^3.0.0","@babel/preset-react":"^7.25.9","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.1.11_1748390100336_0.0166504682309907","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@ampdresume/theme","version":"0.1.12","keywords":["resume","theme","ampdresume"],"author":{"name":"Michael R. Dinerstein"},"license":"MIT","_id":"@ampdresume/theme@0.1.12","maintainers":[{"name":"missionmike","email":"md@missionmike.dev"}],"homepage":"https://github.com/mission-minded-llc/ampdresume-theme#readme","bugs":{"url":"https://github.com/mission-minded-llc/ampdresume-theme/issues"},"dist":{"shasum":"14fee37e52add3708e86a618644541fdf87db073","tarball":"https://registry.npmjs.org/@ampdresume/theme/-/theme-0.1.12.tgz","fileCount":7,"integrity":"sha512-u/w4EhJo3TrHuLCbN8xr0E3tKZWli6xe+XMMwueRKqaXTbx9S0lHCqeRjzRYnAKBQUlXoGad0yTji4fOaMv66A==","signatures":[{"sig":"MEQCIFRecKp70P5XWP1NHwoeWGvDNMrFppytz/Z08dhEXGWpAiA2n8lXS0Q20y9Vc3lZzt12P96t4s9rgoXtT/MZmLC/1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":103186},"main":"dist/exports.js","types":"dist/exports.d.ts","module":"dist/exports.mjs","exports":{".":{"import":"./dist/exports.mjs","require":"./dist/exports.js"}},"gitHead":"96ba5571a4076b7f608ac21f383f651771e0c309","scripts":{"dev":"next dev","lint":"next lint","test":"jest","build":"next build","check":"npm run types:check && npm run lint && npm run prettier && npm run test","start":"next start","prebuild":"tsx scripts/generateRobotsTxt.ts","prettier":"prettier --check .","build-lib":"tsup src/exports.ts --format esm,cjs --dts --tsconfig tsconfig.build.json --external react","types:check":"tsc --noEmit","test:coverage":"jest --coverage"},"_npmUser":{"name":"missionmike","email":"md@missionmike.dev"},"repository":{"url":"git+https://github.com/mission-minded-llc/ampdresume-theme.git","type":"git"},"_npmVersion":"10.8.2","description":"A theme package for Amp'd Resume","directories":{},"_nodeVersion":"20.19.1","dependencies":{"next":"15.0.3","sass":"^1.81.0","dayjs":"^1.11.13","react":"^18.3.1","@mui/base":"^5.0.0-beta.68","react-dom":"^18.3.1","html2pdf.js":"^0.10.2","react-color":"^2.19.3","@mui/material":"^6.1.9","@iconify/react":"^5.0.2","html-react-parser":"^5.2.1","@mui/icons-material":"^6.2.0","@mui/x-date-pickers":"^7.24.1","@next/third-parties":"^15.0.3","@mui/material-nextjs":"^6.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","jest":"^29.7.0","tsup":"^8.4.0","eslint":"^8","ts-jest":"^29.2.5","ts-node":"^10.9.2","prettier":"^3.3.3","babel-jest":"^29.7.0","typescript":"^5","@types/jest":"^29.5.14","@types/node":"^20","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@babel/preset-env":"^7.26.0","@types/react-color":"^3.0.13","@whatwg-node/fetch":"^0.10.1","eslint-config-next":"15.0.3","identity-obj-proxy":"^3.0.0","@babel/preset-react":"^7.25.9","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.1.12_1748390997518_0.8683124618870808","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@ampdresume/theme","version":"0.1.13","keywords":["resume","theme","ampdresume"],"author":{"name":"Michael R. Dinerstein"},"license":"MIT","_id":"@ampdresume/theme@0.1.13","maintainers":[{"name":"missionmike","email":"md@missionmike.dev"}],"homepage":"https://github.com/mission-minded-llc/ampdresume-theme#readme","bugs":{"url":"https://github.com/mission-minded-llc/ampdresume-theme/issues"},"dist":{"shasum":"a44799f8533eebedcca61ec5af2c6f9de31d48d4","tarball":"https://registry.npmjs.org/@ampdresume/theme/-/theme-0.1.13.tgz","fileCount":7,"integrity":"sha512-7VGcYKPWBF9qm1d0xMnTFX8vsIXOyPA7Y7YgghqSeV0BXz8fQHkjdj+HC1ohOjuIBqCQ3XUmv4SZzv2b74rEzw==","signatures":[{"sig":"MEUCIQCT5KpEKlAPtASC7teAhZw+5DhU2dwOA1bTC0BLFH9c1AIgCUrA1j/aCBU5mcoAWzqFy/AErd86eC3uXcKAMCJsxg8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113004},"main":"dist/exports.js","types":"dist/exports.d.ts","module":"dist/exports.mjs","exports":{".":{"import":"./dist/exports.mjs","require":"./dist/exports.js"}},"gitHead":"20c3e0e945c8ec494d5c590e52d892470f3ccd8b","scripts":{"dev":"next dev","lint":"next lint","test":"jest","build":"next build","check":"npm run types:check && npm run lint && npm run prettier && npm run test","start":"next start","prebuild":"tsx scripts/generateRobotsTxt.ts","prettier":"prettier --check .","build-lib":"tsup src/exports.ts --format esm,cjs --dts --tsconfig tsconfig.build.json --external react","types:check":"tsc --noEmit","test:coverage":"jest --coverage"},"_npmUser":{"name":"missionmike","email":"md@missionmike.dev"},"repository":{"url":"git+https://github.com/mission-minded-llc/ampdresume-theme.git","type":"git"},"_npmVersion":"10.8.2","description":"A theme package for Amp'd Resume","directories":{},"_nodeVersion":"20.19.1","dependencies":{"next":"15.0.3","sass":"^1.81.0","dayjs":"^1.11.13","react":"^18.3.1","@mui/base":"^5.0.0-beta.68","react-dom":"^18.3.1","html2pdf.js":"^0.10.2","react-color":"^2.19.3","@mui/material":"^6.1.9","@iconify/react":"^5.0.2","html-react-parser":"^5.2.1","@mui/icons-material":"^6.2.0","@mui/x-date-pickers":"^7.24.1","@next/third-parties":"^15.0.3","@mui/material-nextjs":"^6.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","jest":"^29.7.0","tsup":"^8.4.0","eslint":"^8","ts-jest":"^29.2.5","ts-node":"^10.9.2","prettier":"^3.3.3","babel-jest":"^29.7.0","typescript":"^5","@types/jest":"^29.5.14","@types/node":"^20","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@babel/preset-env":"^7.26.0","@types/react-color":"^3.0.13","@whatwg-node/fetch":"^0.10.1","eslint-config-next":"15.0.3","identity-obj-proxy":"^3.0.0","@babel/preset-react":"^7.25.9","@testing-library/react":"^16.1.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.1.13_1748411643243_0.9626963880749968","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@ampdresume/theme","version":"0.1.14","keywords":["resume","theme","ampdresume"],"author":{"name":"Michael R. Dinerstein"},"license":"MIT","_id":"@ampdresume/theme@0.1.14","maintainers":[{"name":"missionmike","email":"md@missionmike.dev"}],"homepage":"https://github.com/mission-minded-llc/ampdresume-theme#readme","bugs":{"url":"https://github.com/mission-minded-llc/ampdresume-theme/issues"},"dist":{"shasum":"769d5404a77264d7da9cf8f5775c22118245ab26","tarball":"https://registry.npmjs.org/@ampdresume/theme/-/theme-0.1.14.tgz","fileCount":7,"integrity":"sha512-w7OR9o1dHcSXLPZmw7aR8xyV7CtOFzn7/u0Ec7CJXf9n9b+JFHasYBEw0u8riN8nwA3ZCsCAhbpymx2dFDbFYg==","signatures":[{"sig":"MEUCIQCOv0HmQJHZKY9ChlEsF0sSwDn64fv66QLYt7zSKzj2IwIgHutZILSX6OEub9uY8bPBf21/FyLwdQO8zDjDlPkmTNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":168355},"main":"dist/exports.js","types":"dist/exports.d.ts","module":"dist/exports.mjs","exports":{".":{"import":"./dist/exports.mjs","require":"./dist/exports.js"}},"gitHead":"db365d6f9783023bae084ac651a745d2719a9caf","scripts":{"dev":"next dev","lint":"next lint","test":"jest","build":"next build","check":"npm run types:check && npm run lint && npm run prettier && npm run test","start":"next start","prebuild":"tsx scripts/generateRobotsTxt.ts","prettier":"prettier --check .","build-lib":"tsup src/exports.ts --format esm,cjs --dts --tsconfig tsconfig.build.json --external react","types:check":"tsc --noEmit","cypress:test":"cypress run","test:coverage":"jest --coverage","cypress:upload:screenshots":"tsx scripts/uploadCypressScreenshots.ts"},"_npmUser":{"name":"missionmike","email":"md@missionmike.dev"},"repository":{"url":"git+https://github.com/mission-minded-llc/ampdresume-theme.git","type":"git"},"_npmVersion":"10.8.2","description":"A theme package for Amp'd Resume","directories":{},"_nodeVersion":"20.19.2","dependencies":{"next":"15.0.3","sass":"^1.81.0","dayjs":"^1.11.13","react":"^18.3.1","qrcode":"^1.5.4","cypress":"^14.2.0","@mui/base":"^5.0.0-beta.68","react-dom":"^18.3.1","html2pdf.js":"^0.10.2","react-color":"^2.19.3","@mui/material":"^6.1.9","@types/qrcode":"^1.5.5","@iconify/react":"^5.0.2","html-react-parser":"^5.2.1","@aws-sdk/client-s3":"^3.821.0","@mui/icons-material":"^6.2.0","@mui/x-date-pickers":"^7.24.1","@next/third-parties":"^15.0.3","@mui/material-nextjs":"^6.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","jest":"^29.7.0","tsup":"^8.4.0","eslint":"^8","ts-jest":"^29.2.5","ts-node":"^10.9.2","prettier":"^3.3.3","babel-jest":"^29.7.0","typescript":"^5","@types/jest":"^29.5.14","@types/node":"^20","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@babel/preset-env":"^7.26.0","@types/react-color":"^3.0.13","@whatwg-node/fetch":"^0.10.1","eslint-config-next":"15.0.3","identity-obj-proxy":"^3.0.0","@babel/preset-react":"^7.25.9","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.1.14_1749938173506_0.27386617158970306","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@ampdresume/theme","version":"0.1.15","keywords":["resume","theme","ampdresume"],"author":{"name":"Michael R. Dinerstein"},"license":"MIT","_id":"@ampdresume/theme@0.1.15","maintainers":[{"name":"missionmike","email":"md@missionmike.dev"}],"homepage":"https://github.com/mission-minded-llc/ampdresume-theme#readme","bugs":{"url":"https://github.com/mission-minded-llc/ampdresume-theme/issues"},"dist":{"shasum":"fe19a695ab73c612cc5a48cac531bc49d2cf6a73","tarball":"https://registry.npmjs.org/@ampdresume/theme/-/theme-0.1.15.tgz","fileCount":7,"integrity":"sha512-F7CFNfvg0/aHAEeQczg0p7fjxKz2an9a297CLCdUE9V+r2HvJGRRjyulWr9ZUqsu3kNYjrtf/WpUcwaK+3y4fg==","signatures":[{"sig":"MEQCID8l4FyzGn9sGYPuCS3umYePUb5OBiidi06W950OCxJ+AiAGIoKpbLupPLShvs6eXsW8OcGeeY+EPOEgMHF75m2bdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170561},"main":"dist/exports.js","types":"dist/exports.d.ts","module":"dist/exports.mjs","exports":{".":{"import":"./dist/exports.mjs","require":"./dist/exports.js"}},"gitHead":"33c998cf7f29c83a584bb764d169f620a68b3cbb","scripts":{"dev":"next dev","lint":"next lint","test":"jest","build":"next build","check":"npm run types:check && npm run lint && npm run prettier && npm run test","start":"next start","prebuild":"tsx scripts/generateRobotsTxt.ts","prettier":"prettier --check .","build-lib":"tsup src/exports.ts --format esm,cjs --dts --tsconfig tsconfig.build.json --external react","types:check":"tsc --noEmit","cypress:test":"cypress run","test:coverage":"jest --coverage","cypress:upload:screenshots":"tsx scripts/uploadCypressScreenshots.ts"},"_npmUser":{"name":"missionmike","actor":{"name":"missionmike","type":"user","email":"md@missionmike.dev"},"email":"md@missionmike.dev"},"repository":{"url":"git+https://github.com/mission-minded-llc/ampdresume-theme.git","type":"git"},"_npmVersion":"10.8.2","description":"A theme package for Amp'd Resume","directories":{},"_nodeVersion":"20.19.2","dependencies":{"next":"15.0.3","sass":"^1.81.0","dayjs":"^1.11.13","react":"^18.3.1","qrcode":"^1.5.4","cypress":"^14.2.0","@mui/base":"^5.0.0-beta.68","react-dom":"^18.3.1","html2pdf.js":"^0.10.2","react-color":"^2.19.3","@mui/material":"^6.1.9","@types/qrcode":"^1.5.5","@iconify/react":"^5.0.2","html-react-parser":"^5.2.1","@aws-sdk/client-s3":"^3.821.0","@mui/icons-material":"^6.2.0","@mui/x-date-pickers":"^7.24.1","@next/third-parties":"^15.0.3","@mui/material-nextjs":"^6.1.8"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","jest":"^29.7.0","tsup":"^8.4.0","eslint":"^8","ts-jest":"^29.2.5","ts-node":"^10.9.2","prettier":"^3.3.3","babel-jest":"^29.7.0","typescript":"^5","@types/jest":"^29.5.14","@types/node":"^20","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@babel/preset-env":"^7.26.0","@types/react-color":"^3.0.13","@whatwg-node/fetch":"^0.10.1","eslint-config-next":"15.0.3","identity-obj-proxy":"^3.0.0","@babel/preset-react":"^7.25.9","@testing-library/react":"^16.3.0","jest-environment-jsdom":"^29.7.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/theme_0.1.15_1750292957084_0.8942507219017788","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@ampdresume/theme","version":"0.1.16","description":"A theme package for Amp'd Resume","main":"dist/exports.js","module":"dist/exports.mjs","types":"dist/exports.d.ts","exports":{".":{"import":"./dist/exports.mjs","require":"./dist/exports.js"}},"scripts":{"dev":"next dev","prebuild":"tsx scripts/generateRobotsTxt.ts","build":"next build","build-lib":"tsup src/exports.ts --format esm,cjs --dts --tsconfig tsconfig.build.json --external react","start":"next start","check":"npm run types:check && npm run lint && npm run prettier && npm run test","lint":"next lint","prettier":"prettier --check .","types:check":"tsc --noEmit","test":"jest","test:coverage":"jest --coverage","cypress:test":"cypress run","cypress:upload:screenshots":"tsx scripts/uploadCypressScreenshots.ts"},"repository":{"type":"git","url":"git+https://github.com/mission-minded-llc/ampdresume-theme.git"},"keywords":["resume","theme","ampdresume"],"author":{"name":"Michael R. Dinerstein"},"license":"MIT","bugs":{"url":"https://github.com/mission-minded-llc/ampdresume-theme/issues"},"homepage":"https://github.com/mission-minded-llc/ampdresume-theme#readme","dependencies":{"@aws-sdk/client-s3":"^3.832.0","@base-ui-components/react":"^1.0.0-beta.0","@emotion/styled":"^11.14.0","@iconify/react":"^6.0.0","@mui/icons-material":"^7.1.2","@mui/material":"^7.1.2","@mui/material-nextjs":"^7.1.1","@mui/x-date-pickers":"^8.5.3","@next/third-parties":"^15.3.4","@types/qrcode":"^1.5.5","cypress":"^14.5.0","dayjs":"^1.11.13","html-react-parser":"^5.2.5","html2pdf.js":"^0.10.3","next":"15.3.4","qrcode":"^1.5.4","react":"^19.1.0","react-color":"^2.19.3","react-dom":"^19.1.0","sass":"^1.89.2"},"devDependencies":{"@babel/preset-env":"^7.27.2","@babel/preset-react":"^7.27.1","@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.3.0","@testing-library/user-event":"^14.6.1","@types/jest":"^30.0.0","@types/node":"^24","@types/react":"^19.1.8","@types/react-color":"^3.0.13","@types/react-dom":"^19.1.6","@whatwg-node/fetch":"^0.10.8","babel-jest":"^30.0.2","eslint":"^9","eslint-config-next":"15.3.4","identity-obj-proxy":"^3.0.0","jest":"^30.0.2","jest-environment-jsdom":"^30.0.2","prettier":"^3.5.3","ts-jest":"^29.4.0","ts-node":"^10.9.2","tsup":"^8.5.0","tsx":"^4.20.3","typescript":"^5"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_id":"@ampdresume/theme@0.1.16","gitHead":"582afcd25a228f418cf002616dc958ec07013bf9","_nodeVersion":"20.19.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-X4xJbBWPEOUFbZaUUwsaLprYLIdQDrhkqgBCdPIwI4NQGN7zgs0R+PHHvnxyvPOmsXPzJuEPAfnp6tOE/c+O/g==","shasum":"d388fcd37810a84d9b40382ffbdad7455084b898","tarball":"https://registry.npmjs.org/@ampdresume/theme/-/theme-0.1.16.tgz","fileCount":7,"unpackedSize":170622,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCxAzpGAplCxfwiGXcLao8v5GpSybZlWnldrNslIyOkhgIgFhjytvKKVNSceRsq0OyRuceXkXkBbaLrQMNpN1UXiqE="}]},"_npmUser":{"name":"missionmike","email":"md@missionmike.dev","actor":{"name":"missionmike","email":"md@missionmike.dev","type":"user"}},"directories":{},"maintainers":[{"name":"missionmike","email":"md@missionmike.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/theme_0.1.16_1750917269713_0.5362202538575362"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-27T23:55:00.241Z","modified":"2025-06-26T05:54:30.109Z","0.1.11":"2025-05-27T23:55:00.539Z","0.1.12":"2025-05-28T00:09:57.707Z","0.1.13":"2025-05-28T05:54:03.431Z","0.1.14":"2025-06-14T21:56:13.712Z","0.1.15":"2025-06-19T00:29:17.279Z","0.1.16":"2025-06-26T05:54:29.907Z"},"bugs":{"url":"https://github.com/mission-minded-llc/ampdresume-theme/issues"},"author":{"name":"Michael R. Dinerstein"},"license":"MIT","homepage":"https://github.com/mission-minded-llc/ampdresume-theme#readme","keywords":["resume","theme","ampdresume"],"repository":{"type":"git","url":"git+https://github.com/mission-minded-llc/ampdresume-theme.git"},"description":"A theme package for Amp'd Resume","maintainers":[{"name":"missionmike","email":"md@missionmike.dev"}],"readme":"# Amp'd Resume Theme\n\n[![codecov](https://codecov.io/gh/mission-minded-llc/ampdresume-theme/graph/badge.svg?token=HGZ6NME2HH)](https://codecov.io/gh/mission-minded-llc/ampdresume-theme)\n\nAnyone can contribute their own frontend theme design and implementation for\n[Amp'd Resume](https://www.ampdresume.com).\n\nBrowse the published themes available here: https://theme.ampdresume.com/\n\n## The Project\n\nWhile the [Amp'd Resume](https://www.ampdresume.com) backend and infrastructure is closed-source,\nthe frontend templates for resume UIs and PDF exports are now open-source!\n\n### What does this mean?\n\nThis means that anybody can come up with their own template to display custom interactive resumes.\nThe codebase uses React and TypeScript, and you can incorporate any helpful animation and design\nlibraries needed.\n\n### How can I contribute?\n\nTo contribute, fork this repository, spin up on localhost to develop your theme, then open a pull\nrequest back to this main repository to see your theme available live on www.ampdresume.com once\nit's merged.\n\n## Developer Setup\n\nTo develop locally, first fork this repository and follow these steps:\n\n1. Run `npm i` to install dependencies.\n2. Run `npm run dev` to spin up on `localhost:3000`\n3. Navigate to http://localhost:3000/ to view in browser.\n\n> Note: You'll see an `.env.example` file, but at this time there are no needed environment\n> variables. The only variable is currently for a Google Tag Manager ID, which is not required.\n\n## Development Process\n\n1. Checkout a new branch based on the `main` branch, e.g.: `feature/my-new-theme`\n2. When your work is done on this branch, open a pull request into the original repository's\n   `develop` branch.\n3. After the theme is merged into the `develop` branch, you should be able to view it live on\n   https://themetest.ampdresume.com as well as access the theme for testing on\n   https://test.ampdresume.com (only allow-listed members can sign in here, please request access).\n4. From there, the theme will be merged to `main` branch, deployed to production and made available\n   to all users!\n\n## Building Your Theme\n\nThere are some steps and specifications required to build a theme.\n\n### Data Types\n\nFirst, get familiar with the data types ingested by a resume template. These can be found documented\nin\n[src/types/index.ts](https://github.com/mission-minded-llc/ampdresume-theme/blob/main/src/types/index.ts)\n\n### Folder Structure\n\nThe theme templates can be found in `src/themes/[theme-name]`.\n\nTo create a new template, first create a new `[theme-name]` folder, e.g. `slick`.\n\nThis folder should contain at last one component, e.g. `ThemeSlick.tsx`. If you create a custom PDF\ntheme as well, create a `ThemeSlickPDF.tsx` component.\n\nThese components should ingest specific data, please see `src/theme/default/ThemeDefault.tsx` and\n`src/theme/default/ThemeDefaultPDF.tsx` for reference, e.g.:\n\n#### `ThemeDefault.tsx` Example\n\n```jsx\nexport const ThemeDefault = ({\n  themeAppearance,\n  user,\n  socials,\n  skillsForUser,\n  companies,\n  education,\n}: {\n  themeAppearance: ThemeAppearance;\n  user: User;\n  socials: Social[];\n  skillsForUser: SkillForUser[];\n  companies: Company[];\n  education: EducationType[];\n}) => (\n    // Your cool resume template here, do with the data what you wish!\n);\n```\n\n#### `ThemeDefaultPDF.tsx` Example\n\n```jsx\ninterface PDFViewProps {\n  user: User;\n  skillsForUser: SkillForUser[];\n  companies: Company[];\n  education: EducationType[];\n  themeOptions?: ThemeDefaultPDFOptions;\n}\n\nexport const ThemeDefaultPDF = ({\n  user,\n  skillsForUser,\n  companies,\n  education,\n  themeOptions = defaultThemeOptions,\n}: PDFViewProps) => {\n    // Your component code here.\n}\n```\n\n> Note: The PDF templates should use React, but should not contain any dynamic content because\n> they're intended for print! The way it initially renders, is how it should end up being exported\n> to PDF via the interface.\n\n### Previewing Your Theme\n\nTo preview your work as you develop a theme, first you need to ensure the theme can be viewed. Do\nthis by modifying `src/app/theme/[themeName]/ResumeView.tsx` and\n`src/app/theme/[themeName]/PDFView.tsx` to ensure it can be loaded:\n\n#### `ResumeView.tsx` Update\n\n```jsx\nswitch (themeName) {\n    case \"slick\":\n      return (\n        <ThemeSlick\n          // pass props, etc.\n        />\n      );\n    case \"default\":\n    default:\n      return (\n        <ThemeDefault\n          // pass props, etc.\n        />\n      );\n```\n\nFollow suit in `PDFView.tsx` as well.\n\nThen, you should be able to preview your work at http://localhost:3000/theme/slick\n\n### Sample Data\n\nBy default, the sample resume data is loaded from `src/theme/sampleData.json` and transferred\nthrough `src/theme/sampleData.ts` for strong typing.\n\nIf you'd like to create your own sample data based on this format to test various UI updates, create\nyour own `sampleData.json` and `sampleData.ts` files within your `src/theme/[theme-name]/` folder.\nThen, ensure they're imported in the `src/app/theme/[themeName]/ResumeView.tsx` and\n`src/app/theme/[themeName]/PDFView.tsx` files to be passed into your example page.\n\nIf you want to base your sample data off a real resume from ampdresume.com, visit the\n[Postman collection](https://www.postman.com/universal-sunset-980198/missionmike/request/8ceygsv/getresume?ctx=documentation)\nand fire off the `getResume` request using the slug of your preferred user.\n\n### Adding to the Nav Menu\n\nAdd the theme to the nav menu by adding a new entry in the `src/theme/themeNavItems.tsx` location.\nAfter saving, your theme should be visible in the nav.\n\n## Testing Your Theme\n\nJest unit and snapshot tests are encouraged for each theme. PRs cannot be merged without having\nsolid tests to accompany any new templates.\n\nAdd the test files as neighbors to your new components; they should be side-by-side in the same\nlocation.\n\nTo run your tests, you can use `npm run test`, or view coverage with `npm run test:coverage`, then\nopen the generated local coverage report in-browser.\n\nChecks can be run via:\n\n- `npm run lint` to lint all the code.\n- `npm run types:check` to run TypeScript checks.\n- `npm run test` to run Jest tests.\n- `npm run test:coverage` to run Jest tests with coverage.\n- `npm run check` to test all avenues in sequence. This is the command used within the CI process.\n\nIf you have any issues during development, please open a new issue in this repository.\n\nHappy coding!\n","readmeFilename":"README.md"}