@cube-dev/ui-kit 0.204.0 → 0.205.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 (607) hide show
  1. package/dist/CHANGELOG.md +16 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuItem.js +1 -1
  32. package/dist/components/actions/Menu/MenuSection.js +1 -1
  33. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  36. package/dist/components/actions/Menu/context.js +1 -1
  37. package/dist/components/actions/Menu/styled.js +1 -1
  38. package/dist/components/actions/actions-run.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +1 -1
  42. package/dist/components/actions/use-context-menu.js +1 -1
  43. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  44. package/dist/components/content/Alert/Alert.js +1 -1
  45. package/dist/components/content/Alert/use-alert.js +1 -1
  46. package/dist/components/content/Avatar/Avatar.js +1 -1
  47. package/dist/components/content/Badge/Badge.js +1 -1
  48. package/dist/components/content/Card/Card.js +1 -1
  49. package/dist/components/content/Content.js +1 -1
  50. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  51. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  53. package/dist/components/content/Divider/Divider.js +1 -1
  54. package/dist/components/content/Footer.js +1 -1
  55. package/dist/components/content/Header.js +1 -1
  56. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  57. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  58. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  59. package/dist/components/content/Item/Item.js +1 -1
  60. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  61. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  62. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  63. package/dist/components/content/Layout/GridLayout.js +1 -1
  64. package/dist/components/content/Layout/Layout.js +1 -1
  65. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  66. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  67. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  68. package/dist/components/content/Layout/LayoutContent.js +1 -1
  69. package/dist/components/content/Layout/LayoutContext.js +1 -1
  70. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  71. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  72. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  73. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutPane.js +1 -1
  75. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  76. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  77. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  78. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  79. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  80. package/dist/components/content/Layout/index.js +1 -1
  81. package/dist/components/content/Layout/utils.js +1 -1
  82. package/dist/components/content/Paragraph.js +1 -1
  83. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  84. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  85. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  86. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  87. package/dist/components/content/Result/Result.js +1 -1
  88. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  89. package/dist/components/content/Tag/Tag.js +1 -1
  90. package/dist/components/content/Text.js +1 -1
  91. package/dist/components/content/TextItem/TextItem.js +1 -1
  92. package/dist/components/content/Title.js +1 -1
  93. package/dist/components/content/Tree/Tree.js +1 -1
  94. package/dist/components/content/Tree/TreeNode.js +1 -1
  95. package/dist/components/content/Tree/checked-keys.js +1 -1
  96. package/dist/components/content/Tree/rowId.js +1 -1
  97. package/dist/components/content/Tree/styled.js +1 -1
  98. package/dist/components/content/Tree/tree-index.js +1 -1
  99. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  100. package/dist/components/content/Tree/use-load-data.js +1 -1
  101. package/dist/components/content/highlightText.js +1 -1
  102. package/dist/components/content/use-auto-tooltip.js +1 -1
  103. package/dist/components/data/DataTable/DataTable.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  105. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  106. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  109. package/dist/components/data/ItemTable/item-table-sections.js +1 -1
  110. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  111. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  112. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  113. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  114. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  115. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  116. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  117. package/dist/components/data/TableBase/RowCollection.js +1 -1
  118. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  119. package/dist/components/data/TableBase/TableRow.js +1 -1
  120. package/dist/components/data/TableBase/TableRowLink.js +1 -1
  121. package/dist/components/data/TableBase/TableView.js +1 -1
  122. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  123. package/dist/components/data/TableBase/column-header.js +1 -1
  124. package/dist/components/data/TableBase/column-menu.js +1 -1
  125. package/dist/components/data/TableBase/column-styles.js +1 -1
  126. package/dist/components/data/TableBase/column-tint.js +1 -1
  127. package/dist/components/data/TableBase/row-menu.js +1 -1
  128. package/dist/components/data/TableBase/styled.js +1 -1
  129. package/dist/components/data/TableBase/table-body-sections.js +1 -1
  130. package/dist/components/data/TableBase/table-tree.js +1 -1
  131. package/dist/components/data/TableBase/types.js +1 -1
  132. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  133. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  134. package/dist/components/data/TableBase/use-column-order.js +1 -1
  135. package/dist/components/data/TableBase/use-column-window.js +1 -1
  136. package/dist/components/data/TableBase/use-container-width.js +1 -1
  137. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  138. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  139. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  140. package/dist/components/data/TableBase/use-table-search.js +1 -1
  141. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  142. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  143. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  144. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  145. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  146. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  147. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  148. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  149. package/dist/components/fields/Checkbox/context.js +1 -1
  150. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  151. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  152. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  153. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  154. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  155. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  156. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  157. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  158. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  159. package/dist/components/fields/DatePicker/CalendarPopover.js +281 -0
  160. package/dist/components/fields/DatePicker/CalendarPopover.js.map +1 -0
  161. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  162. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  163. package/dist/components/fields/DatePicker/DatePicker.js +26 -24
  164. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  165. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  166. package/dist/components/fields/DatePicker/DatePickerElement.js +4 -2
  167. package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
  168. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  169. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  170. package/dist/components/fields/DatePicker/DateRangePicker.d.ts +10 -0
  171. package/dist/components/fields/DatePicker/DateRangePicker.js +143 -65
  172. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  173. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +172 -165
  174. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  175. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  176. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  177. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  178. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  179. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  181. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  182. package/dist/components/fields/DatePicker/period.js +1 -1
  183. package/dist/components/fields/DatePicker/props.js +1 -1
  184. package/dist/components/fields/DatePicker/utils.js +1 -1
  185. package/dist/components/fields/FileInput/FileInput.js +1 -1
  186. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  187. package/dist/components/fields/FilterListBox/styled.js +1 -1
  188. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  189. package/dist/components/fields/FilterPicker/FilterTree.js +1 -1
  190. package/dist/components/fields/Input/Input.js +1 -1
  191. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  192. package/dist/components/fields/ListBox/ListBox.js +1 -1
  193. package/dist/components/fields/ListBox/optionId.js +1 -1
  194. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  195. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  196. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  197. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  198. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  199. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  200. package/dist/components/fields/Picker/Picker.js +1 -1
  201. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  202. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  203. package/dist/components/fields/RadioGroup/context.js +1 -1
  204. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  205. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  206. package/dist/components/fields/Select/Select.js +1 -1
  207. package/dist/components/fields/Slider/Gradation.js +1 -1
  208. package/dist/components/fields/Slider/HueSlider.js +1 -1
  209. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  210. package/dist/components/fields/Slider/Slider.js +1 -1
  211. package/dist/components/fields/Slider/SliderBase.js +1 -1
  212. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  213. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  214. package/dist/components/fields/Slider/elements.js +1 -1
  215. package/dist/components/fields/Slider/index.js +1 -1
  216. package/dist/components/fields/Switch/Switch.js +1 -1
  217. package/dist/components/fields/TagInput/TagInput.js +1 -1
  218. package/dist/components/fields/TagInput/TagList.js +1 -1
  219. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  220. package/dist/components/fields/TagInput/useTagError.js +1 -1
  221. package/dist/components/fields/TextArea/TextArea.js +1 -1
  222. package/dist/components/fields/TextInput/TextInput.js +1 -1
  223. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  224. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  225. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  226. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  227. package/dist/components/fields/TriggerActions.js +1 -1
  228. package/dist/components/fields/color/ColorPanel.js +1 -1
  229. package/dist/components/fields/color/channels.js +1 -1
  230. package/dist/components/fields/color/color.js +1 -1
  231. package/dist/components/fields/color/context.js +1 -1
  232. package/dist/components/fields/option-origin-press.js +1 -1
  233. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  234. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  235. package/dist/components/form/Form/Field.js +1 -1
  236. package/dist/components/form/Form/Form.js +1 -1
  237. package/dist/components/form/Form/ModernFormRoot.js +198 -174
  238. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  239. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  240. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  241. package/dist/components/form/Form/SubmitError.js +1 -1
  242. package/dist/components/form/Form/backend.js +1 -1
  243. package/dist/components/form/Form/index.js +1 -1
  244. package/dist/components/form/Form/modern/actions.js +1 -1
  245. package/dist/components/form/Form/modern/context.js +1 -1
  246. package/dist/components/form/Form/modern/controller.js +1 -1
  247. package/dist/components/form/Form/modern/field-binding.js +1 -1
  248. package/dist/components/form/Form/modern/field.js +1 -1
  249. package/dist/components/form/Form/modern/react.js +1 -1
  250. package/dist/components/form/Form/modern/store.js +18 -3
  251. package/dist/components/form/Form/modern/store.js.map +1 -1
  252. package/dist/components/form/Form/modern/validation.js +1 -1
  253. package/dist/components/form/Form/modern/values.js +1 -1
  254. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  255. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  256. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  257. package/dist/components/form/Form/use-field/use-field.js +1 -1
  258. package/dist/components/form/Form/use-form.js +1 -1
  259. package/dist/components/form/Form/validation.js +1 -1
  260. package/dist/components/form/Label.js +1 -1
  261. package/dist/components/form/field-chrome.js +1 -1
  262. package/dist/components/form/field-layout.js +1 -1
  263. package/dist/components/form/legacy-tooltip.js +1 -1
  264. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  265. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  266. package/dist/components/form/validation/use-validation-props.js +1 -1
  267. package/dist/components/form/wrapper.js +1 -1
  268. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  269. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  270. package/dist/components/layout/Flex.js +1 -1
  271. package/dist/components/layout/Flow.js +1 -1
  272. package/dist/components/layout/Grid.js +1 -1
  273. package/dist/components/layout/Panel.js +1 -1
  274. package/dist/components/layout/Prefix.js +1 -1
  275. package/dist/components/layout/ResizablePanel.js +1 -1
  276. package/dist/components/layout/Space.js +1 -1
  277. package/dist/components/layout/Suffix.js +1 -1
  278. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  279. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  280. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  281. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  282. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  283. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  284. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  285. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  286. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  287. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  288. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  289. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  290. package/dist/components/navigation/Tabs/styled.js +1 -1
  291. package/dist/components/navigation/Tabs/types.js +1 -1
  292. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  293. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  294. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  295. package/dist/components/other/Calendar/Calendar.js +1 -1
  296. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  297. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  298. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  299. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  300. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  301. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  302. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  303. package/dist/components/other/Calendar/styled.js +1 -1
  304. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  305. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  306. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  307. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  308. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  309. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  310. package/dist/components/overlays/Dialog/DialogContainer.d.ts +3 -3
  311. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  312. package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
  313. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  314. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +4 -4
  315. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  316. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  317. package/dist/components/overlays/Dialog/ModernDialogForm.js +101 -123
  318. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
  319. package/dist/components/overlays/Dialog/context.js +1 -1
  320. package/dist/components/overlays/Dialog/context.js.map +1 -1
  321. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  322. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  323. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  324. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  325. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +60 -51
  326. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js.map +1 -1
  327. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  328. package/dist/components/overlays/Modal/Modal.js +1 -1
  329. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  330. package/dist/components/overlays/Modal/Overlay.js +1 -1
  331. package/dist/components/overlays/Modal/Popover.js +1 -1
  332. package/dist/components/overlays/Modal/Tray.js +1 -1
  333. package/dist/components/overlays/Modal/Underlay.js +1 -1
  334. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  335. package/dist/components/overlays/Notifications/Notification.js +1 -1
  336. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  337. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  338. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  339. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  340. package/dist/components/overlays/Notifications/OverlayContainer.js +6 -3
  341. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  342. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  343. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  344. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  345. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  346. package/dist/components/overlays/Notifications/index.js +1 -1
  347. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  348. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  349. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  350. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  351. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  352. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  353. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  354. package/dist/components/overlays/Toast/index.js +1 -1
  355. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  356. package/dist/components/overlays/Toast/useToast.js +1 -1
  357. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  358. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  359. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  360. package/dist/components/overlays/Tooltip/context.js +1 -1
  361. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  362. package/dist/components/portal/Portal.js +1 -1
  363. package/dist/components/portal/PortalProvider.js +1 -1
  364. package/dist/components/portal/usePortal.js +1 -1
  365. package/dist/components/shared/DraggableCollection.js +1 -1
  366. package/dist/components/shared/InvalidIcon.js +1 -1
  367. package/dist/components/shared/ValidIcon.js +1 -1
  368. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  369. package/dist/components/status/Spin/Cube.js +1 -1
  370. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  371. package/dist/components/status/Spin/Spin.js +1 -1
  372. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  373. package/dist/data/item-themes.js +1 -1
  374. package/dist/data/themes.js +1 -1
  375. package/dist/eslint-plugin/defaults.generated.js +1 -1
  376. package/dist/eslint-plugin/index.js +1 -1
  377. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  378. package/dist/i18n/I18nProvider.js +1 -1
  379. package/dist/i18n/createFormatter.js +1 -1
  380. package/dist/i18n/index.js +1 -1
  381. package/dist/i18n/instance.js +1 -1
  382. package/dist/i18n/locales/de-DE/uikit.js +3 -2
  383. package/dist/i18n/locales/en-US/uikit.js +3 -2
  384. package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -0
  385. package/dist/i18n/locales/es-ES/uikit.js +3 -2
  386. package/dist/i18n/locales/es-MX/uikit.js +3 -2
  387. package/dist/i18n/locales/fr-FR/uikit.js +3 -2
  388. package/dist/i18n/locales/it-IT/uikit.js +3 -2
  389. package/dist/i18n/locales/ja-JP/uikit.js +3 -2
  390. package/dist/i18n/locales/nb-NO/uikit.js +3 -2
  391. package/dist/i18n/locales/pt-BR/uikit.js +3 -2
  392. package/dist/i18n/locales/pt-PT/uikit.js +3 -2
  393. package/dist/i18n/locales/sv-SE/uikit.js +3 -2
  394. package/dist/i18n/locales/vi-VN/uikit.js +3 -2
  395. package/dist/i18n/locales.js +1 -1
  396. package/dist/i18n/namespace.js +1 -1
  397. package/dist/i18n/useFormatter.js +1 -1
  398. package/dist/i18n/useI18n.js +1 -1
  399. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  400. package/dist/icons/AdjustmentsIcon.js +1 -1
  401. package/dist/icons/AiIcon.js +1 -1
  402. package/dist/icons/AreaChartIcon.js +1 -1
  403. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  404. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  405. package/dist/icons/BackwardIcon.js +1 -1
  406. package/dist/icons/BarChartIcon.js +1 -1
  407. package/dist/icons/BellFilledIcon.js +1 -1
  408. package/dist/icons/BellIcon.js +1 -1
  409. package/dist/icons/BooleanIcon.js +1 -1
  410. package/dist/icons/CalendarEditIcon.js +1 -1
  411. package/dist/icons/CalendarIcon.js +1 -1
  412. package/dist/icons/CaretDownIcon.js +1 -1
  413. package/dist/icons/CaretUpIcon.js +1 -1
  414. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  415. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  416. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  417. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  418. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  419. package/dist/icons/ChartBarLineIcon.js +1 -1
  420. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  421. package/dist/icons/ChartBarStackedIcon.js +1 -1
  422. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  423. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  424. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  425. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  426. package/dist/icons/ChartBubbleIcon.js +1 -1
  427. package/dist/icons/ChartDonut2Icon.js +1 -1
  428. package/dist/icons/ChartFunnelIcon.js +1 -1
  429. package/dist/icons/ChartHeatmapIcon.js +1 -1
  430. package/dist/icons/ChartKPIIcon.js +1 -1
  431. package/dist/icons/ChartPie2Icon.js +1 -1
  432. package/dist/icons/ChartScatterIcon.js +1 -1
  433. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  434. package/dist/icons/CheckCircleIcon.js +1 -1
  435. package/dist/icons/CheckIcon.js +1 -1
  436. package/dist/icons/CircleFilledIcon.js +1 -1
  437. package/dist/icons/ClearIcon.js +1 -1
  438. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  439. package/dist/icons/CloseCircleIcon.js +1 -1
  440. package/dist/icons/CloseIcon.js +1 -1
  441. package/dist/icons/CodeIcon.js +1 -1
  442. package/dist/icons/ColumnTotalIcon.js +1 -1
  443. package/dist/icons/CopyIcon.js +1 -1
  444. package/dist/icons/CountIcon.js +1 -1
  445. package/dist/icons/CubeIcon.js +1 -1
  446. package/dist/icons/CubePauseIcon.js +1 -1
  447. package/dist/icons/CubePlayIcon.js +1 -1
  448. package/dist/icons/CurrencyDollarIcon.js +1 -1
  449. package/dist/icons/DangerIcon.js +1 -1
  450. package/dist/icons/DashboardIcon.js +1 -1
  451. package/dist/icons/DatabaseIcon.js +1 -1
  452. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  453. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  454. package/dist/icons/DirectionIcon.js +1 -1
  455. package/dist/icons/DonutIcon.js +1 -1
  456. package/dist/icons/DownIcon.js +1 -1
  457. package/dist/icons/EditIcon.js +1 -1
  458. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  459. package/dist/icons/ExclamationCircleIcon.js +1 -1
  460. package/dist/icons/ExclamationIcon.js +1 -1
  461. package/dist/icons/EyeIcon.js +1 -1
  462. package/dist/icons/EyeInvisibleIcon.js +1 -1
  463. package/dist/icons/FilterIcon.js +1 -1
  464. package/dist/icons/FolderFilledIcon.js +1 -1
  465. package/dist/icons/FolderIcon.js +1 -1
  466. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  467. package/dist/icons/FolderOpenIcon.js +1 -1
  468. package/dist/icons/ForwardIcon.js +1 -1
  469. package/dist/icons/GripVerticalIcon.js +1 -1
  470. package/dist/icons/HierarchyIcon.js +1 -1
  471. package/dist/icons/HierarchyOpenIcon.js +1 -1
  472. package/dist/icons/Icon.js +1 -1
  473. package/dist/icons/InfoCircleIcon.js +1 -1
  474. package/dist/icons/InfoIcon.js +1 -1
  475. package/dist/icons/KeyIcon.js +1 -1
  476. package/dist/icons/LeftIcon.js +1 -1
  477. package/dist/icons/LineChartIcon.js +1 -1
  478. package/dist/icons/LoadingIcon.js +1 -1
  479. package/dist/icons/LockFilledIcon.js +1 -1
  480. package/dist/icons/LockIcon.js +1 -1
  481. package/dist/icons/MoreIcon.js +1 -1
  482. package/dist/icons/NotAllowedIcon.js +1 -1
  483. package/dist/icons/Number123Icon.js +1 -1
  484. package/dist/icons/NumberIcon.js +1 -1
  485. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  486. package/dist/icons/PauseCircleIcon.js +1 -1
  487. package/dist/icons/PauseIcon.js +1 -1
  488. package/dist/icons/PercentageIcon.js +1 -1
  489. package/dist/icons/PieChartIcon.js +1 -1
  490. package/dist/icons/PipetteIcon.js +1 -1
  491. package/dist/icons/PlayCircleIcon.js +1 -1
  492. package/dist/icons/PlayIcon.js +1 -1
  493. package/dist/icons/PlusIcon.js +1 -1
  494. package/dist/icons/ProgressBarIcon.js +1 -1
  495. package/dist/icons/ReloadIcon.js +1 -1
  496. package/dist/icons/ReportIcon.js +1 -1
  497. package/dist/icons/ReturnIcon.js +1 -1
  498. package/dist/icons/RightIcon.js +1 -1
  499. package/dist/icons/RowTotalsIcon.js +1 -1
  500. package/dist/icons/SchemeIcon.js +1 -1
  501. package/dist/icons/SearchIcon.js +1 -1
  502. package/dist/icons/SemanticQueryIcon.js +1 -1
  503. package/dist/icons/SettingsIcon.js +1 -1
  504. package/dist/icons/ShieldFilledIcon.js +1 -1
  505. package/dist/icons/ShieldIcon.js +1 -1
  506. package/dist/icons/SlashIcon.js +1 -1
  507. package/dist/icons/SparklesIcon.js +1 -1
  508. package/dist/icons/SqlIcon.js +1 -1
  509. package/dist/icons/StatsIcon.js +1 -1
  510. package/dist/icons/StopIcon.js +1 -1
  511. package/dist/icons/StringIcon.js +1 -1
  512. package/dist/icons/SubtotalsIcon.js +1 -1
  513. package/dist/icons/SwitchIcon.js +1 -1
  514. package/dist/icons/TableIcon.js +1 -1
  515. package/dist/icons/ThumbsDownIcon.js +1 -1
  516. package/dist/icons/ThumbsUpIcon.js +1 -1
  517. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  518. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  519. package/dist/icons/ThunderboltIcon.js +1 -1
  520. package/dist/icons/TimeIcon.js +1 -1
  521. package/dist/icons/TrashIcon.js +1 -1
  522. package/dist/icons/UnlockIcon.js +1 -1
  523. package/dist/icons/UpIcon.js +1 -1
  524. package/dist/icons/UserGroupIcon.js +1 -1
  525. package/dist/icons/UserIcon.js +1 -1
  526. package/dist/icons/UserLockIcon.js +1 -1
  527. package/dist/icons/ViewIcon.js +1 -1
  528. package/dist/icons/WarningFilledIcon.js +1 -1
  529. package/dist/icons/WarningIcon.js +1 -1
  530. package/dist/icons/wrap-icon.js +1 -1
  531. package/dist/index.js +1 -1
  532. package/dist/probe/canonicalize.js +1 -1
  533. package/dist/probe/css.js +1 -1
  534. package/dist/probe/index.js +1 -1
  535. package/dist/provider.js +1 -1
  536. package/dist/providers/TrackingProvider.js +1 -1
  537. package/dist/providers/navigation-url.js +1 -1
  538. package/dist/providers/navigationAdapter.default.js +1 -1
  539. package/dist/providers/use-navigation.js +1 -1
  540. package/dist/tokens/all-tokens.js +1 -1
  541. package/dist/tokens/base.js +1 -1
  542. package/dist/tokens/color-seed.js +1 -1
  543. package/dist/tokens/color-theme.js +1 -1
  544. package/dist/tokens/colors.js +1 -1
  545. package/dist/tokens/layout.js +1 -1
  546. package/dist/tokens/lazy-styles.js +1 -1
  547. package/dist/tokens/legacy-color.js +1 -1
  548. package/dist/tokens/palette-config.js +1 -1
  549. package/dist/tokens/palette.js +1 -1
  550. package/dist/tokens/resolve.js +1 -1
  551. package/dist/tokens/shadows.js +1 -1
  552. package/dist/tokens/sizes.js +1 -1
  553. package/dist/tokens/spacing.js +1 -1
  554. package/dist/tokens/typography.js +1 -1
  555. package/dist/utils/ResizeSensor.js +1 -1
  556. package/dist/utils/colors.js +1 -1
  557. package/dist/utils/dotize.js +1 -1
  558. package/dist/utils/is-dev-env.js +1 -1
  559. package/dist/utils/modules.js +1 -1
  560. package/dist/utils/promise.js +1 -1
  561. package/dist/utils/raf.js +1 -1
  562. package/dist/utils/random.js +1 -1
  563. package/dist/utils/range.js +1 -1
  564. package/dist/utils/react/RenderCache.js +1 -1
  565. package/dist/utils/react/Slots.js +1 -1
  566. package/dist/utils/react/chain.js +1 -1
  567. package/dist/utils/react/disabledProps.js +1 -1
  568. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  569. package/dist/utils/react/index.js +1 -1
  570. package/dist/utils/react/interactions.js +1 -1
  571. package/dist/utils/react/isTextOnly.js +1 -1
  572. package/dist/utils/react/mapProps.js +1 -1
  573. package/dist/utils/react/mergeProps.js +1 -1
  574. package/dist/utils/react/nullableValue.js +1 -1
  575. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  576. package/dist/utils/react/programmaticFocus.js +1 -1
  577. package/dist/utils/react/resolveIcon.js +1 -1
  578. package/dist/utils/react/sharedStore.js +1 -1
  579. package/dist/utils/react/useBufferedValue.js +1 -1
  580. package/dist/utils/react/useCombinedRefs.js +1 -1
  581. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  582. package/dist/utils/react/useEventBus.js +1 -1
  583. package/dist/utils/react/useId.js +1 -1
  584. package/dist/utils/react/useIsDarwin.js +1 -1
  585. package/dist/utils/react/useKeySymbols.js +1 -1
  586. package/dist/utils/react/useLayoutEffect.js +1 -1
  587. package/dist/utils/react/useLocalStorage.js +1 -1
  588. package/dist/utils/react/useMergeStyles.js +1 -1
  589. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  590. package/dist/utils/react/usePopoverSync.js +1 -1
  591. package/dist/utils/react/useQaProps.js +1 -1
  592. package/dist/utils/react/useScheme.js +1 -1
  593. package/dist/utils/react/useViewportSize.js +1 -1
  594. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  595. package/dist/utils/selection.js +1 -1
  596. package/dist/utils/styles.js +1 -1
  597. package/dist/utils/tree.js +1 -1
  598. package/dist/utils/warnings.js +1 -1
  599. package/dist/version.js +2 -2
  600. package/docs/components/form/Form.md +2 -0
  601. package/docs/components/form/ModernForm.md +5 -1
  602. package/docs/components/overlays/DialogContainer.md +1 -1
  603. package/docs/components/overlays/DialogTrigger.md +2 -2
  604. package/docs/components/overlays/Notifications.md +17 -0
  605. package/docs/components/overlays/Toast.md +1 -1
  606. package/docs/modern-form-guide.md +5 -1
  607. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.205.0 | Cube Dev Team */
