@cube-dev/ui-kit 0.199.1 → 0.200.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 (705) hide show
  1. package/dist/CHANGELOG.md +47 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +2 -2
  13. package/dist/components/GlobalStyles.js.map +1 -1
  14. package/dist/components/GridProvider.d.ts +6 -4
  15. package/dist/components/GridProvider.js +14 -9
  16. package/dist/components/GridProvider.js.map +1 -1
  17. package/dist/components/HiddenInput.js +1 -1
  18. package/dist/components/Root.js +17 -17
  19. package/dist/components/Root.js.map +1 -1
  20. package/dist/components/actions/Action/Action.js +1 -1
  21. package/dist/components/actions/Banner/Banner.js +1 -1
  22. package/dist/components/actions/Button/Button.js +7 -9
  23. package/dist/components/actions/Button/Button.js.map +1 -1
  24. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  25. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  26. package/dist/components/actions/ButtonSplit/context.js +1 -1
  27. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/dist/components/actions/CommandMenu/styled.js +1 -1
  29. package/dist/components/actions/ItemAction/ItemAction.js +7 -12
  30. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  31. package/dist/components/actions/ItemActionContext.js +1 -1
  32. package/dist/components/actions/ItemActionsWrapper.js +35 -37
  33. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  34. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  35. package/dist/components/actions/Link/Link.js +1 -1
  36. package/dist/components/actions/Menu/Menu.js +1 -1
  37. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  38. package/dist/components/actions/Menu/MenuItem.js +1 -1
  39. package/dist/components/actions/Menu/MenuSection.js +1 -1
  40. package/dist/components/actions/Menu/MenuTrigger.js +116 -127
  41. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  42. package/dist/components/actions/Menu/SubMenuTrigger.js +4 -3
  43. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  44. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  45. package/dist/components/actions/Menu/context.js +1 -1
  46. package/dist/components/actions/Menu/styled.js +5 -4
  47. package/dist/components/actions/Menu/styled.js.map +1 -1
  48. package/dist/components/actions/actions-run.js +1 -1
  49. package/dist/components/actions/index.js +1 -1
  50. package/dist/components/actions/use-action.js +1 -1
  51. package/dist/components/actions/use-anchored-menu.js +1 -1
  52. package/dist/components/actions/use-context-menu.js +32 -23
  53. package/dist/components/actions/use-context-menu.js.map +1 -1
  54. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  55. package/dist/components/content/Alert/Alert.js +1 -1
  56. package/dist/components/content/Alert/Alert.js.map +1 -1
  57. package/dist/components/content/Alert/use-alert.js +24 -27
  58. package/dist/components/content/Alert/use-alert.js.map +1 -1
  59. package/dist/components/content/Avatar/Avatar.js +1 -1
  60. package/dist/components/content/Badge/Badge.js +6 -2
  61. package/dist/components/content/Badge/Badge.js.map +1 -1
  62. package/dist/components/content/Card/Card.js +1 -1
  63. package/dist/components/content/Content.js +1 -1
  64. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -3
  65. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  66. package/dist/components/content/CopySnippet/CopySnippet.js +83 -87
  67. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  68. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  69. package/dist/components/content/Divider.js +1 -1
  70. package/dist/components/content/Footer.js +1 -1
  71. package/dist/components/content/Header.js +1 -1
  72. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  73. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  74. package/dist/components/content/InlineInput/InlineInput.js +6 -13
  75. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  76. package/dist/components/content/Item/Item.js +18 -18
  77. package/dist/components/content/Item/Item.js.map +1 -1
  78. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  79. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  80. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  81. package/dist/components/content/Layout/GridLayout.js +1 -1
  82. package/dist/components/content/Layout/Layout.js +10 -14
  83. package/dist/components/content/Layout/Layout.js.map +1 -1
  84. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  85. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  86. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  87. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  88. package/dist/components/content/Layout/LayoutContent.js +18 -16
  89. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  90. package/dist/components/content/Layout/LayoutContext.js +1 -1
  91. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  92. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  93. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  94. package/dist/components/content/Layout/LayoutHeader.js +2 -2
  95. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  96. package/dist/components/content/Layout/LayoutPane.js +35 -31
  97. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  98. package/dist/components/content/Layout/LayoutPanel.js +31 -27
  99. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  100. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  101. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  102. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  103. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +23 -25
  104. package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
  105. package/dist/components/content/Layout/index.js +1 -1
  106. package/dist/components/content/Layout/utils.js +1 -1
  107. package/dist/components/content/Paragraph.js +1 -1
  108. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  109. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  110. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  111. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  112. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  113. package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
  114. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  115. package/dist/components/content/Result/Result.js +1 -1
  116. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  117. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  118. package/dist/components/content/Tag/Tag.js +6 -2
  119. package/dist/components/content/Tag/Tag.js.map +1 -1
  120. package/dist/components/content/Text.js +1 -1
  121. package/dist/components/content/TextItem/TextItem.js +2 -5
  122. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  123. package/dist/components/content/Title.js +1 -1
  124. package/dist/components/content/Tree/Tree.js +11 -21
  125. package/dist/components/content/Tree/Tree.js.map +1 -1
  126. package/dist/components/content/Tree/TreeNode.js +7 -7
  127. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  128. package/dist/components/content/Tree/styled.js +31 -12
  129. package/dist/components/content/Tree/styled.js.map +1 -1
  130. package/dist/components/content/Tree/tree-index.js +1 -1
  131. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  132. package/dist/components/content/Tree/use-load-data.js +1 -1
  133. package/dist/components/content/highlightText.js +1 -1
  134. package/dist/components/content/use-auto-tooltip.js +1 -1
  135. package/dist/components/data/DataTable/DataTable.js +1 -1
  136. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  137. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  138. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  139. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  140. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -2
  141. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  142. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  143. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  144. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  145. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  146. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  147. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  148. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  149. package/dist/components/data/TableBase/RowCollection.js +1 -1
  150. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  151. package/dist/components/data/TableBase/TableRow.js +1 -1
  152. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  153. package/dist/components/data/TableBase/TableView.js +4 -7
  154. package/dist/components/data/TableBase/TableView.js.map +1 -1
  155. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  156. package/dist/components/data/TableBase/TreeGridTable.js.map +1 -1
  157. package/dist/components/data/TableBase/column-header.js +1 -1
  158. package/dist/components/data/TableBase/column-menu.js +1 -1
  159. package/dist/components/data/TableBase/column-styles.js +1 -1
  160. package/dist/components/data/TableBase/column-tint.js +1 -1
  161. package/dist/components/data/TableBase/row-menu.js +1 -1
  162. package/dist/components/data/TableBase/styled.js +36 -29
  163. package/dist/components/data/TableBase/styled.js.map +1 -1
  164. package/dist/components/data/TableBase/table-tree.js +1 -1
  165. package/dist/components/data/TableBase/types.js +1 -1
  166. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  167. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  168. package/dist/components/data/TableBase/use-column-order.js +1 -1
  169. package/dist/components/data/TableBase/use-column-window.js +1 -1
  170. package/dist/components/data/TableBase/use-container-width.js +1 -1
  171. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  172. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  173. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  174. package/dist/components/data/TableBase/use-table-search.js +1 -1
  175. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  176. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  177. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  178. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  179. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  180. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  181. package/dist/components/fields/Checkbox/Checkbox.js +3 -3
  182. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  183. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  184. package/dist/components/fields/Checkbox/context.js +1 -1
  185. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  186. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  187. package/dist/components/fields/ColorSwatch/ColorSwatch.d.ts +1 -1
  188. package/dist/components/fields/ColorSwatch/ColorSwatch.js +4 -4
  189. package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -1
  190. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +12 -15
  191. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  192. package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -1
  193. package/dist/components/fields/ComboBox/ComboBox.js +174 -183
  194. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  195. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  196. package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +1 -1
  197. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  198. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  199. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  200. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  201. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  202. package/dist/components/fields/DatePicker/DateInputBase.js +5 -9
  203. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  204. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  205. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  206. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  207. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  208. package/dist/components/fields/DatePicker/DatePickerSegment.js +49 -39
  209. package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
  210. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  211. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  212. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  213. package/dist/components/fields/DatePicker/PeriodPicker.js +5 -3
  214. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  215. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  216. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  217. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  218. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  219. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  220. package/dist/components/fields/DatePicker/period.js +1 -1
  221. package/dist/components/fields/DatePicker/props.js +1 -1
  222. package/dist/components/fields/DatePicker/utils.js +1 -1
  223. package/dist/components/fields/FileInput/FileInput.js +2 -2
  224. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  225. package/dist/components/fields/FilterListBox/FilterListBox.js +6 -8
  226. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  227. package/dist/components/fields/FilterPicker/FilterPicker.js +2 -2
  228. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  229. package/dist/components/fields/Input/Input.js +1 -1
  230. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  231. package/dist/components/fields/ListBox/ListBox.d.ts +1 -1
  232. package/dist/components/fields/ListBox/ListBox.js +49 -24
  233. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  234. package/dist/components/fields/ListBox/optionId.js +1 -1
  235. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +2 -2
  236. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  237. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  238. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  239. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  240. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  241. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  242. package/dist/components/fields/Picker/Picker.js +2 -2
  243. package/dist/components/fields/Picker/Picker.js.map +1 -1
  244. package/dist/components/fields/RadioGroup/Radio.js +91 -96
  245. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  246. package/dist/components/fields/RadioGroup/RadioGroup.js +3 -3
  247. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  248. package/dist/components/fields/RadioGroup/context.js +1 -1
  249. package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +1 -1
  250. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -2
  251. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  252. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  253. package/dist/components/fields/Select/Select.d.ts +1 -1
  254. package/dist/components/fields/Select/Select.js +4 -4
  255. package/dist/components/fields/Select/Select.js.map +1 -1
  256. package/dist/components/fields/Slider/Gradation.js +1 -1
  257. package/dist/components/fields/Slider/HueSlider.js +3 -3
  258. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  259. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  260. package/dist/components/fields/Slider/Slider.js +1 -1
  261. package/dist/components/fields/Slider/SliderBase.js +4 -6
  262. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  263. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  264. package/dist/components/fields/Slider/SliderTrack.js +5 -5
  265. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  266. package/dist/components/fields/Slider/elements.js +7 -6
  267. package/dist/components/fields/Slider/elements.js.map +1 -1
  268. package/dist/components/fields/Slider/index.js +1 -1
  269. package/dist/components/fields/Switch/Switch.js +3 -3
  270. package/dist/components/fields/Switch/Switch.js.map +1 -1
  271. package/dist/components/fields/TagInput/TagInput.d.ts +1 -1
  272. package/dist/components/fields/TagInput/TagInput.js +1 -1
  273. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  274. package/dist/components/fields/TagInput/TagList.js +3 -3
  275. package/dist/components/fields/TagInput/TagList.js.map +1 -1
  276. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  277. package/dist/components/fields/TagInput/useTagError.js +1 -1
  278. package/dist/components/fields/TextArea/TextArea.js +1 -1
  279. package/dist/components/fields/TextInput/TextInput.js +1 -1
  280. package/dist/components/fields/TextInput/TextInputBase.js +3 -6
  281. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  282. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  283. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  284. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  285. package/dist/components/fields/TriggerActions.js +1 -1
  286. package/dist/components/fields/color/ColorPanel.js +7 -7
  287. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  288. package/dist/components/fields/color/channels.js +4 -4
  289. package/dist/components/fields/color/channels.js.map +1 -1
  290. package/dist/components/fields/color/color.js +1 -1
  291. package/dist/components/fields/color/context.js +1 -1
  292. package/dist/components/fields/option-origin-press.js +1 -1
  293. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  294. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  295. package/dist/components/form/Form/Field.js +1 -1
  296. package/dist/components/form/Form/Form.js +1 -1
  297. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  298. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  299. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  300. package/dist/components/form/Form/SubmitError.js +1 -1
  301. package/dist/components/form/Form/backend.js +1 -1
  302. package/dist/components/form/Form/index.js +1 -1
  303. package/dist/components/form/Form/modern/actions.js +1 -1
  304. package/dist/components/form/Form/modern/context.js +1 -1
  305. package/dist/components/form/Form/modern/controller.js +1 -1
  306. package/dist/components/form/Form/modern/field-binding.js +1 -1
  307. package/dist/components/form/Form/modern/field.js +1 -1
  308. package/dist/components/form/Form/modern/react.js +1 -1
  309. package/dist/components/form/Form/modern/store.js +1 -1
  310. package/dist/components/form/Form/modern/validation.js +1 -1
  311. package/dist/components/form/Form/modern/values.js +1 -1
  312. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  313. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  314. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  315. package/dist/components/form/Form/use-field/use-field.js +1 -1
  316. package/dist/components/form/Form/use-form.js +1 -1
  317. package/dist/components/form/Form/validation.js +1 -1
  318. package/dist/components/form/Label.js +11 -8
  319. package/dist/components/form/Label.js.map +1 -1
  320. package/dist/components/form/field-chrome.js +1 -1
  321. package/dist/components/form/legacy-tooltip.js +1 -1
  322. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  323. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  324. package/dist/components/form/validation/use-validation-props.js +1 -1
  325. package/dist/components/form/wrapper.js +1 -1
  326. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  327. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  328. package/dist/components/layout/Flex.js +1 -1
  329. package/dist/components/layout/Flow.js +1 -1
  330. package/dist/components/layout/Grid.js +1 -1
  331. package/dist/components/layout/Panel.js +13 -38
  332. package/dist/components/layout/Panel.js.map +1 -1
  333. package/dist/components/layout/Prefix.js +16 -22
  334. package/dist/components/layout/Prefix.js.map +1 -1
  335. package/dist/components/layout/ResizablePanel.js +30 -25
  336. package/dist/components/layout/ResizablePanel.js.map +1 -1
  337. package/dist/components/layout/Space.js +1 -1
  338. package/dist/components/layout/Suffix.js +16 -22
  339. package/dist/components/layout/Suffix.js.map +1 -1
  340. package/dist/components/navigation/Pagination/Pagination.js +2 -2
  341. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  342. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  343. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  344. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  345. package/dist/components/navigation/Tabs/TabButton.js +2 -1
  346. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  347. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  348. package/dist/components/navigation/Tabs/TabPanel.js +2 -2
  349. package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
  350. package/dist/components/navigation/Tabs/TabPicker.js +62 -68
  351. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  352. package/dist/components/navigation/Tabs/Tabs.js +6 -9
  353. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  354. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  355. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  356. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  357. package/dist/components/navigation/Tabs/styled.js +20 -17
  358. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  359. package/dist/components/navigation/Tabs/types.js +1 -1
  360. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  361. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  362. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  363. package/dist/components/other/Calendar/Calendar.js +1 -1
  364. package/dist/components/other/Calendar/CalendarCell.js +6 -6
  365. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  366. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  367. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  368. package/dist/components/other/Calendar/CalendarPanel.js +3 -3
  369. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  370. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  371. package/dist/components/other/Calendar/PeriodGrid.js +6 -6
  372. package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
  373. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  374. package/dist/components/other/Calendar/styled.js +4 -4
  375. package/dist/components/other/Calendar/styled.js.map +1 -1
  376. package/dist/components/other/CubeLogo/CubeLogo.js +3 -4
  377. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  378. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  379. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  380. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  381. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  382. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  383. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  384. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  385. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  386. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  387. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  388. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  389. package/dist/components/overlays/Dialog/context.js +1 -1
  390. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  391. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  392. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  393. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  394. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  395. package/dist/components/overlays/Modal/Modal.js +3 -3
  396. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  397. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  398. package/dist/components/overlays/Modal/Overlay.js +1 -1
  399. package/dist/components/overlays/Modal/Popover.js +1 -1
  400. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  401. package/dist/components/overlays/Modal/Tray.js +5 -6
  402. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  403. package/dist/components/overlays/Modal/Underlay.js +2 -2
  404. package/dist/components/overlays/Modal/Underlay.js.map +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 +28 -13
  412. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  413. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  414. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +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 +8 -6
  429. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  430. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  431. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  432. package/dist/components/overlays/Tooltip/context.js +1 -1
  433. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  434. package/dist/components/portal/Portal.js +1 -1
  435. package/dist/components/portal/PortalProvider.js +1 -1
  436. package/dist/components/portal/usePortal.js +1 -1
  437. package/dist/components/shared/DraggableCollection.js +1 -1
  438. package/dist/components/shared/InvalidIcon.js +1 -1
  439. package/dist/components/shared/ValidIcon.js +1 -1
  440. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +58 -57
  441. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  442. package/dist/components/status/Spin/Cube.js +1 -1
  443. package/dist/components/status/Spin/Cube.js.map +1 -1
  444. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  445. package/dist/components/status/Spin/Spin.js +1 -1
  446. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  447. package/dist/data/item-themes.js +153 -188
  448. package/dist/data/item-themes.js.map +1 -1
  449. package/dist/data/themes.js +1 -1
  450. package/dist/eslint-plugin/defaults.generated.js +2 -2
  451. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  452. package/dist/eslint-plugin/index.js +1 -1
  453. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  454. package/dist/i18n/I18nProvider.js +1 -1
  455. package/dist/i18n/createFormatter.js +1 -1
  456. package/dist/i18n/index.js +1 -1
  457. package/dist/i18n/instance.js +1 -1
  458. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  459. package/dist/i18n/locales/en-US/uikit.js +1 -1
  460. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  461. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  462. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  463. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  464. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  465. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  466. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  467. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  468. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  469. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  470. package/dist/i18n/locales.js +1 -1
  471. package/dist/i18n/namespace.js +1 -1
  472. package/dist/i18n/useFormatter.js +1 -1
  473. package/dist/i18n/useI18n.js +1 -1
  474. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  475. package/dist/icons/AdjustmentsIcon.js +1 -1
  476. package/dist/icons/AiIcon.js +1 -1
  477. package/dist/icons/AreaChartIcon.js +1 -1
  478. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  479. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  480. package/dist/icons/BackwardIcon.js +1 -1
  481. package/dist/icons/BarChartIcon.js +1 -1
  482. package/dist/icons/BellFilledIcon.js +1 -1
  483. package/dist/icons/BellIcon.js +1 -1
  484. package/dist/icons/BooleanIcon.js +1 -1
  485. package/dist/icons/CalendarEditIcon.js +1 -1
  486. package/dist/icons/CalendarIcon.js +1 -1
  487. package/dist/icons/CaretDownIcon.js +1 -1
  488. package/dist/icons/CaretUpIcon.js +1 -1
  489. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  490. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  491. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  492. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  493. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  494. package/dist/icons/ChartBarLineIcon.js +1 -1
  495. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  496. package/dist/icons/ChartBarStackedIcon.js +1 -1
  497. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  498. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  499. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  500. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  501. package/dist/icons/ChartBubbleIcon.js +1 -1
  502. package/dist/icons/ChartDonut2Icon.js +1 -1
  503. package/dist/icons/ChartFunnelIcon.js +1 -1
  504. package/dist/icons/ChartHeatmapIcon.js +1 -1
  505. package/dist/icons/ChartKPIIcon.js +1 -1
  506. package/dist/icons/ChartPie2Icon.js +1 -1
  507. package/dist/icons/ChartScatterIcon.js +1 -1
  508. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  509. package/dist/icons/CheckCircleIcon.js +1 -1
  510. package/dist/icons/CheckIcon.js +1 -1
  511. package/dist/icons/CircleFilledIcon.js +1 -1
  512. package/dist/icons/ClearIcon.js +1 -1
  513. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  514. package/dist/icons/CloseCircleIcon.js +1 -1
  515. package/dist/icons/CloseIcon.js +1 -1
  516. package/dist/icons/CodeIcon.js +1 -1
  517. package/dist/icons/ColumnTotalIcon.js +1 -1
  518. package/dist/icons/CopyIcon.js +1 -1
  519. package/dist/icons/CountIcon.js +1 -1
  520. package/dist/icons/CubeIcon.js +1 -1
  521. package/dist/icons/CubePauseIcon.js +1 -1
  522. package/dist/icons/CubePlayIcon.js +1 -1
  523. package/dist/icons/CurrencyDollarIcon.js +1 -1
  524. package/dist/icons/DangerIcon.js +1 -1
  525. package/dist/icons/DashboardIcon.js +1 -1
  526. package/dist/icons/DatabaseIcon.js +1 -1
  527. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  528. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  529. package/dist/icons/DirectionIcon.js +25 -22
  530. package/dist/icons/DirectionIcon.js.map +1 -1
  531. package/dist/icons/DonutIcon.js +1 -1
  532. package/dist/icons/DownIcon.js +1 -1
  533. package/dist/icons/EditIcon.js +1 -1
  534. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  535. package/dist/icons/ExclamationCircleIcon.js +1 -1
  536. package/dist/icons/ExclamationIcon.js +1 -1
  537. package/dist/icons/EyeIcon.js +1 -1
  538. package/dist/icons/EyeInvisibleIcon.js +1 -1
  539. package/dist/icons/FilterIcon.js +1 -1
  540. package/dist/icons/FolderFilledIcon.js +1 -1
  541. package/dist/icons/FolderIcon.js +1 -1
  542. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  543. package/dist/icons/FolderOpenIcon.js +1 -1
  544. package/dist/icons/ForwardIcon.js +1 -1
  545. package/dist/icons/GripVerticalIcon.js +1 -1
  546. package/dist/icons/HierarchyIcon.js +1 -1
  547. package/dist/icons/HierarchyOpenIcon.js +1 -1
  548. package/dist/icons/Icon.js +21 -38
  549. package/dist/icons/Icon.js.map +1 -1
  550. package/dist/icons/InfoCircleIcon.js +1 -1
  551. package/dist/icons/InfoIcon.js +1 -1
  552. package/dist/icons/KeyIcon.js +1 -1
  553. package/dist/icons/LeftIcon.js +1 -1
  554. package/dist/icons/LineChartIcon.js +1 -1
  555. package/dist/icons/LoadingIcon.js +1 -1
  556. package/dist/icons/LockFilledIcon.js +1 -1
  557. package/dist/icons/LockIcon.js +1 -1
  558. package/dist/icons/MoreIcon.js +1 -1
  559. package/dist/icons/NotAllowedIcon.js +1 -1
  560. package/dist/icons/Number123Icon.js +1 -1
  561. package/dist/icons/NumberIcon.js +1 -1
  562. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  563. package/dist/icons/PauseCircleIcon.js +1 -1
  564. package/dist/icons/PauseIcon.js +1 -1
  565. package/dist/icons/PercentageIcon.js +1 -1
  566. package/dist/icons/PieChartIcon.js +1 -1
  567. package/dist/icons/PipetteIcon.js +1 -1
  568. package/dist/icons/PlayCircleIcon.js +7 -2
  569. package/dist/icons/PlayCircleIcon.js.map +1 -1
  570. package/dist/icons/PlayIcon.js +1 -1
  571. package/dist/icons/PlusIcon.js +1 -1
  572. package/dist/icons/ProgressBarIcon.js +1 -1
  573. package/dist/icons/ReloadIcon.js +1 -1
  574. package/dist/icons/ReportIcon.js +1 -1
  575. package/dist/icons/ReturnIcon.js +1 -1
  576. package/dist/icons/RightIcon.js +1 -1
  577. package/dist/icons/RowTotalsIcon.js +1 -1
  578. package/dist/icons/SchemeIcon.js +1 -1
  579. package/dist/icons/SearchIcon.js +1 -1
  580. package/dist/icons/SemanticQueryIcon.js +1 -1
  581. package/dist/icons/SettingsIcon.js +1 -1
  582. package/dist/icons/ShieldFilledIcon.js +1 -1
  583. package/dist/icons/ShieldIcon.js +1 -1
  584. package/dist/icons/SlashIcon.js +1 -1
  585. package/dist/icons/SparklesIcon.js +1 -1
  586. package/dist/icons/SqlIcon.js +1 -1
  587. package/dist/icons/StatsIcon.js +1 -1
  588. package/dist/icons/StopIcon.js +1 -1
  589. package/dist/icons/StringIcon.js +1 -1
  590. package/dist/icons/SubtotalsIcon.js +1 -1
  591. package/dist/icons/SwitchIcon.js +1 -1
  592. package/dist/icons/TableIcon.js +1 -1
  593. package/dist/icons/ThumbsDownIcon.js +1 -1
  594. package/dist/icons/ThumbsUpIcon.js +1 -1
  595. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  596. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  597. package/dist/icons/ThunderboltIcon.js +1 -1
  598. package/dist/icons/TimeIcon.js +1 -1
  599. package/dist/icons/TrashIcon.js +1 -1
  600. package/dist/icons/UnlockIcon.js +1 -1
  601. package/dist/icons/UpIcon.js +1 -1
  602. package/dist/icons/UserGroupIcon.js +1 -1
  603. package/dist/icons/UserIcon.js +1 -1
  604. package/dist/icons/UserLockIcon.js +1 -1
  605. package/dist/icons/ViewIcon.js +1 -1
  606. package/dist/icons/WarningFilledIcon.js +1 -1
  607. package/dist/icons/WarningIcon.js +1 -1
  608. package/dist/icons/wrap-icon.js +1 -1
  609. package/dist/index.js +1 -1
  610. package/dist/probe/canonicalize.js +1 -1
  611. package/dist/probe/css.js +1 -1
  612. package/dist/probe/index.js +1 -1
  613. package/dist/provider.js +1 -1
  614. package/dist/providers/TrackingProvider.js +1 -1
  615. package/dist/providers/navigation-url.js +1 -1
  616. package/dist/providers/navigationAdapter.default.js +1 -1
  617. package/dist/providers/use-navigation.js +1 -1
  618. package/dist/tokens/all-tokens.js +1 -1
  619. package/dist/tokens/base.js +12 -2
  620. package/dist/tokens/base.js.map +1 -1
  621. package/dist/tokens/color-seed.js +1 -1
  622. package/dist/tokens/color-theme.js +1 -1
  623. package/dist/tokens/colors.js +4 -4
  624. package/dist/tokens/colors.js.map +1 -1
  625. package/dist/tokens/layout.js +1 -1
  626. package/dist/tokens/lazy-styles.js +1 -1
  627. package/dist/tokens/legacy-color.js +1 -1
  628. package/dist/tokens/palette-config.js +1 -1
  629. package/dist/tokens/palette.js +1 -1
  630. package/dist/tokens/palette.js.map +1 -1
  631. package/dist/tokens/resolve.js +1 -1
  632. package/dist/tokens/resolve.js.map +1 -1
  633. package/dist/tokens/shadows.d.ts +0 -1
  634. package/dist/tokens/shadows.js +2 -3
  635. package/dist/tokens/shadows.js.map +1 -1
  636. package/dist/tokens/sizes.js +1 -1
  637. package/dist/tokens/spacing.js +1 -1
  638. package/dist/tokens/typography.js +1 -1
  639. package/dist/utils/ResizeSensor.js +1 -1
  640. package/dist/utils/colors.js +1 -1
  641. package/dist/utils/dotize.js +1 -1
  642. package/dist/utils/is-dev-env.js +1 -1
  643. package/dist/utils/modules.js +1 -1
  644. package/dist/utils/promise.js +1 -1
  645. package/dist/utils/raf.js +1 -1
  646. package/dist/utils/random.js +1 -1
  647. package/dist/utils/range.js +1 -1
  648. package/dist/utils/react/RenderCache.js +1 -1
  649. package/dist/utils/react/Slots.js +1 -1
  650. package/dist/utils/react/chain.js +1 -1
  651. package/dist/utils/react/disabledProps.js +1 -1
  652. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  653. package/dist/utils/react/index.js +1 -1
  654. package/dist/utils/react/interactions.js +1 -1
  655. package/dist/utils/react/isTextOnly.js +1 -1
  656. package/dist/utils/react/mapProps.js +1 -1
  657. package/dist/utils/react/mergeProps.js +1 -1
  658. package/dist/utils/react/nullableValue.js +1 -1
  659. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  660. package/dist/utils/react/programmaticFocus.js +1 -1
  661. package/dist/utils/react/resolveIcon.js +1 -1
  662. package/dist/utils/react/sharedStore.js +1 -1
  663. package/dist/utils/react/useBufferedValue.js +1 -1
  664. package/dist/utils/react/useCombinedRefs.js +1 -1
  665. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  666. package/dist/utils/react/useEventBus.js +1 -1
  667. package/dist/utils/react/useId.js +1 -1
  668. package/dist/utils/react/useIsDarwin.js +1 -1
  669. package/dist/utils/react/useKeySymbols.js +1 -1
  670. package/dist/utils/react/useLayoutEffect.js +1 -1
  671. package/dist/utils/react/useLocalStorage.js +1 -1
  672. package/dist/utils/react/useMergeStyles.js +1 -1
  673. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  674. package/dist/utils/react/usePopoverSync.js +1 -1
  675. package/dist/utils/react/useQaProps.js +1 -1
  676. package/dist/utils/react/useScheme.js +1 -1
  677. package/dist/utils/react/useViewportSize.js +1 -1
  678. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  679. package/dist/utils/selection.js +1 -1
  680. package/dist/utils/styles.js +1 -1
  681. package/dist/utils/tree.js +1 -1
  682. package/dist/utils/warnings.js +1 -1
  683. package/dist/version.js +3 -3
  684. package/docs/BaseProperties.md +2 -0
  685. package/docs/ComplexLayout.md +1 -1
  686. package/docs/Usage.md +47 -2
  687. package/docs/Utilities.md +5 -2
  688. package/docs/components/GridProvider.md +3 -3
  689. package/docs/components/content/HotKeys.md +2 -2
  690. package/docs/components/content/InlineInput.md +2 -2
  691. package/docs/components/content/Item.md +5 -5
  692. package/docs/components/content/Layout.md +8 -8
  693. package/docs/components/content/Text.md +1 -1
  694. package/docs/components/fields/ComboBox.md +1 -1
  695. package/docs/components/fields/CommandTextArea.md +1 -1
  696. package/docs/components/fields/FilterListBox.md +1 -1
  697. package/docs/components/fields/FilterPicker.md +1 -1
  698. package/docs/components/fields/ListBox.md +2 -2
  699. package/docs/components/fields/Picker.md +1 -1
  700. package/docs/components/fields/SearchComboBox.md +1 -1
  701. package/docs/components/fields/Select.md +1 -1
  702. package/docs/components/fields/TagInput.md +1 -1
  703. package/docs/tasty/react-api.md +1 -1
  704. package/package.json +3 -3
  705. package/tasty.config.ts +206 -4
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.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";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -65,9 +65,9 @@ const CheckboxElement = tasty({ styles: {
65
65
  height: "(2x - 2bw)",
