@cube-dev/ui-kit 0.0.0-canary-0b79a39 → 0.0.0-canary-c02e70f

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 (620) 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 +23 -21
  13. package/dist/components/GlobalStyles.js.map +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Banner/Banner.js.map +1 -1
  20. package/dist/components/actions/Button/Button.js +1 -1
  21. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js +128 -66
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +451 -280
  26. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  27. package/dist/components/actions/CommandMenu/styled.js +1 -1
  28. package/dist/components/actions/ItemAction/ItemAction.js +57 -93
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  32. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  33. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +49 -69
  36. package/dist/components/actions/Menu/Menu.js.map +1 -1
  37. package/dist/components/actions/Menu/MenuItem.js +1 -1
  38. package/dist/components/actions/Menu/MenuSection.js +1 -1
  39. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  40. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  41. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  42. package/dist/components/actions/Menu/context.js +1 -1
  43. package/dist/components/actions/Menu/styled.js +1 -1
  44. package/dist/components/actions/actions-run.js +1 -1
  45. package/dist/components/actions/index.js +1 -1
  46. package/dist/components/actions/use-action.js +1 -1
  47. package/dist/components/actions/use-anchored-menu.js +1 -1
  48. package/dist/components/actions/use-context-menu.js +1 -1
  49. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  50. package/dist/components/content/Alert/Alert.js +1 -1
  51. package/dist/components/content/Alert/use-alert.js +1 -1
  52. package/dist/components/content/Avatar/Avatar.js +1 -1
  53. package/dist/components/content/Badge/Badge.js +1 -1
  54. package/dist/components/content/Card/Card.js +1 -1
  55. package/dist/components/content/Content.js +1 -1
  56. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  57. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  58. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  59. package/dist/components/content/Disclosure/Disclosure.js +44 -60
  60. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  61. package/dist/components/content/Divider.js +1 -1
  62. package/dist/components/content/Footer.js +1 -1
  63. package/dist/components/content/Header.js +1 -1
  64. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  65. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  66. package/dist/components/content/InlineInput/InlineInput.js +39 -65
  67. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  68. package/dist/components/content/Item/Item.js +208 -263
  69. package/dist/components/content/Item/Item.js.map +1 -1
  70. package/dist/components/content/ItemBadge/ItemBadge.js +70 -145
  71. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  72. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  73. package/dist/components/content/Layout/GridLayout.js +1 -1
  74. package/dist/components/content/Layout/Layout.js +1 -1
  75. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  76. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  77. package/dist/components/content/Layout/LayoutContainer.js +39 -18
  78. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  79. package/dist/components/content/Layout/LayoutContent.js +100 -48
  80. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  81. package/dist/components/content/Layout/LayoutContext.js +211 -95
  82. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  83. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  84. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  85. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  86. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  87. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  88. package/dist/components/content/Layout/LayoutPane.js +240 -123
  89. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  90. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  91. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  92. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  93. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  94. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  95. package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
  96. package/dist/components/content/Layout/index.js +1 -1
  97. package/dist/components/content/Layout/utils.js +1 -1
  98. package/dist/components/content/Paragraph.js +1 -1
  99. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  100. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  101. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  102. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  103. package/dist/components/content/Result/Result.js +28 -48
  104. package/dist/components/content/Result/Result.js.map +1 -1
  105. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  106. package/dist/components/content/Tag/Tag.js +1 -1
  107. package/dist/components/content/Text.js +1 -1
  108. package/dist/components/content/TextItem/TextItem.js +9 -17
  109. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  110. package/dist/components/content/Title.js +1 -1
  111. package/dist/components/content/Tree/Tree.js +1 -1
  112. package/dist/components/content/Tree/TreeNode.js +1 -1
  113. package/dist/components/content/Tree/styled.js +1 -1
  114. package/dist/components/content/Tree/tree-index.js +1 -1
  115. package/dist/components/content/Tree/use-checkbox-tree.js +68 -105
  116. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
  117. package/dist/components/content/Tree/use-load-data.js +1 -1
  118. package/dist/components/content/highlightText.js +1 -1
  119. package/dist/components/content/use-auto-tooltip.js +106 -138
  120. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  121. package/dist/components/data/DataTable/DataTable.js +1 -1
  122. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  123. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  124. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  125. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  126. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  127. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  128. package/dist/components/data/TableBase/RowCollection.js +1 -1
  129. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  130. package/dist/components/data/TableBase/TableRow.js +1 -1
  131. package/dist/components/data/TableBase/TableView.js +1 -1
  132. package/dist/components/data/TableBase/column-menu.js +1 -1
  133. package/dist/components/data/TableBase/column-tint.js +1 -1
  134. package/dist/components/data/TableBase/row-menu.js +1 -1
  135. package/dist/components/data/TableBase/styled.js +1 -1
  136. package/dist/components/data/TableBase/table-tree.js +1 -1
  137. package/dist/components/data/TableBase/types.js +1 -1
  138. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  139. package/dist/components/data/TableBase/use-column-order.js +30 -31
  140. package/dist/components/data/TableBase/use-column-order.js.map +1 -1
  141. package/dist/components/data/TableBase/use-container-width.js +1 -1
  142. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  143. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  144. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  145. package/dist/components/data/TableBase/use-table-search.js +1 -1
  146. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  147. package/dist/components/data/TableBase/use-table-sort.js +38 -42
  148. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  149. package/dist/components/data/TableBase/use-table-sorts.js +19 -57
  150. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  151. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  152. package/dist/components/data/TableBase/use-table-tree-state.js +55 -64
  153. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
  154. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  155. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  156. package/dist/components/fields/Checkbox/context.js +1 -1
  157. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  158. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  159. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  160. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  161. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  162. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  163. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  164. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  165. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  166. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  167. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  168. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  169. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  170. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  171. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  172. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  173. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  174. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  176. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  177. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  178. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  179. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  181. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  182. package/dist/components/fields/DatePicker/period.js +1 -1
  183. package/dist/components/fields/DatePicker/props.js +1 -1
  184. package/dist/components/fields/DatePicker/utils.js +1 -1
  185. package/dist/components/fields/FileInput/FileInput.js +1 -1
  186. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  187. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  188. package/dist/components/fields/Input/Input.js +1 -1
  189. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  190. package/dist/components/fields/ListBox/ListBox.js +1 -1
  191. package/dist/components/fields/ListBox/optionId.js +1 -1
  192. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  193. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  194. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +32 -38
  195. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  196. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  197. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  198. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  199. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  200. package/dist/components/fields/Picker/Picker.js +1 -1
  201. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  202. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  203. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  204. package/dist/components/fields/RadioGroup/context.js +1 -1
  205. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  206. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  207. package/dist/components/fields/Select/Select.js +1 -1
  208. package/dist/components/fields/Slider/Gradation.js +1 -1
  209. package/dist/components/fields/Slider/HueSlider.js +1 -1
  210. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  211. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  212. package/dist/components/fields/Slider/Slider.js +1 -1
  213. package/dist/components/fields/Slider/SliderBase.js +1 -1
  214. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  215. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  216. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  217. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  218. package/dist/components/fields/Slider/elements.js +1 -1
  219. package/dist/components/fields/Slider/index.js +1 -1
  220. package/dist/components/fields/Switch/Switch.js +1 -1
  221. package/dist/components/fields/TagInput/TagInput.js +738 -1139
  222. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  223. package/dist/components/fields/TagInput/TagList.js +1 -1
  224. package/dist/components/fields/TextArea/TextArea.js +1 -1
  225. package/dist/components/fields/TextInput/TextInput.js +1 -1
  226. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  227. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  228. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  229. package/dist/components/fields/TriggerActions.js +1 -1
  230. package/dist/components/fields/color/ColorPanel.js +1 -1
  231. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  232. package/dist/components/fields/color/channels.js +1 -1
  233. package/dist/components/fields/color/color.js +1 -1
  234. package/dist/components/fields/color/context.js +1 -1
  235. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  236. package/dist/components/form/Form/Field.js +10 -15
  237. package/dist/components/form/Form/Field.js.map +1 -1
  238. package/dist/components/form/Form/Form.js +1 -1
  239. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  240. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  241. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  242. package/dist/components/form/Form/SubmitError.js +1 -1
  243. package/dist/components/form/Form/backend.js +1 -1
  244. package/dist/components/form/Form/index.js +1 -1
  245. package/dist/components/form/Form/modern/actions.js +1 -1
  246. package/dist/components/form/Form/modern/context.js +1 -1
  247. package/dist/components/form/Form/modern/controller.js +1 -1
  248. package/dist/components/form/Form/modern/field-binding.js +1 -1
  249. package/dist/components/form/Form/modern/field.js +1 -1
  250. package/dist/components/form/Form/modern/react.js +1 -1
  251. package/dist/components/form/Form/modern/react.js.map +1 -1
  252. package/dist/components/form/Form/modern/store.js +1 -1
  253. package/dist/components/form/Form/modern/validation.js +1 -1
  254. package/dist/components/form/Form/modern/values.js +1 -1
  255. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  256. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  257. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  258. package/dist/components/form/Form/use-field/use-field.js +1 -1
  259. package/dist/components/form/Form/use-form.js +1 -1
  260. package/dist/components/form/Form/validation.js +1 -1
  261. package/dist/components/form/Label.js +1 -1
  262. package/dist/components/form/legacy-tooltip.js +1 -1
  263. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  264. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  265. package/dist/components/form/validation/use-validation-props.js +1 -1
  266. package/dist/components/form/wrapper.js +1 -1
  267. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  268. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  269. package/dist/components/layout/Board/Board.js +1 -1
  270. package/dist/components/layout/Board/BoardProvider.js +1 -1
  271. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  272. package/dist/components/layout/Board/Widget.js +1 -1
  273. package/dist/components/layout/Board/WidgetHost.js +1 -1
  274. package/dist/components/layout/Board/board-context.js +1 -1
  275. package/dist/components/layout/Board/board-store.js +1 -1
  276. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  277. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  278. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  279. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  280. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  281. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  282. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  283. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  284. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  285. package/dist/components/layout/Board/index.js +1 -1
  286. package/dist/components/layout/Board/responsive-utils.js +1 -1
  287. package/dist/components/layout/Board/use-board-layout.js +1 -1
  288. package/dist/components/layout/Board/use-board-registry.js +1 -1
  289. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  290. package/dist/components/layout/Board/use-board-selection.js +1 -1
  291. package/dist/components/layout/Flex.js +1 -1
  292. package/dist/components/layout/Flow.js +1 -1
  293. package/dist/components/layout/Grid.js +1 -1
  294. package/dist/components/layout/Panel.js +129 -48
  295. package/dist/components/layout/Panel.js.map +1 -1
  296. package/dist/components/layout/Prefix.js +1 -1
  297. package/dist/components/layout/ResizablePanel.js +1 -1
  298. package/dist/components/layout/Space.js +1 -1
  299. package/dist/components/layout/Suffix.js +1 -1
  300. package/dist/components/navigation/Pagination/Pagination.js +227 -347
  301. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  302. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  303. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  304. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  305. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  306. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  307. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  308. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  309. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  310. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  311. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  312. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  313. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  314. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  315. package/dist/components/navigation/Tabs/styled.js +1 -1
  316. package/dist/components/navigation/Tabs/types.js +1 -1
  317. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  318. package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
  319. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  320. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  321. package/dist/components/other/Calendar/Calendar.js +1 -1
  322. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  323. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  324. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  325. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  326. package/dist/components/other/Calendar/CalendarPanel.js +497 -515
  327. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  328. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  329. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  330. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  331. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  332. package/dist/components/other/Calendar/styled.js +1 -1
  333. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  334. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  335. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  336. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  337. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  338. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  339. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  340. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  341. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  342. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  343. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  344. package/dist/components/overlays/Dialog/context.js +1 -1
  345. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  346. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  347. package/dist/components/overlays/Modal/Modal.js +1 -1
  348. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  349. package/dist/components/overlays/Modal/Overlay.js +1 -1
  350. package/dist/components/overlays/Modal/Popover.js +1 -1
  351. package/dist/components/overlays/Modal/Tray.js +1 -1
  352. package/dist/components/overlays/Modal/Underlay.js +1 -1
  353. package/dist/components/overlays/Notifications/Notification.js +1 -1
  354. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  355. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  356. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  357. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  358. package/dist/components/overlays/Notifications/OverlayContainer.js +266 -161
  359. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  360. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  361. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  362. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  363. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  364. package/dist/components/overlays/Notifications/index.js +1 -1
  365. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  366. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  367. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  368. package/dist/components/overlays/Notifications/use-persistent-notifications.js +18 -9
  369. package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
  370. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  371. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  372. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  373. package/dist/components/overlays/Toast/index.js +1 -1
  374. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  375. package/dist/components/overlays/Toast/useToast.js +1 -1
  376. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  377. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  378. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  379. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  380. package/dist/components/overlays/Tooltip/context.js +1 -1
  381. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  382. package/dist/components/portal/Portal.js +1 -1
  383. package/dist/components/portal/PortalProvider.js +1 -1
  384. package/dist/components/portal/usePortal.js +1 -1
  385. package/dist/components/shared/DraggableCollection.js +1 -1
  386. package/dist/components/shared/InvalidIcon.js +1 -1
  387. package/dist/components/shared/ValidIcon.js +1 -1
  388. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  389. package/dist/components/status/Spin/Cube.js +1 -1
  390. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  391. package/dist/components/status/Spin/Spin.js +1 -1
  392. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  393. package/dist/data/item-themes.js +1 -1
  394. package/dist/data/themes.js +1 -1
  395. package/dist/eslint-plugin/defaults.generated.js +1 -1
  396. package/dist/eslint-plugin/index.js +1 -1
  397. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  398. package/dist/i18n/I18nProvider.js +1 -1
  399. package/dist/i18n/createFormatter.js +1 -1
  400. package/dist/i18n/index.js +1 -1
  401. package/dist/i18n/instance.js +1 -1
  402. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  403. package/dist/i18n/locales/en-US/uikit.js +1 -1
  404. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  405. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  406. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  407. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  408. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  409. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  410. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  411. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  412. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  413. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  414. package/dist/i18n/locales.js +1 -1
  415. package/dist/i18n/useFormatter.js +1 -1
  416. package/dist/i18n/useFormatter.js.map +1 -1
  417. package/dist/i18n/useI18n.js +1 -1
  418. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  419. package/dist/icons/AdjustmentsIcon.js +1 -1
  420. package/dist/icons/AiIcon.js +1 -1
  421. package/dist/icons/AreaChartIcon.js +1 -1
  422. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  423. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  424. package/dist/icons/BackwardIcon.js +1 -1
  425. package/dist/icons/BarChartIcon.js +1 -1
  426. package/dist/icons/BellFilledIcon.js +1 -1
  427. package/dist/icons/BellIcon.js +1 -1
  428. package/dist/icons/BooleanIcon.js +1 -1
  429. package/dist/icons/CalendarEditIcon.js +1 -1
  430. package/dist/icons/CalendarIcon.js +1 -1
  431. package/dist/icons/CaretDownIcon.js +1 -1
  432. package/dist/icons/CaretUpIcon.js +1 -1
  433. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  434. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  435. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  436. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  437. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  438. package/dist/icons/ChartBarLineIcon.js +1 -1
  439. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  440. package/dist/icons/ChartBarStackedIcon.js +1 -1
  441. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  442. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  443. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  444. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  445. package/dist/icons/ChartBubbleIcon.js +1 -1
  446. package/dist/icons/ChartDonut2Icon.js +1 -1
  447. package/dist/icons/ChartFunnelIcon.js +1 -1
  448. package/dist/icons/ChartHeatmapIcon.js +1 -1
  449. package/dist/icons/ChartKPIIcon.js +1 -1
  450. package/dist/icons/ChartPie2Icon.js +1 -1
  451. package/dist/icons/ChartScatterIcon.js +1 -1
  452. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  453. package/dist/icons/CheckCircleIcon.js +1 -1
  454. package/dist/icons/CheckIcon.js +1 -1
  455. package/dist/icons/CircleFilledIcon.js +1 -1
  456. package/dist/icons/ClearIcon.js +1 -1
  457. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  458. package/dist/icons/CloseCircleIcon.js +1 -1
  459. package/dist/icons/CloseIcon.js +1 -1
  460. package/dist/icons/CodeIcon.js +1 -1
  461. package/dist/icons/ColumnTotalIcon.js +1 -1
  462. package/dist/icons/CopyIcon.js +1 -1
  463. package/dist/icons/CountIcon.js +1 -1
  464. package/dist/icons/CubeIcon.js +1 -1
  465. package/dist/icons/CubePauseIcon.js +1 -1
  466. package/dist/icons/CubePlayIcon.js +1 -1
  467. package/dist/icons/CurrencyDollarIcon.js +1 -1
  468. package/dist/icons/DangerIcon.js +1 -1
  469. package/dist/icons/DashboardIcon.js +1 -1
  470. package/dist/icons/DatabaseIcon.js +1 -1
  471. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  472. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  473. package/dist/icons/DirectionIcon.js +1 -1
  474. package/dist/icons/DonutIcon.js +1 -1
  475. package/dist/icons/DownIcon.js +1 -1
  476. package/dist/icons/EditIcon.js +1 -1
  477. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  478. package/dist/icons/ExclamationCircleIcon.js +1 -1
  479. package/dist/icons/ExclamationIcon.js +1 -1
  480. package/dist/icons/EyeIcon.js +1 -1
  481. package/dist/icons/EyeInvisibleIcon.js +1 -1
  482. package/dist/icons/FilterIcon.js +1 -1
  483. package/dist/icons/FolderFilledIcon.js +1 -1
  484. package/dist/icons/FolderIcon.js +1 -1
  485. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  486. package/dist/icons/FolderOpenIcon.js +1 -1
  487. package/dist/icons/ForwardIcon.js +1 -1
  488. package/dist/icons/GripVerticalIcon.js +1 -1
  489. package/dist/icons/HierarchyIcon.js +1 -1
  490. package/dist/icons/HierarchyOpenIcon.js +1 -1
  491. package/dist/icons/Icon.js +1 -1
  492. package/dist/icons/InfoCircleIcon.js +1 -1
  493. package/dist/icons/InfoIcon.js +1 -1
  494. package/dist/icons/KeyIcon.js +1 -1
  495. package/dist/icons/LeftIcon.js +1 -1
  496. package/dist/icons/LineChartIcon.js +1 -1
  497. package/dist/icons/LoadingIcon.js +1 -1
  498. package/dist/icons/LockFilledIcon.js +1 -1
  499. package/dist/icons/LockIcon.js +1 -1
  500. package/dist/icons/MoreIcon.js +1 -1
  501. package/dist/icons/NotAllowedIcon.js +1 -1
  502. package/dist/icons/Number123Icon.js +1 -1
  503. package/dist/icons/NumberIcon.js +1 -1
  504. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  505. package/dist/icons/PauseCircleIcon.js +1 -1
  506. package/dist/icons/PauseIcon.js +1 -1
  507. package/dist/icons/PercentageIcon.js +1 -1
  508. package/dist/icons/PieChartIcon.js +1 -1
  509. package/dist/icons/PipetteIcon.js +1 -1
  510. package/dist/icons/PlayCircleIcon.js +1 -1
  511. package/dist/icons/PlayIcon.js +1 -1
  512. package/dist/icons/PlusIcon.js +1 -1
  513. package/dist/icons/ProgressBarIcon.js +1 -1
  514. package/dist/icons/ReloadIcon.js +1 -1
  515. package/dist/icons/ReportIcon.js +1 -1
  516. package/dist/icons/ReturnIcon.js +1 -1
  517. package/dist/icons/RightIcon.js +1 -1
  518. package/dist/icons/RowTotalsIcon.js +1 -1
  519. package/dist/icons/SchemeIcon.js +1 -1
  520. package/dist/icons/SearchIcon.js +1 -1
  521. package/dist/icons/SemanticQueryIcon.js +1 -1
  522. package/dist/icons/SettingsIcon.js +1 -1
  523. package/dist/icons/ShieldFilledIcon.js +1 -1
  524. package/dist/icons/ShieldIcon.js +1 -1
  525. package/dist/icons/SlashIcon.js +1 -1
  526. package/dist/icons/SparklesIcon.js +1 -1
  527. package/dist/icons/SqlIcon.js +1 -1
  528. package/dist/icons/StatsIcon.js +1 -1
  529. package/dist/icons/StopIcon.js +1 -1
  530. package/dist/icons/StringIcon.js +1 -1
  531. package/dist/icons/SubtotalsIcon.js +1 -1
  532. package/dist/icons/SwitchIcon.js +1 -1
  533. package/dist/icons/TableIcon.js +1 -1
  534. package/dist/icons/ThumbsDownIcon.js +1 -1
  535. package/dist/icons/ThumbsUpIcon.js +1 -1
  536. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  537. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  538. package/dist/icons/ThunderboltIcon.js +1 -1
  539. package/dist/icons/TimeIcon.js +1 -1
  540. package/dist/icons/TrashIcon.js +1 -1
  541. package/dist/icons/UnlockIcon.js +1 -1
  542. package/dist/icons/UpIcon.js +1 -1
  543. package/dist/icons/UserGroupIcon.js +1 -1
  544. package/dist/icons/UserIcon.js +1 -1
  545. package/dist/icons/UserLockIcon.js +1 -1
  546. package/dist/icons/ViewIcon.js +1 -1
  547. package/dist/icons/WarningFilledIcon.js +1 -1
  548. package/dist/icons/WarningIcon.js +1 -1
  549. package/dist/icons/wrap-icon.js +1 -1
  550. package/dist/index.js +1 -1
  551. package/dist/probe/canonicalize.js +1 -1
  552. package/dist/probe/css.js +1 -1
  553. package/dist/probe/index.js +1 -1
  554. package/dist/provider.js +1 -1
  555. package/dist/providers/TrackingProvider.js +1 -1
  556. package/dist/providers/navigationAdapter.default.js +1 -1
  557. package/dist/tokens/all-tokens.js +1 -1
  558. package/dist/tokens/base.js +1 -1
  559. package/dist/tokens/color-seed.js +1 -1
  560. package/dist/tokens/color-theme.js +1 -1
  561. package/dist/tokens/colors.js +1 -1
  562. package/dist/tokens/layout.js +1 -1
  563. package/dist/tokens/lazy-styles.js +1 -1
  564. package/dist/tokens/legacy-color.js +1 -1
  565. package/dist/tokens/palette-config.js +1 -1
  566. package/dist/tokens/palette.js +1 -1
  567. package/dist/tokens/resolve.js +1 -1
  568. package/dist/tokens/shadows.js +1 -1
  569. package/dist/tokens/sizes.js +1 -1
  570. package/dist/tokens/spacing.js +1 -1
  571. package/dist/tokens/typography.js +1 -1
  572. package/dist/utils/ResizeSensor.js +1 -1
  573. package/dist/utils/colors.js +1 -1
  574. package/dist/utils/dotize.js +1 -1
  575. package/dist/utils/is-dev-env.js +1 -1
  576. package/dist/utils/modules.js +1 -1
  577. package/dist/utils/promise.js +1 -1
  578. package/dist/utils/raf.js +1 -1
  579. package/dist/utils/random.js +1 -1
  580. package/dist/utils/range.js +1 -1
  581. package/dist/utils/react/RenderCache.js +1 -1
  582. package/dist/utils/react/Slots.js +1 -1
  583. package/dist/utils/react/chain.js +1 -1
  584. package/dist/utils/react/disabledProps.js +1 -1
  585. package/dist/utils/react/escapePropagation.js +1 -1
  586. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  587. package/dist/utils/react/index.js +1 -1
  588. package/dist/utils/react/interactions.js +1 -1
  589. package/dist/utils/react/isTextOnly.js +1 -1
  590. package/dist/utils/react/mapProps.js +1 -1
  591. package/dist/utils/react/mergeProps.js +1 -1
  592. package/dist/utils/react/nullableValue.js +1 -1
  593. package/dist/utils/react/programmaticFocus.js +1 -1
  594. package/dist/utils/react/resolveIcon.js +1 -1
  595. package/dist/utils/react/sharedStore.js +1 -1
  596. package/dist/utils/react/useBufferedValue.js +1 -1
  597. package/dist/utils/react/useCombinedRefs.js +1 -1
  598. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  599. package/dist/utils/react/useEventBus.js +1 -1
  600. package/dist/utils/react/useId.js +1 -1
  601. package/dist/utils/react/useIsDarwin.js +1 -1
  602. package/dist/utils/react/useKeySymbols.js +1 -1
  603. package/dist/utils/react/useKeySymbols.js.map +1 -1
  604. package/dist/utils/react/useLayoutEffect.js +1 -1
  605. package/dist/utils/react/useLocalStorage.js +1 -1
  606. package/dist/utils/react/useMergeStyles.js +1 -1
  607. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  608. package/dist/utils/react/usePopoverSync.js +1 -1
  609. package/dist/utils/react/usePopoverSync.js.map +1 -1
  610. package/dist/utils/react/useQaProps.js +1 -1
  611. package/dist/utils/react/useScheme.js +1 -1
  612. package/dist/utils/react/useViewportSize.js +1 -1
  613. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  614. package/dist/utils/selection.js +1 -1
  615. package/dist/utils/styles.js +1 -1
  616. package/dist/utils/tree.js +1 -1
  617. package/dist/utils/warnings.js +1 -1
  618. package/dist/version.js +2 -2
  619. package/docs/CreateComponent.md +3 -1
  620. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ColorPanel.js","names":["Styles","tasty","ReactNode","useMemo","useEvent","Radio","Slider","CHANNELS","COLOR_SPACE_HINTS","COLOR_SPACE_LABELS","COLOR_SPACES","ColorChannel","ColorSpace","ColorFormat","ColorValue","formatColor","getContrastingColor","toHex","PanelElement","qa","styles","display","flow","gap","padding","width","PreviewElement","placeItems","height","radius","preset","fill","color","shadow","ChannelsElement","gridColumns","ChannelLabelElement","textAlign","ChannelTrackElement","ChannelValueElement","whiteSpace","TRACK_STYLES","top","image","Fill","THUMB_STYLES","THUMB_TOKENS","SPACE_STYLES","TAB_STYLES","flexGrow","ColorPanelProps","space","isDisabled","previewFormat","swatches","input","onChange","onSpaceChange","ChannelRowProps","channel","ChannelRow","t0","$","_c","t1","max","t2","value","apply","handleChange","t3","label","t4","stops","t5","t6","t7","title","t8","t9","Math","min","t10","step","t11","t12","t13","t14","ColorPanel","props","colorTokens","handleSpaceChange","Symbol","for","map","_temp","item"],"sources":["../../../../src/components/fields/color/ColorPanel.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\nimport { ReactNode, useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal';\nimport { Radio } from '../RadioGroup';\nimport { Slider } from '../Slider';\n\nimport {\n CHANNELS,\n COLOR_SPACE_HINTS,\n COLOR_SPACE_LABELS,\n COLOR_SPACES,\n ColorChannel,\n ColorSpace,\n} from './channels';\nimport {\n ColorFormat,\n ColorValue,\n formatColor,\n getContrastingColor,\n toHex,\n} from './color';\n\nconst PanelElement = tasty({\n qa: 'ColorPanel',\n styles: {\n display: 'grid',\n flow: 'row',\n gap: '1x',\n padding: '1x',\n width: '34x',\n },\n});\n\nconst PreviewElement = tasty({\n qa: 'ColorPreview',\n styles: {\n display: 'grid',\n placeItems: 'center',\n height: '6x',\n radius: true,\n preset: 's4',\n fill: '(#color-picker, #clear)',\n color: '(#color-picker-contrast, #dark)',\n shadow: 'inset 0 0 0 1bw #dark.1',\n },\n});\n\nconst ChannelsElement = tasty({\n styles: {\n display: 'grid',\n gridColumns: 'max-content 1sf max-content',\n placeItems: 'center stretch',\n gap: '1x',\n },\n});\n\nconst ChannelLabelElement = tasty({\n styles: {\n preset: 'c2',\n color: '#dark-03',\n textAlign: 'center',\n width: '2x',\n },\n});\n\nconst ChannelTrackElement = tasty({\n styles: {\n display: 'grid',\n placeItems: 'center stretch',\n },\n});\n\nconst ChannelValueElement = tasty({\n styles: {\n preset: 's4',\n color: '#dark-02',\n textAlign: 'right',\n whiteSpace: 'nowrap',\n width: '5.5x',\n },\n});\n\n/**\n * The gradient reaches the track through a plain custom property so the track\n * keeps a single cached style rule. A color picker moves its channels\n * continuously, and a fresh `styles` object per frame would emit a fresh CSS\n * rule per frame.\n */\nconst TRACK_STYLES: Styles = {\n height: '1x',\n top: '.5x',\n radius: '1r',\n fill: '#clear',\n image: '$channel-gradient',\n shadow: 'inset 0 0 0 1bw #dark.1',\n Fill: false,\n};\n\n/** A ring keeps the thumb visible wherever it sits on its own gradient. */\nconst THUMB_STYLES: Styles = {\n shadow: '0 0 0 2bw #surface, 0 0 0 3bw #dark.2',\n};\n\nconst THUMB_TOKENS = { '#slider-thumb': '(#color-picker, #surface)' };\n\nconst SPACE_STYLES: Styles = { width: '100%' };\nconst TAB_STYLES: Styles = { flexGrow: 1 };\n\nexport interface ColorPanelProps {\n color: ColorValue;\n space: ColorSpace;\n isDisabled?: boolean;\n /** Notation used for the preview caption. */\n previewFormat: ColorFormat;\n /** Optional palette rendered under the channels. */\n swatches?: ReactNode;\n /** Optional value field rendered above the preview. */\n input?: ReactNode;\n onChange: (color: ColorValue) => void;\n onSpaceChange: (space: ColorSpace) => void;\n}\n\ninterface ChannelRowProps {\n channel: ColorChannel;\n color: ColorValue;\n isDisabled?: boolean;\n onChange: (color: ColorValue) => void;\n}\n\nfunction ChannelRow({ channel, color, isDisabled, onChange }: ChannelRowProps) {\n const max = channel.max(color);\n\n const handleChange = useEvent((value: number) => {\n onChange(channel.apply(color, value));\n });\n\n return (\n <>\n <ChannelLabelElement aria-hidden=\"true\">\n {channel.label}\n </ChannelLabelElement>\n <ChannelTrackElement\n style={{\n '--channel-gradient': `linear-gradient(to right, ${channel.stops(\n color,\n )})`,\n }}\n >\n <Slider\n aria-label={channel.title}\n value={Math.min(channel.value(color), max)}\n minValue={channel.min}\n maxValue={max}\n step={channel.step}\n isDisabled={isDisabled}\n trackStyles={TRACK_STYLES}\n thumbStyles={THUMB_STYLES}\n thumbTokens={THUMB_TOKENS}\n onChange={handleChange}\n />\n </ChannelTrackElement>\n <ChannelValueElement>{channel.display(color)}</ChannelValueElement>\n </>\n );\n}\n\n/**\n * The popover body shared by `ColorInput` and `ColorPicker`: a preview, a\n * switch between the three color concepts, and one gradient slider per channel\n * of the active one.\n */\nexport function ColorPanel(props: ColorPanelProps) {\n const {\n color,\n space,\n isDisabled,\n previewFormat,\n swatches,\n input,\n onChange,\n onSpaceChange,\n } = props;\n\n const colorTokens = useMemo(\n () => ({\n '--color-picker-color': toHex(color),\n '--color-picker-contrast-color': getContrastingColor(color),\n }),\n [color],\n );\n\n const handleSpaceChange = useEvent((value: string) => {\n onSpaceChange(value as ColorSpace);\n });\n\n return (\n <PanelElement style={colorTokens}>\n {input}\n <PreviewElement>{formatColor(color, previewFormat)}</PreviewElement>\n <Radio.Tabs\n aria-label=\"Color space\"\n value={space}\n isDisabled={isDisabled}\n styles={SPACE_STYLES}\n onChange={handleSpaceChange}\n >\n {COLOR_SPACES.map((item) => (\n <Radio\n key={item}\n value={item}\n aria-label={COLOR_SPACE_LABELS[item]}\n tooltip={COLOR_SPACE_HINTS[item]}\n styles={TAB_STYLES}\n >\n {COLOR_SPACE_LABELS[item]}\n </Radio>\n ))}\n </Radio.Tabs>\n <ChannelsElement>\n {CHANNELS[space].map((channel) => (\n <ChannelRow\n key={`${space}-${channel.label}`}\n channel={channel}\n color={color}\n isDisabled={isDisabled}\n onChange={onChange}\n />\n ))}\n </ChannelsElement>\n {swatches}\n </PanelElement>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ColorPanel.js","names":["Styles","tasty","ReactNode","useEvent","Radio","Slider","CHANNELS","COLOR_SPACE_HINTS","COLOR_SPACE_LABELS","COLOR_SPACES","ColorChannel","ColorSpace","ColorFormat","ColorValue","formatColor","getContrastingColor","toHex","PanelElement","qa","styles","display","flow","gap","padding","width","PreviewElement","placeItems","height","radius","preset","fill","color","shadow","ChannelsElement","gridColumns","ChannelLabelElement","textAlign","ChannelTrackElement","ChannelValueElement","whiteSpace","TRACK_STYLES","top","image","Fill","THUMB_STYLES","THUMB_TOKENS","SPACE_STYLES","TAB_STYLES","flexGrow","ColorPanelProps","space","isDisabled","previewFormat","swatches","input","onChange","onSpaceChange","ChannelRowProps","channel","ChannelRow","t0","$","_c","t1","max","t2","value","apply","handleChange","t3","label","t4","stops","t5","t6","t7","title","t8","t9","Math","min","t10","step","t11","t12","t13","t14","ColorPanel","props","colorTokens","handleSpaceChange","Symbol","for","map","_temp","item"],"sources":["../../../../src/components/fields/color/ColorPanel.tsx"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\nimport { ReactNode } from 'react';\n\nimport { useEvent } from '../../../_internal';\nimport { Radio } from '../RadioGroup';\nimport { Slider } from '../Slider';\n\nimport {\n CHANNELS,\n COLOR_SPACE_HINTS,\n COLOR_SPACE_LABELS,\n COLOR_SPACES,\n ColorChannel,\n ColorSpace,\n} from './channels';\nimport {\n ColorFormat,\n ColorValue,\n formatColor,\n getContrastingColor,\n toHex,\n} from './color';\n\nconst PanelElement = tasty({\n qa: 'ColorPanel',\n styles: {\n display: 'grid',\n flow: 'row',\n gap: '1x',\n padding: '1x',\n width: '34x',\n },\n});\n\nconst PreviewElement = tasty({\n qa: 'ColorPreview',\n styles: {\n display: 'grid',\n placeItems: 'center',\n height: '6x',\n radius: true,\n preset: 's4',\n fill: '(#color-picker, #clear)',\n color: '(#color-picker-contrast, #dark)',\n shadow: 'inset 0 0 0 1bw #dark.1',\n },\n});\n\nconst ChannelsElement = tasty({\n styles: {\n display: 'grid',\n gridColumns: 'max-content 1sf max-content',\n placeItems: 'center stretch',\n gap: '1x',\n },\n});\n\nconst ChannelLabelElement = tasty({\n styles: {\n preset: 'c2',\n color: '#dark-03',\n textAlign: 'center',\n width: '2x',\n },\n});\n\nconst ChannelTrackElement = tasty({\n styles: {\n display: 'grid',\n placeItems: 'center stretch',\n },\n});\n\nconst ChannelValueElement = tasty({\n styles: {\n preset: 's4',\n color: '#dark-02',\n textAlign: 'right',\n whiteSpace: 'nowrap',\n width: '5.5x',\n },\n});\n\n/**\n * The gradient reaches the track through a plain custom property so the track\n * keeps a single cached style rule. A color picker moves its channels\n * continuously, and a fresh `styles` object per frame would emit a fresh CSS\n * rule per frame.\n */\nconst TRACK_STYLES: Styles = {\n height: '1x',\n top: '.5x',\n radius: '1r',\n fill: '#clear',\n image: '$channel-gradient',\n shadow: 'inset 0 0 0 1bw #dark.1',\n Fill: false,\n};\n\n/** A ring keeps the thumb visible wherever it sits on its own gradient. */\nconst THUMB_STYLES: Styles = {\n shadow: '0 0 0 2bw #surface, 0 0 0 3bw #dark.2',\n};\n\nconst THUMB_TOKENS = { '#slider-thumb': '(#color-picker, #surface)' };\n\nconst SPACE_STYLES: Styles = { width: '100%' };\nconst TAB_STYLES: Styles = { flexGrow: 1 };\n\nexport interface ColorPanelProps {\n color: ColorValue;\n space: ColorSpace;\n isDisabled?: boolean;\n /** Notation used for the preview caption. */\n previewFormat: ColorFormat;\n /** Optional palette rendered under the channels. */\n swatches?: ReactNode;\n /** Optional value field rendered above the preview. */\n input?: ReactNode;\n onChange: (color: ColorValue) => void;\n onSpaceChange: (space: ColorSpace) => void;\n}\n\ninterface ChannelRowProps {\n channel: ColorChannel;\n color: ColorValue;\n isDisabled?: boolean;\n onChange: (color: ColorValue) => void;\n}\n\nfunction ChannelRow({ channel, color, isDisabled, onChange }: ChannelRowProps) {\n const max = channel.max(color);\n\n const handleChange = useEvent((value: number) => {\n onChange(channel.apply(color, value));\n });\n\n return (\n <>\n <ChannelLabelElement aria-hidden=\"true\">\n {channel.label}\n </ChannelLabelElement>\n <ChannelTrackElement\n style={{\n '--channel-gradient': `linear-gradient(to right, ${channel.stops(\n color,\n )})`,\n }}\n >\n <Slider\n aria-label={channel.title}\n value={Math.min(channel.value(color), max)}\n minValue={channel.min}\n maxValue={max}\n step={channel.step}\n isDisabled={isDisabled}\n trackStyles={TRACK_STYLES}\n thumbStyles={THUMB_STYLES}\n thumbTokens={THUMB_TOKENS}\n onChange={handleChange}\n />\n </ChannelTrackElement>\n <ChannelValueElement>{channel.display(color)}</ChannelValueElement>\n </>\n );\n}\n\n/**\n * The popover body shared by `ColorInput` and `ColorPicker`: a preview, a\n * switch between the three color concepts, and one gradient slider per channel\n * of the active one.\n */\nexport function ColorPanel(props: ColorPanelProps) {\n const {\n color,\n space,\n isDisabled,\n previewFormat,\n swatches,\n input,\n onChange,\n onSpaceChange,\n } = props;\n\n const colorTokens = {\n '--color-picker-color': toHex(color),\n '--color-picker-contrast-color': getContrastingColor(color),\n };\n\n const handleSpaceChange = useEvent((value: string) => {\n onSpaceChange(value as ColorSpace);\n });\n\n return (\n <PanelElement style={colorTokens}>\n {input}\n <PreviewElement>{formatColor(color, previewFormat)}</PreviewElement>\n <Radio.Tabs\n aria-label=\"Color space\"\n value={space}\n isDisabled={isDisabled}\n styles={SPACE_STYLES}\n onChange={handleSpaceChange}\n >\n {COLOR_SPACES.map((item) => (\n <Radio\n key={item}\n value={item}\n aria-label={COLOR_SPACE_LABELS[item]}\n tooltip={COLOR_SPACE_HINTS[item]}\n styles={TAB_STYLES}\n >\n {COLOR_SPACE_LABELS[item]}\n </Radio>\n ))}\n </Radio.Tabs>\n <ChannelsElement>\n {CHANNELS[space].map((channel) => (\n <ChannelRow\n key={`${space}-${channel.label}`}\n channel={channel}\n color={color}\n isDisabled={isDisabled}\n onChange={onChange}\n />\n ))}\n </ChannelsElement>\n {swatches}\n </PanelElement>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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";
@@ -131,24 +131,19 @@ function Field(props) {
131
131
  return /* @__PURE__ */ jsx(LegacyFieldProvider, { children: cloneElement(child, mergeProps(childProps, newProps, onChange ? { onChange: __props.onChange } : {}, onSelectionChange ? { onSelectionChange: __props.onChange } : {})) });
132
132
  }
133
133
  const LegacyFieldContext = createContext({ insideLegacyField: false });
134
+ const INSIDE_LEGACY_FIELD = { insideLegacyField: true };
134
135
  function LegacyFieldProvider(props) {
135
- const $ = c(3);
136
+ const $ = c(2);
136
137
  let t0;
137
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
138
- t0 = { insideLegacyField: true };
139
- $[0] = t0;
140
- } else t0 = $[0];
141
- const value = t0;
142
- let t1;
143
- if ($[1] !== props.children) {
144
- t1 = /* @__PURE__ */ jsx(LegacyFieldContext.Provider, {
145
- value,
138
+ if ($[0] !== props.children) {
139
+ t0 = /* @__PURE__ */ jsx(LegacyFieldContext.Provider, {
140
+ value: INSIDE_LEGACY_FIELD,
146
141
  children: props.children
147
142
  });
148
- $[1] = props.children;
149
- $[2] = t1;
150
- } else t1 = $[2];
151
- return t1;
143
+ $[0] = props.children;
144
+ $[1] = t0;
145
+ } else t0 = $[1];
146
+ return t0;
152
147
  }
153
148
  function useInsideLegacyField() {
154
149
  const { insideLegacyField: t0 } = useContext(LegacyFieldContext);
@@ -1 +1 @@
1
- {"version":3,"file":"Field.js","names":["Styles","Children","cloneElement","createContext","PropsWithChildren","ReactElement","useContext","useMemo","FieldBaseProps","LabelPosition","mergeProps","warn","FieldWrapper","warnAboutLegacyTooltip","useValidationProps","useFormProps","FieldTypes","useField","CubeFormInstance","getDefaultValidateTrigger","type","includes","getValueProps","value","onChange","allowsCustomValue","String","isSelected","isIndeterminate","undefined","selectedKey","inputValue","onInputChange","val","onSelectionChange","CubeFieldProps","name","defaultValue","styles","children","form","T","CubeFullFieldProps","CubeReplaceFieldProps","isRequired","isOptional","any","onBlur","labelPosition","Field","props","allProps","label","extra","necessityIndicator","labelTooltip","isHidden","isDisabled","isLoading","labelProps","labelStyles","labelSuffix","child","only","inputType","cubeInputType","__props","defaultValidationTrigger","isInvalid","isValid","message","description","errorMessage","id","resolvedNecessityIndicator","for","nonInput","field","newProps","childDeclaresNecessity","Object","assign","childProps","LegacyFieldContextValue","insideLegacyField","LegacyFieldContext","LegacyFieldProvider","$","_c","t0","Symbol","t1","useInsideLegacyField"],"sources":["../../../../src/components/form/Form/Field.tsx"],"sourcesContent":["import { Styles } from '@tenphi/tasty';\nimport {\n Children,\n cloneElement,\n createContext,\n PropsWithChildren,\n ReactElement,\n useContext,\n useMemo,\n} from 'react';\n\nimport { FieldBaseProps, LabelPosition } from '../../../shared/index';\nimport { mergeProps } from '../../../utils/react/index';\nimport { warn } from '../../../utils/warnings';\nimport { FieldWrapper } from '../FieldWrapper/index';\nimport { warnAboutLegacyTooltip } from '../legacy-tooltip';\nimport { useValidationProps } from '../validation/index';\n\nimport { useFormProps } from './Form';\nimport { FieldTypes } from './types';\nimport { useField } from './use-field/index';\nimport { CubeFormInstance } from './use-form';\n\nfunction getDefaultValidateTrigger(type) {\n type = type || '';\n\n return type === 'Number' || type.includes('Text') ? 'onBlur' : 'onChange';\n}\n\nfunction getValueProps(\n type?: string,\n value?,\n onChange?,\n allowsCustomValue?: boolean,\n) {\n type = type || '';\n\n if (type === 'Number') {\n return {\n value: value != null ? value : null,\n onChange: onChange,\n };\n } else if (type === 'Text') {\n return {\n value:\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '',\n onChange: onChange,\n };\n } else if (type === 'Checkbox') {\n return {\n isSelected: value != null ? value : false,\n isIndeterminate: false,\n onChange: onChange,\n };\n } else if (type === 'CheckboxGroup') {\n return {\n value: value != null ? value : [],\n onChange: onChange,\n };\n } else if (type === 'RangeSlider') {\n return {\n value: value != null ? value : undefined,\n onChange: onChange,\n };\n } else if (type === 'ComboBox') {\n return {\n selectedKey: !allowsCustomValue ? value ?? null : undefined,\n inputValue: allowsCustomValue ? value ?? '' : undefined,\n onInputChange(val) {\n if (!allowsCustomValue) {\n return;\n }\n\n onChange(val);\n },\n onSelectionChange(val: string) {\n if (val == null && allowsCustomValue) {\n return;\n }\n\n onChange(val);\n },\n };\n } else if (type === 'Select') {\n return {\n selectedKey: value ?? null,\n onSelectionChange: onChange,\n };\n }\n\n return {\n value: value != null ? value : null,\n onChange,\n };\n}\n\nexport interface CubeFieldProps<T extends FieldTypes> extends FieldBaseProps {\n /** Legacy field name; nested fields use dot notation. */\n name?: string;\n /** The initial value of the input. */\n defaultValue?: any;\n styles?: Styles;\n children?: ReactElement | ((CubeFormInstance) => ReactElement);\n /** The form instance */\n form?: CubeFormInstance<T>;\n}\n\ninterface CubeFullFieldProps<T extends FieldTypes> extends CubeFieldProps<T> {\n form: CubeFormInstance<T>;\n}\n\ninterface CubeReplaceFieldProps<T extends FieldTypes>\n extends CubeFieldProps<T> {\n isRequired?: boolean;\n isOptional?: boolean;\n onChange?: (any) => void;\n onSelectionChange?: (any) => void;\n onBlur: () => void;\n labelPosition?: LabelPosition;\n}\n\nexport function Field<T extends FieldTypes>(props: CubeFieldProps<T>) {\n 'use no memo';\n // Legacy form state is mutable; preserve its render-time reads until migration.\n\n const allProps: CubeFullFieldProps<T> = useValidationProps(\n useFormProps(props),\n );\n\n let {\n children,\n form,\n label,\n extra,\n necessityIndicator,\n labelTooltip,\n isHidden,\n isDisabled,\n isLoading,\n isOptional,\n styles,\n labelProps,\n labelPosition = 'top',\n labelStyles,\n labelSuffix,\n } = allProps;\n\n if (typeof children === 'function') {\n children = children(form);\n }\n\n if (label) {\n warnAboutLegacyTooltip(allProps);\n }\n\n let child = children == null ? null : Children.only(children);\n\n const inputType = (child?.type as any)?.cubeInputType ?? 'Text';\n\n const __props = useField<T, CubeFullFieldProps<T>>(allProps, {\n defaultValidationTrigger: getDefaultValidateTrigger(inputType),\n });\n\n const {\n isInvalid,\n isValid,\n message,\n description,\n errorMessage,\n isRequired,\n name,\n id,\n } = __props;\n\n // `useField` reports `null` here when `isRequired` came from a `required` rule\n // rather than from the props, which suppresses the label marker. An indicator\n // set on the `Field` itself is an explicit request and outranks that.\n const resolvedNecessityIndicator =\n necessityIndicator !== undefined\n ? necessityIndicator\n : __props.necessityIndicator;\n\n if (!child) return null;\n\n if (id) {\n if (!labelProps) {\n labelProps = {};\n }\n\n labelProps.for = id;\n }\n\n if (__props.nonInput) {\n return (\n <LegacyFieldProvider>\n <FieldWrapper\n isHidden={isHidden}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n necessityIndicator={resolvedNecessityIndicator}\n isRequired={isRequired}\n isOptional={isOptional}\n label={label}\n labelProps={labelProps}\n extra={extra}\n labelTooltip={labelTooltip}\n message={message}\n description={description}\n errorMessage={errorMessage}\n Component={child}\n styles={styles}\n labelPosition={labelPosition}\n labelStyles={labelStyles}\n labelSuffix={labelSuffix}\n />\n </LegacyFieldProvider>\n );\n }\n\n if (!form) {\n warn(\n 'Form Field requires declared form instance if field name is specified',\n );\n\n return null;\n }\n\n if (!__props.field) {\n return (\n <LegacyFieldProvider>\n {cloneElement(\n child,\n mergeProps(child.props as any, {\n ...getValueProps(inputType),\n label: name,\n name,\n id,\n }),\n )}\n </LegacyFieldProvider>\n );\n }\n\n const newProps: CubeReplaceFieldProps<T> = {\n id,\n name,\n onBlur: __props.onBlur,\n };\n\n // A `null` indicator suppresses the marker for a rule-derived `isRequired`. It\n // must not override a necessity the child input declares for itself, which the\n // `useField` above never saw.\n const childDeclaresNecessity =\n (child.props as any).isRequired != null ||\n (child.props as any).necessityIndicator !== undefined;\n\n if (\n resolvedNecessityIndicator !== undefined &&\n !(resolvedNecessityIndicator === null && childDeclaresNecessity)\n ) {\n newProps.necessityIndicator = resolvedNecessityIndicator;\n }\n\n if (isInvalid) {\n newProps.isInvalid = isInvalid;\n }\n\n if (isValid) {\n newProps.isValid = isValid;\n }\n\n if (isRequired) {\n newProps.isRequired = isRequired;\n }\n\n if (isOptional != null) {\n newProps.isOptional = isOptional;\n }\n\n if (label) {\n newProps.label = label;\n }\n\n if (extra) {\n newProps.extra = extra;\n }\n\n if (labelTooltip) {\n newProps.labelTooltip = labelTooltip;\n }\n\n if (message !== undefined) {\n newProps.message = message;\n }\n\n if (errorMessage !== undefined) {\n newProps.errorMessage = errorMessage;\n }\n\n if (description !== undefined) {\n newProps.description = description;\n }\n\n if (isHidden != null) {\n newProps.isHidden = isHidden;\n }\n\n if (isDisabled != null) {\n newProps.isDisabled = isDisabled;\n }\n\n if (isLoading != null) {\n newProps.isLoading = isLoading;\n }\n\n Object.assign(\n newProps,\n getValueProps(\n inputType,\n __props.field?.value,\n __props.onChange,\n (child.props as any).allowsCustomValue,\n ),\n );\n\n const { onChange, onSelectionChange, ...childProps } = child.props as any;\n\n // onChange event passed to the child should be executed after Form onChange logic\n return (\n <LegacyFieldProvider>\n {cloneElement(\n child,\n mergeProps(\n childProps,\n newProps,\n onChange ? { onChange: __props.onChange } : {},\n onSelectionChange ? { onSelectionChange: __props.onChange } : {},\n ),\n )}\n </LegacyFieldProvider>\n );\n}\n\ntype LegacyFieldContextValue = {\n insideLegacyField: boolean;\n};\n\nconst LegacyFieldContext = createContext<LegacyFieldContextValue>({\n insideLegacyField: false,\n});\n\nfunction LegacyFieldProvider(props: PropsWithChildren<unknown>) {\n const value = useMemo(() => ({ insideLegacyField: true }), []);\n return (\n <LegacyFieldContext.Provider value={value}>\n {props.children}\n </LegacyFieldContext.Provider>\n );\n}\n\nexport function useInsideLegacyField() {\n const { insideLegacyField = false } = useContext(LegacyFieldContext);\n\n return insideLegacyField;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Field.js","names":["Styles","Children","cloneElement","createContext","PropsWithChildren","ReactElement","useContext","FieldBaseProps","LabelPosition","mergeProps","warn","FieldWrapper","warnAboutLegacyTooltip","useValidationProps","useFormProps","FieldTypes","useField","CubeFormInstance","getDefaultValidateTrigger","type","includes","getValueProps","value","onChange","allowsCustomValue","String","isSelected","isIndeterminate","undefined","selectedKey","inputValue","onInputChange","val","onSelectionChange","CubeFieldProps","name","defaultValue","styles","children","form","T","CubeFullFieldProps","CubeReplaceFieldProps","isRequired","isOptional","any","onBlur","labelPosition","Field","props","allProps","label","extra","necessityIndicator","labelTooltip","isHidden","isDisabled","isLoading","labelProps","labelStyles","labelSuffix","child","only","inputType","cubeInputType","__props","defaultValidationTrigger","isInvalid","isValid","message","description","errorMessage","id","resolvedNecessityIndicator","for","nonInput","field","newProps","childDeclaresNecessity","Object","assign","childProps","LegacyFieldContextValue","insideLegacyField","LegacyFieldContext","INSIDE_LEGACY_FIELD","LegacyFieldProvider","$","_c","t0","useInsideLegacyField"],"sources":["../../../../src/components/form/Form/Field.tsx"],"sourcesContent":["import { Styles } from '@tenphi/tasty';\nimport {\n Children,\n cloneElement,\n createContext,\n PropsWithChildren,\n ReactElement,\n useContext,\n} from 'react';\n\nimport { FieldBaseProps, LabelPosition } from '../../../shared/index';\nimport { mergeProps } from '../../../utils/react/index';\nimport { warn } from '../../../utils/warnings';\nimport { FieldWrapper } from '../FieldWrapper/index';\nimport { warnAboutLegacyTooltip } from '../legacy-tooltip';\nimport { useValidationProps } from '../validation/index';\n\nimport { useFormProps } from './Form';\nimport { FieldTypes } from './types';\nimport { useField } from './use-field/index';\nimport { CubeFormInstance } from './use-form';\n\nfunction getDefaultValidateTrigger(type) {\n type = type || '';\n\n return type === 'Number' || type.includes('Text') ? 'onBlur' : 'onChange';\n}\n\nfunction getValueProps(\n type?: string,\n value?,\n onChange?,\n allowsCustomValue?: boolean,\n) {\n type = type || '';\n\n if (type === 'Number') {\n return {\n value: value != null ? value : null,\n onChange: onChange,\n };\n } else if (type === 'Text') {\n return {\n value:\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '',\n onChange: onChange,\n };\n } else if (type === 'Checkbox') {\n return {\n isSelected: value != null ? value : false,\n isIndeterminate: false,\n onChange: onChange,\n };\n } else if (type === 'CheckboxGroup') {\n return {\n value: value != null ? value : [],\n onChange: onChange,\n };\n } else if (type === 'RangeSlider') {\n return {\n value: value != null ? value : undefined,\n onChange: onChange,\n };\n } else if (type === 'ComboBox') {\n return {\n selectedKey: !allowsCustomValue ? value ?? null : undefined,\n inputValue: allowsCustomValue ? value ?? '' : undefined,\n onInputChange(val) {\n if (!allowsCustomValue) {\n return;\n }\n\n onChange(val);\n },\n onSelectionChange(val: string) {\n if (val == null && allowsCustomValue) {\n return;\n }\n\n onChange(val);\n },\n };\n } else if (type === 'Select') {\n return {\n selectedKey: value ?? null,\n onSelectionChange: onChange,\n };\n }\n\n return {\n value: value != null ? value : null,\n onChange,\n };\n}\n\nexport interface CubeFieldProps<T extends FieldTypes> extends FieldBaseProps {\n /** Legacy field name; nested fields use dot notation. */\n name?: string;\n /** The initial value of the input. */\n defaultValue?: any;\n styles?: Styles;\n children?: ReactElement | ((CubeFormInstance) => ReactElement);\n /** The form instance */\n form?: CubeFormInstance<T>;\n}\n\ninterface CubeFullFieldProps<T extends FieldTypes> extends CubeFieldProps<T> {\n form: CubeFormInstance<T>;\n}\n\ninterface CubeReplaceFieldProps<T extends FieldTypes>\n extends CubeFieldProps<T> {\n isRequired?: boolean;\n isOptional?: boolean;\n onChange?: (any) => void;\n onSelectionChange?: (any) => void;\n onBlur: () => void;\n labelPosition?: LabelPosition;\n}\n\nexport function Field<T extends FieldTypes>(props: CubeFieldProps<T>) {\n 'use no memo';\n // Legacy form state is mutable; preserve its render-time reads until migration.\n\n const allProps: CubeFullFieldProps<T> = useValidationProps(\n useFormProps(props),\n );\n\n let {\n children,\n form,\n label,\n extra,\n necessityIndicator,\n labelTooltip,\n isHidden,\n isDisabled,\n isLoading,\n isOptional,\n styles,\n labelProps,\n labelPosition = 'top',\n labelStyles,\n labelSuffix,\n } = allProps;\n\n if (typeof children === 'function') {\n children = children(form);\n }\n\n if (label) {\n warnAboutLegacyTooltip(allProps);\n }\n\n let child = children == null ? null : Children.only(children);\n\n const inputType = (child?.type as any)?.cubeInputType ?? 'Text';\n\n const __props = useField<T, CubeFullFieldProps<T>>(allProps, {\n defaultValidationTrigger: getDefaultValidateTrigger(inputType),\n });\n\n const {\n isInvalid,\n isValid,\n message,\n description,\n errorMessage,\n isRequired,\n name,\n id,\n } = __props;\n\n // `useField` reports `null` here when `isRequired` came from a `required` rule\n // rather than from the props, which suppresses the label marker. An indicator\n // set on the `Field` itself is an explicit request and outranks that.\n const resolvedNecessityIndicator =\n necessityIndicator !== undefined\n ? necessityIndicator\n : __props.necessityIndicator;\n\n if (!child) return null;\n\n if (id) {\n if (!labelProps) {\n labelProps = {};\n }\n\n labelProps.for = id;\n }\n\n if (__props.nonInput) {\n return (\n <LegacyFieldProvider>\n <FieldWrapper\n isHidden={isHidden}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n isValid={isValid}\n necessityIndicator={resolvedNecessityIndicator}\n isRequired={isRequired}\n isOptional={isOptional}\n label={label}\n labelProps={labelProps}\n extra={extra}\n labelTooltip={labelTooltip}\n message={message}\n description={description}\n errorMessage={errorMessage}\n Component={child}\n styles={styles}\n labelPosition={labelPosition}\n labelStyles={labelStyles}\n labelSuffix={labelSuffix}\n />\n </LegacyFieldProvider>\n );\n }\n\n if (!form) {\n warn(\n 'Form Field requires declared form instance if field name is specified',\n );\n\n return null;\n }\n\n if (!__props.field) {\n return (\n <LegacyFieldProvider>\n {cloneElement(\n child,\n mergeProps(child.props as any, {\n ...getValueProps(inputType),\n label: name,\n name,\n id,\n }),\n )}\n </LegacyFieldProvider>\n );\n }\n\n const newProps: CubeReplaceFieldProps<T> = {\n id,\n name,\n onBlur: __props.onBlur,\n };\n\n // A `null` indicator suppresses the marker for a rule-derived `isRequired`. It\n // must not override a necessity the child input declares for itself, which the\n // `useField` above never saw.\n const childDeclaresNecessity =\n (child.props as any).isRequired != null ||\n (child.props as any).necessityIndicator !== undefined;\n\n if (\n resolvedNecessityIndicator !== undefined &&\n !(resolvedNecessityIndicator === null && childDeclaresNecessity)\n ) {\n newProps.necessityIndicator = resolvedNecessityIndicator;\n }\n\n if (isInvalid) {\n newProps.isInvalid = isInvalid;\n }\n\n if (isValid) {\n newProps.isValid = isValid;\n }\n\n if (isRequired) {\n newProps.isRequired = isRequired;\n }\n\n if (isOptional != null) {\n newProps.isOptional = isOptional;\n }\n\n if (label) {\n newProps.label = label;\n }\n\n if (extra) {\n newProps.extra = extra;\n }\n\n if (labelTooltip) {\n newProps.labelTooltip = labelTooltip;\n }\n\n if (message !== undefined) {\n newProps.message = message;\n }\n\n if (errorMessage !== undefined) {\n newProps.errorMessage = errorMessage;\n }\n\n if (description !== undefined) {\n newProps.description = description;\n }\n\n if (isHidden != null) {\n newProps.isHidden = isHidden;\n }\n\n if (isDisabled != null) {\n newProps.isDisabled = isDisabled;\n }\n\n if (isLoading != null) {\n newProps.isLoading = isLoading;\n }\n\n Object.assign(\n newProps,\n getValueProps(\n inputType,\n __props.field?.value,\n __props.onChange,\n (child.props as any).allowsCustomValue,\n ),\n );\n\n const { onChange, onSelectionChange, ...childProps } = child.props as any;\n\n // onChange event passed to the child should be executed after Form onChange logic\n return (\n <LegacyFieldProvider>\n {cloneElement(\n child,\n mergeProps(\n childProps,\n newProps,\n onChange ? { onChange: __props.onChange } : {},\n onSelectionChange ? { onSelectionChange: __props.onChange } : {},\n ),\n )}\n </LegacyFieldProvider>\n );\n}\n\ntype LegacyFieldContextValue = {\n insideLegacyField: boolean;\n};\n\nconst LegacyFieldContext = createContext<LegacyFieldContextValue>({\n insideLegacyField: false,\n});\n\nconst INSIDE_LEGACY_FIELD: LegacyFieldContextValue = {\n insideLegacyField: true,\n};\n\nfunction LegacyFieldProvider(props: PropsWithChildren<unknown>) {\n return (\n <LegacyFieldContext.Provider value={INSIDE_LEGACY_FIELD}>\n {props.children}\n </LegacyFieldContext.Provider>\n );\n}\n\nexport function useInsideLegacyField() {\n const { insideLegacyField = false } = useContext(LegacyFieldContext);\n\n return insideLegacyField;\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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 +1 @@
1
- {"version":3,"file":"react.js","names":["useContext","useMemo","useState","useSyncExternalStoreWithSelector","useLayoutEffect","ModernControllerContext","createFormController","getControllerInternals","getFieldKey","normalizePath","readPath","ReactNode","FormController","ModernFieldState","ModernFormState","UseFormControllerOptions","CheckedFormPath","FormValueAtPath","FormReadValue","FormPath","useFormController","options","$","_c","t0","controller","t1","store","t2","onSubmit","onSubmitFailed","onValuesChange","updateCallbacks","useFormValue","form","path","normalized","state","values","useFormSelector","T","Path","useFormFieldState","key","fields","FormSelectorOptions","isEqual","previous","Selected","next","selector","getServerSnapshot","subscribe","getSnapshot","FormSubscribeProps","children","selected","FormSubscribe","props","fromContext","Object","hasOwn","Error","t3"],"sources":["../../../../../src/components/form/Form/modern/react.tsx"],"sourcesContent":["import { useContext, useMemo, useState } from 'react';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js';\n\nimport { useLayoutEffect } from '../../../../utils/react/useLayoutEffect';\n\nimport { ModernControllerContext } from './context';\nimport { createFormController, getControllerInternals } from './controller';\nimport { getFieldKey, normalizePath, readPath } from './values';\n\nimport type { ReactNode } from 'react';\nimport type {\n FormController,\n ModernFieldState,\n ModernFormState,\n UseFormControllerOptions,\n} from './controller';\nimport type { CheckedFormPath, FormValueAtPath } from './path-types';\nimport type { FormReadValue } from './read-types';\nimport type { FormPath } from './values';\n\nexport function useFormController<T extends object = Record<string, unknown>>(\n options?: UseFormControllerOptions<T>,\n): FormController<T> {\n // Initial options seed synchronously. A new options object never resets the\n // controller, and the creator does not subscribe its owner to form changes.\n const [controller] = useState(() => createFormController(options));\n const { store } = getControllerInternals(controller, 'Form.useController()');\n // Intentionally commit after every render: callbacks are live, unlike the\n // initial defaults/policy. Abandoned renders must never replace callbacks.\n useLayoutEffect(() => {\n store.updateCallbacks({\n onSubmit: options?.onSubmit,\n onSubmitFailed: options?.onSubmitFailed,\n onValuesChange: options?.onValuesChange,\n });\n });\n // Do not dispose from effect cleanup: Strict Mode and hidden React trees\n // reconnect effects while preserving state. Subscriptions own their cleanup;\n // the controller has no external resources and is collected with its owner.\n return controller;\n}\n\nexport function useFormValue<T extends object, const Path extends FormPath>(\n form: FormController<T>,\n path: CheckedFormPath<T, Path>,\n): FormReadValue<FormValueAtPath<T, Path>> | undefined {\n const normalized = useMemo(() => normalizePath(path), [path]);\n return useFormSelector(form, (state) =>\n readPath(state.values, normalized),\n ) as FormReadValue<FormValueAtPath<T, Path>> | undefined;\n}\n\nexport function useFormFieldState<\n T extends object,\n const Path extends FormPath,\n>(\n form: FormController<T>,\n path: CheckedFormPath<T, Path>,\n): ModernFieldState<FormValueAtPath<T, Path>> | undefined {\n const key = useMemo(() => getFieldKey(path), [path]);\n return useFormSelector(form, (state) => state.fields[key]) as\n | ModernFieldState<FormValueAtPath<T, Path>>\n | undefined;\n}\n\nexport interface FormSelectorOptions<Selected> {\n isEqual?: (previous: Selected, next: Selected) => boolean;\n}\n\nexport function useFormSelector<T extends object, Selected>(\n controller: FormController<T>,\n selector: (state: ModernFormState<T>) => Selected,\n options?: FormSelectorOptions<Selected>,\n): Selected {\n const { getServerSnapshot } = getControllerInternals(\n controller,\n 'Form.useSelector()',\n );\n return useSyncExternalStoreWithSelector(\n controller.subscribe,\n controller.getSnapshot,\n getServerSnapshot,\n selector,\n options?.isEqual,\n );\n}\n\nexport interface FormSubscribeProps<T extends object, Selected>\n extends FormSelectorOptions<Selected> {\n /** Omit to use modern context. An explicit undefined detaches from context. */\n form?: FormController<T>;\n selector: (state: ModernFormState<T>) => Selected;\n children: (selected: Selected) => ReactNode;\n}\n\nexport function FormSubscribe<\n T extends object = Record<string, unknown>,\n Selected = unknown,\n>(props: FormSubscribeProps<T, Selected>) {\n const fromContext = useContext(ModernControllerContext);\n const controller = Object.hasOwn(props, 'form') ? props.form : fromContext;\n if (!controller) {\n throw new Error(\n '<Form.Subscribe> requires a modern form prop or a modern <Form> root.',\n );\n }\n const selected = useFormSelector(controller, props.selector, {\n isEqual: props.isEqual,\n });\n return <>{props.children(selected)}</>;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"react.js","names":["useContext","useState","useSyncExternalStoreWithSelector","useLayoutEffect","ModernControllerContext","createFormController","getControllerInternals","getFieldKey","normalizePath","readPath","ReactNode","FormController","ModernFieldState","ModernFormState","UseFormControllerOptions","CheckedFormPath","FormValueAtPath","FormReadValue","FormPath","useFormController","options","$","_c","t0","controller","t1","store","t2","onSubmit","onSubmitFailed","onValuesChange","updateCallbacks","useFormValue","form","path","normalized","state","values","useFormSelector","T","Path","useFormFieldState","key","fields","FormSelectorOptions","isEqual","previous","Selected","next","selector","getServerSnapshot","subscribe","getSnapshot","FormSubscribeProps","children","selected","FormSubscribe","props","fromContext","Object","hasOwn","Error","t3"],"sources":["../../../../../src/components/form/Form/modern/react.tsx"],"sourcesContent":["import { useContext, useState } from 'react';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js';\n\nimport { useLayoutEffect } from '../../../../utils/react/useLayoutEffect';\n\nimport { ModernControllerContext } from './context';\nimport { createFormController, getControllerInternals } from './controller';\nimport { getFieldKey, normalizePath, readPath } from './values';\n\nimport type { ReactNode } from 'react';\nimport type {\n FormController,\n ModernFieldState,\n ModernFormState,\n UseFormControllerOptions,\n} from './controller';\nimport type { CheckedFormPath, FormValueAtPath } from './path-types';\nimport type { FormReadValue } from './read-types';\nimport type { FormPath } from './values';\n\nexport function useFormController<T extends object = Record<string, unknown>>(\n options?: UseFormControllerOptions<T>,\n): FormController<T> {\n // Initial options seed synchronously. A new options object never resets the\n // controller, and the creator does not subscribe its owner to form changes.\n const [controller] = useState(() => createFormController(options));\n const { store } = getControllerInternals(controller, 'Form.useController()');\n // Intentionally commit after every render: callbacks are live, unlike the\n // initial defaults/policy. Abandoned renders must never replace callbacks.\n useLayoutEffect(() => {\n store.updateCallbacks({\n onSubmit: options?.onSubmit,\n onSubmitFailed: options?.onSubmitFailed,\n onValuesChange: options?.onValuesChange,\n });\n });\n // Do not dispose from effect cleanup: Strict Mode and hidden React trees\n // reconnect effects while preserving state. Subscriptions own their cleanup;\n // the controller has no external resources and is collected with its owner.\n return controller;\n}\n\nexport function useFormValue<T extends object, const Path extends FormPath>(\n form: FormController<T>,\n path: CheckedFormPath<T, Path>,\n): FormReadValue<FormValueAtPath<T, Path>> | undefined {\n const normalized = normalizePath(path);\n return useFormSelector(form, (state) =>\n readPath(state.values, normalized),\n ) as FormReadValue<FormValueAtPath<T, Path>> | undefined;\n}\n\nexport function useFormFieldState<\n T extends object,\n const Path extends FormPath,\n>(\n form: FormController<T>,\n path: CheckedFormPath<T, Path>,\n): ModernFieldState<FormValueAtPath<T, Path>> | undefined {\n const key = getFieldKey(path);\n return useFormSelector(form, (state) => state.fields[key]) as\n | ModernFieldState<FormValueAtPath<T, Path>>\n | undefined;\n}\n\nexport interface FormSelectorOptions<Selected> {\n isEqual?: (previous: Selected, next: Selected) => boolean;\n}\n\nexport function useFormSelector<T extends object, Selected>(\n controller: FormController<T>,\n selector: (state: ModernFormState<T>) => Selected,\n options?: FormSelectorOptions<Selected>,\n): Selected {\n const { getServerSnapshot } = getControllerInternals(\n controller,\n 'Form.useSelector()',\n );\n return useSyncExternalStoreWithSelector(\n controller.subscribe,\n controller.getSnapshot,\n getServerSnapshot,\n selector,\n options?.isEqual,\n );\n}\n\nexport interface FormSubscribeProps<T extends object, Selected>\n extends FormSelectorOptions<Selected> {\n /** Omit to use modern context. An explicit undefined detaches from context. */\n form?: FormController<T>;\n selector: (state: ModernFormState<T>) => Selected;\n children: (selected: Selected) => ReactNode;\n}\n\nexport function FormSubscribe<\n T extends object = Record<string, unknown>,\n Selected = unknown,\n>(props: FormSubscribeProps<T, Selected>) {\n const fromContext = useContext(ModernControllerContext);\n const controller = Object.hasOwn(props, 'form') ? props.form : fromContext;\n if (!controller) {\n throw new Error(\n '<Form.Subscribe> requires a modern form prop or a modern <Form> root.',\n );\n }\n const selected = useFormSelector(controller, props.selector, {\n isEqual: props.isEqual,\n });\n return <>{props.children(selected)}</>;\n}\n"],"mappings":";;;;;;;;;;;AAoBA,SAAOmB,kBAAAC,SAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAD,SAAA;AAKyBG,aAAMlB,qBAAqBe,QAAQ;AAAAC,IAAA,KAAAD;AAAAC,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAAjE,MAAA,CAAAG,cAAqBvB,SAASsB,GAAoC;CAAC,IAAAE;AAAA,KAAAJ,EAAA,OAAAG,YAAA;AACjDC,OAAAnB,uBAAuBkB,YAAY,uBAAuB;AAAAH,IAAA,KAAAG;AAAAH,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;CAA5E,MAAA,EAAAK,UAAkBD;CAA2D,IAAAE;AAAA,KAAAN,EAAA,OAAAD,SAAAQ,YAAAP,EAAA,OAAAD,SAAAS,kBAAAR,EAAA,OAAAD,SAAAU,kBAAAT,EAAA,OAAAK,OAAA;AAG7DC,aAAA;AACdD,SAAKK,gBAAiB;IAAAH,UACVR,SAAOQ;IAAUC,gBACXT,SAAOS;IAAgBC,gBACvBV,SAAOU;IACxB,CAAC;;AACHT,IAAA,KAAAD,SAAAQ;AAAAP,IAAA,KAAAD,SAAAS;AAAAR,IAAA,KAAAD,SAAAU;AAAAT,IAAA,KAAAK;AAAAL,IAAA,KAAAM;OAAAA,MAAAN,EAAA;AANDlB,mBAAgBwB,GAMd;AAAA,QAIKH;;AAGT,SAAOQ,aAAAC,MAAAC,MAAA;CAAA,MAAAb,IAAAC,EAAA,EAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAa,MAAA;AAIcX,OAAAf,cAAc0B,KAAK;AAAAb,IAAA,KAAAa;AAAAb,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAAtC,MAAAc,aAAmBZ;CAAoB,IAAAE;AAAA,KAAAJ,EAAA,OAAAc,YAAA;AACVV,QAAAW,UAC3B3B,SAAS2B,MAAKC,QAASF,WAAW;AAAAd,IAAA,KAAAc;AAAAd,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAD7BiB,gBAAgBL,MAAMR,GAE5B;;AAGH,SAAOgB,kBAAAR,MAAAC,MAAA;CAAA,MAAAb,IAAAC,EAAA,EAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAa,MAAA;AAOOX,OAAAhB,YAAY2B,KAAK;AAAAb,IAAA,KAAAa;AAAAb,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAA7B,MAAAqB,MAAYnB;CAAkB,IAAAE;AAAA,KAAAJ,EAAA,OAAAqB,KAAA;AACDjB,QAAAW,UAAWA,MAAKO,OAAQD;AAAIrB,IAAA,KAAAqB;AAAArB,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAAlDiB,gBAAgBL,MAAMR,GAA6B;;AAS5D,SAAOa,gBAAAd,YAAAyB,UAAA7B,SAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAG,YAAA;AAKyBD,OAAAjB,uBAC5BkB,YACA,qBACD;AAAAH,IAAA,KAAAG;AAAAH,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAHD,MAAA,EAAA6B,sBAA8B3B;AAG5B,QACKrB,iCACLsB,WAAU2B,WACV3B,WAAU4B,aACVF,mBACAD,UACA7B,SAAOyB,QACR;;AAWH,SAAOW,cAAAC,OAAA;CAAA,MAAApC,IAAAC,EAAA,GAAA;CAIL,MAAAoC,cAAoB1D,WAAWI,wBAAwB;CAAC,IAAAmB;AAAA,KAAAF,EAAA,OAAAqC,eAAArC,EAAA,OAAAoC,OAAA;AACrClC,OAAAoC,OAAMC,OAAQH,OAAO,OAAkC,GAAxBA,MAAKxB,OAApCyB;AAAuDrC,IAAA,KAAAqC;AAAArC,IAAA,KAAAoC;AAAApC,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAA1E,MAAAG,aAAmBD;AACnB,KAAI,CAACC,WACH,OAAM,IAAIqC,MACR,wEACD;CACF,IAAApC;AAAA,KAAAJ,EAAA,OAAAoC,MAAAZ,SAAA;AAC4DpB,OAAA,EAAAoB,SAClDY,MAAKZ,SACf;AAAAxB,IAAA,KAAAoC,MAAAZ;AAAAxB,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;CAFD,MAAAkC,WAAiBjB,gBAAgBd,YAAYiC,MAAKR,UAAWxB,GAE3D;CAAC,IAAAE;AAAA,KAAAN,EAAA,OAAAoC,MAAAH,YAAAjC,EAAA,OAAAkC,UAAA;AACO5B,OAAA8B,MAAKH,SAAUC,SAAS;AAAAlC,IAAA,KAAAoC,MAAAH;AAAAjC,IAAA,KAAAkC;AAAAlC,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAAA,IAAAyC;AAAA,KAAAzC,EAAA,OAAAM,IAAA;AAA3BmC,OAAA,4CAAGnC,KAA4B;AAAAN,IAAA,KAAAM;AAAAN,IAAA,KAAAyC;OAAAA,MAAAzC,EAAA;AAAA,QAA/ByC"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  //#region src/components/form/Form/reset-unbound-controls.ts
3
3
  /**
4
4
  * Both form roots cancel a native reset, because the browser would put a bound
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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 { useIsFirstRender } from "../../../../_internal/hooks/use-is-first-render.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { FORM_BACKEND, isModernFormController, modernBackendUnavailableError } from "./backend.js";
3
3
  import { applyRules } from "./validation.js";
4
4
  import { dotizeConvert } from "../../../utils/dotize.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { validate } from "email-validator";
3
3
  import validUrl from "valid-url";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useProviderProps } from "../../provider.js";
4
4
  import { useI18n } from "../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { warn } from "../../utils/warnings.js";
3
3
 
4
4
  //#region src/components/form/legacy-tooltip.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
3
3
  import { hasValidationState } from "./resolve-validation-props.js";
4
4
  import { InvalidIcon } from "../../shared/InvalidIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  //#region src/components/form/validation/resolve-validation-props.ts
3
3
  /**
4
4
  * Normalizes the validation props of a field into a pair of booleans.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useWarn } from "../../../_internal/hooks/use-warn.js";
3
3
  import { resolveValidationProps } from "./resolve-validation-props.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { mergeProps } from "../../utils/react/mergeProps.js";
3
3
  import { warnAboutLegacyTooltip } from "./legacy-tooltip.js";
4
4
  import { FieldWrapper } from "./FieldWrapper/FieldWrapper.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { useCallback, useLayoutEffect, useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { DisplayTransition } from "../DisplayTransition/DisplayTransition.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { isValidElement, useCallback, useLayoutEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { BoardDragActiveProvider, BoardRegistryContext } from "./board-context.js";
3
3
  import { useBoardRegistry } from "./use-board-registry.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { getCompactor } from "./grid-core/compactors.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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 { useBoardRegistry } from "./board-context.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.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-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { createContext, useContext } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  //#region src/components/layout/Board/board-store.ts
3
3
  /**
4
4
  * A tiny external store mapping widget id -> registration.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  //#region src/components/layout/Board/grid-core/calculate.ts
3
3
  /** Calculate the width of a single grid column in pixels. */
4
4
  function calcGridColWidth(positionParams) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  //#region src/components/layout/Board/grid-core/collision-modes.ts
3
3
  /** Whether a single grid cell is free of every item in `others`. */
4
4
  function cellFree(others, x, y) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  //#region src/components/layout/Board/grid-core/collision.ts
3
3
  /**
4
4
  * Check if two layout items collide (overlap).
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { collides, getFirstCollision } from "./collision.js";
3
3
  import { sortLayoutItemsByColRow, sortLayoutItemsByRowCol } from "./sort.js";
4
4
  import { bottom, cloneLayout, cloneLayoutItem, getStatics } from "./layout.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  //#region src/components/layout/Board/grid-core/constraints.ts
3
3
  function clamp(value, min, max) {
4
4
  return Math.max(min, Math.min(max, value));
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { collides, getFirstCollision } from "./collision.js";
3
3
  import { sortLayoutItemsByColRow, sortLayoutItemsByRowCol } from "./sort.js";
4
4
  import { bottom, cloneLayout, cloneLayoutItem, getStatics } from "./layout.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { getAllCollisions, getFirstCollision } from "./collision.js";
3
3
  import { sortLayoutItems } from "./sort.js";
4
4