@cube-dev/ui-kit 0.121.0 → 0.121.2

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 (516) hide show
  1. package/dist/CHANGELOG.md +12 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/index.js +1 -1
  38. package/dist/components/actions/use-action.js +1 -1
  39. package/dist/components/actions/use-anchored-menu.js +1 -1
  40. package/dist/components/actions/use-context-menu.js +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +1 -1
  48. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  49. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  50. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  51. package/dist/components/content/Divider.js +1 -1
  52. package/dist/components/content/Footer.js +1 -1
  53. package/dist/components/content/Header.js +1 -1
  54. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  55. package/dist/components/content/Item/Item.js +1 -1
  56. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  57. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  58. package/dist/components/content/Layout/GridLayout.js +1 -1
  59. package/dist/components/content/Layout/Layout.js +1 -1
  60. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  61. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  62. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  63. package/dist/components/content/Layout/LayoutContent.js +1 -1
  64. package/dist/components/content/Layout/LayoutContext.js +1 -1
  65. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  66. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  67. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  68. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  69. package/dist/components/content/Layout/LayoutPane.js +1 -1
  70. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  71. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  72. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  73. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  74. package/dist/components/content/Layout/index.js +1 -1
  75. package/dist/components/content/Layout/utils.js +1 -1
  76. package/dist/components/content/Paragraph.js +1 -1
  77. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  78. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  79. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  80. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  81. package/dist/components/content/Result/Result.js +1 -1
  82. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  83. package/dist/components/content/Tag/Tag.js +1 -1
  84. package/dist/components/content/Text.js +1 -1
  85. package/dist/components/content/TextItem/TextItem.js +1 -1
  86. package/dist/components/content/Title.js +1 -1
  87. package/dist/components/content/highlightText.js +1 -1
  88. package/dist/components/content/use-auto-tooltip.js +1 -1
  89. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  90. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  91. package/dist/components/fields/Checkbox/context.js +1 -1
  92. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  93. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  94. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  95. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  96. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  97. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  98. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  99. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  100. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  101. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  102. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  103. package/dist/components/fields/DatePicker/intl.js +1 -1
  104. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  105. package/dist/components/fields/DatePicker/props.js +1 -1
  106. package/dist/components/fields/DatePicker/utils.js +1 -1
  107. package/dist/components/fields/FileInput/FileInput.js +1 -1
  108. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  109. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  110. package/dist/components/fields/Input/Input.js +1 -1
  111. package/dist/components/fields/ListBox/ListBox.js +1 -1
  112. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  113. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  114. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  115. package/dist/components/fields/Picker/Picker.js +1 -1
  116. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  117. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  118. package/dist/components/fields/RadioGroup/context.js +1 -1
  119. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  120. package/dist/components/fields/Select/Select.d.ts +8 -2
  121. package/dist/components/fields/Select/Select.js +1 -1
  122. package/dist/components/fields/Select/Select.js.map +1 -1
  123. package/dist/components/fields/Slider/Gradation.js +1 -1
  124. package/dist/components/fields/Slider/HueSlider.js +1 -1
  125. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  126. package/dist/components/fields/Slider/Slider.js +1 -1
  127. package/dist/components/fields/Slider/SliderBase.js +1 -1
  128. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  129. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  130. package/dist/components/fields/Slider/elements.js +1 -1
  131. package/dist/components/fields/Slider/index.js +1 -1
  132. package/dist/components/fields/Switch/Switch.js +1 -1
  133. package/dist/components/fields/TextArea/TextArea.js +1 -1
  134. package/dist/components/fields/TextInput/TextInput.js +1 -1
  135. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  136. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  137. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  138. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  139. package/dist/components/form/Form/Field.js +1 -1
  140. package/dist/components/form/Form/Form.js +1 -1
  141. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  142. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  143. package/dist/components/form/Form/SubmitError.js +1 -1
  144. package/dist/components/form/Form/index.js +1 -1
  145. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  146. package/dist/components/form/Form/use-field/use-field.js +1 -1
  147. package/dist/components/form/Form/use-form.js +1 -1
  148. package/dist/components/form/Form/validation.js +1 -1
  149. package/dist/components/form/Label.js +1 -1
  150. package/dist/components/form/wrapper.js +1 -1
  151. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  152. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  153. package/dist/components/layout/Flex.js +1 -1
  154. package/dist/components/layout/Flow.js +1 -1
  155. package/dist/components/layout/Grid.js +1 -1
  156. package/dist/components/layout/Panel.js +1 -1
  157. package/dist/components/layout/Prefix.js +1 -1
  158. package/dist/components/layout/ResizablePanel.js +1 -1
  159. package/dist/components/layout/Space.js +1 -1
  160. package/dist/components/layout/Suffix.js +1 -1
  161. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  162. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  163. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  164. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  165. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  166. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  167. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  168. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  169. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  170. package/dist/components/navigation/Tabs/styled.js +1 -1
  171. package/dist/components/navigation/Tabs/types.js +1 -1
  172. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  173. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  174. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  175. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  176. package/dist/components/other/Calendar/Calendar.js +1 -1
  177. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  178. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  179. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  180. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  181. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  182. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  183. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  184. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  185. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  186. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  187. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  188. package/dist/components/overlays/Dialog/context.js +1 -1
  189. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  190. package/dist/components/overlays/Modal/Modal.js +1 -1
  191. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  192. package/dist/components/overlays/Modal/Overlay.js +1 -1
  193. package/dist/components/overlays/Modal/Popover.js +1 -1
  194. package/dist/components/overlays/Modal/Tray.js +1 -1
  195. package/dist/components/overlays/Modal/Underlay.js +1 -1
  196. package/dist/components/overlays/Notifications/Notification.js +1 -1
  197. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  198. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  199. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  200. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  201. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  202. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  203. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  204. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  205. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  206. package/dist/components/overlays/Notifications/index.js +1 -1
  207. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  208. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  209. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  210. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  211. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  212. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  213. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  214. package/dist/components/overlays/Toast/index.js +1 -1
  215. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  216. package/dist/components/overlays/Toast/useToast.js +1 -1
  217. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  218. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  219. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  220. package/dist/components/overlays/Tooltip/context.js +1 -1
  221. package/dist/components/portal/Portal.js +1 -1
  222. package/dist/components/portal/PortalProvider.js +1 -1
  223. package/dist/components/portal/usePortal.js +1 -1
  224. package/dist/components/shared/InvalidIcon.js +1 -1
  225. package/dist/components/shared/ValidIcon.js +1 -1
  226. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  227. package/dist/components/status/Spin/Cube.js +1 -1
  228. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  229. package/dist/components/status/Spin/Spin.js +1 -1
  230. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  231. package/dist/data/item-themes.js +1 -1
  232. package/dist/data/themes.js +1 -1
  233. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  234. package/dist/icons/AdjustmentsIcon.js +1 -1
  235. package/dist/icons/AiIcon.js +1 -1
  236. package/dist/icons/AreaChartIcon.js +1 -1
  237. package/dist/icons/BackwardIcon.js +1 -1
  238. package/dist/icons/BarChartIcon.js +1 -1
  239. package/dist/icons/BellFilledIcon.js +1 -1
  240. package/dist/icons/BellIcon.js +1 -1
  241. package/dist/icons/BooleanIcon.js +1 -1
  242. package/dist/icons/CalendarEditIcon.js +1 -1
  243. package/dist/icons/CalendarIcon.js +1 -1
  244. package/dist/icons/CaretDownIcon.js +1 -1
  245. package/dist/icons/CaretUpIcon.js +1 -1
  246. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  247. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  248. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  249. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  250. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  251. package/dist/icons/ChartBarLineIcon.js +1 -1
  252. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  253. package/dist/icons/ChartBarStackedIcon.js +1 -1
  254. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  255. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  256. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  257. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  258. package/dist/icons/ChartBubbleIcon.js +1 -1
  259. package/dist/icons/ChartDonut2Icon.js +1 -1
  260. package/dist/icons/ChartFunnelIcon.js +1 -1
  261. package/dist/icons/ChartHeatmapIcon.js +1 -1
  262. package/dist/icons/ChartKPIIcon.js +1 -1
  263. package/dist/icons/ChartPie2Icon.js +1 -1
  264. package/dist/icons/ChartScatterIcon.js +1 -1
  265. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  266. package/dist/icons/CheckCircleIcon.js +1 -1
  267. package/dist/icons/CheckIcon.js +1 -1
  268. package/dist/icons/CircleFilledIcon.js +1 -1
  269. package/dist/icons/ClearIcon.js +1 -1
  270. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  271. package/dist/icons/CloseCircleIcon.js +1 -1
  272. package/dist/icons/CloseIcon.js +1 -1
  273. package/dist/icons/CodeIcon.js +1 -1
  274. package/dist/icons/ColumnTotalIcon.js +1 -1
  275. package/dist/icons/CopyIcon.js +1 -1
  276. package/dist/icons/CountIcon.js +1 -1
  277. package/dist/icons/CubeIcon.js +1 -1
  278. package/dist/icons/CubePauseIcon.js +1 -1
  279. package/dist/icons/CubePlayIcon.js +1 -1
  280. package/dist/icons/CurrencyDollarIcon.js +1 -1
  281. package/dist/icons/DangerIcon.js +1 -1
  282. package/dist/icons/DashboardIcon.js +1 -1
  283. package/dist/icons/DatabaseIcon.js +1 -1
  284. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  285. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  286. package/dist/icons/DirectionIcon.js +1 -1
  287. package/dist/icons/DonutIcon.js +1 -1
  288. package/dist/icons/DownIcon.js +1 -1
  289. package/dist/icons/EditIcon.js +1 -1
  290. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  291. package/dist/icons/ExclamationCircleIcon.js +1 -1
  292. package/dist/icons/ExclamationIcon.js +1 -1
  293. package/dist/icons/EyeIcon.js +1 -1
  294. package/dist/icons/EyeInvisibleIcon.js +1 -1
  295. package/dist/icons/FilterIcon.js +1 -1
  296. package/dist/icons/FolderFilledIcon.js +1 -1
  297. package/dist/icons/FolderIcon.js +1 -1
  298. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  299. package/dist/icons/FolderOpenIcon.js +1 -1
  300. package/dist/icons/ForwardIcon.js +1 -1
  301. package/dist/icons/HierarchyIcon.js +1 -1
  302. package/dist/icons/HierarchyOpenIcon.js +1 -1
  303. package/dist/icons/Icon.js +1 -1
  304. package/dist/icons/InfoCircleIcon.js +1 -1
  305. package/dist/icons/InfoIcon.js +1 -1
  306. package/dist/icons/KeyIcon.js +1 -1
  307. package/dist/icons/LeftIcon.js +1 -1
  308. package/dist/icons/LineChartIcon.js +1 -1
  309. package/dist/icons/LoadingIcon.js +1 -1
  310. package/dist/icons/LockFilledIcon.js +1 -1
  311. package/dist/icons/LockIcon.js +1 -1
  312. package/dist/icons/MoreIcon.js +1 -1
  313. package/dist/icons/NotAllowedIcon.js +1 -1
  314. package/dist/icons/Number123Icon.js +1 -1
  315. package/dist/icons/NumberIcon.js +1 -1
  316. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  317. package/dist/icons/PauseCircleIcon.js +1 -1
  318. package/dist/icons/PauseIcon.js +1 -1
  319. package/dist/icons/PercentageIcon.js +1 -1
  320. package/dist/icons/PieChartIcon.js +1 -1
  321. package/dist/icons/PlayCircleIcon.js +1 -1
  322. package/dist/icons/PlayIcon.js +1 -1
  323. package/dist/icons/PlusIcon.js +1 -1
  324. package/dist/icons/ProgressBarIcon.js +1 -1
  325. package/dist/icons/ReloadIcon.js +1 -1
  326. package/dist/icons/ReportIcon.js +1 -1
  327. package/dist/icons/ReturnIcon.js +1 -1
  328. package/dist/icons/RightIcon.js +1 -1
  329. package/dist/icons/RowTotalsIcon.js +1 -1
  330. package/dist/icons/SchemeIcon.js +1 -1
  331. package/dist/icons/SearchIcon.js +1 -1
  332. package/dist/icons/SemanticQueryIcon.js +1 -1
  333. package/dist/icons/SettingsIcon.js +1 -1
  334. package/dist/icons/ShieldFilledIcon.js +1 -1
  335. package/dist/icons/ShieldIcon.js +1 -1
  336. package/dist/icons/SlashIcon.js +1 -1
  337. package/dist/icons/SparklesIcon.js +1 -1
  338. package/dist/icons/SqlIcon.js +1 -1
  339. package/dist/icons/StatsIcon.js +1 -1
  340. package/dist/icons/StopIcon.js +1 -1
  341. package/dist/icons/StringIcon.js +1 -1
  342. package/dist/icons/SubtotalsIcon.js +1 -1
  343. package/dist/icons/SwitchIcon.js +1 -1
  344. package/dist/icons/TableIcon.js +1 -1
  345. package/dist/icons/ThumbsDownIcon.js +1 -1
  346. package/dist/icons/ThumbsUpIcon.js +1 -1
  347. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  348. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  349. package/dist/icons/ThunderboltIcon.js +1 -1
  350. package/dist/icons/TimeIcon.js +1 -1
  351. package/dist/icons/TrashIcon.js +1 -1
  352. package/dist/icons/UnlockIcon.js +1 -1
  353. package/dist/icons/UpIcon.js +1 -1
  354. package/dist/icons/UserGroupIcon.js +1 -1
  355. package/dist/icons/UserIcon.js +1 -1
  356. package/dist/icons/UserLockIcon.js +1 -1
  357. package/dist/icons/ViewIcon.js +1 -1
  358. package/dist/icons/WarningFilledIcon.js +1 -1
  359. package/dist/icons/WarningIcon.js +1 -1
  360. package/dist/icons/wrap-icon.js +1 -1
  361. package/dist/index.js +1 -1
  362. package/dist/provider.js +1 -1
  363. package/dist/providers/TrackingProvider.js +1 -1
  364. package/dist/providers/navigationAdapter.default.js +1 -1
  365. package/dist/tokens/base.js +1 -1
  366. package/dist/tokens/colors.js +1 -1
  367. package/dist/tokens/index.js +1 -1
  368. package/dist/tokens/layout.js +1 -1
  369. package/dist/tokens/shadows.js +1 -1
  370. package/dist/tokens/sizes.js +1 -1
  371. package/dist/tokens/spacing.js +1 -1
  372. package/dist/utils/ResizeSensor.js +1 -1
  373. package/dist/utils/is-dev-env.js +1 -1
  374. package/dist/utils/modules.js +1 -1
  375. package/dist/utils/promise.js +1 -1
  376. package/dist/utils/raf.js +1 -1
  377. package/dist/utils/random.js +1 -1
  378. package/dist/utils/range.js +1 -1
  379. package/dist/utils/react/RenderCache.js +1 -1
  380. package/dist/utils/react/Slots.js +1 -1
  381. package/dist/utils/react/chain.js +1 -1
  382. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  383. package/dist/utils/react/index.js +1 -1
  384. package/dist/utils/react/interactions.js +1 -1
  385. package/dist/utils/react/isTextOnly.js +1 -1
  386. package/dist/utils/react/mapProps.js +1 -1
  387. package/dist/utils/react/mergeProps.js +1 -1
  388. package/dist/utils/react/nullableValue.js +1 -1
  389. package/dist/utils/react/resolveIcon.js +1 -1
  390. package/dist/utils/react/sharedStore.js +1 -1
  391. package/dist/utils/react/useCombinedRefs.js +1 -1
  392. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  393. package/dist/utils/react/useEventBus.js +1 -1
  394. package/dist/utils/react/useId.js +1 -1
  395. package/dist/utils/react/useIsDarwin.js +1 -1
  396. package/dist/utils/react/useKeySymbols.js +1 -1
  397. package/dist/utils/react/useLayoutEffect.js +1 -1
  398. package/dist/utils/react/useLocalStorage.js +1 -1
  399. package/dist/utils/react/useMergeStyles.js +1 -1
  400. package/dist/utils/react/useQaProps.js +1 -1
  401. package/dist/utils/react/useViewportSize.js +1 -1
  402. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  403. package/dist/utils/tree.js +1 -1
  404. package/dist/utils/warnings.js +1 -1
  405. package/dist/version.js +2 -2
  406. package/docs/BaseProperties.md +78 -0
  407. package/docs/ComplexLayout.md +459 -0
  408. package/docs/CreateComponent.md +410 -0
  409. package/docs/FieldProperties.md +117 -0
  410. package/docs/Introduction.md +122 -0
  411. package/docs/RenderCache.md +177 -0
  412. package/docs/Result.md +42 -0
  413. package/docs/SimpleLayout.md +26 -0
  414. package/docs/Typography.md +38 -0
  415. package/docs/components/Block.md +33 -0
  416. package/docs/components/CollectionItem.md +293 -0
  417. package/docs/components/GridProvider.md +38 -0
  418. package/docs/components/Root.md +50 -0
  419. package/docs/components/actions/Action.md +47 -0
  420. package/docs/components/actions/Banner.md +195 -0
  421. package/docs/components/actions/Button.md +209 -0
  422. package/docs/components/actions/ButtonGroup.md +46 -0
  423. package/docs/components/actions/ButtonSplit.md +199 -0
  424. package/docs/components/actions/CommandMenu.md +422 -0
  425. package/docs/components/actions/ItemAction.md +60 -0
  426. package/docs/components/actions/ItemButton.md +316 -0
  427. package/docs/components/actions/Link.md +325 -0
  428. package/docs/components/actions/Menu.md +485 -0
  429. package/docs/components/actions/MenuTrigger.md +47 -0
  430. package/docs/components/actions/SubMenuTrigger.md +38 -0
  431. package/docs/components/actions/use-anchored-menu.md +209 -0
  432. package/docs/components/actions/use-context-menu.md +218 -0
  433. package/docs/components/content/ActiveZone.md +37 -0
  434. package/docs/components/content/Alert.md +40 -0
  435. package/docs/components/content/Avatar.md +37 -0
  436. package/docs/components/content/Badge.md +194 -0
  437. package/docs/components/content/Card.md +40 -0
  438. package/docs/components/content/Content.md +44 -0
  439. package/docs/components/content/CopyPasteBlock.md +36 -0
  440. package/docs/components/content/CopySnippet.md +43 -0
  441. package/docs/components/content/Disclosure.md +181 -0
  442. package/docs/components/content/Divider.md +39 -0
  443. package/docs/components/content/Footer.md +35 -0
  444. package/docs/components/content/Header.md +35 -0
  445. package/docs/components/content/HotKeys.md +352 -0
  446. package/docs/components/content/Item.md +499 -0
  447. package/docs/components/content/ItemBadge.md +31 -0
  448. package/docs/components/content/ItemCard.md +131 -0
  449. package/docs/components/content/Layout.md +843 -0
  450. package/docs/components/content/Paragraph.md +32 -0
  451. package/docs/components/content/Placeholder.md +37 -0
  452. package/docs/components/content/PrismCode.md +36 -0
  453. package/docs/components/content/PrismDiffCode.md +29 -0
  454. package/docs/components/content/Result.md +46 -0
  455. package/docs/components/content/Skeleton.md +35 -0
  456. package/docs/components/content/Tag.md +165 -0
  457. package/docs/components/content/Text.md +54 -0
  458. package/docs/components/content/TextItem.md +217 -0
  459. package/docs/components/content/Title.md +45 -0
  460. package/docs/components/fields/Checkbox.md +176 -0
  461. package/docs/components/fields/ComboBox.md +651 -0
  462. package/docs/components/fields/DatePicker.md +227 -0
  463. package/docs/components/fields/FileInput.md +194 -0
  464. package/docs/components/fields/FilterListBox.md +726 -0
  465. package/docs/components/fields/FilterPicker.md +776 -0
  466. package/docs/components/fields/HueSlider.md +175 -0
  467. package/docs/components/fields/ListBox.md +714 -0
  468. package/docs/components/fields/NumberInput.md +180 -0
  469. package/docs/components/fields/PasswordInput.md +214 -0
  470. package/docs/components/fields/Picker.md +906 -0
  471. package/docs/components/fields/RadioGroup.md +310 -0
  472. package/docs/components/fields/SearchInput.md +224 -0
  473. package/docs/components/fields/Select.md +576 -0
  474. package/docs/components/fields/Slider.md +53 -0
  475. package/docs/components/fields/Switch.md +169 -0
  476. package/docs/components/fields/TextArea.md +61 -0
  477. package/docs/components/fields/TextInput.md +205 -0
  478. package/docs/components/fields/TextInputMapper.md +34 -0
  479. package/docs/components/form/Field.md +333 -0
  480. package/docs/components/form/Form.md +644 -0
  481. package/docs/components/form/FormInstance.md +307 -0
  482. package/docs/components/helpers/DisplayTransition.md +268 -0
  483. package/docs/components/helpers/IconSwitch.md +160 -0
  484. package/docs/components/layout/Flex.md +51 -0
  485. package/docs/components/layout/Flow.md +32 -0
  486. package/docs/components/layout/Grid.md +46 -0
  487. package/docs/components/layout/Panel.md +65 -0
  488. package/docs/components/layout/Prefix.md +37 -0
  489. package/docs/components/layout/ResizablePanel.md +69 -0
  490. package/docs/components/layout/Space.md +44 -0
  491. package/docs/components/layout/Suffix.md +39 -0
  492. package/docs/components/navigation/Tabs.md +726 -0
  493. package/docs/components/organisms/FileTabs.md +39 -0
  494. package/docs/components/organisms/StatsCard.md +40 -0
  495. package/docs/components/other/CloudLogo.md +33 -0
  496. package/docs/components/overlays/AlertDialog.md +51 -0
  497. package/docs/components/overlays/Dialog.md +200 -0
  498. package/docs/components/overlays/DialogContainer.md +201 -0
  499. package/docs/components/overlays/DialogForm.md +295 -0
  500. package/docs/components/overlays/DialogTrigger.md +191 -0
  501. package/docs/components/overlays/Notifications.md +402 -0
  502. package/docs/components/overlays/Toast.md +289 -0
  503. package/docs/components/overlays/Tooltip.md +400 -0
  504. package/docs/components/overlays/TooltipProvider.md +42 -0
  505. package/docs/components/overlays/TooltipTrigger.md +42 -0
  506. package/docs/components/overlays/UseDialogContainer.md +597 -0
  507. package/docs/components/portal/Portal.md +29 -0
  508. package/docs/components/status/LoadingAnimation.md +27 -0
  509. package/docs/components/status/Spin.md +35 -0
  510. package/docs/tasty/configuration.md +211 -0
  511. package/docs/tasty/debug.md +505 -0
  512. package/docs/tasty/injector.md +528 -0
  513. package/docs/tasty/styles.md +567 -0
  514. package/docs/tasty/tasty-static.md +376 -0
  515. package/docs/tasty/usage.md +695 -0
  516. package/package.json +4 -8
