@mantine/core 9.1.1 → 9.2.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/cjs/components/Autocomplete/Autocomplete.cjs +5 -1
- package/cjs/components/Autocomplete/Autocomplete.cjs.map +1 -1
- package/cjs/components/Checkbox/Checkbox.cjs +4 -1
- package/cjs/components/Checkbox/Checkbox.cjs.map +1 -1
- package/cjs/components/ColorInput/ColorInput.cjs +5 -1
- package/cjs/components/ColorInput/ColorInput.cjs.map +1 -1
- package/cjs/components/Combobox/use-pills-reorder/move-pill.cjs +17 -0
- package/cjs/components/Combobox/use-pills-reorder/move-pill.cjs.map +1 -0
- package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs +170 -0
- package/cjs/components/Combobox/use-pills-reorder/use-pills-reorder.cjs.map +1 -0
- package/cjs/components/FileInput/FileInput.cjs +5 -1
- package/cjs/components/FileInput/FileInput.cjs.map +1 -1
- package/cjs/components/Input/use-input-props.cjs +5 -1
- package/cjs/components/Input/use-input-props.cjs.map +1 -1
- package/cjs/components/JsonInput/JsonInput.cjs +5 -2
- package/cjs/components/JsonInput/JsonInput.cjs.map +1 -1
- package/cjs/components/MaskInput/MaskInput.cjs +5 -1
- package/cjs/components/MaskInput/MaskInput.cjs.map +1 -1
- package/cjs/components/MaskInput/use-mask-input-props.cjs +3 -2
- package/cjs/components/MaskInput/use-mask-input-props.cjs.map +1 -1
- package/cjs/components/MultiSelect/MultiSelect.cjs +19 -3
- package/cjs/components/MultiSelect/MultiSelect.cjs.map +1 -1
- package/cjs/components/NativeSelect/NativeSelect.cjs +5 -1
- package/cjs/components/NativeSelect/NativeSelect.cjs.map +1 -1
- package/cjs/components/NumberInput/NumberInput.cjs +5 -1
- package/cjs/components/NumberInput/NumberInput.cjs.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.cjs +5 -1
- package/cjs/components/PasswordInput/PasswordInput.cjs.map +1 -1
- package/cjs/components/Pill/Pill.module.cjs.map +1 -1
- package/cjs/components/PillsInput/PillsInput.cjs +5 -1
- package/cjs/components/PillsInput/PillsInput.cjs.map +1 -1
- package/cjs/components/PinInput/PinInput.cjs +1 -1
- package/cjs/components/PinInput/PinInput.cjs.map +1 -1
- package/cjs/components/RollingNumber/DigitColumn.cjs +46 -0
- package/cjs/components/RollingNumber/DigitColumn.cjs.map +1 -0
- package/cjs/components/RollingNumber/RollingNumber.cjs +102 -0
- package/cjs/components/RollingNumber/RollingNumber.cjs.map +1 -0
- package/cjs/components/RollingNumber/RollingNumber.module.cjs +13 -0
- package/cjs/components/RollingNumber/RollingNumber.module.cjs.map +1 -0
- package/cjs/components/RollingNumber/build-value.cjs +22 -0
- package/cjs/components/RollingNumber/build-value.cjs.map +1 -0
- package/cjs/components/RollingNumber/get-digit-parts.cjs +40 -0
- package/cjs/components/RollingNumber/get-digit-parts.cjs.map +1 -0
- package/cjs/components/RollingNumber/get-render-slots.cjs +78 -0
- package/cjs/components/RollingNumber/get-render-slots.cjs.map +1 -0
- package/cjs/components/Select/Select.cjs +5 -1
- package/cjs/components/Select/Select.cjs.map +1 -1
- package/cjs/components/TagsInput/TagsInput.cjs +19 -4
- package/cjs/components/TagsInput/TagsInput.cjs.map +1 -1
- package/cjs/components/TextInput/TextInput.cjs +5 -1
- package/cjs/components/TextInput/TextInput.cjs.map +1 -1
- package/cjs/components/Textarea/Textarea.cjs +5 -2
- package/cjs/components/Textarea/Textarea.cjs.map +1 -1
- package/cjs/components/Tree/is-node-checked/is-node-checked.cjs +1 -0
- package/cjs/components/Tree/is-node-indeterminate/is-node-indeterminate.cjs +1 -0
- package/cjs/components/TreeSelect/TreeSelect.cjs +601 -0
- package/cjs/components/TreeSelect/TreeSelect.cjs.map +1 -0
- package/cjs/components/TreeSelect/TreeSelect.module.cjs +16 -0
- package/cjs/components/TreeSelect/TreeSelect.module.cjs.map +1 -0
- package/cjs/components/TreeSelect/TreeSelectOption.cjs +95 -0
- package/cjs/components/TreeSelect/TreeSelectOption.cjs.map +1 -0
- package/cjs/components/TreeSelect/flatten-tree-select-data.cjs +34 -0
- package/cjs/components/TreeSelect/flatten-tree-select-data.cjs.map +1 -0
- package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs +30 -0
- package/cjs/components/TreeSelect/get-checked-values-by-strategy.cjs.map +1 -0
- package/cjs/core/MantineProvider/use-props/use-props.cjs +10 -2
- package/cjs/core/MantineProvider/use-props/use-props.cjs.map +1 -1
- package/cjs/index.cjs +8 -0
- package/esm/components/Autocomplete/Autocomplete.mjs +5 -1
- package/esm/components/Autocomplete/Autocomplete.mjs.map +1 -1
- package/esm/components/Checkbox/Checkbox.mjs +4 -1
- package/esm/components/Checkbox/Checkbox.mjs.map +1 -1
- package/esm/components/ColorInput/ColorInput.mjs +5 -1
- package/esm/components/ColorInput/ColorInput.mjs.map +1 -1
- package/esm/components/Combobox/use-pills-reorder/move-pill.mjs +17 -0
- package/esm/components/Combobox/use-pills-reorder/move-pill.mjs.map +1 -0
- package/esm/components/Combobox/use-pills-reorder/use-pills-reorder.mjs +169 -0
- package/esm/components/Combobox/use-pills-reorder/use-pills-reorder.mjs.map +1 -0
- package/esm/components/FileInput/FileInput.mjs +5 -1
- package/esm/components/FileInput/FileInput.mjs.map +1 -1
- package/esm/components/Input/use-input-props.mjs +5 -1
- package/esm/components/Input/use-input-props.mjs.map +1 -1
- package/esm/components/JsonInput/JsonInput.mjs +5 -2
- package/esm/components/JsonInput/JsonInput.mjs.map +1 -1
- package/esm/components/MaskInput/MaskInput.mjs +5 -1
- package/esm/components/MaskInput/MaskInput.mjs.map +1 -1
- package/esm/components/MaskInput/use-mask-input-props.mjs +4 -3
- package/esm/components/MaskInput/use-mask-input-props.mjs.map +1 -1
- package/esm/components/MultiSelect/MultiSelect.mjs +19 -3
- package/esm/components/MultiSelect/MultiSelect.mjs.map +1 -1
- package/esm/components/NativeSelect/NativeSelect.mjs +5 -1
- package/esm/components/NativeSelect/NativeSelect.mjs.map +1 -1
- package/esm/components/NumberInput/NumberInput.mjs +5 -1
- package/esm/components/NumberInput/NumberInput.mjs.map +1 -1
- package/esm/components/PasswordInput/PasswordInput.mjs +5 -1
- package/esm/components/PasswordInput/PasswordInput.mjs.map +1 -1
- package/esm/components/Pill/Pill.module.mjs.map +1 -1
- package/esm/components/PillsInput/PillsInput.mjs +5 -1
- package/esm/components/PillsInput/PillsInput.mjs.map +1 -1
- package/esm/components/PinInput/PinInput.mjs +1 -1
- package/esm/components/PinInput/PinInput.mjs.map +1 -1
- package/esm/components/RollingNumber/DigitColumn.mjs +45 -0
- package/esm/components/RollingNumber/DigitColumn.mjs.map +1 -0
- package/esm/components/RollingNumber/RollingNumber.mjs +101 -0
- package/esm/components/RollingNumber/RollingNumber.mjs.map +1 -0
- package/esm/components/RollingNumber/RollingNumber.module.mjs +13 -0
- package/esm/components/RollingNumber/RollingNumber.module.mjs.map +1 -0
- package/esm/components/RollingNumber/build-value.mjs +22 -0
- package/esm/components/RollingNumber/build-value.mjs.map +1 -0
- package/esm/components/RollingNumber/get-digit-parts.mjs +40 -0
- package/esm/components/RollingNumber/get-digit-parts.mjs.map +1 -0
- package/esm/components/RollingNumber/get-render-slots.mjs +78 -0
- package/esm/components/RollingNumber/get-render-slots.mjs.map +1 -0
- package/esm/components/Select/Select.mjs +5 -1
- package/esm/components/Select/Select.mjs.map +1 -1
- package/esm/components/TagsInput/TagsInput.mjs +19 -4
- package/esm/components/TagsInput/TagsInput.mjs.map +1 -1
- package/esm/components/TextInput/TextInput.mjs +5 -1
- package/esm/components/TextInput/TextInput.mjs.map +1 -1
- package/esm/components/Textarea/Textarea.mjs +5 -2
- package/esm/components/Textarea/Textarea.mjs.map +1 -1
- package/esm/components/Tree/is-node-checked/is-node-checked.mjs +1 -1
- package/esm/components/Tree/is-node-indeterminate/is-node-indeterminate.mjs +1 -1
- package/esm/components/TreeSelect/TreeSelect.mjs +600 -0
- package/esm/components/TreeSelect/TreeSelect.mjs.map +1 -0
- package/esm/components/TreeSelect/TreeSelect.module.mjs +16 -0
- package/esm/components/TreeSelect/TreeSelect.module.mjs.map +1 -0
- package/esm/components/TreeSelect/TreeSelectOption.mjs +94 -0
- package/esm/components/TreeSelect/TreeSelectOption.mjs.map +1 -0
- package/esm/components/TreeSelect/flatten-tree-select-data.mjs +34 -0
- package/esm/components/TreeSelect/flatten-tree-select-data.mjs.map +1 -0
- package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs +29 -0
- package/esm/components/TreeSelect/get-checked-values-by-strategy.mjs.map +1 -0
- package/esm/core/MantineProvider/use-props/use-props.mjs +10 -2
- package/esm/core/MantineProvider/use-props/use-props.mjs.map +1 -1
- package/esm/index.mjs +5 -1
- package/lib/components/Combobox/Combobox.types.d.ts +3 -0
- package/lib/components/Combobox/index.d.ts +2 -0
- package/lib/components/Combobox/use-pills-reorder/move-pill.d.ts +2 -0
- package/lib/components/Combobox/use-pills-reorder/use-pills-reorder.d.ts +26 -0
- package/lib/components/MaskInput/MaskInput.d.ts +2 -0
- package/lib/components/MultiSelect/MultiSelect.d.ts +2 -0
- package/lib/components/RollingNumber/DigitColumn.d.ts +11 -0
- package/lib/components/RollingNumber/RollingNumber.d.ts +41 -0
- package/lib/components/RollingNumber/build-value.d.ts +10 -0
- package/lib/components/RollingNumber/get-digit-parts.d.ts +12 -0
- package/lib/components/RollingNumber/get-render-slots.d.ts +35 -0
- package/lib/components/RollingNumber/index.d.ts +9 -0
- package/lib/components/TagsInput/TagsInput.d.ts +2 -0
- package/lib/components/TreeSelect/TreeSelect.d.ts +124 -0
- package/lib/components/TreeSelect/TreeSelectOption.d.ts +36 -0
- package/lib/components/TreeSelect/flatten-tree-select-data.d.ts +12 -0
- package/lib/components/TreeSelect/get-checked-values-by-strategy.d.ts +4 -0
- package/lib/components/TreeSelect/index.d.ts +13 -0
- package/lib/components/index.d.ts +2 -0
- package/lib/core/MantineProvider/use-props/use-props.d.ts +1 -1
- package/package.json +2 -2
- package/styles/Pill.css +35 -0
- package/styles/Pill.layer.css +35 -0
- package/styles/RollingNumber.css +60 -0
- package/styles/RollingNumber.layer.css +61 -0
- package/styles/TreeSelect.css +113 -0
- package/styles/TreeSelect.layer.css +114 -0
- package/styles.css +210 -0
- package/styles.layer.css +210 -0
|
@@ -54,6 +54,8 @@ export interface TagsInputProps extends BoxProps, __BaseInputProps, Omit<Combobo
|
|
|
54
54
|
isDuplicate?: (value: string, currentValues: string[]) => boolean;
|
|
55
55
|
/** If set, the dropdown opens when the input receives focus @default true */
|
|
56
56
|
openOnFocus?: boolean;
|
|
57
|
+
/** If set, tags can be reordered by dragging pills. Disabled when `disabled` or `readOnly` is set. @default false */
|
|
58
|
+
withPillsReorder?: boolean;
|
|
57
59
|
}
|
|
58
60
|
export type TagsInputFactory = Factory<{
|
|
59
61
|
props: TagsInputProps;
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { BoxProps, ElementProps, Factory, MantineColor, StylesApiProps } from '../../core';
|
|
2
|
+
import { ComboboxLikeStylesNames } from '../Combobox';
|
|
3
|
+
import { __BaseInputProps, __InputStylesNames, ClearSectionMode, InputClearButtonProps, InputVariant } from '../Input';
|
|
4
|
+
import { ScrollAreaProps } from '../ScrollArea';
|
|
5
|
+
import type { TreeNodeData } from '../Tree';
|
|
6
|
+
import { CheckedStrategy } from './get-checked-values-by-strategy';
|
|
7
|
+
import { TreeSelectChevronAriaLabels, TreeSelectRenderNodePayload } from './TreeSelectOption';
|
|
8
|
+
export type TreeSelectStylesNames = __InputStylesNames | ComboboxLikeStylesNames | 'pill' | 'pillsList' | 'inputField';
|
|
9
|
+
export type TreeSelectMode = 'single' | 'multiple' | 'checkbox';
|
|
10
|
+
export type TreeSelectValue<Mode extends TreeSelectMode> = Mode extends 'single' ? string | null : string[];
|
|
11
|
+
export interface TreeSelectProps<Mode extends TreeSelectMode = 'single'> extends BoxProps, __BaseInputProps, StylesApiProps<TreeSelectFactory>, ElementProps<'input', 'size' | 'value' | 'defaultValue' | 'onChange'> {
|
|
12
|
+
/** Tree data */
|
|
13
|
+
data: TreeNodeData[];
|
|
14
|
+
/** Selection mode: 'single', 'multiple', or 'checkbox' (with cascade) @default 'single' */
|
|
15
|
+
mode?: Mode;
|
|
16
|
+
/** Controlled value */
|
|
17
|
+
value?: TreeSelectValue<Mode>;
|
|
18
|
+
/** Default value */
|
|
19
|
+
defaultValue?: TreeSelectValue<Mode>;
|
|
20
|
+
/** Called when value changes */
|
|
21
|
+
onChange?: (value: TreeSelectValue<Mode>) => void;
|
|
22
|
+
/** Disables parent-child cascade in checkbox mode @default false */
|
|
23
|
+
checkStrictly?: boolean;
|
|
24
|
+
/** Controls which checked nodes appear in value/pills in checkbox mode @default 'child' */
|
|
25
|
+
checkedStrategy?: CheckedStrategy;
|
|
26
|
+
/** Default expanded node values */
|
|
27
|
+
defaultExpandedValues?: string[];
|
|
28
|
+
/** Expand all nodes by default @default false */
|
|
29
|
+
defaultExpandAll?: boolean;
|
|
30
|
+
/** Controlled expanded state */
|
|
31
|
+
expandedValues?: string[];
|
|
32
|
+
/** Called when expanded state changes */
|
|
33
|
+
onExpandedChange?: (values: string[]) => void;
|
|
34
|
+
/** Also toggle expand when clicking a parent node (not just the chevron). In `single` and `multiple` modes, parent clicks only expand; only leaves can be selected. In `checkbox` mode, parent clicks both check and expand. @default false */
|
|
35
|
+
expandOnClick?: boolean;
|
|
36
|
+
/** Enables search filtering @default false */
|
|
37
|
+
searchable?: boolean;
|
|
38
|
+
/** Controlled search value */
|
|
39
|
+
searchValue?: string;
|
|
40
|
+
/** Default search value */
|
|
41
|
+
defaultSearchValue?: string;
|
|
42
|
+
/** Called when search changes */
|
|
43
|
+
onSearchChange?: (value: string) => void;
|
|
44
|
+
/** Custom filter function */
|
|
45
|
+
filter?: (query: string, node: TreeNodeData) => boolean;
|
|
46
|
+
/** Message when no nodes match search */
|
|
47
|
+
nothingFoundMessage?: React.ReactNode;
|
|
48
|
+
/** Allows deselecting in single mode @default true */
|
|
49
|
+
allowDeselect?: boolean;
|
|
50
|
+
/** Shows clear button @default false */
|
|
51
|
+
clearable?: boolean;
|
|
52
|
+
/** Determines how the clear button and rightSection are rendered @default 'both' */
|
|
53
|
+
clearSectionMode?: ClearSectionMode;
|
|
54
|
+
/** Props for the clear button */
|
|
55
|
+
clearButtonProps?: InputClearButtonProps;
|
|
56
|
+
/** Maximum selectable values (multiple/checkbox mode) */
|
|
57
|
+
maxValues?: number;
|
|
58
|
+
/** Maximum displayed pills before "+N more" */
|
|
59
|
+
maxDisplayedValues?: number;
|
|
60
|
+
/** Content shown when values overflow maxDisplayedValues */
|
|
61
|
+
maxDisplayedValuesContent?: React.ReactNode | ((overflow: number) => React.ReactNode);
|
|
62
|
+
/** Called with removed value in multiple/checkbox mode */
|
|
63
|
+
onRemove?: (value: string) => void;
|
|
64
|
+
/** Called when clear button is clicked */
|
|
65
|
+
onClear?: () => void;
|
|
66
|
+
/** Custom node rendering in the dropdown */
|
|
67
|
+
renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;
|
|
68
|
+
/** Show tree connection lines between parent and child nodes @default true */
|
|
69
|
+
withLines?: boolean;
|
|
70
|
+
/** Props for the hidden input */
|
|
71
|
+
hiddenInputProps?: Omit<React.ComponentProps<'input'>, 'value'>;
|
|
72
|
+
/** Divider for hidden input values @default ',' */
|
|
73
|
+
hiddenInputValuesDivider?: string;
|
|
74
|
+
/** Props for the ScrollArea in the dropdown */
|
|
75
|
+
scrollAreaProps?: ScrollAreaProps;
|
|
76
|
+
/** Controls the default chevron color */
|
|
77
|
+
chevronColor?: MantineColor;
|
|
78
|
+
/** Max dropdown height @default 220 */
|
|
79
|
+
maxDropdownHeight?: number | string;
|
|
80
|
+
/** Controlled dropdown state */
|
|
81
|
+
dropdownOpened?: boolean;
|
|
82
|
+
/** Default dropdown state */
|
|
83
|
+
defaultDropdownOpened?: boolean;
|
|
84
|
+
/** Called when dropdown opens */
|
|
85
|
+
onDropdownOpen?: () => void;
|
|
86
|
+
/** Called when dropdown closes */
|
|
87
|
+
onDropdownClose?: () => void;
|
|
88
|
+
/** Props passed to the underlying Combobox */
|
|
89
|
+
comboboxProps?: Record<string, any>;
|
|
90
|
+
/** Clear search on selection change @default true */
|
|
91
|
+
clearSearchOnChange?: boolean;
|
|
92
|
+
/** Opens dropdown on focus (searchable mode) @default true */
|
|
93
|
+
openOnFocus?: boolean;
|
|
94
|
+
/** aria-label values for the expand/collapse chevron button */
|
|
95
|
+
chevronAriaLabels?: TreeSelectChevronAriaLabels;
|
|
96
|
+
}
|
|
97
|
+
export type TreeSelectFactory = Factory<{
|
|
98
|
+
props: TreeSelectProps;
|
|
99
|
+
ref: HTMLInputElement;
|
|
100
|
+
stylesNames: TreeSelectStylesNames;
|
|
101
|
+
variant: InputVariant;
|
|
102
|
+
signature: <Mode extends TreeSelectMode = 'single'>(props: TreeSelectProps<Mode>) => React.JSX.Element;
|
|
103
|
+
}>;
|
|
104
|
+
export declare const TreeSelect: (<Mode extends TreeSelectMode = "single">(props: TreeSelectProps<Mode>) => React.JSX.Element) & import("../..").ThemeExtend<{
|
|
105
|
+
props: TreeSelectProps;
|
|
106
|
+
ref: HTMLInputElement;
|
|
107
|
+
stylesNames: TreeSelectStylesNames;
|
|
108
|
+
variant: InputVariant;
|
|
109
|
+
signature: <Mode extends TreeSelectMode = "single">(props: TreeSelectProps<Mode>) => React.JSX.Element;
|
|
110
|
+
}> & import("../..").ComponentClasses<{
|
|
111
|
+
props: TreeSelectProps;
|
|
112
|
+
ref: HTMLInputElement;
|
|
113
|
+
stylesNames: TreeSelectStylesNames;
|
|
114
|
+
variant: InputVariant;
|
|
115
|
+
signature: <Mode extends TreeSelectMode = "single">(props: TreeSelectProps<Mode>) => React.JSX.Element;
|
|
116
|
+
}> & Record<string, never> & import("../..").FactoryComponentWithProps<{
|
|
117
|
+
props: TreeSelectProps;
|
|
118
|
+
ref: HTMLInputElement;
|
|
119
|
+
stylesNames: TreeSelectStylesNames;
|
|
120
|
+
variant: InputVariant;
|
|
121
|
+
signature: <Mode extends TreeSelectMode = "single">(props: TreeSelectProps<Mode>) => React.JSX.Element;
|
|
122
|
+
}> & {
|
|
123
|
+
displayName?: string;
|
|
124
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { TreeNodeData } from '../Tree';
|
|
2
|
+
export interface TreeSelectChevronAriaLabels {
|
|
3
|
+
/** aria-label for the expand button when the node is collapsed @default 'Expand' */
|
|
4
|
+
expand?: string;
|
|
5
|
+
/** aria-label for the expand button when the node is expanded @default 'Collapse' */
|
|
6
|
+
collapse?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface TreeSelectOptionProps {
|
|
9
|
+
node: TreeNodeData;
|
|
10
|
+
level: number;
|
|
11
|
+
expanded: boolean;
|
|
12
|
+
hasChildren: boolean;
|
|
13
|
+
selected: boolean;
|
|
14
|
+
checked: boolean;
|
|
15
|
+
indeterminate: boolean;
|
|
16
|
+
showCheckbox: boolean;
|
|
17
|
+
isLastChild: boolean;
|
|
18
|
+
lineGuides: boolean[];
|
|
19
|
+
withLines: boolean;
|
|
20
|
+
onToggleExpand: (value: string) => void;
|
|
21
|
+
renderNode?: (payload: TreeSelectRenderNodePayload) => React.ReactNode;
|
|
22
|
+
chevronAriaLabels?: TreeSelectChevronAriaLabels;
|
|
23
|
+
}
|
|
24
|
+
export interface TreeSelectRenderNodePayload {
|
|
25
|
+
node: TreeNodeData;
|
|
26
|
+
level: number;
|
|
27
|
+
expanded: boolean;
|
|
28
|
+
hasChildren: boolean;
|
|
29
|
+
selected: boolean;
|
|
30
|
+
checked: boolean;
|
|
31
|
+
indeterminate: boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare function TreeSelectOption({ node, level, expanded, hasChildren, selected, checked, indeterminate, showCheckbox, isLastChild, lineGuides, withLines, onToggleExpand, renderNode, chevronAriaLabels, }: TreeSelectOptionProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export declare namespace TreeSelectOption {
|
|
35
|
+
var displayName: string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TreeNodeData } from '../Tree';
|
|
2
|
+
import type { TreeExpandedState } from '../Tree/use-tree';
|
|
3
|
+
export interface TreeSelectFlatNode {
|
|
4
|
+
node: TreeNodeData;
|
|
5
|
+
level: number;
|
|
6
|
+
parent: string | null;
|
|
7
|
+
hasChildren: boolean;
|
|
8
|
+
expanded: boolean;
|
|
9
|
+
isLastChild: boolean;
|
|
10
|
+
lineGuides: boolean[];
|
|
11
|
+
}
|
|
12
|
+
export declare function flattenTreeSelectData(data: TreeNodeData[], expandedState: TreeExpandedState): TreeSelectFlatNode[];
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { TreeNodeData } from '../Tree';
|
|
2
|
+
export type CheckedStrategy = 'all' | 'parent' | 'child';
|
|
3
|
+
export declare function expandToLeafChecked(value: string[], data: TreeNodeData[]): string[];
|
|
4
|
+
export declare function checkedToValue(checkedState: string[], data: TreeNodeData[], strategy: CheckedStrategy): string[];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { TreeSelectFactory, TreeSelectMode, TreeSelectProps, TreeSelectStylesNames, TreeSelectValue } from './TreeSelect';
|
|
2
|
+
export { TreeSelect } from './TreeSelect';
|
|
3
|
+
export { TreeSelectOption } from './TreeSelectOption';
|
|
4
|
+
export type { TreeSelectChevronAriaLabels, TreeSelectRenderNodePayload } from './TreeSelectOption';
|
|
5
|
+
export type { CheckedStrategy } from './get-checked-values-by-strategy';
|
|
6
|
+
export type { TreeSelectProps, TreeSelectStylesNames, TreeSelectFactory, TreeSelectMode, TreeSelectValue, };
|
|
7
|
+
export declare namespace TreeSelect {
|
|
8
|
+
type Props = TreeSelectProps;
|
|
9
|
+
type StylesNames = TreeSelectStylesNames;
|
|
10
|
+
type Factory = TreeSelectFactory;
|
|
11
|
+
type Mode = TreeSelectMode;
|
|
12
|
+
type Value<Mode extends TreeSelectMode> = TreeSelectValue<Mode>;
|
|
13
|
+
}
|
|
@@ -79,6 +79,7 @@ export * from './Portal';
|
|
|
79
79
|
export * from './Progress';
|
|
80
80
|
export * from './Radio';
|
|
81
81
|
export * from './Rating';
|
|
82
|
+
export * from './RollingNumber';
|
|
82
83
|
export * from './RingProgress';
|
|
83
84
|
export * from './Scroller';
|
|
84
85
|
export * from './SegmentedControl';
|
|
@@ -105,4 +106,5 @@ export * from './Title';
|
|
|
105
106
|
export * from './Tooltip';
|
|
106
107
|
export * from './Transition';
|
|
107
108
|
export * from './Tree';
|
|
109
|
+
export * from './TreeSelect';
|
|
108
110
|
export * from './Typography';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare function useProps<T extends Record<string, any>, U extends Partial<T> | null = {}>(component: string, defaultProps: U, props: T): T & (U extends null | undefined ? {} : {
|
|
1
|
+
export declare function useProps<T extends Record<string, any>, U extends Partial<T> | null = {}>(component: string | (string | undefined)[], defaultProps: U, props: T): T & (U extends null | undefined ? {} : {
|
|
2
2
|
[Key in Extract<keyof T, keyof U>]-?: U[Key] | NonNullable<T[Key]>;
|
|
3
3
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantine/core",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.2.0",
|
|
4
4
|
"description": "React components library focused on usability, accessibility and developer experience",
|
|
5
5
|
"homepage": "https://mantine.dev/",
|
|
6
6
|
"license": "MIT",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"directory": "packages/@mantine/core"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
|
-
"@mantine/hooks": "9.
|
|
46
|
+
"@mantine/hooks": "9.2.0",
|
|
47
47
|
"react": "^19.2.0",
|
|
48
48
|
"react-dom": "^19.2.0"
|
|
49
49
|
},
|
package/styles/Pill.css
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
user-select: none;
|
|
27
27
|
-webkit-user-select: none;
|
|
28
28
|
max-width: 100%;
|
|
29
|
+
position: relative;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
:where([data-mantine-color-scheme='dark']) .m_7cda1cd6 {
|
|
@@ -45,6 +46,40 @@
|
|
|
45
46
|
cursor: not-allowed;
|
|
46
47
|
}
|
|
47
48
|
|
|
49
|
+
.m_7cda1cd6:where([draggable='true']) {
|
|
50
|
+
cursor: grab;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.m_7cda1cd6:where([draggable='true']):focus-visible {
|
|
54
|
+
outline: 2px solid var(--mantine-primary-color-filled);
|
|
55
|
+
outline-offset: 2px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.m_7cda1cd6:where([data-dragging]) {
|
|
59
|
+
opacity: 0.4;
|
|
60
|
+
cursor: grabbing;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.m_7cda1cd6:where([data-drag-over='before'])::before,
|
|
64
|
+
.m_7cda1cd6:where([data-drag-over='after'])::after {
|
|
65
|
+
content: '';
|
|
66
|
+
position: absolute;
|
|
67
|
+
top: 0;
|
|
68
|
+
bottom: 0;
|
|
69
|
+
width: calc(0.125rem * var(--mantine-scale));
|
|
70
|
+
background-color: var(--mantine-primary-color-filled);
|
|
71
|
+
pointer-events: none;
|
|
72
|
+
z-index: 1;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.m_7cda1cd6:where([data-drag-over='before'])::before {
|
|
76
|
+
inset-inline-start: calc(-0.25rem * var(--mantine-scale));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.m_7cda1cd6:where([data-drag-over='after'])::after {
|
|
80
|
+
inset-inline-end: calc(-0.25rem * var(--mantine-scale));
|
|
81
|
+
}
|
|
82
|
+
|
|
48
83
|
:where([data-mantine-color-scheme='light']) .m_44da308b {
|
|
49
84
|
background-color: var(--mantine-color-gray-1);
|
|
50
85
|
}
|
package/styles/Pill.layer.css
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
user-select: none;
|
|
27
27
|
-webkit-user-select: none;
|
|
28
28
|
max-width: 100%;
|
|
29
|
+
position: relative;
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
:where([data-mantine-color-scheme='dark']) .m_7cda1cd6 {
|
|
@@ -45,6 +46,40 @@
|
|
|
45
46
|
cursor: not-allowed;
|
|
46
47
|
}
|
|
47
48
|
|
|
49
|
+
.m_7cda1cd6:where([draggable='true']) {
|
|
50
|
+
cursor: grab;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.m_7cda1cd6:where([draggable='true']):focus-visible {
|
|
54
|
+
outline: 2px solid var(--mantine-primary-color-filled);
|
|
55
|
+
outline-offset: 2px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.m_7cda1cd6:where([data-dragging]) {
|
|
59
|
+
opacity: 0.4;
|
|
60
|
+
cursor: grabbing;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.m_7cda1cd6:where([data-drag-over='before'])::before,
|
|
64
|
+
.m_7cda1cd6:where([data-drag-over='after'])::after {
|
|
65
|
+
content: '';
|
|
66
|
+
position: absolute;
|
|
67
|
+
top: 0;
|
|
68
|
+
bottom: 0;
|
|
69
|
+
width: calc(0.125rem * var(--mantine-scale));
|
|
70
|
+
background-color: var(--mantine-primary-color-filled);
|
|
71
|
+
pointer-events: none;
|
|
72
|
+
z-index: 1;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.m_7cda1cd6:where([data-drag-over='before'])::before {
|
|
76
|
+
inset-inline-start: calc(-0.25rem * var(--mantine-scale));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.m_7cda1cd6:where([data-drag-over='after'])::after {
|
|
80
|
+
inset-inline-end: calc(-0.25rem * var(--mantine-scale));
|
|
81
|
+
}
|
|
82
|
+
|
|
48
83
|
:where([data-mantine-color-scheme='light']) .m_44da308b {
|
|
49
84
|
background-color: var(--mantine-color-gray-1);
|
|
50
85
|
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
.m_47dd3981 {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
align-items: baseline;
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.m_47dd3981[data-tabular-numbers] {
|
|
8
|
+
font-variant-numeric: tabular-nums;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.m_b301d46e {
|
|
12
|
+
display: inline-block;
|
|
13
|
+
width: 1ch;
|
|
14
|
+
height: 1em;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
line-height: 1;
|
|
17
|
+
transition:
|
|
18
|
+
width var(--rn-duration) var(--rn-timing-function),
|
|
19
|
+
opacity var(--rn-duration) var(--rn-timing-function);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.m_b301d46e[data-empty] {
|
|
23
|
+
width: 0;
|
|
24
|
+
opacity: 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.m_8ae40964 {
|
|
28
|
+
display: flex;
|
|
29
|
+
flex-direction: column;
|
|
30
|
+
animation: m_18d73873 var(--rn-duration) var(--rn-timing-function);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.m_8ae40964 > span {
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
justify-content: center;
|
|
37
|
+
height: 1em;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.m_47d64bf5 {
|
|
41
|
+
display: inline-block;
|
|
42
|
+
overflow: hidden;
|
|
43
|
+
white-space: pre;
|
|
44
|
+
transition: opacity var(--rn-duration) var(--rn-timing-function);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.m_47d64bf5[data-empty] {
|
|
48
|
+
width: 0;
|
|
49
|
+
opacity: 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@keyframes m_18d73873 {
|
|
53
|
+
from {
|
|
54
|
+
transform: var(--rn-roll-from);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
to {
|
|
58
|
+
transform: var(--rn-roll-to);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
@layer mantine {.m_47dd3981 {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
align-items: baseline;
|
|
4
|
+
overflow: hidden;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.m_47dd3981[data-tabular-numbers] {
|
|
8
|
+
font-variant-numeric: tabular-nums;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.m_b301d46e {
|
|
12
|
+
display: inline-block;
|
|
13
|
+
width: 1ch;
|
|
14
|
+
height: 1em;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
line-height: 1;
|
|
17
|
+
transition:
|
|
18
|
+
width var(--rn-duration) var(--rn-timing-function),
|
|
19
|
+
opacity var(--rn-duration) var(--rn-timing-function);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.m_b301d46e[data-empty] {
|
|
23
|
+
width: 0;
|
|
24
|
+
opacity: 0;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.m_8ae40964 {
|
|
28
|
+
display: flex;
|
|
29
|
+
flex-direction: column;
|
|
30
|
+
animation: m_18d73873 var(--rn-duration) var(--rn-timing-function);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.m_8ae40964 > span {
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
justify-content: center;
|
|
37
|
+
height: 1em;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.m_47d64bf5 {
|
|
41
|
+
display: inline-block;
|
|
42
|
+
overflow: hidden;
|
|
43
|
+
white-space: pre;
|
|
44
|
+
transition: opacity var(--rn-duration) var(--rn-timing-function);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.m_47d64bf5[data-empty] {
|
|
48
|
+
width: 0;
|
|
49
|
+
opacity: 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@keyframes m_18d73873 {
|
|
53
|
+
from {
|
|
54
|
+
transform: var(--rn-roll-from);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
to {
|
|
58
|
+
transform: var(--rn-roll-to);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
.m_529d33e8 {
|
|
2
|
+
--ts-level-offset: 20px;
|
|
3
|
+
--ts-line-width: calc(0.0625rem * var(--mantine-scale));
|
|
4
|
+
--ts-line-color: var(--mantine-color-default-border);
|
|
5
|
+
--ts-option-padding-y: 4px;
|
|
6
|
+
--ts-option-padding-x: 8px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.m_28bb748 {
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: 6px;
|
|
13
|
+
position: relative;
|
|
14
|
+
padding: var(--ts-option-padding-y) var(--ts-option-padding-x);
|
|
15
|
+
padding-inline-start: var(--ts-option-padding-x);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.m_aa3e3f86 {
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
--_ts-expand-icon-size: calc(1.45 * var(--combobox-option-fz, var(--mantine-font-size-sm)));
|
|
23
|
+
width: var(--_ts-expand-icon-size);
|
|
24
|
+
min-width: var(--_ts-expand-icon-size);
|
|
25
|
+
height: var(--_ts-expand-icon-size);
|
|
26
|
+
border-radius: var(--mantine-radius-sm);
|
|
27
|
+
cursor: pointer;
|
|
28
|
+
color: var(--mantine-color-dimmed);
|
|
29
|
+
transform: rotate(-90deg);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:where([data-combobox-selected]) .m_aa3e3f86 {
|
|
33
|
+
color: var(--mantine-color-white);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
:where([dir="rtl"]) .m_aa3e3f86 {
|
|
37
|
+
transform: rotate(90deg);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.m_aa3e3f86:where([data-expanded]) {
|
|
41
|
+
transform: rotate(0deg);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@media (hover: hover) {
|
|
45
|
+
:where([data-mantine-color-scheme='light']) .m_aa3e3f86:hover {
|
|
46
|
+
background-color: var(--mantine-color-gray-1);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
:where([data-mantine-color-scheme='dark']) .m_aa3e3f86:hover {
|
|
50
|
+
background-color: var(--mantine-color-dark-5);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@media (hover: none) {
|
|
55
|
+
:where([data-mantine-color-scheme='light']) .m_aa3e3f86:active {
|
|
56
|
+
background-color: var(--mantine-color-gray-1);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:where([data-mantine-color-scheme='dark']) .m_aa3e3f86:active {
|
|
60
|
+
background-color: var(--mantine-color-dark-5);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.m_eaa4cdee {
|
|
65
|
+
opacity: 0.4;
|
|
66
|
+
width: 0.8em;
|
|
67
|
+
min-width: 0.8em;
|
|
68
|
+
height: 0.8em;
|
|
69
|
+
margin-inline-start: auto;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
:where([data-combobox-selected]) .m_eaa4cdee {
|
|
73
|
+
opacity: 1;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.m_ffe3a9c1 {
|
|
77
|
+
flex: 1;
|
|
78
|
+
overflow: hidden;
|
|
79
|
+
text-overflow: ellipsis;
|
|
80
|
+
white-space: nowrap;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* Tree lines */
|
|
84
|
+
.m_57207d5d {
|
|
85
|
+
position: absolute;
|
|
86
|
+
top: 0;
|
|
87
|
+
bottom: 0;
|
|
88
|
+
width: 0;
|
|
89
|
+
border-inline-start: var(--ts-line-width) solid var(--ts-line-color);
|
|
90
|
+
pointer-events: none;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.m_41b9db0b {
|
|
94
|
+
position: absolute;
|
|
95
|
+
top: 0;
|
|
96
|
+
bottom: 0;
|
|
97
|
+
width: 0;
|
|
98
|
+
border-inline-start: var(--ts-line-width) solid var(--ts-line-color);
|
|
99
|
+
pointer-events: none;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.m_41b9db0b:where([data-last]) {
|
|
103
|
+
bottom: auto;
|
|
104
|
+
height: 50%;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.m_1246e79 {
|
|
108
|
+
position: absolute;
|
|
109
|
+
top: 50%;
|
|
110
|
+
height: 0;
|
|
111
|
+
border-top: var(--ts-line-width) solid var(--ts-line-color);
|
|
112
|
+
pointer-events: none;
|
|
113
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
@layer mantine {.m_529d33e8 {
|
|
2
|
+
--ts-level-offset: 20px;
|
|
3
|
+
--ts-line-width: calc(0.0625rem * var(--mantine-scale));
|
|
4
|
+
--ts-line-color: var(--mantine-color-default-border);
|
|
5
|
+
--ts-option-padding-y: 4px;
|
|
6
|
+
--ts-option-padding-x: 8px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.m_28bb748 {
|
|
10
|
+
display: flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: 6px;
|
|
13
|
+
position: relative;
|
|
14
|
+
padding: var(--ts-option-padding-y) var(--ts-option-padding-x);
|
|
15
|
+
padding-inline-start: var(--ts-option-padding-x);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.m_aa3e3f86 {
|
|
19
|
+
display: flex;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
--_ts-expand-icon-size: calc(1.45 * var(--combobox-option-fz, var(--mantine-font-size-sm)));
|
|
23
|
+
width: var(--_ts-expand-icon-size);
|
|
24
|
+
min-width: var(--_ts-expand-icon-size);
|
|
25
|
+
height: var(--_ts-expand-icon-size);
|
|
26
|
+
border-radius: var(--mantine-radius-sm);
|
|
27
|
+
cursor: pointer;
|
|
28
|
+
color: var(--mantine-color-dimmed);
|
|
29
|
+
transform: rotate(-90deg);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:where([data-combobox-selected]) .m_aa3e3f86 {
|
|
33
|
+
color: var(--mantine-color-white);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
:where([dir="rtl"]) .m_aa3e3f86 {
|
|
37
|
+
transform: rotate(90deg);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.m_aa3e3f86:where([data-expanded]) {
|
|
41
|
+
transform: rotate(0deg);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@media (hover: hover) {
|
|
45
|
+
:where([data-mantine-color-scheme='light']) .m_aa3e3f86:hover {
|
|
46
|
+
background-color: var(--mantine-color-gray-1);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
:where([data-mantine-color-scheme='dark']) .m_aa3e3f86:hover {
|
|
50
|
+
background-color: var(--mantine-color-dark-5);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@media (hover: none) {
|
|
55
|
+
:where([data-mantine-color-scheme='light']) .m_aa3e3f86:active {
|
|
56
|
+
background-color: var(--mantine-color-gray-1);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:where([data-mantine-color-scheme='dark']) .m_aa3e3f86:active {
|
|
60
|
+
background-color: var(--mantine-color-dark-5);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.m_eaa4cdee {
|
|
65
|
+
opacity: 0.4;
|
|
66
|
+
width: 0.8em;
|
|
67
|
+
min-width: 0.8em;
|
|
68
|
+
height: 0.8em;
|
|
69
|
+
margin-inline-start: auto;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
:where([data-combobox-selected]) .m_eaa4cdee {
|
|
73
|
+
opacity: 1;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.m_ffe3a9c1 {
|
|
77
|
+
flex: 1;
|
|
78
|
+
overflow: hidden;
|
|
79
|
+
text-overflow: ellipsis;
|
|
80
|
+
white-space: nowrap;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* Tree lines */
|
|
84
|
+
.m_57207d5d {
|
|
85
|
+
position: absolute;
|
|
86
|
+
top: 0;
|
|
87
|
+
bottom: 0;
|
|
88
|
+
width: 0;
|
|
89
|
+
border-inline-start: var(--ts-line-width) solid var(--ts-line-color);
|
|
90
|
+
pointer-events: none;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.m_41b9db0b {
|
|
94
|
+
position: absolute;
|
|
95
|
+
top: 0;
|
|
96
|
+
bottom: 0;
|
|
97
|
+
width: 0;
|
|
98
|
+
border-inline-start: var(--ts-line-width) solid var(--ts-line-color);
|
|
99
|
+
pointer-events: none;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.m_41b9db0b:where([data-last]) {
|
|
103
|
+
bottom: auto;
|
|
104
|
+
height: 50%;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.m_1246e79 {
|
|
108
|
+
position: absolute;
|
|
109
|
+
top: 50%;
|
|
110
|
+
height: 0;
|
|
111
|
+
border-top: var(--ts-line-width) solid var(--ts-line-color);
|
|
112
|
+
pointer-events: none;
|
|
113
|
+
}
|
|
114
|
+
}
|