@maltjoy/mcp-server 0.3.1 → 0.3.2

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.
Files changed (90) hide show
  1. package/README.md +11 -28
  2. package/dist/doc/VJoyAdminBanner/metadata.json +1 -0
  3. package/dist/doc/VJoyAvailability/metadata.json +1 -0
  4. package/dist/doc/VJoyAvatar/metadata.json +1 -0
  5. package/dist/doc/VJoyAvatarsList/metadata.json +1 -0
  6. package/dist/doc/VJoyBadge/metadata.json +1 -0
  7. package/dist/doc/VJoyBadgeLevel/metadata.json +1 -0
  8. package/dist/doc/VJoyBlockSkeleton/metadata.json +1 -0
  9. package/dist/doc/VJoyBottomSheet/metadata.json +1 -0
  10. package/dist/doc/VJoyBottomSheetTrigger/metadata.json +1 -0
  11. package/dist/doc/VJoyButton/metadata.json +1 -0
  12. package/dist/doc/VJoyCheckbox/metadata.json +1 -0
  13. package/dist/doc/VJoyCollapse/metadata.json +1 -0
  14. package/dist/doc/VJoyCollapseItem/metadata.json +1 -0
  15. package/dist/doc/VJoyCompanyAvatar/metadata.json +1 -0
  16. package/dist/doc/VJoyDialog/metadata.json +1 -0
  17. package/dist/doc/VJoyDialogTrigger/metadata.json +1 -0
  18. package/dist/doc/VJoyDot/metadata.json +1 -0
  19. package/dist/doc/VJoyDrawer/metadata.json +1 -0
  20. package/dist/doc/VJoyDrawerTrigger/metadata.json +1 -0
  21. package/dist/doc/VJoyDropdown/metadata.json +1 -0
  22. package/dist/doc/VJoyDropdownList/metadata.json +1 -0
  23. package/dist/doc/VJoyDropzone/metadata.json +1 -0
  24. package/dist/doc/VJoyFilterBar/metadata.json +1 -0
  25. package/dist/doc/VJoyFilterBarButton/metadata.json +1 -0
  26. package/dist/doc/VJoyFormError/metadata.json +1 -0
  27. package/dist/doc/VJoyFormFieldSkeleton/metadata.json +1 -0
  28. package/dist/doc/VJoyFormGroup/metadata.json +1 -0
  29. package/dist/doc/VJoyFunnel/metadata.json +1 -0
  30. package/dist/doc/VJoyFunnelFooter/metadata.json +1 -0
  31. package/dist/doc/VJoyFunnelHeader/metadata.json +1 -0
  32. package/dist/doc/VJoyHighlight/metadata.json +1 -0
  33. package/dist/doc/VJoyIcon/metadata.json +1 -0
  34. package/dist/doc/VJoyIndicator/metadata.json +1 -0
  35. package/dist/doc/VJoyIndicators/metadata.json +1 -0
  36. package/dist/doc/VJoyInput/JoyInput.types.ts +1 -1
  37. package/dist/doc/VJoyInput/metadata.json +7 -4
  38. package/dist/doc/VJoyInputDigit/metadata.json +1 -0
  39. package/dist/doc/VJoyInputPassword/metadata.json +5 -2
  40. package/dist/doc/VJoyLabel/metadata.json +1 -0
  41. package/dist/doc/VJoyLink/metadata.json +1 -0
  42. package/dist/doc/VJoyListItem/metadata.json +1 -0
  43. package/dist/doc/VJoyMenu/metadata.json +1 -0
  44. package/dist/doc/VJoyMenuItem/metadata.json +1 -0
  45. package/dist/doc/VJoyMultiCheckbox/metadata.json +1 -0
  46. package/dist/doc/VJoyPagination/metadata.json +1 -0
  47. package/dist/doc/VJoyPanel/metadata.json +1 -0
  48. package/dist/doc/VJoyPanelSection/metadata.json +1 -0
  49. package/dist/doc/VJoyPasswordRequirement/metadata.json +1 -0
  50. package/dist/doc/VJoyProductTour/metadata.json +1 -0
  51. package/dist/doc/VJoyProductTourTrigger/metadata.json +1 -0
  52. package/dist/doc/VJoyProgressBar/metadata.json +1 -0
  53. package/dist/doc/VJoyRadio/metadata.json +1 -0
  54. package/dist/doc/VJoyRadioGroup/metadata.json +1 -0
  55. package/dist/doc/VJoyRatingStars/metadata.json +1 -0
  56. package/dist/doc/VJoyScreenLoader/metadata.json +1 -0
  57. package/dist/doc/VJoySelect/metadata.json +1 -0
  58. package/dist/doc/VJoySelectableItem/metadata.json +1 -0
  59. package/dist/doc/VJoySelectableItemGroup/metadata.json +1 -0
  60. package/dist/doc/VJoySeparator/metadata.json +1 -0
  61. package/dist/doc/VJoySnackbar/metadata.json +1 -0
  62. package/dist/doc/VJoySpinner/metadata.json +1 -0
  63. package/dist/doc/VJoyStep/metadata.json +1 -0
  64. package/dist/doc/VJoyStepper/metadata.json +1 -0
  65. package/dist/doc/VJoyTab/metadata.json +1 -0
  66. package/dist/doc/VJoyTabs/metadata.json +1 -0
  67. package/dist/doc/VJoyTag/metadata.json +1 -0
  68. package/dist/doc/VJoyTagsInput/metadata.json +1 -0
  69. package/dist/doc/VJoyTagsList/metadata.json +1 -0
  70. package/dist/doc/VJoyTemplate/metadata.json +1 -0
  71. package/dist/doc/VJoyTemplateShape/metadata.json +1 -0
  72. package/dist/doc/VJoyText/metadata.json +1 -0
  73. package/dist/doc/VJoyTextarea/metadata.json +1 -0
  74. package/dist/doc/VJoyTitleBrand/metadata.json +1 -0
  75. package/dist/doc/VJoyToggle/metadata.json +1 -0
  76. package/dist/doc/VJoyTooltip/metadata.json +1 -0
  77. package/dist/doc/VJoyUserCard/metadata.json +1 -0
  78. package/dist/doc/VJoyWalkthrough/metadata.json +1 -0
  79. package/dist/doc/VJoyWalkthroughTrigger/metadata.json +1 -0
  80. package/dist/doc/VJoyWrapper/metadata.json +1 -0
  81. package/dist/doc/index.json +80 -2
  82. package/dist/parser.d.ts +9 -0
  83. package/dist/parser.d.ts.map +1 -1
  84. package/dist/parser.js +22 -0
  85. package/dist/parser.js.map +1 -1
  86. package/dist/tools/list-components.d.ts +2 -1
  87. package/dist/tools/list-components.d.ts.map +1 -1
  88. package/dist/tools/list-components.js +3 -3
  89. package/dist/tools/list-components.js.map +1 -1
  90. package/package.json +1 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@ MCP (Model Context Protocol) server for the Joy Design System. This server expos