@@ -0,0 +1,177 @@
1
+ # RenderCache
2
+
3
+ RenderCache is a performance optimization component that caches rendered React elements and only re-renders specific items when needed. It's useful for lists where most items remain unchanged but you need fine-grained control over which items to re-render.
4
+
5
+ ## When to Use
6
+
7
+ - When rendering lists where only specific items need to re-render based on state changes
8
+ - When child components are expensive to render and don't need to update on every parent re-render
9
+ - When you want more control than React.memo provides, with explicit per-item cache invalidation
10
+ - When building complex UI where selective re-rendering improves performance significantly
11
+
12
+ ## Component
13
+
14
+ ---
15
+
16
+ ### Properties
17
+
18
+ - **`items`** `T[]` — Array of items to render
19
+ - **`renderKeys`** `Array<string | number>` — Array of keys that should trigger re-render. Only items with keys in this array will be re-rendered
20
+ - **`getKey`** `(item: T) => string | number` — Function that extracts a unique key from each item
21
+ - **`children`** `(item: T) => ReactElement` — Render function that takes an item and returns a React element
22
+
23
+ ### Property Details
24
+
25
+ - **items**: Array of items to render
26
+ - **renderKeys**: Array of keys that should trigger re-render. Only items with keys in this array will be re-rendered
27
+ - **getKey**: Function that extracts a unique key from each item
28
+ - **children**: Render function that takes an item and returns a React element
29
+
30
+ ### Base Properties
31
+
32
+ This is a headless component and does not support base properties.
33
+
34
+ ## How It Works
35
+
36
+ The component maintains an internal cache of rendered elements. When rendering:
37
+
38
+ 1. For each item, it checks if the item's key is in renderKeys
39
+ 2. If the key is in renderKeys or the item hasn't been rendered before, it calls the children function to render/re-render
40
+ 3. Otherwise, it returns the cached element from the previous render
41
+ 4. It automatically cleans up cache entries for items that are no longer in the list
42
+
43
+ ## Examples
44
+
45
+ ### Basic Usage
46
+
47
+ ```jsx
48
+ import { RenderCache } from '@cube-dev/ui-kit';
49
+
50
+ const items = [
51
+ { id: 1, name: 'Item 1' },
52
+ { id: 2, name: 'Item 2' },
53
+ { id: 3, name: 'Item 3' },
54
+ ];
55
+
56
+ const [selectedId, setSelectedId] = useState(1);
57
+
58
+ <RenderCache
59
+ items={items}
60
+ renderKeys={[selectedId]}
61
+ getKey={(item) => item.id}
62
+ >
63
+ {(item) => <ExpensiveItem item={item} isSelected={item.id === selectedId} />}
64
+ </RenderCache>
65
+ ```
66
+
67
+ ### With List of Expensive Components
68
+
69
+ ```jsx
70
+ import { RenderCache } from '@cube-dev/ui-kit';
71
+
72
+ function ExpensiveListItem({ item, isActive }) {
73
+ // Complex rendering logic
74
+ return <div className={isActive ? 'active' : ''}>{item.name}</div>;
75
+ }
76
+
77
+ const [activeId, setActiveId] = useState(1);
78
+
79
+ <RenderCache
80
+ items={data}
81
+ renderKeys={[activeId]}
82
+ getKey={(item) => item.id}
83
+ >
84
+ {(item) => (
85
+ <ExpensiveListItem
86
+ item={item}
87
+ isActive={item.id === activeId}
88
+ />
89
+ )}
90
+ </RenderCache>
91
+ ```
92
+
93
+ ## Performance Considerations
94
+
95
+ - **Cache management**: The component uses useRef to maintain the cache across renders, avoiding unnecessary re-allocations
96
+ - **Automatic cleanup**: Removes cached entries for items no longer in the list to prevent memory leaks
97
+ - **Selective invalidation**: Only items with keys in renderKeys are re-rendered, others use cached elements
98
+ - **Best for expensive renders**: Most effective when child components have significant render cost
99
+
100
+ ## Best Practices
101
+
102
+ 1. **Use stable keys**: Ensure getKey returns consistent keys for the same items across renders
103
+ ```jsx
104
+ // Good: Using stable IDs
105
+ <RenderCache
106
+ items={items}
107
+ getKey={(item) => item.id}
108
+ renderKeys={[selectedId]}
109
+ >
110
+ {(item) => <Item {...item} />}
111
+ </RenderCache>
112
+
113
+ // Bad: Using indices (unstable when list changes)
114
+ <RenderCache
115
+ items={items}
116
+ getKey={(item, index) => index}
117
+ renderKeys={[selectedIndex]}
118
+ >
119
+ {(item) => <Item {...item} />}
120
+ </RenderCache>
121
+ ```
122
+
123
+ 2. **Minimize renderKeys**: Only include keys that truly need re-rendering to maximize cache benefits
124
+ ```jsx
125
+ // Good: Only re-render the active item
126
+ <RenderCache
127
+ items={items}
128
+ renderKeys={[activeItemId]}
129
+ getKey={(item) => item.id}
130
+ >
131
+ {(item) => <Item {...item} />}
132
+ </RenderCache>
133
+
134
+ // Bad: Re-rendering all items defeats the purpose
135
+ <RenderCache
136
+ items={items}
137
+ renderKeys={items.map(item => item.id)}
138
+ getKey={(item) => item.id}
139
+ >
140
+ {(item) => <Item {...item} />}
141
+ </RenderCache>
142
+ ```
143
+
144
+ 3. **Consider alternatives**: For simple cases, React.memo might be sufficient and simpler
145
+
146
+ 4. **Profile first**: Use React DevTools Profiler to confirm you have a performance issue before adding this optimization
147
+
148
+ 5. **Avoid inline functions**: Use stable render functions to prevent unnecessary cache invalidation
149
+ ```jsx
150
+ // Good: Stable render function
151
+ const renderItem = useCallback((item) => (
152
+ <ExpensiveItem item={item} />
153
+ ), []);
154
+
155
+ <RenderCache
156
+ items={items}
157
+ renderKeys={[selectedId]}
158
+ getKey={(item) => item.id}
159
+ >
160
+ {renderItem}
161
+ </RenderCache>
162
+ ```
163
+
164
+ ## When NOT to Use
165
+
166
+ - **Simple lists**: For simple lists without performance issues, regular rendering is simpler
167
+ - **All items update frequently**: If all items need to re-render on every change, the cache overhead isn't worth it
168
+ - **Small lists**: Lists with < 10 items typically don't benefit from caching
169
+ - **Simple components**: If child components render quickly, the optimization overhead may outweigh benefits
170
+
171
+ ## Related Components
172
+
173
+ - **React.memo** - For simple component memoization
174
+ - **useMemo** - For memoizing computed values
175
+ - **useCallback** - For memoizing callback functions
176
+ - **DisplayTransition** - For animating component mount/unmount
177
+
package/docs/Result.md ADDED
@@ -0,0 +1,42 @@
1
+ # Result
2
+
3
+ Used to feed back the results of a series of operational tasks.
4
+
5
+ ## When To Use
6
+
7
+ Use when important operations need to inform the user to process the results and the feedback is more complicated.
8
+
9
+ ## Examples
10
+
11
+ ### Success
12
+
13
+ ### Info
14
+
15
+ ### Warning
16
+
17
+ ### Error
18
+
19
+ ### Custom Icon
20
+
21
+ ### Custom Title
22
+
23
+ ### Compact
24
+
25
+ ## Properties
26
+
27
+ - **`status`** `'success' | 'error' | 'info' | 'warning' | 404 | 403 | 500` (default: `'info'`) — Result status, determines the icon and color from ready-made templates
28
+ - **`title`** `ReactNode` — The title of the result
29
+ - **`subtitle`** `ReactNode` — Subtitle of the result component
30
+ - **`icon`** `ReactNode` — Custom icon element. Don't use together with `status`
31
+ - **`isCompact`** `boolean` — Whether the result component has a compact presentation
32
+ - **`children`** `ReactNode` — Additional block content, e.g. a set of action buttons
33
+
34
+ ## Differences from Ant Design
35
+
36
+ | There are differences | Ant Design property | Cube UIKit property |
37
+ | :-------------------: | :-----------------: | :-----------------: |
38
+ | No | `status` | `status` |
39
+ | No | `title` | `title` |
40
+ | Yes | `subTitle` | `subtitle` |
41
+ | No | `icon` | `icon` |
42
+ | Yes | `extra` | `children` |
@@ -0,0 +1,26 @@
1
+ # Layout examples
2
+
3
+ ## Flow layout
4
+
5
+ Flow Component is used to create gaps between blocks inside block layout.
6
+
7
+ ## Flex layout
8
+
9
+ Use Space Component to create a row or a column of elements.
10
+
11
+ Use Flex Component for more flexible layouts.
12
+
13
+ ## Grid layout
14
+
15
+ Use Grid Component for grid layouts.
16
+
17
+ ### Simple layout with side bar.
18
+
19
+ ```jsx
20
+ <Grid gridColumns="200px 1fr" gridRows="60px 1fr" height="500px">
21
+ <Card gridColumn="1 / -1">Header</Card>
22
+ <Card>Sidebar</Card>
23
+ <Card>Content</Card>
24
+ </Grid>
25
+ ```
26
+
@@ -0,0 +1,38 @@
1
+ # Typography
2
+
3
+ There are many ways to create typography elements like text labels and headings. You can use complete components, presets or low-level styles to get exact text label you want.
4
+
5
+ ## Typography Components
6
+
7
+ ### Headings
8
+
9
+ ### Paragraphs
10
+
11
+ Paragraphs with gaps between them.
12
+
13
+ ### Text labels
14
+
15
+ ### Links
16
+
17
+ Use `!` prefix to open link in new tab.
18
+
19
+ ```jsx
20
+ (
21
+ <Link to="https://cube-uikit-storybook.netlify.app/">
22
+ Open Cube Cloud UI Kit
23
+ </Link>
24
+ ) |
25
+ (
26
+ <Link to="!https://cube-uikit-storybook.netlify.app/">
27
+ Open Cube Cloud UI Kit in new tab
28
+ </Link>
29
+ );
30
+ ```
31
+
32
+ Use `@` prefix to navigate to the new page without using the Router.
33
+
34
+ ```jsx
35
+ <Link to="@">Reload this page</Link> |
36
+ <Link to="@/">Move to the Main Page</Link>;
37
+ ```
38
+
@@ -0,0 +1,33 @@
1
+ # Block
2
+
3
+ A simple block-level container. The most basic layout primitive.
4
+
5
+ ## When to Use
6
+
7
+ - Wrapping content in a block display context
8
+ - Base layout when you need `display: block` without extra semantics
9
+ - Generic container for styling with style props
10
+
11
+ ## Properties
12
+
13
+ No component-specific props. Use style props directly.
14
+
15
+ ### Style Defaults
16
+
17
+ - `display` — `block`
18
+
19
+ ### Base Properties
20
+
21
+ Supports [Base properties](../BaseProperties.md).
22
+
23
+ ## Examples
24
+
25
+ ```jsx
26
+ <Block>
27
+ <Text>Content in a block container</Text>
28
+ </Block>
29
+
30
+ <Block padding="1x" fill="#surface">
31
+ Styled block with padding and background
32
+ </Block>
33
+ ```
@@ -0,0 +1,293 @@
1
+ # CollectionItem
2
+
3
+ `CollectionItem` is the building block for all collection-based components in the UI Kit, providing a consistent API for list items, menu options, and selectors.
4
+
5
+ ## Used By
6
+
7
+ ListBox, FilterListBox, Select, ComboBox, FilterPicker, Picker, Menu, CommandMenu
8
+
9
+ ## Usage Patterns
10
+
11
+ There are two ways to provide items to collection components:
12
+
13
+ ### Static JSX
14
+
15
+ Define items directly. You **must** provide `key` props:
16
+
17
+ ```jsx live=false
18
+ <ListBox>
19
+ <ListBox.Item key="apple">Apple</ListBox.Item>
20
+ <ListBox.Item key="banana">Banana</ListBox.Item>
21
+ </ListBox>
22
+ ```
23
+
24
+ ### Data-driven (Recommended)
25
+
26
+ **🚨 IMPORTANT:** The `items` prop **must be an array of objects**, where each object contains at least an `id` or `key` property.
27
+
28
+ ```jsx live=false
29
+ // ✅ Correct: Array of objects with id/key
30
+ const items = [
31
+ { id: 'apple', name: 'Apple' },
32
+ { id: 'banana', name: 'Banana' },
33
+ ];
34
+
35
+ <ListBox items={items}>
36
+ {(item) => <ListBox.Item key={item.id}>{item.name}</ListBox.Item>}
37
+ </ListBox>
38
+ ```
39
+
40
+ ```jsx live=false
41
+ // ❌ Wrong: Array of strings won't work
42
+ const items = ['apple', 'banana']; // Don't do this!
43
+
44
+ // ❌ Wrong: Array of primitives won't work
45
+ const items = [1, 2, 3]; // Don't do this!
46
+ ```
47
+
48
+ ## Item Requirements
49
+
50
+ - **`id` or `key`** `string | number` — Unique identifier - **critical for selection callbacks** (✅ Required)
51
+ - **`textValue`** `string` — For filtering & accessibility (⚠️ Recommended)
52
+
53
+ **Without `id`/`key`:** React Aria falls back to using order-based keys (e.g., `"0"`, `"1"`), which breaks selection functionality in select components as these values are meaningless for identifying specific items.
54
+
55
+ **Without `textValue`:** Falls back to rendered content, then to key/id.
56
+
57
+ ### Rules
58
+
59
+ ```jsx live=false
60
+ // ✅ Using 'id'
61
+ const items = [
62
+ { id: 'apple', name: 'Apple' },
63
+ { id: 'banana', name: 'Banana' },
64
+ ];
65
+
66
+ // ✅ Using 'key'
67
+ const items = [
68
+ { key: 'apple', name: 'Apple' },
69
+ { key: 'banana', name: 'Banana' },
70
+ ];
71
+
72
+ // ✅ Consistent types
73
+ const items = [
74
+ { id: '1', name: 'First' },
75
+ { id: '2', name: 'Second' },
76
+ ];
77
+
78
+ // ✅ Explicit textValue for complex content
79
+ const items = [{
80
+ id: 'user-1',
81
+ firstName: 'John',
82
+ lastName: 'Smith',
83
+ textValue: 'John Smith',
84
+ }];
85
+ ```
86
+
87
+ **Always provide explicit `textValue` for:**
88
+ - Icons/images without text
89
+ - Formatted/complex content
90
+ - Non-readable keys (UUIDs)
91
+ - Searchable components (ComboBox, FilterListBox, FilterPicker, CommandMenu)
92
+
93
+ ## Properties
94
+
95
+ Extends all [Item component](./content/Item.md) props:
96
+
97
+ - `children` - Item content
98
+ - `icon` / `rightIcon` - Icons
99
+ - `prefix` / `suffix` - Additional content
100
+ - `description` - Secondary text
101
+ - `textValue` - Text for filtering/accessibility
102
+ - `onAction` - Action handler (Menu items)
103
+
104
+ ## Examples
105
+
106
+ ### Basic
107
+
108
+ ```jsx live=false
109
+ const permissions = [
110
+ { id: 'read', name: 'Read' },
111
+ { id: 'write', name: 'Write' },
112
+ ];
113
+
114
+ <ListBox items={permissions}>
115
+ {(item) => <ListBox.Item key={item.id}>{item.name}</ListBox.Item>}
116
+ </ListBox>
117
+ ```
118
+
119
+ ### With Icons
120
+
121
+ ```jsx live=false
122
+ import { IconFile, IconFolder } from '@tabler/icons-react';
123
+
124
+ const items = [
125
+ { id: 'file', name: 'File', icon: <IconFile /> },
126
+ { id: 'folder', name: 'Folder', icon: <IconFolder /> },
127
+ ];
128
+
129
+ <Menu items={items}>
130
+ {(item) => <Menu.Item key={item.id} icon={item.icon}>{item.name}</Menu.Item>}
131
+ </Menu>
132
+ ```
133
+
134
+ ### With Descriptions
135
+
136
+ ```jsx live=false
137
+ const users = [
138
+ {
139
+ id: '1',
140
+ name: 'John Smith',
141
+ email: 'john@example.com',
142
+ textValue: 'John Smith john@example.com',
143
+ },
144
+ ];
145
+
146
+ <ComboBox items={users}>
147
+ {(item) => (
148
+ <ComboBox.Item key={item.id} description={item.email}>
149
+ {item.name}
150
+ </ComboBox.Item>
151
+ )}
152
+ </ComboBox>
153
+ ```
154
+
155
+ ### With Sections
156
+
157
+ ```jsx live=false
158
+ <ListBox>
159
+ <ListBox.Section title="Fruits">
160
+ <ListBox.Item key="apple">Apple</ListBox.Item>
161
+ <ListBox.Item key="banana">Banana</ListBox.Item>
162
+ </ListBox.Section>
163
+ <ListBox.Section title="Vegetables">
164
+ <ListBox.Item key="carrot">Carrot</ListBox.Item>
165
+ </ListBox.Section>
166
+ </ListBox>
167
+ ```
168
+
169
+ ### Disabled Items
170
+
171
+ ```jsx live=false
172
+ const items = [
173
+ { id: 'read', name: 'Read' },
174
+ { id: 'write', name: 'Write' },
175
+ { id: 'delete', name: 'Delete', disabled: true },
176
+ ];
177
+
178
+ <ListBox
179
+ items={items}
180
+ disabledKeys={items.filter(i => i.disabled).map(i => i.id)}
181
+ >
182
+ {(item) => <ListBox.Item key={item.id}>{item.name}</ListBox.Item>}
183
+ </ListBox>
184
+ ```
185
+
186
+ ## Best Practices
187
+
188
+ ```jsx live=false
189
+ // ✅ Items must be an array of objects
190
+ const items = [{ id: 'user-1', name: 'John' }];
191
+
192
+ // ✅ Always provide id/key in each object
193
+ const items = [
194
+ { id: 'apple', name: 'Apple' },
195
+ { id: 'banana', name: 'Banana' },
196
+ ];
197
+
198
+ // ✅ Always pass key prop to Item
199
+ <ListBox items={items}>
200
+ {(item) => <ListBox.Item key={item.id}>{item.name}</ListBox.Item>}
201
+ </ListBox>
202
+
203
+ // ✅ Consistent types for id/key
204
+ const items = [
205
+ { id: '1', name: 'First' },
206
+ { id: '2', name: 'Second' },
207
+ ];
208
+
209
+ // ✅ Explicit textValue for complex content
210
+ const items = [{
211
+ id: 'user-1',
212
+ name: 'John Smith',
213
+ textValue: 'John Smith',
214
+ }];
215
+
216
+ // ✅ Memoize large collections
217
+ const items = useMemo(
218
+ () => data.map(d => ({ id: d.id, name: d.name })),
219
+ [data]
220
+ );
221
+
222
+ // ❌ Don't pass array of strings
223
+ const items = ['apple', 'banana']; // Wrong!
224
+
225
+ // ❌ Don't pass array of numbers
226
+ const items = [1, 2, 3]; // Wrong!
227
+
228
+ // ❌ Don't omit key prop
229
+ <ListBox items={items}>
230
+ {(item) => <ListBox.Item>{item.name}</ListBox.Item>}
231
+ </ListBox>
232
+
233
+ // ❌ Don't omit id/key in objects
234
+ const items = [
235
+ { name: 'First' }, // Missing id!
236
+ { name: 'Second' }, // Missing id!
237
+ ];
238
+
239
+ // ❌ Don't mix types
240
+ const items = [
241
+ { id: 1, name: 'First' },
242
+ { id: '2', name: 'Second' },
243
+ ];
244
+ ```
245
+
246
+ ## TypeScript
247
+
248
+ ```tsx live=false
249
+ interface User {
250
+ id: string; // Required!
251
+ name: string;
252
+ textValue?: string;
253
+ }
254
+
255
+ const items: User[] = [
256
+ { id: '1', name: 'John', textValue: 'John' },
257
+ ];
258
+
259
+ <ListBox items={items}>
260
+ {(item: User) => <ListBox.Item key={item.id}>{item.name}</ListBox.Item>}
261
+ </ListBox>
262
+ ```
263
+
264
+ ## Quick Reference
265
+
266
+ - **Static JSX** — Key Prop: ✅ Required; Source: Hardcoded value
267
+ - **Data-driven (`items`)** — Key Prop: ✅ Required; Source: Pass `item.key` or `item.id`
268
+ - **Using `.map()`** — Key Prop: ✅ Required; Source: Pass `item.key` or `item.id`
269
+
270
+ - **ListBox** — Selection: Single/Multiple; Search: ❌
271
+ - **FilterListBox** — Selection: Single/Multiple; Search: ✅
272
+ - **Select** — Selection: Single; Search: ❌
273
+ - **ComboBox** — Selection: Single; Search: ✅
274
+ - **FilterPicker** — Selection: Single/Multiple; Search: ✅
275
+ - **Picker** — Selection: Single/Multiple; Search: ❌
276
+ - **Menu** — Selection: Single action; Search: ❌
277
+ - **CommandMenu** — Selection: Single action; Search: ✅
278
+
279
+ ## Essential Rules
280
+
281
+ 1. **🚨 The `items` prop must be an array of objects** - Never pass arrays of strings, numbers, or other primitives. Each object must have an `id` or `key` property.
282
+ 2. **🚨 Always provide `id` or `key` in each object** - Required for selection callbacks to work properly. Without it, React Aria uses order-based keys which are useless in select components.
283
+ 3. **🚨 Always pass `key` prop to Item** - Must explicitly pass `key={item.id}` or `key={item.key}` in the render function
284
+ 4. **Provide explicit `textValue`** - For icons, complex content, or searchable components
285
+ 5. **Use consistent types** - All strings or all numbers, never mixed
286
+
287
+ ## Related Components
288
+
289
+ - [Item](./content/Item.md) - Base item component
290
+ - [ListBox](./fields/ListBox.md) - List with selection
291
+ - [Select](./fields/Select.md) - Dropdown selector
292
+ - [ComboBox](./fields/ComboBox.md) - Searchable input
293
+ - [Menu](./actions/Menu.md) - Action menu
@@ -0,0 +1,38 @@
1
+ # GridProvider
2
+
3
+ Provides CSS custom properties for responsive grid column calculations. Children can use `$column-width` for precise column sizing.
4
+
5
+ ## When to Use
6
+
7
+ - Responsive grid layouts with consistent column sizing
8
+ - Layouts that need to calculate column widths based on container size
9
+ - Grid systems with configurable column counts
10
+
11
+ ## Properties
12
+
13
+ - **`columns`** `number` (default: `2`) — Number of grid columns
14
+ - **`gap`** `Styles['gap']` (default: `'0'`) — Gap between columns
15
+ - **`width`** `Styles['width']` — Forced container width (bypasses auto-detection)
16
+ - **`initialWidth`** `Styles['width']` — Initial width before resize observer kicks in
17
+
18
+ ### CSS Custom Properties Provided
19
+
20
+ - `--grid-width` — Total grid width
21
+ - `--columns-amount` — Number of columns
22
+ - `--column-gap` — Gap between columns
23
+ - `--column-width` — Calculated width per column
24
+
25
+ ### Style Defaults
26
+
27
+ - `display` — `contents`
28
+
29
+ ## Examples
30
+
31
+ ```jsx
32
+ <GridProvider columns={12} gap="1x">
33
+ <Grid columns="repeat(12, $column-width)">
34
+ <Block gridColumn="span 6">Half</Block>
35
+ <Block gridColumn="span 6">Half</Block>
36
+ </Grid>
37
+ </GridProvider>
38
+ ```
@@ -0,0 +1,50 @@
1
+ # Root
2
+
3
+ The root application wrapper. Provides theme context, global styles, portal container, modal/toast providers, and navigation. Wrap your app with `Root` at the top level.
4
+
5
+ ## When to Use
6
+
7
+ - Top-level app component (required)
8
+ - Provides context for modals, toasts, tooltips, and overlays
9
+ - Theme and design token configuration
10
+
11
+ ## Properties
12
+
13
+ - **`navigation`** `NavigationAdapter` — Custom navigation adapter for routing
14
+ - **`tracking`** `TrackingProps` — Analytics/tracking event configuration
15
+ - **`tokens`** `Record<string, string>` — Custom design tokens (CSS custom properties)
16
+ - **`fonts`** `boolean` — Whether to load default fonts
17
+ - **`font`** `string` — Custom font family name
18
+ - **`monospaceFont`** `string` — Custom monospace font family name
19
+ - **`fontDisplay`** `'auto' | 'block' | 'swap' | 'fallback' | 'optional'` (default: `'swap'`) — Font display strategy
20
+ - **`bodyStyles`** `Record<string, string>` — Raw CSS styles applied to the `<body>`
21
+ - **`publicUrl`** `string` — Public URL for font loading
22
+ - **`cursorStrategy`** `'web' | 'native'` (default: `'web'`) — Cursor style for interactive elements (`web` uses pointer, `native` uses default)
23
+
24
+ ### Style Defaults
25
+
26
+ - `display` — `contents`
27
+ - `color` — `#dark-02`
28
+ - `preset` — `t3`
29
+
30
+ ### Base Properties
31
+
32
+ Supports [Base properties](../BaseProperties.md).
33
+
34
+ ## Examples
35
+
36
+ ```jsx
37
+ <Root>
38
+ <App />
39
+ </Root>
40
+ ```
41
+
42
+ ```jsx
43
+ <Root
44
+ font="Inter"
45
+ navigation={routerAdapter}
46
+ tokens={{ '--gap': '8px', '--radius': '4px' }}
47
+ >
48
+ <App />
49
+ </Root>
50
+ ```