@cube-dev/ui-kit 0.0.0-canary-0b79a39 → 0.0.0-canary-c02e70f
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 +6 -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 +23 -21
- package/dist/components/GlobalStyles.js.map +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/Banner/Banner.js.map +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 +128 -66
- package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +451 -280
- package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +57 -93
- package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js.map +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 +49 -69
- package/dist/components/actions/Menu/Menu.js.map +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/CopySnippet/CopySnippet.js.map +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +44 -60
- package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
- package/dist/components/content/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 +39 -65
- package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
- package/dist/components/content/Item/Item.js +208 -263
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +70 -145
- package/dist/components/content/ItemBadge/ItemBadge.js.map +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 +39 -18
- package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
- package/dist/components/content/Layout/LayoutContent.js +100 -48
- package/dist/components/content/Layout/LayoutContent.js.map +1 -1
- package/dist/components/content/Layout/LayoutContext.js +211 -95
- package/dist/components/content/Layout/LayoutContext.js.map +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/LayoutFooter.js.map +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 +240 -123
- package/dist/components/content/Layout/LayoutPane.js.map +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/LayoutPanelHeader.js.map +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/hooks/useTinyScrollbar.js.map +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 +28 -48
- package/dist/components/content/Result/Result.js.map +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 +9 -17
- package/dist/components/content/TextItem/TextItem.js.map +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/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +68 -105
- package/dist/components/content/Tree/use-checkbox-tree.js.map +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 +106 -138
- package/dist/components/content/use-auto-tooltip.js.map +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/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/TableView.js +1 -1
- package/dist/components/data/TableBase/column-menu.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-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-order.js +30 -31
- package/dist/components/data/TableBase/use-column-order.js.map +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 +38 -42
- package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +19 -57
- package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +55 -64
- package/dist/components/data/TableBase/use-table-tree-state.js.map +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/ComboBox.js.map +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/DateInput.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +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.js +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +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/FilterPicker/FilterPicker.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 +32 -38
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +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/PasswordInput/PasswordInput.js.map +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/Radio.js.map +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/HueSlider.js.map +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/SliderThumb.js.map +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js.map +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 +738 -1139
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.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/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/ColorPanel.js.map +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/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +10 -15
- package/dist/components/form/Form/Field.js.map +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +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/react.js.map +1 -1
- package/dist/components/form/Form/modern/store.js +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/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/Board/Board.js +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.js +1 -1
- package/dist/components/layout/Board/Widget.js +1 -1
- package/dist/components/layout/Board/WidgetHost.js +1 -1
- package/dist/components/layout/Board/board-context.js +1 -1
- package/dist/components/layout/Board/board-store.js +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js +1 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
- package/dist/components/layout/Board/grid-core/collision.js +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js +1 -1
- package/dist/components/layout/Board/grid-core/group-move.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/placement.js +1 -1
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/index.js +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/use-board-layout.js +1 -1
- package/dist/components/layout/Board/use-board-registry.js +1 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
- package/dist/components/layout/Board/use-board-selection.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 +129 -48
- package/dist/components/layout/Panel.js.map +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 +227 -347
- package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js.map +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/TabButton.js.map +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/TabsAction.js.map +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-editing.js.map +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/CalendarGrid.js.map +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +497 -515
- package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js.map +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/Dialog.js.map +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.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/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/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 +266 -161
- 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 +18 -9
- package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +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/Tooltip.js.map +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 +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useFormatter.js.map +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/navigationAdapter.default.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/escapePropagation.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/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/useKeySymbols.js.map +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/usePopoverSync.js.map +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/CreateComponent.md +3 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarPanel.js","names":["CalendarDate","endOfMonth","endOfYear","isSameMonth","startOfMonth","startOfYear","toCalendar","today","KeyboardEvent","ReactElement","Ref","useMemo","useState","DateValue","useDateFormatter","CalendarState","RangeCalendarState","useI18n","mergeProps","CalendarGrid","CalendarHeader","CubePeriodGridCell","PeriodGrid","CalendarElement","Props","CubeCalendarView","YEAR_CELLS","MONTH_COLUMNS","YEAR_COLUMNS","PERIOD_GRID_STYLES","width","const","Formatter","format","date","Date","CubeCalendarPanelProps","state","title","calendarProps","prevButtonProps","nextButtonProps","hasMonthYearNavigation","selectedRange","start","end","pickerMode","elementRef","HTMLElement","CalendarPanel","props","$","_c","t","t0","undefined","view","setView","anchor","setAnchor","focusedDate","visibleStart","visibleRange","calendar","timeZone","calendarId","identifier","t1","month","monthFormatter","t2","shortMonthFormatter","t3","year","yearFormatter","t4","todayDate","t5","formatter","toDate","t6","isDisabled","maxValue","minValue","compare","isPeriodDisabled","t7","hasNavigation","t8","next","openView","t9","e","key","preventDefault","stopPropagation","setFocused","onKeyDown","header","body","t10","set","monthDate","t11","monthCount","getMonthsInYear","t12","_","index","date_0","label","isSelected","isCurrent","Array","from","length","cells","T0","nextYear","t13","t14","t15","prevYear","subtract","years","add","t16","t17","Symbol","for","onPress","t18","t19","t20","t21","index_0","setFocusedDate","t22","t23","t24","index_1","delta","months","delta_0","t25","yearDate","decadeStart","Math","floor","firstYear","__0","index_2","year_0","date_1","isOutside","cells_0","t26","t27","index_3","index_4","t28","t29","delta_1","delta_2","t30"],"sources":["../../../../src/components/other/Calendar/CalendarPanel.tsx"],"sourcesContent":["import {\n CalendarDate,\n endOfMonth,\n endOfYear,\n isSameMonth,\n startOfMonth,\n startOfYear,\n toCalendar,\n today,\n} from '@internationalized/date';\nimport { KeyboardEvent, ReactElement, Ref, useMemo, useState } from 'react';\nimport { DateValue, useDateFormatter } from 'react-aria';\nimport { CalendarState, RangeCalendarState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps } from '../../../utils/react';\n\nimport { CalendarGrid } from './CalendarGrid';\nimport { CalendarHeader } from './CalendarHeader';\nimport { CubePeriodGridCell, PeriodGrid } from './PeriodGrid';\nimport { CalendarElement } from './styled';\n\nimport type { Props } from '../../../props';\n\n/** Which panel the calendar currently shows. */\nexport type CubeCalendarView = 'day' | 'month' | 'year';\n\n/** The year grid shows a decade plus one adjacent year on either side. */\nconst YEAR_CELLS = 12;\nconst MONTH_COLUMNS = 3;\nconst YEAR_COLUMNS = 3;\n\n/**\n * Exactly as wide as seven day cells (`3x` cell + a `2bw` gutter), so switching\n * between the day, month and year panels keeps the popover roughly in place.\n */\nconst PERIOD_GRID_STYLES = { width: '(7 * (3x + 2bw))' } as const;\n\ninterface Formatter {\n format(date: Date): string;\n}\n\nexport interface CubeCalendarPanelProps {\n state: CalendarState | RangeCalendarState;\n /** The visible range title provided by React Aria. */\n title: string;\n calendarProps: Props;\n prevButtonProps: Props;\n nextButtonProps: Props;\n /**\n * Whether the header lets the user jump straight to a month or a year.\n * @default true\n */\n hasMonthYearNavigation?: boolean;\n selectedRange?: { start: DateValue; end: DateValue };\n pickerMode?: 'day' | 'week';\n elementRef?: Ref<HTMLElement>;\n}\n\n/**\n * The body shared by `Calendar` and `RangeCalendar`: a header plus one of three\n * panels. The month and year panels only *navigate* — they move the focused\n * date and never select a value, so a range selection in progress survives a\n * jump to another month.\n */\nexport function CalendarPanel(props: CubeCalendarPanelProps) {\n const { t } = useI18n();\n\n let {\n state,\n title,\n calendarProps,\n prevButtonProps,\n nextButtonProps,\n hasMonthYearNavigation = true,\n selectedRange,\n pickerMode,\n elementRef,\n } = props;\n\n let [view, setView] = useState<CubeCalendarView>('day');\n // The period the month / year panels navigate around. Seeded from the\n // focused date every time the user leaves the day panel.\n let [anchor, setAnchor] = useState<CalendarDate>(state.focusedDate);\n\n let visibleStart = state.visibleRange.start;\n let calendar = visibleStart.calendar;\n let timeZone = state.timeZone;\n let calendarId = calendar.identifier;\n\n let monthFormatter = useDateFormatter({\n month: 'long',\n timeZone,\n calendar: calendarId,\n });\n let shortMonthFormatter = useDateFormatter({\n month: 'short',\n timeZone,\n calendar: calendarId,\n });\n let yearFormatter = useDateFormatter({\n year: 'numeric',\n timeZone,\n calendar: calendarId,\n });\n\n let todayDate = useMemo(\n () => toCalendar(today(timeZone), calendar),\n [timeZone, calendar],\n );\n\n let format = (formatter: Formatter, date: CalendarDate) =>\n formatter.format(date.toDate(timeZone));\n\n /** Whether a whole period lies outside the calendar's allowed range. */\n let isPeriodDisabled = (start: CalendarDate, end: CalendarDate) =>\n state.isDisabled ||\n (state.minValue != null && end.compare(state.minValue) < 0) ||\n (state.maxValue != null && start.compare(state.maxValue) > 0);\n\n // A multi-month view has no single month or year to drill into.\n let hasNavigation =\n hasMonthYearNavigation && isSameMonth(visibleStart, state.visibleRange.end);\n\n let openView = (next: CubeCalendarView) => {\n setAnchor(state.focusedDate);\n setView(next);\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Step back to the day panel rather than closing the surrounding popover.\n if (view !== 'day' && e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setView('day');\n // The grid the user was in is about to unmount. Claim focus for the day\n // cell, or it falls out of the popover and the next `Escape` is lost.\n state.setFocused(true);\n }\n };\n\n let header: ReactElement;\n let body: ReactElement;\n\n if (view === 'month') {\n let monthDate = (month: number) => startOfMonth(anchor.set({ month }));\n let monthCount = calendar.getMonthsInYear(anchor);\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: monthCount },\n (_, index) => {\n let date = monthDate(index + 1);\n\n return {\n key: `month-${index + 1}`,\n label: format(shortMonthFormatter, date),\n isSelected: isSameMonth(date, visibleStart),\n isCurrent: isSameMonth(date, todayDate),\n isDisabled: isPeriodDisabled(date, endOfMonth(date)),\n };\n },\n );\n\n let prevYear = anchor.subtract({ years: 1 });\n let nextYear = anchor.add({ years: 1 });\n\n header = (\n <CalendarHeader\n segments={[\n {\n key: 'year',\n label: format(yearFormatter, anchor),\n isDisabled: state.isDisabled,\n onPress: () => setView('year'),\n },\n ]}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYear', 'Previous year'),\n isDisabled: isPeriodDisabled(\n startOfYear(prevYear),\n endOfYear(prevYear),\n ),\n onPress: () => setAnchor(prevYear),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYear', 'Next year'),\n isDisabled: isPeriodDisabled(\n startOfYear(nextYear),\n endOfYear(nextYear),\n ),\n onPress: () => setAnchor(nextYear),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n // Remount per view so focus follows the user into the new grid.\n key=\"month\"\n autoFocus\n aria-label={t('calendar.months', 'Months')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={MONTH_COLUMNS}\n focusedIndex={anchor.month - 1}\n onCellPress={(index) => {\n state.setFocusedDate(anchor.set({ month: index + 1 }));\n setView('day');\n }}\n onCellFocus={(index) => setAnchor(anchor.set({ month: index + 1 }))}\n onMoveFocus={(delta) => setAnchor(anchor.add({ months: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta }))}\n />\n );\n } else if (view === 'year') {\n let yearDate = (year: number) => startOfYear(anchor.set({ year }));\n let decadeStart = Math.floor(anchor.year / 10) * 10;\n let firstYear = decadeStart - 1;\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: YEAR_CELLS },\n (_, index) => {\n let year = firstYear + index;\n let date = yearDate(year);\n\n return {\n key: `year-${year}`,\n label: format(yearFormatter, date),\n isSelected: year === visibleStart.year,\n isCurrent: year === todayDate.year,\n isOutside: year < decadeStart || year > decadeStart + 9,\n isDisabled: isPeriodDisabled(date, endOfYear(date)),\n };\n },\n );\n\n header = (\n <CalendarHeader\n title={`${format(yearFormatter, yearDate(decadeStart))} – ${format(\n yearFormatter,\n yearDate(decadeStart + 9),\n )}`}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYears', 'Previous years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart - 10),\n endOfYear(yearDate(decadeStart - 1)),\n ),\n onPress: () => setAnchor(anchor.subtract({ years: 10 })),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYears', 'Next years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart + 10),\n endOfYear(yearDate(decadeStart + 19)),\n ),\n onPress: () => setAnchor(anchor.add({ years: 10 })),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n key=\"year\"\n autoFocus\n aria-label={t('calendar.years', 'Years')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={YEAR_COLUMNS}\n focusedIndex={anchor.year - firstYear}\n onCellPress={(index) => {\n setAnchor(anchor.set({ year: firstYear + index }));\n setView('month');\n }}\n onCellFocus={(index) =>\n setAnchor(anchor.set({ year: firstYear + index }))\n }\n onMoveFocus={(delta) => setAnchor(anchor.add({ years: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta * 10 }))}\n />\n );\n } else {\n header = (\n <CalendarHeader\n title={title}\n segments={\n hasNavigation\n ? [\n {\n key: 'month',\n label: format(monthFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('month'),\n },\n {\n key: 'year',\n label: format(yearFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('year'),\n },\n ]\n : undefined\n }\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n />\n );\n\n body = (\n <CalendarGrid\n state={state}\n selectedRange={selectedRange}\n pickerMode={pickerMode}\n />\n );\n }\n\n return (\n <CalendarElement\n ref={elementRef}\n {...mergeProps(calendarProps, { onKeyDown })}\n >\n {header}\n {body}\n </CalendarElement>\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CalendarPanel.js","names":["CalendarDate","endOfMonth","endOfYear","isSameMonth","startOfMonth","startOfYear","toCalendar","today","KeyboardEvent","ReactElement","Ref","useState","DateValue","useDateFormatter","CalendarState","RangeCalendarState","useI18n","mergeProps","CalendarGrid","CalendarHeader","CubePeriodGridCell","PeriodGrid","CalendarElement","Props","CubeCalendarView","YEAR_CELLS","MONTH_COLUMNS","YEAR_COLUMNS","PERIOD_GRID_STYLES","width","const","Formatter","format","date","Date","CubeCalendarPanelProps","state","title","calendarProps","prevButtonProps","nextButtonProps","hasMonthYearNavigation","selectedRange","start","end","pickerMode","elementRef","HTMLElement","CalendarPanel","props","$","_c","t","t0","undefined","view","setView","anchor","setAnchor","focusedDate","visibleStart","visibleRange","calendar","timeZone","calendarId","identifier","t1","month","monthFormatter","t2","shortMonthFormatter","t3","year","yearFormatter","body","header","onKeyDown","todayDate","t4","formatter","toDate","t5","isDisabled","maxValue","minValue","compare","isPeriodDisabled","t6","hasNavigation","t7","next","openView","t8","e","key","preventDefault","stopPropagation","setFocused","t9","set","monthDate","monthCount","getMonthsInYear","cells","Array","from","length","_","index","date_0","label","isSelected","isCurrent","T0","nextYear","t10","t11","t12","t13","prevYear","subtract","years","add","t14","t15","Symbol","for","onPress","t16","t17","t18","t19","index_0","setFocusedDate","t20","t21","t22","index_1","delta","months","delta_0","t23","yearDate","decadeStart","Math","floor","firstYear","cells_0","__0","index_2","year_0","date_1","isOutside","t24","t25","index_3","index_4","t26","t27","delta_1","delta_2","t28"],"sources":["../../../../src/components/other/Calendar/CalendarPanel.tsx"],"sourcesContent":["import {\n CalendarDate,\n endOfMonth,\n endOfYear,\n isSameMonth,\n startOfMonth,\n startOfYear,\n toCalendar,\n today,\n} from '@internationalized/date';\nimport { KeyboardEvent, ReactElement, Ref, useState } from 'react';\nimport { DateValue, useDateFormatter } from 'react-aria';\nimport { CalendarState, RangeCalendarState } from 'react-stately';\n\nimport { useI18n } from '../../../i18n';\nimport { mergeProps } from '../../../utils/react';\n\nimport { CalendarGrid } from './CalendarGrid';\nimport { CalendarHeader } from './CalendarHeader';\nimport { CubePeriodGridCell, PeriodGrid } from './PeriodGrid';\nimport { CalendarElement } from './styled';\n\nimport type { Props } from '../../../props';\n\n/** Which panel the calendar currently shows. */\nexport type CubeCalendarView = 'day' | 'month' | 'year';\n\n/** The year grid shows a decade plus one adjacent year on either side. */\nconst YEAR_CELLS = 12;\nconst MONTH_COLUMNS = 3;\nconst YEAR_COLUMNS = 3;\n\n/**\n * Exactly as wide as seven day cells (`3x` cell + a `2bw` gutter), so switching\n * between the day, month and year panels keeps the popover roughly in place.\n */\nconst PERIOD_GRID_STYLES = { width: '(7 * (3x + 2bw))' } as const;\n\ninterface Formatter {\n format(date: Date): string;\n}\n\nexport interface CubeCalendarPanelProps {\n state: CalendarState | RangeCalendarState;\n /** The visible range title provided by React Aria. */\n title: string;\n calendarProps: Props;\n prevButtonProps: Props;\n nextButtonProps: Props;\n /**\n * Whether the header lets the user jump straight to a month or a year.\n * @default true\n */\n hasMonthYearNavigation?: boolean;\n selectedRange?: { start: DateValue; end: DateValue };\n pickerMode?: 'day' | 'week';\n elementRef?: Ref<HTMLElement>;\n}\n\n/**\n * The body shared by `Calendar` and `RangeCalendar`: a header plus one of three\n * panels. The month and year panels only *navigate* — they move the focused\n * date and never select a value, so a range selection in progress survives a\n * jump to another month.\n */\nexport function CalendarPanel(props: CubeCalendarPanelProps) {\n const { t } = useI18n();\n\n let {\n state,\n title,\n calendarProps,\n prevButtonProps,\n nextButtonProps,\n hasMonthYearNavigation = true,\n selectedRange,\n pickerMode,\n elementRef,\n } = props;\n\n let [view, setView] = useState<CubeCalendarView>('day');\n // The period the month / year panels navigate around. Seeded from the\n // focused date every time the user leaves the day panel.\n let [anchor, setAnchor] = useState<CalendarDate>(state.focusedDate);\n\n let visibleStart = state.visibleRange.start;\n let calendar = visibleStart.calendar;\n let timeZone = state.timeZone;\n let calendarId = calendar.identifier;\n\n let monthFormatter = useDateFormatter({\n month: 'long',\n timeZone,\n calendar: calendarId,\n });\n let shortMonthFormatter = useDateFormatter({\n month: 'short',\n timeZone,\n calendar: calendarId,\n });\n let yearFormatter = useDateFormatter({\n year: 'numeric',\n timeZone,\n calendar: calendarId,\n });\n\n let todayDate = toCalendar(today(timeZone), calendar);\n\n let format = (formatter: Formatter, date: CalendarDate) =>\n formatter.format(date.toDate(timeZone));\n\n /** Whether a whole period lies outside the calendar's allowed range. */\n let isPeriodDisabled = (start: CalendarDate, end: CalendarDate) =>\n state.isDisabled ||\n (state.minValue != null && end.compare(state.minValue) < 0) ||\n (state.maxValue != null && start.compare(state.maxValue) > 0);\n\n // A multi-month view has no single month or year to drill into.\n let hasNavigation =\n hasMonthYearNavigation && isSameMonth(visibleStart, state.visibleRange.end);\n\n let openView = (next: CubeCalendarView) => {\n setAnchor(state.focusedDate);\n setView(next);\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n // Step back to the day panel rather than closing the surrounding popover.\n if (view !== 'day' && e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n setView('day');\n // The grid the user was in is about to unmount. Claim focus for the day\n // cell, or it falls out of the popover and the next `Escape` is lost.\n state.setFocused(true);\n }\n };\n\n let header: ReactElement;\n let body: ReactElement;\n\n if (view === 'month') {\n let monthDate = (month: number) => startOfMonth(anchor.set({ month }));\n let monthCount = calendar.getMonthsInYear(anchor);\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: monthCount },\n (_, index) => {\n let date = monthDate(index + 1);\n\n return {\n key: `month-${index + 1}`,\n label: format(shortMonthFormatter, date),\n isSelected: isSameMonth(date, visibleStart),\n isCurrent: isSameMonth(date, todayDate),\n isDisabled: isPeriodDisabled(date, endOfMonth(date)),\n };\n },\n );\n\n let prevYear = anchor.subtract({ years: 1 });\n let nextYear = anchor.add({ years: 1 });\n\n header = (\n <CalendarHeader\n segments={[\n {\n key: 'year',\n label: format(yearFormatter, anchor),\n isDisabled: state.isDisabled,\n onPress: () => setView('year'),\n },\n ]}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYear', 'Previous year'),\n isDisabled: isPeriodDisabled(\n startOfYear(prevYear),\n endOfYear(prevYear),\n ),\n onPress: () => setAnchor(prevYear),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYear', 'Next year'),\n isDisabled: isPeriodDisabled(\n startOfYear(nextYear),\n endOfYear(nextYear),\n ),\n onPress: () => setAnchor(nextYear),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n // Remount per view so focus follows the user into the new grid.\n key=\"month\"\n autoFocus\n aria-label={t('calendar.months', 'Months')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={MONTH_COLUMNS}\n focusedIndex={anchor.month - 1}\n onCellPress={(index) => {\n state.setFocusedDate(anchor.set({ month: index + 1 }));\n setView('day');\n }}\n onCellFocus={(index) => setAnchor(anchor.set({ month: index + 1 }))}\n onMoveFocus={(delta) => setAnchor(anchor.add({ months: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta }))}\n />\n );\n } else if (view === 'year') {\n let yearDate = (year: number) => startOfYear(anchor.set({ year }));\n let decadeStart = Math.floor(anchor.year / 10) * 10;\n let firstYear = decadeStart - 1;\n\n let cells: CubePeriodGridCell[] = Array.from(\n { length: YEAR_CELLS },\n (_, index) => {\n let year = firstYear + index;\n let date = yearDate(year);\n\n return {\n key: `year-${year}`,\n label: format(yearFormatter, date),\n isSelected: year === visibleStart.year,\n isCurrent: year === todayDate.year,\n isOutside: year < decadeStart || year > decadeStart + 9,\n isDisabled: isPeriodDisabled(date, endOfYear(date)),\n };\n },\n );\n\n header = (\n <CalendarHeader\n title={`${format(yearFormatter, yearDate(decadeStart))} – ${format(\n yearFormatter,\n yearDate(decadeStart + 9),\n )}`}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYears', 'Previous years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart - 10),\n endOfYear(yearDate(decadeStart - 1)),\n ),\n onPress: () => setAnchor(anchor.subtract({ years: 10 })),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYears', 'Next years'),\n isDisabled: isPeriodDisabled(\n yearDate(decadeStart + 10),\n endOfYear(yearDate(decadeStart + 19)),\n ),\n onPress: () => setAnchor(anchor.add({ years: 10 })),\n }}\n />\n );\n\n body = (\n <PeriodGrid\n key=\"year\"\n autoFocus\n aria-label={t('calendar.years', 'Years')}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={YEAR_COLUMNS}\n focusedIndex={anchor.year - firstYear}\n onCellPress={(index) => {\n setAnchor(anchor.set({ year: firstYear + index }));\n setView('month');\n }}\n onCellFocus={(index) =>\n setAnchor(anchor.set({ year: firstYear + index }))\n }\n onMoveFocus={(delta) => setAnchor(anchor.add({ years: delta }))}\n onMovePage={(delta) => setAnchor(anchor.add({ years: delta * 10 }))}\n />\n );\n } else {\n header = (\n <CalendarHeader\n title={title}\n segments={\n hasNavigation\n ? [\n {\n key: 'month',\n label: format(monthFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('month'),\n },\n {\n key: 'year',\n label: format(yearFormatter, visibleStart),\n isDisabled: state.isDisabled,\n onPress: () => openView('year'),\n },\n ]\n : undefined\n }\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n />\n );\n\n body = (\n <CalendarGrid\n state={state}\n selectedRange={selectedRange}\n pickerMode={pickerMode}\n />\n );\n }\n\n return (\n <CalendarElement\n ref={elementRef}\n {...mergeProps(calendarProps, { onKeyDown })}\n >\n {header}\n {body}\n </CalendarElement>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { useProviderProps } from "../../../provider.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { getQuarter } from "../../fields/DatePicker/period.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PeriodCalendar.js","names":["CalendarDate","endOfMonth","endOfYear","getLocalTimeZone","toCalendarDate","today","KeyboardEvent","ReactElement","useMemo","useState","DateValue","useDateFormatter","useI18n","useProviderProps","getQuarter","CalendarHeader","CubePeriodGridCell","PeriodGrid","CalendarElement","YEAR_CELLS","PERIOD_GRID_STYLES","width","const","CubePeriodCalendarPicker","COLUMNS","Record","month","quarter","year","CubePeriodCalendarProps","picker","value","onChange","date","minValue","maxValue","isDateUnavailable","isDisabled","autoFocus","PeriodCalendar","props","$","_c","t","t0","Symbol","for","timeZone","monthFormatter","t1","selected","t2","todayDate","t3","anchor","setAnchor","isYearView","setIsYearView","autoFocusGrid","setAutoFocusGrid","t4","next","showYearView","view","yearStart","_temp","t5","start","end","compare","isPeriodDisabled","t6","prevYear","nextYear","key","label","String","onPress","subtract","years","add","renderYearHeader","t7","e","preventDefault","stopPropagation","onKeyDown","cells","focusedIndex","gridLabel","header","onCellPress","onCellFocus","onMoveFocus","onMovePage","decadeStart","Math","floor","firstYear","t8","Array","from","length","_","index","year_0","isSelected","isCurrent","isOutside","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","index_0","year_1","set","t21","index_1","t22","delta","t23","delta_0","quarterDate","__0","index_2","quarter_0","date_0","months","index_3","index_4","delta_1","delta_2","monthDate","__1","index_5","month_0","date_1","format","toDate","index_6","index_7","delta_3","delta_4"],"sources":["../../../../src/components/other/Calendar/PeriodCalendar.tsx"],"sourcesContent":["import {\n CalendarDate,\n endOfMonth,\n endOfYear,\n getLocalTimeZone,\n toCalendarDate,\n today,\n} from '@internationalized/date';\nimport { KeyboardEvent, ReactElement, useMemo, useState } from 'react';\nimport { DateValue, useDateFormatter } from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { useProviderProps } from '../../../provider';\nimport { getQuarter } from '../../fields/DatePicker/period';\n\nimport { CalendarHeader } from './CalendarHeader';\nimport { CubePeriodGridCell, PeriodGrid } from './PeriodGrid';\nimport { CalendarElement } from './styled';\n\n/** The year grid shows a decade plus one adjacent year on either side. */\nconst YEAR_CELLS = 12;\n\n/** Explicit so the panel keeps one width across all three period views. */\nconst PERIOD_GRID_STYLES = { width: '28x' } as const;\n\nexport type CubePeriodCalendarPicker = 'month' | 'quarter' | 'year';\n\n/** picker → grid columns */\nconst COLUMNS: Record<CubePeriodCalendarPicker, number> = {\n month: 3,\n quarter: 4,\n year: 3,\n};\n\nexport interface CubePeriodCalendarProps {\n /** Which non-day period this panel selects. */\n picker: CubePeriodCalendarPicker;\n value?: DateValue | null;\n onChange?: (date: CalendarDate) => void;\n minValue?: DateValue | null;\n maxValue?: DateValue | null;\n isDateUnavailable?: (date: DateValue) => boolean;\n isDisabled?: boolean;\n autoFocus?: boolean;\n}\n\n/**\n * The panel behind `MonthPicker`, `QuarterPicker` and `YearPicker`. The month\n * and quarter panels drill up into a year list, so reaching a distant year\n * never means clicking the arrow a dozen times.\n */\nexport function PeriodCalendar(props: CubePeriodCalendarProps) {\n const { t } = useI18n();\n\n props = useProviderProps(props);\n\n let {\n picker,\n value,\n onChange,\n minValue,\n maxValue,\n isDateUnavailable,\n isDisabled,\n autoFocus,\n } = props;\n\n let monthFormatter = useDateFormatter({ month: 'short', timeZone: 'UTC' });\n\n let selected = value ? toCalendarDate(value) : null;\n let todayDate = useMemo(() => today(getLocalTimeZone()), []);\n\n // A date inside the period the keyboard currently focuses. Drives both the\n // roving tab stop and which year / decade the panel shows.\n let [anchor, setAnchor] = useState<CalendarDate>(() => selected ?? todayDate);\n let [isYearView, setIsYearView] = useState(false);\n // Switching panels always moves focus into the new grid — the button the\n // user just pressed is gone by then.\n let [autoFocusGrid, setAutoFocusGrid] = useState(!!autoFocus);\n\n let showYearView = (next: boolean) => {\n setAutoFocusGrid(true);\n setIsYearView(next);\n };\n\n let view: CubePeriodCalendarPicker =\n picker === 'year' || isYearView ? 'year' : picker;\n\n let yearStart = (year: number) => new CalendarDate(year, 1, 1);\n\n let isPeriodDisabled = (start: CalendarDate, end: CalendarDate) => {\n if (isDisabled) return true;\n if (minValue && end.compare(minValue) < 0) return true;\n if (maxValue && start.compare(maxValue) > 0) return true;\n\n return isDateUnavailable?.(start) ?? false;\n };\n\n /** Header for the month and quarter panels — the year drills up to a list. */\n let renderYearHeader = () => {\n let prevYear = anchor.year - 1;\n let nextYear = anchor.year + 1;\n\n return (\n <CalendarHeader\n segments={[\n {\n key: 'year',\n label: String(anchor.year),\n isDisabled,\n onPress: () => showYearView(true),\n },\n ]}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYear', 'Previous year'),\n isDisabled: isPeriodDisabled(\n yearStart(prevYear),\n endOfYear(yearStart(prevYear)),\n ),\n onPress: () => setAnchor(anchor.subtract({ years: 1 })),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYear', 'Next year'),\n isDisabled: isPeriodDisabled(\n yearStart(nextYear),\n endOfYear(yearStart(nextYear)),\n ),\n onPress: () => setAnchor(anchor.add({ years: 1 })),\n }}\n />\n );\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n // The year list is a detour, so `Escape` returns to the period list rather\n // than closing the surrounding popover.\n if (isYearView && picker !== 'year' && e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n showYearView(false);\n }\n };\n\n let cells: CubePeriodGridCell[];\n let focusedIndex: number;\n let gridLabel: string;\n let header: ReactElement;\n let onCellPress: (index: number) => void;\n let onCellFocus: (index: number) => void;\n let onMoveFocus: (delta: number) => void;\n let onMovePage: (delta: -1 | 1) => void;\n\n if (view === 'year') {\n let decadeStart = Math.floor(anchor.year / 10) * 10;\n let firstYear = decadeStart - 1;\n\n cells = Array.from({ length: YEAR_CELLS }, (_, index) => {\n let year = firstYear + index;\n let date = yearStart(year);\n\n return {\n key: `year-${year}`,\n label: String(year),\n isSelected: selected?.year === year,\n isCurrent: todayDate.year === year,\n isOutside: year < decadeStart || year > decadeStart + 9,\n isDisabled: isPeriodDisabled(date, endOfYear(date)),\n };\n });\n\n focusedIndex = anchor.year - firstYear;\n gridLabel = t('calendar.years', 'Years');\n\n header = (\n <CalendarHeader\n title={`${decadeStart} – ${decadeStart + 9}`}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYears', 'Previous years'),\n isDisabled: isPeriodDisabled(\n yearStart(decadeStart - 10),\n endOfYear(yearStart(decadeStart - 1)),\n ),\n onPress: () => setAnchor(anchor.subtract({ years: 10 })),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYears', 'Next years'),\n isDisabled: isPeriodDisabled(\n yearStart(decadeStart + 10),\n endOfYear(yearStart(decadeStart + 19)),\n ),\n onPress: () => setAnchor(anchor.add({ years: 10 })),\n }}\n />\n );\n\n onCellPress = (index) => {\n let year = firstYear + index;\n\n if (picker === 'year') {\n onChange?.(yearStart(year));\n } else {\n setAnchor(anchor.set({ year }));\n showYearView(false);\n }\n };\n onCellFocus = (index) => setAnchor(anchor.set({ year: firstYear + index }));\n onMoveFocus = (delta) => setAnchor(anchor.add({ years: delta }));\n onMovePage = (delta) => setAnchor(anchor.add({ years: delta * 10 }));\n } else if (view === 'quarter') {\n let quarterDate = (quarter: number) =>\n new CalendarDate(anchor.year, (quarter - 1) * 3 + 1, 1);\n\n cells = Array.from({ length: 4 }, (_, index) => {\n let quarter = index + 1;\n let date = quarterDate(quarter);\n\n return {\n key: `quarter-${quarter}`,\n label: `Q${quarter}`,\n isSelected:\n selected != null &&\n selected.year === anchor.year &&\n getQuarter(selected.month) === quarter,\n isCurrent:\n todayDate.year === anchor.year &&\n getQuarter(todayDate.month) === quarter,\n isDisabled: isPeriodDisabled(date, endOfMonth(date.add({ months: 2 }))),\n };\n });\n\n focusedIndex = getQuarter(anchor.month) - 1;\n gridLabel = t('calendar.quarters', 'Quarters');\n header = renderYearHeader();\n\n onCellPress = (index) => onChange?.(quarterDate(index + 1));\n onCellFocus = (index) => setAnchor(quarterDate(index + 1));\n onMoveFocus = (delta) => setAnchor(anchor.add({ months: delta * 3 }));\n onMovePage = (delta) => setAnchor(anchor.add({ years: delta }));\n } else {\n let monthDate = (month: number) => new CalendarDate(anchor.year, month, 1);\n\n cells = Array.from({ length: 12 }, (_, index) => {\n let month = index + 1;\n let date = monthDate(month);\n\n return {\n key: `month-${month}`,\n label: monthFormatter.format(date.toDate('UTC')),\n isSelected:\n selected != null &&\n selected.year === anchor.year &&\n selected.month === month,\n isCurrent: todayDate.year === anchor.year && todayDate.month === month,\n isDisabled: isPeriodDisabled(date, endOfMonth(date)),\n };\n });\n\n focusedIndex = anchor.month - 1;\n gridLabel = t('calendar.months', 'Months');\n header = renderYearHeader();\n\n onCellPress = (index) => onChange?.(monthDate(index + 1));\n onCellFocus = (index) => setAnchor(monthDate(index + 1));\n onMoveFocus = (delta) => setAnchor(anchor.add({ months: delta }));\n onMovePage = (delta) => setAnchor(anchor.add({ years: delta }));\n }\n\n return (\n <CalendarElement onKeyDown={onKeyDown}>\n {header}\n <PeriodGrid\n // Remount per view so focus follows the user into the new grid.\n key={view}\n autoFocus={autoFocusGrid}\n aria-label={gridLabel}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={COLUMNS[view]}\n focusedIndex={focusedIndex}\n onCellPress={onCellPress}\n onCellFocus={onCellFocus}\n onMoveFocus={onMoveFocus}\n onMovePage={onMovePage}\n />\n </CalendarElement>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAoBA,MAAMmB,aAAa;;AAGnB,MAAMC,qBAAqB,EAAEC,OAAO,OAAO;;AAK3C,MAAMG,UAAoD;CACxDE,OAAO;CACPC,SAAS;CACTC,MAAM;CACP;;;;;;AAmBD,SAAOW,eAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,IAAA;CACL,MAAA,EAAAC,MAAc/B,SAAS;AAEvB4B,SAAQ3B,iBAAiB2B,MAAM;CAE/B,MAAA,EAAAV,QAAAC,OAAAC,UAAAE,UAAAC,UAAAC,mBAAAC,YAAAC,cASIE;CAAM,IAAAI;AAAA,KAAAH,EAAA,OAAAI,OAAAC,IAAA,4BAAA,EAAA;AAE4BF,OAAA;GAAAlB,OAAS;GAAOqB,UAAY;GAAO;AAAAN,IAAA,KAAAG;OAAAA,MAAAH,EAAA;CAAzE,MAAAO,iBAAqBrC,iBAAiBiC,GAAoC;CAAC,IAAAK;AAAA,KAAAR,EAAA,OAAAV,OAAA;AAE5DkB,OAAAlB,QAAQ3B,eAAe2B,MAAa,GAApC;AAAoCU,IAAA,KAAAV;AAAAU,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAAnD,MAAAS,WAAeD;CAAqC,IAAAE;AAAA,KAAAV,EAAA,OAAAI,OAAAC,IAAA,4BAAA,EAAA;AACtBK,OAAA9C,MAAMF,kBAAkB,CAAC;AAAAsC,IAAA,KAAAU;OAAAA,MAAAV,EAAA;CAAvD,MAAAW,YAA8BD;CAA+B,IAAAE;AAAA,KAAAZ,EAAA,OAAAS,UAAA;AAIZG,aAAMH,YAAAE;AAAqBX,IAAA,KAAAS;AAAAT,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;CAA5E,MAAA,CAAAa,QAAAC,aAA0B9C,SAAuB4C,GAA4B;CAC7E,MAAA,CAAAG,YAAAC,iBAAkChD,SAAS,MAAM;CAGjD,MAAA,CAAAiD,eAAAC,oBAAwClD,SAAS,CAAC,CAAC6B,UAAU;CAAC,IAAAsB;AAAA,KAAAnB,EAAA,OAAAI,OAAAC,IAAA,4BAAA,EAAA;AAE3Cc,QAAAC,SAAA;AACjBF,oBAAiB,KAAK;AACtBF,iBAAcI,KAAK;;AACpBpB,IAAA,KAAAmB;OAAAA,MAAAnB,EAAA;CAHD,MAAAqB,eAAmBF;CAKnB,MAAAG,OACEjC,WAAW,UAAX0B,aAAA,SAAA1B;CAEF,MAAAkC,YAAgBC;CAA+C,IAAAC;AAAA,KAAAzB,EAAA,OAAAL,qBAAAK,EAAA,OAAAJ,cAAAI,EAAA,OAAAN,YAAAM,EAAA,QAAAP,UAAA;AAExCgC,QAAAC,OAAAC,QAAA;AACrB,OAAI/B,WAAU,QAAS;AACvB,OAAIH,YAAYkC,IAAGC,QAASnC,SAAS,GAAG,EAAC,QAAS;AAClD,OAAIC,YAAYgC,MAAKE,QAASlC,SAAS,GAAG,EAAC,QAAS;AAAK,UAElDC,oBAAoB+B,MAAe,IAAnC;;AACR1B,IAAA,KAAAL;AAAAK,IAAA,KAAAJ;AAAAI,IAAA,KAAAN;AAAAM,IAAA,MAAAP;AAAAO,IAAA,MAAAyB;OAAAA,MAAAzB,EAAA;CAND,MAAA6B,mBAAuBJ;CAMrB,IAAAK;AAAA,KAAA9B,EAAA,QAAAa,UAAAb,EAAA,QAAAJ,cAAAI,EAAA,QAAA6B,oBAAA7B,EAAA,QAAAE,GAAA;AAGqB4B,aAAA;GACrB,MAAAC,WAAelB,OAAM1B,OAAQ;GAC7B,MAAA6C,WAAenB,OAAM1B,OAAQ;AAAE,UAG7B,oBAAC;IACW,UAAA,CACR;KAAA8C,KACO;KAAMC,OACJC,OAAOtB,OAAM1B,KAAM;KAAAS;KAAAwC,eAEXf,aAAa,KAAI;KACjC,CACH;IACiB,iBAAA;KAAA,cACDnB,EAAE,yBAAyB,gBAAgB;KAAAN,YAC7CiC,iBACVN,UAAUQ,SAAS,EACnBtE,UAAU8D,UAAUQ,SAAS,CAC/B,CAAC;KAAAK,eACctB,UAAUD,OAAMwB,SAAU,EAAAC,OAAS,GAAG,CAAC,CAAA;KACxD;IACiB,iBAAA;KAAA,cACDpC,EAAE,qBAAqB,YAAY;KAAAN,YACrCiC,iBACVN,UAAUS,SAAS,EACnBvE,UAAU8D,UAAUS,SAAS,CAC/B,CAAC;KAAAI,eACctB,UAAUD,OAAM0B,IAAK,EAAAD,OAAS,GAAG,CAAC,CAAA;KACnD;KACA;;AAELtC,IAAA,MAAAa;AAAAb,IAAA,MAAAJ;AAAAI,IAAA,MAAA6B;AAAA7B,IAAA,MAAAE;AAAAF,IAAA,MAAA8B;OAAAA,MAAA9B,EAAA;CAhCD,MAAAwC,mBAAuBV;CAgCrB,IAAAW;AAAA,KAAAzC,EAAA,QAAAe,cAAAf,EAAA,QAAAX,QAAA;AAEcoD,QAAAC,MAAA;AAGd,OAAI3B,cAAc1B,WAAW,UAAUqD,EAACT,QAAS,UAAQ;AACvDS,MAACC,gBAAiB;AAClBD,MAACE,iBAAkB;AACnBvB,iBAAa,MAAM;;;AAEtBrB,IAAA,MAAAe;AAAAf,IAAA,MAAAX;AAAAW,IAAA,MAAAyC;OAAAA,MAAAzC,EAAA;CARD,MAAA6C,YAAgBJ;CAUZK,IAAAA;CACAC,IAAAA;CACAC,IAAAA;CACAC,IAAAA;CACAC,IAAAA;CACAC,IAAAA;CACAC,IAAAA;CACAC,IAAAA;AAEJ,KAAI/B,SAAS,QAAM;EACjB,MAAAgC,cAAkBC,KAAIC,MAAO3C,OAAM1B,OAAQ,GAAG,GAAG;EACjD,MAAAsE,YAAgBH,cAAc;EAAE,IAAAI;AAAA,MAAA1D,EAAA,QAAAsD,eAAAtD,EAAA,QAAAyD,aAAAzD,EAAA,QAAA6B,oBAAA7B,EAAA,QAAAS,UAAAtB,MAAA;AAExBuE,QAAAC,MAAKC,KAAM,EAAAC,QAAUnF,YAAY,GAAEoF,GAAAC,UAAA;IACzC,MAAAC,SAAWP,YAAYM;IACvB,MAAAvE,OAAW+B,UAAUpC,OAAK;AAAC,WAEpB;KAAA8C,KACA,QAAQ9C;KAAM+C,OACZC,OAAOhD,OAAK;KAAA8E,YACPxD,UAAQtB,SAAWA;KAAI+E,WACxBvD,UAASxB,SAAUA;KAAIgF,WACvBhF,SAAOmE,eAAenE,SAAOmE,cAAc;KAAC1D,YAC3CiC,iBAAiBrC,MAAM/B,UAAU+B,KAAK,CAAA;KACnD;KACD;AAAAQ,KAAA,MAAAsD;AAAAtD,KAAA,MAAAyD;AAAAzD,KAAA,MAAA6B;AAAA7B,KAAA,MAAAS,UAAAtB;AAAAa,KAAA,MAAA0D;QAAAA,MAAA1D,EAAA;AAZF8C,UAAQA;AAcRC,iBAAelC,OAAM1B,OAAQsE;EAAjB,IAAAW;AAAA,MAAApE,EAAA,QAAAE,GAAA;AACAkE,QAAAlE,EAAE,kBAAkB,QAAQ;AAAAF,KAAA,MAAAE;AAAAF,KAAA,MAAAoE;QAAAA,MAAApE,EAAA;AAAxCgD,cAAYA;EAID,MAAAqB,MAAA,GAAGf,YAAW,KAAMA,cAAc;EAAG,IAAAgB;AAAA,MAAAtE,EAAA,QAAAE,GAAA;AAE5BoE,SAAApE,EAAE,0BAA0B,iBAAiB;AAAAF,KAAA,MAAAE;AAAAF,KAAA,MAAAsE;QAAAA,OAAAtE,EAAA;EAAA,IAAAuE;AAAA,MAAAvE,EAAA,QAAAsD,eAAAtD,EAAA,QAAA6B,kBAAA;AAC/C0C,SAAA1C,iBACVN,UAAU+B,cAAc,GAAG,EAC3B7F,UAAU8D,UAAU+B,cAAc,EAAE,CACtC,CAAC;AAAAtD,KAAA,MAAAsD;AAAAtD,KAAA,MAAA6B;AAAA7B,KAAA,MAAAuE;QAAAA,OAAAvE,EAAA;EAAA,IAAAwE;AAAA,MAAAxE,EAAA,QAAAa,QAAA;AACQ2D,eAAM1D,UAAUD,OAAMwB,SAAU,EAAAC,OAAS,IAAI,CAAC,CAAC;AAAAtC,KAAA,MAAAa;AAAAb,KAAA,MAAAwE;QAAAA,OAAAxE,EAAA;EAAA,IAAAyE;AAAA,MAAAzE,EAAA,QAAAsE,OAAAtE,EAAA,QAAAuE,OAAAvE,EAAA,QAAAwE,KAAA;AANzCC,SAAA;IAAA,cACDH;IAA6C1E,YAC/C2E;IAGXnC,SACQoC;IACV;AAAAxE,KAAA,MAAAsE;AAAAtE,KAAA,MAAAuE;AAAAvE,KAAA,MAAAwE;AAAAxE,KAAA,MAAAyE;QAAAA,OAAAzE,EAAA;EAAA,IAAA0E;AAAA,MAAA1E,EAAA,QAAAE,GAAA;AAEewE,SAAAxE,EAAE,sBAAsB,aAAa;AAAAF,KAAA,MAAAE;AAAAF,KAAA,MAAA0E;QAAAA,OAAA1E,EAAA;EAAA,IAAA2E;AAAA,MAAA3E,EAAA,QAAAsD,eAAAtD,EAAA,QAAA6B,kBAAA;AACvC8C,SAAA9C,iBACVN,UAAU+B,cAAc,GAAG,EAC3B7F,UAAU8D,UAAU+B,cAAc,GAAG,CACvC,CAAC;AAAAtD,KAAA,MAAAsD;AAAAtD,KAAA,MAAA6B;AAAA7B,KAAA,MAAA2E;QAAAA,OAAA3E,EAAA;EAAA,IAAA4E;AAAA,MAAA5E,EAAA,QAAAa,QAAA;AACQ+D,eAAM9D,UAAUD,OAAM0B,IAAK,EAAAD,OAAS,IAAI,CAAC,CAAC;AAAAtC,KAAA,MAAAa;AAAAb,KAAA,MAAA4E;QAAAA,OAAA5E,EAAA;EAAA,IAAA6E;AAAA,MAAA7E,EAAA,QAAA0E,OAAA1E,EAAA,QAAA2E,OAAA3E,EAAA,QAAA4E,KAAA;AANpCC,SAAA;IAAA,cACDH;IAAqC9E,YACvC+E;IAGXvC,SACQwC;IACV;AAAA5E,KAAA,MAAA0E;AAAA1E,KAAA,MAAA2E;AAAA3E,KAAA,MAAA4E;AAAA5E,KAAA,MAAA6E;QAAAA,OAAA7E,EAAA;EAAA,IAAA8E;AAAA,MAAA9E,EAAA,QAAAqE,OAAArE,EAAA,QAAAyE,OAAAzE,EAAA,QAAA6E,KAAA;AAjBHC,SAAA,oBAAC;IACQ,OAAAT;IACU,iBAAAI;IAQA,iBAAAI;KAQjB;AAAA7E,KAAA,MAAAqE;AAAArE,KAAA,MAAAyE;AAAAzE,KAAA,MAAA6E;AAAA7E,KAAA,MAAA8E;QAAAA,OAAA9E,EAAA;AAnBJiD,WACEA;EADI,IAAA8B;AAAA,MAAA/E,EAAA,QAAAa,UAAAb,EAAA,QAAAyD,aAAAzD,EAAA,QAAAT,YAAAS,EAAA,QAAAX,QAAA;AAsBQ0F,UAAAC,YAAA;IACZ,MAAAC,SAAWxB,YAAYM;AAEvB,QAAI1E,WAAW,OACbE,YAAWgC,UAAUpC,OAAK,CAAC;SAAA;AAE3B2B,eAAUD,OAAMqE,IAAK,EAAA/F,MAAEA,QAAM,CAAC,CAAC;AAC/BkC,kBAAa,MAAM;;;AAEtBrB,KAAA,MAAAa;AAAAb,KAAA,MAAAyD;AAAAzD,KAAA,MAAAT;AAAAS,KAAA,MAAAX;AAAAW,KAAA,MAAA+E;QAAAA,OAAA/E,EAAA;AATDkD,gBAAcA;EAAH,IAAAiC;AAAA,MAAAnF,EAAA,QAAAa,UAAAb,EAAA,QAAAyD,WAAA;AAUG0B,UAAAC,YAAWtE,UAAUD,OAAMqE,IAAK,EAAA/F,MAAQsE,YAAYM,SAAO,CAAC,CAAC;AAAA/D,KAAA,MAAAa;AAAAb,KAAA,MAAAyD;AAAAzD,KAAA,MAAAmF;QAAAA,OAAAnF,EAAA;AAA3EmD,gBAAcA;EAAH,IAAAkC;AAAA,MAAArF,EAAA,QAAAa,QAAA;AACGwE,UAAAC,UAAWxE,UAAUD,OAAM0B,IAAK,EAAAD,OAASgD,OAAO,CAAC,CAAC;AAAAtF,KAAA,MAAAa;AAAAb,KAAA,MAAAqF;QAAAA,OAAArF,EAAA;AAAhEoD,gBAAcA;EAAH,IAAAmC;AAAA,MAAAvF,EAAA,QAAAa,QAAA;AACE0E,UAAAC,YAAW1E,UAAUD,OAAM0B,IAAK,EAAAD,OAASgD,UAAQ,IAAI,CAAC,CAAC;AAAAtF,KAAA,MAAAa;AAAAb,KAAA,MAAAuF;QAAAA,OAAAvF,EAAA;AAApEqD,eAAaA;YACJ/B,SAAS,WAAS;EAAA,IAAAoC;AAAA,MAAA1D,EAAA,QAAAa,OAAA1B,MAAA;AACTuE,SAAAxE,YAChB,IAAI3B,aAAasD,OAAM1B,OAAQD,UAAU,KAAK,IAAI,GAAG,EAAE;AAAAc,KAAA,MAAAa,OAAA1B;AAAAa,KAAA,MAAA0D;QAAAA,MAAA1D,EAAA;EADzD,MAAAyF,cAAkB/B;EACwC,IAAAU;AAAA,MAAApE,EAAA,QAAAa,OAAA1B,QAAAa,EAAA,QAAA6B,oBAAA7B,EAAA,QAAAyF,eAAAzF,EAAA,QAAAS,UAAA;AAElD2D,QAAAT,MAAKC,KAAM,EAAAC,QAAU,GAAG,GAAE6B,KAAAC,YAAA;IAChC,MAAAC,YAAc7B,UAAQ;IACtB,MAAA8B,SAAWJ,YAAYvG,UAAQ;AAAC,WAEzB;KAAA+C,KACA,WAAW/C;KAASgD,OAClB,IAAIhD;KAAS+E,YAElBxD,YAAY,QACZA,SAAQtB,SAAU0B,OAAM1B,QACxBd,WAAWoC,SAAQxB,MAAO,KAAKC;KAAOgF,WAEtCvD,UAASxB,SAAU0B,OAAM1B,QACzBd,WAAWsC,UAAS1B,MAAO,KAAKC;KAAOU,YAC7BiC,iBAAiBrC,QAAMhC,WAAWgC,OAAI+C,IAAK,EAAAuD,QAAU,GAAG,CAAC,CAAC,CAAA;KACvE;KACD;AAAA9F,KAAA,MAAAa,OAAA1B;AAAAa,KAAA,MAAA6B;AAAA7B,KAAA,MAAAyF;AAAAzF,KAAA,MAAAS;AAAAT,KAAA,MAAAoE;QAAAA,MAAApE,EAAA;AAhBF8C,UAAQA;AAkBRC,iBAAe1E,WAAWwC,OAAM5B,MAAO,GAAG;EAA9B,IAAAoF;AAAA,MAAArE,EAAA,QAAAE,GAAA;AACAmE,SAAAnE,EAAE,qBAAqB,WAAW;AAAAF,KAAA,MAAAE;AAAAF,KAAA,MAAAqE;QAAAA,OAAArE,EAAA;AAA9CgD,cAAYA;EAAH,IAAAsB;AAAA,MAAAtE,EAAA,QAAAwC,kBAAA;AACA8B,SAAA9B,kBAAkB;AAAAxC,KAAA,MAAAwC;AAAAxC,KAAA,MAAAsE;QAAAA,OAAAtE,EAAA;AAA3BiD,WAASA;EAAH,IAAAsB;AAAA,MAAAvE,EAAA,QAAAT,YAAAS,EAAA,QAAAyF,aAAA;AAEQlB,UAAAwB,YAAWxG,WAAWkG,YAAY1B,UAAQ,EAAE,CAAC;AAAA/D,KAAA,MAAAT;AAAAS,KAAA,MAAAyF;AAAAzF,KAAA,MAAAuE;QAAAA,OAAAvE,EAAA;AAA3DkD,gBAAcA;EAAH,IAAAsB;AAAA,MAAAxE,EAAA,QAAAyF,aAAA;AACGjB,UAAAwB,YAAWlF,UAAU2E,YAAY1B,UAAQ,EAAE,CAAC;AAAA/D,KAAA,MAAAyF;AAAAzF,KAAA,MAAAwE;QAAAA,OAAAxE,EAAA;AAA1DmD,gBAAcA;EAAH,IAAAsB;AAAA,MAAAzE,EAAA,QAAAa,QAAA;AACG4D,UAAAwB,YAAWnF,UAAUD,OAAM0B,IAAK,EAAAuD,QAAUR,UAAQ,GAAG,CAAC,CAAC;AAAAtF,KAAA,MAAAa;AAAAb,KAAA,MAAAyE;QAAAA,OAAAzE,EAAA;AAArEoD,gBAAcA;EAAH,IAAAsB;AAAA,MAAA1E,EAAA,QAAAa,QAAA;AACE6D,UAAAwB,YAAWpF,UAAUD,OAAM0B,IAAK,EAAAD,OAASgD,SAAO,CAAC,CAAC;AAAAtF,KAAA,MAAAa;AAAAb,KAAA,MAAA0E;QAAAA,OAAA1E,EAAA;AAA/DqD,eAAaA;QAAH;EAAA,IAAAK;AAAA,MAAA1D,EAAA,QAAAa,OAAA1B,MAAA;AAEMuE,SAAAzE,UAAmB,IAAI1B,aAAasD,OAAM1B,MAAOF,OAAO,EAAE;AAAAe,KAAA,MAAAa,OAAA1B;AAAAa,KAAA,MAAA0D;QAAAA,MAAA1D,EAAA;EAA1E,MAAAmG,YAAgBzC;EAA2D,IAAAU;AAAA,MAAApE,EAAA,QAAAa,OAAA1B,QAAAa,EAAA,QAAA6B,oBAAA7B,EAAA,QAAAmG,aAAAnG,EAAA,QAAAO,kBAAAP,EAAA,QAAAS,UAAA;AAEnE2D,QAAAT,MAAKC,KAAM,EAAAC,QAAU,IAAI,GAAEuC,KAAAC,YAAA;IACjC,MAAAC,UAAYvC,UAAQ;IACpB,MAAAwC,SAAWJ,UAAUlH,QAAM;AAAC,WAErB;KAAAgD,KACA,SAAShD;KAAOiD,OACd3B,eAAciG,OAAQhH,OAAIiH,OAAQ,MAAM,CAAC;KAAAxC,YAE9CxD,YAAY,QACZA,SAAQtB,SAAU0B,OAAM1B,QACxBsB,SAAQxB,UAAWA;KAAKiF,WACfvD,UAASxB,SAAU0B,OAAM1B,QAASwB,UAAS1B,UAAWA;KAAKW,YAC1DiC,iBAAiBrC,QAAMhC,WAAWgC,OAAK,CAAA;KACpD;KACD;AAAAQ,KAAA,MAAAa,OAAA1B;AAAAa,KAAA,MAAA6B;AAAA7B,KAAA,MAAAmG;AAAAnG,KAAA,MAAAO;AAAAP,KAAA,MAAAS;AAAAT,KAAA,MAAAoE;QAAAA,MAAApE,EAAA;AAdF8C,UAAQA;AAgBRC,iBAAelC,OAAM5B,QAAS;EAAlB,IAAAoF;AAAA,MAAArE,EAAA,QAAAE,GAAA;AACAmE,SAAAnE,EAAE,mBAAmB,SAAS;AAAAF,KAAA,MAAAE;AAAAF,KAAA,MAAAqE;QAAAA,OAAArE,EAAA;AAA1CgD,cAAYA;EAAH,IAAAsB;AAAA,MAAAtE,EAAA,QAAAwC,kBAAA;AACA8B,SAAA9B,kBAAkB;AAAAxC,KAAA,MAAAwC;AAAAxC,KAAA,MAAAsE;QAAAA,OAAAtE,EAAA;AAA3BiD,WAASA;EAAH,IAAAsB;AAAA,MAAAvE,EAAA,QAAAmG,aAAAnG,EAAA,QAAAT,UAAA;AAEQgF,UAAAmC,YAAWnH,WAAW4G,UAAUpC,UAAQ,EAAE,CAAC;AAAA/D,KAAA,MAAAmG;AAAAnG,KAAA,MAAAT;AAAAS,KAAA,MAAAuE;QAAAA,OAAAvE,EAAA;AAAzDkD,gBAAcA;EAAH,IAAAsB;AAAA,MAAAxE,EAAA,SAAAmG,WAAA;AACG3B,UAAAmC,YAAW7F,UAAUqF,UAAUpC,UAAQ,EAAE,CAAC;AAAA/D,KAAA,OAAAmG;AAAAnG,KAAA,OAAAwE;QAAAA,OAAAxE,EAAA;AAAxDmD,gBAAcA;EAAH,IAAAsB;AAAA,MAAAzE,EAAA,SAAAa,QAAA;AACG4D,UAAAmC,YAAW9F,UAAUD,OAAM0B,IAAK,EAAAuD,QAAUR,SAAO,CAAC,CAAC;AAAAtF,KAAA,OAAAa;AAAAb,KAAA,OAAAyE;QAAAA,OAAAzE,EAAA;AAAjEoD,gBAAcA;EAAH,IAAAsB;AAAA,MAAA1E,EAAA,SAAAa,QAAA;AACE6D,UAAAmC,YAAW/F,UAAUD,OAAM0B,IAAK,EAAAD,OAASgD,SAAO,CAAC,CAAC;AAAAtF,KAAA,OAAAa;AAAAb,KAAA,OAAA0E;QAAAA,OAAA1E,EAAA;AAA/DqD,eAAaA;;CAaA,MAAAK,KAAA3E,QAAQuC;CAAK,IAAA8C;AAAA,KAAApE,EAAA,SAAAiB,iBAAAjB,EAAA,SAAA8C,SAAA9C,EAAA,SAAA+C,gBAAA/C,EAAA,SAAAgD,aAAAhD,EAAA,SAAAmD,eAAAnD,EAAA,SAAAkD,eAAAlD,EAAA,SAAAoD,eAAApD,EAAA,SAAAqD,cAAArD,EAAA,SAAA0D,MAAA1D,EAAA,SAAAsB,MAAA;AAPxB8C,OAAA,oBAAC;GAGYnD,WAAAA;GACC+B,cAAAA;GACLF;GACCnE,QAAAA;GACC,SAAA+E;GACKX;GACDG;GACAC;GACAC;GACDC;KAVP/B,KAWL;AAAAtB,IAAA,OAAAiB;AAAAjB,IAAA,OAAA8C;AAAA9C,IAAA,OAAA+C;AAAA/C,IAAA,OAAAgD;AAAAhD,IAAA,OAAAmD;AAAAnD,IAAA,OAAAkD;AAAAlD,IAAA,OAAAoD;AAAApD,IAAA,OAAAqD;AAAArD,IAAA,OAAA0D;AAAA1D,IAAA,OAAAsB;AAAAtB,IAAA,OAAAoE;OAAAA,MAAApE,EAAA;CAAA,IAAAqE;AAAA,KAAArE,EAAA,SAAAiD,UAAAjD,EAAA,SAAA6C,aAAA7C,EAAA,SAAAoE,IAAA;AAfJC,QAAA,qBAAC;GAA2BxB;cACzBI,QACDmB;IAcgB;AAAApE,IAAA,OAAAiD;AAAAjD,IAAA,OAAA6C;AAAA7C,IAAA,OAAAoE;AAAApE,IAAA,OAAAqE;OAAAA,OAAArE,EAAA;AAAA,QAhBlBqE;;AAzNG,SAAA7C,MAAArC,MAAA;AAAA,QAqC6B,IAAI5B,aAAa4B,MAAM,GAAG,EAAE"}
|
|
1
|
+
{"version":3,"file":"PeriodCalendar.js","names":["CalendarDate","endOfMonth","endOfYear","getLocalTimeZone","toCalendarDate","today","KeyboardEvent","ReactElement","useState","DateValue","useDateFormatter","useI18n","useProviderProps","getQuarter","CalendarHeader","CubePeriodGridCell","PeriodGrid","CalendarElement","YEAR_CELLS","PERIOD_GRID_STYLES","width","const","CubePeriodCalendarPicker","COLUMNS","Record","month","quarter","year","CubePeriodCalendarProps","picker","value","onChange","date","minValue","maxValue","isDateUnavailable","isDisabled","autoFocus","PeriodCalendar","props","$","_c","t","t0","Symbol","for","timeZone","monthFormatter","t1","selected","t2","todayDate","t3","anchor","setAnchor","isYearView","setIsYearView","autoFocusGrid","setAutoFocusGrid","t4","next","showYearView","view","yearStart","_temp","t5","start","end","compare","isPeriodDisabled","t6","prevYear","nextYear","key","label","String","onPress","subtract","years","add","renderYearHeader","t7","e","preventDefault","stopPropagation","onKeyDown","cells","focusedIndex","gridLabel","header","onCellPress","onCellFocus","onMoveFocus","onMovePage","decadeStart","Math","floor","firstYear","t8","Array","from","length","_","index","year_0","isSelected","isCurrent","isOutside","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","index_0","year_1","set","t21","index_1","t22","delta","t23","delta_0","quarterDate","__0","index_2","quarter_0","date_0","months","index_3","index_4","delta_1","delta_2","monthDate","__1","index_5","month_0","date_1","format","toDate","index_6","index_7","delta_3","delta_4"],"sources":["../../../../src/components/other/Calendar/PeriodCalendar.tsx"],"sourcesContent":["import {\n CalendarDate,\n endOfMonth,\n endOfYear,\n getLocalTimeZone,\n toCalendarDate,\n today,\n} from '@internationalized/date';\nimport { KeyboardEvent, ReactElement, useState } from 'react';\nimport { DateValue, useDateFormatter } from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { useProviderProps } from '../../../provider';\nimport { getQuarter } from '../../fields/DatePicker/period';\n\nimport { CalendarHeader } from './CalendarHeader';\nimport { CubePeriodGridCell, PeriodGrid } from './PeriodGrid';\nimport { CalendarElement } from './styled';\n\n/** The year grid shows a decade plus one adjacent year on either side. */\nconst YEAR_CELLS = 12;\n\n/** Explicit so the panel keeps one width across all three period views. */\nconst PERIOD_GRID_STYLES = { width: '28x' } as const;\n\nexport type CubePeriodCalendarPicker = 'month' | 'quarter' | 'year';\n\n/** picker → grid columns */\nconst COLUMNS: Record<CubePeriodCalendarPicker, number> = {\n month: 3,\n quarter: 4,\n year: 3,\n};\n\nexport interface CubePeriodCalendarProps {\n /** Which non-day period this panel selects. */\n picker: CubePeriodCalendarPicker;\n value?: DateValue | null;\n onChange?: (date: CalendarDate) => void;\n minValue?: DateValue | null;\n maxValue?: DateValue | null;\n isDateUnavailable?: (date: DateValue) => boolean;\n isDisabled?: boolean;\n autoFocus?: boolean;\n}\n\n/**\n * The panel behind `MonthPicker`, `QuarterPicker` and `YearPicker`. The month\n * and quarter panels drill up into a year list, so reaching a distant year\n * never means clicking the arrow a dozen times.\n */\nexport function PeriodCalendar(props: CubePeriodCalendarProps) {\n const { t } = useI18n();\n\n props = useProviderProps(props);\n\n let {\n picker,\n value,\n onChange,\n minValue,\n maxValue,\n isDateUnavailable,\n isDisabled,\n autoFocus,\n } = props;\n\n let monthFormatter = useDateFormatter({ month: 'short', timeZone: 'UTC' });\n\n let selected = value ? toCalendarDate(value) : null;\n let todayDate = today(getLocalTimeZone());\n\n // A date inside the period the keyboard currently focuses. Drives both the\n // roving tab stop and which year / decade the panel shows.\n let [anchor, setAnchor] = useState<CalendarDate>(() => selected ?? todayDate);\n let [isYearView, setIsYearView] = useState(false);\n // Switching panels always moves focus into the new grid — the button the\n // user just pressed is gone by then.\n let [autoFocusGrid, setAutoFocusGrid] = useState(!!autoFocus);\n\n let showYearView = (next: boolean) => {\n setAutoFocusGrid(true);\n setIsYearView(next);\n };\n\n let view: CubePeriodCalendarPicker =\n picker === 'year' || isYearView ? 'year' : picker;\n\n let yearStart = (year: number) => new CalendarDate(year, 1, 1);\n\n let isPeriodDisabled = (start: CalendarDate, end: CalendarDate) => {\n if (isDisabled) return true;\n if (minValue && end.compare(minValue) < 0) return true;\n if (maxValue && start.compare(maxValue) > 0) return true;\n\n return isDateUnavailable?.(start) ?? false;\n };\n\n /** Header for the month and quarter panels — the year drills up to a list. */\n let renderYearHeader = () => {\n let prevYear = anchor.year - 1;\n let nextYear = anchor.year + 1;\n\n return (\n <CalendarHeader\n segments={[\n {\n key: 'year',\n label: String(anchor.year),\n isDisabled,\n onPress: () => showYearView(true),\n },\n ]}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYear', 'Previous year'),\n isDisabled: isPeriodDisabled(\n yearStart(prevYear),\n endOfYear(yearStart(prevYear)),\n ),\n onPress: () => setAnchor(anchor.subtract({ years: 1 })),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYear', 'Next year'),\n isDisabled: isPeriodDisabled(\n yearStart(nextYear),\n endOfYear(yearStart(nextYear)),\n ),\n onPress: () => setAnchor(anchor.add({ years: 1 })),\n }}\n />\n );\n };\n\n let onKeyDown = (e: KeyboardEvent) => {\n // The year list is a detour, so `Escape` returns to the period list rather\n // than closing the surrounding popover.\n if (isYearView && picker !== 'year' && e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n showYearView(false);\n }\n };\n\n let cells: CubePeriodGridCell[];\n let focusedIndex: number;\n let gridLabel: string;\n let header: ReactElement;\n let onCellPress: (index: number) => void;\n let onCellFocus: (index: number) => void;\n let onMoveFocus: (delta: number) => void;\n let onMovePage: (delta: -1 | 1) => void;\n\n if (view === 'year') {\n let decadeStart = Math.floor(anchor.year / 10) * 10;\n let firstYear = decadeStart - 1;\n\n cells = Array.from({ length: YEAR_CELLS }, (_, index) => {\n let year = firstYear + index;\n let date = yearStart(year);\n\n return {\n key: `year-${year}`,\n label: String(year),\n isSelected: selected?.year === year,\n isCurrent: todayDate.year === year,\n isOutside: year < decadeStart || year > decadeStart + 9,\n isDisabled: isPeriodDisabled(date, endOfYear(date)),\n };\n });\n\n focusedIndex = anchor.year - firstYear;\n gridLabel = t('calendar.years', 'Years');\n\n header = (\n <CalendarHeader\n title={`${decadeStart} – ${decadeStart + 9}`}\n prevButtonProps={{\n 'aria-label': t('calendar.previousYears', 'Previous years'),\n isDisabled: isPeriodDisabled(\n yearStart(decadeStart - 10),\n endOfYear(yearStart(decadeStart - 1)),\n ),\n onPress: () => setAnchor(anchor.subtract({ years: 10 })),\n }}\n nextButtonProps={{\n 'aria-label': t('calendar.nextYears', 'Next years'),\n isDisabled: isPeriodDisabled(\n yearStart(decadeStart + 10),\n endOfYear(yearStart(decadeStart + 19)),\n ),\n onPress: () => setAnchor(anchor.add({ years: 10 })),\n }}\n />\n );\n\n onCellPress = (index) => {\n let year = firstYear + index;\n\n if (picker === 'year') {\n onChange?.(yearStart(year));\n } else {\n setAnchor(anchor.set({ year }));\n showYearView(false);\n }\n };\n onCellFocus = (index) => setAnchor(anchor.set({ year: firstYear + index }));\n onMoveFocus = (delta) => setAnchor(anchor.add({ years: delta }));\n onMovePage = (delta) => setAnchor(anchor.add({ years: delta * 10 }));\n } else if (view === 'quarter') {\n let quarterDate = (quarter: number) =>\n new CalendarDate(anchor.year, (quarter - 1) * 3 + 1, 1);\n\n cells = Array.from({ length: 4 }, (_, index) => {\n let quarter = index + 1;\n let date = quarterDate(quarter);\n\n return {\n key: `quarter-${quarter}`,\n label: `Q${quarter}`,\n isSelected:\n selected != null &&\n selected.year === anchor.year &&\n getQuarter(selected.month) === quarter,\n isCurrent:\n todayDate.year === anchor.year &&\n getQuarter(todayDate.month) === quarter,\n isDisabled: isPeriodDisabled(date, endOfMonth(date.add({ months: 2 }))),\n };\n });\n\n focusedIndex = getQuarter(anchor.month) - 1;\n gridLabel = t('calendar.quarters', 'Quarters');\n header = renderYearHeader();\n\n onCellPress = (index) => onChange?.(quarterDate(index + 1));\n onCellFocus = (index) => setAnchor(quarterDate(index + 1));\n onMoveFocus = (delta) => setAnchor(anchor.add({ months: delta * 3 }));\n onMovePage = (delta) => setAnchor(anchor.add({ years: delta }));\n } else {\n let monthDate = (month: number) => new CalendarDate(anchor.year, month, 1);\n\n cells = Array.from({ length: 12 }, (_, index) => {\n let month = index + 1;\n let date = monthDate(month);\n\n return {\n key: `month-${month}`,\n label: monthFormatter.format(date.toDate('UTC')),\n isSelected:\n selected != null &&\n selected.year === anchor.year &&\n selected.month === month,\n isCurrent: todayDate.year === anchor.year && todayDate.month === month,\n isDisabled: isPeriodDisabled(date, endOfMonth(date)),\n };\n });\n\n focusedIndex = anchor.month - 1;\n gridLabel = t('calendar.months', 'Months');\n header = renderYearHeader();\n\n onCellPress = (index) => onChange?.(monthDate(index + 1));\n onCellFocus = (index) => setAnchor(monthDate(index + 1));\n onMoveFocus = (delta) => setAnchor(anchor.add({ months: delta }));\n onMovePage = (delta) => setAnchor(anchor.add({ years: delta }));\n }\n\n return (\n <CalendarElement onKeyDown={onKeyDown}>\n {header}\n <PeriodGrid\n // Remount per view so focus follows the user into the new grid.\n key={view}\n autoFocus={autoFocusGrid}\n aria-label={gridLabel}\n cells={cells}\n styles={PERIOD_GRID_STYLES}\n columns={COLUMNS[view]}\n focusedIndex={focusedIndex}\n onCellPress={onCellPress}\n onCellFocus={onCellFocus}\n onMoveFocus={onMoveFocus}\n onMovePage={onMovePage}\n />\n </CalendarElement>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { CALENDAR_CELL_STYLES } from "./styled.js";
|
|
3
3
|
import { tasty } from "@tenphi/tasty";
|
|
4
4
|
import { useLayoutEffect, useRef } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { useProviderProps } from "../../../provider.js";
|
|
3
3
|
import { CalendarPanel } from "./CalendarPanel.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { Icon } from "../../../icons/Icon.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { mergeStyles, tasty } from "@tenphi/tasty";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { chain } from "../../../utils/react/chain.js";
|
|
3
3
|
import { Paragraph } from "../../content/Paragraph.js";
|
|
4
4
|
import { _Title } from "../../content/Title.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { AlertDialogZone } from "./AlertDialogZone.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { createContext, useContext, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { Portal } from "../../portal/Portal.js";
|
|
3
3
|
import { DialogContainer } from "../Dialog/DialogContainer.js";
|
|
4
4
|
import { _AlertDialog } from "./AlertDialog.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | 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 { SlotProvider } from "../../../utils/react/Slots.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","names":["createFocusManager","useObjectRef","BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","DIMENSION_STYLES","DimensionStyleProps","FLOW_STYLES","Styles","tasty","forwardRef","ReactElement","Ref","useEffect","useMemo","AriaDialogProps","DismissButton","FocusScope","useDialog","useI18n","CloseIcon","mergeProps","SlotProvider","extractStyles","ItemButton","useOpenTransitionContext","useDialogContext","useContentOverflow","STYLES_LIST","DialogElement","as","styles","display","flow","fill","pointerEvents","outline","position","width","height","gap","border","radius","shadow","top","CloseButton","qa","type","right","sizeMap","S","M","L","sizePxMap","small","medium","large","CubeDialogProps","Omit","size","isDismissable","onDismiss","arg","closeIcon","closeButtonStyles","role","Dialog","props","ref","$","_c","transitionContext","isEntered","transitionState","context","t0","content","shouldContainFocus","isOpen","t1","shouldRestoreFocus","t2","DialogContent","HTMLDivElement","contextProps","children","onClose","style","otherProps","toUpperCase","t","domRef","dialogProps","titleProps","dismissButton","setTimeout","current","activeElement","document","isFocusOutsideDialog","contains","isFocusOnDialogShell","priorityElement","querySelector","HTMLElement","focus","focusManager","focusFirst","tabbable","contentOverflows","slots","title","level","preset","flexGrow","padding","header","ellipsis","placeItems","placeContent","footer","mods","buttonGroup","dismissable"],"sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { createFocusManager } from '@react-aria/focus';\nimport { useObjectRef } from '@react-aria/utils';\nimport {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n DIMENSION_STYLES,\n DimensionStyleProps,\n FLOW_STYLES,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef, ReactElement, Ref, useEffect, useMemo } from 'react';\nimport {\n AriaDialogProps,\n DismissButton,\n FocusScope,\n useDialog,\n} from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { mergeProps, SlotProvider } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { ItemButton } from '../../actions/ItemButton/ItemButton';\nimport { useOpenTransitionContext } from '../Modal/OpenTransitionContext';\n\nimport { useDialogContext } from './context';\nimport { useContentOverflow } from './use-content-overflow';\n\nconst STYLES_LIST = [\n ...BASE_STYLES,\n ...DIMENSION_STYLES,\n ...BLOCK_STYLES,\n ...FLOW_STYLES,\n];\n\nconst DialogElement = tasty({\n as: 'section',\n styles: {\n display: 'flex',\n flow: 'column',\n fill: '#surface',\n pointerEvents: 'auto',\n outline: 0,\n position: {\n '': 'relative',\n 'type=panel': 'absolute',\n },\n width: {\n '': '$min-dialog-size $dialog-size (100dvw - 8x)',\n 'type=fullscreen': '(100dvw - 8x) (100dvw - 8x)',\n 'type=fullscreenTakeover': '100dvw 100dvw',\n 'type=panel': 'auto',\n },\n height: {\n '': 'auto (100dvh - 8x)',\n 'type=fullscreen': '(100dvh - 8x) (100dvh - 8x)',\n 'type=fullscreenTakeover | type=panel': '100dvh 100dvh',\n 'type=popover': 'initial initial (50dvh - 5x)',\n },\n gap: 0,\n border: {\n '': false,\n 'type=popover': true,\n },\n radius: {\n '': '1cr',\n 'type=tray': '1cr top',\n 'type=fullscreenTakeover': '0r',\n },\n shadow: {\n '': '$dialog-shadow',\n 'type=popover | type=panel': '$shadow',\n },\n top: {\n '': false,\n 'type=modal': '((50vh - 50%) / -3)',\n 'type=panel': 'auto',\n },\n '$dialog-title-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-padding-h': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-footer-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-gap': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n\n // A `Form` placed directly here (`Dialog > Form > Content + Footer`) lays\n // itself out as this flex column — see `FormElement`. It is the form's own\n // state rather than a rule here, so the form's `styles` still win.\n },\n});\n\nconst CloseButton = tasty(ItemButton, {\n qa: 'ModalCloseButton',\n type: 'clear',\n styles: {\n position: 'absolute',\n top: '1x',\n right: '1x',\n },\n});\n\nconst sizeMap = {\n S: 'small',\n M: 'medium',\n L: 'large',\n};\nconst sizePxMap = {\n small: 360,\n medium: 479,\n large: 798,\n};\n\nexport interface CubeDialogProps\n extends Omit<BaseProps, 'role'>,\n AriaDialogProps,\n BaseStyleProps,\n BlockStyleProps,\n DimensionStyleProps {\n /** The size of the dialog */\n size?: 'S' | 'M' | 'L' | 'small' | 'medium' | 'large';\n /** Whether the dialog is dismissable */\n isDismissable?: boolean;\n /** Trigger when the dialog is dismissed */\n onDismiss?: (arg?: any) => void;\n /** That you can replace the close icon with */\n closeIcon?: ReactElement;\n closeButtonStyles?: Styles;\n role?: 'dialog' | 'alertdialog';\n}\n\n/**\n * Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface.\n * Depending on the kind of Dialog, further interactions may be blocked until the Dialog is acknowledged.\n */\nexport const Dialog = forwardRef(function Dialog(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n const transitionContext = useOpenTransitionContext();\n\n const isEntered = transitionContext?.transitionState === 'entered';\n\n const context = useDialogContext();\n\n const content = useMemo(() => {\n return <DialogContent key=\"content\" {...props} ref={ref} />;\n }, [props, ref]);\n\n const shouldContainFocus =\n isEntered && !!context.isOpen && context.type !== 'panel';\n\n return (\n // This component traps the focus inside the dialog and restores it on\n // close. The restore is the one that matters for popover-type dialogs —\n // `DialogTrigger`'s own restore is a no-op there — so `shouldRestoreFocus`\n // has to reach it. Containment is unaffected either way.\n <FocusScope\n restoreFocus={context.shouldRestoreFocus ?? true}\n contain={shouldContainFocus}\n >\n {content}\n </FocusScope>\n );\n});\n\nconst DialogContent = forwardRef(function DialogContent(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n let { type = 'modal', ...contextProps } = useDialogContext();\n\n let {\n qa,\n children,\n size = 'M',\n isDismissable = contextProps.isDismissable,\n onDismiss = contextProps.onClose,\n closeIcon,\n closeButtonStyles,\n style,\n ...otherProps\n } = props;\n\n size = sizeMap[size.toUpperCase()] || size;\n\n const styles: Styles = extractStyles(otherProps, STYLES_LIST);\n\n const { t } = useI18n();\n\n let domRef = useObjectRef(ref);\n let { dialogProps, titleProps } = useDialog(\n mergeProps(contextProps, props),\n domRef,\n );\n\n // If rendered in a popover or tray there won't be a visible dismiss button,\n // so we render a hidden one for screen readers.\n let dismissButton;\n if (type === 'popover' || type === 'tray') {\n dismissButton = <DismissButton onDismiss={onDismiss} />;\n }\n\n // Focus the first focusable element in the dialog when it opens.\n //\n // We also re-run the priority focus logic when the dialog <section>\n // itself is the active element. This recovers from a race that occurs\n // when a popover-based component (FilterPicker, Picker, Select, …) opens\n // inside another contained Dialog: React's native `autoFocus` on the\n // inner control fires during the mutation phase, before the popover's\n // FocusScope registers in react-aria's focus-scope tree, so the outer\n // FocusScope yanks focus back. useDialog then defaults focus to the\n // dialog <section>; without re-promoting it here, the priority element\n // (e.g. the search input) is never focused.\n useEffect(() => {\n if (contextProps.isOpen) {\n setTimeout(() => {\n if (!domRef.current) return;\n\n const activeElement = document.activeElement;\n const isFocusOutsideDialog = !domRef.current.contains(activeElement);\n const isFocusOnDialogShell = activeElement === domRef.current;\n\n // Priority 1: autofocus input or primary button\n const priorityElement = domRef.current.querySelector(\n 'input[data-autofocus], button[type=\"submit\"], button[data-type=\"primary\"]',\n ) as HTMLElement | null;\n\n if (priorityElement && (isFocusOutsideDialog || isFocusOnDialogShell)) {\n priorityElement.focus();\n return;\n }\n\n if (isFocusOutsideDialog) {\n // Fallback: focus first tabbable element, or dialog itself\n const focusManager = createFocusManager(domRef);\n\n if (!focusManager.focusFirst({ tabbable: true })) {\n domRef.current.focus();\n }\n }\n });\n }\n }, [contextProps.isOpen]);\n\n // let hasHeader = useHasChild('[data-id=\"Header\"]', domRef);\n // let hasFooter = useHasChild('[data-id=\"Footer\"]', domRef);\n\n const contentOverflows = useContentOverflow(domRef);\n\n let slots = {\n title: {\n level: 2,\n preset: 'h4',\n ...titleProps,\n },\n content: {\n styles: {\n flexGrow: 1,\n padding: '$dialog-content-padding-v $dialog-padding-h',\n gap: '$dialog-content-gap',\n height: {\n '': 'max (100% - (2 * $dialog-content-padding-v))',\n ':last-child': 'max (100% - $dialog-content-padding-v)',\n },\n },\n },\n header: {\n ellipsis: true,\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center stretch',\n placeContent: 'space-between',\n padding: `$dialog-title-padding-v ${\n isDismissable ? '($dialog-padding-h + 4x)' : '$dialog-padding-h'\n } $dialog-title-padding-v $dialog-padding-h`,\n border: 'bottom',\n },\n },\n footer: {\n mods: { 'content-overflow': contentOverflows },\n styles: {\n display: 'flex',\n gap: '1x',\n flow: 'row-reverse',\n placeItems: 'baseline stretch',\n placeContent: 'space-between',\n padding: '$dialog-footer-v $dialog-padding-h',\n // A line only while the body scrolls: the footer then sits over\n // content that carries on beneath it, and the line is what says so.\n // Under a body that fits, the actions simply end it and a rule there\n // reads as clutter.\n border: {\n '': false,\n 'content-overflow': 'top',\n },\n },\n },\n buttonGroup: {\n styles: {\n flow: 'row-reverse',\n },\n },\n };\n\n return (\n <DialogElement\n ref={domRef}\n data-id=\"Dialog\"\n data-qa={qa || 'Dialog'}\n styles={styles}\n as=\"section\"\n {...dialogProps}\n mods={{ dismissable: isDismissable }}\n style={{\n '--dialog-size': `${sizePxMap[size] || sizePxMap.small}px`,\n ...style,\n }}\n data-type={type}\n data-size={size}\n >\n {dismissButton}\n\n <SlotProvider slots={slots}>\n {isDismissable && (\n <CloseButton\n icon={closeIcon || <CloseIcon size={20} />}\n label={t('dialog.dismiss', 'Dismiss')}\n onPress={() => onDismiss && onDismiss()}\n />\n )}\n {children}\n </SlotProvider>\n </DialogElement>\n );\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgCA,MAAM8B,cAAc;CAClB,GAAG5B;CACH,GAAGK;CACH,GAAGF;CACH,GAAGI;CACJ;AAED,MAAMsB,gBAAgBpB,MAAM;CAC1BqB,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,MAAM;EACNC,MAAM;EACNC,eAAe;EACfC,SAAS;EACTC,UAAU;GACR,IAAI;GACJ,cAAc;GACf;EACDC,OAAO;GACL,IAAI;GACJ,mBAAmB;GACnB,2BAA2B;GAC3B,cAAc;GACf;EACDC,QAAQ;GACN,IAAI;GACJ,mBAAmB;GACnB,wCAAwC;GACxC,gBAAgB;GACjB;EACDC,KAAK;EACLC,QAAQ;GACN,IAAI;GACJ,gBAAgB;GACjB;EACDC,QAAQ;GACN,IAAI;GACJ,aAAa;GACb,2BAA2B;GAC5B;EACDC,QAAQ;GACN,IAAI;GACJ,6BAA6B;GAC9B;EACDC,KAAK;GACH,IAAI;GACJ,cAAc;GACd,cAAc;GACf;EACD,2BAA2B;GACzB,IAAI;GACJ,gBAAgB;GACjB;EACD,6BAA6B;GAC3B,IAAI;GACJ,gBAAgB;GACjB;EACD,qBAAqB;GACnB,IAAI;GACJ,gBAAgB;GACjB;EACD,oBAAoB;GAClB,IAAI;GACJ,gBAAgB;GACjB;EACD,uBAAuB;GACrB,IAAI;GACJ,gBAAgB;GAClB;EAKF;CACD,CAAC;AAEF,MAAMC,cAAcpC,MAAMe,aAAY;CACpCsB,IAAI;CACJC,MAAM;CACNhB,QAAQ;EACNM,UAAU;EACVO,KAAK;EACLI,OAAO;EACT;CACD,CAAC;AAEF,MAAMC,UAAU;CACdC,GAAG;CACHC,GAAG;CACHC,GAAG;CACJ;AACD,MAAMC,YAAY;CAChBC,OAAO;CACPC,QAAQ;CACRC,OAAO;CACR;;;;;AAwBD,MAAaU,SAASxD,WAAW,SAAAwD,OAAAC,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAM/B,MAAAE,YAF0B/C,0BAA0B,EAEjBgD,oBAAsB;CAEzD,MAAAC,UAAgBhD,kBAAkB;CAAC,IAAAiD;AAAA,KAAAN,EAAA,OAAAF,SAAAE,EAAA,OAAAD,KAAA;AAG1BO,OAAA,oBAAC;GAA2B,GAAKR;GAAYC;KAA1B,UAAiC;AAAAC,IAAA,KAAAF;AAAAE,IAAA,KAAAD;AAAAC,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAD7D,MAAAO,UACED;CAGF,MAAAE,qBACEL,aAAA,CAAc,CAACE,QAAOI,UAAWJ,QAAO3B,SAAU;CAQlC,MAAAgC,KAAAL,QAAOM,sBAAP;CAAkC,IAAAC;AAAA,KAAAZ,EAAA,OAAAO,WAAAP,EAAA,OAAAQ,sBAAAR,EAAA,OAAAU,IAAA;AADlDE,OAAA,oBAAC;GACe,cAAAF;GACLF,SAAAA;aAERD;IACU;AAAAP,IAAA,KAAAO;AAAAP,IAAA,KAAAQ;AAAAR,IAAA,KAAAU;AAAAV,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;AAAA,QALbY;EAOF;AAEF,MAAMC,gBAAgBxE,WAAW,SAASwE,cACxCf,OACAC,KACA;CACA,IAAI,EAAErB,OAAO,SAAS,GAAGqC,iBAAiB1D,kBAAkB;CAE5D,IAAI,EACFoB,IACAuC,UACA1B,OAAO,KACPC,gBAAgBwB,aAAaxB,eAC7BC,YAAYuB,aAAaE,SACzBvB,WACAC,mBACAuB,OACA,GAAGC,eACDrB;AAEJR,QAAOV,QAAQU,KAAK8B,aAAa,KAAK9B;CAEtC,MAAM5B,SAAiBR,cAAciE,YAAY5D,YAAY;CAE7D,MAAM,EAAE8D,MAAMvE,SAAS;CAEvB,IAAIwE,SAAS5F,aAAaqE,IAAI;CAC9B,IAAI,EAAEwB,aAAaC,eAAe3E,UAChCG,aAAW+D,cAAcjB,MAAM,EAC/BwB,OACD;CAID,IAAIG;AACJ,KAAI/C,SAAS,aAAaA,SAAS,OACjC+C,iBAAgB,oBAAC,iBAAyBjC,YAAa;AAczDhD,iBAAgB;AACd,MAAIuE,aAAaN,OACfiB,kBAAiB;AACf,OAAI,CAACJ,OAAOK,QAAS;GAErB,MAAMC,gBAAgBC,SAASD;GAC/B,MAAME,uBAAuB,CAACR,OAAOK,QAAQI,SAASH,cAAc;GACpE,MAAMI,uBAAuBJ,kBAAkBN,OAAOK;GAGtD,MAAMM,kBAAkBX,OAAOK,QAAQO,cACrC,gFACD;AAED,OAAID,oBAAoBH,wBAAwBE,uBAAuB;AACrEC,oBAAgBG,OAAO;AACvB;;AAGF,OAAIN,sBAIF;QAAI,CAFiBrG,mBAAmB6F,OAAO,CAE7BgB,WAAW,EAAEC,UAAU,MAAM,CAAC,CAC9CjB,QAAOK,QAAQS,OAAO;;IAG1B;IAEH,CAACrB,aAAaN,OAAO,CAAC;CAKzB,MAAM+B,mBAAmBlF,mBAAmBgE,OAAO;CAEnD,IAAImB,QAAQ;EACVC,OAAO;GACLC,OAAO;GACPC,QAAQ;GACR,GAAGpB;GACJ;EACDjB,SAAS,EACP7C,QAAQ;GACNmF,UAAU;GACVC,SAAS;GACT3E,KAAK;GACLD,QAAQ;IACN,IAAI;IACJ,eAAe;IACjB;GACF,EACD;EACD6E,QAAQ;GACNC,UAAU;GACVtF,QAAQ;IACNC,SAAS;IACTC,MAAM;IACNO,KAAK;IACL8E,YAAY;IACZC,cAAc;IACdJ,SAAS,2BACPvD,gBAAgB,6BAA6B,oBAAmB;IAElEnB,QAAQ;IACV;GACD;EACD+E,QAAQ;GACNC,MAAM,EAAE,oBAAoBZ,kBAAkB;GAC9C9E,QAAQ;IACNC,SAAS;IACTQ,KAAK;IACLP,MAAM;IACNqF,YAAY;IACZC,cAAc;IACdJ,SAAS;IAKT1E,QAAQ;KACN,IAAI;KACJ,oBAAoB;KACtB;IACF;GACD;EACDiF,aAAa,EACX3F,QAAQ,EACNE,MAAM,eACR,EACF;EACD;AAED,QACE,qBAAC;EACC,KAAK0D;EACL,WAAQ;EACR,WAAS7C,MAAM;EACPf;EACR,IAAG;EACH,GAAI6D;EACJ,MAAM,EAAE+B,aAAa/D,eAAe;EACpC,OAAO;GACL,iBAAiB,GAAGP,UAAUM,SAASN,UAAUC,MAAK;GACtD,GAAGiC;GACJ;EACD,aAAWxC;EACX,aAAWY;aAEVmC,eAED,qBAAC;GAAoBgB;cAClBlD,iBACC,oBAAC;IACC,MAAMG,aAAa,oBAAC,aAAU,MAAM,KAAM;IAC1C,OAAO2B,EAAE,kBAAkB,UAAU;IACrC,eAAe7B,aAAaA,WAAW;KAE1C,EACAwB;IACW;GACA;EAElB"}
|
|
1
|
+
{"version":3,"file":"Dialog.js","names":["createFocusManager","useObjectRef","BASE_STYLES","BaseProps","BaseStyleProps","BLOCK_STYLES","BlockStyleProps","DIMENSION_STYLES","DimensionStyleProps","FLOW_STYLES","Styles","tasty","forwardRef","ReactElement","Ref","useEffect","AriaDialogProps","DismissButton","FocusScope","useDialog","useI18n","CloseIcon","mergeProps","SlotProvider","extractStyles","ItemButton","useOpenTransitionContext","useDialogContext","useContentOverflow","STYLES_LIST","DialogElement","as","styles","display","flow","fill","pointerEvents","outline","position","width","height","gap","border","radius","shadow","top","CloseButton","qa","type","right","sizeMap","S","M","L","sizePxMap","small","medium","large","CubeDialogProps","Omit","size","isDismissable","onDismiss","arg","closeIcon","closeButtonStyles","role","Dialog","props","ref","$","_c","transitionContext","isEntered","transitionState","context","t0","content","shouldContainFocus","isOpen","t1","shouldRestoreFocus","t2","DialogContent","HTMLDivElement","contextProps","children","onClose","style","otherProps","toUpperCase","t","domRef","dialogProps","titleProps","dismissButton","setTimeout","current","activeElement","document","isFocusOutsideDialog","contains","isFocusOnDialogShell","priorityElement","querySelector","HTMLElement","focus","focusManager","focusFirst","tabbable","contentOverflows","slots","title","level","preset","flexGrow","padding","header","ellipsis","placeItems","placeContent","footer","mods","buttonGroup","dismissable"],"sources":["../../../../src/components/overlays/Dialog/Dialog.tsx"],"sourcesContent":["import { createFocusManager } from '@react-aria/focus';\nimport { useObjectRef } from '@react-aria/utils';\nimport {\n BASE_STYLES,\n BaseProps,\n BaseStyleProps,\n BLOCK_STYLES,\n BlockStyleProps,\n DIMENSION_STYLES,\n DimensionStyleProps,\n FLOW_STYLES,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef, ReactElement, Ref, useEffect } from 'react';\nimport {\n AriaDialogProps,\n DismissButton,\n FocusScope,\n useDialog,\n} from 'react-aria';\n\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { mergeProps, SlotProvider } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { ItemButton } from '../../actions/ItemButton/ItemButton';\nimport { useOpenTransitionContext } from '../Modal/OpenTransitionContext';\n\nimport { useDialogContext } from './context';\nimport { useContentOverflow } from './use-content-overflow';\n\nconst STYLES_LIST = [\n ...BASE_STYLES,\n ...DIMENSION_STYLES,\n ...BLOCK_STYLES,\n ...FLOW_STYLES,\n];\n\nconst DialogElement = tasty({\n as: 'section',\n styles: {\n display: 'flex',\n flow: 'column',\n fill: '#surface',\n pointerEvents: 'auto',\n outline: 0,\n position: {\n '': 'relative',\n 'type=panel': 'absolute',\n },\n width: {\n '': '$min-dialog-size $dialog-size (100dvw - 8x)',\n 'type=fullscreen': '(100dvw - 8x) (100dvw - 8x)',\n 'type=fullscreenTakeover': '100dvw 100dvw',\n 'type=panel': 'auto',\n },\n height: {\n '': 'auto (100dvh - 8x)',\n 'type=fullscreen': '(100dvh - 8x) (100dvh - 8x)',\n 'type=fullscreenTakeover | type=panel': '100dvh 100dvh',\n 'type=popover': 'initial initial (50dvh - 5x)',\n },\n gap: 0,\n border: {\n '': false,\n 'type=popover': true,\n },\n radius: {\n '': '1cr',\n 'type=tray': '1cr top',\n 'type=fullscreenTakeover': '0r',\n },\n shadow: {\n '': '$dialog-shadow',\n 'type=popover | type=panel': '$shadow',\n },\n top: {\n '': false,\n 'type=modal': '((50vh - 50%) / -3)',\n 'type=panel': 'auto',\n },\n '$dialog-title-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-padding-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-padding-h': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-footer-v': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n '$dialog-content-gap': {\n '': '1.5x',\n 'type=popover': '1x',\n },\n\n // A `Form` placed directly here (`Dialog > Form > Content + Footer`) lays\n // itself out as this flex column — see `FormElement`. It is the form's own\n // state rather than a rule here, so the form's `styles` still win.\n },\n});\n\nconst CloseButton = tasty(ItemButton, {\n qa: 'ModalCloseButton',\n type: 'clear',\n styles: {\n position: 'absolute',\n top: '1x',\n right: '1x',\n },\n});\n\nconst sizeMap = {\n S: 'small',\n M: 'medium',\n L: 'large',\n};\nconst sizePxMap = {\n small: 360,\n medium: 479,\n large: 798,\n};\n\nexport interface CubeDialogProps\n extends Omit<BaseProps, 'role'>,\n AriaDialogProps,\n BaseStyleProps,\n BlockStyleProps,\n DimensionStyleProps {\n /** The size of the dialog */\n size?: 'S' | 'M' | 'L' | 'small' | 'medium' | 'large';\n /** Whether the dialog is dismissable */\n isDismissable?: boolean;\n /** Trigger when the dialog is dismissed */\n onDismiss?: (arg?: any) => void;\n /** That you can replace the close icon with */\n closeIcon?: ReactElement;\n closeButtonStyles?: Styles;\n role?: 'dialog' | 'alertdialog';\n}\n\n/**\n * Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface.\n * Depending on the kind of Dialog, further interactions may be blocked until the Dialog is acknowledged.\n */\nexport const Dialog = forwardRef(function Dialog(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n const transitionContext = useOpenTransitionContext();\n\n const isEntered = transitionContext?.transitionState === 'entered';\n\n const context = useDialogContext();\n\n const content = <DialogContent key=\"content\" {...props} ref={ref} />;\n\n const shouldContainFocus =\n isEntered && !!context.isOpen && context.type !== 'panel';\n\n return (\n // This component traps the focus inside the dialog and restores it on\n // close. The restore is the one that matters for popover-type dialogs —\n // `DialogTrigger`'s own restore is a no-op there — so `shouldRestoreFocus`\n // has to reach it. Containment is unaffected either way.\n <FocusScope\n restoreFocus={context.shouldRestoreFocus ?? true}\n contain={shouldContainFocus}\n >\n {content}\n </FocusScope>\n );\n});\n\nconst DialogContent = forwardRef(function DialogContent(\n props: CubeDialogProps,\n ref: Ref<HTMLDivElement>,\n) {\n let { type = 'modal', ...contextProps } = useDialogContext();\n\n let {\n qa,\n children,\n size = 'M',\n isDismissable = contextProps.isDismissable,\n onDismiss = contextProps.onClose,\n closeIcon,\n closeButtonStyles,\n style,\n ...otherProps\n } = props;\n\n size = sizeMap[size.toUpperCase()] || size;\n\n const styles: Styles = extractStyles(otherProps, STYLES_LIST);\n\n const { t } = useI18n();\n\n let domRef = useObjectRef(ref);\n let { dialogProps, titleProps } = useDialog(\n mergeProps(contextProps, props),\n domRef,\n );\n\n // If rendered in a popover or tray there won't be a visible dismiss button,\n // so we render a hidden one for screen readers.\n let dismissButton;\n if (type === 'popover' || type === 'tray') {\n dismissButton = <DismissButton onDismiss={onDismiss} />;\n }\n\n // Focus the first focusable element in the dialog when it opens.\n //\n // We also re-run the priority focus logic when the dialog <section>\n // itself is the active element. This recovers from a race that occurs\n // when a popover-based component (FilterPicker, Picker, Select, …) opens\n // inside another contained Dialog: React's native `autoFocus` on the\n // inner control fires during the mutation phase, before the popover's\n // FocusScope registers in react-aria's focus-scope tree, so the outer\n // FocusScope yanks focus back. useDialog then defaults focus to the\n // dialog <section>; without re-promoting it here, the priority element\n // (e.g. the search input) is never focused.\n useEffect(() => {\n if (contextProps.isOpen) {\n setTimeout(() => {\n if (!domRef.current) return;\n\n const activeElement = document.activeElement;\n const isFocusOutsideDialog = !domRef.current.contains(activeElement);\n const isFocusOnDialogShell = activeElement === domRef.current;\n\n // Priority 1: autofocus input or primary button\n const priorityElement = domRef.current.querySelector(\n 'input[data-autofocus], button[type=\"submit\"], button[data-type=\"primary\"]',\n ) as HTMLElement | null;\n\n if (priorityElement && (isFocusOutsideDialog || isFocusOnDialogShell)) {\n priorityElement.focus();\n return;\n }\n\n if (isFocusOutsideDialog) {\n // Fallback: focus first tabbable element, or dialog itself\n const focusManager = createFocusManager(domRef);\n\n if (!focusManager.focusFirst({ tabbable: true })) {\n domRef.current.focus();\n }\n }\n });\n }\n }, [contextProps.isOpen]);\n\n // let hasHeader = useHasChild('[data-id=\"Header\"]', domRef);\n // let hasFooter = useHasChild('[data-id=\"Footer\"]', domRef);\n\n const contentOverflows = useContentOverflow(domRef);\n\n let slots = {\n title: {\n level: 2,\n preset: 'h4',\n ...titleProps,\n },\n content: {\n styles: {\n flexGrow: 1,\n padding: '$dialog-content-padding-v $dialog-padding-h',\n gap: '$dialog-content-gap',\n height: {\n '': 'max (100% - (2 * $dialog-content-padding-v))',\n ':last-child': 'max (100% - $dialog-content-padding-v)',\n },\n },\n },\n header: {\n ellipsis: true,\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center stretch',\n placeContent: 'space-between',\n padding: `$dialog-title-padding-v ${\n isDismissable ? '($dialog-padding-h + 4x)' : '$dialog-padding-h'\n } $dialog-title-padding-v $dialog-padding-h`,\n border: 'bottom',\n },\n },\n footer: {\n mods: { 'content-overflow': contentOverflows },\n styles: {\n display: 'flex',\n gap: '1x',\n flow: 'row-reverse',\n placeItems: 'baseline stretch',\n placeContent: 'space-between',\n padding: '$dialog-footer-v $dialog-padding-h',\n // A line only while the body scrolls: the footer then sits over\n // content that carries on beneath it, and the line is what says so.\n // Under a body that fits, the actions simply end it and a rule there\n // reads as clutter.\n border: {\n '': false,\n 'content-overflow': 'top',\n },\n },\n },\n buttonGroup: {\n styles: {\n flow: 'row-reverse',\n },\n },\n };\n\n return (\n <DialogElement\n ref={domRef}\n data-id=\"Dialog\"\n data-qa={qa || 'Dialog'}\n styles={styles}\n as=\"section\"\n {...dialogProps}\n mods={{ dismissable: isDismissable }}\n style={{\n '--dialog-size': `${sizePxMap[size] || sizePxMap.small}px`,\n ...style,\n }}\n data-type={type}\n data-size={size}\n >\n {dismissButton}\n\n <SlotProvider slots={slots}>\n {isDismissable && (\n <CloseButton\n icon={closeIcon || <CloseIcon size={20} />}\n label={t('dialog.dismiss', 'Dismiss')}\n onPress={() => onDismiss && onDismiss()}\n />\n )}\n {children}\n </SlotProvider>\n </DialogElement>\n );\n});\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { _Modal } from "../Modal/Modal.js";
|
|
3
3
|
import { DialogContext } from "./context.js";
|
|
4
4
|
import { Children, isValidElement, useRef } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { _Title } from "../../content/Title.js";
|
|
3
3
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
4
4
|
import { Button } from "../../actions/Button/Button.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { _Title } from "../../content/Title.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { DialogContainer } from "./DialogContainer.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { _Overlay } from "./Overlay.js";
|
|
4
4
|
import { _Underlay } from "./Underlay.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { createContext, useContext } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/overlays/Modal/OpenTransitionContext.tsx
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { markFocusRestoreWindow } from "../../../utils/react/programmaticFocus.js";
|
|
3
3
|
import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
|
|
4
4
|
import { Provider, useProviderProps } from "../../../provider.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { _Overlay } from "./Overlay.js";
|
|
4
4
|
import { useOverlayEscapeGuard } from "../../../utils/react/useOverlayEscapeGuard.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { _Overlay } from "./Overlay.js";
|
|
4
4
|
import { _Underlay } from "./Underlay.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { c } from "react-compiler-runtime";
|
|
3
3
|
import { tasty } from "@tenphi/tasty";
|
|
4
4
|
import { forwardRef } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { useNotificationContext } from "./NotificationContext.js";
|
|
3
3
|
import { c } from "react-compiler-runtime";
|
|
4
4
|
import { useEffect, useRef } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { Block } from "../../Block.js";
|
|
3
3
|
import { ItemActionProvider } from "../../actions/ItemActionContext.js";
|
|
4
4
|
import { Space } from "../../layout/Space.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { createContext, useContext } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/overlays/Notifications/NotificationContext.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { NotificationCard } from "./NotificationCard.js";
|
|
4
4
|
import { c } from "react-compiler-runtime";
|