@commercetools/nimbus-mcp 0.1.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/README.md +63 -14
  2. package/data/docs/route-manifest.json +10998 -0
  3. package/data/docs/routes/components-accessibility-visually-hidden.json +388 -0
  4. package/data/docs/routes/components-accessibility.json +34 -0
  5. package/data/docs/routes/components-buttons-button.json +715 -0
  6. package/data/docs/routes/components-buttons-icon-button.json +852 -0
  7. package/data/docs/routes/components-buttons-icon-toggle-button.json +594 -0
  8. package/data/docs/routes/components-buttons-split-button.json +670 -0
  9. package/data/docs/routes/components-buttons-toggle-button-group.json +722 -0
  10. package/data/docs/routes/components-buttons-toggle-button.json +689 -0
  11. package/data/docs/routes/components-buttons.json +36 -0
  12. package/data/docs/routes/components-data-display-badge.json +555 -0
  13. package/data/docs/routes/components-data-display-card.json +338 -0
  14. package/data/docs/routes/components-data-display-data-table.json +855 -0
  15. package/data/docs/routes/components-data-display-draggable-list.json +596 -0
  16. package/data/docs/routes/components-data-display-table.json +472 -0
  17. package/data/docs/routes/components-data-display-tag-group.json +535 -0
  18. package/data/docs/routes/components-data-display.json +34 -0
  19. package/data/docs/routes/components-feedback-alert.json +696 -0
  20. package/data/docs/routes/components-feedback-dialog.json +682 -0
  21. package/data/docs/routes/components-feedback-drawer.json +600 -0
  22. package/data/docs/routes/components-feedback-loading-spinner.json +415 -0
  23. package/data/docs/routes/components-feedback-progress-bar.json +661 -0
  24. package/data/docs/routes/components-feedback-toast.json +1040 -0
  25. package/data/docs/routes/components-feedback-tooltip.json +510 -0
  26. package/data/docs/routes/components-feedback.json +34 -0
  27. package/data/docs/routes/components-forms-field-errors.json +557 -0
  28. package/data/docs/routes/components-forms-form-field.json +848 -0
  29. package/data/docs/routes/components-forms-group.json +427 -0
  30. package/data/docs/routes/components-forms-localized-field.json +770 -0
  31. package/data/docs/routes/components-forms.json +37 -0
  32. package/data/docs/routes/components-inputs-calendar.json +611 -0
  33. package/data/docs/routes/components-inputs-checkbox.json +774 -0
  34. package/data/docs/routes/components-inputs-combo-box.json +761 -0
  35. package/data/docs/routes/components-inputs-date-input.json +628 -0
  36. package/data/docs/routes/components-inputs-date-picker.json +709 -0
  37. package/data/docs/routes/components-inputs-date-range-picker.json +599 -0
  38. package/data/docs/routes/components-inputs-money-input.json +721 -0
  39. package/data/docs/routes/components-inputs-multiline-text-input.json +611 -0
  40. package/data/docs/routes/components-inputs-number-input.json +647 -0
  41. package/data/docs/routes/components-inputs-password-input.json +576 -0
  42. package/data/docs/routes/components-inputs-radio-input.json +583 -0
  43. package/data/docs/routes/components-inputs-range-calendar.json +607 -0
  44. package/data/docs/routes/components-inputs-rich-text-input.json +599 -0
  45. package/data/docs/routes/components-inputs-scoped-search-input.json +570 -0
  46. package/data/docs/routes/components-inputs-search-input.json +588 -0
  47. package/data/docs/routes/components-inputs-select-input.json +960 -0
  48. package/data/docs/routes/components-inputs-switch.json +720 -0
  49. package/data/docs/routes/components-inputs-text-input.json +566 -0
  50. package/data/docs/routes/components-inputs-time-input.json +775 -0
  51. package/data/docs/routes/components-inputs.json +34 -0
  52. package/data/docs/routes/components-layout-box.json +501 -0
  53. package/data/docs/routes/components-layout-defaultpage.json +748 -0
  54. package/data/docs/routes/components-layout-flex.json +587 -0
  55. package/data/docs/routes/components-layout-grid.json +393 -0
  56. package/data/docs/routes/components-layout-modalpage.json +716 -0
  57. package/data/docs/routes/components-layout-pagecontent.json +673 -0
  58. package/data/docs/routes/components-layout-scrollarea.json +428 -0
  59. package/data/docs/routes/components-layout-separator.json +461 -0
  60. package/data/docs/routes/components-layout-simple-grid.json +519 -0
  61. package/data/docs/routes/components-layout-spacer.json +573 -0
  62. package/data/docs/routes/components-layout-stack.json +481 -0
  63. package/data/docs/routes/components-layout.json +34 -0
  64. package/data/docs/routes/components-media-avatar.json +427 -0
  65. package/data/docs/routes/components-media-icon.json +663 -0
  66. package/data/docs/routes/components-media-image.json +511 -0
  67. package/data/docs/routes/components-media-inline-svg.json +586 -0
  68. package/data/docs/routes/components-media.json +34 -0
  69. package/data/docs/routes/components-navigation-accordion.json +643 -0
  70. package/data/docs/routes/components-navigation-collapsible-motion.json +628 -0
  71. package/data/docs/routes/components-navigation-link.json +554 -0
  72. package/data/docs/routes/components-navigation-menu.json +546 -0
  73. package/data/docs/routes/components-navigation-pagination.json +502 -0
  74. package/data/docs/routes/components-navigation-steps.json +629 -0
  75. package/data/docs/routes/components-navigation-tabnav.json +546 -0
  76. package/data/docs/routes/components-navigation-tabs.json +635 -0
  77. package/data/docs/routes/components-navigation-toolbar.json +549 -0
  78. package/data/docs/routes/components-navigation.json +34 -0
  79. package/data/docs/routes/components-typography-code.json +39 -0
  80. package/data/docs/routes/components-typography-heading.json +402 -0
  81. package/data/docs/routes/components-typography-kbd.json +399 -0
  82. package/data/docs/routes/components-typography-list.json +593 -0
  83. package/data/docs/routes/components-typography-text.json +444 -0
  84. package/data/docs/routes/components-typography.json +34 -0
  85. package/data/docs/routes/components-utilities-nimbus-i18n-provider.json +295 -0
  86. package/data/docs/routes/components-utilities-nimbus-provider.json +663 -0
  87. package/data/docs/routes/components-utilities.json +34 -0
  88. package/data/docs/routes/components.json +33 -0
  89. package/data/docs/routes/home-contribute-adrs-adr0001-consumer-component-apis.json +314 -0
  90. package/data/docs/routes/home-contribute-adrs-adr0002-compound-component-extraction.json +160 -0
  91. package/data/docs/routes/home-contribute-adrs-adr0003-component-lifecycle-states.json +460 -0
  92. package/data/docs/routes/home-contribute-adrs.json +205 -0
  93. package/data/docs/routes/home-contribute-development-setup.json +213 -0
  94. package/data/docs/routes/home-contribute-stats.json +36 -0
  95. package/data/docs/routes/home-contribute.json +36 -0
  96. package/data/docs/routes/home-design-tokens-aspect-ratios.json +36 -0
  97. package/data/docs/routes/home-design-tokens-borders.json +35 -0
  98. package/data/docs/routes/home-design-tokens-colors.json +157 -0
  99. package/data/docs/routes/home-design-tokens-other-animations.json +119 -0
  100. package/data/docs/routes/home-design-tokens-other-blurs.json +36 -0
  101. package/data/docs/routes/home-design-tokens-other-breakpoints.json +61 -0
  102. package/data/docs/routes/home-design-tokens-other-cursors.json +36 -0
  103. package/data/docs/routes/home-design-tokens-other-z-indices.json +39 -0
  104. package/data/docs/routes/home-design-tokens-other.json +35 -0
  105. package/data/docs/routes/home-design-tokens-radii.json +59 -0
  106. package/data/docs/routes/home-design-tokens-shadows.json +57 -0
  107. package/data/docs/routes/home-design-tokens-sizes.json +137 -0
  108. package/data/docs/routes/home-design-tokens-spacing.json +36 -0
  109. package/data/docs/routes/home-design-tokens-typography.json +184 -0
  110. package/data/docs/routes/home-design-tokens.json +34 -0
  111. package/data/docs/routes/home-getting-started-core-concepts.json +301 -0
  112. package/data/docs/routes/home-getting-started-installation.json +621 -0
  113. package/data/docs/routes/home-getting-started-mcp-server-overview.json +139 -0
  114. package/data/docs/routes/home-getting-started-mcp-server-setup.json +316 -0
  115. package/data/docs/routes/home-getting-started-release-process.json +294 -0
  116. package/data/docs/routes/home-getting-started-testing-setup.json +296 -0
  117. package/data/docs/routes/home-playground-markdown.json +638 -0
  118. package/data/docs/routes/home-playground-toc.json +169 -0
  119. package/data/docs/routes/home-playground.json +34 -0
  120. package/data/docs/routes/home-style-props-background.json +236 -0
  121. package/data/docs/routes/home-style-props-border.json +310 -0
  122. package/data/docs/routes/home-style-props-display.json +120 -0
  123. package/data/docs/routes/home-style-props-effects.json +116 -0
  124. package/data/docs/routes/home-style-props-filters.json +396 -0
  125. package/data/docs/routes/home-style-props-flex-and-grid.json +496 -0
  126. package/data/docs/routes/home-style-props-interactivity.json +356 -0
  127. package/data/docs/routes/home-style-props-layout.json +422 -0
  128. package/data/docs/routes/home-style-props-list.json +116 -0
  129. package/data/docs/routes/home-style-props-sizing.json +244 -0
  130. package/data/docs/routes/home-style-props-spacing.json +228 -0
  131. package/data/docs/routes/home-style-props-svg.json +96 -0
  132. package/data/docs/routes/home-style-props-tables.json +116 -0
  133. package/data/docs/routes/home-style-props-transforms.json +216 -0
  134. package/data/docs/routes/home-style-props-transitions.json +216 -0
  135. package/data/docs/routes/home-style-props-typography.json +536 -0
  136. package/data/docs/routes/home-style-props.json +33 -0
  137. package/data/docs/routes/home.json +32 -0
  138. package/data/docs/routes/hooks-usecopytoclipboard.json +76 -0
  139. package/data/docs/routes/hooks-usehotkeys.json +117 -0
  140. package/data/docs/routes/hooks.json +33 -0
  141. package/data/docs/routes/icons.json +32 -0
  142. package/data/docs/routes/patterns-fields-date-range-picker-field.json +393 -0
  143. package/data/docs/routes/patterns-fields-money-input-field.json +415 -0
  144. package/data/docs/routes/patterns-fields-multiline-text-input-field.json +404 -0
  145. package/data/docs/routes/patterns-fields-number-input-field.json +470 -0
  146. package/data/docs/routes/patterns-fields-password-input-field.json +319 -0
  147. package/data/docs/routes/patterns-fields-search-input-field.json +382 -0
  148. package/data/docs/routes/patterns-fields-text-input-field.json +404 -0
  149. package/data/docs/routes/patterns-fields.json +78 -0
  150. package/data/docs/routes/patterns.json +34 -0
  151. package/data/docs/search-index.json +1 -0
  152. package/data/docs/types/Accordion.json +12 -0
  153. package/data/docs/types/AccordionContent.json +286 -0
  154. package/data/docs/types/AccordionHeader.json +891 -0
  155. package/data/docs/types/AccordionHeaderRightContent.json +27 -0
  156. package/data/docs/types/AccordionItem.json +242 -0
  157. package/data/docs/types/AccordionRoot.json +162 -0
  158. package/data/docs/types/Alert.json +12 -0
  159. package/data/docs/types/AlertActions.json +11 -0
  160. package/data/docs/types/AlertDescription.json +118 -0
  161. package/data/docs/types/AlertDismissButton.json +937 -0
  162. package/data/docs/types/AlertRoot.json +42 -0
  163. package/data/docs/types/AlertTitle.json +118 -0
  164. package/data/docs/types/Avatar.json +125 -0
  165. package/data/docs/types/Badge.json +64 -0
  166. package/data/docs/types/Body.json +67 -0
  167. package/data/docs/types/Box.json +85 -0
  168. package/data/docs/types/Button.json +1015 -0
  169. package/data/docs/types/Calendar.json +565 -0
  170. package/data/docs/types/Caption.json +67 -0
  171. package/data/docs/types/Card.json +12 -0
  172. package/data/docs/types/CardContent.json +27 -0
  173. package/data/docs/types/CardHeader.json +27 -0
  174. package/data/docs/types/CardRoot.json +106 -0
  175. package/data/docs/types/Cell.json +227 -0
  176. package/data/docs/types/Checkbox.json +897 -0
  177. package/data/docs/types/Code.json +112 -0
  178. package/data/docs/types/CollapsibleMotionContent.json +35 -0
  179. package/data/docs/types/CollapsibleMotionRoot.json +99 -0
  180. package/data/docs/types/CollapsibleMotionTrigger.json +71 -0
  181. package/data/docs/types/Column.json +101 -0
  182. package/data/docs/types/ColumnGroup.json +101 -0
  183. package/data/docs/types/ColumnHeader.json +193 -0
  184. package/data/docs/types/ComboBoxListBox.json +751 -0
  185. package/data/docs/types/ComboBoxOption.json +672 -0
  186. package/data/docs/types/ComboBoxPopover.json +786 -0
  187. package/data/docs/types/ComboBoxRoot.json +747 -0
  188. package/data/docs/types/ComboBoxSection.json +277 -0
  189. package/data/docs/types/ComboBoxTrigger.json +70 -0
  190. package/data/docs/types/Content.json +33 -0
  191. package/data/docs/types/DataTable.json +596 -0
  192. package/data/docs/types/DataTableBody.json +223 -0
  193. package/data/docs/types/DataTableFooter.json +27 -0
  194. package/data/docs/types/DataTableHeader.json +269 -0
  195. package/data/docs/types/DataTableManager.json +11 -0
  196. package/data/docs/types/DataTableRoot.json +590 -0
  197. package/data/docs/types/DataTableTable.json +271 -0
  198. package/data/docs/types/DateInput.json +792 -0
  199. package/data/docs/types/DatePicker.json +700 -0
  200. package/data/docs/types/DateRangePicker.json +936 -0
  201. package/data/docs/types/DateRangePickerField.json +1047 -0
  202. package/data/docs/types/DefaultPage.json +12 -0
  203. package/data/docs/types/DefaultPageActions.json +27 -0
  204. package/data/docs/types/DefaultPageBackLink.json +213 -0
  205. package/data/docs/types/DefaultPageContent.json +27 -0
  206. package/data/docs/types/DefaultPageFooter.json +27 -0
  207. package/data/docs/types/DefaultPageHeader.json +27 -0
  208. package/data/docs/types/DefaultPageRoot.json +106 -0
  209. package/data/docs/types/DefaultPageSubtitle.json +27 -0
  210. package/data/docs/types/DefaultPageTabNav.json +28 -0
  211. package/data/docs/types/DefaultPageTitle.json +27 -0
  212. package/data/docs/types/DialogBody.json +27 -0
  213. package/data/docs/types/DialogCloseTrigger.json +939 -0
  214. package/data/docs/types/DialogContent.json +27 -0
  215. package/data/docs/types/DialogFooter.json +27 -0
  216. package/data/docs/types/DialogHeader.json +27 -0
  217. package/data/docs/types/DialogRoot.json +138 -0
  218. package/data/docs/types/DialogTitle.json +27 -0
  219. package/data/docs/types/DialogTrigger.json +80 -0
  220. package/data/docs/types/DraggableList.json +12 -0
  221. package/data/docs/types/DraggableListField.json +894 -0
  222. package/data/docs/types/DraggableListItem.json +574 -0
  223. package/data/docs/types/DraggableListRoot.json +745 -0
  224. package/data/docs/types/Drawer.json +12 -0
  225. package/data/docs/types/DrawerBody.json +27 -0
  226. package/data/docs/types/DrawerCloseTrigger.json +939 -0
  227. package/data/docs/types/DrawerContent.json +27 -0
  228. package/data/docs/types/DrawerFooter.json +27 -0
  229. package/data/docs/types/DrawerHeader.json +27 -0
  230. package/data/docs/types/DrawerRoot.json +142 -0
  231. package/data/docs/types/DrawerTitle.json +27 -0
  232. package/data/docs/types/DrawerTrigger.json +80 -0
  233. package/data/docs/types/FieldErrors.getBuiltInMessage.json +11 -0
  234. package/data/docs/types/FieldErrors.getCustomMessage.json +9 -0
  235. package/data/docs/types/FieldErrors.json +109 -0
  236. package/data/docs/types/Flex.json +238 -0
  237. package/data/docs/types/Footer.json +67 -0
  238. package/data/docs/types/FormFieldDescription.json +11 -0
  239. package/data/docs/types/FormFieldError.json +11 -0
  240. package/data/docs/types/FormFieldInfoBox.json +27 -0
  241. package/data/docs/types/FormFieldInput.json +11 -0
  242. package/data/docs/types/FormFieldLabel.json +11 -0
  243. package/data/docs/types/FormFieldRoot.json +148 -0
  244. package/data/docs/types/Grid.json +253 -0
  245. package/data/docs/types/GridProps.json +11 -0
  246. package/data/docs/types/Group.json +143 -0
  247. package/data/docs/types/Header.json +67 -0
  248. package/data/docs/types/Heading.json +109 -0
  249. package/data/docs/types/Icon.json +112 -0
  250. package/data/docs/types/IconButton.json +1019 -0
  251. package/data/docs/types/IconToggleButton.json +787 -0
  252. package/data/docs/types/Image.json +373 -0
  253. package/data/docs/types/Indicator.json +67 -0
  254. package/data/docs/types/InlineSvg.json +98 -0
  255. package/data/docs/types/Item.json +67 -0
  256. package/data/docs/types/Kbd.json +118 -0
  257. package/data/docs/types/Link.json +380 -0
  258. package/data/docs/types/List.json +12 -0
  259. package/data/docs/types/ListIndicator.json +70 -0
  260. package/data/docs/types/ListItem.json +70 -0
  261. package/data/docs/types/ListRoot.json +124 -0
  262. package/data/docs/types/LoadingSpinner.json +87 -0
  263. package/data/docs/types/LocalizedField.json +460 -0
  264. package/data/docs/types/LocalizedStringFormatter.json +9 -0
  265. package/data/docs/types/MakeElementFocusable.json +196 -0
  266. package/data/docs/types/MenuContent.json +111 -0
  267. package/data/docs/types/MenuItem.json +671 -0
  268. package/data/docs/types/MenuRoot.json +670 -0
  269. package/data/docs/types/MenuSection.json +364 -0
  270. package/data/docs/types/MenuSubmenu.json +111 -0
  271. package/data/docs/types/MenuSubmenuTrigger.json +67 -0
  272. package/data/docs/types/MenuTrigger.json +906 -0
  273. package/data/docs/types/ModalPage.json +12 -0
  274. package/data/docs/types/ModalPageActions.json +27 -0
  275. package/data/docs/types/ModalPageContent.json +27 -0
  276. package/data/docs/types/ModalPageFooter.json +27 -0
  277. package/data/docs/types/ModalPageHeader.json +27 -0
  278. package/data/docs/types/ModalPageRoot.json +87 -0
  279. package/data/docs/types/ModalPageSubtitle.json +27 -0
  280. package/data/docs/types/ModalPageTabNav.json +28 -0
  281. package/data/docs/types/ModalPageTitle.json +27 -0
  282. package/data/docs/types/ModalPageTopBar.json +57 -0
  283. package/data/docs/types/MoneyInput.isEmpty.json +40 -0
  284. package/data/docs/types/MoneyInput.json +282 -0
  285. package/data/docs/types/MoneyInputField.json +379 -0
  286. package/data/docs/types/MoneyInputFieldProps.json +9 -0
  287. package/data/docs/types/MultilineTextInput.json +1194 -0
  288. package/data/docs/types/MultilineTextInputField.json +1269 -0
  289. package/data/docs/types/MultilineTextInputFieldProps.json +9 -0
  290. package/data/docs/types/NimbusI18nProvider.json +42 -0
  291. package/data/docs/types/NimbusI18nProviderProps.json +9 -0
  292. package/data/docs/types/NimbusProvider.json +270 -0
  293. package/data/docs/types/NumberInput.json +952 -0
  294. package/data/docs/types/NumberInputField.json +1004 -0
  295. package/data/docs/types/NumberInputFieldProps.json +9 -0
  296. package/data/docs/types/PageContent.json +11 -0
  297. package/data/docs/types/PageContentColumn.json +99 -0
  298. package/data/docs/types/PageContentRoot.json +114 -0
  299. package/data/docs/types/Pagination.json +159 -0
  300. package/data/docs/types/PasswordInput.json +1120 -0
  301. package/data/docs/types/PasswordInputField.json +1216 -0
  302. package/data/docs/types/PasswordInputFieldProps.json +9 -0
  303. package/data/docs/types/ProgressBar.json +280 -0
  304. package/data/docs/types/RadioInputOption.json +550 -0
  305. package/data/docs/types/RadioInputRoot.json +514 -0
  306. package/data/docs/types/RangeCalendar.json +618 -0
  307. package/data/docs/types/RichTextInput.json +134 -0
  308. package/data/docs/types/Root.json +122 -0
  309. package/data/docs/types/Row.json +67 -0
  310. package/data/docs/types/ScopedSearchInput.isEmpty.json +40 -0
  311. package/data/docs/types/ScopedSearchInput.json +253 -0
  312. package/data/docs/types/ScrollArea.json +179 -0
  313. package/data/docs/types/ScrollAreaElementIds.json +9 -0
  314. package/data/docs/types/ScrollAreaProps.json +9 -0
  315. package/data/docs/types/SearchInput.json +1165 -0
  316. package/data/docs/types/SearchInputField.json +1240 -0
  317. package/data/docs/types/Select.json +12 -0
  318. package/data/docs/types/SelectOption.json +572 -0
  319. package/data/docs/types/SelectOptionGroup.json +215 -0
  320. package/data/docs/types/SelectOptions.json +693 -0
  321. package/data/docs/types/SelectRoot.json +926 -0
  322. package/data/docs/types/Separator.json +65 -0
  323. package/data/docs/types/SimpleGrid.json +291 -0
  324. package/data/docs/types/Spacer.json +27 -0
  325. package/data/docs/types/SpacerProps.json +9 -0
  326. package/data/docs/types/SplitButton.json +203 -0
  327. package/data/docs/types/Stack.json +144 -0
  328. package/data/docs/types/Steps.json +12 -0
  329. package/data/docs/types/StepsChangeDetails.json +9 -0
  330. package/data/docs/types/StepsCompletedContent.json +28 -0
  331. package/data/docs/types/StepsCompletedContentProps.json +9 -0
  332. package/data/docs/types/StepsContent.json +43 -0
  333. package/data/docs/types/StepsContentProps.json +9 -0
  334. package/data/docs/types/StepsDescription.json +28 -0
  335. package/data/docs/types/StepsDescriptionProps.json +9 -0
  336. package/data/docs/types/StepsIndicator.json +28 -0
  337. package/data/docs/types/StepsIndicatorProps.json +9 -0
  338. package/data/docs/types/StepsItem.json +43 -0
  339. package/data/docs/types/StepsItemProps.json +9 -0
  340. package/data/docs/types/StepsList.json +28 -0
  341. package/data/docs/types/StepsListProps.json +9 -0
  342. package/data/docs/types/StepsNextTrigger.json +62 -0
  343. package/data/docs/types/StepsNextTriggerProps.json +9 -0
  344. package/data/docs/types/StepsNumber.json +28 -0
  345. package/data/docs/types/StepsNumberProps.json +9 -0
  346. package/data/docs/types/StepsPrevTrigger.json +62 -0
  347. package/data/docs/types/StepsPrevTriggerProps.json +9 -0
  348. package/data/docs/types/StepsRoot.json +183 -0
  349. package/data/docs/types/StepsRootProps.json +11 -0
  350. package/data/docs/types/StepsSeparator.json +28 -0
  351. package/data/docs/types/StepsSeparatorProps.json +9 -0
  352. package/data/docs/types/StepsStatus.json +57 -0
  353. package/data/docs/types/StepsStatusProps.json +9 -0
  354. package/data/docs/types/StepsTitle.json +28 -0
  355. package/data/docs/types/StepsTitleProps.json +9 -0
  356. package/data/docs/types/StepsTrigger.json +47 -0
  357. package/data/docs/types/StepsTriggerProps.json +9 -0
  358. package/data/docs/types/Switch.json +371 -0
  359. package/data/docs/types/TabListProps.json +9 -0
  360. package/data/docs/types/TabNav.json +12 -0
  361. package/data/docs/types/TabNavItem.json +300 -0
  362. package/data/docs/types/TabNavItemProps.json +9 -0
  363. package/data/docs/types/TabNavProps.json +9 -0
  364. package/data/docs/types/TabNavRoot.json +80 -0
  365. package/data/docs/types/TabPanelProps.json +9 -0
  366. package/data/docs/types/TabPanelsProps.json +9 -0
  367. package/data/docs/types/TabProps.json +9 -0
  368. package/data/docs/types/Table.json +9 -0
  369. package/data/docs/types/TableBody.json +67 -0
  370. package/data/docs/types/TableBodyProps.json +9 -0
  371. package/data/docs/types/TableCaption.json +67 -0
  372. package/data/docs/types/TableCaptionProps.json +9 -0
  373. package/data/docs/types/TableCell.json +227 -0
  374. package/data/docs/types/TableCellProps.json +9 -0
  375. package/data/docs/types/TableColumn.json +101 -0
  376. package/data/docs/types/TableColumnGroup.json +101 -0
  377. package/data/docs/types/TableColumnGroupProps.json +9 -0
  378. package/data/docs/types/TableColumnHeader.json +193 -0
  379. package/data/docs/types/TableColumnHeaderProps.json +9 -0
  380. package/data/docs/types/TableColumnProps.json +9 -0
  381. package/data/docs/types/TableFooter.json +67 -0
  382. package/data/docs/types/TableFooterProps.json +9 -0
  383. package/data/docs/types/TableHeader.json +67 -0
  384. package/data/docs/types/TableHeaderProps.json +9 -0
  385. package/data/docs/types/TableRoot.json +365 -0
  386. package/data/docs/types/TableRootProps.json +12 -0
  387. package/data/docs/types/TableRow.json +67 -0
  388. package/data/docs/types/TableRowProps.json +9 -0
  389. package/data/docs/types/TableScrollArea.json +82 -0
  390. package/data/docs/types/TableScrollAreaProps.json +9 -0
  391. package/data/docs/types/Tabs.json +12 -0
  392. package/data/docs/types/TabsList.json +110 -0
  393. package/data/docs/types/TabsPanel.json +112 -0
  394. package/data/docs/types/TabsPanels.json +108 -0
  395. package/data/docs/types/TabsRoot.json +211 -0
  396. package/data/docs/types/TabsTab.json +174 -0
  397. package/data/docs/types/TagGroup.json +12 -0
  398. package/data/docs/types/TagGroupRoot.json +306 -0
  399. package/data/docs/types/TagGroupTag.json +595 -0
  400. package/data/docs/types/TagGroupTagList.json +166 -0
  401. package/data/docs/types/Text.json +119 -0
  402. package/data/docs/types/TextInput.json +1156 -0
  403. package/data/docs/types/TextInputField.json +1263 -0
  404. package/data/docs/types/TimeInput.json +752 -0
  405. package/data/docs/types/ToastAction.json +9 -0
  406. package/data/docs/types/ToastManagerApi.json +9 -0
  407. package/data/docs/types/ToastOptions.json +9 -0
  408. package/data/docs/types/ToastOutlet.json +12 -0
  409. package/data/docs/types/ToastPlacement.json +9 -0
  410. package/data/docs/types/ToastPromiseOptions.json +9 -0
  411. package/data/docs/types/ToastType.json +9 -0
  412. package/data/docs/types/ToastVariant.json +9 -0
  413. package/data/docs/types/ToggleButton.json +789 -0
  414. package/data/docs/types/ToggleButtonGroup.json +9 -0
  415. package/data/docs/types/ToggleButtonGroupButton.json +331 -0
  416. package/data/docs/types/ToggleButtonGroupRoot.json +269 -0
  417. package/data/docs/types/Toolbar.json +176 -0
  418. package/data/docs/types/Tooltip.json +12 -0
  419. package/data/docs/types/TooltipContent.json +372 -0
  420. package/data/docs/types/TooltipRoot.json +179 -0
  421. package/data/docs/types/Trigger.json +69 -0
  422. package/data/docs/types/VisuallyHidden.json +93 -0
  423. package/data/docs/types/__object.json +12 -0
  424. package/data/docs/types/filters.json +11 -0
  425. package/data/docs/types/manifest.json +280 -0
  426. package/data/docs/types/toast.json +234 -0
  427. package/data/docs/types/useColorMode.json +13 -0
  428. package/data/docs/types/useColorModeValue.json +13 -0
  429. package/data/docs/types/useColorScheme.json +12 -0
  430. package/data/docs/types/useLocalizedStringFormatter.json +14 -0
  431. package/data/icons.json +21940 -0
  432. package/data/tokens.json +40061 -0
  433. package/dist/index.js +2516 -17
  434. package/package.json +25 -6
  435. package/dist/data-loader.d.ts +0 -102
  436. package/dist/data-loader.js +0 -104
  437. package/dist/index.d.ts +0 -13
  438. package/dist/server.d.ts +0 -9
  439. package/dist/server.js +0 -22
  440. package/dist/server.spec.d.ts +0 -1
  441. package/dist/server.spec.js +0 -69
  442. package/dist/tools/list-components.d.ts +0 -9
  443. package/dist/tools/list-components.js +0 -42
  444. package/dist/types.d.ts +0 -28
  445. package/dist/types.js +0 -4
  446. package/src/data-loader.ts +0 -226
  447. package/src/index.ts +0 -29
  448. package/src/server.spec.ts +0 -86
  449. package/src/server.ts +0 -28
  450. package/src/tools/list-components.ts +0 -49
  451. package/src/types.ts +0 -31
  452. package/tsconfig.json +0 -14
  453. package/vitest.config.ts +0 -9
