@cube-dev/ui-kit 0.172.0 → 0.174.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 (571) hide show
  1. package/dist/CHANGELOG.md +44 -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/InfoBadge/InfoBadge.js +1 -1
  56. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  57. package/dist/components/content/Item/Item.js +1 -1
  58. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  59. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  60. package/dist/components/content/Layout/GridLayout.js +1 -1
  61. package/dist/components/content/Layout/Layout.js +1 -1
  62. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  63. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  64. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  65. package/dist/components/content/Layout/LayoutContent.js +1 -1
  66. package/dist/components/content/Layout/LayoutContext.js +1 -1
  67. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  68. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  69. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  70. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutPane.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  75. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  76. package/dist/components/content/Layout/index.js +1 -1
  77. package/dist/components/content/Layout/utils.js +1 -1
  78. package/dist/components/content/Paragraph.js +1 -1
  79. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  80. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  81. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  82. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  83. package/dist/components/content/Result/Result.js +1 -1
  84. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  85. package/dist/components/content/Tag/Tag.js +1 -1
  86. package/dist/components/content/Text.js +1 -1
  87. package/dist/components/content/TextItem/TextItem.js +1 -1
  88. package/dist/components/content/Title.js +1 -1
  89. package/dist/components/content/Tree/Tree.js +1 -1
  90. package/dist/components/content/Tree/TreeNode.js +1 -1
  91. package/dist/components/content/Tree/styled.js +1 -1
  92. package/dist/components/content/Tree/tree-index.js +1 -1
  93. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  94. package/dist/components/content/Tree/use-load-data.js +1 -1
  95. package/dist/components/content/highlightText.js +1 -1
  96. package/dist/components/content/use-auto-tooltip.js +1 -1
  97. package/dist/components/data/DataTable/DataTable.js +1 -1
  98. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  99. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  100. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  101. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  102. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  103. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  104. package/dist/components/data/TableBase/RowCollection.js +1 -1
  105. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  106. package/dist/components/data/TableBase/TableRow.js +1 -1
  107. package/dist/components/data/TableBase/TableView.js +1 -1
  108. package/dist/components/data/TableBase/column-menu.js +1 -1
  109. package/dist/components/data/TableBase/column-tint.js +1 -1
  110. package/dist/components/data/TableBase/row-menu.js +1 -1
  111. package/dist/components/data/TableBase/styled.js +1 -1
  112. package/dist/components/data/TableBase/table-tree.js +1 -1
  113. package/dist/components/data/TableBase/types.js +1 -1
  114. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  115. package/dist/components/data/TableBase/use-column-order.js +1 -1
  116. package/dist/components/data/TableBase/use-container-width.js +1 -1
  117. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  118. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  119. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  120. package/dist/components/data/TableBase/use-table-search.js +1 -1
  121. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  122. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  123. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  124. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  125. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  126. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  127. package/dist/components/fields/Checkbox/CheckboxGroup.js +2 -2
  128. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  129. package/dist/components/fields/Checkbox/context.js +1 -1
  130. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  131. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  132. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  133. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  134. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  135. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  136. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  137. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  138. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  139. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  140. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  141. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  142. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  143. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  144. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  145. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  146. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  147. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  148. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  149. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  150. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  151. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  152. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  153. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  154. package/dist/components/fields/DatePicker/period.js +1 -1
  155. package/dist/components/fields/DatePicker/props.js +1 -1
  156. package/dist/components/fields/DatePicker/utils.js +1 -1
  157. package/dist/components/fields/FileInput/FileInput.js +1 -1
  158. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  159. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  160. package/dist/components/fields/Input/Input.js +1 -1
  161. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  162. package/dist/components/fields/ListBox/ListBox.js +1 -1
  163. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  164. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  165. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  166. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  167. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  168. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  169. package/dist/components/fields/Picker/Picker.js +1 -1
  170. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  171. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  172. package/dist/components/fields/RadioGroup/context.js +1 -1
  173. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  174. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  175. package/dist/components/fields/Select/Select.js +1 -1
  176. package/dist/components/fields/Slider/Gradation.js +1 -1
  177. package/dist/components/fields/Slider/HueSlider.js +1 -1
  178. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  179. package/dist/components/fields/Slider/Slider.js +1 -1
  180. package/dist/components/fields/Slider/SliderBase.js +1 -1
  181. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  182. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  183. package/dist/components/fields/Slider/elements.js +1 -1
  184. package/dist/components/fields/Slider/index.js +1 -1
  185. package/dist/components/fields/Switch/Switch.js +1 -1
  186. package/dist/components/fields/TextArea/TextArea.js +1 -1
  187. package/dist/components/fields/TextInput/TextInput.js +1 -1
  188. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  189. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  190. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  191. package/dist/components/fields/color/ColorPanel.js +1 -1
  192. package/dist/components/fields/color/channels.js +1 -1
  193. package/dist/components/fields/color/color.js +1 -1
  194. package/dist/components/fields/color/context.js +1 -1
  195. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +2 -2
  196. package/dist/components/form/FieldWrapper/FieldWrapper.js +12 -5
  197. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  198. package/dist/components/form/FieldWrapper/types.d.ts +3 -3
  199. package/dist/components/form/Form/Field.js +8 -6
  200. package/dist/components/form/Form/Field.js.map +1 -1
  201. package/dist/components/form/Form/Form.js +1 -1
  202. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  203. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  204. package/dist/components/form/Form/SubmitError.js +1 -1
  205. package/dist/components/form/Form/index.js +1 -1
  206. package/dist/components/form/Form/use-field/types.d.ts +13 -1
  207. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  208. package/dist/components/form/Form/use-field/use-field.js +5 -2
  209. package/dist/components/form/Form/use-field/use-field.js.map +1 -1
  210. package/dist/components/form/Form/use-form.js +1 -1
  211. package/dist/components/form/Form/validation.js +1 -1
  212. package/dist/components/form/Label.d.ts +16 -4
  213. package/dist/components/form/Label.js +34 -12
  214. package/dist/components/form/Label.js.map +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 +3 -2
  219. package/dist/components/form/wrapper.js.map +1 -1
  220. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  221. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  222. package/dist/components/layout/Board/Board.js +1 -1
  223. package/dist/components/layout/Board/BoardProvider.js +1 -1
  224. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  225. package/dist/components/layout/Board/Widget.js +1 -1
  226. package/dist/components/layout/Board/WidgetHost.js +1 -1
  227. package/dist/components/layout/Board/board-context.js +1 -1
  228. package/dist/components/layout/Board/board-store.js +1 -1
  229. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  230. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  231. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  232. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  233. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  234. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  235. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  236. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  237. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  238. package/dist/components/layout/Board/index.js +1 -1
  239. package/dist/components/layout/Board/responsive-utils.js +1 -1
  240. package/dist/components/layout/Board/use-board-layout.js +1 -1
  241. package/dist/components/layout/Board/use-board-registry.js +1 -1
  242. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  243. package/dist/components/layout/Board/use-board-selection.js +1 -1
  244. package/dist/components/layout/Flex.js +1 -1
  245. package/dist/components/layout/Flow.js +1 -1
  246. package/dist/components/layout/Grid.js +1 -1
  247. package/dist/components/layout/Panel.js +1 -1
  248. package/dist/components/layout/Prefix.js +1 -1
  249. package/dist/components/layout/ResizablePanel.js +1 -1
  250. package/dist/components/layout/Space.js +1 -1
  251. package/dist/components/layout/Suffix.js +1 -1
  252. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  253. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  254. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  255. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  256. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  257. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  258. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  259. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  260. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  261. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  262. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  263. package/dist/components/navigation/Tabs/styled.js +1 -1
  264. package/dist/components/navigation/Tabs/types.js +1 -1
  265. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  266. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  267. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  268. package/dist/components/other/Calendar/Calendar.js +1 -1
  269. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  270. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  271. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  272. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  273. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  274. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  275. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  276. package/dist/components/other/Calendar/styled.js +1 -1
  277. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  278. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  279. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  280. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  281. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  282. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  283. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  284. package/dist/components/overlays/Dialog/DialogForm.js +2 -3
  285. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  286. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  287. package/dist/components/overlays/Dialog/context.js +1 -1
  288. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  289. package/dist/components/overlays/Modal/Modal.js +1 -1
  290. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  291. package/dist/components/overlays/Modal/Overlay.js +1 -1
  292. package/dist/components/overlays/Modal/Popover.js +1 -1
  293. package/dist/components/overlays/Modal/Tray.js +1 -1
  294. package/dist/components/overlays/Modal/Underlay.js +1 -1
  295. package/dist/components/overlays/Notifications/Notification.js +1 -1
  296. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  297. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  298. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  299. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  300. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  301. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  302. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  303. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  304. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  305. package/dist/components/overlays/Notifications/index.js +1 -1
  306. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  307. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  308. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  309. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  310. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  311. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  312. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  313. package/dist/components/overlays/Toast/index.js +1 -1
  314. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  315. package/dist/components/overlays/Toast/useToast.js +1 -1
  316. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  317. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  318. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  319. package/dist/components/overlays/Tooltip/context.js +1 -1
  320. package/dist/components/portal/Portal.js +1 -1
  321. package/dist/components/portal/PortalProvider.js +1 -1
  322. package/dist/components/portal/usePortal.js +1 -1
  323. package/dist/components/shared/DraggableCollection.js +1 -1
  324. package/dist/components/shared/InvalidIcon.js +1 -1
  325. package/dist/components/shared/ValidIcon.js +1 -1
  326. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  327. package/dist/components/status/Spin/Cube.js +1 -1
  328. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  329. package/dist/components/status/Spin/Spin.js +1 -1
  330. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  331. package/dist/data/item-themes.js +1 -1
  332. package/dist/data/themes.js +1 -1
  333. package/dist/eslint-plugin/defaults.generated.js +1 -1
  334. package/dist/eslint-plugin/index.js +1 -1
  335. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  336. package/dist/i18n/I18nProvider.js +1 -1
  337. package/dist/i18n/createFormatter.js +1 -1
  338. package/dist/i18n/index.js +1 -1
  339. package/dist/i18n/instance.js +1 -1
  340. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  341. package/dist/i18n/locales/en-US/uikit.js +1 -1
  342. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  343. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  344. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  345. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  346. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  347. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  348. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  349. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  350. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  351. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  352. package/dist/i18n/locales.js +1 -1
  353. package/dist/i18n/useFormatter.js +1 -1
  354. package/dist/i18n/useI18n.js +1 -1
  355. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  356. package/dist/icons/AdjustmentsIcon.js +1 -1
  357. package/dist/icons/AiIcon.js +1 -1
  358. package/dist/icons/AreaChartIcon.js +1 -1
  359. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  360. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  361. package/dist/icons/BackwardIcon.js +1 -1
  362. package/dist/icons/BarChartIcon.js +1 -1
  363. package/dist/icons/BellFilledIcon.js +1 -1
  364. package/dist/icons/BellIcon.js +1 -1
  365. package/dist/icons/BooleanIcon.js +1 -1
  366. package/dist/icons/CalendarEditIcon.js +1 -1
  367. package/dist/icons/CalendarIcon.js +1 -1
  368. package/dist/icons/CaretDownIcon.js +1 -1
  369. package/dist/icons/CaretUpIcon.js +1 -1
  370. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  371. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  372. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  373. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  374. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  375. package/dist/icons/ChartBarLineIcon.js +1 -1
  376. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  377. package/dist/icons/ChartBarStackedIcon.js +1 -1
  378. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  379. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  380. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  381. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  382. package/dist/icons/ChartBubbleIcon.js +1 -1
  383. package/dist/icons/ChartDonut2Icon.js +1 -1
  384. package/dist/icons/ChartFunnelIcon.js +1 -1
  385. package/dist/icons/ChartHeatmapIcon.js +1 -1
  386. package/dist/icons/ChartKPIIcon.js +1 -1
  387. package/dist/icons/ChartPie2Icon.js +1 -1
  388. package/dist/icons/ChartScatterIcon.js +1 -1
  389. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  390. package/dist/icons/CheckCircleIcon.js +1 -1
  391. package/dist/icons/CheckIcon.js +1 -1
  392. package/dist/icons/CircleFilledIcon.js +1 -1
  393. package/dist/icons/ClearIcon.js +1 -1
  394. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  395. package/dist/icons/CloseCircleIcon.js +1 -1
  396. package/dist/icons/CloseIcon.js +1 -1
  397. package/dist/icons/CodeIcon.js +1 -1
  398. package/dist/icons/ColumnTotalIcon.js +1 -1
  399. package/dist/icons/CopyIcon.js +1 -1
  400. package/dist/icons/CountIcon.js +1 -1
  401. package/dist/icons/CubeIcon.js +1 -1
  402. package/dist/icons/CubePauseIcon.js +1 -1
  403. package/dist/icons/CubePlayIcon.js +1 -1
  404. package/dist/icons/CurrencyDollarIcon.js +1 -1
  405. package/dist/icons/DangerIcon.js +1 -1
  406. package/dist/icons/DashboardIcon.js +1 -1
  407. package/dist/icons/DatabaseIcon.js +1 -1
  408. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  409. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  410. package/dist/icons/DirectionIcon.js +1 -1
  411. package/dist/icons/DonutIcon.js +1 -1
  412. package/dist/icons/DownIcon.js +1 -1
  413. package/dist/icons/EditIcon.js +1 -1
  414. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  415. package/dist/icons/ExclamationCircleIcon.js +1 -1
  416. package/dist/icons/ExclamationIcon.js +1 -1
  417. package/dist/icons/EyeIcon.js +1 -1
  418. package/dist/icons/EyeInvisibleIcon.js +1 -1
  419. package/dist/icons/FilterIcon.js +1 -1
  420. package/dist/icons/FolderFilledIcon.js +1 -1
  421. package/dist/icons/FolderIcon.js +1 -1
  422. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  423. package/dist/icons/FolderOpenIcon.js +1 -1
  424. package/dist/icons/ForwardIcon.js +1 -1
  425. package/dist/icons/GripVerticalIcon.js +1 -1
  426. package/dist/icons/HierarchyIcon.js +1 -1
  427. package/dist/icons/HierarchyOpenIcon.js +1 -1
  428. package/dist/icons/Icon.js +1 -1
  429. package/dist/icons/InfoCircleIcon.js +1 -1
  430. package/dist/icons/InfoIcon.js +1 -1
  431. package/dist/icons/KeyIcon.js +1 -1
  432. package/dist/icons/LeftIcon.js +1 -1
  433. package/dist/icons/LineChartIcon.js +1 -1
  434. package/dist/icons/LoadingIcon.js +1 -1
  435. package/dist/icons/LockFilledIcon.js +1 -1
  436. package/dist/icons/LockIcon.js +1 -1
  437. package/dist/icons/MoreIcon.js +1 -1
  438. package/dist/icons/NotAllowedIcon.js +1 -1
  439. package/dist/icons/Number123Icon.js +1 -1
  440. package/dist/icons/NumberIcon.js +1 -1
  441. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  442. package/dist/icons/PauseCircleIcon.js +1 -1
  443. package/dist/icons/PauseIcon.js +1 -1
  444. package/dist/icons/PercentageIcon.js +1 -1
  445. package/dist/icons/PieChartIcon.js +1 -1
  446. package/dist/icons/PipetteIcon.js +1 -1
  447. package/dist/icons/PlayCircleIcon.js +1 -1
  448. package/dist/icons/PlayIcon.js +1 -1
  449. package/dist/icons/PlusIcon.js +1 -1
  450. package/dist/icons/ProgressBarIcon.js +1 -1
  451. package/dist/icons/ReloadIcon.js +1 -1
  452. package/dist/icons/ReportIcon.js +1 -1
  453. package/dist/icons/ReturnIcon.js +1 -1
  454. package/dist/icons/RightIcon.js +1 -1
  455. package/dist/icons/RowTotalsIcon.js +1 -1
  456. package/dist/icons/SchemeIcon.js +1 -1
  457. package/dist/icons/SearchIcon.js +1 -1
  458. package/dist/icons/SemanticQueryIcon.js +1 -1
  459. package/dist/icons/SettingsIcon.js +1 -1
  460. package/dist/icons/ShieldFilledIcon.js +1 -1
  461. package/dist/icons/ShieldIcon.js +1 -1
  462. package/dist/icons/SlashIcon.js +1 -1
  463. package/dist/icons/SparklesIcon.js +1 -1
  464. package/dist/icons/SqlIcon.js +1 -1
  465. package/dist/icons/StatsIcon.js +1 -1
  466. package/dist/icons/StopIcon.js +1 -1
  467. package/dist/icons/StringIcon.js +1 -1
  468. package/dist/icons/SubtotalsIcon.js +1 -1
  469. package/dist/icons/SwitchIcon.js +1 -1
  470. package/dist/icons/TableIcon.js +1 -1
  471. package/dist/icons/ThumbsDownIcon.js +1 -1
  472. package/dist/icons/ThumbsUpIcon.js +1 -1
  473. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  474. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  475. package/dist/icons/ThunderboltIcon.js +1 -1
  476. package/dist/icons/TimeIcon.js +1 -1
  477. package/dist/icons/TrashIcon.js +1 -1
  478. package/dist/icons/UnlockIcon.js +1 -1
  479. package/dist/icons/UpIcon.js +1 -1
  480. package/dist/icons/UserGroupIcon.js +1 -1
  481. package/dist/icons/UserIcon.js +1 -1
  482. package/dist/icons/UserLockIcon.js +1 -1
  483. package/dist/icons/ViewIcon.js +1 -1
  484. package/dist/icons/WarningFilledIcon.js +1 -1
  485. package/dist/icons/WarningIcon.js +1 -1
  486. package/dist/icons/wrap-icon.js +1 -1
  487. package/dist/index.js +1 -1
  488. package/dist/probe/canonicalize.js +1 -1
  489. package/dist/probe/css.js +1 -1
  490. package/dist/probe/index.js +1 -1
  491. package/dist/provider.js +1 -1
  492. package/dist/providers/TrackingProvider.js +1 -1
  493. package/dist/providers/navigationAdapter.default.js +1 -1
  494. package/dist/shared/form.d.ts +17 -7
  495. package/dist/tokens/all-tokens.js +1 -1
  496. package/dist/tokens/base.js +1 -1
  497. package/dist/tokens/color-seed.js +1 -1
  498. package/dist/tokens/color-theme.js +1 -1
  499. package/dist/tokens/colors.js +1 -1
  500. package/dist/tokens/layout.js +1 -1
  501. package/dist/tokens/lazy-styles.js +1 -1
  502. package/dist/tokens/palette-config.js +1 -1
  503. package/dist/tokens/palette.js +1 -1
  504. package/dist/tokens/resolve.js +1 -1
  505. package/dist/tokens/shadows.js +1 -1
  506. package/dist/tokens/sizes.js +1 -1
  507. package/dist/tokens/spacing.js +1 -1
  508. package/dist/tokens/typography.js +1 -1
  509. package/dist/utils/ResizeSensor.js +1 -1
  510. package/dist/utils/is-dev-env.js +1 -1
  511. package/dist/utils/modules.js +1 -1
  512. package/dist/utils/promise.js +1 -1
  513. package/dist/utils/raf.js +1 -1
  514. package/dist/utils/random.js +1 -1
  515. package/dist/utils/range.js +1 -1
  516. package/dist/utils/react/RenderCache.js +1 -1
  517. package/dist/utils/react/Slots.js +1 -1
  518. package/dist/utils/react/chain.js +1 -1
  519. package/dist/utils/react/disabledProps.js +1 -1
  520. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  521. package/dist/utils/react/index.js +1 -1
  522. package/dist/utils/react/interactions.js +1 -1
  523. package/dist/utils/react/isTextOnly.js +1 -1
  524. package/dist/utils/react/mapProps.js +1 -1
  525. package/dist/utils/react/mergeProps.js +1 -1
  526. package/dist/utils/react/nullableValue.js +1 -1
  527. package/dist/utils/react/resolveIcon.js +1 -1
  528. package/dist/utils/react/sharedStore.js +1 -1
  529. package/dist/utils/react/useBufferedValue.js +1 -1
  530. package/dist/utils/react/useCombinedRefs.js +1 -1
  531. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  532. package/dist/utils/react/useEventBus.js +1 -1
  533. package/dist/utils/react/useId.js +1 -1
  534. package/dist/utils/react/useIsDarwin.js +1 -1
  535. package/dist/utils/react/useKeySymbols.js +1 -1
  536. package/dist/utils/react/useLayoutEffect.js +1 -1
  537. package/dist/utils/react/useLocalStorage.js +1 -1
  538. package/dist/utils/react/useMergeStyles.js +1 -1
  539. package/dist/utils/react/usePopoverSync.js +1 -1
  540. package/dist/utils/react/useQaProps.js +1 -1
  541. package/dist/utils/react/useScheme.js +1 -1
  542. package/dist/utils/react/useViewportSize.js +1 -1
  543. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  544. package/dist/utils/selection.js +1 -1
  545. package/dist/utils/styles.js +1 -1
  546. package/dist/utils/tree.js +1 -1
  547. package/dist/utils/warnings.js +1 -1
  548. package/dist/version.js +3 -3
  549. package/docs/FieldProperties.md +25 -3
  550. package/docs/components/form/Field.md +6 -6
  551. package/docs/components/form/Form.md +3 -3
  552. package/docs/components/overlays/DialogForm.md +0 -1
  553. package/docs/tasty/README.md +13 -8
  554. package/docs/tasty/adoption.md +56 -31
  555. package/docs/tasty/ai-agents.md +78 -77
  556. package/docs/tasty/comparison.md +69 -40
  557. package/docs/tasty/configuration.md +97 -87
  558. package/docs/tasty/debug.md +4 -2
  559. package/docs/tasty/design-system.md +41 -22
  560. package/docs/tasty/dsl.md +225 -195
  561. package/docs/tasty/getting-started.md +60 -39
  562. package/docs/tasty/injector.md +63 -26
  563. package/docs/tasty/methodology.md +42 -36
  564. package/docs/tasty/migration-v3.md +49 -49
  565. package/docs/tasty/plugins.md +37 -33
  566. package/docs/tasty/react-api.md +65 -44
  567. package/docs/tasty/runtime-benchmarks.md +178 -0
  568. package/docs/tasty/ssr.md +99 -61
  569. package/docs/tasty/styles.md +1 -1
  570. package/docs/tasty/tasty-static.md +137 -104
  571. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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 { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { _PeriodPicker } from "./PeriodPicker.js";
3
3
  import { forwardRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { _PeriodPicker } from "./PeriodPicker.js";
3
3
  import { forwardRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { parseAbsolute } from "@internationalized/date";
3
3
 
4
4
  //#region src/components/fields/DatePicker/parseDate.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { CalendarDate, startOfMonth, startOfWeek, startOfYear, toCalendarDate } from "@internationalized/date";
3
3
 
4
4
  //#region src/components/fields/DatePicker/period.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  //#region src/components/fields/DatePicker/props.ts
3
3
  const DEFAULT_DATE_PROPS = {
4
4
  granularity: "day",
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { useImperativeHandle, useRef } from "react";
3
3
  import { createDOMRef } from "@react-spectrum/utils";
4
4
  import { createFocusManager } from "@react-aria/focus";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { _Text } from "../../content/Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { TextInput } from "../TextInput/TextInput.js";
3
3
  import { _FileInput } from "../FileInput/FileInput.js";
4
4
  import { _NumberInput } from "../NumberInput/NumberInput.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { DraggableCollection } from "../../shared/DraggableCollection.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
4
4
  import { Portal } from "../../portal/Portal.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  //#region src/components/fields/ListBoxPopover/listNavigation.ts
3
3
  /**
4
4
  * Walks a collection (possibly nested under sections) and collects the keys of
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { useCallback, useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/components/fields/ListBoxPopover/useCompositeFocus.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { castNullableNumberValue } from "../../../utils/react/nullableValue.js";
4
4
  import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { useI18n } from "../../../i18n/useI18n.js";
3
3
  import { DirectionIcon } from "../../../icons/DirectionIcon.js";
4
4
  import { Button } from "../../actions/index.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { _Text } from "../../content/Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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 { castNullableStringValue } from "../../../utils/react/nullableValue.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useEffect, useLayoutEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/fields/color/context.ts
@@ -16,6 +16,7 @@ declare const FieldWrapper: react.ForwardRefExoticComponent<ValidationProps & {
16
16
  as?: keyof HTMLElementTagNameMap;
17
17
  styles?: _tenphi_tasty0.Styles;
18
18
  isRequired?: boolean;
19
+ isOptional?: boolean;
19
20
  isDisabled?: boolean;
20
21
  fieldProps?: Props;
21
22
  isHidden?: boolean;
@@ -28,8 +29,7 @@ declare const FieldWrapper: react.ForwardRefExoticComponent<ValidationProps & {
28
29
  requiredMark?: boolean;
29
30
  tooltip?: react.ReactNode;
30
31
  extra?: react.ReactNode;
31
- necessityLabel?: react.ReactNode;
32
- necessityIndicator?: NecessityIndicator;
32
+ necessityIndicator?: NecessityIndicator | null;
33
33
  message?: string | react.ReactNode;
34
34
  messageStyles?: _tenphi_tasty0.Styles;
35
35
  errorMessage?: string | react.ReactNode;
@@ -1,8 +1,9 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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";
5
5
  import { Space } from "../../layout/Space.js";
6
+ import { useI18n } from "../../../i18n/useI18n.js";
6
7
  import { InfoBadge } from "../../content/InfoBadge/InfoBadge.js";
7
8
  import { Flex } from "../../layout/Flex.js";
8
9
  import { getValidationMods } from "../validation/resolve-validation-props.js";
@@ -86,17 +87,22 @@ const DescriptionElement = tasty({
86
87
  * @internal Do not use this component directly.
87
88
  */
88
89
  const FieldWrapper = forwardRef(function FieldWrapper(props, ref) {
89
- const { as, labelPosition = "top", label, extra, styles, isRequired, isDisabled, labelStyles, necessityIndicator, labelProps, fieldProps, message, messageStyles, description, errorMessage, Component, isInvalid, isValid, requiredMark = true, tooltip, isHidden, labelSuffix, children } = props;
90
+ const { as, labelPosition = "top", label, extra, styles, isRequired, isOptional, isDisabled, labelStyles, necessityIndicator, labelProps, fieldProps, message, messageStyles, description, errorMessage, Component, isInvalid, isValid, requiredMark = true, tooltip, isHidden, labelSuffix, children } = props;
91
+ const { t } = useI18n();
92
+ const showRequiredMark = !!requiredMark && !!isRequired;
93
+ const showOptionalNote = !isRequired && !!isOptional;
94
+ const optionalNote = showOptionalNote ? t("form.optional", "(optional)") : null;
90
95
  const labelComponent = label ? /* @__PURE__ */ jsx(_Label, {
91
96
  as: as === "label" ? "div" : "label",
92
97
  styles: labelStyles,
93
98
  labelPosition,
94
- isRequired: requiredMark ? isRequired : false,
99
+ isRequired: showRequiredMark,
100
+ isOptional: showOptionalNote,
95
101
  isDisabled,
96
102
  necessityIndicator,
97
103
  isInvalid,
98
104
  isValid,
99
- "aria-label": typeof label === "string" ? label : void 0,
105
+ "aria-label": typeof label === "string" ? optionalNote ? `${label} ${optionalNote}` : label : void 0,
100
106
  ...labelProps,
101
107
  children: /* @__PURE__ */ jsxs(Flex, {
102
108
  placeContent: "baseline space-between",
@@ -106,7 +112,8 @@ const FieldWrapper = forwardRef(function FieldWrapper(props, ref) {
106
112
  gap: "0.75x",
107
113
  children: [
108
114
  /* @__PURE__ */ jsxs("div", { children: [label, /* @__PURE__ */ jsx(NecessityIndicatorMark, {
109
- isRequired: requiredMark ? isRequired : false,
115
+ isRequired: showRequiredMark,
116
+ isOptional: showOptionalNote,
110
117
  necessityIndicator
111
118
  })] }),
112
119
  tooltip ? /* @__PURE__ */ jsx(InfoBadge, { tooltip }) : null,
@@ -1 +1 @@
1
- {"version":3,"file":"FieldWrapper.js","names":["Label","Text"],"sources":["../../../../src/components/form/FieldWrapper/FieldWrapper.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { mergeProps, wrapNodeIfPlain } from '../../../utils/react/index';\nimport { InfoBadge } from '../../content/InfoBadge';\nimport { Text } from '../../content/Text';\nimport { Flex } from '../../layout/Flex';\nimport { Space } from '../../layout/Space';\nimport { Label, NecessityIndicatorMark } from '../Label';\nimport { getValidationMods } from '../validation/index';\n\nimport { CubeFieldWrapperProps } from './types';\n\nconst FieldElement = tasty({\n qa: 'Field',\n styles: {\n display: 'grid',\n width: 'auto',\n gridColumns: {\n '': 'minmax(0, 1fr)',\n 'has-sider': '($full-label-width, auto) minmax(0, 1fr)',\n 'has-split': 'auto auto',\n },\n gap: 0,\n placeItems: {\n '': 'baseline stretch',\n 'has-split': 'center',\n },\n placeContent: {\n '': 'initial',\n 'has-split': 'space-between',\n },\n '$full-label-width': '($label-width + 1x)',\n\n LabelArea: {\n display: 'block',\n width: {\n '': 'initial',\n 'has-sider': '$label-width',\n },\n margin: {\n '': '1x bottom',\n 'has-sider': '1x right',\n 'has-split': '1x right',\n ':empty': '0',\n },\n },\n\n InputArea: {\n display: 'block',\n flow: 'column',\n gap: '.5x',\n gridColumn: {\n '': 'initial',\n 'has-sider': 2,\n 'has-split': 2,\n },\n },\n },\n});\n\nif (process.env.NODE_ENV === 'development') {\n FieldElement.displayName = 'FieldWrapperElement';\n}\n\nconst MessageElement = tasty({\n qa: 'FieldMessage',\n styles: {\n preset: 't4',\n color: {\n '': '#dark-02',\n invalid: '#danger-text',\n valid: '#success-text',\n disabled: '#dark.40',\n },\n textAlign: 'left',\n userSelect: 'none',\n },\n});\n\nconst DescriptionElement = tasty({\n qa: 'FieldDescription',\n styles: {\n preset: 't4',\n color: '#dark-03',\n textAlign: 'left',\n userSelect: 'none',\n },\n});\n\n/**\n * A wrapper for form fields to provide additional decoration for inputs.\n * @internal Do not use this component directly.\n */\nexport const FieldWrapper = forwardRef(function FieldWrapper(\n props: CubeFieldWrapperProps,\n ref,\n) {\n const {\n as,\n labelPosition = 'top',\n label,\n extra,\n styles,\n isRequired,\n isDisabled,\n labelStyles,\n necessityIndicator,\n labelProps,\n fieldProps,\n message,\n messageStyles,\n description,\n errorMessage,\n Component,\n isInvalid,\n isValid,\n requiredMark = true,\n tooltip,\n isHidden,\n labelSuffix,\n children,\n } = props;\n\n const labelComponent = label ? (\n <Label\n as={as === 'label' ? 'div' : 'label'}\n styles={labelStyles}\n labelPosition={labelPosition}\n isRequired={requiredMark ? isRequired : false}\n isDisabled={isDisabled}\n necessityIndicator={necessityIndicator}\n isInvalid={isInvalid}\n isValid={isValid}\n aria-label={typeof label === 'string' ? label : undefined}\n {...labelProps}\n >\n <Flex placeContent=\"baseline space-between\" width=\"100%\">\n <Space placeItems=\"center\" gap=\"0.75x\">\n <div>\n {label}\n {/*\n `Label` can only append the marker itself when its child is plain\n text, and the tree below is not — so it is placed here, against\n the label text, rather than after the full-width `Flex`.\n */}\n <NecessityIndicatorMark\n isRequired={requiredMark ? isRequired : false}\n necessityIndicator={necessityIndicator}\n />\n </div>\n\n {tooltip ? <InfoBadge tooltip={tooltip} /> : null}\n\n {labelSuffix ? <div>{labelSuffix}</div> : null}\n </Space>\n\n {extra && <Text preset=\"t3\">{extra}</Text>}\n </Flex>\n </Label>\n ) : null;\n\n // Create description component with proper styling\n const createDescriptionComponent = () => {\n if (!description) return null;\n\n return (\n <DescriptionElement data-element=\"Description\">\n {wrapNodeIfPlain(description, () => (\n <span>{description}</span>\n ))}\n </DescriptionElement>\n );\n };\n\n // Description positioning based on label position\n const descriptionForLabel =\n labelPosition === 'side' || labelPosition === 'split'\n ? createDescriptionComponent()\n : null;\n const descriptionForInput =\n labelPosition === 'top' ? createDescriptionComponent() : null;\n\n const mods = {\n 'has-sider': labelPosition === 'side',\n 'has-split': labelPosition === 'split',\n 'has-description': !!description,\n ...getValidationMods({ isInvalid, isValid }),\n };\n\n // Determine which message to display (errorMessage takes precedence, then message for backward compatibility)\n const displayMessage = errorMessage || message;\n const isErrorMessage = !!errorMessage;\n\n // Merge fieldProps with styles to ensure both are applied\n const mergedFieldProps = styles\n ? mergeProps(fieldProps, { styles })\n : fieldProps;\n\n return (\n <>\n <FieldElement\n ref={ref}\n as={as ?? 'div'}\n mods={mods}\n isHidden={isHidden}\n {...mergedFieldProps}\n >\n {labelComponent || descriptionForLabel ? (\n <div data-element=\"LabelArea\">\n {labelComponent}\n {descriptionForLabel}\n </div>\n ) : null}\n <div data-element=\"InputArea\">\n {Component}\n {descriptionForInput}\n {displayMessage && !isDisabled && (\n <MessageElement\n mods={{\n ...mods,\n // Force invalid state for errorMessage regardless of the validation state\n invalid: isErrorMessage || !!isInvalid,\n }}\n styles={messageStyles}\n role={isErrorMessage || isInvalid ? 'alert' : undefined}\n >\n {displayMessage}\n </MessageElement>\n )}\n </div>\n </FieldElement>\n {children}\n </>\n );\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"FieldWrapper.js","names":["Label","Text"],"sources":["../../../../src/components/form/FieldWrapper/FieldWrapper.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps, wrapNodeIfPlain } from '../../../utils/react/index';\nimport { InfoBadge } from '../../content/InfoBadge';\nimport { Text } from '../../content/Text';\nimport { Flex } from '../../layout/Flex';\nimport { Space } from '../../layout/Space';\nimport { Label, NecessityIndicatorMark } from '../Label';\nimport { getValidationMods } from '../validation/index';\n\nimport { CubeFieldWrapperProps } from './types';\n\nconst FieldElement = tasty({\n qa: 'Field',\n styles: {\n display: 'grid',\n width: 'auto',\n gridColumns: {\n '': 'minmax(0, 1fr)',\n 'has-sider': '($full-label-width, auto) minmax(0, 1fr)',\n 'has-split': 'auto auto',\n },\n gap: 0,\n placeItems: {\n '': 'baseline stretch',\n 'has-split': 'center',\n },\n placeContent: {\n '': 'initial',\n 'has-split': 'space-between',\n },\n '$full-label-width': '($label-width + 1x)',\n\n LabelArea: {\n display: 'block',\n width: {\n '': 'initial',\n 'has-sider': '$label-width',\n },\n margin: {\n '': '1x bottom',\n 'has-sider': '1x right',\n 'has-split': '1x right',\n ':empty': '0',\n },\n },\n\n InputArea: {\n display: 'block',\n flow: 'column',\n gap: '.5x',\n gridColumn: {\n '': 'initial',\n 'has-sider': 2,\n 'has-split': 2,\n },\n },\n },\n});\n\nif (process.env.NODE_ENV === 'development') {\n FieldElement.displayName = 'FieldWrapperElement';\n}\n\nconst MessageElement = tasty({\n qa: 'FieldMessage',\n styles: {\n preset: 't4',\n color: {\n '': '#dark-02',\n invalid: '#danger-text',\n valid: '#success-text',\n disabled: '#dark.40',\n },\n textAlign: 'left',\n userSelect: 'none',\n },\n});\n\nconst DescriptionElement = tasty({\n qa: 'FieldDescription',\n styles: {\n preset: 't4',\n color: '#dark-03',\n textAlign: 'left',\n userSelect: 'none',\n },\n});\n\n/**\n * A wrapper for form fields to provide additional decoration for inputs.\n * @internal Do not use this component directly.\n */\nexport const FieldWrapper = forwardRef(function FieldWrapper(\n props: CubeFieldWrapperProps,\n ref,\n) {\n const {\n as,\n labelPosition = 'top',\n label,\n extra,\n styles,\n isRequired,\n isOptional,\n isDisabled,\n labelStyles,\n necessityIndicator,\n labelProps,\n fieldProps,\n message,\n messageStyles,\n description,\n errorMessage,\n Component,\n isInvalid,\n isValid,\n requiredMark = true,\n tooltip,\n isHidden,\n labelSuffix,\n children,\n } = props;\n\n const { t } = useI18n();\n\n // `requiredMark={false}` drops the required marker, but the field is still\n // required — so the optional note has to keep losing to it rather than\n // stepping into the gap and labelling a required field optional.\n const showRequiredMark = !!requiredMark && !!isRequired;\n const showOptionalNote = !isRequired && !!isOptional;\n\n // The `aria-label` below is what the input is named by, so it shadows the\n // label's own content — including the `(optional)` note, which is the only\n // thing saying the field is optional. A required field needs no such help:\n // `aria-required` on the input already announces it.\n const optionalNote = showOptionalNote\n ? t('form.optional', '(optional)')\n : null;\n\n const labelComponent = label ? (\n <Label\n as={as === 'label' ? 'div' : 'label'}\n styles={labelStyles}\n labelPosition={labelPosition}\n isRequired={showRequiredMark}\n isOptional={showOptionalNote}\n isDisabled={isDisabled}\n necessityIndicator={necessityIndicator}\n isInvalid={isInvalid}\n isValid={isValid}\n aria-label={\n typeof label === 'string'\n ? optionalNote\n ? `${label} ${optionalNote}`\n : label\n : undefined\n }\n {...labelProps}\n >\n <Flex placeContent=\"baseline space-between\" width=\"100%\">\n <Space placeItems=\"center\" gap=\"0.75x\">\n <div>\n {label}\n {/*\n `Label` can only append the marker itself when its child is plain\n text, and the tree below is not — so it is placed here, against\n the label text, rather than after the full-width `Flex`.\n */}\n <NecessityIndicatorMark\n isRequired={showRequiredMark}\n isOptional={showOptionalNote}\n necessityIndicator={necessityIndicator}\n />\n </div>\n\n {tooltip ? <InfoBadge tooltip={tooltip} /> : null}\n\n {labelSuffix ? <div>{labelSuffix}</div> : null}\n </Space>\n\n {extra && <Text preset=\"t3\">{extra}</Text>}\n </Flex>\n </Label>\n ) : null;\n\n // Create description component with proper styling\n const createDescriptionComponent = () => {\n if (!description) return null;\n\n return (\n <DescriptionElement data-element=\"Description\">\n {wrapNodeIfPlain(description, () => (\n <span>{description}</span>\n ))}\n </DescriptionElement>\n );\n };\n\n // Description positioning based on label position\n const descriptionForLabel =\n labelPosition === 'side' || labelPosition === 'split'\n ? createDescriptionComponent()\n : null;\n const descriptionForInput =\n labelPosition === 'top' ? createDescriptionComponent() : null;\n\n const mods = {\n 'has-sider': labelPosition === 'side',\n 'has-split': labelPosition === 'split',\n 'has-description': !!description,\n ...getValidationMods({ isInvalid, isValid }),\n };\n\n // Determine which message to display (errorMessage takes precedence, then message for backward compatibility)\n const displayMessage = errorMessage || message;\n const isErrorMessage = !!errorMessage;\n\n // Merge fieldProps with styles to ensure both are applied\n const mergedFieldProps = styles\n ? mergeProps(fieldProps, { styles })\n : fieldProps;\n\n return (\n <>\n <FieldElement\n ref={ref}\n as={as ?? 'div'}\n mods={mods}\n isHidden={isHidden}\n {...mergedFieldProps}\n >\n {labelComponent || descriptionForLabel ? (\n <div data-element=\"LabelArea\">\n {labelComponent}\n {descriptionForLabel}\n </div>\n ) : null}\n <div data-element=\"InputArea\">\n {Component}\n {descriptionForInput}\n {displayMessage && !isDisabled && (\n <MessageElement\n mods={{\n ...mods,\n // Force invalid state for errorMessage regardless of the validation state\n invalid: isErrorMessage || !!isInvalid,\n }}\n styles={messageStyles}\n role={isErrorMessage || isInvalid ? 'alert' : undefined}\n >\n {displayMessage}\n </MessageElement>\n )}\n </div>\n </FieldElement>\n {children}\n </>\n );\n});\n"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAM,eAAe,MAAM;CACzB,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,OAAO;EACP,aAAa;GACX,IAAI;GACJ,aAAa;GACb,aAAa;GACd;EACD,KAAK;EACL,YAAY;GACV,IAAI;GACJ,aAAa;GACd;EACD,cAAc;GACZ,IAAI;GACJ,aAAa;GACd;EACD,qBAAqB;EAErB,WAAW;GACT,SAAS;GACT,OAAO;IACL,IAAI;IACJ,aAAa;IACd;GACD,QAAQ;IACN,IAAI;IACJ,aAAa;IACb,aAAa;IACb,UAAU;IACX;GACF;EAED,WAAW;GACT,SAAS;GACT,MAAM;GACN,KAAK;GACL,YAAY;IACV,IAAI;IACJ,aAAa;IACb,aAAa;IACd;GACF;EACF;CACF,CAAC;AAGA,aAAa,cAAc;AAG7B,MAAM,iBAAiB,MAAM;CAC3B,IAAI;CACJ,QAAQ;EACN,QAAQ;EACR,OAAO;GACL,IAAI;GACJ,SAAS;GACT,OAAO;GACP,UAAU;GACX;EACD,WAAW;EACX,YAAY;EACb;CACF,CAAC;AAEF,MAAM,qBAAqB,MAAM;CAC/B,IAAI;CACJ,QAAQ;EACN,QAAQ;EACR,OAAO;EACP,WAAW;EACX,YAAY;EACb;CACF,CAAC;;;;;AAMF,MAAa,eAAe,WAAW,SAAS,aAC9C,OACA,KACA;CACA,MAAM,EACJ,IACA,gBAAgB,OAChB,OACA,OACA,QACA,YACA,YACA,YACA,aACA,oBACA,YACA,YACA,SACA,eACA,aACA,cACA,WACA,WACA,SACA,eAAe,MACf,SACA,UACA,aACA,aACE;CAEJ,MAAM,EAAE,MAAM,SAAS;CAKvB,MAAM,mBAAmB,CAAC,CAAC,gBAAgB,CAAC,CAAC;CAC7C,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC;CAM1C,MAAM,eAAe,mBACjB,EAAE,iBAAiB,aAAa,GAChC;CAEJ,MAAM,iBAAiB,QACrB,oBAACA;EACC,IAAI,OAAO,UAAU,QAAQ;EAC7B,QAAQ;EACO;EACf,YAAY;EACZ,YAAY;EACA;EACQ;EACT;EACF;EACT,cACE,OAAO,UAAU,WACb,eACE,GAAG,MAAM,GAAG,iBACZ,QACF;EAEN,GAAI;YAEJ,qBAAC;GAAK,cAAa;GAAyB,OAAM;cAChD,qBAAC;IAAM,YAAW;IAAS,KAAI;;KAC7B,qBAAC,oBACE,OAMD,oBAAC;MACC,YAAY;MACZ,YAAY;MACQ;OACpB,IACE;KAEL,UAAU,oBAAC,aAAmB,UAAW,GAAG;KAE5C,cAAc,oBAAC,mBAAK,cAAkB,GAAG;;KACpC,EAEP,SAAS,oBAACC;IAAK,QAAO;cAAM;KAAa;IACrC;GACD,GACN;CAGJ,MAAM,mCAAmC;AACvC,MAAI,CAAC,YAAa,QAAO;AAEzB,SACE,oBAAC;GAAmB,gBAAa;aAC9B,gBAAgB,mBACf,oBAAC,oBAAM,cAAmB,CAC1B;IACiB;;CAKzB,MAAM,sBACJ,kBAAkB,UAAU,kBAAkB,UAC1C,4BAA4B,GAC5B;CACN,MAAM,sBACJ,kBAAkB,QAAQ,4BAA4B,GAAG;CAE3D,MAAM,OAAO;EACX,aAAa,kBAAkB;EAC/B,aAAa,kBAAkB;EAC/B,mBAAmB,CAAC,CAAC;EACrB,GAAG,kBAAkB;GAAE;GAAW;GAAS,CAAC;EAC7C;CAGD,MAAM,iBAAiB,gBAAgB;CACvC,MAAM,iBAAiB,CAAC,CAAC;CAGzB,MAAM,mBAAmB,SACrB,WAAW,YAAY,EAAE,QAAQ,CAAC,GAClC;AAEJ,QACE,8CACE,qBAAC;EACM;EACL,IAAI,MAAM;EACJ;EACI;EACV,GAAI;aAEH,kBAAkB,sBACjB,qBAAC;GAAI,gBAAa;cACf,gBACA;IACG,GACJ,MACJ,qBAAC;GAAI,gBAAa;;IACf;IACA;IACA,kBAAkB,CAAC,cAClB,oBAAC;KACC,MAAM;MACJ,GAAG;MAEH,SAAS,kBAAkB,CAAC,CAAC;MAC9B;KACD,QAAQ;KACR,MAAM,kBAAkB,YAAY,UAAU;eAE7C;MACc;;IAEf;GACO,EACd,YACA;EAEL"}
@@ -10,7 +10,8 @@ import { ReactElement, ReactNode } from "react";
10
10
  type CubeFieldWrapperProps = ValidationProps & {
11
11
  as?: keyof HTMLElementTagNameMap;
12
12
  styles?: Styles; /** Whether the input is required */
13
- isRequired?: boolean; /** Whether the input is disabled */
13
+ isRequired?: boolean; /** Whether the input is optional. Marks the label with an `(optional)` note. */
14
+ isOptional?: boolean; /** Whether the input is disabled */
14
15
  isDisabled?: boolean;
15
16
  fieldProps?: Props;
16
17
  isHidden?: boolean;
@@ -23,8 +24,7 @@ type CubeFieldWrapperProps = ValidationProps & {
23
24
  requiredMark?: boolean;
24
25
  tooltip?: ReactNode;
25
26
  extra?: ReactNode;
26
- necessityLabel?: ReactNode;
27
- necessityIndicator?: NecessityIndicator;
27
+ necessityIndicator?: NecessityIndicator | null;
28
28
  /**
29
29
  * @deprecated Use `errorMessage` for error messages and `description` for field descriptions instead.
30
30
  * Custom message for the field. It will be placed below the label and the input
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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";
@@ -59,12 +59,13 @@ function getValueProps(type, value, onChange, allowsCustomValue) {
59
59
  }
60
60
  function Field(props) {
61
61
  const allProps = useValidationProps(useFormProps(props));
62
- let { children, form, label, extra, necessityLabel, necessityIndicator, tooltip, isHidden, isDisabled, isLoading, styles, labelProps, labelPosition = "top", labelStyles, labelSuffix } = allProps;
62
+ let { children, form, label, extra, necessityIndicator, tooltip, isHidden, isDisabled, isLoading, isOptional, styles, labelProps, labelPosition = "top", labelStyles, labelSuffix } = allProps;
63
63
  if (typeof children === "function") children = children(form);
64
64
  let child = children == null ? null : Children.only(children);
65
65
  const inputType = (child?.type)?.cubeInputType ?? "Text";
66
66
  const __props = useField(allProps, { defaultValidationTrigger: getDefaultValidateTrigger(inputType) });
67
67
  const { isInvalid, isValid, message, description, errorMessage, isRequired, name, id } = __props;
68
+ const resolvedNecessityIndicator = necessityIndicator !== void 0 ? necessityIndicator : __props.necessityIndicator;
68
69
  if (!child) return null;
69
70
  if (id) {
70
71
  if (!labelProps) labelProps = {};
@@ -75,9 +76,9 @@ function Field(props) {
75
76
  isDisabled,
76
77
  isInvalid,
77
78
  isValid,
78
- necessityIndicator,
79
- necessityLabel,
79
+ necessityIndicator: resolvedNecessityIndicator,
80
80
  isRequired,
81
+ isOptional,
81
82
  label,
82
83
  labelProps,
83
84
  extra,
@@ -106,11 +107,12 @@ function Field(props) {
106
107
  name,
107
108
  onBlur: __props.onBlur
108
109
  };
109
- if (necessityIndicator != null) newProps.necessityIndicator = necessityIndicator;
110
- if (necessityLabel) newProps.necessityLabel = necessityLabel;
110
+ const childDeclaresNecessity = child.props.isRequired != null || child.props.necessityIndicator !== void 0;
111
+ if (resolvedNecessityIndicator !== void 0 && !(resolvedNecessityIndicator === null && childDeclaresNecessity)) newProps.necessityIndicator = resolvedNecessityIndicator;
111
112
  if (isInvalid) newProps.isInvalid = isInvalid;
112
113
  if (isValid) newProps.isValid = isValid;
113
114
  if (isRequired) newProps.isRequired = isRequired;
115
+ if (isOptional != null) newProps.isOptional = isOptional;
114
116
  if (label) newProps.label = label;
115
117
  if (extra) newProps.extra = extra;
116
118
  if (tooltip) newProps.tooltip = tooltip;
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","names":[],"sources":["../../../../src/components/form/Form/Field.tsx"],"sourcesContent":["import { Styles } from '@tenphi/tasty';\nimport {\n Children,\n cloneElement,\n createContext,\n PropsWithChildren,\n ReactElement,\n useContext,\n useMemo,\n} from 'react';\n\nimport { FieldBaseProps, LabelPosition } from '../../../shared/index';\nimport { mergeProps } from '../../../utils/react/index';\nimport { warn } from '../../../utils/warnings';\nimport { FieldWrapper } from '../FieldWrapper/index';\nimport { useValidationProps } from '../validation/index';\n\nimport { useFormProps } from './Form';\nimport { FieldTypes } from './types';\nimport { useField } from './use-field/index';\nimport { CubeFormInstance } from './use-form';\n\nfunction getDefaultValidateTrigger(type) {\n type = type || '';\n\n return type === 'Number' || type.includes('Text') ? 'onBlur' : 'onChange';\n}\n\nfunction getValueProps(\n type?: string,\n value?,\n onChange?,\n allowsCustomValue?: boolean,\n) {\n type = type || '';\n\n if (type === 'Number') {\n return {\n value: value != null ? value : null,\n onChange: onChange,\n };\n } else if (type === 'Text') {\n return {\n value:\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '',\n onChange: onChange,\n };\n } else if (type === 'Checkbox') {\n return {\n isSelected: value != null ? value : false,\n isIndeterminate: false,\n onChange: onChange,\n };\n } else if (type === 'CheckboxGroup') {\n return {\n value: value != null ? value : [],\n onChange: onChange,\n };\n } else if (type === 'RangeSlider') {\n return {\n value: value != null ? value : undefined,\n onChange: onChange,\n };\n } else if (type === 'ComboBox') {\n return {\n selectedKey: !allowsCustomValue ? value ?? null : undefined,\n inputValue: allowsCustomValue ? value ?? '' : undefined,\n onInputChange(val) {\n if (!allowsCustomValue) {\n return;\n }\n\n onChange(val);\n },\n onSelectionChange(val: string) {\n if (val == null && allowsCustomValue) {\n return;\n }\n\n onChange(val);\n },\n };\n } else if (type === 'Select') {\n return {\n selectedKey: value ?? null,\n onSelectionChange: onChange,\n };\n }\n\n return {\n value: value != null ? value : null,\n onChange,\n };\n}\n\nexport interface CubeFieldProps<T extends FieldTypes> extends FieldBaseProps {\n /** The initial value of the input. */\n defaultValue?: any;\n styles?: Styles;\n children?: ReactElement | ((CubeFormInstance) => ReactElement);\n /** The form instance */\n form?: CubeFormInstance<T>;\n}\n\ninterface CubeFullFieldProps<T extends FieldTypes> extends CubeFieldProps<T> {\n form: CubeFormInstance<T>;\n}\n\ninterface CubeReplaceFieldProps<T extends FieldTypes>\n extends CubeFieldProps<T> {\n isRequired?: boolean;\n onChange?: (any) => void;\n onSelectionChange?: (any) => void;\n onBlur: () => void;\n labelPosition?: LabelPosition;\n}\n\nexport function Field<T extends FieldTypes>(props: CubeFieldProps<T>) {\n const allProps: CubeFullFieldProps<T> = useValidationProps(\n useFormProps(props),\n );\n\n let {\n children,\n form,\n label,\n extra,\n necessityLabel,\n necessityIndicator,\n tooltip,\n isHidden,\n isDisabled,\n isLoading,\n styles,\n labelProps,\n labelPosition = 'top',\n labelStyles,\n labelSuffix,\n } = allProps;\n\n if (typeof children === 'function') {\n children = children(form);\n }\n\n let child = children == null ? null : Children.only(children);\n\n const inputType = (child?.type as any)?.cubeInputType ?? 'Text';\n\n const __props = useField<T, CubeFullFieldProps<T>>(allProps, {\n defaultValidationTrigger: getDefaultValidateTrigger(inputType),\n });\n\n const {\n isInvalid,\n isValid,\n message,\n description,\n errorMessage,\n isRequired,\n name,\n id,\n } = __props;\n\n if (!child) return null;\n\n if (id) {\n if (!labelProps) {\n labelProps = {};\n }\n\n labelProps.for = id;\n }\n\n if (__props.nonInput) {\n return (\n <LegacyFieldProvider>\n <FieldWrapper\n isHidden={isHidden}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n necessityIndicator={necessityIndicator}\n necessityLabel={necessityLabel}\n isRequired={isRequired}\n label={label}\n labelProps={labelProps}\n extra={extra}\n tooltip={tooltip}\n message={message}\n description={description}\n errorMessage={errorMessage}\n Component={child}\n styles={styles}\n labelPosition={labelPosition}\n labelStyles={labelStyles}\n labelSuffix={labelSuffix}\n />\n </LegacyFieldProvider>\n );\n }\n\n if (!form) {\n warn(\n 'Form Field requires declared form instance if field name is specified',\n );\n\n return null;\n }\n\n if (!__props.field) {\n return (\n <LegacyFieldProvider>\n {cloneElement(\n child,\n mergeProps(child.props as any, {\n ...getValueProps(inputType),\n label: name,\n name,\n id,\n }),\n )}\n </LegacyFieldProvider>\n );\n }\n\n const newProps: CubeReplaceFieldProps<T> = {\n id,\n name,\n onBlur: __props.onBlur,\n };\n\n if (necessityIndicator != null) {\n newProps.necessityIndicator = necessityIndicator;\n }\n\n if (necessityLabel) {\n newProps.necessityLabel = necessityLabel;\n }\n\n if (isInvalid) {\n newProps.isInvalid = isInvalid;\n }\n\n if (isValid) {\n newProps.isValid = isValid;\n }\n\n if (isRequired) {\n newProps.isRequired = isRequired;\n }\n\n if (label) {\n newProps.label = label;\n }\n\n if (extra) {\n newProps.extra = extra;\n }\n\n if (tooltip) {\n newProps.tooltip = tooltip;\n }\n\n if (message !== undefined) {\n newProps.message = message;\n }\n\n if (errorMessage !== undefined) {\n newProps.errorMessage = errorMessage;\n }\n\n if (description !== undefined) {\n newProps.description = description;\n }\n\n if (isHidden != null) {\n newProps.isHidden = isHidden;\n }\n\n if (isDisabled != null) {\n newProps.isDisabled = isDisabled;\n }\n\n if (isLoading != null) {\n newProps.isLoading = isLoading;\n }\n\n Object.assign(\n newProps,\n getValueProps(\n inputType,\n __props.field?.value,\n __props.onChange,\n (child.props as any).allowsCustomValue,\n ),\n );\n\n const { onChange, onSelectionChange, ...childProps } = child.props as any;\n\n // onChange event passed to the child should be executed after Form onChange logic\n return (\n <LegacyFieldProvider>\n {cloneElement(\n child,\n mergeProps(\n childProps,\n newProps,\n onChange ? { onChange: __props.onChange } : {},\n onSelectionChange ? { onSelectionChange: __props.onChange } : {},\n ),\n )}\n </LegacyFieldProvider>\n );\n}\n\ntype LegacyFieldContextValue = {\n insideLegacyField: boolean;\n};\n\nconst LegacyFieldContext = createContext<LegacyFieldContextValue>({\n insideLegacyField: false,\n});\n\nfunction LegacyFieldProvider(props: PropsWithChildren<unknown>) {\n const value = useMemo(() => ({ insideLegacyField: true }), []);\n return (\n <LegacyFieldContext.Provider value={value}>\n {props.children}\n </LegacyFieldContext.Provider>\n );\n}\n\nexport function useInsideLegacyField() {\n const { insideLegacyField = false } = useContext(LegacyFieldContext);\n\n return insideLegacyField;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Field.js","names":[],"sources":["../../../../src/components/form/Form/Field.tsx"],"sourcesContent":["import { Styles } from '@tenphi/tasty';\nimport {\n Children,\n cloneElement,\n createContext,\n PropsWithChildren,\n ReactElement,\n useContext,\n useMemo,\n} from 'react';\n\nimport { FieldBaseProps, LabelPosition } from '../../../shared/index';\nimport { mergeProps } from '../../../utils/react/index';\nimport { warn } from '../../../utils/warnings';\nimport { FieldWrapper } from '../FieldWrapper/index';\nimport { useValidationProps } from '../validation/index';\n\nimport { useFormProps } from './Form';\nimport { FieldTypes } from './types';\nimport { useField } from './use-field/index';\nimport { CubeFormInstance } from './use-form';\n\nfunction getDefaultValidateTrigger(type) {\n type = type || '';\n\n return type === 'Number' || type.includes('Text') ? 'onBlur' : 'onChange';\n}\n\nfunction getValueProps(\n type?: string,\n value?,\n onChange?,\n allowsCustomValue?: boolean,\n) {\n type = type || '';\n\n if (type === 'Number') {\n return {\n value: value != null ? value : null,\n onChange: onChange,\n };\n } else if (type === 'Text') {\n return {\n value:\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '',\n onChange: onChange,\n };\n } else if (type === 'Checkbox') {\n return {\n isSelected: value != null ? value : false,\n isIndeterminate: false,\n onChange: onChange,\n };\n } else if (type === 'CheckboxGroup') {\n return {\n value: value != null ? value : [],\n onChange: onChange,\n };\n } else if (type === 'RangeSlider') {\n return {\n value: value != null ? value : undefined,\n onChange: onChange,\n };\n } else if (type === 'ComboBox') {\n return {\n selectedKey: !allowsCustomValue ? value ?? null : undefined,\n inputValue: allowsCustomValue ? value ?? '' : undefined,\n onInputChange(val) {\n if (!allowsCustomValue) {\n return;\n }\n\n onChange(val);\n },\n onSelectionChange(val: string) {\n if (val == null && allowsCustomValue) {\n return;\n }\n\n onChange(val);\n },\n };\n } else if (type === 'Select') {\n return {\n selectedKey: value ?? null,\n onSelectionChange: onChange,\n };\n }\n\n return {\n value: value != null ? value : null,\n onChange,\n };\n}\n\nexport interface CubeFieldProps<T extends FieldTypes> extends FieldBaseProps {\n /** The initial value of the input. */\n defaultValue?: any;\n styles?: Styles;\n children?: ReactElement | ((CubeFormInstance) => ReactElement);\n /** The form instance */\n form?: CubeFormInstance<T>;\n}\n\ninterface CubeFullFieldProps<T extends FieldTypes> extends CubeFieldProps<T> {\n form: CubeFormInstance<T>;\n}\n\ninterface CubeReplaceFieldProps<T extends FieldTypes>\n extends CubeFieldProps<T> {\n isRequired?: boolean;\n isOptional?: boolean;\n onChange?: (any) => void;\n onSelectionChange?: (any) => void;\n onBlur: () => void;\n labelPosition?: LabelPosition;\n}\n\nexport function Field<T extends FieldTypes>(props: CubeFieldProps<T>) {\n const allProps: CubeFullFieldProps<T> = useValidationProps(\n useFormProps(props),\n );\n\n let {\n children,\n form,\n label,\n extra,\n necessityIndicator,\n tooltip,\n isHidden,\n isDisabled,\n isLoading,\n isOptional,\n styles,\n labelProps,\n labelPosition = 'top',\n labelStyles,\n labelSuffix,\n } = allProps;\n\n if (typeof children === 'function') {\n children = children(form);\n }\n\n let child = children == null ? null : Children.only(children);\n\n const inputType = (child?.type as any)?.cubeInputType ?? 'Text';\n\n const __props = useField<T, CubeFullFieldProps<T>>(allProps, {\n defaultValidationTrigger: getDefaultValidateTrigger(inputType),\n });\n\n const {\n isInvalid,\n isValid,\n message,\n description,\n errorMessage,\n isRequired,\n name,\n id,\n } = __props;\n\n // `useField` reports `null` here when `isRequired` came from a `required` rule\n // rather than from the props, which suppresses the label marker. An indicator\n // set on the `Field` itself is an explicit request and outranks that.\n const resolvedNecessityIndicator =\n necessityIndicator !== undefined\n ? necessityIndicator\n : __props.necessityIndicator;\n\n if (!child) return null;\n\n if (id) {\n if (!labelProps) {\n labelProps = {};\n }\n\n labelProps.for = id;\n }\n\n if (__props.nonInput) {\n return (\n <LegacyFieldProvider>\n <FieldWrapper\n isHidden={isHidden}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n necessityIndicator={resolvedNecessityIndicator}\n isRequired={isRequired}\n isOptional={isOptional}\n label={label}\n labelProps={labelProps}\n extra={extra}\n tooltip={tooltip}\n message={message}\n description={description}\n errorMessage={errorMessage}\n Component={child}\n styles={styles}\n labelPosition={labelPosition}\n labelStyles={labelStyles}\n labelSuffix={labelSuffix}\n />\n </LegacyFieldProvider>\n );\n }\n\n if (!form) {\n warn(\n 'Form Field requires declared form instance if field name is specified',\n );\n\n return null;\n }\n\n if (!__props.field) {\n return (\n <LegacyFieldProvider>\n {cloneElement(\n child,\n mergeProps(child.props as any, {\n ...getValueProps(inputType),\n label: name,\n name,\n id,\n }),\n )}\n </LegacyFieldProvider>\n );\n }\n\n const newProps: CubeReplaceFieldProps<T> = {\n id,\n name,\n onBlur: __props.onBlur,\n };\n\n // A `null` indicator suppresses the marker for a rule-derived `isRequired`. It\n // must not override a necessity the child input declares for itself, which the\n // `useField` above never saw.\n const childDeclaresNecessity =\n (child.props as any).isRequired != null ||\n (child.props as any).necessityIndicator !== undefined;\n\n if (\n resolvedNecessityIndicator !== undefined &&\n !(resolvedNecessityIndicator === null && childDeclaresNecessity)\n ) {\n newProps.necessityIndicator = resolvedNecessityIndicator;\n }\n\n if (isInvalid) {\n newProps.isInvalid = isInvalid;\n }\n\n if (isValid) {\n newProps.isValid = isValid;\n }\n\n if (isRequired) {\n newProps.isRequired = isRequired;\n }\n\n if (isOptional != null) {\n newProps.isOptional = isOptional;\n }\n\n if (label) {\n newProps.label = label;\n }\n\n if (extra) {\n newProps.extra = extra;\n }\n\n if (tooltip) {\n newProps.tooltip = tooltip;\n }\n\n if (message !== undefined) {\n newProps.message = message;\n }\n\n if (errorMessage !== undefined) {\n newProps.errorMessage = errorMessage;\n }\n\n if (description !== undefined) {\n newProps.description = description;\n }\n\n if (isHidden != null) {\n newProps.isHidden = isHidden;\n }\n\n if (isDisabled != null) {\n newProps.isDisabled = isDisabled;\n }\n\n if (isLoading != null) {\n newProps.isLoading = isLoading;\n }\n\n Object.assign(\n newProps,\n getValueProps(\n inputType,\n __props.field?.value,\n __props.onChange,\n (child.props as any).allowsCustomValue,\n ),\n );\n\n const { onChange, onSelectionChange, ...childProps } = child.props as any;\n\n // onChange event passed to the child should be executed after Form onChange logic\n return (\n <LegacyFieldProvider>\n {cloneElement(\n child,\n mergeProps(\n childProps,\n newProps,\n onChange ? { onChange: __props.onChange } : {},\n onSelectionChange ? { onSelectionChange: __props.onChange } : {},\n ),\n )}\n </LegacyFieldProvider>\n );\n}\n\ntype LegacyFieldContextValue = {\n insideLegacyField: boolean;\n};\n\nconst LegacyFieldContext = createContext<LegacyFieldContextValue>({\n insideLegacyField: false,\n});\n\nfunction LegacyFieldProvider(props: PropsWithChildren<unknown>) {\n const value = useMemo(() => ({ insideLegacyField: true }), []);\n return (\n <LegacyFieldContext.Provider value={value}>\n {props.children}\n </LegacyFieldContext.Provider>\n );\n}\n\nexport function useInsideLegacyField() {\n const { insideLegacyField = false } = useContext(LegacyFieldContext);\n\n return insideLegacyField;\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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.172.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.174.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";