{"_id":"@usableapp/cardds","_rev":"54-3fb1b7c1e34ca1b3fea4731f129dbc21","name":"@usableapp/cardds","dist-tags":{"latest":"0.7.18"},"versions":{"0.1.0":{"name":"@usableapp/cardds","version":"0.1.0","license":"UNLICENSED","_id":"@usableapp/cardds@0.1.0","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"59a4019ceef3bd167917b6fd4768797971832166","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.1.0.tgz","fileCount":170,"integrity":"sha512-OEk5I8DSppPKq9tRkehX9ua4xngDOWLtdPwDTJ98yoFDZmT+bu85j6UdOOJptCQL999GbTFbeYc7EScMKC56tw==","signatures":[{"sig":"MEUCIQDumQZLKkQt5ySSCN1whUcx7HP6q5b+l9LHa/feHCVbbwIgDJ4MlF93wyyISB9brDtrz+uYqrKJQczPASMkYvXLB7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":869482},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"9dac2087563e32c68cd21af7adaab9b932ae6dae","scripts":{"dev":"vite --config app/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","build:app":"node scripts/build-icons.mjs && vite build --config app/vite.config.ts","mcp:verify":"cd mcp-server && npm run verify && npm run verify:http","preview:app":"vite preview --config app/vite.config.ts","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"usableapp","email":"usableapp.co@gmail.com"},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.9.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth), app/ is the Commons Time Bank PWA built from them, demo/ the CSS spec pages the acceptance tests (tests/) drive.","directories":{},"_nodeVersion":"25.6.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.1.0_1789546599426_0.8800539168883175","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@usableapp/cardds","version":"0.1.1","license":"UNLICENSED","_id":"@usableapp/cardds@0.1.1","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"2869041b3372ce4f5716d1189825a475df625d14","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.1.1.tgz","fileCount":170,"integrity":"sha512-5dJlF8wgsIScjzzoOivJ6C/QJd9VmVDWfjQrI3gRbTFWGtUxfywC3eVFOEDJMeghFTyD43pEq6DdFeSKY6gvbw==","signatures":[{"sig":"MEYCIQCzBHUevcegD8chZHrOJ8nVc4tF6P8AKPC5yX+W9qNHsAIhAOOhuejDsWhY6Oxpo9ftCXvJ8utrkjJNDuTWmK76akch","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBbmTgfHIx4x9lLFGRdFSyVqs7B3wujIa+qkUrq64DmvAiEA9nSeherr5hnhPk7FJtsXagayRquGmhB8egi9GT3/Smc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":851122},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"0c56f67dac6b6a8b5b83910a64c98bcec71313cf","scripts":{"dev":"vite --config app/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","build:app":"node scripts/build-icons.mjs && vite build --config app/vite.config.ts","mcp:verify":"cd mcp-server && npm run verify && npm run verify:http","preview:app":"vite preview --config app/vite.config.ts","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"usableapp","email":"usableapp.co@gmail.com"},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.9.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth), app/ is the Commons Time Bank PWA built from them, demo/ the CSS spec pages the acceptance tests (tests/) drive.","directories":{},"_nodeVersion":"25.6.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.1.1_1789554199219_0.3905608622025709","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@usableapp/cardds","version":"0.1.2","license":"UNLICENSED","_id":"@usableapp/cardds@0.1.2","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"d21a2c3103c6bc199faff9a5b941bb852b89bbc8","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.1.2.tgz","fileCount":170,"integrity":"sha512-ea36IepbRUkj4d1P1jyPTJaleiZGBTWnbJUnPKkcniZrjYTqCq1e5++v8FonDdZWoQ/bNv26pz4OfE+wpy6haw==","signatures":[{"sig":"MEUCIQDo+rSdHvAjHP/Tmwg0YyjfgdbizVSjUWu/IWfOGo3/OQIgbXyCMgr45XOA2plVcEIL/Gf4Gl1xFLx64t824N9kOj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICbWGVx0o69L7Lem5gQrglTyTha9+CplXNF7yE+u4VftAiAp/gGFOTM2TArV11VKQJkPotsYzrhS6QSRWwdUqjBTvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":851122},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"551b612bbc3c44b7c68a2a0321d90510a0d79ddc","scripts":{"dev":"vite --config app/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","build:app":"node scripts/build-icons.mjs && vite build --config app/vite.config.ts","mcp:verify":"cd mcp-server && npm run verify && npm run verify:http","preview:app":"vite preview --config app/vite.config.ts","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth), app/ is the Commons Time Bank PWA built from them, demo/ the CSS spec pages the acceptance tests (tests/) drive.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.1.2_1789555370767_0.418928261459349","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@usableapp/cardds","version":"0.1.3","license":"UNLICENSED","_id":"@usableapp/cardds@0.1.3","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"61b0358e443c61ce2c05233faf782cd15af6b600","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.1.3.tgz","fileCount":170,"integrity":"sha512-EwTZF/Vu/Dc9MaCU1uXFOy6R/V99ErwYODmlfLAq7G+6vCxHIjJLIWy4Rrjv4vpxvERb6UN81aW0lAhJNFNgLw==","signatures":[{"sig":"MEQCIGsCgjY94nOLoykgqMtKWPr+4iTMAhNh+dKHZPMDJ6VvAiBYI0V2gbsLcQSv3Y1i/Omsp4IMdspI6tOXwk1o2hiboA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFX/xxrHsFtPjMOABpTGGCw6OH4vdyaY+l8U2tU3zL2gAiB7aRRbQZeo7j95lyvjncPFVu826GwOLXhsod1FFgG8jQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":851122},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"6fde80bd1641a97b681f3da7ba14368be09e1b59","scripts":{"dev":"vite --config app/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","build:app":"node scripts/build-icons.mjs && vite build --config app/vite.config.ts","mcp:verify":"cd mcp-server && npm run verify && npm run verify:http","preview:app":"vite preview --config app/vite.config.ts","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth), app/ is the Commons Time Bank PWA built from them, demo/ the CSS spec pages the acceptance tests (tests/) drive.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.1.3_1789555859456_0.5764856278498334","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@usableapp/cardds","version":"0.1.4","license":"UNLICENSED","_id":"@usableapp/cardds@0.1.4","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"a8cefc837c6744784ed45f83555f432d2e1af558","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.1.4.tgz","fileCount":170,"integrity":"sha512-TSkYwU6WsR1HUJiFpAQnLTqQoeStS0pEbjjdaIpjMs5+3Ry15BweJyeVYEvYVu5gRUwE3u9DLEH3fbPG1LvJvw==","signatures":[{"sig":"MEUCIBnPzTACihtMROMm+WChodt8MIws2SYOYbOwxp/WjsiCAiEAq9b73Em656j+Fd/rRNXrP2g2uUslnTuLkmY9JJbAIfk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDGeC8tmbVMyJrlybWX/mkHClMQutk+xZKgcyTDe//xBwIhAJGTmb/0+AenV5Sr15yp8ec6I051uJdguf7nfArguLXi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":851845},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"a4d3461959a05a55e0b5405406ee56a0768febde","scripts":{"dev":"vite --config app/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","build:app":"node scripts/build-icons.mjs && vite build --config app/vite.config.ts","mcp:verify":"cd mcp-server && npm run verify && npm run verify:http","preview:app":"vite preview --config app/vite.config.ts","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth), app/ is the Commons Time Bank PWA built from them, demo/ the CSS spec pages the acceptance tests (tests/) drive.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.1.4_1789556612266_0.1330210909972478","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@usableapp/cardds","version":"0.1.5","license":"UNLICENSED","_id":"@usableapp/cardds@0.1.5","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"3dd80d706594da61d0a697c0daab32c2be94feac","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.1.5.tgz","fileCount":170,"integrity":"sha512-Oj2YYw5haywu0MqNEfyVqc6pQ7Mo4nkKmC50TRgzyvNJXJ8e3998BPAgIQhoaAeFsOSIQZ2F6z6aFvQSqmNTLQ==","signatures":[{"sig":"MEQCIBKFNr+1pGK2+yGOo18/U+5KJLhUd7b/n8u9//aCH7I7AiAREFdybHa2QaTpjWFRagQ/A1JFb3g22fW5/Nue4sjWew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGCMOU32xf+tLSq6Te4aEQuJol2Md46A6kzOxRP4EaLZAiEAlo8KRNuaI5sYsTVZJngsAOgRlenNfC7jDJdGZWV53kc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":863050},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"4c9df627bd68b70c3742a48eb5eb3284bf52ec65","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","mcp:verify":"cd mcp-server && npm run verify && npm run verify:http","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.1.5_1789562698711_0.195986574201501","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@usableapp/cardds","version":"0.1.6","license":"UNLICENSED","_id":"@usableapp/cardds@0.1.6","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"6a1b51d84ad0a8bb6315edf758d509bdb3579fd3","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.1.6.tgz","fileCount":170,"integrity":"sha512-nHiRVD1Y3tzTHjrUXJR1wtgtJfW5xK7k8V6/TSnFhfFQwZrC4qc9QsjArcUUMUkfgS0cN7ZQpxP5ORSk8W6fMQ==","signatures":[{"sig":"MEUCIQC6nBhV+j3A3R7kKOlXSrUtlvqFNSwHFRoorbISYt11OAIgc4H1ls0MURC5YR1IiQ/uTJs3IfopQEgRDOHkuh0FewQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAhU/qn6xrc2H/9V1JGmgO/PBQXfZQYoi6Phnrvl4npbAiEApg9M0G7x+amn8xpRgUf7MioCpoutjETjahEvNYMgsYU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":864570},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"62be241ed5337330d505a62f6346cf12c9b3887f","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","mcp:verify":"cd mcp-server && npm run verify && npm run verify:http","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.1.6_1789568589427_0.26928285728019574","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@usableapp/cardds","version":"0.1.7","license":"UNLICENSED","_id":"@usableapp/cardds@0.1.7","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"478d803f9baf7d32a836683955f3a2fcbba89392","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.1.7.tgz","fileCount":170,"integrity":"sha512-m+6MejmMaPJWVvCmqjau1CNsCwUsl682TeG9pdp6YTGE/T2JskTHkDTMSFEg4WFJfRHZwfvbx7lFxdi8Taycng==","signatures":[{"sig":"MEQCIA5o8T6gJXC3Ik+DyA5hLepKGwNGzoruCfuHaSYk7i14AiBO0Pbs0AcA7zsk5TGoK+SeJfzEtSlt7HNkYrt+y9/sTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICZvjYUkbEp00J2aozB/iiBUxVDk3CfAf9DrEkGdj2iaAiEAtxajMtfbTbzoga23FIydFbZvZWV4v4q5WUIm4ADFllo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":864134},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"b652fee94b5d298ca5052f520ff06274344415b9","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","mcp:verify":"cd mcp-server && npm run verify && npm run verify:http","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.1.7_1789570875778_0.020450284489671455","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@usableapp/cardds","version":"0.2.0","license":"UNLICENSED","_id":"@usableapp/cardds@0.2.0","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"185c790bc8066f90fd2564ea38578d3985022c92","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.2.0.tgz","fileCount":173,"integrity":"sha512-M2SqeojtT8OiQIXnrFMuVFBOCU5rLekhJFFUyDwZiWMFPDVcMbkOryKwJI88ltG8Vi0To6pOOELSO76j01cg5w==","signatures":[{"sig":"MEUCIQC+Ga54+2IVMNcIQHj+CAFrrMsnZPYfvFOLNyE8Qdr/iQIgYUV+GD6dCEFUkMJCyNLbZ/zNfBj5ECazLbxQ+p3Bk/o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBsKzabL/TO8fBWUcs1bmYJgQfFd5hbc/0Dv4aySEcioAiAJaD3AU0dO7+xeq3A7S6RNucCzaBZnQOutmXfxRIdIwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":885661},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"f1b38e4f6bb218bfa9c07f7619563128c8afd638","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","mcp:verify":"cd mcp-server && npm run verify && npm run verify:http","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.2.0_1789889646940_0.7368402237725387","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@usableapp/cardds","version":"0.2.1","license":"UNLICENSED","_id":"@usableapp/cardds@0.2.1","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"9b6cc9892fde28519b570fccf251ebe616d69bca","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.2.1.tgz","fileCount":173,"integrity":"sha512-SpGghDmmVSlgyO/bBR3O+KI6i3PxatcJFWdFTHUK5pRnVmEEs1kHFU5YN8mO9BITf859su7CXcIuxvcJ0+Sk9w==","signatures":[{"sig":"MEUCIQDPWXCZRabzrIZZjwFiqPLeA/vHPTpWToqbBUhyGEGNlAIgcbVZXjOAVRI13KfqlW1csu0A9/Gvxks+CBnt2RWRAyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHmcK5vPbeaY8Sq94ykn+SanerPRolaSdl2wr/xX/HU5AiAQqlA58iXSfDinbjwEVtE9T+GUuGj9GAL4ST7ztwu7Cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":905806},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"76c1e89eb26983b95ca8773597648ac1c5ba7cec","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.2.1_1789913599115_0.9675411982436479","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@usableapp/cardds","version":"0.2.2","license":"UNLICENSED","_id":"@usableapp/cardds@0.2.2","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"0e0e04d5b4d7a05696f8c0a50a6b4406440bdc29","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.2.2.tgz","fileCount":173,"integrity":"sha512-ggoDtIvRQSnprmA2njXMFv5Lk/T3BA8Dpuu0I4Hi6IcUpN3scoIQYpzJhsBRrHNSVrTlXtvzsEr0nqPaagZUBQ==","signatures":[{"sig":"MEUCIHdzYnPwPfB/4lkAXspXXkgqpvnKd1j7dtpCeqTICioEAiEA+bRk+GxduTQeWdk7k5yMcLBY4MdjsJvZcwTt355zSb0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGDFB4paAUIzLnQw2C052IkjxqEbQVoPHpnBLYImhSh/AiEAlIEFWbvrCZ2eY3XE+6IixbEE5/CWAAEURv+/XWHKK0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":909842},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"626123b551877ed39c3021f5262a8a9052160a67","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.2.2_1789965009232_0.6208349494817493","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@usableapp/cardds","version":"0.3.0","license":"UNLICENSED","_id":"@usableapp/cardds@0.3.0","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"e03edcbdc42671ec74b934612c14985e03cf3c93","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.3.0.tgz","fileCount":173,"integrity":"sha512-8MPDzbNUc0xTxtgF+E2PdUjX8rmCDNi1gPX+eoY5JyFacJejGCu+JTxiyDxKVMbLK7+xzFX5v2Nl4KPB1OVXlA==","signatures":[{"sig":"MEUCIHaDL65kOpFoBEdg+xBTgm2pSXiHq0uc8/NqzteyCBhqAiEAquBbtGM0+0ms+wSYC5m/DXl8dkOQcCojubntQjcHlcg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAo3r7icq68sTxEH3vhL7TjczccCZ1Fz+zzWwN79tL2OAiEAxjgFoANr25Bsc8cEu8kekTGMt8TXCZ+VBCPlzB9X5aA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":926871},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"80d315a9bdc620b106b94898a534d021aba454a1","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.3.0_1790004938751_0.1005921585672318","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@usableapp/cardds","version":"0.4.0","license":"UNLICENSED","_id":"@usableapp/cardds@0.4.0","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"3c214f85ef52a273629dd9557f6ad385b989f99e","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.4.0.tgz","fileCount":173,"integrity":"sha512-NEVd2weALET6TcHwAk1V/thIDLJClpOfs0HiI1jLWm1dR/2Hyw6c5JwHL8/6QVQlsKZteMDtQCh8KdTALrbl4A==","signatures":[{"sig":"MEUCIARtofUoeMIvXjjRwYGddeL1IogIrit0Jawj4kdxuL8xAiEAz6FTCoxXA4hGsWvUEFbisTt4y8X843HJYYz+tcmxFZc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDaRYC0MvxsBdxpG3rCB/RY4X6NqdXgx+POzawHLl2Q/AiBjL0QU7dgrYI6NnBjXTycoltkNDvf11rLVcerrmfVtXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":942382},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"74acd115f1c7b2d800f48f9ef553817e4884cbe3","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.4.0_1790008267015_0.6849345054377074","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@usableapp/cardds","version":"0.4.1","license":"UNLICENSED","_id":"@usableapp/cardds@0.4.1","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"89d47d00283a7fd4a5027ee092340efd19798d6c","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.4.1.tgz","fileCount":175,"integrity":"sha512-dM1++OexXhVPzDHM0OttBbOi0GyILhDDlqPe2w/1kojNFDFEme3aOsR7lvF8jJRdav+zM6tRLD4mqsJrw2KLNw==","signatures":[{"sig":"MEUCIQDx7SZ/qNDePfofSXGZbpIEYwgDQzl6cUWanPaYVuK2FwIgPislvndwU0950rTcaB78R3qpKtaUcqz93Rfh5y1/6tg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAK2XAwyMShvNRKZxnXqhFjoNpsAgjo9MJROWJJvk3iNAiEAnbpeGw9QsKMeorCuAA3rVTGVuZos+TY8uOpvEDeEI0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":934648},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"1dcf4afe266bfc93cc50445ed6bba1084bcc5d9c","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.4.1_1790045888417_0.9174562175535492","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@usableapp/cardds","version":"0.4.2","license":"UNLICENSED","_id":"@usableapp/cardds@0.4.2","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"a65f6d0c30245ead0a8937cd6673873819f2df80","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.4.2.tgz","fileCount":176,"integrity":"sha512-FVWrZHmwK+McDnc5RJzyFb7UOLhZahVsgk3xlPLUvzus/nfIqqz4CNlkG2bHR9M8pjMhKmmdmSZDStjRS7pN4g==","signatures":[{"sig":"MEUCIB4KuDfAALfmug4A4e8SNWZLO/ylTBaXFKD/0dfLX8n2AiEAsO/4hi3qYPZEh1cMzyXdmXIM/DM2Itv3ASPQiJ4GrMk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCDdXAukBouvRXHAU+aZauFzy22UeJTbUSgvYPgc7yqHQIgXEbn+x+Xei4Q9hVxI2KypCnVbas6036QK24MD+T4SJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":944713},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"47a427386ca88c11179dae9c8eb0f63e56c4e548","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.4.2_1790055029192_0.10383364170678466","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@usableapp/cardds","version":"0.5.0","license":"UNLICENSED","_id":"@usableapp/cardds@0.5.0","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"73a4ab474320e3a636a55dd616ac2c92a6ee8d31","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.5.0.tgz","fileCount":176,"integrity":"sha512-u2Dg8OoeP5umBOuUHZioCTAsDFRn26M4Mv6TXsZSiZ2t4EJQEj8oT9BpIqTwXeaCoXj5MneSQsQePExcFOylzw==","signatures":[{"sig":"MEYCIQC0P2Mj2ekXh9H+6HHQ0Mt5vEBrJ8E6sbnRi0XkQBVmtgIhAI0EVXb9hefJSG2OLxBmhLpoglyKNfKN/z4Wbi8Lx9gc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDXOS+DNrUgQ6EQmUodMomXaQt16+TvMDEI3PchsxnhsAiBv6VXYOYiJC/L9x3HTTZMKPSTBoznUX35/y8nCaM0Wfw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":953230},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"dd152248a5d17812941a06cbf1287ebb3480f10f","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.5.0_1790063119051_0.8812945852944367","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@usableapp/cardds","version":"0.5.1","license":"UNLICENSED","_id":"@usableapp/cardds@0.5.1","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"13844d38dd6823e7506bec1b7527fae15dd0c704","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.5.1.tgz","fileCount":176,"integrity":"sha512-U6UB9AK96m2gdy2AsqiOtWynij3MARMtKJ4DE6RYlyoB35Gq1IuVPVWktsadKaBeZ6Iw4Kn/VLsGtHtn69mPOQ==","signatures":[{"sig":"MEMCIHlw7u8GrzmmgmVirKkZC//rk0dFHazNYKj1uf++aQexAh9np/MBANQxy6OIg6mzEhgn2+XRPr2KHbACFUpZuXXe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCq7E2R44SETs2LQsGexEc48riNnEUQX+58HCu8pkb26wIhAKW15NBBckfOYHjro9ULJ0ormHk57S714UWkpK2pDKvw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":957108},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"d29d18d8822db75bfb46299bdb0d77e57993922e","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.5.1_1790069239654_0.9338072864837745","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@usableapp/cardds","version":"0.5.2","license":"UNLICENSED","_id":"@usableapp/cardds@0.5.2","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"800787184c39032774c134a6f5fe14e5cae110d9","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.5.2.tgz","fileCount":176,"integrity":"sha512-DqbSSqLQaLMdKcWlgedpbhMltZ5aGpjdWdsgr9Z2N3MNjsATJdg7FTc9UiIL3eBTD+J3c7uGH7krlD+GBFDBkg==","signatures":[{"sig":"MEUCIDzOlxnupz3cMH3Br2DPjjq9K8/K7O9DRjfmF6Xk+58iAiEAsW6WS1NHAVvuCcEZM6+U4AL+ylKG1Dy3ycVOLrY+LPg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCbfrwA0PsA8dLJ9OoQ8ijCVxMgrysQEDfM2unrqkCLmgIhALBkY0f+v+cpZHk/UdZn3ZSH7uQJar+M/bFiTufPzMBk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":958830},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"55928a04a1e5cfbc329306e0a6c6deee08c6d6f8","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.5.2_1790078412040_0.3319091830138423","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@usableapp/cardds","version":"0.6.0","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.0","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"0f45bd9dbb33b9560c5be13d447631f57b8d2672","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.0.tgz","fileCount":176,"integrity":"sha512-oBCzYaoSmJTOFhJ4eM8fbNFuWWoVMTztCIi6GjMLLFixeGL1CoNDpRean9cpcJ/GBSkuI0V/v51H9a+Yws44ag==","signatures":[{"sig":"MEUCIQChKdWUNflIsi+IucINB4nLTJnYQIbl6WlqJRGym/dCNgIgWkiUNW3KUgPf8Di38LfT7dI7JnouPwbUCAGhn9vqE6I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBtD+NcTUvqs8r/aROYJ3JHmDsCWjpxbZN/v5QA5pMN/AiEA69ORVpazviJ2HInfhwm2B2ePSFVx9O2aim7M3RYy+No=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":960859},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"411bf2eb6214622c3cedf651ed3da107f6c74c54","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.0_1790081673841_0.524477895595765","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@usableapp/cardds","version":"0.6.1","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.1","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"4b2ef8e5e80d1c5c5b0ec53e25317d207ac83192","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.1.tgz","fileCount":176,"integrity":"sha512-4lAjR22urAQDP3f4uILN0KbOL4iQipFeU7pvYGOiJVvnjHy6sDLpr38wg+59QmlTyBub9JcS+5Q/mdCdcHSiuQ==","signatures":[{"sig":"MEUCIQCz+2rQz7qan7vg3tbdSI9279QvPVjqz8QQCbz41mU3jQIgPFJyzOe0Cii5xUUhGu/+AHq7veQ8iCrA+h5HPkT7GHg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCeTQSqpkbB4dWjANCn8dVDPWu285IoBQkWy0lD+k/3ngIgDBf0f293+4f+vsuVnyrrKu+joEH2hZdz94SbggkvZ/M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":964900},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"68fa0da589cc965f4e8ece20e2fccac822b1f658","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.1_1790087707005_0.34678055127053176","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@usableapp/cardds","version":"0.6.2","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.2","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"5155f813a6075d6e83894dac436163ae148170e1","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.2.tgz","fileCount":176,"integrity":"sha512-FJOwsvL7mPfkgm/DDF98rNVXhvvFMq3Ea+sIOSOq63tMdDCFQKA9elkyJ7hMs4fF1COEYljTwXulRh5Nj3eUYQ==","signatures":[{"sig":"MEUCIHq/j5uBwA7qIi3KcFcV8fDloXpUHUJ6gSn3MdKHIlC2AiEA5Lw5zT4cziHVkm2gwX+1/0HtDfPlLs22TOqqN5LTgjM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDWLycSQVDN4zfTPnNVJnG/T9ZoIA33OVBr9SLKFo1hWgIgP3JA+zE24x0g0DBEhhYrmhD1QeVjsT9/O6Stk9Khu20=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":967566},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"62f0f20ecb49fc8791c50e2fe8f4bc64b42e4779","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.2_1790128571564_0.8315777073412336","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@usableapp/cardds","version":"0.6.3","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.3","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"e567964ad14a02c6156c23a5c3f6ea5a9494b601","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.3.tgz","fileCount":176,"integrity":"sha512-jnUS4weV/wdhpYnnucnfxnDrc8ZisgSbMg/cZtv4hB4kOunDRovQ5+6mb3Sug3GUSEDAxJ7A6IAfDWSXYxs4RQ==","signatures":[{"sig":"MEQCIBOCOmSmbqNMsueztqNnX3AOYQmclGW1+DxDYOcz1R6VAiBhjVpl31sYwtGh+KM+g+EiMaXERLVyxA28usDhSsT+MQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAbgiGvNW6h9A6xwt/gUZ4PUTOCBcAxAnC7KRhmLxD1RAiEAs8zjtYbUrXaeFpnnFD1vjcTzlQGahIYcxGjGWz4lcCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":967054},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"17b83141f293383b3db16a7fb355513969153a28","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.3_1790128664361_0.4041323380604973","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"@usableapp/cardds","version":"0.6.4","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.4","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"03766e88ccb8a65c61b37342a436603b31c96f0c","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.4.tgz","fileCount":176,"integrity":"sha512-jOGunejX2cI6fFc+2Yv7tF6eY3koLR/94QS0DP9CwAyBQAfNIV6q2Y/hUiv3vpHotVuttzIuzrBHqCdUUkkTOg==","signatures":[{"sig":"MEQCIE75jMJtk2DCqrZ7a3hitULWVSdryFKeQM7e/14ySGbUAiA6W1wwSRo0LSVdZeIt/t6BwjEr6kGYTSZ79hzdho566Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCqubWYVrKvv0HVHVcJvLzvRcM4gSP/+kG9iz2bKp+JkAIgQpt4J4BcRjM+loBDxxLcZDa0q4vk7RPm4+pPxgE0D6A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":969350},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"58bdc45d18c97fa304472227b1f63e520170691f","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.4_1790131615522_0.989480163722144","host":"s3://npm-registry-packages-npm-production"}},"0.6.5":{"name":"@usableapp/cardds","version":"0.6.5","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.5","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"ba80142fda2d1576d0669285fa8377a7d2a4f3c7","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.5.tgz","fileCount":182,"integrity":"sha512-Lg6N6A9pnHVD9c4JhAt0IrT9mKa/GYWzRZ9tjSd0f5cmkoPqK0/ie3HWfIoe3XdFTl1JuyHIQhRhZVruoSyfZA==","signatures":[{"sig":"MEYCIQDwNFMn1+tvZuTwTmRdf5fu7Yp3ahWnAHtkvNA+dkCRZAIhALsZ4nQUYcPJPkIR76g3XRfehxtyrYR+eVHLsbwji3iS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBE9hKoniEZ7F4nbGdBLUCEgoGO8rGZz1ffAS/pK27EzAiEAls9ucpihFn/ydTY/wuTqiQp19TclFTp+LAcGWqqj9cw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1017345},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"b5ab2a769e219fafbb614244afb9a50cd84c9b1a","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.5_1790152826151_0.7232093997936457","host":"s3://npm-registry-packages-npm-production"}},"0.6.6":{"name":"@usableapp/cardds","version":"0.6.6","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.6","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"f71adb2a60718f0a311812546a97978617a105b2","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.6.tgz","fileCount":182,"integrity":"sha512-fxBm2iQcq28x1tYoiVi8KrQStDQPf5QE3HWeR1rQW0YlqEkl+kzrChyGIhMtaXEv2XiR4KGvpJvcTclrdqelXw==","signatures":[{"sig":"MEUCIQCm8BbDGX1y8j/3hHlmGqk1Zsk3MbnV+D0Gnq1cW8x0DwIgVv7V/ouNfauqkP3VyHSiD65Qs2ow/wXOtk7c/8ngqnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDv5AFdt2FnlZ3S2P+RRtxOg/rSwvqHPCYyImrdtStKtgIhALVwb713fWLKumDKkliqdXjinVEpCXmt/LtEB40WnWvp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1018020},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"4513236d01facaea1dfdce661a8bae8fb1bde3c5","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.6_1790162204221_0.40206623893443894","host":"s3://npm-registry-packages-npm-production"}},"0.6.7":{"name":"@usableapp/cardds","version":"0.6.7","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.7","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"249ee1df62eaae7878630a8828dbb2371230b29a","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.7.tgz","fileCount":182,"integrity":"sha512-h1oyxb/OOjK3SLw9mRFLXQbrNfmbpLn5HWjMgjWAVa4T+k4uK+PFMRavAagLyEmdLdWJO5OO9LUF7uvSntsPqQ==","signatures":[{"sig":"MEQCIEQWq5IHrg4qArjAg2Wmw9N9WI0WqHrMzBPS65+3v1FaAiBhPpsD6lX2/+NGj6tJczT587+cDtE07ItEvImoPSOO1w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAQcKXbHvoK5TcHFutvRtvHhEZRd9WDZ3Wll8KSGr4PRAiEA5xKrUmj2nUxrkJslr5pY9WNivOM/KfkW0W7oXcT1jyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1020452},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"62da1ad6d5f7e27ef854db81c777e0f99bc8e1e7","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.7_1790163748569_0.7898549222619937","host":"s3://npm-registry-packages-npm-production"}},"0.6.8":{"name":"@usableapp/cardds","version":"0.6.8","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.8","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"46eb936ea85ade2efdde66d2e1cf2d59f9095c4c","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.8.tgz","fileCount":182,"integrity":"sha512-STOE6mSK5LEpppk3Sxf0B7+l7i6psXkgo3kHZXNcL81amtF87c+3WrTpPOqtmqWFdWIDMqHh5Hy1LzYnRMaY8A==","signatures":[{"sig":"MEQCIC6X+FEtYkW/2W1ZcmkzODRPeJSGGiTIsw6wssT18WQtAiAEyWx/EGhIyCCFS8yDcpwaEG7jZDbcmaNIEECLFO2kqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDekYsw3JTTin57JfDQADZfm70Qtb64CSe+HXbKpqclYgIgYj/qVUqprVm+r/afPSjTB+9Vgn1c73BEW3JC8bLMp4A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1020949},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"1c4de5635ac63786e552aa051e4aca5e169af535","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.8_1790164387759_0.9602077252579098","host":"s3://npm-registry-packages-npm-production"}},"0.6.9":{"name":"@usableapp/cardds","version":"0.6.9","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.9","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"55b96e920c6948e929f8a9b55aa43bb35a73335e","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.9.tgz","fileCount":182,"integrity":"sha512-CmAqJl5CjG5/deB+58HImYLQX/Rdc+jQHmh/hqab5IY0fZ/KfCeW56j6+gJjzlK54GbGdI2NeMqA9GhHu30oOQ==","signatures":[{"sig":"MEUCIE1XxgwThiIH6Vch81U6kIYEdSNDB+JqJHULrKji1gn2AiEA158OCT//j9O9/hPB/fy8x5fX2GFxvsdIksFgVD8iPL8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCp/MC8+r3ZacFWQ0BxaijN+6GnUgEuD4jKjZ07d57BuwIgeRxbgEfxXkmYDDYZ2In/MIA5sYTDsIBU0b+AvAMYxUg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1025473},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"b6841ee4e3274ffb1da732fa66a143c6b9c01639","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.9_1790167232299_0.7858727085436394","host":"s3://npm-registry-packages-npm-production"}},"0.6.10":{"name":"@usableapp/cardds","version":"0.6.10","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.10","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"0ff4996e09ff07410e78d8da763102d18510808f","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.10.tgz","fileCount":184,"integrity":"sha512-sXlRNmTY6RMoU7WcKpiP8hiC1wfvv454HbrruYm2RP6p7MfAwcXYPyNWNmz022vFb9CKWMa+LaZCU1JWWzm8kg==","signatures":[{"sig":"MEUCIQDbp+PqXDQxQHLtOp8zSMwiEQ6U3mFKwXe/0VOnt+bYAgIgEA6WCfOqWs7zFB/xZNzfTCRE6p5pVCQ2ZNGhi5TI1v4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDNlauiMg28pdP4D8l0PKPPyHHsD4Mhism3HOCAhF5uVwIgJuP1w55JPn5v+G+k555EAWgc6tjy9yGzAy5FV2WfkkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1033526},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"2ec3f7dad01b9b0e03a4a8d958793367990d1056","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.10_1790174571712_0.8730646753312643","host":"s3://npm-registry-packages-npm-production"}},"0.6.11":{"name":"@usableapp/cardds","version":"0.6.11","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.11","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"79c4978f342cc3352a45062ca25b92272eb78795","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.11.tgz","fileCount":184,"integrity":"sha512-Xlty2FGEdfsB7l/VkN9b88CDRF1gzbjEaxzXqTHQz4npyXSIWwxrydr/l5RfBFvd4xqM1twMmIhRxU/hOwasfg==","signatures":[{"sig":"MEUCIQC7EzgOfeQGfh9PLq+i46bCNcX2Da8patuVzLxLza8UCwIgBkeDDYdfj3BrI7uDjXjbIJPOXTGXskamkXulrcNerDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDkWAegu3gjx2EfFjru58ucduh3zjlk3oTwW/uqCz+e7AIhAIxxO+MZAo/Xs9diA77ApRK5e85Hek2rB43BD8YiqUZe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1037373},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"1f01ab6033cdc02c05ef3dfe80f7585f08064491","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.11_1790177419272_0.41169511150689875","host":"s3://npm-registry-packages-npm-production"}},"0.6.12":{"name":"@usableapp/cardds","version":"0.6.12","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.12","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"9f333067b1ccbaf2bce4a4f7dd47bfb6736f51b6","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.12.tgz","fileCount":184,"integrity":"sha512-3F+rvx/OzIn6TJ/Wd6/X2BXwdypFDpBch3mfeJMRKAoaUTnVJvSiL8irpPt2N78JVr5DNOSiqQoNfD9n6gXjAg==","signatures":[{"sig":"MEUCIQD24tX8F0SdNh6flQiklWmBFf8jZU7FNnnPTMb8r6xDbQIgJtUXhxA9YKYjE3P1x49SRlygdRNuVxVNZrJfaziLJ04=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCEh4XnGWybjQ5yd+u4+jrCU2Xoob0vqlcQFWqFvdJBGAIgBFmJ7heWVFkbBVGCl4y8bvua5rtweFyWbGqQGbTZOqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1037770},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"4339b8ee90ef11787f2caa83f057f48403828ef1","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.12_1790181027755_0.10882624863958812","host":"s3://npm-registry-packages-npm-production"}},"0.6.13":{"name":"@usableapp/cardds","version":"0.6.13","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.13","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"d46913fcb825cfbbffdc83d462e2af79e602681a","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.13.tgz","fileCount":184,"integrity":"sha512-XlQo60sGpNq/RPZHP5mxFCHnsRQ5QpIs4AaO+KAunnpUffFvIUlQM2qvirfgfkHj26kErBF6wBTkCRZV0KuhQQ==","signatures":[{"sig":"MEYCIQCUYCVEcnJZpEGquyovtjEKaMCrvvsRbAxR991ApWBy5gIhALoGAld3nQrRdV+aDTU5xSfqMukXjqHZZFPthtlTyajg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAEAHYMAMS9Zxq4xp+DxpnjSfd430qeF9PUNOh1LqnesAiEA3UmCBmuRNNt+ldw/l7tz3jYFXVsbea25aHmNn+j26mI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1040170},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"31b516559750ee8165437cf1e199650dd259c8bb","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.13_1790183068119_0.8793272537550361","host":"s3://npm-registry-packages-npm-production"}},"0.6.14":{"name":"@usableapp/cardds","version":"0.6.14","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.14","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"60773d92756468c931c322070f16805d40f20bb2","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.14.tgz","fileCount":186,"integrity":"sha512-KMXoxAigu8ivJnTa9Wp09AmrBbjfjUx4JEs7Q1bpM4IKD9KTjo2FqJzTu42lH55zSiqjOTBkdSH0cMSvE0Irsw==","signatures":[{"sig":"MEUCIQDUBc4Q1Sq9sC3lfce/vsjPmAn4Hrn3OOLq2DgQK+ws+wIgZzz/+R+rfMo9QFny1Yd0J1a3KdrE66/uJt4ODv11Xwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCxlZMTJninZvh9o0Na1woQ4NUWMpbbYrDu39YItgS8TQIhANJ5CvwEvWWhURo4kTkTu8NTTyeNtI1I8h/PqSnpdpp7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1046456},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"48739ae1310a7a6423a1facf4d41f38f04758820","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.14_1790217365268_0.9572339114309718","host":"s3://npm-registry-packages-npm-production"}},"0.6.15":{"name":"@usableapp/cardds","version":"0.6.15","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.15","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"6063e82508d29a342b846fb520a2fcae3f8e1b80","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.15.tgz","fileCount":186,"integrity":"sha512-y2DSG00UWlcemw8WL4Yhy5ZJ8CFSgy/qs3qcoLcJt9bTqjSthezCHu7bHQ4FRV2tPzBWN/SrT+U1F81y/LnJoA==","signatures":[{"sig":"MEQCIBQVqKqGOmWh49qnWCATINg904Y428tD4mA3qZHC3MASAiAFcB0wgzbID4ngBGd18d9zAZSfejaFmbMyawi+zKE95g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDNQxkD1+q72Zaa+vS4TGpuVJp57ZboCxTC0Rg/OZMYSQIgDyFhYcZZ0CHn2uetW4LMa3cbwKF7Rx/DjXSPZ3/bf9o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1047124},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"7707f8b42550c97f6b42a16d7c38711ec43597e8","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.15_1790218262712_0.04004270723553294","host":"s3://npm-registry-packages-npm-production"}},"0.6.16":{"name":"@usableapp/cardds","version":"0.6.16","license":"UNLICENSED","_id":"@usableapp/cardds@0.6.16","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"8450f491981983964237997adcc83a37b27c8414","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.6.16.tgz","fileCount":186,"integrity":"sha512-qp6k5gmUqWJgrxUJl+D8/REWCzs3Z302NI9P+2k1pzSfECr7GYZHc6VoDmZE7VSyUKGh2ivRXTCW21B4s/VQwQ==","signatures":[{"sig":"MEQCIEuEqxPnUbUmVKnKpkvqfxl58bG99GKjSEN0W/AXv2k4AiAY78pIa1dkF7JUYTyHR0bPuvgm2aGpAk4lrRQIvecr4Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDUuHr8xI9b/IT/HQGI/lZBAo8JSdSm164yIOJMnktP7AiBXK+KI/dDT6336EkeQaZ6FC+X8untazsfdvUpWzZIvrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1049083},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"d0d39f1aa9bbf50e9ffa5726ac16e63605800ce8","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.6.16_1790218575562_0.7117372975859169","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@usableapp/cardds","version":"0.7.0","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.0","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"f3c67873d6714f1f7a32a0458f6cbd9c3fcc1271","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.0.tgz","fileCount":186,"integrity":"sha512-jua2EJ2EHU7+SBICt10IOmftHKEV3mpIDmsOlOXZid1oU92K6Yh9h+5buYI/4UAs72z1S6sqXi0s4yq/bwxnsw==","signatures":[{"sig":"MEUCID+oRXCOX8+CnpFFKZX3l7vP8deo1Lxx+kN8XclJJ7gxAiEA5YDr1p/lZfj2RBPqq2gP5nXSEvfbL/Rrpv1stc0v/h8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIC4gR8Bza3irKh+IwpZagZjhHTyZ7fer1X+ma+xXHKFwAiEA/mvbrkq4M5q8AgyC2NM5Ir5jv2vkUKJVuxelXWFVkwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1049713},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"5f38404fa055f0507f3ba9243e8b28e41e4b4f41","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.0_1790219622459_0.021597579095874453","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@usableapp/cardds","version":"0.7.1","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.1","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"ccc55d7d914ac5a7b7101f4eda276ad67e8679e2","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.1.tgz","fileCount":186,"integrity":"sha512-jeYB7WVgoGy9ywPAdnS1ipNuMNNc5HcrXYG75EX1UQA0uhEmEU6elBlLrP3uW5Wzch3/p3L+ShvGd/zMztze9w==","signatures":[{"sig":"MEQCIE+l0hBiV23Hbs2RxpSbcXPPaMzYqYmD2F41NqduxQRKAiAJMDvdAq3Q+k+hc0cS/dpeTFXgAyWwbTqa8IVXBBryWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCJsKrfvN8XSSUNDVAAAOvSguwLSg/lghrFxBJLm2RklQIhAJSHXqbQ1xRneoPj0uLXBWEyI+/L+HwSPJDUlNJPVDz4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1047459},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"cb5659a804feccac798d3c56113ff4329e4516ea","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.1_1790220619633_0.35648369335384866","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@usableapp/cardds","version":"0.7.2","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.2","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"f616a18a29ec640fa19e6e183c0265a4b4deeacd","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.2.tgz","fileCount":188,"integrity":"sha512-uvuLJzdUtgUAhF/bh/gf26/LYUSPaGDXU58vPQ1sSuDoXVQdjcqsG1Unhfc1N4wPNiNy7YttC7ptdPKgMdapsQ==","signatures":[{"sig":"MEUCIQClRz+TwW+Ct8qc6nCxfXM3yqdlgkUvGw0xUbkrv0bT5AIgL+EA2gebAp1FTcoLwDDjGsAGVU+UUSG74tj3neF0bBM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGPV8zDUde5A02vucREfw0vMe/ktbI8NTSZ9ofMVEWHTAiEA+3bXZuz4lwqD+FVgOoD6oOYry2CAy8aD3s3s1OJ8Aoc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1067249},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"ced1b7d3e89390a49ff2b6335417dbd6997d3337","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.2_1790230828302_0.24658281112629243","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@usableapp/cardds","version":"0.7.3","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.3","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"5ffdf90509b0f5e9ef5c22063f603c18c3d2a171","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.3.tgz","fileCount":188,"integrity":"sha512-dmDv8/+nL74GBFfQhC7evY+1KgRKhPvH53EYMtPRKB3gONWw9msuK0B6cm3D4qHiZTE/ou/VizNLmBAwPhq3VQ==","signatures":[{"sig":"MEQCIFOF5CORocmw1kLaAyyUJFoGjylJijL2Fn9/nlrhODCDAiBwFHFFDH6PcgTRyeKy4zwo1HiYxUqfaswUBro8rDVf3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIG+j1PNTBPkkiaCVwu53jojbsmB8Hmtl7kBSDEFO8ru2AiB8ToAwASgH1/GzYM0B0FuLBcMBXC9YC/e/0b0iMvXZxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1068763},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"da556187e1a043c9af4d1a3101e6ed4eae6e8151","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.3_1790234446183_0.7032813992914033","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@usableapp/cardds","version":"0.7.4","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.4","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"42db9c2066d449ff9effd5f5c50f765cc066334f","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.4.tgz","fileCount":190,"integrity":"sha512-cJLqFdSS51Yc9AtIDjAiBJAtQPkGQuuc+CzmWKCdz83v2RLqqSpPKG2398wh3/kdk+H3vC7RGTtXeCMp7tfhoA==","signatures":[{"sig":"MEUCIBO5+8WM3WNfKQXFNAYoxzAZRet8H7RCDAjST55oZ/4EAiEAx1ORVegWAigZIBn88sFOmVmvrdnXw+nhTJjQaPXvJsk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD3L8ZQTfCKAk8gFxEuXBTW6De1oQXLa0vMP8vJElHJCQIgI9CQ94bmNMlImLGPztEHczLb/VkUsCgsBUp+HQl6IRQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1088604},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"6bc7be90be432b998d5009b37eea9495b4009d81","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.4_1790238467207_0.47429677896437217","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"@usableapp/cardds","version":"0.7.5","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.5","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"e9481d070c57db69d63642e3c4781612f84f804c","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.5.tgz","fileCount":194,"integrity":"sha512-uoCbaecfvqsGhI/d7sQx2OGO8fhT+sWIBpoVepzaf7sXhdawnYoW4gMLEQ9piZ7auwTxgTDKrBlrCvi/fHNLfw==","signatures":[{"sig":"MEYCIQCQwfoMQeNbUUBXQ9CS733fS7uvkkTm4Za0jnLZrFSQhgIhANjuC/qeK4Vln2bcbzXYbhSSfJgkmhCG7vZX/YY6Rhxo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCrIrSm69QiLjCl69fcN2CdkIl22pcaqLTLEfGjvzsIlgIgSwo/YDSmBaAAOA0C5CEYt21ckXNAILRIqBcdrGp0yB4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1116278},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"1e3a05e6b2d4c8546edd62c43c827bad93994b87","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.5_1790244701825_0.7923070125166525","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"@usableapp/cardds","version":"0.7.6","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.6","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"0988ed2514dec79d1b3cc7fc6994d19ec73836df","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.6.tgz","fileCount":194,"integrity":"sha512-c6xmPJpACVyAPT16LGfTKDR+PHTC64tdUSX4E5kgGEgPwq+5pacrUtLgvxvxrDaA+RGZbl414TGly0FaSQ7+6Q==","signatures":[{"sig":"MEUCIQD/yj/KClqPOzccWaG38uwURGulpv9LYeQI/F9qLDiEVgIgGWfXZiWUfLOaCc7H4e/iW56eM9gQSn4/0ddLN1eyuvY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCHXrXTdTekt7JoKAbJ0j8rzhGmOzLZtTdNKY/Po+IWlAIhAJxxq5qIU3bwZT+Zo1yeBNbI9MpPtsFVwOGpshp5CcqV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1117465},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"58879e72eb079e10d8e5962ddffa46e18b525ef2","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.6_1790249387387_0.007876361048194225","host":"s3://npm-registry-packages-npm-production"}},"0.7.7":{"name":"@usableapp/cardds","version":"0.7.7","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.7","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"b379476e27bdfe11d45b1d518807d8d7d9e6f380","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.7.tgz","fileCount":194,"integrity":"sha512-7zxapiLuBu43MsjibcO4Xa5Cd0N+DitOyRqERK5Jd4SbjQScpZaidUZVSYqt5ckgJy8nVZAlnEDYqyMBjtMKlg==","signatures":[{"sig":"MEYCIQCEe1JM7PVwrqiz8e6+dopd9SNsdVRKh1aYMhxVxLYMOgIhALozfA7JXY6lfm+UxZ/gXQIIeKUS4zBWRZKrFuCDnmmC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDdgbTwppHTJ5TIcr2NCdzLrjCv+j7Ztfeff+oe2s3fSAIhAOIG9xP//DwSWvom8dbOLjxXqyH1mXazhbUarhunU/pl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1125968},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"f84d08c0dd8143efe5db046c3fb16aa77eb67746","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.7_1790303765393_0.8456335005622848","host":"s3://npm-registry-packages-npm-production"}},"0.7.8":{"name":"@usableapp/cardds","version":"0.7.8","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.8","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"26559fba86195e6701d2f3983dcead3c7b277d24","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.8.tgz","fileCount":196,"integrity":"sha512-gPo3kX1G8wSiptogpITJvYZMmCEIsTgABsLeq/1hDeE+1vghHjrh2J4tVWMgDEM4WIqJi8zFR6U2P4m6fRlmqg==","signatures":[{"sig":"MEUCIQDAspphKxgmHOaf6B/S1A+x+Vs+rTInnVbCBTIj3pSrtAIgBj/F5dHt/6xlc19fdBu59lJa+ofivh8/QDSbmGBjbPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHibGWuS+cjZSydTsYU1k7CzEdE18G/fIV9gKS9/aRfJAiBmPw3xnR974Bqkom/NOCWAKLndav4Tb/WLiXur/Ed7Wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1132339},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"56e2facccbaed594460358b7400020d2603ee1ef","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.8_1790305868866_0.2270211886445368","host":"s3://npm-registry-packages-npm-production"}},"0.7.9":{"name":"@usableapp/cardds","version":"0.7.9","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.9","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"9ff59c1f0a42e9ead90face70ad5a9582c389483","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.9.tgz","fileCount":198,"integrity":"sha512-vH41Y230U9AXvkB54QktojayX27N4pcxUM3aQm3JJF/YRG19aKZ0uUqIHcYkS7qfW9B66GHJ/ed/rbwIeEAF0g==","signatures":[{"sig":"MEYCIQCLQBeBrsaQhJlR4QUfDjbbYaGMihbJ5NrlkHAKDlvsZAIhALVs1tCPrarSv1AOZPjRpVYvNooxSU231EEnPQ1++NMp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCXY1XscfzKrHV54l3A4bAWbD7VV0F/dG6GciQQJXjX+AIhANB4/zAeDCHmN3YjxVNh8swbxANjZ3eSa98HmcsltoRD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1142515},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"f7f0b6b10214b8a87b8423a502318121355d29ce","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.9_1790307249727_0.933649433570561","host":"s3://npm-registry-packages-npm-production"}},"0.7.10":{"name":"@usableapp/cardds","version":"0.7.10","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.10","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"23b6b541e88b2604439965ca17aa1cca0e0c847c","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.10.tgz","fileCount":198,"integrity":"sha512-G4eRZSwSx81TCLCc+9dgN/0q84LaojJtjlDacRULUJw9zs5C/n5XsCXp86Mq+7drHHqpnPpYOYBTldmTRKAK8w==","signatures":[{"sig":"MEQCIGgKtpWS3TehTwwgbKcvrVeQ91VgNjX/Cw2ows5l6cLAAiAgnmHo5tBYF9LUIrgzC+6miYQUoeFZlUQbTdBRZoUCAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCx/iVXTlAJtsg8APxKJXkxxprjVPtT2az1ebK3bbnExgIhAIle4mRXt9dkslCH/KDCLAvDfwBCufyb08UBk3LFxRGf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1143269},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"8e17d6624b14ae426ff7171209a9357e515e74e6","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.10_1790308434873_0.015180419669827083","host":"s3://npm-registry-packages-npm-production"}},"0.7.11":{"name":"@usableapp/cardds","version":"0.7.11","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.11","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"7dd2abee4aa47d17b4afc573ec4017e1a4dafb28","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.11.tgz","fileCount":198,"integrity":"sha512-wV0p6IV/18YonVgjzoYIaKMY1AWIbbksVxN8rtkHtEeS9SFeHcWKR4mm20G1rIYGGkBUbwbhH0J+0Meg5yRu3g==","signatures":[{"sig":"MEYCIQDR5C7Nc4pxPtAUj1uE0ckNXd+odBaI+PFY9Ch4ETnXYQIhAJXuXQJlPoAlMLbqit1GcpE47cTKO7TCNZ6kKWxOSzaT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIH0+EhP1tJp+OkXQ3kCDorXFdQGEbq86L7szxsKs1fmkAiEAmhnfGln1gHch6TwQtMnS6qfbbHnYw1/mHePSOed5jp8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1145326},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"7ff6c8076fd3d1661954e4f47c6f0b25e3f7f3ab","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.11_1790319282839_0.0996836327139663","host":"s3://npm-registry-packages-npm-production"}},"0.7.12":{"name":"@usableapp/cardds","version":"0.7.12","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.12","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"c3ba894aca78cb56e04638b1ca500c321a1ac487","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.12.tgz","fileCount":198,"integrity":"sha512-Lh9r17d6mlLBMqFRsHffVlVJpmjcdZQkiXgUPqBLnvaeyAp9bJshNOSN//kq5uLfuMUZeE9aIr3TNN9dzhHtSA==","signatures":[{"sig":"MEQCIFHtj6FPYyyT7aBAk4duerqjlaOqcsUbe7zl/PYfrJNcAiAGr1tYPhmRMr8wN7uOh7PcYNGQydiKERlt/3EZdXRreA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIF0CBmIv1g0MTfBg8Mpi/0BTUv2nctpdSVSCgmrCMc9PAiEAm/ObTdjSZb5bkW5VeeCr+DVahgoAGBaq4N0qpKaHDUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1148166},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"15c8a53be4b412f4c1d0b46ab4e81b8a854d779b","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.12_1790321726689_0.46350465185108236","host":"s3://npm-registry-packages-npm-production"}},"0.7.13":{"name":"@usableapp/cardds","version":"0.7.13","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.13","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"8fdc4bb2d74fb73da5439351e34691cce3d7f6b4","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.13.tgz","fileCount":198,"integrity":"sha512-xmoJIpDi7+TPhmKy9OKiPQ7+Y5H/YGeAw77QMr+VLNlkgkkRX9rFDRfmG4DNaCemgmJC9HcmoKHtUdx/RrSo2Q==","signatures":[{"sig":"MEQCIF9weHboNPf1paKYeRCzNwEVtWC03ctcLNg8df5Pl65FAiADwggZr9r/DZMkI5h4MeH2Jv3ZbFHr/qv8GaHnqSqWvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCaocl3abxTx25w06SCdqYFJmDrk/I4z+hQsvF1dl9bnAIgcoTkMZl1W2b4Hhr2ZNtR6HLKA/tNeAS0XE7oBWZsDHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1149194},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"9ddaa29be3e145783b17b7ec37cfb6393866dbab","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.13_1790323497640_0.29827325685408557","host":"s3://npm-registry-packages-npm-production"}},"0.7.14":{"name":"@usableapp/cardds","version":"0.7.14","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.14","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"9fcf5db04572beccc447f9ecc269ec8864b73fe1","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.14.tgz","fileCount":198,"integrity":"sha512-hrCqsREsnIVtSaZ087kBq87BrcoYe1HoEUSdc5CvtvxP58jj1Dagq+KeQ7UN0Ci66lbET+zIaCi1LnxEc6PQWw==","signatures":[{"sig":"MEUCIQC6wiopSPWOfdANLxZxUN6OJz5UUBczj4AAXRTF0P1HXAIgUnxnF82Eym8WpFRygk1MtcKp1X4p9LKKks+o+t2GkNM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCdd9aVnTTjhdmzMY8tKeMAFdANvIQSm1zytgcO5ntSJQIgZ3kk393RwoJtYupLa4FI42aPT+r1fJhlkf2gv2Z7PSY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1151720},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"99e9ccd2d2e0009ac14a8ca9a2d85a69cbd56636","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.14_1790326630930_0.04000843759228023","host":"s3://npm-registry-packages-npm-production"}},"0.7.15":{"name":"@usableapp/cardds","version":"0.7.15","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.15","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"525c73960a5c29120105eabb0b883a8527d3fa5e","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.15.tgz","fileCount":198,"integrity":"sha512-0W3wlYigoFzFFDFHEoDZB9ZQVbSCFsxSo3vrMqPBQ42ziYLAjk7170TBZmn4L7ztg8IldTEVYeaTXrJ0r1MXHw==","signatures":[{"sig":"MEUCIErfKdW+PzSSg9EjIuGLjS6TTdZAoA79FGipwLleDxbrAiEA6I/M2pG4LkBdx5hLWCxDj+ipxD2yHwc+TkBp2TJfZKg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAxjrObBAlW1ivQqZIJZPUoqAnM4dS9mFO72ecNn7lKIAiArm5znmqQwMcL2aUzbBkobnNuQUJPPszK9mr3TNMS80Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1163222},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"ede58947e9d6e249a7008d172ba947e57a20fe34","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.15_1790351362354_0.05277721641554711","host":"s3://npm-registry-packages-npm-production"}},"0.7.16":{"name":"@usableapp/cardds","version":"0.7.16","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.16","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"55fddf2a3b8ca9e085fcdf3acaefa0f10289543d","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.16.tgz","fileCount":200,"integrity":"sha512-4Hosytsl/wjsaIHBOLO6hQFZy2lxE3APjk4U8gKWL+pGL5T8j27yprz25LnQKuqhNQR9rXcOcCyvetyuL+YjfQ==","signatures":[{"sig":"MEUCIQCipgGwU3gdvrs9LSw9yLnd4BaCJGct4YJNO8vPT+9pTQIgcEWbSMbd+Qx5RVq8PL8MvrzcaVgcSFK44r29zgDw0Bs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID47zYbqyMvPxc7UtIjELLL7F7mYywTjlPw1SXsPimXKAiBLwHp42JtE4lNKcttTFyWS9aDi3ErtZlR9HNQaM5wqFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1170217},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"b23f1b929f1f4a83ba9ff2a6b80f362cbdb03211","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=18","react-dom":">=18"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.16_1790391159742_0.4226752628042614","host":"s3://npm-registry-packages-npm-production"}},"0.7.17":{"name":"@usableapp/cardds","version":"0.7.17","license":"UNLICENSED","_id":"@usableapp/cardds@0.7.17","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"homepage":"https://github.com/everysundays/cardds#readme","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"eeebf0f685602efbe0c29a43c9177d318ef628ea","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.17.tgz","fileCount":200,"integrity":"sha512-dFA9Xe/dzFjc3Sh3r+rJ4pVekxpkfUYBDWeV45vAFVab/3zKJVckrzrfAtn4NOPjV23urFsPdMatgVSugbTLTQ==","signatures":[{"sig":"MEQCICOy+xfjUCyO7aXNoXwhqV2L0OsLZlIeU5jVajFSF+zMAiBpME23e0qT21yOUk+ujqi/lTCCTaty9ES27IgP/b9Kkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIG7FoJhrEfH24bws2ilqett4fBITYyEnLr4x0eF2ccCxAiEAxFxuEkd0kmdzsBzu5ZZZ2Z/KQIrJLrnXuiD/POpZnTA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1189291},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"74b5635d87a155ba0770aa636c399e8766ecfe97","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p gallery/tsconfig.json --noEmit","snapshot:check":"CARDDS_SNAPSHOT=check playwright test tests/style-snapshot.spec.js","snapshot:write":"CARDDS_SNAPSHOT=write playwright test tests/style-snapshot.spec.js","validate:inbox":"node scripts/validate-inbox.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19"},"_npmOperationalInternal":{"tmp":"tmp/cardds_0.7.17_1790491735456_0.585305686798929","host":"s3://npm-registry-packages-npm-production"}},"0.7.18":{"_id":"@usableapp/cardds@0.7.18","bugs":{"url":"https://github.com/everysundays/cardds/issues"},"dist":{"shasum":"828c908eb4aab4dde1e9fd3b8c23acc4eb7825f3","tarball":"https://registry.npmjs.org/@usableapp/cardds/-/cardds-0.7.18.tgz","fileCount":200,"integrity":"sha512-jqRq3Zo8eUVuPUehpT54sz0ELN9WyOvFKp0G0pc31sougQcz89W1WH11BnGCQjUQH9LUJCmQLUH5ORGbcX4mUg==","signatures":[{"sig":"MEYCIQCHy8j5GvRD1nlqwuz/4yWt8LFDIYVENrtPDkcxaJFRsgIhAIcJwrlCwUFY9AwEhuxBGq/PBcXKQFyBaWiTuMaLbV9v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCFTV9LNXK/DjuPOs8tuTidPu/+ULOs2/oNLQIN8hAXqgIhAMQCiV30nEJXrCORjQeVKP8d6jC5WFUWncaaiogl2haa"}],"unpackedSize":1190272},"main":"dist/index.js","name":"@usableapp/cardds","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./css/*":"./css/*","./cardds.js":"./cardds.js","./icons.svg":"./icons.svg","./cardds.css":"./cardds.css","./dist/cardds.css":"./dist/cardds.css"},"gitHead":"d3a2296ce849baba5ff6f14b0bc59f13b43c4528","license":"UNLICENSED","scripts":{"dev":"vite --config gallery/vite.config.ts","test":"playwright test","build":"node scripts/build-icons.mjs && tsc -p tsconfig.json && node scripts/flatten-css.mjs","knobs":"node scripts/knobs.mjs","prepack":"npm run build","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p gallery/tsconfig.json --noEmit","snapshot:check":"CARDDS_SNAPSHOT=check playwright test tests/style-snapshot.spec.js","snapshot:write":"CARDDS_SNAPSHOT=write playwright test tests/style-snapshot.spec.js","validate:inbox":"node scripts/validate-inbox.mjs"},"version":"0.7.18","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9d73782b-0424-49f7-9bcf-906f27939cca"}},"homepage":"https://github.com/everysundays/cardds#readme","repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"_npmVersion":"11.19.0","description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","directories":{},"maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"@oddbird/popover-polyfill":"^0.7.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.3.0","react":"^19.3.0","react-dom":"^19.3.0","typescript":"^5.9.3","@types/react":"^19.3.0","react-router":"^8.3.1","@playwright/test":"1.58.2","@types/react-dom":"^19.3.0","@vitejs/plugin-react":"^6.1.1"},"peerDependencies":{"react":">=19","react-dom":">=19"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cardds_0.7.18_1790504367481_0.5655180684322587"}}},"time":{"created":"2026-09-16T08:16:39.284Z","modified":"2026-09-27T10:19:27.760Z","0.1.0":"2026-09-16T08:16:39.625Z","0.1.1":"2026-09-16T10:23:19.305Z","0.1.2":"2026-09-16T10:42:50.871Z","0.1.3":"2026-09-16T10:50:59.598Z","0.1.4":"2026-09-16T11:03:32.366Z","0.1.5":"2026-09-16T12:44:58.799Z","0.1.6":"2026-09-16T14:23:09.537Z","0.1.7":"2026-09-16T15:01:15.866Z","0.2.0":"2026-09-20T07:34:07.056Z","0.2.1":"2026-09-20T14:13:19.242Z","0.2.2":"2026-09-21T04:30:09.342Z","0.3.0":"2026-09-21T15:35:38.885Z","0.4.0":"2026-09-21T16:31:07.103Z","0.4.1":"2026-09-22T02:58:08.508Z","0.4.2":"2026-09-22T05:30:29.287Z","0.5.0":"2026-09-22T07:45:19.145Z","0.5.1":"2026-09-22T09:27:19.808Z","0.5.2":"2026-09-22T12:00:12.134Z","0.6.0":"2026-09-22T12:54:33.926Z","0.6.1":"2026-09-22T14:35:07.148Z","0.6.2":"2026-09-23T01:56:11.673Z","0.6.3":"2026-09-23T01:57:44.454Z","0.6.4":"2026-09-23T02:46:55.620Z","0.6.5":"2026-09-23T08:40:26.261Z","0.6.6":"2026-09-23T11:16:44.330Z","0.6.7":"2026-09-23T11:42:28.656Z","0.6.8":"2026-09-23T11:53:07.984Z","0.6.9":"2026-09-23T12:40:32.499Z","0.6.10":"2026-09-23T14:42:51.831Z","0.6.11":"2026-09-23T15:30:19.368Z","0.6.12":"2026-09-23T16:30:27.858Z","0.6.13":"2026-09-23T17:04:28.223Z","0.6.14":"2026-09-24T02:36:05.363Z","0.6.15":"2026-09-24T02:51:02.816Z","0.6.16":"2026-09-24T02:56:15.655Z","0.7.0":"2026-09-24T03:13:42.587Z","0.7.1":"2026-09-24T03:30:19.735Z","0.7.2":"2026-09-24T06:20:28.469Z","0.7.3":"2026-09-24T07:20:46.290Z","0.7.4":"2026-09-24T08:27:47.358Z","0.7.5":"2026-09-24T10:11:41.934Z","0.7.6":"2026-09-24T11:29:47.477Z","0.7.7":"2026-09-25T02:36:05.505Z","0.7.8":"2026-09-25T03:11:09.024Z","0.7.9":"2026-09-25T03:34:09.853Z","0.7.10":"2026-09-25T03:53:54.976Z","0.7.11":"2026-09-25T06:54:42.959Z","0.7.12":"2026-09-25T07:35:26.796Z","0.7.13":"2026-09-25T08:04:57.796Z","0.7.14":"2026-09-25T08:57:11.028Z","0.7.15":"2026-09-25T15:49:22.466Z","0.7.16":"2026-09-26T02:52:39.833Z","0.7.17":"2026-09-27T06:48:55.584Z","0.7.18":"2026-09-27T10:19:27.600Z"},"bugs":{"url":"https://github.com/everysundays/cardds/issues"},"license":"UNLICENSED","homepage":"https://github.com/everysundays/cardds#readme","repository":{"url":"git+ssh://git@github.com/everysundays/cardds.git","type":"git"},"description":"card-first mobile design system, React-first: the components in src/ are thin wrappers over the CSS contract (css/*.css stays the only truth); gallery/ shows every story live (npm run dev), tests/ measures the geometry.","maintainers":[{"name":"usableapp","email":"usableapp.co@gmail.com"}],"readme":"# cardds\n\n> **cardds is a UI framework, not one project's design system.** A project takes it and puts its own values and\n> content into the UI — tokens (`theme.css`), props, slots, composition — without touching cardds. When a project\n> cannot get what it needs from outside, that is a gap in the framework: report it; it is closed here as a\n> GENERAL extension point, never as that project's special case. A consumer project never edits or releases cardds.\n>\n> **For:** people and AI alike — this is the reference, the one place a rule of the system is written.\n> The other docs only point here: `CLAUDE.md` (AI working IN this repo — decisions and gotchas),\n> `docs/guides/building-with-cardds.md` (AI composing screens in React; shipped to Claude Design),\n> the `/cardds` skill (AI in another project — install + contract). To LOOK at the system: `npm run dev`.\n\nCard-first mobile design system, **React-first**: `src/` is the component\nlibrary — one thin component per pattern, emitting exactly the markup the CSS\ndocuments. The CSS (`css/*.css`)\nstays the only truth: a component never styles anything, it only picks classes\nfrom props. The demo is the gallery (`npm run dev`):\nevery component's stories, live, searchable.\n\nRepo: **https://github.com/everysundays/cardds** (private — this is the\nsource of truth; every consuming project installs the npm package\n`@usableapp/cardds`, never the other way round).\n\n**Wireframe by default** — grayscale with visible outlines. Color is opt-in,\nlives only in one file, applied with one attribute. Two faces ship with it\n(`fonts/`, `css/fonts.css`): PK Nonthaburi for text, FC Pride for headings\nand big numbers — both Thai + Latin, both single-weight demo/non-commercial\nlicences (`fonts/LICENSES.md`).\n\n## Use\n\n```bash\nnpm install\nnpm run dev          # the gallery on http://localhost:5174 — every story, searchable\nnpm run build        # the library: icons → src/type/icons.ts · tsc → dist/ (ESM + .d.ts) · dist/cardds.css (flattened)\nnpm test             # Playwright: the tokens and the step/sheet/centre geometry on tests/fixtures/, the gallery's stories and behaviours\n```\n\n```tsx\nimport { Screen, TopBar, Step, Page, Sheet, SheetBody, CardHead, Field, Pin, ActionBar, Btn } from '@usableapp/cardds';\nimport '@usableapp/cardds/dist/cardds.css';\nimport './theme.css';   // the project's own look, after the system's — see \"A project's theme\"\n```\n\nEvery behaviour is the component's own React code — the `Sheet`'s handle (tap, drag,\nkeyboard) with the focus and on-screen-keyboard raises, the `SheetStack` opening and\nclosing, the `Pin` auto-advance, the `Modal`'s leaving — each controlled like an input\n(`x` + `onXChange`, or `defaultX`). `src/index.ts` imports `cardds.js` for the environment\nonly: the keyboard's height (`--kb`) and `.bleed`'s scrollbar. `Icon` inlines the 61\nsymbols of `icons.svg` at build time, so no sprite file ships.\n\n**The gallery** (`gallery/`, `npm run dev` → http://localhost:5174): Vite + React Router, `cardds`\naliased to `src/`, so the gallery and the package share one truth with no build between them.\n`/` every story of every component, `/:Name` one component — each `.design-sync/previews/<Name>.tsx`\nstory live in a 375×812 phone cell, grouped by `src/<group>/`, searchable; switches for the palette\n(`own` = a colour well per colour base), inspect (box outlines + dimensions), a mock keyboard (focus a field:\nit comes up over the phone cell and publishes `--kb` there — to SEE what a keyboard leaves of the screen; it\ntypes nothing), text size, and a slider per size base. Nothing is hand-listed: add a preview file or a story and it shows.\n\n**On a real phone** — the mock keyboard shows the room a keyboard takes; the REAL one (its kind by `inputMode`: `numeric` /\n`tel` = digits, `email`, `text`; its language is the member's own setting) only shows on a device. The gallery's server is\nopen on the Wi-Fi (`server.host: true`): `npm run dev` prints a `Network:` address — open it on a phone on the same\nWi-Fi. A project using cardds does the same in its own `vite.config` (`server: { host: true }`, or `vite --host`).\nThe iOS Simulator's Safari shows the iOS keyboard too (⌘K if it hides); desktop device modes show none. Installing as a\nPWA needs https — a tunnel (`cloudflared tunnel --url http://localhost:<port>`), then Add to Home Screen. `host: true`\nlets anyone on the same network open the dev server: use it on a network you trust.\n\n`tests/fixtures/*.html` are the pages the geometry tests measure — not a demo. Nothing here is verified by eye.\n\n### In another project\n\n**React (the main way, 2026-09-16):** the package is `@usableapp/cardds` on npm\n(published from a `v*` tag by `.github/workflows/publish.yml`, trusted publishing).\n\n```bash\nnpm i @usableapp/cardds\n```\n\n```tsx\nimport { Card, CardHead, Btn } from '@usableapp/cardds';\nimport '@usableapp/cardds/dist/cardds.css';   // the CSS, fonts resolve from the package\n```\n\n\n**เบราว์เซอร์** (เช็ก 2026-09-24): iPhone ตั้งแต่ **iOS 16.4** (มี.ค. 2023) ขึ้นไป\n\n| เบราว์เซอร์ | ขั้นต่ำ | ออกเมื่อ | เครื่องที่ใช้ได้ |\n|---|---|---|---|\n| Safari / iOS | 16.4 | มี.ค. 2023 | iPhone 8 / X (2017) ขึ้นไป ที่อัปเดตแล้ว |\n| Chrome | 114 | พ.ค. 2023 | Android ส่วนใหญ่ที่ Chrome อัปเดตอยู่ |\n| Firefox | 128 | ก.ค. 2024 | — |\n\niOS 16.4–16.x ไม่มี popover ในตัว — cardds ใส่ `@oddbird/popover-polyfill` มาให้ (ทำงานเฉพาะเครื่องที่ไม่มี)\nเก่ากว่า 16.4: ระยะของ sheet และสีเพี้ยน (`@property`, `color-mix()`) ส่วนเบราว์เซอร์ที่ผ่านขั้นต่ำแต่ยังไม่ใช่รุ่นล่าสุด\nเมนูจะขึ้นกลางจอแทนที่จะอยู่ใต้ปุ่ม\n\nสำหรับโปรเจกต์ที่อยากเช็กเบราว์เซอร์ก่อนเริ่ม (เช่นหน้าติดตั้ง): เช็กเฉพาะฟีเจอร์ที่**จำเป็น**\nตัวอื่น cardds มีตัวสำรองไว้แล้ว ไม่ต้องเช็ก\n\n| จำเป็น: ไม่มีแล้วหน้าจอพัง | วิธีเช็ก |\n|---|---|\n| `@property` | `'registerProperty' in CSS` |\n| `color-mix()` | `CSS.supports('color', 'color-mix(in srgb, red, blue)')` |\n| container queries | `CSS.supports('container-type: size') && CSS.supports('height: 1cqh')` |\n| `:has()` | `CSS.supports('selector(:has(a))')` |\n\nมีตัวสำรองแล้ว ไม่ต้องเช็ก: popover (polyfill), anchor positioning, view transitions, `@starting-style`, `text-wrap`\niOS 16.4–18.2 เช็กผ่าน แต่ยังรองรับไม่เต็ม เมนูขึ้นกลางจอแทนใต้ปุ่ม\n\nWorking with Claude in another project? The `/cardds` skill\n(`~/.claude/skills/cardds/`) carries the install and the contract, and points\nback here. It is deliberately thin — **this repo stays the source of truth**,\nso new components and rule changes go here, and the skill only gets updated\nif the contract itself changes.\n\n### React adapter — how a component is written\n\n`src/<group>/<Name>.tsx`, one export per class family; sub-parts are their own\ncomponents (`CardHead`, `KvRow`, `TrackStep`, `SheetBody`). A component\nchooses classes from props (`tone`, `state`, `primary`, `sm`…) and lays the\ncontract's children in order. A component that has STATE is controlled like an input\n(`state` / `open` / `value` / `flipped` / `selected` + its `on…`, or a `default…` twin), keeps its own behaviour\ninside itself and only ever asks through that callback; it never knows another component — the app wires them\n(2026-09-21; `cardds.js` is down to `--kb`). Never fix a look in a wrapper: fix the CSS, the\nwrapper follows. **Claude Design** builds with these components through\n`/design-sync` (`.design-sync/`: the sync config, the authored preview\nstories, the conventions the design agent reads) — a new component needs a\npreview story there.\n\n## Sheet stack markup\n\nThe sheet stack (`.sheet-stack`, `stack.css` — the menu, see *Anatomy*) is the\none component whose markup has rules, since a sheet's place in the stack comes\nfrom its position among its siblings. A stacked sheet is written as a `.card`:\nthe card is the material, the sheet is what it is in the stack.\n\n```html\n<div class=\"sheet-stack sheet-stack--tap\">   <!-- drop --tap for a static stack -->\n  <article class=\"card card--2\">\n    <div class=\"card__head\">\n      <button class=\"icon-btn icon-btn--sm sheet-stack__back\" aria-label=\"Back\">…</button>\n      <h2 class=\"t-h2 t-caps\">Shopping</h2>\n      <span class=\"icon-row\">…</span>       <!-- optional trailing icons -->\n    </div>\n    …the sheet's own content…\n  </article>\n  <article class=\"card card--3\">…</article>\n  <article class=\"card\">…</article>        <!-- last = the front sheet -->\n</div>\n```\n\n- **Sheets must be direct children** of `.sheet-stack`. Order is the stack\n  order: first = back, last = the front sheet that shows its full content.\n- **`--closed`** (with `--tap`): nothing open on arrival — every sheet, the\n  front one too, peeks at the stack's bottom; the headroom above is the base's.\n  An optional `<div class=\"sheet-stack__base\">` — written AFTER the sheets, so\n  it takes no sheet slot — is what the base shows there, behind every sheet.\n  A tap opens any sheet over it; back drops it home.\n- **Five sheets max.** Slots are declared per `:nth-child` in `stack.css`; a\n  sixth would render at slot 0, on top of the first.\n- **Every head needs its own `.sheet-stack__back`** if the stack is `--tap`. It stays\n  hidden until that sheet is open, then slides into a reserved header slot.\n- **No ids, no wiring.** `SheetStack` holds which sheet is open (`open` + `onOpenChange`, or `defaultOpen`).\n- **`.card-stack` is gone.** That was this component's first name and the wrong\n  one — the members are sheets and the stack is the menu, not a list of cards.\n  Never bring it back, not even as an alias.\n\n## Screen: top · content · bottom\n\n**Every screen is three parts in ONE flex column** (Lh 2026-09-23) — the words used to ask for a screen, and the props\nof `Screen`:\n\n| Part | Prop | What fills it |\n|---|---|---|\n| **top** | `top` | `TopBar` · `AppBar` · `\"lead\"` (no bar: the content starts `--screen-lead`, 15% of the screen, down) |\n| **content** | children | a `Step` (`Pages` · `Page` · `Page` + `Sheet`) · `Centre` · `SheetStack` … |\n| **bottom** | `bottom` | `ActionBar` (rows: `controls` · the one `cta` row — the pager ← → or one wide button · a `ctaLink`) · `FloatBar` · nothing |\n\n```tsx\n<Screen fill top=\"lead\" bottom={<ActionBar variant=\"pager\">…</ActionBar>}>\n  <Step><Pages>…</Pages><PagerAt at={1} of={3} /></Step>\n</Screen>\n```\n\n- **Top and content are one flex column; the bottom is a LAYER** (Lh 2026-09-23). In `Screen fill` the content runs to the\n  screen's bottom edge; the bottom (`ActionBar`, with the walk's `PagerAt` as its first row) lies over it at the foot and\n  covers what is under it — on purpose, nothing is added to the content to make room. The keyboard lifts the layer (`--kb`).\n- **The bar is INSIDE the screen** — `bottom`, never a sibling after `</Screen>`, never pinned with a hand-set `position`.\n  A `FloatBar` in `bottom` floats the same way.\n- **A screen with a `Sheet` has no bottom.** The sheet finishes on its own `CardFoot`; `Screen` warns once when both\n  are there.\n- **Checked:** `validateScreen` (`scripts/validate.mjs`, run on every story and template by\n  `tests/composition.spec.js`) fails a bar after `</Screen>` or a pinned bar, warns on a Sheet + ActionBar.\n- **Templates** are `Screen`s with the three parts filled (`Walkthrough` = top `lead` · content `Pages` · bottom\n  `ActionBar`); the gallery draws those parts on a template's page. The gallery's nav groups the components by\n  the part they fill: *top* · *content* · *bottom*.\n\n## Step markup\n\nA step is one screen, one task (see *Anatomy*). It is the other component\nwhose markup has rules, because the sheet's box is the step itself:\n\n```html\n<!-- reads: the words only -->\n<section class=\"step\">\n  <section class=\"page\">\n    <div class=\"card__head\"><h2 class=\"t-h2\">…</h2></div>\n    <p class=\"t-body\">…</p>\n  </section>\n</section>\n<div class=\"action-bar action-bar--pager\">…</div>   <!-- the screen's bottom: inside .screen, after the step -->\n\n<!-- acts: the words + a sheet -->\n<section class=\"step\">\n  <section class=\"page\">…the words…</section>\n  <article class=\"card sheet sheet--half\">\n    <button class=\"sheet__handle\" type=\"button\" aria-label=\"ปรับความสูง\"></button>\n    <div class=\"card__head\"><h2 class=\"t-h2\">…</h2><span class=\"chip\">…</span></div>\n    <div class=\"sheet__body\">\n      …cardds controls (.field / .pin / .composer / .rows + .check / .segment /\n      .chip-grid), or small content cards (.card--sm)…\n    </div>\n    <div class=\"card__foot\"><button class=\"btn btn--primary btn--block\">…the one button that finishes the sheet…</button></div>\n  </article>\n</section>\n<!-- no .action-bar: a bar is the base's, never in front of a sheet -->\n```\n\n- **`.step` needs a bounded column**: a direct child of `.screen--fill`, or\n  of an app section with a definite height. It is a flex child that fills the\n  column between the top bar's reserve and the bar's, and clips at its own\n  bottom edge — which is what makes the sheet stop above the bar. In a plain\n  scrolling `.screen` it has nothing to fill.\n- **The sheet is full-width; the card keeps the inset.** The step bleeds to\n  the screen's edges (reading `--screen-pad`, as `.sheet-stack` does) and the\n  card takes the inset back as its side margins — so the card and the bar's\n  buttons stand on the inset line, and the sheet runs edge to edge like the\n  bar and like a sheet in a `.sheet-stage`.\n- **`.page` first, `.sheet` last.** The block carries the step's words\n  ON THE BASE — no frame, no area colour (it was a `.card` until 2026-09-16;\n  Lh: a step reads like a page, not a card in a page). It keeps a card's\n  rhythm: a `.card__head`, `--card-gap` between things. The sheet is\n  **handle · head · body**: the handle, then a `.card__head` title row (that\n  row is what `peek` shows — heading left, the contextual thing right), then\n  `.sheet__body` with what the member acts on. The handle and the head are\n  pinned; the body is the one thing that scrolls, to the card's own edges. A\n  sheet with no head (the dim page sheet) is a body alone.\n- **The step follows its top bar directly, and touches it.** `full` means\n  the sheet's top edge at the bar's bottom edge — nothing above it but the\n  bar. So the room the screen would have left between the bar and the step\n  moves inside the step, above the card: `.topbar + .step` cancels the\n  screen's gap (`--screen-gap`), `.appbar + .step` cancels the reserve's\n  breathing (`--header-gap`), and the card takes that room as its lead. A\n  step that follows anything else keeps the screen's gap, and the sheet\n  stops under that thing.\n- **The bar is after the step, inside the screen** (the screen's bottom — *Screen: top · content · bottom*). In a\n  `.screen--fill` the bar is a layer over the content's foot. On a SCROLLING screen (not fill, 0.7.0) the screen is a\n  column at least one phone tall and the bar its last row, `position: sticky` at the viewport's foot (above `--kb`):\n  it stays in reach while the words scroll and sits under them when they end. Either way the bar is written INSIDE\n  the Screen (`bottom`) — a bar after `</Screen>` is an error (`validateScreen`).\n- **Every sheet has one shape** (Lh 2026-09-21): the handle and the head stay at the top and never scroll · the\n  foot's button stands at the bottom — above the keyboard when there is one (`--kb`: a step gives the keyboard\n  its room, a stage sheet gives it up itself as `--_lift`) · everything between them scrolls, as far as it\n  needs to: the body's bottom padding is the part that slid under (`--_cover`), so the last row comes up to\n  the button at half and 3q as it does at full.\n- **Layers: the base, the sheet over it, the top bar** (Lh 2026-09-20). The `.action-bar` belongs to the\n  BASE — the move of a page of words (a pager, or one wide button). It is never in front of a sheet. A\n  screen with a sheet finishes ON the sheet: a `.card__foot`, the sheet's last child — ONE row, the page's\n  conclusion. The foot stands on the screen's bottom edge at half, 3q and full alike (a layer as tall as\n  the sheet, slid up by the share the sheet slid down — `sheet.css`), and is gone at peek. Nothing inside\n  the sheet's body commits on its own (a `Composer` there takes no `send`). This is how cardds's own screens are\n  composed — guidance; the framework does not enforce it: a component never changes because another one is there.\n- **Never write a sheet's height, and never a `.sheet-stage` inside a step.**\n  State is a class (`sheet--peek` / `--half` / `--full`); the sheet is always\n  the step's full height and only slides. In React the APP owns it: `<Sheet state={s}\n  onStateChange={setS}>` (controlled) or `<Sheet defaultState=\"half\">` (it keeps its own). The sheet's own behaviour —\n  the handle's tap and drag, the focus raise, the climb when the keyboard moves the cut — lives in the component and\n  only ever ASKS through `onStateChange(state, reason)`; nothing outside the sheet is touched.\n\n## Centred card markup\n\nOne card at the human centre — the introduction screens, and any screen with\none thing to read and one move. The heading above, the bar below, the card\nbetween at 40% down the screen (see *Anatomy*, \"Where the centre is\"):\n\n```html\n<div class=\"screen screen--fill\">\n  <header class=\"topbar\"><h1 class=\"t-h1\">ธนาคารเวลายินดีต้อนรับ</h1></header>\n  <article class=\"card card--centre\">\n    <div class=\"card__head\"><div><h2 class=\"t-h2\">ปรับขนาดตัวหนังสือ</h2></div></div>\n    <p class=\"t-body\">…</p>\n  </article>\n</div>\n<div class=\"action-bar action-bar--tiers\">\n  <div class=\"action-bar__tier\"><label class=\"slider\"><input class=\"slider__range\" type=\"range\" min=\"100\" max=\"160\" step=\"15\" aria-label=\"ขนาดตัวหนังสือ\"></label></div>\n  <div class=\"action-bar__tier action-bar__tier--pager\">\n    <button class=\"icon-btn\" aria-label=\"ย้อนกลับ\">…</button>\n    <button class=\"icon-btn icon-btn--invert\" aria-label=\"ถัดไป\">…</button>\n  </div>\n</div>\n```\n\n- **The card floats in the fill screen** (`.screen--fill` is its box), hugs its\n  words, keeps the screen's inset, and is capped so it never reaches the title\n  bar above it nor the bar's room below — past that it scrolls inside. Never\n  give it a height; never move it with a margin. The cap is twice the room\n  above the centre (2 × (40% − the title bar)): a card taller than that is\n  not a centred card — it is a plain scrolling `.screen` (the detail view).\n- **A small group at the same centre** — an empty state; a card with its quiet\n  second button and the pager dots under it — is `.screen__centre` (React: `Centre`), a block in the fill\n  screen after the topbar. Same placement and cap; it runs edge to edge with\n  the inset as padding, and stacks its children at the\n  screen's gap. Never hand-lay `top: 40%` on a screen.\n- **The bar is the screen's bottom.** Plain `.action-bar` for one move; with a\n  control that belongs to the screen (a slider), `.action-bar--tiers` stacks a\n  control tier above the buttons (it publishes the taller `--bar-reserve` the centred card still reads for its cap).\n- **The round pager** is `.action-bar--pager` (or an `.action-bar__tier--pager`)\n  holding two `.icon-btn`s and nothing else: they stand at the two edges. The\n  step that commits still goes back to one wide button (rule 3).\n- **Page that moves** (Lh 2026-09-20) — two ways, never both on one screen:\n  - *Pages of words:* `.step > .pages > .page` (one `aria-current=\"step\"`, the rest `inert`) — every page\n    one height, the round pager turns them (`slideTo()`), the words slide like a page. No sheet there.\n    ONE SCREEN TO THE NEXT (a route change) slides the WHOLE screen the same way: `slideScreen(() => navigate(to), 'next' | 'back')`,\n    and `installScreenSlide()` once at app start for the back button (story `Step · WalksOn`). `data-slide=\"off\"` on a Screen = no slide.\n  - *Sheets the app calls:* the base offers WAYS IN — sign in · new phone · join — as buttons (`.cta-pack`); each\n    way has a sheet that holds its WHOLE form and its own submit on its foot, starting `.sheet--away` (not on the\n    screen: slid out, hidden once gone, `inert`). **The wiring is the app's, not cardds's**: a `useState` of which\n    sheet is on and where, each button sets it, each `<Sheet state onStateChange>` reads it — one at a time, the same\n    button raises a peeked sheet, the handle stops at peek (`states=\"peek full\"`). Story `Step · Calls` is those few\n    lines; it could as well be a route, which is what makes the phone's back button close a sheet. CSS's only part:\n    behind a peeked sheet the words keep `--sheet-peek` of room (the box declares the token), so the buttons under\n    it scroll clear.\n    **Never a form taken apart** — one sheet per field, a \"send\" left on the base: a form lives whole in ONE sheet.\n    Fixture `tests/fixtures/calls.html`, tests `tests/calls.spec.js`, stories `Step · Walks` / `Step · Calls`.\n- **A pager turns pages of words, never a screen with a sheet** (Lh 2026-09-20). A\n  sheet means this screen has work that cannot be walked past: no ← →, no bar at all — the sheet's\n  own foot finishes it. (Guidance — not enforced.)\n- A screen is **top · content · bottom** on the base (*Screen: top · content · bottom*). The base is the\n  surface; top and bottom are the chrome above and below (`.topbar` / `.appbar`,\n  `.action-bar` / `.float-bar`); content is everything between.\n- Content has three homes: **on the base**, **in a card**, **in a bottom\n  sheet**. Content normally comes in cards; static data (a blurb, a legal\n  note, help steps) may sit on the base directly.\n- **A card is head · content · foot.**\n  - **Head** (`.card__head`): the heading on the left; hints, actions or a\n    more-menu — the contextual info — at the far right. With nothing at\n    the far right it runs all the way across. The heading wraps freely —\n    no line budget, no squeeze, no clamp (Lh 2026-09-16): a height rule on\n    words only distorts them. The head is FLAT markup — heading, then an\n    optional caption as a span, then the far-right thing; no\n    wrapper element, no `<p>`: the head wraps, the caption takes the row\n    below (`order`), the gap tokens do the rest (Lh 2026-09-16).\n  - **Content**: whatever the card frames — rows, key-values, a gauge, a\n    paragraph. Frameless, per rule 9.\n  - **Foot** (`.card__foot`): the card's action buttons on one line. One\n    button takes the width; up to four share it in even parts; from three\n    on they drop their side padding so the labels keep the room.\n  - In React the head and the foot are the card's **slots**:\n    `<Card heading caption end foot footLink>` with the content as children —\n    the card writes the order (head first, foot last). A head of its own shape\n    is a `<CardHead>` child instead; never both (Lh 2026-09-27).\n- A page with **one feature and one CTA** (an install page, a single\n  decision) may be contained in one card: head, the pitch, foot.\n- **A bottom sheet holds what the member acts on** — controls, or small\n  content cards to pick from or read more — and it opens to the full height\n  of its box. **Cards are content the system offers**: the words, the\n  explanation, the thing to read. Do not put a form in a card when a sheet\n  would do, and do not put the step's explanation in a sheet.\n- **Two sheet systems, one material.** *Sheet single* (`.sheet`, `sheet.css`)\n  is ONE sheet the member acts in, whatever it holds: a short entry in front\n  of a step's card, a place on a map, a payment on a dim page — in a `.step`\n  or a `.sheet-stage`, and its state is how far it slid (peek / half / 3q / full).\n  *Sheet stack* (`.sheet-stack`, `stack.css`) is MANY sheets, each a main\n  section of the app, stacked like paper at the middle of the home screen:\n  the menu. Heads peek, a tap brings one sheet to the front, back returns it;\n  each sheet is the metaphor for the section it opens. Both are cut from the\n  same material — a stacked sheet is written as a `.card`, and the single\n  sheet is `.card.sheet` — and both obey rule 8: rigid, full height, moved\n  by `translate` only. (The stack was first named \"card stack\": wrong, and\n  retired.) See them live in the gallery: `Sheet`, `SheetStack`.\n- **A step is one screen, one task: `.step`.** What the member reads is\n  words on the base (`.page` — the same block as anywhere on the base; it was `.step__card` until 2026-09-16); what the member does, if the step asks for it, is a\n  `.sheet` in front of it; the screen's one move is `.action-bar`, the screen's\n  bottom, after the step. A step where the member only READS is the card alone.\n  A step where the member ACTS (types, picks, shoots a photo, records) adds\n  the sheet: peek shows its handle and title row, half shows half of it,\n  full slides up until its top edge touches the top bar — and at every one\n  of those it stops above the bottom bar, because the step is the box it\n  slides in: it starts where the top bar ends and ends where the bar's room\n  begins. Nobody lays a step out by hand and nobody writes a\n  sheet's height. In short: **member acts → card + sheet, member reads →\n  card.** Markup: *Step markup*. Live: the gallery's `Step` page.\n\n- **Where the centre is.** To the person holding a phone, the bottom fifth of\n  the screen is the thumb's — the bar, the controls — so what is meant to be\n  read sits at the middle of the four fifths above it: **the human centre is\n  40% down the screen, not 50%** (`--screen-centre`, Lh 2026-09-10). A screen\n  with one card and nothing else to read puts it there (`.card--centre`, the\n  introduction screens); a splash puts its mark there.\n\nLive: every screen in the gallery (`npm run dev`).\n\n## Rules of the system\n\n1. **One card = one boundary.** A card frames one thing: a category, a stat\n   group, a list row. Tone slots: `.card` (card-1), `.card--2`, `.card--3`.\n2. **Sections are not cards.** Page sections = frameless on-surface content\n   (`.page`) + a lone/packed CTA (`.cta-pack`).\n3. **Surrounding UI is separate.** `.topbar`, `.filter-row`, `.chip-row`,\n   `.action-bar` live outside cards, above/below. The bottom bar has two\n   arrangements and they mean different things: the default pack (one wide\n   CTA, optional round icon) is **one action** on this screen, and\n   `.action-bar--pager` (two equal buttons at the edges, indicator between)\n   is **a sequence you can walk both ways**. A wide button next to a small\n   round one reads as an action plus an afterthought — wrong whenever back\n   and next are peers. The step that commits goes back to the default pack.\n4. **Components reference role tokens only** (`--surface`, `--card-1-bg`,\n   `--accent`…), never hex. Derived tints are tokens too (`--outline`,\n   `--hairline`, `--ink-tint`, `--ink-rail`, `--accent-soft`, `--scrim`), and\n   masks use `currentColor` as \"opaque\". So palettes swap freely.\n5. **`.screen` carries the horizontal inset and nothing vertical.** The inset\n   is `--screen-pad`; cards and on-surface UI sit flush inside it, with no\n   per-component side padding. Top and bottom are zero: vertical room only\n   is taken by what is in the column. The bottom bar is always the screen's last child (0.7.1 — the bar fixed to\n   the viewport from outside and its reserves are gone): in a `.screen--fill` a layer over the content's foot, on a\n   scrolling screen a `sticky` last row. `--bar-reserve` stays published only for a `.card--centre`'s cap.\n   **Padding is published, not copied.** `.screen` sets `--screen-pad` and\n   `--screen-gap`, its appbar reserve sets `--header-gap`, and `.card` sets\n   `--card-pad` and `--card-gap`; anything that has to cancel a container's\n   padding or gap reads the token rather than repeating its value. `.sheet-stack` uses it to\n   break out full-bleed when the column touches the viewport edges (≤27em /\n   432px), and `.bleed` uses it for a scrolling track inside a card:\n\n   ```html\n   <div class=\"avatar-pick bleed\">…</div>\n   ```\n\n   The track runs to the card's edges so it reads as scrollable, while the\n   first and last item stay on the same line as the heading. Works for any\n   horizontal strip — `.chip-row`, a tile grid — in any container that\n   publishes `--card-pad`.\n6. **The sheet stack is the menu, and a sheet is rigid material.**\n   `.sheet-stack` (`stack.css`) sheets are tall: heads peek (`--stack-step`,\n   up to 5 layers), each head = title + `.icon-row` functions (head text =\n   icon height, 28px). On a `.screen--fill` the stack stretches and bleeds\n   off the bottom edge — bottom corners square. Markup rules: see *Sheet\n   stack markup* above; the two sheet systems: *Anatomy*.\n\n   `.screen--fill` is exactly one phone height — a height, not a minimum, so\n   a `.step` inside it has a bound to fill and its card and sheet scroll inside\n   rather than growing the page — and it clips (`overflow: clip`, never\n   `hidden`): a clipped box is not a scroll container, so nothing, not even\n   the browser revealing a focused field, can shift the screen up.\n\n   In a `.sheet-stack--tap`, a sheet is rigid material — it moves in, moves\n   out, or is covered, but **never changes size**. Every sheet is the same\n   full height, set once; a peek is not a short sheet, it's a full sheet the\n   next one covers. So `translate` is the only animated property, and\n   **z-index is the resting `--level` order and is never touched** — because\n   whatever sits in front of the tapped card is exactly what has to leave.\n   Opening slides the tapped card up by its own `--slot` × `--stack-step`;\n   cards after it move out below (`.is-after`); cards before it tuck one\n   step down, staggered nearest-first via `--stagger` (`.is-before`), and\n   get covered. Closing reverses it in two phases: the after-pack returns\n   while the card drops into its slot, then the before-pack slides back up\n   from behind. Slots, offsets and paint order are all CSS `:nth-child`, so\n   a stack renders correctly with no script; `SheetStack` only sets the\n   state classes. Don't reintroduce height, `display` or z-index switching\n   here — every past bug in this animation came from exactly that.\n7. **Everything shrinks to 320px.** `.screen > *`, `.card` and `.card > *`\n   carry `min-width: 0`, so no child's min-content (an input, a fixed row)\n   can widen a card's grid track past its padding; topbar titles ellipsize;\n   segment items share width. Never give a component a fixed width that can\n   beat the viewport — let it `flex: 1` up to a `max-width` token instead.\n8. **A single sheet is rigid material, like a sheet in the stack.** It is always the full\n   height of the box that holds it (`inset: 0`, set once, never written\n   again) and a state is nothing but how far that full card slid:\n   `sheet--full` slid nowhere, `sheet--3q` slid down by `--sheet-3q` (a\n   quarter of itself — three quarters show), `sheet--half` by `--sheet-half`\n   (50%), `sheet--peek` slid down until only `--sheet-peek` shows — the\n   handle and the title row. A tap on the handle toggles between the sheet's\n   own state and peek (never a step-by-step climb, Lh 2026-09-16); a drag\n   snaps to any listed state, and where it lands is what a tap returns to. `translate` is the only animated property\n   (`--motion-sheet`), and nothing toggles height, display or z-index for a\n   state — the stack's rule, inherited. The box clips whatever slid below its\n   bottom edge, so a sheet at any height is still a card: rounded top, a\n   straight cut at the box's edge — and its shape is handle · head · body:\n   the handle and the title row are pinned, `.sheet__body` scrolls beneath\n   them, and the body's `scroll-padding-bottom` is the slid-under part (in\n   the sheet's own container units, `--_cover`), so a focused control is\n   revealed above the cut, not under it. `--sheet-half` is a share of the\n   sheet's height (`0.5`), one number serving both the translate and that\n   padding. Two boxes hold sheets and the states\n   mean the same in both: `.step` (an app screen — Anatomy)\n   and `.sheet-stage` (a page-level overlay: a sheet over a map, the dim page\n   stage `--dim` + `.modal` = `__lift` + `__drawer` — a sheet always stands on the floor, never raised).\n   A stage keeps the top bar's line free (`--_top`), so `--full` stops under\n   `--header-h` and keeps its corners. Both sheet tokens are published — a\n   sheet with a taller head retunes `--sheet-peek` — and registered in\n   `tokens.css`, which is how `Sheet` reads them to snap a drag. Live: the\n   gallery's `Sheet` page.\n9. **Elements inside a card are frameless.** Rows, key-values, pickers,\n   gauges and tiles never draw a second card boundary; hairlines\n   (`--hairline`) separate rows, `--outline` keeps controls legible on\n   colored palettes. Data goes in as unitless custom properties\n   (`--value`, `--done`, `--total`); the math lives in CSS.\n10. **The dark slot re-points the accent.** `.card--3` sets `--accent` /\n    `--on-accent` to its own ink and bg, so every accent consumer (buttons,\n    checks, toggles, rings, selected days) inverts without extra rules.\n\n**A screen is scanned, not read** (Lh 2026-09-24) — a member arrives with one\nquestion and hunts for its answer. Rules 11–13 serve that:\n\n11. **Everything holds to edges.** Every element touches at least two edges —\n    the card's, the column's, or a line made by the thing above it (a row, the\n    avatar + name line). Words to READ are aligned start, values end (the\n    receipt: items left, prices right; `.card__head`, `.kv`, `.row`); centred\n    only what is not read — dots, a lone number, an icon, a mark. Empty room is\n    not filled with more content; a new edge is made instead (line the buttons\n    up with the avatar).\n12. **Show, don't explain.** Where a known picture carries it — an avatar for a\n    person, an icon, a `Ring`/`Track`/`Band`, a `Chip` for a category — use it\n    instead of words. Never add a label, a caption line, a comparison or a\n    tooltip to explain what the picture already says (the retired overline was\n    that mistake). Long lists are differentiated, not spaced out: group them\n    (`Rows heading` per group), put the avatar where a person is named.\n13. **Emphasis is the difference from the neighbours.** An untouched default\n    is quiet (grey, thin border, no fill — `Chip muted`, `Dropdown muted`);\n    only what the member changed, or the one thing asked of them, takes the\n    accent. To make one thing stand out, calm what surrounds it — never\n    bolder, never a second colour.\n14. **A frame says \"tap me\".** Inside a card, only a control draws its own\n    edge (a chip, a field, a pick tile, a small `Card sm` to pick). What is\n    only READ never gets a frame — no card in a card: a stat tile stands on\n    the card's ground, a note is a `Banner` (a light band, a rule above and\n    below, edge to edge), a count is words (`Text caption muted`), never a\n    chip. A chip or tile that looks pressable and is not lies.\n\n## A project's theme\n\nA project retunes cardds from ONE file of its own, and nothing else. Copy\n`css/theme.template.css` into the project as `theme.css`, load it **after**\n`cardds.css`, change values:\n\n```css\n:root {\n  --sp-base: 0.3rem;   /* roomier */\n  --r-base: 0.5rem;    /* tighter corners */\n  --color-surface: #faf6ee;  --color-ink: #1f1b16;  --color-paper: #fff;\n  --color-brand: #c2410c;    --color-on-brand: #fff;\n}\n```\n\n```html\n<html data-palette=\"own\">   <!-- colours of your own = coloured mode; any value no stock palette uses -->\n```\n\nThat file is where a project's look lives. Bases and roles:\n\n| what | tokens | moves |\n|---|---|---|\n| room **between** things | `--sp-base` (0.25rem = 4) | every `--sp-N` = base × N → paddings, gaps, the screen's inset, the bar's reserve, the sheet's peek |\n| type | `--fs-base` (1.375rem = 22 — the body) | every `--fs-*`, `--badge`, `--icon-xs` |\n| corners | `--r-base` (1rem = 16) | every `--r-*`; `0` = square. `--r-chip` stays fully round |\n| the size **of** things | `--tap-base` (3rem = 48) | `--tap*`, `--btn-h`, `--chip-h`, `--bar-h`, `--header-h`, `--fab`, `--icon*`, `--avatar*`, `--dot*`, `--ring*`, `--tile-*`. `--tap*` never under `--tap-floor` (44px) |\n| faces | `--font-ui`, `--font-display` | |\n| colour | `--color-surface`, `--color-ink`, `--color-paper`, `--color-brand`, `--color-on-brand` — no default: unset = the wireframe | every role: surface / words, the three card tones (paper · the brand washed 14% into the surface · the brand), the muted inks (the ink washed into their ground), accent, neutral actions, `--dot-a` |\n| colour roles (the escape hatch) | `--surface`, `--on-surface(-muted)`, `--card-{1,2,3}-{bg,ink}`, `--card-border`, `--card-muted`, `--card-2-muted`, `--accent`, `--on-accent`, `--action-{bg,ink,border}`, `--pos`, `--neg`, `--dot-{a,b}` | a role set directly wins over its derivation; the tints derive from the roles |\n\nRules:\n\n- **Three levels, widest first — use the widest that says what you mean.**\n  1. a **base** moves a whole family (`--sp-base`, `--fs-base`, `--r-base`, `--tap-base`, the five `--color-*`): the system keeps its proportions.\n  2. a **role / root token** moves one meaning everywhere (`--accent`, `--card-1-bg`, `--btn-h`, `--chip-h`, `--header-h`, `--screen-w`, `--motion-sheet`…).\n  3. a **knob** moves ONE component (`--btn-pad-x`, `--chip-bg`, `--icon-btn-size`, `--appbar-pad-x`…) — on `:root` for everywhere, or on any element for\n     the components inside it. A knob is declared nowhere; its default is the fallback in the rule. The full list is generated from the CSS:\n     [`docs/knobs.md`](docs/knobs.md) (`npm run knobs`). Missing the knob you need? That is a gap in cardds — report it; it is added as a knob, never as your special case.\n- **Never a multiplier, never a step of the scale** (`--sp-4`, `--fs-h1`, `--r-card` — retune the base, or the component's knob), never a private\n  (`--_*`) or a published value (`--card-pad`, `--bar-reserve`, `--sheet-*`: other rules do arithmetic with them).\n- **On `:root` only.** The derived tokens are computed where they are declared\n  (`:root`), so a base set on a subtree does not reach them.\n- **After `cardds.css`.** A stock palette's block and a project's `:root` weigh\n  the same; the later file wins.\n- **Coloured mode is the attribute.** `data-palette`, whatever its value, is what\n  trades the wireframe's borders for the card's shadow and the controls' soft\n  edge (`palette.css`, `forms.css`). Colours of your own → `<html data-palette=\"own\">`.\n  Without it the colours still apply, on wireframe borders.\n- **cardds does not judge the colours.** No contrast check, no warning — a\n  theme's values are the project's call. The derivations are only starting points;\n  any role can be set outright.\n- The member's text-size setting is the same `--fs-base`, written on `<html>`\n  at run time by `setTextScale(percent)` (a share of the theme's base; 100 = the\n  theme's own): the words grow, the things keep their size. (`--text-scale`, which multiplied the root and zoomed the UI too, is gone.)\n\nTry it live: the gallery's nav (`npm run dev`) has a slider per size base, and\npalette `own` shows a colour well per colour base.\n`tests/tokens.spec.js` holds the defaults to the px they always were and the\ntemplate to the defaults; the step / centre geometry runs at two extreme\nthemes (`tight`, `loose`).\n\n## New palette\n\nCopy any block in `palette.css`, rename, retune:\n\n```css\n[data-palette=\"mine\"] {\n  --surface: …; --on-surface: …;\n  --card-1-bg: …; --card-1-ink: …;   /* + card-2, card-3 */\n  --accent: …;  --on-accent: …;\n  --action-bg: …; --action-ink: …;\n}\n```\n\n## Scale: everything is rem\n\nEvery length token resolves to rem — a multiplier × one of four rem bases\n(`--sp-4` = `--sp-base` × 4 = 1rem, `--tap` = `--tap-base` = 3rem, `--r-card` =\n`--r-base` × 2, `--fs-h1` = `--fs-base` × 1.2; see \"A project's theme\") — so the\nwhole system scales with the root font size. `base.css` keeps it at `100%` (the browser's setting, 16px by\ndefault) and steps narrow phones (≤360px) to `93.75%`, which keeps the 25rem\ncolumn, its 48px taps and its type in proportion on 320–360 screens. Only\n`--border-w`, `--rule-w` and the focus ring stay in px, so edges stay crisp.\nAn app with its own text-size setting calls `setTextScale(percent)`, which writes\n`--fs-base` on `<html>` from the theme's base (100% = the theme's; 160% = 2.2rem by default): only the type and its holders (the count\nbadge, the inline icon) grow; taps, spacing and radii keep their size.\nComponents never write a raw length: spacing from `--sp-*`, control sizes from\n`--tap`, `--tap-lg`, `--btn-h`, `--bar-h`, `--header-h`, `--fab`, `--badge`, container\npadding from `--screen-pad` / `--card-pad`, radii from\n`--r-*`, type from `--fs-*` / `--type-*`. Data (progress, counts) enters as\nunitless custom properties. One measured length comes from script: `--kb`,\nthe height an on-screen keyboard covers, published on `:root` by `cardds.js`\nfrom the visual viewport — as a px length, since only the browser knows it,\nso no component ever writes `px` to consume it (`.action-bar` rides up by it,\n`.step` grows its room by it). The narrow-phone step is an `em` breakpoint,\nso it follows the text size too: at 131% a 390px phone counts as narrow.\n\n## Icons & touch targets\n\nIcons come from `icons.svg` (Lucide, ISC — monochrome stroke, currentColor):\n\n```html\n<svg class=\"icon\" aria-hidden=\"true\"><use href=\"icons.svg#bell\"/></svg>\n```\n\n`.icon` = `--icon` (1.75rem / 28px), `.icon--xs` = 1rem inside captions and chips,\n`.icon--lg` = 2rem for empty states. Never raw emoji/unicode glyphs — they\nrender as colored emoji on phones. Add icons by appending `<symbol>`s\n(grab from lucide.dev, paste path data).\n\nTouch targets: `--tap` 3rem (`.icon-btn`), `--tap-sm` 2.75rem floor (`.icon-btn--sm`,\nselects, add-row), `--tap-lg` 3.5rem for hero controls. `.btn` ≥ `--btn-h` (3.25rem).\nEverything thumb-first.\n\nThe two bars across the top of a screen — `.topbar` (screen title) and\n`.appbar` (app context) — share one rule and one floor, `--header-h` (3.75rem /\n60px), so a title-only bar stands as tall as one carrying an icon button, a\ndropdown or a `.btn`. `.screen` reserves its top padding from the same token.\n`.topbar__actions` takes at most TWO controls (Lh 2026-09-22): a third and beyond\nis not drawn (`TopBar` warns once) — more moves go in a `Menu` behind one button.\n\n## Typography levels\n\n`t-display` 34–42/800 · `t-h1` 28 · `t-h2` 22 · `t-title` 17 · `t-body` 15 ·\n`t-label` 13 · `t-caption` 12 · `t-stat` big tabular\nnumbers (`t-stat--mono`, `t-stat--xl`). Pixel values are at the default root;\neach is an `--fs-*` rem token. Swap `--font-display` per app for character.\n","readmeFilename":"README.md"}