@cube-dev/ui-kit 0.0.0-canary-013a20c → 0.0.0-canary-65f5135

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 (578) hide show
  1. package/dist/CHANGELOG.md +6 -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 +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/actions-run.js +1 -1
  38. package/dist/components/actions/index.js +1 -1
  39. package/dist/components/actions/use-action.js +1 -1
  40. package/dist/components/actions/use-anchored-menu.js +1 -1
  41. package/dist/components/actions/use-context-menu.js +1 -1
  42. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  43. package/dist/components/content/Alert/Alert.js +1 -1
  44. package/dist/components/content/Alert/use-alert.js +1 -1
  45. package/dist/components/content/Avatar/Avatar.js +1 -1
  46. package/dist/components/content/Badge/Badge.js +1 -1
  47. package/dist/components/content/Card/Card.js +1 -1
  48. package/dist/components/content/Content.js +1 -1
  49. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  51. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  52. package/dist/components/content/Divider.js +1 -1
  53. package/dist/components/content/Footer.js +1 -1
  54. package/dist/components/content/Header.js +1 -1
  55. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  56. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  57. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  58. package/dist/components/content/Item/Item.js +1 -1
  59. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  60. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  61. package/dist/components/content/Layout/GridLayout.js +1 -1
  62. package/dist/components/content/Layout/Layout.js +1 -1
  63. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  64. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  65. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  66. package/dist/components/content/Layout/LayoutContent.js +1 -1
  67. package/dist/components/content/Layout/LayoutContext.js +1 -1
  68. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  69. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  70. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  71. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  72. package/dist/components/content/Layout/LayoutPane.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  74. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  75. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  76. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  77. package/dist/components/content/Layout/index.js +1 -1
  78. package/dist/components/content/Layout/utils.js +1 -1
  79. package/dist/components/content/Paragraph.js +1 -1
  80. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  81. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  82. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  83. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  84. package/dist/components/content/Result/Result.js +1 -1
  85. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  86. package/dist/components/content/Tag/Tag.js +1 -1
  87. package/dist/components/content/Text.d.ts +14 -14
  88. package/dist/components/content/Text.js +1 -1
  89. package/dist/components/content/TextItem/TextItem.js +1 -1
  90. package/dist/components/content/Title.js +1 -1
  91. package/dist/components/content/Tree/Tree.js +1 -1
  92. package/dist/components/content/Tree/TreeNode.js +1 -1
  93. package/dist/components/content/Tree/styled.js +1 -1
  94. package/dist/components/content/Tree/tree-index.js +1 -1
  95. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  96. package/dist/components/content/Tree/use-load-data.js +1 -1
  97. package/dist/components/content/highlightText.js +1 -1
  98. package/dist/components/content/use-auto-tooltip.js +1 -1
  99. package/dist/components/data/DataTable/DataTable.js +1 -1
  100. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  101. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  102. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  103. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  105. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  106. package/dist/components/data/TableBase/RowCollection.js +1 -1
  107. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  108. package/dist/components/data/TableBase/TableRow.js +1 -1
  109. package/dist/components/data/TableBase/TableView.js +1 -1
  110. package/dist/components/data/TableBase/column-menu.js +1 -1
  111. package/dist/components/data/TableBase/column-tint.js +1 -1
  112. package/dist/components/data/TableBase/row-menu.js +1 -1
  113. package/dist/components/data/TableBase/styled.js +1 -1
  114. package/dist/components/data/TableBase/table-tree.js +1 -1
  115. package/dist/components/data/TableBase/types.js +1 -1
  116. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  117. package/dist/components/data/TableBase/use-column-order.js +1 -1
  118. package/dist/components/data/TableBase/use-container-width.js +1 -1
  119. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  120. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  121. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  122. package/dist/components/data/TableBase/use-table-search.js +1 -1
  123. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  124. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  125. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  126. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  127. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  128. package/dist/components/fields/Checkbox/Checkbox.js +3 -1
  129. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  130. package/dist/components/fields/Checkbox/CheckboxGroup.js +66 -57
  131. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  132. package/dist/components/fields/Checkbox/context.js +1 -1
  133. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  134. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  135. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  136. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +3 -2
  137. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  138. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  139. package/dist/components/fields/CommandTextArea/CommandTextArea.js +2 -2
  140. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  141. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  142. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  143. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  144. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  145. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  146. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  147. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  148. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  149. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  150. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  151. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  152. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  153. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  154. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  155. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  156. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  157. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  158. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  159. package/dist/components/fields/DatePicker/period.js +1 -1
  160. package/dist/components/fields/DatePicker/props.js +1 -1
  161. package/dist/components/fields/DatePicker/utils.js +1 -1
  162. package/dist/components/fields/FileInput/FileInput.js +1 -1
  163. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  164. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  165. package/dist/components/fields/Input/Input.js +1 -1
  166. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  167. package/dist/components/fields/ListBox/ListBox.js +1 -1
  168. package/dist/components/fields/ListBox/optionId.js +1 -1
  169. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  170. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  171. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  172. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  173. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  174. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  175. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  176. package/dist/components/fields/Picker/Picker.js +1 -1
  177. package/dist/components/fields/RadioGroup/Radio.js +1 -2
  178. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  179. package/dist/components/fields/RadioGroup/RadioGroup.js +3 -2
  180. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  181. package/dist/components/fields/RadioGroup/context.js +1 -1
  182. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  183. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  184. package/dist/components/fields/Select/Select.js +5 -2
  185. package/dist/components/fields/Select/Select.js.map +1 -1
  186. package/dist/components/fields/Slider/Gradation.js +1 -1
  187. package/dist/components/fields/Slider/HueSlider.js +1 -1
  188. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  189. package/dist/components/fields/Slider/Slider.js +1 -1
  190. package/dist/components/fields/Slider/SliderBase.js +1 -1
  191. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  192. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  193. package/dist/components/fields/Slider/elements.js +1 -1
  194. package/dist/components/fields/Slider/index.js +1 -1
  195. package/dist/components/fields/Switch/Switch.js +107 -98
  196. package/dist/components/fields/Switch/Switch.js.map +1 -1
  197. package/dist/components/fields/TagInput/TagInput.js +1 -1
  198. package/dist/components/fields/TagInput/TagList.js +1 -1
  199. package/dist/components/fields/TextArea/TextArea.js +2 -2
  200. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  201. package/dist/components/fields/TextInput/TextInput.js +1 -1
  202. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  203. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  204. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  205. package/dist/components/fields/TriggerActions.js +1 -1
  206. package/dist/components/fields/color/ColorPanel.js +1 -1
  207. package/dist/components/fields/color/channels.js +1 -1
  208. package/dist/components/fields/color/color.js +1 -1
  209. package/dist/components/fields/color/context.js +1 -1
  210. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  211. package/dist/components/form/Form/Field.js +1 -1
  212. package/dist/components/form/Form/Form.js +9 -1
  213. package/dist/components/form/Form/Form.js.map +1 -1
  214. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  215. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  216. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  217. package/dist/components/form/Form/SubmitError.js +1 -1
  218. package/dist/components/form/Form/backend.js +1 -1
  219. package/dist/components/form/Form/index.js +1 -1
  220. package/dist/components/form/Form/modern/actions.js +1 -1
  221. package/dist/components/form/Form/modern/context.js +1 -1
  222. package/dist/components/form/Form/modern/controller.js +1 -1
  223. package/dist/components/form/Form/modern/field-binding.js +1 -1
  224. package/dist/components/form/Form/modern/field.js +1 -1
  225. package/dist/components/form/Form/modern/react.js +1 -1
  226. package/dist/components/form/Form/modern/store.js +1 -1
  227. package/dist/components/form/Form/modern/validation.js +1 -1
  228. package/dist/components/form/Form/modern/values.js +1 -1
  229. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  230. package/dist/components/form/Form/use-field/use-field-props.d.ts +14 -2
  231. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  232. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  233. package/dist/components/form/Form/use-field/use-field.js +1 -1
  234. package/dist/components/form/Form/use-form.js +1 -1
  235. package/dist/components/form/Form/validation.js +1 -1
  236. package/dist/components/form/Label.js +1 -1
  237. package/dist/components/form/legacy-tooltip.js +1 -1
  238. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  239. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  240. package/dist/components/form/validation/use-validation-props.js +1 -1
  241. package/dist/components/form/wrapper.js +1 -1
  242. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  243. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  244. package/dist/components/layout/Board/Board.js +1 -1
  245. package/dist/components/layout/Board/BoardProvider.js +1 -1
  246. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  247. package/dist/components/layout/Board/Widget.js +1 -1
  248. package/dist/components/layout/Board/WidgetHost.js +1 -1
  249. package/dist/components/layout/Board/board-context.js +1 -1
  250. package/dist/components/layout/Board/board-store.js +1 -1
  251. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  252. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  253. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  254. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  255. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  256. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  257. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  258. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  259. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  260. package/dist/components/layout/Board/index.js +1 -1
  261. package/dist/components/layout/Board/responsive-utils.js +1 -1
  262. package/dist/components/layout/Board/use-board-layout.js +1 -1
  263. package/dist/components/layout/Board/use-board-registry.js +1 -1
  264. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  265. package/dist/components/layout/Board/use-board-selection.js +1 -1
  266. package/dist/components/layout/Flex.js +1 -1
  267. package/dist/components/layout/Flow.js +1 -1
  268. package/dist/components/layout/Grid.js +1 -1
  269. package/dist/components/layout/Panel.js +1 -1
  270. package/dist/components/layout/Prefix.js +1 -1
  271. package/dist/components/layout/ResizablePanel.js +1 -1
  272. package/dist/components/layout/Space.js +1 -1
  273. package/dist/components/layout/Suffix.js +1 -1
  274. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  275. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  276. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  277. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  278. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  279. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  280. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  281. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  282. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  283. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  284. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  285. package/dist/components/navigation/Tabs/styled.js +1 -1
  286. package/dist/components/navigation/Tabs/types.js +1 -1
  287. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  288. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  289. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  290. package/dist/components/other/Calendar/Calendar.js +1 -1
  291. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  292. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  293. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  294. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  295. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  296. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  297. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  298. package/dist/components/other/Calendar/styled.js +1 -1
  299. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  300. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  301. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  302. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  303. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  304. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  305. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  306. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  307. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  308. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  309. package/dist/components/overlays/Dialog/context.js +1 -1
  310. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  311. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  312. package/dist/components/overlays/Modal/Modal.js +1 -1
  313. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  314. package/dist/components/overlays/Modal/Overlay.js +1 -1
  315. package/dist/components/overlays/Modal/Popover.js +1 -1
  316. package/dist/components/overlays/Modal/Tray.js +1 -1
  317. package/dist/components/overlays/Modal/Underlay.js +1 -1
  318. package/dist/components/overlays/Notifications/Notification.js +1 -1
  319. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  320. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  321. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  322. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  323. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  324. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  325. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  326. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  327. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  328. package/dist/components/overlays/Notifications/index.js +1 -1
  329. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  330. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  331. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  332. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  333. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  334. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  335. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  336. package/dist/components/overlays/Toast/index.js +1 -1
  337. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  338. package/dist/components/overlays/Toast/useToast.js +1 -1
  339. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  340. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  341. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  342. package/dist/components/overlays/Tooltip/context.js +1 -1
  343. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  344. package/dist/components/portal/Portal.js +1 -1
  345. package/dist/components/portal/PortalProvider.js +1 -1
  346. package/dist/components/portal/usePortal.js +1 -1
  347. package/dist/components/shared/DraggableCollection.js +1 -1
  348. package/dist/components/shared/InvalidIcon.js +1 -1
  349. package/dist/components/shared/ValidIcon.js +1 -1
  350. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  351. package/dist/components/status/Spin/Cube.js +1 -1
  352. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  353. package/dist/components/status/Spin/Spin.js +1 -1
  354. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  355. package/dist/data/item-themes.js +1 -1
  356. package/dist/data/themes.js +1 -1
  357. package/dist/eslint-plugin/defaults.generated.js +1 -1
  358. package/dist/eslint-plugin/index.js +1 -1
  359. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  360. package/dist/i18n/I18nProvider.js +1 -1
  361. package/dist/i18n/createFormatter.js +1 -1
  362. package/dist/i18n/index.js +1 -1
  363. package/dist/i18n/instance.js +1 -1
  364. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  365. package/dist/i18n/locales/en-US/uikit.js +1 -1
  366. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  367. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  368. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  369. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  370. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  371. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  372. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  373. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  374. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  375. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  376. package/dist/i18n/locales.js +1 -1
  377. package/dist/i18n/useFormatter.js +1 -1
  378. package/dist/i18n/useI18n.js +1 -1
  379. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  380. package/dist/icons/AdjustmentsIcon.js +1 -1
  381. package/dist/icons/AiIcon.js +1 -1
  382. package/dist/icons/AreaChartIcon.js +1 -1
  383. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  384. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  385. package/dist/icons/BackwardIcon.js +1 -1
  386. package/dist/icons/BarChartIcon.js +1 -1
  387. package/dist/icons/BellFilledIcon.js +1 -1
  388. package/dist/icons/BellIcon.js +1 -1
  389. package/dist/icons/BooleanIcon.js +1 -1
  390. package/dist/icons/CalendarEditIcon.js +1 -1
  391. package/dist/icons/CalendarIcon.js +1 -1
  392. package/dist/icons/CaretDownIcon.js +1 -1
  393. package/dist/icons/CaretUpIcon.js +1 -1
  394. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  395. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  396. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  397. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  398. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  399. package/dist/icons/ChartBarLineIcon.js +1 -1
  400. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  401. package/dist/icons/ChartBarStackedIcon.js +1 -1
  402. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  403. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  404. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  405. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  406. package/dist/icons/ChartBubbleIcon.js +1 -1
  407. package/dist/icons/ChartDonut2Icon.js +1 -1
  408. package/dist/icons/ChartFunnelIcon.js +1 -1
  409. package/dist/icons/ChartHeatmapIcon.js +1 -1
  410. package/dist/icons/ChartKPIIcon.js +1 -1
  411. package/dist/icons/ChartPie2Icon.js +1 -1
  412. package/dist/icons/ChartScatterIcon.js +1 -1
  413. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  414. package/dist/icons/CheckCircleIcon.js +1 -1
  415. package/dist/icons/CheckIcon.js +1 -1
  416. package/dist/icons/CircleFilledIcon.js +1 -1
  417. package/dist/icons/ClearIcon.js +1 -1
  418. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  419. package/dist/icons/CloseCircleIcon.js +1 -1
  420. package/dist/icons/CloseIcon.js +1 -1
  421. package/dist/icons/CodeIcon.js +1 -1
  422. package/dist/icons/ColumnTotalIcon.js +1 -1
  423. package/dist/icons/CopyIcon.js +1 -1
  424. package/dist/icons/CountIcon.js +1 -1
  425. package/dist/icons/CubeIcon.js +1 -1
  426. package/dist/icons/CubePauseIcon.js +1 -1
  427. package/dist/icons/CubePlayIcon.js +1 -1
  428. package/dist/icons/CurrencyDollarIcon.js +1 -1
  429. package/dist/icons/DangerIcon.js +1 -1
  430. package/dist/icons/DashboardIcon.js +1 -1
  431. package/dist/icons/DatabaseIcon.js +1 -1
  432. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  433. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  434. package/dist/icons/DirectionIcon.js +1 -1
  435. package/dist/icons/DonutIcon.js +1 -1
  436. package/dist/icons/DownIcon.js +1 -1
  437. package/dist/icons/EditIcon.js +1 -1
  438. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  439. package/dist/icons/ExclamationCircleIcon.js +1 -1
  440. package/dist/icons/ExclamationIcon.js +1 -1
  441. package/dist/icons/EyeIcon.js +1 -1
  442. package/dist/icons/EyeInvisibleIcon.js +1 -1
  443. package/dist/icons/FilterIcon.js +1 -1
  444. package/dist/icons/FolderFilledIcon.js +1 -1
  445. package/dist/icons/FolderIcon.js +1 -1
  446. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  447. package/dist/icons/FolderOpenIcon.js +1 -1
  448. package/dist/icons/ForwardIcon.js +1 -1
  449. package/dist/icons/GripVerticalIcon.js +1 -1
  450. package/dist/icons/HierarchyIcon.js +1 -1
  451. package/dist/icons/HierarchyOpenIcon.js +1 -1
  452. package/dist/icons/Icon.js +1 -1
  453. package/dist/icons/InfoCircleIcon.js +1 -1
  454. package/dist/icons/InfoIcon.js +1 -1
  455. package/dist/icons/KeyIcon.js +1 -1
  456. package/dist/icons/LeftIcon.js +1 -1
  457. package/dist/icons/LineChartIcon.js +1 -1
  458. package/dist/icons/LoadingIcon.js +1 -1
  459. package/dist/icons/LockFilledIcon.js +1 -1
  460. package/dist/icons/LockIcon.js +1 -1
  461. package/dist/icons/MoreIcon.js +1 -1
  462. package/dist/icons/NotAllowedIcon.js +1 -1
  463. package/dist/icons/Number123Icon.js +1 -1
  464. package/dist/icons/NumberIcon.js +1 -1
  465. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  466. package/dist/icons/PauseCircleIcon.js +1 -1
  467. package/dist/icons/PauseIcon.js +1 -1
  468. package/dist/icons/PercentageIcon.js +1 -1
  469. package/dist/icons/PieChartIcon.js +1 -1
  470. package/dist/icons/PipetteIcon.js +1 -1
  471. package/dist/icons/PlayCircleIcon.js +1 -1
  472. package/dist/icons/PlayIcon.js +1 -1
  473. package/dist/icons/PlusIcon.js +1 -1
  474. package/dist/icons/ProgressBarIcon.js +1 -1
  475. package/dist/icons/ReloadIcon.js +1 -1
  476. package/dist/icons/ReportIcon.js +1 -1
  477. package/dist/icons/ReturnIcon.js +1 -1
  478. package/dist/icons/RightIcon.js +1 -1
  479. package/dist/icons/RowTotalsIcon.js +1 -1
  480. package/dist/icons/SchemeIcon.js +1 -1
  481. package/dist/icons/SearchIcon.js +1 -1
  482. package/dist/icons/SemanticQueryIcon.js +1 -1
  483. package/dist/icons/SettingsIcon.js +1 -1
  484. package/dist/icons/ShieldFilledIcon.js +1 -1
  485. package/dist/icons/ShieldIcon.js +1 -1
  486. package/dist/icons/SlashIcon.js +1 -1
  487. package/dist/icons/SparklesIcon.js +1 -1
  488. package/dist/icons/SqlIcon.js +1 -1
  489. package/dist/icons/StatsIcon.js +1 -1
  490. package/dist/icons/StopIcon.js +1 -1
  491. package/dist/icons/StringIcon.js +1 -1
  492. package/dist/icons/SubtotalsIcon.js +1 -1
  493. package/dist/icons/SwitchIcon.js +1 -1
  494. package/dist/icons/TableIcon.js +1 -1
  495. package/dist/icons/ThumbsDownIcon.js +1 -1
  496. package/dist/icons/ThumbsUpIcon.js +1 -1
  497. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  498. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  499. package/dist/icons/ThunderboltIcon.js +1 -1
  500. package/dist/icons/TimeIcon.js +1 -1
  501. package/dist/icons/TrashIcon.js +1 -1
  502. package/dist/icons/UnlockIcon.js +1 -1
  503. package/dist/icons/UpIcon.js +1 -1
  504. package/dist/icons/UserGroupIcon.js +1 -1
  505. package/dist/icons/UserIcon.js +1 -1
  506. package/dist/icons/UserLockIcon.js +1 -1
  507. package/dist/icons/ViewIcon.js +1 -1
  508. package/dist/icons/WarningFilledIcon.js +1 -1
  509. package/dist/icons/WarningIcon.js +1 -1
  510. package/dist/icons/wrap-icon.js +1 -1
  511. package/dist/index.js +1 -1
  512. package/dist/probe/canonicalize.js +1 -1
  513. package/dist/probe/css.js +1 -1
  514. package/dist/probe/index.js +1 -1
  515. package/dist/provider.js +1 -1
  516. package/dist/providers/TrackingProvider.js +1 -1
  517. package/dist/providers/navigationAdapter.default.js +1 -1
  518. package/dist/tokens/all-tokens.js +1 -1
  519. package/dist/tokens/base.js +1 -1
  520. package/dist/tokens/color-seed.js +1 -1
  521. package/dist/tokens/color-theme.js +1 -1
  522. package/dist/tokens/colors.js +1 -1
  523. package/dist/tokens/layout.js +1 -1
  524. package/dist/tokens/lazy-styles.js +1 -1
  525. package/dist/tokens/legacy-color.js +1 -1
  526. package/dist/tokens/palette-config.js +1 -1
  527. package/dist/tokens/palette.js +1 -1
  528. package/dist/tokens/resolve.js +1 -1
  529. package/dist/tokens/shadows.js +1 -1
  530. package/dist/tokens/sizes.js +1 -1
  531. package/dist/tokens/spacing.js +1 -1
  532. package/dist/tokens/typography.js +1 -1
  533. package/dist/utils/ResizeSensor.js +1 -1
  534. package/dist/utils/colors.js +1 -1
  535. package/dist/utils/dotize.js +1 -1
  536. package/dist/utils/is-dev-env.js +1 -1
  537. package/dist/utils/modules.js +1 -1
  538. package/dist/utils/promise.js +1 -1
  539. package/dist/utils/raf.js +1 -1
  540. package/dist/utils/random.js +1 -1
  541. package/dist/utils/range.js +1 -1
  542. package/dist/utils/react/RenderCache.js +1 -1
  543. package/dist/utils/react/Slots.js +1 -1
  544. package/dist/utils/react/chain.js +1 -1
  545. package/dist/utils/react/disabledProps.js +1 -1
  546. package/dist/utils/react/escapePropagation.js +1 -1
  547. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  548. package/dist/utils/react/index.js +1 -1
  549. package/dist/utils/react/interactions.js +1 -1
  550. package/dist/utils/react/isTextOnly.js +1 -1
  551. package/dist/utils/react/mapProps.js +1 -1
  552. package/dist/utils/react/mergeProps.js +1 -1
  553. package/dist/utils/react/nullableValue.js +1 -1
  554. package/dist/utils/react/programmaticFocus.js +1 -1
  555. package/dist/utils/react/resolveIcon.js +1 -1
  556. package/dist/utils/react/sharedStore.js +1 -1
  557. package/dist/utils/react/useBufferedValue.js +1 -1
  558. package/dist/utils/react/useCombinedRefs.js +1 -1
  559. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  560. package/dist/utils/react/useEventBus.js +1 -1
  561. package/dist/utils/react/useId.js +1 -1
  562. package/dist/utils/react/useIsDarwin.js +1 -1
  563. package/dist/utils/react/useKeySymbols.js +1 -1
  564. package/dist/utils/react/useLayoutEffect.js +1 -1
  565. package/dist/utils/react/useLocalStorage.js +1 -1
  566. package/dist/utils/react/useMergeStyles.js +1 -1
  567. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  568. package/dist/utils/react/usePopoverSync.js +1 -1
  569. package/dist/utils/react/useQaProps.js +1 -1
  570. package/dist/utils/react/useScheme.js +1 -1
  571. package/dist/utils/react/useViewportSize.js +1 -1
  572. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  573. package/dist/utils/selection.js +1 -1
  574. package/dist/utils/styles.js +1 -1
  575. package/dist/utils/tree.js +1 -1
  576. package/dist/utils/warnings.js +1 -1
  577. package/dist/version.js +2 -2
  578. 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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,6 +1,7 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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";
