{"_id":"@flanksource/facet","_rev":"45-d92085affb77ecc4cc35262642b019e4","name":"@flanksource/facet","dist-tags":{"latest":"0.1.73"},"versions":{"0.1.3":{"name":"@flanksource/facet","version":"0.1.3","_id":"@flanksource/facet@0.1.3","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"bin":{"facet":"cli/dist/cli.mjs"},"dist":{"shasum":"5227efa04761273be796cb40223669b50f261133","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.3.tgz","fileCount":78,"integrity":"sha512-5WrZ27+pTx33oLYauBXZpp5VFocmqttNvT6spswk9BLLjzFdjRqeoWaI0IzM7biQreq5vnOjFp80mVw7sVToSg==","signatures":[{"sig":"MEUCIQCRzFaTSE3K4AhDu9/ZXN/fJRvRKTBdWx8JwBkrLzC8YwIgfqhAk9YxPDRJ+4reB3qeb0zBAhVJj5ekiZShLD1xR0s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":534943},"main":"./src/components/index.tsx","type":"module","types":"./src/components/index.tsx","engines":{"node":">=20.19"},"exports":{".":{"types":"./src/components/index.tsx","import":"./src/components/index.tsx"},"./Age":"./src/components/Age.tsx","./Page":"./src/components/Page.tsx","./Badge":"./src/components/Badge.tsx","./Gauge":"./src/components/Gauge.tsx","./Steps":"./src/components/Steps.tsx","./Avatar":"./src/components/Avatar.tsx","./Footer":"./src/components/Footer.tsx","./Header":"./src/components/Header.tsx","./Status":"./src/components/Status.tsx","./Section":"./src/components/Section.tsx","./Glossary":"./src/components/Glossary.tsx","./StatCard":"./src/components/StatCard.tsx","./PageBreak":"./src/components/PageBreak.tsx","./PdfFooter":"./src/components/PdfFooter.tsx","./BulletList":"./src/components/BulletList.tsx","./CalloutBox":"./src/components/CalloutBox.tsx","./CountBadge":"./src/components/CountBadge.tsx","./MetricGrid":"./src/components/MetricGrid.tsx","./ScoreGauge":"./src/components/ScoreGauge.tsx","./StarRating":"./src/components/StarRating.tsx","./styles.css":"./src/styles.css","./AlertsTable":"./src/components/AlertsTable.tsx","./AvatarGroup":"./src/components/AvatarGroup.tsx","./ProgressBar":"./src/components/ProgressBar.tsx","./SocialProof":"./src/components/SocialProof.tsx","./CallToAction":"./src/components/CallToAction.tsx","./CompactTable":"./src/components/CompactTable.tsx","./MetricHeader":"./src/components/MetricHeader.tsx","./package.json":"./package.json","./FeatureLayout":"./src/components/FeatureLayout.tsx","./KpiComparison":"./src/components/KpiComparison.tsx","./MetricsCallout":"./src/components/MetricsCallout.tsx","./TerminalOutput":"./src/components/TerminalOutput.tsx","./ComparisonTable":"./src/components/ComparisonTable.tsx","./IntegrationGrid":"./src/components/IntegrationGrid.tsx","./KPITargetActual":"./src/components/KPITargetActual.tsx","./SeverityStatCard":"./src/components/SeverityStatCard.tsx","./TwoColumnSection":"./src/components/TwoColumnSection.tsx","./ValueProposition":"./src/components/ValueProposition.tsx","./CapabilitySection":"./src/components/CapabilitySection.tsx","./DatasheetTemplate":"./src/components/DatasheetTemplate.tsx","./QueryResponseChat":"./src/components/QueryResponseChat.tsx","./SyntaxHighlighter":"./src/components/SyntaxHighlighter.tsx","./ProjectSummaryCard":"./src/components/ProjectSummaryCard.tsx","./SpecificationTable":"./src/components/SpecificationTable.tsx","./TaskSummarySection":"./src/components/TaskSummarySection.tsx","./getColorFromString":"./src/utils/colors.ts","./RatingCategoryInput":"./src/components/RatingCategoryInput.tsx","./SecurityChecksTable":"./src/components/SecurityChecksTable.tsx","./QueryResponseExample":"./src/components/QueryResponseExample.tsx","./QueryResponseTerminal":"./src/components/QueryResponseTerminal.tsx","./VulnerabilityBreakdown":"./src/components/VulnerabilityBreakdown.tsx"},"gitHead":"6055d1aa1832d73231cf3ef2eb17fe574055cb43","scripts":{"build":"npm run build:cli","build:cli":"cd cli && npm run build","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"moshloop","email":"moshe@flanksource.com"},"_npmVersion":"10.8.2","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"20.19.5","dependencies":{"ora":"^8.2.0","clsx":"^2.1.1","chalk":"^5.6.2","dagre":"^0.8.5","dayjs":"^1.11.13","react":"^18.2.0","shiki":"^1.0.0","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-dom":"^18.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@tailwindcss/vite":"^4.1.17","@flanksource/icons":"^1.0.41","@tailwindcss/postcss":"^4.1.17","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vite":"^5.0.0","juice":"^11.0.3","puppeteer":"^24.26.1","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@storybook/addon-essentials":"^8.6.14"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.3_1763318817629_0.4673046513880337","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@flanksource/facet","version":"0.1.10","_id":"@flanksource/facet@0.1.10","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"bin":{"facet":"cli/dist/cli.mjs"},"dist":{"shasum":"9c3f644a62530563a68d5e8cf86d337cc769ba46","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.10.tgz","fileCount":79,"integrity":"sha512-5bIjOjxWo++YF8/Cq6XTlPSBe8M4/IdJqYszJ1ejlkFIy+kmyUFgYFv3z/s862Xi20kuMg2lDixcX+OsCYR6KQ==","signatures":[{"sig":"MEUCIQDEyVtSCu0i7MJ3ejOVJEn7RkLZ9CBrmoAs5lCRM6l8uQIgRHF3CIx2jlXcaBFsQBTtPPZlhLMcYyPpRxzqx5BM510=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":474378},"main":"./src/components/index.tsx","type":"module","types":"./src/components/index.tsx","engines":{"node":">=20.19"},"exports":{".":{"types":"./src/components/index.tsx","import":"./src/components/index.tsx"},"./Age":"./src/components/Age.tsx","./Page":"./src/components/Page.tsx","./Badge":"./src/components/Badge.tsx","./Gauge":"./src/components/Gauge.tsx","./Steps":"./src/components/Steps.tsx","./Avatar":"./src/components/Avatar.tsx","./Footer":"./src/components/Footer.tsx","./Header":"./src/components/Header.tsx","./Status":"./src/components/Status.tsx","./Section":"./src/components/Section.tsx","./Glossary":"./src/components/Glossary.tsx","./StatCard":"./src/components/StatCard.tsx","./PageBreak":"./src/components/PageBreak.tsx","./PdfFooter":"./src/components/PdfFooter.tsx","./BulletList":"./src/components/BulletList.tsx","./CalloutBox":"./src/components/CalloutBox.tsx","./CountBadge":"./src/components/CountBadge.tsx","./MetricGrid":"./src/components/MetricGrid.tsx","./ScoreGauge":"./src/components/ScoreGauge.tsx","./StarRating":"./src/components/StarRating.tsx","./styles.css":"./src/styles.css","./AlertsTable":"./src/components/AlertsTable.tsx","./AvatarGroup":"./src/components/AvatarGroup.tsx","./ProgressBar":"./src/components/ProgressBar.tsx","./SocialProof":"./src/components/SocialProof.tsx","./CallToAction":"./src/components/CallToAction.tsx","./CompactTable":"./src/components/CompactTable.tsx","./MetricHeader":"./src/components/MetricHeader.tsx","./package.json":"./package.json","./FeatureLayout":"./src/components/FeatureLayout.tsx","./KpiComparison":"./src/components/KpiComparison.tsx","./MetricsCallout":"./src/components/MetricsCallout.tsx","./TerminalOutput":"./src/components/TerminalOutput.tsx","./ComparisonTable":"./src/components/ComparisonTable.tsx","./IntegrationGrid":"./src/components/IntegrationGrid.tsx","./KPITargetActual":"./src/components/KPITargetActual.tsx","./SeverityStatCard":"./src/components/SeverityStatCard.tsx","./TwoColumnSection":"./src/components/TwoColumnSection.tsx","./ValueProposition":"./src/components/ValueProposition.tsx","./CapabilitySection":"./src/components/CapabilitySection.tsx","./DatasheetTemplate":"./src/components/DatasheetTemplate.tsx","./QueryResponseChat":"./src/components/QueryResponseChat.tsx","./SyntaxHighlighter":"./src/components/SyntaxHighlighter.tsx","./ProjectSummaryCard":"./src/components/ProjectSummaryCard.tsx","./SpecificationTable":"./src/components/SpecificationTable.tsx","./TaskSummarySection":"./src/components/TaskSummarySection.tsx","./getColorFromString":"./src/utils/colors.ts","./RatingCategoryInput":"./src/components/RatingCategoryInput.tsx","./SecurityChecksTable":"./src/components/SecurityChecksTable.tsx","./QueryResponseExample":"./src/components/QueryResponseExample.tsx","./QueryResponseTerminal":"./src/components/QueryResponseTerminal.tsx","./VulnerabilityBreakdown":"./src/components/VulnerabilityBreakdown.tsx"},"gitHead":"b909a202f74524c107dea6e120f0082003b3588a","scripts":{"build":"npm run build:cli","build:cli":"cd cli && npm run build","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build","build-storybook":"storybook build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.8.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"24.13.1","dependencies":{"ora":"^8.2.0","clsx":"^2.1.1","chalk":"^5.6.2","dagre":"^0.8.5","dayjs":"^1.11.13","react":"^18.2.0","shiki":"^1.0.0","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-dom":"^18.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@tailwindcss/vite":"^4.1.17","@flanksource/icons":"^1.0.41","@tailwindcss/postcss":"^4.1.17","@tailwindcss/typography":"^0.5.19"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","vite":"^5.0.0","juice":"^11.0.3","puppeteer":"^24.26.1","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@storybook/addon-essentials":"^8.6.14"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.10_1772049359163_0.12277870488550602","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"@flanksource/facet","version":"0.1.23","_id":"@flanksource/facet@0.1.23","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"b42e3ffbc19e3c6d41b828012aea5da723fba8eb","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.23.tgz","fileCount":130,"integrity":"sha512-huxmaGGzkkEqiOCCh4NQ2p5bs4oiAMeBrHbu/9/OF5T9uvDwbwMM2V7jkt6frXKuArqYRZGpEggIn7KV6GD6LA==","signatures":[{"sig":"MEUCIFKcBB49YyKN3acwHyRvW2MoT7XoUTTfzvgzip6yxY9vAiEA6TdPBEE9lTb8giTR9SuiFCC+MPE8ZAxARh4XX3xWSOs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":623274},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"50ce350ce15890c85da79138e14b4488ef41ed50","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.1","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.41","@testing-library/react":"^16.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.23_1773412144683_0.9771692108597136","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"@flanksource/facet","version":"0.1.24","_id":"@flanksource/facet@0.1.24","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"98827608ae9384dc8454d508ae40910c903e4607","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.24.tgz","fileCount":130,"integrity":"sha512-goADCzn1+xvI1EBnhoHYipFRwlkf5q8eRMBg7DU4JygBl/v80goB6zKiNcsphEnFQ9O7M2g2/Vm4Y1EIKSAGbw==","signatures":[{"sig":"MEYCIQCBgDK8J96a0OqmtFH0wHpbcmCGUZ/sDrI/0lYhEKnzkAIhAPEXEf3ZTr6cNVesJQEoBBWWKI9P/FJB/KaFSZFPfzm3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":623274},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"2a5fbee456de285a249e344c26bbdc49c44023bf","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.1","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.41","@testing-library/react":"^16.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.24_1773572903045_0.8722584939986571","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"@flanksource/facet","version":"0.1.25","_id":"@flanksource/facet@0.1.25","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"0e625139c9b9dd33f4edb894f1eb3d5353116021","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.25.tgz","fileCount":130,"integrity":"sha512-5LrNAd0JTV8Fn/aU5Nmm+jME5qT64koQfhP7C7+3RP/3fNvZ+e615iPyNG37xFNRoaosuezdZQGBtBuvwG/j+A==","signatures":[{"sig":"MEQCIH04DOB7s1O+nA12iJn4RJLl2uQb0Bw10k9nANPKeWdbAiBApk8eWljOXgOL+xkhB5iZY0ewlyUjJUfpnhUNS9bbWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":624356},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"baf50f236f9642a27ceb55b0a72aff0907dcd0ea","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.1","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.41","@testing-library/react":"^16.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.25_1773668990345_0.7597227320128186","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"@flanksource/facet","version":"0.1.26","_id":"@flanksource/facet@0.1.26","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"111b61d5436109e72aeacff7d0b91bb148f4f82b","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.26.tgz","fileCount":131,"integrity":"sha512-gcGNohA+lMy+T5vrES6YbcWZ9dmu56BGiRj2+ehK48SBRygjO3L1o+i0oPb/mRat9mhYQ1lgc0jWinFE1NRY7w==","signatures":[{"sig":"MEQCIAa8RQYW+zw6Jvw3tZT/ORCn/8mlsJodmleo22S/ATn6AiB218FevvBSyPYNoj8AR/sP/uT9azuJnteX7X2SOhZIQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2849867},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"503614faa5a5202f4918e5348c4f39c15b1f3620","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.1","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.0","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.41","@testing-library/react":"^16.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.26_1773674774805_0.9093556017086712","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"@flanksource/facet","version":"0.1.27","_id":"@flanksource/facet@0.1.27","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"4b558c0db6efe7af6b414ec3deed3e2bc1c3b8dd","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.27.tgz","fileCount":131,"integrity":"sha512-dANtwNkta13npiy4ION0zlToIzPPqLH0B2bF5pWnmWeHLt8olWf+HhQiDlMnMksyKnjWfbaaoBjLttOohaEy7w==","signatures":[{"sig":"MEUCIGjBNi6YsUjbsjhxYRG8AMmb7hCE7uhngm2UhAA2Y5gQAiEA7hqwwEA3SKFowEOnnw1rGhzl1e9kRmP0zqFe6tWncqc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2852104},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"cb2033636276525efa20823f763ccfa69a83573d","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.1","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.41","@testing-library/react":"^16.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.27_1773757142454_0.6511607212860839","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"@flanksource/facet","version":"0.1.28","_id":"@flanksource/facet@0.1.28","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"f125994195144185479bda84ce8cb71bc5fcffff","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.28.tgz","fileCount":131,"integrity":"sha512-tw0lkhmzyNxfVlhIq7A94nIsQRzM1fnoC/oOnX58GAFRiU2szHiIQ8cb5KuBjvPofmtnRim3uj4p5Nfh41FygQ==","signatures":[{"sig":"MEUCIACEFpc6P8eeLI+HwCp9Ks7fyFd3WFmdjS3cbEoJ1IyVAiEA7pyzDt4o7UlJEpVL7iYSg6L2ks25XyIR5lHFW9zgnjs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2852176},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"fe8e9f3b5bc39730eaf5bdc4533db558e1ca4e1a","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.12.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.41","@testing-library/react":"^16.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.28_1774422892872_0.018193181976222217","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"@flanksource/facet","version":"0.1.29","_id":"@flanksource/facet@0.1.29","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"1c7de2751903d2546d52297db55f1d8de55eec0e","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.29.tgz","fileCount":131,"integrity":"sha512-zqpogsXb8zhNnabDewRwUCBHKRrDJol2FcrE+CLpspgrVw/5EMyjFCQLHNJEsI2mNwkdU53S2PeK0hQ6ttZfQw==","signatures":[{"sig":"MEYCIQDYfELigrcZGSUiNKKsD/4o9EPeUCr1UMLKT18QrOEk+gIhAM+C8B6biYgZpR0UiDaasdWCOJGwman+vUG1eZ6HWUHN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2854075},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"62efcad1be4aef2ede6de6a0f794285119d4c99e","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.12.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.41","@testing-library/react":"^16.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.29_1774426053965_0.4914712084342012","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"@flanksource/facet","version":"0.1.30","_id":"@flanksource/facet@0.1.30","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"327214ea126c3b10ed6de9f3669ab9c739e291e2","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.30.tgz","fileCount":131,"integrity":"sha512-9BvGI70uv65Xen6Kh5SXfzMLDGEe3yjLutrVpkldSAJWEhGcz7IF7oveQ+MrWmAAUlQwanzJ45aNsBgSAsQvjQ==","signatures":[{"sig":"MEUCIQD2zLta0FMXv7DO4mMr5VOWx46TReD13UfiPKeYjbJC2QIgfU/wpn+b2dUHHd5KA6LCGQU5eeJFCNKwdSeoMLtJw7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2854075},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"850c0a441fff103f866891c80a0e419090192fc8","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.12.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.41","@testing-library/react":"^16.3.2"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.30_1774426215637_0.14289813030223364","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"@flanksource/facet","version":"0.1.31","_id":"@flanksource/facet@0.1.31","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"b47a4039c377b3f7cf6c1bc94e2495dce126d14c","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.31.tgz","fileCount":148,"integrity":"sha512-T2VFluE7nWwlRY3rWEm//5jxvho7peK2mXyGOMTTySulyNV0Z8X1yS04CIWMLLMl6pxnkLjejhsh74LvzEbAiQ==","signatures":[{"sig":"MEYCIQDJPP41gsaDgT9t6tgkatxyvomGrjuiUIJuTJ+OzBTlLwIhALJPvv9fGz/Uly0ekYFDTve498YeBM5/zL/ZvQfHfA0x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2945283},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"ff695fa79d3bd25b84c62bc51c71ccd1e4a33ba3","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"npx chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.12.1","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.53"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.31_1775045607219_0.3713558727786146","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"@flanksource/facet","version":"0.1.32","_id":"@flanksource/facet@0.1.32","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"92721516cfc9ceed5a158874dacd3149165565aa","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.32.tgz","fileCount":148,"integrity":"sha512-44rmlYxxgVNL33RoWqjCA1/9MPzwq+0Ou6GIhRWHQWw4mFrpLa3xeevXvFrT5zUuP63jV8manDq2DHbfeOJjIQ==","signatures":[{"sig":"MEYCIQDziEdZhSGiyYevhDdm00vzWqLHPDci7jw4Bs/3NoW0/wIhAJj8xUCv74dPk8mWT5+JwuyIZIqRyEqpjaGIpCZFlJkz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2948104},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"9f97c0022437ebf78d57d3b22782eea962d9ad24","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"npx chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.12.1","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.53"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.32_1775168501968_0.21077036316254016","host":"s3://npm-registry-packages-npm-production"}},"0.1.38":{"name":"@flanksource/facet","version":"0.1.38","_id":"@flanksource/facet@0.1.38","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"2691a2143e03caffe8d6dff6db02c0307caf994e","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.38.tgz","fileCount":154,"integrity":"sha512-mn1o+lCeG2zObz32W2MB6miA+FR8RJq9scAMmwx6qzKmW4bYy3ZnymDA3ChhpYERKD2cB+64u9pwgeVx3somiw==","signatures":[{"sig":"MEQCIExfP+aCLpSamoS95yXHvWgBKQ5BbiF7KVgQIGPTBdwxAiAUs5qaa6N6tblDY1FsGsYTjddF8p/amZBWa6Kjv71myA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2976483},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"56020721d9023592af86cb5081dec65180841cfe","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"npx chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.2","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.53"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.38_1776278649349_0.1506574995814638","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"@flanksource/facet","version":"0.1.39","_id":"@flanksource/facet@0.1.39","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"2edf757a5eb56dd4c40e5ed7a8e91ecc1a72ec8f","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.39.tgz","fileCount":154,"integrity":"sha512-OVoAhGH3aSYZDemwPFSoMmA2H3HjKrfGAaP8wt1348cpbBVrfYAl+zJSV9HcUFEAn4SyGHeL6kVDrsam8TzIxw==","signatures":[{"sig":"MEUCIQCiEqXBPs4AV8ewoNrsXs5V30cIXVdzuWSKzbK0dC0c+AIgEd9Rehkk3T8L0rM6rxjRv6Hz/JQ44MkyOGv/kmfnEuU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2976483},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"16d82b4f6b787d4fccb32a9ee43e65780a7b52d5","scripts":{"build":"npm run build:components && npm run build:css && npm run build:cli","build:cli":"cd cli && npm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"npx chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"npm run build:components && npm run build:css && cd cli && npm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.2","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","pdf-lib":"^1.17.1","d3-scale":"^4.0.2","d3-shape":"^3.2.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","@flanksource/icons":"^1.0.53"},"_hasShrinkwrap":false,"devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.39_1776346669622_0.4496168106430414","host":"s3://npm-registry-packages-npm-production"}},"0.1.43":{"name":"@flanksource/facet","version":"0.1.43","_id":"@flanksource/facet@0.1.43","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"7d8c4bca4189410899dcc1b570f9c01a20f33a9b","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.43.tgz","fileCount":154,"integrity":"sha512-dU+z41ekwSc0Bx3VqlBVZ4hADM3EFxrytCix5I29teIXoWuBNsqHGToXoQwUvutyQPK1QBNEPUE2uayaSKNsxA==","signatures":[{"sig":"MEUCIQCLCZbSn4C57V14DIqxeT+mfcy1G9SNu3QIqTiuOKrTqAIgMsEiHEvxM5dmpoMbczhD2YlMRpaab0q9zZO/8vqLu+g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.43","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2933304},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"b411e26a50129daf8a3e6de18bf9c36b3ac8ee38","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.3","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.43_1781206469250_0.4447625390601335","host":"s3://npm-registry-packages-npm-production"}},"0.1.44":{"name":"@flanksource/facet","version":"0.1.44","_id":"@flanksource/facet@0.1.44","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"db5fa515e83c59800c61cd97c84b8e46fce47ef3","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.44.tgz","fileCount":154,"integrity":"sha512-tqD36m5H88DG4/dknhhzN7Ku1oYcwPX+zOsyoojOY4mff9FCpiJt8lNHccXTVFqOJ5J116qoutsawk/lqKAzaA==","signatures":[{"sig":"MEUCIQCCCbs0MWbhzC2mpFLLZPNgnunC6zyhAeRBz83A6gEQLAIgfc0dFDFsQnddSIK9WUqIhSbPL234MG+4R2Du5YpD7jk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.44","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2933304},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"cbc681bfd1f2333a733faeea3150f2c486ff3700","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.3","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.44_1781534201552_0.25184083190635453","host":"s3://npm-registry-packages-npm-production"}},"0.1.45":{"name":"@flanksource/facet","version":"0.1.45","_id":"@flanksource/facet@0.1.45","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"5848577f816dde553f3d78c47db1f63ecdecf664","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.45.tgz","fileCount":154,"integrity":"sha512-3lk/kf6XelX+06c1ji5k+9lyzS1SiwTJtXEBC/7vu0OlGONbPip7G6HsYhSU+SvH8p0wj8j9TwfHyE4hI3viLA==","signatures":[{"sig":"MEUCIQDlSnh3Sm1FW5+0u1P04BzqHd2f7zm44VsWP549tVG2bgIgIXyZM8ujUClFQQWKx/4LG9+i6gfzukCzQ6c45qnH8to=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.45","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2933304},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"2e514bf436a2b7e74e5a2a86c2b7f8685a5131a7","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.3","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.45_1781571575008_0.28846412983738556","host":"s3://npm-registry-packages-npm-production"}},"0.1.46":{"name":"@flanksource/facet","version":"0.1.46","_id":"@flanksource/facet@0.1.46","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"c0b625dfb383fc3aaffab64e67461cc9e6568517","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.46.tgz","fileCount":154,"integrity":"sha512-lsoagZH9k65FV3LEIdbfX4jkvWXhDAeNVsGyD2DHn788AqSBDoUt/Vmcu1HDy5p0YdpUbG2xmOGgcWEK+otjBA==","signatures":[{"sig":"MEUCIQDX6BZj0GBlmBND67Yjt0S9xlZaDhn9KQJlxeirPeLqCQIgMidE/Mt0mx30pfH3cquuZRlWfuDOG/Ep+o2O0xcvcaU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.46","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2933304},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"0a1254d1bf506c29ca316ec37deecd2e1aab888f","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.3","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.46_1781697877914_0.020863882476277462","host":"s3://npm-registry-packages-npm-production"}},"0.1.47":{"name":"@flanksource/facet","version":"0.1.47","_id":"@flanksource/facet@0.1.47","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"3fc64c37d7568bbf4f8ab1d180a7178baabe8fba","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.47.tgz","fileCount":184,"integrity":"sha512-ZIO64XmjZFJ9acFguwj+oOPi4z6qB+iUtXE4YkfHFiBn9u27PrvfTPVWelPdgtzFONB06Q7wsCkCSYv6HaYbig==","signatures":[{"sig":"MEQCIEii06lgNaMeomY8VFUHK+dQVnumQvoN111DCpgmMvy9AiArYYiLXfv/9IyoWwslxtfUg6QeBA2GDthZUnje2kdroQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.47","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3200420},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"0e529042883509ee3a5a4114f6be06b7127acfce","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.22.3","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.47_1782108395249_0.9337563096361634","host":"s3://npm-registry-packages-npm-production"}},"0.1.48":{"name":"@flanksource/facet","version":"0.1.48","_id":"@flanksource/facet@0.1.48","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"50b3f52fe4f5a1c98f1a35e4d699ef81c4ae33a0","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.48.tgz","fileCount":184,"integrity":"sha512-Xt7e2OXP3uL+utVgvTVMTUZWVted1CH5QqFld3ZwI0YICQEEwuKM6PDuXAGJSrj1C5Zl5Tw1zjhcoFh5n7ZioQ==","signatures":[{"sig":"MEYCIQDGWJqatdAAx4duSdBCfGsQ1kA+eeRM1EXSLL2RdTz90QIhAJi/FeEdTz8Rl/ZU+WX7Vlv71uQd1NzUmdq0PRL7RlxQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.48","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3233692},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"7400413cc2f7d0c9de0217e10dae0b030a31caef","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.0","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.48_1782328334677_0.1283304568432888","host":"s3://npm-registry-packages-npm-production"}},"0.1.49":{"name":"@flanksource/facet","version":"0.1.49","_id":"@flanksource/facet@0.1.49","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"fa48990752c46311b334b59549ae72510cb2f569","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.49.tgz","fileCount":184,"integrity":"sha512-rYP4pWSAHGPpXVyctRMCnwsnu0CrHAVNSPR052U8+fyrSiW4iKxGwtElgeVkLCq9bgRyuj4SrOrDPGy72WAqzA==","signatures":[{"sig":"MEYCIQCPUKuk1Ez4JDqnWjL4Eq/iq3JByLQO+UjA5rYAKwsP/gIhAKtj8onZ8xaehDk21grKzsWUP59bD7of6BQphk5E9+zL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.49","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3233692},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"e2e7eee36f40dc8fa8b5ce0f9f4884d73dc7eda5","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.0","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^5.0.0","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.49_1782390697853_0.6410527909589363","host":"s3://npm-registry-packages-npm-production"}},"0.1.50":{"name":"@flanksource/facet","version":"0.1.50","_id":"@flanksource/facet@0.1.50","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"541e45b25c219d28c2a249fd04772876b79b2c25","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.50.tgz","fileCount":188,"integrity":"sha512-hBToIMGVAUtmuq0GwAhfNy/XL5RNvRKb2/2ccpc9pgj/Z6VYI6ioxUBG2jlbhwKee2CZFA55g1KV50cr1X3T1g==","signatures":[{"sig":"MEUCIQDGh43tN4dI4hmUzebegIM/clOMiH+PgRb/Q/kuledD0QIgNjGiIeCa8zHI7RUQFa7ZHFiZsTwzqefVva7hNVE7R1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.50","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3240858},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.28.1","js-yaml":"4.2.0","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"210d6538628d884153cdd2143866e31bdacff4b0","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.50_1782893608737_0.28466405031951636","host":"s3://npm-registry-packages-npm-production"}},"0.1.51":{"name":"@flanksource/facet","version":"0.1.51","_id":"@flanksource/facet@0.1.51","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"3bab372f0ffe024a3e628d89d7c21fdb3b094b86","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.51.tgz","fileCount":188,"integrity":"sha512-f7Y9YXmJ2AAwYm4MkN6aTRJ9tCu2zBOnSsHrZsM2izQkdZbyWKDuYKxq6AAPzbsNA5a9UXXBm+k85dsRxCVbTA==","signatures":[{"sig":"MEUCIQDqYcP7EabJVQJG/e4orbxl4Ayjwb/QXhkl0RwUdcu3WwIgda2L8FfgBQ7/9ZXrbm/WiTns9Moxd3wy3TavBoRQO60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.51","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3240858},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.28.1","js-yaml":"4.2.0","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"083f872462cbf12d489d7ccdc1fe7be006ea1072","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.0","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.51_1782906020387_0.2654631647739676","host":"s3://npm-registry-packages-npm-production"}},"0.1.52":{"name":"@flanksource/facet","version":"0.1.52","_id":"@flanksource/facet@0.1.52","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"038752a17913fb26760b59bbecd750e24811cd57","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.52.tgz","fileCount":188,"integrity":"sha512-1Zq/H0saSGxsE0QdyYUayNkX1jYvNAbH9KiE4QNsmrrY8ceYO+3HG8vvzST3v+PULP5tYsJjSzdJnUbhxF2QVA==","signatures":[{"sig":"MEUCIQCKg3avOOK+zxQNaCFMMydQRBWPX+UzJdImT80REPH15gIgJSNBjcEMQ5bC3i2HvuJtrfUyM5mCcjgfZNVEkmlLPAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.52","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3240858},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.28.1","js-yaml":"4.2.0","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"a44dc2dd3de9fd3c01635ecdb6b470eb781fc19a","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.52_1783356678619_0.3069132627361282","host":"s3://npm-registry-packages-npm-production"}},"0.1.53":{"name":"@flanksource/facet","version":"0.1.53","_id":"@flanksource/facet@0.1.53","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"01e8ffdd40da128b0fc9bd53ce9a1609ecf3b00b","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.53.tgz","fileCount":188,"integrity":"sha512-AOAaTlBiv9YDBUuVPHCJkxlwyPlvohY+M4L2LPqIKHeJo6f59kKJNAsuoLp+eh2Jj0rtdFYk2l8O2RTO6KskhQ==","signatures":[{"sig":"MEUCIQDgriZ6WVN/4mkWQXJ78xcz9p/L5d/92ZBv3Q9gqBrzfwIgJ7k+jvK3pCJD5ax3lIKvRI0HrIi1V+/Hv+VeF0giAU8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.53","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3240951},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.28.1","js-yaml":"4.2.0","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"ea72c0b708646d619eabbbace88b6a77497255f8","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.53_1783853006954_0.6681889226079778","host":"s3://npm-registry-packages-npm-production"}},"0.1.54":{"name":"@flanksource/facet","version":"0.1.54","_id":"@flanksource/facet@0.1.54","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"20a4a2aea3a68a7113e907dd425e842a18c2b952","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.54.tgz","fileCount":188,"integrity":"sha512-UyjkFRXN/RXx/jndjEBOCjfTmo+B39vR9HgIjPZD4NJEG5cTlgFynCCeFFru0yIymuz0WeHzGx6siM82DDRlCQ==","signatures":[{"sig":"MEQCIA/QKlSLt/UYmXMA+v+LgLT8y6ufraRzR6HvFJQpFNh8AiAQH1kMyjHBvQ9Wa9bv/KQiFAI3C9goEZPfI2z7jiljCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.54","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3243537},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.28.1","js-yaml":"4.2.0","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"ac0d21d59e300f570f50a663a12373280215c344","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.54_1783879306470_0.8922744964484921","host":"s3://npm-registry-packages-npm-production"}},"0.1.55":{"name":"@flanksource/facet","version":"0.1.55","_id":"@flanksource/facet@0.1.55","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"ae890c38bb247f17e30ab9951880cd822615af87","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.55.tgz","fileCount":188,"integrity":"sha512-d6bY7qHbpaiVuTrFYYuS7+fNa1Gva0KYZrdjtWmPM2f6oQ/11+z5b/+D0DNQ7g7sUkru/i+vkEw+PHwRohC1jA==","signatures":[{"sig":"MEQCIFurp9V+dX6VASSN6tytTxRUYl+pRONSb722EwaG5EhrAiB6tBZ2Vsr9cGpYymdDOjDnCmQlUqQVU6XOyiczveDuYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.55","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3323915},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.28.1","js-yaml":"4.2.0","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"061e9e93013b36180f0ffce6701d83212918d2a1","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.55_1784114746900_0.8297063137287275","host":"s3://npm-registry-packages-npm-production"}},"0.1.56":{"name":"@flanksource/facet","version":"0.1.56","_id":"@flanksource/facet@0.1.56","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"cfed567ee287b18825da079d02dbd781edb4ef7f","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.56.tgz","fileCount":190,"integrity":"sha512-OD/oPpHUkcfQ5FF1O5TQSzZv/Zh/TeiHdR7KqR/A0okwE/vxqgmOBtf79n8h2TU/7LcMCpAJ7zZQnpM2WQID1Q==","signatures":[{"sig":"MEQCIFovLCeQjcQBK+vsT2iXtD6A1mPk2vD8GoqGh3IEj2eaAiAnxUZfE9fB5FQ53zO8A5x/Kj0VfFuwfDVQO3zlodh4OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.56","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15373001},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.2.0","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"4107a9634b60d5187e45af9daad59343f507a033","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^5.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.56_1784119117129_0.48325109085058493","host":"s3://npm-registry-packages-npm-production"}},"0.1.57":{"name":"@flanksource/facet","version":"0.1.57","_id":"@flanksource/facet@0.1.57","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"c3fab237229d1b642854ffeb12c96450748c8f18","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.57.tgz","fileCount":190,"integrity":"sha512-VWuA//S1wR/j/d7b/xCLmjCqgaQqo4/V92kyvbNirMKxLU6IMY0pPTVMde/WjMu/ZvxfW2K0XoOcCz6z14AGHA==","signatures":[{"sig":"MEQCIHEVFf4E9vqyJhInnV6a1xl58Qm+ik40Cjuv+ng7NaGBAiAfrSrtHjufCWIpbCdrfyaiTbIe1k/Yq8/8F2PJYPRDLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.57","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15373001},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.2.0","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"320b0ecdac58e39235fd223c6a4b3034d8aeba97","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^5.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.57_1784208853809_0.2560590157680862","host":"s3://npm-registry-packages-npm-production"}},"0.1.58":{"name":"@flanksource/facet","version":"0.1.58","_id":"@flanksource/facet@0.1.58","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"386e5840ac7c2bcd6fe3f4e8ae066e2ce2aaa27a","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.58.tgz","fileCount":190,"integrity":"sha512-OPOt5N+EumvI4X2fA7hvbMDxcA+g46aIy/bZP69R/CXbPE4vwWcImi4cBQpNcR9osHW10AvT7cUXXKoC4Hc15Q==","signatures":[{"sig":"MEQCICr8wwar/6grQJPiEhfGXYJ7kQIOEgk36FE4WuMR3hhRAiARd2bAzFo30OKessPuRos5TZBxDHuLEfQUPA0Wl7rjaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.58","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15373030},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.2.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"b07e6f7f39ce3c327b993885cdffc7ce05133b55","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^5.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.58_1784210584083_0.9579475342837156","host":"s3://npm-registry-packages-npm-production"}},"0.1.59":{"name":"@flanksource/facet","version":"0.1.59","_id":"@flanksource/facet@0.1.59","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"c2c0114e2679f7365221bc5a4f2997cb32037d7a","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.59.tgz","fileCount":190,"integrity":"sha512-jjxBqZjLNlPdL1BXoAT3bmqAkl5zRkhI3uSGCHVGngQk8+fpbBx3eWAD6baEx9WqnZZjvLtD0VVli9Ok7m1XTA==","signatures":[{"sig":"MEYCIQDvRI4Ew8rqC5Q3+e5TQZGIGtcHq5WghR0rvlbxAzwMogIhAMEWO+eK84Q4ijy4LFNXwoR5gpW5mqRtnrR9sbYbMg6F","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.59","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15390008},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.2.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"aa03056045652980a7b224744ae354c9890a6ea1","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^5.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.59_1784283607516_0.4242026268334007","host":"s3://npm-registry-packages-npm-production"}},"0.1.60":{"name":"@flanksource/facet","version":"0.1.60","_id":"@flanksource/facet@0.1.60","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"dd9807cce3f6ba39f39e549c3f62f11e71dd9ad1","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.60.tgz","fileCount":190,"integrity":"sha512-LJ1s7te3IMtr56r/6wNUnYxPK756M/ESdO3zcoSmhyN4EFWUJGHyMMO9KYw8HOVwlCJarxBONYJkpLZNf4E1KA==","signatures":[{"sig":"MEUCIQDcgfRttaHFwtSmGTmnBcAS/MMV1y3/Dfy8E1z6TY36YwIgUrbnH4vTJ7gFjZW34R1YYPa5Cz4Y1/RoBfE9HBBX9LY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.60","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15390321},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.2.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"159d5505b442fa9c1b79ebc2aebc9b2c5f9dbaa0","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^5.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.60_1784615328237_0.7380789681286941","host":"s3://npm-registry-packages-npm-production"}},"0.1.61":{"name":"@flanksource/facet","version":"0.1.61","_id":"@flanksource/facet@0.1.61","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"fa88258b76b3aa0ac9ba92c373311a8dd8452178","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.61.tgz","fileCount":190,"integrity":"sha512-u+YYfBJfTrQdDigQx29L3w8l2lcNUXqE6POdhf/PCERh/MoaCHCW3i+nqpei8pEzLZZrjryI8WP9Lc8fb+2c2Q==","signatures":[{"sig":"MEQCIDXEXvnOWRxdfZ+f/IBxh0vroReE76oKrVC6263uEF49AiBlVH44r0t2UpZhWBaT/TmNBqM2q3kIZZmMlOeeovh2sw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.61","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15390321},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.2.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"5119efbe0dfae588a812cf3183e637f2d94d8346","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^5.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.61_1784718168741_0.8398805673836949","host":"s3://npm-registry-packages-npm-production"}},"0.1.62":{"name":"@flanksource/facet","version":"0.1.62","_id":"@flanksource/facet@0.1.62","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"c635da8734384855808946fc4021da338ef40af3","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.62.tgz","fileCount":190,"integrity":"sha512-6q/17HhTptaWfx8LyHFQTEqWaE+HSQ0+4JJ7vHNLMEimPb4ItdlDbgWEgIMcpTnpJHdwkHQVcYeg661g5UdkHA==","signatures":[{"sig":"MEYCIQCAmFyDVPhtgcvGiyKdNjuJedgoT1Q4+wwX6qM45YSoAAIhAI4v+Ld99ZkP13eDAWjDiqpOSO9L9Uy+Ftl8cHsjLSWp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.62","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15390321},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.2.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"467110c17526508bf3f750e18940a709b7a26a66","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^5.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.62_1784720159160_0.07299204937297854","host":"s3://npm-registry-packages-npm-production"}},"0.1.63":{"name":"@flanksource/facet","version":"0.1.63","_id":"@flanksource/facet@0.1.63","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"4b9257e168bb85b9c97bac8ac63857feea7c4a29","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.63.tgz","fileCount":190,"integrity":"sha512-4k1JXfynWSyu/Q9i83goOTlsatJ3WPSa9cT4hhEb3jeDhipMkqqynZlLFWQkUcfFF4Q04tG5F+mFfh+ZtBRAIA==","signatures":[{"sig":"MEUCIHX32DzriidE60FbCqUBjxmjRXbt/9Y2VxCLS38IO4QrAiEAhpuEGhsA9mTEMi0SYQUGedcp3MDg9xkOKnbaUW2k94k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.63","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15390321},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.2.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"281872b096a033756d2e99fc168302ac21ea48b3","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^5.1.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.63_1784727448565_0.2303173287434297","host":"s3://npm-registry-packages-npm-production"}},"0.1.64":{"name":"@flanksource/facet","version":"0.1.64","_id":"@flanksource/facet@0.1.64","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"d16c5abd393d63de82bc3b7330ff4812b17ba4b4","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.64.tgz","fileCount":190,"integrity":"sha512-LpnbI2RgOpHYE6LgibSV9UTxyYWr4ZWfcQk3HNDgJfZWU9mtuuxOJ0ytobwVUxq3IiKUKwYin9scl6gAy7qVtQ==","signatures":[{"sig":"MEUCICwUhZtl07U8/UckiXuVL1X3BYcMQ3pdN6U9SIlpNMG4AiEA2/UBAWPv2/5B9aZmbNkZljvvmF97R2W626HZ7ZLEBvw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.64","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15391025},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.3.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"2d689fae77850ec2087726eafcb098af37388927","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^4.3.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.64_1784728268821_0.10119862389203327","host":"s3://npm-registry-packages-npm-production"}},"0.1.65":{"name":"@flanksource/facet","version":"0.1.65","_id":"@flanksource/facet@0.1.65","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"aee0ef9d23949034b349eb1afc31c6ace2da7005","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.65.tgz","fileCount":190,"integrity":"sha512-k0pGhBP2eFR86GUNVYxw2Rgy6dWv5px8xcGgq5ZrtNevedmAr5xVikWqvQVjpVKBQwseTwiVbiUojNNKYcoTzw==","signatures":[{"sig":"MEQCIDOn6k+IA8f2ADlyMRnyklr39VtG96dIFmQBnGpxPScwAiAMOT2yarNHO4UR02TA/EjhkLFlSRqbboWw0AtmIOH5bQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.65","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15391025},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.3.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"f338ecb3f97de4b23b794c4ad1ea028065960a7b","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^4.3.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.65_1784748895721_0.6614766892263342","host":"s3://npm-registry-packages-npm-production"}},"0.1.66":{"name":"@flanksource/facet","version":"0.1.66","_id":"@flanksource/facet@0.1.66","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"923c74eb02d6598791ec6899ed167ceae2e5de9e","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.66.tgz","fileCount":190,"integrity":"sha512-TTmZ3UupWyDUwDUinsUsNO0Mvk8I7WEivUdBaD6FDRIEpVVQOnM2Y/7brbWjmrERKU9I572ltzhJNWgyay4tcw==","signatures":[{"sig":"MEUCIHKxUk9p+fmtoyabdnPSLQ5VzRbT5Kwn6EY3w7ABk4JqAiEA2OZnBswkTVwywN4Ex2dQHA2D/9+0LsZcR/7Fia30qKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.66","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15391025},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.3.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"5dcdc372e90145878d0273395bf5c52db026b21d","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^4.3.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.66_1784749005977_0.7324592518994928","host":"s3://npm-registry-packages-npm-production"}},"0.1.67":{"name":"@flanksource/facet","version":"0.1.67","_id":"@flanksource/facet@0.1.67","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"d38aea29d0588af9da6404e16f115fecc490bc5a","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.67.tgz","fileCount":190,"integrity":"sha512-C5DQkfDA4cDZPf7fB140e/u4MA/NUNLdIqQHIKMLBCTR7Hb3OsmHY7+RHRu5sxOi0wc4aml6EJvCzeIOMucgYg==","signatures":[{"sig":"MEUCIQDqbZcZgSonn2kU5VHidQjesvcTRXiQoADPByX4AX/maQIgCB8jwXBpBn++l9d64/Bl7MK/MPZeV5Ve9mGABAHUt0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.67","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15391025},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.3.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"edca29afe36e65075f6656776d72d894dd664b5e","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^4.3.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.67_1784784104857_0.6889814712695561","host":"s3://npm-registry-packages-npm-production"}},"0.1.68":{"name":"@flanksource/facet","version":"0.1.68","_id":"@flanksource/facet@0.1.68","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"448c7f854796a8f5535c1989b99b085d112d9372","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.68.tgz","fileCount":190,"integrity":"sha512-zi8K0aKMycegfLc0Cy3liAcEiLxHQrF7yH/5XxeCVEnFz0nLTRi7tmZU8pB6LJmrDku41Af+KgaGENkb3yLigQ==","signatures":[{"sig":"MEUCIQDCdinKSrYC0tcPcUVdFL8JRZdiFXdHGNoNxf4GR6m+8gIgG8shDLFLkx0mmn8S76/Pzmv3DOBeIcQskpK7Dkll2DM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.68","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15391025},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.3.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"c5690ba05101380202ce838e6e0fcc7b70d928de","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^4.3.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.68_1784803552061_0.0021877059436599122","host":"s3://npm-registry-packages-npm-production"}},"0.1.69":{"name":"@flanksource/facet","version":"0.1.69","_id":"@flanksource/facet@0.1.69","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"b6fe9f17b5fdb7da451bcb1e26727116622130a2","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.69.tgz","fileCount":190,"integrity":"sha512-nsucJMBQnfwQMKvDTI39W2NwaNH/2vwP/zee55sOmXZp/LrWxlQQhSPjs+mNBzrrR7f5BRIzjXOgTm0p+ReUAg==","signatures":[{"sig":"MEUCIFRviHYeArb10USfcEXBVkZU4/NkxD/jaLKjj/xC9tQKAiEA4I9ORIUYxgxXg2deXEy6xU5N7totGxVFbOKg4X3SfVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.69","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15391025},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.3.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"d17f28f0de35197c0788db4eeaf42724e9151ce1","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^4.3.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.69_1785141445499_0.9892932442874021","host":"s3://npm-registry-packages-npm-production"}},"0.1.70":{"name":"@flanksource/facet","version":"0.1.70","_id":"@flanksource/facet@0.1.70","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"21d922cdd7bf326cbd7ece3dc8c595bfab76a8d5","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.70.tgz","fileCount":190,"integrity":"sha512-04wFxjvhXf1cEK/CF4zh2h2fVxVjJ6FDmbkC7myatIE6Nq6X042oLvAIqWst2nGHTYhWZAkEyxaJuM2hnUraLw==","signatures":[{"sig":"MEQCIBCT/CA67bL/vK0H71iyTPZoPnEj5ZnH0H6aqo9FjxQcAiA4a8LToRFNfx21c+/7LnEuQhL2KM3u6gk5KZ+6gJqTww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.70","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15394519},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.3.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"1abd0ad2b8a5f1ce79f734af64588ac71883f367","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","d3-time":"^3.1.0","js-yaml":"^4.3.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.70_1786014103364_0.164290629554676","host":"s3://npm-registry-packages-npm-production"}},"0.1.71":{"name":"@flanksource/facet","version":"0.1.71","_id":"@flanksource/facet@0.1.71","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"de9b3262d2c95686d46c55858da36e0d73695977","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.71.tgz","fileCount":194,"integrity":"sha512-NYaZh9B/w/8b/LwxI1QnrwU3oHXAsUcAGJ7ngPRSxsnrc3eF97iLe4GUaWP12x4cq6yCr5+F0uu8c4LrtdnQig==","signatures":[{"sig":"MEQCIDxUgsS9nIrOOeDRbvxQXatrSDTQEOvu6GvYmouwFeUPAiAcqWMcqZLhdZKX09NBTjOFhgM2d3PPCr/bmDM5acEllw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.71","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15471118},"main":"./dist/components/index.js","pnpm":{"overrides":{"ws":"8.21.0","uuid":"11.1.1","undici":"6.27.0","esbuild":"0.25.12","js-yaml":"4.3.0","dompurify":"3.4.12","@babel/core":"7.29.6"}},"type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"5bcbf72c841404ee7dfc7c8667ad2addd7cfecf7","scripts":{"build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","build:cli":"cd cli && pnpm run build","build:css":"tailwindcss -i src/styles.css -o dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful datasheets and PDFs from React templates","directories":{},"_nodeVersion":"22.23.1","dependencies":{"clsx":"^2.1.1","dagre":"^0.8.5","dayjs":"^1.11.13","shiki":"^1.0.0","marked":"^15.0.0","d3-time":"^3.1.0","js-yaml":"^4.3.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","d3-format":"^3.1.0","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","@flanksource/icons":"^1.0.53","source-map-support":"^0.5.21","@flanksource/clicky-ui":"^0.3.5"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","jsdom":"^30.0.1","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.71_1786118061302_0.39629544265454597","host":"s3://npm-registry-packages-npm-production"}},"0.1.72":{"name":"@flanksource/facet","version":"0.1.72","_id":"@flanksource/facet@0.1.72","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"homepage":"https://github.com/flanksource/facet#readme","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"392f84d2dead25eac6139ce889ae1141b4198a7a","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.72.tgz","fileCount":222,"integrity":"sha512-rDJduI2RWAd1gtwN2EFU4pqvQ0Ia0pPf2FZQ42Ce41R2miSbwi0RdtI6dCLaXRCFtzMuNWGnAFJi2yzew4o1ww==","signatures":[{"sig":"MEUCIQDJoeEOcpmqsXcLoQxJmzLkCywAdLmI2kNQU8rMrGpPCAIgGyHvFcPqDcHjiu8Z9Ph70cTKDOoEn0awczgQBxKb5Uo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEVfrfED2xi3lI9p7VJRxv6ymarbcU1RCXpM+SpwLjXBAiEAwUgGZ14xOLNixdJ8Kd7XWRIKufJHZNBk4+czgQ/jaAI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.72","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15741812},"main":"./dist/components/index.js","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"513d8099f401742ced2f9f9b817913d2f40e1f90","scripts":{"test":"vitest run","build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","serve":"tsx cli/src/cli.ts serve --templates-dir examples","build:cli":"cd cli && pnpm run build:lib","build:css":"tailwindcss -i src/styles.css -o dist/styles.css && node postcss/apply-font-scale.mjs dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","test:watch":"vitest","build:binary":"cd cli && pnpm run build:cli","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful HTML, PDF, and PNG output from React templates","directories":{},"_nodeVersion":"22.23.2","dependencies":{"clsx":"^2.1.1","yaml":"^2.8.3","dagre":"^0.8.5","dayjs":"^1.11.13","jotai":"^2.20.1","shiki":"^1.0.0","marked":"^15.0.0","d3-time":"^3.1.0","js-yaml":"^4.3.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","recharts":"^3.0.0","d3-format":"^3.1.0","dompurify":"^3.4.11","monaco-yaml":"5.1.1","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","monaco-editor":"^0.55.1","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","tailwind-merge":"^2.6.0","@codemirror/view":"^6.43.4","@codemirror/state":"^6.7.0","@flanksource/icons":"^1.0.53","@floating-ui/react":"^0.27.19","source-map-support":"^0.5.21","@codemirror/commands":"^6.10.4","@codemirror/lang-sql":"^6.10.0","@monaco-editor/react":"^4.7.0","@radix-ui/react-slot":"^1.1.1","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.66.8","@flanksource/clicky-ui":"^0.3.5","@codemirror/autocomplete":"^6.20.3","class-variance-authority":"^0.7.1","@radix-ui/react-compose-refs":"^1.1.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.22.0+sha512.1ff870c4c6133dfd88fb2afc46dd13d47f09c9794b438c6fdb47ca98caf3bc16381ee0be93a091b8e3824cf01f889f46d7d9e20910fb0be1ab0fb5baa80dd621","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","jsdom":"^30.0.1","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","mermaid":"^11.16.0","postcss":"^8.5.26","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14","remark-github-blockquote-alert":"^2.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/facet_0.1.72_1789720480332_0.9628879669734323","host":"s3://npm-registry-packages-npm-production"}},"0.1.73":{"_id":"@flanksource/facet@0.1.73","bugs":{"url":"https://github.com/flanksource/facet/issues"},"dist":{"shasum":"3af49f4b23b615b257b1521f08f249c98d86ab53","tarball":"https://registry.npmjs.org/@flanksource/facet/-/facet-0.1.73.tgz","fileCount":222,"integrity":"sha512-jPUgmgYmUl4NbZLZanNJM3jfti8lmOE0OUeFOsb6cLzfx0G7dVMyH7RCxkwuWDqkNhjSv3okGi6e8hKtat++3A==","signatures":[{"sig":"MEQCIEGjUG1sk7SGse6aK+6K99dge1tWCnBZ82gl/9wAIIwyAiAoKaMd6YQw3xhX8/j1hIgBThX0bOfSEOOcnAbPDyRkcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB9QHo5dbgepQub+b7l/QDZs3UqQegwwvFi0zAYpnjFrAiAO0pwJXxj8jpiRXEShhuy2ZQzbwR5Eg2PEA0aZbZ6wVA=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@flanksource%2ffacet@0.1.73","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15744047},"main":"./dist/components/index.js","name":"@flanksource/facet","type":"module","types":"./dist/components/index.d.ts","engines":{"node":">=20.19"},"exports":{".":{"types":"./dist/components/index.d.ts","import":"./dist/components/index.js"},"./*":{"types":"./dist/components/*.d.ts","import":"./dist/components/*.js"},"./styles.css":"./dist/styles.css","./package.json":"./package.json"},"gitHead":"9bb7f4f3731c1fbba6057a469ecc8837c4e8ae6e","scripts":{"test":"vitest run","build":"pnpm run build:components && pnpm run build:css && pnpm run build:cli","serve":"tsx cli/src/cli.ts serve --templates-dir examples","build:cli":"cd cli && pnpm run build:lib","build:css":"tailwindcss -i src/styles.css -o dist/styles.css && node postcss/apply-font-scale.mjs dist/styles.css","chromatic":"pnpm exec chromatic","storybook":"storybook dev -p 6006","test:watch":"vitest","build:binary":"cd cli && pnpm run build:cli","prepublishOnly":"pnpm run build:components && pnpm run build:css && cd cli && pnpm run build:lib","build-storybook":"storybook build","build:components":"vite build --config vite.lib.config.ts","build:playground":"vite build --config vite.playground.config.ts && node cli/scripts/gen-playground-form.cjs"},"version":"0.1.73","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:0c9d9c78-1dfa-4909-a191-8a441150b9fa"}},"homepage":"https://github.com/flanksource/facet#readme","repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"_npmVersion":"11.11.0","description":"Build beautiful HTML, PDF, and PNG output from React templates","directories":{},"maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"_nodeVersion":"22.23.2","dependencies":{"clsx":"^2.1.1","yaml":"^2.8.3","dagre":"^0.8.5","dayjs":"^1.11.13","jotai":"^2.20.1","shiki":"^1.0.0","marked":"^15.0.0","d3-time":"^3.1.0","js-yaml":"^4.3.0","pdf-lib":"^1.17.1","d3-array":"^3.2.4","d3-scale":"^4.0.2","d3-shape":"^3.2.0","recharts":"^3.0.0","d3-format":"^3.1.0","dompurify":"^3.4.11","monaco-yaml":"5.1.1","react-icons":"^5.4.0","@xyflow/react":"^12.0.0","monaco-editor":"^0.55.1","react-xarrows":"^2.0.2","@iconify/react":"^5.1.0","d3-interpolate":"^3.0.1","d3-time-format":"^4.1.0","tailwind-merge":"^2.6.0","@codemirror/view":"^6.43.4","@codemirror/state":"^6.7.0","@flanksource/icons":"^1.0.53","@floating-ui/react":"^0.27.19","source-map-support":"^0.5.21","@codemirror/commands":"^6.10.4","@codemirror/lang-sql":"^6.10.0","@monaco-editor/react":"^4.7.0","@radix-ui/react-slot":"^1.1.1","@codemirror/lang-json":"^6.0.2","@tanstack/react-query":"^5.66.8","@flanksource/clicky-ui":"^0.3.5","@codemirror/autocomplete":"^6.20.3","class-variance-authority":"^0.7.1","@radix-ui/react-compose-refs":"^1.1.2"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.22.0+sha512.1ff870c4c6133dfd88fb2afc46dd13d47f09c9794b438c6fdb47ca98caf3bc16381ee0be93a091b8e3824cf01f889f46d7d9e20910fb0be1ab0fb5baa80dd621","devDependencies":{"ora":"^8.2.0","tsx":"^4.20.6","vite":"^6.4.3","chalk":"^5.6.2","jsdom":"^30.0.1","juice":"^11.0.3","react":"^18.2.0","vitest":"^4.1.1","mermaid":"^11.16.0","postcss":"^8.5.26","chromatic":"^16.0.0","puppeteer":"^24.26.1","react-dom":"^18.2.0","storybook":"^8.6.14","rehype-raw":"^7.0.0","remark-gfm":"^4.0.0","typescript":"^5.3.0","@types/node":"^20.0.0","tailwindcss":"^3.4.3","@types/dagre":"^0.7.52","@types/react":"^18.2.0","autoprefixer":"^10.4.16","@mdx-js/rollup":"^3.0.0","@types/d3-scale":"^4.0.9","@types/d3-shape":"^3.1.8","vite-plugin-dts":"^4.5.0","@storybook/react":"^8.6.14","@types/react-dom":"^18.2.0","@tailwindcss/vite":"^4.1.17","remark-frontmatter":"^5.0.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^4.2.0","@storybook/addon-docs":"^8.6.14","@storybook/react-vite":"^8.6.14","@testing-library/react":"^16.3.2","@tailwindcss/typography":"^0.5.19","baseline-browser-mapping":"^2.10.0","@testing-library/jest-dom":"^6.9.1","@storybook/addon-essentials":"^8.6.14","remark-github-blockquote-alert":"^2.1.0"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/facet_0.1.73_1790148003363_0.1319411275971516"}}},"time":{"created":"2025-11-16T18:46:57.546Z","modified":"2026-09-23T07:20:03.886Z","0.1.3":"2025-11-16T18:46:57.828Z","0.1.10":"2026-02-25T19:55:59.303Z","0.1.23":"2026-03-13T14:29:04.927Z","0.1.24":"2026-03-15T11:08:23.213Z","0.1.25":"2026-03-16T13:49:50.502Z","0.1.26":"2026-03-16T15:26:14.995Z","0.1.27":"2026-03-17T14:19:02.629Z","0.1.28":"2026-03-25T07:14:53.085Z","0.1.29":"2026-03-25T08:07:34.132Z","0.1.30":"2026-03-25T08:10:15.864Z","0.1.31":"2026-04-01T12:13:27.407Z","0.1.32":"2026-04-02T22:21:42.279Z","0.1.38":"2026-04-15T18:44:09.606Z","0.1.39":"2026-04-16T13:37:49.854Z","0.1.43":"2026-06-11T19:34:29.486Z","0.1.44":"2026-06-15T14:36:41.775Z","0.1.45":"2026-06-16T00:59:35.227Z","0.1.46":"2026-06-17T12:04:38.084Z","0.1.47":"2026-06-22T06:06:35.450Z","0.1.48":"2026-06-24T19:12:14.876Z","0.1.49":"2026-06-25T12:31:38.085Z","0.1.50":"2026-07-01T08:13:28.949Z","0.1.51":"2026-07-01T11:40:20.578Z","0.1.52":"2026-07-06T16:51:18.841Z","0.1.53":"2026-07-12T10:43:27.121Z","0.1.54":"2026-07-12T18:01:46.650Z","0.1.55":"2026-07-15T11:25:47.084Z","0.1.56":"2026-07-15T12:38:37.399Z","0.1.57":"2026-07-16T13:34:14.013Z","0.1.58":"2026-07-16T14:03:04.282Z","0.1.59":"2026-07-17T10:20:07.789Z","0.1.60":"2026-07-21T06:28:48.446Z","0.1.61":"2026-07-22T11:02:48.935Z","0.1.62":"2026-07-22T11:35:59.366Z","0.1.63":"2026-07-22T13:37:28.778Z","0.1.64":"2026-07-22T13:51:09.036Z","0.1.65":"2026-07-22T19:34:55.982Z","0.1.66":"2026-07-22T19:36:46.260Z","0.1.67":"2026-07-23T05:21:45.130Z","0.1.68":"2026-07-23T10:45:52.303Z","0.1.69":"2026-07-27T08:37:25.715Z","0.1.70":"2026-08-06T11:01:43.576Z","0.1.71":"2026-08-07T15:54:21.510Z","0.1.72":"2026-09-18T08:34:40.465Z","0.1.73":"2026-09-23T07:20:03.531Z"},"bugs":{"url":"https://github.com/flanksource/facet/issues"},"homepage":"https://github.com/flanksource/facet#readme","repository":{"url":"git+https://github.com/flanksource/facet.git","type":"git"},"description":"Build beautiful HTML, PDF, and PNG output from React templates","maintainers":[{"name":"moshloop","email":"moshe@flanksource.com"}],"readme":"# @flanksource/facet\n\nBuild beautiful, print-ready datasheets and PDFs from React templates.\n\n**@flanksource/facet** is a framework for creating professional datasheets, reports, and documentation using React components. It provides a rich component library optimized for print and browser rendering, along with a powerful CLI for building HTML, PDF, and PNG outputs.\n\n## Features\n\n- 📄 **Print-optimized components** - 47+ components designed for professional datasheets\n- 🎨 **React & TypeScript** - Full type safety and modern React patterns\n- 🔧 **Zero-config CLI** - Build HTML, PDF, and PNG with a single command\n- 🔗 **Component imports** - `import { StatCard } from '@flanksource/facet'`\n- ⚡ **Fast builds** - Powered by Vite with smart caching\n- 📦 **Isolated builds** - `.facet/` build directory (like `.next` in Next.js)\n- 🔀 **Live diagrams** - Box-and-arrow diagrams baked to static SVG via `// @live`\n\n## Installation\n\n### Option 1: npm (recommended)\n\n```bash\nnpm install -g @flanksource/facet-cli\n# or: pnpm add -g @flanksource/facet-cli\n```\n\nThis installs the `facet` command, which runs on your Node.js (>=20.19). Rendering\nuses `pnpm` to populate the shared module cache and reconcile project-specific\ndependencies. PDF output also needs a system Chrome/Chromium. Run `facet doctor`\nto check the environment. For a Node-free environment, use the standalone binary\nbelow.\n\n### Option 2: Standalone binary\n\nDownload the binary for your platform from [GitHub Releases](https://github.com/flanksource/facet/releases):\n\n- **Linux (x64)**: `facet-linux-x64`\n- **Linux (arm64)**: `facet-linux-arm64`\n- **macOS (Apple Silicon)**: `facet-macos-arm64`\n- **Windows (x64)**: `facet-windows-x64.exe`\n\nMake it executable and put it on your `PATH` (substitute the file you downloaded):\n```bash\nchmod +x facet-linux-x64\nsudo mv facet-linux-x64 /usr/local/bin/facet\n```\n\n## Quick Start\n\n### 1. Create a Template\n\nCreate a file `MyDatasheet.tsx` in your project:\n\n```tsx\nimport React from 'react';\nimport {\n  Document,\n  Header,\n  Page,\n  StatCard,\n  Section,\n  BulletList\n} from '@flanksource/facet';\n\nexport default function MyDatasheet() {\n  return (\n    <Document>\n      <Header\n        title=\"Mission Control Platform\"\n        subtitle=\"Cloud-Native Observability & Incident Management\"\n      />\n\n      <Page>\n        <Section title=\"Key Metrics\">\n          <div className=\"grid grid-cols-3 gap-4\">\n            <StatCard label=\"Response Time\" value=\"< 2min\" />\n            <StatCard label=\"Uptime\" value=\"99.99%\" />\n            <StatCard label=\"Incidents Resolved\" value=\"1,247\" />\n          </div>\n        </Section>\n\n        <Section title=\"Key Features\">\n          <BulletList items={[\n            'Real-time incident detection and alerting',\n            'Automated runbook execution',\n            'Multi-cloud observability',\n            'Integrated ChatOps workflows'\n          ]} />\n        </Section>\n      </Page>\n    </Document>\n  );\n}\n```\n\n### 2. Build HTML Output\n\n```bash\nfacet html MyDatasheet.tsx -o ./dist\n```\n\nThis creates:\n- Print-ready HTML with embedded styles\n- Scoped HTML for embedding in docs (use `--css-scope` for a custom prefix)\n- `.facet/` - Build cache directory (can be gitignored)\n\n### 3. Generate PDF\n\n```bash\nfacet pdf MyDatasheet.tsx\n```\n\n## Performance benchmarks\n\nFacet includes a repeatable end-to-end benchmark for cold and warm HTML/PDF generation:\n\n```bash\ncd cli\npnpm build\npnpm bench:render\npnpm bench:server\n\n# Optional fixture and warm-iteration count\nFACET_BENCH_ITERATIONS=5 pnpm bench:render -- \\\n  examples/SimpleReport.tsx examples/simple-data.json\n\n# Large server document, including streamed PDF download\nFACET_BENCH_SECTIONS=250 pnpm bench:server\n\n# Select a benchmark template\nFACET_BENCH_TEMPLATE=BenchmarkMixedReport pnpm bench:server\n```\n\nThe benchmark uses the release SEA binary, clears `.facet/` before each cold run,\nkeeps caches for warm runs, enables `FACET_PROFILE`, and samples aggregate process-tree\nRSS (Facet, pnpm/Vite, and Chromium). RSS is the sum of process resident sizes and may\ncount shared pages more than once; use it for comparisons rather than as an exact\nphysical-memory measurement.\n\n### Performance checkpoints\n\nFixture: `cli/examples/SimpleReport.tsx` with `simple-data.json`. The first three\ncheckpoints report the mean of three warm runs. Stabilized checkpoints use the median\nof five runs. Server benchmarks report per-request RSS and include downloading the\nresult PDF; `FACET_BENCH_SECTIONS` controls document size.\n\n| Checkpoint | HTML cold | HTML warm | PDF cold | PDF warm | HTML warm peak RSS | PDF warm peak RSS |\n|---|---:|---:|---:|---:|---:|---:|\n| 2026-07-12 — SSR/Tailwind caches, minimal PDF passes, isolated contexts | 8.19 s | 1.05 s | 7.20 s | 1.57 s | 380 MB | 947 MB |\n| 2026-07-12 — persistent server workspaces | 10.17 s | 1.10 s | 8.08 s | 1.97 s | 385 MB | 945 MB |\n| 2026-07-12 — streamed cache responses and early PDF buffer release | 9.34 s | 1.41 s | 9.86 s | 2.39 s | 384 MB | 947 MB |\n| 2026-07-12 — stabilized 5-run median, no metadata-only PDF rewrite | 11.30 s | 1.39 s | 9.83 s | 2.28 s | 379 MB | 961 MB |\n\nThe persistent-workspace phase targets server throughput, not one-shot CLI latency.\nIts server benchmark sends unique data with every request to bypass final-output caching:\n\n| Server checkpoint | First HTML | Subsequent HTML | First PDF | Subsequent PDF | Peak process-tree RSS |\n|---|---:|---:|---:|---:|---:|\n| Before persistent workspaces | 6.46 s | 3.86 s | 4.17 s | 4.64 s | 1,547 MB |\n| After persistent workspaces | 8.04 s | 0.62 s | 0.95 s | 0.75 s | 1,544 MB |\n| After streamed cache responses/buffer release | 5.89 s | 0.58 s | 0.75 s | 0.72 s | 1,568 MB |\n\nThe buffer-release checkpoint improved subsequent server HTML by approximately 6%\nand PDF by approximately 4% in this run. Its primary goal is lower memory retention for\nlarge documents and downloads; the small fixture and cold-install-dominated aggregate\nRSS measurement do not demonstrate that benefit. The CLI timings regressed while RSS\nwas unchanged, despite this phase not changing the CLI rendering path materially; this\nillustrates the current machine/load variance and should not be interpreted as a causal\nregression without repeated controlled runs.\n\nSubsequent HTML and PDF request latency improved by approximately **84%** while peak\nRSS remained effectively unchanged. First-request values are dominated by dependency\ninstallation and global pnpm/filesystem cache state, so they are substantially noisier.\nThe CLI checkpoint shows no expected improvement and some timing variance; its warm\nRSS remained stable.\n\nFor the latest CLI checkpoint, warm PDF stages averaged approximately 567 ms for HTML\nand 546 ms for Chromium/PDF. Cold runs remain dominated by dependency installation.\n\n### Mixed-page multi-pass checkpoint\n\nThe `BenchmarkMixedReport` fixture exercises three page types, three page sizes,\nheaders, footers, content grouping, and `pdf-lib` compositing:\n\n```bash\nFACET_BENCH_TEMPLATE=BenchmarkMixedReport \\\nFACET_BENCH_FORMATS=pdf \\\nFACET_BENCH_SECTIONS=250 \\\npnpm --dir cli bench:server\n```\n\n| Multi-pass checkpoint | Median PDF latency | Median peak RSS | Output size |\n|---|---:|---:|---:|\n| Cartesian type × size overlays | 3.82 s | 1,876 MB | 305 KB |\n| Only overlays used by actual pages | 2.06 s | 1,891 MB | 208 KB |\n\nRendering only page type/size combinations that occur reduced latency by **46%** and\noutput size by **32%**. Peak RSS was effectively unchanged. This was retained because\nit removes 12 unnecessary Chromium overlay renders for this fixture; broader benchmark\nwork was deferred until another concrete bottleneck justifies it. A bounded overlay\nconcurrency experiment was rejected: median latency regressed to 2.86 s (39% slower)\nwith no meaningful RSS improvement, confirming that Chromium overlay work contends\nmore than it parallelizes within one browser.\n\n### Stabilized large-document baseline\n\nThe five-run median baseline using `FACET_BENCH_SECTIONS=250` includes fetching the\nfile-backed PDF result and records peak RSS separately for every request:\n\n| Format | Median latency | Median request peak RSS | Output size |\n|---|---:|---:|---:|\n| HTML baseline | 476 ms | 986 MB | 189 KB |\n| PDF baseline, including download | 1.37 s | 1,074 MB | 76 KB |\n| PDF without metadata-only `pdf-lib` pass | 1.05 s | 1,049 MB | 193 KB |\n| HTML after fragment concurrency safety | 526 ms | 988 MB | 189 KB |\n| PDF after fragment concurrency safety | 878 ms | 1,047 MB | 193 KB |\n| HTML with persistent SSR loader | 15 ms | 1,061 MB | 189 KB |\n| PDF with persistent SSR loader | 363 ms | 1,327 MB | 193 KB |\n\nContent-addressed header/footer fragments and workspace-wide build serialization fix\nconcurrent rendering correctness. They do not affect sequential benchmark architecture;\nthe lower latency in that checkpoint should be treated as run-to-run variance.\n\nPersistent SSR loaders remove the per-request Node/Vite process startup. In this\ncheckpoint warm HTML became approximately **97% faster** and PDF approximately **59%\nfaster**, while median process-tree RSS increased by about 73 MB for HTML and 280 MB\nfor PDF because the Vite/React loader remains resident. Loaders are limited to four by\ndefault (`FACET_MAX_SSR_LOADERS`), close after five idle minutes\n(`FACET_SSR_LOADER_IDLE_MS`), and can be disabled with\n`--no-persistent-ssr` or `FACET_PERSISTENT_SSR=false`.\n\nRemoving the metadata-only full-document load/save made the large PDF path approximately\n**24% faster** and reduced median request peak RSS by approximately **2%**. Direct\nChromium PDFs are larger because they are no longer rewritten by `pdf-lib`; PDFs that\nalready require header/footer compositing still receive Facet Creator/Producer metadata.\n\nThe benchmark now also reports Chromium RSS and Node RSS/heap/external memory after\nevery request. A 30-request PDF-only stress run measured Chromium between 549–552 MB\nwhile Node RSS rose from 194 MB to 254 MB and showed repeated heap collection cycles.\nThis points to V8 heap/allocator high-water retention rather than Chromium leakage. An\naggressive 545 MB Chromium recycle threshold increased median PDF latency from 1.05 s\nto 1.51 s while changing median peak RSS from 1,049 MB to 1,046 MB, so RSS recycling\nremains opt-in.\n\nBenchmark environment: Intel Core i7-1260P (12 cores/16 threads), 16 GiB RAM,\nLinux x86-64, Node.js 24.11.0, pnpm 9.15.9, and Chrome for Testing. Results from\nother machines or Chromium versions should not be directly compared.\n\nAdd a new row after each performance change rather than replacing previous results.\nKeep the fixture, iteration count, worker settings, and environment unchanged.\n\n## How It Works\n\n![](assets/how-it-works.svg)\n\n\n\n### Build Process\n\n**CLI mode** — without a Facet server URL, `facet html` and `facet pdf` run the full pipeline locally:\n\n1. **Setup `.facet/`** — Creates an isolated build directory with symlinks to your sources\n2. **Generate configs** — Auto-generates `vite.config.ts`, `tsconfig.json`, `entry.tsx`\n3. **Vite SSR compile** — Compiles React + TypeScript + MDX via Vite\n4. **React SSR render** — Renders components to static HTML with `ReactDOMServer`\n5. **Tailwind CSS** — Extracts only the styles your template uses\n6. **HTML output** — Combines markup + inlined CSS into a self-contained HTML file\n7. **PDF output** *(optional)* — Puppeteer prints the HTML to PDF, with optional encryption and digital signatures\n\n**Server mode** — `facet serve` wraps the same pipeline behind an HTTP API with a worker pool, LRU cache, optional S3 upload, and an interactive playground at `localhost:3010`.\n\nWhen `FACET_URL` or `--facet-url` is set, the CLI loads and validates data locally, uploads the template project to `/render`, downloads the result, and writes it to the normal local output path. The upload excludes Git metadata, dependencies, Facet caches, temporary files, and build output.\n\n\n\n## Page Component API\n\nThe `Page` component is the primary layout container for multi-page PDF documents.\n\nHeaders and footers are **not** `Page` props. They are declared once as siblings\ninside `<Document>` and matched to pages by `type`, then composited onto every\nphysical page by the multi-pass pipeline described below.\n\n```tsx\n<Document title=\"Quarterly Report\">\n  {/* Chrome — declared once, applied to every page of the matching type */}\n  <Header type=\"first\" variant=\"solid\" height={30} />\n  <Header type=\"default\" variant=\"minimal\" height={14} />\n  <Footer type=\"default\" height={8}>\n    <PageNo format=\"Page ${page} of ${total}\" />\n  </Footer>\n\n  <Page\n    type=\"first\"\n    title=\"Section Title\"\n    product=\"Mission Control\"\n    margins={{ top: 5, right: 0, bottom: 0, left: 0 }}\n    watermark=\"DRAFT\"\n  >\n    {/* page content */}\n  </Page>\n</Document>\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `children` | `ReactNode` | — | Page content |\n| `id` | `string` | — | Stable target used by automatic `TableOfContents` entries |\n| `title` | `string` | — | Section title bar text (renders a blue bar below the header) |\n| `titleClassName` | `string` | — | Extra CSS class applied to the title bar |\n| `product` | `string` | — | Sub-label shown in the title bar |\n| `margins` | `PageMargins` | inherited | Content margins `{ top, right, bottom, left }` in mm; merged field-by-field over `<Document>` defaults |\n| `pageSize` | `PageSize` | `'a4'` | Page size — `a4`, `a3`, `letter`, `legal`, `fhd`, `qhd`, `wqhd`, `4k`, `5k`, `16k`, any `-landscape` variant, or custom `WxH` in mm |\n| `type` | `PageType` | `'default'` | `'first' \\| 'default' \\| 'last'` — selects which `Header`/`Footer` this page gets |\n| `watermark` | `string` | — | Diagonal watermark text (e.g. `\"DRAFT\"`, `\"CONFIDENTIAL\"`) |\n| `className` | `string` | — | Extra CSS class applied to the `<main>` element |\n\n> [!NOTE]\n> `<Page>` clips rather than reflows — content that overflows a single `<Page>`\n> is dropped. Long tables must be the direct overflow path (see\n> `examples/kitchen-sink/MultiPageTable.tsx`).\n>\n> To debug header/footer zones and inspect computed font, line-height, and block spacing, use the `facet pdf --debug` CLI flag; there is no `debug` prop.\n\n### Cover page and table of contents\n\n`CoverPage` is an opinionated traditional first page. Compose `DocumentFields` into its lower section for ordered metadata; both labels and values remain on one line without truncation. `TableOfContents` accepts either a `target` matching a `Page id` or an element `id` inside a Page for automatic physical PDF numbering, or an explicit `page` label.\n\n```tsx\n<CoverPage title=\"Annual report\" subtitle=\"Year ended 2026\" id=\"cover\">\n  <DocumentFields fields={[\n    { label: 'Prepared for', value: 'Board of Directors' },\n    { label: 'Document number', value: 'ACME-2026-001' },\n  ]} />\n</CoverPage>\n\n<Page id=\"contents\">\n  <TableOfContents items={[\n    { title: 'Executive summary', target: 'summary' },\n    { title: 'Appendix', page: 'A-1', level: 2 },\n  ]} />\n</Page>\n\n<Page id=\"summary\" title=\"Executive summary\">\n  {/* content */}\n</Page>\n```\n\nFor a continuously flowing Page, place the TOC and sections together without forcing page breaks. `Markdown firstHeadingId` anchors its first parsed heading while leaving raw HTML `id` attributes sanitized:\n\n```tsx\n<Page>\n  <TableOfContents items={[{ title: '1. Introduction', target: 'section-1' }]} />\n  <Markdown firstHeadingId=\"section-1\">{'## 1. Introduction\\n\\nReport text.'}</Markdown>\n</Page>\n```\n\nAutomatic labels count from the first physical PDF sheet, including the cover and any logical `Page` that spans multiple sheets. Missing or duplicate targets fail PDF generation. HTML and PNG show an em dash for automatic entries because those formats have no physical PDF page number; explicit labels render unchanged in every format.\n\n### Multi-page PDF layout\n\nA single React document with mixed page sizes (e.g. `<Page pageSize=\"a4\" type=\"first\">`, `<Page pageSize=\"a4\">`, `<Page pageSize=\"a4-landscape\">`) is compiled into a final PDF via a 4-phase multi-pass pipeline:\n\n1. **DOM Scan** — Puppeteer renders to DOM, measures header/footer heights per type×size group (e.g. `first:a4`, `default:a4`, `default:a4-landscape`)\n2. **Extract** — Each unique type×size group's header and footer are rendered as isolated PDFs using a dedicated Puppeteer pass, loaded into pdf-lib\n3. **Content Render** — Decorators are stripped from the DOM; `@page` margins are set to the measured header/footer heights; Puppeteer prints content-only PDFs per group\n4. **Composite** — pdf-lib `page.drawPage()` overlays the correct header at the top and footer at the bottom of every physical page, producing a single merged PDF\n\n```tsx\n<Document>\n  {/* Chrome is declared once per type, as a sibling of the pages */}\n  <Header type=\"first\" height={20} />\n  <Footer type=\"first\" height={10} />\n  <Header type=\"default\" height={18} />\n  <Footer type=\"default\" height={8} />\n\n  {/* Cover page — picks up the type=\"first\" header/footer */}\n  <Page pageSize=\"a4\" type=\"first\">\n    <CoverContent />\n  </Page>\n\n  {/* Standard A4 page — content starts after the header automatically */}\n  <Page pageSize=\"a4\">\n    <BodyContent />\n  </Page>\n\n  {/* Landscape page for wide content — same default chrome, new size group */}\n  <Page pageSize=\"a4-landscape\">\n    <WideTableContent />\n  </Page>\n</Document>\n```\n\n![](assets/pdf-layout.svg)\n\n## Diagrams\n\nFacet ships box-and-arrow diagram primitives for data-flow and architecture diagrams. Boxes are pure CSS (server-rendered), while arrows measure the rendered DOM positions of their endpoints at runtime.\n\n| Component | Description |\n|-----------|-------------|\n| `Diagram` | Render-prop container. Yields an `id(name)` helper for stable, per-instance element ids and defers arrows until after mount. |\n| `DiagreDiagram` | Auto-layout container with the same `id(name)` helper. Infers nodes and edges from direct `BoxNode` and `Arrow` children, then lays them out left-to-right or top-to-bottom. |\n| `BoxNode` | Pure-CSS box with optional header/body, plus `ports` — chips docked on its border. Connected to other boxes via its `id`, or a port's. |\n| `Arrow` | Connector between two box ids (`from` / `to`), with `primary` / `secondary` presets. |\n| `NodeSection` | Labeled vertical column of boxes (e.g. \"Sources\", \"Outputs\"). |\n| `COLORS` | Shared 5-color diagram palette. |\n\n```tsx\nimport { Diagram, BoxNode, Arrow, NodeSection, COLORS } from '@flanksource/facet';\n\n<Diagram className=\"flex items-center justify-between gap-8\">\n  {(id) => (\n    <>\n      <NodeSection label=\"Sources\">\n        <BoxNode id={id('db')} title=\"PostgreSQL\" />\n      </NodeSection>\n      <BoxNode id={id('engine')} title=\"Facet Engine\"\n        headerColor={COLORS.primary} borderColor={COLORS.primary} />\n      <NodeSection label=\"Outputs\">\n        <BoxNode id={id('pdf')} title=\"PDF\" />\n      </NodeSection>\n\n      <Arrow from={id('db')} to={id('engine')} variant=\"secondary\" />\n      <Arrow from={id('engine')} to={id('pdf')} />\n    </>\n  )}\n</Diagram>\n```\n\nUse `DiagreDiagram` when the component should position its nodes. `gapX` and `gapY` set minimum and maximum pixel spacing; available container space determines the spacing within those bounds. Keep `BoxNode` and `Arrow` as direct children (fragments are allowed), and use `labelPosition` to place arrow labels on the line, above/left of it (`top`), or below/right of it (`bottom`).\n\n```tsx\nimport { Arrow, BoxNode, DiagreDiagram } from '@flanksource/facet';\n\n<DiagreDiagram direction=\"LR\" gapX={{ min: 40, max: 100 }} gapY={{ min: 24, max: 60 }}>\n  {(id) => <>\n    <BoxNode id={id('source')} title=\"Source\" />\n    <BoxNode id={id('target')} title=\"Target\" />\n    <Arrow from={id('source')} to={id('target')} labelPosition=\"top\" labels={{ middle: 'events' }} />\n  </>}\n</DiagreDiagram>\n```\n\n### `// @live` — hydrate and bake\n\nBecause arrows are measured from the DOM, they can't be produced by server-side\nrendering alone. Mark a template **live** by making its first line the `// @live`\ndirective:\n\n```tsx\n// @live\nimport React from 'react';\nimport { Diagram, BoxNode, Arrow } from '@flanksource/facet';\n// ...\n```\n\nFor live templates, facet runs one extra headless-browser pass: it hydrates the\nSSR HTML, lets `Arrow` draw the connectors into the DOM, then captures the\nnow-static HTML with arrows baked as plain SVG. That baked HTML flows through the\nunchanged HTML/PDF/PNG pipeline. The bake fails loudly if hydration never completes —\nthere is no silent arrow-less fallback.\n\nThis works in `facet html`, `facet pdf`, and `facet serve` (including the\nplayground). In the playground, pick **Live Diagram** from the **Example**\ndropdown to try it.\n\n## CLI Commands\n\n### Remote rendering\n\nSet `FACET_URL` or pass the global `--facet-url` option to submit `html`, `pdf`, and `png` jobs to a Facet server. The explicit flag takes precedence over the environment variable.\n\n```bash\nFACET_URL=https://facet.example.com facet pdf MyDatasheet.tsx -d data.json -o report.pdf\nfacet --facet-url https://facet.example.com html MyDatasheet.tsx -o ./dist/\nfacet --facet-url https://facet.example.com png MyDatasheet.tsx --width 1200 --height 630\n```\n\nRemote mode requires `tar` locally but does not require local Chromium or pnpm. Data loaders and schema validation still run locally. The server controls sandboxing, module mode, and cache lifecycle, so `--sandbox`, `--skip-modules`, and `--clear-cache` fail when combined with a Facet URL. A server or network error stops the command without falling back to local rendering.\n\n### Shared modules\n\n`--skip-modules` is a global option and may appear before or after any subcommand:\n\n```bash\nfacet --skip-modules html MyDatasheet.tsx -d data.json\nfacet pdf MyDatasheet.tsx --skip-modules -o out.pdf\nfacet serve --skip-modules --templates-dir ./templates\n```\n\nThe first use installs a Facet-only module set pinned to the CLI version under\n`${FACET_CACHE_DIR:-~/.facet/cache}/modules/<facet-version>/<platform>-<arch>-node<abi>`.\nLater invocations link `.facet/node_modules` directly to that immutable entry, so\nthey do not read consumer or nested `package.json` files, package-manager pins,\nlockfiles, overrides, `.npmrc`, or directory-based `FACET_PACKAGE_PATH` overrides.\nTemplates that import additional packages must run without `--skip-modules`.\nServer requests containing `dependencies` receive HTTP 400 while the server uses\nthis mode. `facet doctor --skip-modules --fix` verifies or rebuilds the exact\nshared entry selected by the current Facet and Node versions.\n\nWithout `--skip-modules`, a new `.facet` install is seeded by cloning the shared\n`node_modules` directory on APFS, then reconciled against the generated project\nmanifest with `pnpm install`. Facet logs and uses a fresh install when cloning is\nunavailable, including on non-macOS filesystems. `--clear-cache` clears only the\nproject `.facet` scaffold; it does not remove the versioned shared module cache.\n\n### `facet html <template>`\n\nGenerate HTML from a React template.\n\n```\nfacet html [options] <template>\n\nOptions:\n  --css-scope <prefix>         CSS scope prefix for scoped HTML generation\n  -s, --schema <file>          Path to JSON Schema file for data validation\n  --no-validate                Skip data validation\n  -d, --data <file>            Path to JSON or YAML data file\n  -l, --data-loader <file>     Path to data loader module (.ts or .js)\n  -o, --output <path>          Output file path or directory (default: \"dist\")\n  --output-name-field <field>  Data field to use for output filename\n  -v, --verbose                Enable verbose logging\n```\n\nFacet automatically starts render-related child processes at below-normal scheduling priority so Vite, pnpm, data loaders, archive extraction, and Chromium yield resources to interactive OS workloads. It uses background task policy with niceness `+10` on macOS, niceness `+10` on Linux, and below-normal process priority on Windows.\n\n**Example:**\n```bash\nfacet html MyDatasheet.tsx -o ./dist --verbose\nfacet html MyDatasheet.tsx -d data.json -o report.html\n```\n\n### `facet pdf <template>`\n\nGenerate PDF from a React template.\n\n```\nfacet pdf [options] <template>\n\nOptions:\n  -s, --schema <file>          Path to JSON Schema file for data validation\n  --no-validate                Skip data validation\n  -d, --data <file>            Path to JSON or YAML data file\n  -l, --data-loader <file>     Path to data loader module (.ts or .js)\n  -o, --output <path>          Output file path or directory (default: \"dist\")\n  --output-name-field <field>  Data field to use for output filename\n  -v, --verbose                Enable verbose logging\n```\n\n**Example:**\n```bash\nfacet pdf IncidentReport.tsx -d incident.yaml -o incident.pdf\n```\n\n### `facet png <template>`\n\nGenerate a PNG from a React template. Facet captures the selected element at its **natural rendered size** — the DOM is never resized or reflowed to fit an output box. The selector must match exactly one HTML or SVG element.\n\n`--width` / `--height` set the rasterization **scale**, not a canvas: Facet computes a scale factor from the element's natural size and renders the same layout at that pixel density, so text and vectors stay crisp. Passing both uses the smaller of the two ratios, preserving aspect ratio — the output is never padded to exactly `width × height`.\n\nPage layout is controlled separately by `--viewport`, which sets the browser viewport the template is laid out against.\n\n`--autocrop` trims the uniform background border off the capture, measured from painted pixels rather than DOM geometry — so it also removes whitespace *inside* the target, such as SVG `viewBox` padding or flex centering that no selector can exclude. Cropping happens before scaling, so `--width` sizes the cropped result, and the final image is still rasterized by the browser at that scale. `--autocrop-padding` re-adds a margin of background, clamped to the original capture: content already flush against an edge had no border to trim there, so none is invented. A capture that is a single flat colour is rejected — that almost always means the template rendered empty (a `Diagram` captured without `--live`, say).\n\n```\nfacet png [options] <template>\n\nOptions:\n  --width <pixels>             Scale the capture to this output width (default: natural size)\n  --height <pixels>            Scale the capture to this output height (default: natural size)\n  --selector <selector>        CSS selector for the capture target (default: \"body\")\n  --viewport <WxH>             Browser viewport used for layout (default: 1280x800)\n  --autocrop                   Trim the uniform background border off the capture\n  --autocrop-padding <pixels>  Background margin left around autocropped content (default: 0)\n  -s, --schema <file>          Path to JSON Schema file for data validation\n  --no-validate                Skip data validation\n  -d, --data <file>            Path to JSON or YAML data file\n  -l, --data-loader <file>     Path to data loader module (.ts or .js)\n  -o, --output <path>          Output file path or directory\n```\n\n**Examples:**\n```bash\n# Capture the diagram exactly as it renders\nfacet png Diagram.tsx --selector '[data-facet-diagram]' -o preview.png\n\n# Same layout, rendered at 2000px wide (height follows the aspect ratio)\nfacet png Diagram.tsx --selector '[data-facet-diagram]' --width 2000 -o preview@2x.png\n\n# Lay out at 1920x1080, then scale the capture up to 3840px wide\nfacet png MyDatasheet.tsx --viewport 1920x1080 --width 3840 -o hero.png\n\n# Trim the surrounding whitespace away, leaving a 24px background margin\nfacet png Diagram.tsx --live --autocrop --autocrop-padding 24 -o tight.png\n\n# Crop first, then scale the cropped content to 2000px wide\nfacet png Diagram.tsx --live --autocrop --width 2000 -o hero@2x.png\n```\n\n### `facet lint [paths...]`\n\nLint explicit files or recursively scan lowercase `.tsx`, `.mdx`, and `.md` files. Hidden and generated directories are skipped, as are recursive TSX test/spec/story files. Built-in layout rules apply only to TSX; optional Vale checks apply to Markdown/MDX.\n\n```text\nfacet lint [options] [paths...]\n  --rule <name>       Run one built-in rule\n  --severity <level>  warning or error (default: warning)\n  --vale              Run Vale prose checks\n  --diagrams          Detect and live-render diagram candidates (no AI)\n  --diagrams-ai       Review rendered diagram PNGs through Captain (requires --diagrams)\n  --llm-model         Optional Captain model selector\n```\n\n`--diagrams` requires `pnpm` and Chrome/Chromium: it detects real `Diagram`, `FlowDiagram`, and `DiagreDiagram` candidates and live-renders them to surface compiler and readiness errors. It never invokes Captain or makes a model/network call. `--diagrams-ai` additionally requires the `captain` executable on `PATH` and uses the existing generic `captain prompt run` command to review each rendered PNG with the packaged structured prompt. Captain owns provider credentials, model resolution, retries, and structured-output enforcement; no diagram-specific Captain command or plugin is required. Use `--llm-model` or `FACET_LLM_MODEL` to override Captain's configured default with any Captain model selector, including Claude, OpenAI, Gemini, or another supported provider. Failures and malformed output are hard errors. `--vale` and `--diagrams` use external tools only when explicitly requested. The command exits 0 for clean input (including no supported files), 1 for findings or tool/configuration failures.\n\nExamples:\n\n```sh\n# Use Captain's configured default model\nfacet lint --diagrams --diagrams-ai docs/\n\n# Select Claude explicitly through Captain\nfacet lint --diagrams --diagrams-ai --llm-model api:claude-sonnet-4-6 docs/\n```\n\n### `facet serve`\n\nStart an API server with a built-in playground for interactive template development.\n\n```\nfacet serve [options]\n\nOptions:\n  -p, --port <number>          Server port (default: 3010)\n  --templates-dir <dir>        Directory containing templates (default: \".\")\n  --workers <count>            Number of browser workers (default: 2)\n  --max-renders-per-worker <n> Recycle Chromium after N renders (default: 50)\n  --max-queue-depth <count>    Maximum queued browser requests (default: 20)\n  --max-worker-age <ms>        Maximum Chromium worker age (default: 1800000)\n  --max-worker-rss <mb>        Linux Chromium RSS recycle threshold (default: 0/off)\n  --worker-acquire-timeout <ms> Browser queue wait timeout (default: 30000)\n  --no-persistent-ssr          Disable persistent SSR loader processes\n  --timeout <ms>               Render timeout in milliseconds (default: 300000)\n  --api-key <key>              API key for authentication\n  --max-upload <bytes>         Max upload size in bytes (default: 52428800)\n  --cache-max-size <bytes>     Max render cache size in bytes (default: 104857600)\n  --s3-endpoint <url>          S3 endpoint URL\n  --s3-bucket <name>           S3 bucket name\n  --s3-region <region>         S3 region (default: us-east-1)\n  --s3-prefix <prefix>         S3 key prefix\n  -v, --verbose                Enable verbose logging\n```\n\n**Example:**\n```bash\nfacet serve --templates-dir ./templates --port 3010\n\n# With authentication\nfacet serve --api-key my-secret-key\n\n# With S3 upload\nfacet serve --s3-endpoint https://s3.amazonaws.com --s3-bucket my-bucket\n\n# Reuse the immutable Facet-only modules for every request\nfacet serve --skip-modules --templates-dir ./templates\n```\n\nThe playground is available at `http://localhost:3010/` with a Monaco editor, live preview, and render logs. Use the **Example** dropdown to load a starting point:\n\n- **Datasheet** — a multi-component TSX template\n- **Live Diagram** — a `// @live` box-and-arrow diagram (see [Diagrams](#diagrams))\n- **Markdown** — a plain `.md` document auto-wrapped in a printable page\n- **MDX** — Markdown prose mixed with Facet React components\n\nSwitching examples sets the editor language and the file extension sent to the server (`.tsx`, `.md`, or `.mdx`).\n\nSee [openapi.yaml](openapi.yaml) for the full API specification.\n\n### Docker\n\n```bash\ndocker run -p 3000:3000 -v ./templates:/templates ghcr.io/flanksource/facet\n```\n\n### Helm\n\n```bash\nhelm install facet ./chart\n```\n\nSee [chart/values.yaml](chart/values.yaml) for configuration options.\n\n### Why `.facet/`?\n\nSimilar to Next.js (`.next/`) or Nuxt (`.nuxt/`), the `.facet/` directory:\n- **Isolates build artifacts** - Keeps your project clean\n- **Enables fast rebuilds** - Symlinks avoid file copying\n- **Supports incremental builds** - Only rebuilds what changed\n- **Simplifies debugging** - All build files in one place\n\n**Add to `.gitignore`:**\n\n```gitignore\n.facet/\ndist/\n```\n\n## Import Patterns\n\n### Named Imports (Recommended)\n```tsx\nimport { StatCard, Header, Page } from '@flanksource/facet';\n```\n\n### TypeScript Support\n\nAll components include full TypeScript definitions:\n\n```tsx\nimport { StatCard } from '@flanksource/facet';\n\n<StatCard\n  label=\"Response Time\"  // string\n  value=\"< 2min\"         // string | number\n  trend=\"up\"             // 'up' | 'down' | 'neutral' (optional)\n  icon=\"clock\"           // string (optional)\n/>\n```\n\n## Styling\n\nComponents use Tailwind CSS for styling. Include Tailwind in your project:\n\n```bash\npnpm add -D tailwindcss autoprefixer postcss\n```\n\n**tailwind.config.js:**\n```js\nmodule.exports = {\n  content: [\n    './MyDatasheet.tsx',\n    './node_modules/@facet/core/src/components/**/*.tsx'\n  ],\n  theme: {\n    extend: {},\n  },\n  plugins: [],\n}\n```\n\n## Markdown & MDX\n\nMarkdown (`.md`) and MDX (`.mdx`) files are first-class templates — `facet html`,\n`facet pdf`, `facet serve`, and inline renders all accept them directly. A\nMarkdown/MDX template is auto-wrapped in a printable `<Page>` with prose styling,\nso you can render a plain document with zero React boilerplate:\n\n```bash\nfacet pdf Report.md\n```\n\nMDX additionally lets you mix prose with Facet React components, and exposes the\nloaded data as props:\n\n```mdx\nimport { StatCard } from '@flanksource/facet';\n\n# {props.title}\n\nThis is **MDX content** with a React component:\n\n<StatCard label=\"Users\" value=\"10,000+\" />\n```\n\n### Admonitions\n\nGitHub-style alerts work in both `.md` and `.mdx`. A blockquote whose first line\nis one of five labels renders as a coloured callout with its own icon and title:\n\n```markdown\n> [!NOTE]\n> Context worth noticing while skimming.\n\n> [!CAUTION]\n> Never include credentials or other secrets in generated reports.\n```\n\n| Syntax | Tone | Use for |\n|---|---|---|\n| `> [!NOTE]` | blue | Context worth noticing while skimming |\n| `> [!TIP]` | emerald | A better way to do the thing |\n| `> [!IMPORTANT]` | purple | Necessary to get the result |\n| `> [!WARNING]` | amber | Needs attention to avoid a problem |\n| `> [!CAUTION]` | red | Risk of data loss or a security hole |\n\nA plain `>` blockquote — or `> ` with a `.info` class in TSX — stays the untinted\nzinc aside.\n\nIn MDX (and TSX) the same five tones are available as a component, which adds an\nidentifier chip, a label override and an attribution for annotated documents:\n\n```mdx\nimport { CalloutBox } from '@flanksource/facet';\n\n<CalloutBox variant=\"caution\" badge=\"N14\" label=\"Correction\" source=\"Jonno\">\n  The two enforcement checks cannot be implemented as written.\n</CalloutBox>\n```\n\n`<CalloutBox variant=\"caution\">` and `> [!CAUTION]` render the same box, so a\ndocument can move between markdown and MDX without a visual seam. Pass\n`emphasis` for a full border instead of the left rule, for callouts that block\nrather than inform.\n\n`label` and `icon` are set independently of `variant`, which is what lets one\ntone carry several meanings. A review document can run amber \"TODO\", blue\n\"Assumption\" and purple \"Open question\" callouts off the five built-in tones\nwithout inventing new ones:\n\n```mdx\n<CalloutBox variant=\"warning\" label=\"TODO\" icon=\"important\" badge=\"BCR-08\">\n  Run the first tabletop exercise and retain the record.\n</CalloutBox>\n```\n\n`icon` names any tone's glyph and defaults to the variant's own. It also gives\nthe untinted `default` callout an icon, which it otherwise never draws.\n\n## Classified regions\n\nA Markdown document can carry regions that only some outputs are permitted to\ninclude. Wrap them in `<Classified>` and declare, per build, which values are\nallowed:\n\n```markdown\n<Classified tier=\"Internal\">\n\nReview notes that must not reach a customer.\n\n</Classified>\n```\n\n```bash\nfacet pdf policy.md --allow tier=Public                     # region removed\nfacet pdf policy.md --allow tier=Public,Internal            # region kept\n```\n\n`--allow` is repeatable and takes `<attribute>=<value[,value]>`. A region is kept\nonly when **every** attribute it declares is permitted.\n\nThree properties are deliberate:\n\n- **Removal, not concealment.** Redaction runs on the Markdown AST before the\n  bundle is built, so the text is absent from the output *and* from the build\n  cache. Hiding a region with CSS leaves it in the file for anyone who looks.\n- **Membership, not ranking.** Permitted values are an explicit set, never a\n  threshold. A classification scheme need not be a total order — a tier can be\n  less sensitive than another yet reach a wider audience — and `level <= clearance`\n  quietly misfiles exactly those cases.\n- **Fail closed.** A region declaring an attribute with no `--allow` fails the\n  render. Forgetting the flag must never publish the content it was meant to\n  govern.\n\nRedaction applies to `.md` and `.mdx`. The policy is part of the build-cache key,\nso two audiences of one document never share a cached bundle, and it travels with\n`--facet-url` remote renders.\n\nThe header row — `badge`, `label` and `source` — has **no plain-markdown form**.\n`> [!TYPE]` carries the tone and nothing else: its label is fixed to the tone\nname, and there is no slot for an identifier or an attribution. An annotated\ndocument that needs to say which note a callout is, and who raised it, has to\nuse `.mdx` (or raw HTML in `.md`, which `rehype-raw` passes through).\n\nNote that plain `.md` is compiled with `format: 'md'`, which has no JSX — in a\n`.md` file the blockquote syntax is the only route to an admonition. Rename to\n`.mdx` to use components.\n\nMDX can also be imported into a TSX template when you need a custom layout:\n\n```tsx\n// MyDatasheet.tsx\nimport Content from './content.mdx';\n\nexport default function MyDatasheet() {\n  return (\n    <Document>\n      <Content />\n    </Document>\n  );\n}\n```\n\nTry the **Markdown** and **MDX** entries in the playground's **Example** dropdown.\n\n## Development\n\n### Component Development\n\nUse Storybook for component development:\n\n```bash\npnpm run storybook\n```\n\n### Building the CLI\n\n```bash\npnpm run build:cli\n```\n\nTo build the npm CLI package from the current checkout and replace any existing\nglobal `facet` command managed through npm's prefix:\n\n```bash\ntask install\n```\n\n### Publishing\n\n```bash\npnpm run prepublishOnly  # Builds CLI automatically\nnpm publish\n```\n\n## Architecture\n\n- **`src/components/`** - React component library\n- **`src/styles.css`** - Global styles and Tailwind\n- **`cli/`** - CLI package source\n  - **`cli/src/builders/`** - Build orchestration\n  - **`cli/src/generators/`** - HTML/PDF/PNG generators\n  - **`cli/src/utils/`** - Shared utilities\n  - **`cli/src/plugins/`** - Vite plugins\n- **`assets/`** - Static assets (logos, icons)\n\n## Examples\n\nSee `examples/` for complete working examples:\n\n- **Basic Datasheet** - Simple single-page datasheet\n- **Multi-page Report** - Complex multi-page document\n- **Security Report** - Security-focused datasheet\n- **POC Evaluation** - POC evaluation template\n- **Document Front Matter** - Traditional cover, document fields, and table of contents (`DocumentFrontMatter.tsx`)\n\n## Claude Code plugin\n\nThis repo doubles as a Claude Code plugin marketplace. Installing it gives agents three skills covering the whole surface: authoring templates, driving the CLI, and designing diagrams.\n\n```\n/plugin marketplace add flanksource/facet\n/plugin install facet-skills@flanksource-facet\n```\n\n| Skill | Covers |\n| --- | --- |\n| `facet-documents` | `Document`/`Page`/`Header`/`Footer`, page sizes and margins, the component library, the pt type scale, `Theme`, Markdown/MDX |\n| `facet-cli` | `html`/`pdf`/`png`/`fill-pdf`/`serve`/`lint`/`doctor`, data loading, remote templates, troubleshooting |\n| `diagram-designer` | Node-and-arrow architecture and ER diagrams, with five runnable layout examples |\n\nSource and layout: [`.agents/skills/`](.agents/skills/README.md).\n\n## Contributing\n\nThis is an internal Flanksource package. For issues or feature requests, contact the platform team.\n\n## License\n\nProprietary - Flanksource Inc.\n\n---\n\n**Built with ❤️ by Flanksource**\n","readmeFilename":"README.md"}