@maltjoy/mcp-server 0.3.1 → 0.4.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.
Files changed (104) hide show
  1. package/README.md +30 -28
  2. package/dist/doc/VJoyAdminBanner/metadata.json +2 -0
  3. package/dist/doc/VJoyAvailability/metadata.json +2 -0
  4. package/dist/doc/VJoyAvatar/metadata.json +2 -0
  5. package/dist/doc/VJoyAvatarsList/metadata.json +2 -0
  6. package/dist/doc/VJoyBadge/metadata.json +2 -0
  7. package/dist/doc/VJoyBadgeLevel/metadata.json +2 -0
  8. package/dist/doc/VJoyBlockSkeleton/metadata.json +2 -0
  9. package/dist/doc/VJoyBottomSheet/metadata.json +2 -0
  10. package/dist/doc/VJoyBottomSheetTrigger/metadata.json +2 -0
  11. package/dist/doc/VJoyButton/metadata.json +2 -0
  12. package/dist/doc/VJoyButtonCard/JoyButtonCard.types.ts +15 -0
  13. package/dist/doc/VJoyButtonCard/metadata.json +78 -0
  14. package/dist/doc/VJoyCheckbox/JoyCheckbox.types.ts +26 -0
  15. package/dist/doc/VJoyCheckbox/metadata.json +29 -27
  16. package/dist/doc/VJoyCheckboxCard/JoyCheckboxCard.types.ts +8 -0
  17. package/dist/doc/VJoyCheckboxCard/metadata.json +221 -0
  18. package/dist/doc/VJoyCheckboxGroup/metadata.json +338 -0
  19. package/dist/doc/VJoyCollapse/metadata.json +2 -0
  20. package/dist/doc/VJoyCollapseItem/metadata.json +2 -0
  21. package/dist/doc/VJoyCompanyAvatar/metadata.json +2 -0
  22. package/dist/doc/VJoyDialog/metadata.json +2 -0
  23. package/dist/doc/VJoyDialogTrigger/metadata.json +2 -0
  24. package/dist/doc/VJoyDot/metadata.json +2 -0
  25. package/dist/doc/VJoyDrawer/metadata.json +2 -0
  26. package/dist/doc/VJoyDrawerTrigger/metadata.json +2 -0
  27. package/dist/doc/VJoyDropdown/metadata.json +76 -74
  28. package/dist/doc/VJoyDropdownList/metadata.json +2 -0
  29. package/dist/doc/VJoyDropzone/metadata.json +2 -0
  30. package/dist/doc/VJoyFilterBar/metadata.json +2 -0
  31. package/dist/doc/VJoyFilterBarButton/metadata.json +2 -0
  32. package/dist/doc/VJoyFloatingActionsBar/metadata.json +70 -0
  33. package/dist/doc/VJoyFormError/metadata.json +2 -0
  34. package/dist/doc/VJoyFormFieldSkeleton/metadata.json +2 -0
  35. package/dist/doc/VJoyFormGroup/metadata.json +2 -0
  36. package/dist/doc/VJoyFunnel/metadata.json +2 -0
  37. package/dist/doc/VJoyFunnelFooter/metadata.json +2 -0
  38. package/dist/doc/VJoyFunnelHeader/metadata.json +2 -0
  39. package/dist/doc/VJoyHighlight/metadata.json +2 -0
  40. package/dist/doc/VJoyIcon/metadata.json +2 -0
  41. package/dist/doc/VJoyIconButton/JoyIconButton.types.ts +6 -0
  42. package/dist/doc/VJoyIconButton/metadata.json +116 -0
  43. package/dist/doc/VJoyIndicator/metadata.json +2 -0
  44. package/dist/doc/VJoyIndicators/metadata.json +2 -0
  45. package/dist/doc/VJoyInput/JoyInput.types.ts +1 -1
  46. package/dist/doc/VJoyInput/metadata.json +18 -14
  47. package/dist/doc/VJoyInputDigit/metadata.json +2 -0
  48. package/dist/doc/VJoyInputNumber/metadata.json +286 -0
  49. package/dist/doc/VJoyInputPassword/metadata.json +36 -32
  50. package/dist/doc/VJoyLabel/metadata.json +6 -4
  51. package/dist/doc/VJoyLink/metadata.json +11 -9
  52. package/dist/doc/VJoyListItem/metadata.json +2 -0
  53. package/dist/doc/VJoyMenu/metadata.json +2 -0
  54. package/dist/doc/VJoyMenuItem/metadata.json +3 -1
  55. package/dist/doc/VJoyMultiCheckbox/metadata.json +193 -12
  56. package/dist/doc/VJoyPagination/metadata.json +2 -0
  57. package/dist/doc/VJoyPanel/metadata.json +2 -0
  58. package/dist/doc/VJoyPanelSection/metadata.json +2 -0
  59. package/dist/doc/VJoyPasswordRequirement/metadata.json +2 -0
  60. package/dist/doc/VJoyProductTour/metadata.json +2 -0
  61. package/dist/doc/VJoyProductTourTrigger/metadata.json +2 -0
  62. package/dist/doc/VJoyProgressBar/metadata.json +2 -5
  63. package/dist/doc/VJoyRadio/metadata.json +2 -0
  64. package/dist/doc/VJoyRadioGroup/metadata.json +4 -2
  65. package/dist/doc/VJoyRatingStars/metadata.json +2 -0
  66. package/dist/doc/VJoyScreenLoader/metadata.json +2 -0
  67. package/dist/doc/VJoySelect/metadata.json +34 -32
  68. package/dist/doc/VJoySelectableItem/metadata.json +2 -0
  69. package/dist/doc/VJoySelectableItemGroup/metadata.json +2 -0
  70. package/dist/doc/VJoySeparator/metadata.json +2 -0
  71. package/dist/doc/VJoySnackbar/metadata.json +2 -0
  72. package/dist/doc/VJoySpinner/metadata.json +2 -0
  73. package/dist/doc/VJoyStep/metadata.json +2 -0
  74. package/dist/doc/VJoyStepper/metadata.json +2 -0
  75. package/dist/doc/VJoyTab/metadata.json +2 -0
  76. package/dist/doc/VJoyTabs/metadata.json +2 -0
  77. package/dist/doc/VJoyTag/metadata.json +6 -4
  78. package/dist/doc/VJoyTagsInput/metadata.json +2 -0
  79. package/dist/doc/VJoyTagsList/metadata.json +19 -17
  80. package/dist/doc/VJoyTemplate/metadata.json +2 -0
  81. package/dist/doc/VJoyText/metadata.json +2 -0
  82. package/dist/doc/VJoyTextarea/metadata.json +25 -23
  83. package/dist/doc/VJoyTitleBrand/metadata.json +2 -0
  84. package/dist/doc/VJoyToggle/metadata.json +15 -13
  85. package/dist/doc/VJoyTooltip/metadata.json +2 -0
  86. package/dist/doc/VJoyUserCard/metadata.json +2 -0
  87. package/dist/doc/VJoyWalkthrough/metadata.json +2 -0
  88. package/dist/doc/VJoyWalkthroughTrigger/metadata.json +2 -0
  89. package/dist/doc/VJoyWrapper/metadata.json +20 -18
  90. package/dist/doc/css-classes.json +2 -0
  91. package/dist/doc/design-tokens.json +30 -30
  92. package/dist/doc/index.json +223 -17
  93. package/dist/parser.d.ts +12 -0
  94. package/dist/parser.d.ts.map +1 -1
  95. package/dist/parser.js +25 -0
  96. package/dist/parser.js.map +1 -1
  97. package/dist/tools/get-component-info.js +1 -1
  98. package/dist/tools/get-component-info.js.map +1 -1
  99. package/dist/tools/list-components.d.ts +2 -4
  100. package/dist/tools/list-components.d.ts.map +1 -1
  101. package/dist/tools/list-components.js +24 -7
  102. package/dist/tools/list-components.js.map +1 -1
  103. package/package.json +3 -2
  104. package/dist/doc/VJoyTemplateShape/metadata.json +0 -9
