@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,519 @@
1
+ {
2
+ "meta": {
3
+ "id": "Components-SimpleGrid",
4
+ "title": "Simple grid",
5
+ "exportName": "SimpleGrid",
6
+ "description": "SimpleGrid offers an intuitive way to easily create responsive grid layouts.",
7
+ "lifecycleState": "Stable",
8
+ "order": 999,
9
+ "repoPath": "packages/nimbus/src/components/simple-grid/simple-grid.mdx",
10
+ "menu": [
11
+ "Components",
12
+ "Layout",
13
+ "Simple grid"
14
+ ],
15
+ "route": "components/layout/simple-grid",
16
+ "tags": [
17
+ "component",
18
+ "grid",
19
+ "simple",
20
+ "layout",
21
+ "columns"
22
+ ],
23
+ "toc": [
24
+ {
25
+ "value": "Basic usage",
26
+ "href": "#basic-usage",
27
+ "depth": 2,
28
+ "numbering": [
29
+ 1,
30
+ 1
31
+ ],
32
+ "parent": "root"
33
+ },
34
+ {
35
+ "value": "With columns",
36
+ "href": "#with-columns",
37
+ "depth": 2,
38
+ "numbering": [
39
+ 1,
40
+ 2
41
+ ],
42
+ "parent": "root"
43
+ },
44
+ {
45
+ "value": "Auto responsive layout",
46
+ "href": "#auto-responsive-layout",
47
+ "depth": 2,
48
+ "numbering": [
49
+ 1,
50
+ 3
51
+ ],
52
+ "parent": "root"
53
+ },
54
+ {
55
+ "value": "Simple grid with colSpan",
56
+ "href": "#simple-grid-with-colspan",
57
+ "depth": 2,
58
+ "numbering": [
59
+ 1,
60
+ 4
61
+ ],
62
+ "parent": "root"
63
+ },
64
+ {
65
+ "value": "With row and column gap",
66
+ "href": "#with-row-and-column-gap",
67
+ "depth": 2,
68
+ "numbering": [
69
+ 1,
70
+ 5
71
+ ],
72
+ "parent": "root"
73
+ }
74
+ ],
75
+ "layout": "app-frame",
76
+ "tabs": [
77
+ {
78
+ "key": "overview",
79
+ "title": "Overview",
80
+ "order": 0
81
+ },
82
+ {
83
+ "key": "dev",
84
+ "title": "Implementation",
85
+ "order": 3
86
+ },
87
+ {
88
+ "key": "a11y",
89
+ "title": "Accessibility",
90
+ "order": 4
91
+ }
92
+ ]
93
+ },
94
+ "mdx": "\n## Basic usage\n\nUse SimpleGrid → When you need a quick, responsive, equal-sized grid (e.g.,\nproduct listings, image galleries).\n\n```jsx\nimport { SimpleGrid } from \"@commercetools/nimbus\";\n```\n\n```jsx live\nconst App = () => (\n <SimpleGrid gap=\"100\">\n <Box key=\"1\" p=\"400\" bg=\"neutral.7\">\n Item 1\n </Box>\n <Box key=\"2\" p=\"400\" bg=\"neutral.7\">\n Item 2\n </Box>\n </SimpleGrid>\n)\n```\n\n## With columns\n\nUse the columns prop to define the number of columns in the grid layout.\n\n```jsx live\nconst App = () => (\n <SimpleGrid gap=\"100\" columns={2}>\n <Box key=\"1\" p=\"400\" bg=\"neutral.7\">\n Item 1\n </Box>\n <Box key=\"2\" p=\"400\" bg=\"neutral.7\">\n Item 2\n </Box>\n <Box key=\"3\" p=\"400\" bg=\"neutral.7\">\n Item 3\n </Box>\n <Box key=\"4\" p=\"400\" bg=\"neutral.7\">\n Item 4\n </Box>\n </SimpleGrid>\n)\n```\n\n## Auto responsive layout\n\nAn Auto-Responsive Grid dynamically adjusts the number of columns and item sizes\nbased on the viewport width, ensuring an adaptive and fluid layout. adjust\nviewport to see layout rearrangements.\n\n```jsx live\nconst App = () => (\n <SimpleGrid gap=\"100\" minChildWidth=\"sm\">\n <Box key=\"1\" p=\"400\" bg=\"neutral.7\">\n Item 1\n </Box>\n <Box key=\"2\" p=\"400\" bg=\"neutral.7\">\n Item 2\n </Box>\n <Box key=\"3\" p=\"400\" bg=\"neutral.7\">\n Item 3\n </Box>\n <Box key=\"4\" p=\"400\" bg=\"neutral.7\">\n Item 4\n </Box>\n </SimpleGrid>\n)\n```\n\n## Simple grid with colSpan\n\n```jsx live\nconst App = () => (\n <SimpleGrid\n columns={{ base: 2, md: 4 }}\n gap={{ base: \"600\", md: \"1000\" }}\n >\n <SimpleGrid.Item colSpan={{ base: 1, md: 3 }}>\n <Box height=\"20\" p=\"400\" bg=\"neutral.7\">\n Column 1\n </Box>\n </SimpleGrid.Item>\n <SimpleGrid.Item colSpan={{ base: 1, md: 1 }}>\n <Box height=\"20\" p=\"400\" bg=\"neutral.7\">\n Column 2\n </Box>\n </SimpleGrid.Item>\n </SimpleGrid>\n)\n```\n\n## With row and column gap\n\n```jsx live\nconst App = () => (\n <SimpleGrid rowGap=\"400\" columnGap=\"200\" columns={2}>\n <Box key=\"1\" p=\"400\" bg=\"neutral.7\">\n Item 1\n </Box>\n <Box key=\"2\" p=\"400\" bg=\"neutral.7\">\n Item 2\n </Box>\n <Box key=\"3\" p=\"400\" bg=\"neutral.7\">\n Item 3\n </Box>\n <Box key=\"4\" p=\"400\" bg=\"neutral.7\">\n Item 4\n </Box>\n </SimpleGrid>\n)\n```\n\n<PropsTable id=\"SimpleGrid\" />\n",
95
+ "views": {
96
+ "overview": {
97
+ "mdx": "\n## Basic usage\n\nUse SimpleGrid → When you need a quick, responsive, equal-sized grid (e.g.,\nproduct listings, image galleries).\n\n```jsx\nimport { SimpleGrid } from \"@commercetools/nimbus\";\n```\n\n```jsx live\nconst App = () => (\n <SimpleGrid gap=\"100\">\n <Box key=\"1\" p=\"400\" bg=\"neutral.7\">\n Item 1\n </Box>\n <Box key=\"2\" p=\"400\" bg=\"neutral.7\">\n Item 2\n </Box>\n </SimpleGrid>\n)\n```\n\n## With columns\n\nUse the columns prop to define the number of columns in the grid layout.\n\n```jsx live\nconst App = () => (\n <SimpleGrid gap=\"100\" columns={2}>\n <Box key=\"1\" p=\"400\" bg=\"neutral.7\">\n Item 1\n </Box>\n <Box key=\"2\" p=\"400\" bg=\"neutral.7\">\n Item 2\n </Box>\n <Box key=\"3\" p=\"400\" bg=\"neutral.7\">\n Item 3\n </Box>\n <Box key=\"4\" p=\"400\" bg=\"neutral.7\">\n Item 4\n </Box>\n </SimpleGrid>\n)\n```\n\n## Auto responsive layout\n\nAn Auto-Responsive Grid dynamically adjusts the number of columns and item sizes\nbased on the viewport width, ensuring an adaptive and fluid layout. adjust\nviewport to see layout rearrangements.\n\n```jsx live\nconst App = () => (\n <SimpleGrid gap=\"100\" minChildWidth=\"sm\">\n <Box key=\"1\" p=\"400\" bg=\"neutral.7\">\n Item 1\n </Box>\n <Box key=\"2\" p=\"400\" bg=\"neutral.7\">\n Item 2\n </Box>\n <Box key=\"3\" p=\"400\" bg=\"neutral.7\">\n Item 3\n </Box>\n <Box key=\"4\" p=\"400\" bg=\"neutral.7\">\n Item 4\n </Box>\n </SimpleGrid>\n)\n```\n\n## Simple grid with colSpan\n\n```jsx live\nconst App = () => (\n <SimpleGrid\n columns={{ base: 2, md: 4 }}\n gap={{ base: \"600\", md: \"1000\" }}\n >\n <SimpleGrid.Item colSpan={{ base: 1, md: 3 }}>\n <Box height=\"20\" p=\"400\" bg=\"neutral.7\">\n Column 1\n </Box>\n </SimpleGrid.Item>\n <SimpleGrid.Item colSpan={{ base: 1, md: 1 }}>\n <Box height=\"20\" p=\"400\" bg=\"neutral.7\">\n Column 2\n </Box>\n </SimpleGrid.Item>\n </SimpleGrid>\n)\n```\n\n## With row and column gap\n\n```jsx live\nconst App = () => (\n <SimpleGrid rowGap=\"400\" columnGap=\"200\" columns={2}>\n <Box key=\"1\" p=\"400\" bg=\"neutral.7\">\n Item 1\n </Box>\n <Box key=\"2\" p=\"400\" bg=\"neutral.7\">\n Item 2\n </Box>\n <Box key=\"3\" p=\"400\" bg=\"neutral.7\">\n Item 3\n </Box>\n <Box key=\"4\" p=\"400\" bg=\"neutral.7\">\n Item 4\n </Box>\n </SimpleGrid>\n)\n```\n\n<PropsTable id=\"SimpleGrid\" />\n",
98
+ "toc": [
99
+ {
100
+ "value": "Basic usage",
101
+ "href": "#basic-usage",
102
+ "depth": 2,
103
+ "numbering": [
104
+ 1,
105
+ 1
106
+ ],
107
+ "parent": "root"
108
+ },
109
+ {
110
+ "value": "With columns",
111
+ "href": "#with-columns",
112
+ "depth": 2,
113
+ "numbering": [
114
+ 1,
115
+ 2
116
+ ],
117
+ "parent": "root"
118
+ },
119
+ {
120
+ "value": "Auto responsive layout",
121
+ "href": "#auto-responsive-layout",
122
+ "depth": 2,
123
+ "numbering": [
124
+ 1,
125
+ 3
126
+ ],
127
+ "parent": "root"
128
+ },
129
+ {
130
+ "value": "Simple grid with colSpan",
131
+ "href": "#simple-grid-with-colspan",
132
+ "depth": 2,
133
+ "numbering": [
134
+ 1,
135
+ 4
136
+ ],
137
+ "parent": "root"
138
+ },
139
+ {
140
+ "value": "With row and column gap",
141
+ "href": "#with-row-and-column-gap",
142
+ "depth": 2,
143
+ "numbering": [
144
+ 1,
145
+ 5
146
+ ],
147
+ "parent": "root"
148
+ }
149
+ ]
150
+ },
151
+ "a11y": {
152
+ "mdx": "\n## Accessibility\n\nAccessibility ensures that digital content and functionality are usable by\neveryone, including people with disabilities, by addressing visual, auditory,\ncognitive, and physical limitations.\n\n```jsx live\nconst App = () => (\n <SimpleGrid columns={3} gap=\"400\">\n <Box bg=\"gray.100\" p=\"400\">Item 1</Box>\n <Box bg=\"gray.100\" p=\"400\">Item 2</Box>\n <Box bg=\"gray.100\" p=\"400\">Item 3</Box>\n </SimpleGrid>\n);\n```\n\n### Accessibility standards\n\n- **Use semantic HTML:** SimpleGrid is a layout component that renders a `div`\n by default. Use the `as` prop to apply semantic elements when the grid has\n semantic meaning.\n- **Maintain reading order:** Ensure the visual grid order matches the DOM order\n so screen readers navigate content in a logical sequence.\n- **Avoid layout-only containers:** When possible, apply grid styles directly to\n semantic elements.\n- **Responsive design:** Ensure grid layouts adapt appropriately for different\n screen sizes and zoom levels without breaking.\n- **Focus order:** Ensure keyboard focus follows a logical order through grid\n items.\n- **Don't convey meaning through position alone:** Important relationships\n should be conveyed through semantic HTML and ARIA attributes, not just visual\n layout.\n\n### Resources\n\n- [WCAG 1.3.2 Meaningful Sequence](https://www.w3.org/WAI/WCAG21/Understanding/meaningful-sequence.html)\n- [WCAG 2.4.3 Focus Order](https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html)\n",
153
+ "toc": [
154
+ {
155
+ "value": "Accessibility",
156
+ "href": "#accessibility",
157
+ "depth": 2,
158
+ "numbering": [
159
+ 1,
160
+ 1
161
+ ],
162
+ "parent": "root"
163
+ },
164
+ {
165
+ "value": "Accessibility standards",
166
+ "href": "#accessibility-standards",
167
+ "depth": 3,
168
+ "numbering": [
169
+ 1,
170
+ 1,
171
+ 1
172
+ ],
173
+ "parent": "root"
174
+ },
175
+ {
176
+ "value": "Resources",
177
+ "href": "#resources",
178
+ "depth": 3,
179
+ "numbering": [
180
+ 1,
181
+ 1,
182
+ 2
183
+ ],
184
+ "parent": "root"
185
+ }
186
+ ]
187
+ },
188
+ "dev": {
189
+ "mdx": "\n## Getting started\n\n### Import\n\n```tsx\nimport { SimpleGrid, type SimpleGridProps } from '@commercetools/nimbus';\n```\n\n### Basic usage\n\nSimpleGrid creates a grid layout with equal-sized children. Use it for quick, responsive layouts without complex grid configuration:\n\n```jsx live-dev\nconst App = () => (\n <SimpleGrid columns={2} gap=\"400\">\n <Box p=\"600\" bg=\"info.7\" borderRadius=\"200\">\n <Text>Item 1</Text>\n </Box>\n <Box p=\"600\" bg=\"info.7\" borderRadius=\"200\">\n <Text>Item 2</Text>\n </Box>\n <Box p=\"600\" bg=\"info.7\" borderRadius=\"200\">\n <Text>Item 3</Text>\n </Box>\n <Box p=\"600\" bg=\"info.7\" borderRadius=\"200\">\n <Text>Item 4</Text>\n </Box>\n </SimpleGrid>\n)\n```\n\n## Usage examples\n\n### Fixed columns\n\nUse the `columns` prop to define a fixed number of columns:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"600\">\n <Stack direction=\"column\" gap=\"200\">\n <Text fontWeight=\"600\">Two columns</Text>\n <SimpleGrid columns={2} gap=\"400\">\n <Box p=\"600\" bg=\"info.7\" borderRadius=\"200\">\n <Text>Item 1</Text>\n </Box>\n <Box p=\"600\" bg=\"info.7\" borderRadius=\"200\">\n <Text>Item 2</Text>\n </Box>\n <Box p=\"600\" bg=\"info.7\" borderRadius=\"200\">\n <Text>Item 3</Text>\n </Box>\n <Box p=\"600\" bg=\"info.7\" borderRadius=\"200\">\n <Text>Item 4</Text>\n </Box>\n </SimpleGrid>\n </Stack>\n\n <Stack direction=\"column\" gap=\"200\">\n <Text fontWeight=\"600\">Three columns</Text>\n <SimpleGrid columns={3} gap=\"400\">\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text>Item 1</Text>\n </Box>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text>Item 2</Text>\n </Box>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text>Item 3</Text>\n </Box>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text>Item 4</Text>\n </Box>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text>Item 5</Text>\n </Box>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text>Item 6</Text>\n </Box>\n </SimpleGrid>\n </Stack>\n </Stack>\n)\n```\n\n### Auto-responsive layout\n\nUse `minChildWidth` to create auto-responsive grids that adjust column count based on available space:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"400\">\n <SimpleGrid minChildWidth=\"200px\" gap=\"400\">\n <Box p=\"600\" bg=\"warning.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Card 1</Text>\n <Text fontSize=\"sm\">Resize the window to see columns adjust</Text>\n </Box>\n <Box p=\"600\" bg=\"warning.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Card 2</Text>\n <Text fontSize=\"sm\">Columns wrap automatically</Text>\n </Box>\n <Box p=\"600\" bg=\"warning.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Card 3</Text>\n <Text fontSize=\"sm\">Based on minChildWidth</Text>\n </Box>\n <Box p=\"600\" bg=\"warning.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Card 4</Text>\n <Text fontSize=\"sm\">No media queries needed</Text>\n </Box>\n <Box p=\"600\" bg=\"warning.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Card 5</Text>\n <Text fontSize=\"sm\">Responsive by default</Text>\n </Box>\n <Box p=\"600\" bg=\"warning.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Card 6</Text>\n <Text fontSize=\"sm\">Equal-sized children</Text>\n </Box>\n </SimpleGrid>\n <Text fontSize=\"sm\" color=\"neutral.11\">\n Try resizing the browser window to see the grid adapt\n </Text>\n </Stack>\n)\n```\n\n### Responsive columns\n\nDefine different column counts for different breakpoints:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"400\">\n <SimpleGrid \n columns={{ base: 1, sm: 2, md: 3, lg: 4 }}\n gap=\"400\"\n >\n <Box p=\"600\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Product 1</Text>\n <Text fontSize=\"sm\">$29.99</Text>\n </Box>\n <Box p=\"600\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Product 2</Text>\n <Text fontSize=\"sm\">$39.99</Text>\n </Box>\n <Box p=\"600\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Product 3</Text>\n <Text fontSize=\"sm\">$49.99</Text>\n </Box>\n <Box p=\"600\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Product 4</Text>\n <Text fontSize=\"sm\">$59.99</Text>\n </Box>\n <Box p=\"600\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Product 5</Text>\n <Text fontSize=\"sm\">$69.99</Text>\n </Box>\n <Box p=\"600\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Product 6</Text>\n <Text fontSize=\"sm\">$79.99</Text>\n </Box>\n </SimpleGrid>\n <Text fontSize=\"sm\" color=\"neutral.11\">\n 1 column on mobile → 2 on small → 3 on medium → 4 on large screens\n </Text>\n </Stack>\n)\n```\n\n### Column spanning\n\nUse `SimpleGrid.Item` with `colSpan` to make items span multiple columns:\n\n```jsx live-dev\nconst App = () => (\n <SimpleGrid \n columns={{ base: 2, md: 4 }}\n gap=\"400\"\n >\n <SimpleGrid.Item colSpan={{ base: 2, md: 3 }}>\n <Box p=\"600\" bg=\"info.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Featured Item</Text>\n <Text fontSize=\"sm\">Spans 2 columns on mobile, 3 on desktop</Text>\n </Box>\n </SimpleGrid.Item>\n <SimpleGrid.Item colSpan={{ base: 2, md: 1 }}>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Sidebar</Text>\n <Text fontSize=\"sm\">Full width on mobile</Text>\n </Box>\n </SimpleGrid.Item>\n <SimpleGrid.Item colSpan={1}>\n <Box p=\"600\" bg=\"neutral.7\" borderRadius=\"200\">\n <Text>Item 1</Text>\n </Box>\n </SimpleGrid.Item>\n <SimpleGrid.Item colSpan={1}>\n <Box p=\"600\" bg=\"neutral.7\" borderRadius=\"200\">\n <Text>Item 2</Text>\n </Box>\n </SimpleGrid.Item>\n <SimpleGrid.Item colSpan={1}>\n <Box p=\"600\" bg=\"neutral.7\" borderRadius=\"200\">\n <Text>Item 3</Text>\n </Box>\n </SimpleGrid.Item>\n <SimpleGrid.Item colSpan={1}>\n <Box p=\"600\" bg=\"neutral.7\" borderRadius=\"200\">\n <Text>Item 4</Text>\n </Box>\n </SimpleGrid.Item>\n </SimpleGrid>\n)\n```\n\n### Custom gap spacing\n\nControl row and column gaps independently:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"600\">\n <Stack direction=\"column\" gap=\"200\">\n <Text fontWeight=\"600\">Equal gap on all sides</Text>\n <SimpleGrid columns={3} gap=\"400\">\n <Box p=\"400\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 1</Text>\n </Box>\n <Box p=\"400\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 2</Text>\n </Box>\n <Box p=\"400\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 3</Text>\n </Box>\n <Box p=\"400\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 4</Text>\n </Box>\n <Box p=\"400\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 5</Text>\n </Box>\n <Box p=\"400\" bg=\"primary.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 6</Text>\n </Box>\n </SimpleGrid>\n </Stack>\n\n <Stack direction=\"column\" gap=\"200\">\n <Text fontWeight=\"600\">Different row and column gaps</Text>\n <SimpleGrid columns={3} columnGap=\"200\" rowGap=\"600\">\n <Box p=\"400\" bg=\"info.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 1</Text>\n </Box>\n <Box p=\"400\" bg=\"info.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 2</Text>\n </Box>\n <Box p=\"400\" bg=\"info.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 3</Text>\n </Box>\n <Box p=\"400\" bg=\"info.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 4</Text>\n </Box>\n <Box p=\"400\" bg=\"info.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 5</Text>\n </Box>\n <Box p=\"400\" bg=\"info.7\" borderRadius=\"200\">\n <Text fontSize=\"sm\">Item 6</Text>\n </Box>\n </SimpleGrid>\n </Stack>\n </Stack>\n)\n```\n\n### Responsive gap values\n\nGap spacing can also be responsive:\n\n```jsx live-dev\nconst App = () => (\n <SimpleGrid \n columns={{ base: 2, md: 3 }}\n gap={{ base: \"200\", md: \"400\", lg: \"600\" }}\n >\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Item 1</Text>\n <Text fontSize=\"sm\">Gap increases on larger screens</Text>\n </Box>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Item 2</Text>\n </Box>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Item 3</Text>\n </Box>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Item 4</Text>\n </Box>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Item 5</Text>\n </Box>\n <Box p=\"600\" bg=\"positive.7\" borderRadius=\"200\">\n <Text fontWeight=\"600\">Item 6</Text>\n </Box>\n </SimpleGrid>\n)\n```\n\n## Component requirements\n\n### Usage context\n\nSimpleGrid should be used when you need:\n- Quick, responsive grid layouts with minimal configuration\n- Equal-sized grid items (product cards, image galleries, data cards)\n- Auto-responsive layouts that adapt to container width\n- Simple column-based layouts without complex positioning\n\n**When to use SimpleGrid vs Grid:**\n\nUse **SimpleGrid** when:\n- All items should be equal size\n- You need auto-responsive behavior with `minChildWidth`\n- Layout is based on a simple column count\n- You want minimal configuration\n\nUse **Grid** when:\n- Items need different sizes (row/column spanning)\n- You need grid template areas for complex layouts\n- Precise control over grid structure is required\n- Creating dashboard layouts or complex page structures\n\n## Accessibility\n\nSimpleGrid is a layout component that doesn't add semantic meaning by itself. Ensure accessible markup:\n\n#### Semantic Structure\n\n- Wrap related content in appropriate semantic elements (`<article>`, `<section>`, `<nav>`)\n- Use proper heading hierarchy within grid items\n- Ensure grid items have meaningful content structure\n\n```tsx\n<SimpleGrid columns={3} gap=\"400\" as=\"section\" aria-labelledby=\"products-heading\">\n <h2 id=\"products-heading\" className=\"sr-only\">Available Products</h2>\n {products.map(product => (\n <article key={product.id}>\n <h3>{product.name}</h3>\n <p>{product.description}</p>\n </article>\n ))}\n</SimpleGrid>\n```\n\n#### Keyboard navigation\n\n- Grid layout doesn't affect keyboard navigation\n- Ensure interactive elements within grid items are keyboard accessible\n- Maintain logical tab order\n\n#### Persistent ID\n\nIf your use case requires tracking and analytics for this component, it is good practice to add a **persistent**, **unique** id to the component:\n\n```tsx\nconst PERSISTENT_ID = \"product-grid\";\n\nexport const ProductGrid = () => (\n <SimpleGrid id={PERSISTENT_ID} columns={3} gap=\"400\">\n <Box>Product 1</Box>\n <Box>Product 2</Box>\n <Box>Product 3</Box>\n </SimpleGrid>\n);\n```\n\n## API reference\n\n<PropsTable id=\"SimpleGrid\" />\n\n## Common patterns\n\n### Product grid\n\nDisplay products in a responsive grid layout:\n\n```jsx live-dev\nconst App = () => {\n const products = [\n { id: 1, name: \"Wireless Mouse\", price: \"$29.99\", stock: \"In Stock\" },\n { id: 2, name: \"Mechanical Keyboard\", price: \"$89.99\", stock: \"In Stock\" },\n { id: 3, name: \"USB-C Hub\", price: \"$49.99\", stock: \"Low Stock\" },\n { id: 4, name: \"Monitor Stand\", price: \"$39.99\", stock: \"In Stock\" },\n { id: 5, name: \"Laptop Sleeve\", price: \"$24.99\", stock: \"In Stock\" },\n { id: 6, name: \"Cable Organizer\", price: \"$14.99\", stock: \"In Stock\" },\n ];\n\n return (\n <SimpleGrid \n columns={{ base: 1, sm: 2, md: 3 }}\n gap=\"400\"\n >\n {products.map((product) => (\n <Box \n key={product.id}\n p=\"600\"\n bg=\"neutral.2\"\n borderRadius=\"200\"\n borderWidth=\"1px\"\n borderColor=\"neutral.6\"\n _hover={{ borderColor: \"primary.7\", bg: \"neutral.3\" }}\n transition=\"all 0.2s\"\n >\n <Stack direction=\"column\" gap=\"300\">\n <Text fontWeight=\"600\" fontSize=\"lg\">{product.name}</Text>\n <Stack direction=\"row\" justify=\"space-between\" align=\"center\">\n <Text fontWeight=\"600\" color=\"primary.11\">{product.price}</Text>\n <Text fontSize=\"sm\" color={product.stock === \"In Stock\" ? \"positive.11\" : \"warning.11\"}>\n {product.stock}\n </Text>\n </Stack>\n <Button size=\"sm\" variant=\"outline\">Add to Cart</Button>\n </Stack>\n </Box>\n ))}\n </SimpleGrid>\n );\n}\n```\n\n### Image gallery\n\nCreate responsive image galleries:\n\n```jsx live-dev\nconst App = () => {\n const images = [\n { id: 1, alt: \"Landscape 1\", color: \"primary.7\" },\n { id: 2, alt: \"Landscape 2\", color: \"info.7\" },\n { id: 3, alt: \"Landscape 3\", color: \"positive.7\" },\n { id: 4, alt: \"Landscape 4\", color: \"warning.7\" },\n { id: 5, alt: \"Landscape 5\", color: \"critical.7\" },\n { id: 6, alt: \"Landscape 6\", color: \"neutral.7\" },\n ];\n\n return (\n <SimpleGrid minChildWidth=\"150px\" gap=\"300\">\n {images.map((image) => (\n <Box\n key={image.id}\n aspectRatio=\"4/3\"\n bg={image.color}\n borderRadius=\"200\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n cursor=\"pointer\"\n transition=\"transform 0.2s\"\n _hover={{ transform: \"scale(1.05)\" }}\n >\n <Text color=\"white\" fontWeight=\"600\">{image.alt}</Text>\n </Box>\n ))}\n </SimpleGrid>\n );\n}\n```\n\n### Dashboard widgets\n\nLayout dashboard cards in a responsive grid:\n\n```jsx live-dev\nconst App = () => {\n const stats = [\n { label: \"Total Sales\", value: \"$12,345\", change: \"+12.5%\", trend: \"up\" },\n { label: \"Orders\", value: \"1,234\", change: \"+8.2%\", trend: \"up\" },\n { label: \"Customers\", value: \"5,678\", change: \"-2.4%\", trend: \"down\" },\n { label: \"Revenue\", value: \"$45,678\", change: \"+15.3%\", trend: \"up\" },\n ];\n\n return (\n <SimpleGrid \n columns={{ base: 1, sm: 2, lg: 4 }}\n gap=\"400\"\n >\n {stats.map((stat, index) => (\n <Box\n key={index}\n p=\"600\"\n bg=\"neutral.2\"\n borderRadius=\"200\"\n borderWidth=\"1px\"\n borderColor=\"neutral.6\"\n >\n <Stack direction=\"column\" gap=\"200\">\n <Text fontSize=\"sm\" color=\"neutral.11\">{stat.label}</Text>\n <Text fontSize=\"2xl\" fontWeight=\"700\">{stat.value}</Text>\n <Text \n fontSize=\"sm\" \n fontWeight=\"600\"\n color={stat.trend === \"up\" ? \"positive.11\" : \"critical.11\"}\n >\n {stat.change}\n </Text>\n </Stack>\n </Box>\n ))}\n </SimpleGrid>\n );\n}\n```\n\n### Feature cards\n\nDisplay feature highlights in a grid:\n\n```jsx live-dev\nconst App = () => {\n const features = [\n { \n icon: Icons.Speed, \n title: \"Fast Performance\", \n description: \"Lightning-fast load times and smooth interactions\"\n },\n { \n icon: Icons.Security, \n title: \"Secure by Default\", \n description: \"Enterprise-grade security for your data\"\n },\n { \n icon: Icons.CloudDone, \n title: \"Cloud Storage\", \n description: \"Unlimited cloud storage for all your files\"\n },\n { \n icon: Icons.Devices, \n title: \"Cross-Platform\", \n description: \"Works seamlessly across all your devices\"\n },\n { \n icon: Icons.Support, \n title: \"24/7 Support\", \n description: \"Round-the-clock customer support\"\n },\n { \n icon: Icons.Analytics, \n title: \"Analytics\", \n description: \"Detailed insights and reporting tools\"\n },\n ];\n\n return (\n <SimpleGrid \n columns={{ base: 1, md: 2, lg: 3 }}\n gap=\"600\"\n >\n {features.map((feature, index) => (\n <Stack key={index} direction=\"column\" gap=\"300\" align=\"center\" textAlign=\"center\">\n <Icon as={feature.icon} size=\"xl\" color=\"primary.11\" />\n <Text fontWeight=\"600\" fontSize=\"lg\">{feature.title}</Text>\n <Text fontSize=\"sm\" color=\"neutral.11\">{feature.description}</Text>\n </Stack>\n ))}\n </SimpleGrid>\n );\n}\n```\n\n## Testing your implementation\n\nThese examples demonstrate how to test your implementation when using SimpleGrid within your application. As the component's internal functionality is already tested by Nimbus, these patterns help you verify your integration and application-specific logic.\n\n### Basic Rendering Tests\n\nVerify SimpleGrid renders with expected structure and children\n\n```tsx\nimport { describe, it, expect } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport { SimpleGrid, Box, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"SimpleGrid - Basic rendering\", () => {\n it(\"renders children in a grid layout\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid data-testid=\"grid\">\n <Box data-testid=\"item-1\">Item 1</Box>\n <Box data-testid=\"item-2\">Item 2</Box>\n <Box data-testid=\"item-3\">Item 3</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid).toBeInTheDocument();\n expect(screen.getByTestId(\"item-1\")).toBeInTheDocument();\n expect(screen.getByTestId(\"item-2\")).toBeInTheDocument();\n expect(screen.getByTestId(\"item-3\")).toBeInTheDocument();\n });\n\n it(\"renders with correct display style\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid data-testid=\"grid\">\n <Box>Item</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid).toHaveStyle({ display: \"grid\" });\n });\n\n it(\"forwards data attributes\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid data-testid=\"test-grid\" data-custom=\"value\">\n <Box>Item</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"test-grid\");\n expect(grid).toHaveAttribute(\"data-custom\", \"value\");\n });\n});\n```\n\n### Column Configuration Tests\n\nTest different column configurations and responsive behavior\n\n```tsx\nimport { describe, it, expect } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport { SimpleGrid, Box, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"SimpleGrid - Column configuration\", () => {\n it(\"applies fixed column count\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid columns={3} data-testid=\"grid\">\n <Box>Item 1</Box>\n <Box>Item 2</Box>\n <Box>Item 3</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid).toHaveStyle({\n gridTemplateColumns: \"repeat(3, minmax(0, 1fr))\",\n });\n });\n\n it(\"applies minChildWidth for auto-responsive layout\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid minChildWidth=\"200px\" data-testid=\"grid\">\n <Box>Item 1</Box>\n <Box>Item 2</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid).toHaveStyle({\n gridTemplateColumns: \"repeat(auto-fit, minmax(200px, 1fr))\",\n });\n });\n\n it(\"supports responsive column values\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid columns={{ base: 1, md: 2, lg: 3 }} data-testid=\"grid\">\n <Box>Item 1</Box>\n <Box>Item 2</Box>\n <Box>Item 3</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid).toBeInTheDocument();\n // Responsive values are applied via CSS classes\n expect(grid).toHaveClass(/css-/);\n });\n});\n```\n\n### Gap Spacing Tests\n\nTest gap, columnGap, and rowGap properties\n\n```tsx\nimport { describe, it, expect } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport { SimpleGrid, Box, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"SimpleGrid - Gap spacing\", () => {\n it(\"applies uniform gap\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid gap=\"400\" data-testid=\"grid\">\n <Box>Item 1</Box>\n <Box>Item 2</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid).toBeInTheDocument();\n // Gap is applied via Chakra tokens\n });\n\n it(\"applies separate column and row gaps\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid columnGap=\"200\" rowGap=\"400\" data-testid=\"grid\">\n <Box>Item 1</Box>\n <Box>Item 2</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid).toBeInTheDocument();\n });\n\n it(\"supports responsive gap values\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid gap={{ base: \"200\", md: \"400\" }} data-testid=\"grid\">\n <Box>Item 1</Box>\n <Box>Item 2</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid).toBeInTheDocument();\n });\n});\n```\n\n### Column Spanning Tests\n\nTest SimpleGrid.Item with colSpan property\n\n```tsx\nimport { describe, it, expect } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport { SimpleGrid, Box, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"SimpleGrid - Column spanning\", () => {\n it(\"renders SimpleGrid.Item with colSpan\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid columns={4} data-testid=\"grid\">\n <SimpleGrid.Item colSpan={2} data-testid=\"span-item\">\n <Box>Spanning Item</Box>\n </SimpleGrid.Item>\n <SimpleGrid.Item colSpan={1}>\n <Box>Item 1</Box>\n </SimpleGrid.Item>\n <SimpleGrid.Item colSpan={1}>\n <Box>Item 2</Box>\n </SimpleGrid.Item>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const spanItem = screen.getByTestId(\"span-item\");\n expect(spanItem).toBeInTheDocument();\n expect(screen.getByText(\"Spanning Item\")).toBeInTheDocument();\n });\n\n it(\"supports responsive colSpan values\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid columns={{ base: 2, md: 4 }} data-testid=\"grid\">\n <SimpleGrid.Item\n colSpan={{ base: 2, md: 3 }}\n data-testid=\"responsive-span\"\n >\n <Box>Responsive Spanning Item</Box>\n </SimpleGrid.Item>\n <SimpleGrid.Item colSpan={1}>\n <Box>Item 1</Box>\n </SimpleGrid.Item>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const responsiveSpan = screen.getByTestId(\"responsive-span\");\n expect(responsiveSpan).toBeInTheDocument();\n });\n});\n```\n\n### Accessibility Tests\n\nVerify accessibility attributes and semantic structure\n\n```tsx\nimport { describe, it, expect } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport { SimpleGrid, Box, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"SimpleGrid - Accessibility\", () => {\n it(\"forwards aria-label attribute\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid aria-label=\"Product grid\" data-testid=\"grid\">\n <Box>Item 1</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid).toHaveAttribute(\"aria-label\", \"Product grid\");\n });\n\n it(\"supports custom element types with as prop\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid as=\"section\" data-testid=\"grid\">\n <Box>Item 1</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid.tagName).toBe(\"SECTION\");\n });\n\n it(\"maintains accessible structure with semantic children\", () => {\n render(\n <NimbusProvider>\n <SimpleGrid\n as=\"section\"\n aria-labelledby=\"grid-heading\"\n data-testid=\"grid\"\n >\n <h2 id=\"grid-heading\" style={{ display: \"none\" }}>\n Products\n </h2>\n <article>\n <h3>Product 1</h3>\n </article>\n <article>\n <h3>Product 2</h3>\n </article>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n const grid = screen.getByTestId(\"grid\");\n expect(grid).toHaveAttribute(\"aria-labelledby\", \"grid-heading\");\n expect(screen.getByText(\"Product 1\")).toBeInTheDocument();\n expect(screen.getByText(\"Product 2\")).toBeInTheDocument();\n });\n});\n```\n\n### Ref Forwarding Tests\n\nVerify ref forwarding to the underlying DOM element\n\n```tsx\nimport { describe, it, expect } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport { SimpleGrid, Box, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"SimpleGrid - Ref forwarding\", () => {\n it(\"forwards ref to the grid element\", () => {\n const ref = { current: null as HTMLDivElement | null };\n\n render(\n <NimbusProvider>\n <SimpleGrid ref={ref} data-testid=\"grid\">\n <Box>Item 1</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n expect(ref.current).toBeInstanceOf(HTMLDivElement);\n expect(ref.current).toHaveAttribute(\"data-testid\", \"grid\");\n });\n\n it(\"allows access to DOM methods through ref\", () => {\n const ref = { current: null as HTMLDivElement | null };\n\n render(\n <NimbusProvider>\n <SimpleGrid ref={ref}>\n <Box>Item 1</Box>\n </SimpleGrid>\n </NimbusProvider>\n );\n\n expect(ref.current?.querySelector).toBeDefined();\n expect(ref.current?.getBoundingClientRect).toBeDefined();\n });\n});\n```\n\n\n## Resources\n\n- [Storybook](https://nimbus-storybook.vercel.app/?path=/docs/components-simplegrid--docs)\n- [Chakra UI SimpleGrid Documentation](https://www.chakra-ui.com/docs/components/simple-grid)\n",
190
+ "toc": [
191
+ {
192
+ "value": "Getting started",
193
+ "href": "#getting-started",
194
+ "depth": 2,
195
+ "numbering": [
196
+ 1,
197
+ 1
198
+ ],
199
+ "parent": "root"
200
+ },
201
+ {
202
+ "value": "Import",
203
+ "href": "#import",
204
+ "depth": 3,
205
+ "numbering": [
206
+ 1,
207
+ 1,
208
+ 1
209
+ ],
210
+ "parent": "root"
211
+ },
212
+ {
213
+ "value": "Basic usage",
214
+ "href": "#basic-usage",
215
+ "depth": 3,
216
+ "numbering": [
217
+ 1,
218
+ 1,
219
+ 2
220
+ ],
221
+ "parent": "root"
222
+ },
223
+ {
224
+ "value": "Usage examples",
225
+ "href": "#usage-examples",
226
+ "depth": 2,
227
+ "numbering": [
228
+ 1,
229
+ 2
230
+ ],
231
+ "parent": "root"
232
+ },
233
+ {
234
+ "value": "Fixed columns",
235
+ "href": "#fixed-columns",
236
+ "depth": 3,
237
+ "numbering": [
238
+ 1,
239
+ 2,
240
+ 1
241
+ ],
242
+ "parent": "root"
243
+ },
244
+ {
245
+ "value": "Auto-responsive layout",
246
+ "href": "#auto-responsive-layout",
247
+ "depth": 3,
248
+ "numbering": [
249
+ 1,
250
+ 2,
251
+ 2
252
+ ],
253
+ "parent": "root"
254
+ },
255
+ {
256
+ "value": "Responsive columns",
257
+ "href": "#responsive-columns",
258
+ "depth": 3,
259
+ "numbering": [
260
+ 1,
261
+ 2,
262
+ 3
263
+ ],
264
+ "parent": "root"
265
+ },
266
+ {
267
+ "value": "Column spanning",
268
+ "href": "#column-spanning",
269
+ "depth": 3,
270
+ "numbering": [
271
+ 1,
272
+ 2,
273
+ 4
274
+ ],
275
+ "parent": "root"
276
+ },
277
+ {
278
+ "value": "Custom gap spacing",
279
+ "href": "#custom-gap-spacing",
280
+ "depth": 3,
281
+ "numbering": [
282
+ 1,
283
+ 2,
284
+ 5
285
+ ],
286
+ "parent": "root"
287
+ },
288
+ {
289
+ "value": "Responsive gap values",
290
+ "href": "#responsive-gap-values",
291
+ "depth": 3,
292
+ "numbering": [
293
+ 1,
294
+ 2,
295
+ 6
296
+ ],
297
+ "parent": "root"
298
+ },
299
+ {
300
+ "value": "Component requirements",
301
+ "href": "#component-requirements",
302
+ "depth": 2,
303
+ "numbering": [
304
+ 1,
305
+ 3
306
+ ],
307
+ "parent": "root"
308
+ },
309
+ {
310
+ "value": "Usage context",
311
+ "href": "#usage-context",
312
+ "depth": 3,
313
+ "numbering": [
314
+ 1,
315
+ 3,
316
+ 1
317
+ ],
318
+ "parent": "root"
319
+ },
320
+ {
321
+ "value": "Accessibility",
322
+ "href": "#accessibility",
323
+ "depth": 2,
324
+ "numbering": [
325
+ 1,
326
+ 4
327
+ ],
328
+ "parent": "root"
329
+ },
330
+ {
331
+ "value": "Semantic Structure",
332
+ "href": "#semantic-structure",
333
+ "depth": 4,
334
+ "numbering": [
335
+ 1,
336
+ 4,
337
+ 1,
338
+ 1
339
+ ],
340
+ "parent": "root"
341
+ },
342
+ {
343
+ "value": "Keyboard navigation",
344
+ "href": "#keyboard-navigation",
345
+ "depth": 4,
346
+ "numbering": [
347
+ 1,
348
+ 4,
349
+ 1,
350
+ 2
351
+ ],
352
+ "parent": "root"
353
+ },
354
+ {
355
+ "value": "Persistent ID",
356
+ "href": "#persistent-id",
357
+ "depth": 4,
358
+ "numbering": [
359
+ 1,
360
+ 4,
361
+ 1,
362
+ 3
363
+ ],
364
+ "parent": "root"
365
+ },
366
+ {
367
+ "value": "API reference",
368
+ "href": "#api-reference",
369
+ "depth": 2,
370
+ "numbering": [
371
+ 1,
372
+ 5
373
+ ],
374
+ "parent": "root"
375
+ },
376
+ {
377
+ "value": "Common patterns",
378
+ "href": "#common-patterns",
379
+ "depth": 2,
380
+ "numbering": [
381
+ 1,
382
+ 6
383
+ ],
384
+ "parent": "root"
385
+ },
386
+ {
387
+ "value": "Product grid",
388
+ "href": "#product-grid",
389
+ "depth": 3,
390
+ "numbering": [
391
+ 1,
392
+ 6,
393
+ 1
394
+ ],
395
+ "parent": "root"
396
+ },
397
+ {
398
+ "value": "Image gallery",
399
+ "href": "#image-gallery",
400
+ "depth": 3,
401
+ "numbering": [
402
+ 1,
403
+ 6,
404
+ 2
405
+ ],
406
+ "parent": "root"
407
+ },
408
+ {
409
+ "value": "Dashboard widgets",
410
+ "href": "#dashboard-widgets",
411
+ "depth": 3,
412
+ "numbering": [
413
+ 1,
414
+ 6,
415
+ 3
416
+ ],
417
+ "parent": "root"
418
+ },
419
+ {
420
+ "value": "Feature cards",
421
+ "href": "#feature-cards",
422
+ "depth": 3,
423
+ "numbering": [
424
+ 1,
425
+ 6,
426
+ 4
427
+ ],
428
+ "parent": "root"
429
+ },
430
+ {
431
+ "value": "Testing your implementation",
432
+ "href": "#testing-your-implementation",
433
+ "depth": 2,
434
+ "numbering": [
435
+ 1,
436
+ 7
437
+ ],
438
+ "parent": "root"
439
+ },
440
+ {
441
+ "value": "Basic Rendering Tests",
442
+ "href": "#basic-rendering-tests",
443
+ "depth": 3,
444
+ "numbering": [
445
+ 1,
446
+ 7,
447
+ 1
448
+ ],
449
+ "parent": "root"
450
+ },
451
+ {
452
+ "value": "Column Configuration Tests",
453
+ "href": "#column-configuration-tests",
454
+ "depth": 3,
455
+ "numbering": [
456
+ 1,
457
+ 7,
458
+ 2
459
+ ],
460
+ "parent": "root"
461
+ },
462
+ {
463
+ "value": "Gap Spacing Tests",
464
+ "href": "#gap-spacing-tests",
465
+ "depth": 3,
466
+ "numbering": [
467
+ 1,
468
+ 7,
469
+ 3
470
+ ],
471
+ "parent": "root"
472
+ },
473
+ {
474
+ "value": "Column Spanning Tests",
475
+ "href": "#column-spanning-tests",
476
+ "depth": 3,
477
+ "numbering": [
478
+ 1,
479
+ 7,
480
+ 4
481
+ ],
482
+ "parent": "root"
483
+ },
484
+ {
485
+ "value": "Accessibility Tests",
486
+ "href": "#accessibility-tests",
487
+ "depth": 3,
488
+ "numbering": [
489
+ 1,
490
+ 7,
491
+ 5
492
+ ],
493
+ "parent": "root"
494
+ },
495
+ {
496
+ "value": "Ref Forwarding Tests",
497
+ "href": "#ref-forwarding-tests",
498
+ "depth": 3,
499
+ "numbering": [
500
+ 1,
501
+ 7,
502
+ 6
503
+ ],
504
+ "parent": "root"
505
+ },
506
+ {
507
+ "value": "Resources",
508
+ "href": "#resources",
509
+ "depth": 2,
510
+ "numbering": [
511
+ 1,
512
+ 8
513
+ ],
514
+ "parent": "root"
515
+ }
516
+ ]
517
+ }
518
+ }
519
+ }