{"_id":"@booga/vdsl","_rev":"6-49787aa8a886ed530643daf87722520e","name":"@booga/vdsl","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@booga/vdsl","version":"0.1.0","author":{"name":"bvasilenko"},"license":"MIT","_id":"@booga/vdsl@0.1.0","maintainers":[{"name":"dreaktor","email":"me@dreaktor.com"}],"dist":{"shasum":"d01fa59d65da419ee3fd200e39873385d518e922","tarball":"https://registry.npmjs.org/@booga/vdsl/-/vdsl-0.1.0.tgz","fileCount":10,"integrity":"sha512-O+/6TotB37vXQkuYvOOkvk4x5Ju55M0xbOx4v44SN8gQnyqw54gdGMUTiyWwVpX4z3MF4EjLy5TYBefOQ4ftxQ==","signatures":[{"sig":"MEQCICEIgz4nuamNyLaaJAL5UqJUSUnPJU9WE7MbdUovIIUyAiBD61fGOdcd0UQoOqkhUFRyg5O70aSRMj9JNpe51QxTQw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71681},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"1825d0a1e098ac2d1f84eb054ff61c1981fe3463","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run --coverage","build":"tsup","typecheck":"tsc --noEmit","test:types":"tsd --files tests/types.test-d.ts","test:watch":"vitest"},"_npmUser":{"name":"dreaktor","email":"me@dreaktor.com"},"deprecated":"Missing refined resolve+schema; use 0.1.1+","_npmVersion":"10.9.3","description":"Prop DSL for typed UI composition. Space, color, variant, size tokens compile to Tailwind classes at render time; same props emit data-class attributes for SSG semantic rewrite.","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.0.0","@booga/vui":"^0.1.0","@booga/vtheme":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.0","tsup":"^8.0.0","jsdom":"^25.0.0","react":"^18.0.0","eslint":"^9.0.0","vitest":"^2.1.0","globals":"^15.0.0","react-dom":"^18.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","typescript-eslint":"^8.0.0","@vitejs/plugin-react":"^4.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.0.0","@vitest/coverage-istanbul":"^2.1.9"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vdsl_0.1.0_1778518328064_0.3265548598660992","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@booga/vdsl","version":"0.1.1","author":{"name":"bvasilenko"},"license":"MIT","_id":"@booga/vdsl@0.1.1","maintainers":[{"name":"dreaktor","email":"me@dreaktor.com"}],"dist":{"shasum":"9f14107e2b55302d9a734c80b8f6cfb970dcec13","tarball":"https://registry.npmjs.org/@booga/vdsl/-/vdsl-0.1.1.tgz","fileCount":10,"integrity":"sha512-4AQJZ0Ws+fZU6Dm7Hqv3m6T3BYPKyMttkJBsihBX8kOwzBrjjJZuN2ktJFhXisHfGxZjWX1olTSNwApyjS7UvQ==","signatures":[{"sig":"MEYCIQCsR0ITbu2L76m6k1bDrDJKpwp/YZhfJUK2RlBGwxyDaAIhAO3qsZGv8VhMj7Y86ZfT1w/l9pd7m63MRb1UVx5iG1lG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72833},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"39d314e3b2ac6d5c2f09e40cdb760b6069f96bad","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run --coverage","build":"tsup","typecheck":"tsc --noEmit","test:types":"tsd --files tests/types.test-d.ts","test:watch":"vitest"},"_npmUser":{"name":"dreaktor","email":"me@dreaktor.com"},"_npmVersion":"10.9.3","description":"Prop DSL for typed UI composition. Space, color, variant, size tokens compile to Tailwind classes at render time; same props emit data-class attributes for SSG semantic rewrite.","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.0.0","@booga/vtheme":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.0","tsup":"^8.0.0","jsdom":"^25.0.0","react":"^18.0.0","eslint":"^9.0.0","vitest":"^2.1.0","globals":"^15.0.0","react-dom":"^18.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","typescript-eslint":"^8.0.0","@vitejs/plugin-react":"^4.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.0.0","@vitest/coverage-istanbul":"^2.1.9"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vdsl_0.1.1_1778518831541_0.533134509209281","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@booga/vdsl","version":"0.2.0","author":{"name":"bvasilenko"},"license":"MIT","_id":"@booga/vdsl@0.2.0","maintainers":[{"name":"dreaktor","email":"me@dreaktor.com"}],"dist":{"shasum":"965070bc42886ac404723337b4f4b94277066d27","tarball":"https://registry.npmjs.org/@booga/vdsl/-/vdsl-0.2.0.tgz","fileCount":10,"integrity":"sha512-Kq5c95ORD13Jvmjmdcnr2RQUSbkXuxD5u9gyXto2WyxJ10FiBFsw97p3RqKmy2hLk6o4lY6UsoJs6hU7q94wnw==","signatures":[{"sig":"MEQCIBI7xYnZcjB8UQwAjLXEg6TnAyY78vgpJLiaun4CwczIAiAT1zR14GliKJ4zlHKPA6rGG5rCmGV00H4RxdjDL/q7Mw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86911},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"4113cb3ebfdcec3fa9e5618d250a0629f71f6a6d","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run --coverage","build":"tsup","typecheck":"tsc --noEmit","test:types":"tsd --files tests/types.test-d.ts","test:watch":"vitest"},"_npmUser":{"name":"dreaktor","email":"me@dreaktor.com"},"_npmVersion":"10.9.3","description":"Prop DSL for typed UI composition. Space, color, variant, size tokens compile to Tailwind classes at render time; same props emit data-class attributes for SSG semantic rewrite.","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.0.0","@booga/vtheme":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.0","tsup":"^8.0.0","jsdom":"^25.0.0","react":"^18.0.0","eslint":"^9.0.0","vitest":"^2.1.0","globals":"^15.0.0","react-dom":"^18.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","typescript-eslint":"^8.0.0","@vitejs/plugin-react":"^4.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.0.0","@vitest/coverage-istanbul":"^2.1.9"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vdsl_0.2.0_1779119132142_0.463152387024095","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@booga/vdsl","version":"0.2.1","author":{"name":"bvasilenko"},"license":"MIT","_id":"@booga/vdsl@0.2.1","maintainers":[{"name":"dreaktor","email":"me@dreaktor.com"}],"dist":{"shasum":"1dd68ed7d8e789dcad1b48bff471e5a134bb7879","tarball":"https://registry.npmjs.org/@booga/vdsl/-/vdsl-0.2.1.tgz","fileCount":10,"integrity":"sha512-txPSzy71vaCRcRnzMwTsPZ38SeE4tb9G8NUvp25p1xs6DvALciGznK/uvBykWHz4/sRJ/zx7OmWhggvvnZgXHw==","signatures":[{"sig":"MEUCIBklt8vAQWc5oK/7kheKd48PuL9N6TV3rnISCl0d3LKzAiEA/M3cczdHPlqAU49NIs8gizpm7ogzx2EfHD1NCvZW1rI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87268},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"95a89375c9f5e7e6d62a01f4009d9458e594ff68","scripts":{"dev":"tsup --watch","lint":"eslint .","test":"vitest run --coverage","build":"tsup","typecheck":"tsc --noEmit","test:types":"tsd --files tests/types.test-d.ts","test:watch":"vitest"},"_npmUser":{"name":"dreaktor","email":"me@dreaktor.com"},"_npmVersion":"10.9.3","description":"Prop DSL for typed UI composition. Space, color, variant, size tokens compile to Tailwind classes at render time; same props emit data-class attributes for SSG semantic rewrite.","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsd":"^0.31.0","tsup":"^8.0.0","jsdom":"^25.0.0","react":"^18.0.0","eslint":"^9.0.0","vitest":"^2.1.0","globals":"^15.0.0","react-dom":"^18.0.0","@eslint/js":"^9.0.0","typescript":"^5.0.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","typescript-eslint":"^8.0.0","@vitejs/plugin-react":"^4.0.0","@testing-library/react":"^16.0.0","@testing-library/jest-dom":"^6.0.0","@vitest/coverage-istanbul":"^2.1.9"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/vdsl_0.2.1_1779131550836_0.7628799902944412","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@booga/vdsl","version":"0.3.0","description":"Prop DSL for typed UI composition. Space, color, variant, size tokens compile to Tailwind classes at render time; same props emit data-class attributes for SSG semantic rewrite.","type":"module","sideEffects":false,"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit","lint":"eslint .","test":"vitest run --coverage","test:watch":"vitest","test:types":"tsd --files tests/types.test-d.ts"},"dependencies":{"zod":"^3.0.0"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"devDependencies":{"@eslint/js":"^9.0.0","@testing-library/jest-dom":"^6.0.0","@testing-library/react":"^16.0.0","@types/react":"^18.3.0","@types/react-dom":"^18.3.0","@vitejs/plugin-react":"^4.0.0","@vitest/coverage-istanbul":"^2.1.9","eslint":"^9.0.0","globals":"^15.0.0","jsdom":"^25.0.0","react":"^18.0.0","react-dom":"^18.0.0","tsd":"^0.31.0","tsup":"^8.0.0","typescript":"^5.0.0","typescript-eslint":"^8.0.0","vitest":"^2.1.0"},"publishConfig":{"access":"public"},"license":"MIT","author":{"name":"bvasilenko"},"_id":"@booga/vdsl@0.3.0","gitHead":"70b8f6bf1f9e6318047080e859434343fa17d536","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-lqbgg9wrOaSpGeovDQ1Esbgdrg+wIo+xOMgDHNL0QG3YVLMfB3x8mP5SHz7oxdSRbpHDwXTg0IUwYQzztVHQDw==","shasum":"d51e205cc3e2e278d5e05d62aca6fba5bd31987e","tarball":"https://registry.npmjs.org/@booga/vdsl/-/vdsl-0.3.0.tgz","fileCount":10,"unpackedSize":122601,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDVE1gUWkQy2Rhv9SIanN41Ja+K1F0ufUD3IUm2nmV+BAiBZIfdPwhKP6EPhEm5kGIdmkCZFV5xTVPHxgAQN/Ia91w=="}]},"_npmUser":{"name":"dreaktor","email":"me@dreaktor.com"},"directories":{},"maintainers":[{"name":"dreaktor","email":"me@dreaktor.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vdsl_0.3.0_1780313841698_0.16005276290861614"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-11T16:52:07.983Z","modified":"2026-06-01T11:37:21.946Z","0.1.0":"2026-05-11T16:52:08.210Z","0.1.1":"2026-05-11T17:00:31.698Z","0.2.0":"2026-05-18T15:45:32.284Z","0.2.1":"2026-05-18T19:12:31.005Z","0.3.0":"2026-06-01T11:37:21.822Z"},"author":{"name":"bvasilenko"},"license":"MIT","description":"Prop DSL for typed UI composition. Space, color, variant, size tokens compile to Tailwind classes at render time; same props emit data-class attributes for SSG semantic rewrite.","maintainers":[{"name":"dreaktor","email":"me@dreaktor.com"}],"readme":"# vDsl\n\nProp DSL for typed UI composition. Components accept utility-class props (`p={2} mt={4} variant=\"primary\"`); props compile to Tailwind class strings at render time. Same source emits `data-class` attributes for SSG semantic rewrite. Type-safe at authoring; runtime-validated via Zod; zero runtime overhead beyond a sorted string lookup.\n\n## Install\n\n```sh\nnpm install @booga/vdsl\n```\n\n## Usage\n\n```ts\nimport { dsl, resolveClasses, extractDataClass, dslSchema } from \"@booga/vdsl\";\n\n// Wrap any React component\nconst DslBox = dsl(Box);\n<DslBox p={2} m={4} display=\"flex\" align=\"center\" />\n// → className=\"flex items-center m-4 p-2\" data-class=\"flex items-center m-4 p-2\"\n\n// Pure class resolution (no React)\nresolveClasses({ p: 2, m: 4 }); // [\"m-4\", \"p-2\"]\n\n// SSG attribute extraction\nextractDataClass({ p: 2 }); // { \"data-class\": \"p-2\" }\n\n// Runtime validation\ndslSchema.parse({ p: 5 }); // throws  -  5 not in SpaceToken union\n```\n\n## Space tokens\n\n`0 | 1 | 2 | 3 | 4 | 6 | 8 | 12 | 16 | 24 | 32`\n\nProps: `p m pt pr pb pl px py mt mr mb ml mx my gap`\n\n## Color tokens\n\n`bg fg muted accent destructive success warning` (from vTheme color scale, resolved as CSS variables)\n\n## Variant tokens\n\n`default primary secondary destructive ghost outline link`\n\n## Size tokens\n\n`sm md lg icon`\n\n## Display tokens\n\n`block flex grid inline inline-flex inline-grid hidden`\n\n## Flex tokens\n\n`align`: `start center end stretch baseline`  \n`justify`: `start center end between around evenly`\n\n## Typeface tokens\n\n`typeface`: `sans serif mono` (resolves to `font-sans`, `font-serif`, `font-mono`; aligns with vTheme 0.3.0's `--v-font-*` token surface)\n\n## Tone tokens\n\n`tone`: `ok warn bad info meta` (resolves to a paired `bg-tone-<t>-bg` + `text-tone-<t>-fg` class set; aligns with vTheme 0.3.0's 15-slot tone palette)\n\n## Tracking tokens\n\n`tracking`: `tight normal wide` (resolves to `tracking-tight`, `tracking-normal`, `tracking-wide`; aligns with vTheme 0.3.0's `--v-tracking-*` tokens)\n\n## Semantic-kind tokens\n\n`semanticKind`: `kicker eyebrow lead brand-mark engagement-tag` (the proposal-html section-vocabulary roles). This is a SEMANTIC prop, not a styling prop: it emits a `data-semantic-kind=\"<value>\"` attribute in parallel with a `vkind-<value>` className. Concrete geometry is supplied by a downstream styling layer (vUi primitives, vBlocks section renderers, brand-emitted stylesheets).\n\n## License\n\nMIT © 2026 bvasilenko\n\nFor code of conduct, see https://www.contributor-covenant.org/version/2/1/code_of_conduct/\n","readmeFilename":"README.md"}