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

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 (617) 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.d.ts +9 -4
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +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/ItemActionsWrapper.js +1 -1
  28. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  29. package/dist/components/actions/Link/Link.js +1 -1
  30. package/dist/components/actions/Menu/Menu.js +1 -1
  31. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  32. package/dist/components/actions/Menu/MenuItem.js +1 -1
  33. package/dist/components/actions/Menu/MenuSection.js +1 -1
  34. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/dist/components/actions/Menu/context.js +1 -1
  38. package/dist/components/actions/Menu/styled.js +1 -1
  39. package/dist/components/actions/actions-run.js +1 -1
  40. package/dist/components/actions/index.js +1 -1
  41. package/dist/components/actions/use-action.js +1 -1
  42. package/dist/components/actions/use-anchored-menu.js +1 -1
  43. package/dist/components/actions/use-context-menu.js +1 -1
  44. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  45. package/dist/components/content/Alert/Alert.js +1 -1
  46. package/dist/components/content/Alert/use-alert.js +1 -1
  47. package/dist/components/content/Avatar/Avatar.js +1 -1
  48. package/dist/components/content/Badge/Badge.js +1 -1
  49. package/dist/components/content/Card/Card.js +1 -1
  50. package/dist/components/content/Content.js +1 -1
  51. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  52. package/dist/components/content/CopySnippet/CopySnippet.d.ts +28 -28
  53. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  54. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  55. package/dist/components/content/Divider.js +1 -1
  56. package/dist/components/content/Footer.js +1 -1
  57. package/dist/components/content/Header.js +1 -1
  58. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  59. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  60. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  61. package/dist/components/content/Item/Item.js +1 -1
  62. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  63. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  64. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  65. package/dist/components/content/Layout/GridLayout.js +1 -1
  66. package/dist/components/content/Layout/Layout.js +2 -1
  67. package/dist/components/content/Layout/Layout.js.map +1 -1
  68. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  69. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  70. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  71. package/dist/components/content/Layout/LayoutContent.js +1 -1
  72. package/dist/components/content/Layout/LayoutContext.js +1 -1
  73. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  74. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  75. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  76. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  77. package/dist/components/content/Layout/LayoutPane.js +1 -1
  78. package/dist/components/content/Layout/LayoutPanel.d.ts +4 -2
  79. package/dist/components/content/Layout/LayoutPanel.js +73 -2
  80. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  81. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  82. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  83. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  84. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  85. package/dist/components/content/Layout/index.js +1 -1
  86. package/dist/components/content/Layout/utils.js +1 -1
  87. package/dist/components/content/Paragraph.js +1 -1
  88. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  89. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  90. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  91. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  92. package/dist/components/content/Result/Result.js +1 -1
  93. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  94. package/dist/components/content/Tag/Tag.js +1 -1
  95. package/dist/components/content/Text.d.ts +28 -28
  96. package/dist/components/content/Text.js +1 -1
  97. package/dist/components/content/TextItem/TextItem.js +1 -1
  98. package/dist/components/content/Title.js +1 -1
  99. package/dist/components/content/Tree/Tree.js +1 -1
  100. package/dist/components/content/Tree/TreeNode.js +2 -1
  101. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  102. package/dist/components/content/Tree/styled.js +1 -1
  103. package/dist/components/content/Tree/tree-index.js +1 -1
  104. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  105. package/dist/components/content/Tree/use-load-data.js +1 -1
  106. package/dist/components/content/highlightText.js +1 -1
  107. package/dist/components/content/use-auto-tooltip.js +1 -1
  108. package/dist/components/data/DataTable/DataTable.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  110. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  111. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  112. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  113. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -1
  114. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  115. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  116. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  117. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  118. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  119. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  120. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  121. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  122. package/dist/components/data/TableBase/RowCollection.js +1 -1
  123. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  124. package/dist/components/data/TableBase/TableRow.js +1 -1
  125. package/dist/components/data/TableBase/TableView.js +3 -1
  126. package/dist/components/data/TableBase/TableView.js.map +1 -1
  127. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  128. package/dist/components/data/TableBase/column-header.js +1 -1
  129. package/dist/components/data/TableBase/column-menu.js +1 -1
  130. package/dist/components/data/TableBase/column-styles.js +1 -1
  131. package/dist/components/data/TableBase/column-tint.js +1 -1
  132. package/dist/components/data/TableBase/row-menu.js +1 -1
  133. package/dist/components/data/TableBase/styled.js +1 -1
  134. package/dist/components/data/TableBase/table-tree.js +1 -1
  135. package/dist/components/data/TableBase/types.js +1 -1
  136. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  137. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  138. package/dist/components/data/TableBase/use-column-order.js +1 -1
  139. package/dist/components/data/TableBase/use-column-window.js +1 -1
  140. package/dist/components/data/TableBase/use-container-width.js +1 -1
  141. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  142. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  143. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  144. package/dist/components/data/TableBase/use-table-search.js +1 -1
  145. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  146. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  147. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  148. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  149. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  150. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  151. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  152. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  153. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  154. package/dist/components/fields/Checkbox/context.js +1 -1
  155. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  156. package/dist/components/fields/ColorPicker/ColorPicker.js +3 -1
  157. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  158. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  159. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +2 -1
  160. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  161. package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -1
  162. package/dist/components/fields/ComboBox/ComboBox.js +13 -13
  163. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  164. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  165. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  166. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  167. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  168. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  169. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  170. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  171. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  172. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  173. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  174. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  175. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  176. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  177. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  178. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  179. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  180. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  181. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  182. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  183. package/dist/components/fields/DatePicker/period.js +1 -1
  184. package/dist/components/fields/DatePicker/props.js +1 -1
  185. package/dist/components/fields/DatePicker/utils.js +1 -1
  186. package/dist/components/fields/FileInput/FileInput.js +1 -1
  187. package/dist/components/fields/FilterListBox/FilterListBox.js +2 -1
  188. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  189. package/dist/components/fields/FilterPicker/FilterPicker.js +15 -6
  190. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  191. package/dist/components/fields/Input/Input.js +1 -1
  192. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  193. package/dist/components/fields/ListBox/ListBox.js +7 -5
  194. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  195. package/dist/components/fields/ListBox/optionId.js +1 -1
  196. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +148 -140
  197. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  198. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  199. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  200. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  201. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  202. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  203. package/dist/components/fields/Picker/Picker.js +15 -6
  204. package/dist/components/fields/Picker/Picker.js.map +1 -1
  205. package/dist/components/fields/RadioGroup/Radio.d.ts +28 -28
  206. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  207. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  208. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  209. package/dist/components/fields/RadioGroup/context.js +1 -1
  210. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -6
  211. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  212. package/dist/components/fields/SearchInput/SearchInput.js +1 -6
  213. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  214. package/dist/components/fields/Select/Select.js +1 -1
  215. package/dist/components/fields/Slider/Gradation.js +1 -1
  216. package/dist/components/fields/Slider/HueSlider.js +1 -1
  217. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  218. package/dist/components/fields/Slider/Slider.js +1 -1
  219. package/dist/components/fields/Slider/SliderBase.js +1 -1
  220. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  221. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  222. package/dist/components/fields/Slider/elements.js +1 -1
  223. package/dist/components/fields/Slider/index.js +1 -1
  224. package/dist/components/fields/Switch/Switch.js +1 -1
  225. package/dist/components/fields/TagInput/TagInput.js +2 -2
  226. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  227. package/dist/components/fields/TagInput/TagList.js +1 -1
  228. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  229. package/dist/components/fields/TagInput/useTagError.js +1 -1
  230. package/dist/components/fields/TextArea/TextArea.js +1 -1
  231. package/dist/components/fields/TextInput/TextInput.js +1 -1
  232. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  233. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  234. package/dist/components/fields/TextInputMapper/TextInputMapper.js +19 -16
  235. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  236. package/dist/components/fields/TriggerActions.js +1 -1
  237. package/dist/components/fields/color/ColorPanel.js +3 -1
  238. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  239. package/dist/components/fields/color/channels.js +1 -1
  240. package/dist/components/fields/color/color.js +1 -1
  241. package/dist/components/fields/color/context.js +1 -1
  242. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +10 -8
  243. package/dist/components/form/FieldWrapper/FieldWrapper.js +214 -159
  244. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  245. package/dist/components/form/FieldWrapper/field-description.js +3 -3
  246. package/dist/components/form/FieldWrapper/field-description.js.map +1 -1
  247. package/dist/components/form/FieldWrapper/types.d.ts +4 -3
  248. package/dist/components/form/Form/Field.js +1 -1
  249. package/dist/components/form/Form/Form.js +1 -1
  250. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  251. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  252. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  253. package/dist/components/form/Form/SubmitError.js +1 -1
  254. package/dist/components/form/Form/backend.js +1 -1
  255. package/dist/components/form/Form/index.js +1 -1
  256. package/dist/components/form/Form/modern/actions.js +1 -1
  257. package/dist/components/form/Form/modern/context.js +1 -1
  258. package/dist/components/form/Form/modern/controller.js +1 -1
  259. package/dist/components/form/Form/modern/field-binding.js +1 -1
  260. package/dist/components/form/Form/modern/field.js +1 -1
  261. package/dist/components/form/Form/modern/react.js +1 -1
  262. package/dist/components/form/Form/modern/store.js +1 -1
  263. package/dist/components/form/Form/modern/validation.js +1 -1
  264. package/dist/components/form/Form/modern/values.js +1 -1
  265. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  266. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  267. package/dist/components/form/Form/use-field/use-field-props.js +21 -33
  268. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  269. package/dist/components/form/Form/use-field/use-field.js +1 -1
  270. package/dist/components/form/Form/use-form.js +1 -1
  271. package/dist/components/form/Form/validation.js +1 -1
  272. package/dist/components/form/Label.js +1 -1
  273. package/dist/components/form/field-chrome.js +4 -34
  274. package/dist/components/form/field-chrome.js.map +1 -1
  275. package/dist/components/form/legacy-tooltip.js +1 -1
  276. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  277. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  278. package/dist/components/form/validation/use-validation-props.js +1 -1
  279. package/dist/components/form/wrapper.d.ts +6 -17
  280. package/dist/components/form/wrapper.js +6 -14
  281. package/dist/components/form/wrapper.js.map +1 -1
  282. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  283. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  284. package/dist/components/layout/Flex.js +1 -1
  285. package/dist/components/layout/Flow.js +1 -1
  286. package/dist/components/layout/Grid.js +1 -1
  287. package/dist/components/layout/Panel.js +1 -1
  288. package/dist/components/layout/Prefix.js +1 -1
  289. package/dist/components/layout/ResizablePanel.js +1 -1
  290. package/dist/components/layout/Space.js +1 -1
  291. package/dist/components/layout/Suffix.js +1 -1
  292. package/dist/components/navigation/Pagination/Pagination.js +3 -1
  293. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  294. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  295. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  296. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  297. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  298. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  299. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  300. package/dist/components/navigation/Tabs/TabPicker.js +2 -1
  301. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  302. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  303. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  304. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  305. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  306. package/dist/components/navigation/Tabs/styled.js +1 -1
  307. package/dist/components/navigation/Tabs/types.js +1 -1
  308. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  309. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  310. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  311. package/dist/components/other/Calendar/Calendar.js +1 -1
  312. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  313. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  314. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  315. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  316. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  317. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  318. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  319. package/dist/components/other/Calendar/styled.js +1 -1
  320. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  321. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  322. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  323. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  324. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  325. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  326. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  327. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  328. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  329. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  330. package/dist/components/overlays/Dialog/context.js +1 -1
  331. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  332. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  333. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  334. package/dist/components/overlays/Modal/Modal.js +1 -1
  335. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  336. package/dist/components/overlays/Modal/Overlay.js +7 -2
  337. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  338. package/dist/components/overlays/Modal/Popover.js +31 -29
  339. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  340. package/dist/components/overlays/Modal/Tray.js +2 -1
  341. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  342. package/dist/components/overlays/Modal/Underlay.js +1 -1
  343. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  344. package/dist/components/overlays/Notifications/Notification.js +1 -1
  345. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  346. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  347. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  348. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  349. package/dist/components/overlays/Notifications/OverlayContainer.js +18 -32
  350. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  351. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  352. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  353. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  354. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  355. package/dist/components/overlays/Notifications/index.js +1 -1
  356. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  357. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  358. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  359. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  360. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  361. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  362. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  363. package/dist/components/overlays/Toast/index.js +1 -1
  364. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  365. package/dist/components/overlays/Toast/useToast.js +1 -1
  366. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  367. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  368. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  369. package/dist/components/overlays/Tooltip/context.js +1 -1
  370. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  371. package/dist/components/portal/Portal.js +1 -1
  372. package/dist/components/portal/PortalProvider.js +1 -1
  373. package/dist/components/portal/usePortal.js +1 -1
  374. package/dist/components/shared/DraggableCollection.js +1 -1
  375. package/dist/components/shared/InvalidIcon.js +1 -1
  376. package/dist/components/shared/ValidIcon.js +1 -1
  377. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  378. package/dist/components/status/Spin/Cube.js +1 -1
  379. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  380. package/dist/components/status/Spin/Spin.js +1 -1
  381. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  382. package/dist/data/item-themes.js +1 -1
  383. package/dist/data/themes.js +1 -1
  384. package/dist/eslint-plugin/defaults.generated.js +1 -1
  385. package/dist/eslint-plugin/index.js +1 -1
  386. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  387. package/dist/i18n/I18nProvider.js +1 -1
  388. package/dist/i18n/createFormatter.js +1 -1
  389. package/dist/i18n/index.js +1 -1
  390. package/dist/i18n/instance.js +1 -1
  391. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  392. package/dist/i18n/locales/en-US/uikit.js +1 -1
  393. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  394. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  395. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  396. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  397. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  398. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  399. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  400. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  401. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  402. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  403. package/dist/i18n/locales.js +1 -1
  404. package/dist/i18n/namespace.js +1 -1
  405. package/dist/i18n/useFormatter.js +1 -1
  406. package/dist/i18n/useI18n.js +1 -1
  407. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  408. package/dist/icons/AdjustmentsIcon.js +1 -1
  409. package/dist/icons/AiIcon.js +1 -1
  410. package/dist/icons/AreaChartIcon.js +1 -1
  411. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  412. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  413. package/dist/icons/BackwardIcon.js +1 -1
  414. package/dist/icons/BarChartIcon.js +1 -1
  415. package/dist/icons/BellFilledIcon.js +1 -1
  416. package/dist/icons/BellIcon.js +1 -1
  417. package/dist/icons/BooleanIcon.js +1 -1
  418. package/dist/icons/CalendarEditIcon.js +1 -1
  419. package/dist/icons/CalendarIcon.js +1 -1
  420. package/dist/icons/CaretDownIcon.js +1 -1
  421. package/dist/icons/CaretUpIcon.js +1 -1
  422. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  423. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  424. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  425. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  426. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  427. package/dist/icons/ChartBarLineIcon.js +1 -1
  428. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  429. package/dist/icons/ChartBarStackedIcon.js +1 -1
  430. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  431. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  432. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  433. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  434. package/dist/icons/ChartBubbleIcon.js +1 -1
  435. package/dist/icons/ChartDonut2Icon.js +1 -1
  436. package/dist/icons/ChartFunnelIcon.js +1 -1
  437. package/dist/icons/ChartHeatmapIcon.js +1 -1
  438. package/dist/icons/ChartKPIIcon.js +1 -1
  439. package/dist/icons/ChartPie2Icon.js +1 -1
  440. package/dist/icons/ChartScatterIcon.js +1 -1
  441. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  442. package/dist/icons/CheckCircleIcon.js +1 -1
  443. package/dist/icons/CheckIcon.js +1 -1
  444. package/dist/icons/CircleFilledIcon.js +1 -1
  445. package/dist/icons/ClearIcon.js +1 -1
  446. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  447. package/dist/icons/CloseCircleIcon.js +1 -1
  448. package/dist/icons/CloseIcon.js +1 -1
  449. package/dist/icons/CodeIcon.js +1 -1
  450. package/dist/icons/ColumnTotalIcon.js +1 -1
  451. package/dist/icons/CopyIcon.js +1 -1
  452. package/dist/icons/CountIcon.js +1 -1
  453. package/dist/icons/CubeIcon.js +1 -1
  454. package/dist/icons/CubePauseIcon.js +1 -1
  455. package/dist/icons/CubePlayIcon.js +1 -1
  456. package/dist/icons/CurrencyDollarIcon.js +1 -1
  457. package/dist/icons/DangerIcon.js +1 -1
  458. package/dist/icons/DashboardIcon.js +1 -1
  459. package/dist/icons/DatabaseIcon.js +1 -1
  460. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  461. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  462. package/dist/icons/DirectionIcon.js +1 -1
  463. package/dist/icons/DonutIcon.js +1 -1
  464. package/dist/icons/DownIcon.js +1 -1
  465. package/dist/icons/EditIcon.js +1 -1
  466. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  467. package/dist/icons/ExclamationCircleIcon.js +1 -1
  468. package/dist/icons/ExclamationIcon.js +1 -1
  469. package/dist/icons/EyeIcon.js +1 -1
  470. package/dist/icons/EyeInvisibleIcon.js +1 -1
  471. package/dist/icons/FilterIcon.js +1 -1
  472. package/dist/icons/FolderFilledIcon.js +1 -1
  473. package/dist/icons/FolderIcon.js +1 -1
  474. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  475. package/dist/icons/FolderOpenIcon.js +1 -1
  476. package/dist/icons/ForwardIcon.js +1 -1
  477. package/dist/icons/GripVerticalIcon.js +1 -1
  478. package/dist/icons/HierarchyIcon.js +1 -1
  479. package/dist/icons/HierarchyOpenIcon.js +1 -1
  480. package/dist/icons/Icon.js +1 -1
  481. package/dist/icons/InfoCircleIcon.js +1 -1
  482. package/dist/icons/InfoIcon.js +1 -1
  483. package/dist/icons/KeyIcon.js +1 -1
  484. package/dist/icons/LeftIcon.js +1 -1
  485. package/dist/icons/LineChartIcon.js +1 -1
  486. package/dist/icons/LoadingIcon.js +1 -1
  487. package/dist/icons/LockFilledIcon.js +1 -1
  488. package/dist/icons/LockIcon.js +1 -1
  489. package/dist/icons/MoreIcon.js +1 -1
  490. package/dist/icons/NotAllowedIcon.js +1 -1
  491. package/dist/icons/Number123Icon.js +1 -1
  492. package/dist/icons/NumberIcon.js +1 -1
  493. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  494. package/dist/icons/PauseCircleIcon.js +1 -1
  495. package/dist/icons/PauseIcon.js +1 -1
  496. package/dist/icons/PercentageIcon.js +1 -1
  497. package/dist/icons/PieChartIcon.js +1 -1
  498. package/dist/icons/PipetteIcon.js +1 -1
  499. package/dist/icons/PlayCircleIcon.js +1 -1
  500. package/dist/icons/PlayIcon.js +1 -1
  501. package/dist/icons/PlusIcon.js +1 -1
  502. package/dist/icons/ProgressBarIcon.js +1 -1
  503. package/dist/icons/ReloadIcon.js +1 -1
  504. package/dist/icons/ReportIcon.js +1 -1
  505. package/dist/icons/ReturnIcon.js +1 -1
  506. package/dist/icons/RightIcon.js +1 -1
  507. package/dist/icons/RowTotalsIcon.js +1 -1
  508. package/dist/icons/SchemeIcon.js +1 -1
  509. package/dist/icons/SearchIcon.js +1 -1
  510. package/dist/icons/SemanticQueryIcon.js +1 -1
  511. package/dist/icons/SettingsIcon.js +1 -1
  512. package/dist/icons/ShieldFilledIcon.js +1 -1
  513. package/dist/icons/ShieldIcon.js +1 -1
  514. package/dist/icons/SlashIcon.js +1 -1
  515. package/dist/icons/SparklesIcon.js +1 -1
  516. package/dist/icons/SqlIcon.js +1 -1
  517. package/dist/icons/StatsIcon.js +1 -1
  518. package/dist/icons/StopIcon.js +1 -1
  519. package/dist/icons/StringIcon.js +1 -1
  520. package/dist/icons/SubtotalsIcon.js +1 -1
  521. package/dist/icons/SwitchIcon.js +1 -1
  522. package/dist/icons/TableIcon.js +1 -1
  523. package/dist/icons/ThumbsDownIcon.js +1 -1
  524. package/dist/icons/ThumbsUpIcon.js +1 -1
  525. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  526. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  527. package/dist/icons/ThunderboltIcon.js +1 -1
  528. package/dist/icons/TimeIcon.js +1 -1
  529. package/dist/icons/TrashIcon.js +1 -1
  530. package/dist/icons/UnlockIcon.js +1 -1
  531. package/dist/icons/UpIcon.js +1 -1
  532. package/dist/icons/UserGroupIcon.js +1 -1
  533. package/dist/icons/UserIcon.js +1 -1
  534. package/dist/icons/UserLockIcon.js +1 -1
  535. package/dist/icons/ViewIcon.js +1 -1
  536. package/dist/icons/WarningFilledIcon.js +1 -1
  537. package/dist/icons/WarningIcon.js +1 -1
  538. package/dist/icons/wrap-icon.js +1 -1
  539. package/dist/index.js +1 -1
  540. package/dist/probe/canonicalize.js +1 -1
  541. package/dist/probe/css.js +1 -1
  542. package/dist/probe/index.js +1 -1
  543. package/dist/provider.js +1 -1
  544. package/dist/providers/TrackingProvider.js +1 -1
  545. package/dist/providers/navigation-url.js +1 -1
  546. package/dist/providers/navigationAdapter.default.js +1 -1
  547. package/dist/providers/use-navigation.js +1 -1
  548. package/dist/shared/form.d.ts +11 -12
  549. package/dist/tokens/all-tokens.js +1 -1
  550. package/dist/tokens/base.js +1 -1
  551. package/dist/tokens/color-seed.js +1 -1
  552. package/dist/tokens/color-theme.js +1 -1
  553. package/dist/tokens/colors.js +1 -1
  554. package/dist/tokens/layout.js +1 -1
  555. package/dist/tokens/lazy-styles.js +1 -1
  556. package/dist/tokens/legacy-color.js +1 -1
  557. package/dist/tokens/palette-config.js +1 -1
  558. package/dist/tokens/palette.js +1 -1
  559. package/dist/tokens/resolve.js +1 -1
  560. package/dist/tokens/shadows.js +1 -1
  561. package/dist/tokens/sizes.js +1 -1
  562. package/dist/tokens/spacing.js +1 -1
  563. package/dist/tokens/typography.js +1 -1
  564. package/dist/utils/ResizeSensor.js +1 -1
  565. package/dist/utils/colors.js +1 -1
  566. package/dist/utils/dotize.js +1 -1
  567. package/dist/utils/is-dev-env.js +1 -1
  568. package/dist/utils/modules.js +1 -1
  569. package/dist/utils/promise.js +1 -1
  570. package/dist/utils/raf.js +1 -1
  571. package/dist/utils/random.js +1 -1
  572. package/dist/utils/range.js +1 -1
  573. package/dist/utils/react/RenderCache.js +1 -1
  574. package/dist/utils/react/Slots.js +1 -1
  575. package/dist/utils/react/chain.js +1 -1
  576. package/dist/utils/react/disabledProps.js +1 -1
  577. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  578. package/dist/utils/react/index.js +1 -1
  579. package/dist/utils/react/interactions.js +1 -1
  580. package/dist/utils/react/isTextOnly.js +1 -1
  581. package/dist/utils/react/mapProps.js +1 -1
  582. package/dist/utils/react/mergeProps.js +1 -1
  583. package/dist/utils/react/nullableValue.js +1 -1
  584. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  585. package/dist/utils/react/programmaticFocus.js +1 -1
  586. package/dist/utils/react/resolveIcon.js +1 -1
  587. package/dist/utils/react/sharedStore.js +1 -1
  588. package/dist/utils/react/useBufferedValue.js +1 -1
  589. package/dist/utils/react/useCombinedRefs.js +1 -1
  590. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  591. package/dist/utils/react/useEventBus.js +1 -1
  592. package/dist/utils/react/useId.js +1 -1
  593. package/dist/utils/react/useIsDarwin.js +1 -1
  594. package/dist/utils/react/useKeySymbols.js +1 -1
  595. package/dist/utils/react/useLayoutEffect.js +1 -1
  596. package/dist/utils/react/useLocalStorage.js +1 -1
  597. package/dist/utils/react/useMergeStyles.js +1 -1
  598. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  599. package/dist/utils/react/usePopoverSync.js +1 -1
  600. package/dist/utils/react/useQaProps.js +1 -1
  601. package/dist/utils/react/useScheme.js +1 -1
  602. package/dist/utils/react/useViewportSize.js +1 -1
  603. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  604. package/dist/utils/selection.js +1 -1
  605. package/dist/utils/styles.js +1 -1
  606. package/dist/utils/tree.js +1 -1
  607. package/dist/utils/warnings.js +1 -1
  608. package/dist/version.js +2 -2
  609. package/docs/ComplexLayout.md +1 -1
  610. package/docs/CreateComponent.md +2 -0
  611. package/docs/FieldProperties.md +31 -6
  612. package/docs/Usage.md +2 -0
  613. package/docs/components/actions/ButtonSplit.md +27 -1
  614. package/docs/components/content/Layout.md +8 -4
  615. package/docs/components/fields/ComboBox.md +6 -2
  616. package/docs/components/fields/TagInput.md +8 -1
  617. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-759f43d | Cube Dev Team */
