carbon-components-vue
carbon-components-vue copied to clipboard
@carbon/vue - Vue 3 Epic
There are a number of decisions to be made with regards to a Vue 3 version of @carbon/vue. Each of these will be linked to from here with an indication here as to the result of any decision made.
NOTES:
- All choices should aim to resolve down to Yes, No or simple (one or two words) decision.
- All choices should indicate a necessity; Must, Should, Could. Use 'must' to indicate it is a Vue 3 requirement or a project blocker, use 'should' to indicate Vue 3 documentation suggests this or it is thought of as best practice.
- Related can be for any reason, e.g. #xxx impacts on the decision for #yyy
| Choice | Necessity | Decision | Related |
|---|---|---|---|
| #1063 - Should story production be simplified? | Could | Yes | - |
| #1062 - Should V3 use docgen or similar | Could | Yes | - |
| #1024 - Remove or remedy functional component use for Vue 3 | Should | - | - |
| #1023 - Remove root wrapper and cv-wrapper where possible | Should | - | - |
| #1022 - Update custom directive | Must | - | - |
| #1021 - Review support for array ref | Must | - | - |
| #591 - Export consts from components | Must | - | Typescript |
| #580 - Adopt convention for attribute names | Must | - | - |
| Make use of teleport | Should | - | - |
| Use Typescript | Should | No. V4, learning two things at once a bad idea. @carbon/vue-icons not typescript | - |
| Continue use of single file components with HTML templates | Should | - | - |
| Use composition API only | Should | Yes | - |
| Use latest syntax only | Should | Yes | - |
Use script setup/ref sugar |
Could | - | - |
| Update Vue package example to Vue 3 | Must | - | - |
| Update Vue Codepen/CodeSandbox examples to Vue 3 | Must | - | - |
| Include Codesandbox examples in repo | Could | - | - |
| A single input wrapper component e.g. label, help, error | Could | - | - |
| Drop support for deprecated props | Should | - | - |
| Treat carbon-components-react as canonical implementation | Must | Review during alpha | - |
| Move towards carbon-components-react API possible break | Should | No. Not need to add breaking changes. | - |
| Keep options for data and dom versions e.g. |
Should | - | - |
| Provide an upgrade document | Must | - | - |
| Update v-model use (BREAKING) | Must | - | - |
| Replace Sync with v-model modifier | Must | - | - |
| Use slot syntax is latest | Must | Yes | - |
| Social media/vue awesome shout outs when complete | Must | - | - |
| Use "emits" syntax to define component events | Must | - | - |
| Update v-for ref usage | Must | - | - |
| Update render syntax use | Must | - | - |
| Fix @carbon/icons-vue for Vue 3 | Must | - | - |
| Update lifecycle destroyed to unmounted | Must | - | - |
| Update beforeDestroy to beforeUnmount | Must | - | - |
| Test coverage for each Vue 3 component | Should | Yes as each component created | - |
| Use testing-library/vue | Could | Only if available in Vue CLI 5 | - |
| Remove mixins | Should | Props example in CvButton | - |
| Update array watch with deep as needed | Must | - | - |
| Remove use of $on | Must | - | - |
| Remove use of $children | Must | - | - |
| Use monorepo | Could | - | codesandbox |
| Create a .next repository or stick with a branch | Could | - | - |
| Use github actions to build and publish package(s) | Should | - | |
| Ues codesandbox instead of storybook? | - | - | |
Should we rename files and folders from cv-xxx to CvXxx? Possible old path used directly. |
Tempted by yes with upgrade guidelines (and regex instructions) | - |
Tasks:
- [ ] Select a set of components that covers much of the above to create straw man project.
Frustrating that storybook does not yet work with Vue 3 https://github.com/storybookjs/storybook/issues/10654
@lee-chase Storybook Vue 3 support is in preview as outlined at the end of that thread.
@lee-chase Storybook Vue 3 support is in preview as outlined at the end of that thread.
Got it working thanks.
Will Vue 3 support carbon design components?
With Vue2 reaching end-of-life at the end of this year (Dec. 31, 2023), just wanted to drop a quick question on if Vue3 support was going to be occurring before then or not? Thanks!
Vue2 EOL reference: https://v2.vuejs.org/lts/
Any estimate on when Vue3 will be fully supported?
Hi @davidnixon,
From user point of view TypeScript or atleast d.ts generation, Carbon V11 support are off the table?
As contributor vue-cli -> vite migration can happen?
I will gladly participate in any of them.