@cube-dev/ui-kit 0.162.0 → 0.163.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 (551) hide show
  1. package/dist/CHANGELOG.md +43 -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 -2
  40. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  41. package/dist/components/actions/use-context-menu.js +1 -2
  42. package/dist/components/actions/use-context-menu.js.map +1 -1
  43. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  44. package/dist/components/content/Alert/Alert.js +1 -1
  45. package/dist/components/content/Alert/use-alert.js +1 -1
  46. package/dist/components/content/Avatar/Avatar.js +1 -1
  47. package/dist/components/content/Badge/Badge.js +1 -1
  48. package/dist/components/content/Card/Card.js +1 -1
  49. package/dist/components/content/Content.js +1 -1
  50. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  51. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  53. package/dist/components/content/Divider.js +1 -1
  54. package/dist/components/content/Footer.js +1 -1
  55. package/dist/components/content/Header.js +1 -1
  56. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  57. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  58. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  59. package/dist/components/content/Item/Item.js +1 -1
  60. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  61. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  62. package/dist/components/content/Layout/GridLayout.js +1 -1
  63. package/dist/components/content/Layout/Layout.js +1 -1
  64. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  65. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  66. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  67. package/dist/components/content/Layout/LayoutContent.js +1 -1
  68. package/dist/components/content/Layout/LayoutContext.js +1 -1
  69. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  70. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  71. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  72. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  73. package/dist/components/content/Layout/LayoutPane.js +1 -1
  74. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  75. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  76. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  77. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  78. package/dist/components/content/Layout/index.js +1 -1
  79. package/dist/components/content/Layout/utils.js +1 -1
  80. package/dist/components/content/Paragraph.js +1 -1
  81. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  82. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  83. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  84. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  85. package/dist/components/content/Result/Result.js +1 -1
  86. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  87. package/dist/components/content/Tag/Tag.js +1 -1
  88. package/dist/components/content/Text.d.ts +28 -28
  89. package/dist/components/content/Text.js +1 -1
  90. package/dist/components/content/TextItem/TextItem.js +1 -1
  91. package/dist/components/content/Title.js +1 -1
  92. package/dist/components/content/Tree/Tree.js +1 -1
  93. package/dist/components/content/Tree/TreeNode.js +1 -1
  94. package/dist/components/content/Tree/styled.js +1 -1
  95. package/dist/components/content/Tree/tree-index.js +1 -1
  96. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  97. package/dist/components/content/Tree/use-load-data.js +1 -1
  98. package/dist/components/content/highlightText.js +1 -1
  99. package/dist/components/content/use-auto-tooltip.js +1 -1
  100. package/dist/components/data/DataTable/DataTable.js +1 -1
  101. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  102. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  103. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  105. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -2
  106. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  107. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  108. package/dist/components/data/TableBase/RowCollection.js +1 -1
  109. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  110. package/dist/components/data/TableBase/TableRow.js +1 -1
  111. package/dist/components/data/TableBase/TableView.js +2 -2
  112. package/dist/components/data/TableBase/TableView.js.map +1 -1
  113. package/dist/components/data/TableBase/column-menu.js +1 -1
  114. package/dist/components/data/TableBase/column-tint.js +1 -1
  115. package/dist/components/data/TableBase/row-menu.js +1 -1
  116. package/dist/components/data/TableBase/styled.js +1 -1
  117. package/dist/components/data/TableBase/types.js +1 -1
  118. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  119. package/dist/components/data/TableBase/use-column-order.js +1 -1
  120. package/dist/components/data/TableBase/use-container-width.js +1 -1
  121. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  122. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  123. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  124. package/dist/components/data/TableBase/use-table-search.js +1 -1
  125. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  126. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  127. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  128. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  129. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  130. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  131. package/dist/components/fields/Checkbox/context.js +1 -1
  132. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  133. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  134. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  135. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  136. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  137. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  138. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  139. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  140. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  141. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  142. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  143. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  144. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  145. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  146. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  147. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  148. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  149. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  150. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  151. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  152. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  153. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  154. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  155. package/dist/components/fields/DatePicker/period.js +1 -1
  156. package/dist/components/fields/DatePicker/props.js +1 -1
  157. package/dist/components/fields/DatePicker/utils.js +1 -1
  158. package/dist/components/fields/FileInput/FileInput.js +1 -1
  159. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -2
  160. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  161. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -2
  162. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  163. package/dist/components/fields/Input/Input.js +1 -1
  164. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  165. package/dist/components/fields/ListBox/ListBox.js +1 -1
  166. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -4
  167. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  168. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  169. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  170. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  171. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  172. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  173. package/dist/components/fields/Picker/Picker.js +1 -3
  174. package/dist/components/fields/Picker/Picker.js.map +1 -1
  175. package/dist/components/fields/RadioGroup/Radio.d.ts +31 -9
  176. package/dist/components/fields/RadioGroup/Radio.js +57 -14
  177. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  178. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  179. package/dist/components/fields/RadioGroup/context.js +1 -1
  180. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  181. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  182. package/dist/components/fields/Select/Select.js +1 -1
  183. package/dist/components/fields/Slider/Gradation.js +1 -1
  184. package/dist/components/fields/Slider/HueSlider.js +1 -3
  185. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  186. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  187. package/dist/components/fields/Slider/Slider.js +1 -1
  188. package/dist/components/fields/Slider/SliderBase.js +1 -1
  189. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  190. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  191. package/dist/components/fields/Slider/elements.js +1 -1
  192. package/dist/components/fields/Slider/index.js +1 -1
  193. package/dist/components/fields/Switch/Switch.js +1 -1
  194. package/dist/components/fields/TextArea/TextArea.js +1 -1
  195. package/dist/components/fields/TextInput/TextInput.js +1 -1
  196. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  197. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  198. package/dist/components/fields/color/ColorPanel.js +1 -1
  199. package/dist/components/fields/color/ColorSwatch.js +1 -1
  200. package/dist/components/fields/color/channels.js +1 -1
  201. package/dist/components/fields/color/color.js +1 -1
  202. package/dist/components/fields/color/context.js +1 -1
  203. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  204. package/dist/components/form/Form/Field.js +1 -1
  205. package/dist/components/form/Form/Form.js +1 -1
  206. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  207. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  208. package/dist/components/form/Form/SubmitError.js +1 -1
  209. package/dist/components/form/Form/index.js +1 -1
  210. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  211. package/dist/components/form/Form/use-field/use-field.js +1 -1
  212. package/dist/components/form/Form/use-form.js +1 -1
  213. package/dist/components/form/Form/validation.js +1 -1
  214. package/dist/components/form/Label.js +1 -1
  215. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  216. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  217. package/dist/components/form/validation/use-validation-props.js +1 -1
  218. package/dist/components/form/wrapper.js +1 -1
  219. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  220. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  221. package/dist/components/layout/Board/Board.js +1 -1
  222. package/dist/components/layout/Board/BoardProvider.js +1 -1
  223. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  224. package/dist/components/layout/Board/Widget.js +1 -1
  225. package/dist/components/layout/Board/WidgetHost.js +1 -1
  226. package/dist/components/layout/Board/board-context.js +1 -1
  227. package/dist/components/layout/Board/board-store.js +1 -1
  228. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  229. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  230. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  231. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  232. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  233. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  234. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  235. package/dist/components/layout/Board/index.js +1 -1
  236. package/dist/components/layout/Board/responsive-utils.js +1 -1
  237. package/dist/components/layout/Board/use-board-layout.js +1 -1
  238. package/dist/components/layout/Board/use-board-registry.js +1 -1
  239. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  240. package/dist/components/layout/Board/use-board-selection.js +1 -1
  241. package/dist/components/layout/Flex.js +1 -1
  242. package/dist/components/layout/Flow.js +1 -1
  243. package/dist/components/layout/Grid.js +1 -1
  244. package/dist/components/layout/Panel.js +1 -1
  245. package/dist/components/layout/Prefix.js +1 -1
  246. package/dist/components/layout/ResizablePanel.js +1 -1
  247. package/dist/components/layout/Space.js +1 -1
  248. package/dist/components/layout/Suffix.js +1 -1
  249. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  250. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  251. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  252. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  253. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  254. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  255. package/dist/components/navigation/Tabs/TabPicker.js +1 -2
  256. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  257. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  258. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  259. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  260. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  261. package/dist/components/navigation/Tabs/styled.js +1 -1
  262. package/dist/components/navigation/Tabs/types.js +1 -1
  263. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  264. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  265. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  266. package/dist/components/other/Calendar/Calendar.js +1 -1
  267. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  268. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  269. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  270. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  271. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  272. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  273. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  274. package/dist/components/other/Calendar/styled.js +1 -1
  275. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  276. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  277. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  278. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  279. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  280. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  281. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  282. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  283. package/dist/components/overlays/Dialog/context.js +1 -1
  284. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  285. package/dist/components/overlays/Modal/Modal.js +1 -1
  286. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  287. package/dist/components/overlays/Modal/Overlay.js +1 -2
  288. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  289. package/dist/components/overlays/Modal/Popover.js +1 -1
  290. package/dist/components/overlays/Modal/Tray.js +1 -1
  291. package/dist/components/overlays/Modal/Underlay.js +1 -1
  292. package/dist/components/overlays/Notifications/Notification.js +1 -1
  293. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  294. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  295. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  296. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  297. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -2
  298. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  299. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  300. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  301. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  302. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  303. package/dist/components/overlays/Notifications/index.js +1 -1
  304. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  305. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  306. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  307. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  308. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  309. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  310. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  311. package/dist/components/overlays/Toast/index.js +1 -1
  312. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  313. package/dist/components/overlays/Toast/useToast.js +1 -1
  314. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  315. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  316. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  317. package/dist/components/overlays/Tooltip/context.js +1 -1
  318. package/dist/components/portal/Portal.js +1 -1
  319. package/dist/components/portal/PortalProvider.js +1 -1
  320. package/dist/components/portal/usePortal.js +1 -1
  321. package/dist/components/shared/DraggableCollection.js +1 -1
  322. package/dist/components/shared/InvalidIcon.js +1 -1
  323. package/dist/components/shared/ValidIcon.js +1 -1
  324. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  325. package/dist/components/status/Spin/Cube.js +1 -1
  326. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  327. package/dist/components/status/Spin/Spin.js +1 -1
  328. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  329. package/dist/data/item-themes.js +59 -30
  330. package/dist/data/item-themes.js.map +1 -1
  331. package/dist/data/themes.js +1 -1
  332. package/dist/eslint-plugin/defaults.generated.js +2006 -1970
  333. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  334. package/dist/eslint-plugin/index.d.ts +6 -0
  335. package/dist/eslint-plugin/index.js +9 -5
  336. package/dist/eslint-plugin/index.js.map +1 -1
  337. package/dist/eslint-plugin/rules/no-redundant-default-prop.d.ts +17 -0
  338. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +17 -11
  339. package/dist/eslint-plugin/rules/no-redundant-default-prop.js.map +1 -1
  340. package/dist/eslint-plugin/types.d.ts +22 -3
  341. package/dist/i18n/I18nProvider.js +1 -1
  342. package/dist/i18n/createFormatter.js +1 -1
  343. package/dist/i18n/index.js +1 -1
  344. package/dist/i18n/instance.js +1 -1
  345. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  346. package/dist/i18n/locales/en-US/uikit.js +1 -1
  347. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  348. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  349. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  350. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  351. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  352. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  353. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  354. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  355. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  356. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  357. package/dist/i18n/locales.js +1 -1
  358. package/dist/i18n/useFormatter.js +1 -1
  359. package/dist/i18n/useI18n.js +1 -1
  360. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  361. package/dist/icons/AdjustmentsIcon.js +1 -1
  362. package/dist/icons/AiIcon.js +1 -1
  363. package/dist/icons/AreaChartIcon.js +1 -1
  364. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  365. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  366. package/dist/icons/BackwardIcon.js +1 -1
  367. package/dist/icons/BarChartIcon.js +1 -1
  368. package/dist/icons/BellFilledIcon.js +1 -1
  369. package/dist/icons/BellIcon.js +1 -1
  370. package/dist/icons/BooleanIcon.js +1 -1
  371. package/dist/icons/CalendarEditIcon.js +1 -1
  372. package/dist/icons/CalendarIcon.js +1 -1
  373. package/dist/icons/CaretDownIcon.js +1 -1
  374. package/dist/icons/CaretUpIcon.js +1 -1
  375. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  376. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  377. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  378. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  379. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  380. package/dist/icons/ChartBarLineIcon.js +1 -1
  381. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  382. package/dist/icons/ChartBarStackedIcon.js +1 -1
  383. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  384. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  385. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  386. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  387. package/dist/icons/ChartBubbleIcon.js +1 -1
  388. package/dist/icons/ChartDonut2Icon.js +1 -1
  389. package/dist/icons/ChartFunnelIcon.js +1 -1
  390. package/dist/icons/ChartHeatmapIcon.js +1 -1
  391. package/dist/icons/ChartKPIIcon.js +1 -1
  392. package/dist/icons/ChartPie2Icon.js +1 -1
  393. package/dist/icons/ChartScatterIcon.js +1 -1
  394. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  395. package/dist/icons/CheckCircleIcon.js +1 -1
  396. package/dist/icons/CheckIcon.js +1 -1
  397. package/dist/icons/CircleFilledIcon.js +1 -1
  398. package/dist/icons/ClearIcon.js +1 -1
  399. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  400. package/dist/icons/CloseCircleIcon.js +1 -1
  401. package/dist/icons/CloseIcon.js +1 -1
  402. package/dist/icons/CodeIcon.js +1 -1
  403. package/dist/icons/ColumnTotalIcon.js +1 -1
  404. package/dist/icons/CopyIcon.js +1 -1
  405. package/dist/icons/CountIcon.js +1 -1
  406. package/dist/icons/CubeIcon.js +1 -1
  407. package/dist/icons/CubePauseIcon.js +1 -1
  408. package/dist/icons/CubePlayIcon.js +1 -1
  409. package/dist/icons/CurrencyDollarIcon.js +1 -1
  410. package/dist/icons/DangerIcon.js +1 -1
  411. package/dist/icons/DashboardIcon.js +1 -1
  412. package/dist/icons/DatabaseIcon.js +1 -1
  413. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  414. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  415. package/dist/icons/DirectionIcon.js +1 -1
  416. package/dist/icons/DonutIcon.js +1 -1
  417. package/dist/icons/DownIcon.js +1 -1
  418. package/dist/icons/EditIcon.js +1 -1
  419. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  420. package/dist/icons/ExclamationCircleIcon.js +1 -1
  421. package/dist/icons/ExclamationIcon.js +1 -1
  422. package/dist/icons/EyeIcon.js +1 -1
  423. package/dist/icons/EyeInvisibleIcon.js +1 -1
  424. package/dist/icons/FilterIcon.js +1 -1
  425. package/dist/icons/FolderFilledIcon.js +1 -1
  426. package/dist/icons/FolderIcon.js +1 -1
  427. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  428. package/dist/icons/FolderOpenIcon.js +1 -1
  429. package/dist/icons/ForwardIcon.js +1 -1
  430. package/dist/icons/GripVerticalIcon.js +1 -1
  431. package/dist/icons/HierarchyIcon.js +1 -1
  432. package/dist/icons/HierarchyOpenIcon.js +1 -1
  433. package/dist/icons/Icon.js +1 -1
  434. package/dist/icons/InfoCircleIcon.js +1 -1
  435. package/dist/icons/InfoIcon.js +1 -1
  436. package/dist/icons/KeyIcon.js +1 -1
  437. package/dist/icons/LeftIcon.js +1 -1
  438. package/dist/icons/LineChartIcon.js +1 -1
  439. package/dist/icons/LoadingIcon.js +1 -1
  440. package/dist/icons/LockFilledIcon.js +1 -1
  441. package/dist/icons/LockIcon.js +1 -1
  442. package/dist/icons/MoreIcon.js +1 -1
  443. package/dist/icons/NotAllowedIcon.js +1 -1
  444. package/dist/icons/Number123Icon.js +1 -1
  445. package/dist/icons/NumberIcon.js +1 -1
  446. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  447. package/dist/icons/PauseCircleIcon.js +1 -1
  448. package/dist/icons/PauseIcon.js +1 -1
  449. package/dist/icons/PercentageIcon.js +1 -1
  450. package/dist/icons/PieChartIcon.js +1 -1
  451. package/dist/icons/PipetteIcon.js +1 -1
  452. package/dist/icons/PlayCircleIcon.js +1 -1
  453. package/dist/icons/PlayIcon.js +1 -1
  454. package/dist/icons/PlusIcon.js +1 -1
  455. package/dist/icons/ProgressBarIcon.js +1 -1
  456. package/dist/icons/ReloadIcon.js +1 -1
  457. package/dist/icons/ReportIcon.js +1 -1
  458. package/dist/icons/ReturnIcon.js +1 -1
  459. package/dist/icons/RightIcon.js +1 -1
  460. package/dist/icons/RowTotalsIcon.js +1 -1
  461. package/dist/icons/SchemeIcon.js +1 -1
  462. package/dist/icons/SearchIcon.js +1 -1
  463. package/dist/icons/SemanticQueryIcon.js +1 -1
  464. package/dist/icons/SettingsIcon.js +1 -1
  465. package/dist/icons/ShieldFilledIcon.js +1 -1
  466. package/dist/icons/ShieldIcon.js +1 -1
  467. package/dist/icons/SlashIcon.js +1 -1
  468. package/dist/icons/SparklesIcon.js +1 -1
  469. package/dist/icons/SqlIcon.js +1 -1
  470. package/dist/icons/StatsIcon.js +1 -1
  471. package/dist/icons/StopIcon.js +1 -1
  472. package/dist/icons/StringIcon.js +1 -1
  473. package/dist/icons/SubtotalsIcon.js +1 -1
  474. package/dist/icons/SwitchIcon.js +1 -1
  475. package/dist/icons/TableIcon.js +1 -1
  476. package/dist/icons/ThumbsDownIcon.js +1 -1
  477. package/dist/icons/ThumbsUpIcon.js +1 -1
  478. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  479. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  480. package/dist/icons/ThunderboltIcon.js +1 -1
  481. package/dist/icons/TimeIcon.js +1 -1
  482. package/dist/icons/TrashIcon.js +1 -1
  483. package/dist/icons/UnlockIcon.js +1 -1
  484. package/dist/icons/UpIcon.js +1 -1
  485. package/dist/icons/UserGroupIcon.js +1 -1
  486. package/dist/icons/UserIcon.js +1 -1
  487. package/dist/icons/UserLockIcon.js +1 -1
  488. package/dist/icons/ViewIcon.js +1 -1
  489. package/dist/icons/WarningFilledIcon.js +1 -1
  490. package/dist/icons/WarningIcon.js +1 -1
  491. package/dist/icons/wrap-icon.js +1 -1
  492. package/dist/index.js +1 -1
  493. package/dist/probe/canonicalize.js +1 -1
  494. package/dist/probe/css.js +1 -1
  495. package/dist/probe/index.js +1 -1
  496. package/dist/provider.js +1 -1
  497. package/dist/providers/TrackingProvider.js +1 -1
  498. package/dist/providers/navigationAdapter.default.js +1 -1
  499. package/dist/tokens/base.js +1 -1
  500. package/dist/tokens/color-theme.js +1 -1
  501. package/dist/tokens/colors.js +1 -1
  502. package/dist/tokens/index.js +1 -1
  503. package/dist/tokens/layout.js +1 -1
  504. package/dist/tokens/lazy-styles.js +1 -1
  505. package/dist/tokens/palette-config.js +1 -1
  506. package/dist/tokens/palette.js +1 -1
  507. package/dist/tokens/shadows.js +1 -1
  508. package/dist/tokens/sizes.js +1 -1
  509. package/dist/tokens/spacing.js +1 -1
  510. package/dist/tokens/typography.js +1 -1
  511. package/dist/utils/ResizeSensor.js +1 -1
  512. package/dist/utils/is-dev-env.js +1 -1
  513. package/dist/utils/modules.js +1 -1
  514. package/dist/utils/promise.js +1 -1
  515. package/dist/utils/raf.js +1 -1
  516. package/dist/utils/random.js +1 -1
  517. package/dist/utils/range.js +1 -1
  518. package/dist/utils/react/RenderCache.js +1 -1
  519. package/dist/utils/react/Slots.js +1 -1
  520. package/dist/utils/react/chain.js +1 -1
  521. package/dist/utils/react/disabledProps.js +1 -1
  522. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  523. package/dist/utils/react/index.js +1 -1
  524. package/dist/utils/react/interactions.js +1 -1
  525. package/dist/utils/react/isTextOnly.js +1 -1
  526. package/dist/utils/react/mapProps.js +1 -1
  527. package/dist/utils/react/mergeProps.js +1 -1
  528. package/dist/utils/react/nullableValue.js +1 -1
  529. package/dist/utils/react/resolveIcon.js +1 -1
  530. package/dist/utils/react/sharedStore.js +1 -1
  531. package/dist/utils/react/useBufferedValue.js +1 -1
  532. package/dist/utils/react/useCombinedRefs.js +1 -1
  533. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  534. package/dist/utils/react/useEventBus.js +1 -1
  535. package/dist/utils/react/useId.js +1 -1
  536. package/dist/utils/react/useIsDarwin.js +1 -1
  537. package/dist/utils/react/useKeySymbols.js +1 -1
  538. package/dist/utils/react/useLayoutEffect.js +1 -1
  539. package/dist/utils/react/useLocalStorage.js +1 -1
  540. package/dist/utils/react/useMergeStyles.js +1 -1
  541. package/dist/utils/react/usePopoverSync.js +1 -1
  542. package/dist/utils/react/useQaProps.js +1 -1
  543. package/dist/utils/react/useViewportSize.js +1 -1
  544. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  545. package/dist/utils/selection.js +1 -1
  546. package/dist/utils/styles.js +1 -1
  547. package/dist/utils/tree.js +1 -1
  548. package/dist/utils/warnings.js +1 -1
  549. package/dist/version.js +2 -2
  550. package/docs/components/fields/RadioGroup.md +39 -5
  551. package/package.json +4 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
