@cube-dev/ui-kit 0.178.0 → 0.179.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CHANGELOG.md +59 -0
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.d.ts +0 -1
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +218 -0
- package/dist/components/actions/ItemActionsWrapper.js.map +1 -0
- package/dist/components/actions/ItemButton/ItemButton.d.ts +11 -1
- package/dist/components/actions/ItemButton/ItemButton.js +25 -143
- package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +3 -1
- package/dist/components/actions/Menu/MenuTrigger.js.map +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 +34 -0
- package/dist/components/actions/actions-run.js.map +1 -0
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +5 -5
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.d.ts +14 -14
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/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.d.ts +1 -2
- 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.d.ts +0 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- package/dist/components/fields/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 +18 -27
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +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/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/index.d.ts +0 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +18 -27
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +53 -55
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/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 +5 -56
- package/dist/components/fields/TriggerActions.js.map +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/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/index.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 +5 -5
- package/dist/components/form/Form/use-form.js.map +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.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 +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +36 -40
- 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/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -29
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +4 -2
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.d.ts +1 -2
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.d.ts +0 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/types.d.ts +0 -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.d.ts +0 -2
- 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 +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/index.d.ts +0 -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 +25 -6
- package/dist/data/item-themes.js.map +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/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 +50 -0
- package/dist/utils/dotize.js.map +1 -0
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +3 -3
- package/docs/components/Block.md +3 -3
- package/docs/components/CollectionItem.md +3 -3
- package/docs/components/GridProvider.md +3 -3
- package/docs/components/Root.md +1 -1
- package/docs/components/actions/Action.md +3 -3
- package/docs/components/actions/Banner.md +3 -3
- package/docs/components/actions/Button.md +3 -3
- package/docs/components/actions/ButtonGroup.md +3 -3
- package/docs/components/actions/ButtonSplit.md +3 -3
- package/docs/components/actions/CommandMenu.md +3 -3
- package/docs/components/actions/ItemAction.md +3 -1
- package/docs/components/actions/ItemButton.md +15 -1
- package/docs/components/actions/Link.md +3 -3
- package/docs/components/actions/Menu.md +3 -3
- package/docs/components/actions/MenuTrigger.md +3 -3
- package/docs/components/actions/SubMenuTrigger.md +3 -3
- package/docs/components/actions/use-anchored-menu.md +3 -3
- package/docs/components/actions/use-context-menu.md +3 -3
- package/docs/components/content/ActiveZone.md +3 -3
- package/docs/components/content/Alert.md +3 -3
- package/docs/components/content/Avatar.md +3 -3
- package/docs/components/content/Card.md +3 -3
- package/docs/components/content/Content.md +3 -3
- package/docs/components/content/CopyPasteBlock.md +1 -1
- package/docs/components/content/CopySnippet.md +3 -3
- package/docs/components/content/Disclosure.md +3 -3
- package/docs/components/content/Divider.md +3 -3
- package/docs/components/content/Footer.md +3 -3
- package/docs/components/content/Header.md +3 -3
- package/docs/components/content/HotKeys.md +3 -3
- package/docs/components/content/InlineInput.md +3 -3
- package/docs/components/content/Item.md +3 -3
- package/docs/components/content/Layout.md +3 -3
- package/docs/components/content/Paragraph.md +3 -3
- package/docs/components/content/Placeholder.md +3 -3
- package/docs/components/content/Result.md +3 -3
- package/docs/components/content/Skeleton.md +3 -3
- package/docs/components/content/Title.md +3 -3
- package/docs/components/content/Tree.md +3 -3
- package/docs/components/data/DataTable.md +3 -3
- package/docs/components/data/ItemTable.md +3 -3
- package/docs/components/fields/Checkbox.md +3 -3
- package/docs/components/fields/ColorInput.md +3 -3
- package/docs/components/fields/ColorPicker.md +3 -3
- package/docs/components/fields/ColorSwatch.md +3 -3
- package/docs/components/fields/ColorSwatchGroup.md +3 -3
- package/docs/components/fields/ComboBox.md +3 -3
- package/docs/components/fields/CommandTextArea.md +3 -3
- package/docs/components/fields/DatePicker.md +3 -3
- package/docs/components/fields/FileInput.md +3 -3
- package/docs/components/fields/FilterListBox.md +3 -3
- package/docs/components/fields/FilterPicker.md +13 -3
- package/docs/components/fields/HueSlider.md +3 -3
- package/docs/components/fields/ListBox.md +3 -3
- package/docs/components/fields/NumberInput.md +3 -3
- package/docs/components/fields/PasswordInput.md +3 -3
- package/docs/components/fields/PeriodPicker.md +3 -3
- package/docs/components/fields/Picker.md +13 -3
- package/docs/components/fields/RadioGroup.md +3 -3
- package/docs/components/fields/SearchComboBox.md +3 -3
- package/docs/components/fields/SearchInput.md +3 -3
- package/docs/components/fields/Select.md +13 -3
- package/docs/components/fields/Slider.md +3 -3
- package/docs/components/fields/Switch.md +3 -3
- package/docs/components/fields/TextArea.md +3 -3
- package/docs/components/fields/TextInput.md +3 -3
- package/docs/components/fields/TextInputMapper.md +3 -3
- package/docs/components/form/Field.md +3 -3
- package/docs/components/form/Form.md +3 -3
- package/docs/components/layout/Board.md +3 -3
- package/docs/components/layout/Flex.md +3 -3
- package/docs/components/layout/Flow.md +3 -3
- package/docs/components/layout/Grid.md +3 -3
- package/docs/components/layout/Panel.md +3 -3
- package/docs/components/layout/Prefix.md +3 -3
- package/docs/components/layout/ResizablePanel.md +3 -3
- package/docs/components/layout/Space.md +3 -3
- package/docs/components/layout/Suffix.md +3 -3
- package/docs/components/navigation/Pagination.md +3 -3
- package/docs/components/navigation/Tabs.md +3 -3
- package/docs/components/organisms/StatsCard.md +3 -3
- package/docs/components/overlays/AlertDialog.md +3 -3
- package/docs/components/overlays/Dialog.md +2 -2
- package/docs/components/overlays/DialogContainer.md +2 -2
- package/docs/components/overlays/DialogForm.md +2 -2
- package/docs/components/overlays/DialogTrigger.md +2 -2
- package/docs/components/overlays/Tooltip.md +3 -3
- package/docs/components/overlays/TooltipProvider.md +3 -3
- package/docs/components/overlays/TooltipTrigger.md +3 -3
- package/docs/components/status/LoadingAnimation.md +3 -3
- package/docs/components/status/Spin.md +3 -3
- package/docs/tasty/ai-agents.md +8 -3
- package/docs/tasty/debug.md +2 -5
- package/docs/tasty/methodology.md +3 -3
- package/docs/tasty/pipeline.md +3 -0
- package/docs/tasty/runtime-benchmarks.md +105 -68
- package/docs/tasty/ssr.md +1 -1
- package/docs/tasty/styles.md +43 -11
- package/package.json +3 -3
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +0 -2
- package/dist/components/portal/PortalProvider.d.ts +0 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useId as useId$2 } from "../../../utils/react/useId.js";
|
|
4
4
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { chain } from "../../../utils/react/chain.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { useBufferedValue } from "../../../utils/react/useBufferedValue.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { chain } from "../../../utils/react/chain.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { useBufferedValue } from "../../../utils/react/useBufferedValue.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
@@ -1,62 +1,11 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { jsx } from "react/jsx-runtime";
|
|
5
|
-
import { ClearPressResponder } from "@react-aria/interactions";
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
|
+
import { ItemActionIcon } from "../actions/ItemActionsWrapper.js";
|
|
3
|
+
import { Fragment, jsxs } from "react/jsx-runtime";
|
|
6
4
|
|
|
7
5
|
//#region src/components/fields/TriggerActions.tsx
|
|
8
|
-
/**
|
|
9
|
-
* `Item`'s own `Actions` slot stops these so a press on an action never reaches
|
|
10
|
-
* the row behind it. The custom actions of a picker trigger sit in the `suffix`
|
|
11
|
-
* slot instead — left of the built-in clear button and caret, which live in
|
|
12
|
-
* `rightIcon` — so they have to repeat the guard themselves. See
|
|
13
|
-
* `ACTIONS_EVENT_HANDLERS` in `Item`.
|
|
14
|
-
*/
|
|
15
|
-
const STOP_PROPAGATION_HANDLERS = {
|
|
16
|
-
onClick: (e) => e.stopPropagation(),
|
|
17
|
-
onPointerDown: (e) => e.stopPropagation(),
|
|
18
|
-
onPointerUp: (e) => e.stopPropagation(),
|
|
19
|
-
onMouseDown: (e) => e.stopPropagation(),
|
|
20
|
-
onMouseUp: (e) => e.stopPropagation(),
|
|
21
|
-
onKeyDown: (e) => {
|
|
22
|
-
if (e.key === "Enter" || e.key === " ") e.stopPropagation();
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
const TriggerActionsElement = tasty({
|
|
26
|
-
qa: "TriggerActions",
|
|
27
|
-
styles: {
|
|
28
|
-
display: "grid",
|
|
29
|
-
flow: "column",
|
|
30
|
-
placeItems: "center",
|
|
31
|
-
placeContent: "center",
|
|
32
|
-
gap: "1bw",
|
|
33
|
-
margin: "0 (1bw - $side-padding) 0 0",
|
|
34
|
-
"$action-size": "min(max((2x + 2bw), ($size - 1x - 2bw)), (3x - 2bw))",
|
|
35
|
-
"$side-padding": "(($size - $action-size - 2bw) / 2)"
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
/**
|
|
39
|
-
* Custom actions rendered inside a `Select` / `Picker` / `FilterPicker` trigger,
|
|
40
|
-
* to the left of the built-in clear button and dropdown caret.
|
|
41
|
-
*
|
|
42
|
-
* `ClearPressResponder` is the point of this wrapper. These triggers open their
|
|
43
|
-
* popover through a `PressResponder` that `DialogTrigger` puts in context, and
|
|
44
|
-
* that context reaches *every* `usePress` below it — so without this, pressing a
|
|
45
|
-
* custom action (or the built-in clear button) would also toggle the popover.
|
|
46
|
-
*/
|
|
47
6
|
function TriggerActions(props) {
|
|
48
|
-
const {
|
|
49
|
-
return /* @__PURE__ */
|
|
50
|
-
"data-element": "TriggerActions",
|
|
51
|
-
"data-trigger-action": "",
|
|
52
|
-
...STOP_PROPAGATION_HANDLERS,
|
|
53
|
-
children: /* @__PURE__ */ jsx(ItemActionProvider, {
|
|
54
|
-
type,
|
|
55
|
-
theme,
|
|
56
|
-
isDisabled,
|
|
57
|
-
children
|
|
58
|
-
})
|
|
59
|
-
}) });
|
|
7
|
+
const { actions, builtIn } = props;
|
|
8
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [actions, builtIn] });
|
|
60
9
|
}
|
|
61
10
|
|
|
62
11
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerActions.js","names":[],"sources":["../../../src/components/fields/TriggerActions.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"TriggerActions.js","names":[],"sources":["../../../src/components/fields/TriggerActions.tsx"],"sourcesContent":["import { ItemActionIcon } from '../actions/ItemActionsWrapper';\n\nimport type { ReactNode } from 'react';\n\n/**\n * The trailing run of a `Select` / `Picker` / `FilterPicker` trigger: the\n * caller's custom `actions`, then the built-in control — a loading spinner, the\n * clear button, or the dropdown caret.\n *\n * It renders into `ItemActionsWrapper`'s run, which lies over the trigger's\n * trailing end as a SIBLING of the `<button>` rather than inside it. That is\n * what keeps the clear button from being a `<button>` nested in a `<button>`,\n * and it is why the caret is an `ItemActionIcon`: the run is transparent to the\n * pointer except where a child opts in, so a press on the caret lands on the\n * trigger underneath and opens the popover exactly as it did when the caret\n * lived in the `rightIcon` slot.\n *\n * The run isolates its children's presses from the trigger and identifies them\n * to the overlay as the trigger's own — both in `ItemActionsWrapper`, so every\n * row that has actions gets them and not only these three.\n */\nexport interface TriggerActionsProps {\n /** The caller's custom actions. They come first — leftmost in LTR. */\n actions?: ReactNode;\n /** The built-in control: spinner, clear button, or caret. */\n builtIn?: ReactNode;\n}\n\nexport function TriggerActions(props: TriggerActionsProps) {\n const { actions, builtIn } = props;\n\n return (\n <>\n {actions}\n {builtIn}\n </>\n );\n}\n\nexport { ItemActionIcon as TriggerIcon };\n"],"mappings":";;;;;AA4BA,SAAgB,eAAe,OAA4B;CACzD,MAAM,EAAE,SAAS,YAAY;AAE7B,QACE,4CACG,SACA,WACA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { formatColor, getContrastingColor, toHex } from "./color.js";
|
|
4
4
|
import { CHANNELS, COLOR_SPACES, COLOR_SPACE_HINTS, COLOR_SPACE_LABELS } from "./channels.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { maxChroma, normalizeHue, oklchToOkhsl } from "../../../utils/colors.js";
|
|
3
3
|
import { fromOkhst, fromRgb, isAchromatic, toHex, toOkhst, toOklch, toRgb } from "./color.js";
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { anyNaN, clamp, maxChroma, normalizeHue, oklchToOkhsl, parseColorFunction, readComponent, readHue, rgbFromSrgb } from "../../../utils/colors.js";
|
|
3
3
|
import { contrastRatioFromLuminance, formatHsl, formatOkhsl, formatOkhst, formatOklch, formatRgb, hslToSrgb, okhslToLinearSrgb, okhslToOkhst, okhslToOklch, okhslToSrgb, okhstToOkhsl, parseHexAlpha, relativeLuminanceFromLinearRgb, srgbToHex, srgbToOkhsl } from "@tenphi/glaze";
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { wrapNodeIfPlain } from "../../../utils/react/wrapNodeIfPlain.js";
|
|
4
4
|
import { isDevEnv } from "../../../utils/is-dev-env.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { warn } from "../../../utils/warnings.js";
|
|
4
4
|
import { useValidationProps } from "../validation/use-validation-props.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
4
4
|
import { Provider, useProviderProps } from "../../../provider.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | 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 { useProviderProps } from "../../../../provider.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { useProviderProps } from "../../../../provider.js";
|
|
3
3
|
import { Button } from "../../../actions/Button/Button.js";
|
|
4
4
|
import { useFormProps } from "../Form.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { useI18n } from "../../../i18n/useI18n.js";
|
|
3
3
|
import { FormContext } from "./Form.js";
|
|
4
4
|
import { Alert } from "../../content/Alert/Alert.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { useForm } from "./use-form.js";
|
|
3
3
|
import { FormContext, _Form, useFormProps } from "./Form.js";
|
|
4
4
|
import { useField } from "./use-field/use-field.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | 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 { warn } from "../../../../utils/warnings.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { useIsFirstRender } from "../../../../_internal/hooks/use-is-first-render.js";
|
|
4
4
|
import { resolveValidationProps } from "../../validation/resolve-validation-props.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
|
+
import { dotizeConvert } from "../../../utils/dotize.js";
|
|
2
3
|
import { applyRules } from "./validation.js";
|
|
3
|
-
import { dotize } from "@tenphi/tasty";
|
|
4
4
|
import { useRef, useState } from "react";
|
|
5
5
|
|
|
6
6
|
//#region src/components/form/Form/use-form.tsx
|
|
@@ -55,7 +55,7 @@ var CubeFormInstance = class {
|
|
|
55
55
|
let flag = false;
|
|
56
56
|
newData = {
|
|
57
57
|
...newData,
|
|
58
|
-
...
|
|
58
|
+
...dotizeConvert(newData)
|
|
59
59
|
};
|
|
60
60
|
Object.keys(newData).forEach((name) => {
|
|
61
61
|
let field = this.fields[name];
|
|
@@ -127,14 +127,14 @@ var CubeFormInstance = class {
|
|
|
127
127
|
setInitialFieldsValue(values) {
|
|
128
128
|
this.defaultValues = {
|
|
129
129
|
...values,
|
|
130
|
-
...
|
|
130
|
+
...dotizeConvert(values)
|
|
131
131
|
};
|
|
132
132
|
}
|
|
133
133
|
updateInitialFieldsValue(values) {
|
|
134
134
|
this.defaultValues = {
|
|
135
135
|
...this.defaultValues,
|
|
136
136
|
...values,
|
|
137
|
-
...
|
|
137
|
+
...dotizeConvert(values)
|
|
138
138
|
};
|
|
139
139
|
}
|
|
140
140
|
resetFields(names, skipRender) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-form.js","names":[],"sources":["../../../../src/components/form/Form/use-form.tsx"],"sourcesContent":["import { dotize } from '@tenphi/tasty';\nimport { ReactNode, useRef, useState } from 'react';\n\nimport { CubeFieldData, FieldTypes, SetFieldsArrType } from './types';\nimport { applyRules } from './validation';\n\ntype PartialString<T> = {\n [P in keyof T & string]?: T[P];\n};\n\nexport type CubeFormData<T extends FieldTypes> = {\n [K in keyof T & string]?: CubeFieldData<K, T[K]>;\n};\n\nfunction setValue(obj, path, value) {\n let a = path.split('.');\n let o = obj;\n\n while (a.length - 1) {\n let n = a.shift();\n if (!(n in o)) o[n] = {};\n o = o[n];\n }\n o[a[0]] = value;\n}\n\nfunction isEqual(v1, v2) {\n return JSON.stringify(v1) === JSON.stringify(v2);\n}\n\nexport class CubeFormInstance<\n T extends FieldTypes,\n TFormData extends CubeFormData<T> = CubeFormData<T>,\n> {\n public forceReRender: () => void = () => {};\n private defaultValues: PartialString<T> = {};\n private fields: TFormData = {} as TFormData;\n public ref = {};\n public isSubmitting = false;\n public submitError: unknown = null;\n\n public onValuesChange: (data: T) => void | Promise<void> = () => {};\n public onSubmit: (data: T) => void | Promise<void> = () => {};\n\n constructor(forceReRender: () => void = () => {}) {\n this.forceReRender = forceReRender;\n\n this.getFieldValue = this.getFieldValue.bind(this);\n this.getFieldsValue = this.getFieldsValue.bind(this);\n this.setFieldValue = this.setFieldValue.bind(this);\n this.getFieldError = this.getFieldError.bind(this);\n this.getFieldInstance = this.getFieldInstance.bind(this);\n this.setInitialFieldsValue = this.setInitialFieldsValue.bind(this);\n this.resetFields = this.resetFields.bind(this);\n this.validateField = this.validateField.bind(this);\n this.validateFields = this.validateFields.bind(this);\n this.isFieldValid = this.isFieldValid.bind(this);\n this.createField = this.createField.bind(this);\n this.isFieldInvalid = this.isFieldInvalid.bind(this);\n this.isFieldTouched = this.isFieldTouched.bind(this);\n this.isFieldDirty = this.isFieldDirty.bind(this);\n this.getFieldNames = this.getFieldNames.bind(this);\n this.getDirtyFieldNames = this.getDirtyFieldNames.bind(this);\n this.getValidFieldNames = this.getValidFieldNames.bind(this);\n this.getInvalidFieldNames = this.getInvalidFieldNames.bind(this);\n this.setFields = this.setFields.bind(this);\n }\n\n async submit() {\n return this.onSubmit?.(this.getFormData());\n }\n\n setFieldsValue = (\n newData: PartialString<T>,\n touched?: boolean,\n skipRender?: boolean,\n ) => {\n let flag = false;\n\n newData = { ...newData, ...dotize.convert(newData) };\n\n Object.keys(newData).forEach((name: keyof T & string) => {\n let field = this.fields[name];\n\n if (!field) {\n return;\n }\n\n if (!field || isEqual(field.value, newData[name])) {\n if (field) {\n field.errors = [];\n field.status = undefined;\n }\n\n return;\n }\n\n flag = true;\n\n field.value = newData[name];\n // Same as `setFieldValue`: a pending validation ran against the old value.\n field.validationId = (field.validationId ?? 0) + 1;\n\n field.errors = [];\n field.status = undefined;\n\n if (touched === true) {\n field.touched = touched;\n } else if (touched === false) {\n field.touched = false;\n }\n });\n\n if (flag && !skipRender) {\n if (touched) {\n this.onValuesChange && this.onValuesChange(this.getFormData());\n this.submitError = null;\n }\n\n this.forceReRender();\n }\n };\n\n getFieldValue<Name extends keyof T & string>(\n name: Name,\n ): T[Name] | undefined {\n return this.fields[name]?.value;\n }\n\n getFieldsValue(): PartialString<T> {\n return Object.values(this.fields).reduce((map, field) => {\n if (field && map) {\n map[field.name as keyof T & string] = field.value;\n }\n\n return map;\n }, {} as PartialString<T>);\n }\n\n /**\n * Similar to getFieldsValue() but respects '.' notation and creates nested objects.\n */\n getFormData(): T {\n const fieldsValue = this.getFieldsValue();\n\n return Object.keys(fieldsValue)\n .sort()\n .reduce((map, field) => {\n setValue(map, field, fieldsValue[field]);\n\n if (field.includes('.')) {\n delete map[field];\n }\n\n return map;\n }, {} as T);\n }\n\n setFieldValue<Name extends keyof T & string>(\n name: Name,\n value: T[Name],\n isTouched = false,\n skipRender = false,\n ) {\n const field = this.fields[name];\n\n if (!field || isEqual(value, field.value)) {\n return;\n }\n\n field.value = value;\n // A validation that is still running belongs to the previous value. Bump\n // the revision so its result cannot publish against this one (the caller's\n // promise still settles) — legacy contract §7.1 #22.\n field.validationId = (field.validationId ?? 0) + 1;\n\n if (typeof value === 'object' && !Array.isArray(value)) {\n Object.keys(this.fields)\n .filter((key) => key.startsWith(`${name}.`))\n .forEach((key) => {\n const objKey = key.replace(`${name}.`, '');\n\n this.setFieldValue(key, value[objKey] ?? null, isTouched, false);\n });\n }\n\n field.errors = [];\n field.status = undefined; // reset validation status\n\n if (isTouched) {\n field.touched = isTouched;\n }\n\n if (isTouched) {\n this.onValuesChange && this.onValuesChange(this.getFormData());\n this.submitError = null;\n }\n\n if (!skipRender) {\n this.forceReRender();\n }\n }\n\n getFieldInstance<Name extends keyof T & string>(name: Name): TFormData[Name] {\n return this.fields[name];\n }\n\n setInitialFieldsValue(values: PartialString<T>): void {\n this.defaultValues = { ...values, ...dotize.convert(values) };\n }\n\n updateInitialFieldsValue(values: FieldTypes): void {\n this.defaultValues = {\n ...this.defaultValues,\n ...values,\n ...dotize.convert(values),\n };\n }\n\n resetFields(names?: (keyof T & string)[], skipRender?: boolean): void {\n names = names ?? Object.keys(this.fields);\n\n names.forEach((fieldName) => {\n const field = this.fields[fieldName];\n\n if (!field) {\n return;\n }\n\n const defaultValue = this.defaultValues[fieldName] ?? undefined;\n\n field.value = defaultValue;\n field.touched = false;\n field.errors = [];\n field.status = undefined;\n field.validationId = (field.validationId ?? 0) + 1;\n });\n\n if (!skipRender) {\n this.forceReRender();\n }\n }\n\n async validateField<Name extends keyof T & string>(name: Name): Promise<any> {\n const field = this.getFieldInstance(name);\n\n if (\n // if there are no rules for such field\n !field ||\n !field.rules ||\n // or field is already validated and valid\n field.status === 'valid'\n ) {\n return Promise.resolve();\n // or field is already validated and invalid\n } else if (field.status === 'invalid') {\n return Promise.reject(field.errors[0]);\n }\n\n field.validating = true;\n field.status = undefined;\n\n field.validationId = (field.validationId ?? 0) + 1;\n\n const validationId = field.validationId;\n\n // store validation to make sure there is no race condition.\n return applyRules(field, this, validationId)\n .then(() => {\n if (field.validationId !== validationId) return;\n\n field.validating = false;\n\n if (!field.errors || field.errors.length) {\n field.errors = [];\n }\n\n field.status = 'valid';\n\n this.forceReRender();\n })\n .catch((err) => {\n if (field.validationId === validationId) {\n field.errors = [err];\n field.validating = false;\n field.status = 'invalid';\n\n this.forceReRender();\n }\n\n return Promise.reject([err]);\n });\n }\n\n validateFields<Names extends (keyof T)[]>(names?: Names): Promise<any> {\n const fieldsList = names || Object.keys(this.fields);\n const errorList: { name: string; errors: ReactNode[] }[] = [];\n\n return Promise.allSettled(\n fieldsList.map((name) => {\n return this.validateField(name).catch((errors) => {\n errorList.push({ name, errors });\n\n return Promise.reject();\n });\n }),\n ).then(() => {\n if (errorList.length) {\n return Promise.reject(errorList);\n }\n\n return this.getFormData();\n });\n }\n\n isFieldValid<Name extends keyof T & string>(name: Name): boolean {\n const field = this.getFieldInstance(name);\n\n if (!field) return true;\n\n return !field.errors.length;\n }\n\n isFieldInvalid<Name extends keyof T & string>(name: Name): boolean {\n const field = this.getFieldInstance(name);\n\n if (!field) return false;\n\n return !!field.errors.length;\n }\n\n isFieldTouched<Name extends keyof T & string>(name: Name): boolean {\n const field = this.getFieldInstance(name);\n\n if (!field) return false;\n\n return !!field.touched;\n }\n\n isFieldDirty<Name extends keyof T & string>(name: Name): boolean {\n const field = this.getFieldInstance(name);\n\n if (!field) return false;\n\n return !isEqual(field.value, this.defaultValues[name]);\n }\n\n getFieldNames(): (keyof T & string)[] {\n return Object.keys(this.fields) as (keyof T & string)[];\n }\n\n getDirtyFieldNames(): (keyof T & string)[] {\n return this.getFieldNames().filter((name) => this.isFieldDirty(name));\n }\n\n getValidFieldNames(): (keyof T & string)[] {\n return this.getFieldNames().filter((name) => this.isFieldValid(name));\n }\n\n getInvalidFieldNames(): (keyof T & string)[] {\n return this.getFieldNames().filter((name) => this.isFieldInvalid(name));\n }\n\n get isTouched(): boolean {\n return Object.values(this.fields).some((field) => field?.touched);\n }\n\n get isDirty(): boolean {\n return this.getDirtyFieldNames().length > 0;\n }\n\n /**\n * True if all fields are verified and valid\n * IMPORTANT: This is not the same as `!isInvalid`, because it also checks if all fields are verified.\n */\n get isValid(): boolean {\n return Object.values(this.fields).every(\n (field) => field?.status === 'valid',\n );\n }\n\n /**\n * True if at least one field is verified and invalid.\n * IMPORTANT: This is not the same as `!isValid`, because it only checks that at least\n * one field is verified and invalid.\n */\n get isInvalid(): boolean {\n return Object.values(this.fields).some(\n (field) => field?.status === 'invalid',\n );\n }\n\n getFieldError<Name extends keyof T & string>(name: Name): ReactNode[] {\n const field = this.getFieldInstance(name);\n\n if (!field) return [];\n\n return field.errors || [];\n }\n\n /**\n * @deprecated This field is not supposed to be used directly.\n */\n createField<Name extends keyof T & string>(name: Name, skipRender?: boolean) {\n // passing an empty name is incorrect, but we have to return a valid object to avoid inconsistency\n if (!name) {\n return this._createField(name);\n }\n\n if (!this.fields[name]) {\n this.fields[name] = this._createField(name);\n }\n\n if (!skipRender) {\n this.forceReRender();\n }\n\n return this.fields[name];\n }\n\n /**\n * @deprecated This field is not supposed to be used directly.\n */\n removeField<Name extends keyof T & string>(name: Name, skipRender?: boolean) {\n if (this.fields[name]) {\n delete this.fields[name];\n }\n\n if (!skipRender) {\n this.forceReRender();\n }\n }\n\n /**\n * @deprecated This method is not recommended. Use other ways to alter fields.\n * Use `setFieldValue` to change the value of a field.\n * Use `verifyField` to validate a field.\n * Use `setFieldError` to set an error for a field.\n * Use `clearFieldsValidation` to clear all errors for a field.\n */\n setFields<Names extends keyof T & string>(\n newFields: SetFieldsArrType<T, Names>[],\n ) {\n newFields.forEach(({ name, value, errors }) => {\n this.fields[name] = this._createField(name, {\n value,\n errors,\n } as TFormData[Names]);\n });\n\n this.forceReRender();\n }\n\n resetFieldsValidation(names?: (keyof T & string)[], skipRender?: boolean) {\n (names || Object.keys(this.fields)).forEach((name) => {\n const field = this.getFieldInstance(name);\n\n if (!field) return;\n\n field.errors = [];\n field.status = undefined;\n field.validationId = (field.validationId ?? 0) + 1;\n });\n\n if (!skipRender) {\n this.forceReRender();\n }\n }\n\n setFieldError(\n name: keyof T & string,\n error: ReactNode,\n skipRender?: boolean,\n ) {\n const field = this.getFieldInstance(name);\n\n if (!field || !error) return;\n\n field.errors = [error];\n field.status = 'invalid';\n field.validationId = (field.validationId ?? 0) + 1;\n\n if (!skipRender) {\n this.forceReRender();\n }\n }\n\n setSubmitting(isSubmitting: boolean) {\n if (this.isSubmitting === isSubmitting) return;\n\n this.isSubmitting = isSubmitting;\n this.forceReRender();\n }\n\n _createField<Name extends keyof T & string, Data extends TFormData[Name]>(\n name: Name,\n data?: Data,\n ): Data {\n let obj = {\n name,\n validating: false,\n touched: false,\n errors: [],\n validationId: 0,\n value: this.defaultValues[name],\n ...data,\n // it should be impossible to define or override status value\n status: data?.errors?.length ? 'invalid' : undefined,\n } as unknown as Data;\n\n return obj;\n }\n}\n\nexport function useForm<TSourceType extends FieldTypes>(\n form?: CubeFormInstance<TSourceType, CubeFormData<TSourceType>>,\n ref?,\n options: {\n onSubmit?: CubeFormInstance<TSourceType>['onSubmit'];\n onValuesChange?: CubeFormInstance<TSourceType>['onValuesChange'];\n } = {},\n): [CubeFormInstance<TSourceType>] {\n const { onSubmit, onValuesChange } = options;\n const formRef = useRef<CubeFormInstance<TSourceType>>(null);\n const [, forceUpdate] = useState({});\n\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormInstance if not provided\n const forceReRender = () => {\n forceUpdate({});\n };\n\n form = formRef.current = new CubeFormInstance<TSourceType>(forceReRender);\n }\n\n form.ref = ref;\n }\n\n if (onSubmit) {\n formRef.current.onSubmit = onSubmit;\n }\n\n if (onValuesChange) {\n formRef.current.onValuesChange = onValuesChange;\n }\n\n return [formRef.current];\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-form.js","names":[],"sources":["../../../../src/components/form/Form/use-form.tsx"],"sourcesContent":["import { ReactNode, useRef, useState } from 'react';\n\nimport { dotizeConvert } from '../../../utils/dotize';\n\nimport { CubeFieldData, FieldTypes, SetFieldsArrType } from './types';\nimport { applyRules } from './validation';\n\ntype PartialString<T> = {\n [P in keyof T & string]?: T[P];\n};\n\nexport type CubeFormData<T extends FieldTypes> = {\n [K in keyof T & string]?: CubeFieldData<K, T[K]>;\n};\n\nfunction setValue(obj, path, value) {\n let a = path.split('.');\n let o = obj;\n\n while (a.length - 1) {\n let n = a.shift();\n if (!(n in o)) o[n] = {};\n o = o[n];\n }\n o[a[0]] = value;\n}\n\nfunction isEqual(v1, v2) {\n return JSON.stringify(v1) === JSON.stringify(v2);\n}\n\nexport class CubeFormInstance<\n T extends FieldTypes,\n TFormData extends CubeFormData<T> = CubeFormData<T>,\n> {\n public forceReRender: () => void = () => {};\n private defaultValues: PartialString<T> = {};\n private fields: TFormData = {} as TFormData;\n public ref = {};\n public isSubmitting = false;\n public submitError: unknown = null;\n\n public onValuesChange: (data: T) => void | Promise<void> = () => {};\n public onSubmit: (data: T) => void | Promise<void> = () => {};\n\n constructor(forceReRender: () => void = () => {}) {\n this.forceReRender = forceReRender;\n\n this.getFieldValue = this.getFieldValue.bind(this);\n this.getFieldsValue = this.getFieldsValue.bind(this);\n this.setFieldValue = this.setFieldValue.bind(this);\n this.getFieldError = this.getFieldError.bind(this);\n this.getFieldInstance = this.getFieldInstance.bind(this);\n this.setInitialFieldsValue = this.setInitialFieldsValue.bind(this);\n this.resetFields = this.resetFields.bind(this);\n this.validateField = this.validateField.bind(this);\n this.validateFields = this.validateFields.bind(this);\n this.isFieldValid = this.isFieldValid.bind(this);\n this.createField = this.createField.bind(this);\n this.isFieldInvalid = this.isFieldInvalid.bind(this);\n this.isFieldTouched = this.isFieldTouched.bind(this);\n this.isFieldDirty = this.isFieldDirty.bind(this);\n this.getFieldNames = this.getFieldNames.bind(this);\n this.getDirtyFieldNames = this.getDirtyFieldNames.bind(this);\n this.getValidFieldNames = this.getValidFieldNames.bind(this);\n this.getInvalidFieldNames = this.getInvalidFieldNames.bind(this);\n this.setFields = this.setFields.bind(this);\n }\n\n async submit() {\n return this.onSubmit?.(this.getFormData());\n }\n\n setFieldsValue = (\n newData: PartialString<T>,\n touched?: boolean,\n skipRender?: boolean,\n ) => {\n let flag = false;\n\n newData = { ...newData, ...dotizeConvert(newData) };\n\n Object.keys(newData).forEach((name: keyof T & string) => {\n let field = this.fields[name];\n\n if (!field) {\n return;\n }\n\n if (!field || isEqual(field.value, newData[name])) {\n if (field) {\n field.errors = [];\n field.status = undefined;\n }\n\n return;\n }\n\n flag = true;\n\n field.value = newData[name];\n // Same as `setFieldValue`: a pending validation ran against the old value.\n field.validationId = (field.validationId ?? 0) + 1;\n\n field.errors = [];\n field.status = undefined;\n\n if (touched === true) {\n field.touched = touched;\n } else if (touched === false) {\n field.touched = false;\n }\n });\n\n if (flag && !skipRender) {\n if (touched) {\n this.onValuesChange && this.onValuesChange(this.getFormData());\n this.submitError = null;\n }\n\n this.forceReRender();\n }\n };\n\n getFieldValue<Name extends keyof T & string>(\n name: Name,\n ): T[Name] | undefined {\n return this.fields[name]?.value;\n }\n\n getFieldsValue(): PartialString<T> {\n return Object.values(this.fields).reduce((map, field) => {\n if (field && map) {\n map[field.name as keyof T & string] = field.value;\n }\n\n return map;\n }, {} as PartialString<T>);\n }\n\n /**\n * Similar to getFieldsValue() but respects '.' notation and creates nested objects.\n */\n getFormData(): T {\n const fieldsValue = this.getFieldsValue();\n\n return Object.keys(fieldsValue)\n .sort()\n .reduce((map, field) => {\n setValue(map, field, fieldsValue[field]);\n\n if (field.includes('.')) {\n delete map[field];\n }\n\n return map;\n }, {} as T);\n }\n\n setFieldValue<Name extends keyof T & string>(\n name: Name,\n value: T[Name],\n isTouched = false,\n skipRender = false,\n ) {\n const field = this.fields[name];\n\n if (!field || isEqual(value, field.value)) {\n return;\n }\n\n field.value = value;\n // A validation that is still running belongs to the previous value. Bump\n // the revision so its result cannot publish against this one (the caller's\n // promise still settles) — legacy contract §7.1 #22.\n field.validationId = (field.validationId ?? 0) + 1;\n\n if (typeof value === 'object' && !Array.isArray(value)) {\n Object.keys(this.fields)\n .filter((key) => key.startsWith(`${name}.`))\n .forEach((key) => {\n const objKey = key.replace(`${name}.`, '');\n\n this.setFieldValue(key, value[objKey] ?? null, isTouched, false);\n });\n }\n\n field.errors = [];\n field.status = undefined; // reset validation status\n\n if (isTouched) {\n field.touched = isTouched;\n }\n\n if (isTouched) {\n this.onValuesChange && this.onValuesChange(this.getFormData());\n this.submitError = null;\n }\n\n if (!skipRender) {\n this.forceReRender();\n }\n }\n\n getFieldInstance<Name extends keyof T & string>(name: Name): TFormData[Name] {\n return this.fields[name];\n }\n\n setInitialFieldsValue(values: PartialString<T>): void {\n this.defaultValues = { ...values, ...dotizeConvert(values) };\n }\n\n updateInitialFieldsValue(values: FieldTypes): void {\n this.defaultValues = {\n ...this.defaultValues,\n ...values,\n ...dotizeConvert(values),\n };\n }\n\n resetFields(names?: (keyof T & string)[], skipRender?: boolean): void {\n names = names ?? Object.keys(this.fields);\n\n names.forEach((fieldName) => {\n const field = this.fields[fieldName];\n\n if (!field) {\n return;\n }\n\n const defaultValue = this.defaultValues[fieldName] ?? undefined;\n\n field.value = defaultValue;\n field.touched = false;\n field.errors = [];\n field.status = undefined;\n field.validationId = (field.validationId ?? 0) + 1;\n });\n\n if (!skipRender) {\n this.forceReRender();\n }\n }\n\n async validateField<Name extends keyof T & string>(name: Name): Promise<any> {\n const field = this.getFieldInstance(name);\n\n if (\n // if there are no rules for such field\n !field ||\n !field.rules ||\n // or field is already validated and valid\n field.status === 'valid'\n ) {\n return Promise.resolve();\n // or field is already validated and invalid\n } else if (field.status === 'invalid') {\n return Promise.reject(field.errors[0]);\n }\n\n field.validating = true;\n field.status = undefined;\n\n field.validationId = (field.validationId ?? 0) + 1;\n\n const validationId = field.validationId;\n\n // store validation to make sure there is no race condition.\n return applyRules(field, this, validationId)\n .then(() => {\n if (field.validationId !== validationId) return;\n\n field.validating = false;\n\n if (!field.errors || field.errors.length) {\n field.errors = [];\n }\n\n field.status = 'valid';\n\n this.forceReRender();\n })\n .catch((err) => {\n if (field.validationId === validationId) {\n field.errors = [err];\n field.validating = false;\n field.status = 'invalid';\n\n this.forceReRender();\n }\n\n return Promise.reject([err]);\n });\n }\n\n validateFields<Names extends (keyof T)[]>(names?: Names): Promise<any> {\n const fieldsList = names || Object.keys(this.fields);\n const errorList: { name: string; errors: ReactNode[] }[] = [];\n\n return Promise.allSettled(\n fieldsList.map((name) => {\n return this.validateField(name).catch((errors) => {\n errorList.push({ name, errors });\n\n return Promise.reject();\n });\n }),\n ).then(() => {\n if (errorList.length) {\n return Promise.reject(errorList);\n }\n\n return this.getFormData();\n });\n }\n\n isFieldValid<Name extends keyof T & string>(name: Name): boolean {\n const field = this.getFieldInstance(name);\n\n if (!field) return true;\n\n return !field.errors.length;\n }\n\n isFieldInvalid<Name extends keyof T & string>(name: Name): boolean {\n const field = this.getFieldInstance(name);\n\n if (!field) return false;\n\n return !!field.errors.length;\n }\n\n isFieldTouched<Name extends keyof T & string>(name: Name): boolean {\n const field = this.getFieldInstance(name);\n\n if (!field) return false;\n\n return !!field.touched;\n }\n\n isFieldDirty<Name extends keyof T & string>(name: Name): boolean {\n const field = this.getFieldInstance(name);\n\n if (!field) return false;\n\n return !isEqual(field.value, this.defaultValues[name]);\n }\n\n getFieldNames(): (keyof T & string)[] {\n return Object.keys(this.fields) as (keyof T & string)[];\n }\n\n getDirtyFieldNames(): (keyof T & string)[] {\n return this.getFieldNames().filter((name) => this.isFieldDirty(name));\n }\n\n getValidFieldNames(): (keyof T & string)[] {\n return this.getFieldNames().filter((name) => this.isFieldValid(name));\n }\n\n getInvalidFieldNames(): (keyof T & string)[] {\n return this.getFieldNames().filter((name) => this.isFieldInvalid(name));\n }\n\n get isTouched(): boolean {\n return Object.values(this.fields).some((field) => field?.touched);\n }\n\n get isDirty(): boolean {\n return this.getDirtyFieldNames().length > 0;\n }\n\n /**\n * True if all fields are verified and valid\n * IMPORTANT: This is not the same as `!isInvalid`, because it also checks if all fields are verified.\n */\n get isValid(): boolean {\n return Object.values(this.fields).every(\n (field) => field?.status === 'valid',\n );\n }\n\n /**\n * True if at least one field is verified and invalid.\n * IMPORTANT: This is not the same as `!isValid`, because it only checks that at least\n * one field is verified and invalid.\n */\n get isInvalid(): boolean {\n return Object.values(this.fields).some(\n (field) => field?.status === 'invalid',\n );\n }\n\n getFieldError<Name extends keyof T & string>(name: Name): ReactNode[] {\n const field = this.getFieldInstance(name);\n\n if (!field) return [];\n\n return field.errors || [];\n }\n\n /**\n * @deprecated This field is not supposed to be used directly.\n */\n createField<Name extends keyof T & string>(name: Name, skipRender?: boolean) {\n // passing an empty name is incorrect, but we have to return a valid object to avoid inconsistency\n if (!name) {\n return this._createField(name);\n }\n\n if (!this.fields[name]) {\n this.fields[name] = this._createField(name);\n }\n\n if (!skipRender) {\n this.forceReRender();\n }\n\n return this.fields[name];\n }\n\n /**\n * @deprecated This field is not supposed to be used directly.\n */\n removeField<Name extends keyof T & string>(name: Name, skipRender?: boolean) {\n if (this.fields[name]) {\n delete this.fields[name];\n }\n\n if (!skipRender) {\n this.forceReRender();\n }\n }\n\n /**\n * @deprecated This method is not recommended. Use other ways to alter fields.\n * Use `setFieldValue` to change the value of a field.\n * Use `verifyField` to validate a field.\n * Use `setFieldError` to set an error for a field.\n * Use `clearFieldsValidation` to clear all errors for a field.\n */\n setFields<Names extends keyof T & string>(\n newFields: SetFieldsArrType<T, Names>[],\n ) {\n newFields.forEach(({ name, value, errors }) => {\n this.fields[name] = this._createField(name, {\n value,\n errors,\n } as TFormData[Names]);\n });\n\n this.forceReRender();\n }\n\n resetFieldsValidation(names?: (keyof T & string)[], skipRender?: boolean) {\n (names || Object.keys(this.fields)).forEach((name) => {\n const field = this.getFieldInstance(name);\n\n if (!field) return;\n\n field.errors = [];\n field.status = undefined;\n field.validationId = (field.validationId ?? 0) + 1;\n });\n\n if (!skipRender) {\n this.forceReRender();\n }\n }\n\n setFieldError(\n name: keyof T & string,\n error: ReactNode,\n skipRender?: boolean,\n ) {\n const field = this.getFieldInstance(name);\n\n if (!field || !error) return;\n\n field.errors = [error];\n field.status = 'invalid';\n field.validationId = (field.validationId ?? 0) + 1;\n\n if (!skipRender) {\n this.forceReRender();\n }\n }\n\n setSubmitting(isSubmitting: boolean) {\n if (this.isSubmitting === isSubmitting) return;\n\n this.isSubmitting = isSubmitting;\n this.forceReRender();\n }\n\n _createField<Name extends keyof T & string, Data extends TFormData[Name]>(\n name: Name,\n data?: Data,\n ): Data {\n let obj = {\n name,\n validating: false,\n touched: false,\n errors: [],\n validationId: 0,\n value: this.defaultValues[name],\n ...data,\n // it should be impossible to define or override status value\n status: data?.errors?.length ? 'invalid' : undefined,\n } as unknown as Data;\n\n return obj;\n }\n}\n\nexport function useForm<TSourceType extends FieldTypes>(\n form?: CubeFormInstance<TSourceType, CubeFormData<TSourceType>>,\n ref?,\n options: {\n onSubmit?: CubeFormInstance<TSourceType>['onSubmit'];\n onValuesChange?: CubeFormInstance<TSourceType>['onValuesChange'];\n } = {},\n): [CubeFormInstance<TSourceType>] {\n const { onSubmit, onValuesChange } = options;\n const formRef = useRef<CubeFormInstance<TSourceType>>(null);\n const [, forceUpdate] = useState({});\n\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormInstance if not provided\n const forceReRender = () => {\n forceUpdate({});\n };\n\n form = formRef.current = new CubeFormInstance<TSourceType>(forceReRender);\n }\n\n form.ref = ref;\n }\n\n if (onSubmit) {\n formRef.current.onSubmit = onSubmit;\n }\n\n if (onValuesChange) {\n formRef.current.onValuesChange = onValuesChange;\n }\n\n return [formRef.current];\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../utils/styles.js";
|
|
3
3
|
import { useProviderProps } from "../../provider.js";
|
|
4
4
|
import { useI18n } from "../../i18n/useI18n.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { LoadingIcon } from "../../../icons/LoadingIcon.js";
|
|
3
3
|
import { hasValidationState } from "./resolve-validation-props.js";
|
|
4
4
|
import { InvalidIcon } from "../../shared/InvalidIcon.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
//#region src/components/form/validation/resolve-validation-props.ts
|
|
3
3
|
/**
|
|
4
4
|
* Normalizes the validation props of a field into a pair of booleans.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps } from "../../utils/react/mergeProps.js";
|
|
3
3
|
import { FieldWrapper } from "./FieldWrapper/FieldWrapper.js";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { useCallback, useLayoutEffect, useRef, useState } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/components/helpers/DisplayTransition/DisplayTransition.tsx
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { DisplayTransition } from "../DisplayTransition/DisplayTransition.js";
|
|
3
3
|
import { tasty } from "@tenphi/tasty";
|
|
4
4
|
import { isValidElement, useCallback, useLayoutEffect, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
4
4
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { BoardDragActiveProvider, BoardRegistryContext } from "./board-context.js";
|
|
3
3
|
import { useBoardRegistry } from "./use-board-registry.js";
|
|
4
4
|
import { tasty } from "@tenphi/tasty";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { getCompactor } from "./grid-core/compactors.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { extractStyles } from "../../../utils/styles.js";
|
|
3
3
|
import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
|
|
4
4
|
import { useBoardRegistry } from "./board-context.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
|
|
3
3
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
4
4
|
import { isDevEnv } from "../../../utils/is-dev-env.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
//#region src/components/layout/Board/grid-core/calculate.ts
|
|
3
3
|
/** Calculate the width of a single grid column in pixels. */
|
|
4
4
|
function calcGridColWidth(positionParams) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
//#region src/components/layout/Board/grid-core/collision-modes.ts
|
|
3
3
|
/** Whether a single grid cell is free of every item in `others`. */
|
|
4
4
|
function cellFree(others, x, y) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { collides, getFirstCollision } from "./collision.js";
|
|
3
3
|
import { sortLayoutItemsByColRow, sortLayoutItemsByRowCol } from "./sort.js";
|
|
4
4
|
import { bottom, cloneLayout, cloneLayoutItem, getStatics } from "./layout.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
//#region src/components/layout/Board/grid-core/constraints.ts
|
|
3
3
|
function clamp(value, min, max) {
|
|
4
4
|
return Math.max(min, Math.min(max, value));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { collides, getFirstCollision } from "./collision.js";
|
|
3
3
|
import { sortLayoutItemsByColRow, sortLayoutItemsByRowCol } from "./sort.js";
|
|
4
4
|
import { bottom, cloneLayout, cloneLayoutItem, getStatics } from "./layout.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { BoardDragActiveProvider } from "./board-context.js";
|
|
3
3
|
import { distributeEvenly, placeInFreeSlot } from "./grid-core/placement.js";
|
|
4
4
|
import { getCompactor, horizontalCompactor, noCompactor, verticalCompactor } from "./grid-core/compactors.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { cloneLayout } from "./grid-core/layout.js";
|
|
4
4
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.179.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../../_internal/hooks/use-event.js";
|
|
3
3
|
import { BoardWidgetStore } from "./board-store.js";
|
|
4
4
|
import { collides } from "./grid-core/collision.js";
|