diff --git a/.github/workflows/develop_release.yml b/.github/workflows/develop_release.yml
new file mode 100644
index 0000000..91c7213
--- /dev/null
+++ b/.github/workflows/develop_release.yml
@@ -0,0 +1,43 @@
+name: Deploy in Develop
+
+on:
+ push:
+ branches:
+ - develop
+
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ permissions:
+ actions: write
+ contents: read
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 20
+ registry-url: https://registry.npmjs.org/
+ cache: 'npm'
+
+ - name: Install dependencies
+ run: npm ci
+
+ - name: Build Demo Website
+ run: npm run build:demo
+
+ - name: Create robots.txt for development
+ run: 'echo -e "User-agent: *\nDisallow: /" > ./dist-demo/robots.txt'
+
+ - name: Deploy TODOvue UI Develop
+ uses: SamKirkland/FTP-Deploy-Action@v4.3.4
+ with:
+ server: ${{ secrets.FTP_SERVER }}
+ username: ${{ secrets.FTP_USERNAME }}
+ password: ${{ secrets.FTP_PASSWORD }}
+ local-dir: ./dist-demo/
+ server-dir: ${{ secrets.FTP_DIR_DEVELOP }}
+ dangerous-clean-slate: true
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5d57974..d952cc3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,16 @@ All notable changes to `@todovue/tv-ui` will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.0.0] - 2026-01-30
+
+### Dependencies
+- Updated `@todovue/tv-progress-bar` to version `1.1.2`.
+- Updated `@todovue/tv-toc` to version `1.2.0`.
+- Updated `@todovue/tv-footer` to version `1.1.2`.
+- Updated `@todovue/tv-menu` to version `1.1.5`.
+- Updated `@todovue/tv-article` to version `1.3.5`.
+- Updated `@todovue/tv-scroll-top` to version `1.0.4`.
+
## [0.1.3] - 2026-01-28
### Changed
@@ -33,6 +43,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Initial release of `@todovue/tv-ui`.
+[1.0.0]: https://github.com/TODOvue/tv-ui/pull/5/changes
[0.1.3]: https://github.com/TODOvue/tv-ui/pull/4/changes
[0.1.2]: https://github.com/TODOvue/tv-ui/pull/3/changes
[0.1.1]: https://github.com/TODOvue/tv-ui/pull/2/changes
diff --git a/package-lock.json b/package-lock.json
index 0bb397c..216fbce 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,25 +10,25 @@
"license": "MIT",
"dependencies": {
"@todovue/tv-alert": "^1.2.1",
- "@todovue/tv-article": "^1.3.4",
+ "@todovue/tv-article": "^1.3.5",
"@todovue/tv-breadcrumbs": "^1.1.4",
"@todovue/tv-button": "^1.2.6",
"@todovue/tv-card": "^1.1.4",
"@todovue/tv-demo": "^1.4.11",
- "@todovue/tv-footer": "^1.1.1",
+ "@todovue/tv-footer": "^1.1.2",
"@todovue/tv-hero": "^1.2.1",
"@todovue/tv-label": "^1.2.4",
- "@todovue/tv-menu": "^1.1.4",
+ "@todovue/tv-menu": "^1.1.5",
"@todovue/tv-modal": "^1.2.1",
"@todovue/tv-pagination": "^1.1.4",
- "@todovue/tv-progress-bar": "^1.1.1",
+ "@todovue/tv-progress-bar": "^1.1.2",
"@todovue/tv-relative-time": "^1.3.1",
- "@todovue/tv-scroll-top": "^1.0.3",
+ "@todovue/tv-scroll-top": "^1.0.4",
"@todovue/tv-search": "^1.2.1",
"@todovue/tv-settings": "^1.0.4",
"@todovue/tv-sidebar": "^2.2.2",
"@todovue/tv-theme-button": "^1.2.1",
- "@todovue/tv-toc": "^1.1.1",
+ "@todovue/tv-toc": "^1.2.0",
"highlight.js": "^11.11.1",
"markdown-it": "^13.0.2",
"vue-router": "^4.6.4"
@@ -1439,9 +1439,9 @@
}
},
"node_modules/@todovue/tv-article": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/@todovue/tv-article/-/tv-article-1.3.4.tgz",
- "integrity": "sha512-oBCFbsazY0HetWrd1bP81TlLpdpbIkZ+Tak/Cfopu1MlKqQ9rH0eufuRmLKLsZHAP/kEn4d4KptkvfShcoWqaA==",
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@todovue/tv-article/-/tv-article-1.3.5.tgz",
+ "integrity": "sha512-RdoJoTrCk1aY/4mwM/OwgOGOq6FGLkNqnYIDUkhnVrBPa/ulsDGDu1J54m/efi1/aH/LbogiN3sEsMif8QwMgA==",
"license": "MIT",
"dependencies": {
"@todovue/tv-alert": "^1.2.1",
@@ -1516,9 +1516,9 @@
}
},
"node_modules/@todovue/tv-footer": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@todovue/tv-footer/-/tv-footer-1.1.1.tgz",
- "integrity": "sha512-sEHwpci7ICeLg/+MzOEgRwlA5Y/HFWZNiUi26ESvU1jBMvnVFTZzgF4+R/bjjybYJk98dF/mpu/L+syaCwxjNw==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@todovue/tv-footer/-/tv-footer-1.1.2.tgz",
+ "integrity": "sha512-romVNnAk2R3Zsu/xG+d/8gBfDU+UdOkmezfFkP/F0Vur/6IYOPGCNaR3yMkHuX315Rqv0UBC9GxmXxPblaxfzw==",
"license": "MIT",
"engines": {
"node": ">=20.19.0"
@@ -1555,9 +1555,9 @@
}
},
"node_modules/@todovue/tv-menu": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/@todovue/tv-menu/-/tv-menu-1.1.4.tgz",
- "integrity": "sha512-mGUTZhQKX6YaWog2gkPr0+qJPR5XuE/FmJsTwOQL8+MxctoabyhmjzJzOUtZFWjh4tCnz725CNil6bPozYlIZQ==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/@todovue/tv-menu/-/tv-menu-1.1.5.tgz",
+ "integrity": "sha512-7H9JW1dttA1KAXDo9KQKB+cmWmtRcJLaw6mYITIzFeIYJXX+uXBoXcqzU/o64sdpCnElzOm6m0+5bTCOYIxgHw==",
"license": "MIT",
"dependencies": {
"@todovue/tv-search": "^1.2.1"
@@ -1600,9 +1600,9 @@
}
},
"node_modules/@todovue/tv-progress-bar": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@todovue/tv-progress-bar/-/tv-progress-bar-1.1.1.tgz",
- "integrity": "sha512-HJOp9fJp4Pp1wpPzgK9VPx6IK8lfyHKXfvtbfQQRYh4nydBxARjPc0SuTPJ/jkEcv39ZyF49G4ODnFwcyz7m3Q==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@todovue/tv-progress-bar/-/tv-progress-bar-1.1.2.tgz",
+ "integrity": "sha512-PeAZpb0lMn1g2SVOoylBfckdiyO8QWZyF9MMgUhOJHL56gLJIMf2mRtYvWOr5GspL2lgSX6ohK/8Jif1sc9c6w==",
"license": "MIT",
"engines": {
"node": ">=20.19.0"
@@ -1624,9 +1624,9 @@
}
},
"node_modules/@todovue/tv-scroll-top": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@todovue/tv-scroll-top/-/tv-scroll-top-1.0.3.tgz",
- "integrity": "sha512-K1nMDsRTe/3ES8B2YJNyT38u49XX/IYuKAO0B6Ca0OM0Jf77qOGMOpdhMU2zNWLVCgVZHV6vb0K/FTbmCZnjRQ==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@todovue/tv-scroll-top/-/tv-scroll-top-1.0.4.tgz",
+ "integrity": "sha512-QOat7LvmZwtDAa4Lx0TfcC0KgDYLsPHUZ+ZvoxMdSEgTON1FcLhYKcuj0jgrzfijzSbzjisFJU8vEmfOlC0uJw==",
"license": "MIT",
"engines": {
"node": ">=20.19.0"
@@ -1690,9 +1690,9 @@
}
},
"node_modules/@todovue/tv-toc": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@todovue/tv-toc/-/tv-toc-1.1.1.tgz",
- "integrity": "sha512-4kXtzm3z1M9nBX57Yqn7Vfxm3s436vMmMH8rvX11XOcCQCPt+Rr+qBxIrEaMe+1Hw/n2mL5RcqKQXPgMLnHNdA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@todovue/tv-toc/-/tv-toc-1.2.0.tgz",
+ "integrity": "sha512-u61uONIa7Be/RkZ21+GrgbX6lPEobiApnEwD1FSG5Z0x8xVSDEVznnzxVUr96DzzmhThrIOlZpLN04+cEm50pg==",
"license": "MIT",
"engines": {
"node": ">=20.19.0"
diff --git a/package.json b/package.json
index 2a8339c..a1feec7 100644
--- a/package.json
+++ b/package.json
@@ -68,25 +68,25 @@
},
"dependencies": {
"@todovue/tv-alert": "^1.2.1",
- "@todovue/tv-article": "^1.3.4",
+ "@todovue/tv-article": "^1.3.5",
"@todovue/tv-breadcrumbs": "^1.1.4",
"@todovue/tv-button": "^1.2.6",
"@todovue/tv-card": "^1.1.4",
"@todovue/tv-demo": "^1.4.11",
- "@todovue/tv-footer": "^1.1.1",
+ "@todovue/tv-footer": "^1.1.2",
"@todovue/tv-hero": "^1.2.1",
"@todovue/tv-label": "^1.2.4",
- "@todovue/tv-menu": "^1.1.4",
+ "@todovue/tv-menu": "^1.1.5",
"@todovue/tv-modal": "^1.2.1",
"@todovue/tv-pagination": "^1.1.4",
- "@todovue/tv-progress-bar": "^1.1.1",
+ "@todovue/tv-progress-bar": "^1.1.2",
"@todovue/tv-relative-time": "^1.3.1",
- "@todovue/tv-scroll-top": "^1.0.3",
+ "@todovue/tv-scroll-top": "^1.0.4",
"@todovue/tv-search": "^1.2.1",
"@todovue/tv-settings": "^1.0.4",
"@todovue/tv-sidebar": "^2.2.2",
"@todovue/tv-theme-button": "^1.2.1",
- "@todovue/tv-toc": "^1.1.1",
+ "@todovue/tv-toc": "^1.2.0",
"highlight.js": "^11.11.1",
"markdown-it": "^13.0.2",
"vue-router": "^4.6.4"
diff --git a/public/demos/tv-article/CHANGELOG.md b/public/demos/tv-article/CHANGELOG.md
index dfe1200..cdf5b1f 100644
--- a/public/demos/tv-article/CHANGELOG.md
+++ b/public/demos/tv-article/CHANGELOG.md
@@ -5,6 +5,13 @@ All notable changes to `@todovue/tv-article` will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.3.5] - 2026-01-30
+
+### Changed
+- Adjusted the article container to use full-width and inline-block display properties.
+- Removed the media query that adjusted button opacity on mobile devices.
+- Reduced the padding for code blocks within articles to use smaller spacing.
+
## [1.3.4] - 2026-01-27
### Changed
@@ -205,6 +212,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Build artifacts: ESM/CJS bundles and type definitions in `dist/`.
- Integrations: `@todovue/tv-label` for tags and `@todovue/tv-relative-time` for dates.
+[1.3.5]: https://github.com/TODOvue/tv-article/pull/15/files
[1.3.4]: https://github.com/TODOvue/tv-article/pull/14/files
[1.3.3]: https://github.com/TODOvue/tv-article/pull/14/files
[1.3.2]: https://github.com/TODOvue/tv-article/pull/13/files
diff --git a/public/demos/tv-article/README.md b/public/demos/tv-article/README.md
index 6e8e2e3..176c2a6 100644
--- a/public/demos/tv-article/README.md
+++ b/public/demos/tv-article/README.md
@@ -104,7 +104,7 @@ Create a plugin file: `plugins/tv-article.client.ts` (or without suffix; SSR-saf
// nuxt.config.ts
export default defineNuxtConfig({
modules: [
- '@todovue/tv-card/nuxt'
+ '@todovue/tv-article/nuxt'
]
})
```
diff --git a/public/demos/tv-footer/CHANGELOG.md b/public/demos/tv-footer/CHANGELOG.md
index 4b2e545..5e479fa 100644
--- a/public/demos/tv-footer/CHANGELOG.md
+++ b/public/demos/tv-footer/CHANGELOG.md
@@ -5,6 +5,14 @@ All notable changes to `@todovue/tv-footer` will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.1.2] - 2026-01-30
+
+### Added
+- Implemented event handling for link clicks within the footer component.
+
+### Changed
+- Applied a maximum width constraint to the footer section to improve layout consistency and readability.
+
## [1.1.1] - 2026-01-27
### Changed
@@ -62,6 +70,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Backdrop blur effect on social icons
- Comprehensive documentation and examples
+[1.1.2]: https://github.com/TODOvue/tv-footer/pull/4/files
[1.1.1]: https://github.com/TODOvue/tv-footer/pull/3/files
[1.1.0]: https://github.com/TODOvue/tv-footer/pull/2/files
[1.0.0]: https://github.com/TODOvue/tv-footer/pull/1/files
diff --git a/public/demos/tv-menu/CHANGELOG.md b/public/demos/tv-menu/CHANGELOG.md
index cd62510..257e63d 100644
--- a/public/demos/tv-menu/CHANGELOG.md
+++ b/public/demos/tv-menu/CHANGELOG.md
@@ -5,6 +5,11 @@ All notable changes to `@todovue/tv-menu` will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.1.5] - 2026-01-30
+
+### Changed
+- Removed transform and padding adjustments for the button active state.
+
## [1.1.4] - 2026-01-27
### Changed
@@ -134,6 +139,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Vite build configuration with CSS injection
- Demo playground with example implementations
+[1.1.5]: https://github.com/TODOvue/tv-menu/pull/10/files
[1.1.4]: https://github.com/TODOvue/tv-menu/pull/9/files
[1.1.3]: https://github.com/TODOvue/tv-menu/pull/8/files
[1.1.2]: https://github.com/TODOvue/tv-menu/pull/7/files
diff --git a/public/demos/tv-progress-bar/CHANGELOG.md b/public/demos/tv-progress-bar/CHANGELOG.md
index 4e47387..24d7a65 100644
--- a/public/demos/tv-progress-bar/CHANGELOG.md
+++ b/public/demos/tv-progress-bar/CHANGELOG.md
@@ -5,6 +5,14 @@ All notable changes to `@todovue/tv-progress-bar` will be documented in this fil
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.1.2] - 2026-01-29
+
+### Fixed
+- Corrected floating label positioning calculations to ensure proper alignment within input fields.
+
+### Added
+- Introduced a loader mode with a `modelValue` prop to allow for external control of progress state.
+
## [1.1.1] - 2026-01-27
### Changed
@@ -79,6 +87,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Comprehensive documentation and usage examples
- Demo playground with multiple configuration examples
+[1.1.2]: https://github.com/TODOvue/tv-progress-bar/pull/4/files
[1.1.1]: https://github.com/TODOvue/tv-progress-bar/pull/3/files
[1.1.0]: https://github.com/TODOvue/tv-progress-bar/pull/2/files
[1.0.0]: https://github.com/TODOvue/tv-progress-bar/pull/1/files
diff --git a/public/demos/tv-progress-bar/README.md b/public/demos/tv-progress-bar/README.md
index eb22975..e744cc2 100644
--- a/public/demos/tv-progress-bar/README.md
+++ b/public/demos/tv-progress-bar/README.md
@@ -212,6 +212,7 @@ import { TvProgressBar } from '@todovue/tv-progress-bar'
| showLabel | Boolean | false | Whether to show the percentage label. |
| labelPosition | String | 'inside' | Label position: 'inside' or 'floating'. |
| checkpoints | Array | [] | Array of numbers (0-100) to show indicators on the bar. |
+| modelValue | Number | null | Sets the progress manually (0-100). Overrides scroll tracking. |
### Prop Details
@@ -722,6 +723,38 @@ const articleContainer = ref(null)
+
+### Loader Mode
+Use the `modelValue` prop to manually control the progress, making it function like a loader.
+
+```vue
+
+
+
+
+
+```
```
### Conditional Rendering
diff --git a/public/demos/tv-scroll-top/CHANGELOG.md b/public/demos/tv-scroll-top/CHANGELOG.md
index 3234079..476d221 100644
--- a/public/demos/tv-scroll-top/CHANGELOG.md
+++ b/public/demos/tv-scroll-top/CHANGELOG.md
@@ -5,6 +5,11 @@ All notable changes to `@todovue/tv-scroll-top` will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.0.4] - 2026-01-30
+
+### Changed
+- Removed the unnecessary visibility toggle functionality during page scrolling.
+
## [1.0.3] - 2026-01-27
### Changed
@@ -64,6 +69,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- CommonJS build for compatibility
- Comprehensive documentation and examples
+[1.0.4]: https://github.com/TODOvue/tv-scroll-top/pull/4/files
[1.0.3]: https://github.com/TODOvue/tv-scroll-top/pull/3/files
[1.0.2]: https://github.com/TODOvue/tv-scroll-top/pull/2/files
[1.0.0]: https://github.com/TODOvue/tv-scroll-top/pull/1/files
diff --git a/public/demos/tv-toc/CHANGELOG.md b/public/demos/tv-toc/CHANGELOG.md
index c0cb26f..944a2b1 100644
--- a/public/demos/tv-toc/CHANGELOG.md
+++ b/public/demos/tv-toc/CHANGELOG.md
@@ -5,6 +5,14 @@ All notable changes to `@todovue/tv-toc` will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.2.0] - 2026-01-30
+
+### Added
+- Added a compact mode option to the Table of Contents component.
+
+### Changed
+- Updated the visual styles for the Table of Contents component.
+
## [1.1.1] - 2026-01-27
### Changed
@@ -73,6 +81,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Minimal default styles and BEM-like CSS classes for easy customization.
- Vite demo with basic and blog-like TOC examples.
+[1.2.0]: https://github.com/TODOvue/tv-toc/pull/6/files
[1.1.1]: https://github.com/TODOvue/tv-toc/pull/5/files
[1.1.0]: https://github.com/TODOvue/tv-toc/pull/4/files
[1.0.2]: https://github.com/TODOvue/tv-toc/pull/3/files
diff --git a/public/demos/tv-toc/README.md b/public/demos/tv-toc/README.md
index 3d40fc6..028f1d8 100644
--- a/public/demos/tv-toc/README.md
+++ b/public/demos/tv-toc/README.md
@@ -177,6 +177,7 @@ import { TvToc } from '@todovue/tv-toc'
| marker | Boolean | `false` | Whether to display a visual marker for the active item. | `false` |
| collapsible | Boolean | `false` | Whether sublists can be collapsed/expanded. | `false` |
| activeClass | String | `'active'` | Custom CSS class for the active item. | `false` |
+| compact | Boolean | `false` | Applies a compact style similar to Nuxt Content's TOC. | `false` |
| observerOptions | Object | `{}` | options to pass to the IntersectionObserver (rootMargin, threshold, etc). | `false` |
### `toc` shape
diff --git a/src/views/Home.vue b/src/views/Home.vue
index aeee70c..f8c5874 100644
--- a/src/views/Home.vue
+++ b/src/views/Home.vue
@@ -86,7 +86,7 @@ const searchQuery = (query) => {
-
+