@winchsa/ui
Winch UI
A Vue 3 + Vuetify UI component library for Winch projects.
Overview
Winch UI is a comprehensive Vue 3 + Vuetify component library designed specifically for Winch projects. It provides pre-built components, utilities, and styling that follow Winch design standards.
Getting Started
Installation
pnpm add @winchsa/ui
Basic Usage
// main.ts
import { createApp } from 'vue'
import '@winchsa/ui/core/template/index.scss'; // <- WINCH styles
import './assets/scss/styles.scss'; //<- overwritten styles
const app = createApp(App)
app.mount('#app')
Configuration
Vite Configuration
To use the Winch UI package in your Vite project, add the following configuration to your vite.config.ts:
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vuetify from 'vite-plugin-vuetify'
import Components from 'unplugin-vue-components/vite'
import AutoImport from 'unplugin-auto-import/vite'
import { fileURLToPath } from 'node:url'
export default defineConfig({
plugins: [
vue(),
vuetify({
styles: {
configFile: 'node_modules/@winchsa/ui/dist/styles/assets/scss/variables/_vuetify.scss'
}
}),
Components({
resolvers: [
(name) => {
if (name.startsWith('W')) {
return { name, from: '@winchsa/ui' }
}
}
],
dts: true
}),
AutoImport({
imports: [
{
'@winchsa/ui/utils': [
'buildApiUrl',
'printPdf',
'saveFile',
'formValidator',
'getErrorMessage',
'formatDate',
'formatNumber',
'toaster',
'responseAlert'
...
]
}
],
dts: true
})
],
resolve: {
alias: {
'@styles': fileURLToPath(new URL('node_modules/@winchsa/ui/dist/styles', import.meta.url))
}
}
})
This configuration:
- Sets up Vuetify with custom styles
- Auto-imports Winch UI components that start with 'W'
- Auto-imports utility functions from the package
- Creates proper TypeScript definitions
- Sets up the alias for styles
Development
Playground
The playground is located in the playground/ directory and provides a development environment for testing and showcasing components.
Running the Playground
cd playground
pnpm install
pnpm dev
Building and Installing Locally in an Actual Project
This script compiles the UI package, generates a tarball, and installs it into your project for local development and testing.
./build-and-install.sh
Release Process
The bump command in package.json does the following:
pnpm version patch: Increments the patch version of the package (e.g., from0.1.9to0.1.10).pnpm run build: Builds the project.git add .: Stages all changes for commit.git commit -m "chore: release v$(node -p \"require('./package.json').version\")": Creates a new commit with a message indicating a release, including the new version number.
Publishing
After running pnpm run bump, go to GitHub → Releases and create a new release based on the commit generated. This will trigger the publish.yaml GitHub Actions workflow, which handles the actual publishing process
**Publish to npm **
``bash npm publish --access public
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 0.1.62 | ^3.5.13 | ||
| 0.1.61 | ^3.5.13 | ||
| 0.1.60 | ^3.5.13 | ||
| 0.1.59 | ^3.5.13 | ||
| 0.1.58 | ^3.5.13 | ||
| 0.1.57 | ^3.5.13 | ||
| 0.1.54 | ^3.5.13 | ||
| 0.1.53 | ^3.5.13 | ||
| 0.1.52 | ^3.5.13 | ||
| 0.1.51 | ^3.5.13 | ||
| 0.1.50 | ^3.5.13 | ||
| 0.1.49 | ^3.5.13 | ||
| 0.1.47 | ^3.5.13 | ||
| 0.1.46 | ^3.5.13 | ||
| 0.1.45 | ^3.5.13 | ||
| 0.1.44 | ^3.5.13 | ||
| 0.1.43 | ^3.5.13 | ||
| 0.1.42 | ^3.5.13 | ||
| 0.1.41 | ^3.5.13 | ||
| 0.1.40 | ^3.5.13 | ||
| 0.1.39 | ^3.5.13 | ||
| 0.1.37 | ^3.5.13 | ||
| 0.1.36 | ^3.5.13 | ||
| 0.1.35 | ^3.5.13 | ||
| 0.1.34 | ^3.5.13 | ||
| 0.1.33 | ^3.5.13 | ||
| 0.1.31 | ^3.5.13 | ||
| 0.1.30 | ^3.5.13 | ||
| 0.1.29 | ^3.5.13 | ||
| 0.1.28 | ^3.5.13 |
Showing the latest 30 of 55. See every release on npm