2
+ import { mergeStyleLayers } from "../../../utils/styles.js";
2
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
4
  import { useI18n } from "../../../i18n/useI18n.js";
4
5
  import { Space } from "../../layout/Space.js";
@@ -14,10 +15,11 @@ import { TimeInput as _TimeInput } from "./TimeInput.js";
14
15
  import { DatePickerButton } from "./DatePickerButton.js";
15
16
  import { DatePickerInput } from "./DatePickerInput.js";
16
17
  import { RangeCalendar as _RangeCalendar } from "../../other/Calendar/RangeCalendar.js";
18
+ import { CalendarPopover, useFieldCalendar } from "./CalendarPopover.js";
17
19
  import { c } from "react/compiler-runtime";
18
20
  import { tasty } from "@tenphi/tasty";
19
- import { forwardRef, useRef } from "react";
20
- import { jsx, jsxs } from "react/jsx-runtime";
21
+ import { forwardRef, useId, useRef, useState } from "react";
22
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
21
23
  import { useDateRangePicker, useFocusRing } from "react-aria";
22
24
  import { useDateRangePickerState } from "react-stately";
23
25
  //#region src/components/fields/DatePicker/DateRangePicker.tsx
@@ -27,8 +29,25 @@ const DateRangeDash = tasty({
27
29
  children: "–",
28
30
  styles: { padding: "0 .5x" }
29
31
  });
