@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,663 @@
1
+ {
2
+ "meta": {
3
+ "id": "Components-NimbusProvider",
4
+ "title": "Nimbus provider",
5
+ "exportName": "NimbusProvider",
6
+ "description": "The NimbusProvider component is a required wrapper that provides theming, internationalization, and routing context for all Nimbus components. It must be placed at the root of your application.",
7
+ "lifecycleState": "Stable",
8
+ "order": 999,
9
+ "repoPath": "packages/nimbus/src/components/nimbus-provider/nimbus-provider.mdx",
10
+ "menu": [
11
+ "Components",
12
+ "Utilities",
13
+ "Nimbus provider"
14
+ ],
15
+ "route": "components/utilities/nimbus-provider",
16
+ "tags": [
17
+ "component",
18
+ "system",
19
+ "provider",
20
+ "setup",
21
+ "theme"
22
+ ],
23
+ "toc": [
24
+ {
25
+ "value": "When to use",
26
+ "href": "#when-to-use",
27
+ "depth": 2,
28
+ "numbering": [
29
+ 1,
30
+ 1
31
+ ],
32
+ "parent": "root"
33
+ },
34
+ {
35
+ "value": "Basic usage",
36
+ "href": "#basic-usage",
37
+ "depth": 2,
38
+ "numbering": [
39
+ 1,
40
+ 2
41
+ ],
42
+ "parent": "root"
43
+ },
44
+ {
45
+ "value": "Configuration options",
46
+ "href": "#configuration-options",
47
+ "depth": 2,
48
+ "numbering": [
49
+ 1,
50
+ 3
51
+ ],
52
+ "parent": "root"
53
+ },
54
+ {
55
+ "value": "Locale",
56
+ "href": "#locale",
57
+ "depth": 3,
58
+ "numbering": [
59
+ 1,
60
+ 3,
61
+ 1
62
+ ],
63
+ "parent": "root"
64
+ },
65
+ {
66
+ "value": "Router",
67
+ "href": "#router",
68
+ "depth": 3,
69
+ "numbering": [
70
+ 1,
71
+ 3,
72
+ 2
73
+ ],
74
+ "parent": "root"
75
+ },
76
+ {
77
+ "value": "Font loading",
78
+ "href": "#font-loading",
79
+ "depth": 3,
80
+ "numbering": [
81
+ 1,
82
+ 3,
83
+ 3
84
+ ],
85
+ "parent": "root"
86
+ },
87
+ {
88
+ "value": "Theme",
89
+ "href": "#theme",
90
+ "depth": 3,
91
+ "numbering": [
92
+ 1,
93
+ 3,
94
+ 4
95
+ ],
96
+ "parent": "root"
97
+ }
98
+ ],
99
+ "layout": "app-frame",
100
+ "tabs": [
101
+ {
102
+ "key": "overview",
103
+ "title": "Overview",
104
+ "order": 0
105
+ },
106
+ {
107
+ "key": "dev",
108
+ "title": "Implementation",
109
+ "order": 3
110
+ }
111
+ ]
112
+ },
113
+ "mdx": "\n## When to use\n\n**Required setup**: Every application using Nimbus components must include `NimbusProvider` at the root level. Without it, Nimbus components will not function.\n\n## Basic usage\n\n```tsx\nimport { NimbusProvider } from \"@commercetools/nimbus\";\n\nfunction App() {\n return (\n <NimbusProvider>\n <YourApp />\n </NimbusProvider>\n );\n}\n```\n\n## Configuration options\n\n### Locale\n\nSet the locale for all Nimbus components using a BCP47 language tag (e.g., `\"en\"`, `\"de-DE\"`, `\"fr-FR\"`). `NimbusProvider` accepts the `locale` prop and forwards it to `NimbusI18nProvider` internally. If not provided, the browser's locale is used.\n\n```tsx\nimport { NimbusProvider } from \"@commercetools/nimbus\";\n\nfunction App() {\n return (\n <NimbusProvider locale=\"de-DE\">\n <YourApp />\n </NimbusProvider>\n );\n}\n```\n\n**Note:** For locale-only changes (without affecting router or theme), you can use [`NimbusI18nProvider`](../nimbus-i18n-provider/nimbus-i18n-provider.mdx) directly, which is more lightweight than nesting a full `NimbusProvider`.\n\n> 🔧 **For detailed locale resolution architecture and technical implementation, see the [Implementation tab](./nimbus-provider.dev.mdx) or [i18n Guidelines](../../../../docs/file-type-guidelines/i18n.md#locale-resolution)**\n\n\n### Router\n\nConfigure client-side routing to enable navigation for interactive Nimbus components. See the [Implementation tab](./nimbus-provider.dev.mdx) for framework-specific setup examples.\n\n```tsx\n<NimbusProvider router={{ navigate }}>\n <YourApp />\n</NimbusProvider>\n```\n\n### Font loading\n\nBy default, `NimbusProvider` automatically loads the Inter font family from Google Fonts to ensure consistent typography across all Nimbus components.\n\n```tsx\n// Default behavior - fonts are loaded automatically\n<NimbusProvider>\n <YourApp />\n</NimbusProvider>\n```\n\nIf your application already loads Inter fonts (e.g., via global stylesheets, CDN links, or font files), set `loadFonts={false}` to prevent duplicate font loading and potential performance issues:\n\n```tsx\n<NimbusProvider loadFonts={false}>\n <YourApp />\n</NimbusProvider>\n```\n\n**When to disable font loading:**\n- Your application already loads Inter fonts globally\n- You're using a custom font or brand-specific typography\n- You're migrating an existing application that manages fonts independently\n\n**Performance consideration:** Loading fonts twice can cause unnecessary network requests and slower page loads. Always check if your application already loads Inter before deploying a Nimbus update.\n\n### Theme\n\nControl color mode (light/dark) through props inherited from `next-themes`. Common options include `defaultTheme`, `enableSystem`, and `storageKey`. See the [Implementation tab](./nimbus-provider.dev.mdx) for detailed configuration examples.\n",
114
+ "views": {
115
+ "overview": {
116
+ "mdx": "\n## When to use\n\n**Required setup**: Every application using Nimbus components must include `NimbusProvider` at the root level. Without it, Nimbus components will not function.\n\n## Basic usage\n\n```tsx\nimport { NimbusProvider } from \"@commercetools/nimbus\";\n\nfunction App() {\n return (\n <NimbusProvider>\n <YourApp />\n </NimbusProvider>\n );\n}\n```\n\n## Configuration options\n\n### Locale\n\nSet the locale for all Nimbus components using a BCP47 language tag (e.g., `\"en\"`, `\"de-DE\"`, `\"fr-FR\"`). `NimbusProvider` accepts the `locale` prop and forwards it to `NimbusI18nProvider` internally. If not provided, the browser's locale is used.\n\n```tsx\nimport { NimbusProvider } from \"@commercetools/nimbus\";\n\nfunction App() {\n return (\n <NimbusProvider locale=\"de-DE\">\n <YourApp />\n </NimbusProvider>\n );\n}\n```\n\n**Note:** For locale-only changes (without affecting router or theme), you can use [`NimbusI18nProvider`](../nimbus-i18n-provider/nimbus-i18n-provider.mdx) directly, which is more lightweight than nesting a full `NimbusProvider`.\n\n> 🔧 **For detailed locale resolution architecture and technical implementation, see the [Implementation tab](./nimbus-provider.dev.mdx) or [i18n Guidelines](../../../../docs/file-type-guidelines/i18n.md#locale-resolution)**\n\n\n### Router\n\nConfigure client-side routing to enable navigation for interactive Nimbus components. See the [Implementation tab](./nimbus-provider.dev.mdx) for framework-specific setup examples.\n\n```tsx\n<NimbusProvider router={{ navigate }}>\n <YourApp />\n</NimbusProvider>\n```\n\n### Font loading\n\nBy default, `NimbusProvider` automatically loads the Inter font family from Google Fonts to ensure consistent typography across all Nimbus components.\n\n```tsx\n// Default behavior - fonts are loaded automatically\n<NimbusProvider>\n <YourApp />\n</NimbusProvider>\n```\n\nIf your application already loads Inter fonts (e.g., via global stylesheets, CDN links, or font files), set `loadFonts={false}` to prevent duplicate font loading and potential performance issues:\n\n```tsx\n<NimbusProvider loadFonts={false}>\n <YourApp />\n</NimbusProvider>\n```\n\n**When to disable font loading:**\n- Your application already loads Inter fonts globally\n- You're using a custom font or brand-specific typography\n- You're migrating an existing application that manages fonts independently\n\n**Performance consideration:** Loading fonts twice can cause unnecessary network requests and slower page loads. Always check if your application already loads Inter before deploying a Nimbus update.\n\n### Theme\n\nControl color mode (light/dark) through props inherited from `next-themes`. Common options include `defaultTheme`, `enableSystem`, and `storageKey`. See the [Implementation tab](./nimbus-provider.dev.mdx) for detailed configuration examples.\n",
117
+ "toc": [
118
+ {
119
+ "value": "When to use",
120
+ "href": "#when-to-use",
121
+ "depth": 2,
122
+ "numbering": [
123
+ 1,
124
+ 1
125
+ ],
126
+ "parent": "root"
127
+ },
128
+ {
129
+ "value": "Basic usage",
130
+ "href": "#basic-usage",
131
+ "depth": 2,
132
+ "numbering": [
133
+ 1,
134
+ 2
135
+ ],
136
+ "parent": "root"
137
+ },
138
+ {
139
+ "value": "Configuration options",
140
+ "href": "#configuration-options",
141
+ "depth": 2,
142
+ "numbering": [
143
+ 1,
144
+ 3
145
+ ],
146
+ "parent": "root"
147
+ },
148
+ {
149
+ "value": "Locale",
150
+ "href": "#locale",
151
+ "depth": 3,
152
+ "numbering": [
153
+ 1,
154
+ 3,
155
+ 1
156
+ ],
157
+ "parent": "root"
158
+ },
159
+ {
160
+ "value": "Router",
161
+ "href": "#router",
162
+ "depth": 3,
163
+ "numbering": [
164
+ 1,
165
+ 3,
166
+ 2
167
+ ],
168
+ "parent": "root"
169
+ },
170
+ {
171
+ "value": "Font loading",
172
+ "href": "#font-loading",
173
+ "depth": 3,
174
+ "numbering": [
175
+ 1,
176
+ 3,
177
+ 3
178
+ ],
179
+ "parent": "root"
180
+ },
181
+ {
182
+ "value": "Theme",
183
+ "href": "#theme",
184
+ "depth": 3,
185
+ "numbering": [
186
+ 1,
187
+ 3,
188
+ 4
189
+ ],
190
+ "parent": "root"
191
+ }
192
+ ]
193
+ },
194
+ "dev": {
195
+ "mdx": "\nNimbusProvider is the foundational wrapper component that provides theming, internationalization, and routing context to all Nimbus components. It must be placed at the root of your application to enable Nimbus components to function correctly.\n\n## Getting started\n\n### Import\n\n```tsx\nimport { NimbusProvider, type NimbusProviderProps } from '@commercetools/nimbus';\n```\n\n### Minimal setup\n\nAt minimum, wrap your application root with NimbusProvider. Without configuration, it will:\n- Use the default Nimbus theme with light mode\n- Infer locale from the user's browser (`navigator.language`)\n- Use standard anchor tag navigation (no client-side routing)\n\n```tsx\n// app/layout.tsx (Next.js) or main.tsx (Vite/CRA)\nimport { NimbusProvider } from '@commercetools/nimbus';\n\nexport default function RootLayout({ children }) {\n return (\n <html>\n <body>\n <NimbusProvider>\n {children}\n </NimbusProvider>\n </body>\n </html>\n );\n}\n```\n\n## Setup guides\n\n### Locale configuration\n\n`NimbusProvider` accepts a `locale` prop and forwards it to `NimbusI18nProvider` internally. Specify a locale using a [BCP47 language tag](https://en.wikipedia.org/wiki/IETF_language_tag) to control the language for all Nimbus components with internationalized text (date pickers, form validation messages, etc.).\n\n```tsx\nimport { NimbusProvider } from '@commercetools/nimbus';\n\nexport default function App() {\n return (\n <NimbusProvider locale=\"de-DE\">\n {/* All Nimbus components will use German locale */}\n <YourApp />\n </NimbusProvider>\n );\n}\n```\n\n**Nimbus i18n supported locales:**\n- `en` - English (default)\n- `de` - German\n- `es` - Spanish\n- `fr-FR` - French (France)\n- `pt-BR` - Portuguese (Brazil)\n\n> **Note:** These are the locales supported by Nimbus component translations (compiled message dictionaries). React Aria components support many more BCP47 locale codes for date/number formatting.\n\n**Fallback behavior:**\nIf no locale is provided, NimbusProvider uses `navigator.language`. If the detected locale is not available, it falls back to English.\n\n### Font loading (Inter)\n\nBy default, NimbusProvider automatically loads the Inter font family from Google Fonts CSS API v2 with optimal settings for performance:\n\n```tsx\nimport { NimbusProvider } from '@commercetools/nimbus';\n\nexport default function App() {\n return (\n <NimbusProvider>\n {/* Inter font loads automatically */}\n <YourApp />\n </NimbusProvider>\n );\n}\n```\n\n**Default behavior:**\n- Loads Inter with all 9 weights (100-900) to match Nimbus design tokens\n- Uses `display=swap` to minimize FOUT (Flash of Unstyled Text)\n- Includes preconnect links to Google Fonts origins for optimal performance\n- Gracefully falls back to system fonts if Google Fonts is unavailable\n- Automatically deduplicated across multiple provider instances\n\n**Disabling font loading:**\n\nIf your application already loads the Inter font (e.g., via a separate stylesheet or Merchant Center/app-kit), set `loadFonts={false}` to avoid duplicate loading:\n\n```tsx\nimport { NimbusProvider } from '@commercetools/nimbus';\n\nexport default function App() {\n return (\n <NimbusProvider loadFonts={false}>\n {/* Fonts loaded by host application */}\n <YourApp />\n </NimbusProvider>\n );\n}\n```\n\n**When to disable font loading:**\n- Your application already loads Inter font globally\n- You're using Nimbus within Merchant Center (app-kit loads fonts)\n- You want to self-host fonts instead of using Google Fonts\n- You're using a different font family (not recommended for visual consistency)\n\n**Multiple NimbusProvider instances:**\n\nIf you have nested or multiple providers on the same page, fonts are automatically deduplicated - only one set of font links is injected regardless of how many providers are rendered.\n\n### Color mode configuration\n\nNimbusProvider integrates with `next-themes` for color mode management. Configure color mode behavior through props inherited from `ThemeProviderProps`:\n\n```tsx\nimport { NimbusProvider } from '@commercetools/nimbus';\n\nexport default function App() {\n return (\n <NimbusProvider\n defaultTheme=\"light\"\n enableSystem={false}\n disableTransitionOnChange={false}\n >\n <YourApp />\n </NimbusProvider>\n );\n}\n```\n\n**Common color mode props:**\n- `defaultTheme`: `\"light\" | \"dark\" | \"system\"` - Initial theme (default: `\"light\"`)\n- `enableSystem`: `boolean` - Respect system color preference (default: `false`)\n- `disableTransitionOnChange`: `boolean` - Disable CSS transitions when changing themes (default: `false`)\n- `storageKey`: `string` - LocalStorage key for persisting theme preference (default: `\"theme\"`)\n\nTo toggle color mode in your application, use the `useColorMode` hook from Chakra UI:\n\n```tsx\nimport { useColorMode } from '@chakra-ui/react';\n\nfunction ThemeToggle() {\n const { colorMode, toggleColorMode } = useColorMode();\n\n return (\n <Button onClick={toggleColorMode}>\n Switch to {colorMode === 'light' ? 'dark' : 'light'} mode\n </Button>\n );\n}\n```\n\n## Framework integration\n\nNimbusProvider's `router` prop enables client-side navigation for all Nimbus components with `href` props (Link, Button with href, Menu items, etc.). Configure it to match your routing framework.\n\n### React Router (v6)\n\n```tsx\n// app/providers.tsx\nimport { NimbusProvider } from '@commercetools/nimbus';\nimport { useNavigate, useHref } from 'react-router-dom';\n\nexport function Providers({ children }: { children: React.ReactNode }) {\n const navigate = useNavigate();\n\n return (\n <NimbusProvider\n router={{\n navigate,\n useHref // Optional: for href transformation\n }}\n >\n {children}\n </NimbusProvider>\n );\n}\n\n// main.tsx\nimport { BrowserRouter } from 'react-router-dom';\nimport { Providers } from './providers';\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n <BrowserRouter>\n <Providers>\n <App />\n </Providers>\n </BrowserRouter>\n);\n```\n\n**Important:** NimbusProvider must be a child of `BrowserRouter` to access React Router's hooks.\n\n### Next.js App Router\n\n```tsx\n// app/providers.tsx\n'use client';\n\nimport { NimbusProvider } from '@commercetools/nimbus';\nimport { useRouter } from 'next/navigation';\n\nexport function Providers({\n children,\n locale\n}: {\n children: React.ReactNode;\n locale?: string;\n}) {\n const router = useRouter();\n\n return (\n <NimbusProvider\n locale={locale}\n router={{\n navigate: router.push\n }}\n >\n {children}\n </NimbusProvider>\n );\n}\n\n// app/layout.tsx\nimport { Providers } from './providers';\n\nexport default function RootLayout({ children }) {\n return (\n <html lang=\"en\">\n <body>\n <Providers>\n {children}\n </Providers>\n </body>\n </html>\n );\n}\n```\n\n**Note:** The `'use client'` directive is required because `useRouter` is a client-side hook.\n\n### Next.js with internationalization\n\n```tsx\n// app/[locale]/providers.tsx\n'use client';\n\nimport { NimbusProvider } from '@commercetools/nimbus';\nimport { useRouter } from 'next/navigation';\n\nexport function Providers({\n children,\n locale\n}: {\n children: React.ReactNode;\n locale: string;\n}) {\n const router = useRouter();\n\n return (\n <NimbusProvider\n locale={locale}\n router={{\n navigate: router.push\n }}\n >\n {children}\n </NimbusProvider>\n );\n}\n\n// app/[locale]/layout.tsx\nimport { Providers } from './providers';\n\nexport default function LocaleLayout({\n children,\n params\n}: {\n children: React.ReactNode;\n params: { locale: string };\n}) {\n return (\n <html lang={params.locale}>\n <body>\n <Providers locale={params.locale}>\n {children}\n </Providers>\n </body>\n </html>\n );\n}\n```\n\n### Next.js with base path\n\nIf your Next.js app uses a base path, transform hrefs using the `useHref` option:\n\n```tsx\n'use client';\n\nimport { NimbusProvider } from '@commercetools/nimbus';\nimport { useRouter } from 'next/navigation';\n\nexport function Providers({ children }: { children: React.ReactNode }) {\n const router = useRouter();\n const basePath = process.env.NEXT_PUBLIC_BASE_PATH || '';\n\n const useHref = (href: string) => `${basePath}${href}`;\n\n return (\n <NimbusProvider\n router={{\n navigate: router.push,\n useHref\n }}\n >\n {children}\n </NimbusProvider>\n );\n}\n```\n\n### Next.js Pages Router\n\n```tsx\n// pages/_app.tsx\nimport type { AppProps } from 'next/app';\nimport { NimbusProvider } from '@commercetools/nimbus';\nimport { useRouter } from 'next/router';\n\nexport default function App({ Component, pageProps }: AppProps) {\n const router = useRouter();\n\n return (\n <NimbusProvider\n locale={router.locale}\n router={{\n navigate: (href) => router.push(href)\n }}\n >\n <Component {...pageProps} />\n </NimbusProvider>\n );\n}\n```\n\n### Remix\n\n```tsx\n// app/root.tsx\nimport { NimbusProvider } from '@commercetools/nimbus';\nimport { useNavigate } from '@remix-run/react';\n\nexport default function App() {\n const navigate = useNavigate();\n\n return (\n <html>\n <head>\n <Meta />\n <Links />\n </head>\n <body>\n <NimbusProvider router={{ navigate }}>\n <Outlet />\n </NimbusProvider>\n <Scripts />\n </body>\n </html>\n );\n}\n```\n\n## Advanced configuration\n\n### Dynamic locale switching\n\nAllow users to change the application language at runtime by managing locale state:\n\n```tsx\n'use client';\n\nimport { useState } from 'react';\nimport { NimbusProvider, useLocale } from '@commercetools/nimbus';\nimport { useRouter } from 'next/navigation';\n\nexport function Providers({\n children,\n initialLocale = 'en'\n}: {\n children: React.ReactNode;\n initialLocale?: string;\n}) {\n const [locale, setLocale] = useState(initialLocale);\n const router = useRouter();\n\n return (\n <NimbusProvider\n locale={locale}\n router={{ navigate: router.push }}\n >\n <LocaleSwitcher setLocale={setLocale} />\n {children}\n </NimbusProvider>\n );\n}\n\nfunction LocaleSwitcher({\n setLocale\n}: {\n setLocale: (locale: string) => void;\n}) {\n // Read current locale from React Aria context\n const { locale } = useLocale();\n\n return (\n <Select.Root value={locale} onValueChange={setLocale}>\n <Select.Trigger>{locale}</Select.Trigger>\n <Select.Content>\n <Select.Item value=\"en\">English</Select.Item>\n <Select.Item value=\"de-DE\">Deutsch</Select.Item>\n <Select.Item value=\"fr-FR\">Français</Select.Item>\n </Select.Content>\n </Select.Root>\n );\n}\n```\n\n**Note:** For deeply nested components, you can use React Context to avoid prop drilling, but for most cases, passing `setLocale` as a prop is sufficient.\n\n### TypeScript: Router options type augmentation\n\nIf you need type-safe router options (like React Router's `NavigateOptions` or Next.js router options), use TypeScript module augmentation:\n\n```tsx\n// types/nimbus.d.ts\nimport type { NavigateOptions } from 'react-router-dom';\n\ndeclare module '@commercetools/nimbus' {\n interface NimbusRouterOptionsBase {\n routerOptions?: NavigateOptions;\n }\n}\n\n// Now the router config is fully typed\nimport { NimbusProvider } from '@commercetools/nimbus';\nimport { useNavigate } from 'react-router-dom';\n\nfunction Providers({ children }) {\n const navigate = useNavigate();\n\n const typedNavigate = (href: string, options?: NavigateOptions) => {\n navigate(href, options);\n };\n\n return (\n <NimbusProvider router={{ navigate: typedNavigate }}>\n {children}\n </NimbusProvider>\n );\n}\n```\n\n**For Next.js App Router:**\n\n```tsx\n// types/nimbus.d.ts\nimport type { AppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime';\n\ndeclare module '@commercetools/nimbus' {\n interface NimbusRouterOptionsBase {\n routerOptions?: Parameters<AppRouterInstance['push']>[1];\n }\n}\n```\n\n### Server-side rendering considerations\n\n**Hydration warnings:**\nIf you see hydration mismatches related to color mode or locale, ensure the server and client render the same initial state:\n\n```tsx\n// Next.js App Router\nimport { cookies } from 'next/headers';\n\nexport default function RootLayout({ children }) {\n const cookieStore = cookies();\n const theme = cookieStore.get('theme')?.value || 'light';\n\n return (\n <html className={theme}>\n <body>\n <Providers defaultTheme={theme}>\n {children}\n </Providers>\n </body>\n </html>\n );\n}\n```\n\n**Script for SSR color mode:**\nTo prevent flash of incorrect theme, add a blocking script in your HTML head:\n\n```tsx\n// app/layout.tsx\nexport default function RootLayout({ children }) {\n return (\n <html suppressHydrationWarning>\n <head>\n <script\n dangerouslySetInnerHTML={{\n __html: `\n try {\n const theme = localStorage.getItem('theme') || 'light';\n document.documentElement.classList.add(theme);\n } catch (e) {}\n `,\n }}\n />\n </head>\n <body>\n <NimbusProvider enableSystem={false}>\n {children}\n </NimbusProvider>\n </body>\n </html>\n );\n}\n```\n\n### Accessing provider context\n\nComponents can access the router context provided by NimbusProvider through React Aria's `RouterProvider`:\n\n```tsx\nimport { useRouter } from 'react-aria';\n\nfunction CustomLink({ href, children }) {\n const router = useRouter();\n\n const handleClick = () => {\n if (router) {\n router.navigate(href);\n } else {\n window.location.href = href;\n }\n };\n\n return (\n <button onClick={handleClick}>\n {children}\n </button>\n );\n}\n```\n\n**Note:** Most Nimbus components handle routing automatically. You typically don't need to access router context directly.\n\n## Migration guides\n\n### Merchant Center integration\n\n> [!WARNING]\n> **Action Required for Merchant Center Applications**\n>\n> If you're using Nimbus within Merchant Center or any application where app-kit/ui-kit already loads the Inter font, you **must** add `loadFonts={false}` to prevent duplicate font loading and performance regressions.\n\n**Before (causes duplicate font loading):**\n```tsx\n<NimbusProvider locale={locale} router={router}>\n <App />\n</NimbusProvider>\n```\n\n**After (prevents duplicates):**\n```tsx\n<NimbusProvider locale={locale} router={router} loadFonts={false}>\n <App />\n</NimbusProvider>\n```\n\n**Impact of not updating:**\n- Duplicate network requests for Inter font files (performance regression)\n- Increased page load time due to redundant font downloads\n- Potential FOUT (Flash of Unstyled Text) issues\n- Unnecessary bandwidth consumption for users\n\n**How to verify fonts are loaded:**\n\nOpen your browser's DevTools and check the Network tab:\n1. Filter by \"fonts\" or search for \"googleapis\"\n2. If you see Inter font requests from Google Fonts, fonts are being loaded\n3. If `loadFonts={false}` is set, no Google Fonts requests should appear\n4. Check the Elements tab → `<head>` for `<link rel=\"stylesheet\" data-nimbus-fonts>` - this link should not exist when disabled\n\n**Testing:**\n\nAfter adding `loadFonts={false}`:\n1. Verify no duplicate font network requests in DevTools\n2. Run visual regression tests to ensure fonts still render correctly\n3. Confirm Inter font is visible in the computed styles (DevTools → Elements → Computed)\n\n### Upgrading from previous Nimbus versions\n\nIf you're upgrading from a version before font loading was added:\n\n**No action required for most applications:**\n- Fonts will automatically load with default behavior\n- Existing applications will work without changes\n\n**Action required for Merchant Center:**\n- Add `loadFonts={false}` to prevent duplicate font loading\n- See \"Merchant Center integration\" above for details\n\n**If you experience issues:**\n- Font flash (FOUT): This is expected with Google Fonts; minimize by preloading\n- Multiple font loads: Check for multiple NimbusProvider instances or conflicting font loaders\n- See \"Troubleshooting\" section below for common issues\n\n## Troubleshooting\n\n### Fonts not loading\n\n**Issue:** Text renders in system fonts instead of Inter.\n\n**Solution:**\n1. Verify `loadFonts` is not explicitly set to `false`\n2. Check browser DevTools Network tab for Google Fonts requests\n3. Look for `<link data-nimbus-fonts>` in document head\n4. Verify Google Fonts is not blocked by ad blockers or CSP policies\n5. Check that the fallback font stack includes Inter:\n ```css\n font-family: Inter, -apple-system, BlinkMacSystemFont, sans-serif;\n ```\n\n### Duplicate font loading\n\n**Issue:** Multiple font requests or warnings about duplicate stylesheet links.\n\n**Solution:**\n1. Check for multiple NimbusProvider instances on the same page\n2. If using Merchant Center/app-kit, set `loadFonts={false}` on all providers\n3. Verify no manual `<link>` tags for Google Fonts in your HTML\n4. Check that only one version of Nimbus is installed (`npm ls @commercetools/nimbus`)\n\n**Note:** Built-in deduplication prevents duplicate injection from multiple providers, but manual font loading elsewhere needs to be managed.\n\n### Font flash (FOUT)\n\n**Issue:** Brief flash of system font before Inter loads.\n\n**Explanation:** This is expected behavior with web fonts. The `display=swap` strategy shows text immediately with fallback fonts, then swaps to Inter when loaded.\n\n**Mitigation strategies:**\n1. Accept FOUT as expected behavior (preferred - better UX than invisible text)\n2. Preload fonts in document head (reduces flash duration):\n ```html\n <link rel=\"preload\" href=\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap\" as=\"style\">\n ```\n3. Use a font loading library to add custom loading states\n4. Self-host fonts for faster loading (requires disabling Google Fonts)\n\n### Missing provider error\n\n**Error:** `Cannot read properties of undefined (reading 'theme')` or similar context errors.\n\n**Solution:** Ensure NimbusProvider wraps your entire application, including the component tree where Nimbus components are used.\n\n```tsx\n// ❌ Wrong: Provider missing\nfunction App() {\n return <Button>Click me</Button>; // Error!\n}\n\n// ✅ Correct: Provider wraps app\nfunction App() {\n return (\n <NimbusProvider>\n <Button>Click me</Button>\n </NimbusProvider>\n );\n}\n```\n\n### Router navigation not working\n\n**Issue:** Links use full page reload instead of client-side navigation.\n\n**Solution:** Verify that:\n1. The `router` prop is correctly configured\n2. The router framework's context is available (e.g., inside `BrowserRouter` for React Router)\n3. The navigate function is not undefined\n\n```tsx\n// Debug: Check if router is available\nfunction DebugRouter() {\n const router = useRouter(); // from react-aria\n console.log('Router available:', !!router);\n return null;\n}\n```\n\n### Locale not applying\n\n**Issue:** Nimbus components still show English text despite setting locale.\n\n**Solution:**\n1. Verify the locale is supported by Nimbus i18n: `en`, `de`, `es`, `fr-FR`, or `pt-BR`\n2. Note that the `useLocalizedStringFormatter` hook automatically normalizes locale codes (e.g., `\"en-US\"` → `\"en\"`, `\"de-DE\"` → `\"de\"`)\n3. Check that compiled message dictionaries are included in your build\n4. React Aria components (DatePicker, NumberInput) support any BCP47 locale, but Nimbus component translations (buttons, labels) only support the locales listed above\n\n```tsx\n// Debug: Check current locale from React Aria context\nimport { useLocale } from 'react-aria-components';\n\nfunction DebugLocale() {\n const { locale } = useLocale();\n console.log('Current locale:', locale);\n return null;\n}\n```\n\n### Hydration mismatch with color mode\n\n**Issue:** Console warning about hydration mismatch or flash of wrong theme.\n\n**Solution:** Use `suppressHydrationWarning` on the `<html>` tag and ensure server renders with the same theme:\n\n```tsx\n<html suppressHydrationWarning>\n <body>\n <NimbusProvider defaultTheme={serverTheme}>\n {children}\n </NimbusProvider>\n </body>\n</html>\n```\n\n### TypeScript errors with router config\n\n**Issue:** Type errors when passing router options.\n\n**Solution:** Use module augmentation to extend the router options type (see \"TypeScript: Router options type augmentation\" above).\n\n## Component requirements\n\n### Placement\n\nNimbusProvider **must** be placed at or near the root of your application component tree. It should wrap all components that use Nimbus.\n\n**Correct placement hierarchy:**\n```html\n<html>\n <body>\n <NimbusProvider> ← Provider at root\n <YourApp> ← Your app components\n <Button /> ← Nimbus components work\n </YourApp>\n </NimbusProvider>\n </body>\n</html>\n```\n\n**For framework-specific routing:**\n```\n<BrowserRouter> ← React Router context\n <NimbusProvider router={{}} ← Provider inside router\n <YourApp />\n </NimbusProvider>\n</BrowserRouter>\n```\n\n### Nesting providers\n\nNimbusProvider **can** be nested, but it's rarely necessary. For most applications, a single provider at the root is sufficient.\n\n**What works with nesting:**\n- ✅ **Locale** - Inner provider's locale overrides outer provider (uses React Context)\n- ✅ **Router** - Inner provider's router overrides outer provider (uses React Context)\n- ❌ **Color mode** - Cannot be scoped to nested providers (uses global state via next-themes)\n\n```tsx\n// Nesting works for locale and router contexts\n<NimbusProvider locale=\"en\" router={outerRouter}>\n <Page1 /> {/* Uses English locale and outerRouter */}\n\n <NimbusProvider locale=\"de-DE\" router={innerRouter}>\n <Page2 /> {/* Uses German locale and innerRouter */}\n </NimbusProvider>\n\n <Page3 /> {/* Back to English locale and outerRouter */}\n</NimbusProvider>\n\n// ✅ Recommended: Single provider at root\n<NimbusProvider locale={currentLocale} router={router}>\n <Page1 />\n <Page2 />\n <Page3 />\n</NimbusProvider>\n```\n\n**Note:** Color mode cannot be scoped because `next-themes` operates globally on the document element. Nested providers will change the global theme, not create a scoped theme for their subtree.\n\n#### Locale-only changes with NimbusI18nProvider\n\nFor cases where you only need to change the locale (without affecting router or theme), use `NimbusI18nProvider` directly. This is more lightweight than nesting a full `NimbusProvider`:\n\n```tsx\nimport { NimbusProvider, NimbusI18nProvider } from '@commercetools/nimbus';\n\nexport default function App() {\n return (\n <NimbusProvider locale=\"en\">\n <MainContent /> {/* Uses English locale */}\n\n <NimbusI18nProvider locale=\"de\">\n <GermanSection /> {/* Uses German locale */}\n </NimbusI18nProvider>\n\n <NimbusI18nProvider locale=\"es\">\n <SpanishSection /> {/* Uses Spanish locale */}\n </NimbusI18nProvider>\n\n <MoreContent /> {/* Back to English locale */}\n </NimbusProvider>\n );\n}\n```\n\n**When to use which:**\n- Use **nested `NimbusProvider`** when you need to change locale AND router configuration\n- Use **`NimbusI18nProvider`** when you only need to change locale (more efficient)\n\n## Accessibility\n\nNimbusProvider itself has no accessibility requirements as it's a pure context provider with no visual rendering. However, it enables accessibility features across Nimbus components:\n\n- **Internationalization**: Provides locale context for date/time formatting and translated messages\n- **Router integration**: Enables proper link semantics and navigation announcements\n- **Theme context**: Ensures consistent color contrast and visual theming\n\n## Testing your application\n\nWhen writing tests for components that use Nimbus, wrap them with NimbusProvider in your test utilities:\n\n### Test utilities setup\n\nCreate a custom render function that includes NimbusProvider:\n\n```tsx\n// test-utils.tsx\nimport { render, RenderOptions } from '@testing-library/react';\nimport { NimbusProvider } from '@commercetools/nimbus';\n\ninterface CustomRenderOptions extends RenderOptions {\n locale?: string;\n router?: {\n navigate?: jest.Mock;\n useHref?: (href: string) => string;\n };\n}\n\nexport function renderWithProvider(\n ui: React.ReactElement,\n options?: CustomRenderOptions\n) {\n const { locale = 'en', router, ...renderOptions } = options || {};\n\n return render(\n <NimbusProvider locale={locale} router={router}>\n {ui}\n </NimbusProvider>,\n renderOptions\n );\n}\n\n// Re-export everything from @testing-library/react\nexport * from '@testing-library/react';\n```\n\n### Testing with router mocks\n\n```tsx\n// MyComponent.test.tsx\nimport { renderWithProvider, screen } from './test-utils';\nimport { MyComponent } from './MyComponent';\n\ndescribe('MyComponent', () => {\n it('navigates when link is clicked', async () => {\n const mockNavigate = jest.fn();\n\n renderWithProvider(\n <MyComponent />,\n {\n router: { navigate: mockNavigate }\n }\n );\n\n const link = screen.getByRole('link', { name: 'Go to page' });\n await userEvent.click(link);\n\n expect(mockNavigate).toHaveBeenCalledWith('/page');\n });\n});\n```\n\n### Testing with different locales\n\n```tsx\n// LocalizedComponent.test.tsx\nimport { renderWithProvider, screen } from './test-utils';\nimport { DatePicker } from '@commercetools/nimbus';\n\ndescribe('LocalizedComponent', () => {\n it('displays dates in German format', () => {\n renderWithProvider(\n <DatePicker value={new Date('2024-03-15')} />,\n { locale: 'de-DE' }\n );\n\n // Verify German date format\n expect(screen.getByText(/15\\.03\\.2024/)).toBeInTheDocument();\n });\n\n it('displays dates in English format', () => {\n renderWithProvider(\n <DatePicker value={new Date('2024-03-15')} />,\n { locale: 'en-US' }\n );\n\n // Verify English date format\n expect(screen.getByText(/03\\/15\\/2024/)).toBeInTheDocument();\n });\n});\n```\n\n### Vitest setup\n\nIf using Vitest, add NimbusProvider to your test setup file:\n\n```tsx\n// vitest.setup.ts\nimport { afterEach } from 'vitest';\nimport { cleanup } from '@testing-library/react';\nimport '@testing-library/jest-dom/vitest';\n\n// Cleanup after each test\nafterEach(() => {\n cleanup();\n});\n\n// Optional: Set default test environment variables\nprocess.env.NODE_ENV = 'test';\n```\n\n## API reference\n\n<PropsTable id=\"NimbusProvider\" />\n\n## Resources\n\n- [Storybook](https://nimbus-storybook.vercel.app/?path=/docs/components-nimbusprovider--docs)\n- [next-themes Documentation](https://github.com/pacocoursey/next-themes)\n- [React Aria RouterProvider](https://react-spectrum.adobe.com/react-aria/routing.html)\n- [React Aria I18nProvider](https://react-spectrum.adobe.com/react-aria/I18nProvider.html)\n",
196
+ "toc": [
197
+ {
198
+ "value": "Getting started",
199
+ "href": "#getting-started",
200
+ "depth": 2,
201
+ "numbering": [
202
+ 1,
203
+ 1
204
+ ],
205
+ "parent": "root"
206
+ },
207
+ {
208
+ "value": "Import",
209
+ "href": "#import",
210
+ "depth": 3,
211
+ "numbering": [
212
+ 1,
213
+ 1,
214
+ 1
215
+ ],
216
+ "parent": "root"
217
+ },
218
+ {
219
+ "value": "Minimal setup",
220
+ "href": "#minimal-setup",
221
+ "depth": 3,
222
+ "numbering": [
223
+ 1,
224
+ 1,
225
+ 2
226
+ ],
227
+ "parent": "root"
228
+ },
229
+ {
230
+ "value": "Setup guides",
231
+ "href": "#setup-guides",
232
+ "depth": 2,
233
+ "numbering": [
234
+ 1,
235
+ 2
236
+ ],
237
+ "parent": "root"
238
+ },
239
+ {
240
+ "value": "Locale configuration",
241
+ "href": "#locale-configuration",
242
+ "depth": 3,
243
+ "numbering": [
244
+ 1,
245
+ 2,
246
+ 1
247
+ ],
248
+ "parent": "root"
249
+ },
250
+ {
251
+ "value": "Font loading (Inter)",
252
+ "href": "#font-loading-inter",
253
+ "depth": 3,
254
+ "numbering": [
255
+ 1,
256
+ 2,
257
+ 2
258
+ ],
259
+ "parent": "root"
260
+ },
261
+ {
262
+ "value": "Color mode configuration",
263
+ "href": "#color-mode-configuration",
264
+ "depth": 3,
265
+ "numbering": [
266
+ 1,
267
+ 2,
268
+ 3
269
+ ],
270
+ "parent": "root"
271
+ },
272
+ {
273
+ "value": "Framework integration",
274
+ "href": "#framework-integration",
275
+ "depth": 2,
276
+ "numbering": [
277
+ 1,
278
+ 3
279
+ ],
280
+ "parent": "root"
281
+ },
282
+ {
283
+ "value": "React Router (v6)",
284
+ "href": "#react-router-v6",
285
+ "depth": 3,
286
+ "numbering": [
287
+ 1,
288
+ 3,
289
+ 1
290
+ ],
291
+ "parent": "root"
292
+ },
293
+ {
294
+ "value": "Next.js App Router",
295
+ "href": "#nextjs-app-router",
296
+ "depth": 3,
297
+ "numbering": [
298
+ 1,
299
+ 3,
300
+ 2
301
+ ],
302
+ "parent": "root"
303
+ },
304
+ {
305
+ "value": "Next.js with internationalization",
306
+ "href": "#nextjs-with-internationalization",
307
+ "depth": 3,
308
+ "numbering": [
309
+ 1,
310
+ 3,
311
+ 3
312
+ ],
313
+ "parent": "root"
314
+ },
315
+ {
316
+ "value": "Next.js with base path",
317
+ "href": "#nextjs-with-base-path",
318
+ "depth": 3,
319
+ "numbering": [
320
+ 1,
321
+ 3,
322
+ 4
323
+ ],
324
+ "parent": "root"
325
+ },
326
+ {
327
+ "value": "Next.js Pages Router",
328
+ "href": "#nextjs-pages-router",
329
+ "depth": 3,
330
+ "numbering": [
331
+ 1,
332
+ 3,
333
+ 5
334
+ ],
335
+ "parent": "root"
336
+ },
337
+ {
338
+ "value": "Remix",
339
+ "href": "#remix",
340
+ "depth": 3,
341
+ "numbering": [
342
+ 1,
343
+ 3,
344
+ 6
345
+ ],
346
+ "parent": "root"
347
+ },
348
+ {
349
+ "value": "Advanced configuration",
350
+ "href": "#advanced-configuration",
351
+ "depth": 2,
352
+ "numbering": [
353
+ 1,
354
+ 4
355
+ ],
356
+ "parent": "root"
357
+ },
358
+ {
359
+ "value": "Dynamic locale switching",
360
+ "href": "#dynamic-locale-switching",
361
+ "depth": 3,
362
+ "numbering": [
363
+ 1,
364
+ 4,
365
+ 1
366
+ ],
367
+ "parent": "root"
368
+ },
369
+ {
370
+ "value": "TypeScript: Router options type augmentation",
371
+ "href": "#typescript-router-options-type-augmentation",
372
+ "depth": 3,
373
+ "numbering": [
374
+ 1,
375
+ 4,
376
+ 2
377
+ ],
378
+ "parent": "root"
379
+ },
380
+ {
381
+ "value": "Server-side rendering considerations",
382
+ "href": "#server-side-rendering-considerations",
383
+ "depth": 3,
384
+ "numbering": [
385
+ 1,
386
+ 4,
387
+ 3
388
+ ],
389
+ "parent": "root"
390
+ },
391
+ {
392
+ "value": "Accessing provider context",
393
+ "href": "#accessing-provider-context",
394
+ "depth": 3,
395
+ "numbering": [
396
+ 1,
397
+ 4,
398
+ 4
399
+ ],
400
+ "parent": "root"
401
+ },
402
+ {
403
+ "value": "Migration guides",
404
+ "href": "#migration-guides",
405
+ "depth": 2,
406
+ "numbering": [
407
+ 1,
408
+ 5
409
+ ],
410
+ "parent": "root"
411
+ },
412
+ {
413
+ "value": "Merchant Center integration",
414
+ "href": "#merchant-center-integration",
415
+ "depth": 3,
416
+ "numbering": [
417
+ 1,
418
+ 5,
419
+ 1
420
+ ],
421
+ "parent": "root"
422
+ },
423
+ {
424
+ "value": "Upgrading from previous Nimbus versions",
425
+ "href": "#upgrading-from-previous-nimbus-versions",
426
+ "depth": 3,
427
+ "numbering": [
428
+ 1,
429
+ 5,
430
+ 2
431
+ ],
432
+ "parent": "root"
433
+ },
434
+ {
435
+ "value": "Troubleshooting",
436
+ "href": "#troubleshooting",
437
+ "depth": 2,
438
+ "numbering": [
439
+ 1,
440
+ 6
441
+ ],
442
+ "parent": "root"
443
+ },
444
+ {
445
+ "value": "Fonts not loading",
446
+ "href": "#fonts-not-loading",
447
+ "depth": 3,
448
+ "numbering": [
449
+ 1,
450
+ 6,
451
+ 1
452
+ ],
453
+ "parent": "root"
454
+ },
455
+ {
456
+ "value": "Duplicate font loading",
457
+ "href": "#duplicate-font-loading",
458
+ "depth": 3,
459
+ "numbering": [
460
+ 1,
461
+ 6,
462
+ 2
463
+ ],
464
+ "parent": "root"
465
+ },
466
+ {
467
+ "value": "Font flash (FOUT)",
468
+ "href": "#font-flash-fout",
469
+ "depth": 3,
470
+ "numbering": [
471
+ 1,
472
+ 6,
473
+ 3
474
+ ],
475
+ "parent": "root"
476
+ },
477
+ {
478
+ "value": "Missing provider error",
479
+ "href": "#missing-provider-error",
480
+ "depth": 3,
481
+ "numbering": [
482
+ 1,
483
+ 6,
484
+ 4
485
+ ],
486
+ "parent": "root"
487
+ },
488
+ {
489
+ "value": "Router navigation not working",
490
+ "href": "#router-navigation-not-working",
491
+ "depth": 3,
492
+ "numbering": [
493
+ 1,
494
+ 6,
495
+ 5
496
+ ],
497
+ "parent": "root"
498
+ },
499
+ {
500
+ "value": "Locale not applying",
501
+ "href": "#locale-not-applying",
502
+ "depth": 3,
503
+ "numbering": [
504
+ 1,
505
+ 6,
506
+ 6
507
+ ],
508
+ "parent": "root"
509
+ },
510
+ {
511
+ "value": "Hydration mismatch with color mode",
512
+ "href": "#hydration-mismatch-with-color-mode",
513
+ "depth": 3,
514
+ "numbering": [
515
+ 1,
516
+ 6,
517
+ 7
518
+ ],
519
+ "parent": "root"
520
+ },
521
+ {
522
+ "value": "TypeScript errors with router config",
523
+ "href": "#typescript-errors-with-router-config",
524
+ "depth": 3,
525
+ "numbering": [
526
+ 1,
527
+ 6,
528
+ 8
529
+ ],
530
+ "parent": "root"
531
+ },
532
+ {
533
+ "value": "Component requirements",
534
+ "href": "#component-requirements",
535
+ "depth": 2,
536
+ "numbering": [
537
+ 1,
538
+ 7
539
+ ],
540
+ "parent": "root"
541
+ },
542
+ {
543
+ "value": "Placement",
544
+ "href": "#placement",
545
+ "depth": 3,
546
+ "numbering": [
547
+ 1,
548
+ 7,
549
+ 1
550
+ ],
551
+ "parent": "root"
552
+ },
553
+ {
554
+ "value": "Nesting providers",
555
+ "href": "#nesting-providers",
556
+ "depth": 3,
557
+ "numbering": [
558
+ 1,
559
+ 7,
560
+ 2
561
+ ],
562
+ "parent": "root"
563
+ },
564
+ {
565
+ "value": "Locale-only changes with NimbusI18nProvider",
566
+ "href": "#locale-only-changes-with-nimbusi18nprovider",
567
+ "depth": 4,
568
+ "numbering": [
569
+ 1,
570
+ 7,
571
+ 2,
572
+ 1
573
+ ],
574
+ "parent": "root"
575
+ },
576
+ {
577
+ "value": "Accessibility",
578
+ "href": "#accessibility",
579
+ "depth": 2,
580
+ "numbering": [
581
+ 1,
582
+ 8
583
+ ],
584
+ "parent": "root"
585
+ },
586
+ {
587
+ "value": "Testing your application",
588
+ "href": "#testing-your-application",
589
+ "depth": 2,
590
+ "numbering": [
591
+ 1,
592
+ 9
593
+ ],
594
+ "parent": "root"
595
+ },
596
+ {
597
+ "value": "Test utilities setup",
598
+ "href": "#test-utilities-setup",
599
+ "depth": 3,
600
+ "numbering": [
601
+ 1,
602
+ 9,
603
+ 1
604
+ ],
605
+ "parent": "root"
606
+ },
607
+ {
608
+ "value": "Testing with router mocks",
609
+ "href": "#testing-with-router-mocks",
610
+ "depth": 3,
611
+ "numbering": [
612
+ 1,
613
+ 9,
614
+ 2
615
+ ],
616
+ "parent": "root"
617
+ },
618
+ {
619
+ "value": "Testing with different locales",
620
+ "href": "#testing-with-different-locales",
621
+ "depth": 3,
622
+ "numbering": [
623
+ 1,
624
+ 9,
625
+ 3
626
+ ],
627
+ "parent": "root"
628
+ },
629
+ {
630
+ "value": "Vitest setup",
631
+ "href": "#vitest-setup",
632
+ "depth": 3,
633
+ "numbering": [
634
+ 1,
635
+ 9,
636
+ 4
637
+ ],
638
+ "parent": "root"
639
+ },
640
+ {
641
+ "value": "API reference",
642
+ "href": "#api-reference",
643
+ "depth": 2,
644
+ "numbering": [
645
+ 1,
646
+ 10
647
+ ],
648
+ "parent": "root"
649
+ },
650
+ {
651
+ "value": "Resources",
652
+ "href": "#resources",
653
+ "depth": 2,
654
+ "numbering": [
655
+ 1,
656
+ 11
657
+ ],
658
+ "parent": "root"
659
+ }
660
+ ]
661
+ }
662
+ }
663
+ }