@cube-dev/ui-kit 0.200.1 → 0.202.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (717) hide show
  1. package/README.md +1 -1
  2. package/dist/CHANGELOG.md +50 -0
  3. package/dist/README.md +1 -1
  4. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  5. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/dist/_internal/hooks/use-event.js +1 -1
  7. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  8. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  9. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  10. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  11. package/dist/_internal/hooks/use-warn.js +1 -1
  12. package/dist/components/Block.js +1 -1
  13. package/dist/components/CollectionItem.js +1 -1
  14. package/dist/components/GlobalStyles.js +1 -1
  15. package/dist/components/GridProvider.js +1 -1
  16. package/dist/components/HiddenInput.js +2 -1
  17. package/dist/components/HiddenInput.js.map +1 -1
  18. package/dist/components/Root.js +1 -1
  19. package/dist/components/actions/Action/Action.js +1 -1
  20. package/dist/components/actions/Banner/Banner.js +1 -1
  21. package/dist/components/actions/Button/Button.js +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  28. package/dist/components/actions/ItemActionContext.js +1 -1
  29. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  30. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  31. package/dist/components/actions/Link/Link.js +1 -1
  32. package/dist/components/actions/Menu/Menu.js +1 -1
  33. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  34. package/dist/components/actions/Menu/MenuItem.js +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +1 -1
  36. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  37. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  39. package/dist/components/actions/Menu/context.js +1 -1
  40. package/dist/components/actions/Menu/styled.js +1 -1
  41. package/dist/components/actions/actions-run.js +1 -1
  42. package/dist/components/actions/index.js +1 -1
  43. package/dist/components/actions/use-action.js +1 -1
  44. package/dist/components/actions/use-anchored-menu.js +1 -1
  45. package/dist/components/actions/use-context-menu.js +1 -1
  46. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  47. package/dist/components/content/Alert/Alert.js +1 -1
  48. package/dist/components/content/Alert/use-alert.js +1 -1
  49. package/dist/components/content/Avatar/Avatar.js +1 -1
  50. package/dist/components/content/Badge/Badge.js +1 -1
  51. package/dist/components/content/Card/Card.js +1 -1
  52. package/dist/components/content/Content.js +1 -1
  53. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  54. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  55. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  56. package/dist/components/content/Divider/Divider.d.ts +22 -0
  57. package/dist/components/content/Divider/Divider.js +159 -0
  58. package/dist/components/content/Divider/Divider.js.map +1 -0
  59. package/dist/components/content/Footer.js +1 -1
  60. package/dist/components/content/Header.js +1 -1
  61. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  62. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  63. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  64. package/dist/components/content/Item/Item.js +1 -1
  65. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  66. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  67. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  68. package/dist/components/content/Layout/GridLayout.js +1 -1
  69. package/dist/components/content/Layout/Layout.js +1 -1
  70. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  71. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  72. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  73. package/dist/components/content/Layout/LayoutContent.js +1 -1
  74. package/dist/components/content/Layout/LayoutContext.js +1 -1
  75. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  76. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  77. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  78. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  79. package/dist/components/content/Layout/LayoutPane.js +1 -1
  80. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  81. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  82. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  83. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  84. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  85. package/dist/components/content/Layout/index.js +1 -1
  86. package/dist/components/content/Layout/utils.js +1 -1
  87. package/dist/components/content/Paragraph.js +1 -1
  88. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  89. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  90. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  91. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  92. package/dist/components/content/Result/Result.js +1 -1
  93. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  94. package/dist/components/content/Tag/Tag.js +1 -1
  95. package/dist/components/content/Text.js +1 -1
  96. package/dist/components/content/TextItem/TextItem.d.ts +2 -1
  97. package/dist/components/content/TextItem/TextItem.js +134 -69
  98. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  99. package/dist/components/content/Title.js +1 -1
  100. package/dist/components/content/Tree/Tree.js +39 -14
  101. package/dist/components/content/Tree/Tree.js.map +1 -1
  102. package/dist/components/content/Tree/TreeNode.js +8 -7
  103. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  104. package/dist/components/content/Tree/checked-keys.js +158 -0
  105. package/dist/components/content/Tree/checked-keys.js.map +1 -0
  106. package/dist/components/content/Tree/rowId.js +16 -0
  107. package/dist/components/content/Tree/rowId.js.map +1 -0
  108. package/dist/components/content/Tree/styled.js +1 -1
  109. package/dist/components/content/Tree/tree-index.js +10 -2
  110. package/dist/components/content/Tree/tree-index.js.map +1 -1
  111. package/dist/components/content/Tree/types.d.ts +21 -1
  112. package/dist/components/content/Tree/use-checkbox-tree.js +17 -123
  113. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
  114. package/dist/components/content/Tree/use-load-data.js +1 -1
  115. package/dist/components/content/highlightText.js +1 -1
  116. package/dist/components/content/use-auto-tooltip.js +1 -1
  117. package/dist/components/data/DataTable/DataTable.js +1 -1
  118. package/dist/components/data/ItemTable/ItemTable.js +94 -66
  119. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  120. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  121. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  122. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  123. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  124. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  125. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  126. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  127. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  128. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  129. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  130. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  131. package/dist/components/data/TableBase/RowCollection.js +1 -1
  132. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  133. package/dist/components/data/TableBase/TableRow.js +1 -1
  134. package/dist/components/data/TableBase/TableRowLink.js +88 -0
  135. package/dist/components/data/TableBase/TableRowLink.js.map +1 -0
  136. package/dist/components/data/TableBase/TableView.js +317 -69
  137. package/dist/components/data/TableBase/TableView.js.map +1 -1
  138. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  139. package/dist/components/data/TableBase/column-header.js +1 -1
  140. package/dist/components/data/TableBase/column-menu.js +1 -1
  141. package/dist/components/data/TableBase/column-styles.js +1 -1
  142. package/dist/components/data/TableBase/column-tint.js +1 -1
  143. package/dist/components/data/TableBase/row-menu.js +1 -1
  144. package/dist/components/data/TableBase/styled.js +33 -22
  145. package/dist/components/data/TableBase/styled.js.map +1 -1
  146. package/dist/components/data/TableBase/table-tree.js +1 -1
  147. package/dist/components/data/TableBase/types.d.ts +2 -1
  148. package/dist/components/data/TableBase/types.js +1 -1
  149. package/dist/components/data/TableBase/types.js.map +1 -1
  150. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  151. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  152. package/dist/components/data/TableBase/use-column-order.js +1 -1
  153. package/dist/components/data/TableBase/use-column-window.js +1 -1
  154. package/dist/components/data/TableBase/use-container-width.js +1 -1
  155. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  156. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  157. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  158. package/dist/components/data/TableBase/use-table-search.js +1 -1
  159. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  160. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  161. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  162. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  163. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  164. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  165. package/dist/components/fields/Checkbox/Checkbox.d.ts +3 -2
  166. package/dist/components/fields/Checkbox/Checkbox.js +21 -10
  167. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  168. package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +3 -2
  169. package/dist/components/fields/Checkbox/CheckboxGroup.js +36 -42
  170. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  171. package/dist/components/fields/Checkbox/context.js +1 -1
  172. package/dist/components/fields/ColorInput/ColorInput.d.ts +3 -2
  173. package/dist/components/fields/ColorInput/ColorInput.js +5 -3
  174. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  175. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +9 -3
  176. package/dist/components/fields/ColorPicker/ColorPicker.js +182 -200
  177. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  178. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  179. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +3 -2
  180. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +143 -171
  181. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  182. package/dist/components/fields/ComboBox/ComboBox.d.ts +6 -4
  183. package/dist/components/fields/ComboBox/ComboBox.js +601 -574
  184. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  185. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  186. package/dist/components/fields/CommandTextArea/CommandTextArea.js +5 -4
  187. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  188. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  189. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  190. package/dist/components/fields/DatePicker/DateInput.d.ts +3 -2
  191. package/dist/components/fields/DatePicker/DateInput.js +7 -5
  192. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  193. package/dist/components/fields/DatePicker/DateInputBase.js +79 -76
  194. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  195. package/dist/components/fields/DatePicker/DatePicker.d.ts +3 -2
  196. package/dist/components/fields/DatePicker/DatePicker.js +85 -173
  197. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  198. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  199. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  200. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  201. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  202. package/dist/components/fields/DatePicker/DateRangePicker.d.ts +3 -2
  203. package/dist/components/fields/DatePicker/DateRangePicker.js +117 -204
  204. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  205. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +3 -2
  206. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +289 -434
  207. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  208. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  209. package/dist/components/fields/DatePicker/PeriodPicker.d.ts +3 -2
  210. package/dist/components/fields/DatePicker/PeriodPicker.js +87 -113
  211. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  212. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  213. package/dist/components/fields/DatePicker/TimeInput.d.ts +3 -2
  214. package/dist/components/fields/DatePicker/TimeInput.js +7 -5
  215. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  216. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  217. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  218. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  219. package/dist/components/fields/DatePicker/period.js +1 -1
  220. package/dist/components/fields/DatePicker/props.js +1 -1
  221. package/dist/components/fields/DatePicker/utils.js +1 -1
  222. package/dist/components/fields/FileInput/FileInput.d.ts +3 -2
  223. package/dist/components/fields/FileInput/FileInput.js +114 -141
  224. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  225. package/dist/components/fields/FilterListBox/FilterListBox.js +10 -65
  226. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  227. package/dist/components/fields/FilterListBox/styled.js +66 -0
  228. package/dist/components/fields/FilterListBox/styled.js.map +1 -0
  229. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +35 -3
  230. package/dist/components/fields/FilterPicker/FilterPicker.js +76 -15
  231. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  232. package/dist/components/fields/FilterPicker/FilterTree.js +413 -0
  233. package/dist/components/fields/FilterPicker/FilterTree.js.map +1 -0
  234. package/dist/components/fields/Input/Input.js +1 -1
  235. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  236. package/dist/components/fields/ListBox/ListBox.d.ts +3 -2
  237. package/dist/components/fields/ListBox/ListBox.js +7 -10
  238. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  239. package/dist/components/fields/ListBox/optionId.js +1 -1
  240. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  241. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  242. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  243. package/dist/components/fields/NumberInput/NumberInput.js +5 -3
  244. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  245. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  246. package/dist/components/fields/PasswordInput/PasswordInput.js +5 -3
  247. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  248. package/dist/components/fields/Picker/Picker.d.ts +9 -3
  249. package/dist/components/fields/Picker/Picker.js +12 -11
  250. package/dist/components/fields/Picker/Picker.js.map +1 -1
  251. package/dist/components/fields/RadioGroup/Radio.js +152 -154
  252. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  253. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +3 -2
  254. package/dist/components/fields/RadioGroup/RadioGroup.js +85 -111
  255. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  256. package/dist/components/fields/RadioGroup/context.js +1 -1
  257. package/dist/components/fields/RadioGroup/context.js.map +1 -1
  258. package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +9 -4
  259. package/dist/components/fields/SearchComboBox/SearchComboBox.js +16 -23
  260. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  261. package/dist/components/fields/SearchInput/SearchInput.js +52 -48
  262. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  263. package/dist/components/fields/Select/Select.d.ts +3 -2
  264. package/dist/components/fields/Select/Select.js +8 -10
  265. package/dist/components/fields/Select/Select.js.map +1 -1
  266. package/dist/components/fields/Slider/Gradation.js +1 -1
  267. package/dist/components/fields/Slider/HueSlider.js +1 -1
  268. package/dist/components/fields/Slider/RangeSlider.js +19 -26
  269. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  270. package/dist/components/fields/Slider/Slider.js +51 -58
  271. package/dist/components/fields/Slider/Slider.js.map +1 -1
  272. package/dist/components/fields/Slider/SliderBase.js +61 -60
  273. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  274. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  275. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  276. package/dist/components/fields/Slider/elements.js +1 -1
  277. package/dist/components/fields/Slider/index.js +1 -1
  278. package/dist/components/fields/Slider/types.d.ts +3 -2
  279. package/dist/components/fields/Switch/Switch.d.ts +12 -2
  280. package/dist/components/fields/Switch/Switch.js +97 -165
  281. package/dist/components/fields/Switch/Switch.js.map +1 -1
  282. package/dist/components/fields/TagInput/TagInput.d.ts +5 -2
  283. package/dist/components/fields/TagInput/TagInput.js +18 -13
  284. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  285. package/dist/components/fields/TagInput/TagList.js +1 -1
  286. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  287. package/dist/components/fields/TagInput/useTagError.js +1 -1
  288. package/dist/components/fields/TextArea/TextArea.js +5 -3
  289. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  290. package/dist/components/fields/TextInput/TextInput.js +5 -3
  291. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  292. package/dist/components/fields/TextInput/TextInputBase.d.ts +15 -4
  293. package/dist/components/fields/TextInput/TextInputBase.js +200 -104
  294. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  295. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  296. package/dist/components/fields/TextInput/index.d.ts +2 -2
  297. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  298. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  299. package/dist/components/fields/TriggerActions.js +1 -1
  300. package/dist/components/fields/color/ColorPanel.js +1 -1
  301. package/dist/components/fields/color/channels.js +1 -1
  302. package/dist/components/fields/color/color.js +1 -1
  303. package/dist/components/fields/color/context.js +1 -1
  304. package/dist/components/fields/index.d.ts +2 -2
  305. package/dist/components/fields/option-origin-press.js +1 -1
  306. package/dist/components/form/FieldWrapper/FieldWrapper.js +120 -57
  307. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  308. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  309. package/dist/components/form/Form/Field.js +1 -1
  310. package/dist/components/form/Form/Form.js +1 -1
  311. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  312. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  313. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  314. package/dist/components/form/Form/SubmitError.js +1 -1
  315. package/dist/components/form/Form/backend.js +1 -1
  316. package/dist/components/form/Form/index.js +1 -1
  317. package/dist/components/form/Form/modern/actions.js +1 -1
  318. package/dist/components/form/Form/modern/context.js +1 -1
  319. package/dist/components/form/Form/modern/controller.js +1 -1
  320. package/dist/components/form/Form/modern/field-binding.js +1 -1
  321. package/dist/components/form/Form/modern/field.js +1 -1
  322. package/dist/components/form/Form/modern/react.js +1 -1
  323. package/dist/components/form/Form/modern/store.js +1 -1
  324. package/dist/components/form/Form/modern/validation.js +1 -1
  325. package/dist/components/form/Form/modern/values.js +1 -1
  326. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  327. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  328. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  329. package/dist/components/form/Form/use-field/use-field.js +1 -1
  330. package/dist/components/form/Form/use-form.js +1 -1
  331. package/dist/components/form/Form/validation.js +1 -1
  332. package/dist/components/form/Label.js +1 -1
  333. package/dist/components/form/field-chrome.js +1 -1
  334. package/dist/components/form/field-chrome.js.map +1 -1
  335. package/dist/components/form/field-layout.d.ts +10 -0
  336. package/dist/components/form/field-layout.js +96 -0
  337. package/dist/components/form/field-layout.js.map +1 -0
  338. package/dist/components/form/index.d.ts +2 -1
  339. package/dist/components/form/legacy-tooltip.js +15 -2
  340. package/dist/components/form/legacy-tooltip.js.map +1 -1
  341. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  342. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  343. package/dist/components/form/validation/use-validation-props.js +1 -1
  344. package/dist/components/form/wrapper.js +6 -2
  345. package/dist/components/form/wrapper.js.map +1 -1
  346. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  347. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  348. package/dist/components/layout/Flex.js +1 -1
  349. package/dist/components/layout/Flow.js +1 -1
  350. package/dist/components/layout/Grid.js +1 -1
  351. package/dist/components/layout/Panel.js +1 -1
  352. package/dist/components/layout/Prefix.js +1 -1
  353. package/dist/components/layout/ResizablePanel.js +1 -1
  354. package/dist/components/layout/Space.js +1 -1
  355. package/dist/components/layout/Suffix.js +1 -1
  356. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  357. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  358. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  359. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  360. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  361. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  362. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  363. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  364. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  365. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  366. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  367. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  368. package/dist/components/navigation/Tabs/styled.js +2 -1
  369. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  370. package/dist/components/navigation/Tabs/types.js +1 -1
  371. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  372. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  373. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  374. package/dist/components/other/Calendar/Calendar.js +1 -1
  375. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  376. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  377. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  378. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  379. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  380. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  381. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  382. package/dist/components/other/Calendar/styled.js +1 -1
  383. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  384. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  385. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  386. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  387. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  388. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  389. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  390. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  391. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  392. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  393. package/dist/components/overlays/Dialog/context.js +1 -1
  394. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  395. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  396. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  397. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  398. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  399. package/dist/components/overlays/Modal/Modal.js +1 -1
  400. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  401. package/dist/components/overlays/Modal/Overlay.js +1 -1
  402. package/dist/components/overlays/Modal/Popover.js +1 -1
  403. package/dist/components/overlays/Modal/Tray.js +1 -1
  404. package/dist/components/overlays/Modal/Underlay.js +1 -1
  405. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  406. package/dist/components/overlays/Notifications/Notification.js +1 -1
  407. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  408. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  409. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  410. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  411. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  412. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  413. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +2 -2
  414. package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
  415. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  416. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  417. package/dist/components/overlays/Notifications/index.js +1 -1
  418. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  419. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  420. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  421. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  422. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  423. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  424. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  425. package/dist/components/overlays/Toast/index.js +1 -1
  426. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  427. package/dist/components/overlays/Toast/useToast.js +1 -1
  428. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  429. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  430. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  431. package/dist/components/overlays/Tooltip/context.js +1 -1
  432. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  433. package/dist/components/portal/Portal.js +1 -1
  434. package/dist/components/portal/PortalProvider.js +1 -1
  435. package/dist/components/portal/usePortal.js +1 -1
  436. package/dist/components/shared/DraggableCollection.js +1 -1
  437. package/dist/components/shared/InvalidIcon.js +1 -1
  438. package/dist/components/shared/ValidIcon.js +1 -1
  439. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  440. package/dist/components/status/Spin/Cube.js +1 -1
  441. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  442. package/dist/components/status/Spin/Spin.js +1 -1
  443. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  444. package/dist/data/item-themes.js +116 -116
  445. package/dist/data/item-themes.js.map +1 -1
  446. package/dist/data/themes.js +1 -1
  447. package/dist/eslint-plugin/defaults.generated.js +1 -1
  448. package/dist/eslint-plugin/index.js +1 -1
  449. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  450. package/dist/i18n/I18nProvider.js +1 -1
  451. package/dist/i18n/createFormatter.js +1 -1
  452. package/dist/i18n/index.js +1 -1
  453. package/dist/i18n/instance.js +1 -1
  454. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  455. package/dist/i18n/locales/en-US/uikit.js +1 -1
  456. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  457. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  458. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  459. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  460. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  461. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  462. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  463. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  464. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  465. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  466. package/dist/i18n/locales.js +1 -1
  467. package/dist/i18n/namespace.js +1 -1
  468. package/dist/i18n/useFormatter.js +1 -1
  469. package/dist/i18n/useI18n.js +1 -1
  470. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  471. package/dist/icons/AdjustmentsIcon.js +1 -1
  472. package/dist/icons/AiIcon.js +1 -1
  473. package/dist/icons/AreaChartIcon.js +1 -1
  474. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  475. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  476. package/dist/icons/BackwardIcon.js +1 -1
  477. package/dist/icons/BarChartIcon.js +1 -1
  478. package/dist/icons/BellFilledIcon.js +1 -1
  479. package/dist/icons/BellIcon.js +1 -1
  480. package/dist/icons/BooleanIcon.js +1 -1
  481. package/dist/icons/CalendarEditIcon.js +1 -1
  482. package/dist/icons/CalendarIcon.js +1 -1
  483. package/dist/icons/CaretDownIcon.js +1 -1
  484. package/dist/icons/CaretUpIcon.js +1 -1
  485. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  486. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  487. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  488. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  489. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  490. package/dist/icons/ChartBarLineIcon.js +1 -1
  491. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  492. package/dist/icons/ChartBarStackedIcon.js +1 -1
  493. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  494. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  495. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  496. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  497. package/dist/icons/ChartBubbleIcon.js +1 -1
  498. package/dist/icons/ChartDonut2Icon.js +1 -1
  499. package/dist/icons/ChartFunnelIcon.js +1 -1
  500. package/dist/icons/ChartHeatmapIcon.js +1 -1
  501. package/dist/icons/ChartKPIIcon.js +1 -1
  502. package/dist/icons/ChartPie2Icon.js +1 -1
  503. package/dist/icons/ChartScatterIcon.js +1 -1
  504. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  505. package/dist/icons/CheckCircleIcon.js +1 -1
  506. package/dist/icons/CheckIcon.js +1 -1
  507. package/dist/icons/CircleFilledIcon.js +1 -1
  508. package/dist/icons/ClearIcon.js +1 -1
  509. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  510. package/dist/icons/CloseCircleIcon.js +1 -1
  511. package/dist/icons/CloseIcon.js +1 -1
  512. package/dist/icons/CodeIcon.js +1 -1
  513. package/dist/icons/ColumnTotalIcon.js +1 -1
  514. package/dist/icons/CopyIcon.js +1 -1
  515. package/dist/icons/CountIcon.js +1 -1
  516. package/dist/icons/CubeIcon.js +1 -1
  517. package/dist/icons/CubePauseIcon.js +1 -1
  518. package/dist/icons/CubePlayIcon.js +1 -1
  519. package/dist/icons/CurrencyDollarIcon.js +1 -1
  520. package/dist/icons/DangerIcon.js +1 -1
  521. package/dist/icons/DashboardIcon.js +1 -1
  522. package/dist/icons/DatabaseIcon.js +1 -1
  523. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  524. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  525. package/dist/icons/DirectionIcon.js +1 -1
  526. package/dist/icons/DonutIcon.js +1 -1
  527. package/dist/icons/DownIcon.js +1 -1
  528. package/dist/icons/EditIcon.js +1 -1
  529. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  530. package/dist/icons/ExclamationCircleIcon.js +1 -1
  531. package/dist/icons/ExclamationIcon.js +1 -1
  532. package/dist/icons/EyeIcon.js +1 -1
  533. package/dist/icons/EyeInvisibleIcon.js +1 -1
  534. package/dist/icons/FilterIcon.js +1 -1
  535. package/dist/icons/FolderFilledIcon.js +1 -1
  536. package/dist/icons/FolderIcon.js +1 -1
  537. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  538. package/dist/icons/FolderOpenIcon.js +1 -1
  539. package/dist/icons/ForwardIcon.js +1 -1
  540. package/dist/icons/GripVerticalIcon.js +1 -1
  541. package/dist/icons/HierarchyIcon.js +1 -1
  542. package/dist/icons/HierarchyOpenIcon.js +1 -1
  543. package/dist/icons/Icon.js +1 -1
  544. package/dist/icons/InfoCircleIcon.js +1 -1
  545. package/dist/icons/InfoIcon.js +1 -1
  546. package/dist/icons/KeyIcon.js +1 -1
  547. package/dist/icons/LeftIcon.js +1 -1
  548. package/dist/icons/LineChartIcon.js +1 -1
  549. package/dist/icons/LoadingIcon.js +1 -1
  550. package/dist/icons/LockFilledIcon.js +1 -1
  551. package/dist/icons/LockIcon.js +1 -1
  552. package/dist/icons/MoreIcon.js +1 -1
  553. package/dist/icons/NotAllowedIcon.js +1 -1
  554. package/dist/icons/Number123Icon.js +1 -1
  555. package/dist/icons/NumberIcon.js +1 -1
  556. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  557. package/dist/icons/PauseCircleIcon.js +1 -1
  558. package/dist/icons/PauseIcon.js +1 -1
  559. package/dist/icons/PercentageIcon.js +1 -1
  560. package/dist/icons/PieChartIcon.js +1 -1
  561. package/dist/icons/PipetteIcon.js +1 -1
  562. package/dist/icons/PlayCircleIcon.js +1 -1
  563. package/dist/icons/PlayIcon.js +1 -1
  564. package/dist/icons/PlusIcon.js +1 -1
  565. package/dist/icons/ProgressBarIcon.js +1 -1
  566. package/dist/icons/ReloadIcon.js +1 -1
  567. package/dist/icons/ReportIcon.js +1 -1
  568. package/dist/icons/ReturnIcon.js +1 -1
  569. package/dist/icons/RightIcon.js +1 -1
  570. package/dist/icons/RowTotalsIcon.js +1 -1
  571. package/dist/icons/SchemeIcon.js +1 -1
  572. package/dist/icons/SearchIcon.js +1 -1
  573. package/dist/icons/SemanticQueryIcon.js +1 -1
  574. package/dist/icons/SettingsIcon.js +1 -1
  575. package/dist/icons/ShieldFilledIcon.js +1 -1
  576. package/dist/icons/ShieldIcon.js +1 -1
  577. package/dist/icons/SlashIcon.js +1 -1
  578. package/dist/icons/SparklesIcon.js +1 -1
  579. package/dist/icons/SqlIcon.js +1 -1
  580. package/dist/icons/StatsIcon.js +1 -1
  581. package/dist/icons/StopIcon.js +1 -1
  582. package/dist/icons/StringIcon.js +1 -1
  583. package/dist/icons/SubtotalsIcon.js +1 -1
  584. package/dist/icons/SwitchIcon.js +1 -1
  585. package/dist/icons/TableIcon.js +1 -1
  586. package/dist/icons/ThumbsDownIcon.js +1 -1
  587. package/dist/icons/ThumbsUpIcon.js +1 -1
  588. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  589. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  590. package/dist/icons/ThunderboltIcon.js +1 -1
  591. package/dist/icons/TimeIcon.js +1 -1
  592. package/dist/icons/TrashIcon.js +1 -1
  593. package/dist/icons/UnlockIcon.js +1 -1
  594. package/dist/icons/UpIcon.js +1 -1
  595. package/dist/icons/UserGroupIcon.js +1 -1
  596. package/dist/icons/UserIcon.js +1 -1
  597. package/dist/icons/UserLockIcon.js +1 -1
  598. package/dist/icons/ViewIcon.js +1 -1
  599. package/dist/icons/WarningFilledIcon.js +1 -1
  600. package/dist/icons/WarningIcon.js +1 -1
  601. package/dist/icons/wrap-icon.js +1 -1
  602. package/dist/index.d.ts +4 -3
  603. package/dist/index.js +4 -4
  604. package/dist/index.js.map +1 -1
  605. package/dist/probe/canonicalize.js +1 -1
  606. package/dist/probe/css.js +1 -1
  607. package/dist/probe/index.js +1 -1
  608. package/dist/provider.d.ts +5 -0
  609. package/dist/provider.js +19 -7
  610. package/dist/provider.js.map +1 -1
  611. package/dist/providers/TrackingProvider.js +1 -1
  612. package/dist/providers/navigation-url.js +1 -1
  613. package/dist/providers/navigationAdapter.default.js +1 -1
  614. package/dist/providers/use-navigation.js +1 -1
  615. package/dist/shared/form.d.ts +3 -1
  616. package/dist/tokens/all-tokens.js +1 -1
  617. package/dist/tokens/base.js +1 -1
  618. package/dist/tokens/color-seed.js +1 -1
  619. package/dist/tokens/color-theme.js +1 -1
  620. package/dist/tokens/colors.js +1 -1
  621. package/dist/tokens/layout.js +1 -1
  622. package/dist/tokens/lazy-styles.js +1 -1
  623. package/dist/tokens/legacy-color.js +1 -1
  624. package/dist/tokens/palette-config.js +1 -1
  625. package/dist/tokens/palette.js +4 -4
  626. package/dist/tokens/palette.js.map +1 -1
  627. package/dist/tokens/resolve.js +1 -1
  628. package/dist/tokens/shadows.js +1 -1
  629. package/dist/tokens/sizes.js +1 -1
  630. package/dist/tokens/spacing.js +1 -1
  631. package/dist/tokens/typography.js +1 -1
  632. package/dist/utils/ResizeSensor.js +1 -1
  633. package/dist/utils/colors.js +1 -1
  634. package/dist/utils/dotize.js +1 -1
  635. package/dist/utils/is-dev-env.js +1 -1
  636. package/dist/utils/modules.js +1 -1
  637. package/dist/utils/promise.js +1 -1
  638. package/dist/utils/raf.js +1 -1
  639. package/dist/utils/random.js +1 -1
  640. package/dist/utils/range.js +1 -1
  641. package/dist/utils/react/RenderCache.js +1 -1
  642. package/dist/utils/react/Slots.js +1 -1
  643. package/dist/utils/react/chain.js +1 -1
  644. package/dist/utils/react/disabledProps.js +29 -2
  645. package/dist/utils/react/disabledProps.js.map +1 -1
  646. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  647. package/dist/utils/react/index.js +1 -1
  648. package/dist/utils/react/interactions.js +1 -1
  649. package/dist/utils/react/isTextOnly.js +1 -1
  650. package/dist/utils/react/mapProps.js +1 -1
  651. package/dist/utils/react/mergeProps.js +1 -1
  652. package/dist/utils/react/nullableValue.js +1 -1
  653. package/dist/utils/react/overlayKeyPropagation.js +44 -7
  654. package/dist/utils/react/overlayKeyPropagation.js.map +1 -1
  655. package/dist/utils/react/programmaticFocus.js +1 -1
  656. package/dist/utils/react/resolveIcon.js +1 -1
  657. package/dist/utils/react/sharedStore.js +1 -1
  658. package/dist/utils/react/useBufferedValue.js +1 -1
  659. package/dist/utils/react/useCombinedRefs.js +1 -1
  660. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  661. package/dist/utils/react/useEventBus.js +1 -1
  662. package/dist/utils/react/useId.js +1 -1
  663. package/dist/utils/react/useIsDarwin.js +1 -1
  664. package/dist/utils/react/useKeySymbols.js +1 -1
  665. package/dist/utils/react/useLayoutEffect.js +1 -1
  666. package/dist/utils/react/useLocalStorage.js +1 -1
  667. package/dist/utils/react/useMergeStyles.js +1 -1
  668. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  669. package/dist/utils/react/usePopoverSync.js +1 -1
  670. package/dist/utils/react/useQaProps.js +1 -1
  671. package/dist/utils/react/useScheme.js +1 -1
  672. package/dist/utils/react/useViewportSize.js +1 -1
  673. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  674. package/dist/utils/selection.js +1 -1
  675. package/dist/utils/styles.js +1 -1
  676. package/dist/utils/tree.js +1 -1
  677. package/dist/utils/warnings.js +1 -1
  678. package/dist/version.js +3 -3
  679. package/docs/CreateComponent.md +1 -1
  680. package/docs/FieldProperties.md +17 -7
  681. package/docs/Usage.md +3 -0
  682. package/docs/components/content/Divider.md +103 -21
  683. package/docs/components/content/Tree.md +5 -4
  684. package/docs/components/data/ItemTable.md +9 -1
  685. package/docs/components/fields/Checkbox.md +7 -8
  686. package/docs/components/fields/ColorInput.md +11 -13
  687. package/docs/components/fields/ColorPicker.md +2 -2
  688. package/docs/components/fields/ColorSwatchGroup.md +2 -3
  689. package/docs/components/fields/ComboBox.md +2 -4
  690. package/docs/components/fields/CommandTextArea.md +3 -5
  691. package/docs/components/fields/DatePicker.md +1 -4
  692. package/docs/components/fields/FileInput.md +1 -5
  693. package/docs/components/fields/FilterListBox.md +0 -3
  694. package/docs/components/fields/FilterPicker.md +68 -5
  695. package/docs/components/fields/HueSlider.md +1 -2
  696. package/docs/components/fields/ListBox.md +0 -3
  697. package/docs/components/fields/NumberInput.md +5 -6
  698. package/docs/components/fields/PasswordInput.md +7 -8
  699. package/docs/components/fields/PeriodPicker.md +0 -4
  700. package/docs/components/fields/Picker.md +2 -4
  701. package/docs/components/fields/RadioGroup.md +4 -5
  702. package/docs/components/fields/SearchComboBox.md +2 -4
  703. package/docs/components/fields/SearchInput.md +3 -4
  704. package/docs/components/fields/Select.md +0 -3
  705. package/docs/components/fields/Slider.md +0 -1
  706. package/docs/components/fields/Switch.md +16 -3
  707. package/docs/components/fields/TagInput.md +3 -6
  708. package/docs/components/fields/TextArea.md +9 -8
  709. package/docs/components/fields/TextInput.md +39 -10
  710. package/docs/components/overlays/Tooltip.md +1 -1
  711. package/docs/tasty/ai-agents.md +1 -1
  712. package/docs/tasty/react-api.md +1 -1
  713. package/docs/tasty/styles.md +37 -3
  714. package/package.json +6 -4
  715. package/dist/components/content/Divider.d.ts +0 -7
  716. package/dist/components/content/Divider.js +0 -105
  717. package/dist/components/content/Divider.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["Key","Styles","ReactNode","CubeItemProps","CubeTableSortDirection","CubeTableRowSize","CubeTableAlign","CubeTableRowSection","selectionRowKey","section","rowKey","CubeTableCellRange","fromRowKey","toRowKey","fromColumnKey","toColumnKey","CubeTableTreeRowState","level","parentKey","hasChildren","isExpanded","CubeTableRowExpandInfo","row","T","expanded","CubeTableLayoutProps","isAutoHeight","CubeTableTreeProps","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","keys","info","CubeTableSort","columnKey","direction","CubeTableCellContext","rowIndex","columnIndex","isSelected","isRowFocused","isDropTarget","tree","CubeTableRowContext","isFocused","CubeTableHeaderContext","sort","isSortable","isResizing","width","CubeTableColumnGroupHeader","key","title","CubeTableColumnHeader","icon","rightIcon","prefix","suffix","description","descriptionPlacement","tooltip","actions","autoHideActions","menu","menuTriggerProps","Record","menuProps","onMenuAction","action","theme","render","ctx","align","styles","CubeTableColumnTheme","CubeTableColumnColor","hue","saturation","fill","fillBand","text","CubeTableColumnColorScope","CubeTableColumn","header","isRowHeader","flex","minWidth","maxWidth","isResizable","isReorderable","pin","isHidden","getValue","format","value","compare","a","b","rowA","rowB","cellStyles","cellProps","color","colorScope","disallowSortRemoval","isSearchable","isCopyable","autoHeight","meta","CubeResolvedColumn","Omit","index","ariaColIndex","pinOffset","isPinEdge","isStructural","CubeTableColumnLayout","columns","pinnedStartWidth","pinnedEndWidth","totalWidth","isOverflowing","CubeTableLoadingIndicator","CubeTableSelectionMode","CubeTableSelectAllMode"],"sources":["../../../../src/components/data/TableBase/types.ts"],"sourcesContent":["import type { Key } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\nimport type { CubeItemProps } from '../../content/Item';\n\nexport type CubeTableSortDirection = 'asc' | 'desc';\n/**\n * Named row heights: 28px, 32px and 40px.\n *\n * A subset of the kit's size scale, and the same three steps `size` would give —\n * but `rowSize` moves only the ROWS. `size` also drives the header, so reaching\n * for a denser body through it drags the header down too.\n */\nexport type CubeTableRowSize = 'small' | 'medium' | 'large';\nexport type CubeTableAlign = 'start' | 'center' | 'end';\nexport type CubeTableRowSection = 'body' | 'pinnedTop' | 'pinnedBottom';\n\n/**\n * `asc | desc` rather than React Aria's `ascending | descending`: we do not use\n * `useTableState`, so there is no `SortDescriptor` interop to preserve, and\n * every consumer and server query parameter already speaks `asc|desc`.\n * `aria-sort` is a one-line map in the header cell.\n */\n/**\n * A rectangular block of cells, stored as two opposite corners.\n *\n * Corners rather than a set of keys so the selection survives a re-sort or a\n * page change the way a keyed row selection does: \"the block between these two\n * cells\" is re-resolved against the current order every render.\n */\n/**\n * The key a cell range identifies a row by.\n *\n * Not the consumer's row key: a pinned total is commonly the SAME record at the\n * top and the bottom (`id: 'total'`), and one flat key space collapsed the two\n * into whichever `indexOf` found first — so a range aimed at the footer total\n * resolved against the header one. The section is part of the identity here,\n * and only here; `ctx.rowKey` stays the consumer's own.\n */\nexport function selectionRowKey(\n section: CubeTableRowSection,\n rowKey: Key,\n): Key {\n return section === 'body' ? rowKey : `${section}:${rowKey}`;\n}\n\nexport interface CubeTableCellRange {\n fromRowKey: Key;\n toRowKey: Key;\n fromColumnKey: string;\n toColumnKey: string;\n}\n\nexport interface CubeTableTreeRowState {\n /** Zero-based depth in the hierarchy. */\n level: number;\n parentKey: Key | null;\n hasChildren: boolean;\n isExpanded: boolean;\n}\n\nexport interface CubeTableRowExpandInfo<T = any> {\n row: T;\n rowKey: Key;\n level: number;\n parentKey: Key | null;\n expanded: boolean;\n}\n\n/** Shared root sizing contract used by both table adapters. */\nexport interface CubeTableLayoutProps {\n /**\n * Shrink-wraps the frame to its rendered rows instead of filling the\n * available flex pane. This mode disables virtualization because there is no\n * bounded vertical viewport to virtualize against.\n *\n * @default false\n */\n isAutoHeight?: boolean;\n}\n\n/** Shared opt-in hierarchy contract used by both table adapters. */\nexport interface CubeTableTreeProps<T = any> {\n /**\n * Returns a row's already-loaded children. Supplying this enables tree mode\n * and makes `data` the top-level row collection.\n */\n getRowChildren?: (row: T) => readonly T[] | undefined;\n /** Column that owns the indentation and disclosure control. */\n treeColumnKey?: string;\n /** Controlled expanded row keys. */\n expandedKeys?: Key[];\n /** Initially expanded row keys. */\n defaultExpandedKeys?: Key[];\n /** Called after a user expands or collapses a row. */\n onExpand?: (keys: Key[], info: CubeTableRowExpandInfo<T>) => void;\n}\n\nexport interface CubeTableSort {\n /** `key` of the sorted column. */\n columnKey: string;\n direction: CubeTableSortDirection;\n}\n\n/* ── render contexts ─────────────────────────────────────────────────────── */\n\nexport interface CubeTableCellContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n columnKey: string;\n columnIndex: number;\n section: CubeTableRowSection;\n /** Whether the ROW is selected, matching `isRowFocused` below. */\n isSelected: boolean;\n /**\n * Not yet wired — always absent.\n *\n * Optional rather than `boolean`, because there is nowhere honest to compute\n * them from where this context is built. Focus lives in the DOM, and drop\n * state comes out of `useDropIndicator`, a hook that can only run inside the\n * row component — so populating either means moving the `render` / `cellStyles`\n * call sites into `TableRow`. Declaring them required and passing `false`\n * would just be a documented lie.\n */\n isRowFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableRowContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n section: CubeTableRowSection;\n isSelected: boolean;\n /** Not yet wired — always absent. See `CubeTableCellContext` for why. */\n isFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableHeaderContext {\n columnKey: string;\n columnIndex: number;\n sort: CubeTableSortDirection | null;\n isSortable: boolean;\n isResizing: boolean;\n width: number | null;\n}\n\n/** Presentational path entry used to build multi-row column headers. */\nexport interface CubeTableColumnGroupHeader {\n key: string;\n title?: ReactNode;\n}\n\n/* ── column ──────────────────────────────────────────────────────────────── */\n\n/**\n * Rich header content. Every slot except `menu` maps 1:1 onto the `Item`\n * rendered inside the header `<th>`, so a header gets icon / description /\n * tooltip / suffix / actions for free; `menu` is mounted into that `Item`'s\n * `actions` slot behind a `⋮` trigger.\n */\nexport interface CubeTableColumnHeader {\n icon?: CubeItemProps['icon'];\n rightIcon?: CubeItemProps['rightIcon'];\n prefix?: ReactNode;\n suffix?: ReactNode;\n description?: ReactNode;\n descriptionPlacement?: CubeItemProps['descriptionPlacement'];\n /** `true` = auto tooltip when the label is truncated. */\n tooltip?: CubeItemProps['tooltip'];\n actions?: ReactNode;\n /** Hide `actions` until hover/focus. @default true */\n autoHideActions?: boolean;\n /**\n * A column menu, opened from a `⋮` trigger in the header's actions slot and —\n * unless the table says otherwise — by right-click or Shift+F10.\n *\n * `Menu.Item` children. Opaque: the table mounts the node and reports the\n * pressed key back through `onColumnMenuAction`, so what a \"pin\" or a \"drill\n * down\" means stays in the consuming app. The exception is the reserved sort\n * keys (`sort-asc`, `sort-desc`, `clear-sort`), which the table labels,\n * disables when redundant, and applies itself before telling the consumer.\n *\n * An empty menu renders no trigger at all, rather than one that opens nothing.\n * Ignored when `header.render` takes the cell over.\n */\n menu?: ReactNode;\n /** Props for the `⋮` trigger. Merged over the table's `columnMenuTriggerProps`. */\n menuTriggerProps?: Record<string, any>;\n /** Props for the `Menu`. Merged over the table's `columnMenuProps`. */\n menuProps?: Record<string, any>;\n /** Called before the table-level `onColumnMenuAction`. */\n onMenuAction?: (action: string) => void;\n theme?: CubeItemProps['theme'];\n /**\n * Full takeover of the header cell's content. Overrides `title` and every\n * slot — including `actions` and `menu`, which are simply not rendered. A\n * takeover that wants a menu owns the trigger too.\n */\n render?: (ctx: CubeTableHeaderContext) => ReactNode;\n /** Overrides `column.align` for the header only. */\n align?: CubeTableAlign;\n styles?: Styles;\n}\n\n/* ── column colour ───────────────────────────────────────────────────────── */\n\n/**\n * A palette theme a column can borrow its tint from.\n *\n * Resolved through the same runtime generator as a custom colour, seeded from the\n * theme's own hue and saturation in `palette-config` — so it tracks a re-seeded\n * palette, and it gets the banding step the palette itself does not define.\n *\n * `special` is absent deliberately: it is a standalone `mode: 'fixed'` theme with\n * no tinted-surface ramp to borrow.\n */\nexport type CubeTableColumnTheme =\n 'primary' | 'purple' | 'success' | 'danger' | 'warning' | 'note';\n\n/**\n * How a column is tinted.\n *\n * Every form but the last is *derived*: only a hue and a saturation are kept, and\n * the tone ramp plus an `AA`/`AAA` text floor are re-solved per colour scheme. So\n * a column stays readable in light, dark and high contrast without the caller\n * checking — which is the part hand-picked hex pairs get wrong.\n */\nexport type CubeTableColumnColor =\n /** A palette theme name. */\n | CubeTableColumnTheme\n /** Any colour Glaze parses — hex, `rgb()`, `hsl()`, `okhsl()`, `oklch()`. */\n | (string & {})\n /** The seed said directly. `saturation` is 0–100. */\n | { hue: number; saturation?: number }\n /**\n * Full manual control, as tasty colour strings (`'#note-surface'`, `'#purple.10'`).\n *\n * Nothing is derived and nothing is contrast-checked — this is the escape\n * hatch, and readability in every scheme becomes the caller's problem.\n * `fillBand` defaults to `fill`, which turns banding off for the column.\n */\n | { fill: string; fillBand?: string; text?: string };\n\n/**\n * Which parts of a column `color` reaches.\n *\n * @default ['header','body','totals']\n */\nexport type CubeTableColumnColorScope = 'header' | 'body' | 'totals';\n\nexport interface CubeTableColumn<T = any> {\n /**\n * Column id. Also the default data path — dot notation is supported\n * (`'owner.name'`). Anything beyond a path needs `getValue`.\n */\n key: string;\n /** Header label. Shorthand for `header` with no extra slots. */\n title?: ReactNode;\n header?: CubeTableColumnHeader;\n /**\n * Renders `<th scope=\"row\">` instead of `<td>`, names the row for screen\n * readers, and hosts the `rowLink` anchor. Defaults to the first\n * non-structural column when a row link is present.\n */\n isRowHeader?: boolean;\n\n /* sizing */\n /** Fixed width in px. Mutually exclusive with `flex`. */\n width?: number;\n /** Weight for the leftover space. @default 1 when `width` is unset */\n flex?: number;\n /** @default 150 */\n minWidth?: number;\n maxWidth?: number;\n /** Inherits the table's `isResizable`. */\n isResizable?: boolean;\n /**\n * Inherits the table's `isColumnReorderable`; `false` pins this column in\n * place while the others still move around it.\n */\n isReorderable?: boolean;\n /** Stick to the start/end edge during horizontal scroll. */\n pin?: 'start' | 'end';\n /** Hide without losing width or order state. */\n isHidden?: boolean;\n\n /* value pipeline */\n /** @default (row) => get(row, key) */\n getValue?: (row: T, rowIndex: number) => unknown;\n /** Raw value → display text. Feeds client sort, client search and TSV copy. */\n format?: (value: any, row: T, rowIndex: number) => string;\n /** Client-side comparator over raw `getValue` results. */\n compare?: (a: any, b: any, rowA: T, rowB: T) => number;\n\n /* rendering */\n /** A returned string is wrapped in a truncating `TextItem`. */\n render?: (\n value: any,\n row: T,\n rowIndex: number,\n ctx: CubeTableCellContext<T>,\n ) => ReactNode;\n /**\n * Tasty styles for this column's body cells: tokens (`#surface-text-soft-2`),\n * units, presets, recipes and state maps all work, and a state key asks about\n * the cell itself (`@own(pinned=bottom)`). They win over the table's own cell\n * paint, its column tint and the table-level `cellStyles`.\n *\n * The function form runs per cell, so it can vary with `ctx` (the row, its\n * section, its selection). Cells whose styles are equal share one class, so a\n * function returning a few distinct objects costs a few classes, not one per\n * cell.\n */\n cellStyles?: Styles | ((ctx: CubeTableCellContext<T>) => Styles | undefined);\n cellProps?: (ctx: CubeTableCellContext<T>) => Record<string, any> | undefined;\n\n /**\n * Tints the column — header, cells and pinned totals — with an adaptive fill\n * and a text colour solved to stay readable on it in every scheme.\n *\n * Row banding survives: the tint carries its own band one tone step away, so\n * the stripe still reads down the column instead of being painted over.\n */\n color?: CubeTableColumnColor;\n /** Narrows what `color` reaches. @default ['header','body','totals'] */\n colorScope?: readonly CubeTableColumnColorScope[];\n\n /* behaviour */\n align?: CubeTableAlign;\n /**\n * Opt IN, per column — a table is not sortable until at least one column says\n * so, and `sortMode` then defaults to `'client'`.\n *\n * (This read `@default true` for a long time, which was never what the code\n * did: `TableView` requires `isSortable === true` before a header becomes a\n * control at all.)\n *\n * @default false\n */\n isSortable?: boolean;\n /** Two-state cycling (asc ↔ desc), never back to unsorted. @default false */\n disallowSortRemoval?: boolean;\n /** Include in the built-in client search. @default true */\n isSearchable?: boolean;\n /** Include in TSV copy. @default true */\n isCopyable?: boolean;\n /** Wrap text and let the row grow to fit. */\n autoHeight?: boolean;\n\n /** Consumer-owned bag. Never reaches the DOM. */\n meta?: Record<string, unknown>;\n}\n\n/* ── resolved layout (internal, but exported for adapters) ───────────────── */\n\nexport interface CubeResolvedColumn<T = any>\n // `width`, `minWidth`, `maxWidth`, `flex` and `align` are all resolved here,\n // so they narrow from optional to definite and must be replaced, not extended.\n extends Omit<\n CubeTableColumn<T>,\n 'width' | 'minWidth' | 'maxWidth' | 'flex' | 'align'\n > {\n /** Position among the visible leaf columns, 0-based. */\n index: number;\n /** `aria-colindex`, 1-based and document-absolute. */\n ariaColIndex: number;\n /** Resolved pixel width, or `null` while the container is unmeasured. */\n width: number | null;\n minWidth: number;\n maxWidth: number | null;\n flex: number | null;\n align: CubeTableAlign;\n /** Cumulative sticky offset in px for a pinned column. */\n pinOffset: number | null;\n /** `true` for the last pinned-start / first pinned-end column. */\n isPinEdge: boolean;\n /** Structural columns (selection, drag handle, row menu) never enter sorting,\n * search, copy, or the value pipeline. */\n isStructural: boolean;\n}\n\nexport interface CubeTableColumnLayout<T = any> {\n columns: CubeResolvedColumn<T>[];\n pinnedStartWidth: number;\n pinnedEndWidth: number;\n /** Sum of resolved widths, or `null` while unmeasured. */\n totalWidth: number | null;\n /** `true` when the columns cannot fit and the table scrolls horizontally. */\n isOverflowing: boolean;\n}\n\n/**\n * How a refresh over an existing result is presented.\n *\n * - `overlay` — keep the previous rows visible, dimmed, behind a spinner. A\n * server page or a re-sort never blanks the table.\n * - `skeleton` — discard the previous rows and show placeholders.\n * - `none` — no visuals beyond `aria-busy`; the page owns the indicator.\n */\nexport type CubeTableLoadingIndicator = 'overlay' | 'skeleton' | 'none';\n\nexport type CubeTableSelectionMode = 'none' | 'single' | 'multiple';\n\n/**\n * What the header checkbox acts on.\n *\n * - `page` — the rows on the current page.\n * - `filtered` — every row passing the current search/filter, across pages.\n * - `all` — emits the `'all'` sentinel, meaning \"everything, including rows the\n * client has not loaded\". The consumer decides what that means for its query.\n */\nexport type CubeTableSelectAllMode = 'page' | 'filtered' | 'all';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuCA,SAAgBQ,gBACdC,SACAC,QACK;CACL,OAAOD,YAAY,SAASC,SAAS,GAAGD,QAAO,GAAIC;AACrD"}