4
4
 
5
5
  ## Features
6
6
 
7
- - 🔍 List all 74 available Joy Vue3 components
7
+ - 🔍 List all available Joy Vue3 components with descriptions
8
8
  - 📚 Access component documentation (props, events, slots, exposed members)
9
9
  - 🏷️ Retrieve TypeScript types definitions for component props (variants, sizes, etc.)
10
10
  - 🎨 List 132 design tokens (colors, spacing, typography, etc.)
@@ -20,7 +20,7 @@ pnpm install
20
20
  pnpm build # This also generates component documentation JSON files
21
21
  ```
22
22
 
23
- > **Note:** The build process automatically generates JSON documentation for all 74 components. This is required for the server to work.
23
+ > **Note:** The build process automatically generates JSON documentation for all components. This is required for the server to work.
24
24
 
25
25
  ## Usage
26
26
 
@@ -43,7 +43,7 @@ pnpm dev
43
43
 
44
44
  ### 1. `joy_list_components`
45
45
 
46
- Lists all available Joy Vue3 components from the @maltjoy/core-vue library.
46
+ Lists all available Joy Vue3 components from the @maltjoy/core-vue library, with descriptions extracted from Storybook stories.
47
47
 
48
48
  **Parameters:** None
49
49
 
@@ -51,9 +51,10 @@ Lists all available Joy Vue3 components from the @maltjoy/core-vue library.
51
51
  ```json
