@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.
- package/dist/CHANGELOG.md +16 -0
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +1 -1
- package/dist/components/content/Tree/checked-keys.js +1 -1
- package/dist/components/content/Tree/rowId.js +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/ItemTable/item-table-sections.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableRowLink.js +1 -1
- package/dist/components/data/TableBase/TableView.js +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/column-header.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.js +1 -1
- package/dist/components/data/TableBase/table-body-sections.js +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-window.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/CalendarPopover.js +281 -0
- package/dist/components/fields/DatePicker/CalendarPopover.js.map +1 -0
- package/dist/components/fields/DatePicker/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +26 -24
- package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +4 -2
- package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.d.ts +10 -0
- package/dist/components/fields/DatePicker/DateRangePicker.js +143 -65
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +172 -165
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterListBox/styled.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/FilterPicker/FilterTree.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +1 -1
- package/dist/components/fields/TagInput/useTagError.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/displayed-validation.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/fields/option-origin-press.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +198 -174
- package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +18 -3
- package/dist/components/form/Form/modern/store.js.map +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/field-chrome.js +1 -1
- package/dist/components/form/field-layout.js +1 -1
- package/dist/components/form/legacy-tooltip.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.d.ts +3 -3
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.d.ts +4 -4
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +101 -123
- package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/context.js.map +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
- package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +60 -51
- package/dist/components/overlays/Dialog/use-dismiss-confirmation.js.map +1 -1
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/modal-containment.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +6 -3
- package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +3 -2
- package/dist/i18n/locales/en-US/uikit.js +3 -2
- package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -0
- package/dist/i18n/locales/es-ES/uikit.js +3 -2
- package/dist/i18n/locales/es-MX/uikit.js +3 -2
- package/dist/i18n/locales/fr-FR/uikit.js +3 -2
- package/dist/i18n/locales/it-IT/uikit.js +3 -2
- package/dist/i18n/locales/ja-JP/uikit.js +3 -2
- package/dist/i18n/locales/nb-NO/uikit.js +3 -2
- package/dist/i18n/locales/pt-BR/uikit.js +3 -2
- package/dist/i18n/locales/pt-PT/uikit.js +3 -2
- package/dist/i18n/locales/sv-SE/uikit.js +3 -2
- package/dist/i18n/locales/vi-VN/uikit.js +3 -2
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/namespace.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.js +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigation-url.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +1 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/overlayKeyPropagation.js +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +2 -2
- package/docs/components/form/Form.md +2 -0
- package/docs/components/form/ModernForm.md +5 -1
- package/docs/components/overlays/DialogContainer.md +1 -1
- package/docs/components/overlays/DialogTrigger.md +2 -2
- package/docs/components/overlays/Notifications.md +17 -0
- package/docs/components/overlays/Toast.md +1 -1
- package/docs/modern-form-guide.md +5 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.205.0 | Cube Dev Team */
|
|
2
2
|
import { getCaretRect } from "./caretPosition.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useEffect, useLayoutEffect, useRef } from "react";
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.205.0 | Cube Dev Team */
|
|
2
|
+
import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
|
|
3
|
+
import { Popover as _Popover } from "../../overlays/Modal/Popover.js";
|
|
4
|
+
import { c } from "react/compiler-runtime";
|
|
5
|
+
import { tasty } from "@tenphi/tasty";
|
|
6
|
+
import { useId, useRef, useState } from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { DismissButton, FocusScope, useOverlayPosition } from "react-aria";
|
|
9
|
+
import { getFocusableTreeWalker } from "@react-aria/focus";
|
|
10
|
+
import { isFocusable } from "@react-aria/utils";
|
|
11
|
+
import { useControlledState } from "@react-stately/utils";
|
|
12
|
+
//#region src/components/fields/DatePicker/CalendarPopover.tsx
|
|
13
|
+
const EDIT_KEYS = /* @__PURE__ */ new Set([
|
|
14
|
+
"ArrowUp",
|
|
15
|
+
"ArrowDown",
|
|
16
|
+
"PageUp",
|
|
17
|
+
"PageDown",
|
|
18
|
+
"Home",
|
|
19
|
+
"End",
|
|
20
|
+
"Backspace",
|
|
21
|
+
"Delete"
|
|
22
|
+
]);
|
|
23
|
+
const CalendarPopoverElement = tasty({
|
|
24
|
+
qa: "CalendarPopover",
|
|
25
|
+
role: "dialog",
|
|
26
|
+
styles: {
|
|
27
|
+
display: "flex",
|
|
28
|
+
flow: "column",
|
|
29
|
+
fill: "#surface",
|
|
30
|
+
border: true,
|
|
31
|
+
radius: "1cr",
|
|
32
|
+
shadow: "$shadow",
|
|
33
|
+
outline: 0,
|
|
34
|
+
width: "max-content",
|
|
35
|
+
height: "initial initial (50dvh - 5x)",
|
|
36
|
+
overflow: "auto"
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
/**
|
|
40
|
+
* A calendar that opens from its date field instead of a button: a press in
|
|
41
|
+
* the field, an edit of a date, or Alt+Down, which also moves focus into the
|
|
42
|
+
* calendar. Tabbing into the field doesn't open it. While the dates are typed
|
|
43
|
+
* it stays non-modal, and focus stays in the field.
|
|
44
|
+
*/
|
|
45
|
+
function useFieldCalendar(options) {
|
|
46
|
+
const $ = c(20);
|
|
47
|
+
const { fieldRef, isDisabled, isReadOnly } = options;
|
|
48
|
+
const [isOpen, setOpen] = useControlledState(options.isOpen, options.defaultOpen ?? false, options.onOpenChange);
|
|
49
|
+
const [shouldFocusCalendar, setShouldFocusCalendar] = useState(false);
|
|
50
|
+
const popoverRef = useRef(null);
|
|
51
|
+
const calendarRef = useRef(null);
|
|
52
|
+
const segmentRef = useRef(null);
|
|
53
|
+
const canOpen = !isDisabled && !isReadOnly;
|
|
54
|
+
let t0;
|
|
55
|
+
if ($[0] !== fieldRef) {
|
|
56
|
+
t0 = (target) => target instanceof Node && !!fieldRef.current?.contains(target);
|
|
57
|
+
$[0] = fieldRef;
|
|
58
|
+
$[1] = t0;
|
|
59
|
+
} else t0 = $[1];
|
|
60
|
+
const isInField = t0;
|
|
61
|
+
let t1;
|
|
62
|
+
if ($[2] !== canOpen || $[3] !== isOpen || $[4] !== setOpen) {
|
|
63
|
+
t1 = (focusCalendar) => {
|
|
64
|
+
if (!canOpen) return;
|
|
65
|
+
if (focusCalendar && isOpen) calendarRef.current?.focus();
|
|
66
|
+
setShouldFocusCalendar(focusCalendar);
|
|
67
|
+
setOpen(true);
|
|
68
|
+
};
|
|
69
|
+
$[2] = canOpen;
|
|
70
|
+
$[3] = isOpen;
|
|
71
|
+
$[4] = setOpen;
|
|
72
|
+
$[5] = t1;
|
|
73
|
+
} else t1 = $[5];
|
|
74
|
+
const open = t1;
|
|
75
|
+
let t2;
|
|
76
|
+
if ($[6] !== fieldRef || $[7] !== setOpen) {
|
|
77
|
+
t2 = () => {
|
|
78
|
+
if (popoverRef.current?.contains(document.activeElement)) (segmentRef.current?.isConnected ? segmentRef.current : fieldRef.current?.querySelector("[role=\"spinbutton\"]"))?.focus();
|
|
79
|
+
setShouldFocusCalendar(false);
|
|
80
|
+
setOpen(false);
|
|
81
|
+
};
|
|
82
|
+
$[6] = fieldRef;
|
|
83
|
+
$[7] = setOpen;
|
|
84
|
+
$[8] = t2;
|
|
85
|
+
} else t2 = $[8];
|
|
86
|
+
const close = t2;
|
|
87
|
+
let t3;
|
|
88
|
+
if ($[9] !== close || $[10] !== fieldRef || $[11] !== isInField || $[12] !== isOpen || $[13] !== open) {
|
|
89
|
+
t3 = {
|
|
90
|
+
onFocus(e) {
|
|
91
|
+
if (isInField(e.target)) segmentRef.current = e.target;
|
|
92
|
+
},
|
|
93
|
+
onClickCapture(e_0) {
|
|
94
|
+
if (isInField(e_0.target)) open(false);
|
|
95
|
+
},
|
|
96
|
+
onKeyDownCapture(e_1) {
|
|
97
|
+
if (!isInField(e_1.target)) return;
|
|
98
|
+
if (e_1.key === "Escape") {
|
|
99
|
+
if (!isOpen) return;
|
|
100
|
+
e_1.preventDefault();
|
|
101
|
+
e_1.stopPropagation();
|
|
102
|
+
close();
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (e_1.altKey && (e_1.key === "ArrowDown" || e_1.key === "ArrowUp")) {
|
|
106
|
+
e_1.preventDefault();
|
|
107
|
+
e_1.stopPropagation();
|
|
108
|
+
open(true);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (e_1.altKey || e_1.ctrlKey || e_1.metaKey) return;
|
|
112
|
+
if (e_1.key.length === 1 || EDIT_KEYS.has(e_1.key)) open(false);
|
|
113
|
+
},
|
|
114
|
+
onBlur(e_2) {
|
|
115
|
+
if (!isOpen || !isInField(e_2.target)) return;
|
|
116
|
+
const next = e_2.relatedTarget;
|
|
117
|
+
if (!(next instanceof Node) || fieldRef.current?.contains(next) || popoverRef.current?.contains(next)) return;
|
|
118
|
+
close();
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
$[9] = close;
|
|
122
|
+
$[10] = fieldRef;
|
|
123
|
+
$[11] = isInField;
|
|
124
|
+
$[12] = isOpen;
|
|
125
|
+
$[13] = open;
|
|
126
|
+
$[14] = t3;
|
|
127
|
+
} else t3 = $[14];
|
|
128
|
+
const fieldProps = t3;
|
|
129
|
+
let t4;
|
|
130
|
+
if ($[15] !== close || $[16] !== fieldProps || $[17] !== isOpen || $[18] !== shouldFocusCalendar) {
|
|
131
|
+
t4 = {
|
|
132
|
+
isOpen,
|
|
133
|
+
shouldFocusCalendar,
|
|
134
|
+
close,
|
|
135
|
+
fieldProps,
|
|
136
|
+
popoverRef,
|
|
137
|
+
calendarRef
|
|
138
|
+
};
|
|
139
|
+
$[15] = close;
|
|
140
|
+
$[16] = fieldProps;
|
|
141
|
+
$[17] = isOpen;
|
|
142
|
+
$[18] = shouldFocusCalendar;
|
|
143
|
+
$[19] = t4;
|
|
144
|
+
} else t4 = $[19];
|
|
145
|
+
return t4;
|
|
146
|
+
}
|
|
147
|
+
/** The non-modal popover `useFieldCalendar` opens. */
|
|
148
|
+
function CalendarPopover(props) {
|
|
149
|
+
const $ = c(35);
|
|
150
|
+
const { isOpen, onClose: close, fieldRef, popoverRef, anchorRef, placement, shouldFlip, dialogProps, children } = props;
|
|
151
|
+
const id = useId();
|
|
152
|
+
let t0;
|
|
153
|
+
if ($[0] !== close || $[1] !== fieldRef || $[2] !== id || $[3] !== isOpen || $[4] !== popoverRef) {
|
|
154
|
+
t0 = {
|
|
155
|
+
menuId: id,
|
|
156
|
+
isOpen,
|
|
157
|
+
onClose: close,
|
|
158
|
+
triggerRef: fieldRef,
|
|
159
|
+
containerRef: popoverRef,
|
|
160
|
+
dismissOnInnerButtonPress: false
|
|
161
|
+
};
|
|
162
|
+
$[0] = close;
|
|
163
|
+
$[1] = fieldRef;
|
|
164
|
+
$[2] = id;
|
|
165
|
+
$[3] = isOpen;
|
|
166
|
+
$[4] = popoverRef;
|
|
167
|
+
$[5] = t0;
|
|
168
|
+
} else t0 = $[5];
|
|
169
|
+
usePopoverSync(t0);
|
|
170
|
+
let t1;
|
|
171
|
+
if ($[6] !== anchorRef || $[7] !== close || $[8] !== isOpen || $[9] !== placement || $[10] !== popoverRef || $[11] !== shouldFlip) {
|
|
172
|
+
t1 = {
|
|
173
|
+
targetRef: anchorRef,
|
|
174
|
+
overlayRef: popoverRef,
|
|
175
|
+
placement,
|
|
176
|
+
shouldFlip,
|
|
177
|
+
offset: 8,
|
|
178
|
+
isOpen,
|
|
179
|
+
onClose: close
|
|
180
|
+
};
|
|
181
|
+
$[6] = anchorRef;
|
|
182
|
+
$[7] = close;
|
|
183
|
+
$[8] = isOpen;
|
|
184
|
+
$[9] = placement;
|
|
185
|
+
$[10] = popoverRef;
|
|
186
|
+
$[11] = shouldFlip;
|
|
187
|
+
$[12] = t1;
|
|
188
|
+
} else t1 = $[12];
|
|
189
|
+
const { overlayProps: positionProps, placement: actualPlacement } = useOverlayPosition(t1);
|
|
190
|
+
let t2;
|
|
191
|
+
if ($[13] !== close || $[14] !== fieldRef || $[15] !== isOpen) {
|
|
192
|
+
t2 = (el) => {
|
|
193
|
+
if (!isOpen) return false;
|
|
194
|
+
if (fieldRef.current?.contains(el)) return false;
|
|
195
|
+
if (el.closest("[data-popover-keep]")) return false;
|
|
196
|
+
if (el.closest("[data-popover-trigger]")) return false;
|
|
197
|
+
if (el.closest("[data-popover-dismiss]")) {
|
|
198
|
+
setTimeout(close, 0);
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
return true;
|
|
202
|
+
};
|
|
203
|
+
$[13] = close;
|
|
204
|
+
$[14] = fieldRef;
|
|
205
|
+
$[15] = isOpen;
|
|
206
|
+
$[16] = t2;
|
|
207
|
+
} else t2 = $[16];
|
|
208
|
+
const shouldCloseOnInteractOutside = t2;
|
|
209
|
+
const onMouseDown = _temp;
|
|
210
|
+
let t3;
|
|
211
|
+
if ($[17] !== close || $[18] !== popoverRef) {
|
|
212
|
+
t3 = (e_0) => {
|
|
213
|
+
const popover = popoverRef.current;
|
|
214
|
+
if (e_0.key !== "Tab" || !popover) return;
|
|
215
|
+
const walker = getFocusableTreeWalker(popover, { tabbable: true });
|
|
216
|
+
const first = walker.firstChild();
|
|
217
|
+
walker.currentNode = popover;
|
|
218
|
+
const last = walker.lastChild();
|
|
219
|
+
if (document.activeElement === (e_0.shiftKey ? first : last)) {
|
|
220
|
+
e_0.preventDefault();
|
|
221
|
+
close();
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
$[17] = close;
|
|
225
|
+
$[18] = popoverRef;
|
|
226
|
+
$[19] = t3;
|
|
227
|
+
} else t3 = $[19];
|
|
228
|
+
const onKeyDown = t3;
|
|
229
|
+
const t4 = actualPlacement ?? void 0;
|
|
230
|
+
let t5;
|
|
231
|
+
if ($[20] !== close) {
|
|
232
|
+
t5 = /* @__PURE__ */ jsx(DismissButton, { onDismiss: close });
|
|
233
|
+
$[20] = close;
|
|
234
|
+
$[21] = t5;
|
|
235
|
+
} else t5 = $[21];
|
|
236
|
+
let t6;
|
|
237
|
+
if ($[22] !== children || $[23] !== dialogProps || $[24] !== onKeyDown || $[25] !== t5) {
|
|
238
|
+
t6 = /* @__PURE__ */ jsx(FocusScope, { children: /* @__PURE__ */ jsxs(CalendarPopoverElement, {
|
|
239
|
+
...dialogProps,
|
|
240
|
+
onMouseDown,
|
|
241
|
+
onKeyDown,
|
|
242
|
+
children: [children, t5]
|
|
243
|
+
}) });
|
|
244
|
+
$[22] = children;
|
|
245
|
+
$[23] = dialogProps;
|
|
246
|
+
$[24] = onKeyDown;
|
|
247
|
+
$[25] = t5;
|
|
248
|
+
$[26] = t6;
|
|
249
|
+
} else t6 = $[26];
|
|
250
|
+
let t7;
|
|
251
|
+
if ($[27] !== close || $[28] !== isOpen || $[29] !== popoverRef || $[30] !== positionProps.style || $[31] !== shouldCloseOnInteractOutside || $[32] !== t4 || $[33] !== t6) {
|
|
252
|
+
t7 = /* @__PURE__ */ jsx(_Popover, {
|
|
253
|
+
ref: popoverRef,
|
|
254
|
+
isNonModal: true,
|
|
255
|
+
shouldCloseOnBlur: true,
|
|
256
|
+
isOpen,
|
|
257
|
+
style: positionProps.style,
|
|
258
|
+
placement: t4,
|
|
259
|
+
shouldCloseOnInteractOutside,
|
|
260
|
+
onClose: close,
|
|
261
|
+
children: t6
|
|
262
|
+
});
|
|
263
|
+
$[27] = close;
|
|
264
|
+
$[28] = isOpen;
|
|
265
|
+
$[29] = popoverRef;
|
|
266
|
+
$[30] = positionProps.style;
|
|
267
|
+
$[31] = shouldCloseOnInteractOutside;
|
|
268
|
+
$[32] = t4;
|
|
269
|
+
$[33] = t6;
|
|
270
|
+
$[34] = t7;
|
|
271
|
+
} else t7 = $[34];
|
|
272
|
+
return t7;
|
|
273
|
+
}
|
|
274
|
+
function _temp(e) {
|
|
275
|
+
for (let element = e.target; element && element !== e.currentTarget; element = element.parentElement) if (isFocusable(element)) return;
|
|
276
|
+
e.preventDefault();
|
|
277
|
+
}
|
|
278
|
+
//#endregion
|
|
279
|
+
export { CalendarPopover, useFieldCalendar };
|
|
280
|
+
|
|
281
|
+
//# sourceMappingURL=CalendarPopover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarPopover.js","names":["getFocusableTreeWalker","isFocusable","useControlledState","FocusableRefValue","tasty","FocusEvent","HTMLAttributes","KeyboardEvent","MouseEvent","ReactNode","RefObject","useId","useRef","useState","DismissButton","FocusScope","Placement","useOverlayPosition","usePopoverSync","Popover","EDIT_KEYS","Set","CalendarPopoverElement","qa","role","styles","display","flow","fill","border","radius","shadow","outline","width","height","overflow","FieldCalendarOptions","fieldRef","HTMLElement","isDisabled","isReadOnly","isOpen","defaultOpen","onOpenChange","useFieldCalendar","options","$","_c","setOpen","shouldFocusCalendar","setShouldFocusCalendar","popoverRef","calendarRef","segmentRef","canOpen","t0","target","Node","current","contains","isInField","t1","focusCalendar","focus","open","t2","document","activeElement","segment","isConnected","querySelector","close","t3","onFocus","e","onClickCapture","e_0","onKeyDownCapture","e_1","key","preventDefault","stopPropagation","altKey","ctrlKey","metaKey","length","has","onBlur","e_2","next","relatedTarget","fieldProps","t4","CalendarPopoverProps","onClose","HTMLDivElement","anchorRef","placement","shouldFlip","dialogProps","children","CalendarPopover","props","id","menuId","triggerRef","containerRef","dismissOnInnerButtonPress","targetRef","overlayRef","offset","overlayProps","positionProps","actualPlacement","el","closest","setTimeout","shouldCloseOnInteractOutside","onMouseDown","_temp","popover","walker","tabbable","first","firstChild","currentNode","last","lastChild","shiftKey","onKeyDown","undefined","t5","t6","t7","style","element","Element","currentTarget","parentElement","_c","Popover"],"sources":["../../../../src/components/fields/DatePicker/CalendarPopover.tsx"],"sourcesContent":["import { getFocusableTreeWalker } from '@react-aria/focus';\nimport { isFocusable } from '@react-aria/utils';\nimport { useControlledState } from '@react-stately/utils';\nimport { FocusableRefValue } from '@react-types/shared';\nimport { tasty } from '@tenphi/tasty';\nimport {\n FocusEvent,\n HTMLAttributes,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n RefObject,\n useId,\n useRef,\n useState,\n} from 'react';\nimport {\n DismissButton,\n FocusScope,\n Placement,\n useOverlayPosition,\n} from 'react-aria';\n\nimport { usePopoverSync } from '../../../utils/react/usePopoverSync';\nimport { Popover } from '../../overlays/Modal/Popover';\n\n// Keys that change a segment's value: typing goes through any one-character\n// key, the rest are the spin and clear keys.\nconst EDIT_KEYS = new Set([\n 'ArrowUp',\n 'ArrowDown',\n 'PageUp',\n 'PageDown',\n 'Home',\n 'End',\n 'Backspace',\n 'Delete',\n]);\n\nconst CalendarPopoverElement = tasty({\n qa: 'CalendarPopover',\n role: 'dialog',\n styles: {\n display: 'flex',\n flow: 'column',\n fill: '#surface',\n border: true,\n radius: '1cr',\n shadow: '$shadow',\n outline: 0,\n width: 'max-content',\n height: 'initial initial (50dvh - 5x)',\n overflow: 'auto',\n },\n});\n\nexport interface FieldCalendarOptions {\n /** The field the calendar opens from. */\n fieldRef: RefObject<HTMLElement | null>;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isOpen?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (isOpen: boolean) => void;\n}\n\n/**\n * A calendar that opens from its date field instead of a button: a press in\n * the field, an edit of a date, or Alt+Down, which also moves focus into the\n * calendar. Tabbing into the field doesn't open it. While the dates are typed\n * it stays non-modal, and focus stays in the field.\n */\nexport function useFieldCalendar(options: FieldCalendarOptions) {\n let { fieldRef, isDisabled, isReadOnly } = options;\n let [isOpen, setOpen] = useControlledState(\n options.isOpen,\n options.defaultOpen ?? false,\n options.onOpenChange,\n );\n // Opened with Alt+Down, the calendar takes focus as it mounts.\n let [shouldFocusCalendar, setShouldFocusCalendar] = useState(false);\n let popoverRef = useRef<HTMLDivElement>(null);\n let calendarRef = useRef<FocusableRefValue<HTMLElement>>(null);\n // The segment focus goes back to when it leaves the calendar.\n let segmentRef = useRef<HTMLElement | null>(null);\n let canOpen = !isDisabled && !isReadOnly;\n\n let isInField = (target: EventTarget | null) =>\n target instanceof Node && !!fieldRef.current?.contains(target);\n\n let open = (focusCalendar: boolean) => {\n if (!canOpen) return;\n\n if (focusCalendar && isOpen) calendarRef.current?.focus();\n\n setShouldFocusCalendar(focusCalendar);\n setOpen(true);\n };\n\n let close = () => {\n // Before the calendar unmounts and drops focus on the page.\n if (popoverRef.current?.contains(document.activeElement)) {\n let segment = segmentRef.current?.isConnected\n ? segmentRef.current\n : fieldRef.current?.querySelector<HTMLElement>('[role=\"spinbutton\"]');\n\n segment?.focus();\n }\n\n setShouldFocusCalendar(false);\n setOpen(false);\n };\n\n let fieldProps: HTMLAttributes<HTMLElement> = {\n onFocus(e: FocusEvent) {\n if (isInField(e.target)) segmentRef.current = e.target as HTMLElement;\n },\n // Capture, since each date's own press handling stops the click there.\n onClickCapture(e: MouseEvent) {\n if (isInField(e.target)) open(false);\n },\n // Capture, so the keys reach this before the segments and React Aria's\n // own Alt+Down handling take them.\n onKeyDownCapture(e: KeyboardEvent) {\n if (!isInField(e.target)) return;\n\n if (e.key === 'Escape') {\n if (!isOpen) return;\n\n // A surrounding dialog stays open.\n e.preventDefault();\n e.stopPropagation();\n close();\n\n return;\n }\n\n if (e.altKey && (e.key === 'ArrowDown' || e.key === 'ArrowUp')) {\n e.preventDefault();\n e.stopPropagation();\n open(true);\n\n return;\n }\n\n if (e.altKey || e.ctrlKey || e.metaKey) return;\n\n if (e.key.length === 1 || EDIT_KEYS.has(e.key)) open(false);\n },\n onBlur(e: FocusEvent) {\n if (!isOpen || !isInField(e.target)) return;\n\n let next = e.relatedTarget;\n\n // Focus that goes nowhere, to another window or a press on the page,\n // leaves it open: a press outside closes it on its own.\n if (\n !(next instanceof Node) ||\n fieldRef.current?.contains(next) ||\n popoverRef.current?.contains(next)\n ) {\n return;\n }\n\n close();\n },\n };\n\n return {\n isOpen,\n shouldFocusCalendar,\n close,\n fieldProps,\n popoverRef,\n calendarRef,\n };\n}\n\nexport interface CalendarPopoverProps {\n isOpen: boolean;\n onClose: () => void;\n /** The field the calendar opens from: a press there keeps it open. */\n fieldRef: RefObject<HTMLElement | null>;\n popoverRef: RefObject<HTMLDivElement | null>;\n /** What the popover is positioned against. */\n anchorRef: RefObject<HTMLElement | null>;\n placement: Placement;\n shouldFlip?: boolean;\n /** React Aria's dialog props: the id that keeps the field focused while focus is in here, and its label. */\n dialogProps: HTMLAttributes<HTMLElement>;\n children: ReactNode;\n}\n\n/** The non-modal popover `useFieldCalendar` opens. */\nexport function CalendarPopover(props: CalendarPopoverProps) {\n let {\n isOpen,\n onClose: close,\n fieldRef,\n popoverRef,\n anchorRef,\n placement,\n shouldFlip,\n dialogProps,\n children,\n } = props;\n let id = useId();\n\n usePopoverSync({\n menuId: id,\n isOpen,\n onClose: close,\n triggerRef: fieldRef,\n containerRef: popoverRef,\n // The calendar's own buttons page through months.\n dismissOnInnerButtonPress: false,\n });\n\n let { overlayProps: positionProps, placement: actualPlacement } =\n useOverlayPosition({\n targetRef: anchorRef,\n overlayRef: popoverRef,\n placement,\n shouldFlip,\n offset: 8,\n isOpen,\n onClose: close,\n });\n\n let shouldCloseOnInteractOutside = (el: Element) => {\n // While it animates out, a press goes through to whatever it lands on.\n if (!isOpen) return false;\n\n // The field opens the calendar, so a press there keeps it open.\n if (fieldRef.current?.contains(el)) return false;\n if (el.closest('[data-popover-keep]')) return false;\n // Another popover's trigger opens its popover, which closes this one.\n if (el.closest('[data-popover-trigger]')) return false;\n\n // A button's own press runs first, then the calendar closes.\n if (el.closest('[data-popover-dismiss]')) {\n setTimeout(close, 0);\n\n return false;\n }\n\n return true;\n };\n\n // A press on a part of the calendar that takes no focus keeps focus where it\n // is: in the date being typed, or on the calendar's focused day.\n let onMouseDown = (e: MouseEvent) => {\n for (\n let element = e.target as Element | null;\n element && element !== e.currentTarget;\n element = element.parentElement\n ) {\n if (isFocusable(element)) return;\n }\n\n e.preventDefault();\n };\n\n // Tab off either end of the calendar goes back to the field.\n let onKeyDown = (e: KeyboardEvent) => {\n let popover = popoverRef.current;\n\n if (e.key !== 'Tab' || !popover) return;\n\n let walker = getFocusableTreeWalker(popover, { tabbable: true });\n let first = walker.firstChild();\n\n walker.currentNode = popover;\n\n let last = walker.lastChild();\n\n if (document.activeElement === (e.shiftKey ? first : last)) {\n e.preventDefault();\n close();\n }\n };\n\n return (\n <Popover\n ref={popoverRef}\n isNonModal\n shouldCloseOnBlur\n isOpen={isOpen}\n // oxlint-disable-next-line tasty/no-style-prop -- React Aria's overlay positioning computes these coordinates\n style={positionProps.style}\n placement={actualPlacement ?? undefined}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n onClose={close}\n >\n <FocusScope>\n <CalendarPopoverElement\n {...dialogProps}\n onMouseDown={onMouseDown}\n onKeyDown={onKeyDown}\n >\n {children}\n <DismissButton onDismiss={close} />\n </CalendarPopoverElement>\n </FocusScope>\n </Popover>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.205.0 | 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 { wrapWithField } from "../../form/wrapper.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.205.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { getValidationMods } from "../../form/validation/resolve-validation-props.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.205.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { Dialog } from "../../overlays/Dialog/Dialog.js";
|
|
@@ -57,22 +57,23 @@ function DatePicker(rawProps, ref) {
|
|
|
57
57
|
const timeMaxValue = props.maxValue && "hour" in props.maxValue ? props.maxValue : void 0;
|
|
58
58
|
const timeGranularity = state.granularity === "hour" || state.granularity === "minute" || state.granularity === "second" ? state.granularity : null;
|
|
59
59
|
const showTimeField = !!timeGranularity;
|
|
60
|
-
const t1 = props.
|
|
61
|
-
const t2 = props.
|
|
62
|
-
|
|
60
|
+
const t1 = props.inputStyles;
|
|
61
|
+
const t2 = props.isReadOnly;
|
|
62
|
+
const t3 = props.shouldFlip;
|
|
63
|
+
let t4;
|
|
63
64
|
if ($[1] !== buttonProps || $[2] !== focusPropsButton) {
|
|
64
|
-
|
|
65
|
+
t4 = mergeProps$1(buttonProps, focusPropsButton);
|
|
65
66
|
$[1] = buttonProps;
|
|
66
67
|
$[2] = focusPropsButton;
|
|
67
|
-
$[3] =
|
|
68
|
-
} else
|
|
69
|
-
let
|
|
68
|
+
$[3] = t4;
|
|
69
|
+
} else t4 = $[3];
|
|
70
|
+
let t5;
|
|
70
71
|
if ($[4] !== calendarProps) {
|
|
71
|
-
|
|
72
|
+
t5 = /* @__PURE__ */ jsx(_Calendar, { ...calendarProps });
|
|
72
73
|
$[4] = calendarProps;
|
|
73
|
-
$[5] =
|
|
74
|
-
} else
|
|
75
|
-
const
|
|
74
|
+
$[5] = t5;
|
|
75
|
+
} else t5 = $[5];
|
|
76
|
+
const t6 = showTimeField && /* @__PURE__ */ jsx(_TimeInput, {
|
|
76
77
|
label: t("datePicker.time", "Time"),
|
|
77
78
|
value: state.timeValue,
|
|
78
79
|
placeholderValue: timePlaceholder,
|
|
@@ -83,19 +84,19 @@ function DatePicker(rawProps, ref) {
|
|
|
83
84
|
hideTimeZone: props.hideTimeZone,
|
|
84
85
|
onChange: state.setTimeValue
|
|
85
86
|
});
|
|
86
|
-
let
|
|
87
|
-
if ($[6] !== dialogProps || $[7] !==
|
|
88
|
-
|
|
87
|
+
let t7;
|
|
88
|
+
if ($[6] !== dialogProps || $[7] !== t5 || $[8] !== t6) {
|
|
89
|
+
t7 = /* @__PURE__ */ jsxs(Dialog, {
|
|
89
90
|
...dialogProps,
|
|
90
91
|
width: "max-content",
|
|
91
92
|
overflow: "auto",
|
|
92
|
-
children: [
|
|
93
|
+
children: [t5, t6]
|
|
93
94
|
});
|
|
94
95
|
$[6] = dialogProps;
|
|
95
|
-
$[7] =
|
|
96
|
-
$[8] =
|
|
97
|
-
$[9] =
|
|
98
|
-
} else
|
|
96
|
+
$[7] = t5;
|
|
97
|
+
$[8] = t6;
|
|
98
|
+
$[9] = t7;
|
|
99
|
+
} else t7 = $[9];
|
|
99
100
|
const component = /* @__PURE__ */ jsx(_DateInputBase, {
|
|
100
101
|
ref: targetRef,
|
|
101
102
|
wrapperRef: domRef,
|
|
@@ -103,9 +104,10 @@ function DatePicker(rawProps, ref) {
|
|
|
103
104
|
inputType: "datepicker",
|
|
104
105
|
autoFocus,
|
|
105
106
|
styles,
|
|
107
|
+
inputStyles: t1,
|
|
106
108
|
disableFocusRing: isFocusedButton,
|
|
107
109
|
isDisabled,
|
|
108
|
-
isReadOnly:
|
|
110
|
+
isReadOnly: t2,
|
|
109
111
|
isInvalid,
|
|
110
112
|
isValid,
|
|
111
113
|
size,
|
|
@@ -117,13 +119,13 @@ function DatePicker(rawProps, ref) {
|
|
|
117
119
|
placement: props.placement ?? "bottom right",
|
|
118
120
|
targetRef: props.targetRef ?? targetRef,
|
|
119
121
|
isOpen,
|
|
120
|
-
shouldFlip:
|
|
122
|
+
shouldFlip: t3,
|
|
121
123
|
onOpenChange: setOpen,
|
|
122
124
|
children: [/* @__PURE__ */ jsx(DatePickerButton, {
|
|
123
125
|
size,
|
|
124
|
-
...
|
|
126
|
+
...t4,
|
|
125
127
|
isDisabled
|
|
126
|
-
}),
|
|
128
|
+
}), t7]
|
|
127
129
|
}),
|
|
128
130
|
children: /* @__PURE__ */ jsx(DatePickerInput, {
|
|
129
131
|
useLocale: useLocaleProp,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","names":["FocusableRef","BaseProps","Styles","forwardRef","RefObject","useRef","AriaDatePickerProps","DateValue","Placement","useDatePicker","useFocusRing","useDatePickerState","useI18n","FieldBaseProps","mergeProps","useFieldProps","wrapWithField","FieldLayoutStyleProps","splitFieldLayout","Calendar","Dialog","DialogTrigger","DateInputBase","DatePickerButton","DatePickerInput","DEFAULT_DATE_PROPS","TimeInput","DateFieldBase","useFocusManagerRef","CubeDatePickerProps","Omit","T","wrapperStyles","inputStyles","triggerStyles","styles","size","maxVisibleMonths","shouldFlip","targetRef","HTMLElement","placement","useLocale","DatePicker","rawProps","ref","$","_c","t","t0","Symbol","for","defaultValidationTrigger","props","Object","assign","fieldLayout","overStyles","qa","placeholderValue","isDisabled","isInvalid","isValid","useLocaleProp","autoFocus","state","shouldCloseOnSelect","hasTime","isOpen","setOpen","domRef","focusProps","within","isTextInput","isFocused","isFocusedButton","focusPropsButton","groupProps","labelProps","fieldProps","buttonProps","dialogProps","calendarProps","placeholder","undefined","timePlaceholder","timeMinValue","minValue","timeMaxValue","maxValue","timeGranularity","granularity","showTimeField","t1","isReadOnly","t2","t3","t4","t5","timeValue","hourCycle","hideTimeZone","setTimeValue","t6","component","field","_DatePicker","displayName","_c","mergeProps","Calendar","TimeInput","DateInputBase"],"sources":["../../../../src/components/fields/DatePicker/DatePicker.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { BaseProps, Styles } from '@tenphi/tasty';\nimport { forwardRef, RefObject, useRef } from 'react';\nimport {\n AriaDatePickerProps,\n DateValue,\n Placement,\n useDatePicker,\n useFocusRing,\n} from 'react-aria';\nimport { useDatePickerState } 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 { Calendar } from '../../other/Calendar/Calendar';\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\nexport interface CubeDatePickerProps<T extends DateValue = DateValue>\n extends\n Omit<\n AriaDatePickerProps<T>,\n 'errorMessage' | 'form' | 'name' | keyof DateFieldBase<T>\n >,\n DateFieldBase<T>,\n BaseProps,\n FieldLayoutStyleProps,\n FieldBaseProps<T | null | undefined> {\n wrapperStyles?: Styles;\n inputStyles?: Styles;\n triggerStyles?: 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 DatePicker<T extends DateValue>(\n rawProps: CubeDatePickerProps<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 placeholderValue,\n isDisabled,\n isInvalid,\n isValid,\n useLocale: useLocaleProp,\n autoFocus,\n } = props;\n let targetRef = useRef<HTMLDivElement>(null);\n let state = useDatePickerState({\n ...props,\n shouldCloseOnSelect: () => !state.hasTime,\n });\n let { isOpen, setOpen } = state;\n\n let domRef = useRef<HTMLDivElement>(null);\n\n useFocusManagerRef(ref, domRef);\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 {\n groupProps,\n labelProps,\n fieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDatePicker(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 || 'DatePicker'}\n inputType=\"datepicker\"\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={props.placement ?? 'bottom right'}\n targetRef={props.targetRef ?? targetRef}\n isOpen={isOpen}\n shouldFlip={props.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 <Calendar {...calendarProps} />\n {showTimeField && (\n <TimeInput\n label={t('datePicker.time', 'Time')}\n value={state.timeValue}\n placeholderValue={timePlaceholder}\n granularity={timeGranularity}\n minValue={timeMinValue}\n maxValue={timeMaxValue}\n hourCycle={props.hourCycle}\n hideTimeZone={props.hideTimeZone}\n onChange={state.setTimeValue}\n />\n )}\n </Dialog>\n </DialogTrigger>\n }\n >\n <DatePickerInput useLocale={useLocaleProp} {...fieldProps} />\n </DateInputBase>\n );\n\n return wrapWithField(component, {\n ...props,\n ...fieldLayout.field,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n}\n\nconst _DatePicker = forwardRef(DatePicker);\n\n_DatePicker.displayName = 'DatePicker';\n\nexport { _DatePicker as DatePicker };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","names":["FocusableRef","BaseProps","Styles","forwardRef","RefObject","useRef","AriaDatePickerProps","DateValue","Placement","useDatePicker","useFocusRing","useDatePickerState","useI18n","FieldBaseProps","mergeProps","useFieldProps","wrapWithField","FieldLayoutStyleProps","splitFieldLayout","Calendar","Dialog","DialogTrigger","DateInputBase","DatePickerButton","DatePickerInput","DEFAULT_DATE_PROPS","TimeInput","DateFieldBase","useFocusManagerRef","CubeDatePickerProps","Omit","T","wrapperStyles","inputStyles","triggerStyles","styles","size","maxVisibleMonths","shouldFlip","targetRef","HTMLElement","placement","useLocale","DatePicker","rawProps","ref","$","_c","t","t0","Symbol","for","defaultValidationTrigger","props","Object","assign","fieldLayout","overStyles","qa","placeholderValue","isDisabled","isInvalid","isValid","useLocaleProp","autoFocus","state","shouldCloseOnSelect","hasTime","isOpen","setOpen","domRef","focusProps","within","isTextInput","isFocused","isFocusedButton","focusPropsButton","groupProps","labelProps","fieldProps","buttonProps","dialogProps","calendarProps","placeholder","undefined","timePlaceholder","timeMinValue","minValue","timeMaxValue","maxValue","timeGranularity","granularity","showTimeField","t1","t2","isReadOnly","t3","t4","t5","t6","timeValue","hourCycle","hideTimeZone","setTimeValue","t7","component","field","_DatePicker","displayName","_c","mergeProps","Calendar","TimeInput","DateInputBase"],"sources":["../../../../src/components/fields/DatePicker/DatePicker.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { BaseProps, Styles } from '@tenphi/tasty';\nimport { forwardRef, RefObject, useRef } from 'react';\nimport {\n AriaDatePickerProps,\n DateValue,\n Placement,\n useDatePicker,\n useFocusRing,\n} from 'react-aria';\nimport { useDatePickerState } 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 { Calendar } from '../../other/Calendar/Calendar';\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\nexport interface CubeDatePickerProps<T extends DateValue = DateValue>\n extends\n Omit<\n AriaDatePickerProps<T>,\n 'errorMessage' | 'form' | 'name' | keyof DateFieldBase<T>\n >,\n DateFieldBase<T>,\n BaseProps,\n FieldLayoutStyleProps,\n FieldBaseProps<T | null | undefined> {\n wrapperStyles?: Styles;\n inputStyles?: Styles;\n triggerStyles?: 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 DatePicker<T extends DateValue>(\n rawProps: CubeDatePickerProps<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 placeholderValue,\n isDisabled,\n isInvalid,\n isValid,\n useLocale: useLocaleProp,\n autoFocus,\n } = props;\n let targetRef = useRef<HTMLDivElement>(null);\n let state = useDatePickerState({\n ...props,\n shouldCloseOnSelect: () => !state.hasTime,\n });\n let { isOpen, setOpen } = state;\n\n let domRef = useRef<HTMLDivElement>(null);\n\n useFocusManagerRef(ref, domRef);\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 {\n groupProps,\n labelProps,\n fieldProps,\n buttonProps,\n dialogProps,\n calendarProps,\n } = useDatePicker(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 || 'DatePicker'}\n inputType=\"datepicker\"\n autoFocus={autoFocus}\n styles={styles}\n inputStyles={props.inputStyles}\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={props.placement ?? 'bottom right'}\n targetRef={props.targetRef ?? targetRef}\n isOpen={isOpen}\n shouldFlip={props.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 <Calendar {...calendarProps} />\n {showTimeField && (\n <TimeInput\n label={t('datePicker.time', 'Time')}\n value={state.timeValue}\n placeholderValue={timePlaceholder}\n granularity={timeGranularity}\n minValue={timeMinValue}\n maxValue={timeMaxValue}\n hourCycle={props.hourCycle}\n hideTimeZone={props.hideTimeZone}\n onChange={state.setTimeValue}\n />\n )}\n </Dialog>\n </DialogTrigger>\n }\n >\n <DatePickerInput useLocale={useLocaleProp} {...fieldProps} />\n </DateInputBase>\n );\n\n return wrapWithField(component, {\n ...props,\n ...fieldLayout.field,\n labelProps: mergeProps(props.labelProps, labelProps),\n });\n}\n\nconst _DatePicker = forwardRef(DatePicker);\n\n_DatePicker.displayName = 'DatePicker';\n\nexport { _DatePicker as DatePicker };\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.205.0 | Cube Dev Team */
|
|
2
2
|
import { ItemActionProvider } from "../../actions/ItemActionContext.js";
|
|
3
3
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
4
4
|
import { CalendarIcon } from "../../../icons/CalendarIcon.js";
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.205.0 | Cube Dev Team */
|
|
2
2
|
import { Space } from "../../layout/Space.js";
|
|
3
3
|
import { tasty } from "@tenphi/tasty";
|
|
4
4
|
//#region src/components/fields/DatePicker/DatePickerElement.tsx
|
|
5
5
|
const DatePickerElement = tasty(Space, { styles: {
|
|
6
|
-
|
|
6
|
+
flow: "row wrap",
|
|
7
|
+
gap: ".5x 0",
|
|
8
|
+
minWidth: "min-content",
|
|
7
9
|
outline: {
|
|
8
10
|
"": "#purple-03.0",
|
|
9
11
|
focused: "#purple-03"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerElement.js","names":["tasty","Space","DatePickerElement","styles","gap","outline","focused","radius"],"sources":["../../../../src/components/fields/DatePicker/DatePickerElement.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { Space } from '../../layout/Space';\n\nexport const DatePickerElement = tasty(Space, {\n styles: {\n gap: 0,\n outline: {\n '': '#purple-03.0',\n focused: '#purple-03',\n },\n radius: true,\n },\n});\n"],"mappings":";;;;AAIA,MAAaE,oBAAoBF,MAAMC,OAAO,EAC5CE,QAAQ;CACNC,KAAK;CACLC,SAAS;EACP,IAAI;EACJC,SAAS;CACX;CACAC,QAAQ;AACV,EACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"DatePickerElement.js","names":["tasty","Space","DatePickerElement","styles","flow","gap","minWidth","outline","focused","radius"],"sources":["../../../../src/components/fields/DatePicker/DatePickerElement.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { Space } from '../../layout/Space';\n\nexport const DatePickerElement = tasty(Space, {\n styles: {\n // Too narrow for one row, the end date wraps under the start date, and the\n // picker is never narrower than its widest row.\n flow: 'row wrap',\n gap: '.5x 0',\n minWidth: 'min-content',\n outline: {\n '': '#purple-03.0',\n focused: '#purple-03',\n },\n radius: true,\n },\n});\n"],"mappings":";;;;AAIA,MAAaE,oBAAoBF,MAAMC,OAAO,EAC5CE,QAAQ;CAGNC,MAAM;CACNC,KAAK;CACLC,UAAU;CACVC,SAAS;EACP,IAAI;EACJC,SAAS;CACX;CACAC,QAAQ;AACV,EACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.205.0 | 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";
|
|
@@ -33,6 +33,16 @@ export interface CubeDateRangePickerProps<T extends DateValue = DateValue> exten
|
|
|
33
33
|
*/
|
|
34
34
|
placement?: Placement;
|
|
35
35
|
useLocale?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Renders no calendar button, so the field fits a narrower row. The calendar
|
|
38
|
+
* opens from the field instead: a press in it, an edit of a date (typing,
|
|
39
|
+
* or Up and Down Arrow), or Alt+Down or Alt+Up, which also move focus into
|
|
40
|
+
* the calendar. Tabbing into the field doesn't open it, and while the dates
|
|
41
|
+
* are typed focus stays in the field. Escape, a press outside, picking a
|
|
42
|
+
* range without times, or focus moving on to another element closes it.
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
hideTrigger?: boolean;
|
|
36
46
|
}
|
|
37
47
|
declare const _DateRangePicker: <T extends DateValue = DateValue>(props: CubeDateRangePickerProps<T> & {
|
|
38
48
|
ref?: Ref<HTMLElement>;
|