66
66
  outline: {
67
67
  "": "#primary-text.0",
68
- focused: "1bw #primary-text"
68
+ focused: "$ring-width #primary-text"
69
69
  },
70
- outlineOffset: 1,
70
+ outlineOffset: "$outline-offset",
71
71
  transition: "theme"
72
72
  } });
73
73
  function Checkbox(allProps, ref) {
@@ -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: '1bw #primary-text',\n },\n outlineOffset: 1,\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":"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"}
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":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { castNullableArrayValue } from "../../../utils/react/nullableValue.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { createContext } from "react";
3
3
  //#region src/components/fields/Checkbox/context.ts
4
4
  const CheckboxGroupContext = createContext(null);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { Text as _Text } from "../../content/Text.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -17,7 +17,7 @@ export interface CubeColorSwatchProps extends BaseProps, BaseStyleProps, OuterSt
17
17
  * A square of color. Decorative on its own — pair it with the value as text, or
18
18
  * with a control that names it.
19
19
  *
20
- * The color travels as an inline custom property rather than through `styles`,
20
+ * The color travels through `tokens` (an inline custom property), not `styles`,
21
21
  * so the swatch keeps a single cached style rule however often it changes.
22
22
  */
23
23
  export declare const ColorSwatch: import("react").ForwardRefExoticComponent<CubeColorSwatchProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { parseColor, toHex } from "../color/color.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -53,7 +53,7 @@ const SwatchElement = tasty({