@@ -176,6 +177,12 @@ function LegacyFormRoot(props, ref) {
176
177
  onSubmit: onSubmitCallback,
177
178
  onValuesChange
178
179
  });
180
+ const handleReset = useEvent((event) => {
181
+ event.stopPropagation();
182
+ event.preventDefault();
183
+ form.resetFields();
184
+ form.onValuesChange?.(form.getFormData());
185
+ });
179
186
  let styles = extractStyles(otherProps, CONTAINER_STYLES);
180
187
  if (labelWidth) styles["$label-width"] = labelWidth;
181
188
  let domRef = useObjectRef(ref);
@@ -217,6 +224,7 @@ function LegacyFormRoot(props, ref) {
217
224
  horizontal: isHorizontal
218
225
  },
219
226
  onSubmit: onSubmitCallback,
227
+ onResetCapture: otherProps.action == null ? handleReset : void 0,
220
228
  children: /* @__PURE__ */ jsx(ModernControllerContext.Provider, {
221
229
  value: null,
222
230
  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","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","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 { 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`. With `action` the browser owns the reset.\n const handleReset = useEvent((event: FormEvent<HTMLFormElement>) => {\n event.stopPropagation();\n event.preventDefault();\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={otherProps.action == null ? handleReset : undefined}\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":";;;;;;;;;;;;;;;;;;;;;;;AA2CA,MAAaiC,cAAczB,cAAc,EAAE,CAAC;AAiB5C,MAAMmC,qBAAmD,EAAE;AAE3D,MAAaC,0BACXpC,cAA4CmC,mBAAmB;;;;;;;;;AAUjE,SAAOE,cAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAuB,MAAA,EAAAC,OAAAC,aAAAJ;CAM7B,IAAAK;AAAA,KAAAJ,EAAA,OAAAG,YAAAH,EAAA,OAAAE,OAAA;AAEGE,OAAA,oBAAA,wBAAA;GAAyC,OAAA;aACvC,oBAAA,wBAAA;IAAyCR,OAAAA;cACvC,oBAAA,YAAA;KAA6BM;KAAQC;MACvC;KACF;IAAmC;AAAAH,IAAA,KAAAG;AAAAH,IAAA,KAAAE;AAAAF,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAJnCI;;AAkBJ,MAAaO,cAAcpD,MAAM;CAC/BqD,IAAI;CACJC,IAAI;CACJC,QAAQ;EAaN,cAAc;EAEdC,SAAS;GACP,IAAI;GACJC,YAAY;GACZ,cAAc;GACf;EACDC,MAAM;GACJ,IAAI;GACJD,YAAY;GACZ,cAAc;GACf;EACDE,YAAY;GACV,IAAI;GACJF,YAAY;GACZ,cAAc;GACf;EACDG,KAAK;GACH,IAAI;GACJ,cAAc;GACf;EACDC,UAAU;GACR,IAAI;GACJ,cAAc;GACf;EACDC,QAAQ;GACN,IAAI;GACJ,cAAc;GACf;EACD,gBAAgB;EAClB;CACD,CAAC;;;;;;AAOF,SAAOC,aAAAhB,OAAA;CAAA,MAAAN,IAAAC,EAAA,EAAA;CACL,MAAAsB,eAAqBvD,WAAW6B,wBAAwB;CACxD,MAAA2B,MAAYxD,WAAWkB,YAAY;CACnC,MAAAuC,SAAezD,WAAWW,wBAAwB;CAAC,IAAAoB;AAAA,KAAAC,EAAA,OAAAyB,QAAA;AAI7C1B,OAAA0B,SAAA,EAAAC,MAAiBD,QAAa,GAA9B,EAA8B;AAAAzB,IAAA,KAAAyB;AAAAzB,IAAA,KAAAD;OAAAA,MAAAC,EAAA;CAAA,IAAAI;AAAA,KAAAJ,EAAA,OAAAwB,OAAAxB,EAAA,OAAAuB,gBAAAvB,EAAA,OAAAM,SAAAN,EAAA,OAAAD,IAAA;AAF7BK,OAAA;GAAA,GACFmB;GAAY,GACXxB;GAA8B,GAC/ByB;GAAG,GACHlB;GACJ;AAAAN,IAAA,KAAAwB;AAAAxB,IAAA,KAAAuB;AAAAvB,IAAA,KAAAM;AAAAN,IAAA,KAAAD;AAAAC,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QALMI;;AAQT,MAAauB,gBAAgB,IAAIC,IAAI;CACnC;CACA;CACA;CACA;CACA;CACD,CAAC;;;;;AA+BF,SAASW,eACPjC,OACAG,KACA;AACA;AAGAH,SAAQ7B,mBAAmBL,iBAAiBkC,MAAM,CAAC;CACnD,IAAI,EACFO,IACAiB,MACA3B,UACAf,eACAE,aACAC,oBACAiD,YACAC,YACAC,WACAC,SACAtD,aACAG,iBACAE,WACAqC,eACAE,gBACAxC,eAAe,MACfiC,MACAY,YACAJ,UACAC,gBACA,GAAGS,eACDtC;CACJ,MAAMuC,mBAAmB5E,OAAO8D,cAAc;CAC9C,MAAMe,cAAc7E,OAAO,KAAK;CAChC,MAAM8E,eAAezD,gBAAgB;AAErC,KAAI,CAACA,YACHA,eAAc;AAGhB,KAAI,CAACF,cACHA,iBAAgB2D,eAAe,SAAS;AAG1C,KAAI,CAACT,WACHA,cAAaS,eAAe,SAASC;AAGvCvC,OAAMlC,gBAAgBkC,IAAI;CAE1B,IAAIwC;AAEJ,MAAKf,YAAYC,mBAAmB,CAACS,WAAWM,OAC9CD,oBAAmB,OAAOE,MAAM;AAC9B,MAAIA,KAAKA,GAAGC,gBAAgB;AAC1BD,QAAKA,GAAGC,kBAAkBD,GAAGC,gBAAgB;AAC7CD,QAAKA,GAAGE,mBAAmBF,GAAGE,iBAAiB;AAE/C,OAAIF,EAAEG,aAAa;IACjB,MAAMC,MAAMJ,EAAEG;AAEd,QACEC,IAAIC,aACJD,IAAIC,UAAUC,aAAa,OAAO,KAAK,SAEvC;;;AAKN,MAAI,CAAC/B,QAAQA,KAAKgC,aAAc;AAEhChC,OAAKiC,cAAc;AACnBjC,OAAKkC,cAAc,KAAK;AAExB,MAAI;AACF,OAAI;AACF,UAAMlC,KAAKmC,gBAAgB;YACpBV,KAAG;AACVzB,UAAMkC,cAAc,MAAM;AAE1B;;AAGF,SAAMtF,SAAS;AACf,SAAM4D,WAAWR,KAAKoC,aAAa,CAAC;WAC7BX,KAAG;AACV,SAAM7E,SAAS;AAGfoD,QAAKiC,cAAcR;AAEnBhB,oBAAiBgB,IAAE;AAEnB,OAAIA,eAAaY,MACf,OAAMZ;YAEA;AACRzB,SAAMkC,cAAc,MAAM;;;AAQhC,EAAClC,QAAQ1C,QAAW0C,MAAMjB,OAAOA,IAAIuD,SAAS;EAC5C9B,UAAUe;EACVhB;EACD,CAAC;CAQF,MAAMgC,cAAc/F,UAAUgG,UAAsC;AAClEA,QAAMb,iBAAiB;AACvBa,QAAMd,gBAAgB;AACtB1B,OAAKyC,aAAa;AAClBzC,OAAKO,iBAAiBP,KAAKoC,aAAa,CAAC;GACzC;CAEF,IAAIhD,SAAStC,cAAcoE,YAAYzF,iBAAiB;AAExD,KAAImF,WACFxB,QAAO,kBAAkBwB;CAG3B,IAAI8B,SAASnH,aAAawD,IAAI;CAE9B,MAAMc,eAA6C;EACjDnC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC,UAAUmC;EACX;CAED,IAAIN,MAAM;EACR,GAAGD;EACHG;EACAiC,aAAajC,KAAKiC;EACnB;AAED,KAAIb,YAAYkB,WAAWtC,MACzB;MAAIK,eAAe;AACjBL,QAAK2C,sBAAsBtC,cAAc;AACzCL,QAAKyC,YAAYnB,QAAW,KAAK;AACjCF,eAAYkB,UAAU;;;AAI1B,KAAInB,iBAAiBmB,YAAYjC,eAAe;AAC9CL,QAAM2C,sBAAsBtC,iBAAiB,EAAE,CAAC;AAChDc,mBAAiBmB,UAAUjC;;AAG7B,QACE,oBAAC;EACC,GAAI1E,gBAAgBuF,YAAY,EAAE0B,WAAW3C,eAAe,CAAC;EAC7D,KAAKyC;EACL;EACIvD;EACIC;EACR,MAAM;GACJ,aAAa1B,kBAAkB;GAC/B,aAAaA,kBAAkB;GAC/B4B,YAAY+B;GACb;EACD,UAAUE;EACV,gBAAgBL,WAAWM,UAAU,OAAOe,cAAcjB;YAE1D,oBAAC,wBAAwB;GAAS,OAAO;aACvC,oBAAC,wBAAwB;IAAS,OAAOzB;cACvC,oBAAC,YAAY;KAAS,OAAOC;eAC3B,oBAAC;MACC,YAAY;MACAgB;MACAC;MACDC;MACFC;MAERxC;OACO;MACU;KACU;IACF;GACtB;;AAIlB,MAAMoE,kBAAkB3G,WAAW2E,eAAe;AAMlD,AAACgC,gBAAwBC,cAAc;;;;;;AAOvC,SAAAC,KAAAnE,OAAAG,KAAA;CAAA,MAAAT,IAAAC,EAAA,EAAA;AAIE,KAAIvB,uBAAuB4B,MAAKoB,KAAM,EAAA;EACR,MAAA3B,KAAAO;EAA2B,IAAAF;AAAA,MAAAJ,EAAA,OAAAS,OAAAT,EAAA,OAAAD,IAAA;AAAhDK,QAAA,oBAAC;IAAc,GAAML;IAAmCU;KAAO;AAAAT,KAAA,KAAAS;AAAAT,KAAA,KAAAD;AAAAC,KAAA,KAAAI;QAAAA,MAAAJ,EAAA;AAAA,SAA/DI;;CAGoB,MAAAL,KAAAO;CAAyB,IAAAF;AAAA,KAAAJ,EAAA,OAAAS,OAAAT,EAAA,OAAAD,IAAA;AAA/CK,OAAA,oBAAA;GAA8D,GAAxCL;GAAiCU;IAAO;AAAAT,IAAA,KAAAS;AAAAT,IAAA,KAAAD;AAAAC,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAA9DI;;;;;AAMT,MAAMsE,QAAQ9G,WAAW6G,KAAK;AAE9B,AAACC,MAAcF,cAAc"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
4
4
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { useProviderProps } from "../../../../provider.js";
3
3
  import { Button } from "../../../actions/Button/Button.js";
4
4
  import { isModernFormController } from "../backend.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { useI18n } from "../../../i18n/useI18n.js";
3
3
  import { ModernControllerContext } from "./modern/context.js";
4
4
  import { FormContext } from "./Form.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  //#region src/components/form/Form/backend.ts
3
3
  /**
4
4
  * Nominal branding for the two Form backends (modernization plan §5.1).
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { useFormControllerContext } from "./modern/context.js";
3
3
  import { useForm } from "./use-form.js";
4
4
  import { FormContext, FormScopeMask, _Form, useFormProps } from "./Form.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { useEvent } from "../../../../_internal/hooks/use-event.js";
3
3
  import { useProviderProps } from "../../../../provider.js";
4
4
  import { Button } from "../../../actions/Button/Button.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/form/Form/modern/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { FORM_BACKEND, isModernFormController } from "../backend.js";
3
3
  import { createFormField } from "./field.js";
4
4
  import { createFormStore } from "./store.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { getFieldKey, hasPath, normalizePath, readPath } from "./values.js";
3
3
  import { getControllerInternals } from "./controller.js";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { normalizePath } from "./values.js";
3
3
 
4
4
  //#region src/components/form/Form/modern/field.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../../utils/react/useLayoutEffect.js";
3
3
  import { ModernControllerContext } from "./context.js";
4
4
  import { getFieldKey, normalizePath, readPath } from "./values.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { FORM_BACKEND } from "../backend.js";
3
3
  import { createValueSnapshotter, defineValue, formValueEqual, freezeContainer, getFieldKey, hasPath, isPlainObject, normalizePath, pathValueChanged, readPath, readonlySet, sameMembers, writePath } from "./values.js";
4
4
  import { rulesSignature, runRules } from "./validation.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { applyRule } from "../validation.js";
3
3
 
4
4
  //#region src/components/form/Form/modern/validation.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  //#region src/components/form/Form/modern/values.ts
3
3
  const ownedContainers = /* @__PURE__ */ new WeakSet();
4
4
  function freezeContainer(value) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../../utils/react/useLayoutEffect.js";
3
3
  import { useEvent } from "../../../../_internal/hooks/use-event.js";
4
4
  import { isModernFormController } from "../backend.js";
@@ -1,4 +1,5 @@
1
1
 
2
+ import { ModernFormBrand } from "../backend.js";
2
3
  import { ValidateTrigger } from "../../../../shared/form.js";
3
4
  import "../../../../shared/index.js";
4
5
  import { FieldTypes } from "../types.js";
@@ -23,8 +24,19 @@ type UseFieldPropsParams = {
23
24
  */
24
25
  unsafe__isDisabled?: boolean;
25
26
  };
26
- /** Preserve the input's prop shape while exposing a DOM-safe name. */
27
- type ResolvedFieldProps<Props> = { [Key in keyof Props]: Key extends 'name' ? string | undefined : Props[Key] };
27
+ /** Binding inputs `useFieldProps` always strips before it returns. */
28
+ type StrippedFieldKey = 'field' | 'dependsOn' | 'deps';
29
+ /**
30
+ * A modern controller is stripped at runtime, so each member of `form` that is
31
+ * one becomes `undefined`; a legacy instance survives, and `any` stays `any`.
32
+ * Distributive, so it still applies when `Props` is a type parameter.
33
+ */
34
+ type ResolvedFieldForm<Form> = Form extends ModernFormBrand ? undefined : Form;
35
+ /**
36
+ * The input's declared prop shape minus what the hook always strips: a DOM-safe
37
+ * name, no binding inputs, and no modern controller in `form`.
38
+ */
39
+ type ResolvedFieldProps<Props> = { [Key in keyof Props as Key extends StrippedFieldKey ? never : Key]: Key extends 'name' ? string | undefined : Key extends 'form' ? ResolvedFieldForm<Props[Key]> : Props[Key] };
28
40
  /**
29
41
  * The single entry point for input components (see
30
42
  * `docs/rules/input-components.md`).
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-013a20c | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-65f5135 | 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 { warn } from "../../../../utils/warnings.js";
@@ -1 +1 @@
1
- {"version":3,"file":"use-field-props.js","names":["useDebugValue","useId","useState","useEvent","useProviderProps","mergeProps","warn","useValidationProps","isModernFormController","useInsideLegacyField","useFormProps","getFieldKey","useFieldBinding","ValidateTrigger","FieldTypes","UseFieldProps","UseFieldPropsParams","valuePropsMapper","value","onChange","defaultValidationTrigger","unsafe__isDisabled","defaultValuePropsMapper","ResolvedFieldProps","Props","Key","useFieldProps","inputProps","t0","$","_c","t1","undefined","params","provided","t2","field","options","form","name","path","props","isDisabled","t3","t4","isInsideLegacyField","rules","hasName","generatedId","isBound","t5","t6","unbound","isOutsideOfForm","t7","dontTouch","validateTrigger","onChangeEvent","t8","resolveResult","id","result","labelProps","for","valueProps","_form","_fieldOnChange","onBlur","_fieldOnBlur","fieldRest","result_0","resolved","result_1","_descriptor","dependsOn","_dependsOn","deps","_deps","domProps","namedProps"],"sources":["../../../../../src/components/form/Form/use-field/use-field-props.tsx"],"sourcesContent":["import { useDebugValue, useId, useState } from 'react';\n\nimport { useEvent } from '../../../../_internal/index';\nimport { useProviderProps } from '../../../../provider';\nimport { mergeProps } from '../../../../utils/react/index';\nimport { warn } from '../../../../utils/warnings';\nimport { useValidationProps } from '../../validation/index';\nimport { isModernFormController } from '../backend';\nimport { useInsideLegacyField } from '../Field';\nimport { useFormProps } from '../Form';\nimport { getFieldKey } from '../modern/values';\n\nimport { useFieldBinding } from './use-field-binding';\n\nimport type { ValidateTrigger } from '../../../../shared/index';\nimport type { FieldTypes } from '../types';\nimport type { UseFieldProps } from './types';\n\nexport type UseFieldPropsParams = {\n valuePropsMapper?: ({ value, onChange }) => any;\n /**\n * @default 'onBlur'\n */\n defaultValidationTrigger?: ValidateTrigger;\n /**\n * prop helps to prevent calling hook conditionally, but changing this prop during render is unsafe and forbidden\n * If you want to change this prop after mount, remount the component with a new value.\n */\n unsafe__isDisabled?: boolean;\n};\n\nconst defaultValuePropsMapper = ({ value, onChange }) => ({\n value: value ?? null,\n onChange,\n});\n\n/** Preserve the input's prop shape while exposing a DOM-safe name. */\ntype ResolvedFieldProps<Props> = {\n [Key in keyof Props]: Key extends 'name' ? string | undefined : Props[Key];\n};\n\n/**\n * The single entry point for input components (see\n * `docs/rules/input-components.md`).\n *\n * Every hook below runs on every render, whatever the mode: standalone (no\n * `name`), inside the deprecated `<Field>`, disabled through\n * `unsafe__isDisabled`, or bound to a form. The mode only decides which props\n * come back, so an input can gain or lose a `name`, or move between forms,\n * without changing its hook order. The legacy binding (`useField`) is the\n * legacy backend's adapter and is inert when the field is not bound to it.\n */\nexport function useFieldProps<\n T extends FieldTypes,\n Props extends UseFieldProps<T>,\n>(\n inputProps: Props,\n params: UseFieldPropsParams = {},\n): ResolvedFieldProps<Props> {\n // Provider defaults, then form context, then the normalization of the\n // deprecated `validationState` prop into `isInvalid`/`isValid`.\n const provided = useProviderProps(inputProps);\n const props: Props = useValidationProps(\n useFormProps(\n provided.field\n ? {\n ...provided,\n ...provided.field.options,\n form: provided.field.form,\n name:\n typeof provided.field.path === 'string'\n ? provided.field.path\n : getFieldKey(provided.field.path),\n }\n : provided,\n ),\n );\n\n // The initial value is what counts: changing it after mount is unsupported.\n const [isDisabled] = useState(params.unsafe__isDisabled ?? false);\n\n const {\n valuePropsMapper = defaultValuePropsMapper,\n defaultValidationTrigger = 'onBlur',\n } = params;\n\n const isInsideLegacyField = useInsideLegacyField();\n\n if (props.rules && !props.name) {\n warn(\n `The \"rules\" prop is not suitable for fields that are not part of a form. Use \"name\" prop to link the field to a form.`,\n );\n }\n\n const hasName = props.name != null;\n const generatedId = useId();\n const isBound = hasName && !isInsideLegacyField && !isDisabled;\n\n const field = useFieldBinding<T, Props>(\n props,\n {\n defaultValidationTrigger: params.defaultValidationTrigger,\n unbound: !isBound,\n },\n generatedId,\n );\n\n const isOutsideOfForm = field?.form == null;\n\n const onChangeEvent = useEvent((value, dontTouch: boolean) => {\n field?.onChange?.(\n value,\n dontTouch,\n field?.validateTrigger ?? defaultValidationTrigger,\n );\n });\n\n function resolveResult(): Props {\n if (isInsideLegacyField || isDisabled) {\n return props;\n }\n\n if (!hasName) {\n // Standalone field - just add generated ID if not provided\n if (!props.id) {\n const result = { ...props, id: generatedId };\n\n if (result.id && !result.labelProps) {\n result.labelProps = { for: result.id };\n } else if (result.id && result.labelProps && !result.labelProps.for) {\n result.labelProps = { ...result.labelProps, for: result.id };\n }\n\n return result as Props;\n }\n return props;\n }\n\n if (props.rules && isOutsideOfForm) {\n warn(\n `The \"rules\" prop is not supported for fields that are not part of a form. The \"${props.name}\" field is placed outside the form.`,\n );\n }\n\n const valueProps = !isOutsideOfForm\n ? valuePropsMapper({\n value: field.value,\n onChange: onChangeEvent,\n })\n : {};\n\n // Exclude `form` (it must never reach a DOM node) and the field's own\n // handlers: `valueProps` already routes the component's change event into\n // `field.onChange` under the name the component listens to, and `onBlur` is\n // added once below. `mergeProps` chains same-named handlers, so merging them\n // here as well made every user change and every blur run the field handler\n // twice — and onChange/onBlur-triggered validation validate twice.\n const {\n form: _form,\n onChange: _fieldOnChange,\n onBlur: _fieldOnBlur,\n ...fieldRest\n } = field ?? {};\n\n const result: Props = isOutsideOfForm\n ? props\n : mergeProps(props, fieldRest, valueProps, {\n validateTrigger: field.validateTrigger ?? defaultValidationTrigger,\n // Chained after the caller's own `onBlur` by `mergeProps`.\n onBlur: field.onBlur,\n });\n\n return result.id\n ? { ...result, labelProps: { ...result.labelProps, for: result.id } }\n : result;\n }\n\n const resolved = resolveResult();\n // React Aria forwards `form` to native inputs. A modern controller is a\n // binding source, never an HTML form id, including in standalone/group mode.\n const result = isModernFormController(resolved.form)\n ? { ...resolved, form: undefined }\n : resolved;\n\n const {\n field: _descriptor,\n dependsOn: _dependsOn,\n deps: _deps,\n ...domProps\n } = result;\n // Standalone and group-scoped inputs do not merge a bound field's props.\n // Their tuple must still become a string before React Aria or DOM forwarding.\n const namedProps =\n domProps.name != null && typeof domProps.name !== 'string'\n ? { ...domProps, name: getFieldKey(domProps.name) }\n : domProps;\n useDebugValue(namedProps);\n\n return namedProps as ResolvedFieldProps<Props>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-field-props.js","names":["useDebugValue","useId","useState","useEvent","useProviderProps","mergeProps","warn","useValidationProps","isModernFormController","useInsideLegacyField","useFormProps","getFieldKey","useFieldBinding","ValidateTrigger","ModernFormBrand","FieldTypes","UseFieldProps","UseFieldPropsParams","valuePropsMapper","value","onChange","defaultValidationTrigger","unsafe__isDisabled","defaultValuePropsMapper","StrippedFieldKey","ResolvedFieldForm","Form","ResolvedFieldProps","Props","Key","useFieldProps","inputProps","t0","$","_c","t1","undefined","params","provided","t2","field","options","form","name","path","props","isDisabled","t3","t4","isInsideLegacyField","rules","hasName","generatedId","isBound","t5","t6","unbound","isOutsideOfForm","t7","dontTouch","validateTrigger","onChangeEvent","t8","resolveResult","id","result","labelProps","for","valueProps","_form","_fieldOnChange","onBlur","_fieldOnBlur","fieldRest","result_0","resolved","result_1","_descriptor","dependsOn","_dependsOn","deps","_deps","domProps","namedProps"],"sources":["../../../../../src/components/form/Form/use-field/use-field-props.tsx"],"sourcesContent":["import { useDebugValue, useId, useState } from 'react';\n\nimport { useEvent } from '../../../../_internal/index';\nimport { useProviderProps } from '../../../../provider';\nimport { mergeProps } from '../../../../utils/react/index';\nimport { warn } from '../../../../utils/warnings';\nimport { useValidationProps } from '../../validation/index';\nimport { isModernFormController } from '../backend';\nimport { useInsideLegacyField } from '../Field';\nimport { useFormProps } from '../Form';\nimport { getFieldKey } from '../modern/values';\n\nimport { useFieldBinding } from './use-field-binding';\n\nimport type { ValidateTrigger } from '../../../../shared/index';\nimport type { ModernFormBrand } from '../backend';\nimport type { FieldTypes } from '../types';\nimport type { UseFieldProps } from './types';\n\nexport type UseFieldPropsParams = {\n valuePropsMapper?: ({ value, onChange }) => any;\n /**\n * @default 'onBlur'\n */\n defaultValidationTrigger?: ValidateTrigger;\n /**\n * prop helps to prevent calling hook conditionally, but changing this prop during render is unsafe and forbidden\n * If you want to change this prop after mount, remount the component with a new value.\n */\n unsafe__isDisabled?: boolean;\n};\n\nconst defaultValuePropsMapper = ({ value, onChange }) => ({\n value: value ?? null,\n onChange,\n});\n\n/** Binding inputs `useFieldProps` always strips before it returns. */\ntype StrippedFieldKey = 'field' | 'dependsOn' | 'deps';\n\n/**\n * A modern controller is stripped at runtime, so each member of `form` that is\n * one becomes `undefined`; a legacy instance survives, and `any` stays `any`.\n * Distributive, so it still applies when `Props` is a type parameter.\n */\ntype ResolvedFieldForm<Form> = Form extends ModernFormBrand ? undefined : Form;\n\n/**\n * The input's declared prop shape minus what the hook always strips: a DOM-safe\n * name, no binding inputs, and no modern controller in `form`.\n */\ntype ResolvedFieldProps<Props> = {\n [Key in keyof Props as Key extends StrippedFieldKey\n ? never\n : Key]: Key extends 'name'\n ? string | undefined\n : Key extends 'form'\n ? ResolvedFieldForm<Props[Key]>\n : Props[Key];\n};\n\n/**\n * The single entry point for input components (see\n * `docs/rules/input-components.md`).\n *\n * Every hook below runs on every render, whatever the mode: standalone (no\n * `name`), inside the deprecated `<Field>`, disabled through\n * `unsafe__isDisabled`, or bound to a form. The mode only decides which props\n * come back, so an input can gain or lose a `name`, or move between forms,\n * without changing its hook order. The legacy binding (`useField`) is the\n * legacy backend's adapter and is inert when the field is not bound to it.\n */\nexport function useFieldProps<\n T extends FieldTypes,\n Props extends UseFieldProps<T>,\n>(\n inputProps: Props,\n params: UseFieldPropsParams = {},\n): ResolvedFieldProps<Props> {\n // Provider defaults, then form context, then the normalization of the\n // deprecated `validationState` prop into `isInvalid`/`isValid`.\n const provided = useProviderProps(inputProps);\n const props: Props = useValidationProps(\n useFormProps(\n provided.field\n ? {\n ...provided,\n ...provided.field.options,\n form: provided.field.form,\n name:\n typeof provided.field.path === 'string'\n ? provided.field.path\n : getFieldKey(provided.field.path),\n }\n : provided,\n ),\n );\n\n // The initial value is what counts: changing it after mount is unsupported.\n const [isDisabled] = useState(params.unsafe__isDisabled ?? false);\n\n const {\n valuePropsMapper = defaultValuePropsMapper,\n defaultValidationTrigger = 'onBlur',\n } = params;\n\n const isInsideLegacyField = useInsideLegacyField();\n\n if (props.rules && !props.name) {\n warn(\n `The \"rules\" prop is not suitable for fields that are not part of a form. Use \"name\" prop to link the field to a form.`,\n );\n }\n\n const hasName = props.name != null;\n const generatedId = useId();\n const isBound = hasName && !isInsideLegacyField && !isDisabled;\n\n const field = useFieldBinding<T, Props>(\n props,\n {\n defaultValidationTrigger: params.defaultValidationTrigger,\n unbound: !isBound,\n },\n generatedId,\n );\n\n const isOutsideOfForm = field?.form == null;\n\n const onChangeEvent = useEvent((value, dontTouch: boolean) => {\n field?.onChange?.(\n value,\n dontTouch,\n field?.validateTrigger ?? defaultValidationTrigger,\n );\n });\n\n function resolveResult(): Props {\n if (isInsideLegacyField || isDisabled) {\n return props;\n }\n\n if (!hasName) {\n // Standalone field - just add generated ID if not provided\n if (!props.id) {\n const result = { ...props, id: generatedId };\n\n if (result.id && !result.labelProps) {\n result.labelProps = { for: result.id };\n } else if (result.id && result.labelProps && !result.labelProps.for) {\n result.labelProps = { ...result.labelProps, for: result.id };\n }\n\n return result as Props;\n }\n return props;\n }\n\n if (props.rules && isOutsideOfForm) {\n warn(\n `The \"rules\" prop is not supported for fields that are not part of a form. The \"${props.name}\" field is placed outside the form.`,\n );\n }\n\n const valueProps = !isOutsideOfForm\n ? valuePropsMapper({\n value: field.value,\n onChange: onChangeEvent,\n })\n : {};\n\n // Exclude `form` (it must never reach a DOM node) and the field's own\n // handlers: `valueProps` already routes the component's change event into\n // `field.onChange` under the name the component listens to, and `onBlur` is\n // added once below. `mergeProps` chains same-named handlers, so merging them\n // here as well made every user change and every blur run the field handler\n // twice — and onChange/onBlur-triggered validation validate twice.\n const {\n form: _form,\n onChange: _fieldOnChange,\n onBlur: _fieldOnBlur,\n ...fieldRest\n } = field ?? {};\n\n const result: Props = isOutsideOfForm\n ? props\n : mergeProps(props, fieldRest, valueProps, {\n validateTrigger: field.validateTrigger ?? defaultValidationTrigger,\n // Chained after the caller's own `onBlur` by `mergeProps`.\n onBlur: field.onBlur,\n });\n\n return result.id\n ? { ...result, labelProps: { ...result.labelProps, for: result.id } }\n : result;\n }\n\n const resolved = resolveResult();\n // React Aria forwards `form` to native inputs. A modern controller is a\n // binding source, never an HTML form id, including in standalone/group mode.\n const result = isModernFormController(resolved.form)\n ? { ...resolved, form: undefined }\n : resolved;\n\n const {\n field: _descriptor,\n dependsOn: _dependsOn,\n deps: _deps,\n ...domProps\n } = result;\n // Standalone and group-scoped inputs do not merge a bound field's props.\n // Their tuple must still become a string before React Aria or DOM forwarding.\n const namedProps =\n domProps.name != null && typeof domProps.name !== 'string'\n ? { ...domProps, name: getFieldKey(domProps.name) }\n : domProps;\n useDebugValue(namedProps);\n\n return namedProps as unknown as ResolvedFieldProps<Props>;\n}\n"],"mappings":"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"}