32
+ const DateRangeRow = tasty({
33
+ role: "presentation",
34
+ styles: {
35
+ display: "flex",
36
+ placeItems: "center start",
37
+ height: "($size - 2bw)"
38
+ }
39
+ });
40
+ const WRAPPER_STYLES = {
41
+ minWidth: "min-content",
42
+ height: "min $size",
43
+ Suffix: { height: "($size - 2bw)" }
44
+ };
45
+ const INPUT_STYLES = {
46
+ flow: "row wrap",
47
+ height: "auto"
48
+ };
30
49
  function DateRangePicker(rawProps, ref) {
31
- const $ = c(15);
50
+ const $ = c(11);
32
51
  const { t } = useI18n();
33
52
  let t0;
34
53
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
@@ -37,13 +56,21 @@ function DateRangePicker(rawProps, ref) {
37
56
  } else t0 = $[0];
38
57
  let props = useFieldProps(rawProps, t0);
39
58
  props = Object.assign({}, DEFAULT_DATE_PROPS, props);
40
- const fieldLayout = splitFieldLayout(props, { overStyles: props.wrapperStyles });
59
+ const fieldLayout = splitFieldLayout(props, {
60
+ defaultStyles: WRAPPER_STYLES,
61
+ overStyles: props.wrapperStyles
62
+ });
41
63
  const styles = fieldLayout.styles;
42
- const { qa, size, shouldFlip, targetRef: targetRefProp, placement: t1, placeholderValue, isDisabled, isInvalid, isValid, useLocale: useLocaleProp, autoFocus } = props;
64
+ const { qa, size, shouldFlip, targetRef: targetRefProp, placement: t1, placeholderValue, isDisabled, isInvalid, isValid, useLocale: useLocaleProp, autoFocus, hideTrigger } = props;
43
65
  const placement = t1 === void 0 ? "bottom right" : t1;
44
66
  const targetRef = useRef(null);
45
67
  let state = useDateRangePickerState({
46
68
  ...props,
69
+ ...hideTrigger && {
70
+ isOpen: false,
71
+ defaultOpen: false,
72
+ onOpenChange: void 0
73
+ },
47
74
  shouldCloseOnSelect: () => !state.hasTime
48
75
  });
49
76
  const { isOpen, setOpen } = state;
@@ -59,32 +86,37 @@ function DateRangePicker(rawProps, ref) {
59
86
  });
