@cube-dev/ui-kit 0.0.0-canary-d4796d7 → 0.0.0-canary-759f43d

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 (602) hide show
  1. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  2. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  3. package/dist/_internal/hooks/use-event.js +1 -1
  4. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  5. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  6. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  7. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  8. package/dist/_internal/hooks/use-warn.js +1 -1
  9. package/dist/components/Block.js +1 -1
  10. package/dist/components/CollectionItem.js +1 -1
  11. package/dist/components/GlobalStyles.js +1 -1
  12. package/dist/components/GridProvider.js +1 -1
  13. package/dist/components/HiddenInput.js +1 -1
  14. package/dist/components/Root.js +1 -1
  15. package/dist/components/actions/Action/Action.js +1 -1
  16. package/dist/components/actions/Banner/Banner.js +1 -1
  17. package/dist/components/actions/Button/Button.js +1 -1
  18. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  19. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  20. package/dist/components/actions/ButtonSplit/context.js +1 -1
  21. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  22. package/dist/components/actions/CommandMenu/styled.js +1 -1
  23. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  24. package/dist/components/actions/ItemActionContext.js +1 -1
  25. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  26. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  27. package/dist/components/actions/Link/Link.js +1 -1
  28. package/dist/components/actions/Menu/Menu.js +1 -1
  29. package/dist/components/actions/Menu/MenuCollectionItem.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/actions-run.js +1 -1
  38. package/dist/components/actions/index.js +1 -1
  39. package/dist/components/actions/use-action.js +1 -1
  40. package/dist/components/actions/use-anchored-menu.js +1 -1
  41. package/dist/components/actions/use-context-menu.js +1 -1
  42. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  43. package/dist/components/content/Alert/Alert.js +1 -1
  44. package/dist/components/content/Alert/use-alert.js +1 -1
  45. package/dist/components/content/Avatar/Avatar.js +1 -1
  46. package/dist/components/content/Badge/Badge.js +1 -1
  47. package/dist/components/content/Card/Card.js +1 -1
  48. package/dist/components/content/Content.js +1 -1
  49. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/dist/components/content/CopySnippet/CopySnippet.d.ts +30 -30
  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/Item/ItemWithNativeLinks.js +1 -1
  61. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  62. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  63. package/dist/components/content/Layout/GridLayout.js +1 -1
  64. package/dist/components/content/Layout/Layout.js +1 -1
  65. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  66. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  67. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  68. package/dist/components/content/Layout/LayoutContent.js +1 -1
  69. package/dist/components/content/Layout/LayoutContext.js +1 -1
  70. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  71. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  72. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  73. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutPane.js +1 -1
  75. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  76. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  77. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  78. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  79. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  80. package/dist/components/content/Layout/index.js +1 -1
  81. package/dist/components/content/Layout/utils.js +1 -1
  82. package/dist/components/content/Paragraph.js +1 -1
  83. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  84. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  85. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  86. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  87. package/dist/components/content/Result/Result.js +1 -1
  88. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  89. package/dist/components/content/Tag/Tag.js +1 -1
  90. package/dist/components/content/Text.d.ts +28 -28
  91. package/dist/components/content/Text.js +1 -1
  92. package/dist/components/content/TextItem/TextItem.js +1 -1
  93. package/dist/components/content/Title.js +1 -1
  94. package/dist/components/content/Tree/Tree.js +1 -1
  95. package/dist/components/content/Tree/TreeNode.js +1 -2
  96. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  97. package/dist/components/content/Tree/styled.js +1 -1
  98. package/dist/components/content/Tree/tree-index.js +1 -1
  99. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  100. package/dist/components/content/Tree/use-load-data.js +1 -1
  101. package/dist/components/content/highlightText.js +1 -1
  102. package/dist/components/content/use-auto-tooltip.js +1 -1
  103. package/dist/components/data/DataTable/DataTable.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  105. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  106. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -2
  109. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  110. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  111. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  112. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  113. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  114. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  115. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  116. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  117. package/dist/components/data/TableBase/RowCollection.js +1 -1
  118. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  119. package/dist/components/data/TableBase/TableRow.js +1 -1
  120. package/dist/components/data/TableBase/TableView.js +1 -3
  121. package/dist/components/data/TableBase/TableView.js.map +1 -1
  122. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  123. package/dist/components/data/TableBase/column-header.js +1 -1
  124. package/dist/components/data/TableBase/column-menu.js +1 -1
  125. package/dist/components/data/TableBase/column-styles.js +1 -1
  126. package/dist/components/data/TableBase/column-tint.js +1 -1
  127. package/dist/components/data/TableBase/row-menu.js +1 -1
  128. package/dist/components/data/TableBase/styled.js +1 -1
  129. package/dist/components/data/TableBase/table-tree.js +1 -1
  130. package/dist/components/data/TableBase/types.js +1 -1
  131. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  132. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  133. package/dist/components/data/TableBase/use-column-order.js +1 -1
  134. package/dist/components/data/TableBase/use-column-window.js +1 -1
  135. package/dist/components/data/TableBase/use-container-width.js +1 -1
  136. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  137. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  138. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  139. package/dist/components/data/TableBase/use-table-search.js +1 -1
  140. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  141. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  142. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  143. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  144. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  145. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  146. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  147. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  148. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  149. package/dist/components/fields/Checkbox/context.js +1 -1
  150. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  151. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -3
  152. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  153. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  154. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -2
  155. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  156. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  157. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  158. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  159. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  160. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  161. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  162. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  163. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  164. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  165. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  166. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  167. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  168. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  169. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  170. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  171. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  172. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  173. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  174. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  176. package/dist/components/fields/DatePicker/period.js +1 -1
  177. package/dist/components/fields/DatePicker/props.js +1 -1
  178. package/dist/components/fields/DatePicker/utils.js +1 -1
  179. package/dist/components/fields/FileInput/FileInput.js +1 -1
  180. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -2
  181. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  182. package/dist/components/fields/FilterPicker/FilterPicker.js +6 -15
  183. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  184. package/dist/components/fields/Input/Input.js +1 -1
  185. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  186. package/dist/components/fields/ListBox/ListBox.js +5 -7
  187. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  188. package/dist/components/fields/ListBox/optionId.js +1 -1
  189. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -2
  190. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  191. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  192. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  193. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  194. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  195. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  196. package/dist/components/fields/Picker/Picker.js +6 -15
  197. package/dist/components/fields/Picker/Picker.js.map +1 -1
  198. package/dist/components/fields/RadioGroup/Radio.d.ts +32 -32
  199. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  200. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  201. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  202. package/dist/components/fields/RadioGroup/context.js +1 -1
  203. package/dist/components/fields/SearchComboBox/SearchComboBox.js +6 -1
  204. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  205. package/dist/components/fields/SearchInput/SearchInput.js +6 -1
  206. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  207. package/dist/components/fields/Select/Select.js +1 -1
  208. package/dist/components/fields/Slider/Gradation.js +1 -1
  209. package/dist/components/fields/Slider/HueSlider.js +1 -1
  210. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  211. package/dist/components/fields/Slider/Slider.js +1 -1
  212. package/dist/components/fields/Slider/SliderBase.js +1 -1
  213. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  214. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  215. package/dist/components/fields/Slider/elements.js +1 -1
  216. package/dist/components/fields/Slider/index.js +1 -1
  217. package/dist/components/fields/Switch/Switch.js +1 -1
  218. package/dist/components/fields/TagInput/TagInput.js +1 -2
  219. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  220. package/dist/components/fields/TagInput/TagList.js +1 -1
  221. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  222. package/dist/components/fields/TagInput/useTagError.js +1 -1
  223. package/dist/components/fields/TextArea/TextArea.js +1 -1
  224. package/dist/components/fields/TextInput/TextInput.js +1 -1
  225. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  226. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  227. package/dist/components/fields/TextInputMapper/TextInputMapper.js +16 -19
  228. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  229. package/dist/components/fields/TriggerActions.js +1 -1
  230. package/dist/components/fields/color/ColorPanel.js +1 -3
  231. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  232. package/dist/components/fields/color/channels.js +1 -1
  233. package/dist/components/fields/color/color.js +1 -1
  234. package/dist/components/fields/color/context.js +1 -1
  235. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +8 -10
  236. package/dist/components/form/FieldWrapper/FieldWrapper.js +159 -214
  237. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  238. package/dist/components/form/FieldWrapper/field-description.js +3 -3
  239. package/dist/components/form/FieldWrapper/field-description.js.map +1 -1
  240. package/dist/components/form/FieldWrapper/types.d.ts +3 -4
  241. package/dist/components/form/Form/Field.js +1 -1
  242. package/dist/components/form/Form/Form.js +1 -1
  243. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  244. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  245. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  246. package/dist/components/form/Form/SubmitError.js +1 -1
  247. package/dist/components/form/Form/backend.js +1 -1
  248. package/dist/components/form/Form/index.js +1 -1
  249. package/dist/components/form/Form/modern/actions.js +1 -1
  250. package/dist/components/form/Form/modern/context.js +1 -1
  251. package/dist/components/form/Form/modern/controller.js +1 -1
  252. package/dist/components/form/Form/modern/field-binding.js +1 -1
  253. package/dist/components/form/Form/modern/field.js +1 -1
  254. package/dist/components/form/Form/modern/react.js +1 -1
  255. package/dist/components/form/Form/modern/store.js +1 -1
  256. package/dist/components/form/Form/modern/validation.js +1 -1
  257. package/dist/components/form/Form/modern/values.js +1 -1
  258. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  259. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  260. package/dist/components/form/Form/use-field/use-field-props.js +33 -21
  261. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  262. package/dist/components/form/Form/use-field/use-field.js +1 -1
  263. package/dist/components/form/Form/use-form.js +1 -1
  264. package/dist/components/form/Form/validation.js +1 -1
  265. package/dist/components/form/Label.js +1 -1
  266. package/dist/components/form/field-chrome.js +34 -4
  267. package/dist/components/form/field-chrome.js.map +1 -1
  268. package/dist/components/form/legacy-tooltip.js +1 -1
  269. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  270. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  271. package/dist/components/form/validation/use-validation-props.js +1 -1
  272. package/dist/components/form/wrapper.d.ts +17 -6
  273. package/dist/components/form/wrapper.js +14 -6
  274. package/dist/components/form/wrapper.js.map +1 -1
  275. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  276. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  277. package/dist/components/layout/Flex.js +1 -1
  278. package/dist/components/layout/Flow.js +1 -1
  279. package/dist/components/layout/Grid.js +1 -1
  280. package/dist/components/layout/Panel.js +1 -1
  281. package/dist/components/layout/Prefix.js +1 -1
  282. package/dist/components/layout/ResizablePanel.js +1 -1
  283. package/dist/components/layout/Space.js +1 -1
  284. package/dist/components/layout/Suffix.js +1 -1
  285. package/dist/components/navigation/Pagination/Pagination.js +1 -3
  286. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  287. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  288. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  289. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  290. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  291. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  292. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  293. package/dist/components/navigation/Tabs/TabPicker.js +1 -2
  294. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  295. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  296. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  297. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  298. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  299. package/dist/components/navigation/Tabs/styled.js +1 -1
  300. package/dist/components/navigation/Tabs/types.js +1 -1
  301. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  302. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  303. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  304. package/dist/components/other/Calendar/Calendar.js +1 -1
  305. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  306. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  307. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  308. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  309. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  310. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  311. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  312. package/dist/components/other/Calendar/styled.js +1 -1
  313. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  314. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  315. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  316. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  317. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  318. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  319. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  320. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  321. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  322. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  323. package/dist/components/overlays/Dialog/context.js +1 -1
  324. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  325. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  326. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  327. package/dist/components/overlays/Modal/Modal.js +1 -1
  328. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  329. package/dist/components/overlays/Modal/Overlay.js +1 -1
  330. package/dist/components/overlays/Modal/Popover.js +1 -1
  331. package/dist/components/overlays/Modal/Tray.js +1 -1
  332. package/dist/components/overlays/Modal/Underlay.js +1 -1
  333. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  334. package/dist/components/overlays/Notifications/Notification.js +1 -1
  335. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  336. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  337. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  338. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  339. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  340. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  341. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  342. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  343. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  344. package/dist/components/overlays/Notifications/index.js +1 -1
  345. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  346. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  347. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  348. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  349. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  350. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  351. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  352. package/dist/components/overlays/Toast/index.js +1 -1
  353. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  354. package/dist/components/overlays/Toast/useToast.js +1 -1
  355. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  356. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  357. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  358. package/dist/components/overlays/Tooltip/context.js +1 -1
  359. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  360. package/dist/components/portal/Portal.js +1 -1
  361. package/dist/components/portal/PortalProvider.js +1 -1
  362. package/dist/components/portal/usePortal.js +1 -1
  363. package/dist/components/shared/DraggableCollection.js +1 -1
  364. package/dist/components/shared/InvalidIcon.js +1 -1
  365. package/dist/components/shared/ValidIcon.js +1 -1
  366. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  367. package/dist/components/status/Spin/Cube.js +1 -1
  368. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  369. package/dist/components/status/Spin/Spin.js +1 -1
  370. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  371. package/dist/data/item-themes.js +1 -1
  372. package/dist/data/themes.js +1 -1
  373. package/dist/eslint-plugin/defaults.generated.js +1 -1
  374. package/dist/eslint-plugin/index.js +1 -1
  375. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  376. package/dist/i18n/I18nProvider.js +1 -1
  377. package/dist/i18n/createFormatter.js +1 -1
  378. package/dist/i18n/index.js +1 -1
  379. package/dist/i18n/instance.js +1 -1
  380. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  381. package/dist/i18n/locales/en-US/uikit.js +1 -1
  382. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  383. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  384. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  385. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  386. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  387. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  388. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  389. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  390. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  391. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  392. package/dist/i18n/locales.js +1 -1
  393. package/dist/i18n/namespace.js +1 -1
  394. package/dist/i18n/useFormatter.js +1 -1
  395. package/dist/i18n/useI18n.js +1 -1
  396. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  397. package/dist/icons/AdjustmentsIcon.js +1 -1
  398. package/dist/icons/AiIcon.js +1 -1
  399. package/dist/icons/AreaChartIcon.js +1 -1
  400. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  401. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  402. package/dist/icons/BackwardIcon.js +1 -1
  403. package/dist/icons/BarChartIcon.js +1 -1
  404. package/dist/icons/BellFilledIcon.js +1 -1
  405. package/dist/icons/BellIcon.js +1 -1
  406. package/dist/icons/BooleanIcon.js +1 -1
  407. package/dist/icons/CalendarEditIcon.js +1 -1
  408. package/dist/icons/CalendarIcon.js +1 -1
  409. package/dist/icons/CaretDownIcon.js +1 -1
  410. package/dist/icons/CaretUpIcon.js +1 -1
  411. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  412. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  413. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  414. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  415. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  416. package/dist/icons/ChartBarLineIcon.js +1 -1
  417. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  418. package/dist/icons/ChartBarStackedIcon.js +1 -1
  419. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  420. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  421. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  422. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  423. package/dist/icons/ChartBubbleIcon.js +1 -1
  424. package/dist/icons/ChartDonut2Icon.js +1 -1
  425. package/dist/icons/ChartFunnelIcon.js +1 -1
  426. package/dist/icons/ChartHeatmapIcon.js +1 -1
  427. package/dist/icons/ChartKPIIcon.js +1 -1
  428. package/dist/icons/ChartPie2Icon.js +1 -1
  429. package/dist/icons/ChartScatterIcon.js +1 -1
  430. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  431. package/dist/icons/CheckCircleIcon.js +1 -1
  432. package/dist/icons/CheckIcon.js +1 -1
  433. package/dist/icons/CircleFilledIcon.js +1 -1
  434. package/dist/icons/ClearIcon.js +1 -1
  435. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  436. package/dist/icons/CloseCircleIcon.js +1 -1
  437. package/dist/icons/CloseIcon.js +1 -1
  438. package/dist/icons/CodeIcon.js +1 -1
  439. package/dist/icons/ColumnTotalIcon.js +1 -1
  440. package/dist/icons/CopyIcon.js +1 -1
  441. package/dist/icons/CountIcon.js +1 -1
  442. package/dist/icons/CubeIcon.js +1 -1
  443. package/dist/icons/CubePauseIcon.js +1 -1
  444. package/dist/icons/CubePlayIcon.js +1 -1
  445. package/dist/icons/CurrencyDollarIcon.js +1 -1
  446. package/dist/icons/DangerIcon.js +1 -1
  447. package/dist/icons/DashboardIcon.js +1 -1
  448. package/dist/icons/DatabaseIcon.js +1 -1
  449. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  450. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  451. package/dist/icons/DirectionIcon.js +1 -1
  452. package/dist/icons/DonutIcon.js +1 -1
  453. package/dist/icons/DownIcon.js +1 -1
  454. package/dist/icons/EditIcon.js +1 -1
  455. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  456. package/dist/icons/ExclamationCircleIcon.js +1 -1
  457. package/dist/icons/ExclamationIcon.js +1 -1
  458. package/dist/icons/EyeIcon.js +1 -1
  459. package/dist/icons/EyeInvisibleIcon.js +1 -1
  460. package/dist/icons/FilterIcon.js +1 -1
  461. package/dist/icons/FolderFilledIcon.js +1 -1
  462. package/dist/icons/FolderIcon.js +1 -1
  463. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  464. package/dist/icons/FolderOpenIcon.js +1 -1
  465. package/dist/icons/ForwardIcon.js +1 -1
  466. package/dist/icons/GripVerticalIcon.js +1 -1
  467. package/dist/icons/HierarchyIcon.js +1 -1
  468. package/dist/icons/HierarchyOpenIcon.js +1 -1
  469. package/dist/icons/Icon.js +1 -1
  470. package/dist/icons/InfoCircleIcon.js +1 -1
  471. package/dist/icons/InfoIcon.js +1 -1
  472. package/dist/icons/KeyIcon.js +1 -1
  473. package/dist/icons/LeftIcon.js +1 -1
  474. package/dist/icons/LineChartIcon.js +1 -1
  475. package/dist/icons/LoadingIcon.js +1 -1
  476. package/dist/icons/LockFilledIcon.js +1 -1
  477. package/dist/icons/LockIcon.js +1 -1
  478. package/dist/icons/MoreIcon.js +1 -1
  479. package/dist/icons/NotAllowedIcon.js +1 -1
  480. package/dist/icons/Number123Icon.js +1 -1
  481. package/dist/icons/NumberIcon.js +1 -1
  482. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  483. package/dist/icons/PauseCircleIcon.js +1 -1
  484. package/dist/icons/PauseIcon.js +1 -1
  485. package/dist/icons/PercentageIcon.js +1 -1
  486. package/dist/icons/PieChartIcon.js +1 -1
  487. package/dist/icons/PipetteIcon.js +1 -1
  488. package/dist/icons/PlayCircleIcon.js +1 -1
  489. package/dist/icons/PlayIcon.js +1 -1
  490. package/dist/icons/PlusIcon.js +1 -1
  491. package/dist/icons/ProgressBarIcon.js +1 -1
  492. package/dist/icons/ReloadIcon.js +1 -1
  493. package/dist/icons/ReportIcon.js +1 -1
  494. package/dist/icons/ReturnIcon.js +1 -1
  495. package/dist/icons/RightIcon.js +1 -1
  496. package/dist/icons/RowTotalsIcon.js +1 -1
  497. package/dist/icons/SchemeIcon.js +1 -1
  498. package/dist/icons/SearchIcon.js +1 -1
  499. package/dist/icons/SemanticQueryIcon.js +1 -1
  500. package/dist/icons/SettingsIcon.js +1 -1
  501. package/dist/icons/ShieldFilledIcon.js +1 -1
  502. package/dist/icons/ShieldIcon.js +1 -1
  503. package/dist/icons/SlashIcon.js +1 -1
  504. package/dist/icons/SparklesIcon.js +1 -1
  505. package/dist/icons/SqlIcon.js +1 -1
  506. package/dist/icons/StatsIcon.js +1 -1
  507. package/dist/icons/StopIcon.js +1 -1
  508. package/dist/icons/StringIcon.js +1 -1
  509. package/dist/icons/SubtotalsIcon.js +1 -1
  510. package/dist/icons/SwitchIcon.js +1 -1
  511. package/dist/icons/TableIcon.js +1 -1
  512. package/dist/icons/ThumbsDownIcon.js +1 -1
  513. package/dist/icons/ThumbsUpIcon.js +1 -1
  514. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  515. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  516. package/dist/icons/ThunderboltIcon.js +1 -1
  517. package/dist/icons/TimeIcon.js +1 -1
  518. package/dist/icons/TrashIcon.js +1 -1
  519. package/dist/icons/UnlockIcon.js +1 -1
  520. package/dist/icons/UpIcon.js +1 -1
  521. package/dist/icons/UserGroupIcon.js +1 -1
  522. package/dist/icons/UserIcon.js +1 -1
  523. package/dist/icons/UserLockIcon.js +1 -1
  524. package/dist/icons/ViewIcon.js +1 -1
  525. package/dist/icons/WarningFilledIcon.js +1 -1
  526. package/dist/icons/WarningIcon.js +1 -1
  527. package/dist/icons/wrap-icon.js +1 -1
  528. package/dist/index.js +1 -1
  529. package/dist/probe/canonicalize.js +1 -1
  530. package/dist/probe/css.js +1 -1
  531. package/dist/probe/index.js +1 -1
  532. package/dist/provider.js +1 -1
  533. package/dist/providers/TrackingProvider.js +1 -1
  534. package/dist/providers/navigation-url.js +1 -1
  535. package/dist/providers/navigationAdapter.default.js +1 -1
  536. package/dist/providers/use-navigation.js +1 -1
  537. package/dist/shared/form.d.ts +12 -11
  538. package/dist/tokens/all-tokens.js +1 -1
  539. package/dist/tokens/base.js +1 -1
  540. package/dist/tokens/color-seed.js +1 -1
  541. package/dist/tokens/color-theme.js +1 -1
  542. package/dist/tokens/colors.js +1 -1
  543. package/dist/tokens/layout.js +1 -1
  544. package/dist/tokens/lazy-styles.js +1 -1
  545. package/dist/tokens/legacy-color.js +1 -1
  546. package/dist/tokens/palette-config.js +1 -1
  547. package/dist/tokens/palette.js +1 -1
  548. package/dist/tokens/resolve.js +1 -1
  549. package/dist/tokens/shadows.js +1 -1
  550. package/dist/tokens/sizes.js +1 -1
  551. package/dist/tokens/spacing.js +1 -1
  552. package/dist/tokens/typography.js +1 -1
  553. package/dist/utils/ResizeSensor.js +1 -1
  554. package/dist/utils/colors.js +1 -1
  555. package/dist/utils/dotize.js +1 -1
  556. package/dist/utils/is-dev-env.js +1 -1
  557. package/dist/utils/modules.js +1 -1
  558. package/dist/utils/promise.js +1 -1
  559. package/dist/utils/raf.js +1 -1
  560. package/dist/utils/random.js +1 -1
  561. package/dist/utils/range.js +1 -1
  562. package/dist/utils/react/RenderCache.js +1 -1
  563. package/dist/utils/react/Slots.js +1 -1
  564. package/dist/utils/react/chain.js +1 -1
  565. package/dist/utils/react/disabledProps.js +1 -1
  566. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  567. package/dist/utils/react/index.js +1 -1
  568. package/dist/utils/react/interactions.js +1 -1
  569. package/dist/utils/react/isTextOnly.js +1 -1
  570. package/dist/utils/react/mapProps.js +1 -1
  571. package/dist/utils/react/mergeProps.js +1 -1
  572. package/dist/utils/react/nullableValue.js +1 -1
  573. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  574. package/dist/utils/react/programmaticFocus.js +1 -1
  575. package/dist/utils/react/resolveIcon.js +1 -1
  576. package/dist/utils/react/sharedStore.js +1 -1
  577. package/dist/utils/react/useBufferedValue.js +1 -1
  578. package/dist/utils/react/useCombinedRefs.js +1 -1
  579. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  580. package/dist/utils/react/useEventBus.js +1 -1
  581. package/dist/utils/react/useId.js +1 -1
  582. package/dist/utils/react/useIsDarwin.js +1 -1
  583. package/dist/utils/react/useKeySymbols.js +1 -1
  584. package/dist/utils/react/useLayoutEffect.js +1 -1
  585. package/dist/utils/react/useLocalStorage.js +1 -1
  586. package/dist/utils/react/useMergeStyles.js +1 -1
  587. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  588. package/dist/utils/react/usePopoverSync.js +1 -1
  589. package/dist/utils/react/useQaProps.js +1 -1
  590. package/dist/utils/react/useScheme.js +1 -1
  591. package/dist/utils/react/useViewportSize.js +1 -1
  592. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  593. package/dist/utils/selection.js +1 -1
  594. package/dist/utils/styles.js +1 -1
  595. package/dist/utils/tree.js +1 -1
  596. package/dist/utils/warnings.js +1 -1
  597. package/dist/version.js +2 -2
  598. package/docs/CreateComponent.md +0 -2
  599. package/docs/FieldProperties.md +6 -21
  600. package/docs/Usage.md +0 -2
  601. package/docs/components/fields/TagInput.md +0 -7
  602. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d4796d7 | Cube Dev Team */
