@commercetools/nimbus-mcp 0.1.0 → 2.10.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 (450) hide show
  1. package/README.md +63 -14
  2. package/data/docs/route-manifest.json +10913 -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-separator.json +461 -0
  59. package/data/docs/routes/components-layout-simple-grid.json +519 -0
  60. package/data/docs/routes/components-layout-spacer.json +573 -0
  61. package/data/docs/routes/components-layout-stack.json +481 -0
  62. package/data/docs/routes/components-layout.json +34 -0
  63. package/data/docs/routes/components-media-avatar.json +427 -0
  64. package/data/docs/routes/components-media-icon.json +663 -0
  65. package/data/docs/routes/components-media-image.json +511 -0
  66. package/data/docs/routes/components-media-inline-svg.json +586 -0
  67. package/data/docs/routes/components-media.json +34 -0
  68. package/data/docs/routes/components-navigation-accordion.json +643 -0
  69. package/data/docs/routes/components-navigation-collapsible-motion.json +628 -0
  70. package/data/docs/routes/components-navigation-link.json +554 -0
  71. package/data/docs/routes/components-navigation-menu.json +546 -0
  72. package/data/docs/routes/components-navigation-pagination.json +502 -0
  73. package/data/docs/routes/components-navigation-steps.json +629 -0
  74. package/data/docs/routes/components-navigation-tabnav.json +546 -0
  75. package/data/docs/routes/components-navigation-tabs.json +635 -0
  76. package/data/docs/routes/components-navigation-toolbar.json +549 -0
  77. package/data/docs/routes/components-navigation.json +34 -0
  78. package/data/docs/routes/components-typography-code.json +39 -0
  79. package/data/docs/routes/components-typography-heading.json +402 -0
  80. package/data/docs/routes/components-typography-kbd.json +399 -0
  81. package/data/docs/routes/components-typography-list.json +593 -0
  82. package/data/docs/routes/components-typography-text.json +444 -0
  83. package/data/docs/routes/components-typography.json +34 -0
  84. package/data/docs/routes/components-utilities-nimbus-i18n-provider.json +295 -0
  85. package/data/docs/routes/components-utilities-nimbus-provider.json +663 -0
  86. package/data/docs/routes/components-utilities.json +34 -0
  87. package/data/docs/routes/components.json +33 -0
  88. package/data/docs/routes/home-contribute-adrs-adr0001-consumer-component-apis.json +314 -0
  89. package/data/docs/routes/home-contribute-adrs-adr0002-compound-component-extraction.json +160 -0
  90. package/data/docs/routes/home-contribute-adrs-adr0003-component-lifecycle-states.json +460 -0
  91. package/data/docs/routes/home-contribute-adrs.json +205 -0
  92. package/data/docs/routes/home-contribute-development-setup.json +213 -0
  93. package/data/docs/routes/home-contribute-stats.json +36 -0
  94. package/data/docs/routes/home-contribute.json +36 -0
  95. package/data/docs/routes/home-design-tokens-aspect-ratios.json +36 -0
  96. package/data/docs/routes/home-design-tokens-borders.json +35 -0
  97. package/data/docs/routes/home-design-tokens-colors.json +157 -0
  98. package/data/docs/routes/home-design-tokens-other-animations.json +119 -0
  99. package/data/docs/routes/home-design-tokens-other-blurs.json +36 -0
  100. package/data/docs/routes/home-design-tokens-other-breakpoints.json +61 -0
  101. package/data/docs/routes/home-design-tokens-other-cursors.json +36 -0
  102. package/data/docs/routes/home-design-tokens-other-z-indices.json +39 -0
  103. package/data/docs/routes/home-design-tokens-other.json +35 -0
  104. package/data/docs/routes/home-design-tokens-radii.json +59 -0
  105. package/data/docs/routes/home-design-tokens-shadows.json +57 -0
  106. package/data/docs/routes/home-design-tokens-sizes.json +137 -0
  107. package/data/docs/routes/home-design-tokens-spacing.json +36 -0
  108. package/data/docs/routes/home-design-tokens-typography.json +184 -0
  109. package/data/docs/routes/home-design-tokens.json +34 -0
  110. package/data/docs/routes/home-getting-started-core-concepts.json +301 -0
  111. package/data/docs/routes/home-getting-started-installation.json +621 -0
  112. package/data/docs/routes/home-getting-started-mcp-server-overview.json +139 -0
  113. package/data/docs/routes/home-getting-started-mcp-server-setup.json +316 -0
  114. package/data/docs/routes/home-getting-started-release-process.json +294 -0
  115. package/data/docs/routes/home-getting-started-testing-setup.json +296 -0
  116. package/data/docs/routes/home-playground-markdown.json +638 -0
  117. package/data/docs/routes/home-playground-toc.json +169 -0
  118. package/data/docs/routes/home-playground.json +34 -0
  119. package/data/docs/routes/home-style-props-background.json +236 -0
  120. package/data/docs/routes/home-style-props-border.json +310 -0
  121. package/data/docs/routes/home-style-props-display.json +120 -0
  122. package/data/docs/routes/home-style-props-effects.json +116 -0
  123. package/data/docs/routes/home-style-props-filters.json +396 -0
  124. package/data/docs/routes/home-style-props-flex-and-grid.json +496 -0
  125. package/data/docs/routes/home-style-props-interactivity.json +356 -0
  126. package/data/docs/routes/home-style-props-layout.json +422 -0
  127. package/data/docs/routes/home-style-props-list.json +116 -0
  128. package/data/docs/routes/home-style-props-sizing.json +244 -0
  129. package/data/docs/routes/home-style-props-spacing.json +228 -0
  130. package/data/docs/routes/home-style-props-svg.json +96 -0
  131. package/data/docs/routes/home-style-props-tables.json +116 -0
  132. package/data/docs/routes/home-style-props-transforms.json +216 -0
  133. package/data/docs/routes/home-style-props-transitions.json +216 -0
  134. package/data/docs/routes/home-style-props-typography.json +536 -0
  135. package/data/docs/routes/home-style-props.json +33 -0
  136. package/data/docs/routes/home.json +32 -0
  137. package/data/docs/routes/hooks-usecopytoclipboard.json +76 -0
  138. package/data/docs/routes/hooks-usehotkeys.json +117 -0
  139. package/data/docs/routes/hooks.json +33 -0
  140. package/data/docs/routes/icons.json +32 -0
  141. package/data/docs/routes/patterns-fields-date-range-picker-field.json +393 -0
  142. package/data/docs/routes/patterns-fields-money-input-field.json +415 -0
  143. package/data/docs/routes/patterns-fields-multiline-text-input-field.json +404 -0
  144. package/data/docs/routes/patterns-fields-number-input-field.json +470 -0
  145. package/data/docs/routes/patterns-fields-password-input-field.json +319 -0
  146. package/data/docs/routes/patterns-fields-search-input-field.json +382 -0
  147. package/data/docs/routes/patterns-fields-text-input-field.json +404 -0
  148. package/data/docs/routes/patterns-fields.json +78 -0
  149. package/data/docs/routes/patterns.json +34 -0
  150. package/data/docs/search-index.json +1 -0
  151. package/data/docs/types/Accordion.json +12 -0
  152. package/data/docs/types/AccordionContent.json +286 -0
  153. package/data/docs/types/AccordionHeader.json +891 -0
  154. package/data/docs/types/AccordionHeaderRightContent.json +27 -0
  155. package/data/docs/types/AccordionItem.json +242 -0
  156. package/data/docs/types/AccordionRoot.json +162 -0
  157. package/data/docs/types/Alert.json +12 -0
  158. package/data/docs/types/AlertActions.json +11 -0
  159. package/data/docs/types/AlertDescription.json +118 -0
  160. package/data/docs/types/AlertDismissButton.json +937 -0
  161. package/data/docs/types/AlertRoot.json +42 -0
  162. package/data/docs/types/AlertTitle.json +118 -0
  163. package/data/docs/types/Avatar.json +125 -0
  164. package/data/docs/types/Badge.json +64 -0
  165. package/data/docs/types/Body.json +67 -0
  166. package/data/docs/types/Box.json +85 -0
  167. package/data/docs/types/Button.json +1015 -0
  168. package/data/docs/types/Calendar.json +565 -0
  169. package/data/docs/types/Caption.json +67 -0
  170. package/data/docs/types/Card.json +12 -0
  171. package/data/docs/types/CardContent.json +27 -0
  172. package/data/docs/types/CardHeader.json +27 -0
  173. package/data/docs/types/CardRoot.json +106 -0
  174. package/data/docs/types/Cell.json +227 -0
  175. package/data/docs/types/Checkbox.json +897 -0
  176. package/data/docs/types/Code.json +112 -0
  177. package/data/docs/types/CollapsibleMotionContent.json +35 -0
  178. package/data/docs/types/CollapsibleMotionRoot.json +99 -0
  179. package/data/docs/types/CollapsibleMotionTrigger.json +71 -0
  180. package/data/docs/types/Column.json +101 -0
  181. package/data/docs/types/ColumnGroup.json +101 -0
  182. package/data/docs/types/ColumnHeader.json +193 -0
  183. package/data/docs/types/ComboBoxListBox.json +751 -0
  184. package/data/docs/types/ComboBoxOption.json +672 -0
  185. package/data/docs/types/ComboBoxPopover.json +786 -0
  186. package/data/docs/types/ComboBoxRoot.json +747 -0
  187. package/data/docs/types/ComboBoxSection.json +277 -0
  188. package/data/docs/types/ComboBoxTrigger.json +70 -0
  189. package/data/docs/types/Content.json +33 -0
  190. package/data/docs/types/DataTable.json +596 -0
  191. package/data/docs/types/DataTableBody.json +223 -0
  192. package/data/docs/types/DataTableFooter.json +27 -0
  193. package/data/docs/types/DataTableHeader.json +269 -0
  194. package/data/docs/types/DataTableManager.json +11 -0
  195. package/data/docs/types/DataTableRoot.json +590 -0
  196. package/data/docs/types/DataTableTable.json +271 -0
  197. package/data/docs/types/DateInput.json +792 -0
  198. package/data/docs/types/DatePicker.json +700 -0
  199. package/data/docs/types/DateRangePicker.json +936 -0
  200. package/data/docs/types/DateRangePickerField.json +1047 -0
  201. package/data/docs/types/DefaultPage.json +12 -0
  202. package/data/docs/types/DefaultPageActions.json +27 -0
  203. package/data/docs/types/DefaultPageBackLink.json +213 -0
  204. package/data/docs/types/DefaultPageContent.json +27 -0
  205. package/data/docs/types/DefaultPageFooter.json +27 -0
  206. package/data/docs/types/DefaultPageHeader.json +27 -0
  207. package/data/docs/types/DefaultPageRoot.json +106 -0
  208. package/data/docs/types/DefaultPageSubtitle.json +27 -0
  209. package/data/docs/types/DefaultPageTabNav.json +28 -0
  210. package/data/docs/types/DefaultPageTitle.json +27 -0
  211. package/data/docs/types/DialogBody.json +27 -0
  212. package/data/docs/types/DialogCloseTrigger.json +939 -0
  213. package/data/docs/types/DialogContent.json +27 -0
  214. package/data/docs/types/DialogFooter.json +27 -0
  215. package/data/docs/types/DialogHeader.json +27 -0
  216. package/data/docs/types/DialogRoot.json +138 -0
  217. package/data/docs/types/DialogTitle.json +27 -0
  218. package/data/docs/types/DialogTrigger.json +80 -0
  219. package/data/docs/types/DraggableList.json +12 -0
  220. package/data/docs/types/DraggableListField.json +894 -0
  221. package/data/docs/types/DraggableListItem.json +574 -0
  222. package/data/docs/types/DraggableListRoot.json +745 -0
  223. package/data/docs/types/Drawer.json +12 -0
  224. package/data/docs/types/DrawerBody.json +27 -0
  225. package/data/docs/types/DrawerCloseTrigger.json +939 -0
  226. package/data/docs/types/DrawerContent.json +27 -0
  227. package/data/docs/types/DrawerFooter.json +27 -0
  228. package/data/docs/types/DrawerHeader.json +27 -0
  229. package/data/docs/types/DrawerRoot.json +142 -0
  230. package/data/docs/types/DrawerTitle.json +27 -0
  231. package/data/docs/types/DrawerTrigger.json +80 -0
  232. package/data/docs/types/FieldErrors.getBuiltInMessage.json +11 -0
  233. package/data/docs/types/FieldErrors.getCustomMessage.json +9 -0
  234. package/data/docs/types/FieldErrors.json +109 -0
  235. package/data/docs/types/Flex.json +238 -0
  236. package/data/docs/types/Footer.json +67 -0
  237. package/data/docs/types/FormFieldDescription.json +11 -0
  238. package/data/docs/types/FormFieldError.json +11 -0
  239. package/data/docs/types/FormFieldInfoBox.json +27 -0
  240. package/data/docs/types/FormFieldInput.json +11 -0
  241. package/data/docs/types/FormFieldLabel.json +11 -0
  242. package/data/docs/types/FormFieldRoot.json +148 -0
  243. package/data/docs/types/Grid.json +253 -0
  244. package/data/docs/types/GridProps.json +11 -0
  245. package/data/docs/types/Group.json +143 -0
  246. package/data/docs/types/Header.json +67 -0
  247. package/data/docs/types/Heading.json +109 -0
  248. package/data/docs/types/Icon.json +112 -0
  249. package/data/docs/types/IconButton.json +1019 -0
  250. package/data/docs/types/IconToggleButton.json +787 -0
  251. package/data/docs/types/Image.json +373 -0
  252. package/data/docs/types/Indicator.json +67 -0
  253. package/data/docs/types/InlineSvg.json +98 -0
  254. package/data/docs/types/Item.json +67 -0
  255. package/data/docs/types/Kbd.json +118 -0
  256. package/data/docs/types/Link.json +380 -0
  257. package/data/docs/types/List.json +12 -0
  258. package/data/docs/types/ListIndicator.json +70 -0
  259. package/data/docs/types/ListItem.json +70 -0
  260. package/data/docs/types/ListRoot.json +124 -0
  261. package/data/docs/types/LoadingSpinner.json +87 -0
  262. package/data/docs/types/LocalizedField.json +460 -0
  263. package/data/docs/types/LocalizedStringFormatter.json +9 -0
  264. package/data/docs/types/MakeElementFocusable.json +196 -0
  265. package/data/docs/types/MenuContent.json +111 -0
  266. package/data/docs/types/MenuItem.json +671 -0
  267. package/data/docs/types/MenuRoot.json +670 -0
  268. package/data/docs/types/MenuSection.json +364 -0
  269. package/data/docs/types/MenuSubmenu.json +111 -0
  270. package/data/docs/types/MenuSubmenuTrigger.json +67 -0
  271. package/data/docs/types/MenuTrigger.json +906 -0
  272. package/data/docs/types/ModalPage.json +12 -0
  273. package/data/docs/types/ModalPageActions.json +27 -0
  274. package/data/docs/types/ModalPageContent.json +27 -0
  275. package/data/docs/types/ModalPageFooter.json +27 -0
  276. package/data/docs/types/ModalPageHeader.json +27 -0
  277. package/data/docs/types/ModalPageRoot.json +87 -0
  278. package/data/docs/types/ModalPageSubtitle.json +27 -0
  279. package/data/docs/types/ModalPageTabNav.json +28 -0
  280. package/data/docs/types/ModalPageTitle.json +27 -0
  281. package/data/docs/types/ModalPageTopBar.json +57 -0
  282. package/data/docs/types/MoneyInput.isEmpty.json +40 -0
  283. package/data/docs/types/MoneyInput.json +282 -0
  284. package/data/docs/types/MoneyInputField.json +379 -0
  285. package/data/docs/types/MoneyInputFieldProps.json +9 -0
  286. package/data/docs/types/MultilineTextInput.json +1194 -0
  287. package/data/docs/types/MultilineTextInputField.json +1269 -0
  288. package/data/docs/types/MultilineTextInputFieldProps.json +9 -0
  289. package/data/docs/types/NimbusI18nProvider.json +42 -0
  290. package/data/docs/types/NimbusI18nProviderProps.json +9 -0
  291. package/data/docs/types/NimbusProvider.json +270 -0
  292. package/data/docs/types/NumberInput.json +952 -0
  293. package/data/docs/types/NumberInputField.json +1004 -0
  294. package/data/docs/types/NumberInputFieldProps.json +9 -0
  295. package/data/docs/types/PageContent.json +11 -0
  296. package/data/docs/types/PageContentColumn.json +99 -0
  297. package/data/docs/types/PageContentRoot.json +114 -0
  298. package/data/docs/types/Pagination.json +159 -0
  299. package/data/docs/types/PasswordInput.json +1120 -0
  300. package/data/docs/types/PasswordInputField.json +1216 -0
  301. package/data/docs/types/PasswordInputFieldProps.json +9 -0
  302. package/data/docs/types/ProgressBar.json +280 -0
  303. package/data/docs/types/RadioInputOption.json +550 -0
  304. package/data/docs/types/RadioInputRoot.json +514 -0
  305. package/data/docs/types/RangeCalendar.json +618 -0
  306. package/data/docs/types/RichTextInput.json +134 -0
  307. package/data/docs/types/Root.json +122 -0
  308. package/data/docs/types/Row.json +67 -0
  309. package/data/docs/types/ScopedSearchInput.isEmpty.json +40 -0
  310. package/data/docs/types/ScopedSearchInput.json +253 -0
  311. package/data/docs/types/ScrollArea.json +82 -0
  312. package/data/docs/types/SearchInput.json +1165 -0
  313. package/data/docs/types/SearchInputField.json +1240 -0
  314. package/data/docs/types/Select.json +12 -0
  315. package/data/docs/types/SelectOption.json +572 -0
  316. package/data/docs/types/SelectOptionGroup.json +215 -0
  317. package/data/docs/types/SelectOptions.json +693 -0
  318. package/data/docs/types/SelectRoot.json +926 -0
  319. package/data/docs/types/Separator.json +65 -0
  320. package/data/docs/types/SimpleGrid.json +291 -0
  321. package/data/docs/types/Spacer.json +27 -0
  322. package/data/docs/types/SpacerProps.json +9 -0
  323. package/data/docs/types/SplitButton.json +203 -0
  324. package/data/docs/types/Stack.json +144 -0
  325. package/data/docs/types/Steps.json +12 -0
  326. package/data/docs/types/StepsChangeDetails.json +9 -0
  327. package/data/docs/types/StepsCompletedContent.json +28 -0
  328. package/data/docs/types/StepsCompletedContentProps.json +9 -0
  329. package/data/docs/types/StepsContent.json +43 -0
  330. package/data/docs/types/StepsContentProps.json +9 -0
  331. package/data/docs/types/StepsDescription.json +28 -0
  332. package/data/docs/types/StepsDescriptionProps.json +9 -0
  333. package/data/docs/types/StepsIndicator.json +28 -0
  334. package/data/docs/types/StepsIndicatorProps.json +9 -0
  335. package/data/docs/types/StepsItem.json +43 -0
  336. package/data/docs/types/StepsItemProps.json +9 -0
  337. package/data/docs/types/StepsList.json +28 -0
  338. package/data/docs/types/StepsListProps.json +9 -0
  339. package/data/docs/types/StepsNextTrigger.json +62 -0
  340. package/data/docs/types/StepsNextTriggerProps.json +9 -0
  341. package/data/docs/types/StepsNumber.json +28 -0
  342. package/data/docs/types/StepsNumberProps.json +9 -0
  343. package/data/docs/types/StepsPrevTrigger.json +62 -0
  344. package/data/docs/types/StepsPrevTriggerProps.json +9 -0
  345. package/data/docs/types/StepsRoot.json +183 -0
  346. package/data/docs/types/StepsRootProps.json +11 -0
  347. package/data/docs/types/StepsSeparator.json +28 -0
  348. package/data/docs/types/StepsSeparatorProps.json +9 -0
  349. package/data/docs/types/StepsStatus.json +57 -0
  350. package/data/docs/types/StepsStatusProps.json +9 -0
  351. package/data/docs/types/StepsTitle.json +28 -0
  352. package/data/docs/types/StepsTitleProps.json +9 -0
  353. package/data/docs/types/StepsTrigger.json +47 -0
  354. package/data/docs/types/StepsTriggerProps.json +9 -0
  355. package/data/docs/types/Switch.json +371 -0
  356. package/data/docs/types/TabListProps.json +9 -0
  357. package/data/docs/types/TabNav.json +12 -0
  358. package/data/docs/types/TabNavItem.json +300 -0
  359. package/data/docs/types/TabNavItemProps.json +9 -0
  360. package/data/docs/types/TabNavProps.json +9 -0
  361. package/data/docs/types/TabNavRoot.json +80 -0
  362. package/data/docs/types/TabPanelProps.json +9 -0
  363. package/data/docs/types/TabPanelsProps.json +9 -0
  364. package/data/docs/types/TabProps.json +9 -0
  365. package/data/docs/types/Table.json +9 -0
  366. package/data/docs/types/TableBody.json +67 -0
  367. package/data/docs/types/TableBodyProps.json +9 -0
  368. package/data/docs/types/TableCaption.json +67 -0
  369. package/data/docs/types/TableCaptionProps.json +9 -0
  370. package/data/docs/types/TableCell.json +227 -0
  371. package/data/docs/types/TableCellProps.json +9 -0
  372. package/data/docs/types/TableColumn.json +101 -0
  373. package/data/docs/types/TableColumnGroup.json +101 -0
  374. package/data/docs/types/TableColumnGroupProps.json +9 -0
  375. package/data/docs/types/TableColumnHeader.json +193 -0
  376. package/data/docs/types/TableColumnHeaderProps.json +9 -0
  377. package/data/docs/types/TableColumnProps.json +9 -0
  378. package/data/docs/types/TableFooter.json +67 -0
  379. package/data/docs/types/TableFooterProps.json +9 -0
  380. package/data/docs/types/TableHeader.json +67 -0
  381. package/data/docs/types/TableHeaderProps.json +9 -0
  382. package/data/docs/types/TableRoot.json +365 -0
  383. package/data/docs/types/TableRootProps.json +12 -0
  384. package/data/docs/types/TableRow.json +67 -0
  385. package/data/docs/types/TableRowProps.json +9 -0
  386. package/data/docs/types/TableScrollArea.json +82 -0
  387. package/data/docs/types/TableScrollAreaProps.json +9 -0
  388. package/data/docs/types/Tabs.json +12 -0
  389. package/data/docs/types/TabsList.json +110 -0
  390. package/data/docs/types/TabsPanel.json +112 -0
  391. package/data/docs/types/TabsPanels.json +108 -0
  392. package/data/docs/types/TabsRoot.json +211 -0
  393. package/data/docs/types/TabsTab.json +174 -0
  394. package/data/docs/types/TagGroup.json +12 -0
  395. package/data/docs/types/TagGroupRoot.json +306 -0
  396. package/data/docs/types/TagGroupTag.json +595 -0
  397. package/data/docs/types/TagGroupTagList.json +166 -0
  398. package/data/docs/types/Text.json +119 -0
  399. package/data/docs/types/TextInput.json +1156 -0
  400. package/data/docs/types/TextInputField.json +1263 -0
  401. package/data/docs/types/TimeInput.json +752 -0
  402. package/data/docs/types/ToastAction.json +9 -0
  403. package/data/docs/types/ToastManagerApi.json +9 -0
  404. package/data/docs/types/ToastOptions.json +9 -0
  405. package/data/docs/types/ToastOutlet.json +12 -0
  406. package/data/docs/types/ToastPlacement.json +9 -0
  407. package/data/docs/types/ToastPromiseOptions.json +9 -0
  408. package/data/docs/types/ToastType.json +9 -0
  409. package/data/docs/types/ToastVariant.json +9 -0
  410. package/data/docs/types/ToggleButton.json +789 -0
  411. package/data/docs/types/ToggleButtonGroup.json +9 -0
  412. package/data/docs/types/ToggleButtonGroupButton.json +331 -0
  413. package/data/docs/types/ToggleButtonGroupRoot.json +269 -0
  414. package/data/docs/types/Toolbar.json +176 -0
  415. package/data/docs/types/Tooltip.json +12 -0
  416. package/data/docs/types/TooltipContent.json +372 -0
  417. package/data/docs/types/TooltipRoot.json +179 -0
  418. package/data/docs/types/Trigger.json +69 -0
  419. package/data/docs/types/VisuallyHidden.json +93 -0
  420. package/data/docs/types/__object.json +12 -0
  421. package/data/docs/types/filters.json +11 -0
  422. package/data/docs/types/manifest.json +278 -0
  423. package/data/docs/types/toast.json +234 -0
  424. package/data/docs/types/useColorMode.json +13 -0
  425. package/data/docs/types/useColorModeValue.json +13 -0
  426. package/data/docs/types/useColorScheme.json +12 -0
  427. package/data/docs/types/useLocalizedStringFormatter.json +14 -0
  428. package/data/icons.json +21940 -0
  429. package/data/tokens.json +40061 -0
  430. package/dist/index.js +2516 -17
  431. package/package.json +25 -6
  432. package/dist/data-loader.d.ts +0 -102
  433. package/dist/data-loader.js +0 -104
  434. package/dist/index.d.ts +0 -13
  435. package/dist/server.d.ts +0 -9
  436. package/dist/server.js +0 -22
  437. package/dist/server.spec.d.ts +0 -1
  438. package/dist/server.spec.js +0 -69
  439. package/dist/tools/list-components.d.ts +0 -9
  440. package/dist/tools/list-components.js +0 -42
  441. package/dist/types.d.ts +0 -28
  442. package/dist/types.js +0 -4
  443. package/src/data-loader.ts +0 -226
  444. package/src/index.ts +0 -29
  445. package/src/server.spec.ts +0 -86
  446. package/src/server.ts +0 -28
  447. package/src/tools/list-components.ts +0 -49
  448. package/src/types.ts +0 -31
  449. package/tsconfig.json +0 -14
  450. package/vitest.config.ts +0 -9
