@cube-dev/ui-kit 0.180.0 → 0.182.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (676) hide show
  1. package/dist/CHANGELOG.md +38 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +5 -3
  19. package/dist/components/actions/Button/Button.js.map +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +6 -4
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  23. package/dist/components/actions/ButtonSplit/context.js +1 -1
  24. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  25. package/dist/components/actions/CommandMenu/styled.js +1 -1
  26. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  27. package/dist/components/actions/ItemActionContext.js +1 -1
  28. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  29. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/dist/components/actions/Link/Link.js +1 -1
  31. package/dist/components/actions/Menu/Menu.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.js +1 -1
  53. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  54. package/dist/components/content/Divider.js +1 -1
  55. package/dist/components/content/Footer.js +1 -1
  56. package/dist/components/content/Header.js +1 -1
  57. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  58. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  59. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  60. package/dist/components/content/Item/Item.js +8 -6
  61. package/dist/components/content/Item/Item.js.map +1 -1
  62. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  63. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  64. package/dist/components/content/Layout/GridLayout.js +1 -1
  65. package/dist/components/content/Layout/Layout.js +1 -1
  66. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  67. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  68. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  69. package/dist/components/content/Layout/LayoutContent.js +1 -1
  70. package/dist/components/content/Layout/LayoutContext.js +1 -1
  71. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  72. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  73. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  74. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  75. package/dist/components/content/Layout/LayoutPane.js +1 -1
  76. package/dist/components/content/Layout/LayoutPanel.js +2 -2
  77. package/dist/components/content/Layout/LayoutPanelHeader.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.js +1 -1
  91. package/dist/components/content/TextItem/TextItem.js +1 -1
  92. package/dist/components/content/Title.js +1 -1
  93. package/dist/components/content/Tree/Tree.js +1 -1
  94. package/dist/components/content/Tree/TreeNode.js +1 -1
  95. package/dist/components/content/Tree/styled.js +1 -1
  96. package/dist/components/content/Tree/tree-index.js +1 -1
  97. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  98. package/dist/components/content/Tree/use-load-data.js +1 -1
  99. package/dist/components/content/highlightText.js +1 -1
  100. package/dist/components/content/use-auto-tooltip.js +1 -1
  101. package/dist/components/data/DataTable/DataTable.js +1 -1
  102. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  103. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  105. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  106. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  107. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  108. package/dist/components/data/TableBase/RowCollection.js +1 -1
  109. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  110. package/dist/components/data/TableBase/TableRow.js +1 -1
  111. package/dist/components/data/TableBase/TableView.js +1 -1
  112. package/dist/components/data/TableBase/column-menu.js +1 -1
  113. package/dist/components/data/TableBase/column-tint.js +1 -1
  114. package/dist/components/data/TableBase/row-menu.js +1 -1
  115. package/dist/components/data/TableBase/styled.js +1 -1
  116. package/dist/components/data/TableBase/table-tree.js +1 -1
  117. package/dist/components/data/TableBase/types.js +1 -1
  118. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  119. package/dist/components/data/TableBase/use-column-order.js +1 -1
  120. package/dist/components/data/TableBase/use-container-width.js +1 -1
  121. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  122. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  123. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  124. package/dist/components/data/TableBase/use-table-search.js +1 -1
  125. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  126. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  127. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  128. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  129. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  130. package/dist/components/fields/Checkbox/Checkbox.d.ts +3 -1
  131. package/dist/components/fields/Checkbox/Checkbox.js +15 -9
  132. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  133. package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +1 -1
  134. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  135. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  136. package/dist/components/fields/Checkbox/context.js +1 -1
  137. package/dist/components/fields/ColorInput/ColorInput.d.ts +1 -1
  138. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  139. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  140. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +1 -1
  141. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  142. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  143. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  144. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +1 -1
  145. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  146. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  147. package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -1
  148. package/dist/components/fields/ComboBox/ComboBox.js +8 -2
  149. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  150. package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +21 -1
  151. package/dist/components/fields/CommandTextArea/CommandTextArea.js +26 -7
  152. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  153. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  154. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  155. package/dist/components/fields/DatePicker/DateInput.d.ts +1 -1
  156. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  157. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  158. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  159. package/dist/components/fields/DatePicker/DatePicker.d.ts +1 -1
  160. package/dist/components/fields/DatePicker/DatePicker.js +6 -3
  161. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  162. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  163. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  164. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  165. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  166. package/dist/components/fields/DatePicker/DateRangePicker.d.ts +4 -1
  167. package/dist/components/fields/DatePicker/DateRangePicker.js +6 -3
  168. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  169. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +4 -1
  170. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +6 -3
  171. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  172. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  173. package/dist/components/fields/DatePicker/PeriodPicker.d.ts +1 -1
  174. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  176. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  177. package/dist/components/fields/DatePicker/TimeInput.d.ts +1 -1
  178. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  179. package/dist/components/fields/DatePicker/TimeInput.js.map +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.d.ts +4 -1
  187. package/dist/components/fields/FileInput/FileInput.js +38 -29
  188. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  189. package/dist/components/fields/FilterListBox/FilterListBox.d.ts +1 -1
  190. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  191. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  192. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +3 -1
  193. package/dist/components/fields/FilterPicker/FilterPicker.js +10 -6
  194. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  195. package/dist/components/fields/Input/Input.js +1 -1
  196. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  197. package/dist/components/fields/ListBox/ListBox.d.ts +1 -1
  198. package/dist/components/fields/ListBox/ListBox.js +5 -3
  199. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  200. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  201. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  202. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  203. package/dist/components/fields/NumberInput/NumberInput.d.ts +3 -1
  204. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  205. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  206. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  207. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  208. package/dist/components/fields/Picker/Picker.d.ts +3 -1
  209. package/dist/components/fields/Picker/Picker.js +10 -6
  210. package/dist/components/fields/Picker/Picker.js.map +1 -1
  211. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  212. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +1 -1
  213. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  214. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  215. package/dist/components/fields/RadioGroup/context.js +1 -1
  216. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  217. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  218. package/dist/components/fields/Select/Select.d.ts +3 -1
  219. package/dist/components/fields/Select/Select.js +20 -3
  220. package/dist/components/fields/Select/Select.js.map +1 -1
  221. package/dist/components/fields/Slider/Gradation.js +1 -1
  222. package/dist/components/fields/Slider/HueSlider.js +1 -1
  223. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  224. package/dist/components/fields/Slider/Slider.js +1 -1
  225. package/dist/components/fields/Slider/SliderBase.js +1 -1
  226. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  227. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  228. package/dist/components/fields/Slider/elements.js +1 -1
  229. package/dist/components/fields/Slider/index.js +1 -1
  230. package/dist/components/fields/Slider/types.d.ts +1 -1
  231. package/dist/components/fields/Switch/Switch.d.ts +3 -1
  232. package/dist/components/fields/Switch/Switch.js +1 -1
  233. package/dist/components/fields/Switch/Switch.js.map +1 -1
  234. package/dist/components/fields/TextArea/TextArea.d.ts +2 -0
  235. package/dist/components/fields/TextArea/TextArea.js +1 -1
  236. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  237. package/dist/components/fields/TextInput/TextInput.d.ts +4 -1
  238. package/dist/components/fields/TextInput/TextInput.js +1 -1
  239. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  240. package/dist/components/fields/TextInput/TextInputBase.d.ts +1 -1
  241. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  242. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  243. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  244. package/dist/components/fields/TextInputMapper/TextInputMapper.d.ts +1 -1
  245. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  246. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  247. package/dist/components/fields/TriggerActions.js +1 -1
  248. package/dist/components/fields/color/ColorPanel.js +1 -1
  249. package/dist/components/fields/color/channels.js +1 -1
  250. package/dist/components/fields/color/color.js +1 -1
  251. package/dist/components/fields/color/context.js +1 -1
  252. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  253. package/dist/components/form/Form/Field.d.ts +2 -0
  254. package/dist/components/form/Form/Field.js +1 -1
  255. package/dist/components/form/Form/Field.js.map +1 -1
  256. package/dist/components/form/Form/Form.js +1 -1
  257. package/dist/components/form/Form/ModernFormRoot.d.ts +9 -4
  258. package/dist/components/form/Form/ModernFormRoot.js +13 -6
  259. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  260. package/dist/components/form/Form/ResetButton/ResetButton.d.ts +1 -1
  261. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  262. package/dist/components/form/Form/SubmitButton/SubmitButton.d.ts +3 -1
  263. package/dist/components/form/Form/SubmitButton/SubmitButton.js +2 -2
  264. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  265. package/dist/components/form/Form/SubmitError.d.ts +8 -2
  266. package/dist/components/form/Form/SubmitError.js +11 -4
  267. package/dist/components/form/Form/SubmitError.js.map +1 -1
  268. package/dist/components/form/Form/backend.js +1 -1
  269. package/dist/components/form/Form/index.d.ts +12 -8
  270. package/dist/components/form/Form/index.js +4 -2
  271. package/dist/components/form/Form/index.js.map +1 -1
  272. package/dist/components/form/Form/modern/actions.js +27 -9
  273. package/dist/components/form/Form/modern/actions.js.map +1 -1
  274. package/dist/components/form/Form/modern/context.d.ts +3 -0
  275. package/dist/components/form/Form/modern/context.js +1 -1
  276. package/dist/components/form/Form/modern/controller.d.ts +19 -8
  277. package/dist/components/form/Form/modern/controller.js +15 -4
  278. package/dist/components/form/Form/modern/controller.js.map +1 -1
  279. package/dist/components/form/Form/modern/field-binding.js +23 -5
  280. package/dist/components/form/Form/modern/field-binding.js.map +1 -1
  281. package/dist/components/form/Form/modern/field.d.ts +30 -0
  282. package/dist/components/form/Form/modern/field.js +23 -0
  283. package/dist/components/form/Form/modern/field.js.map +1 -0
  284. package/dist/components/form/Form/modern/path-types.d.ts +5 -1
  285. package/dist/components/form/Form/modern/react.d.ts +7 -2
  286. package/dist/components/form/Form/modern/react.js +21 -3
  287. package/dist/components/form/Form/modern/react.js.map +1 -1
  288. package/dist/components/form/Form/modern/read-types.d.ts +11 -0
  289. package/dist/components/form/Form/modern/store.js +82 -19
  290. package/dist/components/form/Form/modern/store.js.map +1 -1
  291. package/dist/components/form/Form/modern/types.d.ts +39 -23
  292. package/dist/components/form/Form/modern/validation.d.ts +2 -1
  293. package/dist/components/form/Form/modern/validation.js +4 -4
  294. package/dist/components/form/Form/modern/validation.js.map +1 -1
  295. package/dist/components/form/Form/modern/values.js +16 -2
  296. package/dist/components/form/Form/modern/values.js.map +1 -1
  297. package/dist/components/form/Form/use-field/types.d.ts +1 -1
  298. package/dist/components/form/Form/use-field/use-field-binding.js +12 -8
  299. package/dist/components/form/Form/use-field/use-field-binding.js.map +1 -1
  300. package/dist/components/form/Form/use-field/use-field-props.d.ts +3 -1
  301. package/dist/components/form/Form/use-field/use-field-props.js +16 -5
  302. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  303. package/dist/components/form/Form/use-field/use-field.d.ts +3 -1
  304. package/dist/components/form/Form/use-field/use-field.js +1 -1
  305. package/dist/components/form/Form/use-field/use-field.js.map +1 -1
  306. package/dist/components/form/Form/use-form.d.ts +1 -1
  307. package/dist/components/form/Form/use-form.js +1 -1
  308. package/dist/components/form/Form/validation.js +1 -1
  309. package/dist/components/form/Label.js +1 -1
  310. package/dist/components/form/index.d.ts +6 -5
  311. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  312. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  313. package/dist/components/form/validation/use-validation-props.js +1 -1
  314. package/dist/components/form/wrapper.js +1 -1
  315. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  316. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  317. package/dist/components/layout/Board/Board.js +1 -1
  318. package/dist/components/layout/Board/BoardProvider.js +1 -1
  319. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  320. package/dist/components/layout/Board/Widget.js +1 -1
  321. package/dist/components/layout/Board/WidgetHost.js +1 -1
  322. package/dist/components/layout/Board/board-context.js +1 -1
  323. package/dist/components/layout/Board/board-store.js +1 -1
  324. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  325. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  326. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  327. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  328. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  329. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  330. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  331. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  332. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  333. package/dist/components/layout/Board/index.js +1 -1
  334. package/dist/components/layout/Board/responsive-utils.js +1 -1
  335. package/dist/components/layout/Board/use-board-layout.js +1 -1
  336. package/dist/components/layout/Board/use-board-registry.js +1 -1
  337. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  338. package/dist/components/layout/Board/use-board-selection.js +1 -1
  339. package/dist/components/layout/Flex.js +1 -1
  340. package/dist/components/layout/Flow.js +1 -1
  341. package/dist/components/layout/Grid.js +1 -1
  342. package/dist/components/layout/Panel.js +1 -1
  343. package/dist/components/layout/Prefix.js +1 -1
  344. package/dist/components/layout/ResizablePanel.js +1 -1
  345. package/dist/components/layout/Space.js +1 -1
  346. package/dist/components/layout/Suffix.js +1 -1
  347. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  348. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  349. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  350. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  351. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  352. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  353. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  354. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  355. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  356. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  357. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  358. package/dist/components/navigation/Tabs/styled.js +1 -1
  359. package/dist/components/navigation/Tabs/types.js +1 -1
  360. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  361. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  362. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  363. package/dist/components/other/Calendar/Calendar.js +1 -1
  364. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  365. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  366. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  367. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  368. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  369. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  370. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  371. package/dist/components/other/Calendar/styled.js +1 -1
  372. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  373. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  374. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  375. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  376. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  377. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  378. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  379. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  380. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  381. package/dist/components/overlays/Dialog/context.js +1 -1
  382. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  383. package/dist/components/overlays/Modal/Modal.js +1 -1
  384. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  385. package/dist/components/overlays/Modal/Overlay.js +8 -2
  386. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  387. package/dist/components/overlays/Modal/Popover.js +4 -2
  388. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  389. package/dist/components/overlays/Modal/Tray.js +1 -1
  390. package/dist/components/overlays/Modal/Underlay.js +1 -1
  391. package/dist/components/overlays/Notifications/Notification.js +1 -1
  392. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  393. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  394. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  395. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  396. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  397. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  398. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  399. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  400. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  401. package/dist/components/overlays/Notifications/index.js +1 -1
  402. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  403. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  404. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  405. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  406. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  407. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  408. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  409. package/dist/components/overlays/Toast/index.js +1 -1
  410. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  411. package/dist/components/overlays/Toast/useToast.js +1 -1
  412. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  413. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  414. package/dist/components/overlays/Tooltip/TooltipTrigger.js +12 -2
  415. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  416. package/dist/components/overlays/Tooltip/context.js +1 -1
  417. package/dist/components/portal/Portal.js +1 -1
  418. package/dist/components/portal/PortalProvider.js +1 -1
  419. package/dist/components/portal/usePortal.js +1 -1
  420. package/dist/components/shared/DraggableCollection.js +1 -1
  421. package/dist/components/shared/InvalidIcon.js +1 -1
  422. package/dist/components/shared/ValidIcon.js +1 -1
  423. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  424. package/dist/components/status/Spin/Cube.js +1 -1
  425. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  426. package/dist/components/status/Spin/Spin.js +1 -1
  427. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  428. package/dist/data/item-themes.js +1 -1
  429. package/dist/data/themes.js +1 -1
  430. package/dist/eslint-plugin/defaults.generated.js +4 -3
  431. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  432. package/dist/eslint-plugin/index.js +1 -1
  433. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  434. package/dist/i18n/I18nProvider.js +1 -1
  435. package/dist/i18n/createFormatter.js +1 -1
  436. package/dist/i18n/index.js +1 -1
  437. package/dist/i18n/instance.js +1 -1
  438. package/dist/i18n/locales/de-DE/uikit.js +5 -2
  439. package/dist/i18n/locales/en-US/uikit.js +5 -2
  440. package/dist/i18n/locales/en-US/uikit.json.d.ts +15 -5
  441. package/dist/i18n/locales/es-ES/uikit.js +5 -2
  442. package/dist/i18n/locales/es-MX/uikit.js +5 -2
  443. package/dist/i18n/locales/fr-FR/uikit.js +5 -2
  444. package/dist/i18n/locales/it-IT/uikit.js +5 -2
  445. package/dist/i18n/locales/ja-JP/uikit.js +5 -2
  446. package/dist/i18n/locales/nb-NO/uikit.js +5 -2
  447. package/dist/i18n/locales/pt-BR/uikit.js +5 -2
  448. package/dist/i18n/locales/pt-PT/uikit.js +5 -2
  449. package/dist/i18n/locales/sv-SE/uikit.js +5 -2
  450. package/dist/i18n/locales/vi-VN/uikit.js +5 -2
  451. package/dist/i18n/locales.js +1 -1
  452. package/dist/i18n/useFormatter.js +1 -1
  453. package/dist/i18n/useI18n.js +1 -1
  454. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  455. package/dist/icons/AdjustmentsIcon.js +1 -1
  456. package/dist/icons/AiIcon.js +1 -1
  457. package/dist/icons/AreaChartIcon.js +1 -1
  458. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  459. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  460. package/dist/icons/BackwardIcon.js +1 -1
  461. package/dist/icons/BarChartIcon.js +1 -1
  462. package/dist/icons/BellFilledIcon.js +1 -1
  463. package/dist/icons/BellIcon.js +1 -1
  464. package/dist/icons/BooleanIcon.js +1 -1
  465. package/dist/icons/CalendarEditIcon.js +1 -1
  466. package/dist/icons/CalendarIcon.js +1 -1
  467. package/dist/icons/CaretDownIcon.js +1 -1
  468. package/dist/icons/CaretUpIcon.js +1 -1
  469. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  470. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  471. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  472. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  473. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  474. package/dist/icons/ChartBarLineIcon.js +1 -1
  475. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  476. package/dist/icons/ChartBarStackedIcon.js +1 -1
  477. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  478. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  479. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  480. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  481. package/dist/icons/ChartBubbleIcon.js +1 -1
  482. package/dist/icons/ChartDonut2Icon.js +1 -1
  483. package/dist/icons/ChartFunnelIcon.js +1 -1
  484. package/dist/icons/ChartHeatmapIcon.js +1 -1
  485. package/dist/icons/ChartKPIIcon.js +1 -1
  486. package/dist/icons/ChartPie2Icon.js +1 -1
  487. package/dist/icons/ChartScatterIcon.js +1 -1
  488. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  489. package/dist/icons/CheckCircleIcon.js +1 -1
  490. package/dist/icons/CheckIcon.js +1 -1
  491. package/dist/icons/CircleFilledIcon.js +1 -1
  492. package/dist/icons/ClearIcon.js +1 -1
  493. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  494. package/dist/icons/CloseCircleIcon.js +1 -1
  495. package/dist/icons/CloseIcon.js +1 -1
  496. package/dist/icons/CodeIcon.js +1 -1
  497. package/dist/icons/ColumnTotalIcon.js +1 -1
  498. package/dist/icons/CopyIcon.js +1 -1
  499. package/dist/icons/CountIcon.js +1 -1
  500. package/dist/icons/CubeIcon.js +1 -1
  501. package/dist/icons/CubePauseIcon.js +1 -1
  502. package/dist/icons/CubePlayIcon.js +1 -1
  503. package/dist/icons/CurrencyDollarIcon.js +1 -1
  504. package/dist/icons/DangerIcon.js +1 -1
  505. package/dist/icons/DashboardIcon.js +1 -1
  506. package/dist/icons/DatabaseIcon.js +1 -1
  507. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  508. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  509. package/dist/icons/DirectionIcon.js +1 -1
  510. package/dist/icons/DonutIcon.js +1 -1
  511. package/dist/icons/DownIcon.js +1 -1
  512. package/dist/icons/EditIcon.js +1 -1
  513. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  514. package/dist/icons/ExclamationCircleIcon.js +1 -1
  515. package/dist/icons/ExclamationIcon.js +1 -1
  516. package/dist/icons/EyeIcon.js +1 -1
  517. package/dist/icons/EyeInvisibleIcon.js +1 -1
  518. package/dist/icons/FilterIcon.js +1 -1
  519. package/dist/icons/FolderFilledIcon.js +1 -1
  520. package/dist/icons/FolderIcon.js +1 -1
  521. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  522. package/dist/icons/FolderOpenIcon.js +1 -1
  523. package/dist/icons/ForwardIcon.js +1 -1
  524. package/dist/icons/GripVerticalIcon.js +1 -1
  525. package/dist/icons/HierarchyIcon.js +1 -1
  526. package/dist/icons/HierarchyOpenIcon.js +1 -1
  527. package/dist/icons/Icon.js +1 -1
  528. package/dist/icons/InfoCircleIcon.js +1 -1
  529. package/dist/icons/InfoIcon.js +1 -1
  530. package/dist/icons/KeyIcon.js +1 -1
  531. package/dist/icons/LeftIcon.js +1 -1
  532. package/dist/icons/LineChartIcon.js +1 -1
  533. package/dist/icons/LoadingIcon.js +1 -1
  534. package/dist/icons/LockFilledIcon.js +1 -1
  535. package/dist/icons/LockIcon.js +1 -1
  536. package/dist/icons/MoreIcon.js +1 -1
  537. package/dist/icons/NotAllowedIcon.js +1 -1
  538. package/dist/icons/Number123Icon.js +1 -1
  539. package/dist/icons/NumberIcon.js +1 -1
  540. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  541. package/dist/icons/PauseCircleIcon.js +1 -1
  542. package/dist/icons/PauseIcon.js +1 -1
  543. package/dist/icons/PercentageIcon.js +1 -1
  544. package/dist/icons/PieChartIcon.js +1 -1
  545. package/dist/icons/PipetteIcon.js +1 -1
  546. package/dist/icons/PlayCircleIcon.js +1 -1
  547. package/dist/icons/PlayIcon.js +1 -1
  548. package/dist/icons/PlusIcon.js +1 -1
  549. package/dist/icons/ProgressBarIcon.js +1 -1
  550. package/dist/icons/ReloadIcon.js +1 -1
  551. package/dist/icons/ReportIcon.js +1 -1
  552. package/dist/icons/ReturnIcon.js +1 -1
  553. package/dist/icons/RightIcon.js +1 -1
  554. package/dist/icons/RowTotalsIcon.js +1 -1
  555. package/dist/icons/SchemeIcon.js +1 -1
  556. package/dist/icons/SearchIcon.js +1 -1
  557. package/dist/icons/SemanticQueryIcon.js +1 -1
  558. package/dist/icons/SettingsIcon.js +1 -1
  559. package/dist/icons/ShieldFilledIcon.js +1 -1
  560. package/dist/icons/ShieldIcon.js +1 -1
  561. package/dist/icons/SlashIcon.js +1 -1
  562. package/dist/icons/SparklesIcon.js +1 -1
  563. package/dist/icons/SqlIcon.js +1 -1
  564. package/dist/icons/StatsIcon.js +1 -1
  565. package/dist/icons/StopIcon.js +1 -1
  566. package/dist/icons/StringIcon.js +1 -1
  567. package/dist/icons/SubtotalsIcon.js +1 -1
  568. package/dist/icons/SwitchIcon.js +1 -1
  569. package/dist/icons/TableIcon.js +1 -1
  570. package/dist/icons/ThumbsDownIcon.js +1 -1
  571. package/dist/icons/ThumbsUpIcon.js +1 -1
  572. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  573. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  574. package/dist/icons/ThunderboltIcon.js +1 -1
  575. package/dist/icons/TimeIcon.js +1 -1
  576. package/dist/icons/TrashIcon.js +1 -1
  577. package/dist/icons/UnlockIcon.js +1 -1
  578. package/dist/icons/UpIcon.js +1 -1
  579. package/dist/icons/UserGroupIcon.js +1 -1
  580. package/dist/icons/UserIcon.js +1 -1
  581. package/dist/icons/UserLockIcon.js +1 -1
  582. package/dist/icons/ViewIcon.js +1 -1
  583. package/dist/icons/WarningFilledIcon.js +1 -1
  584. package/dist/icons/WarningIcon.js +1 -1
  585. package/dist/icons/wrap-icon.js +1 -1
  586. package/dist/index.d.ts +7 -5
  587. package/dist/index.js +2 -2
  588. package/dist/probe/canonicalize.js +1 -1
  589. package/dist/probe/css.js +1 -1
  590. package/dist/probe/index.js +1 -1
  591. package/dist/provider.js +1 -1
  592. package/dist/providers/TrackingProvider.js +1 -1
  593. package/dist/providers/navigationAdapter.default.js +1 -1
  594. package/dist/shared/form.d.ts +13 -5
  595. package/dist/tokens/all-tokens.js +1 -1
  596. package/dist/tokens/base.js +2 -2
  597. package/dist/tokens/base.js.map +1 -1
  598. package/dist/tokens/color-seed.js +1 -1
  599. package/dist/tokens/color-theme.js +1 -1
  600. package/dist/tokens/colors.js +1 -1
  601. package/dist/tokens/layout.js +1 -1
  602. package/dist/tokens/lazy-styles.js +1 -1
  603. package/dist/tokens/legacy-color.js +1 -1
  604. package/dist/tokens/palette-config.js +1 -1
  605. package/dist/tokens/palette.js +1 -1
  606. package/dist/tokens/resolve.js +1 -1
  607. package/dist/tokens/shadows.js +1 -1
  608. package/dist/tokens/sizes.js +1 -1
  609. package/dist/tokens/spacing.js +1 -1
  610. package/dist/tokens/typography.js +1 -1
  611. package/dist/utils/ResizeSensor.js +1 -1
  612. package/dist/utils/colors.js +1 -1
  613. package/dist/utils/dotize.js +1 -1
  614. package/dist/utils/is-dev-env.js +1 -1
  615. package/dist/utils/modules.js +1 -1
  616. package/dist/utils/promise.js +1 -1
  617. package/dist/utils/raf.js +1 -1
  618. package/dist/utils/random.js +1 -1
  619. package/dist/utils/range.js +1 -1
  620. package/dist/utils/react/RenderCache.js +1 -1
  621. package/dist/utils/react/Slots.js +1 -1
  622. package/dist/utils/react/chain.js +1 -1
  623. package/dist/utils/react/disabledProps.js +1 -1
  624. package/dist/utils/react/escapePropagation.js +39 -0
  625. package/dist/utils/react/escapePropagation.js.map +1 -0
  626. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  627. package/dist/utils/react/index.js +1 -1
  628. package/dist/utils/react/interactions.js +1 -1
  629. package/dist/utils/react/isTextOnly.js +1 -1
  630. package/dist/utils/react/mapProps.js +1 -1
  631. package/dist/utils/react/mergeProps.js +1 -1
  632. package/dist/utils/react/nullableValue.js +1 -1
  633. package/dist/utils/react/programmaticFocus.js +58 -0
  634. package/dist/utils/react/programmaticFocus.js.map +1 -0
  635. package/dist/utils/react/resolveIcon.js +1 -1
  636. package/dist/utils/react/sharedStore.js +1 -1
  637. package/dist/utils/react/useBufferedValue.js +1 -1
  638. package/dist/utils/react/useCombinedRefs.js +1 -1
  639. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  640. package/dist/utils/react/useEventBus.js +1 -1
  641. package/dist/utils/react/useId.js +1 -1
  642. package/dist/utils/react/useIsDarwin.js +1 -1
  643. package/dist/utils/react/useKeySymbols.js +1 -1
  644. package/dist/utils/react/useLayoutEffect.js +1 -1
  645. package/dist/utils/react/useLocalStorage.js +1 -1
  646. package/dist/utils/react/useMergeStyles.js +1 -1
  647. package/dist/utils/react/useOverlayEscapeGuard.js +41 -0
  648. package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -0
  649. package/dist/utils/react/usePopoverSync.js +1 -1
  650. package/dist/utils/react/useQaProps.js +1 -1
  651. package/dist/utils/react/useScheme.js +1 -1
  652. package/dist/utils/react/useViewportSize.js +1 -1
  653. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  654. package/dist/utils/selection.js +1 -1
  655. package/dist/utils/styles.js +1 -1
  656. package/dist/utils/tree.js +1 -1
  657. package/dist/utils/warnings.js +1 -1
  658. package/dist/version.js +2 -2
  659. package/docs/CreateComponent.md +1 -1
  660. package/docs/FieldProperties.md +25 -13
  661. package/docs/Usage.md +17 -31
  662. package/docs/components/actions/Button.md +1 -1
  663. package/docs/components/content/Item.md +19 -0
  664. package/docs/components/fields/CommandTextArea.md +3 -1
  665. package/docs/components/fields/FileInput.md +4 -0
  666. package/docs/components/fields/FilterPicker.md +1 -0
  667. package/docs/components/fields/Picker.md +1 -0
  668. package/docs/components/fields/Select.md +1 -0
  669. package/docs/components/form/Field.md +2 -2
  670. package/docs/components/form/Form.md +13 -39
  671. package/docs/components/form/FormInstance.md +5 -9
  672. package/docs/components/form/ModernForm.md +269 -0
  673. package/docs/components/overlays/Dialog.md +26 -0
  674. package/docs/modern-form-guide.md +269 -0
  675. package/docs/modern-form-migration.md +20 -59
  676. package/package.json +1 -1
