@cube-dev/ui-kit 0.185.0 → 0.185.2

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 (589) hide show
  1. package/dist/CHANGELOG.md +16 -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 +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemActionsWrapper.js +107 -93
  27. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  28. package/dist/components/actions/ItemButton/ItemButton.js +4 -3
  29. package/dist/components/actions/ItemButton/ItemButton.js.map +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.d.ts +7 -0
  61. package/dist/components/content/Item/Item.js +242 -235
  62. package/dist/components/content/Item/Item.js.map +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 +1 -1
  67. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  68. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  69. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  70. package/dist/components/content/Layout/LayoutContent.js +1 -1
  71. package/dist/components/content/Layout/LayoutContext.js +1 -1
  72. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  73. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  74. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  75. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  76. package/dist/components/content/Layout/LayoutPane.js +1 -1
  77. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  78. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  79. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  80. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  81. package/dist/components/content/Layout/index.js +1 -1
  82. package/dist/components/content/Layout/utils.js +1 -1
  83. package/dist/components/content/Paragraph.js +1 -1
  84. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  85. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  86. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  87. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  88. package/dist/components/content/Result/Result.js +1 -1
  89. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  90. package/dist/components/content/Tag/Tag.js +1 -1
  91. package/dist/components/content/Text.d.ts +14 -14
  92. package/dist/components/content/Text.js +1 -1
  93. package/dist/components/content/TextItem/TextItem.js +1 -1
  94. package/dist/components/content/Title.js +1 -1
  95. package/dist/components/content/Tree/Tree.js +1 -1
  96. package/dist/components/content/Tree/TreeNode.js +1 -1
  97. package/dist/components/content/Tree/styled.js +1 -1
  98. package/dist/components/content/Tree/tree-index.js +1 -1
  99. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  100. package/dist/components/content/Tree/use-load-data.js +1 -1
  101. package/dist/components/content/highlightText.js +1 -1
  102. package/dist/components/content/use-auto-tooltip.js +1 -1
  103. package/dist/components/data/DataTable/DataTable.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  105. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  106. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  109. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  110. package/dist/components/data/TableBase/RowCollection.js +1 -1
  111. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  112. package/dist/components/data/TableBase/TableRow.js +1 -1
  113. package/dist/components/data/TableBase/TableView.js +1 -1
  114. package/dist/components/data/TableBase/column-menu.js +1 -1
  115. package/dist/components/data/TableBase/column-tint.js +1 -1
  116. package/dist/components/data/TableBase/row-menu.js +1 -1
  117. package/dist/components/data/TableBase/styled.js +1 -1
  118. package/dist/components/data/TableBase/table-tree.js +1 -1
  119. package/dist/components/data/TableBase/types.js +1 -1
  120. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  121. package/dist/components/data/TableBase/use-column-order.js +1 -1
  122. package/dist/components/data/TableBase/use-container-width.js +1 -1
  123. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  124. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  125. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  126. package/dist/components/data/TableBase/use-table-search.js +1 -1
  127. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  128. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  129. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  130. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  131. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  132. package/dist/components/fields/Checkbox/Checkbox.js +3 -1
  133. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  134. package/dist/components/fields/Checkbox/CheckboxGroup.js +66 -57
  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.js +1 -1
  138. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  139. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  140. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +3 -2
  141. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  142. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  143. package/dist/components/fields/CommandTextArea/CommandTextArea.js +2 -2
  144. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  145. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  146. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  147. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  148. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  149. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  150. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  151. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  152. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  153. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  154. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  155. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  156. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  157. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  158. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  159. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  160. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  161. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  162. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  163. package/dist/components/fields/DatePicker/period.js +1 -1
  164. package/dist/components/fields/DatePicker/props.js +1 -1
  165. package/dist/components/fields/DatePicker/utils.js +1 -1
  166. package/dist/components/fields/FileInput/FileInput.js +1 -1
  167. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  168. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  169. package/dist/components/fields/Input/Input.js +1 -1
  170. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  171. package/dist/components/fields/ListBox/ListBox.js +1 -1
  172. package/dist/components/fields/ListBox/optionId.js +1 -1
  173. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  174. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  175. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  176. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  177. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  178. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  179. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  180. package/dist/components/fields/Picker/Picker.js +1 -1
  181. package/dist/components/fields/RadioGroup/Radio.d.ts +2 -2
  182. package/dist/components/fields/RadioGroup/Radio.js +3 -4
  183. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  184. package/dist/components/fields/RadioGroup/RadioGroup.js +3 -2
  185. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  186. package/dist/components/fields/RadioGroup/context.js +1 -1
  187. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  188. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  189. package/dist/components/fields/Select/Select.js +7 -3
  190. package/dist/components/fields/Select/Select.js.map +1 -1
  191. package/dist/components/fields/Slider/Gradation.js +1 -1
  192. package/dist/components/fields/Slider/HueSlider.js +1 -1
  193. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  194. package/dist/components/fields/Slider/Slider.js +1 -1
  195. package/dist/components/fields/Slider/SliderBase.js +1 -1
  196. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  197. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  198. package/dist/components/fields/Slider/elements.js +1 -1
  199. package/dist/components/fields/Slider/index.js +1 -1
  200. package/dist/components/fields/Switch/Switch.js +107 -98
  201. package/dist/components/fields/Switch/Switch.js.map +1 -1
  202. package/dist/components/fields/TagInput/TagInput.js +1 -1
  203. package/dist/components/fields/TagInput/TagList.js +1 -1
  204. package/dist/components/fields/TextArea/TextArea.js +2 -2
  205. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  206. package/dist/components/fields/TextInput/TextInput.js +1 -1
  207. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  208. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  209. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  210. package/dist/components/fields/TriggerActions.js +1 -1
  211. package/dist/components/fields/color/ColorPanel.js +1 -1
  212. package/dist/components/fields/color/channels.js +1 -1
  213. package/dist/components/fields/color/color.js +1 -1
  214. package/dist/components/fields/color/context.js +1 -1
  215. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  216. package/dist/components/form/Form/Field.js +1 -1
  217. package/dist/components/form/Form/Form.js +11 -1
  218. package/dist/components/form/Form/Form.js.map +1 -1
  219. package/dist/components/form/Form/ModernFormRoot.js +39 -40
  220. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  221. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  222. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  223. package/dist/components/form/Form/SubmitError.js +1 -1
  224. package/dist/components/form/Form/backend.js +1 -1
  225. package/dist/components/form/Form/index.js +1 -1
  226. package/dist/components/form/Form/modern/actions.js +1 -1
  227. package/dist/components/form/Form/modern/context.js +1 -1
  228. package/dist/components/form/Form/modern/controller.js +1 -1
  229. package/dist/components/form/Form/modern/field-binding.js +1 -1
  230. package/dist/components/form/Form/modern/field.js +1 -1
  231. package/dist/components/form/Form/modern/react.js +1 -1
  232. package/dist/components/form/Form/modern/store.js +1 -1
  233. package/dist/components/form/Form/modern/validation.js +1 -1
  234. package/dist/components/form/Form/modern/values.js +1 -1
  235. package/dist/components/form/Form/reset-unbound-controls.js +39 -0
  236. package/dist/components/form/Form/reset-unbound-controls.js.map +1 -0
  237. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  238. package/dist/components/form/Form/use-field/use-field-props.d.ts +14 -2
  239. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  240. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  241. package/dist/components/form/Form/use-field/use-field.js +1 -1
  242. package/dist/components/form/Form/use-form.js +1 -1
  243. package/dist/components/form/Form/validation.js +1 -1
  244. package/dist/components/form/Label.js +1 -1
  245. package/dist/components/form/legacy-tooltip.js +1 -1
  246. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  247. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  248. package/dist/components/form/validation/use-validation-props.js +1 -1
  249. package/dist/components/form/wrapper.js +1 -1
  250. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  251. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  252. package/dist/components/layout/Board/Board.js +1 -1
  253. package/dist/components/layout/Board/BoardProvider.js +1 -1
  254. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  255. package/dist/components/layout/Board/Widget.js +1 -1
  256. package/dist/components/layout/Board/WidgetHost.js +1 -1
  257. package/dist/components/layout/Board/board-context.js +1 -1
  258. package/dist/components/layout/Board/board-store.js +1 -1
  259. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  260. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  261. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  262. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  263. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  264. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  265. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  266. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  267. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  268. package/dist/components/layout/Board/index.js +1 -1
  269. package/dist/components/layout/Board/responsive-utils.js +1 -1
  270. package/dist/components/layout/Board/use-board-layout.js +1 -1
  271. package/dist/components/layout/Board/use-board-registry.js +1 -1
  272. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  273. package/dist/components/layout/Board/use-board-selection.js +1 -1
  274. package/dist/components/layout/Flex.js +1 -1
  275. package/dist/components/layout/Flow.js +1 -1
  276. package/dist/components/layout/Grid.js +1 -1
  277. package/dist/components/layout/Panel.js +1 -1
  278. package/dist/components/layout/Prefix.js +1 -1
  279. package/dist/components/layout/ResizablePanel.js +1 -1
  280. package/dist/components/layout/Space.js +1 -1
  281. package/dist/components/layout/Suffix.js +1 -1
  282. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  283. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  284. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  285. package/dist/components/navigation/Tabs/TabButton.js +3 -2
  286. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  287. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  288. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  289. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  290. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  291. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  292. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  293. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  294. package/dist/components/navigation/Tabs/styled.js +1 -1
  295. package/dist/components/navigation/Tabs/types.d.ts +1 -1
  296. package/dist/components/navigation/Tabs/types.js +1 -1
  297. package/dist/components/navigation/Tabs/types.js.map +1 -1
  298. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  299. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  300. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  301. package/dist/components/other/Calendar/Calendar.js +1 -1
  302. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  303. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  304. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  305. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  306. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  307. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  308. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  309. package/dist/components/other/Calendar/styled.js +1 -1
  310. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  311. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  312. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  313. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  314. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  315. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  316. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  317. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  318. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  319. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  320. package/dist/components/overlays/Dialog/context.js +1 -1
  321. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  322. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  323. package/dist/components/overlays/Modal/Modal.js +1 -1
  324. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  325. package/dist/components/overlays/Modal/Overlay.js +1 -1
  326. package/dist/components/overlays/Modal/Popover.js +1 -1
  327. package/dist/components/overlays/Modal/Tray.js +1 -1
  328. package/dist/components/overlays/Modal/Underlay.js +1 -1
  329. package/dist/components/overlays/Notifications/Notification.js +1 -1
  330. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  331. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  332. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  333. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  334. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  335. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  336. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  337. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  338. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  339. package/dist/components/overlays/Notifications/index.js +1 -1
  340. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  341. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  342. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  343. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  344. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  345. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  346. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  347. package/dist/components/overlays/Toast/index.js +1 -1
  348. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  349. package/dist/components/overlays/Toast/useToast.js +1 -1
  350. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  351. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  352. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  353. package/dist/components/overlays/Tooltip/context.js +1 -1
  354. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  355. package/dist/components/portal/Portal.js +1 -1
  356. package/dist/components/portal/PortalProvider.js +1 -1
  357. package/dist/components/portal/usePortal.js +1 -1
  358. package/dist/components/shared/DraggableCollection.js +1 -1
  359. package/dist/components/shared/InvalidIcon.js +1 -1
  360. package/dist/components/shared/ValidIcon.js +1 -1
  361. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  362. package/dist/components/status/Spin/Cube.js +1 -1
  363. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  364. package/dist/components/status/Spin/Spin.js +1 -1
  365. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  366. package/dist/data/item-themes.js +1 -1
  367. package/dist/data/themes.js +1 -1
  368. package/dist/eslint-plugin/defaults.generated.js +1 -1
  369. package/dist/eslint-plugin/index.js +1 -1
  370. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  371. package/dist/i18n/I18nProvider.js +1 -1
  372. package/dist/i18n/createFormatter.js +1 -1
  373. package/dist/i18n/index.js +1 -1
  374. package/dist/i18n/instance.js +1 -1
  375. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  376. package/dist/i18n/locales/en-US/uikit.js +1 -1
  377. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  378. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  379. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  380. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  381. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  382. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  383. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  384. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  385. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  386. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  387. package/dist/i18n/locales.js +1 -1
  388. package/dist/i18n/useFormatter.js +1 -1
  389. package/dist/i18n/useI18n.js +1 -1
  390. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  391. package/dist/icons/AdjustmentsIcon.js +1 -1
  392. package/dist/icons/AiIcon.js +1 -1
  393. package/dist/icons/AreaChartIcon.js +1 -1
  394. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  395. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  396. package/dist/icons/BackwardIcon.js +1 -1
  397. package/dist/icons/BarChartIcon.js +1 -1
  398. package/dist/icons/BellFilledIcon.js +1 -1
  399. package/dist/icons/BellIcon.js +1 -1
  400. package/dist/icons/BooleanIcon.js +1 -1
  401. package/dist/icons/CalendarEditIcon.js +1 -1
  402. package/dist/icons/CalendarIcon.js +1 -1
  403. package/dist/icons/CaretDownIcon.js +1 -1
  404. package/dist/icons/CaretUpIcon.js +1 -1
  405. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  406. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  407. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  408. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  409. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  410. package/dist/icons/ChartBarLineIcon.js +1 -1
  411. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  412. package/dist/icons/ChartBarStackedIcon.js +1 -1
  413. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  414. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  415. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  416. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  417. package/dist/icons/ChartBubbleIcon.js +1 -1
  418. package/dist/icons/ChartDonut2Icon.js +1 -1
  419. package/dist/icons/ChartFunnelIcon.js +1 -1
  420. package/dist/icons/ChartHeatmapIcon.js +1 -1
  421. package/dist/icons/ChartKPIIcon.js +1 -1
  422. package/dist/icons/ChartPie2Icon.js +1 -1
  423. package/dist/icons/ChartScatterIcon.js +1 -1
  424. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  425. package/dist/icons/CheckCircleIcon.js +1 -1
  426. package/dist/icons/CheckIcon.js +1 -1
  427. package/dist/icons/CircleFilledIcon.js +1 -1
  428. package/dist/icons/ClearIcon.js +1 -1
  429. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  430. package/dist/icons/CloseCircleIcon.js +1 -1
  431. package/dist/icons/CloseIcon.js +1 -1
  432. package/dist/icons/CodeIcon.js +1 -1
  433. package/dist/icons/ColumnTotalIcon.js +1 -1
  434. package/dist/icons/CopyIcon.js +1 -1
  435. package/dist/icons/CountIcon.js +1 -1
  436. package/dist/icons/CubeIcon.js +1 -1
  437. package/dist/icons/CubePauseIcon.js +1 -1
  438. package/dist/icons/CubePlayIcon.js +1 -1
  439. package/dist/icons/CurrencyDollarIcon.js +1 -1
  440. package/dist/icons/DangerIcon.js +1 -1
  441. package/dist/icons/DashboardIcon.js +1 -1
  442. package/dist/icons/DatabaseIcon.js +1 -1
  443. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  444. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  445. package/dist/icons/DirectionIcon.js +1 -1
  446. package/dist/icons/DonutIcon.js +1 -1
  447. package/dist/icons/DownIcon.js +1 -1
  448. package/dist/icons/EditIcon.js +1 -1
  449. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  450. package/dist/icons/ExclamationCircleIcon.js +1 -1
  451. package/dist/icons/ExclamationIcon.js +1 -1
  452. package/dist/icons/EyeIcon.js +1 -1
  453. package/dist/icons/EyeInvisibleIcon.js +1 -1
  454. package/dist/icons/FilterIcon.js +1 -1
  455. package/dist/icons/FolderFilledIcon.js +1 -1
  456. package/dist/icons/FolderIcon.js +1 -1
  457. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  458. package/dist/icons/FolderOpenIcon.js +1 -1
  459. package/dist/icons/ForwardIcon.js +1 -1
  460. package/dist/icons/GripVerticalIcon.js +1 -1
  461. package/dist/icons/HierarchyIcon.js +1 -1
  462. package/dist/icons/HierarchyOpenIcon.js +1 -1
  463. package/dist/icons/Icon.js +1 -1
  464. package/dist/icons/InfoCircleIcon.js +1 -1
  465. package/dist/icons/InfoIcon.js +1 -1
  466. package/dist/icons/KeyIcon.js +1 -1
  467. package/dist/icons/LeftIcon.js +1 -1
  468. package/dist/icons/LineChartIcon.js +1 -1
  469. package/dist/icons/LoadingIcon.js +1 -1
  470. package/dist/icons/LockFilledIcon.js +1 -1
  471. package/dist/icons/LockIcon.js +1 -1
  472. package/dist/icons/MoreIcon.js +1 -1
  473. package/dist/icons/NotAllowedIcon.js +1 -1
  474. package/dist/icons/Number123Icon.js +1 -1
  475. package/dist/icons/NumberIcon.js +1 -1
  476. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  477. package/dist/icons/PauseCircleIcon.js +1 -1
  478. package/dist/icons/PauseIcon.js +1 -1
  479. package/dist/icons/PercentageIcon.js +1 -1
  480. package/dist/icons/PieChartIcon.js +1 -1
  481. package/dist/icons/PipetteIcon.js +1 -1
  482. package/dist/icons/PlayCircleIcon.js +1 -1
  483. package/dist/icons/PlayIcon.js +1 -1
  484. package/dist/icons/PlusIcon.js +1 -1
  485. package/dist/icons/ProgressBarIcon.js +1 -1
  486. package/dist/icons/ReloadIcon.js +1 -1
  487. package/dist/icons/ReportIcon.js +1 -1
  488. package/dist/icons/ReturnIcon.js +1 -1
  489. package/dist/icons/RightIcon.js +1 -1
  490. package/dist/icons/RowTotalsIcon.js +1 -1
  491. package/dist/icons/SchemeIcon.js +1 -1
  492. package/dist/icons/SearchIcon.js +1 -1
  493. package/dist/icons/SemanticQueryIcon.js +1 -1
  494. package/dist/icons/SettingsIcon.js +1 -1
  495. package/dist/icons/ShieldFilledIcon.js +1 -1
  496. package/dist/icons/ShieldIcon.js +1 -1
  497. package/dist/icons/SlashIcon.js +1 -1
  498. package/dist/icons/SparklesIcon.js +1 -1
  499. package/dist/icons/SqlIcon.js +1 -1
  500. package/dist/icons/StatsIcon.js +1 -1
  501. package/dist/icons/StopIcon.js +1 -1
  502. package/dist/icons/StringIcon.js +1 -1
  503. package/dist/icons/SubtotalsIcon.js +1 -1
  504. package/dist/icons/SwitchIcon.js +1 -1
  505. package/dist/icons/TableIcon.js +1 -1
  506. package/dist/icons/ThumbsDownIcon.js +1 -1
  507. package/dist/icons/ThumbsUpIcon.js +1 -1
  508. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  509. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  510. package/dist/icons/ThunderboltIcon.js +1 -1
  511. package/dist/icons/TimeIcon.js +1 -1
  512. package/dist/icons/TrashIcon.js +1 -1
  513. package/dist/icons/UnlockIcon.js +1 -1
  514. package/dist/icons/UpIcon.js +1 -1
  515. package/dist/icons/UserGroupIcon.js +1 -1
  516. package/dist/icons/UserIcon.js +1 -1
  517. package/dist/icons/UserLockIcon.js +1 -1
  518. package/dist/icons/ViewIcon.js +1 -1
  519. package/dist/icons/WarningFilledIcon.js +1 -1
  520. package/dist/icons/WarningIcon.js +1 -1
  521. package/dist/icons/wrap-icon.js +1 -1
  522. package/dist/index.js +1 -1
  523. package/dist/probe/canonicalize.js +1 -1
  524. package/dist/probe/css.js +1 -1
  525. package/dist/probe/index.js +1 -1
  526. package/dist/provider.js +1 -1
  527. package/dist/providers/TrackingProvider.js +1 -1
  528. package/dist/providers/navigationAdapter.default.js +1 -1
  529. package/dist/tokens/all-tokens.js +1 -1
  530. package/dist/tokens/base.js +1 -1
  531. package/dist/tokens/color-seed.js +1 -1
  532. package/dist/tokens/color-theme.js +1 -1
  533. package/dist/tokens/colors.js +1 -1
  534. package/dist/tokens/layout.js +1 -1
  535. package/dist/tokens/lazy-styles.js +1 -1
  536. package/dist/tokens/legacy-color.js +1 -1
  537. package/dist/tokens/palette-config.js +1 -1
  538. package/dist/tokens/palette.js +1 -1
  539. package/dist/tokens/resolve.js +1 -1
  540. package/dist/tokens/shadows.js +1 -1
  541. package/dist/tokens/sizes.js +1 -1
  542. package/dist/tokens/spacing.js +1 -1
  543. package/dist/tokens/typography.js +1 -1
  544. package/dist/utils/ResizeSensor.js +1 -1
  545. package/dist/utils/colors.js +1 -1
  546. package/dist/utils/dotize.js +1 -1
  547. package/dist/utils/is-dev-env.js +1 -1
  548. package/dist/utils/modules.js +1 -1
  549. package/dist/utils/promise.js +1 -1
  550. package/dist/utils/raf.js +1 -1
  551. package/dist/utils/random.js +1 -1
  552. package/dist/utils/range.js +1 -1
  553. package/dist/utils/react/RenderCache.js +1 -1
  554. package/dist/utils/react/Slots.js +1 -1
  555. package/dist/utils/react/chain.js +1 -1
  556. package/dist/utils/react/disabledProps.js +1 -1
  557. package/dist/utils/react/escapePropagation.js +1 -1
  558. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  559. package/dist/utils/react/index.js +1 -1
  560. package/dist/utils/react/interactions.js +1 -1
  561. package/dist/utils/react/isTextOnly.js +1 -1
  562. package/dist/utils/react/mapProps.js +1 -1
  563. package/dist/utils/react/mergeProps.js +1 -1
  564. package/dist/utils/react/nullableValue.js +1 -1
  565. package/dist/utils/react/programmaticFocus.js +1 -1
  566. package/dist/utils/react/resolveIcon.js +1 -1
  567. package/dist/utils/react/sharedStore.js +1 -1
  568. package/dist/utils/react/useBufferedValue.js +1 -1
  569. package/dist/utils/react/useCombinedRefs.js +1 -1
  570. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  571. package/dist/utils/react/useEventBus.js +1 -1
  572. package/dist/utils/react/useId.js +1 -1
  573. package/dist/utils/react/useIsDarwin.js +1 -1
  574. package/dist/utils/react/useKeySymbols.js +1 -1
  575. package/dist/utils/react/useLayoutEffect.js +1 -1
  576. package/dist/utils/react/useLocalStorage.js +1 -1
  577. package/dist/utils/react/useMergeStyles.js +1 -1
  578. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  579. package/dist/utils/react/usePopoverSync.js +1 -1
  580. package/dist/utils/react/useQaProps.js +1 -1
  581. package/dist/utils/react/useScheme.js +1 -1
  582. package/dist/utils/react/useViewportSize.js +1 -1
  583. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  584. package/dist/utils/selection.js +1 -1
  585. package/dist/utils/styles.js +1 -1
  586. package/dist/utils/tree.js +1 -1
  587. package/dist/utils/warnings.js +1 -1
  588. package/dist/version.js +2 -2
  589. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","names":["useFocusableRef","BaseProps","BLOCK_STYLES","BlockStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","forwardRef","useRef","AriaSwitchProps","useHover","useSwitch","useToggleState","LoadingIcon","FieldBaseProps","ToggleSelectionProps","mergeProps","useFocus","castNullableIsSelected","WithNullableSelected","useId","extractStyles","Text","getValidationMods","useFieldProps","wrapWithField","HiddenInput","SwitchWrapperElement","as","styles","display","position","placeItems","gap","width","color","SwitchElement","qa","boxSizing","verticalAlign","placeSelf","radius","fill","checked","disabled","border","invalid","valid","height","outline","focused","outlineOffset","transition","cursor","Thumb","top","left","PROP_STYLES","CubeSwitchProps","form","name","inputStyles","isLoading","size","Switch","props","ref","$","_c","t0","t1","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","isDisabled","t2","children","label","insideForm","labelPosition","isInvalid","isValid","t3","undefined","id","t4","t5","isFocused","focusProps","t6","hoverProps","isHovered","inputRef","domRef","inputProps","t7","t8","t9","t10","hovered","mods","t11","t12","t13","t14","t15","t16","t17","t18","switchField","t19","labelProps","value","onChange","isSelected","isIndeterminate","_Switch","cubeInputType","displayName"],"sources":["../../../../src/components/fields/Switch/Switch.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport {\n BaseProps,\n BLOCK_STYLES,\n BlockStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef, useRef } from 'react';\nimport { AriaSwitchProps, useHover, useSwitch } from 'react-aria';\nimport { useToggleState } from 'react-stately';\n\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { FieldBaseProps, ToggleSelectionProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport {\n castNullableIsSelected,\n WithNullableSelected,\n} from '../../../utils/react/nullableValue';\nimport { useId } from '../../../utils/react/useId';\nimport { extractStyles } from '../../../utils/styles';\nimport { Text } from '../../content/Text';\nimport { getValidationMods, useFieldProps, wrapWithField } from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\n\nconst SwitchWrapperElement = tasty({\n as: 'label',\n styles: {\n display: 'flex',\n position: 'relative',\n placeItems: {\n '': 'center stretch',\n 'side-label': 'baseline stretch',\n },\n gap: '1x',\n width: 'max max-content',\n color: '#dark-02',\n },\n});\n\nconst SwitchElement = tasty({\n qa: 'Switch',\n styles: {\n boxSizing: 'border-box',\n position: 'relative',\n verticalAlign: 'baseline',\n placeSelf: 'center',\n radius: 'round',\n fill: {\n '': '#surface',\n checked: '#primary',\n 'invalid & checked': '#danger',\n 'valid & checked': '#success',\n disabled: '#border.5',\n 'disabled & checked': '#border',\n },\n color: {\n '': '#dark-03',\n checked: '#white',\n },\n border: {\n '': '#dark-05',\n checked: '#primary-text',\n disabled: '#dark-05.5',\n invalid: '#danger',\n valid: '#success',\n },\n width: {\n '': '5x 5x',\n 'size=medium': '4x 4x',\n 'size=small': '3x 3x',\n },\n height: {\n '': '3x 3x',\n 'size=medium': '2.5x 2.5x',\n 'size=small': '2x 2x',\n },\n outline: {\n '': '#primary-text.0',\n focused: '1bw #primary-text',\n },\n outlineOffset: 1,\n transition: 'theme',\n cursor: '$pointer',\n\n Thumb: {\n position: 'absolute',\n width: {\n '': '2x 2x',\n 'size=medium': '1.5x 1.5x',\n 'size=small': '1.25x 1.25x',\n },\n height: {\n '': '2x 2x',\n 'size=medium': '1.5x 1.5x',\n 'size=small': '1.25x 1.25x',\n },\n radius: 'round',\n fill: {\n '': '#current',\n disabled: '#current.5',\n 'disabled & checked': '#white.8',\n },\n top: {\n '': '.375x',\n 'size=medium': '.375x',\n 'size=small': '.25x',\n },\n left: {\n '': '.375x',\n 'size=medium': '.375x',\n 'size=small': '.25x',\n checked: '2.25x',\n 'checked & size=medium': '1.75x',\n 'checked & size=small': '1.25x',\n },\n transition: 'left, theme',\n cursor: '$pointer',\n },\n },\n});\n\nconst PROP_STYLES = [...OUTER_STYLES, ...BLOCK_STYLES];\n\nexport interface CubeSwitchProps\n extends BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n FieldBaseProps<boolean | null | undefined>,\n ToggleSelectionProps,\n AriaSwitchProps {\n /** The form instance; redeclared for the same reason as in `Checkbox`. */\n form?: FieldBaseProps['form'];\n /** Field name; modern forms also accept nested tuple paths. */\n name?: FieldBaseProps['name'];\n inputStyles?: Styles;\n isLoading?: boolean;\n size?: 'large' | 'medium' | 'small';\n}\n\nfunction Switch(props: WithNullableSelected<CubeSwitchProps>, ref) {\n props = castNullableIsSelected(props);\n props = useFieldProps(props, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n isSelected: value != null ? value : false,\n isIndeterminate: false,\n onChange: onChange,\n }),\n });\n\n let {\n qa,\n isDisabled = false,\n children,\n label,\n insideForm,\n isLoading,\n labelPosition,\n inputStyles,\n isInvalid,\n isValid,\n size = 'medium',\n form,\n } = props;\n\n const id = useId(props.id);\n\n let styles = extractStyles(props, PROP_STYLES);\n\n let { isFocused, focusProps } = useFocus({ isDisabled }, true);\n let { hoverProps, isHovered } = useHover({ isDisabled });\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n let { inputProps } = useSwitch(props, useToggleState(props), inputRef);\n\n const mods = {\n checked: inputProps.checked,\n disabled: isDisabled,\n hovered: isHovered,\n focused: isFocused,\n ...getValidationMods({ isInvalid, isValid }),\n 'inside-form': insideForm,\n 'side-label': labelPosition === 'side',\n };\n\n const switchField = (\n <SwitchWrapperElement\n qa=\"SwitchWrapper\"\n mods={mods}\n data-size={size}\n styles={styles}\n {...hoverProps}\n >\n <HiddenInput\n qa={qa || 'Switch'}\n data-input-type=\"switch\"\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n id={id}\n />\n <SwitchElement mods={mods} data-size={size} styles={inputStyles}>\n <div data-element=\"Thumb\" aria-hidden=\"true\" />\n </SwitchElement>\n {children ? <Text nowrap>{children}</Text> : null}\n {isLoading ? (\n <>\n {label ? <>&nbsp;</> : null}\n <LoadingIcon />\n </>\n ) : null}\n </SwitchWrapperElement>\n );\n\n return wrapWithField(switchField, domRef, {\n ...props,\n id,\n labelProps: {\n ...props.labelProps,\n for: id,\n },\n children: null,\n inputStyles,\n });\n}\n\n/**\n * Switches allow users to turn an individual option on or off.\n * They are usually used to activate or deactivate a specific setting.\n */\nlet _Switch = forwardRef(Switch);\n\n(_Switch as any).cubeInputType = 'Checkbox';\n_Switch.displayName = 'Switch';\n\nexport { _Switch as Switch };\nexport type { AriaSwitchProps };\nexport { useSwitch };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Switch.js","names":["useFocusableRef","BaseProps","BLOCK_STYLES","BlockStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","forwardRef","useRef","AriaSwitchProps","useHover","useSwitch","useToggleState","LoadingIcon","FieldBaseProps","ToggleSelectionProps","mergeProps","useFocus","castNullableIsSelected","WithNullableSelected","useId","extractStyles","Text","getValidationMods","useFieldProps","wrapWithField","HiddenInput","SwitchWrapperElement","as","styles","display","position","placeItems","gap","width","color","SwitchElement","qa","boxSizing","verticalAlign","placeSelf","radius","fill","checked","disabled","border","invalid","valid","height","outline","focused","outlineOffset","transition","cursor","Thumb","top","left","PROP_STYLES","CubeSwitchProps","form","name","inputStyles","isLoading","size","Switch","props","ref","$","_c","t0","t1","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","isDisabled","t2","children","label","insideForm","labelPosition","isInvalid","isValid","t3","undefined","id","t4","t5","isFocused","focusProps","t6","hoverProps","isHovered","inputRef","domRef","t7","inputProps","t8","t9","t10","t11","hovered","mods","t12","t13","t14","t15","t16","t17","t18","t19","switchField","t20","labelProps","value","onChange","isSelected","isIndeterminate","_Switch","cubeInputType","displayName"],"sources":["../../../../src/components/fields/Switch/Switch.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport {\n BaseProps,\n BLOCK_STYLES,\n BlockStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef, useRef } from 'react';\nimport { AriaSwitchProps, useHover, useSwitch } from 'react-aria';\nimport { useToggleState } from 'react-stately';\n\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { FieldBaseProps, ToggleSelectionProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport {\n castNullableIsSelected,\n WithNullableSelected,\n} from '../../../utils/react/nullableValue';\nimport { useId } from '../../../utils/react/useId';\nimport { extractStyles } from '../../../utils/styles';\nimport { Text } from '../../content/Text';\nimport { getValidationMods, useFieldProps, wrapWithField } from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\n\nconst SwitchWrapperElement = tasty({\n as: 'label',\n styles: {\n display: 'flex',\n position: 'relative',\n placeItems: {\n '': 'center stretch',\n 'side-label': 'baseline stretch',\n },\n gap: '1x',\n width: 'max max-content',\n color: '#dark-02',\n },\n});\n\nconst SwitchElement = tasty({\n qa: 'Switch',\n styles: {\n boxSizing: 'border-box',\n position: 'relative',\n verticalAlign: 'baseline',\n placeSelf: 'center',\n radius: 'round',\n fill: {\n '': '#surface',\n checked: '#primary',\n 'invalid & checked': '#danger',\n 'valid & checked': '#success',\n disabled: '#border.5',\n 'disabled & checked': '#border',\n },\n color: {\n '': '#dark-03',\n checked: '#white',\n },\n border: {\n '': '#dark-05',\n checked: '#primary-text',\n disabled: '#dark-05.5',\n invalid: '#danger',\n valid: '#success',\n },\n width: {\n '': '5x 5x',\n 'size=medium': '4x 4x',\n 'size=small': '3x 3x',\n },\n height: {\n '': '3x 3x',\n 'size=medium': '2.5x 2.5x',\n 'size=small': '2x 2x',\n },\n outline: {\n '': '#primary-text.0',\n focused: '1bw #primary-text',\n },\n outlineOffset: 1,\n transition: 'theme',\n cursor: '$pointer',\n\n Thumb: {\n position: 'absolute',\n width: {\n '': '2x 2x',\n 'size=medium': '1.5x 1.5x',\n 'size=small': '1.25x 1.25x',\n },\n height: {\n '': '2x 2x',\n 'size=medium': '1.5x 1.5x',\n 'size=small': '1.25x 1.25x',\n },\n radius: 'round',\n fill: {\n '': '#current',\n disabled: '#current.5',\n 'disabled & checked': '#white.8',\n },\n top: {\n '': '.375x',\n 'size=medium': '.375x',\n 'size=small': '.25x',\n },\n left: {\n '': '.375x',\n 'size=medium': '.375x',\n 'size=small': '.25x',\n checked: '2.25x',\n 'checked & size=medium': '1.75x',\n 'checked & size=small': '1.25x',\n },\n transition: 'left, theme',\n cursor: '$pointer',\n },\n },\n});\n\nconst PROP_STYLES = [...OUTER_STYLES, ...BLOCK_STYLES];\n\nexport interface CubeSwitchProps\n extends BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n FieldBaseProps<boolean | null | undefined>,\n ToggleSelectionProps,\n AriaSwitchProps {\n /** The form instance; redeclared for the same reason as in `Checkbox`. */\n form?: FieldBaseProps['form'];\n /** Field name; modern forms also accept nested tuple paths. */\n name?: FieldBaseProps['name'];\n inputStyles?: Styles;\n isLoading?: boolean;\n size?: 'large' | 'medium' | 'small';\n}\n\nfunction Switch(props: WithNullableSelected<CubeSwitchProps>, ref) {\n props = castNullableIsSelected(props);\n props = useFieldProps(props, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n isSelected: value != null ? value : false,\n isIndeterminate: false,\n onChange: onChange,\n }),\n });\n\n let {\n qa,\n isDisabled = false,\n children,\n label,\n insideForm,\n isLoading,\n labelPosition,\n inputStyles,\n isInvalid,\n isValid,\n size = 'medium',\n form,\n } = props;\n\n const id = useId(props.id);\n\n let styles = extractStyles(props, PROP_STYLES);\n\n let { isFocused, focusProps } = useFocus({ isDisabled }, true);\n let { hoverProps, isHovered } = useHover({ isDisabled });\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n // React Aria writes `form` onto the input as the id of its `<form>`, so the\n // form instance would render as `form=\"[object Object]\"` and detach it.\n let { inputProps } = useSwitch(\n { ...props, form: undefined },\n useToggleState(props),\n inputRef,\n );\n\n const mods = {\n checked: inputProps.checked,\n disabled: isDisabled,\n hovered: isHovered,\n focused: isFocused,\n ...getValidationMods({ isInvalid, isValid }),\n 'inside-form': insideForm,\n 'side-label': labelPosition === 'side',\n };\n\n const switchField = (\n <SwitchWrapperElement\n qa=\"SwitchWrapper\"\n mods={mods}\n data-size={size}\n styles={styles}\n {...hoverProps}\n >\n <HiddenInput\n qa={qa || 'Switch'}\n data-input-type=\"switch\"\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n id={id}\n />\n <SwitchElement mods={mods} data-size={size} styles={inputStyles}>\n <div data-element=\"Thumb\" aria-hidden=\"true\" />\n </SwitchElement>\n {children ? <Text nowrap>{children}</Text> : null}\n {isLoading ? (\n <>\n {label ? <>&nbsp;</> : null}\n <LoadingIcon />\n </>\n ) : null}\n </SwitchWrapperElement>\n );\n\n return wrapWithField(switchField, domRef, {\n ...props,\n id,\n labelProps: {\n ...props.labelProps,\n for: id,\n },\n children: null,\n inputStyles,\n });\n}\n\n/**\n * Switches allow users to turn an individual option on or off.\n * They are usually used to activate or deactivate a specific setting.\n */\nlet _Switch = forwardRef(Switch);\n\n(_Switch as any).cubeInputType = 'Checkbox';\n_Switch.displayName = 'Switch';\n\nexport { _Switch as Switch };\nexport type { AriaSwitchProps };\nexport { useSwitch };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { chain } from "../../../utils/react/chain.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useBufferedValue } from "../../../utils/react/useBufferedValue.js";
@@ -30,7 +30,7 @@ function TextArea(props, ref) {
30
30
  $[2] = t1;
31
31
  } else t1 = $[2];
32
32
  props = useFieldProps(props, t1);
33
- const { autoSize: t2, isDisabled: t3, isReadOnly: t4, isRequired: t5, onChange: onChange_0, maxRows: t6, rows: t7, labelProps: userLabelProps, inputProps: userInputProps, inputRef: propsInputRef, value: value_0, isBuffered, ...otherProps } = props;
33
+ const { autoSize: t2, isDisabled: t3, isReadOnly: t4, isRequired: t5, onChange: onChange_0, maxRows: t6, rows: t7, labelProps: userLabelProps, inputProps: userInputProps, inputRef: propsInputRef, value: value_0, form, isBuffered, ...otherProps } = props;
34
34
  const autoSize = t2 === void 0 ? false : t2;
35
35
  const isDisabled = t3 === void 0 ? false : t3;
36
36
  const isReadOnly = t4 === void 0 ? false : t4;
@@ -1 +1 @@
1
- {"version":3,"file":"TextArea.js","names":["ForwardedRef","forwardRef","useRef","useTextField","chain","mergeProps","useBufferedValue","castNullableStringValue","WithNullableValue","useFieldProps","CubeBufferedValueProps","CubeTextInputBaseProps","TextInputBase","useAutoSizeTextArea","FieldBaseProps","CubeTextAreaProps","field","autoSize","maxRows","rows","TextArea","props","ref","$","_c","t0","t1","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","t2","isDisabled","t3","isReadOnly","t4","isRequired","t5","onChange","onChange_0","t6","t7","labelProps","userLabelProps","inputProps","userInputProps","inputRef","propsInputRef","value","value_0","isBuffered","otherProps","undefined","Math","max","localInputRef","t8","buffered","t9","adjustHeight","t10","t11","t12","onBlur","reset","t13","inputElementType","t14","mergedLabelProps","t15","t16","toString","_TextArea","cubeInputType","displayName"],"sources":["../../../../src/components/fields/TextArea/TextArea.tsx"],"sourcesContent":["import { ForwardedRef, forwardRef, useRef } from 'react';\nimport { useTextField } from 'react-aria';\n\nimport { chain, mergeProps, useBufferedValue } from '../../../utils/react';\nimport {\n castNullableStringValue,\n WithNullableValue,\n} from '../../../utils/react/nullableValue';\nimport { useFieldProps } from '../../form';\nimport {\n CubeBufferedValueProps,\n CubeTextInputBaseProps,\n TextInputBase,\n} from '../TextInput';\nimport { useAutoSizeTextArea } from '../TextInput/useAutoSizeTextArea';\n\nimport type { FieldBaseProps } from '../../../shared/form';\n\nexport interface CubeTextAreaProps\n extends CubeTextInputBaseProps,\n CubeBufferedValueProps {\n field?: FieldBaseProps<string | null | undefined>['field'];\n /** Whether the textarea should change its size depends on the content */\n autoSize?: boolean;\n /** Max number of visible rows when autoSize is `true`. Defaults to 10 */\n maxRows?: number;\n /** The `rows` attribute in HTML is used to specify the number of visible text lines for the\n * control i.e. the number of rows to display. Defaults to 3 */\n rows?: number;\n}\n\nfunction TextArea(\n props: WithNullableValue<CubeTextAreaProps>,\n ref: ForwardedRef<HTMLElement>,\n) {\n props = castNullableStringValue(props);\n props = useFieldProps(props, {\n defaultValidationTrigger: 'onBlur',\n valuePropsMapper: ({ value, onChange }) => ({\n onChange,\n value: value?.toString() ?? '',\n }),\n });\n let {\n autoSize = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n onChange,\n maxRows = 10,\n rows = 3,\n labelProps: userLabelProps,\n inputProps: userInputProps,\n inputRef: propsInputRef,\n value,\n isBuffered,\n ...otherProps\n } = props;\n\n rows = Math.max(rows, 1);\n maxRows = Math.max(maxRows, rows);\n\n let localInputRef = useRef<HTMLTextAreaElement>(null);\n let inputRef = propsInputRef ?? localInputRef;\n\n // Hold the typed text locally until the controlled value catches up — see `useBufferedValue`.\n const buffered = useBufferedValue(value, onChange, {\n isBuffered,\n isDisabled,\n isReadOnly,\n });\n\n const adjustHeight = useAutoSizeTextArea({\n inputRef,\n autoSize,\n rows,\n maxRows,\n // Keyed on the rendered value, not the prop, so a buffered draft is measured.\n value: buffered.value,\n });\n\n let { labelProps, inputProps } = useTextField(\n {\n ...otherProps,\n value: buffered.value,\n isDisabled,\n isReadOnly,\n isRequired,\n onChange: chain(buffered.onChange, adjustHeight),\n onBlur: chain(otherProps.onBlur, buffered.reset),\n inputElementType: 'textarea',\n },\n inputRef,\n );\n\n // Merge user-provided labelProps with aria labelProps\n const mergedLabelProps = mergeProps(labelProps, userLabelProps);\n\n return (\n <TextInputBase\n ref={ref}\n {...otherProps}\n multiLine\n inputRef={inputRef}\n labelProps={mergedLabelProps}\n inputProps={mergeProps(\n inputProps,\n { 'data-input-type': 'textarea' },\n userInputProps,\n )}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n rows={rows}\n />\n );\n}\n\n/**\n * TextInputs are text inputs that allow users to input custom text entries\n * with a keyboard. Various decorations can be displayed around the field to\n * communicate the entry requirements.\n */\nconst _TextArea = forwardRef(TextArea);\n\n(_TextArea as any).cubeInputType = 'Text';\n_TextArea.displayName = 'TextArea';\n\nexport { _TextArea as TextArea };\n"],"mappings":"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"}
1
+ {"version":3,"file":"TextArea.js","names":["ForwardedRef","forwardRef","useRef","useTextField","chain","mergeProps","useBufferedValue","castNullableStringValue","WithNullableValue","useFieldProps","CubeBufferedValueProps","CubeTextInputBaseProps","TextInputBase","useAutoSizeTextArea","FieldBaseProps","CubeTextAreaProps","field","autoSize","maxRows","rows","TextArea","props","ref","$","_c","t0","t1","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","t2","isDisabled","t3","isReadOnly","t4","isRequired","t5","onChange","onChange_0","t6","t7","labelProps","userLabelProps","inputProps","userInputProps","inputRef","propsInputRef","value","value_0","form","isBuffered","otherProps","undefined","Math","max","localInputRef","t8","buffered","t9","adjustHeight","t10","t11","t12","onBlur","reset","t13","inputElementType","t14","mergedLabelProps","t15","t16","toString","_TextArea","cubeInputType","displayName"],"sources":["../../../../src/components/fields/TextArea/TextArea.tsx"],"sourcesContent":["import { ForwardedRef, forwardRef, useRef } from 'react';\nimport { useTextField } from 'react-aria';\n\nimport { chain, mergeProps, useBufferedValue } from '../../../utils/react';\nimport {\n castNullableStringValue,\n WithNullableValue,\n} from '../../../utils/react/nullableValue';\nimport { useFieldProps } from '../../form';\nimport {\n CubeBufferedValueProps,\n CubeTextInputBaseProps,\n TextInputBase,\n} from '../TextInput';\nimport { useAutoSizeTextArea } from '../TextInput/useAutoSizeTextArea';\n\nimport type { FieldBaseProps } from '../../../shared/form';\n\nexport interface CubeTextAreaProps\n extends CubeTextInputBaseProps,\n CubeBufferedValueProps {\n field?: FieldBaseProps<string | null | undefined>['field'];\n /** Whether the textarea should change its size depends on the content */\n autoSize?: boolean;\n /** Max number of visible rows when autoSize is `true`. Defaults to 10 */\n maxRows?: number;\n /** The `rows` attribute in HTML is used to specify the number of visible text lines for the\n * control i.e. the number of rows to display. Defaults to 3 */\n rows?: number;\n}\n\nfunction TextArea(\n props: WithNullableValue<CubeTextAreaProps>,\n ref: ForwardedRef<HTMLElement>,\n) {\n props = castNullableStringValue(props);\n props = useFieldProps(props, {\n defaultValidationTrigger: 'onBlur',\n valuePropsMapper: ({ value, onChange }) => ({\n onChange,\n value: value?.toString() ?? '',\n }),\n });\n let {\n autoSize = false,\n isDisabled = false,\n isReadOnly = false,\n isRequired = false,\n onChange,\n maxRows = 10,\n rows = 3,\n labelProps: userLabelProps,\n inputProps: userInputProps,\n inputRef: propsInputRef,\n value,\n // The form instance, not the DOM `form` id `useTextField` forwards.\n form,\n isBuffered,\n ...otherProps\n } = props;\n\n rows = Math.max(rows, 1);\n maxRows = Math.max(maxRows, rows);\n\n let localInputRef = useRef<HTMLTextAreaElement>(null);\n let inputRef = propsInputRef ?? localInputRef;\n\n // Hold the typed text locally until the controlled value catches up — see `useBufferedValue`.\n const buffered = useBufferedValue(value, onChange, {\n isBuffered,\n isDisabled,\n isReadOnly,\n });\n\n const adjustHeight = useAutoSizeTextArea({\n inputRef,\n autoSize,\n rows,\n maxRows,\n // Keyed on the rendered value, not the prop, so a buffered draft is measured.\n value: buffered.value,\n });\n\n let { labelProps, inputProps } = useTextField(\n {\n ...otherProps,\n value: buffered.value,\n isDisabled,\n isReadOnly,\n isRequired,\n onChange: chain(buffered.onChange, adjustHeight),\n onBlur: chain(otherProps.onBlur, buffered.reset),\n inputElementType: 'textarea',\n },\n inputRef,\n );\n\n // Merge user-provided labelProps with aria labelProps\n const mergedLabelProps = mergeProps(labelProps, userLabelProps);\n\n return (\n <TextInputBase\n ref={ref}\n {...otherProps}\n multiLine\n inputRef={inputRef}\n labelProps={mergedLabelProps}\n inputProps={mergeProps(\n inputProps,\n { 'data-input-type': 'textarea' },\n userInputProps,\n )}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n rows={rows}\n />\n );\n}\n\n/**\n * TextInputs are text inputs that allow users to input custom text entries\n * with a keyboard. Various decorations can be displayed around the field to\n * communicate the entry requirements.\n */\nconst _TextArea = forwardRef(TextArea);\n\n(_TextArea as any).cubeInputType = 'Text';\n_TextArea.displayName = 'TextArea';\n\nexport { _TextArea as TextArea };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { chain } from "../../../utils/react/chain.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useBufferedValue } from "../../../utils/react/useBufferedValue.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useEffect, useLayoutEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { ItemActionIcon } from "../actions/ItemActionsWrapper.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { Fragment, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { formatColor, getContrastingColor, toHex } from "./color.js";
4
4
  import { CHANNELS, COLOR_SPACES, COLOR_SPACE_HINTS, COLOR_SPACE_LABELS } from "./channels.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { maxChroma, normalizeHue, oklchToOkhsl } from "../../../utils/colors.js";
3
3
  import { fromOkhst, fromRgb, isAchromatic, toHex, toOkhst, toOklch, toRgb } from "./color.js";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { anyNaN, clamp, maxChroma, normalizeHue, oklchToOkhsl, parseColorFunction, readComponent, readHue, rgbFromSrgb } from "../../../utils/colors.js";
3
3
  import { contrastRatioFromLuminance, formatHsl, formatOkhsl, formatOkhst, formatOklch, formatRgb, hslToSrgb, okhslToLinearSrgb, okhslToOkhst, okhslToOklch, okhslToSrgb, okhstToOkhsl, parseHexAlpha, relativeLuminanceFromLinearRgb, srgbToHex, srgbToOkhsl } from "@tenphi/glaze";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/fields/color/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { wrapNodeIfPlain } from "../../../utils/react/wrapNodeIfPlain.js";
4
4
  import { isDevEnv } from "../../../utils/is-dev-env.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | 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,11 +1,13 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
+ import { useEvent } from "../../../_internal/hooks/use-event.js";
4
5
  import { Provider, useProviderProps } from "../../../provider.js";
5
6
  import { useValidationProps } from "../validation/use-validation-props.js";
6
7
  import { timeout } from "../../../utils/promise.js";
7
8
  import { isModernFormController } from "./backend.js";
8
9
  import { ModernControllerContext } from "./modern/context.js";
10
+ import { resetUnboundControls } from "./reset-unbound-controls.js";
9
11
  import { _ModernFormRoot } from "./ModernFormRoot.js";
10
12
  import { useForm } from "./use-form.js";
11
13
  import { c } from "react-compiler-runtime";
@@ -176,6 +178,13 @@ function LegacyFormRoot(props, ref) {
176
178
  onSubmit: onSubmitCallback,
177
179
  onValuesChange
178
180
  });
181
+ const handleReset = useEvent((event) => {
182
+ event.stopPropagation();
183
+ event.preventDefault();
184
+ resetUnboundControls(event.currentTarget, (name_0) => form.getFieldInstance(name_0) != null);
185
+ form.resetFields();
186
+ form.onValuesChange?.(form.getFormData());
187
+ });
179
188
  let styles = extractStyles(otherProps, CONTAINER_STYLES);
180
189
  if (labelWidth) styles["$label-width"] = labelWidth;
181
190
  let domRef = useObjectRef(ref);
@@ -217,6 +226,7 @@ function LegacyFormRoot(props, ref) {
217
226
  horizontal: isHorizontal
218
227
  },
219
228
  onSubmit: onSubmitCallback,
229
+ onResetCapture: handleReset,
220
230
  children: /* @__PURE__ */ jsx(ModernControllerContext.Provider, {
221
231
  value: null,
222
232
  children: /* @__PURE__ */ jsx(FormPresentationContext.Provider, {
@@ -1 +1 @@
1
- {"version":3,"file":"Form.js","names":["useObjectRef","BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","Styles","tasty","ContextType","createContext","FormHTMLAttributes","forwardRef","ReactElement","ReactNode","Ref","useContext","useRef","Provider","useProviderProps","FormBaseProps","timeout","useCombinedRefs","extractStyles","useValidationProps","isModernFormController","ModernControllerContext","ModernFormRoot","FieldTypes","CubeFormData","CubeFormInstance","useForm","ModernFormProps","FormContext","FormPresentationContextValue","labelPosition","labelStyles","orientation","necessityIndicator","validateTrigger","requiredMark","showValid","idPrefix","EMPTY_PRESENTATION","FormPresentationContext","FormScopeMask","t0","$","_c","value","children","t1","FormRootComponent","props","CubeFormProps","T","ref","HTMLFormElement","FormElement","as","qa","styles","display","horizontal","flow","placeItems","gap","flexGrow","height","useFormProps","presentation","ctx","modern","form","formPropNames","Set","Pick","name","defaultValues","Partial","onValuesChange","onSubmit","onSubmitFailed","any","Promise","labelWidth","LegacyFormRoot","isDisabled","isReadOnly","isInvalid","isValid","otherProps","defaultValuesRef","firstRunRef","isHorizontal","undefined","onSubmitCallback","action","e","preventDefault","stopPropagation","nativeEvent","evt","submitter","getAttribute","isSubmitting","submitError","setSubmitting","validateFields","getFormData","Error","current","domRef","setInitialFieldsValue","resetFields","propNames","_LegacyFormRoot","displayName","Form","_Form"],"sources":["../../../../src/components/form/Form/Form.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ContextType,\n createContext,\n FormHTMLAttributes,\n forwardRef,\n ReactElement,\n ReactNode,\n Ref,\n useContext,\n useRef,\n} from 'react';\n\nimport { Provider, useProviderProps } from '../../../provider';\nimport { FormBaseProps } from '../../../shared/index';\nimport { timeout } from '../../../utils/promise';\nimport { useCombinedRefs } from '../../../utils/react/index';\nimport { extractStyles } from '../../../utils/styles';\nimport { useValidationProps } from '../validation/index';\n\nimport { isModernFormController } from './backend';\nimport { ModernControllerContext } from './modern/context';\nimport { ModernFormRoot } from './ModernFormRoot';\nimport { FieldTypes } from './types';\nimport { CubeFormData, CubeFormInstance, useForm } from './use-form';\n\nimport type { ModernFormProps } from './ModernFormRoot';\n\n/**\n * Public legacy context. Its value is the full legacy scope (presentation\n * props, the instance, `submitError`, `idPrefix`) and is part of the exported\n * contract: wrappers outside the kit read it and Radio/Checkbox groups mask it.\n */\nexport const FormContext = createContext({});\n\n/**\n * Presentation and configuration that any root — legacy or modern — hands to\n * the fields below it. Backend-neutral by construction: no instance in here.\n */\nexport interface FormPresentationContextValue {\n labelPosition?: FormBaseProps['labelPosition'];\n labelStyles?: FormBaseProps['labelStyles'];\n orientation?: 'vertical' | 'horizontal';\n necessityIndicator?: FormBaseProps['necessityIndicator'];\n validateTrigger?: FormBaseProps['validateTrigger'];\n requiredMark?: boolean;\n showValid?: boolean;\n idPrefix?: string;\n}\n\nconst EMPTY_PRESENTATION: FormPresentationContextValue = {};\n\nexport const FormPresentationContext =\n createContext<FormPresentationContextValue>(EMPTY_PRESENTATION);\n\n/**\n * Scope the inputs below to a new form context. Radio/Checkbox groups use it\n * for their options: they see the group's validation state, but neither the\n * surrounding form's presentation props nor its instance, so a nested `name`\n * never registers as an independent field. Wrappers that used to override\n * `FormContext` directly for the same purpose should render this instead — a\n * bare `FormContext.Provider` no longer masks the presentation context.\n */\nexport function FormScopeMask({\n value,\n children,\n}: {\n value: ContextType<typeof FormContext>;\n children?: ReactNode;\n}) {\n return (\n <ModernControllerContext.Provider value={null}>\n <FormPresentationContext.Provider value={EMPTY_PRESENTATION}>\n <FormContext.Provider value={value}>{children}</FormContext.Provider>\n </FormPresentationContext.Provider>\n </ModernControllerContext.Provider>\n );\n}\n\n/** Separate overloads retain contextual callback typing for each backend. */\nexport interface FormRootComponent {\n <T extends FieldTypes = FieldTypes>(\n props: CubeFormProps<T> & { ref?: Ref<HTMLFormElement> },\n ): ReactElement;\n <T extends FieldTypes = FieldTypes>(\n props: ModernFormProps<T> & { ref?: Ref<HTMLFormElement> },\n ): ReactElement;\n}\n\nexport const FormElement = tasty({\n as: 'form',\n qa: 'Form',\n styles: {\n // A form placed directly in a `Dialog` sits between the dialog and its\n // slots (`Dialog > Form > Content + Footer`), so it takes over the dialog's\n // own slot layout: a flex column that grows into the dialog, lets `Content`\n // shrink and scroll (`min-height: 0` — a flex item's default `auto` refuses\n // to shrink below its content), and adds no space between the slots, whose\n // padding already spaces them. Direct child only: a form nested inside\n // `Content` is an ordinary form.\n //\n // It lives here, in the form's own styles, so a consumer's `styles` on the\n // form replace it key by key, inside a dialog as anywhere else — and can\n // name `@in-dialog` themselves. Last in each map, so\n // `orientation=\"horizontal\"` cannot turn the slots into a row.\n '@in-dialog': '@parent(id=Dialog, >)',\n\n display: {\n '': 'block',\n horizontal: 'flex',\n '@in-dialog': 'flex',\n },\n flow: {\n '': 'column',\n horizontal: 'row',\n '@in-dialog': 'column',\n },\n placeItems: {\n '': 'initial',\n horizontal: 'center',\n '@in-dialog': 'initial',\n },\n gap: {\n '': '2x',\n '@in-dialog': 0,\n },\n flexGrow: {\n '': false,\n '@in-dialog': 1,\n },\n height: {\n '': false,\n '@in-dialog': 'min 0',\n },\n '$label-width': '25x',\n },\n});\n\n/**\n * Merge order: presentation context, then the legacy `FormContext`, then the\n * props. Under a legacy root the two contexts carry the same presentation\n * values, so the result is exactly `{ ...FormContext, ...props }` as before.\n */\nexport function useFormProps(props) {\n const presentation = useContext(FormPresentationContext);\n const ctx = useContext(FormContext);\n const modern = useContext(ModernControllerContext);\n\n return {\n ...presentation,\n ...(modern ? { form: modern } : {}),\n ...ctx,\n ...props,\n };\n}\n\nexport const formPropNames = new Set([\n 'action',\n 'autoComplete',\n 'encType',\n 'method',\n 'target',\n]);\n\nexport interface CubeFormProps<T extends FieldTypes = FieldTypes>\n extends FormBaseProps,\n BaseProps,\n ContainerStyleProps,\n Pick<\n FormHTMLAttributes<HTMLFormElement>,\n 'action' | 'autoComplete' | 'encType' | 'method' | 'target'\n > {\n /** Form name */\n name?: string;\n /** Default field values */\n defaultValues?: Partial<T>;\n /** Trigger when any value of the Field is changed */\n onValuesChange?: CubeFormInstance<T>['onValuesChange'];\n /** Trigger on form submit and success */\n onSubmit?: CubeFormInstance<T>['onSubmit'];\n /** Trigger on form submit and failed */\n onSubmitFailed?: (any?) => void | Promise<any>;\n /** Set form instance created by useForm */\n form?: CubeFormInstance<T, CubeFormData<T>>;\n /** The size of the side area with labels. Only for `labelPosition=\"side\"` */\n labelWidth?: Styles['width'];\n orientation?: 'vertical' | 'horizontal';\n}\n\n/**\n * The legacy backend's root: the current engine under an internal name. Its\n * role is compatibility; see `legacy-contract/README.md` for what is frozen.\n */\nfunction LegacyFormRoot<T extends FieldTypes>(\n props: CubeFormProps<T>,\n ref: Ref<HTMLFormElement>,\n) {\n 'use no memo';\n // Legacy form state is mutable; preserve its render-time reads until migration.\n\n props = useValidationProps(useProviderProps(props));\n let {\n qa,\n name,\n children,\n labelPosition,\n orientation,\n necessityIndicator,\n isDisabled,\n isReadOnly,\n isInvalid,\n isValid,\n labelStyles,\n validateTrigger,\n showValid,\n defaultValues,\n onValuesChange,\n requiredMark = true,\n form,\n labelWidth,\n onSubmit,\n onSubmitFailed,\n ...otherProps\n } = props;\n const defaultValuesRef = useRef(defaultValues);\n const firstRunRef = useRef(true);\n const isHorizontal = orientation === 'horizontal';\n\n if (!orientation) {\n orientation = 'vertical';\n }\n\n if (!labelPosition) {\n labelPosition = isHorizontal ? 'side' : 'top';\n }\n\n if (!labelWidth) {\n labelWidth = isHorizontal ? 'auto' : undefined;\n }\n\n ref = useCombinedRefs(ref);\n\n let onSubmitCallback;\n\n if ((onSubmit || onSubmitFailed) && !otherProps.action) {\n onSubmitCallback = async (e) => {\n if (e && e?.preventDefault) {\n e && e?.preventDefault && e?.preventDefault();\n e && e?.stopPropagation && e?.stopPropagation();\n\n if (e.nativeEvent) {\n const evt = e.nativeEvent;\n\n if (\n evt.submitter &&\n evt.submitter.getAttribute('type') !== 'submit'\n ) {\n return;\n }\n }\n }\n\n if (!form || form.isSubmitting) return;\n\n form.submitError = null;\n form.setSubmitting(true);\n\n try {\n try {\n await form.validateFields();\n } catch (e) {\n form?.setSubmitting(false);\n\n return;\n }\n\n await timeout();\n await onSubmit?.(form.getFormData());\n } catch (e) {\n await timeout();\n\n // errors are shown\n form.submitError = e as ReactNode;\n // transfer errors to the callback\n onSubmitFailed?.(e);\n\n if (e instanceof Error) {\n throw e;\n }\n } finally {\n form?.setSubmitting(false);\n }\n\n // output data from form directly\n // onSubmit(Object.fromEntries(new FormData(e.target).entries()));\n };\n }\n\n [form] = useForm<T>(form, ref && ref.current, {\n onSubmit: onSubmitCallback,\n onValuesChange,\n });\n\n let styles = extractStyles(otherProps, CONTAINER_STYLES);\n\n if (labelWidth) {\n styles['$label-width'] = labelWidth;\n }\n\n let domRef = useObjectRef(ref);\n\n const presentation: FormPresentationContextValue = {\n labelPosition,\n labelStyles,\n orientation,\n necessityIndicator,\n validateTrigger,\n requiredMark,\n showValid,\n idPrefix: name,\n };\n\n let ctx = {\n ...presentation,\n form,\n submitError: form.submitError,\n };\n\n if (firstRunRef.current && form) {\n if (defaultValues) {\n form.setInitialFieldsValue(defaultValues);\n form.resetFields(undefined, true);\n firstRunRef.current = false;\n }\n }\n\n if (defaultValuesRef.current !== defaultValues) {\n form?.setInitialFieldsValue(defaultValues ?? {});\n defaultValuesRef.current = defaultValues;\n }\n\n return (\n <FormElement\n {...filterBaseProps(otherProps, { propNames: formPropNames })}\n ref={domRef}\n noValidate\n qa={qa}\n styles={styles}\n mods={{\n 'has-sider': labelPosition === 'side',\n 'has-split': labelPosition === 'split',\n horizontal: isHorizontal,\n }}\n onSubmit={onSubmitCallback}\n >\n <ModernControllerContext.Provider value={null}>\n <FormPresentationContext.Provider value={presentation}>\n <FormContext.Provider value={ctx}>\n <Provider\n insideForm={true}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n >\n {children}\n </Provider>\n </FormContext.Provider>\n </FormPresentationContext.Provider>\n </ModernControllerContext.Provider>\n </FormElement>\n );\n}\n\nconst _LegacyFormRoot = forwardRef(LegacyFormRoot) as unknown as <\n T extends FieldTypes,\n>(\n props: CubeFormProps<T> & { ref?: Ref<HTMLFormElement> },\n) => ReactElement;\n\n(_LegacyFormRoot as any).displayName = 'LegacyFormRoot';\n\n/**\n * The `<Form>` facade. It chooses the root by the brand of the `form` prop\n * before any backend hook runs. Without an explicit modern controller it is\n * the legacy root, so existing `<Form>` and `Form.useForm()` keep their behavior.\n */\nfunction Form<T extends FieldTypes>(\n props: CubeFormProps<T> | ModernFormProps<T>,\n ref: Ref<HTMLFormElement>,\n) {\n if (isModernFormController(props.form)) {\n return <ModernFormRoot {...(props as ModernFormProps<T>)} ref={ref} />;\n }\n\n return <_LegacyFormRoot {...(props as CubeFormProps<T>)} ref={ref} />;\n}\n\n/**\n * Forms allow users to enter data that can be submitted while providing alignment and styling for form fields.\n */\nconst _Form = forwardRef(Form) as unknown as FormRootComponent;\n\n(_Form as any).displayName = 'Form';\n\nexport { _Form as Form, _LegacyFormRoot as LegacyFormRoot };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Form.js","names":["useObjectRef","BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","Styles","tasty","ContextType","createContext","FormEvent","FormHTMLAttributes","forwardRef","ReactElement","ReactNode","Ref","useContext","useRef","useEvent","Provider","useProviderProps","FormBaseProps","timeout","useCombinedRefs","extractStyles","useValidationProps","isModernFormController","ModernControllerContext","ModernFormRoot","resetUnboundControls","FieldTypes","CubeFormData","CubeFormInstance","useForm","ModernFormProps","FormContext","FormPresentationContextValue","labelPosition","labelStyles","orientation","necessityIndicator","validateTrigger","requiredMark","showValid","idPrefix","EMPTY_PRESENTATION","FormPresentationContext","FormScopeMask","t0","$","_c","value","children","t1","FormRootComponent","props","CubeFormProps","T","ref","HTMLFormElement","FormElement","as","qa","styles","display","horizontal","flow","placeItems","gap","flexGrow","height","useFormProps","presentation","ctx","modern","form","formPropNames","Set","Pick","name","defaultValues","Partial","onValuesChange","onSubmit","onSubmitFailed","any","Promise","labelWidth","LegacyFormRoot","isDisabled","isReadOnly","isInvalid","isValid","otherProps","defaultValuesRef","firstRunRef","isHorizontal","undefined","onSubmitCallback","action","e","preventDefault","stopPropagation","nativeEvent","evt","submitter","getAttribute","isSubmitting","submitError","setSubmitting","validateFields","getFormData","Error","current","handleReset","event","currentTarget","getFieldInstance","resetFields","domRef","setInitialFieldsValue","propNames","_LegacyFormRoot","displayName","Form","_Form"],"sources":["../../../../src/components/form/Form/Form.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ContextType,\n createContext,\n FormEvent,\n FormHTMLAttributes,\n forwardRef,\n ReactElement,\n ReactNode,\n Ref,\n useContext,\n useRef,\n} from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { Provider, useProviderProps } from '../../../provider';\nimport { FormBaseProps } from '../../../shared/index';\nimport { timeout } from '../../../utils/promise';\nimport { useCombinedRefs } from '../../../utils/react/index';\nimport { extractStyles } from '../../../utils/styles';\nimport { useValidationProps } from '../validation/index';\n\nimport { isModernFormController } from './backend';\nimport { ModernControllerContext } from './modern/context';\nimport { ModernFormRoot } from './ModernFormRoot';\nimport { resetUnboundControls } from './reset-unbound-controls';\nimport { FieldTypes } from './types';\nimport { CubeFormData, CubeFormInstance, useForm } from './use-form';\n\nimport type { ModernFormProps } from './ModernFormRoot';\n\n/**\n * Public legacy context. Its value is the full legacy scope (presentation\n * props, the instance, `submitError`, `idPrefix`) and is part of the exported\n * contract: wrappers outside the kit read it and Radio/Checkbox groups mask it.\n */\nexport const FormContext = createContext({});\n\n/**\n * Presentation and configuration that any root — legacy or modern — hands to\n * the fields below it. Backend-neutral by construction: no instance in here.\n */\nexport interface FormPresentationContextValue {\n labelPosition?: FormBaseProps['labelPosition'];\n labelStyles?: FormBaseProps['labelStyles'];\n orientation?: 'vertical' | 'horizontal';\n necessityIndicator?: FormBaseProps['necessityIndicator'];\n validateTrigger?: FormBaseProps['validateTrigger'];\n requiredMark?: boolean;\n showValid?: boolean;\n idPrefix?: string;\n}\n\nconst EMPTY_PRESENTATION: FormPresentationContextValue = {};\n\nexport const FormPresentationContext =\n createContext<FormPresentationContextValue>(EMPTY_PRESENTATION);\n\n/**\n * Scope the inputs below to a new form context. Radio/Checkbox groups use it\n * for their options: they see the group's validation state, but neither the\n * surrounding form's presentation props nor its instance, so a nested `name`\n * never registers as an independent field. Wrappers that used to override\n * `FormContext` directly for the same purpose should render this instead — a\n * bare `FormContext.Provider` no longer masks the presentation context.\n */\nexport function FormScopeMask({\n value,\n children,\n}: {\n value: ContextType<typeof FormContext>;\n children?: ReactNode;\n}) {\n return (\n <ModernControllerContext.Provider value={null}>\n <FormPresentationContext.Provider value={EMPTY_PRESENTATION}>\n <FormContext.Provider value={value}>{children}</FormContext.Provider>\n </FormPresentationContext.Provider>\n </ModernControllerContext.Provider>\n );\n}\n\n/** Separate overloads retain contextual callback typing for each backend. */\nexport interface FormRootComponent {\n <T extends FieldTypes = FieldTypes>(\n props: CubeFormProps<T> & { ref?: Ref<HTMLFormElement> },\n ): ReactElement;\n <T extends FieldTypes = FieldTypes>(\n props: ModernFormProps<T> & { ref?: Ref<HTMLFormElement> },\n ): ReactElement;\n}\n\nexport const FormElement = tasty({\n as: 'form',\n qa: 'Form',\n styles: {\n // A form placed directly in a `Dialog` sits between the dialog and its\n // slots (`Dialog > Form > Content + Footer`), so it takes over the dialog's\n // own slot layout: a flex column that grows into the dialog, lets `Content`\n // shrink and scroll (`min-height: 0` — a flex item's default `auto` refuses\n // to shrink below its content), and adds no space between the slots, whose\n // padding already spaces them. Direct child only: a form nested inside\n // `Content` is an ordinary form.\n //\n // It lives here, in the form's own styles, so a consumer's `styles` on the\n // form replace it key by key, inside a dialog as anywhere else — and can\n // name `@in-dialog` themselves. Last in each map, so\n // `orientation=\"horizontal\"` cannot turn the slots into a row.\n '@in-dialog': '@parent(id=Dialog, >)',\n\n display: {\n '': 'block',\n horizontal: 'flex',\n '@in-dialog': 'flex',\n },\n flow: {\n '': 'column',\n horizontal: 'row',\n '@in-dialog': 'column',\n },\n placeItems: {\n '': 'initial',\n horizontal: 'center',\n '@in-dialog': 'initial',\n },\n gap: {\n '': '2x',\n '@in-dialog': 0,\n },\n flexGrow: {\n '': false,\n '@in-dialog': 1,\n },\n height: {\n '': false,\n '@in-dialog': 'min 0',\n },\n '$label-width': '25x',\n },\n});\n\n/**\n * Merge order: presentation context, then the legacy `FormContext`, then the\n * props. Under a legacy root the two contexts carry the same presentation\n * values, so the result is exactly `{ ...FormContext, ...props }` as before.\n */\nexport function useFormProps(props) {\n const presentation = useContext(FormPresentationContext);\n const ctx = useContext(FormContext);\n const modern = useContext(ModernControllerContext);\n\n return {\n ...presentation,\n ...(modern ? { form: modern } : {}),\n ...ctx,\n ...props,\n };\n}\n\nexport const formPropNames = new Set([\n 'action',\n 'autoComplete',\n 'encType',\n 'method',\n 'target',\n]);\n\nexport interface CubeFormProps<T extends FieldTypes = FieldTypes>\n extends FormBaseProps,\n BaseProps,\n ContainerStyleProps,\n Pick<\n FormHTMLAttributes<HTMLFormElement>,\n 'action' | 'autoComplete' | 'encType' | 'method' | 'target'\n > {\n /** Form name */\n name?: string;\n /** Default field values */\n defaultValues?: Partial<T>;\n /** Trigger when any value of the Field is changed */\n onValuesChange?: CubeFormInstance<T>['onValuesChange'];\n /** Trigger on form submit and success */\n onSubmit?: CubeFormInstance<T>['onSubmit'];\n /** Trigger on form submit and failed */\n onSubmitFailed?: (any?) => void | Promise<any>;\n /** Set form instance created by useForm */\n form?: CubeFormInstance<T, CubeFormData<T>>;\n /** The size of the side area with labels. Only for `labelPosition=\"side\"` */\n labelWidth?: Styles['width'];\n orientation?: 'vertical' | 'horizontal';\n}\n\n/**\n * The legacy backend's root: the current engine under an internal name. Its\n * role is compatibility; see `legacy-contract/README.md` for what is frozen.\n */\nfunction LegacyFormRoot<T extends FieldTypes>(\n props: CubeFormProps<T>,\n ref: Ref<HTMLFormElement>,\n) {\n 'use no memo';\n // Legacy form state is mutable; preserve its render-time reads until migration.\n\n props = useValidationProps(useProviderProps(props));\n let {\n qa,\n name,\n children,\n labelPosition,\n orientation,\n necessityIndicator,\n isDisabled,\n isReadOnly,\n isInvalid,\n isValid,\n labelStyles,\n validateTrigger,\n showValid,\n defaultValues,\n onValuesChange,\n requiredMark = true,\n form,\n labelWidth,\n onSubmit,\n onSubmitFailed,\n ...otherProps\n } = props;\n const defaultValuesRef = useRef(defaultValues);\n const firstRunRef = useRef(true);\n const isHorizontal = orientation === 'horizontal';\n\n if (!orientation) {\n orientation = 'vertical';\n }\n\n if (!labelPosition) {\n labelPosition = isHorizontal ? 'side' : 'top';\n }\n\n if (!labelWidth) {\n labelWidth = isHorizontal ? 'auto' : undefined;\n }\n\n ref = useCombinedRefs(ref);\n\n let onSubmitCallback;\n\n if ((onSubmit || onSubmitFailed) && !otherProps.action) {\n onSubmitCallback = async (e) => {\n if (e && e?.preventDefault) {\n e && e?.preventDefault && e?.preventDefault();\n e && e?.stopPropagation && e?.stopPropagation();\n\n if (e.nativeEvent) {\n const evt = e.nativeEvent;\n\n if (\n evt.submitter &&\n evt.submitter.getAttribute('type') !== 'submit'\n ) {\n return;\n }\n }\n }\n\n if (!form || form.isSubmitting) return;\n\n form.submitError = null;\n form.setSubmitting(true);\n\n try {\n try {\n await form.validateFields();\n } catch (e) {\n form?.setSubmitting(false);\n\n return;\n }\n\n await timeout();\n await onSubmit?.(form.getFormData());\n } catch (e) {\n await timeout();\n\n // errors are shown\n form.submitError = e as ReactNode;\n // transfer errors to the callback\n onSubmitFailed?.(e);\n\n if (e instanceof Error) {\n throw e;\n }\n } finally {\n form?.setSubmitting(false);\n }\n\n // output data from form directly\n // onSubmit(Object.fromEntries(new FormData(e.target).entries()));\n };\n }\n\n [form] = useForm<T>(form, ref && ref.current, {\n onSubmit: onSubmitCallback,\n onValuesChange,\n });\n\n // A native reset (`ResetButton` is `type=\"reset\"`) reaches React Aria's\n // `useFormReset` listener on every input, which writes the value the input\n // started with through `onChange` and ignores `preventDefault`; a\n // `CheckboxGroup` even lands on `[]`. Reset the form once instead, in\n // capture, before those listeners run, as `ModernFormRoot` does, and report\n // the result to `onValuesChange`. Also with `action`: it hands only the submit\n // to the browser, and the form still owns every bound value. Controls it does\n // not own get the browser's reset from `resetUnboundControls`.\n const handleReset = useEvent((event: FormEvent<HTMLFormElement>) => {\n event.stopPropagation();\n event.preventDefault();\n resetUnboundControls(\n event.currentTarget,\n (name) => form.getFieldInstance(name) != null,\n );\n form.resetFields();\n form.onValuesChange?.(form.getFormData());\n });\n\n let styles = extractStyles(otherProps, CONTAINER_STYLES);\n\n if (labelWidth) {\n styles['$label-width'] = labelWidth;\n }\n\n let domRef = useObjectRef(ref);\n\n const presentation: FormPresentationContextValue = {\n labelPosition,\n labelStyles,\n orientation,\n necessityIndicator,\n validateTrigger,\n requiredMark,\n showValid,\n idPrefix: name,\n };\n\n let ctx = {\n ...presentation,\n form,\n submitError: form.submitError,\n };\n\n if (firstRunRef.current && form) {\n if (defaultValues) {\n form.setInitialFieldsValue(defaultValues);\n form.resetFields(undefined, true);\n firstRunRef.current = false;\n }\n }\n\n if (defaultValuesRef.current !== defaultValues) {\n form?.setInitialFieldsValue(defaultValues ?? {});\n defaultValuesRef.current = defaultValues;\n }\n\n return (\n <FormElement\n {...filterBaseProps(otherProps, { propNames: formPropNames })}\n ref={domRef}\n noValidate\n qa={qa}\n styles={styles}\n mods={{\n 'has-sider': labelPosition === 'side',\n 'has-split': labelPosition === 'split',\n horizontal: isHorizontal,\n }}\n onSubmit={onSubmitCallback}\n onResetCapture={handleReset}\n >\n <ModernControllerContext.Provider value={null}>\n <FormPresentationContext.Provider value={presentation}>\n <FormContext.Provider value={ctx}>\n <Provider\n insideForm={true}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n >\n {children}\n </Provider>\n </FormContext.Provider>\n </FormPresentationContext.Provider>\n </ModernControllerContext.Provider>\n </FormElement>\n );\n}\n\nconst _LegacyFormRoot = forwardRef(LegacyFormRoot) as unknown as <\n T extends FieldTypes,\n>(\n props: CubeFormProps<T> & { ref?: Ref<HTMLFormElement> },\n) => ReactElement;\n\n(_LegacyFormRoot as any).displayName = 'LegacyFormRoot';\n\n/**\n * The `<Form>` facade. It chooses the root by the brand of the `form` prop\n * before any backend hook runs. Without an explicit modern controller it is\n * the legacy root, so existing `<Form>` and `Form.useForm()` keep their behavior.\n */\nfunction Form<T extends FieldTypes>(\n props: CubeFormProps<T> | ModernFormProps<T>,\n ref: Ref<HTMLFormElement>,\n) {\n if (isModernFormController(props.form)) {\n return <ModernFormRoot {...(props as ModernFormProps<T>)} ref={ref} />;\n }\n\n return <_LegacyFormRoot {...(props as CubeFormProps<T>)} ref={ref} />;\n}\n\n/**\n * Forms allow users to enter data that can be submitted while providing alignment and styling for form fields.\n */\nconst _Form = forwardRef(Form) as unknown as FormRootComponent;\n\n(_Form as any).displayName = 'Form';\n\nexport { _Form as Form, _LegacyFormRoot as LegacyFormRoot };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | 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";
@@ -7,6 +7,7 @@ import { Provider, useProviderProps } from "../../../provider.js";
7
7
  import { useValidationProps } from "../validation/use-validation-props.js";
8
8
  import { ModernControllerContext } from "./modern/context.js";
9
9
  import { getControllerInternals } from "./modern/controller.js";
10
+ import { resetUnboundControls } from "./reset-unbound-controls.js";
10
11
  import { FormContext, FormElement, FormPresentationContext, formPropNames } from "./Form.js";
11
12
  import { c } from "react-compiler-runtime";
12
13
  import { CONTAINER_STYLES, filterBaseProps } from "@tenphi/tasty";
@@ -16,7 +17,7 @@ import { jsx } from "react/jsx-runtime";
16
17
  //#region src/components/form/Form/ModernFormRoot.tsx
17
18
  const EMPTY_LEGACY_CONTEXT = {};
18
19
  function ModernFormRoot(props, ref) {
19
- const $ = c(87);
20
+ const $ = c(86);
20
21
  const resolved = useValidationProps(useProviderProps(props));
21
22
  let authoredLabelPosition;
22
23
  let authoredLabelWidth;
@@ -190,6 +191,8 @@ function ModernFormRoot(props, ref) {
190
191
  otherProps.onReset?.(event_0);
191
192
  if (!event_0.defaultPrevented) {
192
193
  event_0.preventDefault();
194
+ const { fields } = form.getSnapshot();
195
+ resetUnboundControls(event_0.currentTarget, (name_0) => !!fields[name_0]?.active);
193
196
  form.reset();
194
197
  }
195
198
  };
@@ -251,11 +254,9 @@ function ModernFormRoot(props, ref) {
251
254
  $[64] = t18;
252
255
  } else t18 = $[64];
253
256
  const t19 = otherProps.action == null ? handleSubmit : void 0;
254
- const t20 = otherProps.action == null ? void 0 : otherProps.onReset;
255
- const t21 = otherProps.action == null ? handleReset : void 0;
256
- let t22;
257
+ let t20;
257
258
  if ($[65] !== children || $[66] !== isDisabled || $[67] !== isInvalid || $[68] !== isReadOnly || $[69] !== isValid) {
258
- t22 = /* @__PURE__ */ jsx(Provider, {
259
+ t20 = /* @__PURE__ */ jsx(Provider, {
259
260
  insideForm: true,
260
261
  isDisabled,
261
262
  isReadOnly,
@@ -268,34 +269,34 @@ function ModernFormRoot(props, ref) {
268
269
  $[67] = isInvalid;
269
270
  $[68] = isReadOnly;
270
271
  $[69] = isValid;
271
- $[70] = t22;
272
- } else t22 = $[70];
273
- let t23;
274
- if ($[71] !== presentation || $[72] !== t22) {
275
- t23 = /* @__PURE__ */ jsx(FormPresentationContext.Provider, {
272
+ $[70] = t20;
273
+ } else t20 = $[70];
274
+ let t21;
275
+ if ($[71] !== presentation || $[72] !== t20) {
276
+ t21 = /* @__PURE__ */ jsx(FormPresentationContext.Provider, {
276
277
  value: presentation,
277
- children: t22
278
+ children: t20
278
279
  });
279
280
  $[71] = presentation;
280
- $[72] = t22;
281
- $[73] = t23;
282
- } else t23 = $[73];
283
- let t24;
284
- if ($[74] !== form || $[75] !== t23) {
285
- t24 = /* @__PURE__ */ jsx(FormContext.Provider, {
281
+ $[72] = t20;
282
+ $[73] = t21;
283
+ } else t21 = $[73];
284
+ let t22;
285
+ if ($[74] !== form || $[75] !== t21) {
286
+ t22 = /* @__PURE__ */ jsx(FormContext.Provider, {
286
287
  value: EMPTY_LEGACY_CONTEXT,
287
288
  children: /* @__PURE__ */ jsx(ModernControllerContext.Provider, {
288
289
  value: form,
289
- children: t23
290
+ children: t21
290
291
  })
291
292
  });
292
293
  $[74] = form;
293
- $[75] = t23;
294
- $[76] = t24;
295
- } else t24 = $[76];
296
- let t25;
297
- if ($[77] !== mergedRef || $[78] !== qa || $[79] !== styles || $[80] !== t14 || $[81] !== t18 || $[82] !== t19 || $[83] !== t20 || $[84] !== t21 || $[85] !== t24) {
298
- t25 = /* @__PURE__ */ jsx(FormElement, {
294
+ $[75] = t21;
295
+ $[76] = t22;
296
+ } else t22 = $[76];
297
+ let t23;
298
+ if ($[77] !== handleReset || $[78] !== mergedRef || $[79] !== qa || $[80] !== styles || $[81] !== t14 || $[82] !== t18 || $[83] !== t19 || $[84] !== t22) {
299
+ t23 = /* @__PURE__ */ jsx(FormElement, {
299
300
  ...t14,
300
301
  ref: mergedRef,
301
302
  qa,
@@ -303,22 +304,20 @@ function ModernFormRoot(props, ref) {
303
304
  styles,
304
305
  mods: t18,
305
306
  onSubmit: t19,
306
- onReset: t20,
307
- onResetCapture: t21,
308
- children: t24
307
+ onResetCapture: handleReset,
308
+ children: t22
309
309
  });
310
- $[77] = mergedRef;
311
- $[78] = qa;
312
- $[79] = styles;
313
- $[80] = t14;
314
- $[81] = t18;
315
- $[82] = t19;
316
- $[83] = t20;
317
- $[84] = t21;
318
- $[85] = t24;
319
- $[86] = t25;
320
- } else t25 = $[86];
321
- return t25;
310
+ $[77] = handleReset;
311
+ $[78] = mergedRef;
312
+ $[79] = qa;
313
+ $[80] = styles;
314
+ $[81] = t14;
315
+ $[82] = t18;
316
+ $[83] = t19;
317
+ $[84] = t22;
318
+ $[85] = t23;
319
+ } else t23 = $[85];
320
+ return t23;
322
321
  }
323
322
  const _ModernFormRoot = forwardRef(ModernFormRoot);
324
323
  _ModernFormRoot.displayName = "ModernFormRoot";
@@ -1 +1 @@
1
- {"version":3,"file":"ModernFormRoot.js","names":["CONTAINER_STYLES","filterBaseProps","forwardRef","useMemo","useRef","useEvent","Provider","useProviderProps","mergeRefs","useLayoutEffect","extractStyles","useValidationProps","FormContext","FormElement","FormPresentationContext","formPropNames","ModernControllerContext","getControllerInternals","FormEvent","ReactElement","ReactNode","Ref","CubeFormProps","FormPresentationContextValue","FormController","CallbackBinding","FormCallbacks","ModernFormProps","Record","Omit","T","form","defaultValues","onReset","event","HTMLFormElement","onResetCapture","onSubmit","onSubmitFailed","onValuesChange","submitValues","EMPTY_LEGACY_CONTEXT","InternalModernFormProps","onSubmitted","ModernFormRoot","props","ref","$","_c","resolved","authoredLabelPosition","authoredLabelWidth","children","isDisabled","isInvalid","isReadOnly","isValid","labelStyles","name","necessityIndicator","otherProps","qa","showValid","t0","t1","t2","validateTrigger","orientation","labelPosition","labelWidth","requiredMark","undefined","t3","internals","store","rootRef","t4","mergedRef","t5","t6","bindRootElement","current","Error","binding","t7","handleSubmitted","t8","t9","token","bindCallbacks","release","t10","update","t11","preventDefault","stopPropagation","submit","include","handleSubmit","t12","event_0","defaultPrevented","reset","handleReset","t13","idPrefix","presentation","styles","t14","propNames","t15","t16","t17","t18","horizontal","t19","action","t20","t21","t22","t23","t24","t25","_ModernFormRoot","displayName"],"sources":["../../../../src/components/form/Form/ModernFormRoot.tsx"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { Provider, useProviderProps } from '../../../provider';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useLayoutEffect } from '../../../utils/react/useLayoutEffect';\nimport { extractStyles } from '../../../utils/styles';\nimport { useValidationProps } from '../validation/use-validation-props';\n\nimport {\n FormContext,\n FormElement,\n FormPresentationContext,\n formPropNames,\n} from './Form';\nimport { ModernControllerContext } from './modern/context';\nimport { getControllerInternals } from './modern/controller';\n\nimport type { FormEvent, ReactElement, ReactNode, Ref } from 'react';\nimport type { CubeFormProps, FormPresentationContextValue } from './Form';\nimport type { FormController } from './modern/controller';\nimport type { CallbackBinding, FormCallbacks } from './modern/types';\n\n/** Modern root owns callback bindings; subscriptions stay in descendants. */\nexport interface ModernFormProps<T extends object = Record<string, unknown>>\n extends Omit<\n CubeFormProps<T>,\n 'form' | 'defaultValues' | 'onSubmit' | 'onSubmitFailed' | 'onValuesChange'\n > {\n form: FormController<T>;\n defaultValues?: never;\n /** Runs before a controller reset; preventDefault cancels the reset, including nested controls. */\n onReset?: (event: FormEvent<HTMLFormElement>) => void;\n /** Reserved for controller reset interception. Use onReset to cancel. */\n onResetCapture?: never;\n onSubmit?: FormCallbacks<T, ReactNode>['onSubmit'];\n onSubmitFailed?: FormCallbacks<T, ReactNode>['onSubmitFailed'];\n onValuesChange?: FormCallbacks<T, ReactNode>['onValuesChange'];\n /** Payload selection for native submission, including Enter and external buttons. */\n submitValues?: 'active' | 'all';\n}\n\nconst EMPTY_LEGACY_CONTEXT = {};\n\n/** Wrapper lifecycle hook, intentionally absent from the public Form props. */\ninterface InternalModernFormProps<T extends object> extends ModernFormProps<T> {\n onSubmitted?: () => void;\n}\n\nfunction ModernFormRoot<T extends object>(\n props: InternalModernFormProps<T>,\n ref: Ref<HTMLFormElement>,\n): ReactElement {\n const resolved = useValidationProps(useProviderProps(props));\n const {\n form,\n qa,\n name,\n children,\n orientation = 'vertical',\n labelPosition: authoredLabelPosition,\n labelWidth: authoredLabelWidth,\n labelStyles,\n necessityIndicator,\n validateTrigger,\n requiredMark = true,\n showValid,\n isDisabled,\n isReadOnly,\n isInvalid,\n isValid,\n defaultValues,\n onSubmit,\n onSubmitted,\n onSubmitFailed,\n onValuesChange,\n submitValues = 'active',\n ...otherProps\n } = resolved;\n const labelPosition =\n authoredLabelPosition ?? (orientation === 'horizontal' ? 'side' : 'top');\n const labelWidth =\n authoredLabelWidth ?? (orientation === 'horizontal' ? 'auto' : undefined);\n const internals = getControllerInternals(form, '<Form>');\n const { store } = internals;\n const rootRef = useRef<HTMLFormElement>(null);\n const mergedRef = useMemo(() => mergeRefs(ref, rootRef), [ref]);\n useLayoutEffect(\n () => internals.bindRootElement(rootRef.current),\n [internals],\n );\n if (defaultValues !== undefined) {\n throw new Error(\n 'A modern <Form> does not accept defaultValues. Seed Form.useController() or use an explicit defaults command.',\n );\n }\n const binding = useRef<CallbackBinding<T, ReactNode> | undefined>(undefined);\n const handleSubmitted = useEvent(() => onSubmitted?.());\n useLayoutEffect(() => {\n const token = store.bindCallbacks({}, handleSubmitted);\n binding.current = token;\n return () => {\n token.release();\n if (binding.current === token) binding.current = undefined;\n };\n }, [store, handleSubmitted]);\n useLayoutEffect(() => {\n binding.current?.update({\n ...(onSubmit === undefined ? {} : { onSubmit }),\n ...(onSubmitFailed === undefined ? {} : { onSubmitFailed }),\n ...(onValuesChange === undefined ? {} : { onValuesChange }),\n });\n });\n const handleSubmit = useEvent((event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n event.stopPropagation();\n void form.submit({ include: submitValues });\n });\n const handleReset = useEvent((event: FormEvent<HTMLFormElement>) => {\n // React Aria's native reset listeners do not honor preventDefault. Handle\n // controller resets in capture, before they can write mount-time defaults.\n event.stopPropagation();\n otherProps.onReset?.(event);\n if (!event.defaultPrevented) {\n event.preventDefault();\n form.reset();\n }\n });\n const presentation = useMemo<FormPresentationContextValue>(\n () => ({\n labelPosition,\n labelStyles,\n orientation,\n necessityIndicator,\n validateTrigger,\n requiredMark,\n showValid,\n idPrefix: name,\n }),\n [\n labelPosition,\n labelStyles,\n orientation,\n necessityIndicator,\n validateTrigger,\n requiredMark,\n showValid,\n name,\n ],\n );\n const styles = extractStyles(otherProps, CONTAINER_STYLES);\n if (labelWidth) styles['$label-width'] = labelWidth;\n\n return (\n <FormElement\n {...filterBaseProps(otherProps, { propNames: formPropNames })}\n ref={mergedRef}\n qa={qa}\n noValidate\n styles={styles}\n mods={{\n 'has-sider': labelPosition === 'side',\n 'has-split': labelPosition === 'split',\n horizontal: orientation === 'horizontal',\n }}\n onSubmit={otherProps.action == null ? handleSubmit : undefined}\n onReset={otherProps.action == null ? undefined : otherProps.onReset}\n onResetCapture={otherProps.action == null ? handleReset : undefined}\n >\n <FormContext.Provider value={EMPTY_LEGACY_CONTEXT}>\n <ModernControllerContext.Provider value={form}>\n <FormPresentationContext.Provider value={presentation}>\n <Provider\n insideForm\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n >\n {children}\n </Provider>\n </FormPresentationContext.Provider>\n </ModernControllerContext.Provider>\n </FormContext.Provider>\n </FormElement>\n );\n}\n\nconst _ModernFormRoot = forwardRef(ModernFormRoot) as unknown as <\n T extends object,\n>(\n props: InternalModernFormProps<T> & { ref?: Ref<HTMLFormElement> },\n) => ReactElement;\n\n(_ModernFormRoot as any).displayName = 'ModernFormRoot';\n\nexport { _ModernFormRoot as ModernFormRoot };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ModernFormRoot.js","names":["CONTAINER_STYLES","filterBaseProps","forwardRef","useMemo","useRef","useEvent","Provider","useProviderProps","mergeRefs","useLayoutEffect","extractStyles","useValidationProps","FormContext","FormElement","FormPresentationContext","formPropNames","ModernControllerContext","getControllerInternals","resetUnboundControls","FormEvent","ReactElement","ReactNode","Ref","CubeFormProps","FormPresentationContextValue","FormController","CallbackBinding","FormCallbacks","ModernFormProps","Record","Omit","T","form","defaultValues","onReset","event","HTMLFormElement","onResetCapture","onSubmit","onSubmitFailed","onValuesChange","submitValues","EMPTY_LEGACY_CONTEXT","InternalModernFormProps","onSubmitted","ModernFormRoot","props","ref","$","_c","resolved","authoredLabelPosition","authoredLabelWidth","children","isDisabled","isInvalid","isReadOnly","isValid","labelStyles","name","necessityIndicator","otherProps","qa","showValid","t0","t1","t2","validateTrigger","orientation","labelPosition","labelWidth","requiredMark","undefined","t3","internals","store","rootRef","t4","mergedRef","t5","t6","bindRootElement","current","Error","binding","t7","handleSubmitted","t8","t9","token","bindCallbacks","release","t10","update","t11","preventDefault","stopPropagation","submit","include","handleSubmit","t12","event_0","defaultPrevented","fields","getSnapshot","currentTarget","name_0","active","reset","handleReset","t13","idPrefix","presentation","styles","t14","propNames","t15","t16","t17","t18","horizontal","t19","action","t20","t21","t22","t23","_ModernFormRoot","displayName"],"sources":["../../../../src/components/form/Form/ModernFormRoot.tsx"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { Provider, useProviderProps } from '../../../provider';\nimport { mergeRefs } from '../../../utils/react/useCombinedRefs';\nimport { useLayoutEffect } from '../../../utils/react/useLayoutEffect';\nimport { extractStyles } from '../../../utils/styles';\nimport { useValidationProps } from '../validation/use-validation-props';\n\nimport {\n FormContext,\n FormElement,\n FormPresentationContext,\n formPropNames,\n} from './Form';\nimport { ModernControllerContext } from './modern/context';\nimport { getControllerInternals } from './modern/controller';\nimport { resetUnboundControls } from './reset-unbound-controls';\n\nimport type { FormEvent, ReactElement, ReactNode, Ref } from 'react';\nimport type { CubeFormProps, FormPresentationContextValue } from './Form';\nimport type { FormController } from './modern/controller';\nimport type { CallbackBinding, FormCallbacks } from './modern/types';\n\n/** Modern root owns callback bindings; subscriptions stay in descendants. */\nexport interface ModernFormProps<T extends object = Record<string, unknown>>\n extends Omit<\n CubeFormProps<T>,\n 'form' | 'defaultValues' | 'onSubmit' | 'onSubmitFailed' | 'onValuesChange'\n > {\n form: FormController<T>;\n defaultValues?: never;\n /** Runs before a controller reset; preventDefault cancels the reset, including nested controls. */\n onReset?: (event: FormEvent<HTMLFormElement>) => void;\n /** Reserved for controller reset interception. Use onReset to cancel. */\n onResetCapture?: never;\n onSubmit?: FormCallbacks<T, ReactNode>['onSubmit'];\n onSubmitFailed?: FormCallbacks<T, ReactNode>['onSubmitFailed'];\n onValuesChange?: FormCallbacks<T, ReactNode>['onValuesChange'];\n /** Payload selection for native submission, including Enter and external buttons. */\n submitValues?: 'active' | 'all';\n}\n\nconst EMPTY_LEGACY_CONTEXT = {};\n\n/** Wrapper lifecycle hook, intentionally absent from the public Form props. */\ninterface InternalModernFormProps<T extends object> extends ModernFormProps<T> {\n onSubmitted?: () => void;\n}\n\nfunction ModernFormRoot<T extends object>(\n props: InternalModernFormProps<T>,\n ref: Ref<HTMLFormElement>,\n): ReactElement {\n const resolved = useValidationProps(useProviderProps(props));\n const {\n form,\n qa,\n name,\n children,\n orientation = 'vertical',\n labelPosition: authoredLabelPosition,\n labelWidth: authoredLabelWidth,\n labelStyles,\n necessityIndicator,\n validateTrigger,\n requiredMark = true,\n showValid,\n isDisabled,\n isReadOnly,\n isInvalid,\n isValid,\n defaultValues,\n onSubmit,\n onSubmitted,\n onSubmitFailed,\n onValuesChange,\n submitValues = 'active',\n ...otherProps\n } = resolved;\n const labelPosition =\n authoredLabelPosition ?? (orientation === 'horizontal' ? 'side' : 'top');\n const labelWidth =\n authoredLabelWidth ?? (orientation === 'horizontal' ? 'auto' : undefined);\n const internals = getControllerInternals(form, '<Form>');\n const { store } = internals;\n const rootRef = useRef<HTMLFormElement>(null);\n const mergedRef = useMemo(() => mergeRefs(ref, rootRef), [ref]);\n useLayoutEffect(\n () => internals.bindRootElement(rootRef.current),\n [internals],\n );\n if (defaultValues !== undefined) {\n throw new Error(\n 'A modern <Form> does not accept defaultValues. Seed Form.useController() or use an explicit defaults command.',\n );\n }\n const binding = useRef<CallbackBinding<T, ReactNode> | undefined>(undefined);\n const handleSubmitted = useEvent(() => onSubmitted?.());\n useLayoutEffect(() => {\n const token = store.bindCallbacks({}, handleSubmitted);\n binding.current = token;\n return () => {\n token.release();\n if (binding.current === token) binding.current = undefined;\n };\n }, [store, handleSubmitted]);\n useLayoutEffect(() => {\n binding.current?.update({\n ...(onSubmit === undefined ? {} : { onSubmit }),\n ...(onSubmitFailed === undefined ? {} : { onSubmitFailed }),\n ...(onValuesChange === undefined ? {} : { onValuesChange }),\n });\n });\n const handleSubmit = useEvent((event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n event.stopPropagation();\n void form.submit({ include: submitValues });\n });\n const handleReset = useEvent((event: FormEvent<HTMLFormElement>) => {\n // React Aria's native reset listeners do not honor preventDefault. Handle\n // controller resets in capture, before they can write mount-time defaults.\n // Also with `action`: it hands only the submit to the browser, and\n // `Form.Reset` resets through this event.\n event.stopPropagation();\n otherProps.onReset?.(event);\n if (!event.defaultPrevented) {\n event.preventDefault();\n const { fields } = form.getSnapshot();\n resetUnboundControls(\n event.currentTarget,\n (name) => !!fields[name]?.active,\n );\n form.reset();\n }\n });\n const presentation = useMemo<FormPresentationContextValue>(\n () => ({\n labelPosition,\n labelStyles,\n orientation,\n necessityIndicator,\n validateTrigger,\n requiredMark,\n showValid,\n idPrefix: name,\n }),\n [\n labelPosition,\n labelStyles,\n orientation,\n necessityIndicator,\n validateTrigger,\n requiredMark,\n showValid,\n name,\n ],\n );\n const styles = extractStyles(otherProps, CONTAINER_STYLES);\n if (labelWidth) styles['$label-width'] = labelWidth;\n\n return (\n <FormElement\n {...filterBaseProps(otherProps, { propNames: formPropNames })}\n ref={mergedRef}\n qa={qa}\n noValidate\n styles={styles}\n mods={{\n 'has-sider': labelPosition === 'side',\n 'has-split': labelPosition === 'split',\n horizontal: orientation === 'horizontal',\n }}\n onSubmit={otherProps.action == null ? handleSubmit : undefined}\n onResetCapture={handleReset}\n >\n <FormContext.Provider value={EMPTY_LEGACY_CONTEXT}>\n <ModernControllerContext.Provider value={form}>\n <FormPresentationContext.Provider value={presentation}>\n <Provider\n insideForm\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n >\n {children}\n </Provider>\n </FormPresentationContext.Provider>\n </ModernControllerContext.Provider>\n </FormContext.Provider>\n </FormElement>\n );\n}\n\nconst _ModernFormRoot = forwardRef(ModernFormRoot) as unknown as <\n T extends object,\n>(\n props: InternalModernFormProps<T> & { ref?: Ref<HTMLFormElement> },\n) => ReactElement;\n\n(_ModernFormRoot as any).displayName = 'ModernFormRoot';\n\nexport { _ModernFormRoot as ModernFormRoot };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.2 | 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";