@reportportal/ui-kit 0.0.1-alpha.2 → 0.0.1-alpha.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +229 -3
  3. package/dist/baseIconButton-b6adc843.js +25 -0
  4. package/dist/baseIconButton.js +7 -0
  5. package/dist/bind-06a7ff84.js +41 -0
  6. package/dist/bubblesLoader-a7e709d4.js +17 -0
  7. package/dist/bubblesLoader.js +7 -0
  8. package/dist/button-bb309472.js +62 -0
  9. package/dist/button.js +2 -2
  10. package/dist/checkbox-6777be17.js +73 -0
  11. package/dist/checkbox.js +3 -2
  12. package/dist/common/constants/keyCodes.d.ts +24 -0
  13. package/dist/common/hooks/index.d.ts +2 -0
  14. package/dist/common/hooks/useOnClickOutside.d.ts +2 -0
  15. package/dist/common/hooks/useWindowResize.d.ts +4 -0
  16. package/dist/components/bubblesLoader/bubblesLoader.d.ts +7 -0
  17. package/dist/components/bubblesLoader/index.d.ts +3 -0
  18. package/dist/components/button/button.d.ts +6 -7
  19. package/dist/components/button/index.d.ts +2 -1
  20. package/dist/components/checkbox/checkbox.d.ts +5 -7
  21. package/dist/components/datePicker/datePicker.d.ts +24 -0
  22. package/dist/components/datePicker/header/datePickerHeader.d.ts +15 -0
  23. package/dist/components/datePicker/header/index.d.ts +3 -0
  24. package/dist/components/datePicker/index.d.ts +3 -0
  25. package/dist/components/datePicker/utils.d.ts +3 -0
  26. package/dist/components/dropdown/constants.d.ts +7 -0
  27. package/dist/components/dropdown/dropdown.d.ts +24 -0
  28. package/dist/components/dropdown/dropdownOption/dropdownOption.d.ts +3 -0
  29. package/dist/components/dropdown/dropdownOption/index.d.ts +3 -0
  30. package/dist/components/dropdown/index.d.ts +3 -0
  31. package/dist/components/dropdown/types.d.ts +20 -0
  32. package/dist/components/dropdown/utils.d.ts +4 -0
  33. package/dist/components/fieldNumber/constants.d.ts +4 -0
  34. package/dist/components/fieldNumber/fieldNumber.d.ts +18 -0
  35. package/dist/components/fieldNumber/index.d.ts +3 -0
  36. package/dist/components/fieldText/fieldText.d.ts +24 -0
  37. package/dist/components/fieldText/index.d.ts +3 -0
  38. package/dist/components/fieldTextFlex/fieldTextFlex.d.ts +14 -0
  39. package/dist/components/fieldTextFlex/index.d.ts +3 -0
  40. package/dist/components/icons/baseIconButton/baseIconButton.d.ts +8 -0
  41. package/dist/components/icons/baseIconButton/index.d.ts +4 -0
  42. package/dist/components/icons/index.d.ts +15 -0
  43. package/dist/components/index.d.ts +14 -0
  44. package/dist/components/modal/index.d.ts +4 -0
  45. package/dist/components/modal/modal.d.ts +23 -0
  46. package/dist/components/modal/modalContent/index.d.ts +1 -0
  47. package/dist/components/modal/modalContent/modalContent.d.ts +7 -0
  48. package/dist/components/modal/modalFooter/index.d.ts +2 -0
  49. package/dist/components/modal/modalFooter/modalFooter.d.ts +12 -0
  50. package/dist/components/modal/modalHeader/index.d.ts +1 -0
  51. package/dist/components/modal/modalHeader/modalHeader.d.ts +8 -0
  52. package/dist/components/pagination/index.d.ts +4 -0
  53. package/dist/components/pagination/itemsCounter/index.d.ts +1 -0
  54. package/dist/components/pagination/itemsCounter/itemCounter.d.ts +9 -0
  55. package/dist/components/pagination/pageControls/activePage/activePage.d.ts +12 -0
  56. package/dist/components/pagination/pageControls/activePage/index.d.ts +1 -0
  57. package/dist/components/pagination/pageControls/activePage/pageSelector/index.d.ts +1 -0
  58. package/dist/components/pagination/pageControls/activePage/pageSelector/pageSelector.d.ts +10 -0
  59. package/dist/components/pagination/pageControls/index.d.ts +1 -0
  60. package/dist/components/pagination/pageControls/pageControls.d.ts +16 -0
  61. package/dist/components/pagination/pageControls/pageNavigator/bar/bar.d.ts +11 -0
  62. package/dist/components/pagination/pageControls/pageNavigator/bar/index.d.ts +1 -0
  63. package/dist/components/pagination/pageControls/pageNavigator/index.d.ts +1 -0
  64. package/dist/components/pagination/pageControls/pageNavigator/pageNavigator.d.ts +11 -0
  65. package/dist/components/pagination/pageSizeControl/index.d.ts +1 -0
  66. package/dist/components/pagination/pageSizeControl/pageSizeControl.d.ts +10 -0
  67. package/dist/components/pagination/pageSizeControl/sizeSelector/index.d.ts +1 -0
  68. package/dist/components/pagination/pageSizeControl/sizeSelector/sizeSelector.d.ts +8 -0
  69. package/dist/components/pagination/pagination.d.ts +22 -0
  70. package/dist/components/pagination/types.d.ts +2 -0
  71. package/dist/components/popover/index.d.ts +1 -0
  72. package/dist/components/popover/popover.d.ts +18 -0
  73. package/dist/components/radio/index.d.ts +4 -0
  74. package/dist/components/radio/radio.d.ts +16 -0
  75. package/dist/components/radio/radioGroup.d.ts +8 -0
  76. package/dist/components/table/index.d.ts +3 -0
  77. package/dist/components/table/table.d.ts +3 -0
  78. package/dist/components/table/types.d.ts +49 -0
  79. package/dist/components/table/utils.d.ts +3 -0
  80. package/dist/components/themeProvider/themeProvider.d.ts +2 -1
  81. package/dist/components/toggle/index.d.ts +3 -0
  82. package/dist/components/toggle/toggle.d.ts +11 -0
  83. package/dist/components/tooltip/index.d.ts +1 -0
  84. package/dist/components/tooltip/tooltip.d.ts +14 -0
  85. package/dist/dropdown-c21b0d67.js +216 -0
  86. package/dist/dropdown.js +14 -0
  87. package/dist/fieldNumber-d20f48d6.js +127 -0
  88. package/dist/fieldNumber.js +10 -0
  89. package/dist/fieldText-6eff8292.js +102 -0
  90. package/dist/fieldText.js +9 -0
  91. package/dist/fieldTextFlex-5bddf46a.js +67 -0
  92. package/dist/fieldTextFlex.js +8 -0
  93. package/dist/index-5022804a.js +147 -0
  94. package/dist/index.js +246 -11
  95. package/dist/keyCodes-f63c0e11.js +4 -0
  96. package/dist/modal.js +16 -0
  97. package/dist/pagination-5e576cb2.js +346 -0
  98. package/dist/pagination.js +15 -0
  99. package/dist/popover.js +95 -0
  100. package/dist/radio-c5fae439.js +76 -0
  101. package/dist/radio.js +9 -0
  102. package/dist/style.css +1 -1
  103. package/dist/systemMessage-1ced6079.js +30 -0
  104. package/dist/systemMessage.js +2 -2
  105. package/dist/table-7fdc18e0.js +147 -0
  106. package/dist/table.js +11 -0
  107. package/dist/themeProvider-46c2be7b.js +23 -0
  108. package/dist/themeProvider.js +4 -3
  109. package/dist/toggle-9284387b.js +67 -0
  110. package/dist/toggle.js +9 -0
  111. package/dist/tooltip.js +71 -0
  112. package/dist/useOnClickOutside-c332f7d3.js +16 -0
  113. package/package.json +96 -64
  114. package/dist/bind-e1346f99.js +0 -44
  115. package/dist/button-a4d3df83.js +0 -1867
  116. package/dist/checkbox-3fd4bcc1.js +0 -74
  117. package/dist/constants/key-codes.d.ts +0 -4
  118. package/dist/systemMessage-55cf51f4.js +0 -30
  119. package/dist/themeProvider-5800417e.js +0 -19