52
52
  {
53
53
  "components": [
54
- "VJoyAdminBanner",
55
- "VJoyAvailability",
56
- "VJoyAvatar",
54
+ {
55
+ "name": "VJoyButton",
56
+ "description": "A versatile button component supporting multiple variants, sizes, and states."
57
+ },
57
58
  "..."
58
59
  ],
59
60
  "count": 74
@@ -234,11 +235,10 @@ joy-mcp-server/
234
235
  │ └── *.types.ts # Component TypeScript types
235
236
  ├── package.json
236
237
  ├── tsconfig.json
237
- ├── README.md
238
- └── TROUBLESHOOTING.md # Troubleshooting guide
238
+ └── README.md
239
239
  ```
240
240
 
241
- The server reads the generated JSON documentation from `dist/doc/` which is automatically created during the build process by extracting metadata from Vue component files in `@maltjoy/core-vue`.
241
+ The server reads the generated JSON documentation from `dist/doc/` which is automatically created during the build process by extracting metadata from Vue component files in `@maltjoy/core-vue`. Component descriptions are extracted from JSDoc comments in Storybook story files.
242
242
 
243
243
  ## Development
244
244
 
@@ -260,12 +260,6 @@ pnpm run dev
260
260
  # Generate only documentation (no compilation)
261
261
  pnpm run generate:components-docs:json
262
262
 
263
- # Test the server locally
264
- pnpm run test
265
-
266
- # Reload the server (kill MCP process)
267
- pnpm run reload
268
-
269
263
  # Start the server
270
264
  pnpm start
271
265
 
@@ -275,23 +269,12 @@ pnpm run inspector
275
269
 
276
270
  ## Troubleshooting
277
271
 
278
- ### MCP server returns 0 components in Cursor
279
-
280
- If you're getting an empty list of components in Cursor but the server works fine locally:
281
-
282
- 1. **Quick fix:** Use Cursor Command Palette → `Developer: Reload Window`
283
-
284
- 2. **Or run:** `pnpm run reload` to kill the old server process
285
-
286
- 3. **Verify locally:** `pnpm run test` should show 74 components
287
-
288
- For detailed troubleshooting steps, see [TROUBLESHOOTING.md](./TROUBLESHOOTING.md)
289
-
290
272
  ### Common Issues
291
273
 
292
274
  - **Documentation not generated:** Run `pnpm run build` to compile and generate docs
293
- - **Changes not taking effect:** Reload Cursor window to restart MCP server
275
+ - **Changes not taking effect:** Reload your editor window to restart the MCP server
294
276
  - **Server fails to start:** Check that `dist/doc/index.json` exists
277
+ - **0 components returned:** Reload your editor window (`Developer: Reload Window` in Cursor/VS Code)
295
278
 
296
279
  ## License
297
280
 
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyAdminBanner",
3
3
  "displayName": "VJoyAdminBanner",
4
+ "description": "The AdminBanner component displays a visual indicator when users are viewing the application in admin mode. It features a distinctive banner with an eye icon and customizable label, typically positioned at the top of the interface to clearly communicate the current viewing context to administrators.",
4
5
  "props": [
5
6
  {
6
7
  "name": "label",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyAvailability",
3
3
  "displayName": "VJoyAvailability",
4
+ "description": "A status indicator component for displaying user availability information. Features colored dots and optional labels to communicate different availability states such as available, not available, available soon, or partially available. Can be displayed as a simple dot indicator or with descriptive text labels that handle long content gracefully.",
4
5
  "props": [
5
6
  {
6
7
  "name": "label",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyAvatar",
3
3
  "displayName": "VJoyAvatar",
4
+ "description": "A versatile avatar component for displaying user profile pictures, initials, or placeholders depending on given properties. Supports multiple sizes, fallback to initials when no photo is provided, anonymous states with icons, numeric indicators for \"more users\" displays, and special variants like strategy profiles and company avatars. Can be styled as clickable links and includes empty states for various use cases.",
4
5
  "props": [
5
6
  {
6
7
  "name": "size",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyAvatarsList",
3
3
  "displayName": "VJoyAvatarsList",
4
+ "description": "A container component for displaying multiple avatars in a styled group layout. Provides consistent spacing and alignment for avatar collections, with an optional compressed mode for more compact displays. Designed to work seamlessly with VJoyAvatar components.",
4
5
  "props": [
5
6
  {
6
7
  "name": "compress",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyBadge",
3
3
  "displayName": "VJoyBadge",
4
+ "description": "A versatile badge component for labeling, categorizing, and highlighting content with colored indicators. Supports various color variants for different semantic meanings, optional bulletpoint dots for visual emphasis, and can display either text labels or numeric values. Perfect for status indicators, tags, and notification counters.",
4
5
  "props": [
5
6
  {
6
7
  "name": "label",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyBadgeLevel",
3
3
  "displayName": "VJoyBadgeLevel",
4
+ "description": "A specialized badge component for displaying user achievement levels and status indicators. Features custom SVG icons for different categories including SuperMalter levels (with crown icons), High Potential badges (with diamond icons), verified status, and special designations like Malt Linker. Can display icons only or with accompanying text labels for different user recognition levels.",
4
5
  "props": [
5
6
  {
6
7
  "name": "superMalterLevel",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyBlockSkeleton",
3
3
  "displayName": "VJoyBlockSkeleton",
4
+ "description": "A highly configurable skeleton loading component for creating placeholder blocks during content loading. Features customizable dimensions, circle variant for avatars, and smooth shimmer animations to improve perceived performance. More flexible than VJoyFormFieldSkeleton and integrates seamlessly with VJoyWrapper for responsive layouts.",
4
5
  "props": [
5
6
  {
6
7
  "name": "circle",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyBottomSheet",
3
3
  "displayName": "VJoyBottomSheet",
4
+ "description": "",
4
5
  "props": [
5
6
  {
6
7
  "name": "closeLabel",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyBottomSheetTrigger",
3
3
  "displayName": "VJoyBottomSheetTrigger",
4
+ "description": "",
4
5
  "props": [
5
6
  {
6
7
  "name": "bottomSheet",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyButton",
3
3
  "displayName": "VJoyButton",
4
+ "description": "A button component supporting multiple variants, sizes, and states. Features icon support, loading states and can function as either a button or link element. Includes ripple effects and comprehensive styling options for different use cases from primary actions to subtle ghost buttons. **Tips:** set a \"href\" attribute to make the button a link.",
4
5
  "props": [
5
6
  {
6
7
  "name": "size",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyCheckbox",
3
3
  "displayName": "VJoyCheckbox",
4
+ "description": "A form checkbox component with support for standard, indeterminate, and disabled states. Features accessible labeling, focus indicators, form integration with validation feedback, and additional content slots. Supports both single selections scenarios with proper event handling and state management.",
4
5
  "props": [
5
6
  {
6
7
  "name": "invalid",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyCollapse",
3
3
  "displayName": "VJoyCollapse",
4
+ "description": "A container component for creating accordion and collapsible content sections. Manages multiple VJoyCollapseItem components with support for accordion mode (single open item) or standard collapse behavior (multiple open items). Features v-model integration for programmatic control and various visual modes for different design requirements.",
4
5
  "props": [
5
6
  {
6
7
  "name": "accordion",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyCollapseItem",
3
3
  "displayName": "VJoyCollapseItem",
4
+ "description": "An individual collapsible content item that can expand and collapse to show/hide content. Features header and subheader support, optional summary icons, preview content when collapsed, and custom header actions. Can be used within VJoyCollapse for grouped accordion behavior.",
4
5
  "props": [
5
6
  {
6
7
  "name": "open",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyCompanyAvatar",
3
3
  "displayName": "VJoyCompanyAvatar",
4
+ "description": "DEPRECATED. Use VJoyAvatar component instead.",
4
5
  "props": [
5
6
  {
6
7
  "name": "size",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyDialog",
3
3
  "displayName": "VJoyDialog",
4
+ "description": "VJoyDialog component exposes two methods: `show` and `hide`. **Both are asynchronous**. You can use the `VJoyDialogTrigger` component as well if it's easier. ```html <template> <VJoyDialog ref=\"dialog\">...</VJoyDialog> </template> <script lang=\"ts\" setup> import {ref} from 'vue'; import {VJoyDialog} from '@maltjoy/core-vue'; const dialog = ref<InstanceType<typeof VJoyDialog>>(); async function showDialog() { await dialog.value?.show(); } // execute the publicly exposed hide function. async function hideDialog() { // you can pass an object as parameter: {fireHideEvent: false} if you don't want to emit dialog:hide event. await dialog.value?.hide(); } </script> ``` > FYI, the \"teleport\" property is applied on these docs only for preview quality purpose. > By default, dialogs are rendered at the end of body tag.",
4
5
  "props": [
5
6
  {
6
7
  "name": "size",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyDialogTrigger",
3
3
  "displayName": "VJoyDialogTrigger",
4
+ "description": "",
4
5
  "props": [
5
6
  {
6
7
  "name": "dialog",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyDot",
3
3
  "displayName": "VJoyDot",
4
+ "description": "A simple colored dot indicator component for status display and notifications. Can display as a plain colored dot or include numeric values for notification counters. Features automatic formatting for large numbers (99+) and supports multiple color variants for different semantic meanings and visual emphasis.",
4
5
  "props": [
5
6
  {
6
7
  "name": "number",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyDrawer",
3
3
  "displayName": "VJoyDrawer",
4
+ "description": "VJoyDrawer component exposes two methods: `show` and `hide`. **Both are asynchronous**. You can use the `VJoyDrawerTrigger` component as well if it's easier. ```html <template> <VJoyDrawer ref=\"dialog\">...</VJoyDrawer> </template> <script lang=\"ts\" setup> import {ref} from 'vue'; import {VJoyDrawer} from '@maltjoy/core-vue'; const drawer = ref<InstanceType<typeof VJoyDrawer> | null>(null); async function showDrawer() { await drawer.value?.show(); } // execute the publicly exposed hide function. async function hideDrawer() { // you can pass an object as parameter: {fireHideEvent: false} if you don't want to emit drawer:hide event. await drawer.value?.hide(); } </script> ``` If you need confirmation from the user or wait for an API call to close the drawer you can use the `on-before-hide` function property. This function can be either synchronous or asynchronous and should return a boolean. Returning `true` closes the drawer and returning `false` cancels the closing.",
4
5
  "props": [
5
6
  {
6
7
  "name": "size",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyDrawerTrigger",
3
3
  "displayName": "VJoyDrawerTrigger",
4
+ "description": "",
4
5
  "props": [
5
6
  {
6
7
  "name": "drawer",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyDropdown",
3
3
  "displayName": "VJoyDropdown",
4
+ "description": "A flexible dropdown component for creating contextual menus and option lists. Features customizable trigger buttons, positioning options (left/right/up/down), and support for both predefined option lists and completely custom content. Includes proper accessibility support and click-outside behavior for seamless user interaction. **ACCESSIBILITY FOCUS:** When using this component, to properly apply useful informations for screen readers, you will need to set an **aria-label** to your dropdown trigger if it has no default text.",
4
5
  "props": [
5
6
  {
6
7
  "name": "reset",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyDropdownList",
3
3
  "displayName": "VJoyDropdownList",
4
+ "description": "The core list component used within dropdown interfaces for displaying selectable options. Features customizable sizing, header/footer slots, keyboard navigation, and accessibility compliance. Supports both predefined option arrays and custom content through slots. Can be used standalone or as part of the VJoyDropdown component for complete dropdown functionality.",
4
5
  "props": [
5
6
  {
6
7
  "name": "reset",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyDropzone",
3
3
  "displayName": "VJoyDropzone",
4
+ "description": "A file upload component with drag-and-drop functionality for handling file selection and management. Supports single or multiple file uploads, file validation and customizable file displays. Features visual feedback for drag states, error handling, and flexible content slots for file information and actions. The dropzone required as `v-model` an array containing objects with at least the \"name\" property.",
4
5
  "props": [
5
6
  {
6
7
  "name": "modelValue",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyFilterBar",
3
3
  "displayName": "VJoyFilterBar",
4
+ "description": "A container component for creating grouped filter interfaces with connected filter buttons. Automatically applies appropriate border radius styling to create seamless filter groups that work perfectly with VJoyFilterBarButton components. Includes accessibility support and integrates well with dropdowns for complex filtering scenarios.",
4
5
  "props": [
5
6
  {
6
7
  "name": "ariaLabel",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyFilterBarButton",
3
3
  "displayName": "VJoyFilterBarButton",
4
+ "description": "",
4
5
  "props": [
5
6
  {
6
7
  "name": "active",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyFormError",
3
3
  "displayName": "VJoyFormError",
4
+ "description": "A form error display component for showing error messages. Features a warning icon, support for single error messages or multiple error lists, and visibility control for conditional error display. Includes proper accessibility attributes with alert role for screen reader announcement of form errors.",
4
5
  "props": [
5
6
  {
6
7
  "name": "visible",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyFormFieldSkeleton",
3
3
  "displayName": "VJoyFormFieldSkeleton",
4
+ "description": "A specialized skeleton loading component designed specifically for form field placeholders. Features form-appropriate sizing, flexible layout support with VJoyWrapper integration, and consistent styling that matches form field dimensions. Perfect for creating skeleton forms and improving perceived loading performance in form-heavy interfaces. Skeleton is 100% width by default. If you want to have a better control on this, use the \"width\" property.",
4
5
  "props": [
5
6
  {
6
7
  "name": "size",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyFormGroup",
3
3
  "displayName": "VJoyFormGroup",
4
+ "description": "A form group component to group form elements together. It is used to group a label, any form component, and form errors together. It is also used to handle the gap between the form elements, and **it resets the existing margins** within form elements!",
4
5
  "props": [],
5
6
  "events": [],
6
7
  "slots": [
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyFunnel",
3
3
  "displayName": "VJoyFunnel",
4
+ "description": "A full-page layout component designed for multi-step workflows and guided user flows. Features decorative background shapes, header and footer areas, and seamless integration with stepper components. Optimized for mobile experiences and onboarding funnels with different visual profiles and customizable content areas.",
4
5
  "props": [
5
6
  {
6
7
  "name": "profile",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyFunnelFooter",
3
3
  "displayName": "VJoyFunnelFooter",
4
+ "description": "",
4
5
  "props": [],
5
6
  "events": [],
6
7
  "slots": [
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyFunnelHeader",
3
3
  "displayName": "VJoyFunnelHeader",
4
+ "description": "",
4
5
  "props": [],
5
6
  "events": [],
6
7
  "slots": [
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyHighlight",
3
3
  "displayName": "VJoyHighlight",
4
+ "description": "A content highlighting component for displaying important information with visual emphasis. Features different severity levels (success, info, warning, error, neutral), optional accent borders, customizable icons, and title support. Includes an experimental AI variant for AI-related content with special styling and decorative elements.",
4
5
  "props": [
5
6
  {
6
7
  "name": "variant",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyIcon",
3
3
  "displayName": "VJoyIcon",
4
+ "description": "An icon component supporting the complete Joy icon library with customizable sizing and theming. Features accessibility support with aria labels, multiple color variants and different size options. Provides consistent icon rendering across the design system with proper semantic markup and keyboard navigation capabilities.",
4
5
  "props": [
5
6
  {
6
7
  "name": "size",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyIndicator",
3
3
  "displayName": "VJoyIndicator",
4
+ "description": "",
4
5
  "props": [
5
6
  {
6
7
  "name": "variant",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyIndicators",
3
3
  "displayName": "VJoyIndicators",
4
+ "description": "A navigation component for creating page or content indicators, commonly used in carousels and dialogs. Manages a collection of VJoyIndicator components with selection state and v-model support. Features visual variants and automatic indicator management for seamless navigation experiences with proper accessibility and keyboard interaction support.",
4
5
  "props": [
5
6
  {
6
7
  "name": "variant",
@@ -10,7 +10,7 @@ export interface VJoyInputProps {
10
10
  disabled?: boolean;
11
11
  id?: string;
12
12
  invalid?: boolean;
13
- name: string;
13
+ name?: string;
14
14
  required?: boolean;
15
15
  /** Display a label on top of the element. Handy if you only need to pass a string. If you need more, use the VJoyLabel. */
16
16
  label?: string;
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyInput",
3
3
  "displayName": "VJoyInput",
4
+ "description": "A comprehensive form input component with extensive customization and validation features. Supports multiple input types, icon support, clearable functionality, unit displays, and comprehensive validation states. Features auto-focus capabilities, accessibility compliance, and seamless integration with form validation systems.",
4
5
  "props": [
5
6
  {
6
7
  "name": "autofocus",
@@ -57,10 +58,12 @@
57
58
  },
58
59
  {
59
60
  "name": "name",
60
- "type": "string",
61
- "required": true,
61
+ "type": "string | undefined",
62
+ "required": false,
62
63
  "description": "",
63
- "possibleValues": null
64
+ "possibleValues": [
65
+ "string"
66
+ ]
64
67
  },
65
68
  {
66
69
  "name": "required",
@@ -288,7 +291,7 @@
288
291
  },
289
292
  {
290
293
  "name": "name",
291
- "type": "string",
294
+ "type": "string | undefined",
292
295
  "isMethod": false
293
296
  },
294
297
  {
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyInputDigit",
3
3
  "displayName": "VJoyInputDigit",
4
+ "description": "One-time code input with auto-navigation between slots. Supports numeric filtering with disabled/invalid states.",
4
5
  "props": [
5
6
  {
6
7
  "name": "modelValue",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyInputPassword",
3
3
  "displayName": "VJoyInputPassword",
4
+ "description": "Password input built on top of VJoyInput with built-in visibility toggle.",
4
5
  "props": [
5
6
  {
6
7
  "name": "invalid",
@@ -73,11 +74,13 @@
73
74
  },
74
75
  {
75
76
  "name": "name",
76
- "type": "string",
77
+ "type": "string | undefined",
77
78
  "required": false,
78
79
  "default": "\"joy-input-password\"",
79
80
  "description": "",
80
- "possibleValues": null
81
+ "possibleValues": [
82
+ "string"
83
+ ]
81
84
  },
82
85
  {
83
86
  "name": "modelValue",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyLabel",
3
3
  "displayName": "VJoyLabel",
4
+ "description": "A flexible form label component with enhanced functionality for complex form layouts. Features size variants, required/optional indicators, tooltip support, and legend text capabilities. Supports both label and legend tag rendering for different form contexts with integrated accessibility features and consistent styling across the design system. All native attributes are not declared as Vue component properties. But the actual label tag inherits from every attribute you pass.",
4
5
  "props": [
5
6
  {
6
7
  "name": "size",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyLink",
3
3
  "displayName": "VJoyLink",
4
+ "description": "Simple link component that should adapt its style depending on the context. Could be a button if **href** prop is undefined (add a **type** prop if needed).",
4
5
  "props": [
5
6
  {
6
7
  "name": "color",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyListItem",
3
3
  "displayName": "VJoyListItem",
4
+ "description": "A structured list item component for creating consistent, interactive list entries. Features left and right content areas, optional icon support, hover states, and click handling. Perfect for data lists, navigation items, and content cards where consistent spacing and interactive feedback are essential for user experience.",
4
5
  "props": [
5
6
  {
6
7
  "name": "icon",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyMenu",
3
3
  "displayName": "VJoyMenu",
4
+ "description": "A navigation menu component for creating accessible menu lists with keyboard navigation support. Works with VJoyMenuItem components to build complex navigation structures with icons, status indicators, and various link types. Features proper ARIA attributes, selection states, and integration with routing systems for seamless navigation experiences. items property is deprecated. Please use VJoyMenuItem with default slot. Docs generation is broken for the VJoyMenuItem component. Here you have the props interface as workaround. ```ts interface IJoyMenuItem { label: string; icon?: TJoyIconsNames; current?: boolean; disabled?: boolean; status?: TJoyIconsNames; statusColor?: TJoyIconsColors; type?: Component | 'a' | 'button'; linkProps?: ComponentProps<T>; } ```",
4
5
  "props": [
5
6
  {
6
7
  "name": "items",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyMenuItem",
3
3
  "displayName": "VJoyMenuItem",
4
+ "description": "",
4
5
  "props": [
5
6
  {
6
7
  "name": "label",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyMultiCheckbox",
3
3
  "displayName": "VJoyMultiCheckbox",
4
+ "description": "A multi-selection checkbox group component for handling arrays of selected values. Simplifies multi-selection scenarios by managing checkbox states and array manipulation automatically. Features integrated labeling, fieldset structure for accessibility, and customizable checkbox content through slots. Perfect for filtering interfaces and bulk selection operations.",
4
5
  "props": [
5
6
  {
6
7
  "name": "options",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyPagination",
3
3
  "displayName": "VJoyPagination",
4
+ "description": "A complete pagination component for navigating through large datasets with proper accessibility support. Features automatic page number calculation, gap handling for large page counts, customizable navigation arrows, and router integration support through slots. Includes proper ARIA attributes and keyboard navigation for an accessible pagination experience across different content types.",
4
5
  "props": [
5
6
  {
6
7
  "name": "currentPage",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyPanel",
3
3
  "displayName": "VJoyPanel",
4
+ "description": "A structured content container component providing consistent layout patterns for cards and sections. Features header with title/subtitle/actions, main body content, footer actions, and loading overlay support. Includes flexible sizing, padding options, AI variant styling, and seamless integration with VJoyPanelSection for complex nested layouts and modular content organization.",
4
5
  "props": [
5
6
  {
6
7
  "name": "loading",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyPanelSection",
3
3
  "displayName": "VJoyPanelSection",
4
+ "description": "",
4
5
  "props": [],
5
6
  "events": [],
6
7
  "slots": [
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyPasswordRequirement",
3
3
  "displayName": "VJoyPasswordRequirement",
4
+ "description": "A component to display a password requirement status. This is meant to be displayed under a VJoyInput of type password.",
4
5
  "props": [
5
6
  {
6
7
  "name": "label",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyProductTour",
3
3
  "displayName": "VJoyProductTour",
4
+ "description": "An advanced guided tour component for creating interactive product demonstrations with element highlighting. Features intelligent positioning around target elements, multi-step tour progression, customizable banners and actions, and spotlight effects for drawing user attention. Includes SSR compatibility and proper z-index management through Teleport for seamless user onboarding and feature discovery experiences.",
4
5
  "props": [
5
6
  {
6
7
  "name": "icon",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyProductTourTrigger",
3
3
  "displayName": "VJoyProductTourTrigger",
4
+ "description": "",
4
5
  "props": [
5
6
  {
6
7
  "name": "productTour",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyProgressBar",
3
3
  "displayName": "VJoyProgressBar",
4
+ "description": "A visual progress indicator component for displaying completion status with percentage or step-based progress. Features multiple color variants for different semantic meanings (success, warning, error), optional label display, and dual mode support (percentage-based or step-based calculations). Perfect for indicating task completion, loading states, and multi-step process progress with clear visual feedback.",
4
5
  "props": [
5
6
  {
6
7
  "name": "color",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyRadio",
3
3
  "displayName": "VJoyRadio",
4
+ "description": "",
4
5
  "props": [
5
6
  {
6
7
  "name": "invalid",
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "JoyRadioGroup",
3
3
  "displayName": "VJoyRadioGroup",
4
+ "description": "A container component for organizing radio button groups with proper fieldset structure and accessibility. Features horizontal and vertical layout options, legend support for group labeling, and seamless integration with VJoyRadio components. Provides proper ARIA attributes and form association for accessible single-choice selection interfaces with consistent spacing and visual organization. Use the same v-model for each `VJoyRadio` (modelValue). Create a ref for it.",
4
5
  "props": [
5
6
  {
6
7
  "name": "direction",