@cube-dev/ui-kit 0.0.0-canary-77d007b → 0.0.0-canary-b07ea9a

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 (498) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.d.ts +0 -1
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/index.js +1 -1
  38. package/dist/components/actions/use-action.js +1 -1
  39. package/dist/components/actions/use-anchored-menu.js +1 -1
  40. package/dist/components/actions/use-context-menu.js +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +1 -1
  48. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  49. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  50. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  51. package/dist/components/content/Divider.js +1 -1
  52. package/dist/components/content/Footer.js +1 -1
  53. package/dist/components/content/Header.js +1 -1
  54. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  55. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  56. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  57. package/dist/components/content/Item/Item.js +1 -1
  58. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  59. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  60. package/dist/components/content/Layout/GridLayout.js +1 -1
  61. package/dist/components/content/Layout/Layout.js +1 -1
  62. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  63. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  64. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  65. package/dist/components/content/Layout/LayoutContent.js +1 -1
  66. package/dist/components/content/Layout/LayoutContext.js +1 -1
  67. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  68. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  69. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  70. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutPane.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  75. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  76. package/dist/components/content/Layout/index.js +1 -1
  77. package/dist/components/content/Layout/utils.js +1 -1
  78. package/dist/components/content/Paragraph.js +1 -1
  79. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  80. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  81. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  82. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  83. package/dist/components/content/Result/Result.js +1 -1
  84. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  85. package/dist/components/content/Tag/Tag.js +1 -1
  86. package/dist/components/content/Text.d.ts +14 -14
  87. package/dist/components/content/Text.js +1 -1
  88. package/dist/components/content/TextItem/TextItem.js +1 -1
  89. package/dist/components/content/Title.js +1 -1
  90. package/dist/components/content/Tree/Tree.js +1 -1
  91. package/dist/components/content/Tree/TreeNode.js +1 -1
  92. package/dist/components/content/Tree/styled.js +1 -1
  93. package/dist/components/content/Tree/tree-index.js +1 -1
  94. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  95. package/dist/components/content/Tree/use-load-data.js +1 -1
  96. package/dist/components/content/highlightText.js +1 -1
  97. package/dist/components/content/use-auto-tooltip.js +1 -1
  98. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  99. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  100. package/dist/components/fields/Checkbox/context.js +1 -1
  101. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  102. package/dist/components/fields/ColorPicker/ColorPicker.js +5 -5
  103. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  104. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +12 -5
  105. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  106. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  107. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  108. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  109. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  110. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  111. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  112. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  113. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  114. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  115. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  116. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  117. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  118. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  119. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  120. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  121. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  122. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  123. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  124. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  125. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  126. package/dist/components/fields/DatePicker/period.js +1 -1
  127. package/dist/components/fields/DatePicker/props.js +1 -1
  128. package/dist/components/fields/DatePicker/utils.js +1 -1
  129. package/dist/components/fields/FileInput/FileInput.js +1 -1
  130. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  131. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  132. package/dist/components/fields/Input/Input.js +1 -1
  133. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  134. package/dist/components/fields/ListBox/ListBox.js +1 -1
  135. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  136. package/dist/components/fields/ListBoxPopover/index.d.ts +0 -1
  137. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  138. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  139. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  140. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  141. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  142. package/dist/components/fields/Picker/Picker.js +1 -1
  143. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  144. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  145. package/dist/components/fields/RadioGroup/context.js +1 -1
  146. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  147. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  148. package/dist/components/fields/Select/Select.js +1 -1
  149. package/dist/components/fields/Slider/Gradation.js +1 -1
  150. package/dist/components/fields/Slider/HueSlider.js +1 -1
  151. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  152. package/dist/components/fields/Slider/Slider.js +1 -1
  153. package/dist/components/fields/Slider/SliderBase.js +1 -1
  154. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  155. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  156. package/dist/components/fields/Slider/elements.js +1 -1
  157. package/dist/components/fields/Slider/index.js +1 -1
  158. package/dist/components/fields/Switch/Switch.js +1 -1
  159. package/dist/components/fields/TextArea/TextArea.js +1 -1
  160. package/dist/components/fields/TextInput/TextInput.js +1 -1
  161. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  162. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  163. package/dist/components/fields/color/ColorPanel.js +1 -1
  164. package/dist/components/fields/color/ColorSwatch.js +1 -1
  165. package/dist/components/fields/color/channels.js +1 -1
  166. package/dist/components/fields/color/color.js +1 -1
  167. package/dist/components/fields/color/context.js +1 -1
  168. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  169. package/dist/components/form/Form/Field.js +1 -1
  170. package/dist/components/form/Form/Form.js +1 -1
  171. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  172. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  173. package/dist/components/form/Form/SubmitError.js +1 -1
  174. package/dist/components/form/Form/index.js +1 -1
  175. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  176. package/dist/components/form/Form/use-field/use-field.js +1 -1
  177. package/dist/components/form/Form/use-form.js +1 -1
  178. package/dist/components/form/Form/validation.js +1 -1
  179. package/dist/components/form/Label.js +1 -1
  180. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  181. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  182. package/dist/components/form/validation/use-validation-props.js +1 -1
  183. package/dist/components/form/wrapper.js +1 -1
  184. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  185. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  186. package/dist/components/layout/Board/Board.js +1 -1
  187. package/dist/components/layout/Board/BoardProvider.js +1 -1
  188. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  189. package/dist/components/layout/Board/Widget.js +1 -1
  190. package/dist/components/layout/Board/WidgetHost.js +1 -1
  191. package/dist/components/layout/Board/board-context.js +1 -1
  192. package/dist/components/layout/Board/board-store.js +1 -1
  193. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  194. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  195. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  196. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  197. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  198. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  199. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  200. package/dist/components/layout/Board/index.js +1 -1
  201. package/dist/components/layout/Board/responsive-utils.js +1 -1
  202. package/dist/components/layout/Board/use-board-layout.js +1 -1
  203. package/dist/components/layout/Board/use-board-registry.js +1 -1
  204. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  205. package/dist/components/layout/Board/use-board-selection.js +1 -1
  206. package/dist/components/layout/Flex.js +1 -1
  207. package/dist/components/layout/Flow.js +1 -1
  208. package/dist/components/layout/Grid.js +1 -1
  209. package/dist/components/layout/Panel.js +1 -1
  210. package/dist/components/layout/Prefix.js +1 -1
  211. package/dist/components/layout/ResizablePanel.js +1 -1
  212. package/dist/components/layout/Space.js +1 -1
  213. package/dist/components/layout/Suffix.js +1 -1
  214. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  215. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  216. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  217. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  218. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  219. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  220. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  221. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  222. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  223. package/dist/components/navigation/Tabs/styled.js +1 -1
  224. package/dist/components/navigation/Tabs/types.js +1 -1
  225. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  226. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  227. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  228. package/dist/components/other/Calendar/Calendar.js +1 -1
  229. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  230. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  231. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  232. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  233. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  234. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  235. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  236. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  237. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  238. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  239. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  240. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  241. package/dist/components/overlays/Dialog/context.js +1 -1
  242. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  243. package/dist/components/overlays/Modal/Modal.d.ts +1 -2
  244. package/dist/components/overlays/Modal/Modal.js +1 -1
  245. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  246. package/dist/components/overlays/Modal/Overlay.d.ts +0 -1
  247. package/dist/components/overlays/Modal/Overlay.js +1 -1
  248. package/dist/components/overlays/Modal/Popover.js +1 -1
  249. package/dist/components/overlays/Modal/Tray.js +1 -1
  250. package/dist/components/overlays/Modal/Underlay.js +1 -1
  251. package/dist/components/overlays/Modal/types.d.ts +0 -1
  252. package/dist/components/overlays/Notifications/Notification.js +1 -1
  253. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  254. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  255. package/dist/components/overlays/Notifications/NotificationContext.d.ts +0 -2
  256. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  257. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  258. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  259. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  260. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  261. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  262. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  263. package/dist/components/overlays/Notifications/index.js +1 -1
  264. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  265. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  266. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  267. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  268. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  269. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  270. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  271. package/dist/components/overlays/Toast/index.js +1 -1
  272. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  273. package/dist/components/overlays/Toast/useToast.js +1 -1
  274. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  275. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  276. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  277. package/dist/components/overlays/Tooltip/context.js +1 -1
  278. package/dist/components/portal/Portal.js +1 -1
  279. package/dist/components/portal/PortalProvider.js +1 -1
  280. package/dist/components/portal/index.d.ts +0 -1
  281. package/dist/components/portal/usePortal.js +1 -1
  282. package/dist/components/shared/DraggableCollection.js +1 -1
  283. package/dist/components/shared/InvalidIcon.js +1 -1
  284. package/dist/components/shared/ValidIcon.js +1 -1
  285. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  286. package/dist/components/status/Spin/Cube.js +1 -1
  287. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  288. package/dist/components/status/Spin/Spin.js +1 -1
  289. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  290. package/dist/data/item-themes.js +1 -1
  291. package/dist/data/themes.js +1 -1
  292. package/dist/eslint-plugin/defaults.generated.js +1 -1
  293. package/dist/eslint-plugin/index.js +1 -1
  294. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  295. package/dist/i18n/I18nProvider.js +1 -1
  296. package/dist/i18n/createFormatter.js +1 -1
  297. package/dist/i18n/index.js +1 -1
  298. package/dist/i18n/instance.js +1 -1
  299. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  300. package/dist/i18n/locales/en-US/uikit.js +1 -1
  301. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  302. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  303. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  304. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  305. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  306. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  307. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  308. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  309. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  310. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  311. package/dist/i18n/locales.js +1 -1
  312. package/dist/i18n/useFormatter.js +1 -1
  313. package/dist/i18n/useI18n.js +1 -1
  314. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  315. package/dist/icons/AdjustmentsIcon.js +1 -1
  316. package/dist/icons/AiIcon.js +1 -1
  317. package/dist/icons/AreaChartIcon.js +1 -1
  318. package/dist/icons/BackwardIcon.js +1 -1
  319. package/dist/icons/BarChartIcon.js +1 -1
  320. package/dist/icons/BellFilledIcon.js +1 -1
  321. package/dist/icons/BellIcon.js +1 -1
  322. package/dist/icons/BooleanIcon.js +1 -1
  323. package/dist/icons/CalendarEditIcon.js +1 -1
  324. package/dist/icons/CalendarIcon.js +1 -1
  325. package/dist/icons/CaretDownIcon.js +1 -1
  326. package/dist/icons/CaretUpIcon.js +1 -1
  327. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  328. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  329. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  330. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  331. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  332. package/dist/icons/ChartBarLineIcon.js +1 -1
  333. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  334. package/dist/icons/ChartBarStackedIcon.js +1 -1
  335. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  336. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  337. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  338. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  339. package/dist/icons/ChartBubbleIcon.js +1 -1
  340. package/dist/icons/ChartDonut2Icon.js +1 -1
  341. package/dist/icons/ChartFunnelIcon.js +1 -1
  342. package/dist/icons/ChartHeatmapIcon.js +1 -1
  343. package/dist/icons/ChartKPIIcon.js +1 -1
  344. package/dist/icons/ChartPie2Icon.js +1 -1
  345. package/dist/icons/ChartScatterIcon.js +1 -1
  346. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  347. package/dist/icons/CheckCircleIcon.js +1 -1
  348. package/dist/icons/CheckIcon.js +1 -1
  349. package/dist/icons/CircleFilledIcon.js +1 -1
  350. package/dist/icons/ClearIcon.js +1 -1
  351. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  352. package/dist/icons/CloseCircleIcon.js +1 -1
  353. package/dist/icons/CloseIcon.js +1 -1
  354. package/dist/icons/CodeIcon.js +1 -1
  355. package/dist/icons/ColumnTotalIcon.js +1 -1
  356. package/dist/icons/CopyIcon.js +1 -1
  357. package/dist/icons/CountIcon.js +1 -1
  358. package/dist/icons/CubeIcon.js +1 -1
  359. package/dist/icons/CubePauseIcon.js +1 -1
  360. package/dist/icons/CubePlayIcon.js +1 -1
  361. package/dist/icons/CurrencyDollarIcon.js +1 -1
  362. package/dist/icons/DangerIcon.js +1 -1
  363. package/dist/icons/DashboardIcon.js +1 -1
  364. package/dist/icons/DatabaseIcon.js +1 -1
  365. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  366. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  367. package/dist/icons/DirectionIcon.js +1 -1
  368. package/dist/icons/DonutIcon.js +1 -1
  369. package/dist/icons/DownIcon.js +1 -1
  370. package/dist/icons/EditIcon.js +1 -1
  371. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  372. package/dist/icons/ExclamationCircleIcon.js +1 -1
  373. package/dist/icons/ExclamationIcon.js +1 -1
  374. package/dist/icons/EyeIcon.js +1 -1
  375. package/dist/icons/EyeInvisibleIcon.js +1 -1
  376. package/dist/icons/FilterIcon.js +1 -1
  377. package/dist/icons/FolderFilledIcon.js +1 -1
  378. package/dist/icons/FolderIcon.js +1 -1
  379. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  380. package/dist/icons/FolderOpenIcon.js +1 -1
  381. package/dist/icons/ForwardIcon.js +1 -1
  382. package/dist/icons/GripVerticalIcon.js +1 -1
  383. package/dist/icons/HierarchyIcon.js +1 -1
  384. package/dist/icons/HierarchyOpenIcon.js +1 -1
  385. package/dist/icons/Icon.js +1 -1
  386. package/dist/icons/InfoCircleIcon.js +1 -1
  387. package/dist/icons/InfoIcon.js +1 -1
  388. package/dist/icons/KeyIcon.js +1 -1
  389. package/dist/icons/LeftIcon.js +1 -1
  390. package/dist/icons/LineChartIcon.js +1 -1
  391. package/dist/icons/LoadingIcon.js +1 -1
  392. package/dist/icons/LockFilledIcon.js +1 -1
  393. package/dist/icons/LockIcon.js +1 -1
  394. package/dist/icons/MoreIcon.js +1 -1
  395. package/dist/icons/NotAllowedIcon.js +1 -1
  396. package/dist/icons/Number123Icon.js +1 -1
  397. package/dist/icons/NumberIcon.js +1 -1
  398. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  399. package/dist/icons/PauseCircleIcon.js +1 -1
  400. package/dist/icons/PauseIcon.js +1 -1
  401. package/dist/icons/PercentageIcon.js +1 -1
  402. package/dist/icons/PieChartIcon.js +1 -1
  403. package/dist/icons/PipetteIcon.js +1 -1
  404. package/dist/icons/PlayCircleIcon.js +1 -1
  405. package/dist/icons/PlayIcon.js +1 -1
  406. package/dist/icons/PlusIcon.js +1 -1
  407. package/dist/icons/ProgressBarIcon.js +1 -1
  408. package/dist/icons/ReloadIcon.js +1 -1
  409. package/dist/icons/ReportIcon.js +1 -1
  410. package/dist/icons/ReturnIcon.js +1 -1
  411. package/dist/icons/RightIcon.js +1 -1
  412. package/dist/icons/RowTotalsIcon.js +1 -1
  413. package/dist/icons/SchemeIcon.js +1 -1
  414. package/dist/icons/SearchIcon.js +1 -1
  415. package/dist/icons/SemanticQueryIcon.js +1 -1
  416. package/dist/icons/SettingsIcon.js +1 -1
  417. package/dist/icons/ShieldFilledIcon.js +1 -1
  418. package/dist/icons/ShieldIcon.js +1 -1
  419. package/dist/icons/SlashIcon.js +1 -1
  420. package/dist/icons/SparklesIcon.js +1 -1
  421. package/dist/icons/SqlIcon.js +1 -1
  422. package/dist/icons/StatsIcon.js +1 -1
  423. package/dist/icons/StopIcon.js +1 -1
  424. package/dist/icons/StringIcon.js +1 -1
  425. package/dist/icons/SubtotalsIcon.js +1 -1
  426. package/dist/icons/SwitchIcon.js +1 -1
  427. package/dist/icons/TableIcon.js +1 -1
  428. package/dist/icons/ThumbsDownIcon.js +1 -1
  429. package/dist/icons/ThumbsUpIcon.js +1 -1
  430. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  431. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  432. package/dist/icons/ThunderboltIcon.js +1 -1
  433. package/dist/icons/TimeIcon.js +1 -1
  434. package/dist/icons/TrashIcon.js +1 -1
  435. package/dist/icons/UnlockIcon.js +1 -1
  436. package/dist/icons/UpIcon.js +1 -1
  437. package/dist/icons/UserGroupIcon.js +1 -1
  438. package/dist/icons/UserIcon.js +1 -1
  439. package/dist/icons/UserLockIcon.js +1 -1
  440. package/dist/icons/ViewIcon.js +1 -1
  441. package/dist/icons/WarningFilledIcon.js +1 -1
  442. package/dist/icons/WarningIcon.js +1 -1
  443. package/dist/icons/wrap-icon.js +1 -1
  444. package/dist/index.js +1 -1
  445. package/dist/provider.js +1 -1
  446. package/dist/providers/TrackingProvider.js +1 -1
  447. package/dist/providers/navigationAdapter.default.js +1 -1
  448. package/dist/tokens/base.js +1 -1
  449. package/dist/tokens/colors.js +1 -1
  450. package/dist/tokens/index.js +1 -1
  451. package/dist/tokens/layout.js +1 -1
  452. package/dist/tokens/lazy-styles.js +1 -1
  453. package/dist/tokens/palette-config.js +1 -1
  454. package/dist/tokens/palette.js +1 -1
  455. package/dist/tokens/shadows.js +1 -1
  456. package/dist/tokens/sizes.js +1 -1
  457. package/dist/tokens/spacing.js +1 -1
  458. package/dist/tokens/typography.js +1 -1
  459. package/dist/utils/ResizeSensor.js +1 -1
  460. package/dist/utils/is-dev-env.js +1 -1
  461. package/dist/utils/modules.js +1 -1
  462. package/dist/utils/promise.js +1 -1
  463. package/dist/utils/raf.js +1 -1
  464. package/dist/utils/random.js +1 -1
  465. package/dist/utils/range.js +1 -1
  466. package/dist/utils/react/RenderCache.js +1 -1
  467. package/dist/utils/react/Slots.js +1 -1
  468. package/dist/utils/react/chain.js +1 -1
  469. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  470. package/dist/utils/react/index.js +1 -1
  471. package/dist/utils/react/interactions.js +1 -1
  472. package/dist/utils/react/isTextOnly.js +1 -1
  473. package/dist/utils/react/mapProps.js +1 -1
  474. package/dist/utils/react/mergeProps.js +1 -1
  475. package/dist/utils/react/nullableValue.js +1 -1
  476. package/dist/utils/react/resolveIcon.js +1 -1
  477. package/dist/utils/react/sharedStore.js +1 -1
  478. package/dist/utils/react/useCombinedRefs.js +1 -1
  479. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  480. package/dist/utils/react/useEventBus.js +1 -1
  481. package/dist/utils/react/useId.js +1 -1
  482. package/dist/utils/react/useIsDarwin.js +1 -1
  483. package/dist/utils/react/useKeySymbols.js +1 -1
  484. package/dist/utils/react/useLayoutEffect.js +1 -1
  485. package/dist/utils/react/useLocalStorage.js +1 -1
  486. package/dist/utils/react/useMergeStyles.js +1 -1
  487. package/dist/utils/react/usePopoverSync.js +1 -1
  488. package/dist/utils/react/useQaProps.js +1 -1
  489. package/dist/utils/react/useViewportSize.js +1 -1
  490. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  491. package/dist/utils/selection.js +1 -1
  492. package/dist/utils/styles.js +1 -1
  493. package/dist/utils/tree.js +1 -1
  494. package/dist/utils/warnings.js +1 -1
  495. package/dist/version.js +2 -2
  496. package/package.json +1 -1
  497. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +0 -2
  498. package/dist/components/portal/PortalProvider.d.ts +0 -2
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { BASE_STYLES, COLOR_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { TEXT_PROP_MAP, _Text } from "../Text.js";
4
4
  import { highlightText } from "../highlightText.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { TEXT_PROP_MAP } from "./Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
3
  import { Action } from "../../actions/Action/Action.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  //#region src/components/content/Tree/tree-index.ts
3
3
  function buildTreeIndex(treeData) {
4
4
  const byKey = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useMemo, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { _Text } from "./Text.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { TooltipProvider } from "../overlays/Tooltip/TooltipProvider.js";
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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 { _Text } from "../../content/Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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 { FormContext } from "../../form/Form/Form.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { createContext } from "react";
3
3
 
4
4
  //#region src/components/fields/Checkbox/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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 { ItemAction } from "../../actions/ItemAction/ItemAction.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { _Text } from "../../content/Text.js";
@@ -48,7 +48,7 @@ const ColorPicker = forwardRef(function ColorPicker(allProps, ref) {
48
48
  onChange
49
49
  })
50
50
  });