1
+ {"version":3,"file":"types.js","names":["Key","Styles","ReactNode","CubeItemProps","CubeTableSortDirection","CubeTableRowSize","CubeTableAlign","CubeTableRowSection","selectionRowKey","section","rowKey","CubeTableCellRange","fromRowKey","toRowKey","fromColumnKey","toColumnKey","CubeTableTreeRowState","level","parentKey","hasChildren","isExpanded","CubeTableRowExpandInfo","row","T","expanded","CubeTableLayoutProps","isAutoHeight","CubeTableTreeProps","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","keys","info","CubeTableSort","columnKey","direction","CubeTableCellContext","rowIndex","columnIndex","isSelected","isRowFocused","isDropTarget","tree","CubeTableRowContext","isFocused","CubeTableHeaderContext","sort","isSortable","isResizing","width","CubeTableColumnGroupHeader","key","title","CubeTableColumnHeader","icon","rightIcon","prefix","suffix","description","descriptionPlacement","tooltip","actions","autoHideActions","menu","menuTriggerProps","Record","menuProps","onMenuAction","action","theme","render","ctx","align","styles","CubeTableColumnTheme","CubeTableColumnColor","hue","saturation","fill","fillBand","text","CubeTableColumnColorScope","CubeTableColumn","header","isRowHeader","flex","minWidth","maxWidth","isResizable","isReorderable","pin","isHidden","getValue","format","value","compare","a","b","rowA","rowB","cellStyles","cellProps","color","colorScope","disallowSortRemoval","isSearchable","isCopyable","autoHeight","meta","CubeResolvedColumn","Omit","index","ariaColIndex","pinOffset","isPinEdge","isStructural","CubeTableColumnLayout","columns","pinnedStartWidth","pinnedEndWidth","totalWidth","isOverflowing","CubeTableLoadingIndicator","CubeTableSelectionMode","CubeTableSelectAllMode"],"sources":["../../../../src/components/data/TableBase/types.ts"],"sourcesContent":["import type { Key } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\nimport type { CubeItemProps } from '../../content/Item';\n\nexport type CubeTableSortDirection = 'asc' | 'desc';\n/**\n * Named row heights: 28px, 32px and 40px.\n *\n * A subset of the kit's size scale, and the same three steps `size` would give —\n * but `rowSize` moves only the ROWS. `size` also drives the header, so reaching\n * for a denser body through it drags the header down too.\n */\nexport type CubeTableRowSize = 'small' | 'medium' | 'large';\nexport type CubeTableAlign = 'start' | 'center' | 'end';\nexport type CubeTableRowSection = 'body' | 'pinnedTop' | 'pinnedBottom';\n\n/**\n * `asc | desc` rather than React Aria's `ascending | descending`: we do not use\n * `useTableState`, so there is no `SortDescriptor` interop to preserve, and\n * every consumer and server query parameter already speaks `asc|desc`.\n * `aria-sort` is a one-line map in the header cell.\n */\n/**\n * A rectangular block of cells, stored as two opposite corners.\n *\n * Corners rather than a set of keys so the selection survives a re-sort or a\n * page change the way a keyed row selection does: \"the block between these two\n * cells\" is re-resolved against the current order every render.\n */\n/**\n * The key a cell range identifies a row by.\n *\n * Not the consumer's row key: a pinned total is commonly the SAME record at the\n * top and the bottom (`id: 'total'`), and one flat key space collapsed the two\n * into whichever `indexOf` found first — so a range aimed at the footer total\n * resolved against the header one. The section is part of the identity here,\n * and only here; `ctx.rowKey` stays the consumer's own.\n */\nexport function selectionRowKey(\n section: CubeTableRowSection,\n rowKey: Key,\n): Key {\n return section === 'body' ? rowKey : `${section}:${rowKey}`;\n}\n\nexport interface CubeTableCellRange {\n fromRowKey: Key;\n toRowKey: Key;\n fromColumnKey: string;\n toColumnKey: string;\n}\n\nexport interface CubeTableTreeRowState {\n /** Zero-based depth in the hierarchy. */\n level: number;\n parentKey: Key | null;\n hasChildren: boolean;\n isExpanded: boolean;\n}\n\nexport interface CubeTableRowExpandInfo<T = any> {\n row: T;\n rowKey: Key;\n level: number;\n parentKey: Key | null;\n expanded: boolean;\n}\n\n/** Shared root sizing contract used by both table adapters. */\nexport interface CubeTableLayoutProps {\n /**\n * Shrink-wraps the frame to its rendered rows instead of filling the\n * available flex pane. This mode disables virtualization because there is no\n * bounded vertical viewport to virtualize against.\n *\n * @default false\n */\n isAutoHeight?: boolean;\n}\n\n/** Shared opt-in hierarchy contract used by both table adapters. */\nexport interface CubeTableTreeProps<T = any> {\n /**\n * Returns a row's already-loaded children. Supplying this enables tree mode\n * and makes `data` the top-level row collection.\n */\n getRowChildren?: (row: T) => readonly T[] | undefined;\n /** Column that owns the indentation and disclosure control. */\n treeColumnKey?: string;\n /** Controlled expanded row keys. */\n expandedKeys?: Key[];\n /** Initially expanded row keys. */\n defaultExpandedKeys?: Key[];\n /** Called after a user expands or collapses a row. */\n onExpand?: (keys: Key[], info: CubeTableRowExpandInfo<T>) => void;\n}\n\nexport interface CubeTableSort {\n /** `key` of the sorted column. */\n columnKey: string;\n direction: CubeTableSortDirection;\n}\n\n/* ── render contexts ─────────────────────────────────────────────────────── */\n\nexport interface CubeTableCellContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n columnKey: string;\n columnIndex: number;\n section: CubeTableRowSection;\n /** Whether the ROW is selected, matching `isRowFocused` below. */\n isSelected: boolean;\n /**\n * Not yet wired — always absent.\n *\n * Optional rather than `boolean`, because there is nowhere honest to compute\n * them from where this context is built. Focus lives in the DOM, and drop\n * state comes out of `useDropIndicator`, a hook that can only run inside the\n * row component — so populating either means moving the `render` / `cellStyles`\n * call sites into `TableRow`. Declaring them required and passing `false`\n * would just be a documented lie.\n */\n isRowFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableRowContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n section: CubeTableRowSection;\n isSelected: boolean;\n /** Not yet wired — always absent. See `CubeTableCellContext` for why. */\n isFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableHeaderContext {\n columnKey: string;\n columnIndex: number;\n sort: CubeTableSortDirection | null;\n isSortable: boolean;\n isResizing: boolean;\n width: number | null;\n}\n\n/** Presentational path entry used to build multi-row column headers. */\nexport interface CubeTableColumnGroupHeader {\n key: string;\n title?: ReactNode;\n}\n\n/* ── column ──────────────────────────────────────────────────────────────── */\n\n/**\n * Rich header content. Every slot except `menu` maps 1:1 onto the `Item`\n * rendered inside the header `<th>`, so a header gets icon / description /\n * tooltip / suffix / actions for free; `menu` is mounted into that `Item`'s\n * `actions` slot behind a `⋮` trigger.\n */\nexport interface CubeTableColumnHeader {\n icon?: CubeItemProps['icon'];\n rightIcon?: CubeItemProps['rightIcon'];\n prefix?: ReactNode;\n suffix?: ReactNode;\n description?: ReactNode;\n descriptionPlacement?: CubeItemProps['descriptionPlacement'];\n /** `true` = auto tooltip when the label is truncated. */\n tooltip?: CubeItemProps['tooltip'];\n actions?: ReactNode;\n /** Hide `actions` until hover/focus. @default true */\n autoHideActions?: boolean;\n /**\n * A column menu, opened from a `⋮` trigger in the header's actions slot and —\n * unless the table says otherwise — by right-click or Shift+F10.\n *\n * `Menu.Item` children. Opaque: the table mounts the node and reports the\n * pressed key back through `onColumnMenuAction`, so what a \"pin\" or a \"drill\n * down\" means stays in the consuming app. The exception is the reserved sort\n * keys (`sort-asc`, `sort-desc`, `clear-sort`), which the table labels,\n * disables when redundant, and applies itself before telling the consumer.\n *\n * An empty menu renders no trigger at all, rather than one that opens nothing.\n * Ignored when `header.render` takes the cell over.\n */\n menu?: ReactNode;\n /** Props for the `⋮` trigger. Merged over the table's `columnMenuTriggerProps`. */\n menuTriggerProps?: Record<string, any>;\n /** Props for the `Menu`. Merged over the table's `columnMenuProps`. */\n menuProps?: Record<string, any>;\n /** Called before the table-level `onColumnMenuAction`. */\n onMenuAction?: (action: string) => void;\n theme?: CubeItemProps['theme'];\n /**\n * Full takeover of the header cell's content. Overrides `title` and every\n * slot — including `actions` and `menu`, which are simply not rendered. A\n * takeover that wants a menu owns the trigger too.\n */\n render?: (ctx: CubeTableHeaderContext) => ReactNode;\n /** Overrides `column.align` for the header only. */\n align?: CubeTableAlign;\n styles?: Styles;\n}\n\n/* ── column colour ───────────────────────────────────────────────────────── */\n\n/**\n * A palette theme a column can borrow its tint from.\n *\n * Resolved through the same runtime generator as a custom colour, seeded from the\n * theme's own hue and saturation in `palette-config` — so it tracks a re-seeded\n * palette, and it gets the banding step the palette itself does not define.\n *\n * `special` is absent deliberately: it is a standalone `mode: 'fixed'` theme with\n * no tinted-surface ramp to borrow.\n */\nexport type CubeTableColumnTheme =\n 'primary' | 'purple' | 'success' | 'danger' | 'warning' | 'note';\n\n/**\n * How a column is tinted.\n *\n * Every form but the last is *derived*: only a hue and a saturation are kept, and\n * the tone ramp plus an `AA`/`AAA` text floor are re-solved per colour scheme. So\n * a column stays readable in light, dark and high contrast without the caller\n * checking — which is the part hand-picked hex pairs get wrong.\n */\nexport type CubeTableColumnColor =\n /** A palette theme name. */\n | CubeTableColumnTheme\n /** Any colour Glaze parses — hex, `rgb()`, `hsl()`, `okhsl()`, `oklch()`. */\n | (string & {})\n /** The seed said directly. `saturation` is 0–100. */\n | { hue: number; saturation?: number }\n /**\n * Full manual control, as tasty colour strings (`'#note-surface'`, `'#purple.10'`).\n *\n * Nothing is derived and nothing is contrast-checked — this is the escape\n * hatch, and readability in every scheme becomes the caller's problem.\n * `fillBand` defaults to `fill`, which turns banding off for the column.\n */\n | { fill: string; fillBand?: string; text?: string };\n\n/**\n * Which parts of a column `color` reaches.\n *\n * @default ['header','body','totals']\n */\nexport type CubeTableColumnColorScope = 'header' | 'body' | 'totals';\n\nexport interface CubeTableColumn<T = any> {\n /**\n * Column id. Also the default data path — dot notation is supported\n * (`'owner.name'`). Anything beyond a path needs `getValue`.\n */\n key: string;\n /** Header label. Shorthand for `header` with no extra slots. */\n title?: ReactNode;\n header?: CubeTableColumnHeader;\n /**\n * Renders `<th scope=\"row\">` instead of `<td>`, names the row for screen\n * readers, and hosts the `rowLink` anchor. Defaults to the first\n * visible non-structural column when a row link is present. Set `false` to\n * exclude a column from that implicit default.\n */\n isRowHeader?: boolean;\n\n /* sizing */\n /** Fixed width in px. Mutually exclusive with `flex`. */\n width?: number;\n /** Weight for the leftover space. @default 1 when `width` is unset */\n flex?: number;\n /** @default 150 */\n minWidth?: number;\n maxWidth?: number;\n /** Inherits the table's `isResizable`. */\n isResizable?: boolean;\n /**\n * Inherits the table's `isColumnReorderable`; `false` pins this column in\n * place while the others still move around it.\n */\n isReorderable?: boolean;\n /** Stick to the start/end edge during horizontal scroll. */\n pin?: 'start' | 'end';\n /** Hide without losing width or order state. */\n isHidden?: boolean;\n\n /* value pipeline */\n /** @default (row) => get(row, key) */\n getValue?: (row: T, rowIndex: number) => unknown;\n /** Raw value → display text. Feeds client sort, client search and TSV copy. */\n format?: (value: any, row: T, rowIndex: number) => string;\n /** Client-side comparator over raw `getValue` results. */\n compare?: (a: any, b: any, rowA: T, rowB: T) => number;\n\n /* rendering */\n /** A returned string is wrapped in a truncating `TextItem`. */\n render?: (\n value: any,\n row: T,\n rowIndex: number,\n ctx: CubeTableCellContext<T>,\n ) => ReactNode;\n /**\n * Tasty styles for this column's body cells: tokens (`#surface-text-soft-2`),\n * units, presets, recipes and state maps all work, and a state key asks about\n * the cell itself (`@own(pinned=bottom)`). They win over the table's own cell\n * paint, its column tint and the table-level `cellStyles`.\n *\n * The function form runs per cell, so it can vary with `ctx` (the row, its\n * section, its selection). Cells whose styles are equal share one class, so a\n * function returning a few distinct objects costs a few classes, not one per\n * cell.\n */\n cellStyles?: Styles | ((ctx: CubeTableCellContext<T>) => Styles | undefined);\n cellProps?: (ctx: CubeTableCellContext<T>) => Record<string, any> | undefined;\n\n /**\n * Tints the column — header, cells and pinned totals — with an adaptive fill\n * and a text colour solved to stay readable on it in every scheme.\n *\n * Row banding survives: the tint carries its own band one tone step away, so\n * the stripe still reads down the column instead of being painted over.\n */\n color?: CubeTableColumnColor;\n /** Narrows what `color` reaches. @default ['header','body','totals'] */\n colorScope?: readonly CubeTableColumnColorScope[];\n\n /* behaviour */\n align?: CubeTableAlign;\n /**\n * Opt IN, per column — a table is not sortable until at least one column says\n * so, and `sortMode` then defaults to `'client'`.\n *\n * (This read `@default true` for a long time, which was never what the code\n * did: `TableView` requires `isSortable === true` before a header becomes a\n * control at all.)\n *\n * @default false\n */\n isSortable?: boolean;\n /** Two-state cycling (asc ↔ desc), never back to unsorted. @default false */\n disallowSortRemoval?: boolean;\n /** Include in the built-in client search. @default true */\n isSearchable?: boolean;\n /** Include in TSV copy. @default true */\n isCopyable?: boolean;\n /** Wrap text and let the row grow to fit. */\n autoHeight?: boolean;\n\n /** Consumer-owned bag. Never reaches the DOM. */\n meta?: Record<string, unknown>;\n}\n\n/* ── resolved layout (internal, but exported for adapters) ───────────────── */\n\nexport interface CubeResolvedColumn<T = any>\n // `width`, `minWidth`, `maxWidth`, `flex` and `align` are all resolved here,\n // so they narrow from optional to definite and must be replaced, not extended.\n extends Omit<\n CubeTableColumn<T>,\n 'width' | 'minWidth' | 'maxWidth' | 'flex' | 'align'\n > {\n /** Position among the visible leaf columns, 0-based. */\n index: number;\n /** `aria-colindex`, 1-based and document-absolute. */\n ariaColIndex: number;\n /** Resolved pixel width, or `null` while the container is unmeasured. */\n width: number | null;\n minWidth: number;\n maxWidth: number | null;\n flex: number | null;\n align: CubeTableAlign;\n /** Cumulative sticky offset in px for a pinned column. */\n pinOffset: number | null;\n /** `true` for the last pinned-start / first pinned-end column. */\n isPinEdge: boolean;\n /** Structural columns (selection, drag handle, row menu) never enter sorting,\n * search, copy, or the value pipeline. */\n isStructural: boolean;\n}\n\nexport interface CubeTableColumnLayout<T = any> {\n columns: CubeResolvedColumn<T>[];\n pinnedStartWidth: number;\n pinnedEndWidth: number;\n /** Sum of resolved widths, or `null` while unmeasured. */\n totalWidth: number | null;\n /** `true` when the columns cannot fit and the table scrolls horizontally. */\n isOverflowing: boolean;\n}\n\n/**\n * How a refresh over an existing result is presented.\n *\n * - `overlay` — keep the previous rows visible, dimmed, behind a spinner. A\n * server page or a re-sort never blanks the table.\n * - `skeleton` — discard the previous rows and show placeholders.\n * - `none` — no visuals beyond `aria-busy`; the page owns the indicator.\n */\nexport type CubeTableLoadingIndicator = 'overlay' | 'skeleton' | 'none';\n\nexport type CubeTableSelectionMode = 'none' | 'single' | 'multiple';\n\n/**\n * What the header checkbox acts on.\n *\n * - `page` — the rows on the current page.\n * - `filtered` — every row passing the current search/filter, across pages.\n * - `all` — emits the `'all'` sentinel, meaning \"everything, including rows the\n * client has not loaded\". The consumer decides what that means for its query.\n */\nexport type CubeTableSelectAllMode = 'page' | 'filtered' | 'all';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuCA,SAAgBQ,gBACdC,SACAC,QACK;CACL,OAAOD,YAAY,SAASC,SAAS,GAAGD,QAAO,GAAIC;AACrD"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { CONTAINER_STYLES } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useLayoutEffect, useState } from "react";
4
4
  //#region src/components/data/TableBase/use-container-width.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useLayoutEffect, useRef } from "react";
4
4
  /** Matches `DisplayTransition`'s check, which is the kit's existing precedent. */
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useLayoutEffect, useState } from "react";
4
4
  //#region src/components/data/TableBase/use-scrollability.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  /**