@@ -0,0 +1,23 @@
1
+ import { ReactNode, FC } from 'react';
2
+ import { ButtonProps } from '../button';
3
+ import { ModalSize } from './modalFooter';
4
+ type ModalOverlay = 'default' | 'light-cyan';
5
+ interface ModalProps {
6
+ onClose?: () => void;
7
+ title?: ReactNode;
8
+ children?: ReactNode;
9
+ footerNode?: ReactNode;
10
+ className?: string;
11
+ zIndex?: number;
12
+ size?: ModalSize;
13
+ overlay?: ModalOverlay;
14
+ allowCloseOutside?: boolean;
15
+ okButton?: ButtonProps;
16
+ cancelButton?: ButtonProps;
17
+ scrollable?: boolean;
18
+ withoutFooter?: boolean;
19
+ createFooter?: (closeHandler: () => void) => ReactNode;
20
+ description?: ReactNode;
21
+ }
22
+ export declare const Modal: FC<ModalProps>;
23
+ export {};
@@ -0,0 +1 @@
1
+ export { ModalContent } from './modalContent';
@@ -0,0 +1,7 @@
1
+ import { ReactNode, FC } from 'react';
2
+ interface ModalContentProps {
3
+ scrollable?: boolean;
4
+ children?: ReactNode;
5
+ }
6
+ export declare const ModalContent: FC<ModalContentProps>;
7
+ export {};
@@ -0,0 +1,2 @@
1
+ export { ModalFooter } from './modalFooter';
2
+ export type { ModalSize } from './modalFooter';
@@ -0,0 +1,12 @@
1
+ import { ReactNode, FC, MouseEventHandler } from 'react';
2
+ import { ButtonProps } from '../../button';
3
+ export type ModalSize = 'default' | 'small' | 'large';
4
+ interface ModalFooterProps {
5
+ closeHandler: MouseEventHandler<HTMLButtonElement>;
6
+ footerNode?: ReactNode;
7
+ okButton?: ButtonProps;
8
+ cancelButton?: ButtonProps;
9
+ size?: ModalSize;
10
+ }
11
+ export declare const ModalFooter: FC<ModalFooterProps>;
12
+ export {};
@@ -0,0 +1 @@
1
+ export { ModalHeader } from './modalHeader';
@@ -0,0 +1,8 @@
1
+ import { ReactNode, FC } from 'react';
2
+ interface ModalHeaderProps {
3
+ title?: ReactNode;
4
+ onClose: () => void;
5
+ withDescription?: boolean;
6
+ }
7
+ export declare const ModalHeader: FC<ModalHeaderProps>;
8
+ export {};
@@ -0,0 +1,4 @@
1
+ import { Pagination, PaginationProps } from './pagination';
2
+ export { Pagination };
3
+ export type { PaginationProps };
4
+ export default Pagination;
@@ -0,0 +1 @@
1
+ export { ItemCounter } from './itemCounter';
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ export interface ItemCounterProps {
3
+ activePage: number;
4
+ pageSize: number;
5
+ totalItems: number;
6
+ ofText: string;
7
+ itemsText: string;
8
+ }
9
+ export declare const ItemCounter: FC<ItemCounterProps>;
@@ -0,0 +1,12 @@
1
+ import { FC } from 'react';
2
+ import { ChangePage } from '../../types';
3
+ interface ActivePageProps {
4
+ activePage: number;
5
+ totalPages: number;
6
+ pageText: string;
7
+ goToText: string;
8
+ goActionText: string;
9
+ changePage: ChangePage;
10
+ }
11
+ export declare const ActivePage: FC<ActivePageProps>;
12
+ export {};
@@ -0,0 +1 @@
1
+ export { ActivePage } from './activePage';
@@ -0,0 +1 @@
1
+ export { PageSelector } from './pageSelector';
@@ -0,0 +1,10 @@
1
+ import { FC } from 'react';
2
+ import { ChangePage } from '../../../types';
3
+ interface PageSelectorProps {
4
+ pageText: string;
5
+ goActionText: string;
6
+ totalPages: number;
7
+ selectPage: ChangePage;
8
+ }
9
+ export declare const PageSelector: FC<PageSelectorProps>;
10
+ export {};
@@ -0,0 +1 @@
1
+ export { PageControls } from './pageControls';
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+ import { ChangePage } from '../types';
3
+ type PageControlsCaptions = {
4
+ page: string;
5
+ goTo: string;
6
+ goAction: string;
7
+ of: string;
8
+ };
9
+ export interface PageControlsProps {
10
+ activePage: number;
11
+ totalPages: number;
12
+ changePage: ChangePage;
13
+ captions: PageControlsCaptions;
14
+ }
15
+ export declare const PageControls: FC<PageControlsProps>;
16
+ export {};
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ import { ChangePage } from '../../../types';
3
+ export interface BarProps {
4
+ totalPages: number;
5
+ activePage: number;
6
+ changePage: ChangePage;
7
+ captions: {
8
+ goTo: string;
9
+ };
10
+ }
11
+ export declare const Bar: FC<BarProps>;
@@ -0,0 +1 @@
1
+ export { Bar } from './bar';
@@ -0,0 +1 @@
1
+ export { PageNavigator } from './pageNavigator';
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ import { ChangePage } from '../../types';
3
+ export interface PageNavigatorProps {
4
+ activePage: number;
5
+ totalPages: number;
6
+ changePage: ChangePage;
7
+ captions: {
8
+ goTo: string;
9
+ };
10
+ }
11
+ export declare const PageNavigator: FC<PageNavigatorProps>;
@@ -0,0 +1 @@
1
+ export { PageSizeControl } from './pageSizeControl';
@@ -0,0 +1,10 @@
1
+ import { FC } from 'react';
2
+ import { ChangePageSize } from '../types';
3
+ interface PageSizeControlProps {
4
+ size: number;
5
+ sizeOptions: number[];
6
+ perPageText: string;
7
+ changeSize: ChangePageSize;
8
+ }
9
+ export declare const PageSizeControl: FC<PageSizeControlProps>;
10
+ export {};
@@ -0,0 +1 @@
1
+ export { SizeSelector } from './sizeSelector';
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { ChangePageSize } from '../../types';
3
+ export interface SizeSelectorProps {
4
+ currentSize: number;
5
+ options: number[];
6
+ onClickOption: ChangePageSize;
7
+ }
8
+ export declare const SizeSelector: FC<SizeSelectorProps>;
@@ -0,0 +1,22 @@
1
+ import { FC } from 'react';
2
+ import { ChangePageSize, ChangePage } from './types';
3
+ type PaginationCaptions = {
4
+ items?: string;
5
+ of?: string;
6
+ page?: string;
7
+ goTo?: string;
8
+ goAction?: string;
9
+ perPage?: string;
10
+ };
11
+ export interface PaginationProps {
12
+ activePage: number;
13
+ totalPages: number;
14
+ pageSize: number;
15
+ totalItems: number;
16
+ pageSizeOptions: number[];
17
+ changePage: ChangePage;
18
+ changePageSize: ChangePageSize;
19
+ captions?: PaginationCaptions;
20
+ }
21
+ export declare const Pagination: FC<PaginationProps>;
22
+ export {};
@@ -0,0 +1,2 @@
1
+ export type ChangePage = (page: number) => void;
2
+ export type ChangePageSize = (size: number) => void;
@@ -0,0 +1 @@
1
+ export { Popover } from './popover';
@@ -0,0 +1,18 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { Placement } from '@floating-ui/react';
3
+ interface PopoverProps {
4
+ className?: string;
5
+ content: ReactNode;
6
+ children: ReactNode;
7
+ placement?: Placement;
8
+ fallbackPlacements?: Placement[];
9
+ title?: string;
10
+ arrowOffset?: number;
11
+ safeZone?: number;
12
+ arrowColor?: string;
13
+ dataAutomationId?: string;
14
+ isOpened?: boolean;
15
+ setIsOpened?: (isOpened: boolean) => void;
16
+ }
17
+ export declare const Popover: FC<PopoverProps>;
18
+ export {};
@@ -0,0 +1,4 @@
1
+ import { Radio, RadioProps } from './radio.js';
2
+ export { Radio };
3
+ export type { RadioProps };
4
+ export default Radio;
@@ -0,0 +1,16 @@
1
+ import { ChangeEventHandler, HTMLAttributes, ReactNode, FC } from 'react';
2
+ export type RadioValue = string | number;
3
+ export type RadioOption = {
4
+ value: RadioValue;
5
+ label: string;
6
+ disabled: boolean;
7
+ };
8
+ export interface RadioProps extends HTMLAttributes<HTMLInputElement> {
9
+ option: RadioOption;
10
+ value?: RadioValue;
11
+ children?: ReactNode;
12
+ className?: string;
13
+ disabled?: boolean;
14
+ onChange?: ChangeEventHandler<HTMLInputElement>;
15
+ }
16
+ export declare const Radio: FC<RadioProps>;
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { RadioProps } from './index';
3
+ import { RadioOption } from './radio';
4
+ interface RadioGroupProps extends Omit<RadioProps, 'option'> {
5
+ options: RadioOption[];
6
+ }
7
+ export declare const RadioGroup: FC<RadioGroupProps>;
8
+ export {};
@@ -0,0 +1,3 @@
1
+ import { Table } from './table';
2
+ export { Table };
3
+ export default Table;
@@ -0,0 +1,3 @@
1
+ import { FC } from 'react';
2
+ import { TableComponentProps } from './types';
3
+ export declare const Table: FC<TableComponentProps>;
@@ -0,0 +1,49 @@
1
+ import { ReactNode } from 'react';
2
+ export interface Column {
3
+ key: string;
4
+ header: string;
5
+ }
6
+ export interface PrimaryColumn extends Column {
7
+ primary: boolean;
8
+ }
9
+ export interface FixedColumn extends Column {
10
+ width: string | number;
11
+ align?: 'left' | 'center' | 'right';
12
+ }
13
+ export interface RowConfigs {
14
+ size?: 'small' | 'medium' | 'large';
15
+ }
16
+ export interface DetailedCellData {
17
+ content: string | number;
18
+ component: ReactNode;
19
+ }
20
+ export interface RowData {
21
+ id: string | number;
22
+ [key: string]: DetailedCellData | RowConfigs | string | number | any;
23
+ rowConfigs?: RowConfigs;
24
+ }
25
+ export declare enum SortDirection {
26
+ ASC = "asc",
27
+ DESC = "desc"
28
+ }
29
+ export interface SortConfig {
30
+ key: string;
31
+ direction: SortDirection;
32
+ }
33
+ export interface TableComponentProps {
34
+ data: RowData[];
35
+ primaryColumn: Column;
36
+ fixedColumns: FixedColumn[];
37
+ rowActionMenu?: ReactNode;
38
+ selectable?: boolean;
39
+ className?: string;
40
+ headerClassName?: string;
41
+ rowClassName?: string;
42
+ selectedRowIds?: (string | number)[];
43
+ sortingDirection?: SortDirection;
44
+ sortingColumn?: Column;
45
+ sortableColumns?: string[];
46
+ onChangeSorting?: (sortConfig?: SortConfig) => void;
47
+ onToggleRowSelection?: (id: string | number) => void;
48
+ onToggleAllRowsSelection?: () => void;
49
+ }
@@ -0,0 +1,3 @@
1
+ import { Column, RowData, SortConfig } from './types';
2
+ export declare const sortTableData: (tableData: RowData[], sortConfig?: SortConfig) => RowData[];
3
+ export declare const getColumnsKeys: (columns: Column[]) => string[];
@@ -7,6 +7,7 @@ interface IThemeProviderProps {
7
7
  children?: ReactNode;
8
8
  theme?: ThemeKey;
9
9
  customThemes?: ITheme;
10
+ className?: string;
10
11
  }
