@vibe/core 4.4.0-alpha-26200.0 → 4.4.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/components/Dropdown/Dropdown.types.d.ts +0 -12
- package/dist/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.d.ts +1 -5
- package/dist/components/Dropdown/components/Trigger/DropdownInput.d.ts +2 -4
- package/dist/components/Dropdown/context/DropdownContext.types.d.ts +0 -6
- package/dist/components/Dropdown/hooks/useDropdownMultiCombobox.d.ts +1 -1
- package/dist/components/Modal/Modal/Modal.types.d.ts +6 -0
- package/dist/metadata/components.json +11 -18
- package/dist/metadata.json +11 -18
- package/dist/mocked_classnames/components/Dropdown/Dropdown.types.d.ts +0 -12
- package/dist/mocked_classnames/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.d.ts +1 -5
- package/dist/mocked_classnames/components/Dropdown/components/Trigger/DropdownInput.d.ts +2 -4
- package/dist/mocked_classnames/components/Dropdown/context/DropdownContext.types.d.ts +0 -6
- package/dist/mocked_classnames/components/Dropdown/hooks/useDropdownMultiCombobox.d.ts +1 -1
- package/dist/mocked_classnames/components/Modal/Modal/Modal.types.d.ts +6 -0
- package/dist/mocked_classnames/src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/DropdownInput.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/DropdownInput.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/Trigger.module.scss.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/hooks/useDropdownCombobox.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/hooks/useDropdownCombobox.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/hooks/useDropdownMultiCombobox.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/hooks/useDropdownMultiCombobox.js.map +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/modes/DropdownMultiComboboxController.js +1 -1
- package/dist/mocked_classnames/src/components/Dropdown/modes/DropdownMultiComboboxController.js.map +1 -1
- package/dist/mocked_classnames/src/components/Modal/Modal/Modal.js +1 -1
- package/dist/mocked_classnames/src/components/Modal/Modal/Modal.js.map +1 -1
- package/dist/mocked_classnames/src/components/Modal/Modal/Modal.module.scss.js +1 -1
- package/dist/src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.js +1 -1
- package/dist/src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.js.map +1 -1
- package/dist/src/components/Dropdown/components/Trigger/DropdownInput.js +1 -1
- package/dist/src/components/Dropdown/components/Trigger/DropdownInput.js.map +1 -1
- package/dist/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js +1 -1
- package/dist/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js.map +1 -1
- package/dist/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js +1 -1
- package/dist/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js.map +1 -1
- package/dist/src/components/Dropdown/components/Trigger/Trigger.module.scss.js +1 -1
- package/dist/src/components/Dropdown/hooks/useDropdownCombobox.js +1 -1
- package/dist/src/components/Dropdown/hooks/useDropdownCombobox.js.map +1 -1
- package/dist/src/components/Dropdown/hooks/useDropdownMultiCombobox.js +1 -1
- package/dist/src/components/Dropdown/hooks/useDropdownMultiCombobox.js.map +1 -1
- package/dist/src/components/Dropdown/modes/DropdownMultiComboboxController.js +1 -1
- package/dist/src/components/Dropdown/modes/DropdownMultiComboboxController.js.map +1 -1
- package/dist/src/components/Modal/Modal/Modal.js +1 -1
- package/dist/src/components/Modal/Modal/Modal.js.map +1 -1
- package/dist/src/components/Modal/Modal/Modal.module.scss.js +1 -1
- package/package.json +2 -2
- package/dist/metadata/examples/DropdownMultiSelectA11y.md +0 -50
- package/dist/metadata/examples/DropdownSearchableSingleSelect.md +0 -379
|
@@ -15,18 +15,6 @@ interface MultiSelectSpecifics<Item extends BaseItemData<Record<string, unknown>
|
|
|
15
15
|
* Callback fired when an option is removed in multi-select mode. Only available when multi is true.
|
|
16
16
|
*/
|
|
17
17
|
onOptionRemove?: (option: Item) => void;
|
|
18
|
-
/**
|
|
19
|
-
* If true, selected items are shown as a comma-separated text summary inside the input instead of chips.
|
|
20
|
-
* Satisfies WCAG 4.1.2 by exposing the combobox value to assistive technologies on focus.
|
|
21
|
-
* Only applies when searchable=true.
|
|
22
|
-
*/
|
|
23
|
-
textInput?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* If true, chips are always visible and support keyboard navigation: pressing Backspace or Left arrow
|
|
26
|
-
* from the input moves focus to the last chip; Left/Right navigates between chips; Delete/Backspace
|
|
27
|
-
* removes the focused chip. Only applies when searchable=true.
|
|
28
|
-
*/
|
|
29
|
-
interactiveChips?: boolean;
|
|
30
18
|
/**
|
|
31
19
|
* The function to call to render the selected value on single select mode.
|
|
32
20
|
*/
|
|
@@ -7,10 +7,6 @@ type MultiSelectedValuesProps<Item> = {
|
|
|
7
7
|
disabled?: boolean;
|
|
8
8
|
readOnly?: boolean;
|
|
9
9
|
minVisibleCount?: number;
|
|
10
|
-
/** Extra props (tabIndex, onKeyDown, etc.) to spread on each visible chip container. */
|
|
11
|
-
getChipContainerProps?: (item: Item, index: number) => Record<string, any>;
|
|
12
|
-
/** Ref forwarded to the +N overflow Chips element, for external keyboard focus management. */
|
|
13
|
-
badgeRef?: React.Ref<HTMLDivElement>;
|
|
14
10
|
};
|
|
15
|
-
declare function MultiSelectedValues<Item extends BaseItemData<Record<string, unknown>>>({ selectedItems, onRemove, renderInput, disabled, readOnly, minVisibleCount
|
|
11
|
+
declare function MultiSelectedValues<Item extends BaseItemData<Record<string, unknown>>>({ selectedItems, onRemove, renderInput, disabled, readOnly, minVisibleCount }: MultiSelectedValuesProps<Item>): React.JSX.Element;
|
|
16
12
|
export default MultiSelectedValues;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import React
|
|
2
|
-
declare const DropdownInput: ({ inputSize, fullWidth
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare const DropdownInput: ({ inputSize, fullWidth }: {
|
|
3
3
|
inputSize?: "small" | "medium" | "large";
|
|
4
4
|
fullWidth?: boolean;
|
|
5
|
-
onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
|
|
6
|
-
inputRef?: RefObject<HTMLInputElement>;
|
|
7
5
|
}) => React.JSX.Element;
|
|
8
6
|
export default DropdownInput;
|
|
@@ -29,12 +29,6 @@ export interface DropdownContextProps<Item extends BaseItemData<Record<string, u
|
|
|
29
29
|
contextOnOptionRemove?: (option: Item) => void;
|
|
30
30
|
addSelectedItem?: (item: Item) => void;
|
|
31
31
|
removeSelectedItem?: (item: Item) => void;
|
|
32
|
-
getSelectedItemProps?: (options: {
|
|
33
|
-
selectedItem: any;
|
|
34
|
-
index: number;
|
|
35
|
-
}) => Record<string, any>;
|
|
36
32
|
isFocused?: boolean;
|
|
37
|
-
textInput?: boolean;
|
|
38
|
-
interactiveChips?: boolean;
|
|
39
33
|
}
|
|
40
34
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type DropdownGroupOption } from "../Dropdown.types";
|
|
2
2
|
import { type BaseItemData } from "../../BaseItem";
|
|
3
|
-
declare function useDropdownMultiCombobox<T extends BaseItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, selectedItems: T[], setSelectedItems: (items: T[]) => void, isMenuOpen: boolean, autoFocus?: boolean, defaultValue?: T[], value?: T[], inputValueProp?: string, onChange?: (options: T[]) => void, onInputChange?: (value: string | null) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean, id?: string
|
|
3
|
+
declare function useDropdownMultiCombobox<T extends BaseItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, selectedItems: T[], setSelectedItems: (items: T[]) => void, isMenuOpen: boolean, autoFocus?: boolean, defaultValue?: T[], value?: T[], inputValueProp?: string, onChange?: (options: T[]) => void, onInputChange?: (value: string | null) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean, id?: string): {
|
|
4
4
|
isOpen: boolean;
|
|
5
5
|
inputValue: string;
|
|
6
6
|
highlightedIndex: number;
|
|
@@ -103,6 +103,12 @@ export interface ModalProps extends VibeComponentProps {
|
|
|
103
103
|
* The z-index to be used for the modal and overlay.
|
|
104
104
|
*/
|
|
105
105
|
zIndex?: number;
|
|
106
|
+
/**
|
|
107
|
+
* When true, the modal uses `position: fixed` for centering, anchoring it to the viewport
|
|
108
|
+
* rather than its portal container. Use this when the modal is portaled into `document.body`
|
|
109
|
+
* and the page has `direction: rtl` — the default `position: relative` centering breaks under RTL.
|
|
110
|
+
*/
|
|
111
|
+
useFixedPosition?: boolean;
|
|
106
112
|
/**
|
|
107
113
|
* If provided, overrides the automatically generated aria-labelledby, that is assigned when used with ModalHeader.
|
|
108
114
|
*/
|
|
@@ -6320,24 +6320,6 @@
|
|
|
6320
6320
|
"name": "(option: Item) => void"
|
|
6321
6321
|
}
|
|
6322
6322
|
},
|
|
6323
|
-
"textInput": {
|
|
6324
|
-
"defaultValue": null,
|
|
6325
|
-
"description": "If true, selected items are shown as a comma-separated text summary inside the input instead of chips.\nSatisfies WCAG 4.1.2 by exposing the combobox value to assistive technologies on focus.\nOnly applies when searchable=true.",
|
|
6326
|
-
"name": "textInput",
|
|
6327
|
-
"required": false,
|
|
6328
|
-
"type": {
|
|
6329
|
-
"name": "boolean"
|
|
6330
|
-
}
|
|
6331
|
-
},
|
|
6332
|
-
"interactiveChips": {
|
|
6333
|
-
"defaultValue": null,
|
|
6334
|
-
"description": "If true, chips are always visible and support keyboard navigation: pressing Backspace or Left arrow\nfrom the input moves focus to the last chip; Left/Right navigates between chips; Delete/Backspace\nremoves the focused chip. Only applies when searchable=true.",
|
|
6335
|
-
"name": "interactiveChips",
|
|
6336
|
-
"required": false,
|
|
6337
|
-
"type": {
|
|
6338
|
-
"name": "boolean"
|
|
6339
|
-
}
|
|
6340
|
-
},
|
|
6341
6323
|
"valueRenderer": {
|
|
6342
6324
|
"defaultValue": null,
|
|
6343
6325
|
"description": "The function to call to render the selected value on single select mode.",
|
|
@@ -13042,6 +13024,17 @@
|
|
|
13042
13024
|
"name": "number"
|
|
13043
13025
|
}
|
|
13044
13026
|
},
|
|
13027
|
+
"useFixedPosition": {
|
|
13028
|
+
"defaultValue": {
|
|
13029
|
+
"value": "false"
|
|
13030
|
+
},
|
|
13031
|
+
"description": "When true, the modal uses `position: fixed` for centering, anchoring it to the viewport\nrather than its portal container. Use this when the modal is portaled into `document.body`\nand the page has `direction: rtl` — the default `position: relative` centering breaks under RTL.",
|
|
13032
|
+
"name": "useFixedPosition",
|
|
13033
|
+
"required": false,
|
|
13034
|
+
"type": {
|
|
13035
|
+
"name": "boolean"
|
|
13036
|
+
}
|
|
13037
|
+
},
|
|
13045
13038
|
"aria-labelledby": {
|
|
13046
13039
|
"defaultValue": null,
|
|
13047
13040
|
"description": "If provided, overrides the automatically generated aria-labelledby, that is assigned when used with ModalHeader.",
|
package/dist/metadata.json
CHANGED
|
@@ -6320,24 +6320,6 @@
|
|
|
6320
6320
|
"name": "(option: Item) => void"
|
|
6321
6321
|
}
|
|
6322
6322
|
},
|
|
6323
|
-
"textInput": {
|
|
6324
|
-
"defaultValue": null,
|
|
6325
|
-
"description": "If true, selected items are shown as a comma-separated text summary inside the input instead of chips.\nSatisfies WCAG 4.1.2 by exposing the combobox value to assistive technologies on focus.\nOnly applies when searchable=true.",
|
|
6326
|
-
"name": "textInput",
|
|
6327
|
-
"required": false,
|
|
6328
|
-
"type": {
|
|
6329
|
-
"name": "boolean"
|
|
6330
|
-
}
|
|
6331
|
-
},
|
|
6332
|
-
"interactiveChips": {
|
|
6333
|
-
"defaultValue": null,
|
|
6334
|
-
"description": "If true, chips are always visible and support keyboard navigation: pressing Backspace or Left arrow\nfrom the input moves focus to the last chip; Left/Right navigates between chips; Delete/Backspace\nremoves the focused chip. Only applies when searchable=true.",
|
|
6335
|
-
"name": "interactiveChips",
|
|
6336
|
-
"required": false,
|
|
6337
|
-
"type": {
|
|
6338
|
-
"name": "boolean"
|
|
6339
|
-
}
|
|
6340
|
-
},
|
|
6341
6323
|
"valueRenderer": {
|
|
6342
6324
|
"defaultValue": null,
|
|
6343
6325
|
"description": "The function to call to render the selected value on single select mode.",
|
|
@@ -13042,6 +13024,17 @@
|
|
|
13042
13024
|
"name": "number"
|
|
13043
13025
|
}
|
|
13044
13026
|
},
|
|
13027
|
+
"useFixedPosition": {
|
|
13028
|
+
"defaultValue": {
|
|
13029
|
+
"value": "false"
|
|
13030
|
+
},
|
|
13031
|
+
"description": "When true, the modal uses `position: fixed` for centering, anchoring it to the viewport\nrather than its portal container. Use this when the modal is portaled into `document.body`\nand the page has `direction: rtl` — the default `position: relative` centering breaks under RTL.",
|
|
13032
|
+
"name": "useFixedPosition",
|
|
13033
|
+
"required": false,
|
|
13034
|
+
"type": {
|
|
13035
|
+
"name": "boolean"
|
|
13036
|
+
}
|
|
13037
|
+
},
|
|
13045
13038
|
"aria-labelledby": {
|
|
13046
13039
|
"defaultValue": null,
|
|
13047
13040
|
"description": "If provided, overrides the automatically generated aria-labelledby, that is assigned when used with ModalHeader.",
|
|
@@ -15,18 +15,6 @@ interface MultiSelectSpecifics<Item extends BaseItemData<Record<string, unknown>
|
|
|
15
15
|
* Callback fired when an option is removed in multi-select mode. Only available when multi is true.
|
|
16
16
|
*/
|
|
17
17
|
onOptionRemove?: (option: Item) => void;
|
|
18
|
-
/**
|
|
19
|
-
* If true, selected items are shown as a comma-separated text summary inside the input instead of chips.
|
|
20
|
-
* Satisfies WCAG 4.1.2 by exposing the combobox value to assistive technologies on focus.
|
|
21
|
-
* Only applies when searchable=true.
|
|
22
|
-
*/
|
|
23
|
-
textInput?: boolean;
|
|
24
|
-
/**
|
|
25
|
-
* If true, chips are always visible and support keyboard navigation: pressing Backspace or Left arrow
|
|
26
|
-
* from the input moves focus to the last chip; Left/Right navigates between chips; Delete/Backspace
|
|
27
|
-
* removes the focused chip. Only applies when searchable=true.
|
|
28
|
-
*/
|
|
29
|
-
interactiveChips?: boolean;
|
|
30
18
|
/**
|
|
31
19
|
* The function to call to render the selected value on single select mode.
|
|
32
20
|
*/
|
|
@@ -7,10 +7,6 @@ type MultiSelectedValuesProps<Item> = {
|
|
|
7
7
|
disabled?: boolean;
|
|
8
8
|
readOnly?: boolean;
|
|
9
9
|
minVisibleCount?: number;
|
|
10
|
-
/** Extra props (tabIndex, onKeyDown, etc.) to spread on each visible chip container. */
|
|
11
|
-
getChipContainerProps?: (item: Item, index: number) => Record<string, any>;
|
|
12
|
-
/** Ref forwarded to the +N overflow Chips element, for external keyboard focus management. */
|
|
13
|
-
badgeRef?: React.Ref<HTMLDivElement>;
|
|
14
10
|
};
|
|
15
|
-
declare function MultiSelectedValues<Item extends BaseItemData<Record<string, unknown>>>({ selectedItems, onRemove, renderInput, disabled, readOnly, minVisibleCount
|
|
11
|
+
declare function MultiSelectedValues<Item extends BaseItemData<Record<string, unknown>>>({ selectedItems, onRemove, renderInput, disabled, readOnly, minVisibleCount }: MultiSelectedValuesProps<Item>): React.JSX.Element;
|
|
16
12
|
export default MultiSelectedValues;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import React
|
|
2
|
-
declare const DropdownInput: ({ inputSize, fullWidth
|
|
1
|
+
import React from "react";
|
|
2
|
+
declare const DropdownInput: ({ inputSize, fullWidth }: {
|
|
3
3
|
inputSize?: "small" | "medium" | "large";
|
|
4
4
|
fullWidth?: boolean;
|
|
5
|
-
onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
|
|
6
|
-
inputRef?: RefObject<HTMLInputElement>;
|
|
7
5
|
}) => React.JSX.Element;
|
|
8
6
|
export default DropdownInput;
|
|
@@ -29,12 +29,6 @@ export interface DropdownContextProps<Item extends BaseItemData<Record<string, u
|
|
|
29
29
|
contextOnOptionRemove?: (option: Item) => void;
|
|
30
30
|
addSelectedItem?: (item: Item) => void;
|
|
31
31
|
removeSelectedItem?: (item: Item) => void;
|
|
32
|
-
getSelectedItemProps?: (options: {
|
|
33
|
-
selectedItem: any;
|
|
34
|
-
index: number;
|
|
35
|
-
}) => Record<string, any>;
|
|
36
32
|
isFocused?: boolean;
|
|
37
|
-
textInput?: boolean;
|
|
38
|
-
interactiveChips?: boolean;
|
|
39
33
|
}
|
|
40
34
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type DropdownGroupOption } from "../Dropdown.types";
|
|
2
2
|
import { type BaseItemData } from "../../BaseItem";
|
|
3
|
-
declare function useDropdownMultiCombobox<T extends BaseItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, selectedItems: T[], setSelectedItems: (items: T[]) => void, isMenuOpen: boolean, autoFocus?: boolean, defaultValue?: T[], value?: T[], inputValueProp?: string, onChange?: (options: T[]) => void, onInputChange?: (value: string | null) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean, id?: string
|
|
3
|
+
declare function useDropdownMultiCombobox<T extends BaseItemData<Record<string, unknown>>>(options: DropdownGroupOption<T>, selectedItems: T[], setSelectedItems: (items: T[]) => void, isMenuOpen: boolean, autoFocus?: boolean, defaultValue?: T[], value?: T[], inputValueProp?: string, onChange?: (options: T[]) => void, onInputChange?: (value: string | null) => void, onMenuOpen?: () => void, onMenuClose?: () => void, onOptionSelect?: (option: T) => void, filterOption?: (option: T, inputValue: string) => boolean, showSelectedOptions?: boolean, id?: string): {
|
|
4
4
|
isOpen: boolean;
|
|
5
5
|
inputValue: string;
|
|
6
6
|
highlightedIndex: number;
|
|
@@ -103,6 +103,12 @@ export interface ModalProps extends VibeComponentProps {
|
|
|
103
103
|
* The z-index to be used for the modal and overlay.
|
|
104
104
|
*/
|
|
105
105
|
zIndex?: number;
|
|
106
|
+
/**
|
|
107
|
+
* When true, the modal uses `position: fixed` for centering, anchoring it to the viewport
|
|
108
|
+
* rather than its portal container. Use this when the modal is portaled into `document.body`
|
|
109
|
+
* and the page has `direction: rtl` — the default `position: relative` centering breaks under RTL.
|
|
110
|
+
*/
|
|
111
|
+
useFixedPosition?: boolean;
|
|
106
112
|
/**
|
|
107
113
|
* If provided, overrides the automatically generated aria-labelledby, that is assigned when used with ModalHeader.
|
|
108
114
|
*/
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import
|
|
1
|
+
import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import n,{useRef as t,useMemo as o,createRef as r}from"react";import i from"../../../Chips/Chips.js";import{Flex as a}from"@vibe/layout/mockedClassNames";import{DialogContentContainer as l,Dialog as s}from"@vibe/dialog/mockedClassNames";import c from"../../../../hooks/useItemsOverflow/useItemsOverflow.js";import d from"./MultiSelectedValues.module.scss.js";import u from"classnames";import m from"../Trigger/DropdownChip.js";function p(p){var f=p.selectedItems,h=p.onRemove,g=p.renderInput,v=p.disabled,C=p.readOnly,b=p.minVisibleCount,w=void 0===b?0:b,y=t(null),E=t(null),N=o((function(){return f.map((function(){return r()}))}),[f]),k=c({containerRef:y,itemRefs:N,gap:4,deductedSpaceRef:E,deductedWidth:g?48:0,minVisibleCount:1===f.length?1:w}),D=k.visibleCount,O=k.hasMeasured,W=o((function(){var e=f.length>D?f.slice(D):[];return{hiddenItems:e,hiddenCount:e.length}}),[f,D]),I=W.hiddenItems,j=W.hiddenCount,M=o((function(){return function(){return n.createElement(l,null,n.createElement(a,{direction:"column",gap:"xs",align:"start",className:d.hiddenChipsDialog},I.map((function(e){return n.createElement(m,{key:"dropdown-chip-dialog-".concat(e.value),item:e,onDelete:function(){return h(e)},className:d.dialogChip,disabled:v,readOnly:C})}))))}}),[I,h,v,C]),P=o((function(){return f.map((function(t,o){var r=D>o;return n.createElement("div",{key:"dropdown-chip-visible-".concat(t.value),ref:N[o],className:u(e(e({},d.chipWrapperWithOverflow,void 0!==w),d.hiddenChip,!r)),"aria-hidden":!r,"data-testid":"dropdown-chip-".concat(t.value)},n.createElement(m,{item:t,onDelete:function(){return h(t)},disabled:v,readOnly:C,className:d.visibleChip}))}))}),[f,D,h,N,v,C,w]);return(null==f?void 0:f.length)?n.createElement(a,{align:"center",wrap:!1,gap:"xs",ref:y,className:u(d.containerWrapper,e(e({},d.singleChip,1===f.length),d.measuring,!O))},P,n.createElement(a,{gap:"xs",className:d.inputAndCounterWrapper},j>0&&n.createElement("div",{ref:E,onClick:function(e){e.stopPropagation()},onKeyDown:function(e){e.stopPropagation()},onMouseDown:function(e){e.stopPropagation()}},n.createElement(s,{content:M,showTrigger:["click","enter"],hideTrigger:["clickoutside","enter"],position:"bottom",moveBy:{main:4},hideWhenReferenceHidden:!0,addKeyboardHideShowTriggersByDefault:!0},n.createElement(i,{label:"+ ".concat(j),readOnly:!0,noMargin:!0,"aria-label":"+".concat(j,". ").concat(f.length-j," items are visible out of ").concat(f.length),"data-testid":"dropdown-overflow-counter",className:d.overflowCounter,onClick:function(){},onMouseDown:function(e){e.preventDefault()}}))),g&&n.createElement("div",{className:d.inputWrapper},g()))):null}export{p as default};
|
|
2
2
|
//# sourceMappingURL=MultiSelectedValues.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectedValues.js","sources":["../../../../../../../src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.tsx"],"sourcesContent":["import React, { useRef, useMemo, createRef } from \"react\";\nimport { type BaseItemData } from \"../../../BaseItem\";\nimport { Chips } from \"../../../Chips\";\nimport { Flex } from \"@vibe/layout\";\nimport { DialogContentContainer, Dialog } from \"@vibe/dialog\";\nimport useItemsOverflow from \"../../../../hooks/useItemsOverflow/useItemsOverflow\";\nimport styles from \"./MultiSelectedValues.module.scss\";\nimport cx from \"classnames\";\nimport DropdownChip from \"../Trigger/DropdownChip\";\n\nconst INPUT_DEDUCTED_WIDTH = 48;\n\ntype MultiSelectedValuesProps<Item> = {\n selectedItems: Item[];\n onRemove: (item: Item) => void;\n renderInput?: () => React.ReactNode;\n disabled?: boolean;\n readOnly?: boolean;\n minVisibleCount?: number;\n /** Extra props (tabIndex, onKeyDown, etc.) to spread on each visible chip container. */\n getChipContainerProps?: (item: Item, index: number) => Record<string, any>;\n /** Ref forwarded to the +N overflow Chips element, for external keyboard focus management. */\n badgeRef?: React.Ref<HTMLDivElement>;\n};\n\nfunction MultiSelectedValues<Item extends BaseItemData<Record<string, unknown>>>({\n selectedItems,\n onRemove,\n renderInput,\n disabled,\n readOnly,\n minVisibleCount = 0,\n getChipContainerProps,\n badgeRef\n}: MultiSelectedValuesProps<Item>) {\n const containerRef = useRef<HTMLDivElement>(null);\n const deductedSpaceRef = useRef<HTMLDivElement>(null);\n\n const itemRefs = useMemo(() => selectedItems.map(() => createRef<HTMLDivElement>()), [selectedItems]);\n\n const { visibleCount, hasMeasured } = useItemsOverflow({\n containerRef,\n itemRefs,\n gap: 4,\n deductedSpaceRef,\n deductedWidth: renderInput ? INPUT_DEDUCTED_WIDTH : 0,\n minVisibleCount: selectedItems.length === 1 ? 1 : minVisibleCount\n });\n\n const { hiddenItems, hiddenCount } = useMemo(() => {\n const hiddenItems = selectedItems.length > visibleCount ? selectedItems.slice(visibleCount) : [];\n return {\n hiddenItems,\n hiddenCount: hiddenItems.length\n };\n }, [selectedItems, visibleCount]);\n\n const dialogContent = useMemo(() => {\n return () => (\n <DialogContentContainer>\n <Flex direction=\"column\" gap=\"xs\" align=\"start\" className={styles.hiddenChipsDialog}>\n {hiddenItems.map(item => {\n return (\n <DropdownChip\n key={`dropdown-chip-dialog-${item.value}`}\n item={item}\n onDelete={() => onRemove(item)}\n className={styles.dialogChip}\n disabled={disabled}\n readOnly={readOnly}\n />\n );\n })}\n </Flex>\n </DialogContentContainer>\n );\n }, [hiddenItems, onRemove, disabled, readOnly]);\n\n const chipElements = useMemo(() => {\n return selectedItems.map((item, index) => {\n const isVisible = index < visibleCount;\n const extraProps = isVisible && getChipContainerProps ? getChipContainerProps(item, index) : {};\n const { ref: extraRef, ...extraAttrs } = extraProps;\n\n return (\n <div\n key={`dropdown-chip-visible-${item.value}`}\n ref={el => {\n (itemRefs[index] as React.MutableRefObject<HTMLDivElement | null>).current = el;\n if (typeof extraRef === \"function\") extraRef(el);\n }}\n className={cx({\n [styles.chipWrapperWithOverflow]: minVisibleCount !== undefined,\n [styles.hiddenChip]: !isVisible\n })}\n aria-hidden={!isVisible}\n data-testid={`dropdown-chip-${item.value}`}\n {...extraAttrs}\n >\n <DropdownChip\n item={item}\n onDelete={() => onRemove(item)}\n disabled={disabled}\n readOnly={readOnly}\n className={styles.visibleChip}\n />\n </div>\n );\n });\n }, [selectedItems, visibleCount, onRemove, itemRefs, disabled, readOnly, minVisibleCount, getChipContainerProps]);\n\n if (!selectedItems?.length) return null;\n\n const isSingleChip = selectedItems.length === 1;\n\n return (\n <Flex\n align=\"center\"\n wrap={false}\n gap=\"xs\"\n ref={containerRef}\n className={cx(styles.containerWrapper, {\n [styles.singleChip]: isSingleChip,\n [styles.measuring]: !hasMeasured\n })}\n >\n {chipElements}\n\n <Flex gap=\"xs\" className={styles.inputAndCounterWrapper}>\n {hiddenCount > 0 && (\n <div\n ref={deductedSpaceRef}\n onClick={e => {\n e.stopPropagation();\n }}\n onKeyDown={e => {\n e.stopPropagation();\n if (e.key === \"ArrowLeft\") {\n e.preventDefault();\n (itemRefs[visibleCount - 1] as React.MutableRefObject<HTMLDivElement | null>)?.current?.focus();\n }\n }}\n onMouseDown={e => {\n e.stopPropagation();\n }}\n >\n <Dialog\n content={dialogContent}\n showTrigger={[\"click\", \"enter\"]}\n hideTrigger={[\"clickoutside\", \"enter\"]}\n position=\"bottom\"\n moveBy={{ main: 4 }}\n hideWhenReferenceHidden\n addKeyboardHideShowTriggersByDefault\n >\n <Chips\n ref={badgeRef}\n label={`+ ${hiddenCount}`}\n readOnly\n noMargin\n aria-label={`+${hiddenCount}. ${selectedItems.length - hiddenCount} items are visible out of ${\n selectedItems.length\n }`}\n data-testid=\"dropdown-overflow-counter\"\n className={styles.overflowCounter}\n onClick={() => {}}\n onMouseDown={e => {\n e.preventDefault();\n }}\n />\n </Dialog>\n </div>\n )}\n {renderInput && <div className={styles.inputWrapper}>{renderInput()}</div>}\n </Flex>\n </Flex>\n );\n}\n\nexport default MultiSelectedValues;\n"],"names":["MultiSelectedValues","_ref","selectedItems","onRemove","renderInput","disabled","readOnly","_ref$minVisibleCount","minVisibleCount","getChipContainerProps","badgeRef","containerRef","useRef","deductedSpaceRef","itemRefs","useMemo","map","createRef","_useItemsOverflow","useItemsOverflow","gap","deductedWidth","length","visibleCount","hasMeasured","_useMemo","hiddenItems","slice","hiddenCount","dialogContent","React","DialogContentContainer","createElement","Flex","direction","align","className","styles","hiddenChipsDialog","item","DropdownChip","key","concat","value","onDelete","dialogChip","chipElements","index","isVisible","extraProps","extraRef","ref","extraAttrs","__rest","Object","assign","el","current","cx","_defineProperty","chipWrapperWithOverflow","undefined","hiddenChip","visibleChip","wrap","containerWrapper","singleChip","measuring","inputAndCounterWrapper","onClick","e","stopPropagation","onKeyDown","preventDefault","_b","_a","focus","onMouseDown","Dialog","content","showTrigger","hideTrigger","position","moveBy","main","hideWhenReferenceHidden","addKeyboardHideShowTriggersByDefault","Chips","label","noMargin","overflowCounter","inputWrapper"],"mappings":"4jBAyBA,SAASA,EAAmBC,GASK,IAR/BC,EAAaD,EAAbC,cACAC,EAAQF,EAARE,SACAC,EAAWH,EAAXG,YACAC,EAAQJ,EAARI,SACAC,EAAQL,EAARK,SAAQC,EAAAN,EACRO,gBAAAA,OAAkB,IAAHD,EAAG,EAACA,EACnBE,EAAqBR,EAArBQ,sBACAC,EAAQT,EAARS,SAEMC,EAAeC,EAAuB,MACtCC,EAAmBD,EAAuB,MAE1CE,EAAWC,GAAQ,WAAA,OAAMb,EAAcc,KAAI,WAAA,OAAMC,SAA8B,CAACf,IAEtFgB,EAAsCC,EAAiB,CACrDR,aAAAA,EACAG,SAAAA,EACAM,IAAK,EACLP,iBAAAA,EACAQ,cAAejB,EAnCU,GAmC2B,EACpDI,gBAA0C,IAAzBN,EAAcoB,OAAe,EAAId,IAN5Ce,EAAYL,EAAZK,aAAcC,EAAWN,EAAXM,YAStBC,EAAqCV,GAAQ,WAC3C,IAAMW,EAAcxB,EAAcoB,OAASC,EAAerB,EAAcyB,MAAMJ,GAAgB,GAC9F,MAAO,CACLG,YAAAA,EACAE,YAAaF,EAAYJ,OAE7B,GAAG,CAACpB,EAAeqB,IANXG,EAAWD,EAAXC,YAAaE,EAAWH,EAAXG,YAQfC,EAAgBd,GAAQ,WAC5B,OAAO,WAAA,OACLe,gBAACC,EAAsB,KACrBD,EAACE,cAAAC,EAAK,CAAAC,UAAU,SAASd,IAAI,KAAKe,MAAM,QAAQC,UAAWC,EAAOC,mBAC/DZ,EAAYV,KAAI,SAAAuB,GACf,OACET,EAACE,cAAAQ,GACCC,4BAAGC,OAA0BH,EAAKI,OAClCJ,KAAMA,EACNK,SAAU,WAAA,OAAMzC,EAASoC,EAAK,EAC9BH,UAAWC,EAAOQ,WAClBxC,SAAUA,EACVC,SAAUA,GAGf,MAIR,GAAE,CAACoB,EAAavB,EAAUE,EAAUC,IAE/BwC,EAAe/B,GAAQ,WAC3B,OAAOb,EAAcc,KAAI,SAACuB,EAAMQ,GAC9B,IAAMC,EAAoBzB,EAARwB,EACZE,EAAaD,GAAavC,EAAwBA,EAAsB8B,EAAMQ,GAAS,GAChFG,EAA4BD,EAAjCE,IAAkBC,EAAeC,EAAAJ,EAAnC,CAAA,QAEN,OACEnB,EAAAE,cAAA,MAAAsB,OAAAC,OAAA,CACEd,6BAAGC,OAA2BH,EAAKI,OACnCQ,IAAK,SAAAK,GACF1C,EAASiC,GAAyDU,QAAUD,EACrD,mBAAbN,GAAyBA,EAASM,EAC9C,EACDpB,UAAWsB,EAAEC,EAAAA,EAAA,CAAA,EACVtB,EAAOuB,6BAA8CC,IAApBrD,GACjC6B,EAAOyB,YAAcd,IACtB,eACYA,EACD,cAAAN,iBAAAA,OAAiBH,EAAKI,QAC/BS,GAEJtB,EAAAE,cAACQ,EAAY,CACXD,KAAMA,EACNK,SAAU,WAAA,OAAMzC,EAASoC,EAAK,EAC9BlC,SAAUA,EACVC,SAAUA,EACV8B,UAAWC,EAAO0B,cAI1B,GACF,GAAG,CAAC7D,EAAeqB,EAAcpB,EAAUW,EAAUT,EAAUC,EAAUE,EAAiBC,IAE1F,OAAKP,aAAA,EAAAA,EAAeoB,QAKlBQ,EAACE,cAAAC,EACC,CAAAE,MAAM,SACN6B,MAAM,EACN5C,IAAI,KACJ+B,IAAKxC,EACLyB,UAAWsB,EAAGrB,EAAO4B,iBAAgBN,EAAAA,EAAA,CAAA,EAClCtB,EAAO6B,WATgC,IAAzBhE,EAAcoB,QAU5Be,EAAO8B,WAAa3C,KAGtBsB,EAEDhB,EAACE,cAAAC,EAAK,CAAAb,IAAI,KAAKgB,UAAWC,EAAO+B,wBAC9BxC,EAAc,GACbE,EACEE,cAAA,MAAA,CAAAmB,IAAKtC,EACLwD,QAAS,SAAAC,GACPA,EAAEC,iBACH,EACDC,UAAW,SAAAF,WACTA,EAAEC,kBACY,cAAVD,EAAE7B,MACJ6B,EAAEG,iBACoF,QAAtFC,EAA6E,QAA5EC,EAAA7D,EAASS,EAAe,UAAoD,IAAAoD,OAAA,EAAAA,EAAElB,eAAO,IAAAiB,GAAAA,EAAEE,QAE3F,EACDC,YAAa,SAAAP,GACXA,EAAEC,iBACJ,GAEAzC,EAAAE,cAAC8C,EACC,CAAAC,QAASlD,EACTmD,YAAa,CAAC,QAAS,SACvBC,YAAa,CAAC,eAAgB,SAC9BC,SAAS,SACTC,OAAQ,CAAEC,KAAM,GAChBC,2BACAC,sCAAoC,GAEpCxD,EAACE,cAAAuD,GACCpC,IAAKzC,EACL8E,MAAK9C,KAAAA,OAAOd,GACZtB,UAAQ,EACRmF,UACY,EAAA,iBAAA/C,OAAId,EAAWc,MAAAA,OAAKxC,EAAcoB,OAASM,EAAWc,8BAAAA,OAChExC,EAAcoB,QACd,cACU,4BACZc,UAAWC,EAAOqD,gBAClBrB,QAAS,WAAQ,EACjBQ,YAAa,SAAAP,GACXA,EAAEG,gBACJ,MAKPrE,GAAe0B,EAAAE,cAAA,MAAA,CAAKI,UAAWC,EAAOsD,cAAevF,OA9DzB,IAkErC"}
|
|
1
|
+
{"version":3,"file":"MultiSelectedValues.js","sources":["../../../../../../../src/components/Dropdown/components/MultiSelectedValues/MultiSelectedValues.tsx"],"sourcesContent":["import React, { useRef, useMemo, createRef } from \"react\";\nimport { type BaseItemData } from \"../../../BaseItem\";\nimport { Chips } from \"../../../Chips\";\nimport { Flex } from \"@vibe/layout\";\nimport { DialogContentContainer, Dialog } from \"@vibe/dialog\";\nimport useItemsOverflow from \"../../../../hooks/useItemsOverflow/useItemsOverflow\";\nimport styles from \"./MultiSelectedValues.module.scss\";\nimport cx from \"classnames\";\nimport DropdownChip from \"../Trigger/DropdownChip\";\n\nconst INPUT_DEDUCTED_WIDTH = 48;\n\ntype MultiSelectedValuesProps<Item> = {\n selectedItems: Item[];\n onRemove: (item: Item) => void;\n renderInput?: () => React.ReactNode;\n disabled?: boolean;\n readOnly?: boolean;\n minVisibleCount?: number;\n};\n\nfunction MultiSelectedValues<Item extends BaseItemData<Record<string, unknown>>>({\n selectedItems,\n onRemove,\n renderInput,\n disabled,\n readOnly,\n minVisibleCount = 0\n}: MultiSelectedValuesProps<Item>) {\n const containerRef = useRef<HTMLDivElement>(null);\n const deductedSpaceRef = useRef<HTMLDivElement>(null);\n\n const itemRefs = useMemo(() => selectedItems.map(() => createRef<HTMLDivElement>()), [selectedItems]);\n\n const { visibleCount, hasMeasured } = useItemsOverflow({\n containerRef,\n itemRefs,\n gap: 4,\n deductedSpaceRef,\n deductedWidth: renderInput ? INPUT_DEDUCTED_WIDTH : 0,\n minVisibleCount: selectedItems.length === 1 ? 1 : minVisibleCount\n });\n\n const { hiddenItems, hiddenCount } = useMemo(() => {\n const hiddenItems = selectedItems.length > visibleCount ? selectedItems.slice(visibleCount) : [];\n return {\n hiddenItems,\n hiddenCount: hiddenItems.length\n };\n }, [selectedItems, visibleCount]);\n\n const dialogContent = useMemo(() => {\n return () => (\n <DialogContentContainer>\n <Flex direction=\"column\" gap=\"xs\" align=\"start\" className={styles.hiddenChipsDialog}>\n {hiddenItems.map(item => {\n return (\n <DropdownChip\n key={`dropdown-chip-dialog-${item.value}`}\n item={item}\n onDelete={() => onRemove(item)}\n className={styles.dialogChip}\n disabled={disabled}\n readOnly={readOnly}\n />\n );\n })}\n </Flex>\n </DialogContentContainer>\n );\n }, [hiddenItems, onRemove, disabled, readOnly]);\n\n const chipElements = useMemo(() => {\n return selectedItems.map((item, index) => {\n const isVisible = index < visibleCount;\n\n return (\n <div\n key={`dropdown-chip-visible-${item.value}`}\n ref={itemRefs[index]}\n className={cx({\n [styles.chipWrapperWithOverflow]: minVisibleCount !== undefined,\n [styles.hiddenChip]: !isVisible\n })}\n aria-hidden={!isVisible}\n data-testid={`dropdown-chip-${item.value}`}\n >\n <DropdownChip\n item={item}\n onDelete={() => onRemove(item)}\n disabled={disabled}\n readOnly={readOnly}\n className={styles.visibleChip}\n />\n </div>\n );\n });\n }, [selectedItems, visibleCount, onRemove, itemRefs, disabled, readOnly, minVisibleCount]);\n\n if (!selectedItems?.length) return null;\n\n const isSingleChip = selectedItems.length === 1;\n\n return (\n <Flex\n align=\"center\"\n wrap={false}\n gap=\"xs\"\n ref={containerRef}\n className={cx(styles.containerWrapper, {\n [styles.singleChip]: isSingleChip,\n [styles.measuring]: !hasMeasured\n })}\n >\n {chipElements}\n\n <Flex gap=\"xs\" className={styles.inputAndCounterWrapper}>\n {hiddenCount > 0 && (\n <div\n ref={deductedSpaceRef}\n onClick={e => {\n e.stopPropagation();\n }}\n onKeyDown={e => {\n e.stopPropagation();\n }}\n onMouseDown={e => {\n e.stopPropagation();\n }}\n >\n <Dialog\n content={dialogContent}\n showTrigger={[\"click\", \"enter\"]}\n hideTrigger={[\"clickoutside\", \"enter\"]}\n position=\"bottom\"\n moveBy={{ main: 4 }}\n hideWhenReferenceHidden\n addKeyboardHideShowTriggersByDefault\n >\n <Chips\n label={`+ ${hiddenCount}`}\n readOnly\n noMargin\n aria-label={`+${hiddenCount}. ${selectedItems.length - hiddenCount} items are visible out of ${\n selectedItems.length\n }`}\n data-testid=\"dropdown-overflow-counter\"\n className={styles.overflowCounter}\n onClick={() => {}}\n onMouseDown={e => {\n e.preventDefault();\n }}\n />\n </Dialog>\n </div>\n )}\n {renderInput && <div className={styles.inputWrapper}>{renderInput()}</div>}\n </Flex>\n </Flex>\n );\n}\n\nexport default MultiSelectedValues;\n"],"names":["MultiSelectedValues","_ref","selectedItems","onRemove","renderInput","disabled","readOnly","_ref$minVisibleCount","minVisibleCount","containerRef","useRef","deductedSpaceRef","itemRefs","useMemo","map","createRef","_useItemsOverflow","useItemsOverflow","gap","deductedWidth","length","visibleCount","hasMeasured","_useMemo","hiddenItems","slice","hiddenCount","dialogContent","React","DialogContentContainer","createElement","Flex","direction","align","className","styles","hiddenChipsDialog","item","DropdownChip","key","concat","value","onDelete","dialogChip","chipElements","index","isVisible","ref","cx","_defineProperty","chipWrapperWithOverflow","undefined","hiddenChip","visibleChip","wrap","containerWrapper","singleChip","measuring","inputAndCounterWrapper","onClick","e","stopPropagation","onKeyDown","onMouseDown","Dialog","content","showTrigger","hideTrigger","position","moveBy","main","hideWhenReferenceHidden","addKeyboardHideShowTriggersByDefault","Chips","label","noMargin","overflowCounter","preventDefault","inputWrapper"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import l,{useRef as t}from"react";import a from"classnames";import{BaseInput as r}from"@vibe/base/mockedClassNames";import o from"./Trigger.module.scss.js";import{useDropdownContext as s}from"../../context/DropdownContext.js";import{Text as i}from"@vibe/typography/mockedClassNames";var
|
|
1
|
+
import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import l,{useRef as t}from"react";import a from"classnames";import{BaseInput as r}from"@vibe/base/mockedClassNames";import o from"./Trigger.module.scss.js";import{useDropdownContext as s}from"../../context/DropdownContext.js";import{Text as i}from"@vibe/typography/mockedClassNames";var m=function(m){var n,d=m.inputSize,p=m.fullWidth,c=s(),u=c.inputValue,b=c.autoFocus,f=c.disabled,g=c.readOnly,v=c.placeholder,h=c.multi,y=c.selectedItem,x=c.selectedItems,j=void 0===x?[]:x,O=c.inputAriaLabel,P=c.searchable,E=c.size,F=c.label,N=c.isOpen,z=c.getDropdownProps,C=c.getLabelProps,I=c.getInputProps,S=t(null),W=h?j.length>0:!!y,k=z?z({preventKeyAction:N}):{};return l.createElement(l.Fragment,null,P?l.createElement(r,Object.assign({},I(Object.assign({"aria-labelledby":F?C().id:void 0,"aria-label":O||(F||null===(n=C())||void 0===n?void 0:n.id),placeholder:W?"":v,ref:S},k)),{inputRole:"combobox",value:u||"",autoFocus:b,size:d||E,className:a(o.inputWrapper,e(e(e(e(e({},o.hasSelected,!h&&y&&!u),o.small,"small"===d),o.multi,h&&W),o.multiSelected,h&&W&&"small"===d),o.fullWidth,p)),disabled:f,readOnly:g})):l.createElement(l.Fragment,null,!W&&v&&l.createElement(i,{color:"secondary",className:a(o.placeholderText,e({},o.disabled,!!f)),type:"small"===E?"text2":"text1"},v)))};export{m as default};
|
|
2
2
|
//# sourceMappingURL=DropdownInput.js.map
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/DropdownInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownInput.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/DropdownInput.tsx"],"sourcesContent":["import React, { useRef
|
|
1
|
+
{"version":3,"file":"DropdownInput.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/DropdownInput.tsx"],"sourcesContent":["import React, { useRef } from \"react\";\nimport cx from \"classnames\";\nimport { BaseInput } from \"@vibe/base\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseItemData } from \"../../../BaseItem\";\nimport { Text } from \"@vibe/typography\";\n\nconst DropdownInput = ({ inputSize, fullWidth }: { inputSize?: \"small\" | \"medium\" | \"large\"; fullWidth?: boolean }) => {\n const {\n inputValue,\n autoFocus,\n disabled,\n readOnly,\n placeholder,\n multi,\n selectedItem,\n selectedItems = [],\n inputAriaLabel,\n searchable,\n size,\n label,\n isOpen,\n getDropdownProps,\n getLabelProps,\n getInputProps\n } = useDropdownContext<BaseItemData>();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const hasSelection = multi ? selectedItems.length > 0 : !!selectedItem;\n const multipleSelectionDropdownProps = getDropdownProps ? getDropdownProps({ preventKeyAction: isOpen }) : {};\n\n return (\n <>\n {searchable ? (\n <BaseInput\n {...getInputProps({\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": inputAriaLabel || (label ? undefined : getLabelProps()?.id),\n placeholder: hasSelection ? \"\" : placeholder,\n ref: inputRef,\n ...multipleSelectionDropdownProps\n })}\n inputRole=\"combobox\"\n value={inputValue || \"\"}\n autoFocus={autoFocus}\n size={inputSize || size}\n className={cx(styles.inputWrapper, {\n [styles.hasSelected]: !multi && selectedItem && !inputValue,\n [styles.small]: inputSize === \"small\",\n [styles.multi]: multi && hasSelection,\n [styles.multiSelected]: multi && hasSelection && inputSize === \"small\",\n [styles.fullWidth]: fullWidth\n })}\n disabled={disabled}\n readOnly={readOnly}\n />\n ) : (\n <>\n {!hasSelection && placeholder && (\n <Text\n color=\"secondary\"\n className={cx(styles.placeholderText, {\n [styles.disabled]: !!disabled\n })}\n type={size === \"small\" ? \"text2\" : \"text1\"}\n >\n {placeholder}\n </Text>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default DropdownInput;\n"],"names":["DropdownInput","_ref","inputSize","fullWidth","_useDropdownContext","useDropdownContext","inputValue","autoFocus","disabled","readOnly","placeholder","multi","selectedItem","_useDropdownContext$s","selectedItems","inputAriaLabel","searchable","size","label","isOpen","getDropdownProps","getLabelProps","getInputProps","inputRef","useRef","hasSelection","length","multipleSelectionDropdownProps","preventKeyAction","React","BaseInput","Object","assign","id","undefined","ref","inputRole","value","className","cx","styles","inputWrapper","_defineProperty","hasSelected","small","multiSelected","createElement","Text","color","placeholderText","type"],"mappings":"iXAQA,IAAMA,EAAgB,SAAHC,GAAmG,MAA7FC,EAASD,EAATC,UAAWC,EAASF,EAATE,UAClCC,EAiBIC,IAhBFC,EAAUF,EAAVE,WACAC,EAASH,EAATG,UACAC,EAAQJ,EAARI,SACAC,EAAQL,EAARK,SACAC,EAAWN,EAAXM,YACAC,EAAKP,EAALO,MACAC,EAAYR,EAAZQ,aAAYC,EAAAT,EACZU,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAcX,EAAdW,eACAC,EAAUZ,EAAVY,WACAC,EAAIb,EAAJa,KACAC,EAAKd,EAALc,MACAC,EAAMf,EAANe,OACAC,EAAgBhB,EAAhBgB,iBACAC,EAAajB,EAAbiB,cACAC,EAAalB,EAAbkB,cAGIC,EAAWC,EAAyB,MACpCC,EAAed,EAAQG,EAAcY,OAAS,IAAMd,EACpDe,EAAiCP,EAAmBA,EAAiB,CAAEQ,iBAAkBT,IAAY,CAAA,EAE3G,OACEU,gCACGb,EACCa,gBAACC,EAASC,OAAAC,OAAA,CAAA,EACJV,EACFS,OAAAC,OAAA,CAAA,kBAAmBd,EAAQG,IAAgBY,QAAKC,EAChD,aAAcnB,IAAmBG,aAAoBG,sBAAZa,IAA6BD,IACtEvB,YAAae,EAAe,GAAKf,EACjCyB,IAAKZ,GACFI,IAEL,CAAAS,UAAU,WACVC,MAAO/B,GAAc,GACrBC,UAAWA,EACXU,KAAMf,GAAae,EACnBqB,UAAWC,EAAGC,EAAOC,aAAYC,EAAAA,EAAAA,EAAAA,EAAAA,EAC9BF,CAAAA,EAAAA,EAAOG,aAAehC,GAASC,IAAiBN,GAChDkC,EAAOI,MAAsB,UAAd1C,GACfsC,EAAO7B,MAAQA,GAASc,GACxBe,EAAOK,cAAgBlC,GAASc,GAA8B,UAAdvB,GAChDsC,EAAOrC,UAAYA,IAEtBK,SAAUA,EACVC,SAAUA,KAGZoB,iCACIJ,GAAgBf,GAChBmB,EAAAiB,cAACC,EAAI,CACHC,MAAM,YACNV,UAAWC,EAAGC,EAAOS,gBAAeP,EACjCF,GAAAA,EAAOhC,WAAaA,IAEvB0C,KAAe,UAATjC,EAAmB,QAAU,SAElCP,IAOf"}
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e
|
|
1
|
+
import e from"react";import{Flex as t}from"@vibe/layout/mockedClassNames";import r from"../MultiSelectedValues/MultiSelectedValues.js";import l from"./DropdownInput.js";import{useDropdownContext as i}from"../../context/DropdownContext.js";import a from"./TriggerActions.js";import n from"./Trigger.module.scss.js";import{getStyle as o}from"@vibe/shared";import m from"classnames";import s from"./DropdownChip.js";var d=function(){var d,u=i(),c=u.selectedItems,p=void 0===c?[]:c,v=u.contextOnOptionRemove,f=u.multiline,b=u.disabled,g=u.readOnly,E=u.error,y=u.searchable,h=u.getToggleButtonProps,j=u.label,x=u.getLabelProps,O=u["aria-label"],w=u.minVisibleCount;return e.createElement(t,{justify:"space-between",align:"center"},e.createElement("div",Object.assign({className:m(n.triggerWrapper,o(n,u.size))},y?{}:h({"aria-haspopup":"dialog","aria-labelledby":j?x().id:void 0,"aria-label":O||(j||null===(d=x())||void 0===d?void 0:d.id),"aria-disabled":b?"true":void 0,"aria-invalid":E?"true":void 0,"aria-readonly":g?"true":void 0})),p.length>0?e.createElement("div",{className:n.multiWrapper},f?e.createElement(t,{gap:"xs",wrap:!0},p.map((function(r,i){var a,n;return e.createElement(t,{key:(null!==(n=null!==(a=r.id)&&void 0!==a?a:r.value)&&void 0!==n?n:i)+""},e.createElement("div",{style:{flexShrink:0}},e.createElement(s,{item:r,onDelete:function(){null==v||v(r)},readOnly:g,disabled:b})),i===p.length-1&&e.createElement(l,{inputSize:"small"}))}))):e.createElement(r,{disabled:b,readOnly:g,selectedItems:p,onRemove:function(e){null==v||v(e)},renderInput:y?function(){return e.createElement(l,{inputSize:"small",fullWidth:!0})}:void 0,minVisibleCount:w})):e.createElement(l,null)),e.createElement(a,null))};export{d as default};
|
|
2
2
|
//# sourceMappingURL=MultiSelectTrigger.js.map
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/MultiSelectTrigger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelectTrigger.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/MultiSelectTrigger.tsx"],"sourcesContent":["import React
|
|
1
|
+
{"version":3,"file":"MultiSelectTrigger.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/MultiSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport { Flex } from \"@vibe/layout\";\nimport MultiSelectedValues from \"../MultiSelectedValues/MultiSelectedValues\";\nimport DropdownInput from \"./DropdownInput\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { type BaseItemData } from \"../../../BaseItem\";\nimport TriggerActions from \"./TriggerActions\";\nimport styles from \"./Trigger.module.scss\";\nimport { getStyle } from \"@vibe/shared\";\nimport cx from \"classnames\";\nimport DropdownChip from \"./DropdownChip\";\n\nconst MultiSelectTrigger = () => {\n const {\n selectedItems = [],\n contextOnOptionRemove,\n multiline,\n disabled,\n readOnly,\n error,\n size,\n searchable,\n getToggleButtonProps,\n label,\n getLabelProps,\n \"aria-label\": ariaLabel,\n minVisibleCount\n } = useDropdownContext<BaseItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id),\n \"aria-disabled\": disabled ? \"true\" : undefined,\n \"aria-invalid\": error ? \"true\" : undefined,\n \"aria-readonly\": readOnly ? \"true\" : undefined\n })\n : {})}\n >\n {selectedItems.length > 0 ? (\n <div className={styles.multiWrapper}>\n {!multiline ? (\n <MultiSelectedValues\n disabled={disabled}\n readOnly={readOnly}\n selectedItems={selectedItems}\n onRemove={item => {\n contextOnOptionRemove?.(item);\n }}\n renderInput={searchable ? () => <DropdownInput inputSize=\"small\" fullWidth /> : undefined}\n minVisibleCount={minVisibleCount}\n />\n ) : (\n <Flex gap=\"xs\" wrap>\n {selectedItems.map((item, index) => (\n <Flex key={String(item.id ?? item.value ?? index)}>\n <div style={{ flexShrink: 0 }}>\n <DropdownChip\n item={item}\n onDelete={() => {\n contextOnOptionRemove?.(item);\n }}\n readOnly={readOnly}\n disabled={disabled}\n />\n </div>\n {index === selectedItems.length - 1 && <DropdownInput inputSize=\"small\" />}\n </Flex>\n ))}\n </Flex>\n )}\n </div>\n ) : (\n <DropdownInput />\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default MultiSelectTrigger;\n"],"names":["MultiSelectTrigger","_useDropdownContext","useDropdownContext","_useDropdownContext$s","selectedItems","contextOnOptionRemove","multiline","disabled","readOnly","error","searchable","getToggleButtonProps","label","getLabelProps","ariaLabel","minVisibleCount","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","size","id","undefined","_a","length","multiWrapper","gap","wrap","map","item","index","key","_b","value","String","style","flexShrink","DropdownChip","onDelete","DropdownInput","inputSize","MultiSelectedValues","onRemove","renderInput","fullWidth","TriggerActions"],"mappings":"6ZAYA,IAAMA,EAAqB,iBACzBC,EAcIC,IAAkCC,EAAAF,EAbpCG,cAAAA,OAAgB,IAAHD,EAAG,GAAEA,EAClBE,EAAqBJ,EAArBI,sBACAC,EAASL,EAATK,UACAC,EAAQN,EAARM,SACAC,EAAQP,EAARO,SACAC,EAAKR,EAALQ,MAEAC,EAAUT,EAAVS,WACAC,EAAoBV,EAApBU,qBACAC,EAAKX,EAALW,MACAC,EAAaZ,EAAbY,cACcC,EAASb,EAAvB,cACAc,EAAed,EAAfc,gBAGF,OACEC,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAZ9CxB,EAAJ2B,QAaUlB,EASF,CAAA,EARAC,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBC,EAAQC,IAAgBgB,QAAKC,EAChD,aAAchB,IAAcF,GAAmC,QAAfmB,EAAAlB,WAAe,IAAAkB,OAA3BD,EAA2BC,EAAEF,IACjE,gBAAiBtB,EAAW,YAASuB,EACrC,eAAgBrB,EAAQ,YAASqB,EACjC,gBAAiBtB,EAAW,YAASsB,KAI1C1B,EAAc4B,OAAS,EACtBhB,uBAAKO,UAAWE,EAAOQ,cACnB3B,EAYAU,EAACC,cAAAC,EAAK,CAAAgB,IAAI,KAAKC,MAAI,GAChB/B,EAAcgC,KAAI,SAACC,EAAMC,WAAU,OAClCtB,EAACC,cAAAC,GAAKqB,KAAiC,QAArBC,EAAW,UAAXH,EAAKR,UAAM,IAAAE,EAAAA,EAAAM,EAAKI,aAAK,IAAAD,EAAAA,EAAIF,GAAhCI,IACT1B,EAAAC,cAAA,MAAA,CAAK0B,MAAO,CAAEC,WAAY,IACxB5B,EAACC,cAAA4B,GACCR,KAAMA,EACNS,SAAU,WACRzC,SAAAA,EAAwBgC,EACzB,EACD7B,SAAUA,EACVD,SAAUA,KAGb+B,IAAUlC,EAAc4B,OAAS,GAAKhB,EAAAC,cAAC8B,EAAa,CAACC,UAAU,UAEnE,KA1BHhC,EAACC,cAAAgC,GACC1C,SAAUA,EACVC,SAAUA,EACVJ,cAAeA,EACf8C,SAAU,SAAAb,GACRhC,SAAAA,EAAwBgC,EACzB,EACDc,YAAazC,EAAa,WAAA,OAAMM,EAAAC,cAAC8B,EAAc,CAAAC,UAAU,QAAQI,cAAY,OAAGtB,EAChFf,gBAAiBA,KAuBvBC,EAACC,cAAA8B,EAAgB,OAGrB/B,EAAAC,cAACoC,EAAc,MAGrB"}
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"react";import
|
|
1
|
+
import{defineProperty as e}from"../../../../../_virtual/_rollupPluginBabelHelpers.js";import r from"react";import t from"classnames";import a from"../../../BaseItem/BaseItem.js";import i from"./DropdownInput.js";import l from"./Trigger.module.scss.js";import{useDropdownContext as o}from"../../context/DropdownContext.js";import{Flex as s}from"@vibe/layout/mockedClassNames";import n from"./TriggerActions.js";import{getStyle as m}from"@vibe/shared";var d=function(){var d,p,c=o(),u=c.inputValue,v=c.selectedItem,b=c.searchable,g=c.size,f=c.valueRenderer,j=c.isFocused,E=c.getToggleButtonProps,y=c.disabled,I=c.readOnly,O=c.error,B=c.label,P=c.getLabelProps,h=c["aria-label"];return r.createElement(s,{justify:"space-between",align:"center"},r.createElement("div",Object.assign({className:t(l.triggerWrapper,m(l,g))},b?{}:E({"aria-haspopup":"dialog","aria-labelledby":B?P().id:void 0,"aria-label":h||(B||null===(d=P())||void 0===d?void 0:d.id),"aria-disabled":y?"true":void 0,"aria-invalid":O?"true":void 0,"aria-readonly":I?"true":void 0})),r.createElement(i,null),!u&&v&&r.createElement("div",{className:t(l.selectedItem,e({},l.faded,j&&b),m(l,g))},r.createElement(a,{component:"div",itemRenderer:f,size:g,readOnly:!0,item:Object.assign(Object.assign({},v),{disabled:y,startElement:"indent"===(null===(p=v.startElement)||void 0===p?void 0:p.type)?void 0:v.startElement})}))),r.createElement(n,null))};export{d as default};
|
|
2
2
|
//# sourceMappingURL=SingleSelectTrigger.js.map
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/SingleSelectTrigger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SingleSelectTrigger.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/SingleSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { BaseItem, type BaseItemData } from \"../../../BaseItem\";\nimport DropdownInput from \"./DropdownInput\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { Flex } from \"@vibe/layout\";\nimport TriggerActions from \"./TriggerActions\";\nimport { getStyle } from \"@vibe/shared\";\n\nconst SingleSelectTrigger = () => {\n const {\n selectedItem,\n searchable,\n size,\n valueRenderer,\n getToggleButtonProps,\n disabled,\n readOnly,\n error,\n label,\n getLabelProps,\n \"aria-label\": ariaLabel\n } = useDropdownContext<BaseItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id),\n \"aria-disabled\": disabled ? \"true\" : undefined,\n \"aria-invalid\": error ? \"true\" : undefined,\n \"aria-readonly\": readOnly ? \"true\" : undefined\n })\n : {})}\n >\n <DropdownInput />\n\n {
|
|
1
|
+
{"version":3,"file":"SingleSelectTrigger.js","sources":["../../../../../../../src/components/Dropdown/components/Trigger/SingleSelectTrigger.tsx"],"sourcesContent":["import React from \"react\";\nimport cx from \"classnames\";\nimport { BaseItem, type BaseItemData } from \"../../../BaseItem\";\nimport DropdownInput from \"./DropdownInput\";\nimport styles from \"./Trigger.module.scss\";\nimport { useDropdownContext } from \"../../context/DropdownContext\";\nimport { Flex } from \"@vibe/layout\";\nimport TriggerActions from \"./TriggerActions\";\nimport { getStyle } from \"@vibe/shared\";\n\nconst SingleSelectTrigger = () => {\n const {\n inputValue,\n selectedItem,\n searchable,\n size,\n valueRenderer,\n isFocused,\n getToggleButtonProps,\n disabled,\n readOnly,\n error,\n label,\n getLabelProps,\n \"aria-label\": ariaLabel\n } = useDropdownContext<BaseItemData>();\n\n return (\n <Flex justify=\"space-between\" align=\"center\">\n <div\n className={cx(styles.triggerWrapper, getStyle(styles, size))}\n {...(!searchable\n ? getToggleButtonProps({\n \"aria-haspopup\": \"dialog\",\n \"aria-labelledby\": label ? getLabelProps().id : undefined,\n \"aria-label\": ariaLabel || (label ? undefined : getLabelProps()?.id),\n \"aria-disabled\": disabled ? \"true\" : undefined,\n \"aria-invalid\": error ? \"true\" : undefined,\n \"aria-readonly\": readOnly ? \"true\" : undefined\n })\n : {})}\n >\n <DropdownInput />\n\n {!inputValue && selectedItem && (\n <div\n className={cx(\n styles.selectedItem,\n {\n [styles.faded]: isFocused && searchable\n },\n getStyle(styles, size)\n )}\n >\n <BaseItem\n component=\"div\"\n itemRenderer={valueRenderer}\n size={size}\n readOnly\n item={{\n ...selectedItem,\n disabled,\n startElement: selectedItem.startElement?.type === \"indent\" ? undefined : selectedItem.startElement\n }}\n />\n </div>\n )}\n </div>\n <TriggerActions />\n </Flex>\n );\n};\n\nexport default SingleSelectTrigger;\n"],"names":["SingleSelectTrigger","_useDropdownContext","useDropdownContext","inputValue","selectedItem","searchable","size","valueRenderer","isFocused","getToggleButtonProps","disabled","readOnly","error","label","getLabelProps","ariaLabel","React","createElement","Flex","justify","align","Object","assign","className","cx","styles","triggerWrapper","getStyle","id","undefined","_a","DropdownInput","_defineProperty","faded","BaseItem","component","itemRenderer","item","startElement","_b","type","TriggerActions"],"mappings":"kcAUA,IAAMA,EAAsB,mBAC1BC,EAcIC,IAbFC,EAAUF,EAAVE,WACAC,EAAYH,EAAZG,aACAC,EAAUJ,EAAVI,WACAC,EAAIL,EAAJK,KACAC,EAAaN,EAAbM,cACAC,EAASP,EAATO,UACAC,EAAoBR,EAApBQ,qBACAC,EAAQT,EAARS,SACAC,EAAQV,EAARU,SACAC,EAAKX,EAALW,MACAC,EAAKZ,EAALY,MACAC,EAAab,EAAba,cACcC,EAASd,EAAvB,cAGF,OACEe,EAACC,cAAAC,EAAK,CAAAC,QAAQ,gBAAgBC,MAAM,UAClCJ,EAAAC,cAAA,MAAAI,OAAAC,OAAA,CACEC,UAAWC,EAAGC,EAAOC,eAAgBC,EAASF,EAAQnB,KAChDD,EASF,CAAA,EARAI,EAAqB,CACnB,gBAAiB,SACjB,kBAAmBI,EAAQC,IAAgBc,QAAKC,EAChD,aAAcd,IAAcF,GAAmC,QAAfiB,EAAAhB,WAAe,IAAAgB,OAA3BD,EAA2BC,EAAEF,IACjE,gBAAiBlB,EAAW,YAASmB,EACrC,eAAgBjB,EAAQ,YAASiB,EACjC,gBAAiBlB,EAAW,YAASkB,KAI3Cb,EAAAC,cAACc,EAAgB,OAEf5B,GAAcC,GACdY,EAAAC,cAAA,MAAA,CACEM,UAAWC,EACTC,EAAOrB,aAAY4B,EAAA,CAAA,EAEhBP,EAAOQ,MAAQzB,GAAaH,GAE/BsB,EAASF,EAAQnB,KAGnBU,EAACC,cAAAiB,GACCC,UAAU,MACVC,aAAc7B,EACdD,KAAMA,EACNK,UAAQ,EACR0B,KACKhB,OAAAC,OAAAD,OAAAC,OAAA,CAAA,EAAAlB,GACH,CAAAM,SAAAA,EACA4B,aAAkD,oBAApCC,EAAAnC,EAAakC,mCAAcE,WAAoBX,EAAYzB,EAAakC,mBAMhGtB,EAAAC,cAACwB,EAAc,MAGrB"}
|
package/dist/mocked_classnames/src/components/Dropdown/components/Trigger/Trigger.module.scss.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e={triggerWrapper:"triggerWrapper",small:"small",placeholderText:"placeholderText",medium:"medium",large:"large",inputWrapper:"inputWrapper",multiSelected:"multiSelected",fullWidth:"fullWidth",selectedItem:"selectedItem",disabled:"disabled",multiWrapper:"multiWrapper",actionsWrapper:"actionsWrapper"};!function(e){const n="s_id-
|
|
1
|
+
var e={triggerWrapper:"triggerWrapper",small:"small",placeholderText:"placeholderText",medium:"medium",large:"large",inputWrapper:"inputWrapper",multiSelected:"multiSelected",fullWidth:"fullWidth",hasSelected:"hasSelected",selectedItem:"selectedItem",faded:"faded",disabled:"disabled",multiWrapper:"multiWrapper",actionsWrapper:"actionsWrapper"};!function(e){const n="s_id-ac180f0c654f_4_3_0";if("undefined"!=typeof document){const r=document.head||document.getElementsByTagName("head")[0];if(r.querySelector("#"+n))return;const t=document.createElement("style");t.id=n,r.firstChild?r.insertBefore(t,r.firstChild):r.appendChild(t),t.appendChild(document.createTextNode(e))}else globalThis.injectedStyles&&(globalThis.injectedStyles[n]=e)}("/* stylelint-disable */\n/* stylelint-enable */\n.triggerWrapper {\n flex-grow: 1;\n position: relative;\n min-width: 1px;\n display: flex;\n align-items: center;\n cursor: pointer;\n outline: none;\n}\n.triggerWrapper.small {\n min-height: 32px;\n}\n.triggerWrapper.small .placeholderText {\n padding-inline-start: var(--space-8);\n}\n.triggerWrapper.medium {\n min-height: 40px;\n}\n.triggerWrapper.large {\n min-height: 48px;\n}\n.triggerWrapper .inputWrapper {\n border: none;\n width: 100%;\n background: transparent;\n}\n.triggerWrapper .inputWrapper.small {\n height: 24px;\n min-height: 24px;\n}\n.triggerWrapper .inputWrapper.multiSelected {\n width: 48px;\n flex-shrink: 0;\n padding: 0 var(--space-4);\n}\n.triggerWrapper .inputWrapper.multiSelected.fullWidth {\n width: 100%;\n flex-grow: 1;\n}\n.triggerWrapper .inputWrapper.hasSelected {\n position: absolute;\n inset: 0;\n cursor: pointer;\n}\n.triggerWrapper .selectedItem {\n position: relative;\n pointer-events: none;\n inset: 0;\n padding-inline-start: 0;\n width: 100%;\n -webkit-font-smoothing: var(--font-smoothing-webkit);\n -moz-osx-font-smoothing: var(--font-smoothing-moz);\n}\n.triggerWrapper .selectedItem.small {\n min-height: 32px;\n height: 32px;\n}\n.triggerWrapper .selectedItem.medium {\n min-height: 40px;\n height: 40px;\n}\n.triggerWrapper .selectedItem.large {\n min-height: 48px;\n height: 48px;\n}\n.triggerWrapper .selectedItem.faded {\n opacity: 0.6;\n}\n.triggerWrapper .placeholderText {\n padding-inline-start: var(--space-12);\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n cursor: pointer;\n color: var(--placeholder-color);\n -webkit-font-smoothing: var(--font-smoothing-webkit);\n -moz-osx-font-smoothing: var(--font-smoothing-moz);\n}\n.triggerWrapper .placeholderText.disabled {\n color: var(--disabled-text-color);\n}\n.multiWrapper {\n padding: var(--space-4) 0 var(--space-4) var(--space-8);\n width: 100%;\n}\n.actionsWrapper {\n padding: 0 var(--space-4);\n}");export{e as default};
|
|
2
2
|
//# sourceMappingURL=Trigger.module.scss.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useRef as t,useMemo as l,useCallback as u}from"react";import{useCombobox as i}from"downshift";import
|
|
1
|
+
import{slicedToArray as e}from"../../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as n,useRef as t,useMemo as l,useCallback as u}from"react";import{useCombobox as i}from"downshift";import s from"./useDropdownFiltering.js";function o(o,r,a,p,g,c,d,f,h,m,I,v,O,b,C){var y=n(g||null),P=e(y,2),T=P[0],M=P[1],j=t(null),V=void 0!==c?c:T,w=l((function(){return V?[V]:[]}),[V]),B=s(o,O,b,w),D=B.filteredOptions,S=B.filterOptions,x=l((function(){return D.flatMap((function(e){return e.options}))}),[D]),K=i({items:x,itemToString:function(e){var n;return null!==(n=null==e?void 0:e.label)&&void 0!==n?n:""},itemToKey:function(e){return void 0!==(null==e?void 0:e.value)?e.value+"":""},isItemDisabled:function(e){return!!e.disabled},initialInputValue:d||"",selectedItem:V,isOpen:r,initialIsOpen:a,id:C,onIsOpenChange:function(e){e.isOpen?null==I||I():null==m||m()},onInputValueChange:u((function(e){var n=e.inputValue;S(n||""),null==h||h(n)}),[h,S]),onSelectedItemChange:u((function(e){var n=e.selectedItem;void 0===c&&M(n||null),n?(null==v||v(n),null==f||f(n),S("")):(null==f||f(null),S(""))}),[c,v,S,f]),onStateChange:u((function(e){var n,t=e.type;!p||t!==i.stateChangeTypes.ItemClick&&t!==i.stateChangeTypes.InputKeyDownEnter||null===(n=j.current)||void 0===n||n.blur()}),[p]),stateReducer:function(e,n){switch(n.type){case i.stateChangeTypes.InputKeyDownEnter:case i.stateChangeTypes.ItemClick:return Object.assign(Object.assign({},n.changes),{inputValue:null,isOpen:!p});case i.stateChangeTypes.InputBlur:case i.stateChangeTypes.ControlledPropUpdatedSelectedItem:return Object.assign(Object.assign({},n.changes),{inputValue:null});default:return n.changes}}}),k=K.getInputProps,E=K.reset;return{isOpen:K.isOpen,inputValue:K.inputValue,highlightedIndex:K.highlightedIndex,selectedItem:V,getToggleButtonProps:K.getToggleButtonProps,getLabelProps:K.getLabelProps,getMenuProps:K.getMenuProps,getInputProps:function(e){return k(Object.assign(Object.assign({},e),{ref:j}))},getItemProps:K.getItemProps,reset:function(){void 0===c&&M(null),E(),S("")},filteredOptions:D,openMenu:K.openMenu,toggleMenu:K.toggleMenu,closeMenu:K.closeMenu}}export{o as default};
|
|
2
2
|
//# sourceMappingURL=useDropdownCombobox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDropdownCombobox.js","sources":["../../../../../../src/components/Dropdown/hooks/useDropdownCombobox.ts"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from \"react\";\nimport { useCombobox } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { type BaseItemData } from \"../../BaseItem\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownCombobox<T extends BaseItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n isMenuOpen?: boolean,\n autoFocus?: boolean,\n closeMenuOnSelect?: boolean,\n defaultValue?: T,\n value?: T,\n inputValueProp?: string,\n onChange?: (option: T | T[] | null) => void,\n onInputChange?: (value: string | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean,\n id?: string\n) {\n const [currentSelectedItem, setCurrentSelectedItem] = useState<T | null>(defaultValue || null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n // Use controlled value if provided, otherwise use internal state\n const selectedItem = value !== undefined ? value : currentSelectedItem;\n\n const memoizedSelectedItemForFiltering = useMemo(() => {\n return selectedItem ? [selectedItem] : [];\n }, [selectedItem]);\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n memoizedSelectedItemForFiltering\n );\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n itemToKey: item => (item?.value !== undefined ? String(item.value) : \"\"),\n isItemDisabled: item => Boolean(item.disabled),\n
|
|
1
|
+
{"version":3,"file":"useDropdownCombobox.js","sources":["../../../../../../src/components/Dropdown/hooks/useDropdownCombobox.ts"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from \"react\";\nimport { useCombobox } from \"downshift\";\nimport useDropdownFiltering from \"./useDropdownFiltering\";\nimport { type BaseItemData } from \"../../BaseItem\";\nimport { type DropdownGroupOption } from \"../Dropdown.types\";\n\nfunction useDropdownCombobox<T extends BaseItemData<Record<string, unknown>>>(\n options: DropdownGroupOption<T>,\n isMenuOpen?: boolean,\n autoFocus?: boolean,\n closeMenuOnSelect?: boolean,\n defaultValue?: T,\n value?: T,\n inputValueProp?: string,\n onChange?: (option: T | T[] | null) => void,\n onInputChange?: (value: string | null) => void,\n onMenuOpen?: () => void,\n onMenuClose?: () => void,\n onOptionSelect?: (option: T) => void,\n filterOption?: (option: T, inputValue: string) => boolean,\n showSelectedOptions?: boolean,\n id?: string\n) {\n const [currentSelectedItem, setCurrentSelectedItem] = useState<T | null>(defaultValue || null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n // Use controlled value if provided, otherwise use internal state\n const selectedItem = value !== undefined ? value : currentSelectedItem;\n\n const memoizedSelectedItemForFiltering = useMemo(() => {\n return selectedItem ? [selectedItem] : [];\n }, [selectedItem]);\n\n const { filteredOptions, filterOptions } = useDropdownFiltering<T>(\n options,\n filterOption,\n showSelectedOptions,\n memoizedSelectedItemForFiltering\n );\n\n const flatOptions = useMemo(() => filteredOptions.flatMap(group => group.options), [filteredOptions]);\n const {\n isOpen,\n inputValue,\n highlightedIndex,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps,\n getItemProps,\n reset,\n openMenu,\n toggleMenu,\n closeMenu\n } = useCombobox<T>({\n items: flatOptions,\n itemToString: item => item?.label ?? \"\",\n itemToKey: item => (item?.value !== undefined ? String(item.value) : \"\"),\n isItemDisabled: item => Boolean(item.disabled),\n initialInputValue: inputValueProp || \"\",\n selectedItem: selectedItem,\n isOpen: isMenuOpen,\n initialIsOpen: autoFocus,\n id,\n onIsOpenChange: ({ isOpen }) => {\n isOpen ? onMenuClose?.() : onMenuOpen?.();\n },\n\n onInputValueChange: useCallback(\n ({ inputValue }) => {\n filterOptions(inputValue || \"\");\n onInputChange?.(inputValue);\n },\n [onInputChange, filterOptions]\n ),\n onSelectedItemChange: useCallback(\n ({ selectedItem }) => {\n if (value === undefined) {\n setCurrentSelectedItem(selectedItem || null);\n }\n if (selectedItem) {\n onOptionSelect?.(selectedItem);\n onChange?.(selectedItem);\n filterOptions(\"\");\n } else {\n onChange?.(null);\n filterOptions(\"\");\n }\n },\n [value, onOptionSelect, filterOptions, onChange]\n ),\n onStateChange: useCallback(\n ({ type }) => {\n // Blur input after selection via click or Enter key\n if (\n closeMenuOnSelect &&\n (type === useCombobox.stateChangeTypes.ItemClick || type === useCombobox.stateChangeTypes.InputKeyDownEnter)\n ) {\n inputRef.current?.blur();\n }\n },\n [closeMenuOnSelect]\n ),\n stateReducer: (state, actionAndChanges) => {\n switch (actionAndChanges.type) {\n case useCombobox.stateChangeTypes.InputKeyDownEnter:\n case useCombobox.stateChangeTypes.ItemClick:\n return { ...actionAndChanges.changes, inputValue: null, isOpen: !closeMenuOnSelect };\n case useCombobox.stateChangeTypes.InputBlur:\n case useCombobox.stateChangeTypes.ControlledPropUpdatedSelectedItem:\n return { ...actionAndChanges.changes, inputValue: null };\n\n default:\n return actionAndChanges.changes;\n }\n }\n });\n\n return {\n isOpen,\n inputValue,\n highlightedIndex,\n selectedItem,\n getToggleButtonProps,\n getLabelProps,\n getMenuProps,\n getInputProps: (options?: Parameters<typeof getInputProps>[0]) => getInputProps({ ...options, ref: inputRef }),\n getItemProps,\n reset: () => {\n if (value === undefined) {\n setCurrentSelectedItem(null);\n }\n reset();\n filterOptions(\"\");\n },\n filteredOptions,\n openMenu,\n toggleMenu,\n closeMenu\n };\n}\n\nexport default useDropdownCombobox;\n"],"names":["useDropdownCombobox","options","isMenuOpen","autoFocus","closeMenuOnSelect","defaultValue","value","inputValueProp","onChange","onInputChange","onMenuOpen","onMenuClose","onOptionSelect","filterOption","showSelectedOptions","id","_useState","useState","_useState2","_slicedToArray","currentSelectedItem","setCurrentSelectedItem","inputRef","useRef","selectedItem","undefined","memoizedSelectedItemForFiltering","useMemo","_useDropdownFiltering","useDropdownFiltering","filteredOptions","filterOptions","flatOptions","flatMap","group","_useCombobox","useCombobox","items","itemToString","item","_a","label","itemToKey","String","isItemDisabled","disabled","initialInputValue","isOpen","initialIsOpen","onIsOpenChange","_ref","onInputValueChange","useCallback","_ref2","inputValue","onSelectedItemChange","_ref3","onStateChange","_ref4","type","stateChangeTypes","ItemClick","InputKeyDownEnter","current","blur","stateReducer","state","actionAndChanges","Object","assign","changes","InputBlur","ControlledPropUpdatedSelectedItem","getInputProps","reset","highlightedIndex","getToggleButtonProps","getLabelProps","getMenuProps","ref","getItemProps","openMenu","toggleMenu","closeMenu"],"mappings":"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"}
|