51
- const { qa, id, value, defaultValue, onChange, format = "hex", defaultSpace = "hst", isOpen: controlledOpen, defaultOpen, onOpenChange, shouldFlip, children, placeholder = "Pick a color", size, type = "outline", theme = "default", triggerTooltip, swatches, swatchColumns, triggerStyles, swatchStyles, isDisabled, isLoading, isInvalid, isValid, autoFocus, "aria-label": ariaLabel } = props;
51
+ const { qa, id, value, defaultValue, onChange, format = "hex", defaultSpace = "hst", isOpen: controlledOpen, defaultOpen, onOpenChange, shouldFlip, children, placeholder = "Pick a color", size, type = "outline", theme = "default", triggerTooltip, swatches, swatchColumns, triggerStyles, swatchStyles, isDisabled, isReadOnly, isLoading, isInvalid, isValid, autoFocus, "aria-label": ariaLabel } = props;
52
52
  const styles = extractStyles(props, OUTER_STYLES);
53
53
  const [color, setColor] = useState(() => parseColor((value ?? defaultValue ?? "").toString()));
54
54
  const [space, setSpace] = useState(defaultSpace);
@@ -106,7 +106,7 @@ const ColorPicker = forwardRef(function ColorPicker(allProps, ref) {
106
106
  isValid
107
107
  }),
