@commercetools/nimbus-mcp 0.1.0 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/README.md +63 -14
  2. package/data/docs/route-manifest.json +10998 -0
  3. package/data/docs/routes/components-accessibility-visually-hidden.json +388 -0
  4. package/data/docs/routes/components-accessibility.json +34 -0
  5. package/data/docs/routes/components-buttons-button.json +715 -0
  6. package/data/docs/routes/components-buttons-icon-button.json +852 -0
  7. package/data/docs/routes/components-buttons-icon-toggle-button.json +594 -0
  8. package/data/docs/routes/components-buttons-split-button.json +670 -0
  9. package/data/docs/routes/components-buttons-toggle-button-group.json +722 -0
  10. package/data/docs/routes/components-buttons-toggle-button.json +689 -0
  11. package/data/docs/routes/components-buttons.json +36 -0
  12. package/data/docs/routes/components-data-display-badge.json +555 -0
  13. package/data/docs/routes/components-data-display-card.json +338 -0
  14. package/data/docs/routes/components-data-display-data-table.json +855 -0
  15. package/data/docs/routes/components-data-display-draggable-list.json +596 -0
  16. package/data/docs/routes/components-data-display-table.json +472 -0
  17. package/data/docs/routes/components-data-display-tag-group.json +535 -0
  18. package/data/docs/routes/components-data-display.json +34 -0
  19. package/data/docs/routes/components-feedback-alert.json +696 -0
  20. package/data/docs/routes/components-feedback-dialog.json +682 -0
  21. package/data/docs/routes/components-feedback-drawer.json +600 -0
  22. package/data/docs/routes/components-feedback-loading-spinner.json +415 -0
  23. package/data/docs/routes/components-feedback-progress-bar.json +661 -0
  24. package/data/docs/routes/components-feedback-toast.json +1040 -0
  25. package/data/docs/routes/components-feedback-tooltip.json +510 -0
  26. package/data/docs/routes/components-feedback.json +34 -0
  27. package/data/docs/routes/components-forms-field-errors.json +557 -0
  28. package/data/docs/routes/components-forms-form-field.json +848 -0
  29. package/data/docs/routes/components-forms-group.json +427 -0
  30. package/data/docs/routes/components-forms-localized-field.json +770 -0
  31. package/data/docs/routes/components-forms.json +37 -0
  32. package/data/docs/routes/components-inputs-calendar.json +611 -0
  33. package/data/docs/routes/components-inputs-checkbox.json +774 -0
  34. package/data/docs/routes/components-inputs-combo-box.json +761 -0
  35. package/data/docs/routes/components-inputs-date-input.json +628 -0
  36. package/data/docs/routes/components-inputs-date-picker.json +709 -0
  37. package/data/docs/routes/components-inputs-date-range-picker.json +599 -0
  38. package/data/docs/routes/components-inputs-money-input.json +721 -0
  39. package/data/docs/routes/components-inputs-multiline-text-input.json +611 -0
  40. package/data/docs/routes/components-inputs-number-input.json +647 -0
  41. package/data/docs/routes/components-inputs-password-input.json +576 -0
  42. package/data/docs/routes/components-inputs-radio-input.json +583 -0
  43. package/data/docs/routes/components-inputs-range-calendar.json +607 -0
  44. package/data/docs/routes/components-inputs-rich-text-input.json +599 -0
  45. package/data/docs/routes/components-inputs-scoped-search-input.json +570 -0
  46. package/data/docs/routes/components-inputs-search-input.json +588 -0
  47. package/data/docs/routes/components-inputs-select-input.json +960 -0
  48. package/data/docs/routes/components-inputs-switch.json +720 -0
  49. package/data/docs/routes/components-inputs-text-input.json +566 -0
  50. package/data/docs/routes/components-inputs-time-input.json +775 -0
  51. package/data/docs/routes/components-inputs.json +34 -0
  52. package/data/docs/routes/components-layout-box.json +501 -0
  53. package/data/docs/routes/components-layout-defaultpage.json +748 -0
  54. package/data/docs/routes/components-layout-flex.json +587 -0
  55. package/data/docs/routes/components-layout-grid.json +393 -0
  56. package/data/docs/routes/components-layout-modalpage.json +716 -0
  57. package/data/docs/routes/components-layout-pagecontent.json +673 -0
  58. package/data/docs/routes/components-layout-scrollarea.json +428 -0
  59. package/data/docs/routes/components-layout-separator.json +461 -0
  60. package/data/docs/routes/components-layout-simple-grid.json +519 -0
  61. package/data/docs/routes/components-layout-spacer.json +573 -0
  62. package/data/docs/routes/components-layout-stack.json +481 -0
  63. package/data/docs/routes/components-layout.json +34 -0
  64. package/data/docs/routes/components-media-avatar.json +427 -0
  65. package/data/docs/routes/components-media-icon.json +663 -0
  66. package/data/docs/routes/components-media-image.json +511 -0
  67. package/data/docs/routes/components-media-inline-svg.json +586 -0
  68. package/data/docs/routes/components-media.json +34 -0
  69. package/data/docs/routes/components-navigation-accordion.json +643 -0
  70. package/data/docs/routes/components-navigation-collapsible-motion.json +628 -0
  71. package/data/docs/routes/components-navigation-link.json +554 -0
  72. package/data/docs/routes/components-navigation-menu.json +546 -0
  73. package/data/docs/routes/components-navigation-pagination.json +502 -0
  74. package/data/docs/routes/components-navigation-steps.json +629 -0
  75. package/data/docs/routes/components-navigation-tabnav.json +546 -0
  76. package/data/docs/routes/components-navigation-tabs.json +635 -0
  77. package/data/docs/routes/components-navigation-toolbar.json +549 -0
  78. package/data/docs/routes/components-navigation.json +34 -0
  79. package/data/docs/routes/components-typography-code.json +39 -0
  80. package/data/docs/routes/components-typography-heading.json +402 -0
  81. package/data/docs/routes/components-typography-kbd.json +399 -0
  82. package/data/docs/routes/components-typography-list.json +593 -0
  83. package/data/docs/routes/components-typography-text.json +444 -0
  84. package/data/docs/routes/components-typography.json +34 -0
  85. package/data/docs/routes/components-utilities-nimbus-i18n-provider.json +295 -0
  86. package/data/docs/routes/components-utilities-nimbus-provider.json +663 -0
  87. package/data/docs/routes/components-utilities.json +34 -0
  88. package/data/docs/routes/components.json +33 -0
  89. package/data/docs/routes/home-contribute-adrs-adr0001-consumer-component-apis.json +314 -0
  90. package/data/docs/routes/home-contribute-adrs-adr0002-compound-component-extraction.json +160 -0
  91. package/data/docs/routes/home-contribute-adrs-adr0003-component-lifecycle-states.json +460 -0
  92. package/data/docs/routes/home-contribute-adrs.json +205 -0
  93. package/data/docs/routes/home-contribute-development-setup.json +213 -0
  94. package/data/docs/routes/home-contribute-stats.json +36 -0
  95. package/data/docs/routes/home-contribute.json +36 -0
  96. package/data/docs/routes/home-design-tokens-aspect-ratios.json +36 -0
  97. package/data/docs/routes/home-design-tokens-borders.json +35 -0
  98. package/data/docs/routes/home-design-tokens-colors.json +157 -0
  99. package/data/docs/routes/home-design-tokens-other-animations.json +119 -0
  100. package/data/docs/routes/home-design-tokens-other-blurs.json +36 -0
  101. package/data/docs/routes/home-design-tokens-other-breakpoints.json +61 -0
  102. package/data/docs/routes/home-design-tokens-other-cursors.json +36 -0
  103. package/data/docs/routes/home-design-tokens-other-z-indices.json +39 -0
  104. package/data/docs/routes/home-design-tokens-other.json +35 -0
  105. package/data/docs/routes/home-design-tokens-radii.json +59 -0
  106. package/data/docs/routes/home-design-tokens-shadows.json +57 -0
  107. package/data/docs/routes/home-design-tokens-sizes.json +137 -0
  108. package/data/docs/routes/home-design-tokens-spacing.json +36 -0
  109. package/data/docs/routes/home-design-tokens-typography.json +184 -0
  110. package/data/docs/routes/home-design-tokens.json +34 -0
  111. package/data/docs/routes/home-getting-started-core-concepts.json +301 -0
  112. package/data/docs/routes/home-getting-started-installation.json +621 -0
  113. package/data/docs/routes/home-getting-started-mcp-server-overview.json +139 -0
  114. package/data/docs/routes/home-getting-started-mcp-server-setup.json +316 -0
  115. package/data/docs/routes/home-getting-started-release-process.json +294 -0
  116. package/data/docs/routes/home-getting-started-testing-setup.json +296 -0
  117. package/data/docs/routes/home-playground-markdown.json +638 -0
  118. package/data/docs/routes/home-playground-toc.json +169 -0
  119. package/data/docs/routes/home-playground.json +34 -0
  120. package/data/docs/routes/home-style-props-background.json +236 -0
  121. package/data/docs/routes/home-style-props-border.json +310 -0
  122. package/data/docs/routes/home-style-props-display.json +120 -0
  123. package/data/docs/routes/home-style-props-effects.json +116 -0
  124. package/data/docs/routes/home-style-props-filters.json +396 -0
  125. package/data/docs/routes/home-style-props-flex-and-grid.json +496 -0
  126. package/data/docs/routes/home-style-props-interactivity.json +356 -0
  127. package/data/docs/routes/home-style-props-layout.json +422 -0
  128. package/data/docs/routes/home-style-props-list.json +116 -0
  129. package/data/docs/routes/home-style-props-sizing.json +244 -0
  130. package/data/docs/routes/home-style-props-spacing.json +228 -0
  131. package/data/docs/routes/home-style-props-svg.json +96 -0
  132. package/data/docs/routes/home-style-props-tables.json +116 -0
  133. package/data/docs/routes/home-style-props-transforms.json +216 -0
  134. package/data/docs/routes/home-style-props-transitions.json +216 -0
  135. package/data/docs/routes/home-style-props-typography.json +536 -0
  136. package/data/docs/routes/home-style-props.json +33 -0
  137. package/data/docs/routes/home.json +32 -0
  138. package/data/docs/routes/hooks-usecopytoclipboard.json +76 -0
  139. package/data/docs/routes/hooks-usehotkeys.json +117 -0
  140. package/data/docs/routes/hooks.json +33 -0
  141. package/data/docs/routes/icons.json +32 -0
  142. package/data/docs/routes/patterns-fields-date-range-picker-field.json +393 -0
  143. package/data/docs/routes/patterns-fields-money-input-field.json +415 -0
  144. package/data/docs/routes/patterns-fields-multiline-text-input-field.json +404 -0
  145. package/data/docs/routes/patterns-fields-number-input-field.json +470 -0
  146. package/data/docs/routes/patterns-fields-password-input-field.json +319 -0
  147. package/data/docs/routes/patterns-fields-search-input-field.json +382 -0
  148. package/data/docs/routes/patterns-fields-text-input-field.json +404 -0
  149. package/data/docs/routes/patterns-fields.json +78 -0
  150. package/data/docs/routes/patterns.json +34 -0
  151. package/data/docs/search-index.json +1 -0
  152. package/data/docs/types/Accordion.json +12 -0
  153. package/data/docs/types/AccordionContent.json +286 -0
  154. package/data/docs/types/AccordionHeader.json +891 -0
  155. package/data/docs/types/AccordionHeaderRightContent.json +27 -0
  156. package/data/docs/types/AccordionItem.json +242 -0
  157. package/data/docs/types/AccordionRoot.json +162 -0
  158. package/data/docs/types/Alert.json +12 -0
  159. package/data/docs/types/AlertActions.json +11 -0
  160. package/data/docs/types/AlertDescription.json +118 -0
  161. package/data/docs/types/AlertDismissButton.json +937 -0
  162. package/data/docs/types/AlertRoot.json +42 -0
  163. package/data/docs/types/AlertTitle.json +118 -0
  164. package/data/docs/types/Avatar.json +125 -0
  165. package/data/docs/types/Badge.json +64 -0
  166. package/data/docs/types/Body.json +67 -0
  167. package/data/docs/types/Box.json +85 -0
  168. package/data/docs/types/Button.json +1015 -0
  169. package/data/docs/types/Calendar.json +565 -0
  170. package/data/docs/types/Caption.json +67 -0
  171. package/data/docs/types/Card.json +12 -0
  172. package/data/docs/types/CardContent.json +27 -0
  173. package/data/docs/types/CardHeader.json +27 -0
  174. package/data/docs/types/CardRoot.json +106 -0
  175. package/data/docs/types/Cell.json +227 -0
  176. package/data/docs/types/Checkbox.json +897 -0
  177. package/data/docs/types/Code.json +112 -0
  178. package/data/docs/types/CollapsibleMotionContent.json +35 -0
  179. package/data/docs/types/CollapsibleMotionRoot.json +99 -0
  180. package/data/docs/types/CollapsibleMotionTrigger.json +71 -0
  181. package/data/docs/types/Column.json +101 -0
  182. package/data/docs/types/ColumnGroup.json +101 -0
  183. package/data/docs/types/ColumnHeader.json +193 -0
  184. package/data/docs/types/ComboBoxListBox.json +751 -0
  185. package/data/docs/types/ComboBoxOption.json +672 -0
  186. package/data/docs/types/ComboBoxPopover.json +786 -0
  187. package/data/docs/types/ComboBoxRoot.json +747 -0
  188. package/data/docs/types/ComboBoxSection.json +277 -0
  189. package/data/docs/types/ComboBoxTrigger.json +70 -0
  190. package/data/docs/types/Content.json +33 -0
  191. package/data/docs/types/DataTable.json +596 -0
  192. package/data/docs/types/DataTableBody.json +223 -0
  193. package/data/docs/types/DataTableFooter.json +27 -0
  194. package/data/docs/types/DataTableHeader.json +269 -0
  195. package/data/docs/types/DataTableManager.json +11 -0
  196. package/data/docs/types/DataTableRoot.json +590 -0
  197. package/data/docs/types/DataTableTable.json +271 -0
  198. package/data/docs/types/DateInput.json +792 -0
  199. package/data/docs/types/DatePicker.json +700 -0
  200. package/data/docs/types/DateRangePicker.json +936 -0
  201. package/data/docs/types/DateRangePickerField.json +1047 -0
  202. package/data/docs/types/DefaultPage.json +12 -0
  203. package/data/docs/types/DefaultPageActions.json +27 -0
  204. package/data/docs/types/DefaultPageBackLink.json +213 -0
  205. package/data/docs/types/DefaultPageContent.json +27 -0
  206. package/data/docs/types/DefaultPageFooter.json +27 -0
  207. package/data/docs/types/DefaultPageHeader.json +27 -0
  208. package/data/docs/types/DefaultPageRoot.json +106 -0
  209. package/data/docs/types/DefaultPageSubtitle.json +27 -0
  210. package/data/docs/types/DefaultPageTabNav.json +28 -0
  211. package/data/docs/types/DefaultPageTitle.json +27 -0
  212. package/data/docs/types/DialogBody.json +27 -0
  213. package/data/docs/types/DialogCloseTrigger.json +939 -0
  214. package/data/docs/types/DialogContent.json +27 -0
  215. package/data/docs/types/DialogFooter.json +27 -0
  216. package/data/docs/types/DialogHeader.json +27 -0
  217. package/data/docs/types/DialogRoot.json +138 -0
  218. package/data/docs/types/DialogTitle.json +27 -0
  219. package/data/docs/types/DialogTrigger.json +80 -0
  220. package/data/docs/types/DraggableList.json +12 -0
  221. package/data/docs/types/DraggableListField.json +894 -0
  222. package/data/docs/types/DraggableListItem.json +574 -0
  223. package/data/docs/types/DraggableListRoot.json +745 -0
  224. package/data/docs/types/Drawer.json +12 -0
  225. package/data/docs/types/DrawerBody.json +27 -0
  226. package/data/docs/types/DrawerCloseTrigger.json +939 -0
  227. package/data/docs/types/DrawerContent.json +27 -0
  228. package/data/docs/types/DrawerFooter.json +27 -0
  229. package/data/docs/types/DrawerHeader.json +27 -0
  230. package/data/docs/types/DrawerRoot.json +142 -0
  231. package/data/docs/types/DrawerTitle.json +27 -0
  232. package/data/docs/types/DrawerTrigger.json +80 -0
  233. package/data/docs/types/FieldErrors.getBuiltInMessage.json +11 -0
  234. package/data/docs/types/FieldErrors.getCustomMessage.json +9 -0
  235. package/data/docs/types/FieldErrors.json +109 -0
  236. package/data/docs/types/Flex.json +238 -0
  237. package/data/docs/types/Footer.json +67 -0
  238. package/data/docs/types/FormFieldDescription.json +11 -0
  239. package/data/docs/types/FormFieldError.json +11 -0
  240. package/data/docs/types/FormFieldInfoBox.json +27 -0
  241. package/data/docs/types/FormFieldInput.json +11 -0
  242. package/data/docs/types/FormFieldLabel.json +11 -0
  243. package/data/docs/types/FormFieldRoot.json +148 -0
  244. package/data/docs/types/Grid.json +253 -0
  245. package/data/docs/types/GridProps.json +11 -0
  246. package/data/docs/types/Group.json +143 -0
  247. package/data/docs/types/Header.json +67 -0
  248. package/data/docs/types/Heading.json +109 -0
  249. package/data/docs/types/Icon.json +112 -0
  250. package/data/docs/types/IconButton.json +1019 -0
  251. package/data/docs/types/IconToggleButton.json +787 -0
  252. package/data/docs/types/Image.json +373 -0
  253. package/data/docs/types/Indicator.json +67 -0
  254. package/data/docs/types/InlineSvg.json +98 -0
  255. package/data/docs/types/Item.json +67 -0
  256. package/data/docs/types/Kbd.json +118 -0
  257. package/data/docs/types/Link.json +380 -0
  258. package/data/docs/types/List.json +12 -0
  259. package/data/docs/types/ListIndicator.json +70 -0
  260. package/data/docs/types/ListItem.json +70 -0
  261. package/data/docs/types/ListRoot.json +124 -0
  262. package/data/docs/types/LoadingSpinner.json +87 -0
  263. package/data/docs/types/LocalizedField.json +460 -0
  264. package/data/docs/types/LocalizedStringFormatter.json +9 -0
  265. package/data/docs/types/MakeElementFocusable.json +196 -0
  266. package/data/docs/types/MenuContent.json +111 -0
  267. package/data/docs/types/MenuItem.json +671 -0
  268. package/data/docs/types/MenuRoot.json +670 -0
  269. package/data/docs/types/MenuSection.json +364 -0
  270. package/data/docs/types/MenuSubmenu.json +111 -0
  271. package/data/docs/types/MenuSubmenuTrigger.json +67 -0
  272. package/data/docs/types/MenuTrigger.json +906 -0
  273. package/data/docs/types/ModalPage.json +12 -0
  274. package/data/docs/types/ModalPageActions.json +27 -0
  275. package/data/docs/types/ModalPageContent.json +27 -0
  276. package/data/docs/types/ModalPageFooter.json +27 -0
  277. package/data/docs/types/ModalPageHeader.json +27 -0
  278. package/data/docs/types/ModalPageRoot.json +87 -0
  279. package/data/docs/types/ModalPageSubtitle.json +27 -0
  280. package/data/docs/types/ModalPageTabNav.json +28 -0
  281. package/data/docs/types/ModalPageTitle.json +27 -0
  282. package/data/docs/types/ModalPageTopBar.json +57 -0
  283. package/data/docs/types/MoneyInput.isEmpty.json +40 -0
  284. package/data/docs/types/MoneyInput.json +282 -0
  285. package/data/docs/types/MoneyInputField.json +379 -0
  286. package/data/docs/types/MoneyInputFieldProps.json +9 -0
  287. package/data/docs/types/MultilineTextInput.json +1194 -0
  288. package/data/docs/types/MultilineTextInputField.json +1269 -0
  289. package/data/docs/types/MultilineTextInputFieldProps.json +9 -0
  290. package/data/docs/types/NimbusI18nProvider.json +42 -0
  291. package/data/docs/types/NimbusI18nProviderProps.json +9 -0
  292. package/data/docs/types/NimbusProvider.json +270 -0
  293. package/data/docs/types/NumberInput.json +952 -0
  294. package/data/docs/types/NumberInputField.json +1004 -0
  295. package/data/docs/types/NumberInputFieldProps.json +9 -0
  296. package/data/docs/types/PageContent.json +11 -0
  297. package/data/docs/types/PageContentColumn.json +99 -0
  298. package/data/docs/types/PageContentRoot.json +114 -0
  299. package/data/docs/types/Pagination.json +159 -0
  300. package/data/docs/types/PasswordInput.json +1120 -0
  301. package/data/docs/types/PasswordInputField.json +1216 -0
  302. package/data/docs/types/PasswordInputFieldProps.json +9 -0
  303. package/data/docs/types/ProgressBar.json +280 -0
  304. package/data/docs/types/RadioInputOption.json +550 -0
  305. package/data/docs/types/RadioInputRoot.json +514 -0
  306. package/data/docs/types/RangeCalendar.json +618 -0
  307. package/data/docs/types/RichTextInput.json +134 -0
  308. package/data/docs/types/Root.json +122 -0
  309. package/data/docs/types/Row.json +67 -0
  310. package/data/docs/types/ScopedSearchInput.isEmpty.json +40 -0
  311. package/data/docs/types/ScopedSearchInput.json +253 -0
  312. package/data/docs/types/ScrollArea.json +179 -0
  313. package/data/docs/types/ScrollAreaElementIds.json +9 -0
  314. package/data/docs/types/ScrollAreaProps.json +9 -0
  315. package/data/docs/types/SearchInput.json +1165 -0
  316. package/data/docs/types/SearchInputField.json +1240 -0
  317. package/data/docs/types/Select.json +12 -0
  318. package/data/docs/types/SelectOption.json +572 -0
  319. package/data/docs/types/SelectOptionGroup.json +215 -0
  320. package/data/docs/types/SelectOptions.json +693 -0
  321. package/data/docs/types/SelectRoot.json +926 -0
  322. package/data/docs/types/Separator.json +65 -0
  323. package/data/docs/types/SimpleGrid.json +291 -0
  324. package/data/docs/types/Spacer.json +27 -0
  325. package/data/docs/types/SpacerProps.json +9 -0
  326. package/data/docs/types/SplitButton.json +203 -0
  327. package/data/docs/types/Stack.json +144 -0
  328. package/data/docs/types/Steps.json +12 -0
  329. package/data/docs/types/StepsChangeDetails.json +9 -0
  330. package/data/docs/types/StepsCompletedContent.json +28 -0
  331. package/data/docs/types/StepsCompletedContentProps.json +9 -0
  332. package/data/docs/types/StepsContent.json +43 -0
  333. package/data/docs/types/StepsContentProps.json +9 -0
  334. package/data/docs/types/StepsDescription.json +28 -0
  335. package/data/docs/types/StepsDescriptionProps.json +9 -0
  336. package/data/docs/types/StepsIndicator.json +28 -0
  337. package/data/docs/types/StepsIndicatorProps.json +9 -0
  338. package/data/docs/types/StepsItem.json +43 -0
  339. package/data/docs/types/StepsItemProps.json +9 -0
  340. package/data/docs/types/StepsList.json +28 -0
  341. package/data/docs/types/StepsListProps.json +9 -0
  342. package/data/docs/types/StepsNextTrigger.json +62 -0
  343. package/data/docs/types/StepsNextTriggerProps.json +9 -0
  344. package/data/docs/types/StepsNumber.json +28 -0
  345. package/data/docs/types/StepsNumberProps.json +9 -0
  346. package/data/docs/types/StepsPrevTrigger.json +62 -0
  347. package/data/docs/types/StepsPrevTriggerProps.json +9 -0
  348. package/data/docs/types/StepsRoot.json +183 -0
  349. package/data/docs/types/StepsRootProps.json +11 -0
  350. package/data/docs/types/StepsSeparator.json +28 -0
  351. package/data/docs/types/StepsSeparatorProps.json +9 -0
  352. package/data/docs/types/StepsStatus.json +57 -0
  353. package/data/docs/types/StepsStatusProps.json +9 -0
  354. package/data/docs/types/StepsTitle.json +28 -0
  355. package/data/docs/types/StepsTitleProps.json +9 -0
  356. package/data/docs/types/StepsTrigger.json +47 -0
  357. package/data/docs/types/StepsTriggerProps.json +9 -0
  358. package/data/docs/types/Switch.json +371 -0
  359. package/data/docs/types/TabListProps.json +9 -0
  360. package/data/docs/types/TabNav.json +12 -0
  361. package/data/docs/types/TabNavItem.json +300 -0
  362. package/data/docs/types/TabNavItemProps.json +9 -0
  363. package/data/docs/types/TabNavProps.json +9 -0
  364. package/data/docs/types/TabNavRoot.json +80 -0
  365. package/data/docs/types/TabPanelProps.json +9 -0
  366. package/data/docs/types/TabPanelsProps.json +9 -0
  367. package/data/docs/types/TabProps.json +9 -0
  368. package/data/docs/types/Table.json +9 -0
  369. package/data/docs/types/TableBody.json +67 -0
  370. package/data/docs/types/TableBodyProps.json +9 -0
  371. package/data/docs/types/TableCaption.json +67 -0
  372. package/data/docs/types/TableCaptionProps.json +9 -0
  373. package/data/docs/types/TableCell.json +227 -0
  374. package/data/docs/types/TableCellProps.json +9 -0
  375. package/data/docs/types/TableColumn.json +101 -0
  376. package/data/docs/types/TableColumnGroup.json +101 -0
  377. package/data/docs/types/TableColumnGroupProps.json +9 -0
  378. package/data/docs/types/TableColumnHeader.json +193 -0
  379. package/data/docs/types/TableColumnHeaderProps.json +9 -0
  380. package/data/docs/types/TableColumnProps.json +9 -0
  381. package/data/docs/types/TableFooter.json +67 -0
  382. package/data/docs/types/TableFooterProps.json +9 -0
  383. package/data/docs/types/TableHeader.json +67 -0
  384. package/data/docs/types/TableHeaderProps.json +9 -0
  385. package/data/docs/types/TableRoot.json +365 -0
  386. package/data/docs/types/TableRootProps.json +12 -0
  387. package/data/docs/types/TableRow.json +67 -0
  388. package/data/docs/types/TableRowProps.json +9 -0
  389. package/data/docs/types/TableScrollArea.json +82 -0
  390. package/data/docs/types/TableScrollAreaProps.json +9 -0
  391. package/data/docs/types/Tabs.json +12 -0
  392. package/data/docs/types/TabsList.json +110 -0
  393. package/data/docs/types/TabsPanel.json +112 -0
  394. package/data/docs/types/TabsPanels.json +108 -0
  395. package/data/docs/types/TabsRoot.json +211 -0
  396. package/data/docs/types/TabsTab.json +174 -0
  397. package/data/docs/types/TagGroup.json +12 -0
  398. package/data/docs/types/TagGroupRoot.json +306 -0
  399. package/data/docs/types/TagGroupTag.json +595 -0
  400. package/data/docs/types/TagGroupTagList.json +166 -0
  401. package/data/docs/types/Text.json +119 -0
  402. package/data/docs/types/TextInput.json +1156 -0
  403. package/data/docs/types/TextInputField.json +1263 -0
  404. package/data/docs/types/TimeInput.json +752 -0
  405. package/data/docs/types/ToastAction.json +9 -0
  406. package/data/docs/types/ToastManagerApi.json +9 -0
  407. package/data/docs/types/ToastOptions.json +9 -0
  408. package/data/docs/types/ToastOutlet.json +12 -0
  409. package/data/docs/types/ToastPlacement.json +9 -0
  410. package/data/docs/types/ToastPromiseOptions.json +9 -0
  411. package/data/docs/types/ToastType.json +9 -0
  412. package/data/docs/types/ToastVariant.json +9 -0
  413. package/data/docs/types/ToggleButton.json +789 -0
  414. package/data/docs/types/ToggleButtonGroup.json +9 -0
  415. package/data/docs/types/ToggleButtonGroupButton.json +331 -0
  416. package/data/docs/types/ToggleButtonGroupRoot.json +269 -0
  417. package/data/docs/types/Toolbar.json +176 -0
  418. package/data/docs/types/Tooltip.json +12 -0
  419. package/data/docs/types/TooltipContent.json +372 -0
  420. package/data/docs/types/TooltipRoot.json +179 -0
  421. package/data/docs/types/Trigger.json +69 -0
  422. package/data/docs/types/VisuallyHidden.json +93 -0
  423. package/data/docs/types/__object.json +12 -0
  424. package/data/docs/types/filters.json +11 -0
  425. package/data/docs/types/manifest.json +280 -0
  426. package/data/docs/types/toast.json +234 -0
  427. package/data/docs/types/useColorMode.json +13 -0
  428. package/data/docs/types/useColorModeValue.json +13 -0
  429. package/data/docs/types/useColorScheme.json +12 -0
  430. package/data/docs/types/useLocalizedStringFormatter.json +14 -0
  431. package/data/icons.json +21940 -0
  432. package/data/tokens.json +40061 -0
  433. package/dist/index.js +2516 -17
  434. package/package.json +25 -6
  435. package/dist/data-loader.d.ts +0 -102
  436. package/dist/data-loader.js +0 -104
  437. package/dist/index.d.ts +0 -13
  438. package/dist/server.d.ts +0 -9
  439. package/dist/server.js +0 -22
  440. package/dist/server.spec.d.ts +0 -1
  441. package/dist/server.spec.js +0 -69
  442. package/dist/tools/list-components.d.ts +0 -9
  443. package/dist/tools/list-components.js +0 -42
  444. package/dist/types.d.ts +0 -28
  445. package/dist/types.js +0 -4
  446. package/src/data-loader.ts +0 -226
  447. package/src/index.ts +0 -29
  448. package/src/server.spec.ts +0 -86
  449. package/src/server.ts +0 -28
  450. package/src/tools/list-components.ts +0 -49
  451. package/src/types.ts +0 -31
  452. package/tsconfig.json +0 -14
  453. package/vitest.config.ts +0 -9