@@ -1,13 +1,179 @@
1
1
  {
2
2
  "name": "JoyMultiCheckbox",
3
3
  "displayName": "VJoyMultiCheckbox",
4
+ "description": "A multi-selection checkbox group component for handling arrays of selected values.\nSimplifies multi-selection scenarios by managing checkbox states and array manipulation automatically.\nFeatures integrated labeling, fieldset structure for accessibility, and customizable checkbox content through slots.\nPerfect for filtering interfaces and bulk selection operations.",
5
+ "category": "Forms",
4
6
  "props": [
5
7
  {
6
8
  "name": "options",
7
- "type": "Option[]",
8
- "required": true,
9
+ "type": "Option[] | undefined",
10
+ "required": false,
9
11
  "description": "",
10
- "possibleValues": null
12
+ "possibleValues": [
13
+ {
14
+ "kind": "array",
15
+ "type": "Option[]",
16
+ "schema": [
17
+ {
18
+ "kind": "object",
19
+ "type": "Option",
20
+ "schema": {
21
+ "id": {
22
+ "name": "id",
23
+ "global": false,
24
+ "description": "",
25
+ "tags": [],
26
+ "required": true,
27
+ "type": "string",
28
+ "declarations": [
29
+ {
30
+ "file": "/home/kevincarnaille/dev/design-system/packages/core-vue/src/components/JoyCheckboxGroup/VJoyCheckboxGroup.vue",
31
+ "range": [
32
+ 1310,
33
+ 1321
34
+ ]
35
+ }
36
+ ],
37
+ "schema": "string"
38
+ },
39
+ "name": {
40
+ "name": "name",
41
+ "global": false,
42
+ "description": "",
43
+ "tags": [],
44
+ "required": false,
45
+ "type": "string | undefined",
46
+ "declarations": [
47
+ {
48
+ "file": "/home/kevincarnaille/dev/design-system/packages/core-vue/src/components/JoyCheckboxGroup/VJoyCheckboxGroup.vue",
49
+ "range": [
50
+ 1330,
51
+ 1344
52
+ ]
53
+ }
54
+ ],
55
+ "schema": {
56
+ "kind": "enum",
57
+ "type": "string | undefined",
58
+ "schema": [
59
+ "undefined",
60
+ "string"
61
+ ]
62
+ }
63
+ },
64
+ "value": {
65
+ "name": "value",
66
+ "global": false,
67
+ "description": "",
68
+ "tags": [],
69
+ "required": true,
70
+ "type": "string",
71
+ "declarations": [
72
+ {
73
+ "file": "/home/kevincarnaille/dev/design-system/packages/core-vue/src/components/JoyCheckboxGroup/VJoyCheckboxGroup.vue",
74
+ "range": [
75
+ 1353,
76
+ 1367
77
+ ]
78
+ }
79
+ ],
80
+ "schema": "string"
81
+ },
82
+ "label": {
83
+ "name": "label",
84
+ "global": false,
85
+ "description": "",
86
+ "tags": [],
87
+ "required": true,
88
+ "type": "string",
89
+ "declarations": [
90
+ {
91
+ "file": "/home/kevincarnaille/dev/design-system/packages/core-vue/src/components/JoyCheckboxGroup/VJoyCheckboxGroup.vue",
92
+ "range": [
93
+ 1376,
94
+ 1390
95
+ ]
96
+ }
97
+ ],
98
+ "schema": "string"
99
+ },
100
+ "subLabel": {
101
+ "name": "subLabel",
102
+ "global": false,
103
+ "description": "",
104
+ "tags": [],
105
+ "required": false,
106
+ "type": "string | undefined",
107
+ "declarations": [
108
+ {
109
+ "file": "/home/kevincarnaille/dev/design-system/packages/core-vue/src/components/JoyCheckboxGroup/VJoyCheckboxGroup.vue",
110
+ "range": [
111
+ 1399,
112
+ 1417
113
+ ]
114
+ }
115
+ ],
116
+ "schema": "string | undefined"
117
+ },
118
+ "disabled": {
119
+ "name": "disabled",
120
+ "global": false,
121
+ "description": "",
122
+ "tags": [
123
+ {
124
+ "name": "default",
125
+ "text": "false"
126
+ }
127
+ ],
128
+ "required": false,
129
+ "type": "boolean | undefined",
130
+ "declarations": [
131
+ {
132
+ "file": "/home/kevincarnaille/dev/design-system/packages/core-vue/src/components/JoyCheckboxGroup/VJoyCheckboxGroup.vue",
133
+ "range": [
134
+ 1476,
135
+ 1495
136
+ ]
137
+ }
138
+ ],
139
+ "schema": {
140
+ "kind": "enum",
141
+ "type": "boolean | undefined",
142
+ "schema": [
143
+ "undefined",
144
+ "false",
145
+ "true"
146
+ ]
147
+ }
148
+ },
149
+ "required": {
150
+ "name": "required",
151
+ "global": false,
152
+ "description": "",
153
+ "tags": [
154
+ {
155
+ "name": "default",
156
+ "text": "false"
157
+ }
158
+ ],
159
+ "required": false,
160
+ "type": "boolean | undefined",
161
+ "declarations": [
162
+ {
163
+ "file": "/home/kevincarnaille/dev/design-system/packages/core-vue/src/components/JoyCheckboxGroup/VJoyCheckboxGroup.vue",
164
+ "range": [
165
+ 1554,
166
+ 1573
167
+ ]
168
+ }
169
+ ],
170
+ "schema": "boolean | undefined"
171
+ }
172
+ }
173
+ }
174
+ ]
175
+ }
176
+ ]
11
177
  },
12
178
  {
13
179
  "name": "id",
@@ -22,7 +188,6 @@
22
188
  "name": "value",
23
189
  "type": "any[] | undefined",
24
190
  "required": false,
25
- "default": "[]",
26
191
  "description": "TODO: better typings",
27
192
  "possibleValues": [
28
193
  {
@@ -34,11 +199,20 @@
34
199
  }
35
200
  ]
36
201
  },
202
+ {
203
+ "name": "direction",
204
+ "type": "CheckboxGroupDirection | undefined",
205
+ "required": false,
206
+ "description": "Switch checkboxes layout direction.",
207
+ "possibleValues": [
208
+ "vertical",
209
+ "horizontal"
210
+ ]
211
+ },
37
212
  {
38
213
  "name": "required",
39
214
  "type": "boolean | undefined",
40
215
  "required": false,
41
- "default": "false",
42
216
  "description": "",
43
217
  "possibleValues": [
44
218
  "false",
@@ -58,7 +232,6 @@
58
232
  "name": "labelSize",
59
233
  "type": "TJoyLabelSizes | undefined",
60
234
  "required": false,
61
- "default": "\"medium\"",
62
235
  "description": "",
63
236
  "possibleValues": [
64
237
  "medium",
@@ -79,7 +252,6 @@
79
252
  "name": "requiredMark",
80
253
  "type": "boolean | undefined",
81
254
  "required": false,
82
- "default": "false",
83
255
  "description": "",
84
256
  "possibleValues": [
85
257
  "false",
@@ -95,6 +267,10 @@
95
267
  }
96
268
  ],
97
269
  "slots": [
270
+ {
271
+ "name": "default",
272
+ "description": "Allows explicit declaration of VJoyCheckbox / VJoyCheckboxCard children in the group.\n\n**Important**: v-model has to be handled by consumer."
273
+ },
98
274
  {
99
275
  "name": "checkbox",
100
276
  "description": "Customize the inner content of each checkboxes"
@@ -111,6 +287,16 @@
111
287
  "type": "any[]",
112
288
  "isMethod": false
113
289
  },
290
+ {
291
+ "name": "options",
292
+ "type": "Option[]",
293
+ "isMethod": false
294
+ },
295
+ {
296
+ "name": "direction",
297
+ "type": "CheckboxGroupDirection",
298
+ "isMethod": false
299
+ },
114
300
  {
115
301
  "name": "labelSize",
116
302
  "type": "TJoyLabelSizes",
@@ -131,11 +317,6 @@
131
317
  "type": "string | undefined",
132
318
  "isMethod": false
133
319
  },
134
- {
135
- "name": "options",
136
- "type": "Option[]",
137
- "isMethod": false
138
- },
139
320
  {
140
321
  "name": "optionalLabel",
141
322
  "type": "string | undefined",
@@ -1,6 +1,8 @@
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.\nFeatures automatic page number calculation, gap handling for large page counts, customizable navigation arrows,\nand router integration support through slots. Includes proper ARIA attributes and keyboard navigation\nfor an accessible pagination experience across different content types.",
5
+ "category": "Navigation",
4
6
  "props": [
5
7
  {
6
8
  "name": "currentPage",
@@ -1,6 +1,8 @@
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.\nFeatures header with title/subtitle/actions, main body content, footer actions, and loading overlay support.\nIncludes flexible sizing, padding options, AI variant styling, and seamless integration with\nVJoyPanelSection for complex nested layouts and modular content organization.",
5
+ "category": "Layout",
4
6
  "props": [
5
7
  {
6
8
  "name": "loading",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyPanelSection",
3
3
  "displayName": "VJoyPanelSection",
4
+ "description": "",
5
+ "category": "Layout",
4
6
  "props": [],
5
7
  "events": [],
6
8
  "slots": [
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyPasswordRequirement",
3
3
  "displayName": "VJoyPasswordRequirement",
4
+ "description": "A component to display a password requirement status.\nThis is meant to be displayed under a VJoyInput of type password.",
5
+ "category": "Forms",
4
6
  "props": [
5
7
  {
6
8
  "name": "label",
@@ -1,6 +1,8 @@
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.\nFeatures intelligent positioning around target elements, multi-step tour progression, customizable banners and actions,\nand spotlight effects for drawing user attention. Includes SSR compatibility and proper z-index management\nthrough Teleport for seamless user onboarding and feature discovery experiences.",
5
+ "category": "Overlays",
4
6
  "props": [
5
7
  {
6
8
  "name": "icon",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyProductTourTrigger",
3
3
  "displayName": "VJoyProductTourTrigger",
4
+ "description": "",
5
+ "category": "Overlays",
4
6
  "props": [
5
7
  {
6
8
  "name": "productTour",
@@ -1,6 +1,8 @@
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.\nFeatures multiple color variants for different semantic meanings (success, warning, error), optional label display,\nand dual mode support (percentage-based or step-based calculations). Perfect for indicating task completion,\nloading states, and multi-step process progress with clear visual feedback.",
5
+ "category": "View",
4
6
  "props": [
5
7
  {
6
8
  "name": "color",
@@ -87,11 +89,6 @@
87
89
  "name": "computeInnerWidth",
88
90
  "type": "string",
89
91
  "isMethod": false
90
- },
91
- {
92
- "name": "computedPercentage",
93
- "type": "number",
94
- "isMethod": false
95
92
  }
96
93
  ],
97
94
  "hasVModel": false
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyRadio",
3
3
  "displayName": "VJoyRadio",
4
+ "description": "",
5
+ "category": "Forms",
4
6
  "props": [
5
7
  {
6
8
  "name": "invalid",
@@ -1,6 +1,8 @@
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.\nFeatures horizontal and vertical layout options, legend support for group labeling, and seamless integration\nwith VJoyRadio components. Provides proper ARIA attributes and form association for accessible\nsingle-choice selection interfaces with consistent spacing and visual organization.\n\nUse the same v-model for each `VJoyRadio` (modelValue). Create a ref for it.",
5
+ "category": "Forms",
4
6
  "props": [
5
7
  {
6
8
  "name": "direction",
@@ -9,8 +11,8 @@
9
11
  "default": "\"horizontal\"",
10
12
  "description": "",
11
13
  "possibleValues": [
12
- "horizontal",
13
- "vertical"
14
+ "vertical",
15
+ "horizontal"
14
16
  ]
15
17
  },
16
18
  {
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyRatingStars",
3
3
  "displayName": "VJoyRatingStars",
4
+ "description": "A visual rating display component using star icons to represent rating values from 0 to 5.\nFeatures support for fractional ratings with half-star display, multiple size variants,\nreview count display, and customizable content slots. Includes proper accessibility\nattributes with configurable ARIA labels for screen reader compatibility.\n\n**Accessibility focus**: you can give an aria-label to the component to actually describe the rating.\nBy default it is set to \"Rating: X out of 5\" but is obviously not translated.",
5
+ "category": "View",
4
6
  "props": [
5
7
  {
6
8
  "name": "size",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyScreenLoader",
3
3
  "displayName": "VJoyScreenLoader",
4
+ "description": "A full-screen loading overlay component for indicating page or section loading states.\nFeatures light and dark color modes, overlay positioning for absolute coverage, customizable spinner slots,\nand content areas for loading messages. Perfect for blocking user interactions during data loading\nwith professional loading animations and flexible content presentation.",
5
+ "category": "Loader",
4
6
  "props": [
5
7
  {
6
8
  "name": "color",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoySelect",
3
3
  "displayName": "VJoySelect",
4
+ "description": "A styled select dropdown component with integrated labeling.\nFeatures multiple size variants, disabled and invalid states, and flexible option rendering.\nSupports both inline label props and external VJoyLabel component usage.",
5
+ "category": "Forms",
4
6
  "props": [
5
7
  {
6
8
  "name": "invalid",
@@ -47,6 +49,17 @@
47
49
  "true"
48
50
  ]
49
51
  },
52
+ {
53
+ "name": "requiredMark",
54
+ "type": "boolean | undefined",
55
+ "required": false,
56
+ "default": "false",
57
+ "description": "",
58
+ "possibleValues": [
59
+ "false",
60
+ "true"
61
+ ]
62
+ },
50
63
  {
51
64
  "name": "modelValue",
52
65
  "type": "string | number | null | undefined",
@@ -59,17 +72,6 @@
59
72
  "number"
60
73
  ]
61
74
  },
62
- {
63
- "name": "requiredMark",
64
- "type": "boolean | undefined",
65
- "required": false,
66
- "default": "false",
67
- "description": "",
68
- "possibleValues": [
69
- "false",
70
- "true"
71
- ]
72
- },
73
75
  {
74
76
  "name": "label",
75
77
  "type": "string | undefined",
@@ -97,15 +99,6 @@
97
99
  "string"
98
100
  ]
99
101
  },
100
- {
101
- "name": "ariaLabel",
102
- "type": "string | undefined",
103
- "required": false,
104
- "description": "aria-label is available only if 'label' property is undefined *",
105
- "possibleValues": [
106
- "string"
107
- ]
108
- },
109
102
  {
110
103
  "name": "labelSize",
111
104
  "type": "TJoyLabelSizes | undefined",
@@ -125,6 +118,15 @@
125
118
  "possibleValues": [
126
119
  "string"
127
120
  ]
121
+ },
122
+ {
123
+ "name": "ariaLabel",
124
+ "type": "string | undefined",
125
+ "required": false,
126
+ "description": "aria-label is available only if 'label' property is undefined *",
127
+ "possibleValues": [
128
+ "string"
129
+ ]
128
130
  }
129
131
  ],
130
132
  "events": [
@@ -166,13 +168,13 @@
166
168
  "isMethod": false
167
169
  },
168
170
  {
169
- "name": "modelValue",
170
- "type": "string | number | null",
171
+ "name": "requiredMark",
172
+ "type": "boolean",
171
173
  "isMethod": false
172
174
  },
173
175
  {
174
- "name": "requiredMark",
175
- "type": "boolean",
176
+ "name": "modelValue",
177
+ "type": "string | number | null",
176
178
  "isMethod": false
177
179
  },
178
180
  {
@@ -191,22 +193,22 @@
191
193
  "isMethod": false
192
194
  },
193
195
  {
194
- "name": "onUpdate:modelValue",
195
- "type": "((value: string) => any) | undefined",
196
- "isMethod": true
196
+ "name": "labelSize",
197
+ "type": "TJoyLabelSizes | undefined",
198
+ "isMethod": false
197
199
  },
198
200
  {
199
- "name": "ariaLabel",
201
+ "name": "optionalLabel",
200
202
  "type": "string | undefined",
201
203
  "isMethod": false
202
204
  },
203
205
  {
204
- "name": "labelSize",
205
- "type": "TJoyLabelSizes | undefined",
206
- "isMethod": false
206
+ "name": "onUpdate:modelValue",
207
+ "type": "((value: string) => any) | undefined",
208
+ "isMethod": true
207
209
  },
208
210
  {
209
- "name": "optionalLabel",
211
+ "name": "ariaLabel",
210
212
  "type": "string | undefined",
211
213
  "isMethod": false
212
214
  },
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoySelectableItem",
3
3
  "displayName": "VJoySelectableItem",
4
+ "description": "",
5
+ "category": "Forms",
4
6
  "props": [
5
7
  {
6
8
  "name": "disabled",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoySelectableItemGroup",
3
3
  "displayName": "VJoySelectableItemGroup",
4
+ "description": "Basic full implementation example :\n\n```html\n\n <template>\n <VJoySelectableItemGroup :options=\"options\" v-model:value=\"selectableModel\" />\n <template>\n\n<script setup lang=\"ts\">\n import {ref} from 'vue';\n import {TJoySelectableItemOption} from '@maltjoy/core-vue';\n\nconst options = ref<TJoySelectableItemOption[]>([\n {value: 'first-selectable-value', label: 'Option 1'},\n {value: 'second-selectable-value', label: 'Option 2'},\n {value: 'third-selectable-value', label: 'Option 3', {attrs: {...}}},\n]); // Use any type you prefer here, depending on what the backend is sending to you\n\n\nconst selectableModel = ref(['second-selectable-value']);\n\n</script>\n```\n\n> When passing the `options` property, you can include both `value` and `label` properties to each option.\n> But if it's simpler to use other key names, you can use `valueKey` and `labelKey` properties from `VJoySelectableItemGroup` to define the keys you prefer.\n>\n> You will have to deal with the typings by yourself, by creating a mix of interfaces or using satifies with type `TJoySelectableItemOption` depending on your cases.\n>\n> Example: `satisfies (TJoySelectableItemOption & Record<string, unknown>)[]`",
5
+ "category": "Forms",
4
6
  "props": [
5
7
  {
6
8
  "name": "options",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoySeparator",
3
3
  "displayName": "VJoySeparator",
4
+ "description": "A visual content separator component with text labeling capabilities for organizing interface sections.\nFeatures customizable text content, multiple size options, and styled horizontal lines for improved\nvisual hierarchy. Enhanced version of the HTML hr element with better styling control and\nintegrated text display for clearer content separation and section identification.",
5
+ "category": "View",
4
6
  "props": [
5
7
  {
6
8
  "name": "size",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoySnackbar",
3
3
  "displayName": "VJoySnackbar",
4
+ "description": "This component should not be directly used. To display it, please use the pushVJoySnackbar service :\n\n```typescript\nimport {pushVJoySnackbar} from '@maltjoy/core-vue';\n\nfunction yourFunction() {\n pushVJoySnackbar({\n props: {\n // at least message is mandatory\n message: 'Your message'\n }\n });\n}\n```\n\nIf you need to listen to events fired by the component, you can actually grab the event bus :\n\n```typescript\nimport {pushVJoySnackbar} from '@maltjoy/core-vue';\n\nfunction yourFunction() {\n const {snackbarEventBus} = pushVJoySnackbar({\n props: {\n // at least message is mandatory\n message: 'Your message'\n }\n });\n\n snackbarEventBus.on('snackbar:hide', () => {\n // do what you want, and don't forget to unregister the listener on component destroy\n });\n}\n```\n\nOn the other hand, if you need to access the component instance, you can grab it as well\n\n```typescript\nimport {pushVJoySnackbar} from '@maltjoy/core-vue';\n\nfunction yourFunction() {\n const {snackbarApp} = pushVJoySnackbar({\n props: {\n // at least message is mandatory\n message: 'Your message'\n }\n });\n\n}\n```",
5
+ "category": "Overlays",
4
6
  "props": [
5
7
  {
6
8
  "name": "frozen",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoySpinner",
3
3
  "displayName": "VJoySpinner",
4
+ "description": "A simple animated loading spinner component for indicating processing or loading states.\nFeatures customizable color variants to match different contexts and design requirements.\nLightweight and performant with CSS-based animations, perfect for buttons, forms,\nand content areas that need visual loading feedback.",
5
+ "category": "Loader",
4
6
  "props": [
5
7
  {
6
8
  "name": "color",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyStep",
3
3
  "displayName": "VJoyStep",
4
+ "description": "",
5
+ "category": "View",
4
6
  "props": [
5
7
  {
6
8
  "name": "size",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyStepper",
3
3
  "displayName": "VJoyStepper",
4
+ "description": "A progress stepper component for visualizing multi-step processes and user workflows.\nManages a collection of VJoyStep components with support for main steps and sub-steps for granular progress tracking.\nFeatures automatic step state management (completed, current, upcoming), visual progress indicators,\nand flexible step sizing. Perfect for onboarding flows, form wizards, and guided processes.\n\nSee **VJoyStep** stories for properties related to `VJoyStepper` children",
5
+ "category": "View",
4
6
  "props": [
5
7
  {
6
8
  "name": "subStep",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyTab",
3
3
  "displayName": "VJoyTab",
4
+ "description": "",
5
+ "category": "Navigation",
4
6
  "props": [
5
7
  {
6
8
  "name": "notification",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyTabs",
3
3
  "displayName": "VJoyTabs",
4
+ "description": "A tabbed navigation component for organizing content into switchable panels with proper accessibility support.\nFeatures scrollable tab headers for overflow management, notification badges, custom header content slots,\nand both local navigation and external link support. Includes automatic tab selection management\nand event handling for seamless content organization and user experience.",
5
+ "category": "Navigation",
4
6
  "props": [
5
7
  {
6
8
  "name": "selectedTab",
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyTag",
3
3
  "displayName": "VJoyTag",
4
+ "description": "A versatile tag component for labeling, categorizing, and interactive content organization.\nFeatures multiple variants and sizes, removable functionality, drag visual indicators,\nselectable states, link styling, and AI-specific variants. Supports click handlers,\nremoval events, and flexible content through slots for complex tag implementations.",
5
+ "category": "View",
4
6
  "props": [
5
7
  {
6
8
  "name": "label",
@@ -180,13 +182,13 @@
180
182
  "isMethod": false
181
183
  },
182
184
  {
183
- "name": "value",
184
- "type": "string | number",
185
+ "name": "disabled",
186
+ "type": "boolean",
185
187
  "isMethod": false
186
188
  },
187
189
  {
188
- "name": "disabled",
189
- "type": "boolean",
190
+ "name": "value",
191
+ "type": "string | number",
190
192
  "isMethod": false
191
193
  },
192
194
  {
@@ -1,6 +1,8 @@
1
1
  {
2
2
  "name": "JoyTagsInput",
3
3
  "displayName": "VJoyTagsInput",
4
+ "description": "A specialized form input component for managing collections of tags with dynamic add/remove functionality.\nFeatures email validation, duplication detection, multi-line responsive layout, and comprehensive error handling.\nIntegrates seamlessly with VJoyTag components for consistent tag display and provides flexible labeling\noptions for complex form scenarios with collections management.\n\n> **To render the component with default model, pass it an array of values.**\n> **Storybook code snippet is broken at the moment.**",
5
+ "category": "Forms",
4
6
  "props": [
5
7
  {
6
8
  "name": "name",