Block a user
@phoenix-tekhne/vue-tupos (0.2.0)
Published 2026-05-28 07:22:41 -07:00 by dmonphx
Installation
@phoenix-tekhne:registry=https://gitrepo.cstudiosinc.com/api/packages/dmonphx/npm/npm install @phoenix-tekhne/vue-tupos@0.2.0"@phoenix-tekhne/vue-tupos": "0.2.0"About this package
@phoenix-tekhne/vue-tupos
Vue 3 UI components for the Phoenix Tekhne Design System, built on vue-dynamis.
Overview
Tupos (τύπος - "type/form" in Greek) provides foundational UI components for building Vue 3 interfaces. All components are built on top of the Phoenix Tekhne Dynamis headless system, providing:
- Full accessibility (ARIA attributes, keyboard navigation)
- State management and validation
- Multi-framework compatibility patterns
Architecture
@phoenix-tekhne/vue-tupos
│
│ uses
▼
@phoenix-tekhne/vue-dynamis (Vue 3 composables)
│
│ built on
▼
@phoenix-tekhne/dynamis-core (state machines)
Components
Phase 1 Components
| Component | Purpose | Dynamis Composable | Import |
|---|---|---|---|
Button |
Primary interaction component | useProskrousis |
@phoenix-tekhne/vue-tupos |
Card |
Content container | - | @phoenix-tekhne/vue-tupos |
Input |
Form text input | useLexisField |
@phoenix-tekhne/vue-tupos |
Table |
Data table for HR lists | - | @phoenix-tekhne/vue-tupos |
Modal |
Dialog/overlay | useProskalesthai |
@phoenix-tekhne/vue-tupos |
Select |
Dropdown select | useEpilipsis |
@phoenix-tekhne/vue-tupos |
Badge |
Status indicators | - | @phoenix-tekhne/vue-tupos |
Installation
npm install @phoenix-tekhne/vue-tupos @phoenix-tekhne/vue-dynamis
Usage
Basic Example
<script setup lang="ts">
import { ref } from 'vue';
import { Button, Card, Input, Modal, Badge } from '@phoenix-tekhne/vue-tupos';
const isModalOpen = ref(false);
const email = ref('');
</script>
<template>
<Card>
<template #title>
<h3>User Registration</h3>
</template>
<Input
v-model="email"
label="Email"
type="email"
required
placeholder="Enter your email"
/>
<Button variant="primary" @click="isModalOpen = true">
Submit
</Button>
</Card>
<Modal
v-model="isModalOpen"
title="Confirm"
description="Are you sure you want to proceed?"
>
<Button variant="secondary" @click="isModalOpen = false">
Cancel
</Button>
<Button variant="primary" @click="submit">
Confirm
</Button>
</Modal>
</template>
Table Component
<script setup lang="ts">
import { ref } from 'vue';
import { Table } from '@phoenix-tekhne/vue-tupos';
import type { TableColumn } from '@phoenix-tekhne/vue-tupos';
interface Employee {
id: string;
name: string;
department: string;
status: 'active' | 'inactive';
}
const columns: TableColumn<Employee>[] = [
{ key: 'name', header: 'Name', sortable: true },
{ key: 'department', header: 'Department', sortable: true },
{
key: 'status',
header: 'Status',
slot: 'status-cell'
},
];
const data = ref<Employee[]>([
{ id: '1', name: 'John Doe', department: 'Engineering', status: 'active' },
{ id: '2', name: 'Jane Smith', department: 'Design', status: 'active' },
]);
const selectedKeys = ref<string[]>([]);
</script>
<template>
<Table
:data="data"
:columns="columns"
selectable
v-model:selectedKeys="selectedKeys"
>
<template #status-cell="{ row }">
<Badge :variant="row.status === 'active' ? 'success' : 'neutral'">
{{ row.status }}
</Badge>
</template>
</Table>
</template>
Select Component
<script setup lang="ts">
import { ref } from 'vue';
import { Select } from '@phoenix-tekhne/vue-tupos';
const selected = ref('');
const options = [
{ id: 'eng', label: 'Engineering' },
{ id: 'design', label: 'Design' },
{ id: 'product', label: 'Product' },
];
</script>
<template>
<Select
v-model="selected"
label="Department"
:options="options"
placeholder="Select department"
required
/>
</template>
For AI Agents: Quick Reference
Component Selection Guide
| Use Case | Component | Pattern |
|---|---|---|
| Primary action | <Button variant="primary"> |
Solid fill, accent color |
| Secondary action | <Button variant="secondary"> |
Outline style |
| Destructive action | <Button variant="danger"> |
Red color scheme |
| Loading state | <Button loading> |
Shows spinner |
| Content grouping | <Card> |
Elevation, padding |
| Text input | <Input> |
Label, helper, validation |
| Data display | <Table> |
Sortable, selectable |
| Modal dialog | <Modal> |
Focus trap, ESC close |
| Dropdown | <Select> |
Keyboard navigation |
| Status labels | <Badge variant="success"> |
Soft/solid/outline styles |
CSS Class Pattern
All components use the tupos- prefix:
.tupos-btn- Button base.tupos-btn--primary- Button variant.tupos-card- Card container.tupos-input- Form input.tupos-table- Data table.tupos-modal- Modal dialog.tupos-select- Select dropdown.tupos-badge- Status badge
Token Dependencies
Components require CSS variables from @phoenix-tekhne/tokens:
@import '@phoenix-tekhne/tokens/dist/variables.css';
Required token categories:
--color-*- All color values--spacing-*- 8pt grid spacing--type-*- Typography--radius-*- Border radius--shadow-*- Box shadows--motion-*- Transitions--a11y-*- Focus indicators
Dependencies
vue^3.5.0 (peer)@phoenix-tekhne/vue-dynamis- Headless composables@phoenix-tekhne/dynamis-core- State machines@phoenix-tekhne/tokens- Design tokens (dev)
Related Packages
This package is part of Phoenix Tekhne v2. See also:
- @phoenix-tekhne/dynamis-core - Headless state machines
- @phoenix-tekhne/vue-dynamis - Vue 3 composables
- @phoenix-tekhne/react-tupos - React equivalent components
- @phoenix-tekhne/tokens - Design tokens
Storybook
Components are documented in the main Storybook at http://192.168.10.138:6006
Contributing
See AGENTS.md in repository root for contribution guidelines.
When adding a new component:
- Check if composable exists in
vue-dynamis - Create
.vueSFC with TypeScript<script setup> - Use Phoenix Tekhne design tokens (CSS variables)
- Implement WCAG 2.2 AA accessibility
- Add to
src/index.tsexports - Document in README.md
Dependencies
Dependencies
| ID | Version |
|---|---|
| @phoenix-tekhne/dynamis-core | 2.5.1 |
| @phoenix-tekhne/vue-dynamis | 2.5.1 |
Development Dependencies
| ID | Version |
|---|---|
| @vitejs/plugin-vue | ^5.2.0 |
| typescript | ^5.7.0 |
| vite | ^6.0.0 |
| vue | ^3.5.0 |
| vue-router | ^4.4.0 |
| vue-tsc | ^2.0.0 |
Peer Dependencies
| ID | Version |
|---|---|
| vue | ^3.5.0 |
| vue-router | ^4.4.0 |
Keywords
vue
vue3
components
ui
design-system
phoenix-tekhne
tupos
Details
2026-05-28 07:22:41 -07:00
Assets (1)
Versions (1)
View all
npm
4
Phoenix Tekhne Team
MIT
latest
68 KiB
vue-tupos-0.2.0.tgz
68 KiB
0.2.0
2026-05-28