@@ -0,0 +1,774 @@
1
+ {
2
+ "meta": {
3
+ "id": "Components-Checkbox",
4
+ "title": "Checkbox",
5
+ "exportName": "Checkbox",
6
+ "description": "Checkbox allows for toggling of features, allowing users to select more than one option where needed. Checkboxes support selected, unselected, indeterminate, and disabled states.",
7
+ "lifecycleState": "Stable",
8
+ "order": 999,
9
+ "repoPath": "packages/nimbus/src/components/checkbox/checkbox.mdx",
10
+ "menu": [
11
+ "Components",
12
+ "Inputs",
13
+ "Checkbox"
14
+ ],
15
+ "route": "components/inputs/checkbox",
16
+ "tags": [
17
+ "component",
18
+ "checkbox",
19
+ "input",
20
+ "toggle",
21
+ "boolean"
22
+ ],
23
+ "toc": [
24
+ {
25
+ "value": "Overview",
26
+ "href": "#overview",
27
+ "depth": 2,
28
+ "numbering": [
29
+ 1,
30
+ 1
31
+ ],
32
+ "parent": "root"
33
+ },
34
+ {
35
+ "value": "Resources",
36
+ "href": "#resources",
37
+ "depth": 3,
38
+ "numbering": [
39
+ 1,
40
+ 1,
41
+ 1
42
+ ],
43
+ "parent": "root"
44
+ },
45
+ {
46
+ "value": "Variables",
47
+ "href": "#variables",
48
+ "depth": 2,
49
+ "numbering": [
50
+ 1,
51
+ 2
52
+ ],
53
+ "parent": "root"
54
+ },
55
+ {
56
+ "value": "Selection",
57
+ "href": "#selection",
58
+ "depth": 3,
59
+ "numbering": [
60
+ 1,
61
+ 2,
62
+ 1
63
+ ],
64
+ "parent": "root"
65
+ },
66
+ {
67
+ "value": "Unchecked",
68
+ "href": "#unchecked",
69
+ "depth": 4,
70
+ "numbering": [
71
+ 1,
72
+ 2,
73
+ 1,
74
+ 1
75
+ ],
76
+ "parent": "root"
77
+ },
78
+ {
79
+ "value": "Select",
80
+ "href": "#select",
81
+ "depth": 4,
82
+ "numbering": [
83
+ 1,
84
+ 2,
85
+ 1,
86
+ 2
87
+ ],
88
+ "parent": "root"
89
+ },
90
+ {
91
+ "value": "Indeterminate",
92
+ "href": "#indeterminate",
93
+ "depth": 4,
94
+ "numbering": [
95
+ 1,
96
+ 2,
97
+ 1,
98
+ 3
99
+ ],
100
+ "parent": "root"
101
+ },
102
+ {
103
+ "value": "Validation",
104
+ "href": "#validation",
105
+ "depth": 3,
106
+ "numbering": [
107
+ 1,
108
+ 2,
109
+ 2
110
+ ],
111
+ "parent": "root"
112
+ },
113
+ {
114
+ "value": "Default",
115
+ "href": "#default",
116
+ "depth": 4,
117
+ "numbering": [
118
+ 1,
119
+ 2,
120
+ 2,
121
+ 1
122
+ ],
123
+ "parent": "root"
124
+ },
125
+ {
126
+ "value": "Invalid",
127
+ "href": "#invalid",
128
+ "depth": 4,
129
+ "numbering": [
130
+ 1,
131
+ 2,
132
+ 2,
133
+ 2
134
+ ],
135
+ "parent": "root"
136
+ },
137
+ {
138
+ "value": "Disabled",
139
+ "href": "#disabled",
140
+ "depth": 4,
141
+ "numbering": [
142
+ 1,
143
+ 2,
144
+ 2,
145
+ 3
146
+ ],
147
+ "parent": "root"
148
+ },
149
+ {
150
+ "value": "Vertical and horizontal lists",
151
+ "href": "#vertical-and-horizontal-lists",
152
+ "depth": 3,
153
+ "numbering": [
154
+ 1,
155
+ 2,
156
+ 3
157
+ ],
158
+ "parent": "root"
159
+ },
160
+ {
161
+ "value": "Vertical",
162
+ "href": "#vertical",
163
+ "depth": 4,
164
+ "numbering": [
165
+ 1,
166
+ 2,
167
+ 3,
168
+ 1
169
+ ],
170
+ "parent": "root"
171
+ },
172
+ {
173
+ "value": "Horizontal",
174
+ "href": "#horizontal",
175
+ "depth": 4,
176
+ "numbering": [
177
+ 1,
178
+ 2,
179
+ 3,
180
+ 2
181
+ ],
182
+ "parent": "root"
183
+ }
184
+ ],
185
+ "figmaLink": "https://www.figma.com/design/AvtPX6g7OGGCRvNlatGOIY/NIMBUS-design-system?node-id=346-2571&t=WljaKGkdJ1dZn3oM-4",
186
+ "layout": "app-frame",
187
+ "tabs": [
188
+ {
189
+ "key": "overview",
190
+ "title": "Overview",
191
+ "order": 0
192
+ },
193
+ {
194
+ "key": "guidelines",
195
+ "title": "Guidelines",
196
+ "order": 2
197
+ },
198
+ {
199
+ "key": "dev",
200
+ "title": "Implementation",
201
+ "order": 3
202
+ },
203
+ {
204
+ "key": "a11y",
205
+ "title": "Accessibility",
206
+ "order": 4
207
+ }
208
+ ]
209
+ },
210
+ "mdx": "\n## Overview\n\nCheckboxes are commonly used in forms, settings panels, and other interactive\ncontexts where users can choose one or more options from a set. See below\nvariables for further choices.\n\n### Resources\n\nDeep dive into implementation details and access the Nimbus design library.\n\n[Figma library](https://www.figma.com/design/AvtPX6g7OGGCRvNlatGOIY/NIMBUS-design-system?node-id=346-2571&t=WljaKGkdJ1dZn3oM-4)\n\n## Variables\n\nGet familiar with the features.\n\n### Selection\n\n#### Unchecked\n\nRepresents the default or unchosen state.\n\n```jsx live\nconst App = () => <Checkbox>Label</Checkbox>\n```\n\n#### Select\n\nVisually confirms a user’s choice and is essential for form submissions and\ninteractive elements.\n\n```jsx live\nconst App = () => <Checkbox isSelected>Label</Checkbox>\n```\n\n#### Indeterminate\n\nIf some, but not all, of the sub-options are selected, it will visually indicate\nthat the selection is partial or mixed.\n\n```jsx live\nconst App = () => <Checkbox isIndeterminate>Label</Checkbox>\n```\n\n### Validation\n\n#### Default\n\nThis is the standard initial state of the checkbox that doesn’t have a reason to\nbe invalid or disabled for the user.\n\n```jsx live\nconst App = () => <Checkbox isSelected ml=\"600\">Default tone</Checkbox>\n```\n\n#### Invalid\n\nAn invalid validation state for a checkbox indicates that the user's input (or\nlack thereof) for that checkbox is not acceptable according to the application's\nrules.\n\n```jsx live\nconst App = () => <Checkbox isInvalid>Invalid</Checkbox>\n```\n\n#### Disabled\n\nThis is the styling of disabled elements. The icon is dimmed but the label\nremains legible.\n\n```jsx live\nconst App = () => <Checkbox isDisabled>Disabled</Checkbox>\n```\n\n### Vertical and horizontal lists\n\n#### Vertical\n\nVertical lists are the most common and generally recommended approach for\ncheckbox lists unless there's a specific reason to use a different layout.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"column\" gap=\"400\">\n <Checkbox>Option 1</Checkbox>\n <Checkbox>Option 2</Checkbox>\n </Stack>\n)\n```\n\n#### Horizontal\n\nThese lists are best when they are concise, visually distinct, and don't require\nmuch scanning. Used often in filters.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"horizontal\" gap=\"600\">\n <Checkbox>Option 1</Checkbox>\n <Checkbox>Option 2</Checkbox>\n </Stack>\n)\n```\n",
211
+ "views": {
212
+ "overview": {
213
+ "mdx": "\n## Overview\n\nCheckboxes are commonly used in forms, settings panels, and other interactive\ncontexts where users can choose one or more options from a set. See below\nvariables for further choices.\n\n### Resources\n\nDeep dive into implementation details and access the Nimbus design library.\n\n[Figma library](https://www.figma.com/design/AvtPX6g7OGGCRvNlatGOIY/NIMBUS-design-system?node-id=346-2571&t=WljaKGkdJ1dZn3oM-4)\n\n## Variables\n\nGet familiar with the features.\n\n### Selection\n\n#### Unchecked\n\nRepresents the default or unchosen state.\n\n```jsx live\nconst App = () => <Checkbox>Label</Checkbox>\n```\n\n#### Select\n\nVisually confirms a user’s choice and is essential for form submissions and\ninteractive elements.\n\n```jsx live\nconst App = () => <Checkbox isSelected>Label</Checkbox>\n```\n\n#### Indeterminate\n\nIf some, but not all, of the sub-options are selected, it will visually indicate\nthat the selection is partial or mixed.\n\n```jsx live\nconst App = () => <Checkbox isIndeterminate>Label</Checkbox>\n```\n\n### Validation\n\n#### Default\n\nThis is the standard initial state of the checkbox that doesn’t have a reason to\nbe invalid or disabled for the user.\n\n```jsx live\nconst App = () => <Checkbox isSelected ml=\"600\">Default tone</Checkbox>\n```\n\n#### Invalid\n\nAn invalid validation state for a checkbox indicates that the user's input (or\nlack thereof) for that checkbox is not acceptable according to the application's\nrules.\n\n```jsx live\nconst App = () => <Checkbox isInvalid>Invalid</Checkbox>\n```\n\n#### Disabled\n\nThis is the styling of disabled elements. The icon is dimmed but the label\nremains legible.\n\n```jsx live\nconst App = () => <Checkbox isDisabled>Disabled</Checkbox>\n```\n\n### Vertical and horizontal lists\n\n#### Vertical\n\nVertical lists are the most common and generally recommended approach for\ncheckbox lists unless there's a specific reason to use a different layout.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"column\" gap=\"400\">\n <Checkbox>Option 1</Checkbox>\n <Checkbox>Option 2</Checkbox>\n </Stack>\n)\n```\n\n#### Horizontal\n\nThese lists are best when they are concise, visually distinct, and don't require\nmuch scanning. Used often in filters.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"horizontal\" gap=\"600\">\n <Checkbox>Option 1</Checkbox>\n <Checkbox>Option 2</Checkbox>\n </Stack>\n)\n```\n",
214
+ "toc": [
215
+ {
216
+ "value": "Overview",
217
+ "href": "#overview",
218
+ "depth": 2,
219
+ "numbering": [
220
+ 1,
221
+ 1
222
+ ],
223
+ "parent": "root"
224
+ },
225
+ {
226
+ "value": "Resources",
227
+ "href": "#resources",
228
+ "depth": 3,
229
+ "numbering": [
230
+ 1,
231
+ 1,
232
+ 1
233
+ ],
234
+ "parent": "root"
235
+ },
236
+ {
237
+ "value": "Variables",
238
+ "href": "#variables",
239
+ "depth": 2,
240
+ "numbering": [
241
+ 1,
242
+ 2
243
+ ],
244
+ "parent": "root"
245
+ },
246
+ {
247
+ "value": "Selection",
248
+ "href": "#selection",
249
+ "depth": 3,
250
+ "numbering": [
251
+ 1,
252
+ 2,
253
+ 1
254
+ ],
255
+ "parent": "root"
256
+ },
257
+ {
258
+ "value": "Unchecked",
259
+ "href": "#unchecked",
260
+ "depth": 4,
261
+ "numbering": [
262
+ 1,
263
+ 2,
264
+ 1,
265
+ 1
266
+ ],
267
+ "parent": "root"
268
+ },
269
+ {
270
+ "value": "Select",
271
+ "href": "#select",
272
+ "depth": 4,
273
+ "numbering": [
274
+ 1,
275
+ 2,
276
+ 1,
277
+ 2
278
+ ],
279
+ "parent": "root"
280
+ },
281
+ {
282
+ "value": "Indeterminate",
283
+ "href": "#indeterminate",
284
+ "depth": 4,
285
+ "numbering": [
286
+ 1,
287
+ 2,
288
+ 1,
289
+ 3
290
+ ],
291
+ "parent": "root"
292
+ },
293
+ {
294
+ "value": "Validation",
295
+ "href": "#validation",
296
+ "depth": 3,
297
+ "numbering": [
298
+ 1,
299
+ 2,
300
+ 2
301
+ ],
302
+ "parent": "root"
303
+ },
304
+ {
305
+ "value": "Default",
306
+ "href": "#default",
307
+ "depth": 4,
308
+ "numbering": [
309
+ 1,
310
+ 2,
311
+ 2,
312
+ 1
313
+ ],
314
+ "parent": "root"
315
+ },
316
+ {
317
+ "value": "Invalid",
318
+ "href": "#invalid",
319
+ "depth": 4,
320
+ "numbering": [
321
+ 1,
322
+ 2,
323
+ 2,
324
+ 2
325
+ ],
326
+ "parent": "root"
327
+ },
328
+ {
329
+ "value": "Disabled",
330
+ "href": "#disabled",
331
+ "depth": 4,
332
+ "numbering": [
333
+ 1,
334
+ 2,
335
+ 2,
336
+ 3
337
+ ],
338
+ "parent": "root"
339
+ },
340
+ {
341
+ "value": "Vertical and horizontal lists",
342
+ "href": "#vertical-and-horizontal-lists",
343
+ "depth": 3,
344
+ "numbering": [
345
+ 1,
346
+ 2,
347
+ 3
348
+ ],
349
+ "parent": "root"
350
+ },
351
+ {
352
+ "value": "Vertical",
353
+ "href": "#vertical",
354
+ "depth": 4,
355
+ "numbering": [
356
+ 1,
357
+ 2,
358
+ 3,
359
+ 1
360
+ ],
361
+ "parent": "root"
362
+ },
363
+ {
364
+ "value": "Horizontal",
365
+ "href": "#horizontal",
366
+ "depth": 4,
367
+ "numbering": [
368
+ 1,
369
+ 2,
370
+ 3,
371
+ 2
372
+ ],
373
+ "parent": "root"
374
+ }
375
+ ]
376
+ },
377
+ "a11y": {
378
+ "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 = () => <Checkbox>Test me</Checkbox>\n```\n\n### Accessibility standards\n\n- **Info and relationships:** Programmatically determine or provide information\n and relationships conveyed through presentation in text. Use the `<label>`\n element and the `for` attribute to associate every checkbox with a clear,\n descriptive label. Ensure screen readers can access and interpret the checkbox\n label.\n- **Group related checkboxes:** Group related checkboxes using `<fieldset>` and\n `<legend>` to provide context. Label the checkbox group using `<legend>`.\n- **Use of color:** Avoid relying solely on color to convey information or\n checkbox state. Ensure the checked/unchecked state is programmatically\n determinable and conveyed through visual appearance (e.g., the checkbox's\n state).\n- **Keyboard accessibility:** Make all checkbox functionality operable through a\n keyboard interface. Enable users to navigate to the checkbox using the Tab\n key. Allow users to change the checkbox state using the Spacebar or Enter key.\n- **Clear purpose:** Make the purpose of the checkbox clear from the surrounding\n context or its label. Avoid generic labels like \"Option\" or \"Select.\" Provide\n specific and descriptive labels.\n- **Focus visible:** Provide a visible keyboard focus indicator for checkboxes.\n Visually indicate when a checkbox has focus (e.g., highlight, outline, change\n in appearance). Avoid relying solely on color change for focus indication.\n- **Labels or instructions:** Provide clear labels or instructions for\n checkboxes. Reinforce the information provided by the `<label>` element. Aid\n users with cognitive disabilities by providing clear instructions.\n",
379
+ "toc": [
380
+ {
381
+ "value": "Accessibility",
382
+ "href": "#accessibility",
383
+ "depth": 2,
384
+ "numbering": [
385
+ 1,
386
+ 1
387
+ ],
388
+ "parent": "root"
389
+ },
390
+ {
391
+ "value": "Accessibility standards",
392
+ "href": "#accessibility-standards",
393
+ "depth": 3,
394
+ "numbering": [
395
+ 1,
396
+ 1,
397
+ 1
398
+ ],
399
+ "parent": "root"
400
+ }
401
+ ]
402
+ },
403
+ "dev": {
404
+ "mdx": "\n## Getting started\n\n### Import\n\n```tsx\nimport { Checkbox, type CheckboxProps } from '@commercetools/nimbus';\n```\n\n### Basic usage\n\nThe simplest implementation uses uncontrolled mode:\n\n```jsx live-dev\nconst App = () => (\n <Checkbox>Accept terms and conditions</Checkbox>\n)\n```\n\n## Usage examples\n\n### Selection states\n\nThe Checkbox supports three selection states: unchecked (default), checked, and indeterminate.\n\n#### Unchecked\n\nThe default state when no selection has been made:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"400\">\n <Checkbox>Option 1</Checkbox>\n <Checkbox>Option 2</Checkbox>\n </Stack>\n)\n```\n\n#### Checked\n\nUse the `isSelected` prop to indicate a checked state:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"400\">\n <Checkbox isSelected>Option 1</Checkbox>\n <Checkbox isSelected>Option 2</Checkbox>\n </Stack>\n)\n```\n\n#### Indeterminate\n\nUse the `isIndeterminate` prop to show a partial selection state, commonly used for \"select all\" scenarios:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"400\">\n <Checkbox isIndeterminate>Select all</Checkbox>\n <Checkbox isSelected>Option 1</Checkbox>\n <Checkbox>Option 2</Checkbox>\n </Stack>\n)\n```\n\n### Validation and disabled states\n\n#### Invalid state\n\nUse the `isInvalid` prop to indicate validation errors:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"400\">\n <Checkbox isInvalid>Required field</Checkbox>\n <Checkbox isSelected isInvalid>Invalid selection</Checkbox>\n </Stack>\n)\n```\n\n#### Disabled state\n\nDisable checkbox interaction with the `isDisabled` prop:\n\n```jsx live-dev\nconst App = () => (\n <Stack direction=\"column\" gap=\"400\">\n <Checkbox isDisabled>Disabled checkbox</Checkbox>\n <Checkbox isSelected isDisabled>Disabled and checked</Checkbox>\n <Checkbox isIndeterminate isDisabled>Disabled and indeterminate</Checkbox>\n </Stack>\n)\n```\n\n### Uncontrolled mode\n\nFor simpler use cases, use uncontrolled mode with `defaultValue` and `onChange`:\n\n```jsx live-dev\nconst App = () => {\n const [displayValue, setDisplayValue] = useState<boolean>(false);\n\n return (\n <Stack direction=\"column\" gap=\"400\">\n <Text fontSize=\"sm\">\n {displayValue ? 'Notifications enabled' : 'Notifications disabled'}\n </Text>\n <Checkbox\n defaultValue={false}\n onChange={(isSelected) => {\n setDisplayValue(isSelected);\n }}\n >\n Enable notifications\n </Checkbox>\n </Stack>\n );\n}\n```\n\nUse uncontrolled mode when you need to capture the selected state without managing state yourself.\n\n### Controlled mode\n\nFor scenarios requiring programmatic control or coordination with other components, use controlled mode:\n\n```jsx live-dev\nconst App = () => {\n const [isSelected, setIsSelected] = useState<boolean>(false);\n\n return (\n <Stack direction=\"column\" gap=\"400\">\n <Text fontSize=\"sm\">\n {isSelected ? 'Terms accepted' : 'Terms not accepted'}\n </Text>\n <Checkbox\n isSelected={isSelected}\n onChange={setIsSelected}\n >\n Accept terms and conditions\n </Checkbox>\n <Button\n size=\"sm\"\n onClick={() => setIsSelected(!isSelected)}\n >\n {isSelected ? 'Uncheck' : 'Check'}\n </Button>\n </Stack>\n );\n}\n```\n\nUse controlled mode when you need to:\n- Synchronize the value with external state\n- Validate or transform selections\n- Clear or programmatically set the value\n- React to changes in real-time\n\n## Component requirements\n\n## Accessibility\n\nThe Checkbox handles most accessibility requirements internally. However, you must always associate an internationalized label with the component. Visual labels are preferable, and can be set by:\n\n- Using the `CheckboxField` pattern component (recommended, if available)\n- Providing label content via the `children` prop:\n\n```tsx\n<Checkbox>\n {msg.format(checkboxLabelMessage)}\n</Checkbox>\n```\n\n- Associating a `<label>` element with the `Checkbox` using `aria-labelledby`:\n\n```tsx\n<label id=\"checkbox-label\">\n {msg.format(labelMessage)}\n</label>\n<Checkbox aria-labelledby=\"checkbox-label\" />\n```\n\n- Associating a `<label>` element with the `Checkbox` using `htmlFor`:\n\n```tsx\n<label htmlFor=\"checkbox-id\">\n {msg.format(labelMessage)}\n</label>\n<Checkbox id=\"checkbox-id\" />\n```\n\nIf your design requires that the label should not be visible, the label should be set using the `aria-label` prop:\n\n```tsx\n<Checkbox aria-label={msg.format(labelMessage)} />\n```\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 = \"terms-acceptance-checkbox\";\n\nexport const TermsCheckbox = () => (\n <Checkbox id={PERSISTENT_ID}>\n Accept terms and conditions\n </Checkbox>\n);\n```\n\n#### Keyboard navigation\n\nThe component supports full keyboard interaction:\n- `Tab` / `Shift+Tab`: Navigate to/from the checkbox\n- `Space` / `Enter`: Toggle the checkbox state when focused\n\n## API reference\n\n<PropsTable id=\"Checkbox\" />\n\n## Common patterns\n\n### Checkbox group\n\nGroup related checkboxes together for multiple selections:\n\n```jsx live-dev\nconst App = () => {\n const [selectedOptions, setSelectedOptions] = useState<string[]>([]);\n\n const options = [\n { id: 'option1', label: 'Email notifications' },\n { id: 'option2', label: 'SMS notifications' },\n { id: 'option3', label: 'Push notifications' },\n ];\n\n const handleToggle = (optionId: string) => {\n setSelectedOptions((prev) =>\n prev.includes(optionId)\n ? prev.filter((id) => id !== optionId)\n : [...prev, optionId]\n );\n };\n\n return (\n <Stack direction=\"column\" gap=\"400\">\n {options.map((option) => (\n <Checkbox\n key={option.id}\n isSelected={selectedOptions.includes(option.id)}\n onChange={() => handleToggle(option.id)}\n >\n {option.label}\n </Checkbox>\n ))}\n <Text fontSize=\"sm\">\n Selected: {selectedOptions.length} of {options.length}\n </Text>\n </Stack>\n );\n}\n```\n\n### Select all pattern\n\nImplement a \"select all\" checkbox with indeterminate state:\n\n```jsx live-dev\nconst App = () => {\n const [items, setItems] = useState([\n { id: '1', label: 'Item 1', selected: false },\n { id: '2', label: 'Item 2', selected: true },\n { id: '3', label: 'Item 3', selected: false },\n ]);\n\n const allSelected = items.every((item) => item.selected);\n const someSelected = items.some((item) => item.selected) && !allSelected;\n\n const handleSelectAll = (isSelected: boolean) => {\n setItems((prev) =>\n prev.map((item) => ({ ...item, selected: isSelected }))\n );\n };\n\n const handleToggleItem = (id: string) => {\n setItems((prev) =>\n prev.map((item) =>\n item.id === id ? { ...item, selected: !item.selected } : item\n )\n );\n };\n\n return (\n <Stack direction=\"column\" gap=\"400\">\n <Checkbox\n isSelected={allSelected}\n isIndeterminate={someSelected}\n onChange={handleSelectAll}\n >\n Select all\n </Checkbox>\n <Stack direction=\"column\" gap=\"200\" ml=\"600\">\n {items.map((item) => (\n <Checkbox\n key={item.id}\n isSelected={item.selected}\n onChange={() => handleToggleItem(item.id)}\n >\n {item.label}\n </Checkbox>\n ))}\n </Stack>\n </Stack>\n );\n}\n```\n\n### Form integration example\n\nIntegrate checkboxes with form state management:\n\n```jsx live-dev\nconst App = () => {\n const [formData, setFormData] = useState({\n acceptTerms: false,\n subscribeNewsletter: false,\n shareData: false,\n });\n\n const handleChange = (field: string) => (isSelected: boolean) => {\n setFormData((prev) => ({ ...prev, [field]: isSelected }));\n };\n\n const handleSubmit = () => {\n if (!formData.acceptTerms) {\n alert('Please accept the terms and conditions');\n return;\n }\n alert('Form submitted!');\n };\n\n return (\n <Stack direction=\"column\" gap=\"600\">\n <Checkbox\n isSelected={formData.acceptTerms}\n onChange={handleChange('acceptTerms')}\n isInvalid={!formData.acceptTerms}\n >\n I accept the terms and conditions\n </Checkbox>\n <Checkbox\n isSelected={formData.subscribeNewsletter}\n onChange={handleChange('subscribeNewsletter')}\n >\n Subscribe to newsletter\n </Checkbox>\n <Checkbox\n isSelected={formData.shareData}\n onChange={handleChange('shareData')}\n >\n Allow data sharing for analytics\n </Checkbox>\n <Button onClick={handleSubmit}>Submit</Button>\n </Stack>\n );\n}\n```\n\n## Testing your implementation\n\nThese examples demonstrate how to test your implementation when using Checkbox 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 the component renders with expected elements\n\n```tsx\nimport { describe, it, expect, vi } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport userEvent from \"@testing-library/user-event\";\nimport { Checkbox, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"Checkbox - Basic rendering\", () => {\n it(\"renders checkbox element\", () => {\n render(\n <NimbusProvider>\n <Checkbox>Test checkbox</Checkbox>\n </NimbusProvider>\n );\n\n // Verify checkbox is present\n expect(screen.getByRole(\"checkbox\")).toBeInTheDocument();\n });\n\n it(\"renders with label text\", () => {\n render(\n <NimbusProvider>\n <Checkbox>Accept terms</Checkbox>\n </NimbusProvider>\n );\n\n expect(screen.getByText(\"Accept terms\")).toBeInTheDocument();\n });\n\n it(\"renders with aria-label when no children provided\", () => {\n render(\n <NimbusProvider>\n <Checkbox aria-label=\"Test checkbox\" />\n </NimbusProvider>\n );\n\n expect(\n screen.getByRole(\"checkbox\", { name: /test checkbox/i })\n ).toBeInTheDocument();\n });\n\n it(\"renders unchecked by default\", () => {\n render(\n <NimbusProvider>\n <Checkbox>Unchecked checkbox</Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n expect(checkbox).not.toBeChecked();\n });\n});\n```\n\n### Selection State Tests\n\nTest different selection states (checked, unchecked, indeterminate)\n\n```tsx\nimport { describe, it, expect, vi } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport userEvent from \"@testing-library/user-event\";\nimport { Checkbox, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"Checkbox - Selection states\", () => {\n it(\"renders checked state\", () => {\n render(\n <NimbusProvider>\n <Checkbox isSelected>Checked checkbox</Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n expect(checkbox).toBeChecked();\n });\n\n it(\"renders indeterminate state\", () => {\n render(\n <NimbusProvider>\n <Checkbox isIndeterminate>Indeterminate checkbox</Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n // React Aria sets indeterminate state on the input element, not aria-checked\n expect(checkbox).toHaveProperty(\"indeterminate\", true);\n });\n\n it(\"renders unchecked state explicitly\", () => {\n render(\n <NimbusProvider>\n <Checkbox isSelected={false}>Unchecked checkbox</Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n expect(checkbox).not.toBeChecked();\n });\n});\n```\n\n### Interaction Tests\n\nTest user interactions with the component\n\n```tsx\nimport { describe, it, expect, vi } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport userEvent from \"@testing-library/user-event\";\nimport { Checkbox, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"Checkbox - Interactions\", () => {\n it(\"toggles when clicked\", async () => {\n const user = userEvent.setup();\n render(\n <NimbusProvider>\n <Checkbox>Toggle me</Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n expect(checkbox).not.toBeChecked();\n\n await user.click(checkbox);\n\n expect(checkbox).toBeChecked();\n });\n\n it(\"calls onChange callback when toggled\", async () => {\n const user = userEvent.setup();\n const handleChange = vi.fn();\n render(\n <NimbusProvider>\n <Checkbox onChange={handleChange}>Test checkbox</Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n await user.click(checkbox);\n\n expect(handleChange).toHaveBeenCalledWith(true);\n });\n\n it(\"toggles with spacebar when focused\", async () => {\n const user = userEvent.setup();\n render(\n <NimbusProvider>\n <Checkbox>Keyboard toggle</Checkbox>\n </NimbusProvider>\n );\n\n // Use userEvent.tab() instead of element.focus() to avoid act() warnings\n await user.tab();\n await user.keyboard(\" \");\n\n expect(screen.getByRole(\"checkbox\")).toBeChecked();\n });\n\n it(\"toggles with enter key when focused\", async () => {\n const user = userEvent.setup();\n render(\n <NimbusProvider>\n <Checkbox>Enter toggle</Checkbox>\n </NimbusProvider>\n );\n\n // Use userEvent.tab() instead of element.focus() to avoid act() warnings\n await user.tab();\n await user.keyboard(\"{Enter}\");\n\n expect(screen.getByRole(\"checkbox\")).toBeChecked();\n });\n});\n```\n\n### Testing Controlled Mode\n\nTest controlled component behavior\n\n```tsx\nimport { describe, it, expect, vi } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport userEvent from \"@testing-library/user-event\";\nimport { Checkbox, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"Checkbox - Controlled mode\", () => {\n it(\"displays controlled value\", () => {\n render(\n <NimbusProvider>\n <Checkbox isSelected={true} onChange={() => {}}>\n Controlled checkbox\n </Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n expect(checkbox).toBeChecked();\n });\n\n it(\"updates when controlled value changes\", () => {\n const { rerender } = render(\n <NimbusProvider>\n <Checkbox isSelected={false} onChange={() => {}}>\n Controlled checkbox\n </Checkbox>\n </NimbusProvider>\n );\n\n expect(screen.getByRole(\"checkbox\")).not.toBeChecked();\n\n rerender(\n <NimbusProvider>\n <Checkbox isSelected={true} onChange={() => {}}>\n Controlled checkbox\n </Checkbox>\n </NimbusProvider>\n );\n\n expect(screen.getByRole(\"checkbox\")).toBeChecked();\n });\n\n it(\"calls onChange when user interacts with controlled checkbox\", async () => {\n const user = userEvent.setup();\n const handleChange = vi.fn();\n render(\n <NimbusProvider>\n <Checkbox isSelected={false} onChange={handleChange}>\n Controlled checkbox\n </Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n await user.click(checkbox);\n\n expect(handleChange).toHaveBeenCalledWith(true);\n });\n});\n```\n\n### Testing Validation States\n\nTest different validation and state variations\n\n```tsx\nimport { describe, it, expect, vi } from \"vitest\";\nimport { render, screen } from \"@testing-library/react\";\nimport userEvent from \"@testing-library/user-event\";\nimport { Checkbox, NimbusProvider } from \"@commercetools/nimbus\";\n\ndescribe(\"Checkbox - Validation states\", () => {\n it(\"renders disabled state\", () => {\n render(\n <NimbusProvider>\n <Checkbox isDisabled>Disabled checkbox</Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n expect(checkbox).toBeDisabled();\n });\n\n it(\"does not toggle when disabled\", async () => {\n const user = userEvent.setup();\n const handleChange = vi.fn();\n render(\n <NimbusProvider>\n <Checkbox isDisabled onChange={handleChange}>\n Disabled checkbox\n </Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n await user.click(checkbox);\n\n expect(checkbox).not.toBeChecked();\n expect(handleChange).not.toHaveBeenCalled();\n });\n\n it(\"renders invalid state\", () => {\n render(\n <NimbusProvider>\n <Checkbox isInvalid>Invalid checkbox</Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n expect(checkbox).toHaveAttribute(\"aria-invalid\", \"true\");\n });\n\n it(\"renders checked and disabled state\", () => {\n render(\n <NimbusProvider>\n <Checkbox isSelected isDisabled>\n Checked and disabled\n </Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n expect(checkbox).toBeChecked();\n expect(checkbox).toBeDisabled();\n });\n\n it(\"renders indeterminate and invalid state\", () => {\n render(\n <NimbusProvider>\n <Checkbox isIndeterminate isInvalid>\n Indeterminate and invalid\n </Checkbox>\n </NimbusProvider>\n );\n\n const checkbox = screen.getByRole(\"checkbox\");\n // React Aria sets indeterminate state on the input element, not aria-checked\n expect(checkbox).toHaveProperty(\"indeterminate\", true);\n expect(checkbox).toHaveAttribute(\"aria-invalid\", \"true\");\n });\n});\n```\n\n\n## Resources\n\n- [Storybook](https://nimbus-storybook.vercel.app/?path=/docs/components-checkbox--docs)\n- [React Aria Checkbox](https://react-spectrum.adobe.com/react-aria/Checkbox.html)\n- [ARIA Checkbox Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/)\n\n",
405
+ "toc": [
406
+ {
407
+ "value": "Getting started",
408
+ "href": "#getting-started",
409
+ "depth": 2,
410
+ "numbering": [
411
+ 1,
412
+ 1
413
+ ],
414
+ "parent": "root"
415
+ },
416
+ {
417
+ "value": "Import",
418
+ "href": "#import",
419
+ "depth": 3,
420
+ "numbering": [
421
+ 1,
422
+ 1,
423
+ 1
424
+ ],
425
+ "parent": "root"
426
+ },
427
+ {
428
+ "value": "Basic usage",
429
+ "href": "#basic-usage",
430
+ "depth": 3,
431
+ "numbering": [
432
+ 1,
433
+ 1,
434
+ 2
435
+ ],
436
+ "parent": "root"
437
+ },
438
+ {
439
+ "value": "Usage examples",
440
+ "href": "#usage-examples",
441
+ "depth": 2,
442
+ "numbering": [
443
+ 1,
444
+ 2
445
+ ],
446
+ "parent": "root"
447
+ },
448
+ {
449
+ "value": "Selection states",
450
+ "href": "#selection-states",
451
+ "depth": 3,
452
+ "numbering": [
453
+ 1,
454
+ 2,
455
+ 1
456
+ ],
457
+ "parent": "root"
458
+ },
459
+ {
460
+ "value": "Unchecked",
461
+ "href": "#unchecked",
462
+ "depth": 4,
463
+ "numbering": [
464
+ 1,
465
+ 2,
466
+ 1,
467
+ 1
468
+ ],
469
+ "parent": "root"
470
+ },
471
+ {
472
+ "value": "Checked",
473
+ "href": "#checked",
474
+ "depth": 4,
475
+ "numbering": [
476
+ 1,
477
+ 2,
478
+ 1,
479
+ 2
480
+ ],
481
+ "parent": "root"
482
+ },
483
+ {
484
+ "value": "Indeterminate",
485
+ "href": "#indeterminate",
486
+ "depth": 4,
487
+ "numbering": [
488
+ 1,
489
+ 2,
490
+ 1,
491
+ 3
492
+ ],
493
+ "parent": "root"
494
+ },
495
+ {
496
+ "value": "Validation and disabled states",
497
+ "href": "#validation-and-disabled-states",
498
+ "depth": 3,
499
+ "numbering": [
500
+ 1,
501
+ 2,
502
+ 2
503
+ ],
504
+ "parent": "root"
505
+ },
506
+ {
507
+ "value": "Invalid state",
508
+ "href": "#invalid-state",
509
+ "depth": 4,
510
+ "numbering": [
511
+ 1,
512
+ 2,
513
+ 2,
514
+ 1
515
+ ],
516
+ "parent": "root"
517
+ },
518
+ {
519
+ "value": "Disabled state",
520
+ "href": "#disabled-state",
521
+ "depth": 4,
522
+ "numbering": [
523
+ 1,
524
+ 2,
525
+ 2,
526
+ 2
527
+ ],
528
+ "parent": "root"
529
+ },
530
+ {
531
+ "value": "Uncontrolled mode",
532
+ "href": "#uncontrolled-mode",
533
+ "depth": 3,
534
+ "numbering": [
535
+ 1,
536
+ 2,
537
+ 3
538
+ ],
539
+ "parent": "root"
540
+ },
541
+ {
542
+ "value": "Controlled mode",
543
+ "href": "#controlled-mode",
544
+ "depth": 3,
545
+ "numbering": [
546
+ 1,
547
+ 2,
548
+ 4
549
+ ],
550
+ "parent": "root"
551
+ },
552
+ {
553
+ "value": "Component requirements",
554
+ "href": "#component-requirements",
555
+ "depth": 2,
556
+ "numbering": [
557
+ 1,
558
+ 3
559
+ ],
560
+ "parent": "root"
561
+ },
562
+ {
563
+ "value": "Accessibility",
564
+ "href": "#accessibility",
565
+ "depth": 2,
566
+ "numbering": [
567
+ 1,
568
+ 4
569
+ ],
570
+ "parent": "root"
571
+ },
572
+ {
573
+ "value": "Keyboard navigation",
574
+ "href": "#keyboard-navigation",
575
+ "depth": 4,
576
+ "numbering": [
577
+ 1,
578
+ 4,
579
+ 1,
580
+ 1
581
+ ],
582
+ "parent": "root"
583
+ },
584
+ {
585
+ "value": "API reference",
586
+ "href": "#api-reference",
587
+ "depth": 2,
588
+ "numbering": [
589
+ 1,
590
+ 5
591
+ ],
592
+ "parent": "root"
593
+ },
594
+ {
595
+ "value": "Common patterns",
596
+ "href": "#common-patterns",
597
+ "depth": 2,
598
+ "numbering": [
599
+ 1,
600
+ 6
601
+ ],
602
+ "parent": "root"
603
+ },
604
+ {
605
+ "value": "Checkbox group",
606
+ "href": "#checkbox-group",
607
+ "depth": 3,
608
+ "numbering": [
609
+ 1,
610
+ 6,
611
+ 1
612
+ ],
613
+ "parent": "root"
614
+ },
615
+ {
616
+ "value": "Select all pattern",
617
+ "href": "#select-all-pattern",
618
+ "depth": 3,
619
+ "numbering": [
620
+ 1,
621
+ 6,
622
+ 2
623
+ ],
624
+ "parent": "root"
625
+ },
626
+ {
627
+ "value": "Form integration example",
628
+ "href": "#form-integration-example",
629
+ "depth": 3,
630
+ "numbering": [
631
+ 1,
632
+ 6,
633
+ 3
634
+ ],
635
+ "parent": "root"
636
+ },
637
+ {
638
+ "value": "Testing your implementation",
639
+ "href": "#testing-your-implementation",
640
+ "depth": 2,
641
+ "numbering": [
642
+ 1,
643
+ 7
644
+ ],
645
+ "parent": "root"
646
+ },
647
+ {
648
+ "value": "Basic Rendering Tests",
649
+ "href": "#basic-rendering-tests",
650
+ "depth": 3,
651
+ "numbering": [
652
+ 1,
653
+ 7,
654
+ 1
655
+ ],
656
+ "parent": "root"
657
+ },
658
+ {
659
+ "value": "Selection State Tests",
660
+ "href": "#selection-state-tests",
661
+ "depth": 3,
662
+ "numbering": [
663
+ 1,
664
+ 7,
665
+ 2
666
+ ],
667
+ "parent": "root"
668
+ },
669
+ {
670
+ "value": "Interaction Tests",
671
+ "href": "#interaction-tests",
672
+ "depth": 3,
673
+ "numbering": [
674
+ 1,
675
+ 7,
676
+ 3
677
+ ],
678
+ "parent": "root"
679
+ },
680
+ {
681
+ "value": "Testing Controlled Mode",
682
+ "href": "#testing-controlled-mode",
683
+ "depth": 3,
684
+ "numbering": [
685
+ 1,
686
+ 7,
687
+ 4
688
+ ],
689
+ "parent": "root"
690
+ },
691
+ {
692
+ "value": "Testing Validation States",
693
+ "href": "#testing-validation-states",
694
+ "depth": 3,
695
+ "numbering": [
696
+ 1,
697
+ 7,
698
+ 5
699
+ ],
700
+ "parent": "root"
701
+ },
702
+ {
703
+ "value": "Resources",
704
+ "href": "#resources",
705
+ "depth": 2,
706
+ "numbering": [
707
+ 1,
708
+ 8
709
+ ],
710
+ "parent": "root"
711
+ }
712
+ ]
713
+ },
714
+ "guidelines": {
715
+ "mdx": "\n## Guidelines\n\nEnsure users can clearly perceive and interact with binary selection options,\nproviding visual and programmatic cues for their checked or unchecked state,\nalong with accessible labels for understanding their purpose.\n\n### Best practices\n\n- **Utilize positive phrasing in checkbox labels:** Prefer 'Enable\n notifications' over 'Disable notifications’.\n- **Clear Labels:** Use descriptive labels that clearly explain the checkbox's\n purpose.\n- **Logical Grouping:** Group related checkboxes together visually and\n logically.\n- **Visual Feedback:** Provide clear visual feedback when the checkbox is\n checked or unchecked.\n- **Error Handling:** If a checkbox is required, provide clear error messages if\n the user forgets to check it.\n\n### Usage\n\n- **Single Checkbox:** Used for binary choices (e.g., \"I agree to the terms and\n conditions\").\n- **Checkbox Groups:** Allow users to select multiple options from a list.\n- **Within Tables or Lists:** Checkboxes can be used for bulk actions, like\n selecting multiple items in a table.\n\n### Logical grouping\n\nMaintain a clear and predictable order for checkboxes to facilitate efficient\nscanning and selection.\n\n> [!TIP]\\\n> **Do**\n>\n> - Capitalize the first letter of the label.\n> - Use short and clear labeling.\n> - Group information easily for the user to make the correct selection to\n> accomplish their goals.\n\n```jsx live\nconst App = () => (\n <Grid templateColumns=\"repeat(2, 1fr)\" gap=\"400\">\n <Grid.Item>\n <Checkbox isIndeterminate>All general fields</Checkbox>\n </Grid.Item>\n <Grid.Item>\n <Stack direction=\"column\">\n <Checkbox isSelected isDisabled>Product key</Checkbox>\n <Checkbox isSelected>Name</Checkbox>\n <Checkbox>Product type key</Checkbox>\n <Checkbox>Description</Checkbox>\n <Checkbox>Category keys</Checkbox>\n </Stack>\n </Grid.Item>\n </Grid>\n)\n```\n\n> [!CAUTION]\\\n> **Don't**\n>\n> - Don’t overwhelm the user with options that are uncategorized.\n> - There is no reason to use all caps or punctuation.\n\n```jsx live\nconst App = () => (\n <Grid templateColumns=\"repeat(2, 1fr)\" gap=\"400\">\n <Grid.Item>\n <Stack direction=\"column\">\n <Checkbox isSelected>Product key</Checkbox>\n <Checkbox isSelected>NAME...</Checkbox>\n <Checkbox>Valid from</Checkbox>\n <Checkbox>Discount prices</Checkbox>\n <Checkbox>Asset name!</Checkbox>\n </Stack>\n </Grid.Item>\n <Grid.Item>\n <Stack direction=\"column\">\n <Checkbox isSelected>Price key?</Checkbox>\n <Checkbox isSelected>Price value.</Checkbox>\n <Checkbox>PRICE COUNTRY</Checkbox>\n <Checkbox isSelected>Valid until</Checkbox>\n <Checkbox>Category keys.</Checkbox>\n </Stack>\n </Grid.Item>\n </Grid>\n)\n```\n\n### Positive framing\n\nFrame checkbox actions with affirmative language to promote clarity and user\nconfidence.\n\n> [!TIP]\\\n> **Do**\n>\n> - Simple labels provide clear options for users.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"row\" gap=\"1400\" alignItems=\"center\">\n <Text fontSize=\"300\" fontWeight=\"500\">Preferences</Checkbox>\n <Checkbox isSelected>Include product and variant information</Checkbox>\n </Stack>\n)\n```\n\n> [!CAUTION]\\\n> **Don't**\n>\n> - Don’t contradict available options. This information should be simplified\n> further.\n\n```jsx live\nconst App = () => (\n <Stack direction=\"row\" gap=\"1400\" alignItems=\"top\">\n <Text fontSize=\"300\" fontWeight=\"500\">Preferences</Checkbox>\n\n <Stack direction=\"column\">\n <Checkbox isIndeterminate>Don’t include Product- and Variant- level information in every row.</Checkbox>\n <Checkbox isSelected ml=\"600\">Don’t include Variant level information, but keep Product- level information.</Checkbox>\n </Stack>\n </Stack>\n)\n```\n",
716
+ "toc": [
717
+ {
718
+ "value": "Guidelines",
719
+ "href": "#guidelines",
720
+ "depth": 2,
721
+ "numbering": [
722
+ 1,
723
+ 1
724
+ ],
725
+ "parent": "root"
726
+ },
727
+ {
728
+ "value": "Best practices",
729
+ "href": "#best-practices",
730
+ "depth": 3,
731
+ "numbering": [
732
+ 1,
733
+ 1,
734
+ 1
735
+ ],
736
+ "parent": "root"
737
+ },
738
+ {
739
+ "value": "Usage",
740
+ "href": "#usage",
741
+ "depth": 3,
742
+ "numbering": [
743
+ 1,
744
+ 1,
745
+ 2
746
+ ],
747
+ "parent": "root"
748
+ },
749
+ {
750
+ "value": "Logical grouping",
751
+ "href": "#logical-grouping",
752
+ "depth": 3,
753
+ "numbering": [
754
+ 1,
755
+ 1,
756
+ 3
757
+ ],
758
+ "parent": "root"
759
+ },
760
+ {
761
+ "value": "Positive framing",
762
+ "href": "#positive-framing",
763
+ "depth": 3,
764
+ "numbering": [
765
+ 1,
766
+ 1,
767
+ 4
768
+ ],
769
+ "parent": "root"
770
+ }
771
+ ]
772
+ }
773
+ }
774
+ }