@@ -1,5 +1,7 @@
1
1
 
2
+ import { FormPath } from "../components/form/Form/modern/values.js";
2
3
  import { ModernValidationContext, ModernValidationRule } from "../components/form/Form/modern/validation.js";
4
+ import { FormField } from "../components/form/Form/modern/field.js";
3
5
  import { Props } from "../props.js";
4
6
  import { Styles } from "@tenphi/tasty";
5
7
  import { ReactNode } from "react";
@@ -41,21 +43,27 @@ interface FieldValidationRule extends Omit<ModernValidationRule<any>, 'validator
41
43
  validator?: (rule: any, value: any, context: ModernValidationContext<any>) => any;
42
44
  }
43
45
  /** Core field identity and validation props */
44
- interface FieldCoreProps {
46
+ interface FieldCoreProps<Value = unknown> {
47
+ /** Typed modern descriptor. Its form, path, and supplied options override matching input props. */
48
+ field?: FormField<Value>;
45
49
  /** The unique ID of the field */
46
50
  id?: string;
47
51
  /** The id prefix for the field to avoid collisions between forms */
48
52
  idPrefix?: string;
49
- /** The field name */
50
- name?: string;
53
+ /** Literal name, or a nested tuple path with a modern form controller. */
54
+ name?: FormPath;
51
55
  /** The form instance */
52
56
  form?: any;
53
57
  /** Function that checks whether to perform update of the form state. */
54
58
  shouldUpdate?: boolean | ((prevValues: any, nextValues: any) => boolean);
55
59
  /** Validation rules */
56
60
  rules?: (FieldValidationRule | any[])[];
57
- /** Explicit revision key for modern validators with captured dependencies. */
61
+ /** Manual modern function revision, skipping source comparison. Declarative constraints are always compared. */
58
62
  rulesKey?: string;
63
+ /** Modern field paths that trigger revalidation. Declare conditional validator reads too. */
64
+ dependsOn?: readonly FormPath[];
65
+ /** External modern validator inputs, compared by Object.is (e.g. organizationId). */
66
+ deps?: readonly unknown[];
59
67
  /** Modern rule error ordering policy; defaults to the controller policy. */
60
68
  errorPolicy?: 'first' | 'all';
61
69
  /** Debounce in milliseconds for validation */
@@ -114,7 +122,7 @@ interface ToggleSelectionProps {
114
122
  /** Handler that is called when the selection state changes. */
115
123
  onChange?: (isSelected: boolean) => void;
116
124
  }
117
- interface FieldBaseProps extends FormBaseProps, FieldCoreProps {
125
+ interface FieldBaseProps<Value = unknown> extends FormBaseProps, FieldCoreProps<Value> {
118
126
  /** The label of the field */
119
127
  label?: ReactNode;
120
128
  /** An additional content next to the label */
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { getPaletteVersion } from "./palette-config.js";
3
3
  import { BASE_TOKENS } from "./base.js";
4
4
  import { lazyStyles } from "./lazy-styles.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/tokens/base.ts
3
3
  /**
4
4
  * Base design system tokens.
@@ -21,7 +21,7 @@ const BASE_TOKENS = {
21
21
  "$large-radius": "(1r + .5x)",
22
22
  "$card-radius": "(1r + .5x)",
23
23
  "$sharp-radius": "0px",
24
- "$min-dialog-size": "min(288px, calc(100vw - (2 * var(--gap))))",
24
+ "$min-dialog-size": "min(288px, calc(100dvw - (8 * var(--gap))))",
25
25
  $transition: "80ms",
26
26
  "$disclosure-transition": "120ms",
27
27
  "$tab-transition": "120ms",
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":[],"sources":["../../src/tokens/base.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n/**\n * Base design system tokens.\n * These define the fundamental units and values used throughout the system.\n *\n * Keys use $ prefix for CSS custom properties.\n */\nexport const BASE_TOKENS: Styles = {\n // Typography base\n /** @deprecated Use preset tokens instead */\n '$font-size': '14px',\n /** @deprecated Use preset tokens instead */\n '$line-height': '20px',\n\n // Input typography\n '$input-font-size': '14px',\n '$input-line-height': '20px',\n '$input-letter-spacing': '0.02em',\n\n // Opacity & dimensions\n /** Opacity for disabled elements */\n '$disabled-opacity': '.4',\n /** Base gap unit for spacing (used with `.5x`, `1x`, `2x` etc.) */\n $gap: '8px',\n /** Stroke width for icons */\n '$stroke-width': 1.5,\n /** Focus outline width */\n '$outline-width': 'calc(1rem / 16 * 3)',\n /** Border width for bordered elements */\n '$border-width': '1px',\n\n // Border radius\n /** Base border radius (used with `1r`, `2r` etc.) */\n $radius: '6px',\n /** Larger radius using tasty calc: 1r + 0.5x */\n '$large-radius': '(1r + .5x)',\n /** Card border radius */\n '$card-radius': '(1r + .5x)',\n /** Sharp corner for leaf shapes */\n '$sharp-radius': '0px',\n\n // Misc dimensions\n /** Minimum dialog width (responsive) */\n '$min-dialog-size': 'min(288px, calc(100vw - (2 * var(--gap))))',\n\n // Transitions\n /** Default transition duration */\n $transition: '80ms',\n /** Transition for disclosure animations */\n '$disclosure-transition': '120ms',\n /** Transition for tab animations */\n '$tab-transition': '120ms',\n /** Transition for fade animations */\n '$fade-transition': '200ms',\n\n /**\n * Marks an element as carrying the token block. Not a design value — nothing\n * styles against it.\n *\n * `resolveTokenValue()` reads it to answer the one question a computed value\n * cannot: \"are the kit's tokens in effect here?\" Tasty registers `@property`\n * defaults with real initial values — `--gap` is `4px` off the block, not\n * `0px` — so a token read from outside `<Root>` comes back plausible and\n * wrong, and no amount of inspecting the value would reveal it. This is\n * declared alongside the tokens, so it is present exactly where they are.\n */\n '$tokens-applied': '1',\n\n // Scrollbar tokens\n '$scrollbar-width': '1.5x',\n '$scrollbar-outline-width': '1ow',\n '$scrollbar-radius': '1.5r',\n '#scrollbar-thumb': '#text.5',\n '#scrollbar-outline': '#clear',\n '#scrollbar-bg': '#surface-2',\n '#scrollbar-corner': '#clear',\n};\n"],"mappings":";;;;;;;;AAQA,MAAa,cAAsB;CAGjC,cAAc;CAEd,gBAAgB;CAGhB,oBAAoB;CACpB,sBAAsB;CACtB,yBAAyB;CAIzB,qBAAqB;CAErB,MAAM;CAEN,iBAAiB;CAEjB,kBAAkB;CAElB,iBAAiB;CAIjB,SAAS;CAET,iBAAiB;CAEjB,gBAAgB;CAEhB,iBAAiB;CAIjB,oBAAoB;CAIpB,aAAa;CAEb,0BAA0B;CAE1B,mBAAmB;CAEnB,oBAAoB;CAapB,mBAAmB;CAGnB,oBAAoB;CACpB,4BAA4B;CAC5B,qBAAqB;CACrB,oBAAoB;CACpB,sBAAsB;CACtB,iBAAiB;CACjB,qBAAqB;CACtB"}
1
+ {"version":3,"file":"base.js","names":[],"sources":["../../src/tokens/base.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n/**\n * Base design system tokens.\n * These define the fundamental units and values used throughout the system.\n *\n * Keys use $ prefix for CSS custom properties.\n */\nexport const BASE_TOKENS: Styles = {\n // Typography base\n /** @deprecated Use preset tokens instead */\n '$font-size': '14px',\n /** @deprecated Use preset tokens instead */\n '$line-height': '20px',\n\n // Input typography\n '$input-font-size': '14px',\n '$input-line-height': '20px',\n '$input-letter-spacing': '0.02em',\n\n // Opacity & dimensions\n /** Opacity for disabled elements */\n '$disabled-opacity': '.4',\n /** Base gap unit for spacing (used with `.5x`, `1x`, `2x` etc.) */\n $gap: '8px',\n /** Stroke width for icons */\n '$stroke-width': 1.5,\n /** Focus outline width */\n '$outline-width': 'calc(1rem / 16 * 3)',\n /** Border width for bordered elements */\n '$border-width': '1px',\n\n // Border radius\n /** Base border radius (used with `1r`, `2r` etc.) */\n $radius: '6px',\n /** Larger radius using tasty calc: 1r + 0.5x */\n '$large-radius': '(1r + .5x)',\n /** Card border radius */\n '$card-radius': '(1r + .5x)',\n /** Sharp corner for leaf shapes */\n '$sharp-radius': '0px',\n\n // Misc dimensions\n /**\n * Minimum dialog width (responsive).\n *\n * The viewport term must match the `100dvw - 8x` max-width that `Dialog`,\n * `Modal` and `Tray` set, because CSS resolves `min-width` *after*\n * `max-width`: if this floor can exceed that ceiling, the floor wins and the\n * dialog overflows its own viewport. It did, below ~352px — an Excel/Sheets\n * task pane is 300-350px, so every dialog there rendered 288px wide inside a\n * 236px box.\n */\n '$min-dialog-size': 'min(288px, calc(100dvw - (8 * var(--gap))))',\n\n // Transitions\n /** Default transition duration */\n $transition: '80ms',\n /** Transition for disclosure animations */\n '$disclosure-transition': '120ms',\n /** Transition for tab animations */\n '$tab-transition': '120ms',\n /** Transition for fade animations */\n '$fade-transition': '200ms',\n\n /**\n * Marks an element as carrying the token block. Not a design value — nothing\n * styles against it.\n *\n * `resolveTokenValue()` reads it to answer the one question a computed value\n * cannot: \"are the kit's tokens in effect here?\" Tasty registers `@property`\n * defaults with real initial values — `--gap` is `4px` off the block, not\n * `0px` — so a token read from outside `<Root>` comes back plausible and\n * wrong, and no amount of inspecting the value would reveal it. This is\n * declared alongside the tokens, so it is present exactly where they are.\n */\n '$tokens-applied': '1',\n\n // Scrollbar tokens\n '$scrollbar-width': '1.5x',\n '$scrollbar-outline-width': '1ow',\n '$scrollbar-radius': '1.5r',\n '#scrollbar-thumb': '#text.5',\n '#scrollbar-outline': '#clear',\n '#scrollbar-bg': '#surface-2',\n '#scrollbar-corner': '#clear',\n};\n"],"mappings":";;;;;;;;AAQA,MAAa,cAAsB;CAGjC,cAAc;CAEd,gBAAgB;CAGhB,oBAAoB;CACpB,sBAAsB;CACtB,yBAAyB;CAIzB,qBAAqB;CAErB,MAAM;CAEN,iBAAiB;CAEjB,kBAAkB;CAElB,iBAAiB;CAIjB,SAAS;CAET,iBAAiB;CAEjB,gBAAgB;CAEhB,iBAAiB;CAajB,oBAAoB;CAIpB,aAAa;CAEb,0BAA0B;CAE1B,mBAAmB;CAEnB,oBAAoB;CAapB,mBAAmB;CAGnB,oBAAoB;CACpB,4BAA4B;CAC5B,qBAAqB;CACrB,oBAAoB;CACpB,sBAAsB;CACtB,iBAAiB;CACjB,qBAAqB;CACtB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { glaze } from "@tenphi/glaze";
3
3
 
4
4
  //#region src/tokens/color-seed.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { colorSeed } from "./color-seed.js";
3
3
  import { DEFAULT_HUE, DEFAULT_SATURATION, getPaletteConfig, getPaletteVersion, usePaletteVersion } from "./palette-config.js";
4
4
  import { tintRecipe } from "./palette.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { getPaletteVersion } from "./palette-config.js";
3
3
  import { BASE_TOKENS } from "./base.js";
4
4
  import { lazyStyles } from "./lazy-styles.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/tokens/layout.ts
3
3
  /**
4
4
  * Layout-related tokens for common UI dimensions.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/tokens/lazy-styles.ts
3
3
  /**
4
4
  * Proxy that defers to `factory()` on every property / enumeration access.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { parseSrgbColor } from "../utils/colors.js";
3
3
  import { srgbToHex } from "@tenphi/glaze";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { colorSeed } from "./color-seed.js";
3
3
  import { useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { SURFACE_SATURATION_SHARE, getPaletteConfig, getPaletteVersion, resolvePaletteConfig } from "./palette-config.js";
3
3
  import { lazyStyles } from "./lazy-styles.js";
4
4
  import { apcaContrast, glaze, okhslToLinearSrgb, variantToOkhsl } from "@tenphi/glaze";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../utils/react/useLayoutEffect.js";
3
3
  import { subscribeScheme } from "../utils/react/useScheme.js";
4
4
  import { warn } from "../utils/warnings.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/tokens/shadows.ts
3
3
  /**
4
4
  * Shadow tokens using tasty shorthand syntax.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/tokens/sizes.ts
3
3
  /**
4
4
  * Component size values in pixels.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/tokens/spacing.ts
3
3
  /**
4
4
  * Spacing tokens using tasty multiplier syntax.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/tokens/typography.ts
3
3
  /**
4
4
  * Typography presets for headings, text, and special styles.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/ResizeSensor.ts
3
3
  /**
4
4
  * Iterate over each of the provided element(s).
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { hslToSrgb, okhslToOklch, okhslToSrgb, okhstToOkhsl, oklabToOkhsl, parseHexAlpha } from "@tenphi/glaze";
3
3
 
4
4
  //#region src/utils/colors.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/dotize.ts
3
3
  /**
4
4
  * Flattens a nested object into dot paths: `{ a: { b: 1 } }` becomes
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/is-dev-env.ts
3
3
  /**
4
4
  * `NODE_ENV` as the environment that is actually running reports it, or
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/modules.ts
3
3
  function extractModule(promise) {
4
4
  return promise.then((module) => module.default || module);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/promise.ts
3
3
  function timeout(ms = 30) {
4
4
  return new Promise((resolve) => {
package/dist/utils/raf.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/raf.ts
3
3
  /**
4
4
  * Chains N requestAnimationFrame calls and returns a cancel function.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/random.ts
3
3
  function random(min, max) {
4
4
  const realMin = min < max ? min : max;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/range.ts
3
3
  function range(count) {
4
4
  return Array.from({ length: count }, (_, i) => i);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useRef } from "react";
3
3
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { mergeProps } from "./mergeProps.js";
3
3
  import { Children, cloneElement, createContext, useContext, useMemo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/react/chain.ts
3
3
  /**
4
4
  * Calls all functions in the order they were chained with the same arguments.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/react/disabledProps.ts
3
3
  /**
4
4
  * Tags where `disabled` is a real HTML attribute. Browsers refuse to dispatch
@@ -0,0 +1,39 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
+ //#region src/utils/react/escapePropagation.ts
3
+ /**
4
+ * Let `Escape` keep travelling out of a trigger or list, and hold every other
5
+ * key exactly as before (CUB-4839).
6
+ *
7
+ * `Escape` is how whatever surrounds a control — a Dialog, most often — gets
8
+ * dismissed, and these handlers never act on it. Every other key stays
9
+ * contained: releasing them too would let `Enter` and typeahead reach ancestor
10
+ * shortcuts and form submits, which callers have always had held here.
11
+ *
12
+ * Shape-aware because the same `onKeyDown` is reached two ways and the DEFAULT
13
+ * is opposite between them:
14
+ *
15
+ * - Wrapped by `useKeyboard`, the event is augmented and propagation is
16
+ * stopped unless the handler opts out. `createEventHandler` also keeps that
17
+ * decision for the LIFE of the handler rather than per event — nothing
18
+ * resets it when the next key arrives — so an earlier opt-out would keep
19
+ * releasing later keys until a render replaced the handler. Re-asserting the
20
+ * default here is what keeps the opt-out from outliving its own event.
21
+ * - Spread straight onto an element, the event is an ordinary React one and
22
+ * propagation is the default, so containment is what has to be asked for.
23
+ *
24
+ * Getting this backwards is silent in one direction and loud in the other:
25
+ * calling `stopPropagation()` on a plain event really does stop it.
26
+ */
27
+ function allowEscapeToPropagate(event) {
28
+ const isEscape = event.key === "Escape";
29
+ if (typeof event.continuePropagation === "function") {
30
+ if (isEscape) event.continuePropagation();
31
+ else if (event.isPropagationStopped?.() === false) event.stopPropagation();
32
+ return;
33
+ }
34
+ if (!isEscape) event.stopPropagation();
35
+ }
36
+
37
+ //#endregion
38
+ export { allowEscapeToPropagate };
39
+ //# sourceMappingURL=escapePropagation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escapePropagation.js","names":[],"sources":["../../../src/utils/react/escapePropagation.ts"],"sourcesContent":["import type { KeyboardEvent } from 'react';\n\n/**\n * A key event as it reaches a handler that may or may not have been wrapped by\n * React Aria's `useKeyboard`.\n */\ntype MaybeAugmentedKeyboardEvent = KeyboardEvent<any> & {\n continuePropagation?: () => void;\n isPropagationStopped?: () => boolean;\n};\n\n/**\n * Let `Escape` keep travelling out of a trigger or list, and hold every other\n * key exactly as before (CUB-4839).\n *\n * `Escape` is how whatever surrounds a control — a Dialog, most often — gets\n * dismissed, and these handlers never act on it. Every other key stays\n * contained: releasing them too would let `Enter` and typeahead reach ancestor\n * shortcuts and form submits, which callers have always had held here.\n *\n * Shape-aware because the same `onKeyDown` is reached two ways and the DEFAULT\n * is opposite between them:\n *\n * - Wrapped by `useKeyboard`, the event is augmented and propagation is\n * stopped unless the handler opts out. `createEventHandler` also keeps that\n * decision for the LIFE of the handler rather than per event — nothing\n * resets it when the next key arrives — so an earlier opt-out would keep\n * releasing later keys until a render replaced the handler. Re-asserting the\n * default here is what keeps the opt-out from outliving its own event.\n * - Spread straight onto an element, the event is an ordinary React one and\n * propagation is the default, so containment is what has to be asked for.\n *\n * Getting this backwards is silent in one direction and loud in the other:\n * calling `stopPropagation()` on a plain event really does stop it.\n */\nexport function allowEscapeToPropagate(event: MaybeAugmentedKeyboardEvent) {\n const isEscape = event.key === 'Escape';\n\n if (typeof event.continuePropagation === 'function') {\n if (isEscape) {\n event.continuePropagation();\n } else if (event.isPropagationStopped?.() === false) {\n // Only ever called when the flag is already clear, which is the one case\n // `stopPropagation` does not warn about.\n event.stopPropagation();\n }\n\n return;\n }\n\n if (!isEscape) event.stopPropagation();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,SAAgB,uBAAuB,OAAoC;CACzE,MAAM,WAAW,MAAM,QAAQ;AAE/B,KAAI,OAAO,MAAM,wBAAwB,YAAY;AACnD,MAAI,SACF,OAAM,qBAAqB;WAClB,MAAM,wBAAwB,KAAK,MAG5C,OAAM,iBAAiB;AAGzB;;AAGF,KAAI,CAAC,SAAU,OAAM,iBAAiB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/react/forwardRefWithGenerics.tsx
3
3
  /**
4
4
  * A helper for creating forwardRef components with generic types.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { getDisabledElementProps, omitActivationEventProps } from "./disabledProps.js";
4
4
  import { forwardRefWithGenerics } from "./forwardRefWithGenerics.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useState } from "react";
3
3
  import { useFocus, useFocusVisible } from "react-aria";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { Children, isValidElement } from "react";
3
3
 
4
4
  //#region src/utils/react/isTextOnly.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/react/mapProps.ts
3
3
  /** Converts AriaButtonProps to CubeButtonProps */
4
4
  function ariaToCubeButtonProps(props) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { mergeIds } from "./useId.js";
4
4
  import { mergeStyles } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/react/nullableValue.ts
3
3
  function castNullableStringValue(props) {
4
4
  return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v));
@@ -0,0 +1,58 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
+ //#region src/utils/react/programmaticFocus.ts
3
+ /**
4
+ * Telling focus the user moved from focus a component moved for them.
5
+ *
6
+ * Handing focus back to a trigger after its overlay closes is not the same
7
+ * event as a user tabbing onto that trigger, but the DOM cannot tell them
8
+ * apart: `.focus()` produces an ordinary focus event, and the modality is
9
+ * still "keyboard" from whatever the user just did, so anything keyed off
10
+ * focus-visible treats it as a deliberate arrival. A trigger's tooltip pops up
11
+ * unasked — and then absorbs the user's next `Escape` from its own
12
+ * document-level listener (CUB-4839).
13
+ *
14
+ * Two mechanisms, because restoration reaches us two ways:
15
+ *
16
+ * - `focusProgrammatically` for restores WE perform. `focus()` dispatches
17
+ * `focus`/`focusin` synchronously, so a flag set around the call is readable
18
+ * by every handler that runs for it and gone immediately afterwards. Exact,
19
+ * with no window to tune.
20
+ *
21
+ * - `markFocusRestoreWindow` for restores React Aria performs. A `FocusScope`
22
+ * restores on unmount, from inside React's own commit, and offers no hook to
23
+ * wrap — so an overlay that is closing declares the window instead. Coarser
24
+ * on purpose: it can only make a tooltip skip one arrival that lands while
25
+ * an overlay is going away, which is the case it exists for.
26
+ */
27
+ let depth = 0;
28
+ let restoreWindowEndsAt = 0;
29
+ /**
30
+ * Focus `element` without the UI reading it as the user arriving there.
31
+ */
32
+ function focusProgrammatically(element, options) {
33
+ if (!element) return;
34
+ depth++;
35
+ try {
36
+ element.focus(options);
37
+ } finally {
38
+ depth--;
39
+ }
40
+ }
41
+ /**
42
+ * Declare that focus is about to be restored by machinery we cannot wrap, for
43
+ * roughly `duration` ms. Called by a closing overlay.
44
+ */
45
+ function markFocusRestoreWindow(duration) {
46
+ restoreWindowEndsAt = Math.max(restoreWindowEndsAt, Date.now() + duration);
47
+ }
48
+ /**
49
+ * Whether the focus being handled right now is a restoration rather than the
50
+ * user arriving. Only meaningful inside a focus handler.
51
+ */
52
+ function isFocusRestoration() {
53
+ return depth > 0 || Date.now() < restoreWindowEndsAt;
54
+ }
55
+
56
+ //#endregion
57
+ export { focusProgrammatically, isFocusRestoration, markFocusRestoreWindow };
58
+ //# sourceMappingURL=programmaticFocus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"programmaticFocus.js","names":[],"sources":["../../../src/utils/react/programmaticFocus.ts"],"sourcesContent":["/**\n * Telling focus the user moved from focus a component moved for them.\n *\n * Handing focus back to a trigger after its overlay closes is not the same\n * event as a user tabbing onto that trigger, but the DOM cannot tell them\n * apart: `.focus()` produces an ordinary focus event, and the modality is\n * still \"keyboard\" from whatever the user just did, so anything keyed off\n * focus-visible treats it as a deliberate arrival. A trigger's tooltip pops up\n * unasked — and then absorbs the user's next `Escape` from its own\n * document-level listener (CUB-4839).\n *\n * Two mechanisms, because restoration reaches us two ways:\n *\n * - `focusProgrammatically` for restores WE perform. `focus()` dispatches\n * `focus`/`focusin` synchronously, so a flag set around the call is readable\n * by every handler that runs for it and gone immediately afterwards. Exact,\n * with no window to tune.\n *\n * - `markFocusRestoreWindow` for restores React Aria performs. A `FocusScope`\n * restores on unmount, from inside React's own commit, and offers no hook to\n * wrap — so an overlay that is closing declares the window instead. Coarser\n * on purpose: it can only make a tooltip skip one arrival that lands while\n * an overlay is going away, which is the case it exists for.\n */\nlet depth = 0;\nlet restoreWindowEndsAt = 0;\n\n/**\n * Focus `element` without the UI reading it as the user arriving there.\n */\nexport function focusProgrammatically(\n element: HTMLElement | null | undefined,\n options?: FocusOptions,\n) {\n if (!element) return;\n\n depth++;\n\n try {\n element.focus(options);\n } finally {\n depth--;\n }\n}\n\n/**\n * Declare that focus is about to be restored by machinery we cannot wrap, for\n * roughly `duration` ms. Called by a closing overlay.\n */\nexport function markFocusRestoreWindow(duration: number) {\n restoreWindowEndsAt = Math.max(restoreWindowEndsAt, Date.now() + duration);\n}\n\n/**\n * Whether the focus being handled right now is a restoration rather than the\n * user arriving. Only meaningful inside a focus handler.\n */\nexport function isFocusRestoration() {\n return depth > 0 || Date.now() < restoreWindowEndsAt;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAI,QAAQ;AACZ,IAAI,sBAAsB;;;;AAK1B,SAAgB,sBACd,SACA,SACA;AACA,KAAI,CAAC,QAAS;AAEd;AAEA,KAAI;AACF,UAAQ,MAAM,QAAQ;WACd;AACR;;;;;;;AAQJ,SAAgB,uBAAuB,UAAkB;AACvD,uBAAsB,KAAK,IAAI,qBAAqB,KAAK,KAAK,GAAG,SAAS;;;;;;AAO5E,SAAgB,qBAAqB;AACnC,QAAO,QAAQ,KAAK,KAAK,KAAK,GAAG"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/react/resolveIcon.ts
3
3
  /**
4
4
  * Resolves a dynamic icon prop to its content and slot state.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { isDevEnv } from "../is-dev-env.js";
4
4
  import { useSyncExternalStore } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { useCallback, useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useCombinedRefs.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { createSharedStore } from "./sharedStore.js";
3
3
  import { useEffect } from "react";
4
4
  import { useFocusVisible } from "react-aria";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useEventBus.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { useSSRSafeId } from "@react-aria/ssr";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useIsDarwin.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useIsDarwin } from "./useIsDarwin.js";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import * as React$1 from "react";
3
3
 
4
4
  //#region src/utils/react/useLayoutEffect.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useCallback, useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { mergeStyles } from "@tenphi/tasty";
3
3
  import { useMemo } from "react";
4
4
 
@@ -0,0 +1,41 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
+ import { useEvent } from "../../_internal/hooks/use-event.js";
3
+
4
+ //#region src/utils/react/useOverlayEscapeGuard.ts
5
+ /**
6
+ * Stops a CLOSED overlay from answering for `Escape` (CUB-4839).
7
+ *
8
+ * `useOverlay`'s `Escape` handler calls `stopPropagation()` and
9
+ * `preventDefault()` for every `Escape` it sees, and only THEN asks whether
10
+ * this overlay is the topmost one allowed to act on it — unlike
11
+ * `onInteractOutside`, which it gates on `isOpen` up front. An overlay that has
12
+ * already closed therefore consumes the key and does nothing with it, so the
13
+ * `Escape` meant for the Dialog around it closes nothing at all.
14
+ *
15
+ * That is reachable here because our overlays stay mounted for their exit
16
+ * transition while still holding DOM focus: pick an option from a list inside a
17
+ * Dialog and the very next `Escape` lands in the closing list.
18
+ *
19
+ * Passing `useOverlay` an `isKeyboardDismissDisabled` of its own does NOT work,
20
+ * and that is the reason this exists. `DisplayTransition` preserves content
21
+ * across an exit by replaying the children it stored while the overlay was
22
+ * open, so every value that subtree captured — `isKeyboardDismissDisabled`
23
+ * included — stays frozen at its open-state reading for exactly the window
24
+ * this has to guard. `useEvent` gets around it by returning a handler whose
25
+ * identity never changes while its body always runs the latest render's
26
+ * closure, so the frozen copy still sees the current `isOpen`.
27
+ */
28
+ function useOverlayEscapeGuard(overlayProps, isOpen) {
29
+ const onKeyDown = useEvent((event) => {
30
+ if (event.key === "Escape" && !isOpen) return;
31
+ overlayProps.onKeyDown?.(event);
32
+ });
33
+ return {
34
+ ...overlayProps,
35
+ onKeyDown
36
+ };
37
+ }
38
+
39
+ //#endregion
40
+ export { useOverlayEscapeGuard };
41
+ //# sourceMappingURL=useOverlayEscapeGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOverlayEscapeGuard.js","names":[],"sources":["../../../src/utils/react/useOverlayEscapeGuard.ts"],"sourcesContent":["import { useEvent } from '../../_internal';\n\nimport type { DOMAttributes, KeyboardEvent } from 'react';\n\ntype OverlayDOMProps = DOMAttributes<any>;\n\n/**\n * Stops a CLOSED overlay from answering for `Escape` (CUB-4839).\n *\n * `useOverlay`'s `Escape` handler calls `stopPropagation()` and\n * `preventDefault()` for every `Escape` it sees, and only THEN asks whether\n * this overlay is the topmost one allowed to act on it — unlike\n * `onInteractOutside`, which it gates on `isOpen` up front. An overlay that has\n * already closed therefore consumes the key and does nothing with it, so the\n * `Escape` meant for the Dialog around it closes nothing at all.\n *\n * That is reachable here because our overlays stay mounted for their exit\n * transition while still holding DOM focus: pick an option from a list inside a\n * Dialog and the very next `Escape` lands in the closing list.\n *\n * Passing `useOverlay` an `isKeyboardDismissDisabled` of its own does NOT work,\n * and that is the reason this exists. `DisplayTransition` preserves content\n * across an exit by replaying the children it stored while the overlay was\n * open, so every value that subtree captured — `isKeyboardDismissDisabled`\n * included — stays frozen at its open-state reading for exactly the window\n * this has to guard. `useEvent` gets around it by returning a handler whose\n * identity never changes while its body always runs the latest render's\n * closure, so the frozen copy still sees the current `isOpen`.\n */\nexport function useOverlayEscapeGuard<T extends OverlayDOMProps>(\n overlayProps: T,\n isOpen: boolean | undefined,\n): T {\n const onKeyDown = useEvent((event: KeyboardEvent<any>) => {\n // Decline it, so it reaches whoever can actually act on it.\n if (event.key === 'Escape' && !isOpen) return;\n\n overlayProps.onKeyDown?.(event);\n });\n\n return { ...overlayProps, onKeyDown };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAgB,sBACd,cACA,QACG;CACH,MAAM,YAAY,UAAU,UAA8B;AAExD,MAAI,MAAM,QAAQ,YAAY,CAAC,OAAQ;AAEvC,eAAa,YAAY,MAAM;GAC/B;AAEF,QAAO;EAAE,GAAG;EAAc;EAAW"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { EventBusContext, useEventBus } from "./useEventBus.js";
3
3
  import { useCallback, useContext, useEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  //#region src/utils/react/useQaProps.ts
3
3
  /**
4
4
  * Processes QA props.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
2
  import { useSyncExternalStore } from "react";
3
3
 
4
4
  //#region src/utils/react/useScheme.ts