2
- import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-759f43d | Cube Dev Team */
2
+ import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { _Text } from "../../content/Text.js";
4
4
  import { wrapNodeIfPlain } from "../../../utils/react/wrapNodeIfPlain.js";
5
5
  import { isDevEnv } from "../../../utils/is-dev-env.js";
@@ -15,13 +15,8 @@ import { c } from "react/compiler-runtime";
15
15
  import { tasty } from "@tenphi/tasty";
16
16
  import { forwardRef } from "react";
17
17
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
18
- import { VisuallyHidden } from "react-aria";
19
18
 
20
19
  //#region src/components/form/FieldWrapper/FieldWrapper.tsx
21
- /** Empty slot values suppress content; numeric zero is still text. */
22
- function hasFieldContent(content) {
23
- return content != null && typeof content !== "boolean" && content !== "";
24
- }
25
20
  const FieldElement = tasty({
26
21
  qa: "Field",
27
22
  styles: {
@@ -107,33 +102,25 @@ const LabelSuffixElement = tasty({ styles: {
107
102
  * @internal Do not use this component directly.
108
103
  */
109
104
  const FieldWrapper = forwardRef(function FieldWrapper(props, ref) {
110
- const $ = c(90);
111
- const { as, labelPosition: t0, label, isBare: t1, extra, styles, isRequired, isOptional, isDisabled, labelStyles, necessityIndicator, labelProps, fieldProps, message, messageStyles, description, errorMessage, Component, controlId, isInvalid, isValid, requiredMark: t2, labelTooltip, isHidden, labelSuffix, children } = props;
105
+ const $ = c(71);
106
+ const { as, labelPosition: t0, label, extra, styles, isRequired, isOptional, isDisabled, labelStyles, necessityIndicator, labelProps, fieldProps, message, messageStyles, description, errorMessage, Component, controlId, isInvalid, isValid, requiredMark: t1, labelTooltip, isHidden, labelSuffix, children } = props;
112
107
  const labelPosition = t0 === void 0 ? "top" : t0;
113
- const isBare = t1 === void 0 ? false : t1;
114
- const requiredMark = t2 === void 0 ? true : t2;
108
+ const requiredMark = t1 === void 0 ? true : t1;
115
109
  const { t } = useI18n();
116
110
  warnAboutLegacyTooltip(props);
117
111
  const showRequiredMark = !!requiredMark && !!isRequired;
118
112
  const showOptionalNote = !isRequired && !!isOptional;
119
- let t3;
113
+ let t2;
120
114
  if ($[0] !== showOptionalNote || $[1] !== t) {
121
- t3 = showOptionalNote ? t("form.optional", "(optional)") : null;
115
+ t2 = showOptionalNote ? t("form.optional", "(optional)") : null;
122
116
  $[0] = showOptionalNote;
123
117
  $[1] = t;
124
- $[2] = t3;
125
- } else t3 = $[2];
126
- const optionalNote = t3;
127
- let t4;
128
- if ($[3] !== label) {
129
- t4 = hasFieldContent(label);
130
- $[3] = label;
131
- $[4] = t4;
132
- } else t4 = $[4];
133
- const hasLabel = t4;
134
- let t5;
135
- if ($[5] !== as || $[6] !== extra || $[7] !== hasLabel || $[8] !== isDisabled || $[9] !== isInvalid || $[10] !== isValid || $[11] !== label || $[12] !== labelPosition || $[13] !== labelProps || $[14] !== labelStyles || $[15] !== labelSuffix || $[16] !== labelTooltip || $[17] !== necessityIndicator || $[18] !== optionalNote || $[19] !== showOptionalNote || $[20] !== showRequiredMark) {
136
- t5 = hasLabel ? /* @__PURE__ */ jsx(_Label, {
118
+ $[2] = t2;
119
+ } else t2 = $[2];
120
+ const optionalNote = t2;
121
+ let t3;
122
+ if ($[3] !== as || $[4] !== extra || $[5] !== isDisabled || $[6] !== isInvalid || $[7] !== isValid || $[8] !== label || $[9] !== labelPosition || $[10] !== labelProps || $[11] !== labelStyles || $[12] !== labelSuffix || $[13] !== labelTooltip || $[14] !== necessityIndicator || $[15] !== optionalNote || $[16] !== showOptionalNote || $[17] !== showRequiredMark) {
123
+ t3 = label ? /* @__PURE__ */ jsx(_Label, {
137
124
  as: as === "label" ? "div" : "label",
138
125
  styles: labelStyles,
139
126
  labelPosition,
@@ -166,169 +153,127 @@ const FieldWrapper = forwardRef(function FieldWrapper(props, ref) {
166
153
  })]
167
154
  })
168
155
  }) : null;
169
- $[5] = as;
170
- $[6] = extra;
171
- $[7] = hasLabel;
172
- $[8] = isDisabled;
173
- $[9] = isInvalid;
174
- $[10] = isValid;
175
- $[11] = label;
176
- $[12] = labelPosition;
177
- $[13] = labelProps;
178
- $[14] = labelStyles;
179
- $[15] = labelSuffix;
180
- $[16] = labelTooltip;
181
- $[17] = necessityIndicator;
182
- $[18] = optionalNote;
183
- $[19] = showOptionalNote;
184
- $[20] = showRequiredMark;
185
- $[21] = t5;
186
- } else t5 = $[21];
187
- const labelComponent = t5;
188
- const displayMessage = errorMessage !== void 0 ? errorMessage : message;
189
- const isErrorMessage = errorMessage !== void 0;
190
- let t6;
191
- if ($[22] !== displayMessage || $[23] !== isBare || $[24] !== isDisabled) {
192
- t6 = !isBare && !isDisabled && hasFieldContent(displayMessage);
193
- $[22] = displayMessage;
194
- $[23] = isBare;
195
- $[24] = isDisabled;
196
- $[25] = t6;
197
- } else t6 = $[25];
198
- const isMessageShown = t6;
199
- let t7;
200
- if ($[26] !== controlId || $[27] !== description || $[28] !== isBare) {
201
- t7 = controlId && !isBare && hasFieldContent(description) ? getFieldDescriptionId(controlId) : void 0;
202
- $[26] = controlId;
203
- $[27] = description;
204
- $[28] = isBare;
205
- $[29] = t7;
206
- } else t7 = $[29];
207
- const descriptionId = t7;
208
- let t8;
209
- if ($[30] !== controlId || $[31] !== isMessageShown) {
210
- t8 = controlId && isMessageShown ? getFieldMessageId(controlId) : void 0;
211
- $[30] = controlId;
212
- $[31] = isMessageShown;
213
- $[32] = t8;
214
- } else t8 = $[32];
215
- const messageId = t8;
156
+ $[3] = as;
157
+ $[4] = extra;
158
+ $[5] = isDisabled;
159
+ $[6] = isInvalid;
160
+ $[7] = isValid;
161
+ $[8] = label;
162
+ $[9] = labelPosition;
163
+ $[10] = labelProps;
164
+ $[11] = labelStyles;
165
+ $[12] = labelSuffix;
166
+ $[13] = labelTooltip;
167
+ $[14] = necessityIndicator;
168
+ $[15] = optionalNote;
169
+ $[16] = showOptionalNote;
170
+ $[17] = showRequiredMark;
171
+ $[18] = t3;
172
+ } else t3 = $[18];
173
+ const labelComponent = t3;
174
+ const displayMessage = errorMessage || message;
175
+ const isErrorMessage = !!errorMessage;
176
+ const isMessageShown = !!displayMessage && !isDisabled;
177
+ let t4;
178
+ if ($[19] !== controlId || $[20] !== description) {
179
+ t4 = controlId && description ? getFieldDescriptionId(controlId) : void 0;
180
+ $[19] = controlId;
181
+ $[20] = description;
182
+ $[21] = t4;
183
+ } else t4 = $[21];
184
+ const descriptionId = t4;
185
+ let t5;
186
+ if ($[22] !== controlId || $[23] !== isMessageShown) {
187
+ t5 = controlId && isMessageShown ? getFieldMessageId(controlId) : void 0;
188
+ $[22] = controlId;
189
+ $[23] = isMessageShown;
190
+ $[24] = t5;
191
+ } else t5 = $[24];
192
+ const messageId = t5;
216
193
  useFieldTextId(descriptionId);
217
194
  useFieldTextId(messageId);
218
- if (isBare) {
219
- let t9;
220
- if ($[33] !== hasLabel || $[34] !== label || $[35] !== labelProps || $[36] !== optionalNote) {
221
- t9 = hasLabel ? /* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsxs(_Label, {
222
- ...labelProps,
223
- children: [label, optionalNote ? /* @__PURE__ */ jsxs(Fragment$1, { children: [" ", optionalNote] }) : null]
224
- }) }) : null;
225
- $[33] = hasLabel;
226
- $[34] = label;
227
- $[35] = labelProps;
228
- $[36] = optionalNote;
229
- $[37] = t9;
230
- } else t9 = $[37];
231
- let t10;
232
- if ($[38] !== Component || $[39] !== children || $[40] !== t9) {
233
- t10 = /* @__PURE__ */ jsxs(Fragment$1, { children: [
234
- t9,
235
- Component,
236
- children
237
- ] });
238
- $[38] = Component;
239
- $[39] = children;
240
- $[40] = t9;
241
- $[41] = t10;
242
- } else t10 = $[41];
243
- return t10;
244
- }
245
- let t9;
246
- if ($[42] !== description || $[43] !== descriptionId) {
247
- t9 = () => {
248
- if (!hasFieldContent(description)) return null;
195
+ let t6;
196
+ if ($[25] !== description || $[26] !== descriptionId) {
197
+ t6 = () => {
198
+ if (!description) return null;
249
199
  return /* @__PURE__ */ jsx(DescriptionElement, {
250
200
  id: descriptionId,
251
201
  "data-element": "Description",
252
202
  children: wrapNodeIfPlain(description, () => /* @__PURE__ */ jsx("span", { children: description }))
253
203
  });
254
204
  };
255
- $[42] = description;
256
- $[43] = descriptionId;
257
- $[44] = t9;
258
- } else t9 = $[44];
259
- const createDescriptionComponent = t9;
260
- const isDescriptionBesideInput = hasLabel && (labelPosition === "side" || labelPosition === "split");
261
- let t10;
262
- if ($[45] !== createDescriptionComponent || $[46] !== isDescriptionBesideInput) {
263
- t10 = isDescriptionBesideInput ? createDescriptionComponent() : null;
264
- $[45] = createDescriptionComponent;
265
- $[46] = isDescriptionBesideInput;
266
- $[47] = t10;
267
- } else t10 = $[47];
268
- const descriptionForLabel = t10;
269
- let t11;
270
- if ($[48] !== createDescriptionComponent || $[49] !== isDescriptionBesideInput) {
271
- t11 = !isDescriptionBesideInput ? createDescriptionComponent() : null;
272
- $[48] = createDescriptionComponent;
273
- $[49] = isDescriptionBesideInput;
274
- $[50] = t11;
275
- } else t11 = $[50];
276
- const descriptionForInput = t11;
277
- const t12 = hasLabel && labelPosition === "side";
278
- const t13 = hasLabel && labelPosition === "split";
279
- let t14;
280
- if ($[51] !== description) {
281
- t14 = hasFieldContent(description);
282
- $[51] = description;
283
- $[52] = t14;
284
- } else t14 = $[52];
285
- let t15;
286
- if ($[53] !== isInvalid || $[54] !== isValid) {
287
- t15 = getValidationMods({
205
+ $[25] = description;
206
+ $[26] = descriptionId;
207
+ $[27] = t6;
208
+ } else t6 = $[27];
209
+ const createDescriptionComponent = t6;
210
+ const isDescriptionBesideInput = !!label && (labelPosition === "side" || labelPosition === "split");
211
+ let t7;
212
+ if ($[28] !== createDescriptionComponent || $[29] !== isDescriptionBesideInput) {
213
+ t7 = isDescriptionBesideInput ? createDescriptionComponent() : null;
214
+ $[28] = createDescriptionComponent;
215
+ $[29] = isDescriptionBesideInput;
216
+ $[30] = t7;
217
+ } else t7 = $[30];
218
+ const descriptionForLabel = t7;
219
+ let t8;
220
+ if ($[31] !== createDescriptionComponent || $[32] !== isDescriptionBesideInput) {
221
+ t8 = !isDescriptionBesideInput ? createDescriptionComponent() : null;
222
+ $[31] = createDescriptionComponent;
223
+ $[32] = isDescriptionBesideInput;
224
+ $[33] = t8;
225
+ } else t8 = $[33];
226
+ const descriptionForInput = t8;
227
+ const t9 = !!label && labelPosition === "side";
228
+ const t10 = labelPosition === "split";
229
+ const t11 = !!description;
230
+ let t12;
231
+ if ($[34] !== isInvalid || $[35] !== isValid) {
232
+ t12 = getValidationMods({
288
233
  isInvalid,
289
234
  isValid
290
235
  });
291
- $[53] = isInvalid;
292
- $[54] = isValid;
293
- $[55] = t15;
294
- } else t15 = $[55];
295
- let t16;
296
- if ($[56] !== t12 || $[57] !== t13 || $[58] !== t14 || $[59] !== t15) {
297
- t16 = {
298
- "has-sider": t12,
299
- "has-split": t13,
300
- "has-description": t14,
301
- ...t15
236
+ $[34] = isInvalid;
237
+ $[35] = isValid;
238
+ $[36] = t12;
239
+ } else t12 = $[36];
240
+ let t13;
241
+ if ($[37] !== t10 || $[38] !== t11 || $[39] !== t12 || $[40] !== t9) {
242
+ t13 = {
243
+ "has-sider": t9,
244
+ "has-split": t10,
245
+ "has-description": t11,
246
+ ...t12
302
247
  };
303
- $[56] = t12;
304
- $[57] = t13;
305
- $[58] = t14;
306
- $[59] = t15;
307
- $[60] = t16;
308
- } else t16 = $[60];
309
- const mods = t16;
310
- let t17;
311
- if ($[61] !== fieldProps || $[62] !== styles) {
312
- t17 = styles ? mergeProps$1(fieldProps, { styles }) : fieldProps;
313
- $[61] = fieldProps;
314
- $[62] = styles;
315
- $[63] = t17;
316
- } else t17 = $[63];
317
- const mergedFieldProps = t17;
318
- const t18 = as ?? "div";
319
- let t19;
320
- if ($[64] !== descriptionForLabel || $[65] !== labelComponent) {
321
- t19 = labelComponent ? /* @__PURE__ */ jsxs("div", {
248
+ $[37] = t10;
249
+ $[38] = t11;
250
+ $[39] = t12;
251
+ $[40] = t9;
252
+ $[41] = t13;
253
+ } else t13 = $[41];
254
+ const mods = t13;
255
+ let t14;
256
+ if ($[42] !== fieldProps || $[43] !== styles) {
257
+ t14 = styles ? mergeProps(fieldProps, { styles }) : fieldProps;
258
+ $[42] = fieldProps;
259
+ $[43] = styles;
260
+ $[44] = t14;
261
+ } else t14 = $[44];
262
+ const mergedFieldProps = t14;
263
+ const t15 = as ?? "div";
264
+ let t16;
265
+ if ($[45] !== descriptionForLabel || $[46] !== labelComponent) {
266
+ t16 = labelComponent ? /* @__PURE__ */ jsxs("div", {
322
267
  "data-element": "LabelArea",
323
268
  children: [labelComponent, descriptionForLabel]
324
269
  }) : null;
325
- $[64] = descriptionForLabel;
326
- $[65] = labelComponent;
327
- $[66] = t19;
328
- } else t19 = $[66];
329
- let t20;
330
- if ($[67] !== displayMessage || $[68] !== isErrorMessage || $[69] !== isInvalid || $[70] !== isMessageShown || $[71] !== messageId || $[72] !== messageStyles || $[73] !== mods) {
331
- t20 = isMessageShown && /* @__PURE__ */ jsx(MessageElement, {
270
+ $[45] = descriptionForLabel;
271
+ $[46] = labelComponent;
272
+ $[47] = t16;
273
+ } else t16 = $[47];
274
+ let t17;
275
+ if ($[48] !== displayMessage || $[49] !== isErrorMessage || $[50] !== isInvalid || $[51] !== isMessageShown || $[52] !== messageId || $[53] !== messageStyles || $[54] !== mods) {
276
+ t17 = isMessageShown && /* @__PURE__ */ jsx(MessageElement, {
332
277
  id: messageId,
333
278
  mods: {
334
279
  ...mods,
@@ -338,57 +283,57 @@ const FieldWrapper = forwardRef(function FieldWrapper(props, ref) {
338
283
  role: isErrorMessage || isInvalid ? "alert" : void 0,
339
284
  children: displayMessage
340
285
  });
341
- $[67] = displayMessage;
342
- $[68] = isErrorMessage;
343
- $[69] = isInvalid;
344
- $[70] = isMessageShown;
345
- $[71] = messageId;
346
- $[72] = messageStyles;
347
- $[73] = mods;
348
- $[74] = t20;
349
- } else t20 = $[74];
350
- let t21;
351
- if ($[75] !== Component || $[76] !== descriptionForInput || $[77] !== t20) {
352
- t21 = /* @__PURE__ */ jsxs("div", {
286
+ $[48] = displayMessage;
287
+ $[49] = isErrorMessage;
288
+ $[50] = isInvalid;
289
+ $[51] = isMessageShown;
290
+ $[52] = messageId;
291
+ $[53] = messageStyles;
292
+ $[54] = mods;
293
+ $[55] = t17;
294
+ } else t17 = $[55];
295
+ let t18;
296
+ if ($[56] !== Component || $[57] !== descriptionForInput || $[58] !== t17) {
297
+ t18 = /* @__PURE__ */ jsxs("div", {
353
298
  "data-element": "InputArea",
354
299
  children: [
355
300
  Component,
356
301
  descriptionForInput,
357
- t20
302
+ t17
358
303
  ]
359
304
  });
360
- $[75] = Component;
361
- $[76] = descriptionForInput;
362
- $[77] = t20;
363
- $[78] = t21;
364
- } else t21 = $[78];
365
- let t22;
366
- if ($[79] !== isHidden || $[80] !== mergedFieldProps || $[81] !== mods || $[82] !== ref || $[83] !== t18 || $[84] !== t19 || $[85] !== t21) {
367
- t22 = /* @__PURE__ */ jsxs(FieldElement, {
305
+ $[56] = Component;
306
+ $[57] = descriptionForInput;
307
+ $[58] = t17;
308
+ $[59] = t18;
309
+ } else t18 = $[59];
310
+ let t19;
311
+ if ($[60] !== isHidden || $[61] !== mergedFieldProps || $[62] !== mods || $[63] !== ref || $[64] !== t15 || $[65] !== t16 || $[66] !== t18) {
312
+ t19 = /* @__PURE__ */ jsxs(FieldElement, {
368
313
  ref,
369
- as: t18,
314
+ as: t15,
370
315
  mods,
371
316
  isHidden,
372
317
  ...mergedFieldProps,
373
- children: [t19, t21]
318
+ children: [t16, t18]
374
319
  });
375
- $[79] = isHidden;
376
- $[80] = mergedFieldProps;
377
- $[81] = mods;
378
- $[82] = ref;
379
- $[83] = t18;
380
- $[84] = t19;
381
- $[85] = t21;
382
- $[86] = t22;
383
- } else t22 = $[86];
384
- let t23;
385
- if ($[87] !== children || $[88] !== t22) {
386
- t23 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t22, children] });
387
- $[87] = children;
388
- $[88] = t22;
389
- $[89] = t23;
390
- } else t23 = $[89];
391
- return t23;
320
+ $[60] = isHidden;
321
+ $[61] = mergedFieldProps;
322
+ $[62] = mods;
323
+ $[63] = ref;
324
+ $[64] = t15;
325
+ $[65] = t16;
326
+ $[66] = t18;
327
+ $[67] = t19;
328
+ } else t19 = $[67];
329
+ let t20;
330
+ if ($[68] !== children || $[69] !== t19) {
331
+ t20 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t19, children] });
332
+ $[68] = children;
333
+ $[69] = t19;
334
+ $[70] = t20;
335
+ } else t20 = $[70];
336
+ return t20;
392
337
  });
393
338
 
394
339
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"FieldWrapper.js","names":["tasty","forwardRef","VisuallyHidden","useI18n","isDevEnv","mergeProps","wrapNodeIfPlain","InfoBadge","Text","Flex","Space","Label","NecessityIndicatorMark","warnAboutLegacyTooltip","getValidationMods","getFieldDescriptionId","getFieldMessageId","useFieldTextId","CubeFieldWrapperProps","ReactNode","hasFieldContent","content","FieldElement","qa","styles","display","width","gridColumns","gap","placeItems","placeContent","LabelArea","margin","InputArea","flow","gridColumn","displayName","MessageElement","preset","color","invalid","valid","disabled","textAlign","userSelect","DescriptionElement","LabelSuffixElement","FieldWrapper","props","ref","$","_c","as","labelPosition","t0","label","isBare","t1","extra","isRequired","isOptional","isDisabled","labelStyles","necessityIndicator","labelProps","fieldProps","message","messageStyles","description","errorMessage","Component","controlId","isInvalid","isValid","requiredMark","t2","labelTooltip","isHidden","labelSuffix","children","undefined","t","showRequiredMark","showOptionalNote","t3","optionalNote","t4","hasLabel","t5","labelComponent","displayMessage","isErrorMessage","t6","isMessageShown","t7","descriptionId","t8","messageId","t9","t10","createDescriptionComponent","isDescriptionBesideInput","descriptionForLabel","t11","descriptionForInput","t12","t13","t14","t15","t16","mods","t17","mergedFieldProps","t18","t19","t20","t21","t22","t23"],"sources":["../../../../src/components/form/FieldWrapper/FieldWrapper.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\nimport { VisuallyHidden } from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { isDevEnv } from '../../../utils/is-dev-env';\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 { warnAboutLegacyTooltip } from '../legacy-tooltip';\nimport { getValidationMods } from '../validation/index';\n\nimport {\n getFieldDescriptionId,\n getFieldMessageId,\n useFieldTextId,\n} from './field-description';\nimport { CubeFieldWrapperProps } from './types';\n\nimport type { ReactNode } from 'react';\n\n/** Empty slot values suppress content; numeric zero is still text. */\nfunction hasFieldContent(content: ReactNode) {\n return content != null && typeof content !== 'boolean' && content !== '';\n}\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 (isDevEnv()) {\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 flex box, not a block: in a block an inline-level suffix such as a `Badge`\n * or a `Tag` sits in a line box whose strut adds a pixel under it, so the label\n * row grew from 20px to 21px and its field stepped down out of line. Only a\n * single element is a direct flex item; mixed content is wrapped in a `<span>`,\n * because a flex box drops the whitespace between its items.\n */\nconst LabelSuffixElement = tasty({\n styles: {\n display: 'flex',\n placeItems: 'center',\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 isBare = false,\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 controlId,\n isInvalid,\n isValid,\n requiredMark = true,\n labelTooltip,\n isHidden,\n labelSuffix,\n children,\n } = props;\n\n const { t } = useI18n();\n\n warnAboutLegacyTooltip(props);\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 hasLabel = hasFieldContent(label);\n const labelComponent = hasLabel ? (\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 {labelTooltip ? <InfoBadge tooltip={labelTooltip} /> : null}\n\n {labelSuffix ? (\n <LabelSuffixElement>\n {wrapNodeIfPlain(labelSuffix, () => (\n <span>{labelSuffix}</span>\n ))}\n </LabelSuffixElement>\n ) : null}\n </Space>\n\n {extra && <Text preset=\"t3\">{extra}</Text>}\n </Flex>\n </Label>\n ) : null;\n\n const displayMessage = errorMessage !== undefined ? errorMessage : message;\n const isErrorMessage = errorMessage !== undefined;\n const isMessageShown =\n !isBare && !isDisabled && hasFieldContent(displayMessage);\n\n // An id only on what is actually rendered, registered for the control's\n // `aria-describedby` — see `useFieldDescribedBy`.\n const descriptionId =\n controlId && !isBare && hasFieldContent(description)\n ? getFieldDescriptionId(controlId)\n : undefined;\n const messageId =\n controlId && isMessageShown ? getFieldMessageId(controlId) : undefined;\n\n useFieldTextId(descriptionId);\n useFieldTextId(messageId);\n\n if (isBare) {\n return (\n <>\n {hasLabel ? (\n <VisuallyHidden>\n <Label {...labelProps}>\n {label}\n {optionalNote ? <> {optionalNote}</> : null}\n </Label>\n </VisuallyHidden>\n ) : null}\n {Component}\n {children}\n </>\n );\n }\n\n // Create description component with proper styling\n const createDescriptionComponent = () => {\n if (!hasFieldContent(description)) return null;\n\n return (\n <DescriptionElement id={descriptionId} data-element=\"Description\">\n {wrapNodeIfPlain(description, () => (\n <span>{description}</span>\n ))}\n </DescriptionElement>\n );\n };\n\n // A side or split label carries the description in its column. Without a\n // label, that column is empty and the description would read as the label,\n // so it goes under the input.\n const isDescriptionBesideInput =\n hasLabel && (labelPosition === 'side' || labelPosition === 'split');\n const descriptionForLabel = isDescriptionBesideInput\n ? createDescriptionComponent()\n : null;\n const descriptionForInput = !isDescriptionBesideInput\n ? createDescriptionComponent()\n : null;\n\n const mods = {\n 'has-sider': hasLabel && labelPosition === 'side',\n 'has-split': hasLabel && labelPosition === 'split',\n 'has-description': hasFieldContent(description),\n ...getValidationMods({ isInvalid, isValid }),\n };\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 ? (\n <div data-element=\"LabelArea\">\n {labelComponent}\n {descriptionForLabel}\n </div>\n ) : null}\n <div data-element=\"InputArea\">\n {Component}\n {descriptionForInput}\n {isMessageShown && (\n <MessageElement\n id={messageId}\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":["tasty","forwardRef","useI18n","isDevEnv","mergeProps","wrapNodeIfPlain","InfoBadge","Text","Flex","Space","Label","NecessityIndicatorMark","warnAboutLegacyTooltip","getValidationMods","getFieldDescriptionId","getFieldMessageId","useFieldTextId","CubeFieldWrapperProps","FieldElement","qa","styles","display","width","gridColumns","gap","placeItems","placeContent","LabelArea","margin","InputArea","flow","gridColumn","displayName","MessageElement","preset","color","invalid","valid","disabled","textAlign","userSelect","DescriptionElement","LabelSuffixElement","FieldWrapper","props","ref","$","_c","as","labelPosition","t0","label","extra","isRequired","isOptional","isDisabled","labelStyles","necessityIndicator","labelProps","fieldProps","message","messageStyles","description","errorMessage","Component","controlId","isInvalid","isValid","requiredMark","t1","labelTooltip","isHidden","labelSuffix","children","undefined","t","showRequiredMark","showOptionalNote","t2","optionalNote","t3","labelComponent","displayMessage","isErrorMessage","isMessageShown","t4","descriptionId","t5","messageId","t6","createDescriptionComponent","isDescriptionBesideInput","t7","descriptionForLabel","t8","descriptionForInput","t9","t10","t11","t12","t13","mods","t14","mergedFieldProps","t15","t16","t17","t18","t19","t20"],"sources":["../../../../src/components/form/FieldWrapper/FieldWrapper.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { isDevEnv } from '../../../utils/is-dev-env';\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 { warnAboutLegacyTooltip } from '../legacy-tooltip';\nimport { getValidationMods } from '../validation/index';\n\nimport {\n getFieldDescriptionId,\n getFieldMessageId,\n useFieldTextId,\n} from './field-description';\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 (isDevEnv()) {\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 flex box, not a block: in a block an inline-level suffix such as a `Badge`\n * or a `Tag` sits in a line box whose strut adds a pixel under it, so the label\n * row grew from 20px to 21px and its field stepped down out of line. Only a\n * single element is a direct flex item; mixed content is wrapped in a `<span>`,\n * because a flex box drops the whitespace between its items.\n */\nconst LabelSuffixElement = tasty({\n styles: {\n display: 'flex',\n placeItems: 'center',\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 controlId,\n isInvalid,\n isValid,\n requiredMark = true,\n labelTooltip,\n isHidden,\n labelSuffix,\n children,\n } = props;\n\n const { t } = useI18n();\n\n warnAboutLegacyTooltip(props);\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 {labelTooltip ? <InfoBadge tooltip={labelTooltip} /> : null}\n\n {labelSuffix ? (\n <LabelSuffixElement>\n {wrapNodeIfPlain(labelSuffix, () => (\n <span>{labelSuffix}</span>\n ))}\n </LabelSuffixElement>\n ) : null}\n </Space>\n\n {extra && <Text preset=\"t3\">{extra}</Text>}\n </Flex>\n </Label>\n ) : null;\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 const isMessageShown = !!displayMessage && !isDisabled;\n\n // An id only on what is actually rendered, registered for the control's\n // `aria-describedby` — see `useFieldDescribedBy`.\n const descriptionId =\n controlId && description ? getFieldDescriptionId(controlId) : undefined;\n const messageId =\n controlId && isMessageShown ? getFieldMessageId(controlId) : undefined;\n\n useFieldTextId(descriptionId);\n useFieldTextId(messageId);\n\n // Create description component with proper styling\n const createDescriptionComponent = () => {\n if (!description) return null;\n\n return (\n <DescriptionElement id={descriptionId} data-element=\"Description\">\n {wrapNodeIfPlain(description, () => (\n <span>{description}</span>\n ))}\n </DescriptionElement>\n );\n };\n\n // A side or split label carries the description in its column. A field\n // without a label has no label area to hold it, so it goes under the input.\n const isDescriptionBesideInput =\n !!label && (labelPosition === 'side' || labelPosition === 'split');\n const descriptionForLabel = isDescriptionBesideInput\n ? createDescriptionComponent()\n : null;\n const descriptionForInput = !isDescriptionBesideInput\n ? createDescriptionComponent()\n : null;\n\n const mods = {\n // The side column holds the label. Without one it would stay empty and\n // still push the control a label's width to the right.\n 'has-sider': !!label && labelPosition === 'side',\n 'has-split': labelPosition === 'split',\n 'has-description': !!description,\n ...getValidationMods({ isInvalid, isValid }),\n };\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 ? (\n <div data-element=\"LabelArea\">\n {labelComponent}\n {descriptionForLabel}\n </div>\n ) : null}\n <div data-element=\"InputArea\">\n {Component}\n {descriptionForInput}\n {isMessageShown && (\n <MessageElement\n id={messageId}\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,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d4796d7 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-759f43d | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useSyncExternalStore } from "react";
@@ -67,8 +67,8 @@ function useFieldTextId(id) {
67
67
  *
68
68
  * Taken from what the wrapper registered rather than predicted from props,
69
69
  * as React Aria's `useSlotId` does, because whether `FieldWrapper` renders
70
- * either one depends on more than the control's props: `isBare`,
71
- * a disabled field hiding its message, `TagInput` putting a
70
+ * either one depends on more than the control's props: a label or
71
+ * `forceField`, a disabled field hiding its message, `TagInput` putting a
72
72
  * rejection in at wrap time. Without the reference, a screen reader announces
73
73
  * the field as invalid and never says why.
74
74
  */
@@ -1 +1 @@
1
- {"version":3,"file":"field-description.js","names":["useSyncExternalStore","useLayoutEffect","getFieldDescriptionId","controlId","getFieldMessageId","mountedIds","Map","listeners","Set","subscribe","listener","add","delete","notify","forEach","useFieldTextId","id","$","_c","t0","t1","set","get","count","useFieldDescribedBy","describedBy","filter","_temp","join","rendered","_temp2","Boolean","undefined","has"],"sources":["../../../../src/components/form/FieldWrapper/field-description.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\nimport { useLayoutEffect } from '../../../utils/react/useLayoutEffect';\n\n/**\n * The ids `FieldWrapper` gives a control's description and message. Both are\n * derived from the control's own id, so the wrapper and the control agree on\n * them without handing anything to each other.\n */\nexport function getFieldDescriptionId(controlId: string) {\n return `${controlId}-description`;\n}\n\nexport function getFieldMessageId(controlId: string) {\n return `${controlId}-message`;\n}\n\n/**\n * How many mounted elements carry each id. Counted, not a set, so a remount\n * under Strict Mode — or two fields that share an id — never drops one still\n * on the page.\n */\nconst mountedIds = new Map<string, number>();\nconst listeners = new Set<() => void>();\n\nfunction subscribe(listener: () => void) {\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n };\n}\n\nfunction notify() {\n listeners.forEach((listener) => listener());\n}\n\n/**\n * Registers `id` as rendered while the calling `FieldWrapper` shows the\n * element that carries it. `undefined` registers nothing.\n */\nexport function useFieldTextId(id: string | undefined) {\n useLayoutEffect(() => {\n if (!id) return;\n\n mountedIds.set(id, (mountedIds.get(id) ?? 0) + 1);\n notify();\n\n return () => {\n const count = (mountedIds.get(id) ?? 1) - 1;\n\n if (count) mountedIds.set(id, count);\n else mountedIds.delete(id);\n\n notify();\n };\n }, [id]);\n}\n\n/**\n * The control's `aria-describedby`: the caller's own ids, then the field\n * description and message `FieldWrapper` has rendered.\n *\n * Taken from what the wrapper registered rather than predicted from props,\n * as React Aria's `useSlotId` does, because whether `FieldWrapper` renders\n * either one depends on more than the control's props: `isBare`,\n * a disabled field hiding its message, `TagInput` putting a\n * rejection in at wrap time. Without the reference, a screen reader announces\n * the field as invalid and never says why.\n */\nexport function useFieldDescribedBy(\n controlId: string | undefined,\n describedBy: string | undefined,\n): string | undefined {\n const rendered = useSyncExternalStore(\n subscribe,\n () =>\n controlId\n ? [getFieldDescriptionId(controlId), getFieldMessageId(controlId)]\n .filter((id) => mountedIds.has(id))\n .join(' ')\n : '',\n // The wrapper registers after it mounts, so nothing is linked yet.\n () => '',\n );\n\n return [describedBy, rendered].filter(Boolean).join(' ') || undefined;\n}\n"],"mappings":";;;;;;;;;;;AASA,SAAgBE,sBAAsBC,WAAmB;AACvD,QAAO,GAAGA,UAAS;;AAGrB,SAAgBC,kBAAkBD,WAAmB;AACnD,QAAO,GAAGA,UAAS;;;;;;;AAQrB,MAAME,6BAAa,IAAIC,KAAqB;AAC5C,MAAMC,4BAAY,IAAIC,KAAiB;AAEvC,SAASC,UAAUC,UAAsB;AACvCH,WAAUI,IAAID,SAAS;AAEvB,cAAa;AACXH,YAAUK,OAAOF,SAAS;;;AAI9B,SAASG,SAAS;AAChBN,WAAUO,SAASJ,aAAaA,UAAU,CAAC;;;;;;AAO7C,SAAOK,eAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;AAAA,KAAAH,EAAA,OAAAD,IAAA;AACWG,aAAA;AACd,OAAI,CAACH,GAAE;AAEPX,cAAUgB,IAAKL,KAAKX,WAAUiB,IAAKN,GAAQ,IAAvB,KAA2B,EAAE;AACjDH,WAAQ;AAAA,gBAED;IACL,MAAAU,SAAelB,WAAUiB,IAAKN,GAAQ,IAAvB,KAA2B;AAE1C,QAAIO,MAAOlB,YAAUgB,IAAKL,IAAIO,MAAM;QAC/BlB,YAAUO,OAAQI,GAAG;AAE1BH,YAAQ;;;AAETO,OAAA,CAACJ,GAAG;AAAAC,IAAA,KAAAD;AAAAC,IAAA,KAAAE;AAAAF,IAAA,KAAAG;QAAA;AAAAD,OAAAF,EAAA;AAAAG,OAAAH,EAAA;;AAdPhB,mBAAgBkB,IAcbC,GAAK;;;;;;;;;;;;;AAcV,SAAOI,oBAAArB,WAAAsB,aAAA;CAAA,MAAAR,IAAAC,EAAA,EAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAd,WAAA;AAMHgB,aACEhB,YACI,CAACD,sBAAsBC,UAAU,EAAEC,kBAAkBD,UAAU,CAAC,CAAAuB,OACtDC,MAA2B,CAAAC,KAC7B,IACN,GAJN;AAIMX,IAAA,KAAAd;AAAAc,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAPV,MAAAY,WAAiB7B,qBACfS,WACAU,IAOAW,OACD;CAAC,IAAAV;AAAA,KAAAH,EAAA,OAAAQ,eAAAR,EAAA,OAAAY,UAAA;AAEKT,OAAA,CAACK,aAAaI,SAAS,CAAAH,OAAQK,QAAQ,CAAAH,KAAM,IAAiB,IAA9DI;AAA8Df,IAAA,KAAAQ;AAAAR,IAAA,KAAAY;AAAAZ,IAAA,KAAAG;OAAAA,MAAAH,EAAA;AAAA,QAA9DG;;AAhBF,SAAAU,SAAA;AAAA,QAaG;;AAbH,SAAAH,MAAAX,IAAA;AAAA,QASqBX,WAAU4B,IAAKjB,GAAG"}
1
+ {"version":3,"file":"field-description.js","names":["useSyncExternalStore","useLayoutEffect","getFieldDescriptionId","controlId","getFieldMessageId","mountedIds","Map","listeners","Set","subscribe","listener","add","delete","notify","forEach","useFieldTextId","id","$","_c","t0","t1","set","get","count","useFieldDescribedBy","describedBy","filter","_temp","join","rendered","_temp2","Boolean","undefined","has"],"sources":["../../../../src/components/form/FieldWrapper/field-description.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\nimport { useLayoutEffect } from '../../../utils/react/useLayoutEffect';\n\n/**\n * The ids `FieldWrapper` gives a control's description and message. Both are\n * derived from the control's own id, so the wrapper and the control agree on\n * them without handing anything to each other.\n */\nexport function getFieldDescriptionId(controlId: string) {\n return `${controlId}-description`;\n}\n\nexport function getFieldMessageId(controlId: string) {\n return `${controlId}-message`;\n}\n\n/**\n * How many mounted elements carry each id. Counted, not a set, so a remount\n * under Strict Mode — or two fields that share an id — never drops one still\n * on the page.\n */\nconst mountedIds = new Map<string, number>();\nconst listeners = new Set<() => void>();\n\nfunction subscribe(listener: () => void) {\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n };\n}\n\nfunction notify() {\n listeners.forEach((listener) => listener());\n}\n\n/**\n * Registers `id` as rendered while the calling `FieldWrapper` shows the\n * element that carries it. `undefined` registers nothing.\n */\nexport function useFieldTextId(id: string | undefined) {\n useLayoutEffect(() => {\n if (!id) return;\n\n mountedIds.set(id, (mountedIds.get(id) ?? 0) + 1);\n notify();\n\n return () => {\n const count = (mountedIds.get(id) ?? 1) - 1;\n\n if (count) mountedIds.set(id, count);\n else mountedIds.delete(id);\n\n notify();\n };\n }, [id]);\n}\n\n/**\n * The control's `aria-describedby`: the caller's own ids, then the field\n * description and message `FieldWrapper` has rendered.\n *\n * Taken from what the wrapper registered rather than predicted from props,\n * as React Aria's `useSlotId` does, because whether `FieldWrapper` renders\n * either one depends on more than the control's props: a label or\n * `forceField`, a disabled field hiding its message, `TagInput` putting a\n * rejection in at wrap time. Without the reference, a screen reader announces\n * the field as invalid and never says why.\n */\nexport function useFieldDescribedBy(\n controlId: string | undefined,\n describedBy: string | undefined,\n): string | undefined {\n const rendered = useSyncExternalStore(\n subscribe,\n () =>\n controlId\n ? [getFieldDescriptionId(controlId), getFieldMessageId(controlId)]\n .filter((id) => mountedIds.has(id))\n .join(' ')\n : '',\n // The wrapper registers after it mounts, so nothing is linked yet.\n () => '',\n );\n\n return [describedBy, rendered].filter(Boolean).join(' ') || undefined;\n}\n"],"mappings":";;;;;;;;;;;AASA,SAAgBE,sBAAsBC,WAAmB;AACvD,QAAO,GAAGA,UAAS;;AAGrB,SAAgBC,kBAAkBD,WAAmB;AACnD,QAAO,GAAGA,UAAS;;;;;;;AAQrB,MAAME,6BAAa,IAAIC,KAAqB;AAC5C,MAAMC,4BAAY,IAAIC,KAAiB;AAEvC,SAASC,UAAUC,UAAsB;AACvCH,WAAUI,IAAID,SAAS;AAEvB,cAAa;AACXH,YAAUK,OAAOF,SAAS;;;AAI9B,SAASG,SAAS;AAChBN,WAAUO,SAASJ,aAAaA,UAAU,CAAC;;;;;;AAO7C,SAAOK,eAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;CAAA,IAAAC;AAAA,KAAAH,EAAA,OAAAD,IAAA;AACWG,aAAA;AACd,OAAI,CAACH,GAAE;AAEPX,cAAUgB,IAAKL,KAAKX,WAAUiB,IAAKN,GAAQ,IAAvB,KAA2B,EAAE;AACjDH,WAAQ;AAAA,gBAED;IACL,MAAAU,SAAelB,WAAUiB,IAAKN,GAAQ,IAAvB,KAA2B;AAE1C,QAAIO,MAAOlB,YAAUgB,IAAKL,IAAIO,MAAM;QAC/BlB,YAAUO,OAAQI,GAAG;AAE1BH,YAAQ;;;AAETO,OAAA,CAACJ,GAAG;AAAAC,IAAA,KAAAD;AAAAC,IAAA,KAAAE;AAAAF,IAAA,KAAAG;QAAA;AAAAD,OAAAF,EAAA;AAAAG,OAAAH,EAAA;;AAdPhB,mBAAgBkB,IAcbC,GAAK;;;;;;;;;;;;;AAcV,SAAOI,oBAAArB,WAAAsB,aAAA;CAAA,MAAAR,IAAAC,EAAA,EAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAd,WAAA;AAMHgB,aACEhB,YACI,CAACD,sBAAsBC,UAAU,EAAEC,kBAAkBD,UAAU,CAAC,CAAAuB,OACtDC,MAA2B,CAAAC,KAC7B,IACN,GAJN;AAIMX,IAAA,KAAAd;AAAAc,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAPV,MAAAY,WAAiB7B,qBACfS,WACAU,IAOAW,OACD;CAAC,IAAAV;AAAA,KAAAH,EAAA,OAAAQ,eAAAR,EAAA,OAAAY,UAAA;AAEKT,OAAA,CAACK,aAAaI,SAAS,CAAAH,OAAQK,QAAQ,CAAAH,KAAM,IAAiB,IAA9DI;AAA8Df,IAAA,KAAAQ;AAAAR,IAAA,KAAAY;AAAAZ,IAAA,KAAAG;OAAAA,MAAAH,EAAA;AAAA,QAA9DG;;AAhBF,SAAAU,SAAA;AAAA,QAaG;;AAbH,SAAAH,MAAAX,IAAA;AAAA,QASqBX,WAAU4B,IAAKjB,GAAG"}
@@ -14,8 +14,7 @@ type CubeFieldWrapperProps = ValidationProps & {
14
14
  isOptional?: boolean; /** Whether the input is disabled */
15
15
  isDisabled?: boolean;
16
16
  fieldProps?: Props;
17
- isHidden?: boolean; /** Omit field layout and text slots while preserving the accessible label. */
18
- isBare?: boolean;
17
+ isHidden?: boolean;
19
18
  label?: ReactNode;
20
19
  labelPosition?: LabelPosition;
21
20
  labelSuffix?: ReactNode;
@@ -28,10 +27,10 @@ type CubeFieldWrapperProps = ValidationProps & {
28
27
  necessityIndicator?: NecessityIndicator | null;
29
28
  /**
30
29
  * @deprecated Use `errorMessage` for error messages and `description` for field descriptions instead.
31
- * Fallback text used only when errorMessage is undefined.
30
+ * Custom message for the field. It will be placed below the label and the input
32
31
  */
33
32
  message?: string | ReactNode; /** Styles for the message */
34
- messageStyles?: Styles; /** Error text. Explicit empty content suppresses the message fallback. */
33
+ messageStyles?: Styles; /** Error message for the field. Always displayed in danger state regardless of validation state */
35
34
  errorMessage?: string | ReactNode;
36
35
  Component?: ReactElement;
37
36
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d4796d7 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-759f43d | 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.0.0-canary-d4796d7 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-759f43d | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.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.0.0-canary-d4796d7 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-759f43d | 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 { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d4796d7 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-759f43d | 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";