60
87
  const domRef = useRef(null);
61
88
  useFocusManagerRef(ref, domRef);
62
- const { groupProps, labelProps, startFieldProps, endFieldProps, buttonProps, dialogProps, calendarProps } = useDateRangePicker(props, state, targetRef);
89
+ const { groupProps, labelProps, startFieldProps, endFieldProps, buttonProps, dialogProps, calendarProps } = useDateRangePicker(props, state, hideTrigger ? domRef : targetRef);
90
+ const [typedDate, setTypedDate] = useState(null);
91
+ const hintId = useId();
92
+ const { isOpen: isCalendarOpen, shouldFocusCalendar, close: closeCalendar, fieldProps: calendarFieldProps, popoverRef, calendarRef } = useFieldCalendar({
93
+ fieldRef: domRef,
94
+ isDisabled,
95
+ isReadOnly: props.isReadOnly,
96
+ isOpen: props.isOpen,
97
+ defaultOpen: props.defaultOpen,
98
+ onOpenChange(open) {
99
+ if (!open) {
100
+ setTypedDate(null);
101
+ setOpen(false);
102
+ }
103
+ props.onOpenChange?.(open);
104
+ }
105
+ });
106
+ const withCalendarFromField = (fieldProps) => hideTrigger ? {
107
+ ...fieldProps,
108
+ "aria-describedby": [fieldProps["aria-describedby"], hintId].filter(Boolean).join(" "),
109
+ onChange(value) {
110
+ fieldProps.onChange?.(value);
111
+ if (value) setTypedDate(value);
112
+ }
113
+ } : fieldProps;
63
114
  const placeholder = placeholderValue ?? void 0;
64
115
  const timePlaceholder = placeholder && "hour" in placeholder ? placeholder : void 0;
65
116
  const timeMinValue = props.minValue && "hour" in props.minValue ? props.minValue : void 0;
66
117
  const timeMaxValue = props.maxValue && "hour" in props.maxValue ? props.maxValue : void 0;
67
118
  const timeGranularity = state.granularity === "hour" || state.granularity === "minute" || state.granularity === "second" ? state.granularity : null;