@@ -10,7 +10,7 @@ import { HiddenInput } from "../../HiddenInput.js";
10
10
  import { RADIO_SIZE_MAP } from "../../navigation/Tabs/types.js";
11
11
  import { useRadioProvider } from "./context.js";
12
12
  import { _RadioGroup } from "./RadioGroup.js";
13
- import { OUTER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
13
+ import { CONTAINER_STYLES, OUTER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
14
14
  import { forwardRef, useMemo, useRef } from "react";
15
15
  import { jsx, jsxs } from "react/jsx-runtime";
16
16
  import { useHover, useRadio as useRadio$1 } from "react-aria";
@@ -24,7 +24,12 @@ const RadioButtonElement = tasty(_Item, {
24
24
  preset: "t3m",
25
25
  lineHeight: "1em",
26
26
  flexGrow: 1,
27
- gridTemplate: "\"icon prefix label suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content",
27
+ gridTemplate: {
28
+ "": "\"icon prefix label suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content",
29
+ "description=inline": "\"icon prefix description suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content",
30
+ "description=inline & has-label": "\"icon prefix label suffix rightIcon actions\" auto \"icon prefix description suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content",
31
+ "description=block": "\"icon prefix label suffix rightIcon actions\" auto \"description description description description description description\" auto / max-content max-content max-content max-content max-content max-content"
32
+ },
28
33
  placeContent: "center",
29
34
  shadow: {
30
35
  "": false,
@@ -124,11 +129,52 @@ const RadioLabelElement = tasty({
124
129
  qa: "RadioLabel",
125
130
  styles: INLINE_LABEL_STYLES
126
131
  });
132
+ /**
133
+ * `Item` props a button-type radio hands straight to the `Item` it renders, so
134
+ * `Radio.Button` accepts the same content and presentation API as an
135
+ * `ItemButton`. Kept as a runtime list so a new `Item` prop only has to be
136
+ * added in one place.
137
+ *
138
+ * Deliberately absent:
139
+ * - `size`, `type`, `theme`, `isSelected`, `isDisabled`, `mods`, `styles` —
140
+ * owned by the radio (they come from the prop/context/validation resolution
141
+ * below).
142
+ * - `shape` — the radius is owned by the button-group layout below, which keeps
143
+ * only the outer-side radius on the first/last radio so the group reads as one
144
+ * continuous control. Forwarding `shape` would have no effect.
145
+ * - `htmlType`, `as`, `insideWrapper`, `showActions` — internal to `Item` /
146
+ * `ItemButton`.
147
+ * - `actions`, `autoHideActions`, `preserveActionsSpace`,
148
+ * `disableActionsFocus` — a button radio renders as a `<label>`, and a click
149
+ * anywhere inside a label activates its control, so nested action buttons
150
+ * would select the radio (and nested interactive content is invalid inside a
151
+ * label to begin with).
152
+ */
153
+ const ITEM_PROPS = [
154
+ "icon",
155
+ "rightIcon",
156
+ "prefix",
157
+ "suffix",
158
+ "description",
159
+ "descriptionPlacement",
160
+ "descriptionProps",
161
+ "tooltip",
162
+ "hotkeys",
163
+ "keyboardShortcutProps",
164
+ "level",
165
+ "isLoading",
166
+ "loadingSlot",
167
+ "highlight",
168
+ "highlightCaseSensitive",
169
+ "highlightStyles",
170
+ "labelRef"
171
+ ];
127
172
  function Radio(props, ref) {
128
173
  props = useFieldProps(props, { defaultValidationTrigger: "onChange" });
129
- let { qa, isDisabled, isInvalid, isValid, children, label, autoFocus, labelStyles, labelProps, type, buttonType, size, icon, rightIcon, prefix, suffix, description, tooltip, hotkeys, "aria-label": ariaLabel, form, ...otherProps } = props;
174
+ let { qa, isDisabled, isInvalid, isValid, children, label, autoFocus, labelStyles, labelProps, type, buttonType, size, "aria-label": ariaLabel, form, ...otherProps } = props;
130
175
  label = label || children;
131
- let styles = extractStyles(otherProps, OUTER_STYLES);
176
+ const itemProps = {};
177
+ for (const itemPropName of ITEM_PROPS) if (itemPropName in props) itemProps[itemPropName] = props[itemPropName];
132
178
  labelStyles = {
133
179
  ...INLINE_LABEL_STYLES,
134
180
  ...labelStyles
@@ -143,6 +189,7 @@ function Radio(props, ref) {
143
189
  if (!state) throw new Error("CubeUI: The Radio button is used outside the RadioGroup.");
144
190
  let effectiveType = type ?? contextType ?? "radio";
145
191
  let isButton = effectiveType === "button" || effectiveType === "tabs";
192
+ let styles = extractStyles(otherProps, isButton ? CONTAINER_STYLES : OUTER_STYLES);
146
193
  let effectiveSize = size ?? contextSize ?? "medium";
147
194
  if (effectiveType === "tabs" && isButton) effectiveSize = RADIO_SIZE_MAP[effectiveSize === "large" ? "large" : "medium"];
148
195
  let effectiveButtonType;
@@ -157,7 +204,9 @@ function Radio(props, ref) {
157
204
  }
158
205
  else effectiveButtonType = baseButtonType;
159
206
  }
160
- let effectiveIsDisabled = isDisabled ?? contextIsDisabled ?? false;
207
+ let baseIsDisabled = isDisabled ?? contextIsDisabled ?? false;
208
+ let isLoadingButton = isButton && props.isLoading === true;
209
+ let effectiveIsDisabled = baseIsDisabled === true || isLoadingButton && isDisabled !== false;
161
210
  let { isFocused, focusProps } = useFocus$1({ isDisabled: effectiveIsDisabled }, true);
162
211
  let { hoverProps, isHovered } = useHover({ isDisabled: effectiveIsDisabled });
163
212
  let inputRef = useRef(null);
@@ -196,18 +245,12 @@ function Radio(props, ref) {
196
245
  isValid
197
246
  }, { includeValid: true }),
198
247
  size: effectiveSize,
199
- icon,
200
- rightIcon,
201
- prefix,
202
- suffix,
203
- description,
204
- tooltip,
205
- hotkeys,
248
+ ...itemProps,
206
249
  isSelected: isRadioSelected,
207
250
  isDisabled: isRadioDisabled,
208
251
  mods: {
209
252
  ...mods,
210
- ...forceSelectedMod ? { selected: true } : {}
253
+ ...forceSelectedMod && !isRadioDisabled ? { selected: true } : {}
211
254
  },
212
255
  styles,
213
256
  ...mergeProps$1(hoverProps, focusProps),
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","names":["Item","useFocus","useRadio","mergeProps","RadioGroup"],"sources":["../../../../src/components/fields/RadioGroup/Radio.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport {\n BaseProps,\n filterBaseProps,\n OUTER_STYLES,\n OuterStyleProps,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef } from 'react';\nimport { useHover, useRadio } from 'react-aria';\n\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport { CubeItemProps, Item } from '../../content/Item/Item';\nimport {\n getValidationMods,\n getValidationTheme,\n INLINE_LABEL_STYLES,\n useFieldProps,\n} from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\nimport { RADIO_SIZE_MAP } from '../../navigation/Tabs/types';\n\nimport { useRadioProvider } from './context';\nimport { RadioGroup } from './RadioGroup';\n\nimport type { AriaRadioProps } from 'react-aria';\n\nexport { AriaRadioProps };\nexport { useRadio };\n\nconst RadioButtonElement = tasty(Item, {\n qa: 'RadioButton',\n as: 'label',\n styles: {\n preset: 't3m',\n lineHeight: '1em',\n flexGrow: 1,\n gridTemplate:\n '\"icon prefix label suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content',\n placeContent: 'center',\n shadow: {\n '': false,\n 'tabs & selected': '$item-shadow',\n 'tabs & selected & disabled': false,\n },\n fill: {\n 'selected & tabs': '#surface',\n 'selected & tabs & disabled': '#surface.6',\n },\n color: {\n 'selected & tabs': '#dark',\n 'selected & tabs & disabled': '#dark.3',\n },\n\n // Mirror the ButtonSplit grouping: the corner radius is shared so the\n // first/last items keep only their outer-side radius and middle items go\n // square; a -1bw left margin overlaps adjacent borders into a single\n // continuous edge. The selected button is bumped above its siblings so its\n // brand-tinted border is visible from all four sides — without the bump\n // the right edge of an adjacent sibling would paint over the selected\n // button's left edge (and vice-versa). Hover / focus-visible bump higher\n // still so they always read on top of the selected highlight.\n radius: {\n '': true,\n '!tabs & !:last-child': '1r left',\n '!tabs & !:first-child': '1r right',\n '!tabs & !:first-child & !:last-child': 0,\n },\n margin: {\n '': 0,\n '!tabs & !:first-child': '-1bw left',\n },\n zIndex: {\n '!tabs & selected': 1,\n },\n\n Label: {\n placeSelf: {\n '': 'center start',\n '!has-prefix & !has-suffix & !has-icon & !has-right-icon': 'center',\n },\n },\n },\n});\n\nconst RadioWrapperElement = tasty({\n as: 'label',\n qa: 'RadioWrapper',\n styles: {\n position: 'relative',\n display: 'grid',\n placeItems: 'center start',\n placeContent: 'center start',\n gap: '1x',\n flow: 'column',\n preset: 'default',\n width: 'min-content',\n radius: true,\n margin: {\n '': '1x right',\n button: '0',\n },\n zIndex: {\n '': 'initial',\n checked: 1,\n },\n flexGrow: 1,\n },\n});\n\nconst RadioNormalElement = tasty({\n styles: {\n display: 'grid',\n placeItems: 'center',\n radius: 'round',\n fill: {\n '': '#surface',\n disabled: '#disabled-surface',\n },\n color: {\n '': '#clear',\n checked: '#primary-text',\n 'invalid & checked': '#danger-text',\n 'valid & checked': '#success-text',\n 'disabled | !checked': '#clear',\n 'disabled & checked': '#dark.12',\n },\n border: {\n '': '#dark-04',\n checked: '#primary-text',\n invalid: '#danger-text.50',\n valid: '#success-text.50',\n disabled: '#dark.12',\n },\n width: '2x',\n height: '2x',\n outline: {\n '': '#primary-text.0 / 1bw',\n focused: '1bw #primary-text / 1bw',\n },\n transition: 'theme',\n whiteSpace: 'nowrap',\n\n RadioCircle: {\n display: 'block',\n radius: 'round',\n width: '1x',\n height: '1x',\n fill: '#current',\n },\n },\n});\n\nconst RadioCircleElement = <div data-element=\"RadioCircle\" />;\n\nconst RadioLabelElement = tasty({\n qa: 'RadioLabel',\n styles: INLINE_LABEL_STYLES,\n});\n\nexport interface CubeRadioProps\n extends BaseProps,\n AriaRadioProps,\n Omit<FieldBaseProps, 'tooltip'>,\n OuterStyleProps {\n 'aria-label'?: string;\n /* The visual type of the radio button */\n type?: 'button' | 'radio';\n buttonType?: CubeItemProps['type'];\n value?: string;\n /* Size of the button (for button type only) */\n size?: Omit<CubeItemProps['size'], 'inline'>;\n /* Icon to display (for button type only) */\n icon?: CubeItemProps['icon'];\n /* Icon to display on the right (for button type only) */\n rightIcon?: CubeItemProps['rightIcon'];\n /* Prefix element (for button type only) */\n prefix?: CubeItemProps['prefix'];\n /* Suffix element (for button type only) */\n suffix?: CubeItemProps['suffix'];\n /* Description text (for button type only) */\n description?: CubeItemProps['description'];\n /* Tooltip configuration (for button type only) */\n tooltip?: CubeItemProps['tooltip'];\n /* Keyboard shortcut (for button type only) */\n hotkeys?: CubeItemProps['hotkeys'];\n}\n\nfunction Radio(props: CubeRadioProps, ref) {\n props = useFieldProps(props, { defaultValidationTrigger: 'onChange' });\n\n let {\n qa,\n isDisabled,\n isInvalid,\n isValid,\n children,\n label,\n autoFocus,\n labelStyles,\n labelProps,\n type,\n buttonType,\n size,\n icon,\n rightIcon,\n prefix,\n suffix,\n description,\n tooltip,\n hotkeys,\n 'aria-label': ariaLabel,\n form,\n ...otherProps\n } = props;\n\n label = label || children;\n\n let styles = extractStyles(otherProps, OUTER_STYLES);\n\n labelStyles = {\n ...INLINE_LABEL_STYLES,\n ...labelStyles,\n };\n\n let radioGroupProps = useRadioProvider();\n\n let state = radioGroupProps && radioGroupProps.state;\n let name = radioGroupProps && radioGroupProps.name;\n let contextSize = radioGroupProps?.size;\n let contextButtonType = radioGroupProps?.buttonType;\n let contextType = radioGroupProps?.type;\n let contextIsDisabled = radioGroupProps?.isDisabled;\n\n if (!state) {\n throw new Error('CubeUI: The Radio button is used outside the RadioGroup.');\n }\n\n // Determine effective type from props or context\n let effectiveType = type ?? contextType ?? 'radio';\n let isButton = effectiveType === 'button' || effectiveType === 'tabs';\n\n // Determine effective size with priority: prop > context > default\n let effectiveSize: CubeItemProps['size'] = (size ??\n contextSize ??\n 'medium') as CubeItemProps['size'];\n\n // Apply size mapping for tabs mode button radios.\n // API sizes mapped to Item button sizes: large -> medium (40px), medium -> xsmall (32px).\n if (effectiveType === 'tabs' && isButton) {\n effectiveSize =\n RADIO_SIZE_MAP[effectiveSize === 'large' ? 'large' : 'medium'];\n }\n\n // Determine effective button type\n // In tabs mode, always use 'clear' and ignore buttonType prop.\n let effectiveButtonType: string;\n // When buttonType is 'primary', non-selected radios use 'outline' with a\n // visual-only `selected` mod (mods.selected=true) to render the brand-tinted\n // outline+selected look — this is the only place mods.selected intentionally\n // decouples from the aria/isSelected state.\n let forceSelectedMod = false;\n if (effectiveType === 'tabs') {\n effectiveButtonType = 'clear';\n } else {\n const baseButtonType = buttonType ?? contextButtonType ?? 'outline';\n if (baseButtonType === 'primary') {\n if (state.selectedValue === props.value) {\n effectiveButtonType = 'primary';\n } else {\n effectiveButtonType = 'outline';\n forceSelectedMod = true;\n }\n } else {\n effectiveButtonType = baseButtonType;\n }\n }\n\n // Use context isDisabled if prop isDisabled is not explicitly set\n let effectiveIsDisabled = isDisabled ?? contextIsDisabled ?? false;\n\n let { isFocused, focusProps } = useFocus(\n { isDisabled: effectiveIsDisabled },\n true,\n );\n let { hoverProps, isHovered } = useHover({ isDisabled: effectiveIsDisabled });\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n let {\n inputProps,\n isDisabled: isRadioDisabled,\n isSelected: isRadioSelected,\n } = useRadio(\n {\n name,\n ...props,\n isDisabled: effectiveIsDisabled,\n },\n state,\n inputRef,\n );\n\n const mods = useMemo(\n () => ({\n checked: isRadioSelected,\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isRadioDisabled,\n hovered: isHovered,\n button: isButton,\n focused: isFocused,\n tabs: effectiveType === 'tabs',\n }),\n [\n isRadioSelected,\n isInvalid,\n isValid,\n isRadioDisabled,\n isHovered,\n isButton,\n isFocused,\n effectiveType,\n ],\n );\n\n // Render button type using Item\n if (isButton) {\n return (\n <RadioButtonElement\n ref={domRef}\n type={effectiveButtonType}\n theme={getValidationTheme(\n 'default',\n { isInvalid, isValid },\n { includeValid: true },\n )}\n size={effectiveSize}\n icon={icon}\n rightIcon={rightIcon}\n prefix={prefix}\n suffix={suffix}\n description={description}\n tooltip={tooltip}\n hotkeys={hotkeys}\n isSelected={isRadioSelected}\n isDisabled={isRadioDisabled}\n mods={{ ...mods, ...(forceSelectedMod ? { selected: true } : {}) }}\n styles={styles}\n {...mergeProps(hoverProps, focusProps)}\n >\n <HiddenInput\n qa={qa || 'Radio'}\n data-input-type=\"radio\"\n aria-label={ariaLabel}\n {...inputProps}\n ref={inputRef}\n form={null}\n mods={{ button: isButton, disabled: isRadioDisabled }}\n />\n {label}\n </RadioButtonElement>\n );\n }\n\n // Render classic radio type\n return (\n <RadioWrapperElement\n styles={styles}\n {...hoverProps}\n ref={domRef}\n mods={mods}\n data-type={type}\n >\n <HiddenInput\n qa={qa || 'Radio'}\n data-input-type=\"radio\"\n aria-label={ariaLabel}\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n mods={{ button: isButton }}\n />\n <RadioNormalElement data-element=\"Input\" mods={mods} data-type={type}>\n {RadioCircleElement}\n </RadioNormalElement>\n {label && (\n <RadioLabelElement\n mods={mods}\n styles={labelStyles}\n {...(labelProps ? filterBaseProps(labelProps) : undefined)}\n >\n {label}\n </RadioLabelElement>\n )}\n </RadioWrapperElement>\n );\n}\n\n/**\n * Radio buttons allow users to select a single option from a list of mutually exclusive options.\n * All possible options are exposed up front for users to compare.\n */\nconst _Radio = forwardRef(Radio);\n\nconst Tabs = tasty(RadioGroup, {\n type: 'tabs',\n});\n\nconst ButtonGroup = tasty(RadioGroup, {\n type: 'button',\n});\n\nconst __Radio = Object.assign(\n _Radio as typeof _Radio & {\n Group: typeof RadioGroup;\n Tabs: typeof Tabs;\n ButtonGroup: typeof ButtonGroup;\n Button: typeof _Radio;\n },\n {\n Group: RadioGroup,\n Tabs,\n ButtonGroup,\n Button: _Radio,\n },\n);\n\n__Radio.displayName = 'Radio';\n\nexport { __Radio as Radio };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Radio.js","names":["Item","useFocus","useRadio","mergeProps","RadioGroup"],"sources":["../../../../src/components/fields/RadioGroup/Radio.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n OUTER_STYLES,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef } from 'react';\nimport { useHover, useRadio } from 'react-aria';\n\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport { CubeItemProps, Item } from '../../content/Item/Item';\nimport {\n getValidationMods,\n getValidationTheme,\n INLINE_LABEL_STYLES,\n useFieldProps,\n} from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\nimport { RADIO_SIZE_MAP } from '../../navigation/Tabs/types';\n\nimport { useRadioProvider } from './context';\nimport { RadioGroup } from './RadioGroup';\n\nimport type { AriaRadioProps } from 'react-aria';\n\nexport { AriaRadioProps };\nexport { useRadio };\n\nconst RadioButtonElement = tasty(Item, {\n qa: 'RadioButton',\n as: 'label',\n styles: {\n preset: 't3m',\n lineHeight: '1em',\n flexGrow: 1,\n // Same areas as `Item`, but every column is `max-content` — a radio button\n // is sized by its content, not stretched like a list item. The\n // `description` rows have to be repeated here because a plain string would\n // replace `Item`'s whole state map and leave the description without a\n // grid area to land in.\n gridTemplate: {\n '': '\"icon prefix label suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content',\n 'description=inline':\n '\"icon prefix description suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content',\n 'description=inline & has-label':\n '\"icon prefix label suffix rightIcon actions\" auto \"icon prefix description suffix rightIcon actions\" auto / max-content max-content max-content max-content max-content max-content',\n 'description=block':\n '\"icon prefix label suffix rightIcon actions\" auto \"description description description description description description\" auto / max-content max-content max-content max-content max-content max-content',\n },\n placeContent: 'center',\n shadow: {\n '': false,\n 'tabs & selected': '$item-shadow',\n 'tabs & selected & disabled': false,\n },\n fill: {\n 'selected & tabs': '#surface',\n 'selected & tabs & disabled': '#surface.6',\n },\n color: {\n 'selected & tabs': '#dark',\n 'selected & tabs & disabled': '#dark.3',\n },\n\n // Mirror the ButtonSplit grouping: the corner radius is shared so the\n // first/last items keep only their outer-side radius and middle items go\n // square; a -1bw left margin overlaps adjacent borders into a single\n // continuous edge. The selected button is bumped above its siblings so its\n // brand-tinted border is visible from all four sides — without the bump\n // the right edge of an adjacent sibling would paint over the selected\n // button's left edge (and vice-versa). Hover / focus-visible bump higher\n // still so they always read on top of the selected highlight.\n radius: {\n '': true,\n '!tabs & !:last-child': '1r left',\n '!tabs & !:first-child': '1r right',\n '!tabs & !:first-child & !:last-child': 0,\n },\n margin: {\n '': 0,\n '!tabs & !:first-child': '-1bw left',\n },\n zIndex: {\n '!tabs & selected': 1,\n },\n\n Label: {\n placeSelf: {\n '': 'center start',\n '!has-prefix & !has-suffix & !has-icon & !has-right-icon': 'center',\n },\n },\n },\n});\n\nconst RadioWrapperElement = tasty({\n as: 'label',\n qa: 'RadioWrapper',\n styles: {\n position: 'relative',\n display: 'grid',\n placeItems: 'center start',\n placeContent: 'center start',\n gap: '1x',\n flow: 'column',\n preset: 'default',\n width: 'min-content',\n radius: true,\n margin: {\n '': '1x right',\n button: '0',\n },\n zIndex: {\n '': 'initial',\n checked: 1,\n },\n flexGrow: 1,\n },\n});\n\nconst RadioNormalElement = tasty({\n styles: {\n display: 'grid',\n placeItems: 'center',\n radius: 'round',\n fill: {\n '': '#surface',\n disabled: '#disabled-surface',\n },\n color: {\n '': '#clear',\n checked: '#primary-text',\n 'invalid & checked': '#danger-text',\n 'valid & checked': '#success-text',\n 'disabled | !checked': '#clear',\n 'disabled & checked': '#dark.12',\n },\n border: {\n '': '#dark-04',\n checked: '#primary-text',\n invalid: '#danger-text.50',\n valid: '#success-text.50',\n disabled: '#dark.12',\n },\n width: '2x',\n height: '2x',\n outline: {\n '': '#primary-text.0 / 1bw',\n focused: '1bw #primary-text / 1bw',\n },\n transition: 'theme',\n whiteSpace: 'nowrap',\n\n RadioCircle: {\n display: 'block',\n radius: 'round',\n width: '1x',\n height: '1x',\n fill: '#current',\n },\n },\n});\n\nconst RadioCircleElement = <div data-element=\"RadioCircle\" />;\n\nconst RadioLabelElement = tasty({\n qa: 'RadioLabel',\n styles: INLINE_LABEL_STYLES,\n});\n\n/**\n * `Item` props a button-type radio hands straight to the `Item` it renders, so\n * `Radio.Button` accepts the same content and presentation API as an\n * `ItemButton`. Kept as a runtime list so a new `Item` prop only has to be\n * added in one place.\n *\n * Deliberately absent:\n * - `size`, `type`, `theme`, `isSelected`, `isDisabled`, `mods`, `styles` —\n * owned by the radio (they come from the prop/context/validation resolution\n * below).\n * - `shape` — the radius is owned by the button-group layout below, which keeps\n * only the outer-side radius on the first/last radio so the group reads as one\n * continuous control. Forwarding `shape` would have no effect.\n * - `htmlType`, `as`, `insideWrapper`, `showActions` — internal to `Item` /\n * `ItemButton`.\n * - `actions`, `autoHideActions`, `preserveActionsSpace`,\n * `disableActionsFocus` — a button radio renders as a `<label>`, and a click\n * anywhere inside a label activates its control, so nested action buttons\n * would select the radio (and nested interactive content is invalid inside a\n * label to begin with).\n */\nconst ITEM_PROPS = [\n 'icon',\n 'rightIcon',\n 'prefix',\n 'suffix',\n 'description',\n 'descriptionPlacement',\n 'descriptionProps',\n 'tooltip',\n 'hotkeys',\n 'keyboardShortcutProps',\n 'level',\n 'isLoading',\n 'loadingSlot',\n 'highlight',\n 'highlightCaseSensitive',\n 'highlightStyles',\n 'labelRef',\n] as const;\n\ntype RadioItemProps = Pick<CubeItemProps, (typeof ITEM_PROPS)[number]>;\n\nexport interface CubeRadioProps\n extends BaseProps,\n AriaRadioProps,\n Omit<FieldBaseProps, 'tooltip'>,\n /**\n * Container style props apply to button-type radios (they style the `Item`\n * the radio renders). A classic radio only reads the outer subset —\n * everything else belongs to its inner circle and label.\n */\n ContainerStyleProps,\n /** All of these apply to button/tabs-type radios only. */\n RadioItemProps {\n 'aria-label'?: string;\n /* The visual type of the radio button */\n type?: 'button' | 'radio';\n buttonType?: CubeItemProps['type'];\n value?: string;\n /* Size of the button (for button type only) */\n size?: Omit<CubeItemProps['size'], 'inline'>;\n}\n\nfunction Radio(props: CubeRadioProps, ref) {\n props = useFieldProps(props, { defaultValidationTrigger: 'onChange' });\n\n let {\n qa,\n isDisabled,\n isInvalid,\n isValid,\n children,\n label,\n autoFocus,\n labelStyles,\n labelProps,\n type,\n buttonType,\n size,\n 'aria-label': ariaLabel,\n form,\n ...otherProps\n } = props;\n\n label = label || children;\n\n // Only the props the caller actually passed, so an unset one keeps `Item`'s\n // own default instead of being overridden with `undefined`.\n const itemProps: Record<string, unknown> = {};\n\n for (const itemPropName of ITEM_PROPS) {\n if (itemPropName in props) {\n itemProps[itemPropName] = (props as Record<string, unknown>)[\n itemPropName\n ];\n }\n }\n\n labelStyles = {\n ...INLINE_LABEL_STYLES,\n ...labelStyles,\n };\n\n let radioGroupProps = useRadioProvider();\n\n let state = radioGroupProps && radioGroupProps.state;\n let name = radioGroupProps && radioGroupProps.name;\n let contextSize = radioGroupProps?.size;\n let contextButtonType = radioGroupProps?.buttonType;\n let contextType = radioGroupProps?.type;\n let contextIsDisabled = radioGroupProps?.isDisabled;\n\n if (!state) {\n throw new Error('CubeUI: The Radio button is used outside the RadioGroup.');\n }\n\n // Determine effective type from props or context\n let effectiveType = type ?? contextType ?? 'radio';\n let isButton = effectiveType === 'button' || effectiveType === 'tabs';\n\n // A button radio *is* an `Item`, so it takes the same container style props an\n // `ItemButton` does. A classic radio only exposes the outer subset: the rest\n // would land on the wrapper that holds the circle and the label, where\n // `padding` / `fill` / `preset` mean something entirely different.\n let styles = extractStyles(\n otherProps,\n isButton ? CONTAINER_STYLES : OUTER_STYLES,\n );\n\n // Determine effective size with priority: prop > context > default\n let effectiveSize: CubeItemProps['size'] = (size ??\n contextSize ??\n 'medium') as CubeItemProps['size'];\n\n // Apply size mapping for tabs mode button radios.\n // API sizes mapped to Item button sizes: large -> medium (40px), medium -> xsmall (32px).\n if (effectiveType === 'tabs' && isButton) {\n effectiveSize =\n RADIO_SIZE_MAP[effectiveSize === 'large' ? 'large' : 'medium'];\n }\n\n // Determine effective button type\n // In tabs mode, always use 'clear' and ignore buttonType prop.\n let effectiveButtonType: string;\n // When buttonType is 'primary', non-selected radios use 'outline' with a\n // visual-only `selected` mod (mods.selected=true) to render the brand-tinted\n // outline+selected look — this is the only place mods.selected intentionally\n // decouples from the aria/isSelected state. Suppressed while disabled: the\n // real selected radio is then painted with the brand-tinted disabled chip\n // (`accent-disabled-surface`), and faking `selected` on its siblings would\n // give them the outline variant of that same chip and erase the distinction.\n let forceSelectedMod = false;\n if (effectiveType === 'tabs') {\n effectiveButtonType = 'clear';\n } else {\n const baseButtonType = buttonType ?? contextButtonType ?? 'outline';\n if (baseButtonType === 'primary') {\n if (state.selectedValue === props.value) {\n effectiveButtonType = 'primary';\n } else {\n effectiveButtonType = 'outline';\n forceSelectedMod = true;\n }\n } else {\n effectiveButtonType = baseButtonType;\n }\n }\n\n // Use context isDisabled if prop isDisabled is not explicitly set\n let baseIsDisabled = isDisabled ?? contextIsDisabled ?? false;\n\n // Loading has to disable the radio here, not inside `Item`. `useRadio` and the\n // `HiddenInput` covering the button own the actual selection, so leaving it to\n // `Item` would render a spinner on an option that still takes clicks and arrow\n // keys. And because this component always passes a resolved `isDisabled` down,\n // an unresolved `isLoading` would additionally read to `Item` as an explicit\n // `isDisabled={false}` and cancel its own loading-disables-the-item rule.\n //\n // Same precedence as `Item` / `ItemButton`: an explicit `isDisabled={false}`\n // still wins over loading. Button-type only — a classic radio has no spinner,\n // so disabling it on `isLoading` would leave no visible reason why.\n let isLoadingButton = isButton && props.isLoading === true;\n let effectiveIsDisabled =\n baseIsDisabled === true || (isLoadingButton && isDisabled !== false);\n\n let { isFocused, focusProps } = useFocus(\n { isDisabled: effectiveIsDisabled },\n true,\n );\n let { hoverProps, isHovered } = useHover({ isDisabled: effectiveIsDisabled });\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n let {\n inputProps,\n isDisabled: isRadioDisabled,\n isSelected: isRadioSelected,\n } = useRadio(\n {\n name,\n ...props,\n isDisabled: effectiveIsDisabled,\n },\n state,\n inputRef,\n );\n\n const mods = useMemo(\n () => ({\n checked: isRadioSelected,\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isRadioDisabled,\n hovered: isHovered,\n button: isButton,\n focused: isFocused,\n tabs: effectiveType === 'tabs',\n }),\n [\n isRadioSelected,\n isInvalid,\n isValid,\n isRadioDisabled,\n isHovered,\n isButton,\n isFocused,\n effectiveType,\n ],\n );\n\n // Render button type using Item\n if (isButton) {\n return (\n <RadioButtonElement\n ref={domRef}\n type={effectiveButtonType}\n theme={getValidationTheme(\n 'default',\n { isInvalid, isValid },\n { includeValid: true },\n )}\n size={effectiveSize}\n {...itemProps}\n isSelected={isRadioSelected}\n isDisabled={isRadioDisabled}\n mods={{\n ...mods,\n ...(forceSelectedMod && !isRadioDisabled ? { selected: true } : {}),\n }}\n styles={styles}\n {...mergeProps(hoverProps, focusProps)}\n >\n <HiddenInput\n qa={qa || 'Radio'}\n data-input-type=\"radio\"\n aria-label={ariaLabel}\n {...inputProps}\n ref={inputRef}\n form={null}\n mods={{ button: isButton, disabled: isRadioDisabled }}\n />\n {label}\n </RadioButtonElement>\n );\n }\n\n // Render classic radio type\n return (\n <RadioWrapperElement\n styles={styles}\n {...hoverProps}\n ref={domRef}\n mods={mods}\n data-type={type}\n >\n <HiddenInput\n qa={qa || 'Radio'}\n data-input-type=\"radio\"\n aria-label={ariaLabel}\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n mods={{ button: isButton }}\n />\n <RadioNormalElement data-element=\"Input\" mods={mods} data-type={type}>\n {RadioCircleElement}\n </RadioNormalElement>\n {label && (\n <RadioLabelElement\n mods={mods}\n styles={labelStyles}\n {...(labelProps ? filterBaseProps(labelProps) : undefined)}\n >\n {label}\n </RadioLabelElement>\n )}\n </RadioWrapperElement>\n );\n}\n\n/**\n * Radio buttons allow users to select a single option from a list of mutually exclusive options.\n * All possible options are exposed up front for users to compare.\n */\nconst _Radio = forwardRef(Radio);\n\nconst Tabs = tasty(RadioGroup, {\n type: 'tabs',\n});\n\nconst ButtonGroup = tasty(RadioGroup, {\n type: 'button',\n});\n\nconst __Radio = Object.assign(\n _Radio as typeof _Radio & {\n Group: typeof RadioGroup;\n Tabs: typeof Tabs;\n ButtonGroup: typeof ButtonGroup;\n Button: typeof _Radio;\n },\n {\n Group: RadioGroup,\n Tabs,\n ButtonGroup,\n Button: _Radio,\n },\n);\n\n__Radio.displayName = 'Radio';\n\nexport { __Radio as Radio };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { FormContext } from "../../form/Form/Form.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/fields/RadioGroup/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { chain } from "../../../utils/react/chain.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useBufferedValue } from "../../../utils/react/useBufferedValue.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { forwardRefWithGenerics } from "../../../utils/react/forwardRefWithGenerics.js";
4
4
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { SliderGradationElement, SliderGradeElement } from "./elements.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { __Slider } from "./Slider.js";
3
3
  import { forwardRef, useCallback, useMemo, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -42,9 +42,7 @@ function HueSlider(props, ref) {
42
42
  value,
43
43
  defaultValue,
44
44
  orientation,
45
- minValue: 0,
46
45
  maxValue: 359,
47
- step: 1,
48
46
  thumbStyles: useMemo(() => ({
49
47
  outline: {
50
48
  "": "1bw #slider-thumb-hovered.0",
@@ -1 +1 @@
1
- {"version":3,"file":"HueSlider.js","names":["Slider"],"sources":["../../../../src/components/fields/Slider/HueSlider.tsx"],"sourcesContent":["import { Styles, Tokens } from '@tenphi/tasty';\nimport { forwardRef, useCallback, useMemo, useState } from 'react';\n\nimport { CubeSliderProps, Slider } from './Slider';\n\nimport type { FocusableRef } from '@react-types/shared';\n\n// Generate 7 hue stops (0, 60, 120, 180, 240, 300, 359) for full color spectrum\nconst HUE_STOPS = [0, 60, 120, 180, 240, 300, 359];\nconst HUE_SATURATION = 80;\nconst HUE_LIGHTNESS = 50;\n\nconst HUE_GRADIENT = HUE_STOPS.map(\n (h) => `okhsl(${h} ${HUE_SATURATION}% ${HUE_LIGHTNESS}%)`,\n).join(', ');\n\nconst horizontalTrackStyles: Styles = {\n image: `linear-gradient(to right, ${HUE_GRADIENT})`,\n Fill: false,\n};\n\nconst verticalTrackStyles: Styles = {\n image: `linear-gradient(to top, ${HUE_GRADIENT})`,\n Fill: false,\n};\n\nexport interface CubeHueSliderProps\n extends Omit<CubeSliderProps, 'minValue' | 'maxValue' | 'step'> {\n /** The current hue value (0-359) */\n value?: number;\n /** The default hue value (0-359) */\n defaultValue?: number;\n}\n\nfunction HueSlider(\n props: CubeHueSliderProps,\n ref: FocusableRef<HTMLDivElement>,\n) {\n const {\n value,\n defaultValue = 0,\n onChange,\n orientation = 'horizontal',\n thumbTokens: userThumbTokens,\n thumbStyles: userThumbStyles,\n trackStyles: userTrackStyles,\n ...rest\n } = props;\n\n // Track internal value for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue);\n\n // Use controlled value if provided, otherwise use internal state\n const currentHue = value ?? internalValue;\n\n // Handle onChange to update internal state in uncontrolled mode\n const handleChange = useCallback(\n (newValue: number) => {\n if (value === undefined) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n },\n [value, onChange],\n );\n\n // Create dynamic thumb tokens with the current hue color\n const thumbTokens: Tokens = useMemo(\n () => ({\n '#slider-thumb': `okhsl(${currentHue} ${HUE_SATURATION}% ${HUE_LIGHTNESS}%)`,\n '#slider-thumb-hovered': `okhsl(${currentHue} ${HUE_SATURATION}% ${HUE_LIGHTNESS - 10}%)`,\n ...userThumbTokens,\n }),\n [currentHue, userThumbTokens],\n );\n const thumbStyles: Styles = useMemo(\n () => ({\n outline: {\n '': '1bw #slider-thumb-hovered.0',\n focused: '1bw #slider-thumb-hovered',\n },\n ...userThumbStyles,\n }),\n [userThumbStyles],\n );\n\n const trackStyles: Styles = useMemo(\n () => ({\n ...(orientation === 'vertical'\n ? verticalTrackStyles\n : horizontalTrackStyles),\n ...userTrackStyles,\n }),\n [orientation, userTrackStyles],\n );\n\n return (\n <Slider\n ref={ref}\n value={value}\n defaultValue={defaultValue}\n orientation={orientation}\n minValue={0}\n maxValue={359}\n step={1}\n thumbStyles={thumbStyles}\n trackStyles={trackStyles}\n thumbTokens={thumbTokens}\n onChange={handleChange}\n {...rest}\n />\n );\n}\n\nconst _HueSlider = forwardRef(HueSlider);\n\nconst __HueSlider = Object.assign(_HueSlider as typeof _HueSlider, {\n cubeInputType: 'Number',\n displayName: 'HueSlider',\n});\n\nexport { __HueSlider as HueSlider };\n"],"mappings":";;;;;;AAQA,MAAM,YAAY;CAAC;CAAG;CAAI;CAAK;CAAK;CAAK;CAAK;CAAI;AAClD,MAAM,iBAAiB;AACvB,MAAM,gBAAgB;AAEtB,MAAM,eAAe,UAAU,KAC5B,MAAM,SAAS,EAAE,GAAG,eAAe,IAAI,cAAc,IACvD,CAAC,KAAK,KAAK;AAEZ,MAAM,wBAAgC;CACpC,OAAO,6BAA6B,aAAa;CACjD,MAAM;CACP;AAED,MAAM,sBAA8B;CAClC,OAAO,2BAA2B,aAAa;CAC/C,MAAM;CACP;AAUD,SAAS,UACP,OACA,KACA;CACA,MAAM,EACJ,OACA,eAAe,GACf,UACA,cAAc,cACd,aAAa,iBACb,aAAa,iBACb,aAAa,iBACb,GAAG,SACD;CAGJ,MAAM,CAAC,eAAe,oBAAoB,SAAS,aAAa;CAGhE,MAAM,aAAa,SAAS;CAG5B,MAAM,eAAe,aAClB,aAAqB;AACpB,MAAI,UAAU,OACZ,kBAAiB,SAAS;AAE5B,aAAW,SAAS;IAEtB,CAAC,OAAO,SAAS,CAClB;CAGD,MAAM,cAAsB,eACnB;EACL,iBAAiB,SAAS,WAAW,GAAG,eAAe,IAAI,cAAc;EACzE,yBAAyB,SAAS,WAAW,GAAG,eAAe,IAAI,gBAAgB,GAAG;EACtF,GAAG;EACJ,GACD,CAAC,YAAY,gBAAgB,CAC9B;AAsBD,QACE,oBAACA;EACM;EACE;EACO;EACD;EACb,UAAU;EACV,UAAU;EACV,MAAM;EACN,aA9BwB,eACnB;GACL,SAAS;IACP,IAAI;IACJ,SAAS;IACV;GACD,GAAG;GACJ,GACD,CAAC,gBAAgB,CAClB;EAsBG,aApBwB,eACnB;GACL,GAAI,gBAAgB,aAChB,sBACA;GACJ,GAAG;GACJ,GACD,CAAC,aAAa,gBAAgB,CAC/B;EAagB;EACb,UAAU;EACV,GAAI;GACJ;;AAIN,MAAM,aAAa,WAAW,UAAU;AAExC,MAAM,cAAc,OAAO,OAAO,YAAiC;CACjE,eAAe;CACf,aAAa;CACd,CAAC"}
1
+ {"version":3,"file":"HueSlider.js","names":["Slider"],"sources":["../../../../src/components/fields/Slider/HueSlider.tsx"],"sourcesContent":["import { Styles, Tokens } from '@tenphi/tasty';\nimport { forwardRef, useCallback, useMemo, useState } from 'react';\n\nimport { CubeSliderProps, Slider } from './Slider';\n\nimport type { FocusableRef } from '@react-types/shared';\n\n// Generate 7 hue stops (0, 60, 120, 180, 240, 300, 359) for full color spectrum\nconst HUE_STOPS = [0, 60, 120, 180, 240, 300, 359];\nconst HUE_SATURATION = 80;\nconst HUE_LIGHTNESS = 50;\n\nconst HUE_GRADIENT = HUE_STOPS.map(\n (h) => `okhsl(${h} ${HUE_SATURATION}% ${HUE_LIGHTNESS}%)`,\n).join(', ');\n\nconst horizontalTrackStyles: Styles = {\n image: `linear-gradient(to right, ${HUE_GRADIENT})`,\n Fill: false,\n};\n\nconst verticalTrackStyles: Styles = {\n image: `linear-gradient(to top, ${HUE_GRADIENT})`,\n Fill: false,\n};\n\nexport interface CubeHueSliderProps\n extends Omit<CubeSliderProps, 'minValue' | 'maxValue' | 'step'> {\n /** The current hue value (0-359) */\n value?: number;\n /** The default hue value (0-359) */\n defaultValue?: number;\n}\n\nfunction HueSlider(\n props: CubeHueSliderProps,\n ref: FocusableRef<HTMLDivElement>,\n) {\n const {\n value,\n defaultValue = 0,\n onChange,\n orientation = 'horizontal',\n thumbTokens: userThumbTokens,\n thumbStyles: userThumbStyles,\n trackStyles: userTrackStyles,\n ...rest\n } = props;\n\n // Track internal value for uncontrolled mode\n const [internalValue, setInternalValue] = useState(defaultValue);\n\n // Use controlled value if provided, otherwise use internal state\n const currentHue = value ?? internalValue;\n\n // Handle onChange to update internal state in uncontrolled mode\n const handleChange = useCallback(\n (newValue: number) => {\n if (value === undefined) {\n setInternalValue(newValue);\n }\n onChange?.(newValue);\n },\n [value, onChange],\n );\n\n // Create dynamic thumb tokens with the current hue color\n const thumbTokens: Tokens = useMemo(\n () => ({\n '#slider-thumb': `okhsl(${currentHue} ${HUE_SATURATION}% ${HUE_LIGHTNESS}%)`,\n '#slider-thumb-hovered': `okhsl(${currentHue} ${HUE_SATURATION}% ${HUE_LIGHTNESS - 10}%)`,\n ...userThumbTokens,\n }),\n [currentHue, userThumbTokens],\n );\n const thumbStyles: Styles = useMemo(\n () => ({\n outline: {\n '': '1bw #slider-thumb-hovered.0',\n focused: '1bw #slider-thumb-hovered',\n },\n ...userThumbStyles,\n }),\n [userThumbStyles],\n );\n\n const trackStyles: Styles = useMemo(\n () => ({\n ...(orientation === 'vertical'\n ? verticalTrackStyles\n : horizontalTrackStyles),\n ...userTrackStyles,\n }),\n [orientation, userTrackStyles],\n );\n\n return (\n <Slider\n ref={ref}\n value={value}\n defaultValue={defaultValue}\n orientation={orientation}\n maxValue={359}\n thumbStyles={thumbStyles}\n trackStyles={trackStyles}\n thumbTokens={thumbTokens}\n onChange={handleChange}\n {...rest}\n />\n );\n}\n\nconst _HueSlider = forwardRef(HueSlider);\n\nconst __HueSlider = Object.assign(_HueSlider as typeof _HueSlider, {\n cubeInputType: 'Number',\n displayName: 'HueSlider',\n});\n\nexport { __HueSlider as HueSlider };\n"],"mappings":";;;;;;AAQA,MAAM,YAAY;CAAC;CAAG;CAAI;CAAK;CAAK;CAAK;CAAK;CAAI;AAClD,MAAM,iBAAiB;AACvB,MAAM,gBAAgB;AAEtB,MAAM,eAAe,UAAU,KAC5B,MAAM,SAAS,EAAE,GAAG,eAAe,IAAI,cAAc,IACvD,CAAC,KAAK,KAAK;AAEZ,MAAM,wBAAgC;CACpC,OAAO,6BAA6B,aAAa;CACjD,MAAM;CACP;AAED,MAAM,sBAA8B;CAClC,OAAO,2BAA2B,aAAa;CAC/C,MAAM;CACP;AAUD,SAAS,UACP,OACA,KACA;CACA,MAAM,EACJ,OACA,eAAe,GACf,UACA,cAAc,cACd,aAAa,iBACb,aAAa,iBACb,aAAa,iBACb,GAAG,SACD;CAGJ,MAAM,CAAC,eAAe,oBAAoB,SAAS,aAAa;CAGhE,MAAM,aAAa,SAAS;CAG5B,MAAM,eAAe,aAClB,aAAqB;AACpB,MAAI,UAAU,OACZ,kBAAiB,SAAS;AAE5B,aAAW,SAAS;IAEtB,CAAC,OAAO,SAAS,CAClB;CAGD,MAAM,cAAsB,eACnB;EACL,iBAAiB,SAAS,WAAW,GAAG,eAAe,IAAI,cAAc;EACzE,yBAAyB,SAAS,WAAW,GAAG,eAAe,IAAI,gBAAgB,GAAG;EACtF,GAAG;EACJ,GACD,CAAC,YAAY,gBAAgB,CAC9B;AAsBD,QACE,oBAACA;EACM;EACE;EACO;EACD;EACb,UAAU;EACV,aA5BwB,eACnB;GACL,SAAS;IACP,IAAI;IACJ,SAAS;IACV;GACD,GAAG;GACJ,GACD,CAAC,gBAAgB,CAClB;EAoBG,aAlBwB,eACnB;GACL,GAAI,gBAAgB,aAChB,sBACA;GACJ,GAAG;GACJ,GACD,CAAC,aAAa,gBAAgB,CAC/B;EAWgB;EACb,UAAU;EACV,GAAI;GACJ;;AAIN,MAAM,aAAa,WAAW,UAAU;AAExC,MAAM,cAAc,OAAO,OAAO,YAAiC;CACjE,eAAe;CACf,aAAa;CACd,CAAC"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { Gradation } from "./Gradation.js";
3
3
  import { _SliderBase } from "./SliderBase.js";
4
4
  import { SliderThumb } from "./SliderThumb.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { Gradation } from "./Gradation.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { forwardRefWithGenerics } from "../../../utils/react/forwardRefWithGenerics.js";
4
4
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { getValidationMods } from "../../form/validation/resolve-validation-props.js";
4
4
  import { SliderThumbElement } from "./elements.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { getValidationMods } from "../../form/validation/resolve-validation-props.js";
3
3
  import { SliderTrackContainerElement } from "./elements.js";
4
4
  import { useMemo } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/components/fields/Slider/elements.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { __RangeSlider } from "./RangeSlider.js";
3
3
  import { __Slider } from "./Slider.js";
4
4
  import { __HueSlider } from "./HueSlider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useId as useId$2 } from "../../../utils/react/useId.js";
4
4
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { chain } from "../../../utils/react/chain.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { chain } from "../../../utils/react/chain.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useBufferedValue } from "../../../utils/react/useBufferedValue.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { formatColor, getContrastingColor, toHex } from "./color.js";
4
4
  import { CHANNELS, COLOR_SPACES, COLOR_SPACE_HINTS, COLOR_SPACE_LABELS } from "./channels.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { parseColor, toHex } from "./color.js";
4
4
  import { BASE_STYLES, BLOCK_STYLES, DIMENSION_STYLES, OUTER_STYLES, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { fromOkhst, fromOklch, fromRgb, isAchromatic, maxChroma, normalizeHue, toHex, toOkhst, toOklch, toRgb } from "./color.js";
3
3
 
4
4
  //#region src/components/fields/color/channels.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { contrastRatioFromLuminance, formatHsl, formatOkhsl, formatOkhst, formatOklch, formatRgb, hslToSrgb, okhslToLinearSrgb, okhslToOkhst, okhslToOklch, okhslToSrgb, okhstToOkhsl, oklabToOkhsl, parseHexAlpha, relativeLuminanceFromLinearRgb, srgbToHex, srgbToOkhsl } from "@tenphi/glaze";
3
3
 
4
4
  //#region src/components/fields/color/color.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/fields/color/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { wrapNodeIfPlain } from "../../../utils/react/wrapNodeIfPlain.js";
4
4
  import { _Text } from "../../content/Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { warn } from "../../../utils/warnings.js";
4
4
  import { useValidationProps } from "../validation/use-validation-props.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { Provider, useProviderProps } from "../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../../_internal/hooks/use-event.js";
4
4
  import { useProviderProps } from "../../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { useProviderProps } from "../../../../provider.js";
3
3
  import { Button } from "../../../actions/Button/Button.js";
4
4
  import { useFormProps } from "../Form.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { useI18n } from "../../../i18n/useI18n.js";
3
3
  import { FormContext } from "./Form.js";
4
4
  import { Alert } from "../../content/Alert/Alert.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { useForm } from "./use-form.js";
3
3
  import { FormContext, _Form, useFormProps } from "./Form.js";
4
4
  import { useField } from "./use-field/use-field.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../../_internal/hooks/use-event.js";
4
4
  import { warn } from "../../../../utils/warnings.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../../_internal/hooks/use-event.js";
3
3
  import { useIsFirstRender } from "../../../../_internal/hooks/use-is-first-render.js";
4
4
  import { resolveValidationProps } from "../../validation/resolve-validation-props.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { applyRules } from "./validation.js";
3
3
  import { dotize } from "@tenphi/tasty";
4
4
  import { useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { validate } from "email-validator";
3
3
  import validUrl from "valid-url";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useProviderProps } from "../../provider.js";
4
4
  import { useI18n } from "../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
3
3
  import { hasValidationState } from "./resolve-validation-props.js";
4
4
  import { InvalidIcon } from "../../shared/InvalidIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  //#region src/components/form/validation/resolve-validation-props.ts
3
3
  /**
4
4
  * Normalizes the validation props of a field into a pair of booleans.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { useWarn } from "../../../_internal/hooks/use-warn.js";
3
3
  import { resolveValidationProps } from "./resolve-validation-props.js";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../utils/react/mergeProps.js";
3
3
  import { FieldWrapper } from "./FieldWrapper/FieldWrapper.js";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { useCallback, useLayoutEffect, useRef, useState } from "react";
3
3
 
4
4
  //#region src/components/helpers/DisplayTransition/DisplayTransition.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { DisplayTransition } from "../DisplayTransition/DisplayTransition.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { isValidElement, useCallback, useLayoutEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { BoardDragActiveContext, BoardRegistryContext } from "./board-context.js";
3
3
  import { useBoardRegistry } from "./use-board-registry.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { getCompactor } from "./grid-core/compactors.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
4
4
  import { useBoardRegistry } from "./board-context.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.162.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.163.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";