53
53
  * A square of color. Decorative on its own — pair it with the value as text, or
54
54
  * with a control that names it.
55
55
  *
56
- * The color travels as an inline custom property rather than through `styles`,
56
+ * The color travels through `tokens` (an inline custom property), not `styles`,
57
57
  * so the swatch keeps a single cached style rule however often it changes.
58
58
  */
59
59
  const ColorSwatch = forwardRef(function ColorSwatch(props, ref) {
@@ -86,7 +86,7 @@ const ColorSwatch = forwardRef(function ColorSwatch(props, ref) {
86
86
  } else t3 = $[6];
87
87
  let t4;
88
88
  if ($[7] !== resolved) {
89
- t4 = resolved ? { "--color-picker-color": toHex(resolved) } : void 0;
89
+ t4 = resolved ? { "#color-picker": toHex(resolved) } : void 0;
90
90
  $[7] = resolved;
91
91
  $[8] = t4;
92
92
  } else t4 = $[8];
@@ -98,7 +98,7 @@ const ColorSwatch = forwardRef(function ColorSwatch(props, ref) {
98
98
  "data-size": size,
99
99
  mods: t3,
100
100
  styles,
101
- style: t4
101
+ tokens: t4
102
102
  });
103
103
  $[9] = qa;
104
104
  $[10] = ref;
@@ -1 +1 @@
1
- {"version":3,"file":"ColorSwatch.js","names":["BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","DIMENSION_STYLES","DimensionStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","ForwardedRef","forwardRef","extractStyles","ColorValue","parseColor","toHex","STYLE_PROPS","SwatchElement","qa","styles","display","width","height","radius","fill","empty","shadow","image","CubeColorSwatchProps","color","size","ColorSwatch","props","ref","$","_c","mods","t0","t1","resolved","t2","t3","t4","undefined","t5","_c"],"sources":["../../../../src/components/fields/ColorSwatch/ColorSwatch.tsx"],"sourcesContent":["import {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n DIMENSION_STYLES,\n DimensionStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef } from 'react';\n\nimport { extractStyles } from '../../../utils/styles';\nimport { ColorValue, parseColor, toHex } from '../color/color';\n\nconst STYLE_PROPS = [\n ...BASE_STYLES,\n ...OUTER_STYLES,\n ...BLOCK_STYLES,\n ...DIMENSION_STYLES,\n];\n\nconst SwatchElement = tasty({\n qa: 'ColorSwatch',\n styles: {\n display: 'block',\n\n /**\n * The control the swatch sits in, when there is one.\n *\n * `Item`, `Button` and `TextInputBase` all publish their own height as\n * `$size`, and a custom property reaches any descendant — so a swatch in an\n * icon, prefix or suffix slot reads the host's height without either side\n * knowing about the other. `$swatch-host` is the fallback chain: an explicit\n * `size` pins it, and outside a control the medium default stands in.\n *\n * The named sizes are stated as the *host* they would fit, not as the swatch\n * itself, so the `- 1x` below is the single place the inset is expressed.\n */\n '$swatch-host': {\n // `var(--size, 4x)` — a host wins, and 32px is a medium control.\n '': '($size, 4x)',\n // An explicit size ignores the host: these are 28/32/36, one `1x` above\n // the 20/24/28 the swatch ends up at.\n 'size=small': '3.5x',\n 'size=medium': '4x',\n 'size=large': '4.5x',\n },\n '$swatch-size': '($swatch-host - 1x)',\n\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n radius: '1r',\n fill: {\n '': '(#color-picker, #clear)',\n empty: '#clear',\n },\n shadow: 'inset 0 0 0 1bw #dark.15',\n // A single diagonal stroke is the conventional \"no color\" swatch.\n image: {\n '': false,\n empty:\n 'linear-gradient(to bottom right, #clear 46%, #danger 46%, #danger 54%, #clear 54%)',\n },\n },\n});\n\nexport interface CubeColorSwatchProps\n extends\n BaseProps,\n BaseStyleProps,\n OuterStyleProps,\n BlockStyleProps,\n DimensionStyleProps {\n /** The color to show. Anything the color inputs accept; `null` shows the empty state. */\n color?: string | ColorValue | null;\n /**\n * The edge of the swatch: 20px, 24px or 28px. Left unset, the swatch tracks\n * the control around it — `1x` inside its height — and falls back to `medium`\n * where there is no control.\n */\n size?: 'small' | 'medium' | 'large' | (string & {});\n styles?: Styles;\n}\n\n/**\n * A square of color. Decorative on its own — pair it with the value as text, or\n * with a control that names it.\n *\n * The color travels as an inline custom property rather than through `styles`,\n * so the swatch keeps a single cached style rule however often it changes.\n */\nexport const ColorSwatch = forwardRef(function ColorSwatch(\n props: CubeColorSwatchProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { color, mods, qa, size } = props;\n const styles = extractStyles(props, STYLE_PROPS);\n\n const resolved =\n typeof color === 'string' ? parseColor(color) : (color ?? null);\n\n return (\n <SwatchElement\n ref={ref}\n qa={qa}\n data-size={size}\n mods={{ empty: !resolved, ...mods }}\n styles={styles}\n style={resolved ? { '--color-picker-color': toHex(resolved) } : undefined}\n />\n );\n});\n"],"mappings":";;;;;;;;AAkBA,MAAMiB,cAAc;CAClB,GAAGjB;CACH,GAAGO;CACH,GAAGJ;CACH,GAAGE;AAAgB;AAGrB,MAAMa,gBAAgBR,MAAM;CAC1BS,IAAI;CACJC,QAAQ;EACNC,SAAS;;;;;;;;;;;;;EAcT,gBAAgB;GAEd,IAAI;GAGJ,cAAc;GACd,eAAe;GACf,cAAc;EAChB;EACA,gBAAgB;EAEhBC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC,MAAM;GACJ,IAAI;GACJC,OAAO;EACT;EACAC,QAAQ;EAERC,OAAO;GACL,IAAI;GACJF,OACE;EACJ;CACF;AACF,CAAC;;;;;;;;AA2BD,MAAaM,cAAcpB,WAAW,SAAAoB,YAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAIpC,MAAA,EAAAN,OAAAO,MAAAlB,IAAAY,SAAkCE;CAAM,IAAAK;CAAA,IAAAH,EAAA,OAAAF,OAAA;EACzBK,KAAAzB,cAAcoB,OAAOhB,WAAW;EAACkB,EAAA,KAAAF;EAAAE,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAhD,MAAAf,SAAekB;CAAkC,IAAAC;CAAA,IAAAJ,EAAA,OAAAL,OAAA;EAG/CS,KAAA,OAAOT,UAAU,WAAWf,WAAWe,KAAuB,IAAbA,SAAA;EAAcK,EAAA,KAAAL;EAAAK,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CADjE,MAAAK,WACED;CAOiB,MAAAE,KAAA,CAACD;CAAQ,IAAAE;CAAA,IAAAP,EAAA,OAAAE,QAAAF,EAAA,OAAAM,IAAA;EAAlBC,KAAA;GAAAhB,OAASe;GAAS,GAAKJ;EAAK;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,OAAAK,UAAA;EAE5BG,KAAAH,WAAA,EAAA,wBAAqCxB,MAAMwB,QAAQ,EAAc,IAAjEI,KAAAA;EAAkET,EAAA,KAAAK;EAAAL,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAU;CAAA,IAAAV,EAAA,OAAAhB,MAAAgB,EAAA,QAAAD,OAAAC,EAAA,QAAAJ,QAAAI,EAAA,QAAAf,UAAAe,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,IAAA;EAN3EE,KAAA,oBAAC,eAAD;GACOX;GACDf;GACOY,aAAAA;GACL,MAAAW;GACEtB;GACD,OAAAuB;EAAkE,CAAA;EACzER,EAAA,KAAAhB;EAAAgB,EAAA,MAAAD;EAAAC,EAAA,MAAAJ;EAAAI,EAAA,MAAAf;EAAAe,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAPFU;AAOE,CAEL"}
1
+ {"version":3,"file":"ColorSwatch.js","names":["BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","DIMENSION_STYLES","DimensionStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","ForwardedRef","forwardRef","extractStyles","ColorValue","parseColor","toHex","STYLE_PROPS","SwatchElement","qa","styles","display","width","height","radius","fill","empty","shadow","image","CubeColorSwatchProps","color","size","ColorSwatch","props","ref","$","_c","mods","t0","t1","resolved","t2","t3","t4","undefined","t5","_c"],"sources":["../../../../src/components/fields/ColorSwatch/ColorSwatch.tsx"],"sourcesContent":["import {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n DIMENSION_STYLES,\n DimensionStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef } from 'react';\n\nimport { extractStyles } from '../../../utils/styles';\nimport { ColorValue, parseColor, toHex } from '../color/color';\n\nconst STYLE_PROPS = [\n ...BASE_STYLES,\n ...OUTER_STYLES,\n ...BLOCK_STYLES,\n ...DIMENSION_STYLES,\n];\n\nconst SwatchElement = tasty({\n qa: 'ColorSwatch',\n styles: {\n display: 'block',\n\n /**\n * The control the swatch sits in, when there is one.\n *\n * `Item`, `Button` and `TextInputBase` all publish their own height as\n * `$size`, and a custom property reaches any descendant — so a swatch in an\n * icon, prefix or suffix slot reads the host's height without either side\n * knowing about the other. `$swatch-host` is the fallback chain: an explicit\n * `size` pins it, and outside a control the medium default stands in.\n *\n * The named sizes are stated as the *host* they would fit, not as the swatch\n * itself, so the `- 1x` below is the single place the inset is expressed.\n */\n '$swatch-host': {\n // `var(--size, 4x)` — a host wins, and 32px is a medium control.\n '': '($size, 4x)',\n // An explicit size ignores the host: these are 28/32/36, one `1x` above\n // the 20/24/28 the swatch ends up at.\n 'size=small': '3.5x',\n 'size=medium': '4x',\n 'size=large': '4.5x',\n },\n '$swatch-size': '($swatch-host - 1x)',\n\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n radius: '1r',\n fill: {\n '': '(#color-picker, #clear)',\n empty: '#clear',\n },\n shadow: 'inset 0 0 0 1bw #dark.15',\n // A single diagonal stroke is the conventional \"no color\" swatch.\n image: {\n '': false,\n empty:\n 'linear-gradient(to bottom right, #clear 46%, #danger 46%, #danger 54%, #clear 54%)',\n },\n },\n});\n\nexport interface CubeColorSwatchProps\n extends\n BaseProps,\n BaseStyleProps,\n OuterStyleProps,\n BlockStyleProps,\n DimensionStyleProps {\n /** The color to show. Anything the color inputs accept; `null` shows the empty state. */\n color?: string | ColorValue | null;\n /**\n * The edge of the swatch: 20px, 24px or 28px. Left unset, the swatch tracks\n * the control around it — `1x` inside its height — and falls back to `medium`\n * where there is no control.\n */\n size?: 'small' | 'medium' | 'large' | (string & {});\n styles?: Styles;\n}\n\n/**\n * A square of color. Decorative on its own — pair it with the value as text, or\n * with a control that names it.\n *\n * The color travels through `tokens` (an inline custom property), not `styles`,\n * so the swatch keeps a single cached style rule however often it changes.\n */\nexport const ColorSwatch = forwardRef(function ColorSwatch(\n props: CubeColorSwatchProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const { color, mods, qa, size } = props;\n const styles = extractStyles(props, STYLE_PROPS);\n\n const resolved =\n typeof color === 'string' ? parseColor(color) : (color ?? null);\n\n return (\n <SwatchElement\n ref={ref}\n qa={qa}\n data-size={size}\n mods={{ empty: !resolved, ...mods }}\n styles={styles}\n tokens={resolved ? { '#color-picker': toHex(resolved) } : undefined}\n />\n );\n});\n"],"mappings":";;;;;;;;AAkBA,MAAMiB,cAAc;CAClB,GAAGjB;CACH,GAAGO;CACH,GAAGJ;CACH,GAAGE;AAAgB;AAGrB,MAAMa,gBAAgBR,MAAM;CAC1BS,IAAI;CACJC,QAAQ;EACNC,SAAS;;;;;;;;;;;;;EAcT,gBAAgB;GAEd,IAAI;GAGJ,cAAc;GACd,eAAe;GACf,cAAc;EAChB;EACA,gBAAgB;EAEhBC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC,MAAM;GACJ,IAAI;GACJC,OAAO;EACT;EACAC,QAAQ;EAERC,OAAO;GACL,IAAI;GACJF,OACE;EACJ;CACF;AACF,CAAC;;;;;;;;AA2BD,MAAaM,cAAcpB,WAAW,SAAAoB,YAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAIpC,MAAA,EAAAN,OAAAO,MAAAlB,IAAAY,SAAkCE;CAAM,IAAAK;CAAA,IAAAH,EAAA,OAAAF,OAAA;EACzBK,KAAAzB,cAAcoB,OAAOhB,WAAW;EAACkB,EAAA,KAAAF;EAAAE,EAAA,KAAAG;CAAA,OAAAA,KAAAH,EAAA;CAAhD,MAAAf,SAAekB;CAAkC,IAAAC;CAAA,IAAAJ,EAAA,OAAAL,OAAA;EAG/CS,KAAA,OAAOT,UAAU,WAAWf,WAAWe,KAAuB,IAAbA,SAAA;EAAcK,EAAA,KAAAL;EAAAK,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CADjE,MAAAK,WACED;CAOiB,MAAAE,KAAA,CAACD;CAAQ,IAAAE;CAAA,IAAAP,EAAA,OAAAE,QAAAF,EAAA,OAAAM,IAAA;EAAlBC,KAAA;GAAAhB,OAASe;GAAS,GAAKJ;EAAK;EAACF,EAAA,KAAAE;EAAAF,EAAA,KAAAM;EAAAN,EAAA,KAAAO;CAAA,OAAAA,KAAAP,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,OAAAK,UAAA;EAE3BG,KAAAH,WAAA,EAAA,iBAA8BxB,MAAMwB,QAAQ,EAAc,IAA1DI,KAAAA;EAA2DT,EAAA,KAAAK;EAAAL,EAAA,KAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,IAAAU;CAAA,IAAAV,EAAA,OAAAhB,MAAAgB,EAAA,QAAAD,OAAAC,EAAA,QAAAJ,QAAAI,EAAA,QAAAf,UAAAe,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,IAAA;EANrEE,KAAA,oBAAC,eAAD;GACOX;GACDf;GACOY,aAAAA;GACL,MAAAW;GACEtB;GACA,QAAAuB;EAA2D,CAAA;EACnER,EAAA,KAAAhB;EAAAgB,EAAA,MAAAD;EAAAC,EAAA,MAAAJ;EAAAI,EAAA,MAAAf;EAAAe,EAAA,MAAAO;EAAAP,EAAA,MAAAQ;EAAAR,EAAA,MAAAU;CAAA,OAAAA,KAAAV,EAAA;CAAA,OAPFU;AAOE,CAEL"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.199.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.200.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -12,7 +12,7 @@ import { formatColor, parseColor, toHex } from "../color/color.js";
12
12
  import { useIsInsideColorPopover } from "../color/context.js";
13
13
  import { ColorPicker } from "../ColorPicker/ColorPicker.js";
14
14
  import { c } from "react/compiler-runtime";
15
- import { BLOCK_STYLES, OUTER_STYLES, tasty } from "@tenphi/tasty";
15
+ import { BLOCK_STYLES, OUTER_STYLES, mergeStyles, tasty } from "@tenphi/tasty";
16
16
  import { forwardRef, useRef, useState } from "react";
17
17
  import { jsx, jsxs } from "react/jsx-runtime";
18
18
  import { useRadio, useRadioGroup } from "react-aria";
@@ -21,11 +21,11 @@ import { useObjectRef } from "@react-aria/utils";
21
21
  //#region src/components/fields/ColorSwatchGroup/ColorSwatchGroup.tsx
22
22
  /**
23
23
  * Two rings drawn inside the swatch, as React Aria marks selection. Outer ring
24
- * first: earlier shadows paint over later ones, so this reads as 2bw of
25
- * `#surface-text` at the edge and 2bw of `#surface` within it. Two tones that
24
+ * first: earlier shadows paint over later ones, so this reads as two ring widths
25
+ * of `#surface-text` at the edge and two of `#surface` within it. Two tones that
26
26
  * flip with the scheme stay visible against any color the swatch holds.
27
27
  */
28
- const SELECTED_RING = "inset 0 0 0 2bw #surface-text, inset 0 0 0 4bw #surface";
28
+ const SELECTED_RING = "inset 0 0 0 (2 * $ring-width) #surface-text, inset 0 0 0 (4 * $ring-width) #surface";
29
29
  /** The swatch edge in px, per size. `Item` takes an exact number. */
30
30
  const SWATCH_PX = {
31
31
  small: 16,
@@ -61,10 +61,7 @@ const CUSTOM_SWATCH_STYLES = {
61
61
  * The ring goes on the swatch, not on the button around it: an inset shadow
62
62
  * paints under child content, and the swatch covers the button edge to edge.
63
63
  */
64
- const CUSTOM_SWATCH_SELECTED_STYLES = {
65
- ...CUSTOM_SWATCH_STYLES,
66
- shadow: SELECTED_RING
67
- };
64
+ const CUSTOM_SWATCH_SELECTED_STYLES = mergeStyles(CUSTOM_SWATCH_STYLES, { shadow: SELECTED_RING });
68
65
  const GroupElement = tasty({
69
66
  qa: "ColorSwatchGroup",
70
67
  styles: {
@@ -125,8 +122,8 @@ const SwatchElement = tasty({
125
122
  selected: SELECTED_RING
126
123
  },
127
124
  outline: {
128
- "": "2bw #focus.0 / 1bw",
129
- focused: "2bw #focus / 1bw"
125
+ "": "(2 * $ring-width) #focus.0 / $outline-offset",
126
+ focused: "(2 * $ring-width) #focus / $outline-offset"
130
127
  },
131
128
  transition: "theme"
132
129
  }
@@ -165,7 +162,7 @@ function Swatch(t0) {
165
162
  } else t2 = $[8];
166
163
  let t3;
167
164
  if ($[9] !== colorKey) {
168
- t3 = { "--color-swatch-color": colorKey };
165
+ t3 = { "#color-swatch": colorKey };
169
166
  $[9] = colorKey;
170
167
  $[10] = t3;
171
168
  } else t3 = $[10];
@@ -203,7 +200,7 @@ function Swatch(t0) {
203
200
  "data-size": size,
204
201
  mods: t2,
205
202
  styles,
206
- style: t3,
203
+ tokens: t3,
207
204
  children: t6
208
205
  });
209
206
  $[19] = size;
@@ -384,7 +381,7 @@ const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(allProps, ref) {
384
381
  } else t19 = $[39];
385
382
  let t20;
386
383
  if ($[40] !== columns) {
387
- t20 = columns ? { "--columns": String(columns) } : void 0;
384
+ t20 = columns ? { $columns: columns } : void 0;
388
385
  $[40] = columns;
389
386
  $[41] = t20;
390
387
  } else t20 = $[41];
@@ -452,7 +449,7 @@ const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(allProps, ref) {
452
449
  "data-input-type": "colorswatchgroup",
453
450
  styles,
454
451
  mods: t19,
455
- style: t20,
452
+ tokens: t20,
456
453
  children: [t22, t23]
457
454
  });
458
455
  $[61] = domRef;
@@ -1 +1 @@
1
- {"version":3,"file":"ColorSwatchGroup.js","names":["useObjectRef","BaseProps","BLOCK_STYLES","BlockStyleProps","OUTER_STYLES","OuterStyleProps","Styles","tasty","ForwardedRef","forwardRef","useMemo","useRef","useState","useRadio","useRadioGroup","useRadioGroupState","useEvent","useI18n","FieldBaseProps","mergeProps","useFocus","extractStyles","getValidationMods","useFieldProps","wrapWithField","HiddenInput","ColorFormat","formatColor","parseColor","toHex","useIsInsideColorPopover","ColorPicker","RadioGroupState","CubeColorSwatchItem","color","label","SELECTED_RING","SWATCH_PX","Record","small","medium","large","CUSTOM_TRIGGER_STYLES","width","height","padding","radius","border","position","CUSTOM_SWATCH_STYLES","inset","CUSTOM_SWATCH_SELECTED_STYLES","shadow","GroupElement","qa","styles","display","columns","flow","gap","placeItems","gridColumns","RadiosElement","SwatchElement","as","cursor","disabled","fill","opacity","selected","outline","focused","transition","CubeColorSwatchGroupProps","colors","value","defaultValue","onChange","format","allowCustom","size","swatchStyles","SwatchProps","colorKey","state","isDisabled","mods","Swatch","t0","$","_c","inputRef","t1","inputProps","isSelected","isRadioDisabled","isFocused","focusProps","t2","t3","t4","t5","button","t6","t7","ColorSwatchGroup","allProps","ref","t","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","props","value_0","onChange_0","isInvalid","isValid","ariaLabel","undefined","isInsidePopover","showCustom","seen","Map","entry","raw","parsed","key","has","set","values","swatches","internalValue","setInternalValue","currentValue","t8","selectedColor","toString","selectedKey","t9","some","s","isCustom","t10","next","publish","t11","nextKey","parsed_0","handleChange","t12","t13","isReadOnly","domRef","t14","t15","form","orientation","radioGroupProps","labelProps","t16","t17","t18","t19","t20","String","t21","map","swatch","t22","t23","t24","group","t25","cubeInputType","_c","useFocus","mergeProps"],"sources":["../../../../src/components/fields/ColorSwatchGroup/ColorSwatchGroup.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport {\n BaseProps,\n BLOCK_STYLES,\n BlockStyleProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, useMemo, useRef, useState } from 'react';\nimport { useRadio, useRadioGroup } from 'react-aria';\nimport { useRadioGroupState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport { getValidationMods, useFieldProps, wrapWithField } from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\nimport { ColorFormat, formatColor, parseColor, toHex } from '../color/color';\nimport { useIsInsideColorPopover } from '../color/context';\nimport { ColorPicker } from '../ColorPicker';\n\nimport type { RadioGroupState } from 'react-stately';\n\n/** A swatch: a color, and optionally a name to announce instead of the color. */\nexport type CubeColorSwatchItem = string | { color: string; label?: string };\n\n/**\n * Two rings drawn inside the swatch, as React Aria marks selection. Outer ring\n * first: earlier shadows paint over later ones, so this reads as 2bw of\n * `#surface-text` at the edge and 2bw of `#surface` within it. Two tones that\n * flip with the scheme stay visible against any color the swatch holds.\n */\nconst SELECTED_RING = 'inset 0 0 0 2bw #surface-text, inset 0 0 0 4bw #surface';\n\n/** The swatch edge in px, per size. `Item` takes an exact number. */\nconst SWATCH_PX: Record<string, number> = {\n small: 16,\n medium: 20,\n large: 24,\n};\n\n/**\n * The trailing picker is a button wrapping a swatch, which would otherwise read\n * as a box inside a box. Stripping its chrome leaves just the swatch, so it\n * sits in the row as one of them.\n */\nconst CUSTOM_TRIGGER_STYLES: Styles = {\n // `size` sets the control's height; the box is pinned here as well so a flex\n // row cannot let the button size itself to its content instead.\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n padding: 0,\n radius: '1r',\n border: 0,\n position: 'relative',\n};\n\n/**\n * The swatch is docked over the whole button rather than placed inside it.\n * `Item` lays its icon out in a grid that reserves room for a label even when\n * there is none, which left the swatch a pixel off centre.\n */\nconst CUSTOM_SWATCH_STYLES: Styles = {\n position: 'absolute',\n inset: 0,\n width: 'auto',\n height: 'auto',\n radius: '1r',\n};\n\n/**\n * The ring goes on the swatch, not on the button around it: an inset shadow\n * paints under child content, and the swatch covers the button edge to edge.\n */\nconst CUSTOM_SWATCH_SELECTED_STYLES: Styles = {\n ...CUSTOM_SWATCH_STYLES,\n shadow: SELECTED_RING,\n};\n\nconst GroupElement = tasty({\n qa: 'ColorSwatchGroup',\n styles: {\n // Wrapping is the better default: it is a single row wherever there is\n // room, and folds instead of overflowing where there is not. A fixed\n // `columns` switches to a grid, sized to the swatches rather than to the\n // container — `1fr` tracks would stretch them apart.\n display: {\n '': 'flex',\n columns: 'grid',\n },\n flow: {\n '': 'row wrap',\n columns: 'row',\n },\n gap: '.5x',\n placeItems: {\n '': 'center start',\n columns: 'stretch',\n },\n width: {\n '': 'auto',\n columns: 'max-content',\n },\n gridColumns: 'repeat($columns, max-content)',\n\n // 20px, 16px and 24px — 1x is 8px.\n '$swatch-size': {\n '': '2.5x',\n 'size=small': '2x',\n 'size=large': '3x',\n },\n },\n});\n\n/**\n * Only the swatches belong to the radiogroup. The custom picker is a button,\n * and inside `role=\"radiogroup\"` it both misreports what the palette holds and\n * hands arrow keys to React Aria's radio walker — pressing one while the picker\n * is focused jumps into a swatch and changes the color. The box is dropped so\n * the swatches remain direct children of the group's own layout.\n */\nconst RadiosElement = tasty({\n styles: { display: 'contents' },\n});\n\nconst SwatchElement = tasty({\n as: 'label',\n qa: 'ColorSwatchOption',\n styles: {\n display: 'grid',\n placeItems: 'stretch',\n position: 'relative',\n radius: '1r',\n cursor: {\n '': 'pointer',\n disabled: 'default',\n },\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n fill: '(#color-swatch, #clear)',\n opacity: {\n '': 1,\n disabled: '$disabled-opacity',\n },\n // A ring at one border-width's distance, so the color area stays whole —\n // the inner ring is the surface showing through as the gap. `outline` is\n // deliberately left to the focus ring.\n shadow: {\n '': 'inset 0 0 0 1bw #dark.15',\n selected: SELECTED_RING,\n },\n // A 1bw offset keeps the ring clear of the 4px gap to its neighbours.\n outline: {\n '': '2bw #focus.0 / 1bw',\n focused: '2bw #focus / 1bw',\n },\n transition: 'theme',\n },\n});\n\nexport interface CubeColorSwatchGroupProps\n extends\n BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n FieldBaseProps<string | null | undefined> {\n /** The colors to offer. Duplicates of the same color are dropped. */\n colors?: CubeColorSwatchItem[];\n /** The selected color (controlled). */\n value?: string | null;\n /** The selected color (uncontrolled). */\n defaultValue?: string | null;\n /** Called with the chosen color, written in `format`. */\n onChange?: (value: string | null) => void;\n /** Notation the value is written in. */\n format?: ColorFormat;\n /** How many swatches per row. Defaults to a single row. */\n columns?: number;\n /**\n * Append a `ColorPicker` for colors outside the set. Ignored inside a color\n * popover, which is where that picker would otherwise recurse.\n */\n allowCustom?: boolean;\n /** The size of each swatch. */\n size?: 'small' | 'medium' | 'large' | (string & {});\n styles?: Styles;\n /** Styles of an individual swatch. */\n swatchStyles?: Styles;\n 'aria-label'?: string;\n}\n\ninterface SwatchProps {\n colorKey: string;\n label: string;\n state: RadioGroupState;\n isDisabled?: boolean;\n size?: string;\n styles?: Styles;\n mods?: Record<string, boolean | undefined>;\n}\n\nfunction Swatch({\n colorKey,\n label,\n state,\n isDisabled,\n size,\n styles,\n mods,\n}: SwatchProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const {\n inputProps,\n isSelected,\n isDisabled: isRadioDisabled,\n } = useRadio(\n { value: colorKey, 'aria-label': label, isDisabled },\n state,\n inputRef,\n );\n // `useRadio` reports selection but not focus, and the swatch is the only\n // thing a keyboard user can see — without this the ring never appears.\n const { isFocused, focusProps } = useFocus(true);\n\n return (\n <SwatchElement\n data-size={size}\n mods={{\n selected: isSelected,\n disabled: isRadioDisabled,\n focused: isFocused,\n ...mods,\n }}\n styles={styles}\n style={{ '--color-swatch-color': colorKey }}\n >\n <HiddenInput\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n qa=\"ColorSwatchInput\"\n mods={{ button: true, disabled: isRadioDisabled }}\n />\n </SwatchElement>\n );\n}\n\n/**\n * A grid of color swatches, one of which can be selected — the palette half of\n * choosing a color, where `ColorPicker` is the freeform half.\n *\n * Swatches are keyed by their canonical hex, so the same color written two ways\n * collapses into one entry. Equivalent colors would otherwise make selection\n * ambiguous.\n */\nexport const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(\n allProps: CubeColorSwatchGroupProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n const props = useFieldProps(allProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value as string | null | undefined,\n onChange,\n }),\n });\n\n const {\n qa,\n colors = [],\n value,\n defaultValue,\n onChange,\n format = 'hex',\n columns,\n allowCustom,\n size = 'medium',\n isDisabled,\n isInvalid,\n isValid,\n swatchStyles,\n 'aria-label': ariaLabel,\n } = props;\n\n const styles = extractStyles(props, [...OUTER_STYLES, ...BLOCK_STYLES]);\n const isInsidePopover = useIsInsideColorPopover();\n // A custom picker inside a color popover would open a popover of its own.\n const showCustom = allowCustom && !isInsidePopover;\n\n /** Keyed by canonical hex so the same color written two ways is one swatch. */\n const swatches = useMemo(() => {\n const seen = new Map<string, { key: string; label: string }>();\n\n for (const entry of colors) {\n const raw = typeof entry === 'string' ? entry : entry.color;\n const parsed = parseColor(raw);\n\n if (!parsed) continue;\n\n const key = toHex(parsed);\n\n if (seen.has(key)) continue;\n\n seen.set(key, {\n key,\n label:\n (typeof entry === 'string' ? undefined : entry.label) ??\n formatColor(parsed, format),\n });\n }\n\n return [...seen.values()];\n }, [colors, format]);\n\n const [internalValue, setInternalValue] = useState<string | null>(\n () => defaultValue ?? null,\n );\n const currentValue = value !== undefined ? value : internalValue;\n\n const selectedColor = parseColor((currentValue ?? '').toString());\n const selectedKey = selectedColor ? toHex(selectedColor) : null;\n const isCustom =\n !!selectedKey && !swatches.some((s) => s.key === selectedKey);\n\n const publish = useEvent((next: string | null) => {\n if (value === undefined) setInternalValue(next);\n\n onChange?.(next);\n });\n\n // `null` arrives from React Aria's native form reset of a group that\n // mounted with no value.\n const handleChange = useEvent((nextKey: string | null) => {\n const parsed = nextKey == null ? null : parseColor(nextKey);\n\n publish(parsed ? formatColor(parsed, format) : null);\n });\n\n const state = useRadioGroupState({\n value: selectedKey ?? null,\n isDisabled,\n isReadOnly: props.isReadOnly,\n // Becomes the group's `aria-invalid`, which is what says the field is\n // invalid to a screen reader; the red outline says it only to the eye.\n isInvalid,\n onChange: handleChange,\n });\n\n // `useFocusableRef` wants the ref of a real focusable control to forward to,\n // and a group of radios has no single one — `RadioGroup` takes the same\n // approach for the same reason.\n const domRef = useObjectRef(ref);\n const { radioGroupProps, labelProps } = useRadioGroup(\n {\n ...props,\n // React Aria hands `form` to every swatch's input as the id of its\n // `<form>`, so the form instance would render as `form=\"[object Object]\"`.\n form: undefined,\n // Only name the group here when nothing else does: an `aria-label` set\n // unconditionally would outrank the visible label React Aria wires up.\n 'aria-label': props.label\n ? undefined\n : (ariaLabel ?? t('colorSwatchGroup.colors', 'Colors')),\n orientation: 'horizontal',\n },\n state,\n );\n\n const group = (\n <GroupElement\n ref={domRef}\n qa={qa || 'ColorSwatchGroup'}\n data-size={size}\n data-input-type=\"colorswatchgroup\"\n styles={styles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n columns: !!columns,\n }}\n style={columns ? { '--columns': String(columns) } : undefined}\n >\n <RadiosElement {...radioGroupProps}>\n {swatches.map((swatch) => (\n <Swatch\n key={swatch.key}\n colorKey={swatch.key}\n label={swatch.label}\n state={state}\n isDisabled={isDisabled}\n size={size}\n styles={swatchStyles}\n />\n ))}\n </RadiosElement>\n {showCustom ? (\n <ColorPicker\n isBare\n aria-label={t('colorSwatchGroup.customColor', 'Custom color')}\n qa=\"ColorSwatchGroupCustom\"\n format={format}\n type=\"clear\"\n size={SWATCH_PX[size] ?? SWATCH_PX.medium}\n value={isCustom ? (currentValue ?? null) : null}\n isDisabled={isDisabled}\n isReadOnly={props.isReadOnly}\n triggerStyles={CUSTOM_TRIGGER_STYLES}\n swatchStyles={\n isCustom ? CUSTOM_SWATCH_SELECTED_STYLES : CUSTOM_SWATCH_STYLES\n }\n onChange={publish}\n >\n {null}\n </ColorPicker>\n ) : null}\n </GroupElement>\n );\n\n return wrapWithField(group, {\n ...props,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n});\n\n(ColorSwatchGroup as any).cubeInputType = 'Picker';\n"],"mappings":"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"}
1
+ {"version":3,"file":"ColorSwatchGroup.js","names":["useObjectRef","BaseProps","BLOCK_STYLES","BlockStyleProps","mergeStyles","OUTER_STYLES","OuterStyleProps","Styles","tasty","ForwardedRef","forwardRef","useMemo","useRef","useState","useRadio","useRadioGroup","useRadioGroupState","useEvent","useI18n","FieldBaseProps","mergeProps","useFocus","extractStyles","getValidationMods","useFieldProps","wrapWithField","HiddenInput","ColorFormat","formatColor","parseColor","toHex","useIsInsideColorPopover","ColorPicker","RadioGroupState","CubeColorSwatchItem","color","label","SELECTED_RING","SWATCH_PX","Record","small","medium","large","CUSTOM_TRIGGER_STYLES","width","height","padding","radius","border","position","CUSTOM_SWATCH_STYLES","inset","CUSTOM_SWATCH_SELECTED_STYLES","shadow","GroupElement","qa","styles","display","columns","flow","gap","placeItems","gridColumns","RadiosElement","SwatchElement","as","cursor","disabled","fill","opacity","selected","outline","focused","transition","CubeColorSwatchGroupProps","colors","value","defaultValue","onChange","format","allowCustom","size","swatchStyles","SwatchProps","colorKey","state","isDisabled","mods","Swatch","t0","$","_c","inputRef","t1","inputProps","isSelected","isRadioDisabled","isFocused","focusProps","t2","t3","t4","t5","button","t6","t7","ColorSwatchGroup","allProps","ref","t","Symbol","for","defaultValidationTrigger","valuePropsMapper","_temp","props","value_0","onChange_0","isInvalid","isValid","ariaLabel","undefined","isInsidePopover","showCustom","seen","Map","entry","raw","parsed","key","has","set","values","swatches","internalValue","setInternalValue","currentValue","t8","selectedColor","toString","selectedKey","t9","some","s","isCustom","t10","next","publish","t11","nextKey","parsed_0","handleChange","t12","t13","isReadOnly","domRef","t14","t15","form","orientation","radioGroupProps","labelProps","t16","t17","t18","t19","t20","$columns","t21","map","swatch","t22","t23","t24","group","t25","cubeInputType","_c","useFocus","mergeProps"],"sources":["../../../../src/components/fields/ColorSwatchGroup/ColorSwatchGroup.tsx"],"sourcesContent":["import { useObjectRef } from '@react-aria/utils';\nimport {\n BaseProps,\n BLOCK_STYLES,\n BlockStyleProps,\n mergeStyles,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { ForwardedRef, forwardRef, useMemo, useRef, useState } from 'react';\nimport { useRadio, useRadioGroup } from 'react-aria';\nimport { useRadioGroupState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal';\nimport { useI18n } from '../../../i18n';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport { extractStyles } from '../../../utils/styles';\nimport { getValidationMods, useFieldProps, wrapWithField } from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\nimport { ColorFormat, formatColor, parseColor, toHex } from '../color/color';\nimport { useIsInsideColorPopover } from '../color/context';\nimport { ColorPicker } from '../ColorPicker';\n\nimport type { RadioGroupState } from 'react-stately';\n\n/** A swatch: a color, and optionally a name to announce instead of the color. */\nexport type CubeColorSwatchItem = string | { color: string; label?: string };\n\n/**\n * Two rings drawn inside the swatch, as React Aria marks selection. Outer ring\n * first: earlier shadows paint over later ones, so this reads as two ring widths\n * of `#surface-text` at the edge and two of `#surface` within it. Two tones that\n * flip with the scheme stay visible against any color the swatch holds.\n */\nconst SELECTED_RING =\n 'inset 0 0 0 (2 * $ring-width) #surface-text, inset 0 0 0 (4 * $ring-width) #surface';\n\n/** The swatch edge in px, per size. `Item` takes an exact number. */\nconst SWATCH_PX: Record<string, number> = {\n small: 16,\n medium: 20,\n large: 24,\n};\n\n/**\n * The trailing picker is a button wrapping a swatch, which would otherwise read\n * as a box inside a box. Stripping its chrome leaves just the swatch, so it\n * sits in the row as one of them.\n */\nconst CUSTOM_TRIGGER_STYLES: Styles = {\n // `size` sets the control's height; the box is pinned here as well so a flex\n // row cannot let the button size itself to its content instead.\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n padding: 0,\n radius: '1r',\n border: 0,\n position: 'relative',\n};\n\n/**\n * The swatch is docked over the whole button rather than placed inside it.\n * `Item` lays its icon out in a grid that reserves room for a label even when\n * there is none, which left the swatch a pixel off centre.\n */\nconst CUSTOM_SWATCH_STYLES: Styles = {\n position: 'absolute',\n inset: 0,\n width: 'auto',\n height: 'auto',\n radius: '1r',\n};\n\n/**\n * The ring goes on the swatch, not on the button around it: an inset shadow\n * paints under child content, and the swatch covers the button edge to edge.\n */\nconst CUSTOM_SWATCH_SELECTED_STYLES = mergeStyles(CUSTOM_SWATCH_STYLES, {\n shadow: SELECTED_RING,\n});\n\nconst GroupElement = tasty({\n qa: 'ColorSwatchGroup',\n styles: {\n // Wrapping is the better default: it is a single row wherever there is\n // room, and folds instead of overflowing where there is not. A fixed\n // `columns` switches to a grid, sized to the swatches rather than to the\n // container — `1fr` tracks would stretch them apart.\n display: {\n '': 'flex',\n columns: 'grid',\n },\n flow: {\n '': 'row wrap',\n columns: 'row',\n },\n gap: '.5x',\n placeItems: {\n '': 'center start',\n columns: 'stretch',\n },\n width: {\n '': 'auto',\n columns: 'max-content',\n },\n gridColumns: 'repeat($columns, max-content)',\n\n // 20px, 16px and 24px — 1x is 8px.\n '$swatch-size': {\n '': '2.5x',\n 'size=small': '2x',\n 'size=large': '3x',\n },\n },\n});\n\n/**\n * Only the swatches belong to the radiogroup. The custom picker is a button,\n * and inside `role=\"radiogroup\"` it both misreports what the palette holds and\n * hands arrow keys to React Aria's radio walker — pressing one while the picker\n * is focused jumps into a swatch and changes the color. The box is dropped so\n * the swatches remain direct children of the group's own layout.\n */\nconst RadiosElement = tasty({\n styles: { display: 'contents' },\n});\n\nconst SwatchElement = tasty({\n as: 'label',\n qa: 'ColorSwatchOption',\n styles: {\n display: 'grid',\n placeItems: 'stretch',\n position: 'relative',\n radius: '1r',\n cursor: {\n '': 'pointer',\n disabled: 'default',\n },\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n fill: '(#color-swatch, #clear)',\n opacity: {\n '': 1,\n disabled: '$disabled-opacity',\n },\n // A ring at one border-width's distance, so the color area stays whole —\n // the inner ring is the surface showing through as the gap. `outline` is\n // deliberately left to the focus ring.\n shadow: {\n '': 'inset 0 0 0 1bw #dark.15',\n selected: SELECTED_RING,\n },\n // The outline offset keeps the ring clear of the 4px gap to its neighbours.\n outline: {\n '': '(2 * $ring-width) #focus.0 / $outline-offset',\n focused: '(2 * $ring-width) #focus / $outline-offset',\n },\n transition: 'theme',\n },\n});\n\nexport interface CubeColorSwatchGroupProps\n extends\n BaseProps,\n OuterStyleProps,\n BlockStyleProps,\n FieldBaseProps<string | null | undefined> {\n /** The colors to offer. Duplicates of the same color are dropped. */\n colors?: CubeColorSwatchItem[];\n /** The selected color (controlled). */\n value?: string | null;\n /** The selected color (uncontrolled). */\n defaultValue?: string | null;\n /** Called with the chosen color, written in `format`. */\n onChange?: (value: string | null) => void;\n /** Notation the value is written in. */\n format?: ColorFormat;\n /** How many swatches per row. Defaults to a single row. */\n columns?: number;\n /**\n * Append a `ColorPicker` for colors outside the set. Ignored inside a color\n * popover, which is where that picker would otherwise recurse.\n */\n allowCustom?: boolean;\n /** The size of each swatch. */\n size?: 'small' | 'medium' | 'large' | (string & {});\n styles?: Styles;\n /** Styles of an individual swatch. */\n swatchStyles?: Styles;\n 'aria-label'?: string;\n}\n\ninterface SwatchProps {\n colorKey: string;\n label: string;\n state: RadioGroupState;\n isDisabled?: boolean;\n size?: string;\n styles?: Styles;\n mods?: Record<string, boolean | undefined>;\n}\n\nfunction Swatch({\n colorKey,\n label,\n state,\n isDisabled,\n size,\n styles,\n mods,\n}: SwatchProps) {\n const inputRef = useRef<HTMLInputElement>(null);\n const {\n inputProps,\n isSelected,\n isDisabled: isRadioDisabled,\n } = useRadio(\n { value: colorKey, 'aria-label': label, isDisabled },\n state,\n inputRef,\n );\n // `useRadio` reports selection but not focus, and the swatch is the only\n // thing a keyboard user can see — without this the ring never appears.\n const { isFocused, focusProps } = useFocus(true);\n\n return (\n <SwatchElement\n data-size={size}\n mods={{\n selected: isSelected,\n disabled: isRadioDisabled,\n focused: isFocused,\n ...mods,\n }}\n styles={styles}\n tokens={{ '#color-swatch': colorKey }}\n >\n <HiddenInput\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n qa=\"ColorSwatchInput\"\n mods={{ button: true, disabled: isRadioDisabled }}\n />\n </SwatchElement>\n );\n}\n\n/**\n * A grid of color swatches, one of which can be selected — the palette half of\n * choosing a color, where `ColorPicker` is the freeform half.\n *\n * Swatches are keyed by their canonical hex, so the same color written two ways\n * collapses into one entry. Equivalent colors would otherwise make selection\n * ambiguous.\n */\nexport const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(\n allProps: CubeColorSwatchGroupProps,\n ref: ForwardedRef<HTMLElement>,\n) {\n const { t } = useI18n();\n const props = useFieldProps(allProps, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n value: value as string | null | undefined,\n onChange,\n }),\n });\n\n const {\n qa,\n colors = [],\n value,\n defaultValue,\n onChange,\n format = 'hex',\n columns,\n allowCustom,\n size = 'medium',\n isDisabled,\n isInvalid,\n isValid,\n swatchStyles,\n 'aria-label': ariaLabel,\n } = props;\n\n const styles = extractStyles(props, [...OUTER_STYLES, ...BLOCK_STYLES]);\n const isInsidePopover = useIsInsideColorPopover();\n // A custom picker inside a color popover would open a popover of its own.\n const showCustom = allowCustom && !isInsidePopover;\n\n /** Keyed by canonical hex so the same color written two ways is one swatch. */\n const swatches = useMemo(() => {\n const seen = new Map<string, { key: string; label: string }>();\n\n for (const entry of colors) {\n const raw = typeof entry === 'string' ? entry : entry.color;\n const parsed = parseColor(raw);\n\n if (!parsed) continue;\n\n const key = toHex(parsed);\n\n if (seen.has(key)) continue;\n\n seen.set(key, {\n key,\n label:\n (typeof entry === 'string' ? undefined : entry.label) ??\n formatColor(parsed, format),\n });\n }\n\n return [...seen.values()];\n }, [colors, format]);\n\n const [internalValue, setInternalValue] = useState<string | null>(\n () => defaultValue ?? null,\n );\n const currentValue = value !== undefined ? value : internalValue;\n\n const selectedColor = parseColor((currentValue ?? '').toString());\n const selectedKey = selectedColor ? toHex(selectedColor) : null;\n const isCustom =\n !!selectedKey && !swatches.some((s) => s.key === selectedKey);\n\n const publish = useEvent((next: string | null) => {\n if (value === undefined) setInternalValue(next);\n\n onChange?.(next);\n });\n\n // `null` arrives from React Aria's native form reset of a group that\n // mounted with no value.\n const handleChange = useEvent((nextKey: string | null) => {\n const parsed = nextKey == null ? null : parseColor(nextKey);\n\n publish(parsed ? formatColor(parsed, format) : null);\n });\n\n const state = useRadioGroupState({\n value: selectedKey ?? null,\n isDisabled,\n isReadOnly: props.isReadOnly,\n // Becomes the group's `aria-invalid`, which is what says the field is\n // invalid to a screen reader; the red outline says it only to the eye.\n isInvalid,\n onChange: handleChange,\n });\n\n // `useFocusableRef` wants the ref of a real focusable control to forward to,\n // and a group of radios has no single one — `RadioGroup` takes the same\n // approach for the same reason.\n const domRef = useObjectRef(ref);\n const { radioGroupProps, labelProps } = useRadioGroup(\n {\n ...props,\n // React Aria hands `form` to every swatch's input as the id of its\n // `<form>`, so the form instance would render as `form=\"[object Object]\"`.\n form: undefined,\n // Only name the group here when nothing else does: an `aria-label` set\n // unconditionally would outrank the visible label React Aria wires up.\n 'aria-label': props.label\n ? undefined\n : (ariaLabel ?? t('colorSwatchGroup.colors', 'Colors')),\n orientation: 'horizontal',\n },\n state,\n );\n\n const group = (\n <GroupElement\n ref={domRef}\n qa={qa || 'ColorSwatchGroup'}\n data-size={size}\n data-input-type=\"colorswatchgroup\"\n styles={styles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n columns: !!columns,\n }}\n tokens={columns ? { $columns: columns } : undefined}\n >\n <RadiosElement {...radioGroupProps}>\n {swatches.map((swatch) => (\n <Swatch\n key={swatch.key}\n colorKey={swatch.key}\n label={swatch.label}\n state={state}\n isDisabled={isDisabled}\n size={size}\n styles={swatchStyles}\n />\n ))}\n </RadiosElement>\n {showCustom ? (\n <ColorPicker\n isBare\n aria-label={t('colorSwatchGroup.customColor', 'Custom color')}\n qa=\"ColorSwatchGroupCustom\"\n format={format}\n type=\"clear\"\n size={SWATCH_PX[size] ?? SWATCH_PX.medium}\n value={isCustom ? (currentValue ?? null) : null}\n isDisabled={isDisabled}\n isReadOnly={props.isReadOnly}\n triggerStyles={CUSTOM_TRIGGER_STYLES}\n swatchStyles={\n isCustom ? CUSTOM_SWATCH_SELECTED_STYLES : CUSTOM_SWATCH_STYLES\n }\n onChange={publish}\n >\n {null}\n </ColorPicker>\n ) : null}\n </GroupElement>\n );\n\n return wrapWithField(group, {\n ...props,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n});\n\n(ColorSwatchGroup as any).cubeInputType = 'Picker';\n"],"mappings":"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"}
@@ -108,7 +108,7 @@ export interface CubeComboBoxProps<T> extends BasePropsWithoutChildren, BaseStyl
108
108
  sectionStyles?: Styles;
109
109
  /** Custom styles for section headings */
110
110
  headingStyles?: Styles;
111
- /** Space between options, in pixels. Defaults to a hairline (`1bw`). */
111
+ /** Space between options, in pixels. Defaults to a hairline (`$item-gap`, `1px`). */
112
112
  listGap?: number;
113
113
  /** Whether the combobox is disabled */
114
114
  isDisabled?: boolean;