1d2130f279
Publish to NPM / Check version changes and publish (push) Successful in 11m33s
Consuming the package under `verbatimModuleSyntax` + `strictTemplates` surfaced four defects that forced workarounds downstream. - Drop the deprecated `SelectValue` string alias. It collided with the `SelectValue` component exported from the same barrel, so the component resolved to the type meaning and could not be imported (TS1484). - Narrow the select's model to `SelectModelValue<T, Multiple>` and make `TabsRoot` generic over its value, so a plain `v-model` on a `Ref<string>` type-checks. Both roots declare the value prop and emit explicitly instead of via `defineModel`, which would widen the payload with `| undefined` even though neither control ever clears its value. - Stop declaring `defineModel` keys in `defineEmits` as well. The duplicate erased the payload type from the generated declarations, shipping `(...args: unknown[]) => any` for eleven components' model events. - Let every part accept global DOM attributes (`id`, `role`, `aria-*`, `data-*`, ...) through `PrimitiveAttributes`. The heritage clause is marked `@vue-ignore`, so they stay out of the runtime props and keep falling through via `$attrs` exactly as before. - Give `SelectContent` and `SelectViewport` a single styleable root: the content forwards `$attrs` onto the panel, and the viewport's scrollbar CSS moves to a reference-counted `<head>` style tag. A forwarded `class` was previously dropped, leaving the panel unstyled. The tsconfig vue preset gains `htmlAttributes: ["aria-*", "data-*"]` so hyphenated data attributes are not camelized before they reach those types. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
85 lines
1.9 KiB
JSON
85 lines
1.9 KiB
JSON
{
|
|
"name": "@robonen/primitives",
|
|
"version": "0.0.3",
|
|
"license": "Apache-2.0",
|
|
"description": "Collection of UI primitives",
|
|
"keywords": [
|
|
"ui",
|
|
"primitives",
|
|
"components",
|
|
"tools"
|
|
],
|
|
"author": "Robonen Andrew <robonenandrew@gmail.com>",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "git+https://github.com/robonen/tools.git",
|
|
"directory": "vue/primitives"
|
|
},
|
|
"packageManager": "pnpm@11.18.0",
|
|
"engines": {
|
|
"node": ">=24.16.0"
|
|
},
|
|
"type": "module",
|
|
"sideEffects": false,
|
|
"files": [
|
|
"dist"
|
|
],
|
|
"exports": {
|
|
".": {
|
|
"import": {
|
|
"types": "./dist/index.d.mts",
|
|
"default": "./dist/index.mjs"
|
|
},
|
|
"require": {
|
|
"types": "./dist/index.d.cts",
|
|
"default": "./dist/index.cjs"
|
|
}
|
|
},
|
|
"./*": {
|
|
"import": {
|
|
"types": "./dist/*/index.d.mts",
|
|
"default": "./dist/*/index.mjs"
|
|
},
|
|
"require": {
|
|
"types": "./dist/*/index.d.cts",
|
|
"default": "./dist/*/index.cjs"
|
|
}
|
|
}
|
|
},
|
|
"scripts": {
|
|
"lint:check": "eslint .",
|
|
"lint:fix": "eslint . --fix",
|
|
"test": "vitest run",
|
|
"bench": "vitest bench",
|
|
"dev": "vitest dev",
|
|
"build": "tsdown"
|
|
},
|
|
"devDependencies": {
|
|
"@robonen/eslint": "workspace:*",
|
|
"@robonen/tsconfig": "workspace:*",
|
|
"@robonen/tsdown": "workspace:*",
|
|
"@vitest/browser": "catalog:",
|
|
"@vitest/browser-playwright": "^4.1.10",
|
|
"@vue/test-utils": "catalog:",
|
|
"axe-core": "^4.12.1",
|
|
"eslint": "catalog:",
|
|
"playwright": "^1.62.0",
|
|
"tsdown": "catalog:",
|
|
"unplugin-vue": "^7.2.0",
|
|
"vitest-browser-vue": "^2.1.0",
|
|
"vue": "catalog:",
|
|
"vue-tsc": "^3.3.8"
|
|
},
|
|
"dependencies": {
|
|
"@floating-ui/vue": "^2.0.1",
|
|
"@robonen/encoding": "workspace:*",
|
|
"@robonen/platform": "workspace:*",
|
|
"@robonen/stdlib": "workspace:*",
|
|
"@robonen/vue": "workspace:*",
|
|
"@vue/shared": "catalog:"
|
|
},
|
|
"peerDependencies": {
|
|
"vue": "^3.5"
|
|
}
|
|
}
|