4
4
  * Every column's current width, so a resize can change exactly one of them.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { useDebouncedValue } from "../../../_internal/hooks/use-debounced-value.js";
3
3
  import { getColumnText } from "./use-table-columns.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { RowCollection } from "./RowCollection.js";
4
4
  import { useCallback, useMemo, useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { getColumnText, getColumnValue } from "./use-table-columns.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { sortRows } from "./use-table-sort.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { useCallback, useRef, useState } from "react";
3
3
  //#region src/components/data/TableBase/use-table-storage.ts
4
4
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { refreshAutoTooltipsWithin } from "../../content/use-auto-tooltip.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useEffect } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -2,11 +2,12 @@
2
2
  import { FieldBaseProps, ToggleSelectionProps } from "../../../shared/form.js";
3
3
  import "../../../shared/index.js";
4
4
  import { CubeTooltipProviderProps } from "../../overlays/Tooltip/TooltipProvider.js";
5
+ import { FieldLayoutStyleProps } from "../../form/field-layout.js";
5
6
  import { CheckboxGroup as _CheckboxGroup, CubeCheckboxGroupProps } from "./CheckboxGroup.js";
6
- import { BaseProps, ContainerStyleProps, Styles } from "@tenphi/tasty";
7
+ import { BaseProps, Styles } from "@tenphi/tasty";
7
8
  import { AriaCheckboxProps, useCheckbox } from "react-aria";
8
9
  //#region src/components/fields/Checkbox/Checkbox.d.ts
9
- export interface CubeCheckboxProps extends BaseProps, ContainerStyleProps, Omit<AriaCheckboxProps, 'form' | 'name'>, ToggleSelectionProps, FieldBaseProps<boolean | null | undefined> {
10
+ export interface CubeCheckboxProps extends BaseProps, FieldLayoutStyleProps, Omit<AriaCheckboxProps, 'form' | 'name'>, ToggleSelectionProps, FieldBaseProps<boolean | null | undefined> {
10
11
  inputStyles?: Styles;
11
12
  isIndeterminate?: boolean;
12
13
  value?: string;
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
- import { extractStyles } from "../../../utils/styles.js";
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
3
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
+ import { getDisabledElementProps, getInertInputProps } from "../../../utils/react/disabledProps.js";
4
4
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
5
5
  import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
6
6
  import { useAutoTooltip } from "../../content/use-auto-tooltip.js";
@@ -11,10 +11,11 @@ import { getValidationMods, resolveValidationProps } from "../../form/validation
11
11
  import { INLINE_LABEL_STYLES, LABEL_STYLES } from "../../form/Label.js";
12
12
  import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
13
13
  import { wrapWithField } from "../../form/wrapper.js";
14
+ import { splitFieldLayout } from "../../form/field-layout.js";
14
15
  import { HiddenInput } from "../../HiddenInput.js";
15
16
  import { CheckboxGroupContext } from "./context.js";
16
17
  import { CheckboxGroup as _CheckboxGroup } from "./CheckboxGroup.js";
17
- import { CONTAINER_STYLES, Element, filterBaseProps, tasty } from "@tenphi/tasty";
18
+ import { Element, filterBaseProps, tasty } from "@tenphi/tasty";
18
19
  import { forwardRef, useContext, useMemo, useRef } from "react";
19
20
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
20
21
  import { useCheckbox, useCheckboxGroupItem, useHover } from "react-aria";
@@ -49,17 +50,19 @@ const CheckboxElement = tasty({ styles: {
49
50
  "invalid & checked": "#danger",
50
51
  "valid & !checked": "#surface",
51
52
  "valid & checked": "#success",
53
+ readonly: "#surface-2",
52
54
  disabled: "#dark.12"
53
55
  },
54
56
  color: {
55
57
  "": "#clear",
56
- "checked | indeterminate": "#white"
58
+ "checked | indeterminate": "#white",
59
+ "readonly & !disabled & (checked | indeterminate)": "#dark-02"
57
60
  },
58
61
  border: {
59
62
  "": "#dark.30",
60
63
  invalid: "#danger",
61
64
  valid: "#success",
62
- "disabled | ((indeterminate | checked) & !invalid & !valid)": "#clear"
65
+ "disabled | ((indeterminate | checked) & !invalid & !valid & !readonly)": "#clear"
63
66
  },
64
67
  width: "(2x - 2bw)",
65
68
  height: "(2x - 2bw)",
@@ -83,16 +86,15 @@ function Checkbox(allProps, ref) {
83
86
  unsafe__isDisabled: !!groupState
84
87
  });
85
88
  let { qa, isIndeterminate = false, isDisabled = false, insideForm, children, label, isInvalid, isValid, labelProps, labelRef, labelStyles, labelPosition, inputStyles, isHidden, tooltip } = props;
86
- let styles = extractStyles(props, CONTAINER_STYLES);
89
+ const { styles, field } = splitFieldLayout(props, groupState ? { hasChrome: false } : void 0);
87
90
  labelStyles = useMemo(() => ({
88
91
  ...!groupState ? LABEL_STYLES : INLINE_LABEL_STYLES,
89
92
  ...labelStyles
90
93
  }), [groupState, labelStyles]);
91
94
  let { isFocused, focusProps } = useFocus$1(true);
92
- let { hoverProps, isHovered } = useHover({ isDisabled });
93
95
  let inputRef = useRef(null);
94
96
  let domRef = useFocusableRef(ref, inputRef);
95
- let { renderWithTooltip } = useAutoTooltip({
97
+ let { renderWithTooltip, isTooltipActive } = useAutoTooltip({
96
98
  tooltip,
97
99
  children: null
98
100
  });
@@ -102,12 +104,18 @@ function Checkbox(allProps, ref) {
102
104
  form: void 0,
103
105
  children: children ?? label
104
106
  };
105
- let { inputProps } = groupState ? useCheckboxGroupItem({
107
+ let { inputProps, isDisabled: isInputDisabled, isReadOnly } = groupState ? useCheckboxGroupItem({
106
108
  ...ariaProps,
107
109
  value: props.value || "",
108
110
  isRequired: originalProps.isRequired,
109
111
  isInvalid: resolveValidationProps(originalProps).isInvalid
110
112
  }, groupState, inputRef) : useCheckbox(ariaProps, toggleState, inputRef);
113
+ let { hoverProps, isHovered } = useHover({ isDisabled: isDisabled || isReadOnly });
114
+ if (getDisabledElementProps({
115
+ isDisabled: isInputDisabled,
116
+ keepEvents: isTooltipActive,
117
+ as: "input"
118
+ }).isInert) inputProps = getInertInputProps(inputProps, { excludeFromTabOrder: props.excludeFromTabOrder });
111
119
  let markIcon = isIndeterminate ? /* @__PURE__ */ jsx(Icon, {
112
120
  size: 12,
113
121
  stroke: 3,
@@ -135,6 +143,7 @@ function Checkbox(allProps, ref) {
135
143
  isValid
136
144
  }),
137
145
  disabled: isDisabled,
146
+ readonly: isReadOnly,
138
147
  hovered: isHovered,
139
148
  focused: isFocused,
140
149
  "side-label": labelPosition === "side",
@@ -157,7 +166,8 @@ function Checkbox(allProps, ref) {
157
166
  "data-input-type": "checkbox",
158
167
  ...props.autoFocus ? { "data-autofocus": "" } : void 0,
159
168
  ...mergeTooltipFocusProps(mergeProps$1(inputProps, focusProps), tooltipFocusProps),
160
- ref: inputRef
169
+ ref: inputRef,
170
+ mods: { disabled: isInputDisabled }
161
171
  }), /* @__PURE__ */ jsx(CheckboxElement, {
162
172
  "data-element": "Input",
163
173
  mods,
@@ -186,6 +196,7 @@ function Checkbox(allProps, ref) {
186
196
  }, "top");
187
197
  return wrapWithField(checkboxField, {
188
198
  ...props,
199
+ ...field,
189
200
  tooltip: void 0,
190
201
  labelProps: {
191
202
  ...props.labelProps,
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","names":["useFocusableRef","IconCheck","IconMinus","BaseProps","CONTAINER_STYLES","ContainerStyleProps","Element","filterBaseProps","Styles","tasty","forwardRef","ReactElement","RefObject","useContext","useMemo","useRef","AriaCheckboxProps","useCheckbox","useCheckboxGroupItem","useHover","useToggleState","Icon","FieldBaseProps","ToggleSelectionProps","mergeProps","mergeRefs","useFocus","castNullableIsSelected","WithNullableSelected","extractStyles","useAutoTooltip","getValidationMods","INLINE_LABEL_STYLES","LABEL_STYLES","resolveValidationProps","useFieldProps","wrapWithField","HiddenInput","mergeTooltipFocusProps","splitTooltipTriggerProps","TooltipFocusProps","CheckboxGroup","CheckboxGroupContext","FocusableRef","CubeTooltipProviderProps","CubeCheckboxProps","Omit","inputStyles","isIndeterminate","value","tooltip","CheckboxWrapperElement","as","qa","styles","position","display","placeItems","placeContent","gap","flow","preset","cursor","width","color","CheckboxElement","radius","fill","disabled","border","invalid","valid","height","outline","focused","outlineOffset","transition","Checkbox","allProps","ref","groupState","originalProps","props","defaultValidationTrigger","valuePropsMapper","onChange","isSelected","unsafe__isDisabled","isDisabled","insideForm","children","label","isInvalid","isValid","labelProps","labelRef","labelStyles","labelPosition","isHidden","isFocused","focusProps","hoverProps","isHovered","inputRef","domRef","renderWithTooltip","toggleState","ariaProps","form","undefined","inputProps","isRequired","markIcon","key","console","warn","mods","checked","indeterminate","hovered","wrapperProps","className","style","qaVal","wrapperRefWith","tooltipRef","HTMLElement","renderCheckbox","tooltipFocusProps","autoFocus","checkboxField","tooltipTriggerProps","pointerProps","for","id","_Checkbox","cubeInputType","__Checkbox","Object","assign","Group","displayName","useFocus","mergeProps","CheckboxGroup"],"sources":["../../../../src/components/fields/Checkbox/Checkbox.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport { IconCheck, IconMinus } from '@tabler/icons-react';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Element,\n filterBaseProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n forwardRef,\n ReactElement,\n RefObject,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport {\n AriaCheckboxProps,\n useCheckbox,\n useCheckboxGroupItem,\n useHover,\n} from 'react-aria';\nimport { useToggleState } from 'react-stately';\n\nimport { Icon } from '../../../icons/Icon';\nimport { FieldBaseProps, ToggleSelectionProps } from '../../../shared';\nimport { mergeProps, mergeRefs } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport {\n castNullableIsSelected,\n WithNullableSelected,\n} from '../../../utils/react/nullableValue';\nimport { extractStyles } from '../../../utils/styles';\nimport { useAutoTooltip } from '../../content/use-auto-tooltip';\nimport {\n getValidationMods,\n INLINE_LABEL_STYLES,\n LABEL_STYLES,\n resolveValidationProps,\n useFieldProps,\n wrapWithField,\n} from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\nimport {\n mergeTooltipFocusProps,\n splitTooltipTriggerProps,\n TooltipFocusProps,\n} from '../../overlays/Tooltip/split-trigger-props';\n\nimport { CheckboxGroup } from './CheckboxGroup';\nimport { CheckboxGroupContext } from './context';\n\nimport type { FocusableRef } from '@react-types/shared';\nimport type { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\n\nexport interface CubeCheckboxProps\n extends\n BaseProps,\n ContainerStyleProps,\n Omit<AriaCheckboxProps, 'form' | 'name'>,\n ToggleSelectionProps,\n FieldBaseProps<boolean | null | undefined> {\n inputStyles?: Styles;\n isIndeterminate?: boolean;\n value?: string;\n /**\n * The checkbox's own tooltip, shown on hover over the box and its inline\n * label — also while the checkbox is disabled — and on keyboard focus. A string, or `TooltipProvider` props\n * (`title`, `placement`, …). The info badge next to a field label is\n * `labelTooltip`.\n */\n tooltip?: string | Omit<CubeTooltipProviderProps, 'children'>;\n}\n\nconst CheckboxWrapperElement = tasty({\n as: 'label',\n qa: 'CheckboxWrapper',\n styles: {\n position: 'relative',\n display: 'flex',\n placeItems: 'center start',\n placeContent: 'baseline',\n gap: '1x',\n flow: 'row',\n preset: 'default',\n cursor: '$pointer',\n width: 'max max-content',\n color: '#dark-02',\n },\n});\n\nconst CheckboxElement = tasty({\n styles: {\n display: 'grid',\n placeItems: 'center',\n radius: '.5r',\n fill: {\n '': '#surface',\n 'checked | indeterminate': '#primary',\n 'invalid & !checked': '#surface',\n 'invalid & checked': '#danger',\n 'valid & !checked': '#surface',\n 'valid & checked': '#success',\n disabled: '#dark.12',\n },\n // The check / minus icon is always rendered inside the box, so the\n // default color must be transparent when the checkbox is neither\n // checked nor indeterminate — otherwise the white stroke shows through\n // the dark `#surface` fill in dark schemes (it used to be hidden\n // accidentally by the legacy white-on-white `fill: '#white'`).\n color: {\n '': '#clear',\n 'checked | indeterminate': '#white',\n },\n border: {\n '': '#dark.30',\n invalid: '#danger',\n valid: '#success',\n 'disabled | ((indeterminate | checked) & !invalid & !valid)': '#clear',\n },\n width: '(2x - 2bw)',\n height: '(2x - 2bw)',\n outline: {\n '': '#primary-text.0',\n focused: '$ring-width #primary-text',\n },\n outlineOffset: '$outline-offset',\n transition: 'theme',\n },\n});\n\nfunction Checkbox(\n allProps: WithNullableSelected<CubeCheckboxProps>,\n ref: FocusableRef,\n) {\n // Swap hooks depending on whether this checkbox is inside a CheckboxGroup.\n // This is a bit unorthodox. Typically, hooks cannot be called in a conditional,\n // but since the checkbox won't move in and out of a group, it should be safe.\n let groupState = useContext(CheckboxGroupContext);\n\n const originalProps = castNullableIsSelected(allProps);\n\n const props = useFieldProps(originalProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n isSelected: value ?? false,\n isIndeterminate: false,\n onChange: onChange,\n }),\n unsafe__isDisabled: !!groupState,\n });\n\n let {\n qa,\n isIndeterminate = false,\n isDisabled = false,\n insideForm,\n children,\n label,\n isInvalid,\n isValid,\n labelProps,\n labelRef,\n labelStyles,\n labelPosition,\n inputStyles,\n isHidden,\n tooltip,\n } = props;\n\n let styles: Styles = extractStyles(props, CONTAINER_STYLES);\n\n labelStyles = useMemo(\n () => ({\n ...(!groupState ? LABEL_STYLES : INLINE_LABEL_STYLES),\n ...labelStyles,\n }),\n [groupState, labelStyles],\n );\n\n let { isFocused, focusProps } = useFocus(true);\n let { hoverProps, isHovered } = useHover({ isDisabled });\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n // Triggered by the wrapper rather than the input, so a disabled checkbox —\n // whose input ignores the pointer — still shows it.\n let { renderWithTooltip } = useAutoTooltip({ tooltip, children: null });\n\n const toggleState = useToggleState(props);\n\n // React Aria writes `form` onto the input as the id of its `<form>`, so the\n // form instance would render as `form=\"[object Object]\"` and detach it. It\n // reads `children` only to warn about a checkbox with no visible label; a\n // field `label` is one, named through its `<label for>`. Writing it into\n // `aria-label` instead used to drop the inline text from the name and\n // replace the caller's own `aria-label`.\n let ariaProps = { ...props, form: undefined, children: children ?? label };\n let { inputProps } = groupState\n ? useCheckboxGroupItem(\n {\n ...ariaProps,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires strictNullChecks disabled).\n value: props.value || '',\n // Only pass isRequired and the validation state to react-aria if they came from\n // the props for this individual checkbox, and not from the group via context.\n isRequired: originalProps.isRequired,\n isInvalid: resolveValidationProps(originalProps).isInvalid,\n },\n groupState,\n inputRef,\n )\n : useCheckbox(ariaProps, toggleState, inputRef);\n\n // Decorative: the input already announces checked, unchecked and mixed.\n let markIcon = isIndeterminate ? (\n <Icon size={12} stroke={3} aria-hidden=\"true\">\n <IconMinus />\n </Icon>\n ) : (\n <Icon size={12} stroke={3} aria-hidden=\"true\">\n <IconCheck />\n </Icon>\n );\n\n if (groupState) {\n for (let key of ['isSelected', 'defaultSelected', 'isEmphasized']) {\n // The raw props: `castNullableIsSelected` turns `null` into `false`.\n if (allProps[key] != null) {\n console.warn(\n `CubeUIKit: ${key} is unsupported on individual <Checkbox> elements within a <CheckboxGroup>. Please apply these props to the group instead.`,\n );\n }\n }\n if (props.value == null) {\n console.warn(\n 'CubeUIKit: A <Checkbox> element within a <CheckboxGroup> requires a `value` property.',\n );\n }\n }\n\n const mods = {\n checked: inputProps.checked,\n indeterminate: isIndeterminate,\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n hovered: isHovered,\n focused: isFocused,\n 'side-label': labelPosition === 'side',\n 'inside-form': insideForm,\n };\n\n // The wrapper's props, the same in both branches. React Aria puts `id`,\n // `aria-*` and `data-*` on the input, so they stay off the `<label>`: the\n // grouped one used to copy them, and `#id`, `for` and `aria-labelledby`\n // resolved to it. A caller's own `mods` stay, under the state ones.\n const wrapperProps = {\n className: props.className,\n style: props.style,\n qaVal: props.qaVal,\n styles,\n isHidden,\n mods: { ...props.mods, ...mods },\n };\n\n // The wrapper is the checkbox's element in both branches, so the field's ref\n // reaches it with or without the field chrome; a tooltip's ref shares it.\n const wrapperRefWith = (tooltipRef?: RefObject<HTMLElement>) =>\n tooltipRef ? mergeRefs(domRef, tooltipRef) : domRef;\n\n // The input, where keyboard focus lands, takes the tooltip's focus-side\n // trigger props; the wrapper keeps the hover side and positions the tooltip.\n const renderCheckbox = (tooltipFocusProps?: TooltipFocusProps) => (\n <>\n <HiddenInput\n qa={qa || 'Checkbox'}\n data-input-type=\"checkbox\"\n // For a dialog kept mounted while closed, as on `Button`.\n {...(props.autoFocus ? { 'data-autofocus': '' } : undefined)}\n {...mergeTooltipFocusProps(\n mergeProps(inputProps, focusProps),\n tooltipFocusProps,\n )}\n ref={inputRef}\n />\n <CheckboxElement data-element=\"Input\" mods={mods} styles={inputStyles}>\n {markIcon}\n </CheckboxElement>\n </>\n );\n\n if (!groupState) {\n const checkboxField = renderWithTooltip(\n (tooltipTriggerProps, tooltipRef) => {\n const { pointerProps, focusProps: tooltipFocusProps } =\n splitTooltipTriggerProps(tooltipTriggerProps);\n\n return (\n // `styles` is forwarded here as well as in the in-group branch\n // below — it used to be extracted from props and then dropped on\n // this path, so `<Checkbox styles={{ … }}>` outside a group was a\n // silent no-op.\n <CheckboxWrapperElement\n {...wrapperProps}\n {...mergeProps(hoverProps, pointerProps)}\n ref={wrapperRefWith(tooltipRef)}\n >\n {renderCheckbox(tooltipFocusProps)}\n {children ? (\n // Same element and preset as the in-group branch. This path used\n // to force children through `<Text nowrap>`: `white-space:\n // nowrap` inherits, so a label longer than a few words — or any\n // custom node with two lines in it — could not wrap at all, and\n // the label also missed the preset a grouped one picks up.\n <Element\n styles={INLINE_LABEL_STYLES}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n }}\n >\n {children}\n </Element>\n ) : null}\n </CheckboxWrapperElement>\n );\n },\n 'top',\n );\n\n // `tooltip` is the checkbox's own here, not a legacy label badge.\n // `renderWithTooltip` is typed for any node; here it returns an element.\n // The field label names the input through `for`, which `useFieldProps`\n // leaves unset for a caller's own `id` and inside the legacy `<Field>`, as\n // `Switch` does.\n return wrapWithField(checkboxField as ReactElement, {\n ...props,\n tooltip: undefined,\n labelProps: { ...props.labelProps, for: props.id },\n });\n }\n\n return renderWithTooltip((tooltipTriggerProps, tooltipRef) => {\n const { pointerProps, focusProps: tooltipFocusProps } =\n splitTooltipTriggerProps(tooltipTriggerProps);\n\n return (\n <CheckboxWrapperElement\n {...wrapperProps}\n {...mergeProps(hoverProps, pointerProps)}\n ref={wrapperRefWith(tooltipRef)}\n >\n {renderCheckbox(tooltipFocusProps)}\n {(label ?? children) ? (\n <Element\n // Before `labelProps`, so a `ref` passed there still wins.\n ref={labelRef}\n styles={labelStyles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n }}\n {...(labelProps ? filterBaseProps(labelProps) : undefined)}\n >\n {label ?? children}\n </Element>\n ) : null}\n </CheckboxWrapperElement>\n );\n }, 'top');\n}\n\n/**\n * Checkboxes allow users to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n */\nlet _Checkbox = forwardRef(Checkbox);\n\n(_Checkbox as any).cubeInputType = 'Checkbox';\nlet __Checkbox = Object.assign(\n _Checkbox as typeof _Checkbox & { Group: typeof CheckboxGroup },\n { Group: CheckboxGroup },\n);\n\n__Checkbox.displayName = 'Checkbox';\n\nexport { __Checkbox as Checkbox };\nexport type { AriaCheckboxProps };\nexport { useCheckbox };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA6EA,MAAMmD,yBAAyB1C,MAAM;CACnC2C,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,UAAU;EACVC,SAAS;EACTC,YAAY;EACZC,cAAc;EACdC,KAAK;EACLC,MAAM;EACNC,QAAQ;EACRC,QAAQ;EACRC,OAAO;EACPC,OAAO;CACT;AACF,CAAC;AAED,MAAMC,kBAAkBxD,MAAM,EAC5B6C,QAAQ;CACNE,SAAS;CACTC,YAAY;CACZS,QAAQ;CACRC,MAAM;EACJ,IAAI;EACJ,2BAA2B;EAC3B,sBAAsB;EACtB,qBAAqB;EACrB,oBAAoB;EACpB,mBAAmB;EACnBC,UAAU;CACZ;CAMAJ,OAAO;EACL,IAAI;EACJ,2BAA2B;CAC7B;CACAK,QAAQ;EACN,IAAI;EACJC,SAAS;EACTC,OAAO;EACP,8DAA8D;CAChE;CACAR,OAAO;CACPS,QAAQ;CACRC,SAAS;EACP,IAAI;EACJC,SAAS;CACX;CACAC,eAAe;CACfC,YAAY;AACd,EACF,CAAC;AAED,SAASC,SACPC,UACAC,KACA;CAIA,IAAIC,aAAanE,WAAW6B,oBAAoB;CAEhD,MAAMuC,gBAAgBtD,uBAAuBmD,QAAQ;CAErD,MAAMI,QAAQ/C,cAAc8C,eAAe;EACzCE,0BAA0B;EAC1BC,mBAAmB,EAAEnC,OAAOoC,gBAAgB;GAC1CC,YAAYrC,SAAS;GACrBD,iBAAiB;GACPqC;EACZ;EACAE,oBAAoB,CAAC,CAACP;CACxB,CAAC;CAED,IAAI,EACF3B,IACAL,kBAAkB,OAClBwC,aAAa,OACbC,YACAC,UACAC,OACAC,WACAC,SACAC,YACAC,UACAC,aACAC,eACAlD,aACAmD,UACAhD,YACEgC;CAEJ,IAAI5B,SAAiBzB,cAAcqD,OAAO9E,gBAAgB;CAE1D4F,cAAclF,eACL;EACL,GAAI,CAACkE,aAAa/C,eAAeD;EACjC,GAAGgE;CACL,IACA,CAAChB,YAAYgB,WAAW,CAC1B;CAEA,IAAI,EAAEG,WAAWC,eAAe1E,WAAS,IAAI;CAC7C,IAAI,EAAE2E,YAAYC,cAAcnF,SAAS,EAAEqE,WAAW,CAAC;CAEvD,IAAIe,WAAWxF,OAAO,IAAI;CAC1B,IAAIyF,SAASxG,gBAAgB+E,KAAKwB,QAAQ;CAI1C,IAAI,EAAEE,sBAAsB3E,eAAe;EAAEoB;EAASwC,UAAU;CAAK,CAAC;CAEtE,MAAMgB,cAActF,eAAe8D,KAAK;CAQxC,IAAIyB,YAAY;EAAE,GAAGzB;EAAO0B,MAAMC,KAAAA;EAAWnB,UAAUA,YAAYC;CAAM;CACzE,IAAI,EAAEmB,eAAe9B,aACjB9D,qBACE;EACE,GAAGyF;EAGH1D,OAAOiC,MAAMjC,SAAS;EAGtB8D,YAAY9B,cAAc8B;EAC1BnB,WAAW1D,uBAAuB+C,aAAa,CAAC,CAACW;CACnD,GACAZ,YACAuB,QACF,IACAtF,YAAY0F,WAAWD,aAAaH,QAAQ;CAGhD,IAAIS,WAAWhE,kBACb,oBAAC,MAAD;EAAM,MAAM;EAAI,QAAQ;EAAG,eAAY;EACrC,UAAA,oBAAC,WAAD,CAAU,CAAA;CACN,CAAA,IAEN,oBAAC,MAAD;EAAM,MAAM;EAAI,QAAQ;EAAG,eAAY;EACrC,UAAA,oBAAC,WAAD,CAAU,CAAA;CACN,CAAA;CAGR,IAAIgC,YAAY;EACd,KAAK,IAAIiC,OAAO;GAAC;GAAc;GAAmB;EAAc,GAE9D,IAAInC,SAASmC,QAAQ,MACnBC,QAAQC,KACN,cAAcF,IAAG,2HACnB;EAGJ,IAAI/B,MAAMjC,SAAS,MACjBiE,QAAQC,KACN,uFACF;CAEJ;CAEA,MAAMC,OAAO;EACXC,SAASP,WAAWO;EACpBC,eAAetE;EACf,GAAGjB,kBAAkB;GAAE6D;GAAWC;EAAQ,CAAC;EAC3CzB,UAAUoB;EACV+B,SAASjB;EACT5B,SAASyB;EACT,cAAcF,kBAAkB;EAChC,eAAeR;CACjB;CAMA,MAAM+B,eAAe;EACnBC,WAAWvC,MAAMuC;EACjBC,OAAOxC,MAAMwC;EACbC,OAAOzC,MAAMyC;EACbrE;EACA4C;EACAkB,MAAM;GAAE,GAAGlC,MAAMkC;GAAM,GAAGA;EAAK;CACjC;CAIA,MAAMQ,kBAAkBC,eACtBA,aAAapG,UAAU+E,QAAQqB,UAAU,IAAIrB;CAI/C,MAAMuB,kBAAkBC,sBACtB,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,aAAD;EACE,IAAI3E,MAAM;EACV,mBAAgB;EAEhB,GAAK6B,MAAM+C,YAAY,EAAE,kBAAkB,GAAG,IAAIpB,KAAAA;EAClD,GAAIvE,uBACFd,aAAWsF,YAAYV,UAAU,GACjC4B,iBACF;EACA,KAAKzB;CAAS,CAAA,GAEhB,oBAAC,iBAAD;EAAiB,gBAAa;EAAca;EAAM,QAAQrE;EACvDiE,UAAAA;CACc,CAAA,CACnB,EAAA,CAAA;CAGF,IAAI,CAAChC,YAAY;EACf,MAAMkD,gBAAgBzB,mBACnB0B,qBAAqBN,iBAAe;GACnC,MAAM,EAAEO,cAAchC,YAAY4B,wBAChCzF,yBAAyB4F,mBAAmB;GAE9C,OAKE,qBAAC,wBAAD;IACE,GAAIX;IACJ,GAAIhG,aAAW6E,YAAY+B,YAAY;IACvC,KAAKR,eAAeC,YAAU;IAHhC,UAAA,CAKGE,eAAeC,mBAAiB,GAChCtC,WAMC,oBAAC,SAAD;KACE,QAAQ1D;KACR,MAAM;MACJ,GAAGD,kBAAkB;OAAE6D;OAAWC;MAAQ,CAAC;MAC3CzB,UAAUoB;KACZ;KAECE;IACM,CAAA,IACP,IACkB;;EAE5B,GACA,KACF;EAOA,OAAOtD,cAAc8F,eAA+B;GAClD,GAAGhD;GACHhC,SAAS2D,KAAAA;GACTf,YAAY;IAAE,GAAGZ,MAAMY;IAAYuC,KAAKnD,MAAMoD;GAAG;EACnD,CAAC;CACH;CAEA,OAAO7B,mBAAmB0B,uBAAqBN,iBAAe;EAC5D,MAAM,EAAEO,cAAAA,gBAAchC,YAAY4B,wBAChCzF,yBAAyB4F,qBAAmB;EAE9C,OACE,qBAAC,wBAAD;GACE,GAAIX;GACJ,GAAIhG,aAAW6E,YAAY+B,cAAY;GACvC,KAAKR,eAAeC,YAAU;GAHhC,UAAA,CAKGE,eAAeC,mBAAiB,GAC/BrC,SAASD,WACT,oBAAC,SAAD;IAEE,KAAKK;IACL,QAAQC;IACR,MAAM;KACJ,GAAGjE,kBAAkB;MAAE6D;MAAWC;KAAQ,CAAC;KAC3CzB,UAAUoB;IACZ;IACA,GAAKM,aAAavF,gBAAgBuF,UAAU,IAAIe,KAAAA;IAE/ClB,UAAAA,SAASD;GACH,CAAA,IACP,IACkB;;CAE5B,GAAG,KAAK;AACV;;;;;AAMA,IAAI6C,YAAY7H,WAAWmE,QAAQ;AAEnC,UAAmB2D,gBAAgB;AACnC,IAAIC,aAAaC,OAAOC,OACtBJ,WACA,EAAEK,OAAOnG,eAAc,CACzB;AAEAgG,WAAWI,cAAc"}
1
+ {"version":3,"file":"Checkbox.js","names":["useFocusableRef","IconCheck","IconMinus","BaseProps","Element","filterBaseProps","Styles","tasty","forwardRef","ReactElement","RefObject","useContext","useMemo","useRef","AriaCheckboxProps","useCheckbox","useCheckboxGroupItem","useHover","useToggleState","Icon","FieldBaseProps","ToggleSelectionProps","mergeProps","mergeRefs","getDisabledElementProps","getInertInputProps","useFocus","castNullableIsSelected","WithNullableSelected","useAutoTooltip","getValidationMods","INLINE_LABEL_STYLES","LABEL_STYLES","resolveValidationProps","useFieldProps","wrapWithField","FieldLayoutStyleProps","splitFieldLayout","HiddenInput","mergeTooltipFocusProps","splitTooltipTriggerProps","TooltipFocusProps","CheckboxGroup","CheckboxGroupContext","FocusableRef","CubeTooltipProviderProps","CubeCheckboxProps","Omit","inputStyles","isIndeterminate","value","tooltip","CheckboxWrapperElement","as","qa","styles","position","display","placeItems","placeContent","gap","flow","preset","cursor","width","color","CheckboxElement","radius","fill","readonly","disabled","border","invalid","valid","height","outline","focused","outlineOffset","transition","Checkbox","allProps","ref","groupState","originalProps","props","defaultValidationTrigger","valuePropsMapper","onChange","isSelected","unsafe__isDisabled","isDisabled","insideForm","children","label","isInvalid","isValid","labelProps","labelRef","labelStyles","labelPosition","isHidden","field","hasChrome","undefined","isFocused","focusProps","inputRef","domRef","renderWithTooltip","isTooltipActive","toggleState","ariaProps","form","inputProps","isInputDisabled","isReadOnly","isRequired","hoverProps","isHovered","keepEvents","isInert","excludeFromTabOrder","markIcon","key","console","warn","mods","checked","indeterminate","hovered","wrapperProps","className","style","qaVal","wrapperRefWith","tooltipRef","HTMLElement","renderCheckbox","tooltipFocusProps","autoFocus","checkboxField","tooltipTriggerProps","pointerProps","for","id","_Checkbox","cubeInputType","__Checkbox","Object","assign","Group","displayName","useFocus","mergeProps","CheckboxGroup"],"sources":["../../../../src/components/fields/Checkbox/Checkbox.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport { IconCheck, IconMinus } from '@tabler/icons-react';\nimport {\n BaseProps,\n Element,\n filterBaseProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n forwardRef,\n ReactElement,\n RefObject,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport {\n AriaCheckboxProps,\n useCheckbox,\n useCheckboxGroupItem,\n useHover,\n} from 'react-aria';\nimport { useToggleState } from 'react-stately';\n\nimport { Icon } from '../../../icons/Icon';\nimport { FieldBaseProps, ToggleSelectionProps } from '../../../shared';\nimport { mergeProps, mergeRefs } from '../../../utils/react';\nimport {\n getDisabledElementProps,\n getInertInputProps,\n} from '../../../utils/react/disabledProps';\nimport { useFocus } from '../../../utils/react/interactions';\nimport {\n castNullableIsSelected,\n WithNullableSelected,\n} from '../../../utils/react/nullableValue';\nimport { useAutoTooltip } from '../../content/use-auto-tooltip';\nimport {\n getValidationMods,\n INLINE_LABEL_STYLES,\n LABEL_STYLES,\n resolveValidationProps,\n useFieldProps,\n wrapWithField,\n} from '../../form';\nimport {\n FieldLayoutStyleProps,\n splitFieldLayout,\n} from '../../form/field-layout';\nimport { HiddenInput } from '../../HiddenInput';\nimport {\n mergeTooltipFocusProps,\n splitTooltipTriggerProps,\n TooltipFocusProps,\n} from '../../overlays/Tooltip/split-trigger-props';\n\nimport { CheckboxGroup } from './CheckboxGroup';\nimport { CheckboxGroupContext } from './context';\n\nimport type { FocusableRef } from '@react-types/shared';\nimport type { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\n\nexport interface CubeCheckboxProps\n extends\n BaseProps,\n FieldLayoutStyleProps,\n Omit<AriaCheckboxProps, 'form' | 'name'>,\n ToggleSelectionProps,\n FieldBaseProps<boolean | null | undefined> {\n inputStyles?: Styles;\n isIndeterminate?: boolean;\n value?: string;\n /**\n * The checkbox's own tooltip, shown on hover over the box and its inline\n * label — also while the checkbox is disabled — and on keyboard focus. A string, or `TooltipProvider` props\n * (`title`, `placement`, …). The info badge next to a field label is\n * `labelTooltip`.\n */\n tooltip?: string | Omit<CubeTooltipProviderProps, 'children'>;\n}\n\nconst CheckboxWrapperElement = tasty({\n as: 'label',\n qa: 'CheckboxWrapper',\n styles: {\n position: 'relative',\n display: 'flex',\n placeItems: 'center start',\n placeContent: 'baseline',\n gap: '1x',\n flow: 'row',\n preset: 'default',\n cursor: '$pointer',\n width: 'max max-content',\n color: '#dark-02',\n },\n});\n\nconst CheckboxElement = tasty({\n styles: {\n display: 'grid',\n placeItems: 'center',\n radius: '.5r',\n fill: {\n '': '#surface',\n 'checked | indeterminate': '#primary',\n 'invalid & !checked': '#surface',\n 'invalid & checked': '#danger',\n 'valid & !checked': '#surface',\n 'valid & checked': '#success',\n readonly: '#surface-2',\n disabled: '#dark.12',\n },\n // The check / minus icon is always rendered inside the box, so the\n // default color must be transparent when the checkbox is neither\n // checked nor indeterminate — otherwise the white stroke shows through\n // the dark `#surface` fill in dark schemes (it used to be hidden\n // accidentally by the legacy white-on-white `fill: '#white'`).\n color: {\n '': '#clear',\n 'checked | indeterminate': '#white',\n 'readonly & !disabled & (checked | indeterminate)': '#dark-02',\n },\n border: {\n '': '#dark.30',\n invalid: '#danger',\n valid: '#success',\n 'disabled | ((indeterminate | checked) & !invalid & !valid & !readonly)':\n '#clear',\n },\n width: '(2x - 2bw)',\n height: '(2x - 2bw)',\n outline: {\n '': '#primary-text.0',\n focused: '$ring-width #primary-text',\n },\n outlineOffset: '$outline-offset',\n transition: 'theme',\n },\n});\n\nfunction Checkbox(\n allProps: WithNullableSelected<CubeCheckboxProps>,\n ref: FocusableRef,\n) {\n // Swap hooks depending on whether this checkbox is inside a CheckboxGroup.\n // This is a bit unorthodox. Typically, hooks cannot be called in a conditional,\n // but since the checkbox won't move in and out of a group, it should be safe.\n let groupState = useContext(CheckboxGroupContext);\n\n const originalProps = castNullableIsSelected(allProps);\n\n const props = useFieldProps(originalProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n isSelected: value ?? false,\n isIndeterminate: false,\n onChange: onChange,\n }),\n unsafe__isDisabled: !!groupState,\n });\n\n let {\n qa,\n isIndeterminate = false,\n isDisabled = false,\n insideForm,\n children,\n label,\n isInvalid,\n isValid,\n labelProps,\n labelRef,\n labelStyles,\n labelPosition,\n inputStyles,\n isHidden,\n tooltip,\n } = props;\n\n // A grouped checkbox is an option of its group's field and never wraps.\n const { styles, field } = splitFieldLayout(\n props,\n groupState ? { hasChrome: false } : undefined,\n );\n\n labelStyles = useMemo(\n () => ({\n ...(!groupState ? LABEL_STYLES : INLINE_LABEL_STYLES),\n ...labelStyles,\n }),\n [groupState, labelStyles],\n );\n\n let { isFocused, focusProps } = useFocus(true);\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n let { renderWithTooltip, isTooltipActive } = useAutoTooltip({\n tooltip,\n children: null,\n });\n\n const toggleState = useToggleState(props);\n\n // React Aria writes `form` onto the input as the id of its `<form>`, so the\n // form instance would render as `form=\"[object Object]\"` and detach it. It\n // reads `children` only to warn about a checkbox with no visible label; a\n // field `label` is one, named through its `<label for>`. Writing it into\n // `aria-label` instead used to drop the inline text from the name and\n // replace the caller's own `aria-label`.\n let ariaProps = { ...props, form: undefined, children: children ?? label };\n // `isReadOnly` is React Aria's: the checkbox's own or its group's.\n let {\n inputProps,\n isDisabled: isInputDisabled,\n isReadOnly,\n } = groupState\n ? useCheckboxGroupItem(\n {\n ...ariaProps,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires strictNullChecks disabled).\n value: props.value || '',\n // Only pass isRequired and the validation state to react-aria if they came from\n // the props for this individual checkbox, and not from the group via context.\n isRequired: originalProps.isRequired,\n isInvalid: resolveValidationProps(originalProps).isInvalid,\n },\n groupState,\n inputRef,\n )\n : useCheckbox(ariaProps, toggleState, inputRef);\n\n // A read-only checkbox takes no hover state: a press would change nothing.\n let { hoverProps, isHovered } = useHover({\n isDisabled: isDisabled || isReadOnly,\n });\n\n // A disabled checkbox with a tooltip to show keeps its focus, as a disabled\n // `Button` or `Radio` does: the tooltip is usually the reason it is disabled,\n // and focus is how the keyboard opens it. It is `aria-disabled` and inert\n // instead. React Aria's own result covers a disabled group too.\n if (\n getDisabledElementProps({\n isDisabled: isInputDisabled,\n keepEvents: isTooltipActive,\n as: 'input',\n }).isInert\n ) {\n inputProps = getInertInputProps(inputProps, {\n excludeFromTabOrder: props.excludeFromTabOrder,\n });\n }\n\n // Decorative: the input already announces checked, unchecked and mixed.\n let markIcon = isIndeterminate ? (\n <Icon size={12} stroke={3} aria-hidden=\"true\">\n <IconMinus />\n </Icon>\n ) : (\n <Icon size={12} stroke={3} aria-hidden=\"true\">\n <IconCheck />\n </Icon>\n );\n\n if (groupState) {\n for (let key of ['isSelected', 'defaultSelected', 'isEmphasized']) {\n // The raw props: `castNullableIsSelected` turns `null` into `false`.\n if (allProps[key] != null) {\n console.warn(\n `CubeUIKit: ${key} is unsupported on individual <Checkbox> elements within a <CheckboxGroup>. Please apply these props to the group instead.`,\n );\n }\n }\n if (props.value == null) {\n console.warn(\n 'CubeUIKit: A <Checkbox> element within a <CheckboxGroup> requires a `value` property.',\n );\n }\n }\n\n const mods = {\n checked: inputProps.checked,\n indeterminate: isIndeterminate,\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n readonly: isReadOnly,\n hovered: isHovered,\n focused: isFocused,\n 'side-label': labelPosition === 'side',\n 'inside-form': insideForm,\n };\n\n // The wrapper's props, the same in both branches. React Aria puts `id`,\n // `aria-*` and `data-*` on the input, so they stay off the `<label>`: the\n // grouped one used to copy them, and `#id`, `for` and `aria-labelledby`\n // resolved to it. A caller's own `mods` stay, under the state ones.\n const wrapperProps = {\n className: props.className,\n style: props.style,\n qaVal: props.qaVal,\n styles,\n isHidden,\n mods: { ...props.mods, ...mods },\n };\n\n // The wrapper is the checkbox's element in both branches, so the field's ref\n // reaches it with or without the field chrome; a tooltip's ref shares it.\n const wrapperRefWith = (tooltipRef?: RefObject<HTMLElement>) =>\n tooltipRef ? mergeRefs(domRef, tooltipRef) : domRef;\n\n // The input, where keyboard focus lands, takes the tooltip's focus-side\n // trigger props; the wrapper keeps the hover side and positions the tooltip.\n const renderCheckbox = (tooltipFocusProps?: TooltipFocusProps) => (\n <>\n <HiddenInput\n qa={qa || 'Checkbox'}\n data-input-type=\"checkbox\"\n // For a dialog kept mounted while closed, as on `Button`.\n {...(props.autoFocus ? { 'data-autofocus': '' } : undefined)}\n {...mergeTooltipFocusProps(\n mergeProps(inputProps, focusProps),\n tooltipFocusProps,\n )}\n ref={inputRef}\n // Not left to the native `disabled`, which an inert input drops.\n mods={{ disabled: isInputDisabled }}\n />\n <CheckboxElement data-element=\"Input\" mods={mods} styles={inputStyles}>\n {markIcon}\n </CheckboxElement>\n </>\n );\n\n if (!groupState) {\n const checkboxField = renderWithTooltip(\n (tooltipTriggerProps, tooltipRef) => {\n const { pointerProps, focusProps: tooltipFocusProps } =\n splitTooltipTriggerProps(tooltipTriggerProps);\n\n return (\n // `styles` is forwarded here as well as in the in-group branch\n // below — it used to be extracted from props and then dropped on\n // this path, so `<Checkbox styles={{ … }}>` outside a group was a\n // silent no-op.\n <CheckboxWrapperElement\n {...wrapperProps}\n {...mergeProps(hoverProps, pointerProps)}\n ref={wrapperRefWith(tooltipRef)}\n >\n {renderCheckbox(tooltipFocusProps)}\n {children ? (\n // Same element and preset as the in-group branch. This path used\n // to force children through `<Text nowrap>`: `white-space:\n // nowrap` inherits, so a label longer than a few words — or any\n // custom node with two lines in it — could not wrap at all, and\n // the label also missed the preset a grouped one picks up.\n <Element\n styles={INLINE_LABEL_STYLES}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n }}\n >\n {children}\n </Element>\n ) : null}\n </CheckboxWrapperElement>\n );\n },\n 'top',\n );\n\n // `tooltip` is the checkbox's own here, not a legacy label badge.\n // `renderWithTooltip` is typed for any node; here it returns an element.\n // The field label names the input through `for`, which `useFieldProps`\n // leaves unset for a caller's own `id` and inside the legacy `<Field>`, as\n // `Switch` does.\n return wrapWithField(checkboxField as ReactElement, {\n ...props,\n ...field,\n tooltip: undefined,\n labelProps: { ...props.labelProps, for: props.id },\n });\n }\n\n return renderWithTooltip((tooltipTriggerProps, tooltipRef) => {\n const { pointerProps, focusProps: tooltipFocusProps } =\n splitTooltipTriggerProps(tooltipTriggerProps);\n\n return (\n <CheckboxWrapperElement\n {...wrapperProps}\n {...mergeProps(hoverProps, pointerProps)}\n ref={wrapperRefWith(tooltipRef)}\n >\n {renderCheckbox(tooltipFocusProps)}\n {(label ?? children) ? (\n <Element\n // Before `labelProps`, so a `ref` passed there still wins.\n ref={labelRef}\n styles={labelStyles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n }}\n {...(labelProps ? filterBaseProps(labelProps) : undefined)}\n >\n {label ?? children}\n </Element>\n ) : null}\n </CheckboxWrapperElement>\n );\n }, 'top');\n}\n\n/**\n * Checkboxes allow users to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n */\nlet _Checkbox = forwardRef(Checkbox);\n\n(_Checkbox as any).cubeInputType = 'Checkbox';\nlet __Checkbox = Object.assign(\n _Checkbox as typeof _Checkbox & { Group: typeof CheckboxGroup },\n { Group: CheckboxGroup },\n);\n\n__Checkbox.displayName = 'Checkbox';\n\nexport { __Checkbox as Checkbox };\nexport type { AriaCheckboxProps };\nexport { useCheckbox };\n"],"mappings":"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"}
@@ -1,10 +1,11 @@
1
1
 
2
2
  import { FieldBaseProps } from "../../../shared/form.js";
3
3
  import "../../../shared/index.js";
4
- import { BaseProps, ContainerStyleProps, Styles } from "@tenphi/tasty";
4
+ import { FieldLayoutStyleProps } from "../../form/field-layout.js";
5
+ import { BaseProps, Styles } from "@tenphi/tasty";
5
6
  import { AriaCheckboxGroupProps } from "react-aria";
6
7
  //#region src/components/fields/Checkbox/CheckboxGroup.d.ts
7
- export interface CubeCheckboxGroupProps extends BaseProps, Omit<AriaCheckboxGroupProps, 'errorMessage' | 'form' | 'name'>, FieldBaseProps<readonly string[] | null | undefined>, ContainerStyleProps {
8
+ export interface CubeCheckboxGroupProps extends BaseProps, Omit<AriaCheckboxGroupProps, 'errorMessage' | 'form' | 'name'>, FieldBaseProps<readonly string[] | null | undefined>, FieldLayoutStyleProps {
8
9
  orientation?: 'vertical' | 'horizontal';
9
10
  inputStyles?: Styles;
10
11
  }
@@ -1,13 +1,14 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.200.1 | Cube Dev Team */
2
- import { extractStyles } from "../../../utils/styles.js";
1
+ /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
3
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
+ import { Provider } from "../../../provider.js";
4
4
  import { castNullableArrayValue } from "../../../utils/react/nullableValue.js";
5
5
  import { FormScopeMask } from "../../form/Form/Form.js";
6
6
  import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
7
7
  import { wrapWithField } from "../../form/wrapper.js";
8
+ import { splitFieldLayout } from "../../form/field-layout.js";
8
9
  import { CheckboxGroupContext } from "./context.js";
9
10
  import { c } from "react/compiler-runtime";
10
- import { CONTAINER_STYLES, tasty } from "@tenphi/tasty";
11
+ import { tasty } from "@tenphi/tasty";
11
12
  import { forwardRef } from "react";
12
13
  import { jsx } from "react/jsx-runtime";
13
14
  import { useCheckboxGroup } from "react-aria";
@@ -31,7 +32,7 @@ const CheckGroupElement = tasty({
31
32
  }
32
33
  });
33
34
  function CheckboxGroup(rawProps, ref) {
34
- const $ = c(29);
35
+ const $ = c(21);
35
36
  let t0;
36
37
  if ($[0] !== rawProps) {
37
38
  t0 = castNullableArrayValue(rawProps);
@@ -48,10 +49,10 @@ function CheckboxGroup(rawProps, ref) {
48
49
  $[2] = t1;
49
50
  } else t1 = $[2];
50
51
  const props = useFieldProps(rawProps, t1);
51
- const { id, isDisabled, isRequired, necessityIndicator, label, extra, isInvalid, isValid, children, orientation: t2, message, description, labelStyles, labelProps: baseLabelProps, labelSuffix, inputStyles, form, ...otherProps } = props;
52
+ const { id, isDisabled, isReadOnly, isInvalid, isValid, children, orientation: t2, labelProps: baseLabelProps, inputStyles } = props;
52
53
  const orientation = t2 === void 0 ? "vertical" : t2;
53
54
  const domRef = useObjectRef(ref);
54
- const styles = extractStyles(otherProps, CONTAINER_STYLES, inputStyles);
55
+ const { styles, field } = splitFieldLayout(props, { defaultStyles: inputStyles });
55
56
  const state = useCheckboxGroupState(props);
56
57
  let t3;
57
58
  if ($[3] !== props) {
@@ -93,47 +94,40 @@ function CheckboxGroup(rawProps, ref) {
93
94
  $[13] = t7;
94
95
  } else t7 = $[13];
95
96
  let t8;
96
- if ($[14] !== t6 || $[15] !== t7) {
97
- t8 = /* @__PURE__ */ jsx(FormScopeMask, {
98
- value: t6,
97
+ if ($[14] !== isDisabled || $[15] !== isReadOnly || $[16] !== t7) {
98
+ t8 = /* @__PURE__ */ jsx(Provider, {
99
+ isDisabled,
100
+ isReadOnly,
99
101
  children: t7
100
102
  });
101
- $[14] = t6;
102
- $[15] = t7;
103
- $[16] = t8;
104
- } else t8 = $[16];
103
+ $[14] = isDisabled;
104
+ $[15] = isReadOnly;
105
+ $[16] = t7;
106
+ $[17] = t8;
107
+ } else t8 = $[17];
105
108
  let t9;
106
- if ($[17] !== domRef || $[18] !== groupProps || $[19] !== id || $[20] !== styles || $[21] !== t5 || $[22] !== t8) {
107
- t9 = /* @__PURE__ */ jsx(CheckGroupElement, {
108
- ref: domRef,
109
- ...groupProps,
110
- id,
111
- styles,
112
- mods: t5,
109
+ if ($[18] !== t6 || $[19] !== t8) {
110
+ t9 = /* @__PURE__ */ jsx(FormScopeMask, {
111
+ value: t6,
113
112
  children: t8
114
113
  });
115
- $[17] = domRef;
116
- $[18] = groupProps;
117
- $[19] = id;
118
- $[20] = styles;
119
- $[21] = t5;
120
- $[22] = t8;
121
- $[23] = t9;
122
- } else t9 = $[23];
123
- const radioGroup = t9;
124
- let t10;
125
- if ($[24] !== baseLabelProps || $[25] !== labelProps || $[26] !== props || $[27] !== radioGroup) {
126
- t10 = wrapWithField(radioGroup, {
127
- ...props,
128
- labelProps: mergeProps$1(baseLabelProps, labelProps)
129
- });
130
- $[24] = baseLabelProps;
131
- $[25] = labelProps;
132
- $[26] = props;
133
- $[27] = radioGroup;
134
- $[28] = t10;
135
- } else t10 = $[28];
136
- return t10;
114
+ $[18] = t6;
115
+ $[19] = t8;
116
+ $[20] = t9;
117
+ } else t9 = $[20];
118
+ const radioGroup = /* @__PURE__ */ jsx(CheckGroupElement, {
119
+ ref: domRef,
120
+ ...groupProps,
121
+ id,
122
+ styles,
123
+ mods: t5,
124
+ children: t9
125
+ });
126
+ return wrapWithField(radioGroup, {
127
+ ...props,
128
+ ...field,
129
+ labelProps: mergeProps$1(baseLabelProps, labelProps)
130
+ });
137
131
  }
138
132
  /**
139
133
  * Checkbox groups allow users to select any number of options from a list.