@maltjoy/mcp-server 0.5.0-beta.0 → 0.6.0-beta.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/README.md +30 -24
- package/dist/doc/VJoyAdminBanner/guideline.md +284 -0
- package/dist/doc/VJoyAvailability/guideline.md +352 -0
- package/dist/doc/VJoyAvailability/metadata.json +1 -1
- package/dist/doc/VJoyAvatar/guideline.md +192 -0
- package/dist/doc/VJoyAvatarsList/guideline.md +328 -0
- package/dist/doc/VJoyBadge/guideline.md +169 -0
- package/dist/doc/VJoyBadgeLevel/guideline.md +166 -0
- package/dist/doc/VJoyBlockSkeleton/guideline.md +150 -0
- package/dist/doc/VJoyBottomSheet/guideline.md +345 -0
- package/dist/doc/VJoyBottomSheetTrigger/guideline.md +156 -0
- package/dist/doc/VJoyButton/guideline.md +371 -0
- package/dist/doc/VJoyButton/metadata.json +0 -16
- package/dist/doc/VJoyButtonCard/guideline.md +384 -0
- package/dist/doc/VJoyCheckbox/guideline.md +317 -0
- package/dist/doc/VJoyCheckboxCard/guideline.md +381 -0
- package/dist/doc/VJoyCheckboxGroup/guideline.md +363 -0
- package/dist/doc/VJoyCollapse/guideline.md +362 -0
- package/dist/doc/VJoyCollapseItem/guideline.md +394 -0
- package/dist/doc/VJoyCompanyAvatar/guideline.md +162 -0
- package/dist/doc/VJoyDialog/guideline.md +425 -0
- package/dist/doc/VJoyDialogTrigger/guideline.md +186 -0
- package/dist/doc/VJoyDot/guideline.md +177 -0
- package/dist/doc/VJoyDrawer/guideline.md +392 -0
- package/dist/doc/VJoyDrawerTrigger/guideline.md +145 -0
- package/dist/doc/VJoyDropdown/guideline.md +393 -0
- package/dist/doc/VJoyDropdownList/guideline.md +396 -0
- package/dist/doc/VJoyDropdownList/metadata.json +1 -1
- package/dist/doc/VJoyDropzone/guideline.md +390 -0
- package/dist/doc/VJoyDropzone/metadata.json +10 -1
- package/dist/doc/VJoyFilterBar/guideline.md +419 -0
- package/dist/doc/VJoyFilterBarButton/guideline.md +359 -0
- package/dist/doc/VJoyFloatingActionsBar/guideline.md +372 -0
- package/dist/doc/VJoyFormError/guideline.md +325 -0
- package/dist/doc/VJoyFormError/metadata.json +0 -14
- package/dist/doc/VJoyFormFieldSkeleton/guideline.md +159 -0
- package/dist/doc/VJoyFormGroup/guideline.md +285 -0
- package/dist/doc/VJoyFunnel/guideline.md +349 -0
- package/dist/doc/VJoyFunnelFooter/guideline.md +178 -0
- package/dist/doc/VJoyFunnelHeader/guideline.md +204 -0
- package/dist/doc/VJoyHighlight/guideline.md +169 -0
- package/dist/doc/VJoyIcon/JoyIcon.types.ts +1 -1
- package/dist/doc/VJoyIcon/guideline.md +168 -0
- package/dist/doc/VJoyIcon/metadata.json +0 -1
- package/dist/doc/VJoyIconButton/guideline.md +169 -0
- package/dist/doc/VJoyIconButton/metadata.json +1 -1
- package/dist/doc/VJoyIndicator/guideline.md +168 -0
- package/dist/doc/VJoyIndicators/guideline.md +183 -0
- package/dist/doc/VJoyInput/JoyInput.types.ts +1 -9
- package/dist/doc/VJoyInput/guideline.md +401 -0
- package/dist/doc/VJoyInput/metadata.json +5 -14
- package/dist/doc/VJoyInputDigit/guideline.md +381 -0
- package/dist/doc/VJoyInputNumber/guideline.md +414 -0
- package/dist/doc/VJoyInputNumber/metadata.json +16 -16
- package/dist/doc/VJoyInputPassword/guideline.md +379 -0
- package/dist/doc/VJoyInputPassword/metadata.json +0 -14
- package/dist/doc/VJoyLabel/guideline.md +200 -0
- package/dist/doc/VJoyLink/guideline.md +360 -0
- package/dist/doc/VJoyListItem/guideline.md +335 -0
- package/dist/doc/VJoyMenu/guideline.md +304 -0
- package/dist/doc/VJoyMenuItem/guideline.md +352 -0
- package/dist/doc/VJoyPagination/guideline.md +355 -0
- package/dist/doc/VJoyPanel/guideline.md +238 -0
- package/dist/doc/VJoyPanelSection/guideline.md +160 -0
- package/dist/doc/VJoyPasswordRequirement/guideline.md +336 -0
- package/dist/doc/VJoyPasswordRequirement/metadata.json +1 -1
- package/dist/doc/VJoyProductTour/JoyProductTour.types.ts +0 -1
- package/dist/doc/VJoyProductTour/guideline.md +455 -0
- package/dist/doc/VJoyProductTour/metadata.json +1 -1
- package/dist/doc/VJoyProductTourTrigger/guideline.md +167 -0
- package/dist/doc/VJoyProgressBar/guideline.md +348 -0
- package/dist/doc/VJoyRadio/guideline.md +346 -0
- package/dist/doc/VJoyRadioGroup/guideline.md +331 -0
- package/dist/doc/VJoyRatingStars/guideline.md +306 -0
- package/dist/doc/VJoyScreenLoader/guideline.md +172 -0
- package/dist/doc/VJoySelect/guideline.md +396 -0
- package/dist/doc/VJoySelectableItem/guideline.md +351 -0
- package/dist/doc/VJoySelectableItemGroup/guideline.md +370 -0
- package/dist/doc/VJoySeparator/guideline.md +161 -0
- package/dist/doc/VJoySnackbar/guideline.md +402 -0
- package/dist/doc/VJoySpinner/guideline.md +168 -0
- package/dist/doc/VJoyStep/guideline.md +182 -0
- package/dist/doc/VJoyStepper/guideline.md +390 -0
- package/dist/doc/VJoyTab/guideline.md +298 -0
- package/dist/doc/VJoyTabs/guideline.md +353 -0
- package/dist/doc/VJoyTag/guideline.md +226 -0
- package/dist/doc/VJoyTagsInput/guideline.md +387 -0
- package/dist/doc/VJoyTagsList/guideline.md +311 -0
- package/dist/doc/VJoyTemplate/guideline.md +366 -0
- package/dist/doc/VJoyText/guideline.md +175 -0
- package/dist/doc/VJoyTextarea/guideline.md +378 -0
- package/dist/doc/VJoyTitleBrand/guideline.md +155 -0
- package/dist/doc/VJoyToggle/guideline.md +327 -0
- package/dist/doc/VJoyTooltip/guideline.md +322 -0
- package/dist/doc/VJoyUserCard/guideline.md +268 -0
- package/dist/doc/VJoyUserCard/metadata.json +3 -17
- package/dist/doc/VJoyWalkthrough/guideline.md +351 -0
- package/dist/doc/VJoyWalkthroughTrigger/guideline.md +171 -0
- package/dist/doc/VJoyWrapper/guideline.md +173 -0
- package/dist/doc/css-classes.json +1 -17
- package/dist/doc/index.json +19 -29
- package/dist/index.js +15 -25
- package/dist/index.js.map +1 -1
- package/dist/tools/get-component-guideline.d.ts +30 -0
- package/dist/tools/get-component-guideline.d.ts.map +1 -0
- package/dist/tools/get-component-guideline.js +51 -0
- package/dist/tools/get-component-guideline.js.map +1 -0
- package/dist/tools/get-component-info.d.ts +1 -9
- package/dist/tools/get-component-info.d.ts.map +1 -1
- package/dist/tools/get-component-info.js +1 -9
- package/dist/tools/get-component-info.js.map +1 -1
- package/package.json +3 -5
- package/dist/doc/VJoyMultiCheckbox/metadata.json +0 -332
- package/dist/doc/zeroheight/components/1398444/change-logs.md +0 -1
- package/dist/doc/zeroheight/components/1398444/content.md +0 -149
- package/dist/doc/zeroheight/components/1398444/description.md +0 -1
- package/dist/doc/zeroheight/components/1398444/introduction.md +0 -49
- package/dist/doc/zeroheight/components/1398444/meta.json +0 -18
- package/dist/doc/zeroheight/components/1398444/usage.md +0 -10
- package/dist/doc/zeroheight/components/1423580/change-log.md +0 -1
- package/dist/doc/zeroheight/components/1423580/introduction.md +0 -17
- package/dist/doc/zeroheight/components/1423580/meta.json +0 -17
- package/dist/doc/zeroheight/components/1423580/usage.md +0 -5
- package/dist/doc/zeroheight/components/1423608/change-log.md +0 -1
- package/dist/doc/zeroheight/components/1423608/content.md +0 -49
- package/dist/doc/zeroheight/components/1423608/description.md +0 -3
- package/dist/doc/zeroheight/components/1423608/introduction.md +0 -29
- package/dist/doc/zeroheight/components/1423608/meta.json +0 -18
- package/dist/doc/zeroheight/components/1423608/usage.md +0 -18
- package/dist/doc/zeroheight/components/1423634/change-log.md +0 -1
- package/dist/doc/zeroheight/components/1423634/content.md +0 -1
- package/dist/doc/zeroheight/components/1423634/description.md +0 -1
- package/dist/doc/zeroheight/components/1423634/introduction.md +0 -27
- package/dist/doc/zeroheight/components/1423634/meta.json +0 -18
- package/dist/doc/zeroheight/components/1423634/usage.md +0 -11
- package/dist/doc/zeroheight/components/1423653/change-log.md +0 -9
- package/dist/doc/zeroheight/components/1423653/content.md +0 -72
- package/dist/doc/zeroheight/components/1423653/introduction.md +0 -45
- package/dist/doc/zeroheight/components/1423653/meta.json +0 -17
- package/dist/doc/zeroheight/components/1423737/change-log.md +0 -1
- package/dist/doc/zeroheight/components/1423737/description.md +0 -1
- package/dist/doc/zeroheight/components/1423737/introduction.md +0 -17
- package/dist/doc/zeroheight/components/1423737/meta.json +0 -17
- package/dist/doc/zeroheight/components/1423737/usage.md +0 -1
- package/dist/doc/zeroheight/components/1465673/code.md +0 -1
- package/dist/doc/zeroheight/components/1465673/content.md +0 -1
- package/dist/doc/zeroheight/components/1465673/description.md +0 -1
- package/dist/doc/zeroheight/components/1465673/introduction.md +0 -29
- package/dist/doc/zeroheight/components/1465673/meta.json +0 -18
- package/dist/doc/zeroheight/components/1465673/usage.md +0 -1
- package/dist/doc/zeroheight/components/1475881/change-log.md +0 -1
- package/dist/doc/zeroheight/components/1475881/description.md +0 -1
- package/dist/doc/zeroheight/components/1475881/introduction.md +0 -42
- package/dist/doc/zeroheight/components/1475881/meta.json +0 -17
- package/dist/doc/zeroheight/components/1475881/usage.md +0 -7
- package/dist/doc/zeroheight/components/2271816/change-log.md +0 -1
- package/dist/doc/zeroheight/components/2271816/introduction.md +0 -19
- package/dist/doc/zeroheight/components/2271816/meta.json +0 -17
- package/dist/doc/zeroheight/components/2271816/usage.md +0 -1
- package/dist/doc/zeroheight/components/2352087/change-log.md +0 -1
- package/dist/doc/zeroheight/components/2352087/content.md +0 -82
- package/dist/doc/zeroheight/components/2352087/description.md +0 -1
- package/dist/doc/zeroheight/components/2352087/introduction.md +0 -18
- package/dist/doc/zeroheight/components/2352087/meta.json +0 -18
- package/dist/doc/zeroheight/components/2352087/usage.md +0 -13
- package/dist/doc/zeroheight/components/2411991/content.md +0 -1
- package/dist/doc/zeroheight/components/2411991/description.md +0 -1
- package/dist/doc/zeroheight/components/2411991/introduction.md +0 -27
- package/dist/doc/zeroheight/components/2411991/meta.json +0 -18
- package/dist/doc/zeroheight/components/2411991/release-log.md +0 -1
- package/dist/doc/zeroheight/components/2411991/usage.md +0 -1
- package/dist/doc/zeroheight/components/2427736/change-log.md +0 -1
- package/dist/doc/zeroheight/components/2427736/description.md +0 -1
- package/dist/doc/zeroheight/components/2427736/introduction.md +0 -11
- package/dist/doc/zeroheight/components/2427736/meta.json +0 -17
- package/dist/doc/zeroheight/components/2427736/usage.md +0 -1
- package/dist/doc/zeroheight/components/2427817/change-log.md +0 -1
- package/dist/doc/zeroheight/components/2427817/content.md +0 -69
- package/dist/doc/zeroheight/components/2427817/description.md +0 -1
- package/dist/doc/zeroheight/components/2427817/meta.json +0 -18
- package/dist/doc/zeroheight/components/2427817/overview.md +0 -22
- package/dist/doc/zeroheight/components/2427817/usage.md +0 -23
- package/dist/doc/zeroheight/components/2432739/change-log.md +0 -1
- package/dist/doc/zeroheight/components/2432739/content.md +0 -112
- package/dist/doc/zeroheight/components/2432739/description.md +0 -1
- package/dist/doc/zeroheight/components/2432739/meta.json +0 -18
- package/dist/doc/zeroheight/components/2432739/overview.md +0 -17
- package/dist/doc/zeroheight/components/2432739/usage.md +0 -43
- package/dist/doc/zeroheight/components/2434826/change-log.md +0 -1
- package/dist/doc/zeroheight/components/2434826/content.md +0 -72
- package/dist/doc/zeroheight/components/2434826/description.md +0 -1
- package/dist/doc/zeroheight/components/2434826/introduction.md +0 -15
- package/dist/doc/zeroheight/components/2434826/meta.json +0 -17
- package/dist/doc/zeroheight/components/2564356/code.md +0 -1
- package/dist/doc/zeroheight/components/2564356/description.md +0 -1
- package/dist/doc/zeroheight/components/2564356/introduction.md +0 -39
- package/dist/doc/zeroheight/components/2564356/meta.json +0 -17
- package/dist/doc/zeroheight/components/2564356/usage.md +0 -14
- package/dist/doc/zeroheight/components/2849141/content.md +0 -114
- package/dist/doc/zeroheight/components/2849141/description.md +0 -1
- package/dist/doc/zeroheight/components/2849141/meta.json +0 -17
- package/dist/doc/zeroheight/components/2849141/overview.md +0 -19
- package/dist/doc/zeroheight/components/2849141/usage.md +0 -22
- package/dist/doc/zeroheight/components/3079912/change-log.md +0 -1
- package/dist/doc/zeroheight/components/3079912/content.md +0 -35
- package/dist/doc/zeroheight/components/3079912/description.md +0 -1
- package/dist/doc/zeroheight/components/3079912/meta.json +0 -18
- package/dist/doc/zeroheight/components/3079912/overview.md +0 -11
- package/dist/doc/zeroheight/components/3079912/usage.md +0 -16
- package/dist/doc/zeroheight/components/3095627/change-log.md +0 -1
- package/dist/doc/zeroheight/components/3095627/content.md +0 -1
- package/dist/doc/zeroheight/components/3095627/description.md +0 -1
- package/dist/doc/zeroheight/components/3095627/meta.json +0 -18
- package/dist/doc/zeroheight/components/3095627/overview.md +0 -33
- package/dist/doc/zeroheight/components/3095627/usage.md +0 -1
- package/dist/doc/zeroheight/components/4065429/change-log.md +0 -1
- package/dist/doc/zeroheight/components/4065429/content.md +0 -1
- package/dist/doc/zeroheight/components/4065429/description.md +0 -3
- package/dist/doc/zeroheight/components/4065429/meta.json +0 -18
- package/dist/doc/zeroheight/components/4065429/overview.md +0 -34
- package/dist/doc/zeroheight/components/4065429/usage.md +0 -17
- package/dist/doc/zeroheight/components/4070710/change-log.md +0 -1
- package/dist/doc/zeroheight/components/4070710/content.md +0 -87
- package/dist/doc/zeroheight/components/4070710/description.md +0 -1
- package/dist/doc/zeroheight/components/4070710/introduction.md +0 -13
- package/dist/doc/zeroheight/components/4070710/meta.json +0 -18
- package/dist/doc/zeroheight/components/4070710/usage.md +0 -30
- package/dist/doc/zeroheight/components/4273331/change-log.md +0 -1
- package/dist/doc/zeroheight/components/4273331/content.md +0 -1
- package/dist/doc/zeroheight/components/4273331/description.md +0 -1
- package/dist/doc/zeroheight/components/4273331/meta.json +0 -18
- package/dist/doc/zeroheight/components/4273331/overview.md +0 -18
- package/dist/doc/zeroheight/components/4273331/usage.md +0 -14
- package/dist/doc/zeroheight/components/4273801/animation.md +0 -1
- package/dist/doc/zeroheight/components/4273801/code.md +0 -6
- package/dist/doc/zeroheight/components/4273801/description.md +0 -1
- package/dist/doc/zeroheight/components/4273801/introduction.md +0 -28
- package/dist/doc/zeroheight/components/4273801/meta.json +0 -18
- package/dist/doc/zeroheight/components/4273801/usage.md +0 -14
- package/dist/doc/zeroheight/components/4328173/change-log.md +0 -1
- package/dist/doc/zeroheight/components/4328173/content.md +0 -1
- package/dist/doc/zeroheight/components/4328173/description.md +0 -1
- package/dist/doc/zeroheight/components/4328173/introduction.md +0 -9
- package/dist/doc/zeroheight/components/4328173/meta.json +0 -18
- package/dist/doc/zeroheight/components/4328173/usage.md +0 -5
- package/dist/doc/zeroheight/components/4593875/change-log.md +0 -1
- package/dist/doc/zeroheight/components/4593875/content.md +0 -48
- package/dist/doc/zeroheight/components/4593875/description.md +0 -1
- package/dist/doc/zeroheight/components/4593875/meta.json +0 -18
- package/dist/doc/zeroheight/components/4593875/overview.md +0 -44
- package/dist/doc/zeroheight/components/4593875/usage.md +0 -55
- package/dist/doc/zeroheight/components/4599330/change-log.md +0 -1
- package/dist/doc/zeroheight/components/4599330/content.md +0 -1
- package/dist/doc/zeroheight/components/4599330/description.md +0 -1
- package/dist/doc/zeroheight/components/4599330/meta.json +0 -18
- package/dist/doc/zeroheight/components/4599330/overview.md +0 -25
- package/dist/doc/zeroheight/components/4599330/usage.md +0 -16
- package/dist/doc/zeroheight/components/4656241/change-log.md +0 -1
- package/dist/doc/zeroheight/components/4656241/content.md +0 -28
- package/dist/doc/zeroheight/components/4656241/description.md +0 -1
- package/dist/doc/zeroheight/components/4656241/introduction.md +0 -18
- package/dist/doc/zeroheight/components/4656241/meta.json +0 -18
- package/dist/doc/zeroheight/components/4656241/usage.md +0 -17
- package/dist/doc/zeroheight/components/4675975/change-log.md +0 -1
- package/dist/doc/zeroheight/components/4675975/description.md +0 -1
- package/dist/doc/zeroheight/components/4675975/introduction.md +0 -41
- package/dist/doc/zeroheight/components/4675975/meta.json +0 -17
- package/dist/doc/zeroheight/components/4675975/usage.md +0 -1
- package/dist/doc/zeroheight/components/6305853/content.md +0 -3
- package/dist/doc/zeroheight/components/6305853/introduction.md +0 -17
- package/dist/doc/zeroheight/components/6305853/meta.json +0 -17
- package/dist/doc/zeroheight/components/6305853/usage.md +0 -14
- package/dist/doc/zeroheight/components/6968477/change-log.md +0 -1
- package/dist/doc/zeroheight/components/6968477/introduction.md +0 -11
- package/dist/doc/zeroheight/components/6968477/meta.json +0 -17
- package/dist/doc/zeroheight/components/6968477/usage.md +0 -1
- package/dist/doc/zeroheight/components/6972500/change-log.md +0 -1
- package/dist/doc/zeroheight/components/6972500/content.md +0 -41
- package/dist/doc/zeroheight/components/6972500/description.md +0 -1
- package/dist/doc/zeroheight/components/6972500/introduction.md +0 -11
- package/dist/doc/zeroheight/components/6972500/meta.json +0 -18
- package/dist/doc/zeroheight/components/6972500/usage.md +0 -1
- package/dist/doc/zeroheight/components/7340384/content.md +0 -4
- package/dist/doc/zeroheight/components/7340384/description.md +0 -1
- package/dist/doc/zeroheight/components/7340384/introduction.md +0 -11
- package/dist/doc/zeroheight/components/7340384/meta.json +0 -17
- package/dist/doc/zeroheight/components/7340384/usage.md +0 -8
- package/dist/doc/zeroheight/components/8043088/change-log.md +0 -1
- package/dist/doc/zeroheight/components/8043088/content.md +0 -1
- package/dist/doc/zeroheight/components/8043088/description.md +0 -1
- package/dist/doc/zeroheight/components/8043088/meta.json +0 -18
- package/dist/doc/zeroheight/components/8043088/overview.md +0 -35
- package/dist/doc/zeroheight/components/8043088/usage.md +0 -18
- package/dist/doc/zeroheight/components/8386038/change-logs.md +0 -1
- package/dist/doc/zeroheight/components/8386038/content.md +0 -34
- package/dist/doc/zeroheight/components/8386038/description.md +0 -1
- package/dist/doc/zeroheight/components/8386038/introduction.md +0 -7
- package/dist/doc/zeroheight/components/8386038/meta.json +0 -18
- package/dist/doc/zeroheight/components/8386038/usage.md +0 -6
- package/dist/doc/zeroheight/components/8408347/change-log.md +0 -1
- package/dist/doc/zeroheight/components/8408347/content.md +0 -38
- package/dist/doc/zeroheight/components/8408347/description.md +0 -1
- package/dist/doc/zeroheight/components/8408347/introduction.md +0 -9
- package/dist/doc/zeroheight/components/8408347/meta.json +0 -18
- package/dist/doc/zeroheight/components/8408347/usage.md +0 -11
- package/dist/doc/zeroheight/components/8636827/change-log.md +0 -1
- package/dist/doc/zeroheight/components/8636827/content.md +0 -82
- package/dist/doc/zeroheight/components/8636827/description.md +0 -1
- package/dist/doc/zeroheight/components/8636827/introduction.md +0 -19
- package/dist/doc/zeroheight/components/8636827/meta.json +0 -18
- package/dist/doc/zeroheight/components/8636827/usage.md +0 -13
- package/dist/doc/zeroheight/foundations/1398439/description.md +0 -1
- package/dist/doc/zeroheight/foundations/1398439/ia-colors.md +0 -4
- package/dist/doc/zeroheight/foundations/1398439/meta.json +0 -17
- package/dist/doc/zeroheight/foundations/1398439/overview.md +0 -29
- package/dist/doc/zeroheight/foundations/1398439/usage.md +0 -11
- package/dist/doc/zeroheight/foundations/1612530/description.md +0 -1
- package/dist/doc/zeroheight/foundations/1612530/meta.json +0 -15
- package/dist/doc/zeroheight/foundations/1612530/overview.md +0 -27
- package/dist/doc/zeroheight/foundations/2147931/description.md +0 -1
- package/dist/doc/zeroheight/foundations/2147931/meta.json +0 -16
- package/dist/doc/zeroheight/foundations/2147931/overview.md +0 -42
- package/dist/doc/zeroheight/foundations/2147931/usage.md +0 -4
- package/dist/doc/zeroheight/foundations/2147933/description.md +0 -1
- package/dist/doc/zeroheight/foundations/2147933/meta.json +0 -16
- package/dist/doc/zeroheight/foundations/2147933/overview.md +0 -19
- package/dist/doc/zeroheight/foundations/2147933/usage.md +0 -2
- package/dist/doc/zeroheight/foundations/2266238/description.md +0 -1
- package/dist/doc/zeroheight/foundations/2266238/meta.json +0 -15
- package/dist/doc/zeroheight/foundations/2266238/overview.md +0 -10
- package/dist/doc/zeroheight/foundations/2488627/description.md +0 -1
- package/dist/doc/zeroheight/foundations/2488627/meta.json +0 -15
- package/dist/doc/zeroheight/foundations/2488627/overview.md +0 -16
- package/dist/doc/zeroheight/foundations/4055467/description.md +0 -1
- package/dist/doc/zeroheight/foundations/4055467/download.md +0 -1
- package/dist/doc/zeroheight/foundations/4055467/meta.json +0 -18
- package/dist/doc/zeroheight/foundations/4055467/overview.md +0 -29
- package/dist/doc/zeroheight/foundations/4055467/text-styles.md +0 -3
- package/dist/doc/zeroheight/foundations/4055467/usage.md +0 -11
- package/dist/doc/zeroheight/foundations/4845111/description.md +0 -1
- package/dist/doc/zeroheight/foundations/4845111/fonts.md +0 -37
- package/dist/doc/zeroheight/foundations/4845111/meta.json +0 -16
- package/dist/doc/zeroheight/foundations/4845111/usage.md +0 -9
- package/dist/doc/zeroheight/foundations/4845112/description.md +0 -1
- package/dist/doc/zeroheight/foundations/4845112/malt-colors-usage.md +0 -9
- package/dist/doc/zeroheight/foundations/4845112/malt-colors.md +0 -14
- package/dist/doc/zeroheight/foundations/4845112/meta.json +0 -16
- package/dist/doc/zeroheight/foundations/7486175/introduction.md +0 -3
- package/dist/doc/zeroheight/foundations/7486175/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/1398442/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/1398442/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/1398442/library.md +0 -18
- package/dist/doc/zeroheight/guidelines/1398442/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/1398442/overview.md +0 -44
- package/dist/doc/zeroheight/guidelines/1398442/request-an-icon.md +0 -24
- package/dist/doc/zeroheight/guidelines/1398442/usage.md +0 -51
- package/dist/doc/zeroheight/guidelines/1398447/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/1398447/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/1398447/team.md +0 -1
- package/dist/doc/zeroheight/guidelines/1423622/change-logs.md +0 -1
- package/dist/doc/zeroheight/guidelines/1423622/content.md +0 -72
- package/dist/doc/zeroheight/guidelines/1423622/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/1423622/introduction.md +0 -29
- package/dist/doc/zeroheight/guidelines/1423622/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/1423622/usage.md +0 -14
- package/dist/doc/zeroheight/guidelines/1423646/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/1423646/content.md +0 -36
- package/dist/doc/zeroheight/guidelines/1423646/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/1423646/introduction.md +0 -27
- package/dist/doc/zeroheight/guidelines/1423646/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/1423646/usage.md +0 -19
- package/dist/doc/zeroheight/guidelines/1423650/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/1423650/content.md +0 -72
- package/dist/doc/zeroheight/guidelines/1423650/introduction.md +0 -17
- package/dist/doc/zeroheight/guidelines/1423650/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/1465972/code.md +0 -1
- package/dist/doc/zeroheight/guidelines/1465972/content.md +0 -1
- package/dist/doc/zeroheight/guidelines/1465972/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/1465972/introduction.md +0 -36
- package/dist/doc/zeroheight/guidelines/1465972/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/1465972/usage.md +0 -1
- package/dist/doc/zeroheight/guidelines/1476144/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/1476144/content.md +0 -114
- package/dist/doc/zeroheight/guidelines/1476144/introduction.md +0 -41
- package/dist/doc/zeroheight/guidelines/1476144/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/1476144/usage.md +0 -74
- package/dist/doc/zeroheight/guidelines/1526588/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/1526588/grid-system.md +0 -16
- package/dist/doc/zeroheight/guidelines/1526588/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/1526588/overview.md +0 -20
- package/dist/doc/zeroheight/guidelines/2126958/joy-major-release.md +0 -50
- package/dist/doc/zeroheight/guidelines/2126958/last-updates.md +0 -3
- package/dist/doc/zeroheight/guidelines/2126958/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/2126958/zeroheight.md +0 -9
- package/dist/doc/zeroheight/guidelines/2147712/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2147712/introduction.md +0 -5
- package/dist/doc/zeroheight/guidelines/2147712/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/2147713/introduction.md +0 -3
- package/dist/doc/zeroheight/guidelines/2147713/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/2147725/figma-libraries.md +0 -1
- package/dist/doc/zeroheight/guidelines/2147725/malt-typographies.md +0 -1
- package/dist/doc/zeroheight/guidelines/2147725/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/2147725/structure.md +0 -1
- package/dist/doc/zeroheight/guidelines/2147866/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2147866/introduction.md +0 -9
- package/dist/doc/zeroheight/guidelines/2147866/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/2147919/introduction.md +0 -9
- package/dist/doc/zeroheight/guidelines/2147919/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/2147920/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2147920/introduction.md +0 -5
- package/dist/doc/zeroheight/guidelines/2147920/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/2147925/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2147925/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/2147925/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/2148354/introduction.md +0 -18
- package/dist/doc/zeroheight/guidelines/2148354/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/2266527/content.md +0 -1
- package/dist/doc/zeroheight/guidelines/2266527/introduction.md +0 -32
- package/dist/doc/zeroheight/guidelines/2266527/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/2266527/usage.md +0 -1
- package/dist/doc/zeroheight/guidelines/2287200/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2287200/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/2287200/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/2287201/code.md +0 -1
- package/dist/doc/zeroheight/guidelines/2287201/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2287201/introduction.md +0 -11
- package/dist/doc/zeroheight/guidelines/2287201/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/2287201/usage.md +0 -1
- package/dist/doc/zeroheight/guidelines/2303886/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2303886/introduction.md +0 -15
- package/dist/doc/zeroheight/guidelines/2303886/malts-design-principles-cards.md +0 -1
- package/dist/doc/zeroheight/guidelines/2303886/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/2304138/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2304138/introduction.md +0 -13
- package/dist/doc/zeroheight/guidelines/2304138/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/2351818/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/2351818/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2351818/introduction.md +0 -32
- package/dist/doc/zeroheight/guidelines/2351818/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/2352029/code.md +0 -1
- package/dist/doc/zeroheight/guidelines/2352029/content.md +0 -1
- package/dist/doc/zeroheight/guidelines/2352029/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2352029/funnel-headers.md +0 -31
- package/dist/doc/zeroheight/guidelines/2352029/introduction.md +0 -13
- package/dist/doc/zeroheight/guidelines/2352029/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/2352029/usage.md +0 -6
- package/dist/doc/zeroheight/guidelines/2380975/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/2380975/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2380975/introduction.md +0 -11
- package/dist/doc/zeroheight/guidelines/2380975/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/2380975/usage.md +0 -6
- package/dist/doc/zeroheight/guidelines/2427804/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/2427804/content.md +0 -1
- package/dist/doc/zeroheight/guidelines/2427804/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2427804/introduction.md +0 -11
- package/dist/doc/zeroheight/guidelines/2427804/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/2427804/usage.md +0 -1
- package/dist/doc/zeroheight/guidelines/2427818/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/2427818/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2427818/introduction.md +0 -13
- package/dist/doc/zeroheight/guidelines/2427818/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/2427818/usage.md +0 -9
- package/dist/doc/zeroheight/guidelines/2433031/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/2433031/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2433031/introduction.md +0 -15
- package/dist/doc/zeroheight/guidelines/2433031/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/2433031/usage.md +0 -4
- package/dist/doc/zeroheight/guidelines/2447204/figma-cover.md +0 -3
- package/dist/doc/zeroheight/guidelines/2447204/figma-page-structure.md +0 -3
- package/dist/doc/zeroheight/guidelines/2447204/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/2447204/template.md +0 -42
- package/dist/doc/zeroheight/guidelines/2465594/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/2465594/content.md +0 -1
- package/dist/doc/zeroheight/guidelines/2465594/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2465594/introduction.md +0 -35
- package/dist/doc/zeroheight/guidelines/2465594/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/2465594/usage.md +0 -8
- package/dist/doc/zeroheight/guidelines/2487804/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2487804/introduction.md +0 -5
- package/dist/doc/zeroheight/guidelines/2487804/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/2487804/usage.md +0 -14
- package/dist/doc/zeroheight/guidelines/2732341/components.md +0 -24
- package/dist/doc/zeroheight/guidelines/2732341/core-design.md +0 -15
- package/dist/doc/zeroheight/guidelines/2732341/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/2732341/design-tokens.md +0 -34
- package/dist/doc/zeroheight/guidelines/2732341/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/2732341/theme.md +0 -20
- package/dist/doc/zeroheight/guidelines/3060512/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/3060512/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/3060512/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/3060514/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/3060514/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/3060514/overview.md +0 -9
- package/dist/doc/zeroheight/guidelines/3060514/usage.md +0 -36
- package/dist/doc/zeroheight/guidelines/3279582/content-localization-plugin.md +0 -27
- package/dist/doc/zeroheight/guidelines/3279582/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/3279582/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/3279582/plugins.md +0 -46
- package/dist/doc/zeroheight/guidelines/3279582/widgets.md +0 -18
- package/dist/doc/zeroheight/guidelines/3286138/changelog.md +0 -1
- package/dist/doc/zeroheight/guidelines/3286138/content.md +0 -1
- package/dist/doc/zeroheight/guidelines/3286138/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/3286138/introduction.md +0 -47
- package/dist/doc/zeroheight/guidelines/3286138/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/3286138/usage.md +0 -11
- package/dist/doc/zeroheight/guidelines/3780230/introduction.md +0 -36
- package/dist/doc/zeroheight/guidelines/3780230/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/3781391/code.md +0 -1
- package/dist/doc/zeroheight/guidelines/3781391/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/3781391/introduction.md +0 -38
- package/dist/doc/zeroheight/guidelines/3781391/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/3781391/usage.md +0 -14
- package/dist/doc/zeroheight/guidelines/3782376/code.md +0 -1
- package/dist/doc/zeroheight/guidelines/3782376/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/3782376/introduction.md +0 -11
- package/dist/doc/zeroheight/guidelines/3782376/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/3782376/usage.md +0 -11
- package/dist/doc/zeroheight/guidelines/3992574/create-a-jira-ticket-for-development.md +0 -47
- package/dist/doc/zeroheight/guidelines/3992574/create-a-notion-ticket.md +0 -51
- package/dist/doc/zeroheight/guidelines/3992574/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/3992574/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/3992574/workflow.md +0 -87
- package/dist/doc/zeroheight/guidelines/4083384/content.md +0 -1
- package/dist/doc/zeroheight/guidelines/4083384/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4083384/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/4083384/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/4083384/usage.md +0 -14
- package/dist/doc/zeroheight/guidelines/4328996/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/4328996/introduction.md +0 -13
- package/dist/doc/zeroheight/guidelines/4328996/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/4328996/usage.md +0 -5
- package/dist/doc/zeroheight/guidelines/4359856/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4359856/introduction.md +0 -37
- package/dist/doc/zeroheight/guidelines/4359856/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4406320/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4406320/introduction.md +0 -31
- package/dist/doc/zeroheight/guidelines/4406320/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4408066/changelog.md +0 -1
- package/dist/doc/zeroheight/guidelines/4408066/content.md +0 -89
- package/dist/doc/zeroheight/guidelines/4408066/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4408066/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/4408066/overview.md +0 -49
- package/dist/doc/zeroheight/guidelines/4408066/usage.md +0 -24
- package/dist/doc/zeroheight/guidelines/4544263/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4544263/introduction.md +0 -9
- package/dist/doc/zeroheight/guidelines/4544263/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/4544263/ui-guidelines.md +0 -75
- package/dist/doc/zeroheight/guidelines/4565202/definition.md +0 -29
- package/dist/doc/zeroheight/guidelines/4565202/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/4565202/usage.md +0 -27
- package/dist/doc/zeroheight/guidelines/4845035/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845035/introduction.md +0 -49
- package/dist/doc/zeroheight/guidelines/4845035/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4845039/introduction.md +0 -25
- package/dist/doc/zeroheight/guidelines/4845039/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/4845039/offers.md +0 -41
- package/dist/doc/zeroheight/guidelines/4845039/our-strategy.md +0 -26
- package/dist/doc/zeroheight/guidelines/4845106/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845106/introduction.md +0 -16
- package/dist/doc/zeroheight/guidelines/4845106/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4845108/introduction.md +0 -10
- package/dist/doc/zeroheight/guidelines/4845108/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4845110/malt-logos.md +0 -23
- package/dist/doc/zeroheight/guidelines/4845110/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/4845110/usage.md +0 -12
- package/dist/doc/zeroheight/guidelines/4845113/art-direction.md +0 -11
- package/dist/doc/zeroheight/guidelines/4845113/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845113/graphic-shapes.md +0 -7
- package/dist/doc/zeroheight/guidelines/4845113/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/4845113/usage.md +0 -32
- package/dist/doc/zeroheight/guidelines/4845115/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845115/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4845132/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845132/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4845133/art-direction.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845133/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845133/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/4845133/photos.md +0 -12
- package/dist/doc/zeroheight/guidelines/4845133/usage.md +0 -12
- package/dist/doc/zeroheight/guidelines/4845134/art-direction.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845134/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/4845134/usage.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845134/videos.md +0 -7
- package/dist/doc/zeroheight/guidelines/4845138/introduction.md +0 -17
- package/dist/doc/zeroheight/guidelines/4845138/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4845140/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845140/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4845141/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845141/google-docs.md +0 -3
- package/dist/doc/zeroheight/guidelines/4845141/google-slides.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845141/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/4845142/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845142/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845142/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4845144/introduction.md +0 -3
- package/dist/doc/zeroheight/guidelines/4845144/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4845145/informative-posters.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845145/kitchen-labels.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845145/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/4845147/introduction.md +0 -3
- package/dist/doc/zeroheight/guidelines/4845147/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4845148/final-results.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845148/graphic-materials.md +0 -1
- package/dist/doc/zeroheight/guidelines/4845148/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/4845149/business-cards.md +0 -3
- package/dist/doc/zeroheight/guidelines/4845149/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/4845149/mugs.md +0 -1
- package/dist/doc/zeroheight/guidelines/4859603/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4859603/introduction.md +0 -28
- package/dist/doc/zeroheight/guidelines/4859603/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4860019/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/4860019/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4895510/description.md +0 -3
- package/dist/doc/zeroheight/guidelines/4895510/introduction.md +0 -55
- package/dist/doc/zeroheight/guidelines/4895510/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4946782/cover-page.md +0 -15
- package/dist/doc/zeroheight/guidelines/4946782/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4946782/file-annotation.md +0 -15
- package/dist/doc/zeroheight/guidelines/4946782/layerpage-name.md +0 -32
- package/dist/doc/zeroheight/guidelines/4946782/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/4946782/organize-sections.md +0 -11
- package/dist/doc/zeroheight/guidelines/4946782/unliked-styles.md +0 -24
- package/dist/doc/zeroheight/guidelines/4951086/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4951086/introduction.md +0 -71
- package/dist/doc/zeroheight/guidelines/4951086/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4951250/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4951250/how-to-use-it.md +0 -5
- package/dist/doc/zeroheight/guidelines/4951250/introduction.md +0 -3
- package/dist/doc/zeroheight/guidelines/4951250/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/4951250/where-to-find-it.md +0 -1
- package/dist/doc/zeroheight/guidelines/4952953/content-qa.md +0 -20
- package/dist/doc/zeroheight/guidelines/4952953/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4952953/design-system-qa.md +0 -22
- package/dist/doc/zeroheight/guidelines/4952953/introduction.md +0 -21
- package/dist/doc/zeroheight/guidelines/4952953/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/4952953/qa-tooling.md +0 -3
- package/dist/doc/zeroheight/guidelines/4955574/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/4955574/introduction.md +0 -20
- package/dist/doc/zeroheight/guidelines/4955574/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4964435/introduction.md +0 -49
- package/dist/doc/zeroheight/guidelines/4964435/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/4964653/description.md +0 -3
- package/dist/doc/zeroheight/guidelines/4964653/introduction.md +0 -29
- package/dist/doc/zeroheight/guidelines/4964653/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/5049512/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/5049512/general-iconstrations.md +0 -3
- package/dist/doc/zeroheight/guidelines/5049512/malt-strategy-iconstrations.md +0 -1
- package/dist/doc/zeroheight/guidelines/5049512/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/5174186/black-lines-illustrations.md +0 -8
- package/dist/doc/zeroheight/guidelines/5174186/colored-illustrations.md +0 -6
- package/dist/doc/zeroheight/guidelines/5174186/for-developersproduct.md +0 -32
- package/dist/doc/zeroheight/guidelines/5174186/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/5178604/introduction.md +0 -11
- package/dist/doc/zeroheight/guidelines/5178604/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/5178605/definition.md +0 -25
- package/dist/doc/zeroheight/guidelines/5178605/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/5178605/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/5178605/pillars.md +0 -10
- package/dist/doc/zeroheight/guidelines/5178605/resources.md +0 -1
- package/dist/doc/zeroheight/guidelines/5178997/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/5178997/principles.md +0 -29
- package/dist/doc/zeroheight/guidelines/5178997/tone-map.md +0 -12
- package/dist/doc/zeroheight/guidelines/5179000/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/5179000/dutch.md +0 -59
- package/dist/doc/zeroheight/guidelines/5179000/english.md +0 -31
- package/dist/doc/zeroheight/guidelines/5179000/french.md +0 -68
- package/dist/doc/zeroheight/guidelines/5179000/german.md +0 -53
- package/dist/doc/zeroheight/guidelines/5179000/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/5179000/spanish.md +0 -22
- package/dist/doc/zeroheight/guidelines/5179473/dutch.md +0 -7
- package/dist/doc/zeroheight/guidelines/5179473/english.md +0 -7
- package/dist/doc/zeroheight/guidelines/5179473/french.md +0 -13
- package/dist/doc/zeroheight/guidelines/5179473/german.md +0 -9
- package/dist/doc/zeroheight/guidelines/5179473/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/5179473/spanish.md +0 -12
- package/dist/doc/zeroheight/guidelines/5179474/dutch.md +0 -114
- package/dist/doc/zeroheight/guidelines/5179474/english.md +0 -69
- package/dist/doc/zeroheight/guidelines/5179474/french.md +0 -92
- package/dist/doc/zeroheight/guidelines/5179474/german.md +0 -151
- package/dist/doc/zeroheight/guidelines/5179474/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/5179474/spanish.md +0 -73
- package/dist/doc/zeroheight/guidelines/5179475/dutch.md +0 -106
- package/dist/doc/zeroheight/guidelines/5179475/english.md +0 -55
- package/dist/doc/zeroheight/guidelines/5179475/french.md +0 -54
- package/dist/doc/zeroheight/guidelines/5179475/german.md +0 -97
- package/dist/doc/zeroheight/guidelines/5179475/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/5179475/spanish.md +0 -81
- package/dist/doc/zeroheight/guidelines/5179476/dutch.md +0 -48
- package/dist/doc/zeroheight/guidelines/5179476/english.md +0 -27
- package/dist/doc/zeroheight/guidelines/5179476/french.md +0 -55
- package/dist/doc/zeroheight/guidelines/5179476/german.md +0 -36
- package/dist/doc/zeroheight/guidelines/5179476/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/5179476/spanish.md +0 -40
- package/dist/doc/zeroheight/guidelines/5179551/dutch.md +0 -33
- package/dist/doc/zeroheight/guidelines/5179551/english.md +0 -82
- package/dist/doc/zeroheight/guidelines/5179551/french.md +0 -15
- package/dist/doc/zeroheight/guidelines/5179551/german.md +0 -39
- package/dist/doc/zeroheight/guidelines/5179551/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/5179551/spanish.md +0 -102
- package/dist/doc/zeroheight/guidelines/5193537/adding-joy.md +0 -124
- package/dist/doc/zeroheight/guidelines/5193537/additional-resources.md +0 -5
- package/dist/doc/zeroheight/guidelines/5193537/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/5193537/introduction.md +0 -16
- package/dist/doc/zeroheight/guidelines/5193537/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/5193537/pillars.md +0 -49
- package/dist/doc/zeroheight/guidelines/5196622/dutch.md +0 -39
- package/dist/doc/zeroheight/guidelines/5196622/english.md +0 -32
- package/dist/doc/zeroheight/guidelines/5196622/french.md +0 -61
- package/dist/doc/zeroheight/guidelines/5196622/german.md +0 -39
- package/dist/doc/zeroheight/guidelines/5196622/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/5196622/spanish.md +0 -37
- package/dist/doc/zeroheight/guidelines/5196627/dutch.md +0 -61
- package/dist/doc/zeroheight/guidelines/5196627/english.md +0 -49
- package/dist/doc/zeroheight/guidelines/5196627/french.md +0 -124
- package/dist/doc/zeroheight/guidelines/5196627/german.md +0 -101
- package/dist/doc/zeroheight/guidelines/5196627/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/5196627/spanish.md +0 -61
- package/dist/doc/zeroheight/guidelines/5196629/dutch.md +0 -15
- package/dist/doc/zeroheight/guidelines/5196629/english.md +0 -15
- package/dist/doc/zeroheight/guidelines/5196629/french.md +0 -15
- package/dist/doc/zeroheight/guidelines/5196629/german.md +0 -38
- package/dist/doc/zeroheight/guidelines/5196629/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/5196629/spanish.md +0 -14
- package/dist/doc/zeroheight/guidelines/5196630/dutch.md +0 -37
- package/dist/doc/zeroheight/guidelines/5196630/english.md +0 -9
- package/dist/doc/zeroheight/guidelines/5196630/french.md +0 -11
- package/dist/doc/zeroheight/guidelines/5196630/german.md +0 -40
- package/dist/doc/zeroheight/guidelines/5196630/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/5196630/spanish.md +0 -21
- package/dist/doc/zeroheight/guidelines/5270669/introduction.md +0 -11
- package/dist/doc/zeroheight/guidelines/5270669/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/5540716/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/5540716/introduction.md +0 -7
- package/dist/doc/zeroheight/guidelines/5540716/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/5596206/meta.json +0 -15
- package/dist/doc/zeroheight/guidelines/5596206/paris-office-pictures.md +0 -1
- package/dist/doc/zeroheight/guidelines/5961423/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/5961423/desktop.md +0 -51
- package/dist/doc/zeroheight/guidelines/5961423/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/5961423/overview.md +0 -54
- package/dist/doc/zeroheight/guidelines/5961423/tablet-mobile.md +0 -17
- package/dist/doc/zeroheight/guidelines/5961423/usage.md +0 -25
- package/dist/doc/zeroheight/guidelines/5980570/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/5980570/introduction.md +0 -9
- package/dist/doc/zeroheight/guidelines/5980570/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/6428505/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/6428505/introduction.md +0 -20
- package/dist/doc/zeroheight/guidelines/6428505/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/6428505/usage.md +0 -12
- package/dist/doc/zeroheight/guidelines/6458816/code.md +0 -1
- package/dist/doc/zeroheight/guidelines/6458816/content.md +0 -44
- package/dist/doc/zeroheight/guidelines/6458816/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/6458816/introduction.md +0 -10
- package/dist/doc/zeroheight/guidelines/6458816/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/6458816/usage.md +0 -14
- package/dist/doc/zeroheight/guidelines/6559814/change-logs.md +0 -1
- package/dist/doc/zeroheight/guidelines/6559814/content.md +0 -72
- package/dist/doc/zeroheight/guidelines/6559814/introduction.md +0 -11
- package/dist/doc/zeroheight/guidelines/6559814/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/6637374/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637374/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637374/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/6637397/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637397/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637397/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/6637403/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637403/design-1.md +0 -7
- package/dist/doc/zeroheight/guidelines/6637403/design-2.md +0 -7
- package/dist/doc/zeroheight/guidelines/6637403/design-3.md +0 -7
- package/dist/doc/zeroheight/guidelines/6637403/design-4.md +0 -7
- package/dist/doc/zeroheight/guidelines/6637403/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/6637410/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637410/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637410/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/6637415/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637415/employer-brand.md +0 -3
- package/dist/doc/zeroheight/guidelines/6637415/malt-strategy.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637415/malt.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637415/meta.json +0 -19
- package/dist/doc/zeroheight/guidelines/6637415/random.md +0 -1
- package/dist/doc/zeroheight/guidelines/6637415/seasonal.md +0 -9
- package/dist/doc/zeroheight/guidelines/6832117/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/6832117/introduction.md +0 -91
- package/dist/doc/zeroheight/guidelines/6832117/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/6904773/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/6904773/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/6904773/overview.md +0 -33
- package/dist/doc/zeroheight/guidelines/6904773/ui-kit.md +0 -27
- package/dist/doc/zeroheight/guidelines/7166343/changelog.md +0 -1
- package/dist/doc/zeroheight/guidelines/7166343/content.md +0 -94
- package/dist/doc/zeroheight/guidelines/7166343/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7166343/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/7166343/overview.md +0 -11
- package/dist/doc/zeroheight/guidelines/7166343/usage.md +0 -41
- package/dist/doc/zeroheight/guidelines/7291529/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7291529/examples.md +0 -85
- package/dist/doc/zeroheight/guidelines/7291529/guidelines.md +0 -34
- package/dist/doc/zeroheight/guidelines/7291529/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/7291529/overview.md +0 -37
- package/dist/doc/zeroheight/guidelines/7465124/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7465124/introduction.md +0 -13
- package/dist/doc/zeroheight/guidelines/7465124/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/7485271/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7485271/introduction.md +0 -1
- package/dist/doc/zeroheight/guidelines/7485271/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/7490163/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7490163/introduction.md +0 -13
- package/dist/doc/zeroheight/guidelines/7490163/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/7490164/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7490164/introduction.md +0 -13
- package/dist/doc/zeroheight/guidelines/7490164/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/7490166/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7490166/introduction.md +0 -13
- package/dist/doc/zeroheight/guidelines/7490166/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/7490167/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7490167/introduction.md +0 -13
- package/dist/doc/zeroheight/guidelines/7490167/meta.json +0 -13
- package/dist/doc/zeroheight/guidelines/7490191/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7490191/how-to-use-branches.md +0 -3
- package/dist/doc/zeroheight/guidelines/7490191/introduction.md +0 -31
- package/dist/doc/zeroheight/guidelines/7490191/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/7490191/resources.md +0 -1
- package/dist/doc/zeroheight/guidelines/7490209/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7490209/full-process.md +0 -1
- package/dist/doc/zeroheight/guidelines/7490209/introduction.md +0 -9
- package/dist/doc/zeroheight/guidelines/7490209/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/7490209/need-identification.md +0 -9
- package/dist/doc/zeroheight/guidelines/7490209/roles-and-responsibilities.md +0 -19
- package/dist/doc/zeroheight/guidelines/7517834/content.md +0 -78
- package/dist/doc/zeroheight/guidelines/7517834/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7517834/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/7517834/overview.md +0 -19
- package/dist/doc/zeroheight/guidelines/7517834/usage.md +0 -42
- package/dist/doc/zeroheight/guidelines/7629688/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/7629688/examples.md +0 -1
- package/dist/doc/zeroheight/guidelines/7629688/guidelines.md +0 -1
- package/dist/doc/zeroheight/guidelines/7629688/meta.json +0 -17
- package/dist/doc/zeroheight/guidelines/7629688/overview.md +0 -7
- package/dist/doc/zeroheight/guidelines/8415609/change-log.md +0 -1
- package/dist/doc/zeroheight/guidelines/8415609/content.md +0 -52
- package/dist/doc/zeroheight/guidelines/8415609/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/8415609/meta.json +0 -18
- package/dist/doc/zeroheight/guidelines/8415609/overview.md +0 -13
- package/dist/doc/zeroheight/guidelines/8415609/usage.md +0 -6
- package/dist/doc/zeroheight/guidelines/8548355/content.md +0 -102
- package/dist/doc/zeroheight/guidelines/8548355/description.md +0 -1
- package/dist/doc/zeroheight/guidelines/8548355/meta.json +0 -16
- package/dist/doc/zeroheight/guidelines/8548355/usage.md +0 -7
- package/dist/doc/zeroheight/index.json +0 -2577
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: VJoyMenu
|
|
3
|
+
status: draft
|
|
4
|
+
language: en
|
|
5
|
+
dsds: JoyMenu.dsds.json
|
|
6
|
+
dsdsVersion: "0.15.2"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Menu
|
|
10
|
+
|
|
11
|
+
Use **`VJoyMenu`** when the user needs a **persistent vertical list of navigation destinations** — typically the sidebar in an app shell built with `VJoyTemplate`.
|
|
12
|
+
|
|
13
|
+
Compose it with **`VJoyMenuItem`** children for links, buttons, or router-aware navigation. Each item can show a leading icon, a trailing status icon, a current-page state, and disabled styling. Keyboard navigation (arrow keys, Home/End, Enter) is built in.
|
|
14
|
+
|
|
15
|
+
| | |
|
|
16
|
+
| --- | --- |
|
|
17
|
+
| **Code** | `VJoyMenu` + `VJoyMenuItem` from `@maltjoy/core-vue` |
|
|
18
|
+
| **Design** | [ZeroHeight — Menu](https://zeroheight.com/6bf479565/p/955426-menu) |
|
|
19
|
+
| **Storybook** | [VJoyMenu docs](https://doc.malt.tech/joy-storybook/?path=/docs/components-navigation-vjoymenu--docs) |
|
|
20
|
+
| **DSDS (machine)** | [`JoyMenu.dsds.json`](./JoyMenu.dsds.json) |
|
|
21
|
+
| **Live API** | `joy_get_component_info("VJoyMenu")` · `joy_get_component_info("VJoyMenuItem")` |
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## When to use this component
|
|
26
|
+
|
|
27
|
+
Use a menu when users move between **sections or routes** from a fixed sidebar — for example app settings areas, account navigation, or funnel step lists inside `VJoyTemplate`.
|
|
28
|
+
|
|
29
|
+
`VJoyMenuItem` supports plain anchors (`href`), buttons (`type="button"`), and framework links (`RouterLink` / `NuxtLink` via `type` + `linkProps`). Mark the active destination with `current`.
|
|
30
|
+
|
|
31
|
+
### When not to use this component
|
|
32
|
+
|
|
33
|
+
| Need | Use instead |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| A contextual panel that opens from a trigger (overflow, filters) | `VJoyDropdown` |
|
|
36
|
+
| Switching peer content panels on the same page | `VJoyTabs` |
|
|
37
|
+
| Choosing one value inside a labeled form field | `VJoySelect` |
|
|
38
|
+
| Short hover-only hints | `VJoyTooltip` |
|
|
39
|
+
| Main content layout chrome | `VJoyPanel` (not as a wrapper around the menu) |
|
|
40
|
+
| Custom `<ul>` / sidebar markup with ad-hoc CSS | Still use `VJoyMenu` + `VJoyMenuItem` + Joy tokens |
|
|
41
|
+
|
|
42
|
+
> **Deprecated:** do not use the `items` prop on `VJoyMenu` for new work. Prefer `VJoyMenuItem` in the default slot. The `menu-item` slot only applies to the deprecated `items` API.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## How it works
|
|
47
|
+
|
|
48
|
+
`VJoyMenu` renders a bordered `<ul role="menu">`. Each `VJoyMenuItem` renders a `<li role="menuitem">` with an inner interactive element (`<a>`, `<button>`, or a custom link component).
|
|
49
|
+
|
|
50
|
+
### Anatomy
|
|
51
|
+
|
|
52
|
+
| Part | Required? | What it is |
|
|
53
|
+
| --- | --- | --- |
|
|
54
|
+
| Menu list (`VJoyMenu`) | Yes | Root `<ul>` with border, radius, and keyboard handling |
|
|
55
|
+
| `aria-label` | Yes* | Accessible name for the menu (`ariaLabel` prop) — required when no visible heading labels the list |
|
|
56
|
+
| `VJoyMenuItem` (default slot) | Yes (preferred) | One row per destination |
|
|
57
|
+
| Leading icon | No | `icon` on `VJoyMenuItem` |
|
|
58
|
+
| Label | Yes | Primary text on each item (`label` prop) |
|
|
59
|
+
| Status icon | No | Trailing `status` + optional `statusColor` (check, warning, lock, …) |
|
|
60
|
+
| Current indicator | No | `current` highlights the active destination (`aria-current`) |
|
|
61
|
+
| `menu-item` slot | No | Custom inner content per row — **only** for deprecated `items` prop |
|
|
62
|
+
|
|
63
|
+
### Default values
|
|
64
|
+
|
|
65
|
+
- `items` defaults to **`[]`** (deprecated — prefer slot composition)
|
|
66
|
+
- `VJoyMenuItem` `type` defaults to **`"a"`** (anchor)
|
|
67
|
+
- `disabled` defaults to **`false`**
|
|
68
|
+
- `current` defaults to **`false`**
|
|
69
|
+
|
|
70
|
+
Props, events, and slots: use Joy MCP or Storybook — this page focuses on **when** and **how**, not a full API dump.
|
|
71
|
+
|
|
72
|
+
### Visual treatment
|
|
73
|
+
|
|
74
|
+
There is **no `variant` or `size` prop**. Item height, padding, colors, and border radius come from Joy tokens inside the component (e.g. `--joy-form-field-height-medium`, `--joy-core-radius-3`) — **don’t hardcode menu item heights or border colors** in product CSS.
|
|
75
|
+
|
|
76
|
+
The list uses `--menu-item-min-width: 120px` internally. Long labels truncate with ellipsis; the full label is available via the native `title` attribute.
|
|
77
|
+
|
|
78
|
+
### App shell placement
|
|
79
|
+
|
|
80
|
+
In Malt apps, `VJoyMenu` belongs in **`VJoyTemplate`’s `#template-sidebar` slot** (enforced by the `require-vjoymenu-template-sidebar` ESLint rule). Do **not** nest `VJoyMenu` inside `VJoyPanel` (`no-vjoymenu-vjoypanel` rule) — the menu and panel serve different layout roles.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## States
|
|
85
|
+
|
|
86
|
+
| State | What the user sees / can do |
|
|
87
|
+
| --- | --- |
|
|
88
|
+
| Default | Neutral text; row is interactive |
|
|
89
|
+
| Hover | Secondary background highlight (pointer devices) |
|
|
90
|
+
| Focus | Inset focus ring on the inner control; current row also uses secondary background |
|
|
91
|
+
| Current (`current`) | Secondary background and text color — marks the active page/section |
|
|
92
|
+
| Disabled | Muted text, disabled background, `cursor: not-allowed`; not clickable |
|
|
93
|
+
| Keyboard active (deprecated `items` mode) | `aria-activedescendant` tracks the focused row while arrowing |
|
|
94
|
+
| Link item | Default `type="a"` or router link navigates on click / Enter |
|
|
95
|
+
| Button item | `type="button"` fires `@click` on `VJoyMenuItem` without navigation |
|
|
96
|
+
|
|
97
|
+
When a disabled item is visible, **explain why** nearby (tooltip or helper text) if the reason is not obvious from context.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Best practices
|
|
102
|
+
|
|
103
|
+
Rules use RFC 2119 strength (**MUST** / **SHOULD** / **MUST NOT** / **SHOULD NOT**).
|
|
104
|
+
|
|
105
|
+
### Placement and hierarchy
|
|
106
|
+
|
|
107
|
+
- **MUST** place `VJoyMenu` inside `VJoyTemplate` `#template-sidebar` in app-shell layouts.
|
|
108
|
+
- **MUST NOT** nest `VJoyMenu` inside `VJoyPanel`.
|
|
109
|
+
- **SHOULD** mark exactly one item `current` for the active route or section (when applicable).
|
|
110
|
+
- **SHOULD** keep the menu list focused on navigation — avoid embedding heavy forms or multi-step panels inside menu rows.
|
|
111
|
+
|
|
112
|
+
### Composition
|
|
113
|
+
|
|
114
|
+
- **MUST** use `VJoyMenuItem` children for new work — not the deprecated `items` prop.
|
|
115
|
+
- **MUST** set `aria-label` on `VJoyMenu` when the sidebar has no visible heading that names the list.
|
|
116
|
+
- **SHOULD** use `type="button"` only when the row triggers an in-page action without navigation.
|
|
117
|
+
- **SHOULD** use `RouterLink` / `NuxtLink` (`type` + `linkProps`) for SPA navigation instead of full page reloads.
|
|
118
|
+
- **SHOULD** use `status` icons sparingly — completion, warning, or lock states users must notice at a glance.
|
|
119
|
+
|
|
120
|
+
### Implementation
|
|
121
|
+
|
|
122
|
+
- **MUST** use only documented prop values (MCP / `JoyMenu.types.ts` / `VJoyMenuItem` props).
|
|
123
|
+
- **MUST** style with Joy tokens — no custom `.joy-menu-list` or `.joy-menu-item` chrome overrides.
|
|
124
|
+
- **MUST NOT** invent props (`variant`, `size`, `open`, …).
|
|
125
|
+
- **MUST NOT** use `VJoyMenu` for transient overlay menus — use `VJoyDropdown`.
|
|
126
|
+
|
|
127
|
+
### Do / don’t
|
|
128
|
+
|
|
129
|
+
| Do | Don’t |
|
|
130
|
+
| --- | --- |
|
|
131
|
+
| `VJoyMenu` + `VJoyMenuItem` in `#template-sidebar` | `items` prop for new screens |
|
|
132
|
+
| `current` on the active route | Multiple `current` items for one section |
|
|
133
|
+
| `RouterLink` / `NuxtLink` for in-app nav | Raw `<a href>` that reloads the SPA unnecessarily |
|
|
134
|
+
| `aria-label` when no visible list title | Unnamed menu for screen-reader users |
|
|
135
|
+
| `status` for lock / warning / done | Decorative status icons on every row |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Content
|
|
140
|
+
|
|
141
|
+
Menu items are navigation labels. They should be scannable at a glance and parallel in grammar.
|
|
142
|
+
|
|
143
|
+
### Label formula
|
|
144
|
+
|
|
145
|
+
**Navigation items:** **short noun or noun phrase** naming the destination — e.g. `Dashboard`, `Billing`, `Team members`.
|
|
146
|
+
|
|
147
|
+
**Action rows (`type="button"`):** **infinitive verb + noun** when the row triggers an action — e.g. `Sign out`, `Create project`.
|
|
148
|
+
|
|
149
|
+
**Status context:** rely on the `status` icon + `statusColor` for lock/warning/done; don’t repeat the same meaning in the label unless needed for clarity.
|
|
150
|
+
|
|
151
|
+
### Writing rules
|
|
152
|
+
|
|
153
|
+
| Strength | Rule |
|
|
154
|
+
| --- | --- |
|
|
155
|
+
| **MUST** | Each `label` is unique within the menu |
|
|
156
|
+
| **MUST** | Labels stay concise — long text truncates with ellipsis (`title` shows the full string) |
|
|
157
|
+
| **MUST** | Disabled items include context elsewhere if the reason isn’t obvious |
|
|
158
|
+
| **MUST NOT** | Vague labels — ❌ `Click here`, ❌ `Menu item` |
|
|
159
|
+
| **MUST NOT** | Duplicate the section heading on every row when the group context is clear |
|
|
160
|
+
| **SHOULD** | ≤ 3 words per label where possible |
|
|
161
|
+
| **SHOULD** | Sentence case for multi-word labels |
|
|
162
|
+
| **SHOULD** | Parallel grammar across siblings (`Overview`, `Settings`, `Billing` — not mixed verb/noun styles) |
|
|
163
|
+
| **SHOULD** | Localize labels — menu copy is user-facing product UI |
|
|
164
|
+
|
|
165
|
+
### Patterns
|
|
166
|
+
|
|
167
|
+
**App sidebar** — Group related destinations under `VJoyTemplate` sidebar chrome (headings outside the menu if needed). One `current` item matching the active route.
|
|
168
|
+
|
|
169
|
+
**Funnel / step list** — Each row is a step name (`Company details`, `Payment`). Use `status="check-circle"` + `statusColor="success"` for completed steps, `status="lock"` for locked future steps.
|
|
170
|
+
|
|
171
|
+
**Mixed link + action** — Navigation rows use default `type="a"` or router links; a final `Sign out` row uses `type="button"`.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Accessibility
|
|
176
|
+
|
|
177
|
+
Behaviors (what must happen), not slogans.
|
|
178
|
+
|
|
179
|
+
| Behavior | Expectation |
|
|
180
|
+
| --- | --- |
|
|
181
|
+
| Menu role | `role="menu"` on the `<ul>`; each row `role="menuitem"` |
|
|
182
|
+
| Name | `aria-label` on `VJoyMenu` when no visible heading names the list |
|
|
183
|
+
| Current page | `aria-current` on the item with `current` |
|
|
184
|
+
| Disabled | `aria-disabled="true"`; not activatable |
|
|
185
|
+
| Row name | `aria-label` and `title` from each item’s `label` |
|
|
186
|
+
| Keyboard (list focus) | **ArrowDown** / **ArrowUp** move between enabled items; **Home** / **End** jump to first/last; **Enter** activates the focused row (clicks inner link/button); **Tab** clears active descendant tracking |
|
|
187
|
+
| Space | Prevented from scrolling when an item is focused (deprecated `items` keyboard path) |
|
|
188
|
+
| Focus ring | Visible inset ring on focused items — don’t remove in product CSS |
|
|
189
|
+
| Icons | Leading/trailing icons are decorative when the label conveys meaning (Joy default) |
|
|
190
|
+
|
|
191
|
+
Target: **WCAG 2.2 AA** where the product requires it.
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Examples
|
|
196
|
+
|
|
197
|
+
```vue
|
|
198
|
+
<script setup lang="ts">
|
|
199
|
+
import { VJoyMenu, VJoyMenuItem } from '@maltjoy/core-vue'
|
|
200
|
+
import { NuxtLink } from '#components'
|
|
201
|
+
</script>
|
|
202
|
+
|
|
203
|
+
<template>
|
|
204
|
+
<!-- Preferred: VJoyMenuItem composition inside app shell -->
|
|
205
|
+
<VJoyTemplate>
|
|
206
|
+
<template #template-sidebar>
|
|
207
|
+
<VJoyMenu aria-label="Account navigation">
|
|
208
|
+
<VJoyMenuItem icon="user" label="Profile" href="/account/profile" />
|
|
209
|
+
<VJoyMenuItem icon="billing" label="Billing" href="/account/billing" current />
|
|
210
|
+
<VJoyMenuItem
|
|
211
|
+
icon="team"
|
|
212
|
+
label="Team members"
|
|
213
|
+
:type="NuxtLink"
|
|
214
|
+
:link-props="{ to: '/account/team' }"
|
|
215
|
+
/>
|
|
216
|
+
<VJoyMenuItem
|
|
217
|
+
label="Security"
|
|
218
|
+
status="warning"
|
|
219
|
+
status-color="warning"
|
|
220
|
+
href="/account/security"
|
|
221
|
+
/>
|
|
222
|
+
<VJoyMenuItem label="Archived" disabled icon="company-placeholder" status="lock" />
|
|
223
|
+
<VJoyMenuItem type="button" label="Sign out" @click="/* handle sign out */" />
|
|
224
|
+
</VJoyMenu>
|
|
225
|
+
</template>
|
|
226
|
+
|
|
227
|
+
<template #template-main>
|
|
228
|
+
<!-- page content -->
|
|
229
|
+
</template>
|
|
230
|
+
</VJoyTemplate>
|
|
231
|
+
</template>
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
In Nuxt (or apps with auto-import), omit the import if `VJoyMenu` / `VJoyMenuItem` are already global. For Vue Router, pass `RouterLink` as `type` with `link-props="{ to: '...' }"` the same way as `NuxtLink` in Storybook.
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Related
|
|
239
|
+
|
|
240
|
+
| Component | Use when |
|
|
241
|
+
| --- | --- |
|
|
242
|
+
| `VJoyMenuItem` | Each row inside `VJoyMenu` (required for new work) |
|
|
243
|
+
| `VJoyTemplate` | App shell with `#template-sidebar` slot for the menu |
|
|
244
|
+
| `VJoyDropdown` | Contextual menus opened from a trigger |
|
|
245
|
+
| `VJoyTabs` | Peer content panels on one page |
|
|
246
|
+
| `VJoyPanel` | Main or sidebar content blocks — not as a parent of `VJoyMenu` |
|
|
247
|
+
| `VJoyIcon` | Icons on menu items (`icon`, `status`) |
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## For agents
|
|
252
|
+
|
|
253
|
+
Optional for readers; **required** for vibe-coding quality. Maps to `agentDocumentBlocks` in [`JoyMenu.dsds.json`](./JoyMenu.dsds.json).
|
|
254
|
+
|
|
255
|
+
### Pick the right component
|
|
256
|
+
|
|
257
|
+
| If the intent is… | Emit… | Do not emit… |
|
|
258
|
+
| --- | --- | --- |
|
|
259
|
+
| Persistent sidebar / app navigation | `VJoyMenu` + `VJoyMenuItem` | `VJoyDropdown` |
|
|
260
|
+
| Overflow menu from a button | `VJoyDropdown` | `VJoyMenu` |
|
|
261
|
+
| Tab panels on one page | `VJoyTabs` | `VJoyMenu` for section switching |
|
|
262
|
+
| Form single-select | `VJoySelect` | `VJoyMenu` |
|
|
263
|
+
| SPA route link | `VJoyMenuItem` + `RouterLink`/`NuxtLink` | Raw `<li><a>` lists |
|
|
264
|
+
|
|
265
|
+
### Hard rules
|
|
266
|
+
|
|
267
|
+
1. **MUST** call `joy_get_component_info("VJoyMenu")` and `joy_get_component_info("VJoyMenuItem")` before generating props.
|
|
268
|
+
2. **MUST** compose menus with `VJoyMenuItem` in the default slot — not the deprecated `items` prop.
|
|
269
|
+
3. **MUST** set `aria-label` on `VJoyMenu` when no visible heading names the list.
|
|
270
|
+
4. **MUST** place `VJoyMenu` in `VJoyTemplate` `#template-sidebar` for app-shell layouts.
|
|
271
|
+
5. **MUST NOT** nest `VJoyMenu` inside `VJoyPanel`.
|
|
272
|
+
6. **MUST NOT** invent props (`variant`, `size`, `open`, …) or override `.joy-menu-list` / `.joy-menu-item` chrome.
|
|
273
|
+
7. **SHOULD** set `current` on the item matching the active route.
|
|
274
|
+
8. **SHOULD** use `type="button"` only for non-navigation actions (e.g. sign out).
|
|
275
|
+
|
|
276
|
+
### Checklist
|
|
277
|
+
|
|
278
|
+
- [ ] Correct component (`VJoyMenu` + `VJoyMenuItem`, or named alternative)
|
|
279
|
+
- [ ] Props from MCP / types only — no `items` prop on new code
|
|
280
|
+
- [ ] `aria-label` on the menu when needed
|
|
281
|
+
- [ ] `#template-sidebar` placement in `VJoyTemplate` layouts
|
|
282
|
+
- [ ] Not nested inside `VJoyPanel`
|
|
283
|
+
- [ ] At most one `current` item per logical section
|
|
284
|
+
- [ ] Router links use `type` + `linkProps`, not bare `href` reloads in SPAs
|
|
285
|
+
- [ ] No invented props / no custom menu chrome CSS
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## DSDS mapping
|
|
290
|
+
|
|
291
|
+
This Markdown mirrors [`JoyMenu.dsds.json`](./JoyMenu.dsds.json) (DSDS **0.15.2**).
|
|
292
|
+
|
|
293
|
+
| Section here | DSDS block |
|
|
294
|
+
| --- | --- |
|
|
295
|
+
| When to use / not | `use-cases` |
|
|
296
|
+
| Anatomy | `anatomy` |
|
|
297
|
+
| Visual treatment (no variants/sizes) | `design-specifications` |
|
|
298
|
+
| States | `states` |
|
|
299
|
+
| Best practices / content rules | `guidelines` (+ `content`) |
|
|
300
|
+
| Accessibility | `accessibility` |
|
|
301
|
+
| Examples | `sections` |
|
|
302
|
+
| For agents | `agentDocumentBlocks` |
|
|
303
|
+
| Props detail | `api` in JSON + Joy MCP |
|
|
304
|
+
| Imports | `imports` in JSON |
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
---
|
|
2
|
+
component: VJoyMenuItem
|
|
3
|
+
status: draft
|
|
4
|
+
language: en
|
|
5
|
+
dsds: JoyMenuItem.dsds.json
|
|
6
|
+
dsdsVersion: "0.15.2"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Menu item
|
|
10
|
+
|
|
11
|
+
Use **`VJoyMenuItem`** when you need a single row inside a navigation menu — a labeled choice that navigates somewhere, fires an in-page action, or shows selection and status at a glance.
|
|
12
|
+
|
|
13
|
+
Each item renders as a `role="menuitem"` list row with optional leading icon, required text label, and optional trailing status icon. The inner control can be a native link (`<a>`), a `<button>`, or a router component (`RouterLink`, `NuxtLink`) passed through the `type` prop.
|
|
14
|
+
|
|
15
|
+
| | |
|
|
16
|
+
| --- | --- |
|
|
17
|
+
| **Code** | `VJoyMenuItem` from `@maltjoy/core-vue` |
|
|
18
|
+
| **Design** | [Figma — Joy components](https://www.figma.com/design/jfndp2QBJGS9yeuWbeGuvD/) |
|
|
19
|
+
| **Storybook** | [VJoyMenu docs](https://doc.malt.tech/joy-storybook/?path=/docs/components-navigation-vjoymenu--docs) (see **WithSubItem** story) |
|
|
20
|
+
| **DSDS (machine)** | [`JoyMenuItem.dsds.json`](./JoyMenuItem.dsds.json) |
|
|
21
|
+
| **Live API** | `joy_get_component_info("VJoyMenuItem")` — if unavailable, read `VJoyMenuItem.vue` and `JoyMenu.metadata.md` |
|
|
22
|
+
|
|
23
|
+
> **MCP note:** Joy MCP may not return `VJoyMenuItem` API yet (docs generation is broken for this component). Use `VJoyMenuItem.vue`, `JoyMenu.metadata.md`, or Storybook **WithSubItem** as the source of truth until MCP is updated.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## When to use this component
|
|
28
|
+
|
|
29
|
+
Use a menu item when building a **persistent navigation list** inside `VJoyMenu` — for example app sidebar links, station pickers, or settings sections where each row is a destination or action.
|
|
30
|
+
|
|
31
|
+
`VJoyMenuItem` is the preferred way to declare menu rows (icons, current state, disabled rows, router links). Compose one or more items in the **default slot** of `VJoyMenu`.
|
|
32
|
+
|
|
33
|
+
### When not to use this component
|
|
34
|
+
|
|
35
|
+
| Need | Use instead |
|
|
36
|
+
| --- | --- |
|
|
37
|
+
| Contextual overflow / action menu from a trigger | `VJoyDropdown` + `VJoyDropdownList` |
|
|
38
|
+
| Labeled single-select form field | `VJoySelect` |
|
|
39
|
+
| Tabbed content switching on the same surface | `VJoyTabs` |
|
|
40
|
+
| Standalone CTA or form submit | `VJoyButton` |
|
|
41
|
+
| Data list rows with rich left/right content | `VJoyListItem` |
|
|
42
|
+
| Custom `<li>` markup with ad-hoc menu styling | Still use `VJoyMenuItem` + Joy tokens — don’t reinvent menu row chrome |
|
|
43
|
+
|
|
44
|
+
> **Deprecated:** do not drive menu rows through `VJoyMenu`’s `items` prop for new work. That array API is deprecated — use `VJoyMenuItem` children in the default slot instead.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## How it works
|
|
49
|
+
|
|
50
|
+
### Anatomy
|
|
51
|
+
|
|
52
|
+
| Part | Required? | What it is |
|
|
53
|
+
| --- | --- | --- |
|
|
54
|
+
| List row (`<li>`) | Yes | Outer `role="menuitem"` wrapper with `aria-label`, `aria-disabled`, and `aria-current` |
|
|
55
|
+
| Inner control | Yes | `.joy-menu-item__inner` — `<a>`, `<button>`, router component, or `<div>` when `disabled` |
|
|
56
|
+
| Label | Yes | Text from the `label` prop (`.joy-menu-item__label`) |
|
|
57
|
+
| Leading icon | No | `VJoyIcon` when `icon` is set (`.joy-menu-item__icon-left`) |
|
|
58
|
+
| Status icon | No | Trailing `VJoyIcon` when `status` is set (`.joy-menu-item__icon-right`); color via `statusColor` |
|
|
59
|
+
| Focus ring | Yes | Inset `box-shadow` on inner `:focus` — don’t remove it in product CSS |
|
|
60
|
+
|
|
61
|
+
### Default values
|
|
62
|
+
|
|
63
|
+
- `type` defaults to **`'a'`** (native anchor)
|
|
64
|
+
- `disabled` defaults to **`false`**
|
|
65
|
+
- `current` defaults to **`false`**
|
|
66
|
+
- `href`, `icon`, `status`, `statusColor`, and `linkProps` are optional
|
|
67
|
+
|
|
68
|
+
Props, events, and composition: use Joy MCP (when available), `VJoyMenuItem.vue`, or Storybook — this page focuses on **when** and **how**, not a full API dump.
|
|
69
|
+
|
|
70
|
+
### Link types
|
|
71
|
+
|
|
72
|
+
| `type` | Inner element | Props / attrs |
|
|
73
|
+
| --- | --- | --- |
|
|
74
|
+
| `'a'` (default) | `<a href="…">` | `href` prop + native attrs via `$attrs` (`target`, `rel`, `data-*`, …) |
|
|
75
|
+
| `'button'` | `<button type="button">` | Native button attrs via `$attrs`; emits `click` |
|
|
76
|
+
| `RouterLink` / `NuxtLink` / custom component | Dynamic `:is="type"` | Pass routing props via `linkProps` (e.g. `{ to: '/' }`) |
|
|
77
|
+
|
|
78
|
+
When `disabled` is true, the inner control becomes a **non-interactive `<div>`** — clicks do not emit `click`.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## States
|
|
83
|
+
|
|
84
|
+
| State | What the user sees / can do |
|
|
85
|
+
| --- | --- |
|
|
86
|
+
| Default | Neutral text (`--joy-color-neutral-60`); row is interactive |
|
|
87
|
+
| Hover | Light secondary background (`--joy-color-secondary-10`) on the inner control |
|
|
88
|
+
| Focus | Secondary background + inset information focus ring (`--joy-color-information-50`) |
|
|
89
|
+
| Current | `current` prop — secondary background and secondary text color; `aria-current` on the row |
|
|
90
|
+
| Disabled | Muted text, disabled background (`--joy-color-state-disabled-background`), `cursor: not-allowed`; inner is `<div>`; `aria-disabled="true"`; no `click` emission |
|
|
91
|
+
|
|
92
|
+
Long labels truncate with ellipsis; the full string is available via the native `title` attribute on the row.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Best practices
|
|
97
|
+
|
|
98
|
+
Rules use RFC 2119 strength (**MUST** / **SHOULD** / **MUST NOT** / **SHOULD NOT**).
|
|
99
|
+
|
|
100
|
+
### Composition
|
|
101
|
+
|
|
102
|
+
- **MUST** place `VJoyMenuItem` inside `VJoyMenu` (default slot) so keyboard navigation and `role="menu"` semantics stay correct.
|
|
103
|
+
- **MUST** set `aria-label` on `VJoyMenu` when the menu’s purpose isn’t obvious from visible context alone.
|
|
104
|
+
- **SHOULD** use at most one `current` item per menu when indicating the active destination.
|
|
105
|
+
- **SHOULD** order items logically — primary destinations first, destructive or rare actions last.
|
|
106
|
+
|
|
107
|
+
### Implementation
|
|
108
|
+
|
|
109
|
+
- **MUST** use only documented props from `VJoyMenuItem.vue` / `JoyMenu.metadata.md` — no invented props.
|
|
110
|
+
- **MUST** style with Joy tokens — no custom `.joy-menu-item` chrome overrides.
|
|
111
|
+
- **MUST** pass `href` when `type` is `'a'` and the row navigates.
|
|
112
|
+
- **MUST** pass `linkProps` when `type` is `RouterLink`, `NuxtLink`, or another component.
|
|
113
|
+
- **MUST NOT** use `VJoyMenu`’s deprecated `items` array for new menus.
|
|
114
|
+
- **MUST NOT** hardcode row height — the component uses `--joy-form-field-height-medium`.
|
|
115
|
+
- **SHOULD** pass native HTML attributes (`target`, `rel`, `data-test-id`, …) as attributes on `VJoyMenuItem` when `type` is `'a'` or `'button'` (they flow through `$attrs`).
|
|
116
|
+
|
|
117
|
+
### Icons and status
|
|
118
|
+
|
|
119
|
+
- **SHOULD** use `icon` for wayfinding (user, settings, section glyph) — not decoration alone.
|
|
120
|
+
- **SHOULD** use `status` + `statusColor` for semantic feedback (check, warning, lock) — keep one trailing icon per row.
|
|
121
|
+
- **MUST NOT** rely on icon color alone to convey meaning — the `label` must still describe the action or destination.
|
|
122
|
+
|
|
123
|
+
### Interaction
|
|
124
|
+
|
|
125
|
+
- **MUST** set `disabled` when the row must not activate; explain why elsewhere if the reason isn’t obvious.
|
|
126
|
+
- **SHOULD** use `type="button"` + `@click` for in-page actions that do not navigate.
|
|
127
|
+
- **SHOULD** use `type` router component + `linkProps` for SPA navigation instead of `<a>` + manual router pushes.
|
|
128
|
+
|
|
129
|
+
### Do / don’t
|
|
130
|
+
|
|
131
|
+
| Do | Don’t |
|
|
132
|
+
| --- | --- |
|
|
133
|
+
| `VJoyMenu` + `VJoyMenuItem` slot children | Deprecated `items` prop on `VJoyMenu` |
|
|
134
|
+
| `linkProps` with `NuxtLink` / `RouterLink` | Plain `<a>` + `@click` router hacks |
|
|
135
|
+
| `current` for the active nav target | Multiple `current` rows without reason |
|
|
136
|
+
| Concise `label` text (1–3 words) | Vague labels (`Click here`, `Menu`) |
|
|
137
|
+
| `status` for lock / check / warning | Random decorative trailing icons |
|
|
138
|
+
| Explain disabled rows when needed | Disabled row with no context |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Content
|
|
143
|
+
|
|
144
|
+
Menu items are scanned quickly. Labels must be short, parallel, and predictable.
|
|
145
|
+
|
|
146
|
+
### Label formula
|
|
147
|
+
|
|
148
|
+
**Navigation rows:** **noun or short noun phrase** — e.g. `Profile`, `Billing`, `Paris Montparnasse`.
|
|
149
|
+
|
|
150
|
+
**Action rows** (`type="button"`): **verb or verb + object** — e.g. `Sign out`, `Export data`.
|
|
151
|
+
|
|
152
|
+
Use **parallel grammar** across siblings (all nouns or all verbs — don’t mix styles in one menu).
|
|
153
|
+
|
|
154
|
+
### Writing rules
|
|
155
|
+
|
|
156
|
+
| Strength | Rule |
|
|
157
|
+
| --- | --- |
|
|
158
|
+
| **MUST** | `label` is required and becomes the accessible name (`aria-label` + `title`) |
|
|
159
|
+
| **MUST** | Keep labels concise; overflow shows ellipsis — don’t rely on truncation for critical detail |
|
|
160
|
+
| **MUST NOT** | Vague labels — ❌ `Click here`, ❌ `Options`, ❌ `Item 1` in product UI |
|
|
161
|
+
| **MUST NOT** | Duplicate the parent menu title on every row when context is already clear |
|
|
162
|
+
| **SHOULD** | 1–3 words per item |
|
|
163
|
+
| **SHOULD** | Sentence case for multi-word labels |
|
|
164
|
+
| **SHOULD** | Name destructive actions explicitly — ✅ `Delete project` · ❌ `Delete` alone in a mixed menu |
|
|
165
|
+
| **SHOULD** | Start each item the same way (all verbs or all nouns) for scannability |
|
|
166
|
+
|
|
167
|
+
### Patterns
|
|
168
|
+
|
|
169
|
+
**App / settings navigation** — Noun labels: `Account`, `Notifications`, `Privacy`. Mark the active section with `current`.
|
|
170
|
+
|
|
171
|
+
**Router-linked sidebar** — `:type="NuxtLink"` (or `RouterLink`) + `:link-props="{ to: '/path' }"`. Label names the destination page.
|
|
172
|
+
|
|
173
|
+
**Status feedback** — Trailing `status` icon with `statusColor`: check for completed setup, lock for gated features, warning for attention needed. Label still states the destination.
|
|
174
|
+
|
|
175
|
+
**Disabled rows** — Keep the label readable; use `status="lock"` when helpful. Explain gating in surrounding UI or a tooltip on a related control — not only via icon color.
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Accessibility
|
|
180
|
+
|
|
181
|
+
Behaviors (what must happen), not slogans.
|
|
182
|
+
|
|
183
|
+
| Behavior | Expectation |
|
|
184
|
+
| --- | --- |
|
|
185
|
+
| Role | Outer `<li role="menuitem">` inside `VJoyMenu`’s `role="menu"` list |
|
|
186
|
+
| Name | From `label` (`aria-label` on the row; `title` for truncated text) |
|
|
187
|
+
| Current page | `current` sets `aria-current` on the row and visible current styling |
|
|
188
|
+
| Disabled | `aria-disabled="true"` on the row; inner becomes non-focusable `<div>` |
|
|
189
|
+
| Keyboard | Arrow keys, Home, End, Enter, and Space are handled by parent `VJoyMenu` — don’t reimplement list keyboard logic on individual items |
|
|
190
|
+
| Focus | Inner control shows visible focus ring — keep it in product CSS |
|
|
191
|
+
| Icons | Leading/trailing icons are decorative when `label` is present — Joy icons default to `aria-hidden` where appropriate |
|
|
192
|
+
| Links | Use real `<a href>` or router links — not clickable `<div>` except when `disabled` |
|
|
193
|
+
|
|
194
|
+
Target: **WCAG 2.2 AA** where the product requires it.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Examples
|
|
199
|
+
|
|
200
|
+
```vue
|
|
201
|
+
<script setup lang="ts">
|
|
202
|
+
import { VJoyMenu, VJoyMenuItem } from '@maltjoy/core-vue'
|
|
203
|
+
|
|
204
|
+
// Nuxt example — use your app's NuxtLink import
|
|
205
|
+
// import { NuxtLink } from '#components'
|
|
206
|
+
</script>
|
|
207
|
+
|
|
208
|
+
<template>
|
|
209
|
+
<VJoyMenu aria-label="Account sections">
|
|
210
|
+
<!-- Default: native link -->
|
|
211
|
+
<VJoyMenuItem label="Profile" href="/profile" icon="user" />
|
|
212
|
+
|
|
213
|
+
<!-- Current section -->
|
|
214
|
+
<VJoyMenuItem
|
|
215
|
+
label="Billing"
|
|
216
|
+
href="/billing"
|
|
217
|
+
icon="credit-card"
|
|
218
|
+
current
|
|
219
|
+
status="check-circle"
|
|
220
|
+
status-color="success"
|
|
221
|
+
/>
|
|
222
|
+
|
|
223
|
+
<!-- Opens in new tab -->
|
|
224
|
+
<VJoyMenuItem
|
|
225
|
+
label="Help center"
|
|
226
|
+
href="https://help.malt.com"
|
|
227
|
+
target="_blank"
|
|
228
|
+
rel="noopener noreferrer"
|
|
229
|
+
/>
|
|
230
|
+
|
|
231
|
+
<!-- In-page action -->
|
|
232
|
+
<VJoyMenuItem
|
|
233
|
+
label="Sign out"
|
|
234
|
+
type="button"
|
|
235
|
+
icon="logout"
|
|
236
|
+
@click="onSignOut"
|
|
237
|
+
/>
|
|
238
|
+
|
|
239
|
+
<!-- SPA navigation (Nuxt) -->
|
|
240
|
+
<!--
|
|
241
|
+
<VJoyMenuItem
|
|
242
|
+
label="Dashboard"
|
|
243
|
+
:type="NuxtLink"
|
|
244
|
+
:link-props="{ to: '/' }"
|
|
245
|
+
icon="home"
|
|
246
|
+
/>
|
|
247
|
+
-->
|
|
248
|
+
|
|
249
|
+
<!-- Disabled row -->
|
|
250
|
+
<VJoyMenuItem
|
|
251
|
+
label="Team settings"
|
|
252
|
+
disabled
|
|
253
|
+
icon="company-placeholder"
|
|
254
|
+
status="lock"
|
|
255
|
+
/>
|
|
256
|
+
</VJoyMenu>
|
|
257
|
+
</template>
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
In Nuxt (or apps with auto-import), omit the import if `VJoyMenuItem` is already global.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Related
|
|
265
|
+
|
|
266
|
+
| Component | Use when |
|
|
267
|
+
| --- | --- |
|
|
268
|
+
| `VJoyMenu` | Parent list with keyboard navigation and `role="menu"` |
|
|
269
|
+
| `VJoyDropdown` | Contextual menus opened from a trigger |
|
|
270
|
+
| `VJoyDropdownList` | Option list UI without full menu semantics |
|
|
271
|
+
| `VJoyIcon` | Icon primitive used for `icon` and `status` |
|
|
272
|
+
| `VJoyButton` | Standalone actions outside a menu list |
|
|
273
|
+
| `VJoyTabs` | Switching content panels on the same surface |
|
|
274
|
+
| `VJoyTooltip` | Extra detail for disabled or icon-only adjacent controls |
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## For agents
|
|
279
|
+
|
|
280
|
+
Optional for readers; **required** for vibe-coding quality. Maps to `agentDocumentBlocks` in [`JoyMenuItem.dsds.json`](./JoyMenuItem.dsds.json).
|
|
281
|
+
|
|
282
|
+
### Pick the right component
|
|
283
|
+
|
|
284
|
+
| If the intent is… | Emit… | Do not emit… |
|
|
285
|
+
| --- | --- | --- |
|
|
286
|
+
| Row inside a nav / settings menu | `VJoyMenu` + `VJoyMenuItem` | Raw `<li>` with custom menu CSS |
|
|
287
|
+
| Overflow menu from a button | `VJoyDropdown` | `VJoyMenu` for kebab menus |
|
|
288
|
+
| SPA route in a menu | `VJoyMenuItem` + `:type="NuxtLink"` / `RouterLink` + `link-props` | `<a>` + `@click` router navigation |
|
|
289
|
+
| External URL | `VJoyMenuItem` + `href` (default `type="a"`) | `type="button"` + window.location |
|
|
290
|
+
| In-page menu action | `VJoyMenuItem` + `type="button"` + `@click` | `href="#"` + click handler |
|
|
291
|
+
| Active nav destination | `current` on one item | Custom “selected” CSS classes |
|
|
292
|
+
| Deprecated data-driven menu | `VJoyMenuItem` children | `VJoyMenu` `items` prop |
|
|
293
|
+
|
|
294
|
+
### Hard rules
|
|
295
|
+
|
|
296
|
+
1. **MUST** read `VJoyMenuItem.vue` and/or `JoyMenu.metadata.md` before generating props (`joy_get_component_info` may not work yet).
|
|
297
|
+
2. **MUST** wrap items in `VJoyMenu` with an `aria-label` when context is not self-evident.
|
|
298
|
+
3. **MUST** set `label` on every item — there is no default slot for label text.
|
|
299
|
+
4. **MUST** use `linkProps` when `type` is a Vue/router component; use `href` + `$attrs` when `type` is `'a'`.
|
|
300
|
+
5. **MUST** use `type="button"` for actions that emit `click` without navigation.
|
|
301
|
+
6. **MUST NOT** invent props (`variant`, `size`, `selected`, `active`, …).
|
|
302
|
+
7. **MUST NOT** override `.joy-menu-item` / `.joy-menu-item__inner` background, padding, height, or focus ring.
|
|
303
|
+
8. **MUST NOT** use `VJoyMenu` `items` prop in new code.
|
|
304
|
+
9. **SHOULD** set at most one `current` item per menu for active-route indication.
|
|
305
|
+
10. **SHOULD** use kebab-case in templates for multi-word props (`status-color` → `statusColor`).
|
|
306
|
+
|
|
307
|
+
### Documented props (from source)
|
|
308
|
+
|
|
309
|
+
| Prop | Type / notes |
|
|
310
|
+
| --- | --- |
|
|
311
|
+
| `label` | `string` — **required** |
|
|
312
|
+
| `href` | `string` — for `type="a"` |
|
|
313
|
+
| `icon` | `TJoyIconsNames` — leading icon |
|
|
314
|
+
| `current` | `boolean` — active / current destination |
|
|
315
|
+
| `disabled` | `boolean` |
|
|
316
|
+
| `status` | `TJoyIconsNames` — trailing status icon |
|
|
317
|
+
| `statusColor` | `TJoyIconsColors` — trailing icon color |
|
|
318
|
+
| `type` | `Component \| 'a' \| 'button'` — default `'a'` |
|
|
319
|
+
| `linkProps` | `ComponentProps<T>` — for non-native `type` |
|
|
320
|
+
|
|
321
|
+
**Event:** `click` — emitted on inner activation when not `disabled` (typically `type="button"`).
|
|
322
|
+
|
|
323
|
+
### Checklist
|
|
324
|
+
|
|
325
|
+
- [ ] Correct component (`VJoyMenuItem` inside `VJoyMenu`, or named alternative)
|
|
326
|
+
- [ ] Props from source / metadata only — no invented props
|
|
327
|
+
- [ ] `label` set on every row
|
|
328
|
+
- [ ] `href` or `linkProps` matches `type` (link vs router vs button)
|
|
329
|
+
- [ ] `current` used intentionally (≤ 1 per menu in most cases)
|
|
330
|
+
- [ ] `disabled` rows explained when reason isn’t obvious
|
|
331
|
+
- [ ] No custom `.joy-menu-item` chrome CSS
|
|
332
|
+
- [ ] No deprecated `VJoyMenu` `items` array for new menus
|
|
333
|
+
- [ ] Native attrs on `VJoyMenuItem` when using `'a'` or `'button'`
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## DSDS mapping
|
|
338
|
+
|
|
339
|
+
This Markdown mirrors [`JoyMenuItem.dsds.json`](./JoyMenuItem.dsds.json) (DSDS **0.15.2**).
|
|
340
|
+
|
|
341
|
+
| Section here | DSDS block |
|
|
342
|
+
| --- | --- |
|
|
343
|
+
| When to use / not | `use-cases` |
|
|
344
|
+
| Anatomy / link types | `anatomy` |
|
|
345
|
+
| States | `states` |
|
|
346
|
+
| Best practices / content rules | `guidelines` (+ `content`) |
|
|
347
|
+
| Accessibility | `accessibility` |
|
|
348
|
+
| Examples | `sections` |
|
|
349
|
+
| For agents | `agentDocumentBlocks` |
|
|
350
|
+
| Props detail | `api` in JSON + Joy MCP (when available) |
|
|
351
|
+
| Imports | `imports` in JSON |
|
|
352
|
+
| Token sizing | `design-specifications` in JSON (`--joy-form-field-height-medium`, color tokens) |
|