11
- export declare function ThemeProvider({ children, theme, customThemes, }: IThemeProviderProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function ThemeProvider({ children, theme, customThemes, className, }: IThemeProviderProps): import("react/jsx-runtime").JSX.Element;
12
13
  export {};
@@ -0,0 +1,3 @@
1
+ import { Toggle } from './toggle';
2
+ export { Toggle };
3
+ export default Toggle;
@@ -0,0 +1,11 @@
1
+ import { ChangeEventHandler, FC, HTMLAttributes, ReactNode } from 'react';
2
+ interface ToggleProps extends HTMLAttributes<HTMLInputElement> {
3
+ value: boolean;
4
+ title?: string;
5
+ children?: ReactNode;
6
+ disabled?: boolean;
7
+ className?: string;
8
+ onChange?: ChangeEventHandler<HTMLInputElement>;
9
+ }
10
+ export declare const Toggle: FC<ToggleProps>;
11
+ export {};
@@ -0,0 +1 @@
1
+ export { Tooltip } from './tooltip';
@@ -0,0 +1,14 @@
1
+ import { FC, ReactNode } from 'react';
2
+ import { Placement } from '@floating-ui/react-dom';
3
+ interface TooltipProps {
4
+ content: ReactNode;
5
+ children: ReactNode;
6
+ wrapperClassName?: string;
7
+ contentClassName?: string;
8
+ dynamicWidth?: boolean;
9
+ width?: number;
10
+ placement?: Placement;
11
+ dataAutomationId?: string;
12
+ }
13
+ export declare const Tooltip: FC<TooltipProps>;
14
+ export {};
@@ -0,0 +1,216 @@
1
+ import { jsx as d, jsxs as L } from "react/jsx-runtime";
2
+ import * as R from "react";
3
+ import { forwardRef as B, useState as Y, useRef as ee } from "react";
4
+ import { c as A } from "./bind-06a7ff84.js";
5
+ import { useFloating as te, offset as ne, flip as oe } from "@floating-ui/react-dom";
6
+ import { useSelect as N } from "downshift";
7
+ import { Scrollbars as se } from "rc-scrollbars";
8
+ import { u as ae } from "./useOnClickOutside-c332f7d3.js";
9
+ import { K as h } from "./keyCodes-f63c0e11.js";
10
+ import { B as de } from "./baseIconButton-b6adc843.js";
11
+ const le = (t) => /* @__PURE__ */ R.createElement("svg", { width: 16, height: 16, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...t }, /* @__PURE__ */ R.createElement("path", { d: "M14.2174 5.82426C14.3736 5.66805 14.3736 5.41479 14.2174 5.25858L14.0759 5.11716C13.9197 4.96095 13.6665 4.96095 13.5103 5.11716L8.16726 10.4602L2.82426 5.11716C2.66805 4.96095 2.41479 4.96095 2.25858 5.11716L2.11716 5.25858C1.96095 5.41479 1.96095 5.66805 2.11716 5.82426L7.89176 11.5989C8.04797 11.7551 8.30124 11.7551 8.45745 11.5989L8.88171 11.1746L8.87436 11.1673L14.2174 5.82426Z", fill: "#A2AAB5" })), re = "_disabled_f4c9h_11", ie = "_hidden_f4c9h_15", ce = "_selected_f4c9h_21", _e = "_hover_f4c9h_24", he = {
12
+ "dropdown-option": "_dropdown-option_f4c9h_1",
13
+ disabled: re,
14
+ hidden: ie,
15
+ selected: ce,
16
+ hover: _e,
17
+ "single-option": "_single-option_f4c9h_37",
18
+ "sub-option": "_sub-option_f4c9h_45"
19
+ }, P = A.bind(he), fe = B(
20
+ (t, n) => {
21
+ const {
22
+ option: { value: a, disabled: f, hidden: w, label: l, title: o, groupRef: O },
23
+ selected: b,
24
+ onChange: g,
25
+ render: p,
26
+ highlightHovered: E,
27
+ onMouseEnter: m
28
+ } = t, D = () => {
29
+ g && g(a);
30
+ };
31
+ return /* @__PURE__ */ d(
32
+ "div",
33
+ {
34
+ className: P("dropdown-option", {
35
+ selected: b,
36
+ disabled: f,
37
+ hidden: w,
38
+ hover: E
39
+ }),
40
+ title: o,
41
+ onClick: D,
42
+ ref: n,
43
+ onMouseEnter: m,
44
+ children: /* @__PURE__ */ d("div", { className: P("single-option", { "sub-option": !!O }), children: p ? p(t) : l })
45
+ }
46
+ );
47
+ }
48
+ ), pe = [
49
+ h.ENTER_KEY_CODE,
50
+ h.SPACE_KEY_CODE,
51
+ h.ARROW_DOWN_KEY_CODE
52
+ ], ge = [h.ESCAPE_KEY_CODE, h.TAB_KEY_CODE];
53
+ var _ = /* @__PURE__ */ ((t) => (t.ON_KEY_DOWN = "onKeyDown", t.ON_CLICK = "onClick", t))(_ || {});
54
+ const me = (t, n) => t.map(({ value: a }) => a).indexOf(n), ue = (t, n) => (t % n + n) % n, K = (t, n = 0, a = 1) => {
55
+ if (!t[n].disabled)
56
+ return n;
57
+ const f = t.length;
58
+ return K(
59
+ t,
60
+ ue(n + a, f),
61
+ a
62
+ );
63
+ }, ve = (t, n) => K(t, n), Ce = (t, n) => K(t, n, -1), we = "_container_vh03o_1", Oe = "_icon_vh03o_7", be = "_arrow_vh03o_13", Ee = "_dropdown_vh03o_19", De = "_disabled_vh03o_36", Ne = "_value_vh03o_43", Ke = "_error_vh03o_46", ye = "_touched_vh03o_46", xe = "_opened_vh03o_50", Ie = "_placeholder_vh03o_72", ke = "_ghost_vh03o_118", Se = {
64
+ container: we,
65
+ icon: Oe,
66
+ arrow: be,
67
+ dropdown: Ee,
68
+ "transparent-background": "_transparent-background_vh03o_33",
69
+ disabled: De,
70
+ value: Ne,
71
+ error: Ke,
72
+ touched: ye,
73
+ opened: xe,
74
+ placeholder: Ie,
75
+ "mobile-disabled": "_mobile-disabled_vh03o_87",
76
+ "select-list": "_select-list_vh03o_92",
77
+ "limited-width": "_limited-width_vh03o_109",
78
+ "options-container": "_options-container_vh03o_113",
79
+ ghost: ke
80
+ }, i = A.bind(Se), je = ({
81
+ value: t = "",
82
+ options: n = [],
83
+ disabled: a = !1,
84
+ error: f,
85
+ onChange: w,
86
+ onFocus: l,
87
+ onBlur: o,
88
+ mobileDisabled: O,
89
+ title: b,
90
+ touched: g = !1,
91
+ icon: p,
92
+ variant: E,
93
+ placeholder: m = "",
94
+ renderOption: D,
95
+ transparentBackground: T = !1,
96
+ className: W,
97
+ toggleButtonClassName: H,
98
+ isListWidthLimited: M = !1
99
+ }) => {
100
+ const [r, c] = Y(!1), y = ee(null), [$, u] = Y(null), { refs: x, floatingStyles: j } = te({
101
+ middleware: [
102
+ ne(5),
103
+ oe({
104
+ fallbackPlacements: ["bottom", "top"]
105
+ })
106
+ ]
107
+ });
108
+ ae(y, () => {
109
+ r && (c(!1), o == null || o());
110
+ });
111
+ const I = (e) => {
112
+ e.disabled || (w(e.value), c((s) => !s));
113
+ }, V = () => n.find(({ value: e }) => e === t), k = me(n, t), {
114
+ getToggleButtonProps: U,
115
+ getMenuProps: Z,
116
+ getItemProps: q,
117
+ setHighlightedIndex: v,
118
+ highlightedIndex: S,
119
+ selectedItem: C
120
+ } = N({
121
+ items: n,
122
+ itemToString: (e) => (e != null && e.label ? String(e.label) : m) || "",
123
+ selectedItem: V(),
124
+ isOpen: r,
125
+ circularNavigation: !0,
126
+ defaultHighlightedIndex: k,
127
+ onHighlightedIndexChange: (e) => {
128
+ switch (e.type) {
129
+ case N.stateChangeTypes.MenuKeyDownArrowUp:
130
+ return u(_.ON_KEY_DOWN), v(Ce(n, e.highlightedIndex)), e;
131
+ case N.stateChangeTypes.MenuKeyDownArrowDown:
132
+ return u(_.ON_KEY_DOWN), v(ve(n, e.highlightedIndex)), e;
133
+ default:
134
+ return e;
135
+ }
136
+ }
137
+ }), z = () => {
138
+ a || (c((e) => !e), r ? o == null || o() : l == null || l(), u(_.ON_CLICK));
139
+ }, G = () => {
140
+ if (!t && t !== !1 && t !== 0)
141
+ return m;
142
+ let e = t;
143
+ return n.forEach((s) => {
144
+ s.value === t && (e = s.label);
145
+ }), e;
146
+ }, J = (e) => {
147
+ const { keyCode: s } = e;
148
+ pe.includes(s) && !r && (e.preventDefault(), v(k), c(!0), l == null || l(), u(_.ON_KEY_DOWN));
149
+ }, Q = (e) => {
150
+ const { keyCode: s } = e;
151
+ if (s === h.ENTER_KEY_CODE) {
152
+ const F = n[S];
153
+ I(F), c(!1), o == null || o();
154
+ return;
155
+ }
156
+ ge.includes(s) && (e.stopPropagation(), c(!1), o == null || o());
157
+ }, X = () => /* @__PURE__ */ d("div", { className: i("options-container"), children: n.map((e, s) => /* @__PURE__ */ d(
158
+ fe,
159
+ {
160
+ ...q({
161
+ item: e,
162
+ index: s
163
+ }),
164
+ selected: e.value === ((C == null ? void 0 : C.value) ?? C),
165
+ option: { title: e.label, ...e },
166
+ highlightHovered: S === s && $ !== _.ON_CLICK,
167
+ render: D,
168
+ onChange: e.disabled ? null : () => I(e),
169
+ onMouseEnter: () => v(s)
170
+ },
171
+ e.value
172
+ )) });
173
+ return /* @__PURE__ */ L("div", { ref: y, className: i("container", W), title: b, children: [
174
+ /* @__PURE__ */ L(
175
+ "button",
176
+ {
177
+ disabled: a,
178
+ ...U({
179
+ className: i("dropdown", E, H, {
180
+ "transparent-background": T,
181
+ opened: r,
182
+ disabled: a,
183
+ error: f,
184
+ touched: g,
185
+ "mobile-disabled": O
186
+ }),
187
+ onClick: z,
188
+ onKeyDown: J,
189
+ ref: x.setReference
190
+ }),
191
+ type: "button",
192
+ children: [
193
+ p && /* @__PURE__ */ d("span", { className: i("icon"), children: p }),
194
+ /* @__PURE__ */ d("span", { className: i("value", { placeholder: !t }), children: G() }),
195
+ /* @__PURE__ */ d(de, { className: i("arrow"), tabIndex: -1, children: /* @__PURE__ */ d(le, {}) })
196
+ ]
197
+ }
198
+ ),
199
+ r && /* @__PURE__ */ d(
200
+ "div",
201
+ {
202
+ style: j,
203
+ className: i("select-list", { opened: r, "limited-width": M }),
204
+ ...Z({
205
+ onKeyDown: Q,
206
+ ref: x.setFloating
207
+ }),
208
+ children: /* @__PURE__ */ d(se, { autoHeight: !0, autoHeightMax: 216, hideTracksWhenNotNeeded: !0, children: X() })
209
+ }
210
+ )
211
+ ] });
212
+ };
213
+ export {
214
+ je as D,
215
+ le as S
216
+ };
@@ -0,0 +1,14 @@
1
+ import { D as r } from "./dropdown-c21b0d67.js";
2
+ import "react/jsx-runtime";
3
+ import "react";
4
+ import "./bind-06a7ff84.js";
5
+ import "@floating-ui/react-dom";
6
+ import "downshift";
7
+ import "rc-scrollbars";
8
+ import "./useOnClickOutside-c332f7d3.js";
9
+ import "./keyCodes-f63c0e11.js";
10
+ import "./baseIconButton-b6adc843.js";
11
+ export {
12
+ r as Dropdown,
13
+ r as default
14
+ };