8aea881ffa
* feat(components): scaffold @vue-tui/components with spinner preset data New private package (0.0.0) for high-level components composed from runtime primitives. Ships the dots/line preset data + a pure resolveSpinner() with edge-guards (empty frames / unknown type → dots; interval threads both modes), fully unit-tested incl. a width-safety guard (string-width === 1 per frame). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(components): add the Spinner component Spinner is a <Text> + useAnimation pure composition: `type` selects an inline preset (dots/line), `frames`/`interval` is the escape hatch, and it always animates (no interactivity gate — there is no public signal; matches Ink). Renders a visible glyph non-interactively. Typed props via ExtractPublicPropTypes. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat(components): Spinner color + label `color` tints the glyph only (label stays default, matching ora/@inkjs/ui); `label` renders after the glyph with a separating space (interpolated so Vue whitespace-condense keeps it). Two <Text> spans share an outer <Text> context so they render inline on one line rather than stacking vertically. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore(components): add @vue-tui/components to the CI task graph Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(components): record Spinner decisions Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(components): refresh package status and clarify ink-spinner parity note The design-principles status blockquote said the package was 'planned' with no code yet; this branch ships Spinner, so mark it active. Also reword the spinner Behavior note to name the third-party ink-spinner explicitly and soften it to an unverified, un-run-checked observation. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(readme): list @vue-tui/components + <Spinner> Add the new package to the hero line + Packages table, and <Spinner> to the Components table. Marked "New; early". Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(readme): give @vue-tui/components its own section Move <Spinner> out of the runtime Components table into a separate "High-level Components" section so the package's API surface stays decoupled from the runtime primitives. Add a ToC entry. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(readme): drop the "New; early" status tag for @vue-tui/components Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
40 lines
959 B
JSON
40 lines
959 B
JSON
{
|
|
"name": "@vue-tui/components",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"description": "High-level Vue components for vue-tui, composed from @vue-tui/runtime primitives.",
|
|
"license": "MIT",
|
|
"files": [
|
|
"dist"
|
|
],
|
|
"type": "module",
|
|
"exports": {
|
|
".": "./dist/index.mjs",
|
|
"./package.json": "./package.json"
|
|
},
|
|
"scripts": {
|
|
"build": "vp pack",
|
|
"dev": "vp pack --watch",
|
|
"test": "vp test",
|
|
"check:type": "vue-tsc --noEmit"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^25.6.2",
|
|
"@vitejs/plugin-vue-jsx": "catalog:",
|
|
"@vue-tui/runtime": "workspace:*",
|
|
"@vue-tui/testing": "workspace:*",
|
|
"chalk": "catalog:",
|
|
"string-width": "catalog:",
|
|
"strip-ansi": "catalog:",
|
|
"typescript": "^6.0.3",
|
|
"unplugin-vue": "catalog:",
|
|
"vite-plus": "catalog:",
|
|
"vue": "^3.4.0",
|
|
"vue-tsc": "catalog:"
|
|
},
|
|
"peerDependencies": {
|
|
"@vue-tui/runtime": "workspace:*",
|
|
"vue": "^3.4.0"
|
|
}
|
|
}
|