@@ -0,0 +1,673 @@
1
+ {
2
+ "meta": {
3
+ "id": "Components-PageContent",
4
+ "title": "PageContent",
5
+ "exportName": "PageContent",
6
+ "description": "A layout component that constrains page content width and arranges content in single or multi-column layouts. It consolidates multiple width-based containers into a single compound component with explicit column control.",
7
+ "lifecycleState": "Stable",
8
+ "order": 999,
9
+ "repoPath": "packages/nimbus/src/components/page-content/page-content.mdx",
10
+ "menu": [
11
+ "Components",
12
+ "Layout",
13
+ "PageContent"
14
+ ],
15
+ "route": "components/layout/pagecontent",
16
+ "tags": [
17
+ "component",
18
+ "layout",
19
+ "page-content",
20
+ "columns",
21
+ "grid"
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": "Key features",
36
+ "href": "#key-features",
37
+ "depth": 3,
38
+ "numbering": [
39
+ 1,
40
+ 1,
41
+ 1
42
+ ],
43
+ "parent": "root"
44
+ },
45
+ {
46
+ "value": "Resources",
47
+ "href": "#resources",
48
+ "depth": 3,
49
+ "numbering": [
50
+ 1,
51
+ 1,
52
+ 2
53
+ ],
54
+ "parent": "root"
55
+ },
56
+ {
57
+ "value": "Variables",
58
+ "href": "#variables",
59
+ "depth": 2,
60
+ "numbering": [
61
+ 1,
62
+ 2
63
+ ],
64
+ "parent": "root"
65
+ },
66
+ {
67
+ "value": "Width variants",
68
+ "href": "#width-variants",
69
+ "depth": 3,
70
+ "numbering": [
71
+ 1,
72
+ 2,
73
+ 1
74
+ ],
75
+ "parent": "root"
76
+ },
77
+ {
78
+ "value": "Wide",
79
+ "href": "#wide",
80
+ "depth": 4,
81
+ "numbering": [
82
+ 1,
83
+ 2,
84
+ 1,
85
+ 1
86
+ ],
87
+ "parent": "root"
88
+ },
89
+ {
90
+ "value": "Narrow",
91
+ "href": "#narrow",
92
+ "depth": 4,
93
+ "numbering": [
94
+ 1,
95
+ 2,
96
+ 1,
97
+ 2
98
+ ],
99
+ "parent": "root"
100
+ },
101
+ {
102
+ "value": "Full",
103
+ "href": "#full",
104
+ "depth": 4,
105
+ "numbering": [
106
+ 1,
107
+ 2,
108
+ 1,
109
+ 3
110
+ ],
111
+ "parent": "root"
112
+ },
113
+ {
114
+ "value": "Column layouts",
115
+ "href": "#column-layouts",
116
+ "depth": 3,
117
+ "numbering": [
118
+ 1,
119
+ 2,
120
+ 2
121
+ ],
122
+ "parent": "root"
123
+ },
124
+ {
125
+ "value": "Single column",
126
+ "href": "#single-column",
127
+ "depth": 4,
128
+ "numbering": [
129
+ 1,
130
+ 2,
131
+ 2,
132
+ 1
133
+ ],
134
+ "parent": "root"
135
+ },
136
+ {
137
+ "value": "Equal columns (1/1)",
138
+ "href": "#equal-columns-11",
139
+ "depth": 4,
140
+ "numbering": [
141
+ 1,
142
+ 2,
143
+ 2,
144
+ 2
145
+ ],
146
+ "parent": "root"
147
+ },
148
+ {
149
+ "value": "Sidebar layout (2/1)",
150
+ "href": "#sidebar-layout-21",
151
+ "depth": 4,
152
+ "numbering": [
153
+ 1,
154
+ 2,
155
+ 2,
156
+ 3
157
+ ],
158
+ "parent": "root"
159
+ },
160
+ {
161
+ "value": "Sticky sidebar",
162
+ "href": "#sticky-sidebar",
163
+ "depth": 3,
164
+ "numbering": [
165
+ 1,
166
+ 2,
167
+ 3
168
+ ],
169
+ "parent": "root"
170
+ },
171
+ {
172
+ "value": "Custom gap",
173
+ "href": "#custom-gap",
174
+ "depth": 3,
175
+ "numbering": [
176
+ 1,
177
+ 2,
178
+ 4
179
+ ],
180
+ "parent": "root"
181
+ },
182
+ {
183
+ "value": "Specs",
184
+ "href": "#specs",
185
+ "depth": 2,
186
+ "numbering": [
187
+ 1,
188
+ 3
189
+ ],
190
+ "parent": "root"
191
+ },
192
+ {
193
+ "value": "Accessibility",
194
+ "href": "#accessibility",
195
+ "depth": 2,
196
+ "numbering": [
197
+ 1,
198
+ 4
199
+ ],
200
+ "parent": "root"
201
+ },
202
+ {
203
+ "value": "Accessibility standards",
204
+ "href": "#accessibility-standards",
205
+ "depth": 3,
206
+ "numbering": [
207
+ 1,
208
+ 4,
209
+ 1
210
+ ],
211
+ "parent": "root"
212
+ },
213
+ {
214
+ "value": "Predecessor",
215
+ "href": "#predecessor",
216
+ "depth": 2,
217
+ "numbering": [
218
+ 1,
219
+ 5
220
+ ],
221
+ "parent": "root"
222
+ }
223
+ ],
224
+ "layout": "app-frame",
225
+ "tabs": [
226
+ {
227
+ "key": "overview",
228
+ "title": "Overview",
229
+ "order": 0
230
+ },
231
+ {
232
+ "key": "guidelines",
233
+ "title": "Guidelines",
234
+ "order": 2
235
+ },
236
+ {
237
+ "key": "dev",
238
+ "title": "Implementation",
239
+ "order": 3
240
+ }
241
+ ]
242
+ },
243
+ "mdx": "\n## Overview\n\nPageContent provides a CSS grid-based centering pattern with configurable\nmax-width constraints and column layouts. It supports three width variants\n(wide, narrow, full) and three column configurations (single, equal split, and\n2:1 ratio) with built-in responsive collapse for multi-column layouts.\n\n### Key features\n\n- **Width constraints**: Three variants control the max-width of the content\n area\n- **Column layouts**: Single, equal-split (1/1), and sidebar (2/1) column\n configurations\n- **Responsive collapse**: Multi-column layouts collapse to a single column on\n smaller screens\n- **Sticky sidebar**: Column-level sticky positioning for sidebar patterns\n- **Customizable gap**: Default spacing between columns can be overridden\n\n### Resources\n\nDeep dive into implementation details and access the Nimbus design library.\n\n[Merchant Center Page Content Layouts](https://docs.commercetools.com/merchant-center-customizations/development/page-content-layouts)\n\n## Variables\n\nGet familiar with the features.\n\n### Width variants\n\nThe `variant` prop controls the max-width constraint of the content area.\n\n#### Wide\n\nThe default variant. Content is constrained to a wide max-width, suitable for\nlarge forms or tables with few columns.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\">\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Wide</Text>\n <Text>Constrained to a wide max-width. Best for large forms or tables with few columns.</Text>\n </Box>\n </PageContent.Root>\n)\n```\n\n#### Narrow\n\nContent is constrained to a narrower max-width, suitable for simple forms,\ncollapsible panels, and cards.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"narrow\">\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Narrow</Text>\n <Text>Constrained to a narrow max-width. Best for simple forms and focused content.</Text>\n <Text color=\"neutral.11\">The difference from wide is only visible when the viewport is wider than the narrow max-width of 3xl (768px).</Text>\n </Box>\n </PageContent.Root>\n)\n```\n\n#### Full\n\nContent spans the full available width with no max-width constraint. Suitable\nfor large tables and content with a horizontal reading flow.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"full\">\n <Box bg=\"teal.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"teal.12\">Full</Text>\n <Text>No width constraint. Best for large tables and horizontal reading flows.</Text>\n </Box>\n </PageContent.Root>\n)\n```\n\n### Column layouts\n\nThe `columns` prop controls how content is arranged within the container. Use\n`PageContent.Column` to wrap each column's content.\n\n#### Single column\n\nThe default layout. Content flows in a single column. No `PageContent.Column`\nwrappers are needed.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"1\">\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Single column</Text>\n <Text>Content flows in a single, full-width column.</Text>\n </Box>\n </PageContent.Root>\n)\n```\n\n#### Equal columns (1/1)\n\nTwo columns of equal width. Best for grouping related content side by side to\nsave vertical space.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"1/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Left column</Text>\n <Text>Equal width with the right column.</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Right column</Text>\n <Text>Equal width with the left column.</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n)\n```\n\n#### Sidebar layout (2/1)\n\nA wider main column with a narrower sidebar column. Best for forms with meta\ninformation or contextual links.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"2/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Main content (2fr)</Text>\n <Text>The wider column for primary content such as forms.</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Sidebar (1fr)</Text>\n <Text>Narrower column for meta information.</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n)\n```\n\n### Sticky sidebar\n\nUse the `sticky` prop on a `PageContent.Column` to make it stick to the top of\nthe viewport during scroll. This is commonly used for sidebar navigation or meta\ninformation that should remain visible.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"2/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\" minHeight=\"300px\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Main content</Text>\n <Text>Tall content area that creates scrollable space.</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column sticky>\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Sticky sidebar</Text>\n <Text>This column stays visible while scrolling.</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n)\n```\n\n### Custom gap\n\nThe default gap between columns is `800` (32px). Override it with the `gap`\nstyle prop for tighter or wider spacing.\n\n```jsx live\nconst App = () => (\n <Stack gap=\"800\">\n <PageContent.Root variant=\"wide\" columns=\"1/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"400\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Default gap (800)</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"blue.12\">32px between columns</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n\n <PageContent.Root variant=\"wide\" columns=\"1/1\" gap=\"1600\">\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"400\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Large gap (1600)</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"purple.12\">64px between columns</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n </Stack>\n)\n```\n\n## Specs\n\n<PropsTable id=\"PageContent\" />\n\n## Accessibility\n\nAccessibility ensures that digital content and functionality are usable by\neveryone.\n\n### Accessibility standards\n\n- **Semantic structure:** PageContent renders semantic `<div>` elements that\n provide a logical content structure for assistive technologies.\n- **Reading order:** The DOM order matches the visual order, ensuring screen\n readers present content in the expected sequence.\n- **Responsive reflow:** Multi-column layouts collapse to a single column on\n smaller screens, maintaining readability and preventing horizontal scrolling\n (WCAG 1.4.10 Reflow).\n- **Landmark usage:** PageContent is a layout primitive. Wrap content in\n appropriate landmark elements (`<main>`, `<aside>`, `<section>`) to provide\n additional context for screen readers.\n\n## Predecessor\n\nPageContent replaces the `PageContentWide`, `PageContentNarrow`, and\n`PageContentFull` components from Merchant Center Application Kit. For detailed\nmigration instructions, see the\n[Migration guide](/components/layout/pagecontent/dev#migrating-from-merchant-center-application-kit)\nin the implementation docs. For the original Application Kit documentation, see\n[Page Content Layouts](https://docs.commercetools.com/merchant-center-customizations/development/page-content-layouts).\n",
244
+ "views": {
245
+ "overview": {
246
+ "mdx": "\n## Overview\n\nPageContent provides a CSS grid-based centering pattern with configurable\nmax-width constraints and column layouts. It supports three width variants\n(wide, narrow, full) and three column configurations (single, equal split, and\n2:1 ratio) with built-in responsive collapse for multi-column layouts.\n\n### Key features\n\n- **Width constraints**: Three variants control the max-width of the content\n area\n- **Column layouts**: Single, equal-split (1/1), and sidebar (2/1) column\n configurations\n- **Responsive collapse**: Multi-column layouts collapse to a single column on\n smaller screens\n- **Sticky sidebar**: Column-level sticky positioning for sidebar patterns\n- **Customizable gap**: Default spacing between columns can be overridden\n\n### Resources\n\nDeep dive into implementation details and access the Nimbus design library.\n\n[Merchant Center Page Content Layouts](https://docs.commercetools.com/merchant-center-customizations/development/page-content-layouts)\n\n## Variables\n\nGet familiar with the features.\n\n### Width variants\n\nThe `variant` prop controls the max-width constraint of the content area.\n\n#### Wide\n\nThe default variant. Content is constrained to a wide max-width, suitable for\nlarge forms or tables with few columns.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\">\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Wide</Text>\n <Text>Constrained to a wide max-width. Best for large forms or tables with few columns.</Text>\n </Box>\n </PageContent.Root>\n)\n```\n\n#### Narrow\n\nContent is constrained to a narrower max-width, suitable for simple forms,\ncollapsible panels, and cards.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"narrow\">\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Narrow</Text>\n <Text>Constrained to a narrow max-width. Best for simple forms and focused content.</Text>\n <Text color=\"neutral.11\">The difference from wide is only visible when the viewport is wider than the narrow max-width of 3xl (768px).</Text>\n </Box>\n </PageContent.Root>\n)\n```\n\n#### Full\n\nContent spans the full available width with no max-width constraint. Suitable\nfor large tables and content with a horizontal reading flow.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"full\">\n <Box bg=\"teal.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"teal.12\">Full</Text>\n <Text>No width constraint. Best for large tables and horizontal reading flows.</Text>\n </Box>\n </PageContent.Root>\n)\n```\n\n### Column layouts\n\nThe `columns` prop controls how content is arranged within the container. Use\n`PageContent.Column` to wrap each column's content.\n\n#### Single column\n\nThe default layout. Content flows in a single column. No `PageContent.Column`\nwrappers are needed.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"1\">\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Single column</Text>\n <Text>Content flows in a single, full-width column.</Text>\n </Box>\n </PageContent.Root>\n)\n```\n\n#### Equal columns (1/1)\n\nTwo columns of equal width. Best for grouping related content side by side to\nsave vertical space.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"1/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Left column</Text>\n <Text>Equal width with the right column.</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Right column</Text>\n <Text>Equal width with the left column.</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n)\n```\n\n#### Sidebar layout (2/1)\n\nA wider main column with a narrower sidebar column. Best for forms with meta\ninformation or contextual links.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"2/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Main content (2fr)</Text>\n <Text>The wider column for primary content such as forms.</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Sidebar (1fr)</Text>\n <Text>Narrower column for meta information.</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n)\n```\n\n### Sticky sidebar\n\nUse the `sticky` prop on a `PageContent.Column` to make it stick to the top of\nthe viewport during scroll. This is commonly used for sidebar navigation or meta\ninformation that should remain visible.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"2/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\" minHeight=\"300px\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Main content</Text>\n <Text>Tall content area that creates scrollable space.</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column sticky>\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Sticky sidebar</Text>\n <Text>This column stays visible while scrolling.</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n)\n```\n\n### Custom gap\n\nThe default gap between columns is `800` (32px). Override it with the `gap`\nstyle prop for tighter or wider spacing.\n\n```jsx live\nconst App = () => (\n <Stack gap=\"800\">\n <PageContent.Root variant=\"wide\" columns=\"1/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"400\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Default gap (800)</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"blue.12\">32px between columns</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n\n <PageContent.Root variant=\"wide\" columns=\"1/1\" gap=\"1600\">\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"400\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Large gap (1600)</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"purple.12\">64px between columns</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n </Stack>\n)\n```\n\n## Specs\n\n<PropsTable id=\"PageContent\" />\n\n## Accessibility\n\nAccessibility ensures that digital content and functionality are usable by\neveryone.\n\n### Accessibility standards\n\n- **Semantic structure:** PageContent renders semantic `<div>` elements that\n provide a logical content structure for assistive technologies.\n- **Reading order:** The DOM order matches the visual order, ensuring screen\n readers present content in the expected sequence.\n- **Responsive reflow:** Multi-column layouts collapse to a single column on\n smaller screens, maintaining readability and preventing horizontal scrolling\n (WCAG 1.4.10 Reflow).\n- **Landmark usage:** PageContent is a layout primitive. Wrap content in\n appropriate landmark elements (`<main>`, `<aside>`, `<section>`) to provide\n additional context for screen readers.\n\n## Predecessor\n\nPageContent replaces the `PageContentWide`, `PageContentNarrow`, and\n`PageContentFull` components from Merchant Center Application Kit. For detailed\nmigration instructions, see the\n[Migration guide](/components/layout/pagecontent/dev#migrating-from-merchant-center-application-kit)\nin the implementation docs. For the original Application Kit documentation, see\n[Page Content Layouts](https://docs.commercetools.com/merchant-center-customizations/development/page-content-layouts).\n",
247
+ "toc": [
248
+ {
249
+ "value": "Overview",
250
+ "href": "#overview",
251
+ "depth": 2,
252
+ "numbering": [
253
+ 1,
254
+ 1
255
+ ],
256
+ "parent": "root"
257
+ },
258
+ {
259
+ "value": "Key features",
260
+ "href": "#key-features",
261
+ "depth": 3,
262
+ "numbering": [
263
+ 1,
264
+ 1,
265
+ 1
266
+ ],
267
+ "parent": "root"
268
+ },
269
+ {
270
+ "value": "Resources",
271
+ "href": "#resources",
272
+ "depth": 3,
273
+ "numbering": [
274
+ 1,
275
+ 1,
276
+ 2
277
+ ],
278
+ "parent": "root"
279
+ },
280
+ {
281
+ "value": "Variables",
282
+ "href": "#variables",
283
+ "depth": 2,
284
+ "numbering": [
285
+ 1,
286
+ 2
287
+ ],
288
+ "parent": "root"
289
+ },
290
+ {
291
+ "value": "Width variants",
292
+ "href": "#width-variants",
293
+ "depth": 3,
294
+ "numbering": [
295
+ 1,
296
+ 2,
297
+ 1
298
+ ],
299
+ "parent": "root"
300
+ },
301
+ {
302
+ "value": "Wide",
303
+ "href": "#wide",
304
+ "depth": 4,
305
+ "numbering": [
306
+ 1,
307
+ 2,
308
+ 1,
309
+ 1
310
+ ],
311
+ "parent": "root"
312
+ },
313
+ {
314
+ "value": "Narrow",
315
+ "href": "#narrow",
316
+ "depth": 4,
317
+ "numbering": [
318
+ 1,
319
+ 2,
320
+ 1,
321
+ 2
322
+ ],
323
+ "parent": "root"
324
+ },
325
+ {
326
+ "value": "Full",
327
+ "href": "#full",
328
+ "depth": 4,
329
+ "numbering": [
330
+ 1,
331
+ 2,
332
+ 1,
333
+ 3
334
+ ],
335
+ "parent": "root"
336
+ },
337
+ {
338
+ "value": "Column layouts",
339
+ "href": "#column-layouts",
340
+ "depth": 3,
341
+ "numbering": [
342
+ 1,
343
+ 2,
344
+ 2
345
+ ],
346
+ "parent": "root"
347
+ },
348
+ {
349
+ "value": "Single column",
350
+ "href": "#single-column",
351
+ "depth": 4,
352
+ "numbering": [
353
+ 1,
354
+ 2,
355
+ 2,
356
+ 1
357
+ ],
358
+ "parent": "root"
359
+ },
360
+ {
361
+ "value": "Equal columns (1/1)",
362
+ "href": "#equal-columns-11",
363
+ "depth": 4,
364
+ "numbering": [
365
+ 1,
366
+ 2,
367
+ 2,
368
+ 2
369
+ ],
370
+ "parent": "root"
371
+ },
372
+ {
373
+ "value": "Sidebar layout (2/1)",
374
+ "href": "#sidebar-layout-21",
375
+ "depth": 4,
376
+ "numbering": [
377
+ 1,
378
+ 2,
379
+ 2,
380
+ 3
381
+ ],
382
+ "parent": "root"
383
+ },
384
+ {
385
+ "value": "Sticky sidebar",
386
+ "href": "#sticky-sidebar",
387
+ "depth": 3,
388
+ "numbering": [
389
+ 1,
390
+ 2,
391
+ 3
392
+ ],
393
+ "parent": "root"
394
+ },
395
+ {
396
+ "value": "Custom gap",
397
+ "href": "#custom-gap",
398
+ "depth": 3,
399
+ "numbering": [
400
+ 1,
401
+ 2,
402
+ 4
403
+ ],
404
+ "parent": "root"
405
+ },
406
+ {
407
+ "value": "Specs",
408
+ "href": "#specs",
409
+ "depth": 2,
410
+ "numbering": [
411
+ 1,
412
+ 3
413
+ ],
414
+ "parent": "root"
415
+ },
416
+ {
417
+ "value": "Accessibility",
418
+ "href": "#accessibility",
419
+ "depth": 2,
420
+ "numbering": [
421
+ 1,
422
+ 4
423
+ ],
424
+ "parent": "root"
425
+ },
426
+ {
427
+ "value": "Accessibility standards",
428
+ "href": "#accessibility-standards",
429
+ "depth": 3,
430
+ "numbering": [
431
+ 1,
432
+ 4,
433
+ 1
434
+ ],
435
+ "parent": "root"
436
+ },
437
+ {
438
+ "value": "Predecessor",
439
+ "href": "#predecessor",
440
+ "depth": 2,
441
+ "numbering": [
442
+ 1,
443
+ 5
444
+ ],
445
+ "parent": "root"
446
+ }
447
+ ]
448
+ },
449
+ "dev": {
450
+ "mdx": "\n## Getting started\n\n### Import\n\n```tsx\nimport { PageContent, type PageContentProps } from '@commercetools/nimbus';\n```\n\n### Basic usage\n\nThe simplest usage is a single-column width-constrained layout. No `PageContent.Column` wrappers are needed for single-column content.\n\n```jsx live-dev\nconst App = () => (\n <PageContent.Root variant=\"wide\">\n <Text>This content is constrained to the wide max-width.</Text>\n </PageContent.Root>\n)\n```\n\n## Usage examples\n\n### Width variants\n\nThe `variant` prop controls the max-width constraint. Available values are `wide`, `narrow`, and `full`.\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"800\">\n <PageContent.Root variant=\"narrow\">\n <Box bg=\"purple.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"purple.12\" fontWeight=\"bold\">narrow</Text>\n <Text color=\"neutral.11\">The difference from wide is only visible when the viewport is wider than the narrow max-width of 3xl (768px).</Text>\n </Box>\n </PageContent.Root>\n\n <PageContent.Root variant=\"wide\">\n <Box bg=\"blue.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"blue.12\" fontWeight=\"bold\">wide</Text>\n </Box>\n </PageContent.Root>\n\n <PageContent.Root variant=\"full\">\n <Box bg=\"teal.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"teal.12\" fontWeight=\"bold\">full</Text>\n </Box>\n </PageContent.Root>\n </Stack>\n)\n```\n\n### Multi-column layouts\n\nUse the `columns` prop with `PageContent.Column` wrappers for multi-column layouts.\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"800\" >\n <PageContent.Root variant=\"wide\" columns=\"1/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"blue.12\" fontWeight=\"bold\">Left (equal)</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"blue.12\" fontWeight=\"bold\">Right (equal)</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n\n <PageContent.Root variant=\"wide\" columns=\"2/1\">\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"purple.12\" fontWeight=\"bold\">Main content (2fr)</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"purple.12\" fontWeight=\"bold\">Sidebar (1fr)</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n </Stack>\n)\n```\n\n### Sticky sidebar\n\nUse the `sticky` prop on a `PageContent.Column` to make it stick during scroll. Override the default `top: 0` with the `top` style prop.\n\n```jsx live-dev\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"2/1\" maxHeight=\"250px\" overflowY=\"auto\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"400\" borderRadius=\"200\" minHeight=\"300px\">\n <Text color=\"blue.12\" fontWeight=\"bold\">Main content area (tall)</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column sticky top=\"400\">\n <Box bg=\"purple.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"purple.12\" fontWeight=\"bold\">Sticky sidebar</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n)\n```\n\n### Custom gap\n\nThe default gap between columns is `800` (32px). Override with the `gap` style prop.\n\n```jsx live-dev\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"1/1\" gap=\"1600\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"blue.12\" fontWeight=\"bold\">Column 1</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"400\" borderRadius=\"200\">\n <Text color=\"purple.12\" fontWeight=\"bold\">Column 2</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n)\n```\n\n## API reference\n\n<PropsTable id=\"PageContent\" />\n\n## Testing your implementation\n\nThese examples demonstrate how to test your implementation when using PageContent within your application.\n\n### Usage Examples\n\nConsumer implementation patterns for PageContent\n\n```tsx\nimport { describe, it, expect } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport { PageContent, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"PageContent - Usage examples\", () => {\n it(\"renders a 2/1 layout with sticky sidebar\", () => {\n render(\n <NimbusProvider>\n <PageContent.Root variant=\"wide\" columns=\"2/1\">\n <PageContent.Column>Main content</PageContent.Column>\n <PageContent.Column sticky>Sidebar</PageContent.Column>\n </PageContent.Root>\n </NimbusProvider>\n );\n\n expect(screen.getByText(\"Main content\")).toBeInTheDocument();\n expect(screen.getByText(\"Sidebar\")).toBeInTheDocument();\n });\n});\n```\n\n\n## Migrating from Merchant Center Application Kit\n\n`PageContent` replaces the three separate page content containers from\n[`@commercetools-frontend/application-components`](https://docs.commercetools.com/merchant-center-customizations/development/page-content-layouts):\n\n| Application Kit Component | Nimbus Equivalent |\n|---|---|\n| `<PageContentWide>` | `<PageContent.Root variant=\"wide\">` |\n| `<PageContentNarrow>` | `<PageContent.Root variant=\"narrow\">` |\n| `<PageContentFull>` | `<PageContent.Root variant=\"full\">` |\n| `<PageContentWide columns=\"1/1\">` | `<PageContent.Root variant=\"wide\" columns=\"1/1\">` with `<PageContent.Column>` children |\n| `<PageContentWide columns=\"2/1\">` (implicit sticky right column) | `<PageContent.Root variant=\"wide\" columns=\"2/1\">` with `<PageContent.Column sticky>` |\n\nKey differences:\n\n- **Single component** with a `variant` prop instead of three separate components\n- **Explicit columns** via `<PageContent.Column>` instead of implicit `Children.toArray` splitting\n- **Opt-in sticky** via the `sticky` prop instead of automatic sticky on the right column in `2/1` mode\n\n## Resources\n\n- [Storybook](https://nimbus-storybook.vercel.app/?path=/docs/components-pagecontent--docs)\n- [Merchant Center Page Content Layouts](https://docs.commercetools.com/merchant-center-customizations/development/page-content-layouts) (predecessor)\n",
451
+ "toc": [
452
+ {
453
+ "value": "Getting started",
454
+ "href": "#getting-started",
455
+ "depth": 2,
456
+ "numbering": [
457
+ 1,
458
+ 1
459
+ ],
460
+ "parent": "root"
461
+ },
462
+ {
463
+ "value": "Import",
464
+ "href": "#import",
465
+ "depth": 3,
466
+ "numbering": [
467
+ 1,
468
+ 1,
469
+ 1
470
+ ],
471
+ "parent": "root"
472
+ },
473
+ {
474
+ "value": "Basic usage",
475
+ "href": "#basic-usage",
476
+ "depth": 3,
477
+ "numbering": [
478
+ 1,
479
+ 1,
480
+ 2
481
+ ],
482
+ "parent": "root"
483
+ },
484
+ {
485
+ "value": "Usage examples",
486
+ "href": "#usage-examples",
487
+ "depth": 2,
488
+ "numbering": [
489
+ 1,
490
+ 2
491
+ ],
492
+ "parent": "root"
493
+ },
494
+ {
495
+ "value": "Width variants",
496
+ "href": "#width-variants",
497
+ "depth": 3,
498
+ "numbering": [
499
+ 1,
500
+ 2,
501
+ 1
502
+ ],
503
+ "parent": "root"
504
+ },
505
+ {
506
+ "value": "Multi-column layouts",
507
+ "href": "#multi-column-layouts",
508
+ "depth": 3,
509
+ "numbering": [
510
+ 1,
511
+ 2,
512
+ 2
513
+ ],
514
+ "parent": "root"
515
+ },
516
+ {
517
+ "value": "Sticky sidebar",
518
+ "href": "#sticky-sidebar",
519
+ "depth": 3,
520
+ "numbering": [
521
+ 1,
522
+ 2,
523
+ 3
524
+ ],
525
+ "parent": "root"
526
+ },
527
+ {
528
+ "value": "Custom gap",
529
+ "href": "#custom-gap",
530
+ "depth": 3,
531
+ "numbering": [
532
+ 1,
533
+ 2,
534
+ 4
535
+ ],
536
+ "parent": "root"
537
+ },
538
+ {
539
+ "value": "API reference",
540
+ "href": "#api-reference",
541
+ "depth": 2,
542
+ "numbering": [
543
+ 1,
544
+ 3
545
+ ],
546
+ "parent": "root"
547
+ },
548
+ {
549
+ "value": "Testing your implementation",
550
+ "href": "#testing-your-implementation",
551
+ "depth": 2,
552
+ "numbering": [
553
+ 1,
554
+ 4
555
+ ],
556
+ "parent": "root"
557
+ },
558
+ {
559
+ "value": "Usage Examples",
560
+ "href": "#usage-examples-1",
561
+ "depth": 3,
562
+ "numbering": [
563
+ 1,
564
+ 4,
565
+ 1
566
+ ],
567
+ "parent": "root"
568
+ },
569
+ {
570
+ "value": "Migrating from Merchant Center Application Kit",
571
+ "href": "#migrating-from-merchant-center-application-kit",
572
+ "depth": 2,
573
+ "numbering": [
574
+ 1,
575
+ 5
576
+ ],
577
+ "parent": "root"
578
+ },
579
+ {
580
+ "value": "Resources",
581
+ "href": "#resources",
582
+ "depth": 2,
583
+ "numbering": [
584
+ 1,
585
+ 6
586
+ ],
587
+ "parent": "root"
588
+ }
589
+ ]
590
+ },
591
+ "guidelines": {
592
+ "mdx": "\n## Guidelines\n\nPageContent guidelines focus on selecting the correct width constraint and\ncolumn layout for your content, ensuring visual hierarchy and a consistent\nreading experience across page types and screen sizes.\n\n### Best practices\n\n- **Choose the right width:** Match the `variant` to the content type. Use\n `narrow` for simple forms, `wide` for complex forms or small tables, and\n `full` for large tables with many columns.\n- **Limit layout types per page:** Use a maximum of two different width variants\n on a single page to maintain a consistent visual hierarchy.\n- **Use explicit columns:** Always wrap column content in `PageContent.Column`\n components when using multi-column layouts (`1/1` or `2/1`). This makes the\n layout structure clear and intentional.\n- **Sticky sidebar for context:** Use the `sticky` prop on sidebar columns that\n contain meta information, navigation links, or status details that should\n remain visible while the user scrolls through primary content.\n- **Responsive awareness:** Multi-column layouts automatically collapse to a\n single column on smaller screens. Design content within each column to work\n well in both its multi-column and collapsed single-column states.\n- **Consistent spacing:** Use the default gap of `800` (32px) between columns\n for most layouts. Only override the gap when the content demands tighter or\n wider spacing.\n\n### Usage\n\nPageContent provides the structural foundation for page-level layouts. The\ncorrect layout choice depends on the type of content being displayed and the\nreading patterns it supports.\n\n> [!TIP]\\\n> When to use\n\n- **Simple forms and focused content:** Use `variant=\"narrow\"` when form fields\n should span the available width and the content is straightforward.\n- **Complex forms or small tables:** Use `variant=\"wide\"` for forms with\n multiple sections or tables with a moderate number of columns.\n- **Large tables and horizontal content:** Use `variant=\"full\"` when content has\n a strong horizontal reading flow, such as wide data tables.\n- **Side-by-side content grouping:** Use `columns=\"1/1\"` to group related\n content into equal columns, saving vertical space.\n- **Main content with sidebar:** Use `columns=\"2/1\"` for forms or content that\n benefits from adjacent meta information, links, or status indicators.\n\n> [!CAUTION]\\\n> When not to use\n\n- **Don't use narrow for tables:** Tables generally need more horizontal space.\n Use `wide` or `full` instead.\n- **Don't use full for simple forms:** Forms without many columns do not benefit\n from the full viewport width and become harder to read.\n- **Don't nest PageContent within PageContent:** Each page section should use a\n single PageContent. Nesting creates unexpected layout behavior.\n- **Don't use equal columns (1/1) for forms and tables:** Equal columns are best\n for grouped informational content, not for forms or tabular data.\n\n### Choosing a width variant\n\nSelect the width variant based on the primary content type on the page.\n\n> [!TIP]\\\n> **Do**\n>\n> - Use `narrow` for simple forms where fields span the full width. This\n> focuses the user's attention and reduces unnecessary horizontal scanning.\n> - Use `wide` for forms with more complexity or small tables. Consider using\n> `horizontalConstraint` on form fields to limit their width within the wider\n> container.\n> - Use `full` for large data tables that benefit from the entire viewport\n> width.\n\n```jsx live\nconst App = () => (\n <Stack gap=\"800\">\n <PageContent.Root variant=\"narrow\">\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Stack gap=\"400\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Narrow: Simple form</Text>\n <Text>Fields span the focused width.</Text>\n <Text color=\"neutral.11\">The difference from wide is only visible when the viewport is wider than the narrow max-width of 3xl (768px).</Text>\n </Stack>\n </Box>\n </PageContent.Root>\n\n <PageContent.Root variant=\"wide\">\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Stack gap=\"400\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Wide: Complex form or small table</Text>\n <Text>More room for multi-section layouts.</Text>\n </Stack>\n </Box>\n </PageContent.Root>\n\n <PageContent.Root variant=\"full\">\n <Box bg=\"teal.3\" padding=\"600\" borderRadius=\"200\">\n <Stack gap=\"400\">\n <Text fontWeight=\"bold\" color=\"teal.12\">Full: Large table</Text>\n <Text>Content spans the entire available width.</Text>\n </Stack>\n </Box>\n </PageContent.Root>\n </Stack>\n)\n```\n\n> [!CAUTION]\\\n> **Don't**\n>\n> - Don't use `full` width for simple forms. The excessive width makes the\n> content harder to read and creates an unfocused layout.\n> - Don't use `narrow` for data tables. The constrained width clips columns and\n> forces horizontal scrolling.\n\n```jsx live\nconst App = () => (\n <Stack gap=\"800\">\n <PageContent.Root variant=\"full\">\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Stack gap=\"400\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Full: Simple form (avoid)</Text>\n <Text>This form does not need the full viewport width. Use narrow instead.</Text>\n </Stack>\n </Box>\n </PageContent.Root>\n\n <PageContent.Root variant=\"narrow\">\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Stack gap=\"400\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Narrow: Data table (avoid)</Text>\n <Text>Tables need more room. Use wide or full instead.</Text>\n </Stack>\n </Box>\n </PageContent.Root>\n </Stack>\n)\n```\n\n### Column layout selection\n\nChoose the column layout based on how your content should be organized.\n\n> [!TIP]\\\n> **Do**\n>\n> - Use `columns=\"2/1\"` for a main content area with a sidebar for meta\n> information, related links, or status indicators.\n> - Use the `sticky` prop on the sidebar column so it remains visible as the\n> user scrolls through primary content.\n> - Use `columns=\"1/1\"` to group related content side by side when both\n> sections are equally important.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"2/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\" minHeight=\"200px\">\n <Stack gap=\"400\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Main content</Text>\n <Text>Form fields and primary content live here.</Text>\n </Stack>\n </Box>\n </PageContent.Column>\n <PageContent.Column sticky>\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Stack gap=\"400\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Sticky sidebar</Text>\n <Text>Meta information stays visible on scroll.</Text>\n </Stack>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n)\n```\n\n> [!CAUTION]\\\n> **Don't**\n>\n> - Don't use equal columns (`1/1`) for a primary content area with a secondary\n> sidebar. The visual weight should reflect the content hierarchy. Use `2/1`\n> instead.\n> - Don't place tables inside multi-column layouts. Tables need the full\n> available width of a single-column layout.\n\n```jsx live\nconst App = () => (\n <PageContent.Root variant=\"wide\" columns=\"1/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Stack gap=\"400\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Main form (avoid 1/1 for this)</Text>\n <Text>This content is more important than the sidebar. Use 2/1 to reflect the hierarchy.</Text>\n </Stack>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Stack gap=\"400\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Sidebar</Text>\n <Text>Secondary content gets equal space unnecessarily.</Text>\n </Stack>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n)\n```\n\n### Combining layouts on a page\n\nMultiple PageContent sections can be stacked on a single page, but limit the\nnumber of different width variants to maintain visual consistency.\n\n> [!TIP]\\\n> **Do**\n>\n> - Stack multiple PageContent sections vertically for different content zones.\n> - Use a maximum of two different width variants on a page.\n\n```jsx live\nconst App = () => (\n <Stack gap=\"800\">\n <PageContent.Root variant=\"wide\" columns=\"2/1\">\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Wide: Form section</Text>\n </Box>\n </PageContent.Column>\n <PageContent.Column>\n <Box bg=\"blue.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Sidebar</Text>\n </Box>\n </PageContent.Column>\n </PageContent.Root>\n\n <PageContent.Root variant=\"full\">\n <Box bg=\"purple.3\" padding=\"600\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Full: Data table section</Text>\n </Box>\n </PageContent.Root>\n </Stack>\n)\n```\n\n> [!CAUTION]\\\n> **Don't**\n>\n> - Don't use more than two different layout types on a single page. Mixing\n> narrow, wide, and full on the same page creates a disjointed visual\n> experience.\n\n```jsx live\nconst App = () => (\n <Stack gap=\"800\">\n <PageContent.Root variant=\"narrow\">\n <Box bg=\"blue.3\" padding=\"400\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"blue.12\">Narrow section</Text>\n </Box>\n </PageContent.Root>\n\n <PageContent.Root variant=\"wide\">\n <Box bg=\"purple.3\" padding=\"400\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"purple.12\">Wide section</Text>\n </Box>\n </PageContent.Root>\n\n <PageContent.Root variant=\"full\">\n <Box bg=\"teal.3\" padding=\"400\" borderRadius=\"200\">\n <Text fontWeight=\"bold\" color=\"teal.12\">Full section (three variants is too many)</Text>\n </Box>\n </PageContent.Root>\n </Stack>\n)\n```\n\n### Predecessor\n\nPageContent replaces the `PageContentWide`, `PageContentNarrow`, and\n`PageContentFull` components from Merchant Center Application Kit. For detailed\nmigration instructions, see the\n[Migration guide](/components/layout/pagecontent/dev#migrating-from-merchant-center-application-kit)\nin the implementation docs. For the original Application Kit documentation, see\n[Page Content Layouts](https://docs.commercetools.com/merchant-center-customizations/development/page-content-layouts).\n",
593
+ "toc": [
594
+ {
595
+ "value": "Guidelines",
596
+ "href": "#guidelines",
597
+ "depth": 2,
598
+ "numbering": [
599
+ 1,
600
+ 1
601
+ ],
602
+ "parent": "root"
603
+ },
604
+ {
605
+ "value": "Best practices",
606
+ "href": "#best-practices",
607
+ "depth": 3,
608
+ "numbering": [
609
+ 1,
610
+ 1,
611
+ 1
612
+ ],
613
+ "parent": "root"
614
+ },
615
+ {
616
+ "value": "Usage",
617
+ "href": "#usage",
618
+ "depth": 3,
619
+ "numbering": [
620
+ 1,
621
+ 1,
622
+ 2
623
+ ],
624
+ "parent": "root"
625
+ },
626
+ {
627
+ "value": "Choosing a width variant",
628
+ "href": "#choosing-a-width-variant",
629
+ "depth": 3,
630
+ "numbering": [
631
+ 1,
632
+ 1,
633
+ 3
634
+ ],
635
+ "parent": "root"
636
+ },
637
+ {
638
+ "value": "Column layout selection",
639
+ "href": "#column-layout-selection",
640
+ "depth": 3,
641
+ "numbering": [
642
+ 1,
643
+ 1,
644
+ 4
645
+ ],
646
+ "parent": "root"
647
+ },
648
+ {
649
+ "value": "Combining layouts on a page",
650
+ "href": "#combining-layouts-on-a-page",
651
+ "depth": 3,
652
+ "numbering": [
653
+ 1,
654
+ 1,
655
+ 5
656
+ ],
657
+ "parent": "root"
658
+ },
659
+ {
660
+ "value": "Predecessor",
661
+ "href": "#predecessor",
662
+ "depth": 3,
663
+ "numbering": [
664
+ 1,
665
+ 1,
666
+ 6
667
+ ],
668
+ "parent": "root"
669
+ }
670
+ ]
671
+ }
672
+ }
673
+ }