2
- import { mergeProps } from "../../../utils/react/mergeProps.js";
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77836fa | Cube Dev Team */
2
+ import { mergeProps as mergeProps$1 } 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,8 +15,13 @@ 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";
18
19
 
19
20
  //#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
+ }
20
25
  const FieldElement = tasty({
21
26
  qa: "Field",
22
27
  styles: {
@@ -102,25 +107,33 @@ const LabelSuffixElement = tasty({ styles: {
102
107
  * @internal Do not use this component directly.
103
108
  */
104
109
  const FieldWrapper = forwardRef(function FieldWrapper(props, ref) {
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;
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;
107
112
  const labelPosition = t0 === void 0 ? "top" : t0;
108
- const requiredMark = t1 === void 0 ? true : t1;
113
+ const isBare = t1 === void 0 ? false : t1;
114
+ const requiredMark = t2 === void 0 ? true : t2;
109
115
  const { t } = useI18n();
110
116
  warnAboutLegacyTooltip(props);
111
117
  const showRequiredMark = !!requiredMark && !!isRequired;
112
118
  const showOptionalNote = !isRequired && !!isOptional;
113
- let t2;
119
+ let t3;
114
120
  if ($[0] !== showOptionalNote || $[1] !== t) {
115
- t2 = showOptionalNote ? t("form.optional", "(optional)") : null;
121
+ t3 = showOptionalNote ? t("form.optional", "(optional)") : null;
116
122
  $[0] = showOptionalNote;
117
123
  $[1] = t;
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, {
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, {
124
137
  as: as === "label" ? "div" : "label",
125
138
  styles: labelStyles,
126
139
  labelPosition,
@@ -153,127 +166,169 @@ const FieldWrapper = forwardRef(function FieldWrapper(props, ref) {
153
166
  })]
154
167
  })
155
168
  }) : null;
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;
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;
193
216
  useFieldTextId(descriptionId);
194
217
  useFieldTextId(messageId);
195
- let t6;
196
- if ($[25] !== description || $[26] !== descriptionId) {
197
- t6 = () => {
198
- if (!description) return null;
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;
199
249
  return /* @__PURE__ */ jsx(DescriptionElement, {
200
250
  id: descriptionId,
201
251
  "data-element": "Description",
202
252
  children: wrapNodeIfPlain(description, () => /* @__PURE__ */ jsx("span", { children: description }))
203
253
  });
204
254
  };
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({
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({
233
288
  isInvalid,
234
289
  isValid
235
290
  });
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
247
- };
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";
291
+ $[53] = isInvalid;
292
+ $[54] = isValid;
293
+ $[55] = t15;
294
+ } else t15 = $[55];
264
295
  let t16;
265
- if ($[45] !== descriptionForLabel || $[46] !== labelComponent) {
266
- t16 = labelComponent ? /* @__PURE__ */ jsxs("div", {
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
302
+ };
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", {
267
322
  "data-element": "LabelArea",
268
323
  children: [labelComponent, descriptionForLabel]
269
324
  }) : null;
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, {
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, {
277
332
  id: messageId,
278
333
  mods: {
279
334
  ...mods,
@@ -283,57 +338,57 @@ const FieldWrapper = forwardRef(function FieldWrapper(props, ref) {
283
338
  role: isErrorMessage || isInvalid ? "alert" : void 0,
284
339
  children: displayMessage
285
340
  });
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", {
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", {
298
353
  "data-element": "InputArea",
299
354
  children: [
300
355
  Component,
301
356
  descriptionForInput,
302
- t17
357
+ t20
303
358
  ]
304
359
  });
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, {
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, {
313
368
  ref,
314
- as: t15,
369
+ as: t18,
315
370
  mods,
316
371
  isHidden,
317
372
  ...mergedFieldProps,
318
- children: [t16, t18]
373
+ children: [t19, t21]
319
374
  });
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;
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;
337
392
  });
338
393
 
339
394
  //#endregion
@@ -1 +1 @@
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
+ {"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,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-759f43d | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77836fa | 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: a label or
71
- * `forceField`, a disabled field hiding its message, `TagInput` putting a
70
+ * either one depends on more than the control's props: `isBare`,
71
+ * 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: 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"}
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"}
@@ -14,7 +14,8 @@ type CubeFieldWrapperProps = ValidationProps & {
14
14
  isOptional?: boolean; /** Whether the input is disabled */
15
15
  isDisabled?: boolean;
16
16
  fieldProps?: Props;
17
- isHidden?: boolean;
17
+ isHidden?: boolean; /** Omit field layout and text slots while preserving the accessible label. */
18
+ isBare?: boolean;
18
19
  label?: ReactNode;
19
20
  labelPosition?: LabelPosition;
20
21
  labelSuffix?: ReactNode;
@@ -27,10 +28,10 @@ type CubeFieldWrapperProps = ValidationProps & {
27
28
  necessityIndicator?: NecessityIndicator | null;
28
29
  /**
29
30
  * @deprecated Use `errorMessage` for error messages and `description` for field descriptions instead.
30
- * Custom message for the field. It will be placed below the label and the input
31
+ * Fallback text used only when errorMessage is undefined.
31
32
  */
32
33
  message?: string | ReactNode; /** Styles for the message */
33
- messageStyles?: Styles; /** Error message for the field. Always displayed in danger state regardless of validation state */
34
+ messageStyles?: Styles; /** Error text. Explicit empty content suppresses the message fallback. */
34
35
  errorMessage?: string | ReactNode;
35
36
  Component?: ReactElement;
36
37
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-759f43d | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77836fa | 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-759f43d | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77836fa | 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-759f43d | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77836fa | 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-759f43d | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77836fa | 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";