@@ -0,0 +1,427 @@
1
+ {
2
+ "meta": {
3
+ "id": "Components-Avatar",
4
+ "title": "Avatar",
5
+ "exportName": "Avatar",
6
+ "description": "A small image or icon that identifies and personalizes the user within the interface.",
7
+ "lifecycleState": "Stable",
8
+ "order": 999,
9
+ "repoPath": "packages/nimbus/src/components/avatar/avatar.mdx",
10
+ "menu": [
11
+ "Components",
12
+ "Media",
13
+ "Avatar"
14
+ ],
15
+ "route": "components/media/avatar",
16
+ "tags": [
17
+ "component",
18
+ "avatar",
19
+ "user",
20
+ "profile",
21
+ "image"
22
+ ],
23
+ "toc": [
24
+ {
25
+ "value": "Overview",
26
+ "href": "#overview",
27
+ "depth": 2,
28
+ "numbering": [
29
+ 1,
30
+ 1
31
+ ],
32
+ "parent": "root"
33
+ },
34
+ {
35
+ "value": "Resources",
36
+ "href": "#resources",
37
+ "depth": 3,
38
+ "numbering": [
39
+ 1,
40
+ 1,
41
+ 1
42
+ ],
43
+ "parent": "root"
44
+ },
45
+ {
46
+ "value": "Variables",
47
+ "href": "#variables",
48
+ "depth": 2,
49
+ "numbering": [
50
+ 1,
51
+ 2
52
+ ],
53
+ "parent": "root"
54
+ },
55
+ {
56
+ "value": "Size",
57
+ "href": "#size",
58
+ "depth": 3,
59
+ "numbering": [
60
+ 1,
61
+ 2,
62
+ 1
63
+ ],
64
+ "parent": "root"
65
+ },
66
+ {
67
+ "value": "Initials and images",
68
+ "href": "#initials-and-images",
69
+ "depth": 3,
70
+ "numbering": [
71
+ 1,
72
+ 2,
73
+ 2
74
+ ],
75
+ "parent": "root"
76
+ },
77
+ {
78
+ "value": "Avatar initials",
79
+ "href": "#avatar-initials",
80
+ "depth": 4,
81
+ "numbering": [
82
+ 1,
83
+ 2,
84
+ 2,
85
+ 1
86
+ ],
87
+ "parent": "root"
88
+ }
89
+ ],
90
+ "figmaLink": "https://www.figma.com/design/AvtPX6g7OGGCRvNlatGOIY/NIMBUS-design-system?node-id=346-2611&t=WljaKGkdJ1dZn3oM-4",
91
+ "layout": "app-frame",
92
+ "tabs": [
93
+ {
94
+ "key": "overview",
95
+ "title": "Overview",
96
+ "order": 0
97
+ },
98
+ {
99
+ "key": "dev",
100
+ "title": "Implementation",
101
+ "order": 3
102
+ },
103
+ {
104
+ "key": "a11y",
105
+ "title": "Accessibility",
106
+ "order": 4
107
+ }
108
+ ]
109
+ },
110
+ "mdx": "\n## Overview\n\nAvatar components can include images or the initials of the user’s first and\nlast name.\n\n### Resources\n\nDeep dive into implementation details and access the Nimbus design library.\n\n[Figma library](https://www.figma.com/design/AvtPX6g7OGGCRvNlatGOIY/NIMBUS-design-system?node-id=346-2611&t=WljaKGkdJ1dZn3oM-4)\n\n## Variables\n\nGet familiar with the features.\n\n### Size\n\n**Medium** (40px)\n\nMost commonly used in the upper right hand side of the page paired with a\ndrop-down menu.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"horizontal\">\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" src=\"https://thispersondoesnotexist.com/ \" size=\"md\" />\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" size=\"md\" /> {/* Shows initials when no image */}\n </Stack>\n)\n```\n\n**X-Small** (32px)\n\nUse small circle avatars in tighter areas like text fields and dropdown fields\nor when it is less important information.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"horizontal\">\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" src=\"https://thispersondoesnotexist.com/ \" size=\"xs\" />\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" size=\"xs\" /> {/* Shows initials when no image */}\n </Stack>\n)\n```\n\n**2x-Small** (24px)\n\nUse these in condensed areas like notifications or filters.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"horizontal\">\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" src=\"https://thispersondoesnotexist.com/ \" size=\"2xs\" />\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" size=\"2xs\" /> {/* Shows initials when no image */}\n </Stack>\n)\n```\n\n### Initials and images\n\n#### Avatar initials\n\nThe default and fallback for avatar graphics is to use initials. Default color\nshould use Primary, but is open to custom colors.\n\n```jsx live\nconst App = () => (\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" />\n)\n```\n",
111
+ "views": {
112
+ "overview": {
113
+ "mdx": "\n## Overview\n\nAvatar components can include images or the initials of the user’s first and\nlast name.\n\n### Resources\n\nDeep dive into implementation details and access the Nimbus design library.\n\n[Figma library](https://www.figma.com/design/AvtPX6g7OGGCRvNlatGOIY/NIMBUS-design-system?node-id=346-2611&t=WljaKGkdJ1dZn3oM-4)\n\n## Variables\n\nGet familiar with the features.\n\n### Size\n\n**Medium** (40px)\n\nMost commonly used in the upper right hand side of the page paired with a\ndrop-down menu.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"horizontal\">\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" src=\"https://thispersondoesnotexist.com/ \" size=\"md\" />\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" size=\"md\" /> {/* Shows initials when no image */}\n </Stack>\n)\n```\n\n**X-Small** (32px)\n\nUse small circle avatars in tighter areas like text fields and dropdown fields\nor when it is less important information.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"horizontal\">\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" src=\"https://thispersondoesnotexist.com/ \" size=\"xs\" />\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" size=\"xs\" /> {/* Shows initials when no image */}\n </Stack>\n)\n```\n\n**2x-Small** (24px)\n\nUse these in condensed areas like notifications or filters.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"horizontal\">\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" src=\"https://thispersondoesnotexist.com/ \" size=\"2xs\" />\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" size=\"2xs\" /> {/* Shows initials when no image */}\n </Stack>\n)\n```\n\n### Initials and images\n\n#### Avatar initials\n\nThe default and fallback for avatar graphics is to use initials. Default color\nshould use Primary, but is open to custom colors.\n\n```jsx live\nconst App = () => (\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" />\n)\n```\n",
114
+ "toc": [
115
+ {
116
+ "value": "Overview",
117
+ "href": "#overview",
118
+ "depth": 2,
119
+ "numbering": [
120
+ 1,
121
+ 1
122
+ ],
123
+ "parent": "root"
124
+ },
125
+ {
126
+ "value": "Resources",
127
+ "href": "#resources",
128
+ "depth": 3,
129
+ "numbering": [
130
+ 1,
131
+ 1,
132
+ 1
133
+ ],
134
+ "parent": "root"
135
+ },
136
+ {
137
+ "value": "Variables",
138
+ "href": "#variables",
139
+ "depth": 2,
140
+ "numbering": [
141
+ 1,
142
+ 2
143
+ ],
144
+ "parent": "root"
145
+ },
146
+ {
147
+ "value": "Size",
148
+ "href": "#size",
149
+ "depth": 3,
150
+ "numbering": [
151
+ 1,
152
+ 2,
153
+ 1
154
+ ],
155
+ "parent": "root"
156
+ },
157
+ {
158
+ "value": "Initials and images",
159
+ "href": "#initials-and-images",
160
+ "depth": 3,
161
+ "numbering": [
162
+ 1,
163
+ 2,
164
+ 2
165
+ ],
166
+ "parent": "root"
167
+ },
168
+ {
169
+ "value": "Avatar initials",
170
+ "href": "#avatar-initials",
171
+ "depth": 4,
172
+ "numbering": [
173
+ 1,
174
+ 2,
175
+ 2,
176
+ 1
177
+ ],
178
+ "parent": "root"
179
+ }
180
+ ]
181
+ },
182
+ "a11y": {
183
+ "mdx": "\n## Accessibility\n\nAccessibility ensures that digital content and functionality are usable by\neveryone, including people with disabilities, by addressing visual, auditory,\ncognitive, and physical limitations.\n\n```jsx live\nconst App = () => (\n <Avatar firstName=\"Adam\" lastName=\"Vadam\" src=\"https://thispersondoesnotexist.com/ \" />\n)\n```\n\n### Accessibility standards\n\n- **Non-text content:** Avatars must have a text alternative. Use the `alt`\n attribute on the `<img>` tag (if the avatar is an image) or through `ARIA` if\n the avatar is more complex. The alt text should describe the avatar's purpose\n or what it represents (e.g., \"User profile picture,\" \"John Doe's avatar,\"\n \"Company logo\"). If the avatar is purely decorative and doesn't convey any\n meaningful information, the alt attribute should be empty (`alt=\"\"`).\n- **Info and relationships:** If the avatar is associated with other information\n (e.g., a username, profile link), the relationship should be programmatically\n determinable. This can be achieved using semantic `HTML` (e.g., placing the\n avatar and username within a single element) or ARIA attributes (e.g.,\n `aria-labelledby` or `aria-describedby`).\n- **Use of color:** Don't rely on color alone to convey information about the\n avatar (e.g., using a colored border to indicate status). Any information\n conveyed by color must also be available through other means.\n- **Color contrast:** If the avatar contains any text (which is less common),\n that text must meet minimum contrast ratio requirements.\n- **Keyboard accessibility:** If the avatar is interactive (e.g., clicking it\n opens a profile), it must be operable using the keyboard. Users should be able\n to navigate to the avatar using the Tab key and activate it using the Enter or\n Space key.\n- **Link purpose:** If the avatar is a link, its purpose should be clear from\n the surrounding context or from the avatar's alt text. Avoid generic link text\n like \"Click here.\"\n- **Focus visible:** If the avatar is interactive, it should have a visible\n focus indicator when it receives keyboard focus.\n- **On focus:** If the avatar is interactive and its appearance changes on\n focus, the change should not be disorienting or unexpected.\n- **Name, role, value:** Assistive technologies should be able to correctly\n interpret the role of the avatar (e.g., `image`, `link`) and its name (from\n the alt text).\n",
184
+ "toc": [
185
+ {
186
+ "value": "Accessibility",
187
+ "href": "#accessibility",
188
+ "depth": 2,
189
+ "numbering": [
190
+ 1,
191
+ 1
192
+ ],
193
+ "parent": "root"
194
+ },
195
+ {
196
+ "value": "Accessibility standards",
197
+ "href": "#accessibility-standards",
198
+ "depth": 3,
199
+ "numbering": [
200
+ 1,
201
+ 1,
202
+ 1
203
+ ],
204
+ "parent": "root"
205
+ }
206
+ ]
207
+ },
208
+ "dev": {
209
+ "mdx": "\n## Getting started\n\n### Import\n\n```tsx\nimport { Avatar, type AvatarProps } from \"@commercetools/nimbus\";\n```\n\n### Basic usage\n\nThe simplest implementation displays an avatar with initials derived from first\nand last names:\n\n```jsx live-dev\nconst App = () => (\n <Avatar firstName=\"John\" lastName=\"Doe\" />\n)\n```\n\n## Usage examples\n\n### Size options\n\nThe `2xs`, `xs`, and `md` size variants are available to match your interface\ndensity:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"row\" gap=\"400\" alignItems=\"center\">\n <Avatar firstName=\"John\" lastName=\"Doe\" size=\"2xs\" />\n <Avatar firstName=\"John\" lastName=\"Doe\" size=\"xs\" />\n <Avatar firstName=\"John\" lastName=\"Doe\" size=\"md\" />\n </Stack>\n)\n```\n\n### Color palettes\n\nAvatars support different color palettes to convey semantic meaning or match\nyour design theme:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"row\" gap=\"400\" alignItems=\"center\">\n <Avatar firstName=\"John\" lastName=\"Doe\" colorPalette=\"primary\" />\n <Avatar firstName=\"Jane\" lastName=\"Smith\" colorPalette=\"positive\" />\n <Avatar firstName=\"Alex\" lastName=\"Chen\" colorPalette=\"info\" />\n <Avatar firstName=\"Maria\" lastName=\"Garcia\" colorPalette=\"critical\" />\n <Avatar firstName=\"Sam\" lastName=\"Wilson\" colorPalette=\"cyan\" />\n </Stack>\n)\n```\n\n### With image\n\nWhen a `src` prop is provided, the Avatar displays the image. If the image fails\nto load, it automatically falls back to initials:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"row\" gap=\"400\" alignItems=\"center\">\n <Avatar\n firstName=\"Jane\"\n lastName=\"Smith\"\n src=\"https://i.pravatar.cc/150?img=1\"\n alt=\"Jane Smith's profile picture\"\n />\n <Avatar\n firstName=\"Alex\"\n lastName=\"Johnson\"\n src=\"https://i.pravatar.cc/150?img=2\"\n alt=\"Alex Johnson's profile picture\"\n />\n </Stack>\n)\n```\n\n### Initials fallback\n\nThe Avatar automatically extracts and displays initials from the provided first\nand last names. This serves as a fallback when no image is available or when the\nimage fails to load:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"row\" gap=\"400\">\n <Avatar\n firstName=\"Maria\"\n lastName=\"Garcia\"\n src=\"https://www.gravatar.com/avatar/thisWill404?s=200&d=404\" />\n <Avatar\n firstName=\"Chen\"\n lastName=\"Wei\"\n src=\"https://www.gravatar.com/avatar/thisWill404?s=200&d=404\" />\n <Avatar\n firstName=\"Aisha\"\n lastName=\"Patel\"\n src=\"https://www.gravatar.com/avatar/thisWill404?s=200&d=404\" />\n </Stack>\n)\n```\n\n## Component requirements\n\n## Accessibility\n\nThe Avatar component handles most accessibility requirements internally,\nincluding automatic labeling with the user's full name.\n\n- **Labeling**: The component automatically generates an internationalized\n accessible label from the `firstName` and `lastName` props. When providing an\n image via the `src` prop, always include an `alt` attribute for screen\n readers.\n- **Role**: Renders as a `<figure>` element with an `aria-label` that includes\n the full name (e.g., \"Avatar image for John Doe\").\n\nIf your use case requires tracking and analytics for this component, it is good\npractice to add a **persistent**, **unique** id to the component:\n\n```tsx\nconst PERSISTENT_ID = \"example-avatar\";\n\nexport const Example = () => (\n <Avatar id={PERSISTENT_ID} firstName=\"John\" lastName=\"Doe\" />\n);\n```\n\n#### Keyboard navigation\n\nAvatars are non-interactive elements and do not receive focus or support\nkeyboard interaction by default. If you need to make an avatar interactive\n(e.g., clickable), wrap it in a button or interactive element:\n\n```tsx\n<button onClick={handleClick} aria-label=\"View profile\">\n <Avatar firstName=\"John\" lastName=\"Doe\" />\n</button>\n```\n\n## API reference\n\n<PropsTable id=\"Avatar\" />\n\n## Common patterns\n\n### User profile header\n\nCombine Avatar with text components to create a user profile header:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"row\" gap=\"400\" alignItems=\"center\">\n <Avatar\n firstName=\"Sarah\"\n lastName=\"Johnson\"\n src=\"https://i.pravatar.cc/150?img=5\"\n size=\"md\"\n />\n <Stack direction=\"column\" gap=\"100\">\n <Text fontSize=\"md\" fontWeight=\"600\">Sarah Johnson</Text>\n <Text fontSize=\"sm\" color=\"neutral.11\">Product Manager</Text>\n </Stack>\n </Stack>\n)\n```\n\n### Comment or message list\n\nDisplay avatars alongside user content in comments or messages:\n\n```jsx live-dev\nconst App = () => {\n const comments = [\n { id: 1, author: { firstName: \"Alex\", lastName: \"Chen\" }, text: \"Great work on this feature!\", time: \"2 hours ago\" },\n { id: 2, author: { firstName: \"Maria\", lastName: \"Garcia\" }, text: \"I agree, this is really helpful.\", time: \"1 hour ago\" },\n { id: 3, author: { firstName: \"James\", lastName: \"Wilson\" }, text: \"Looking forward to the next update.\", time: \"30 minutes ago\" },\n ];\n\n return (\n <Stack direction=\"column\" gap=\"600\">\n {comments.map((comment) => (\n <Stack key={comment.id} direction=\"row\" gap=\"400\">\n <Avatar\n firstName={comment.author.firstName}\n lastName={comment.author.lastName}\n size=\"xs\"\n />\n <Stack direction=\"column\" gap=\"100\" flex=\"1\">\n <Stack direction=\"row\" gap=\"200\" alignItems=\"baseline\">\n <Text fontSize=\"sm\" fontWeight=\"600\">\n {comment.author.firstName} {comment.author.lastName}\n </Text>\n <Text fontSize=\"xs\" color=\"neutral.11\">{comment.time}</Text>\n </Stack>\n <Text fontSize=\"sm\">{comment.text}</Text>\n </Stack>\n </Stack>\n ))}\n </Stack>\n );\n}\n```\n\n## Testing your implementation\n\nThese examples demonstrate how to test your implementation when using Avatar\nwithin your application. As the component's internal functionality is already\ntested by Nimbus, these patterns help you verify your integration and\napplication-specific logic.\n\n### Basic rendering tests\n\nVerify the Avatar renders with expected elements and labels\n\n```tsx\nimport { describe, it, expect } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport { Avatar, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"Avatar - Basic rendering\", () => {\n it(\"renders avatar with initials\", () => {\n render(\n <NimbusProvider>\n <Avatar firstName=\"John\" lastName=\"Doe\" />\n </NimbusProvider>\n );\n\n expect(screen.getByRole(\"figure\")).toBeInTheDocument();\n expect(screen.getByLabelText(/John Doe/i)).toBeInTheDocument();\n expect(screen.getByText(\"JD\")).toBeInTheDocument();\n });\n\n it(\"renders avatar with image\", () => {\n render(\n <NimbusProvider>\n <Avatar\n firstName=\"Jane\"\n lastName=\"Smith\"\n src=\"https://example.com/avatar.jpg\"\n alt=\"Jane Smith profile\"\n />\n </NimbusProvider>\n );\n\n const image = screen.getByAltText(\"Jane Smith profile\");\n expect(image).toBeInTheDocument();\n expect(image).toHaveAttribute(\"src\", \"https://example.com/avatar.jpg\");\n });\n});\n```\n\n### Size variant tests\n\nTest different size options\n\n```tsx\nimport { describe, it, expect } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport { Avatar, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"Avatar - Size variants\", () => {\n it(\"renders different sizes correctly\", () => {\n const { rerender } = render(\n <NimbusProvider>\n <Avatar firstName=\"John\" lastName=\"Doe\" size=\"2xs\" />\n </NimbusProvider>\n );\n\n let avatar = screen.getByRole(\"figure\");\n expect(avatar).toBeInTheDocument();\n\n rerender(\n <NimbusProvider>\n <Avatar firstName=\"John\" lastName=\"Doe\" size=\"xs\" />\n </NimbusProvider>\n );\n\n avatar = screen.getByRole(\"figure\");\n expect(avatar).toBeInTheDocument();\n\n rerender(\n <NimbusProvider>\n <Avatar firstName=\"John\" lastName=\"Doe\" size=\"md\" />\n </NimbusProvider>\n );\n\n avatar = screen.getByRole(\"figure\");\n expect(avatar).toBeInTheDocument();\n });\n});\n```\n\n### Accessibility tests\n\nVerify accessibility attributes and labeling\n\n```tsx\nimport { describe, it, expect } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport { Avatar, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"Avatar - Accessibility\", () => {\n it(\"has correct aria-label with full name\", () => {\n render(\n <NimbusProvider>\n <Avatar firstName=\"Maria\" lastName=\"Garcia\" />\n </NimbusProvider>\n );\n\n const avatar = screen.getByLabelText(/Maria Garcia/i);\n expect(avatar).toBeInTheDocument();\n expect(avatar.tagName).toBe(\"FIGURE\");\n });\n\n it(\"applies custom id for tracking\", () => {\n const PERSISTENT_ID = \"test-avatar-id\";\n\n render(\n <NimbusProvider>\n <Avatar id={PERSISTENT_ID} firstName=\"John\" lastName=\"Doe\" />\n </NimbusProvider>\n );\n\n const avatar = screen.getByRole(\"figure\");\n expect(avatar).toHaveAttribute(\"id\", PERSISTENT_ID);\n });\n});\n```\n\n\n## Resources\n\n- [Storybook](https://nimbus-storybook.vercel.app/?path=/docs/components-avatar--docs)\n",
210
+ "toc": [
211
+ {
212
+ "value": "Getting started",
213
+ "href": "#getting-started",
214
+ "depth": 2,
215
+ "numbering": [
216
+ 1,
217
+ 1
218
+ ],
219
+ "parent": "root"
220
+ },
221
+ {
222
+ "value": "Import",
223
+ "href": "#import",
224
+ "depth": 3,
225
+ "numbering": [
226
+ 1,
227
+ 1,
228
+ 1
229
+ ],
230
+ "parent": "root"
231
+ },
232
+ {
233
+ "value": "Basic usage",
234
+ "href": "#basic-usage",
235
+ "depth": 3,
236
+ "numbering": [
237
+ 1,
238
+ 1,
239
+ 2
240
+ ],
241
+ "parent": "root"
242
+ },
243
+ {
244
+ "value": "Usage examples",
245
+ "href": "#usage-examples",
246
+ "depth": 2,
247
+ "numbering": [
248
+ 1,
249
+ 2
250
+ ],
251
+ "parent": "root"
252
+ },
253
+ {
254
+ "value": "Size options",
255
+ "href": "#size-options",
256
+ "depth": 3,
257
+ "numbering": [
258
+ 1,
259
+ 2,
260
+ 1
261
+ ],
262
+ "parent": "root"
263
+ },
264
+ {
265
+ "value": "Color palettes",
266
+ "href": "#color-palettes",
267
+ "depth": 3,
268
+ "numbering": [
269
+ 1,
270
+ 2,
271
+ 2
272
+ ],
273
+ "parent": "root"
274
+ },
275
+ {
276
+ "value": "With image",
277
+ "href": "#with-image",
278
+ "depth": 3,
279
+ "numbering": [
280
+ 1,
281
+ 2,
282
+ 3
283
+ ],
284
+ "parent": "root"
285
+ },
286
+ {
287
+ "value": "Initials fallback",
288
+ "href": "#initials-fallback",
289
+ "depth": 3,
290
+ "numbering": [
291
+ 1,
292
+ 2,
293
+ 4
294
+ ],
295
+ "parent": "root"
296
+ },
297
+ {
298
+ "value": "Component requirements",
299
+ "href": "#component-requirements",
300
+ "depth": 2,
301
+ "numbering": [
302
+ 1,
303
+ 3
304
+ ],
305
+ "parent": "root"
306
+ },
307
+ {
308
+ "value": "Accessibility",
309
+ "href": "#accessibility",
310
+ "depth": 2,
311
+ "numbering": [
312
+ 1,
313
+ 4
314
+ ],
315
+ "parent": "root"
316
+ },
317
+ {
318
+ "value": "Keyboard navigation",
319
+ "href": "#keyboard-navigation",
320
+ "depth": 4,
321
+ "numbering": [
322
+ 1,
323
+ 4,
324
+ 1,
325
+ 1
326
+ ],
327
+ "parent": "root"
328
+ },
329
+ {
330
+ "value": "API reference",
331
+ "href": "#api-reference",
332
+ "depth": 2,
333
+ "numbering": [
334
+ 1,
335
+ 5
336
+ ],
337
+ "parent": "root"
338
+ },
339
+ {
340
+ "value": "Common patterns",
341
+ "href": "#common-patterns",
342
+ "depth": 2,
343
+ "numbering": [
344
+ 1,
345
+ 6
346
+ ],
347
+ "parent": "root"
348
+ },
349
+ {
350
+ "value": "User profile header",
351
+ "href": "#user-profile-header",
352
+ "depth": 3,
353
+ "numbering": [
354
+ 1,
355
+ 6,
356
+ 1
357
+ ],
358
+ "parent": "root"
359
+ },
360
+ {
361
+ "value": "Comment or message list",
362
+ "href": "#comment-or-message-list",
363
+ "depth": 3,
364
+ "numbering": [
365
+ 1,
366
+ 6,
367
+ 2
368
+ ],
369
+ "parent": "root"
370
+ },
371
+ {
372
+ "value": "Testing your implementation",
373
+ "href": "#testing-your-implementation",
374
+ "depth": 2,
375
+ "numbering": [
376
+ 1,
377
+ 7
378
+ ],
379
+ "parent": "root"
380
+ },
381
+ {
382
+ "value": "Basic rendering tests",
383
+ "href": "#basic-rendering-tests",
384
+ "depth": 3,
385
+ "numbering": [
386
+ 1,
387
+ 7,
388
+ 1
389
+ ],
390
+ "parent": "root"
391
+ },
392
+ {
393
+ "value": "Size variant tests",
394
+ "href": "#size-variant-tests",
395
+ "depth": 3,
396
+ "numbering": [
397
+ 1,
398
+ 7,
399
+ 2
400
+ ],
401
+ "parent": "root"
402
+ },
403
+ {
404
+ "value": "Accessibility tests",
405
+ "href": "#accessibility-tests",
406
+ "depth": 3,
407
+ "numbering": [
408
+ 1,
409
+ 7,
410
+ 3
411
+ ],
412
+ "parent": "root"
413
+ },
414
+ {
415
+ "value": "Resources",
416
+ "href": "#resources",
417
+ "depth": 2,
418
+ "numbering": [
419
+ 1,
420
+ 8
421
+ ],
422
+ "parent": "root"
423
+ }
424
+ ]
425
+ }
426
+ }
427
+ }