@todovue/tv-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +207 -0
- package/dist/.htaccess +8 -0
- package/dist/demos/tv-alert/CHANGELOG.md +127 -0
- package/dist/demos/tv-alert/README.md +334 -0
- package/dist/demos/tv-article/CHANGELOG.md +221 -0
- package/dist/demos/tv-article/README.md +258 -0
- package/dist/demos/tv-breadcrumbs/CHANGELOG.md +135 -0
- package/dist/demos/tv-breadcrumbs/README.md +364 -0
- package/dist/demos/tv-button/CHANGELOG.md +158 -0
- package/dist/demos/tv-button/README.md +255 -0
- package/dist/demos/tv-card/CHANGELOG.md +158 -0
- package/dist/demos/tv-card/README.md +332 -0
- package/dist/demos/tv-demo/CHANGELOG.md +352 -0
- package/dist/demos/tv-demo/README.md +229 -0
- package/dist/demos/tv-footer/CHANGELOG.md +67 -0
- package/dist/demos/tv-footer/README.md +760 -0
- package/dist/demos/tv-hero/CHANGELOG.md +137 -0
- package/dist/demos/tv-hero/README.md +410 -0
- package/dist/demos/tv-label/CHANGELOG.md +138 -0
- package/dist/demos/tv-label/README.md +357 -0
- package/dist/demos/tv-menu/CHANGELOG.md +145 -0
- package/dist/demos/tv-menu/README.md +389 -0
- package/dist/demos/tv-modal/CHANGELOG.md +127 -0
- package/dist/demos/tv-modal/README.md +466 -0
- package/dist/demos/tv-pagination/CHANGELOG.md +125 -0
- package/dist/demos/tv-pagination/README.md +275 -0
- package/dist/demos/tv-progress-bar/CHANGELOG.md +84 -0
- package/dist/demos/tv-progress-bar/README.md +894 -0
- package/dist/demos/tv-relative-time/CHANGELOG.md +122 -0
- package/dist/demos/tv-relative-time/README.md +405 -0
- package/dist/demos/tv-scroll-top/CHANGELOG.md +69 -0
- package/dist/demos/tv-scroll-top/README.md +445 -0
- package/dist/demos/tv-search/CHANGELOG.md +155 -0
- package/dist/demos/tv-search/README.md +407 -0
- package/dist/demos/tv-settings/CHANGELOG.md +94 -0
- package/dist/demos/tv-settings/README.md +314 -0
- package/dist/demos/tv-sidebar/CHANGELOG.md +229 -0
- package/dist/demos/tv-sidebar/README.md +592 -0
- package/dist/demos/tv-theme-button/CHANGELOG.md +136 -0
- package/dist/demos/tv-theme-button/README.md +392 -0
- package/dist/demos/tv-toc/CHANGELOG.md +80 -0
- package/dist/demos/tv-toc/README.md +288 -0
- package/dist/entry.d.ts +48 -0
- package/dist/favicon.ico +0 -0
- package/dist/tv-ui.cjs.js +1 -0
- package/dist/tv-ui.css +1 -0
- package/dist/tv-ui.d.ts +6 -0
- package/dist/tv-ui.es.js +92 -0
- package/nuxt.js +58 -0
- package/package.json +92 -0
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
<p align="center"><img width="150" src="https://res.cloudinary.com/dcdfhi8qz/image/upload/v1763663056/uqqtkgp1lg3xdplutpga.png" alt="TODOvue logo">
|
|
2
|
+
</p>
|
|
3
|
+
|
|
4
|
+
# TODOvue Button (TvButton)
|
|
5
|
+
A flexible, framework‑agnostic Vue 3 button component with variants, sizes, icons, loading state, and customization utilities. Ship it in Single Page Apps or Server-Side Rendered (SSR) environments (e.g. Nuxt 3) with zero DOM assumptions.
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@todovue/tv-button)
|
|
8
|
+
[](https://www.npmjs.com/package/@todovue/tv-button)
|
|
9
|
+
[](https://www.npmjs.com/package/@todovue/tv-button)
|
|
10
|
+

|
|
11
|
+

|
|
12
|
+

|
|
13
|
+

|
|
14
|
+

|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
> Demo: https://ui.todovue.blog/button/
|
|
18
|
+
|
|
19
|
+
## Table of Contents
|
|
20
|
+
- [Features](#features)
|
|
21
|
+
- [Installation](#installation)
|
|
22
|
+
- [Quick Start (SPA)](#quick-start-spa)
|
|
23
|
+
- [Style usage](#style-usage)
|
|
24
|
+
- [Nuxt 4 / SSR Usage](#nuxt-4--ssr-usage)
|
|
25
|
+
- [Component Registration Options](#component-registration-options)
|
|
26
|
+
- [Props](#props)
|
|
27
|
+
- [Events](#events)
|
|
28
|
+
- [Icons](#icons)
|
|
29
|
+
- [Customization (Styles / Theming)](#customization-styles--theming)
|
|
30
|
+
- [Icon-only & Variant Notes](#icon-only--variant-notes)
|
|
31
|
+
- [Accessibility](#accessibility)
|
|
32
|
+
- [SSR Notes](#ssr-notes)
|
|
33
|
+
- [Development](#development)
|
|
34
|
+
- [Contributing](#contributing)
|
|
35
|
+
- [License](#license)
|
|
36
|
+
|
|
37
|
+
## Features
|
|
38
|
+
- **Variants**: primary, secondary, success, info, warning, error
|
|
39
|
+
- **Sizes**: sm, md, lg, full-width option
|
|
40
|
+
- Icon support (pre-bundled SVG set via `import.meta.glob`)
|
|
41
|
+
- Icon-only and pure icon modes (`type="icon"` + `iconOnly`)
|
|
42
|
+
- Loading state with spinner
|
|
43
|
+
- Custom inline style override via `customStyle`
|
|
44
|
+
- Emits both a custom event and the native click
|
|
45
|
+
- Works in SPA and SSR (Nuxt 3) contexts
|
|
46
|
+
- Tree-shake friendly (Vue marked external in library build)
|
|
47
|
+
|
|
48
|
+
## Installation
|
|
49
|
+
Using npm:
|
|
50
|
+
```bash
|
|
51
|
+
npm install @todovue/tv-button
|
|
52
|
+
```
|
|
53
|
+
Using yarn:
|
|
54
|
+
```bash
|
|
55
|
+
yarn add @todovue/tv-button
|
|
56
|
+
```
|
|
57
|
+
Using pnpm:
|
|
58
|
+
```bash
|
|
59
|
+
pnpm add @todovue/tv-button
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Quick Start (SPA)
|
|
63
|
+
Global registration (main.js / main.ts):
|
|
64
|
+
```js
|
|
65
|
+
import { createApp } from 'vue'
|
|
66
|
+
import App from './App.vue'
|
|
67
|
+
import '@todovue/tv-button/style.css'
|
|
68
|
+
import TvButton from '@todovue/tv-button'
|
|
69
|
+
|
|
70
|
+
createApp(App)
|
|
71
|
+
.use(TvButton) // enables <TvButton /> globally
|
|
72
|
+
.mount('#app')
|
|
73
|
+
```
|
|
74
|
+
Local import inside a component:
|
|
75
|
+
```vue
|
|
76
|
+
<script setup>
|
|
77
|
+
import '@todovue/tv-button/style.css'
|
|
78
|
+
import { TvButton } from '@todovue/tv-button'
|
|
79
|
+
|
|
80
|
+
function onSubmit() {
|
|
81
|
+
console.log('Clicked')
|
|
82
|
+
}
|
|
83
|
+
</script>
|
|
84
|
+
|
|
85
|
+
<template>
|
|
86
|
+
<TvButton variant="success" icon="check" @click-button="onSubmit">Submit</TvButton>
|
|
87
|
+
</template>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Style usage
|
|
91
|
+
|
|
92
|
+
### Vue 3 SPA with Vite
|
|
93
|
+
```ts
|
|
94
|
+
// main.ts
|
|
95
|
+
import { createApp } from 'vue'
|
|
96
|
+
import App from './App.vue'
|
|
97
|
+
|
|
98
|
+
import '@todovue/tv-button/style.css'
|
|
99
|
+
import { TvButton } from '@todovue/tv-button'
|
|
100
|
+
|
|
101
|
+
const app = createApp(App)
|
|
102
|
+
app.component('TvButton', TvButton)
|
|
103
|
+
app.mount('#app')
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Nuxt 3/4
|
|
107
|
+
```ts
|
|
108
|
+
// nuxt.config.ts
|
|
109
|
+
export default defineNuxtConfig({
|
|
110
|
+
modules: [
|
|
111
|
+
'@todovue/tv-button/nuxt'
|
|
112
|
+
]
|
|
113
|
+
})
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Nuxt 4 / SSR Usage
|
|
117
|
+
Create a plugin file: `plugins/tv-button.client.ts` (client-only is fine, or without suffix for SSR as it is safe):
|
|
118
|
+
```ts
|
|
119
|
+
import { defineNuxtPlugin } from '#app'
|
|
120
|
+
import TvButton from '@todovue/tv-button'
|
|
121
|
+
|
|
122
|
+
export default defineNuxtPlugin(nuxtApp => {
|
|
123
|
+
nuxtApp.vueApp.use(TvButton)
|
|
124
|
+
})
|
|
125
|
+
```
|
|
126
|
+
Use anywhere:
|
|
127
|
+
```vue
|
|
128
|
+
<TvButton outlined icon="info">Details</TvButton>
|
|
129
|
+
```
|
|
130
|
+
Optional direct import (no plugin):
|
|
131
|
+
```vue
|
|
132
|
+
<script setup>
|
|
133
|
+
import { TvButton } from '@todovue/tv-button'
|
|
134
|
+
</script>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Component Registration Options
|
|
138
|
+
| Approach | When to use |
|
|
139
|
+
|-------------------------------------------------------------------|------------------------------------------------|
|
|
140
|
+
| Global via `app.use(TvButton)` | Many usages across app / design system install |
|
|
141
|
+
| Local named import `{ TvButton }` | Isolated / code-split contexts |
|
|
142
|
+
| Direct default import `import TvButton from '@todovue/tv-button'` | Single usage or manual registration |
|
|
143
|
+
|
|
144
|
+
## Props
|
|
145
|
+
All boolean style props have two interchangeable forms: a long form (`isSomething`) and a short alias.
|
|
146
|
+
|
|
147
|
+
| Prop | Type | Default | Description |
|
|
148
|
+
|--------------|-------------------------------------------|-----------|--------------------------------------------------------|
|
|
149
|
+
| buttonText | string | '' | Optional text (alternative to slot). |
|
|
150
|
+
| variant | 'primary' \| 'secondary' \| 'success' ... | 'primary' | Visual style variant. |
|
|
151
|
+
| size | 'sm' \| 'md' \| 'lg' | 'md' | Button size. |
|
|
152
|
+
| customStyle | object | {} | Inline style overrides (`{ backgroundColor, color }`). |
|
|
153
|
+
| icon | string | null | Name of bundled icon. |
|
|
154
|
+
| iconColor | string | 'white' | Icon color override. |
|
|
155
|
+
| iconPosition | 'left' \| 'right' | 'right' | Icon position relative to text. |
|
|
156
|
+
| type | 'button' \| 'submit' \| 'reset' \| 'icon' | 'button' | Native button type. Use 'icon' for icon-only styling. |
|
|
157
|
+
| ariaLabel | string | '' | Accessibility label (required if no text / icon-only). |
|
|
158
|
+
| iconOnly | boolean | false | Renders only the icon (no padding/background). |
|
|
159
|
+
| outlined | boolean | false | Outlined style. |
|
|
160
|
+
| rounded | boolean | false | Rounded corners. |
|
|
161
|
+
| disabled | boolean | false | Disables interaction. |
|
|
162
|
+
| loading | boolean | false | Shows spinner & disables. |
|
|
163
|
+
| full | boolean | false | Full width. |
|
|
164
|
+
| text | boolean | false | Text (minimal) style. |
|
|
165
|
+
| href | string | null | URL for native anchor tag. |
|
|
166
|
+
| to | string \| object | null | Route for RouterLink / NuxtLink. |
|
|
167
|
+
| target | string | null | Anchor target (e.g. '_blank'). |
|
|
168
|
+
| rel | string | null | Anchor rel attribute. |
|
|
169
|
+
|
|
170
|
+
> Note: Because `type` is bound to the native `<button type="...">`, using `type="icon"` produces a non-standard button attribute. This does not break rendering but is semantically incorrect in forms. A future release will introduce `variant` and keep `htmlType` separate (see Roadmap).
|
|
171
|
+
|
|
172
|
+
## Events
|
|
173
|
+
| Event name (kebab) | Emits (camel) | Description |
|
|
174
|
+
|--------------------|---------------|---------------------------------------------|
|
|
175
|
+
| `click-button` | `clickButton` | Custom semantic click event. |
|
|
176
|
+
| `click` | `click` | Native passthrough (also emitted manually). |
|
|
177
|
+
|
|
178
|
+
Usage:
|
|
179
|
+
```vue
|
|
180
|
+
<TvButton @click-button="onAction" />
|
|
181
|
+
<TvButton @click="onNative" />
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Icons
|
|
185
|
+
Set with the `icon` prop. Available names:
|
|
186
|
+
`account`, `add-user`, `alert`, `arrow-down`, `arrow-left`, `arrow-right`, `arrow-up`, `block`, `calendar`, `cancel`, `check`, `clone`, `dark`, `download`, `edit`, `external-link`, `favorite`, `filter`, `help`, `info`, `light`, `loading`, `lock`, `login`, `logout`, `menu`, `minus`, `notification`, `plus`, `remove`, `search`, `settings`, `share`, `star`, `todovue`, `unlock`, `update`, `view` `double-arrow-left`, `double-arrow-right`, `home`, `dots-vertical`, `eye-off`, `trash`, `upload`, `dashboard`, `folder`, `link`, `mail` and `save`.
|
|
187
|
+
|
|
188
|
+
Example:
|
|
189
|
+
```vue
|
|
190
|
+
<TvButton icon="check" variant="success">Saved</TvButton>
|
|
191
|
+
<TvButton icon="info" iconPosition="left" outlined>Info</TvButton>
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Customization (Styles / Theming)
|
|
195
|
+
Inline overrides via `customStyle`:
|
|
196
|
+
```vue
|
|
197
|
+
<TvButton :customStyle="{ backgroundColor: '#0f2e5b', color: '#fff' }">Branded</TvButton>
|
|
198
|
+
```
|
|
199
|
+
Outlined variant adapts automatically:
|
|
200
|
+
```vue
|
|
201
|
+
<TvButton outlined :customStyle="{ backgroundColor: '#ff4081', color: '#fff' }">Pink Outline</TvButton>
|
|
202
|
+
```
|
|
203
|
+
> A subtle hover darkening is auto-generated when `customStyle.backgroundColor` exists.
|
|
204
|
+
|
|
205
|
+
## Icon-only & Variant Notes
|
|
206
|
+
Pure icon button:
|
|
207
|
+
```vue
|
|
208
|
+
<TvButton type="icon" icon="edit" />
|
|
209
|
+
```
|
|
210
|
+
Inline icon-only action (no background / padding):
|
|
211
|
+
```vue
|
|
212
|
+
<TvButton type="icon" icon="edit" :iconOnly="true" aria-label="Edit item" />
|
|
213
|
+
```
|
|
214
|
+
Loading state:
|
|
215
|
+
```vue
|
|
216
|
+
<TvButton loading icon="download">Processing...</TvButton>
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Link usage:
|
|
220
|
+
```vue
|
|
221
|
+
<!-- Native anchor -->
|
|
222
|
+
<TvButton href="https://todovvue.blog" target="_blank">External Link</TvButton>
|
|
223
|
+
|
|
224
|
+
<!-- Router link -->
|
|
225
|
+
<TvButton to="/dashboard">Go to Dashboard</TvButton>
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Accessibility
|
|
229
|
+
- Always provide visible text OR `aria-label`.
|
|
230
|
+
- Mandatory: add `aria-label` when using `iconOnly` or when slot content is empty.
|
|
231
|
+
- Disabled state uses both `disabled` attribute and styling classes.
|
|
232
|
+
|
|
233
|
+
## SSR Notes
|
|
234
|
+
- No direct DOM (`window` / `document`) access in source → safe for SSR.
|
|
235
|
+
- Styles are now served from a separate CSS file generated by Vite (`dist/tv-button.css`). You need to import it explicitly in your app (SPA or Nuxt) using `@todovue/tv-button/style.css`.
|
|
236
|
+
- SVG icons are bundled via Vite's `import.meta.glob` (works in Vite + Nuxt).
|
|
237
|
+
|
|
238
|
+
## Development
|
|
239
|
+
```bash
|
|
240
|
+
git clone https://github.com/TODOvue/tv-button.git
|
|
241
|
+
cd tv-button
|
|
242
|
+
yarn install
|
|
243
|
+
yarn dev # run demo playground
|
|
244
|
+
yarn build # build library
|
|
245
|
+
```
|
|
246
|
+
Local demo served from Vite using `index.html` + `src/demo` examples.
|
|
247
|
+
|
|
248
|
+
## Contributing
|
|
249
|
+
PRs and issues welcome. See [CONTRIBUTING.md](./CONTRIBUTING.md) and [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md).
|
|
250
|
+
|
|
251
|
+
## License
|
|
252
|
+
MIT © TODOvue
|
|
253
|
+
|
|
254
|
+
### Attributions
|
|
255
|
+
Crafted for the TODOvue component ecosystem
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to `@todovue/tv-card` will be documented in this file.
|
|
4
|
+
|
|
5
|
+
This project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
## [1.1.4] - 2026-01-27
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- Simplified the file list in `package.json` to include only essential assets.
|
|
11
|
+
- Simplified the build configuration by removing demo-specific logic.
|
|
12
|
+
- Enhanced GitHub Actions workflows to automate npm package publishing and GitHub release creation.
|
|
13
|
+
- Moved the `@todovue/tv-demo` component import from main.js to `Demo.vue` to localize its usage.
|
|
14
|
+
- Updated build commands to include `README.md` and `CHANGELOG.md` files in the public directory during the build process.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- Included the `src` directory in the `package.json` files list to ensure component source files are bundled in the package distribution.
|
|
18
|
+
|
|
19
|
+
### Removed
|
|
20
|
+
- Eliminated the global import of the `@todovue/tv-demo` component from `main.js`.
|
|
21
|
+
|
|
22
|
+
### Dependencies
|
|
23
|
+
- Updated `@todovue/tv-demo` to `^1.4.11`.
|
|
24
|
+
- Updated `@todovue/tv-label` to `^1.2.3`.
|
|
25
|
+
- Updated `@todovue/tv-button` to `^1.2.5`.
|
|
26
|
+
- Updated `vue` to `^3.5.27`.
|
|
27
|
+
- Updated `sass` to `^1.97.3`.
|
|
28
|
+
|
|
29
|
+
## [1.1.3] - 2026-01-21
|
|
30
|
+
|
|
31
|
+
### Removed
|
|
32
|
+
- Removed the `uppercase` text transformation from title styles to improve readability and allow for more flexible typography.
|
|
33
|
+
|
|
34
|
+
### Dependencies
|
|
35
|
+
- Updated `@todovue/tv-button` to `^1.2.4`.
|
|
36
|
+
- Updated `@todovue/tv-label` to `^1.2.1`.
|
|
37
|
+
- Updated `@todovue/tv-demo` to `^1.4.4`.
|
|
38
|
+
- Updated `sass` to `^1.97.2`.
|
|
39
|
+
- Updated `vite` to `^7.3.1`.
|
|
40
|
+
|
|
41
|
+
## [1.1.2] - 2025-12-27
|
|
42
|
+
|
|
43
|
+
### Added
|
|
44
|
+
- Added automatic publishing to the TODOvue cPanel in `release.yml` for each release, simplifying package distribution and updates.
|
|
45
|
+
- Added `package-lock.json` to the repository to ensure dependency consistency and facilitate version management across development and production environments.
|
|
46
|
+
|
|
47
|
+
### Changed
|
|
48
|
+
- Changed the `base` option in `vite.config.js` for website deployment in cpanel.
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
- Fixed repository URL in `package.json` to point to the correct GitHub repository.
|
|
52
|
+
- Fixed the token configuration used to generate the package in the GitHub Actions workflow `release.yml`.
|
|
53
|
+
|
|
54
|
+
### Dependencies
|
|
55
|
+
- Updated dependency versions in `package.json` to maintain compatibility and benefit from improvements and bug fixes in the used libraries.
|
|
56
|
+
|
|
57
|
+
## [1.1.1] - 2025-11-25
|
|
58
|
+
|
|
59
|
+
### Fixed
|
|
60
|
+
- Fixed styles for horizontal variant of the card component.
|
|
61
|
+
- Fixed `small` prop styles for horizontal variant of the card component.
|
|
62
|
+
- Fixed full width styles for horizontal variant of the card component.
|
|
63
|
+
|
|
64
|
+
## [1.1.0] - 2025-11-25
|
|
65
|
+
|
|
66
|
+
### Added
|
|
67
|
+
- Added horizontal variant for the card component, allowing for a side-by-side layout of image and content.
|
|
68
|
+
|
|
69
|
+
## [1.0.7] - 2025-11-24
|
|
70
|
+
|
|
71
|
+
### Dependencies
|
|
72
|
+
- Updated the `@todovue/tv-demo` dependency to `^1.2.2` to ensure compatibility with the latest changes.
|
|
73
|
+
|
|
74
|
+
### Changed
|
|
75
|
+
- Updated background and text colors for dark and light themes to improve readability and visual comfort.
|
|
76
|
+
|
|
77
|
+
## [1.0.6] - 2025-11-21
|
|
78
|
+
|
|
79
|
+
### Added
|
|
80
|
+
- Added `nux.js` configuration file for Nuxt 4 integration.
|
|
81
|
+
- Added `tsconfig.json` for proper type checking during build.
|
|
82
|
+
- Create `global.d.ts` to declare module for TypeScript users.
|
|
83
|
+
- Added Nuxt module for automatic style injection and auto-registration of the `TvCard` component.
|
|
84
|
+
- The `@todovue/tv-card` component is now externalized from the final build, reducing bundle size.
|
|
85
|
+
- Added `CHANGELOG.md` in script to generate demo and documentation site.
|
|
86
|
+
|
|
87
|
+
### Dependencies
|
|
88
|
+
- Updated the `@todovue/tv-demo` dependency to `^1.1.0` to ensure compatibility with the latest changes.
|
|
89
|
+
- Updated the `@todovue/tv-button` dependency to `^1.2.2` to ensure compatibility with the latest changes.
|
|
90
|
+
- Updated the `@todovue/tv-label` dependency to `^1.1.1` to ensure compatibility with the latest changes.
|
|
91
|
+
|
|
92
|
+
## [1.0.5] - 2025-11-15
|
|
93
|
+
|
|
94
|
+
### Changed
|
|
95
|
+
- Removed CSS injection via `vite-plugin-css-injected-by-js`.
|
|
96
|
+
- Styles are now served from a separate CSS file generated by Vite (`dist/*.css`) and must be imported explicitly in the consuming app (SPA or Nuxt).
|
|
97
|
+
- These changes improve SSR/SSG compatibility, especially for Nuxt-based applications.
|
|
98
|
+
|
|
99
|
+
## [1.0.4] - 2025-11-13
|
|
100
|
+
|
|
101
|
+
### Fixed
|
|
102
|
+
- Fixed position of title in card when the title is long and wraps into multiple lines.
|
|
103
|
+
|
|
104
|
+
## [1.0.3] - 2025-11-13
|
|
105
|
+
|
|
106
|
+
### Fixed
|
|
107
|
+
- Fixed styles for dark and light mode in the library build.
|
|
108
|
+
- Fixed the title overflow when it is too long and does not fit on a single line.
|
|
109
|
+
|
|
110
|
+
### Changed
|
|
111
|
+
- Corrected demo imports.
|
|
112
|
+
|
|
113
|
+
## [1.0.2] - 2025-10-17
|
|
114
|
+
|
|
115
|
+
### Changed
|
|
116
|
+
- The library build now uses `src/entry.ts` (exports both the component and the plugin) instead of directly exporting the `.vue` file.
|
|
117
|
+
- CSS injection via JS has been removed for the library build (it is only kept for the demo), generating a `tv-card.css` file optimized for SSR/Nuxt.
|
|
118
|
+
- Changed node-version to workflows release.yml to 20.
|
|
119
|
+
|
|
120
|
+
### Added
|
|
121
|
+
- Plugin installation support: `app.use(TvLabel)` or `app.use(TvLabelPlugin)`.
|
|
122
|
+
- Explicit export of the style file: `import '@todovue/tv-label/style.css'`.
|
|
123
|
+
- Documentation for usage in SSR and Nuxt 3 applications.
|
|
124
|
+
|
|
125
|
+
## [1.0.1] - 2025-05-07
|
|
126
|
+
|
|
127
|
+
### Fixed
|
|
128
|
+
- Fixed styles and global style imports
|
|
129
|
+
|
|
130
|
+
## [1.0.0] - 2025-05-05
|
|
131
|
+
|
|
132
|
+
### Added
|
|
133
|
+
- Initial release of `TvCard` component under the `@todovue` namespace.
|
|
134
|
+
- Supports basic card structure with:
|
|
135
|
+
- Title, description, image, and alt text.
|
|
136
|
+
- Primary action button.
|
|
137
|
+
- Added support for:
|
|
138
|
+
- Secondary button (`secondaryButtonText`).
|
|
139
|
+
- Custom labels with optional label limit.
|
|
140
|
+
- Fully customizable color scheme: background, text, button styles.
|
|
141
|
+
- Emitted events:
|
|
142
|
+
- `clickButton` (on primary button click)
|
|
143
|
+
- `clickSecondaryButton` (on secondary button click)
|
|
144
|
+
- `clickLabel` (on label click)
|
|
145
|
+
|
|
146
|
+
[1.1.4]: https://github.com/TODOvue/todovue-card/pull/16/files
|
|
147
|
+
[1.1.3]: https://github.com/TODOvue/todovue-card/pull/15/files
|
|
148
|
+
[1.1.2]: https://github.com/TODOvue/todovue-card/pull/14/files
|
|
149
|
+
[1.1.1]: https://github.com/TODOvue/todovue-card/pull/13/files
|
|
150
|
+
[1.1.0]: https://github.com/TODOvue/todovue-card/pull/12/files
|
|
151
|
+
[1.0.7]: https://github.com/TODOvue/todovue-card/pull/11/files
|
|
152
|
+
[1.0.6]: https://github.com/TODOvue/todovue-card/pull/10/files
|
|
153
|
+
[1.0.5]: https://github.com/TODOvue/todovue-card/pull/9/files
|
|
154
|
+
[1.0.4]: https://github.com/TODOvue/todovue-card/pull/8/files
|
|
155
|
+
[1.0.3]: https://github.com/TODOvue/todovue-card/pull/7/files
|
|
156
|
+
[1.0.2]: https://github.com/TODOvue/todovue-card/pull/6/files
|
|
157
|
+
[1.0.1]: https://github.com/TODOvue/todovue-card/pull/4/files
|
|
158
|
+
[1.0.0]: https://github.com/TODOvue/todovue-card/pull/3/files
|