68
- const showTimeField = !!timeGranularity;
69
- const t2 = props.isReadOnly;
70
- let t3;
71
- if ($[1] !== buttonProps || $[2] !== focusPropsButton) {
72
- t3 = mergeProps$1(buttonProps, focusPropsButton);
73
- $[1] = buttonProps;
74
- $[2] = focusPropsButton;
75
- $[3] = t3;
76
- } else t3 = $[3];
77
- let t4;
78
- if ($[4] !== calendarProps || $[5] !== props) {
79
- t4 = /* @__PURE__ */ jsx(_RangeCalendar, {
80
- ...calendarProps,
81
- isDateUnavailable: props.isDateUnavailable
82
- });
83
- $[4] = calendarProps;
84
- $[5] = props;
85
- $[6] = t4;
86
- } else t4 = $[6];
87
- const t5 = showTimeField && /* @__PURE__ */ jsxs(Space, { children: [/* @__PURE__ */ jsx(_TimeInput, {
119
+ const timeFields = !!timeGranularity && /* @__PURE__ */ jsxs(Space, { children: [/* @__PURE__ */ jsx(_TimeInput, {
88
120
  label: t("datePicker.startTime", "Start time"),
89
121
  value: state.timeRange?.start || null,
90
122
  placeholderValue: timePlaceholder,
@@ -105,50 +137,57 @@ function DateRangePicker(rawProps, ref) {
105
137
  hideTimeZone: props.hideTimeZone,
106
138
  onChange: (v_0) => state.setTime("end", v_0)
107
139
  })] });
140
+ const t2 = mergeStyleLayers(INPUT_STYLES, props.inputStyles);
141
+ const t3 = props.isReadOnly;
142
+ let t4;
143
+ if ($[1] !== startFieldProps || $[2] !== withCalendarFromField) {
144
+ t4 = withCalendarFromField(startFieldProps);
145
+ $[1] = startFieldProps;
146
+ $[2] = withCalendarFromField;
147
+ $[3] = t4;
148
+ } else t4 = $[3];
149
+ let t5;
150
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
151
+ t5 = /* @__PURE__ */ jsx(DateRangeDash, {});
152
+ $[4] = t5;
153
+ } else t5 = $[4];
108
154
  let t6;
109
- if ($[7] !== dialogProps || $[8] !== t4 || $[9] !== t5) {
110
- t6 = /* @__PURE__ */ jsxs(Dialog, {
111
- ...dialogProps,
112
- width: "max-content",
113
- overflow: "auto",
114
- children: [t4, t5]
115
- });
116
- $[7] = dialogProps;
117
- $[8] = t4;
118
- $[9] = t5;
119
- $[10] = t6;
120
- } else t6 = $[10];
155
+ if ($[5] !== endFieldProps || $[6] !== withCalendarFromField) {
156
+ t6 = withCalendarFromField(endFieldProps);
157
+ $[5] = endFieldProps;
158
+ $[6] = withCalendarFromField;
159
+ $[7] = t6;
160
+ } else t6 = $[7];
121
161
  let t7;
122
- if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
123
- t7 = /* @__PURE__ */ jsx(DateRangeDash, {});
124
- $[11] = t7;
125
- } else t7 = $[11];
126
- let t8;
127
- if ($[12] !== endFieldProps || $[13] !== useLocaleProp) {
128
- t8 = /* @__PURE__ */ jsx(DatePickerInput, {
129
- useLocale: useLocaleProp,
130
- ...endFieldProps
162
+ if ($[8] !== t6 || $[9] !== useLocaleProp) {
163
+ t7 = /* @__PURE__ */ jsx(DateRangeRow, {
164
+ qa: "DateRangeEnd",
165
+ children: /* @__PURE__ */ jsx(DatePickerInput, {
166
+ useLocale: useLocaleProp,
167
+ ...t6
168
+ })
131
169
  });
132
- $[12] = endFieldProps;
133
- $[13] = useLocaleProp;
134
- $[14] = t8;
135
- } else t8 = $[14];
136
- const component = /* @__PURE__ */ jsxs(_DateInputBase, {
170
+ $[8] = t6;
171
+ $[9] = useLocaleProp;
172
+ $[10] = t7;
173
+ } else t7 = $[10];
174
+ const field = /* @__PURE__ */ jsxs(_DateInputBase, {
137
175
  ref: targetRef,
138
176
  wrapperRef: domRef,
139
177
  qa: qa || "DateRangePicker",
140
178
  inputType: "daterangepicker",
141
179
  autoFocus,
142
180
  styles,
181
+ inputStyles: t2,
143
182
  disableFocusRing: isFocusedButton,
144
183
  isDisabled,
145
- isReadOnly: t2,
184
+ isReadOnly: t3,
146
185
  isInvalid,
147
186
  isValid,
148
187
  size,
149
- fieldProps: groupProps,
188
+ fieldProps: hideTrigger ? mergeProps$1(groupProps, calendarFieldProps) : groupProps,
150
189
  ...focusProps,
151
- suffix: /* @__PURE__ */ jsxs(DialogTrigger, {
190
+ suffix: hideTrigger ? null : /* @__PURE__ */ jsxs(DialogTrigger, {
152
191
  hideArrow: true,
153
192
  type: "popover",
154
193
  placement,
@@ -158,19 +197,58 @@ function DateRangePicker(rawProps, ref) {
158
197
  onOpenChange: setOpen,
159
198
  children: [/* @__PURE__ */ jsx(DatePickerButton, {
160
199
  size,
161
- ...t3,
200
+ ...mergeProps$1(buttonProps, focusPropsButton),
162
201
  isDisabled
163
- }), t6]
202
+ }), /* @__PURE__ */ jsxs(Dialog, {
203
+ ...dialogProps,
204
+ width: "max-content",
205
+ overflow: "auto",
206
+ children: [/* @__PURE__ */ jsx(_RangeCalendar, {
207
+ ...calendarProps,
208
+ isDateUnavailable: props.isDateUnavailable
209
+ }), timeFields]
210
+ })]
164
211
  }),
165
- children: [
166
- /* @__PURE__ */ jsx(DatePickerInput, {
212
+ children: [/* @__PURE__ */ jsxs(DateRangeRow, {
213
+ qa: "DateRangeStart",
214
+ children: [/* @__PURE__ */ jsx(DatePickerInput, {
167
215
  useLocale: useLocaleProp,
168
- ...startFieldProps
169
- }),
170
- t7,
171
- t8
172
- ]
216
+ ...t4
217
+ }), t5]
218
+ }), t7]
173
219
  });
220
+ const component = hideTrigger ? /* @__PURE__ */ jsxs(Fragment$1, { children: [
221
+ field,
222
+ /* @__PURE__ */ jsx("span", {
223
+ hidden: true,
224
+ id: hintId,
225
+ children: t("datePicker.calendarHint", "Press Alt+Down Arrow to open the calendar.")
226
+ }),
227
+ /* @__PURE__ */ jsxs(CalendarPopover, {
228
+ isOpen: isCalendarOpen,
229
+ fieldRef: domRef,
230
+ popoverRef,
231
+ anchorRef: targetRefProp ?? targetRef,
232
+ placement,
233
+ shouldFlip,
234
+ dialogProps: {
235
+ ...dialogProps,
236
+ "aria-labelledby": dialogProps["aria-labelledby"]?.replace(`${buttonProps.id} `, "")
237
+ },
238
+ onClose: closeCalendar,
239
+ children: [/* @__PURE__ */ jsx(_RangeCalendar, {
240
+ ref: calendarRef,
241
+ ...calendarProps,
242
+ autoFocus: shouldFocusCalendar,
243
+ defaultFocusedValue: typedDate ?? calendarProps.defaultFocusedValue,
244
+ isDateUnavailable: props.isDateUnavailable,
245
+ onChange: (range) => {
246
+ calendarProps.onChange?.(range);
247
+ if (!state.hasTime) closeCalendar();
248
+ }
249
+ }, typedDate?.toString()), timeFields]
250
+ })
251
+ ] }) : field;
174
252
  return wrapWithField(component, {
175
253
  ...props,
176
254
  ...fieldLayout.field,
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePicker.js","names":["FocusableRef","BaseProps","Styles","tasty","forwardRef","RefObject","useRef","AriaDateRangePickerProps","DateValue","Placement","useDateRangePicker","useFocusRing","useDateRangePickerState","useI18n","FieldBaseProps","mergeProps","useFieldProps","wrapWithField","FieldLayoutStyleProps","splitFieldLayout","Space","RangeCalendar","Dialog","DialogTrigger","DateInputBase","DatePickerButton","DatePickerInput","DEFAULT_DATE_PROPS","TimeInput","DateFieldBase","useFocusManagerRef","ReactElement","Ref","DateRangeDash","children","styles","padding","CubeDateRangePickerProps","Omit","T","start","end","wrapperStyles","inputStyles","size","maxVisibleMonths","shouldFlip","targetRef","HTMLElement","placement","useLocale","DateRangePicker","rawProps","ref","$","_c","t","t0","Symbol","for","defaultValidationTrigger","props","Object","assign","fieldLayout","overStyles","qa","targetRefProp","t1","placeholderValue","isDisabled","isInvalid","isValid","useLocaleProp","autoFocus","undefined","state","shouldCloseOnSelect","hasTime","isOpen","setOpen","focusProps","within","isTextInput","isFocused","isFocusedButton","focusPropsButton","domRef","groupProps","labelProps","startFieldProps","endFieldProps","buttonProps","dialogProps","calendarProps","placeholder","timePlaceholder","timeMinValue","minValue","timeMaxValue","maxValue","timeGranularity","granularity","showTimeField","t2","isReadOnly","t3","t4","isDateUnavailable","t5","timeRange","hourCycle","hideTimeZone","v","setTime","v_0","t6","t7","t8","component","field","_DateRangePicker","displayName","_c","mergeProps","RangeCalendar","TimeInput","DateInputBase"],"sources":["../../../../src/components/fields/DatePicker/DateRangePicker.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport { forwardRef, RefObject, useRef } from 'react';\nimport {\n AriaDateRangePickerProps,\n DateValue,\n Placement,\n useDateRangePicker,\n useFocusRing,\n} from 'react-aria';\nimport { useDateRangePickerState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFieldProps, wrapWithField } from '../../form';\nimport {\n FieldLayoutStyleProps,\n splitFieldLayout,\n} from '../../form/field-layout';\nimport { Space } from '../../layout/Space';\nimport { RangeCalendar } from '../../other/Calendar/RangeCalendar';\nimport { Dialog } from '../../overlays/Dialog/Dialog';\nimport { DialogTrigger } from '../../overlays/Dialog/DialogTrigger';\n\nimport { DateInputBase } from './DateInputBase';\nimport { DatePickerButton } from './DatePickerButton';\nimport { DatePickerInput } from './DatePickerInput';\nimport { DEFAULT_DATE_PROPS } from './props';\nimport { TimeInput } from './TimeInput';\nimport { DateFieldBase } from './types';\nimport { useFocusManagerRef } from './utils';\n\nimport type { ReactElement, Ref } from 'react';\n\nconst DateRangeDash = tasty({\n 'aria-hidden': 'true',\n 'data-qa': 'DateRangeDash',\n children: '–',\n styles: {\n padding: '0 .5x',\n },\n});\n\nexport interface CubeDateRangePickerProps<T extends DateValue = DateValue>\n extends\n Omit<\n AriaDateRangePickerProps<T>,\n 'errorMessage' | 'form' | 'name' | keyof DateFieldBase<T>\n >,\n BaseProps,\n DateFieldBase<T>,\n FieldLayoutStyleProps,\n FieldBaseProps<{ start: T; end: T } | null | undefined> {\n wrapperStyles?: Styles;\n inputStyles?: Styles;\n styles?: Styles;\n size?: 'small' | 'medium' | 'large' | (string & {});\n maxVisibleMonths?: number;\n shouldFlip?: boolean;\n /**\n * The ref of the element the popover should visually attach itself to.\n * Defaults to the field wrapper.\n *\n * Forwarded to `DialogTrigger`, so the anchor also becomes what outside-click\n * dismissal treats as the trigger.\n */\n targetRef?: RefObject<HTMLElement | null>;\n /**\n * Placement of the popover relative to the anchor.\n * Accepts React Aria's `Placement` strings (e.g. `'bottom start'`,\n * `'top start'`, `'right top'`, `'left top'`).\n * @default 'bottom right'\n */\n placement?: Placement;\n useLocale?: boolean;\n}\n\nfunction DateRangePicker<T extends DateValue>(\n rawProps: CubeDateRangePickerProps<T>,\n ref: FocusableRef<HTMLElement>,\n) {\n const { t } = useI18n();\n\n let props = useFieldProps(rawProps, {\n defaultValidationTrigger: 'onBlur',\n });\n props = Object.assign({}, DEFAULT_DATE_PROPS, props);\n\n // `wrapperStyles` styles the same box as `styles` and wins over it.\n const fieldLayout = splitFieldLayout(props, {\n overStyles: props.wrapperStyles,\n });\n const styles = fieldLayout.styles;\n\n let {\n qa,\n size,\n shouldFlip,\n targetRef: targetRefProp,\n placement = 'bottom right',\n placeholderValue,\n isDisabled,\n isInvalid,\n isValid,\n useLocale: useLocaleProp,\n autoFocus,\n } = props;\n let targetRef = useRef<HTMLDivElement>(null);\n let state = useDateRangePickerState({\n ...props,\n shouldCloseOnSelect: () => !state.hasTime,\n });\n let { isOpen, setOpen } = state;\n\n let { isFocused, focusProps } = useFocusRing({\n within: true,\n isTextInput: true,\n autoFocus,\n });\n\n let { isFocused: isFocusedButton, focusProps: focusPropsButton } =\n useFocusRing({\n within: false,\n isTextInput: false,\n autoFocus,\n });\n\n let domRef = useRef<HTMLDivElement>(null);\n\n useFocusManagerRef(ref, domRef);\n\n let {\n groupProps,\n labelProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDateRangePicker(props, state, targetRef);\n\n let placeholder: DateValue | undefined = placeholderValue ?? undefined;\n let timePlaceholder =\n placeholder && 'hour' in placeholder ? placeholder : undefined;\n let timeMinValue =\n props.minValue && 'hour' in props.minValue ? props.minValue : undefined;\n let timeMaxValue =\n props.maxValue && 'hour' in props.maxValue ? props.maxValue : undefined;\n let timeGranularity =\n state.granularity === 'hour' ||\n state.granularity === 'minute' ||\n state.granularity === 'second'\n ? state.granularity\n : null;\n let showTimeField = !!timeGranularity;\n // let visibleMonths = useVisibleMonths(maxVisibleMonths);\n\n const component = (\n <DateInputBase\n ref={targetRef}\n wrapperRef={domRef}\n qa={qa || 'DateRangePicker'}\n inputType=\"daterangepicker\"\n autoFocus={autoFocus}\n styles={styles}\n disableFocusRing={isFocusedButton}\n isDisabled={isDisabled}\n isReadOnly={props.isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n size={size}\n fieldProps={groupProps}\n {...focusProps}\n suffix={\n <DialogTrigger\n hideArrow\n type=\"popover\"\n placement={placement}\n targetRef={targetRefProp ?? targetRef}\n isOpen={isOpen}\n shouldFlip={shouldFlip}\n onOpenChange={setOpen}\n >\n <DatePickerButton\n size={size}\n {...mergeProps(buttonProps, focusPropsButton)}\n isDisabled={isDisabled}\n />\n <Dialog {...dialogProps} width=\"max-content\" overflow=\"auto\">\n <RangeCalendar\n {...calendarProps}\n isDateUnavailable={props.isDateUnavailable}\n />\n {showTimeField && (\n <Space>\n <TimeInput\n label={t('datePicker.startTime', 'Start time')}\n value={state.timeRange?.start || null}\n placeholderValue={timePlaceholder}\n granularity={timeGranularity}\n minValue={timeMinValue}\n maxValue={timeMaxValue}\n hourCycle={props.hourCycle}\n hideTimeZone={props.hideTimeZone}\n onChange={(v) => state.setTime('start', v)}\n />\n <TimeInput\n label={t('datePicker.endTime', 'End time')}\n value={state.timeRange?.end || null}\n placeholderValue={timePlaceholder}\n granularity={timeGranularity}\n minValue={timeMinValue}\n maxValue={timeMaxValue}\n hourCycle={props.hourCycle}\n hideTimeZone={props.hideTimeZone}\n onChange={(v) => state.setTime('end', v)}\n />\n </Space>\n )}\n </Dialog>\n </DialogTrigger>\n }\n >\n <DatePickerInput useLocale={useLocaleProp} {...startFieldProps} />\n <DateRangeDash />\n <DatePickerInput useLocale={useLocaleProp} {...endFieldProps} />\n </DateInputBase>\n );\n\n return wrapWithField(component, {\n ...props,\n ...fieldLayout.field,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n}\n\nconst _DateRangePicker = forwardRef(DateRangePicker) as <\n T extends DateValue = DateValue,\n>(\n props: CubeDateRangePickerProps<T> & { ref?: Ref<HTMLElement> },\n) => ReactElement | null;\n\n(_DateRangePicker as any).displayName = 'DateRangePicker';\n\nexport { _DateRangePicker as DateRangePicker };\n"],"mappings":"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"}
1
+ {"version":3,"file":"DateRangePicker.js","names":["FocusableRef","BaseProps","Styles","tasty","forwardRef","RefObject","useId","useRef","useState","AriaDateRangePickerProps","DateValue","Placement","useDateRangePicker","useFocusRing","useDateRangePickerState","useI18n","FieldBaseProps","mergeProps","mergeStyleLayers","useFieldProps","wrapWithField","FieldLayoutStyleProps","splitFieldLayout","Space","RangeCalendar","Dialog","DialogTrigger","CalendarPopover","useFieldCalendar","DateInputBase","DatePickerButton","DatePickerInput","DEFAULT_DATE_PROPS","TimeInput","DateFieldBase","useFocusManagerRef","ReactElement","Ref","DateRangeDash","children","styles","padding","DateRangeRow","role","display","placeItems","height","WRAPPER_STYLES","minWidth","Suffix","INPUT_STYLES","flow","CubeDateRangePickerProps","Omit","T","start","end","wrapperStyles","inputStyles","size","maxVisibleMonths","shouldFlip","targetRef","HTMLElement","placement","useLocale","hideTrigger","DateRangePicker","rawProps","ref","$","_c","t","t0","Symbol","for","defaultValidationTrigger","props","Object","assign","fieldLayout","defaultStyles","overStyles","qa","targetRefProp","t1","placeholderValue","isDisabled","isInvalid","isValid","useLocaleProp","autoFocus","undefined","state","isOpen","defaultOpen","onOpenChange","shouldCloseOnSelect","hasTime","setOpen","focusProps","within","isTextInput","isFocused","isFocusedButton","focusPropsButton","domRef","groupProps","labelProps","startFieldProps","endFieldProps","buttonProps","dialogProps","calendarProps","typedDate","setTypedDate","hintId","isCalendarOpen","shouldFocusCalendar","close","closeCalendar","fieldProps","calendarFieldProps","popoverRef","calendarRef","fieldRef","isReadOnly","open","withCalendarFromField","filter","Boolean","join","onChange","value","placeholder","timePlaceholder","timeMinValue","minValue","timeMaxValue","maxValue","timeGranularity","granularity","showTimeField","timeFields","timeRange","hourCycle","hideTimeZone","v","setTime","v_0","t2","t3","t4","t5","t6","t7","field","isDateUnavailable","component","replace","id","toString","defaultFocusedValue","range","_DateRangePicker","displayName","_c","TimeInput","DateInputBase","mergeProps","RangeCalendar"],"sources":["../../../../src/components/fields/DatePicker/DateRangePicker.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport { forwardRef, RefObject, useId, useRef, useState } from 'react';\nimport {\n AriaDateRangePickerProps,\n DateValue,\n Placement,\n useDateRangePicker,\n useFocusRing,\n} from 'react-aria';\nimport { useDateRangePickerState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { FieldBaseProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { mergeStyleLayers } from '../../../utils/styles';\nimport { useFieldProps, wrapWithField } from '../../form';\nimport {\n FieldLayoutStyleProps,\n splitFieldLayout,\n} from '../../form/field-layout';\nimport { Space } from '../../layout/Space';\nimport { RangeCalendar } from '../../other/Calendar/RangeCalendar';\nimport { Dialog } from '../../overlays/Dialog/Dialog';\nimport { DialogTrigger } from '../../overlays/Dialog/DialogTrigger';\n\nimport { CalendarPopover, useFieldCalendar } from './CalendarPopover';\nimport { DateInputBase } from './DateInputBase';\nimport { DatePickerButton } from './DatePickerButton';\nimport { DatePickerInput } from './DatePickerInput';\nimport { DEFAULT_DATE_PROPS } from './props';\nimport { TimeInput } from './TimeInput';\nimport { DateFieldBase } from './types';\nimport { useFocusManagerRef } from './utils';\n\nimport type { ReactElement, Ref } from 'react';\n\nconst DateRangeDash = tasty({\n 'aria-hidden': 'true',\n 'data-qa': 'DateRangeDash',\n children: '–',\n styles: {\n padding: '0 .5x',\n },\n});\n\n// One row of the box: the start date with its dash, or the end date. Too narrow\n// for one row, the end date's row wraps under the start date's.\nconst DateRangeRow = tasty({\n role: 'presentation',\n styles: {\n display: 'flex',\n placeItems: 'center start',\n height: '($size - 2bw)',\n },\n});\n\n// The box grows by a row for a wrapped end date, its suffix stays on the first\n// row, and it is never narrower than its widest row.\nconst WRAPPER_STYLES: Styles = {\n minWidth: 'min-content',\n height: 'min $size',\n Suffix: {\n height: '($size - 2bw)',\n },\n};\n\nconst INPUT_STYLES: Styles = {\n flow: 'row wrap',\n height: 'auto',\n};\n\nexport interface CubeDateRangePickerProps<T extends DateValue = DateValue>\n extends\n Omit<\n AriaDateRangePickerProps<T>,\n 'errorMessage' | 'form' | 'name' | keyof DateFieldBase<T>\n >,\n BaseProps,\n DateFieldBase<T>,\n FieldLayoutStyleProps,\n FieldBaseProps<{ start: T; end: T } | null | undefined> {\n wrapperStyles?: Styles;\n inputStyles?: Styles;\n styles?: Styles;\n size?: 'small' | 'medium' | 'large' | (string & {});\n maxVisibleMonths?: number;\n shouldFlip?: boolean;\n /**\n * The ref of the element the popover should visually attach itself to.\n * Defaults to the field wrapper.\n *\n * Forwarded to `DialogTrigger`, so the anchor also becomes what outside-click\n * dismissal treats as the trigger.\n */\n targetRef?: RefObject<HTMLElement | null>;\n /**\n * Placement of the popover relative to the anchor.\n * Accepts React Aria's `Placement` strings (e.g. `'bottom start'`,\n * `'top start'`, `'right top'`, `'left top'`).\n * @default 'bottom right'\n */\n placement?: Placement;\n useLocale?: boolean;\n /**\n * Renders no calendar button, so the field fits a narrower row. The calendar\n * opens from the field instead: a press in it, an edit of a date (typing,\n * or Up and Down Arrow), or Alt+Down or Alt+Up, which also move focus into\n * the calendar. Tabbing into the field doesn't open it, and while the dates\n * are typed focus stays in the field. Escape, a press outside, picking a\n * range without times, or focus moving on to another element closes it.\n * @default false\n */\n hideTrigger?: boolean;\n}\n\nfunction DateRangePicker<T extends DateValue>(\n rawProps: CubeDateRangePickerProps<T>,\n ref: FocusableRef<HTMLElement>,\n) {\n const { t } = useI18n();\n\n let props = useFieldProps(rawProps, {\n defaultValidationTrigger: 'onBlur',\n });\n props = Object.assign({}, DEFAULT_DATE_PROPS, props);\n\n // `wrapperStyles` styles the same box as `styles` and wins over it.\n const fieldLayout = splitFieldLayout(props, {\n defaultStyles: WRAPPER_STYLES,\n overStyles: props.wrapperStyles,\n });\n const styles = fieldLayout.styles;\n\n let {\n qa,\n size,\n shouldFlip,\n targetRef: targetRefProp,\n placement = 'bottom right',\n placeholderValue,\n isDisabled,\n isInvalid,\n isValid,\n useLocale: useLocaleProp,\n autoFocus,\n hideTrigger,\n } = props;\n let targetRef = useRef<HTMLDivElement>(null);\n let state = useDateRangePickerState({\n ...props,\n // Without the button, the field owns the calendar's open state. React\n // Aria's stays closed: open, it would stop the field reporting focus and\n // blur while the dates are typed.\n ...(hideTrigger && {\n isOpen: false,\n defaultOpen: false,\n onOpenChange: undefined,\n }),\n shouldCloseOnSelect: () => !state.hasTime,\n });\n let { isOpen, setOpen } = state;\n\n let { isFocused, focusProps } = useFocusRing({\n within: true,\n isTextInput: true,\n autoFocus,\n });\n\n let { isFocused: isFocusedButton, focusProps: focusPropsButton } =\n useFocusRing({\n within: false,\n isTextInput: false,\n autoFocus,\n });\n\n let domRef = useRef<HTMLDivElement>(null);\n\n useFocusManagerRef(ref, domRef);\n\n let {\n groupProps,\n labelProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDateRangePicker(\n props,\n state,\n // Without the button, React Aria's group is the whole field, so a press\n // on its padding focuses its last date rather than whatever precedes it.\n hideTrigger ? domRef : targetRef,\n );\n\n // The date typed last, which the open calendar turns to.\n let [typedDate, setTypedDate] = useState<DateValue | null>(null);\n let hintId = useId();\n\n let {\n isOpen: isCalendarOpen,\n shouldFocusCalendar,\n close: closeCalendar,\n fieldProps: calendarFieldProps,\n popoverRef,\n calendarRef,\n } = useFieldCalendar({\n fieldRef: domRef,\n isDisabled,\n isReadOnly: props.isReadOnly,\n isOpen: props.isOpen,\n defaultOpen: props.defaultOpen,\n onOpenChange(open) {\n if (!open) {\n setTypedDate(null);\n // Commits a range picked without its times, as closing does.\n setOpen(false);\n }\n\n props.onOpenChange?.(open);\n },\n });\n\n // Without the button, each date names the key that opens the calendar, and\n // a typed date turns the calendar to it.\n let withCalendarFromField = (fieldProps: typeof startFieldProps) =>\n hideTrigger\n ? {\n ...fieldProps,\n 'aria-describedby': [fieldProps['aria-describedby'], hintId]\n .filter(Boolean)\n .join(' '),\n onChange(value: DateValue | null) {\n fieldProps.onChange?.(value);\n\n if (value) setTypedDate(value);\n },\n }\n : fieldProps;\n\n let placeholder: DateValue | undefined = placeholderValue ?? undefined;\n let timePlaceholder =\n placeholder && 'hour' in placeholder ? placeholder : undefined;\n let timeMinValue =\n props.minValue && 'hour' in props.minValue ? props.minValue : undefined;\n let timeMaxValue =\n props.maxValue && 'hour' in props.maxValue ? props.maxValue : undefined;\n let timeGranularity =\n state.granularity === 'hour' ||\n state.granularity === 'minute' ||\n state.granularity === 'second'\n ? state.granularity\n : null;\n let showTimeField = !!timeGranularity;\n // let visibleMonths = useVisibleMonths(maxVisibleMonths);\n\n const timeFields = showTimeField && (\n <Space>\n <TimeInput\n label={t('datePicker.startTime', 'Start time')}\n value={state.timeRange?.start || null}\n placeholderValue={timePlaceholder}\n granularity={timeGranularity}\n minValue={timeMinValue}\n maxValue={timeMaxValue}\n hourCycle={props.hourCycle}\n hideTimeZone={props.hideTimeZone}\n onChange={(v) => state.setTime('start', v)}\n />\n <TimeInput\n label={t('datePicker.endTime', 'End time')}\n value={state.timeRange?.end || null}\n placeholderValue={timePlaceholder}\n granularity={timeGranularity}\n minValue={timeMinValue}\n maxValue={timeMaxValue}\n hourCycle={props.hourCycle}\n hideTimeZone={props.hideTimeZone}\n onChange={(v) => state.setTime('end', v)}\n />\n </Space>\n );\n\n const field = (\n <DateInputBase\n ref={targetRef}\n wrapperRef={domRef}\n qa={qa || 'DateRangePicker'}\n inputType=\"daterangepicker\"\n autoFocus={autoFocus}\n styles={styles}\n inputStyles={mergeStyleLayers(INPUT_STYLES, props.inputStyles)}\n disableFocusRing={isFocusedButton}\n isDisabled={isDisabled}\n isReadOnly={props.isReadOnly}\n isInvalid={isInvalid}\n isValid={isValid}\n size={size}\n fieldProps={\n hideTrigger ? mergeProps(groupProps, calendarFieldProps) : groupProps\n }\n {...focusProps}\n suffix={\n hideTrigger ? null : (\n <DialogTrigger\n hideArrow\n type=\"popover\"\n placement={placement}\n targetRef={targetRefProp ?? targetRef}\n isOpen={isOpen}\n shouldFlip={shouldFlip}\n onOpenChange={setOpen}\n >\n <DatePickerButton\n size={size}\n {...mergeProps(buttonProps, focusPropsButton)}\n isDisabled={isDisabled}\n />\n <Dialog {...dialogProps} width=\"max-content\" overflow=\"auto\">\n <RangeCalendar\n {...calendarProps}\n isDateUnavailable={props.isDateUnavailable}\n />\n {timeFields}\n </Dialog>\n </DialogTrigger>\n )\n }\n >\n <DateRangeRow qa=\"DateRangeStart\">\n <DatePickerInput\n useLocale={useLocaleProp}\n {...withCalendarFromField(startFieldProps)}\n />\n <DateRangeDash />\n </DateRangeRow>\n <DateRangeRow qa=\"DateRangeEnd\">\n <DatePickerInput\n useLocale={useLocaleProp}\n {...withCalendarFromField(endFieldProps)}\n />\n </DateRangeRow>\n </DateInputBase>\n );\n\n // The popover is the field's sibling, so its keys and presses never reach\n // the field's handlers.\n const component = hideTrigger ? (\n <>\n {field}\n <span hidden id={hintId}>\n {t(\n 'datePicker.calendarHint',\n 'Press Alt+Down Arrow to open the calendar.',\n )}\n </span>\n <CalendarPopover\n isOpen={isCalendarOpen}\n fieldRef={domRef}\n popoverRef={popoverRef}\n anchorRef={targetRefProp ?? targetRef}\n placement={placement}\n shouldFlip={shouldFlip}\n dialogProps={{\n ...dialogProps,\n // No button here, so the field alone names the calendar.\n 'aria-labelledby': dialogProps['aria-labelledby']?.replace(\n `${buttonProps.id} `,\n '',\n ),\n }}\n onClose={closeCalendar}\n >\n <RangeCalendar\n // Remounted on a typed date, so it turns to that date's month.\n key={typedDate?.toString()}\n ref={calendarRef}\n {...calendarProps}\n autoFocus={shouldFocusCalendar}\n defaultFocusedValue={typedDate ?? calendarProps.defaultFocusedValue}\n isDateUnavailable={props.isDateUnavailable}\n onChange={(range) => {\n calendarProps.onChange?.(range);\n\n if (!state.hasTime) closeCalendar();\n }}\n />\n {timeFields}\n </CalendarPopover>\n </>\n ) : (\n field\n );\n\n return wrapWithField(component, {\n ...props,\n ...fieldLayout.field,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n}\n\nconst _DateRangePicker = forwardRef(DateRangePicker) as <\n T extends DateValue = DateValue,\n>(\n props: CubeDateRangePickerProps<T> & { ref?: Ref<HTMLElement> },\n) => ReactElement | null;\n\n(_DateRangePicker as any).displayName = 'DateRangePicker';\n\nexport { _DateRangePicker as DateRangePicker };\n"],"mappings":"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"}