108
108
  tooltip: triggerTooltip,
109
- isDisabled: isDisabled || isLoading,
109
+ isDisabled: isDisabled || isLoading || isReadOnly,
110
110
  autoFocus,
111
111
  "aria-label": ariaLabel,
112
112
  mods: { placeholder: !color },
@@ -120,7 +120,7 @@ const ColorPicker = forwardRef(function ColorPicker(allProps, ref) {
120
120
  children: /* @__PURE__ */ jsx(ColorPanel, {
121
121
  color: color ?? FALLBACK_COLOR,
122
122
  space,
123
- isDisabled,
123
+ isDisabled: isDisabled || isReadOnly,
124
124
  previewFormat: format,
125
125
  swatches: swatches?.length ? /* @__PURE__ */ jsx(ColorSwatchGroup, {
126
126
  "aria-label": "Palette",
@@ -129,7 +129,7 @@ const ColorPicker = forwardRef(function ColorPicker(allProps, ref) {
129
129
  columns: swatchColumns,
130
130
  format,
131
131
  value: colorText,
132
- isDisabled,
132
+ isDisabled: isDisabled || isReadOnly,
133
133
  onChange: handleSwatchChange
134
134
  }) : null,
135
135
  onChange: handleColorChange,
@@ -1 +1 @@
1
- {"version":3,"file":"ColorPicker.js","names":["Text","ItemButton"],"sources":["../../../../src/components/fields/ColorPicker/ColorPicker.tsx"],"sourcesContent":["import {\n BaseProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport { useEvent } from '../../../_internal';\nimport { FieldBaseProps } from '../../../shared';\nimport { extractStyles } from '../../../utils/styles';\nimport { ItemButton } from '../../actions';\nimport { CubeItemProps } from '../../content/Item';\nimport { Text } from '../../content/Text';\nimport {\n getValidationIcon,\n getValidationTheme,\n useFieldProps,\n wrapWithField,\n} from '../../form';\nimport { Dialog, DialogTrigger } from '../../overlays/Dialog';\nimport { ColorSpace } from '../color/channels';\nimport {\n ColorFormat,\n ColorValue,\n formatColor,\n parseColor,\n} from '../color/color';\nimport { ColorPanel } from '../color/ColorPanel';\nimport { ColorSwatch } from '../color/ColorSwatch';\nimport { ColorPopoverContext } from '../color/context';\nimport { ColorSwatchGroup, CubeColorSwatchItem } from '../ColorSwatchGroup';\n\n/** What the popover starts from when there is no color to edit yet. */\nconst FALLBACK_COLOR: ColorValue = { h: 264, s: 0.8, l: 0.6 };\n\nconst ColorPickerWrapper = tasty({\n qa: 'ColorPickerWrapper',\n styles: {\n display: 'inline-grid',\n flow: 'column',\n gridRows: '1sf',\n placeContent: 'stretch',\n placeItems: 'stretch',\n },\n});\n\nexport interface CubeColorPickerProps\n extends BaseProps,\n OuterStyleProps,\n FieldBaseProps {\n /** The selected color, as a color string. */\n value?: string | null;\n /** The initial color of an uncontrolled picker. */\n defaultValue?: string | null;\n /** Called with the color string, or `null` when there is no color. */\n onChange?: (value: string | null) => void;\n /** Notation the value is written in. */\n format?: ColorFormat;\n /** Color concept the popover opens with. */\n defaultSpace?: ColorSpace;\n /** Whether the popover is open. Makes the disclosure controlled. */\n isOpen?: boolean;\n /** Whether the popover is open initially. */\n defaultOpen?: boolean;\n /** Called when the popover opens or closes. */\n onOpenChange?: (isOpen: boolean) => void;\n /** Whether the popover may flip to the other side of the trigger. */\n shouldFlip?: boolean;\n /** Replaces the color shown on the trigger. Pass `null` for a swatch on its own. */\n children?: ReactNode;\n /** Shown on the trigger while there is no color. */\n placeholder?: ReactNode;\n /** The size of the trigger. */\n size?: CubeItemProps['size'];\n /** The visual type of the trigger. */\n type?: CubeItemProps['type'];\n theme?: CubeItemProps['theme'];\n /** Tooltip for the trigger, separate from the field tooltip. */\n triggerTooltip?: CubeItemProps['tooltip'];\n /** Colors to offer under the editor, for picking without dialing one in. */\n swatches?: CubeColorSwatchItem[];\n /** How many swatches per row. Defaults to a single row. */\n swatchColumns?: number;\n styles?: Styles;\n /** Styles of the trigger button. */\n triggerStyles?: Styles;\n /** Styles of the color swatch. */\n swatchStyles?: Styles;\n 'aria-label'?: string;\n}\n\n/**\n * A color swatch that opens the color popover — the same one `ColorInput`\n * uses, without the text field. Reach for it when a color is chosen but never\n * typed: a toolbar, a chart legend, a cell in a dense table.\n */\nexport const ColorPicker = forwardRef(function ColorPicker(\n allProps: CubeColorPickerProps,\n ref: ForwardedRef<HTMLElement>,\n) {\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 id,\n value,\n defaultValue,\n onChange,\n format = 'hex',\n defaultSpace = 'hst',\n isOpen: controlledOpen,\n defaultOpen,\n onOpenChange,\n shouldFlip,\n children,\n placeholder = 'Pick a color',\n size,\n type = 'outline',\n theme = 'default',\n triggerTooltip,\n swatches,\n swatchColumns,\n triggerStyles,\n swatchStyles,\n isDisabled,\n isLoading,\n isInvalid,\n isValid,\n autoFocus,\n 'aria-label': ariaLabel,\n } = props;\n\n const styles = extractStyles(props, OUTER_STYLES);\n\n const [color, setColor] = useState(() =>\n parseColor((value ?? defaultValue ?? '').toString()),\n );\n const [space, setSpace] = useState<ColorSpace>(defaultSpace);\n const [isOpen, setOpen] = useState(defaultOpen ?? false);\n\n /** What was last published, to tell our own updates from outside ones. */\n const emitted = useRef<string | null | undefined>(value);\n\n // Adopt values that did not come from here — a form reset, or a parent that\n // overrides what the user picked.\n useEffect(() => {\n if (value === undefined || value === emitted.current) return;\n\n emitted.current = value;\n setColor(parseColor((value ?? '').toString()));\n }, [value]);\n\n const handleColorChange = useEvent((next: ColorValue) => {\n const text = formatColor(next, format);\n\n emitted.current = text;\n setColor(next);\n onChange?.(text);\n });\n\n const colorText = color ? formatColor(color, format) : null;\n\n const handleSwatchChange = useEvent((next: string | null) => {\n const parsed = next ? parseColor(next) : null;\n\n if (parsed) handleColorChange(parsed);\n });\n\n const handleOpenChange = useEvent((next: boolean) => {\n setOpen(next);\n onOpenChange?.(next);\n });\n\n // The swatch carries the color and the label spells it out. `children`\n // replaces that label, and `null` leaves the swatch on its own.\n const label =\n children !== undefined ? (\n children\n ) : color ? (\n formatColor(color, format)\n ) : (\n // Muted, so an unset picker never reads like one holding a value —\n // the same treatment `Picker` and `Select` give their placeholders.\n <Text.Placeholder>{placeholder}</Text.Placeholder>\n );\n\n const pickerField = (\n <ColorPickerWrapper styles={styles}>\n <DialogTrigger\n hideArrow\n type=\"popover\"\n mobileType=\"tray\"\n placement=\"bottom start\"\n isOpen={controlledOpen ?? isOpen}\n shouldFlip={shouldFlip}\n onOpenChange={handleOpenChange}\n >\n <ItemButton\n data-popover-trigger\n id={id}\n qa={qa || 'ColorPickerTrigger'}\n data-input-type=\"colorpicker\"\n type={type}\n theme={getValidationTheme(theme, { isInvalid, isValid })}\n size={size}\n icon={<ColorSwatch color={color} styles={swatchStyles} />}\n rightIcon={getValidationIcon({ isInvalid, isValid })}\n tooltip={triggerTooltip}\n isDisabled={isDisabled || isLoading}\n autoFocus={autoFocus}\n aria-label={ariaLabel}\n mods={{ placeholder: !color }}\n styles={triggerStyles}\n >\n {label}\n </ItemButton>\n <Dialog aria-label=\"Color picker\" width=\"max-content\">\n {/* Marks the subtree so a nested swatch group drops its custom-color\n escape hatch, which is a picker and would recurse forever. */}\n <ColorPopoverContext.Provider value={true}>\n <ColorPanel\n color={color ?? FALLBACK_COLOR}\n space={space}\n isDisabled={isDisabled}\n previewFormat={format}\n swatches={\n swatches?.length ? (\n <ColorSwatchGroup\n aria-label=\"Palette\"\n size=\"small\"\n colors={swatches}\n columns={swatchColumns}\n format={format}\n value={colorText}\n isDisabled={isDisabled}\n onChange={handleSwatchChange}\n />\n ) : null\n }\n onChange={handleColorChange}\n onSpaceChange={setSpace}\n />\n </ColorPopoverContext.Provider>\n </Dialog>\n </DialogTrigger>\n </ColorPickerWrapper>\n );\n\n return wrapWithField(pickerField, ref as any, props);\n});\n\n/**\n * Drives the legacy `<Field>` wiring: `Picker` validates on change and passes\n * the value through untouched, where `Text` would default to `onBlur` and\n * coerce `null` into an empty string.\n */\n(ColorPicker as any).cubeInputType = 'Picker';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAM,iBAA6B;CAAE,GAAG;CAAK,GAAG;CAAK,GAAG;CAAK;AAE7D,MAAM,qBAAqB,MAAM;CAC/B,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,UAAU;EACV,cAAc;EACd,YAAY;EACb;CACF,CAAC;;;;;;AAoDF,MAAa,cAAc,WAAW,SAAS,YAC7C,UACA,KACA;CACA,MAAM,QAAQ,cAAc,UAAU;EACpC,0BAA0B;EAC1B,mBAAmB,EAAE,OAAO,gBAAgB;GACnC;GACP;GACD;EACF,CAAC;CAEF,MAAM,EACJ,IACA,IACA,OACA,cACA,UACA,SAAS,OACT,eAAe,OACf,QAAQ,gBACR,aACA,cACA,YACA,UACA,cAAc,gBACd,MACA,OAAO,WACP,QAAQ,WACR,gBACA,UACA,eACA,eACA,cACA,YACA,WACA,WACA,SACA,WACA,cAAc,cACZ;CAEJ,MAAM,SAAS,cAAc,OAAO,aAAa;CAEjD,MAAM,CAAC,OAAO,YAAY,eACxB,YAAY,SAAS,gBAAgB,IAAI,UAAU,CAAC,CACrD;CACD,MAAM,CAAC,OAAO,YAAY,SAAqB,aAAa;CAC5D,MAAM,CAAC,QAAQ,WAAW,SAAS,eAAe,MAAM;;CAGxD,MAAM,UAAU,OAAkC,MAAM;AAIxD,iBAAgB;AACd,MAAI,UAAU,UAAa,UAAU,QAAQ,QAAS;AAEtD,UAAQ,UAAU;AAClB,WAAS,YAAY,SAAS,IAAI,UAAU,CAAC,CAAC;IAC7C,CAAC,MAAM,CAAC;CAEX,MAAM,oBAAoB,UAAU,SAAqB;EACvD,MAAM,OAAO,YAAY,MAAM,OAAO;AAEtC,UAAQ,UAAU;AAClB,WAAS,KAAK;AACd,aAAW,KAAK;GAChB;CAEF,MAAM,YAAY,QAAQ,YAAY,OAAO,OAAO,GAAG;CAEvD,MAAM,qBAAqB,UAAU,SAAwB;EAC3D,MAAM,SAAS,OAAO,WAAW,KAAK,GAAG;AAEzC,MAAI,OAAQ,mBAAkB,OAAO;GACrC;CAEF,MAAM,mBAAmB,UAAU,SAAkB;AACnD,UAAQ,KAAK;AACb,iBAAe,KAAK;GACpB;CAIF,MAAM,QACJ,aAAa,SACX,WACE,QACF,YAAY,OAAO,OAAO,GAI1B,oBAACA,MAAK,yBAAa,cAA+B;AAiEtD,QAAO,cA7DL,oBAAC;EAA2B;YAC1B,qBAAC;GACC;GACA,MAAK;GACL,YAAW;GACX,WAAU;GACV,QAAQ,kBAAkB;GACd;GACZ,cAAc;cAEd,oBAACC;IACC;IACI;IACJ,IAAI,MAAM;IACV,mBAAgB;IACV;IACN,OAAO,mBAAmB,OAAO;KAAE;KAAW;KAAS,CAAC;IAClD;IACN,MAAM,oBAAC;KAAmB;KAAO,QAAQ;MAAgB;IACzD,WAAW,kBAAkB;KAAE;KAAW;KAAS,CAAC;IACpD,SAAS;IACT,YAAY,cAAc;IACf;IACX,cAAY;IACZ,MAAM,EAAE,aAAa,CAAC,OAAO;IAC7B,QAAQ;cAEP;KACU,EACb,oBAAC;IAAO,cAAW;IAAe,OAAM;cAGtC,oBAAC,oBAAoB;KAAS,OAAO;eACnC,oBAAC;MACC,OAAO,SAAS;MACT;MACK;MACZ,eAAe;MACf,UACE,UAAU,SACR,oBAAC;OACC,cAAW;OACX,MAAK;OACL,QAAQ;OACR,SAAS;OACD;OACR,OAAO;OACK;OACZ,UAAU;QACV,GACA;MAEN,UAAU;MACV,eAAe;OACf;MAC2B;KACxB;IACK;GACG,EAGW,KAAY,MAAM;EACpD;;;;;;AAOF,AAAC,YAAoB,gBAAgB"}
1
+ {"version":3,"file":"ColorPicker.js","names":["Text","ItemButton"],"sources":["../../../../src/components/fields/ColorPicker/ColorPicker.tsx"],"sourcesContent":["import {\n BaseProps,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n ReactNode,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport { useEvent } from '../../../_internal';\nimport { FieldBaseProps } from '../../../shared';\nimport { extractStyles } from '../../../utils/styles';\nimport { ItemButton } from '../../actions';\nimport { CubeItemProps } from '../../content/Item';\nimport { Text } from '../../content/Text';\nimport {\n getValidationIcon,\n getValidationTheme,\n useFieldProps,\n wrapWithField,\n} from '../../form';\nimport { Dialog, DialogTrigger } from '../../overlays/Dialog';\nimport { ColorSpace } from '../color/channels';\nimport {\n ColorFormat,\n ColorValue,\n formatColor,\n parseColor,\n} from '../color/color';\nimport { ColorPanel } from '../color/ColorPanel';\nimport { ColorSwatch } from '../color/ColorSwatch';\nimport { ColorPopoverContext } from '../color/context';\nimport { ColorSwatchGroup, CubeColorSwatchItem } from '../ColorSwatchGroup';\n\n/** What the popover starts from when there is no color to edit yet. */\nconst FALLBACK_COLOR: ColorValue = { h: 264, s: 0.8, l: 0.6 };\n\nconst ColorPickerWrapper = tasty({\n qa: 'ColorPickerWrapper',\n styles: {\n display: 'inline-grid',\n flow: 'column',\n gridRows: '1sf',\n placeContent: 'stretch',\n placeItems: 'stretch',\n },\n});\n\nexport interface CubeColorPickerProps\n extends BaseProps,\n OuterStyleProps,\n FieldBaseProps {\n /** The selected color, as a color string. */\n value?: string | null;\n /** The initial color of an uncontrolled picker. */\n defaultValue?: string | null;\n /** Called with the color string, or `null` when there is no color. */\n onChange?: (value: string | null) => void;\n /** Notation the value is written in. */\n format?: ColorFormat;\n /** Color concept the popover opens with. */\n defaultSpace?: ColorSpace;\n /** Whether the popover is open. Makes the disclosure controlled. */\n isOpen?: boolean;\n /** Whether the popover is open initially. */\n defaultOpen?: boolean;\n /** Called when the popover opens or closes. */\n onOpenChange?: (isOpen: boolean) => void;\n /** Whether the popover may flip to the other side of the trigger. */\n shouldFlip?: boolean;\n /** Replaces the color shown on the trigger. Pass `null` for a swatch on its own. */\n children?: ReactNode;\n /** Shown on the trigger while there is no color. */\n placeholder?: ReactNode;\n /** The size of the trigger. */\n size?: CubeItemProps['size'];\n /** The visual type of the trigger. */\n type?: CubeItemProps['type'];\n theme?: CubeItemProps['theme'];\n /** Tooltip for the trigger, separate from the field tooltip. */\n triggerTooltip?: CubeItemProps['tooltip'];\n /** Colors to offer under the editor, for picking without dialing one in. */\n swatches?: CubeColorSwatchItem[];\n /** How many swatches per row. Defaults to a single row. */\n swatchColumns?: number;\n styles?: Styles;\n /** Styles of the trigger button. */\n triggerStyles?: Styles;\n /** Styles of the color swatch. */\n swatchStyles?: Styles;\n 'aria-label'?: string;\n}\n\n/**\n * A color swatch that opens the color popover — the same one `ColorInput`\n * uses, without the text field. Reach for it when a color is chosen but never\n * typed: a toolbar, a chart legend, a cell in a dense table.\n */\nexport const ColorPicker = forwardRef(function ColorPicker(\n allProps: CubeColorPickerProps,\n ref: ForwardedRef<HTMLElement>,\n) {\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 id,\n value,\n defaultValue,\n onChange,\n format = 'hex',\n defaultSpace = 'hst',\n isOpen: controlledOpen,\n defaultOpen,\n onOpenChange,\n shouldFlip,\n children,\n placeholder = 'Pick a color',\n size,\n type = 'outline',\n theme = 'default',\n triggerTooltip,\n swatches,\n swatchColumns,\n triggerStyles,\n swatchStyles,\n isDisabled,\n isReadOnly,\n isLoading,\n isInvalid,\n isValid,\n autoFocus,\n 'aria-label': ariaLabel,\n } = props;\n\n const styles = extractStyles(props, OUTER_STYLES);\n\n const [color, setColor] = useState(() =>\n parseColor((value ?? defaultValue ?? '').toString()),\n );\n const [space, setSpace] = useState<ColorSpace>(defaultSpace);\n const [isOpen, setOpen] = useState(defaultOpen ?? false);\n\n /** What was last published, to tell our own updates from outside ones. */\n const emitted = useRef<string | null | undefined>(value);\n\n // Adopt values that did not come from here — a form reset, or a parent that\n // overrides what the user picked.\n useEffect(() => {\n if (value === undefined || value === emitted.current) return;\n\n emitted.current = value;\n setColor(parseColor((value ?? '').toString()));\n }, [value]);\n\n const handleColorChange = useEvent((next: ColorValue) => {\n const text = formatColor(next, format);\n\n emitted.current = text;\n setColor(next);\n onChange?.(text);\n });\n\n const colorText = color ? formatColor(color, format) : null;\n\n const handleSwatchChange = useEvent((next: string | null) => {\n const parsed = next ? parseColor(next) : null;\n\n if (parsed) handleColorChange(parsed);\n });\n\n const handleOpenChange = useEvent((next: boolean) => {\n setOpen(next);\n onOpenChange?.(next);\n });\n\n // The swatch carries the color and the label spells it out. `children`\n // replaces that label, and `null` leaves the swatch on its own.\n const label =\n children !== undefined ? (\n children\n ) : color ? (\n formatColor(color, format)\n ) : (\n // Muted, so an unset picker never reads like one holding a value —\n // the same treatment `Picker` and `Select` give their placeholders.\n <Text.Placeholder>{placeholder}</Text.Placeholder>\n );\n\n const pickerField = (\n <ColorPickerWrapper styles={styles}>\n <DialogTrigger\n hideArrow\n type=\"popover\"\n mobileType=\"tray\"\n placement=\"bottom start\"\n isOpen={controlledOpen ?? isOpen}\n shouldFlip={shouldFlip}\n onOpenChange={handleOpenChange}\n >\n <ItemButton\n data-popover-trigger\n id={id}\n qa={qa || 'ColorPickerTrigger'}\n data-input-type=\"colorpicker\"\n type={type}\n theme={getValidationTheme(theme, { isInvalid, isValid })}\n size={size}\n icon={<ColorSwatch color={color} styles={swatchStyles} />}\n rightIcon={getValidationIcon({ isInvalid, isValid })}\n tooltip={triggerTooltip}\n isDisabled={isDisabled || isLoading || isReadOnly}\n autoFocus={autoFocus}\n aria-label={ariaLabel}\n mods={{ placeholder: !color }}\n styles={triggerStyles}\n >\n {label}\n </ItemButton>\n <Dialog aria-label=\"Color picker\" width=\"max-content\">\n {/* Marks the subtree so a nested swatch group drops its custom-color\n escape hatch, which is a picker and would recurse forever. */}\n <ColorPopoverContext.Provider value={true}>\n <ColorPanel\n color={color ?? FALLBACK_COLOR}\n space={space}\n isDisabled={isDisabled || isReadOnly}\n previewFormat={format}\n swatches={\n swatches?.length ? (\n <ColorSwatchGroup\n aria-label=\"Palette\"\n size=\"small\"\n colors={swatches}\n columns={swatchColumns}\n format={format}\n value={colorText}\n isDisabled={isDisabled || isReadOnly}\n onChange={handleSwatchChange}\n />\n ) : null\n }\n onChange={handleColorChange}\n onSpaceChange={setSpace}\n />\n </ColorPopoverContext.Provider>\n </Dialog>\n </DialogTrigger>\n </ColorPickerWrapper>\n );\n\n return wrapWithField(pickerField, ref as any, props);\n});\n\n/**\n * Drives the legacy `<Field>` wiring: `Picker` validates on change and passes\n * the value through untouched, where `Text` would default to `onBlur` and\n * coerce `null` into an empty string.\n */\n(ColorPicker as any).cubeInputType = 'Picker';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA0CA,MAAM,iBAA6B;CAAE,GAAG;CAAK,GAAG;CAAK,GAAG;CAAK;AAE7D,MAAM,qBAAqB,MAAM;CAC/B,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,UAAU;EACV,cAAc;EACd,YAAY;EACb;CACF,CAAC;;;;;;AAoDF,MAAa,cAAc,WAAW,SAAS,YAC7C,UACA,KACA;CACA,MAAM,QAAQ,cAAc,UAAU;EACpC,0BAA0B;EAC1B,mBAAmB,EAAE,OAAO,gBAAgB;GACnC;GACP;GACD;EACF,CAAC;CAEF,MAAM,EACJ,IACA,IACA,OACA,cACA,UACA,SAAS,OACT,eAAe,OACf,QAAQ,gBACR,aACA,cACA,YACA,UACA,cAAc,gBACd,MACA,OAAO,WACP,QAAQ,WACR,gBACA,UACA,eACA,eACA,cACA,YACA,YACA,WACA,WACA,SACA,WACA,cAAc,cACZ;CAEJ,MAAM,SAAS,cAAc,OAAO,aAAa;CAEjD,MAAM,CAAC,OAAO,YAAY,eACxB,YAAY,SAAS,gBAAgB,IAAI,UAAU,CAAC,CACrD;CACD,MAAM,CAAC,OAAO,YAAY,SAAqB,aAAa;CAC5D,MAAM,CAAC,QAAQ,WAAW,SAAS,eAAe,MAAM;;CAGxD,MAAM,UAAU,OAAkC,MAAM;AAIxD,iBAAgB;AACd,MAAI,UAAU,UAAa,UAAU,QAAQ,QAAS;AAEtD,UAAQ,UAAU;AAClB,WAAS,YAAY,SAAS,IAAI,UAAU,CAAC,CAAC;IAC7C,CAAC,MAAM,CAAC;CAEX,MAAM,oBAAoB,UAAU,SAAqB;EACvD,MAAM,OAAO,YAAY,MAAM,OAAO;AAEtC,UAAQ,UAAU;AAClB,WAAS,KAAK;AACd,aAAW,KAAK;GAChB;CAEF,MAAM,YAAY,QAAQ,YAAY,OAAO,OAAO,GAAG;CAEvD,MAAM,qBAAqB,UAAU,SAAwB;EAC3D,MAAM,SAAS,OAAO,WAAW,KAAK,GAAG;AAEzC,MAAI,OAAQ,mBAAkB,OAAO;GACrC;CAEF,MAAM,mBAAmB,UAAU,SAAkB;AACnD,UAAQ,KAAK;AACb,iBAAe,KAAK;GACpB;CAIF,MAAM,QACJ,aAAa,SACX,WACE,QACF,YAAY,OAAO,OAAO,GAI1B,oBAACA,MAAK,yBAAa,cAA+B;AAiEtD,QAAO,cA7DL,oBAAC;EAA2B;YAC1B,qBAAC;GACC;GACA,MAAK;GACL,YAAW;GACX,WAAU;GACV,QAAQ,kBAAkB;GACd;GACZ,cAAc;cAEd,oBAACC;IACC;IACI;IACJ,IAAI,MAAM;IACV,mBAAgB;IACV;IACN,OAAO,mBAAmB,OAAO;KAAE;KAAW;KAAS,CAAC;IAClD;IACN,MAAM,oBAAC;KAAmB;KAAO,QAAQ;MAAgB;IACzD,WAAW,kBAAkB;KAAE;KAAW;KAAS,CAAC;IACpD,SAAS;IACT,YAAY,cAAc,aAAa;IAC5B;IACX,cAAY;IACZ,MAAM,EAAE,aAAa,CAAC,OAAO;IAC7B,QAAQ;cAEP;KACU,EACb,oBAAC;IAAO,cAAW;IAAe,OAAM;cAGtC,oBAAC,oBAAoB;KAAS,OAAO;eACnC,oBAAC;MACC,OAAO,SAAS;MACT;MACP,YAAY,cAAc;MAC1B,eAAe;MACf,UACE,UAAU,SACR,oBAAC;OACC,cAAW;OACX,MAAK;OACL,QAAQ;OACR,SAAS;OACD;OACR,OAAO;OACP,YAAY,cAAc;OAC1B,UAAU;QACV,GACA;MAEN,UAAU;MACV,eAAe;OACf;MAC2B;KACxB;IACK;GACG,EAGW,KAAY,MAAM;EACpD;;;;;;AAOF,AAAC,YAAoB,gBAAgB"}
@@ -1,7 +1,8 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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";
5
+ import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
5
6
  import { getValidationMods } from "../../form/validation/resolve-validation-props.js";
6
7
  import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
7
8
  import { wrapWithField } from "../../form/wrapper.js";
@@ -77,17 +78,19 @@ function Swatch({ colorKey, label, state, isDisabled, size, styles, mods }) {
77
78
  "aria-label": label,
78
79
  isDisabled
79
80
  }, state, inputRef);
81
+ const { isFocused, focusProps } = useFocus$1({ isDisabled }, true);
80
82
  return /* @__PURE__ */ jsx(SwatchElement, {
81
83
  "data-size": size,
82
84
  mods: {
83
85
  selected: isSelected,
84
86
  disabled: isRadioDisabled,
87
+ focused: isFocused,
85
88
  ...mods
86
89
  },
87
90
  styles,
88
91
  style: { "--color-swatch-color": colorKey },
89
92
  children: /* @__PURE__ */ jsx(HiddenInput, {
90
- ...inputProps,
93
+ ...mergeProps$1(inputProps, focusProps),
91
94
  ref: inputRef,
92
95
  qa: "ColorSwatchInput",
93
96
  mods: {
@@ -152,9 +155,9 @@ const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(allProps, ref) {
152
155
  onChange: handleChange
153
156
  });
154
157
  const domRef = useFocusableRef(ref, useRef(null));
155
- const { radioGroupProps } = useRadioGroup({
158
+ const { radioGroupProps, labelProps } = useRadioGroup({
156
159
  ...props,
157
- "aria-label": ariaLabel ?? "Colors",
160
+ "aria-label": props.label ? void 0 : ariaLabel ?? "Colors",
158
161
  orientation: "horizontal"
159
162
  }, state);
160
163
  return wrapWithField(/* @__PURE__ */ jsxs(GroupElement, {
@@ -183,11 +186,15 @@ const ColorSwatchGroup = forwardRef(function ColorSwatchGroup(allProps, ref) {
183
186
  size: "small",
184
187
  value: isCustom ? currentValue ?? null : null,
185
188
  isDisabled,
189
+ isReadOnly: props.isReadOnly,
186
190
  triggerStyles: CUSTOM_TRIGGER_STYLES,
187
191
  onChange: publish,
188
192
  children: null
189
193
  }) : null]
190
- }), domRef, props);
194
+ }), domRef, {
195
+ ...props,
196
+ labelProps: mergeProps$1(props.labelProps, labelProps)
197
+ });
191
198
  });
192
199
  ColorSwatchGroup.cubeInputType = "Picker";
193
200
 
@@ -1 +1 @@
1
- {"version":3,"file":"ColorSwatchGroup.js","names":["mergeProps"],"sources":["../../../../src/components/fields/ColorSwatchGroup/ColorSwatchGroup.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport {\n BaseProps,\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 { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\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/** Sized to the swatch, so the trailing picker sits level with the row. */\nconst CUSTOM_TRIGGER_STYLES: Styles = {\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n padding: '.25x',\n radius: '1r',\n};\n\nconst GroupElement = tasty({\n qa: 'ColorSwatchGroup',\n styles: {\n display: 'grid',\n gap: '1x',\n placeItems: 'stretch',\n width: 'max-content',\n gridColumns: 'repeat($columns, 1fr)',\n\n '$swatch-size': {\n '': '3x',\n 'size=small': '2.5x',\n 'size=large': '4x',\n },\n },\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:\n '0 0 0 1bw #surface, 0 0 0 2bw #primary, inset 0 0 0 1bw #dark.15',\n },\n outline: {\n '': '1bw #primary-text.0',\n focused: '1bw #primary-text',\n },\n outlineOffset: 3,\n transition: 'theme',\n },\n});\n\nexport interface CubeColorSwatchGroupProps\n extends BaseProps,\n OuterStyleProps,\n FieldBaseProps {\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\n return (\n <SwatchElement\n data-size={size}\n mods={{\n selected: isSelected,\n disabled: isRadioDisabled,\n ...mods,\n }}\n styles={styles}\n style={{ '--color-swatch-color': colorKey }}\n >\n <HiddenInput\n {...inputProps}\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 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);\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 const handleChange = useEvent((nextKey: string) => {\n const parsed = 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 onChange: handleChange,\n });\n\n const domRef = useFocusableRef(ref as any, useRef(null));\n const { radioGroupProps } = useRadioGroup(\n {\n ...props,\n 'aria-label': ariaLabel ?? '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={getValidationMods({ isInvalid, isValid })}\n style={{\n '--columns': String(columns ?? swatches.length + (showCustom ? 1 : 0)),\n }}\n {...mergeProps(radioGroupProps, {})}\n >\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 {showCustom ? (\n <ColorPicker\n aria-label=\"Custom color\"\n qa=\"ColorSwatchGroupCustom\"\n format={format}\n size=\"small\"\n value={isCustom ? currentValue ?? null : null}\n isDisabled={isDisabled}\n triggerStyles={CUSTOM_TRIGGER_STYLES}\n onChange={publish}\n >\n {null}\n </ColorPicker>\n ) : null}\n </GroupElement>\n );\n\n return wrapWithField(group, domRef, props);\n});\n\n(ColorSwatchGroup as any).cubeInputType = 'Picker';\n"],"mappings":"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"}
1
+ {"version":3,"file":"ColorSwatchGroup.js","names":["useFocus","mergeProps"],"sources":["../../../../src/components/fields/ColorSwatchGroup/ColorSwatchGroup.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport {\n BaseProps,\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 { 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/** Sized to the swatch, so the trailing picker sits level with the row. */\nconst CUSTOM_TRIGGER_STYLES: Styles = {\n width: '$swatch-size $swatch-size',\n height: '$swatch-size $swatch-size',\n padding: '.25x',\n radius: '1r',\n};\n\nconst GroupElement = tasty({\n qa: 'ColorSwatchGroup',\n styles: {\n display: 'grid',\n gap: '1x',\n placeItems: 'stretch',\n width: 'max-content',\n gridColumns: 'repeat($columns, 1fr)',\n\n '$swatch-size': {\n '': '3x',\n 'size=small': '2.5x',\n 'size=large': '4x',\n },\n },\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:\n '0 0 0 1bw #surface, 0 0 0 2bw #primary, inset 0 0 0 1bw #dark.15',\n },\n outline: {\n '': '1bw #primary-text.0',\n focused: '1bw #primary-text',\n },\n outlineOffset: 3,\n transition: 'theme',\n },\n});\n\nexport interface CubeColorSwatchGroupProps\n extends BaseProps,\n OuterStyleProps,\n FieldBaseProps {\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({ isDisabled }, 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 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);\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 const handleChange = useEvent((nextKey: string) => {\n const parsed = 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 onChange: handleChange,\n });\n\n const domRef = useFocusableRef(ref as any, useRef(null));\n const { radioGroupProps, labelProps } = useRadioGroup(\n {\n ...props,\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 ? undefined : ariaLabel ?? '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={getValidationMods({ isInvalid, isValid })}\n style={{\n '--columns': String(columns ?? swatches.length + (showCustom ? 1 : 0)),\n }}\n {...mergeProps(radioGroupProps, {})}\n >\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 {showCustom ? (\n <ColorPicker\n aria-label=\"Custom color\"\n qa=\"ColorSwatchGroupCustom\"\n format={format}\n size=\"small\"\n value={isCustom ? currentValue ?? null : null}\n isDisabled={isDisabled}\n isReadOnly={props.isReadOnly}\n triggerStyles={CUSTOM_TRIGGER_STYLES}\n onChange={publish}\n >\n {null}\n </ColorPicker>\n ) : null}\n </GroupElement>\n );\n\n return wrapWithField(group, domRef, {\n ...props,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n});\n\n(ColorSwatchGroup as any).cubeInputType = 'Picker';\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { chain } from "../../../utils/react/chain.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  //#region src/components/fields/CommandTextArea/caretPosition.ts
3
3
  const MIRROR_STYLES = [
4
4
  "boxSizing",
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { getCaretRect } from "./caretPosition.js";
3
3
  import { useEffect, useLayoutEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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 { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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 { getValidationMods } from "../../form/validation/resolve-validation-props.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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 { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
3
3
  import { CalendarIcon } from "../../../icons/CalendarIcon.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { Space } from "../../layout/Space.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { DatePickerSegment } from "./DatePickerSegment.js";
4
4
  import { formatSegments } from "./utils.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  import { useRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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 { Space } from "../../layout/Space.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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 { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { _PeriodPicker } from "./PeriodPicker.js";
3
3
  import { forwardRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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 { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { _PeriodPicker } from "./PeriodPicker.js";
3
3
  import { forwardRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | 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 { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { _PeriodPicker } from "./PeriodPicker.js";
3
3
  import { forwardRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { _PeriodPicker } from "./PeriodPicker.js";
3
3
  import { forwardRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { parseAbsolute } from "@internationalized/date";
3
3
 
4
4
  //#region src/components/fields/DatePicker/parseDate.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { CalendarDate, startOfMonth, startOfWeek, startOfYear, toCalendarDate } from "@internationalized/date";
3
3
 
4
4
  //#region src/components/fields/DatePicker/period.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  //#region src/components/fields/DatePicker/props.ts
3
3
  const DEFAULT_DATE_PROPS = {
4
4
  granularity: "day",
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { useImperativeHandle, useRef } from "react";
3
3
  import { createDOMRef } from "@react-spectrum/utils";
4
4
  import { createFocusManager } from "@react-aria/focus";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { _Text } from "../../content/Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { _FileInput } from "../FileInput/FileInput.js";
3
3
  import { TextInput } from "../TextInput/TextInput.js";
4
4
  import { _NumberInput } from "../NumberInput/NumberInput.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { DraggableCollection } from "../../shared/DraggableCollection.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
4
4
  import { Portal } from "../../portal/Portal.js";
@@ -1,4 +1,3 @@
1
1
 
2
2
  import "./ListBoxPopover.js";
3
- import "./useCompositeFocus.js";
4
3
  import { ListStateLike, TextFilterFn } from "./listNavigation.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  //#region src/components/fields/ListBoxPopover/listNavigation.ts
3
3
  /**
4
4
  * Walks a collection (possibly nested under sections) and collects the keys of
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { useCallback, useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/components/fields/ListBoxPopover/useCompositeFocus.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useFieldProps } from "../../form/Form/use-field/use-field-props.js";
4
4
  import { castNullableNumberValue } from "../../../utils/react/nullableValue.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-77d007b | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b07ea9a | Cube Dev Team */
2
2
  import { useI18n } from "../../../i18n/useI18n.js";
3
3
  import { DirectionIcon } from "../../../icons/DirectionIcon.js";
4
4
  import { Button } from "../../actions/index.js";