@jobber/components 8.2.0 → 8.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/ActivityIndicator.d.ts +1 -0
- package/ActivityIndicator.js +17 -0
- package/dist/ActivityIndicator/ActivityIndicator.d.ts +38 -0
- package/dist/ActivityIndicator/index.cjs +9 -0
- package/dist/ActivityIndicator/index.d.ts +2 -0
- package/dist/ActivityIndicator/index.mjs +3 -0
- package/dist/ActivityIndicator-cjs.js +27 -0
- package/dist/ActivityIndicator-es.js +25 -0
- package/dist/Autocomplete/Autocomplete.d.ts +2 -3
- package/dist/Autocomplete/Autocomplete.types.d.ts +4 -9
- package/dist/Autocomplete/index.cjs +7 -8
- package/dist/Autocomplete/index.d.ts +3 -4
- package/dist/Autocomplete/index.mjs +6 -7
- package/dist/DataList/components/DataListSearch/index.cjs +1 -2
- package/dist/DataList/components/DataListSearch/index.mjs +1 -2
- package/dist/DataList/index.cjs +1 -2
- package/dist/DataList/index.mjs +1 -2
- package/dist/DataListSearch-cjs.js +12 -6
- package/dist/DataListSearch-es.js +11 -5
- package/dist/InputDate/index.cjs +1 -2
- package/dist/InputDate/index.mjs +1 -2
- package/dist/InputDate-cjs.js +2 -2
- package/dist/InputDate-es.js +2 -2
- package/dist/InputText/InputText.d.ts +2 -70
- package/dist/InputText/InputText.types.d.ts +2 -30
- package/dist/InputText/index.cjs +12 -268
- package/dist/InputText/index.d.ts +2 -5
- package/dist/InputText/index.mjs +11 -271
- package/dist/InputText/useInputTextActions.d.ts +2 -2
- package/dist/InputText-cjs.js +199 -0
- package/dist/InputText-es.js +197 -0
- package/dist/Spinner/Spinner.d.ts +6 -0
- package/dist/Spinner-cjs.js +3 -0
- package/dist/Spinner-es.js +3 -0
- package/dist/docs/ActivityIndicator/ActivityIndicator.md +67 -0
- package/dist/docs/Autocomplete/AutocompleteV1.md +1 -2
- package/dist/docs/Autocomplete/AutocompleteV2.md +1 -1
- package/dist/docs/Banner/Banner.md +2 -2
- package/dist/docs/Box/Box.md +2 -2
- package/dist/docs/Glimmer/Glimmer.md +1 -1
- package/dist/docs/Icon/Icon.md +1 -1
- package/dist/docs/InputText/InputText.md +152 -106
- package/dist/docs/Menu/Menu.md +1 -1
- package/dist/docs/Modal/Modal.md +1 -1
- package/dist/docs/Spinner/Spinner.md +9 -1
- package/dist/docs/Stack/Stack.md +1 -1
- package/dist/docs/index.md +1 -0
- package/dist/docs/usage-guidelines/usage-guidelines.md +0 -2
- package/dist/index.cjs +5 -3
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +3 -2
- package/dist/styles.css +279 -0
- package/dist/utils/meta/meta.json +1 -0
- package/package.json +8 -3
- package/dist/InputText/InputText.rebuilt.d.ts +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./dist/ActivityIndicator";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true,
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var ActivityIndicator = require("./dist/ActivityIndicator");
|
|
8
|
+
|
|
9
|
+
Object.keys(ActivityIndicator).forEach(function(key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
Object.defineProperty(exports, key, {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function get() {
|
|
14
|
+
return ActivityIndicator[key];
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
});
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { CSSProperties } from "react";
|
|
3
|
+
export interface ActivityIndicatorProps {
|
|
4
|
+
/**
|
|
5
|
+
* Visual size. `base` renders at 32px, `small` renders at 16px.
|
|
6
|
+
*
|
|
7
|
+
* @default "base"
|
|
8
|
+
*/
|
|
9
|
+
readonly size?: "small" | "base";
|
|
10
|
+
/**
|
|
11
|
+
* Accessible label exposed via `aria-label` on the root element. Override
|
|
12
|
+
* to localize or to describe the specific activity (e.g. "Uploading file").
|
|
13
|
+
*
|
|
14
|
+
* @default "Loading"
|
|
15
|
+
*/
|
|
16
|
+
readonly ariaLabel?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Custom class name merged onto the root element alongside the component's
|
|
19
|
+
* own classes.
|
|
20
|
+
*/
|
|
21
|
+
readonly className?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Custom inline styles applied to the root element.
|
|
24
|
+
*/
|
|
25
|
+
readonly style?: CSSProperties;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* `ActivityIndicator` communicates an indeterminate activity that the user
|
|
29
|
+
* cannot directly control or measure — loading, fetching, or waiting on an
|
|
30
|
+
* external system.
|
|
31
|
+
*
|
|
32
|
+
* For determinate progress (a known fraction completed), use
|
|
33
|
+
* `ProgressIndicator` instead (forthcoming).
|
|
34
|
+
*
|
|
35
|
+
* For now, the legacy `Spinner` component also remains available; new code
|
|
36
|
+
* should prefer `ActivityIndicator`.
|
|
37
|
+
*/
|
|
38
|
+
export declare function ActivityIndicator({ size, ariaLabel, className, style, }: ActivityIndicatorProps): React.JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var classnames = require('classnames');
|
|
5
|
+
|
|
6
|
+
var styles = {"indicator":"YST686vLR3c-","screenReaderOnly":"MmNHh-oCyxc-","small":"_888S5Y2IeZ8-","svg":"Av9z-aLocss-","indicatorLinearRotate":"WvHFS--Nm80-","track":"VDTWabJptKI-","arc":"_9XO0290QNCY-","indicatorRotateArc":"SHHICknKvqA-","indicatorExpandArc":"_0m0Nzc5awnA-","indicatorReducedPulse":"_4dXQsbprq3s-","spinning":"IZCteJUCKio-"};
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* `ActivityIndicator` communicates an indeterminate activity that the user
|
|
10
|
+
* cannot directly control or measure — loading, fetching, or waiting on an
|
|
11
|
+
* external system.
|
|
12
|
+
*
|
|
13
|
+
* For determinate progress (a known fraction completed), use
|
|
14
|
+
* `ProgressIndicator` instead (forthcoming).
|
|
15
|
+
*
|
|
16
|
+
* For now, the legacy `Spinner` component also remains available; new code
|
|
17
|
+
* should prefer `ActivityIndicator`.
|
|
18
|
+
*/
|
|
19
|
+
function ActivityIndicator({ size = "base", ariaLabel = "Loading", className, style, }) {
|
|
20
|
+
return (React.createElement("div", { role: "status", "aria-label": ariaLabel, className: classnames(styles.indicator, size === "small" && styles.small, className), style: style },
|
|
21
|
+
React.createElement("span", { className: styles.screenReaderOnly }, ariaLabel),
|
|
22
|
+
React.createElement("svg", { className: styles.svg, viewBox: "0 0 48 48", focusable: "false", "aria-hidden": "true" },
|
|
23
|
+
React.createElement("circle", { className: styles.track, cx: "24", cy: "24", r: "20" }),
|
|
24
|
+
React.createElement("circle", { className: styles.arc, cx: "24", cy: "24", r: "20" }))));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
exports.ActivityIndicator = ActivityIndicator;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React__default from 'react';
|
|
2
|
+
import classnames from 'classnames';
|
|
3
|
+
|
|
4
|
+
var styles = {"indicator":"YST686vLR3c-","screenReaderOnly":"MmNHh-oCyxc-","small":"_888S5Y2IeZ8-","svg":"Av9z-aLocss-","indicatorLinearRotate":"WvHFS--Nm80-","track":"VDTWabJptKI-","arc":"_9XO0290QNCY-","indicatorRotateArc":"SHHICknKvqA-","indicatorExpandArc":"_0m0Nzc5awnA-","indicatorReducedPulse":"_4dXQsbprq3s-","spinning":"IZCteJUCKio-"};
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* `ActivityIndicator` communicates an indeterminate activity that the user
|
|
8
|
+
* cannot directly control or measure — loading, fetching, or waiting on an
|
|
9
|
+
* external system.
|
|
10
|
+
*
|
|
11
|
+
* For determinate progress (a known fraction completed), use
|
|
12
|
+
* `ProgressIndicator` instead (forthcoming).
|
|
13
|
+
*
|
|
14
|
+
* For now, the legacy `Spinner` component also remains available; new code
|
|
15
|
+
* should prefer `ActivityIndicator`.
|
|
16
|
+
*/
|
|
17
|
+
function ActivityIndicator({ size = "base", ariaLabel = "Loading", className, style, }) {
|
|
18
|
+
return (React__default.createElement("div", { role: "status", "aria-label": ariaLabel, className: classnames(styles.indicator, size === "small" && styles.small, className), style: style },
|
|
19
|
+
React__default.createElement("span", { className: styles.screenReaderOnly }, ariaLabel),
|
|
20
|
+
React__default.createElement("svg", { className: styles.svg, viewBox: "0 0 48 48", focusable: "false", "aria-hidden": "true" },
|
|
21
|
+
React__default.createElement("circle", { className: styles.track, cx: "24", cy: "24", r: "20" }),
|
|
22
|
+
React__default.createElement("circle", { className: styles.arc, cx: "24", cy: "24", r: "20" }))));
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export { ActivityIndicator as A };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Ref, RefAttributes } from "react";
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { type AnyOption, type AutocompleteLegacyProps, type Option } from "./Autocomplete.types";
|
|
4
|
-
|
|
5
|
-
declare
|
|
6
|
-
export declare const Autocomplete: <GenericOption extends AnyOption = AnyOption, GenericOptionValue extends Option = Option, GenericGetOptionsValue extends AnyOption = AnyOption>(props: AutocompleteLegacyProps<GenericOption, GenericOptionValue, GenericGetOptionsValue> & RefAttributes<InputTextRef>) => ReturnType<typeof AutocompleteInternal>;
|
|
4
|
+
declare function AutocompleteInternal<GenericOption extends AnyOption = AnyOption, GenericOptionValue extends Option = Option, GenericGetOptionsValue extends AnyOption = AnyOption>({ initialOptions, value, allowFreeForm, size, debounce: debounceRate, onChange, getOptions, placeholder, onBlur, onFocus, customRenderMenu, ...inputProps }: AutocompleteLegacyProps<GenericOption, GenericOptionValue, GenericGetOptionsValue>, ref: Ref<HTMLInputElement>): React.JSX.Element;
|
|
5
|
+
export declare const Autocomplete: <GenericOption extends AnyOption = AnyOption, GenericOptionValue extends Option = Option, GenericGetOptionsValue extends AnyOption = AnyOption>(props: AutocompleteLegacyProps<GenericOption, GenericOptionValue, GenericGetOptionsValue> & RefAttributes<HTMLInputElement>) => ReturnType<typeof AutocompleteInternal>;
|
|
7
6
|
export {};
|
|
@@ -3,7 +3,7 @@ import type { UseAutocompleteListNavReturn } from "./hooks/useAutocompleteListNa
|
|
|
3
3
|
import type { createInteractionPointerDownHandler } from "./utils/interactionUtils";
|
|
4
4
|
import type { AriaInputProps, FocusEvents, HTMLInputBaseProps, RebuiltInputCommonProps } from "../sharedHelpers/types";
|
|
5
5
|
import type { FormFieldProps } from "../FormField";
|
|
6
|
-
import type {
|
|
6
|
+
import type { InputTextProps } from "../InputText";
|
|
7
7
|
/**
|
|
8
8
|
* ARIA attributes for Autocomplete with managed/orchestrated behavior.
|
|
9
9
|
* Certain ARIA attributes are controlled internally by Autocomplete's
|
|
@@ -94,10 +94,6 @@ export interface AutocompleteLegacyProps<GenericOption extends AnyOption = AnyOp
|
|
|
94
94
|
* @param newInputText
|
|
95
95
|
*/
|
|
96
96
|
readonly getOptions: (newInputText: string) => Array<GenericGetOptionsValue | GenericOption> | Promise<Array<GenericGetOptionsValue | GenericOption>>;
|
|
97
|
-
/**
|
|
98
|
-
* Validations to run on the input.
|
|
99
|
-
*/
|
|
100
|
-
readonly validations?: FormFieldProps["validations"];
|
|
101
97
|
}
|
|
102
98
|
export type AutocompleteProps<GenericOption extends AnyOption = AnyOption, GenericOptionValue extends Option = Option, GenericGetOptionsValue extends AnyOption = AnyOption> = AutocompleteLegacyProps<GenericOption, GenericOptionValue, GenericGetOptionsValue>;
|
|
103
99
|
export type CustomOptionsMenuType<GenericOption extends AnyOption = AnyOption> = (props: CustomOptionsMenuProp<GenericOption>) => React.ReactElement;
|
|
@@ -112,7 +108,7 @@ export interface MenuProps<GenericOption extends AnyOption = AnyOption, GenericO
|
|
|
112
108
|
/**
|
|
113
109
|
* Ref to the TextInput element.
|
|
114
110
|
*/
|
|
115
|
-
readonly inputRef: RefObject<
|
|
111
|
+
readonly inputRef: RefObject<HTMLInputElement | null>;
|
|
116
112
|
onOptionSelect(chosenOption?: GenericOptionValue): void;
|
|
117
113
|
readonly customRenderMenu?: (props: CustomOptionsMenuProp<GenericOption, GenericOptionValue>) => React.ReactElement;
|
|
118
114
|
}
|
|
@@ -139,9 +135,8 @@ export interface CustomOptionsMenuProp<GenericOption extends AnyOption = AnyOpti
|
|
|
139
135
|
readonly inputFocused: boolean;
|
|
140
136
|
/**
|
|
141
137
|
* Ref to the TextInput element.
|
|
142
|
-
* v1 provides InputTextRef; v2 provides a DOM element ref.
|
|
143
138
|
*/
|
|
144
|
-
readonly inputRef: RefObject<
|
|
139
|
+
readonly inputRef: RefObject<HTMLInputElement | HTMLTextAreaElement | null>;
|
|
145
140
|
/**
|
|
146
141
|
* Component that wraps the menu content. Used for handling keyboard scroll behavior.
|
|
147
142
|
*/
|
|
@@ -351,7 +346,7 @@ interface AutocompleteRebuiltBaseProps<Value extends OptionLike, Multiple extend
|
|
|
351
346
|
*/
|
|
352
347
|
readonly customRenderInput?: (props: {
|
|
353
348
|
inputRef: Ref<HTMLInputElement | HTMLTextAreaElement>;
|
|
354
|
-
inputProps:
|
|
349
|
+
inputProps: InputTextProps;
|
|
355
350
|
}) => React.ReactNode;
|
|
356
351
|
/**
|
|
357
352
|
* **Use at your own risk:** Custom class names for specific elements. This should only be used as a
|
|
@@ -12,7 +12,7 @@ var Text = require('../Text-cjs.js');
|
|
|
12
12
|
var Typography = require('../Typography-cjs.js');
|
|
13
13
|
var Icon = require('../Icon-cjs.js');
|
|
14
14
|
var Glimmer = require('../Glimmer-cjs.js');
|
|
15
|
-
var
|
|
15
|
+
var InputText = require('../InputText-cjs.js');
|
|
16
16
|
var FormFieldWrapper = require('../FormFieldWrapper-cjs.js');
|
|
17
17
|
var tslib_es6 = require('../tslib.es6-cjs.js');
|
|
18
18
|
require('react-hook-form');
|
|
@@ -24,14 +24,13 @@ require('../index.esm-cjs.js');
|
|
|
24
24
|
require('react/jsx-runtime');
|
|
25
25
|
require('react-dom');
|
|
26
26
|
require('../Content-cjs.js');
|
|
27
|
-
require('../FormField-cjs.js');
|
|
28
27
|
require('../FormFieldPostFix-cjs.js');
|
|
29
28
|
require('../Spinner-cjs.js');
|
|
30
29
|
require('../useAtlantisFormFieldName-cjs.js');
|
|
31
30
|
require('framer-motion');
|
|
32
|
-
require('react-router-dom');
|
|
33
31
|
require('../useFormFieldFocus-cjs.js');
|
|
34
32
|
require('../InputValidation-cjs.js');
|
|
33
|
+
require('react-router-dom');
|
|
35
34
|
|
|
36
35
|
const AUTOCOMPLETE_MAX_HEIGHT$1 = 300;
|
|
37
36
|
/** Stable empty array for cleared/empty selection state. Reuse to avoid reference churn. */
|
|
@@ -1186,7 +1185,7 @@ function AutocompleteRebuiltInternal(props, forwardedRef) {
|
|
|
1186
1185
|
? `${listboxId}-item-${activeIndex}`
|
|
1187
1186
|
: undefined,
|
|
1188
1187
|
};
|
|
1189
|
-
const inputProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({
|
|
1188
|
+
const inputProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ value: inputValue, onChange: props.readOnly ? undefined : onInputChangeFromUser }, (props.readOnly ? { onFocus: onInputFocus, onBlur: onInputBlur } : {})), { placeholder,
|
|
1190
1189
|
disabled, readOnly: props.readOnly, error: error !== null && error !== void 0 ? error : undefined, name: props.name, invalid, clearable: props.clearable, autoComplete: "off", autoFocus: props.autoFocus, description, size: sizeProp ? sizeProp : undefined, prefix: props.prefix, suffix: props.suffix }), (props.readOnly ? {} : composedReferenceProps)), ariaProps), dataAttrs);
|
|
1191
1190
|
const chipAreaRef = React.useCallback((node) => {
|
|
1192
1191
|
if (!node)
|
|
@@ -1259,7 +1258,7 @@ function AutocompleteRebuiltInternal(props, forwardedRef) {
|
|
|
1259
1258
|
: composedReferenceProps, inputAriaProps: ariaProps, inputDataAttrs: dataAttrs, limitVisibleSelections: props.limitVisibleSelections, limitSelectionText: props.limitSelectionText, unsafeClassName: (_p = props.UNSAFE_className) === null || _p === void 0 ? void 0 : _p.selection, unsafeStyle: (_q = props.UNSAFE_styles) === null || _q === void 0 ? void 0 : _q.selection }, floatingMenu));
|
|
1260
1259
|
}
|
|
1261
1260
|
return (React.createElement("div", { "data-testid": "ATL-AutocompleteRebuilt" },
|
|
1262
|
-
React.createElement(
|
|
1261
|
+
React.createElement(InputText.InputText, Object.assign({ ref: mergedInputRef }, inputProps)),
|
|
1263
1262
|
floatingMenu));
|
|
1264
1263
|
}
|
|
1265
1264
|
function SelectionChip({ value, active, disabled, getOptionLabel, customRenderValue, canDismiss, onDismiss, unsafeClassName, unsafeStyle, }) {
|
|
@@ -1572,7 +1571,7 @@ function CustomMenu({ options, selectedOption, onOptionSelect, customRenderMenu,
|
|
|
1572
1571
|
// eslint-disable-next-line max-statements
|
|
1573
1572
|
function AutocompleteInternal(_a, ref) {
|
|
1574
1573
|
var _b;
|
|
1575
|
-
var { initialOptions = [], value, allowFreeForm = true, size = undefined, debounce: debounceRate = 300, onChange, getOptions, placeholder, onBlur, onFocus,
|
|
1574
|
+
var { initialOptions = [], value, allowFreeForm = true, size = undefined, debounce: debounceRate = 300, onChange, getOptions, placeholder, onBlur, onFocus, customRenderMenu } = _a, inputProps = tslib_es6.__rest(_a, ["initialOptions", "value", "allowFreeForm", "size", "debounce", "onChange", "getOptions", "placeholder", "onBlur", "onFocus", "customRenderMenu"]);
|
|
1576
1575
|
const initialOptionsMemo = React.useMemo(() => mapToOptions(initialOptions), [initialOptions]);
|
|
1577
1576
|
const [options, setOptions] = React.useState(initialOptionsMemo);
|
|
1578
1577
|
const [inputFocused, setInputFocused] = React.useState(false);
|
|
@@ -1588,7 +1587,7 @@ function AutocompleteInternal(_a, ref) {
|
|
|
1588
1587
|
updateInput((_a = value === null || value === void 0 ? void 0 : value.label) !== null && _a !== void 0 ? _a : "");
|
|
1589
1588
|
}, [value]);
|
|
1590
1589
|
return (React.createElement("div", { className: styles.autocomplete, ref: setAutocompleteRef },
|
|
1591
|
-
React.createElement(
|
|
1590
|
+
React.createElement(InputText.InputText, Object.assign({ ref: mergeRefs.mergeRefs([ref, inputRef]), autoComplete: "off", size: size, value: inputText, onChange: handleInputChange, placeholder: placeholder, onFocus: handleInputFocus, onBlur: handleInputBlur }, inputProps)),
|
|
1592
1591
|
React.createElement(Menu, { attachTo: autocompleteRef, inputRef: inputRef, inputFocused: inputFocused, options: options, customRenderMenu: customRenderMenu, selectedOption: value, onOptionSelect: handleMenuChange })));
|
|
1593
1592
|
function updateInput(newText) {
|
|
1594
1593
|
setInputText(newText);
|
|
@@ -1656,7 +1655,7 @@ function AutocompleteShim(props, ref) {
|
|
|
1656
1655
|
if (isNewAutocompleteProps(props)) {
|
|
1657
1656
|
return (React.createElement(AutocompleteRebuilt, Object.assign({}, props, { ref: ref })));
|
|
1658
1657
|
}
|
|
1659
|
-
return React.createElement(Autocomplete$1, Object.assign({}, props, { ref: ref }));
|
|
1658
|
+
return (React.createElement(Autocomplete$1, Object.assign({}, props, { ref: ref })));
|
|
1660
1659
|
}
|
|
1661
1660
|
const AutocompleteForwarded = React.forwardRef(AutocompleteShim);
|
|
1662
1661
|
AutocompleteForwarded.displayName = "Autocomplete";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { AnyOption, AutocompleteLegacyProps, AutocompleteRebuiltProps, ExtraProps, Option, OptionLike } from "./Autocomplete.types";
|
|
3
|
-
import type { InputTextRef } from "../InputText";
|
|
4
3
|
export type { OptionLike } from "./Autocomplete.types";
|
|
5
4
|
export { type MenuOptionProps, BaseMenuOption, type BaseMenuOptionProps, MenuOption, BaseMenuGroupOption, type BaseMenuGroupOptionProps, } from "./Option";
|
|
6
5
|
export { type AnyOption, type AutocompleteProps, type BaseOption, type CustomOptionsMenuProp, type GroupOption, type OptionCollection, type Option, type MenuItem, type MenuSection, type MenuOptions, type MenuHeader, type MenuFooter, type MenuAction, type ExtraProps, defineMenu, } from "./Autocomplete.types";
|
|
@@ -9,7 +8,7 @@ export { useRepositionMenu } from "./useRepositionMenu";
|
|
|
9
8
|
export { BaseAutocompleteMenuWrapper, useAutocompleteMenu, } from "./Menu/MenuWrapper";
|
|
10
9
|
export { isOptionSelected, isOptionGroup } from "./Autocomplete.utils";
|
|
11
10
|
type AutocompleteShimProps = AutocompleteLegacyProps | AutocompleteRebuiltProps<OptionLike, boolean, ExtraProps, ExtraProps>;
|
|
12
|
-
declare function AutocompleteShim(props: AutocompleteShimProps, ref: React.Ref<
|
|
11
|
+
declare function AutocompleteShim(props: AutocompleteShimProps, ref: React.Ref<HTMLInputElement | HTMLTextAreaElement>): React.JSX.Element;
|
|
13
12
|
export declare const Autocomplete: {
|
|
14
13
|
<T extends OptionLike = OptionLike, Multiple extends boolean = false, S extends object = ExtraProps, A extends object = ExtraProps>(props: AutocompleteRebuiltProps<T, Multiple, S, A> & {
|
|
15
14
|
version: 2;
|
|
@@ -19,12 +18,12 @@ export declare const Autocomplete: {
|
|
|
19
18
|
}): ReturnType<typeof AutocompleteShim>;
|
|
20
19
|
<GenericOption extends AnyOption = AnyOption, GenericOptionValue extends Option = Option, GenericGetOptionsValue extends AnyOption = AnyOption>(props: AutocompleteLegacyProps<GenericOption, GenericOptionValue, GenericGetOptionsValue> & {
|
|
21
20
|
version?: 1;
|
|
22
|
-
ref?: React.Ref<
|
|
21
|
+
ref?: React.Ref<HTMLInputElement | HTMLTextAreaElement | null>;
|
|
23
22
|
menu?: never;
|
|
24
23
|
}): ReturnType<typeof AutocompleteShim>;
|
|
25
24
|
(props: AutocompleteLegacyProps & {
|
|
26
25
|
version?: 1;
|
|
27
|
-
ref?: React.Ref<
|
|
26
|
+
ref?: React.Ref<HTMLInputElement | HTMLTextAreaElement | null>;
|
|
28
27
|
menu?: never;
|
|
29
28
|
}): ReturnType<typeof AutocompleteShim>;
|
|
30
29
|
};
|
|
@@ -10,7 +10,7 @@ import { T as Text } from '../Text-es.js';
|
|
|
10
10
|
import { T as Typography } from '../Typography-es.js';
|
|
11
11
|
import { I as Icon } from '../Icon-es.js';
|
|
12
12
|
import { G as Glimmer } from '../Glimmer-es.js';
|
|
13
|
-
import { InputText } from '../InputText
|
|
13
|
+
import { I as InputText } from '../InputText-es.js';
|
|
14
14
|
import { c as FormFieldWrapper } from '../FormFieldWrapper-es.js';
|
|
15
15
|
import { _ as __rest, a as __awaiter } from '../tslib.es6-es.js';
|
|
16
16
|
import 'react-hook-form';
|
|
@@ -22,14 +22,13 @@ import '../index.esm-es.js';
|
|
|
22
22
|
import 'react/jsx-runtime';
|
|
23
23
|
import 'react-dom';
|
|
24
24
|
import '../Content-es.js';
|
|
25
|
-
import '../FormField-es.js';
|
|
26
25
|
import '../FormFieldPostFix-es.js';
|
|
27
26
|
import '../Spinner-es.js';
|
|
28
27
|
import '../useAtlantisFormFieldName-es.js';
|
|
29
28
|
import 'framer-motion';
|
|
30
|
-
import 'react-router-dom';
|
|
31
29
|
import '../useFormFieldFocus-es.js';
|
|
32
30
|
import '../InputValidation-es.js';
|
|
31
|
+
import 'react-router-dom';
|
|
33
32
|
|
|
34
33
|
const AUTOCOMPLETE_MAX_HEIGHT$1 = 300;
|
|
35
34
|
/** Stable empty array for cleared/empty selection state. Reuse to avoid reference churn. */
|
|
@@ -1184,7 +1183,7 @@ function AutocompleteRebuiltInternal(props, forwardedRef) {
|
|
|
1184
1183
|
? `${listboxId}-item-${activeIndex}`
|
|
1185
1184
|
: undefined,
|
|
1186
1185
|
};
|
|
1187
|
-
const inputProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({
|
|
1186
|
+
const inputProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ value: inputValue, onChange: props.readOnly ? undefined : onInputChangeFromUser }, (props.readOnly ? { onFocus: onInputFocus, onBlur: onInputBlur } : {})), { placeholder,
|
|
1188
1187
|
disabled, readOnly: props.readOnly, error: error !== null && error !== void 0 ? error : undefined, name: props.name, invalid, clearable: props.clearable, autoComplete: "off", autoFocus: props.autoFocus, description, size: sizeProp ? sizeProp : undefined, prefix: props.prefix, suffix: props.suffix }), (props.readOnly ? {} : composedReferenceProps)), ariaProps), dataAttrs);
|
|
1189
1188
|
const chipAreaRef = useCallback((node) => {
|
|
1190
1189
|
if (!node)
|
|
@@ -1570,7 +1569,7 @@ function CustomMenu({ options, selectedOption, onOptionSelect, customRenderMenu,
|
|
|
1570
1569
|
// eslint-disable-next-line max-statements
|
|
1571
1570
|
function AutocompleteInternal(_a, ref) {
|
|
1572
1571
|
var _b;
|
|
1573
|
-
var { initialOptions = [], value, allowFreeForm = true, size = undefined, debounce: debounceRate = 300, onChange, getOptions, placeholder, onBlur, onFocus,
|
|
1572
|
+
var { initialOptions = [], value, allowFreeForm = true, size = undefined, debounce: debounceRate = 300, onChange, getOptions, placeholder, onBlur, onFocus, customRenderMenu } = _a, inputProps = __rest(_a, ["initialOptions", "value", "allowFreeForm", "size", "debounce", "onChange", "getOptions", "placeholder", "onBlur", "onFocus", "customRenderMenu"]);
|
|
1574
1573
|
const initialOptionsMemo = useMemo(() => mapToOptions(initialOptions), [initialOptions]);
|
|
1575
1574
|
const [options, setOptions] = useState(initialOptionsMemo);
|
|
1576
1575
|
const [inputFocused, setInputFocused] = useState(false);
|
|
@@ -1586,7 +1585,7 @@ function AutocompleteInternal(_a, ref) {
|
|
|
1586
1585
|
updateInput((_a = value === null || value === void 0 ? void 0 : value.label) !== null && _a !== void 0 ? _a : "");
|
|
1587
1586
|
}, [value]);
|
|
1588
1587
|
return (React__default.createElement("div", { className: styles.autocomplete, ref: setAutocompleteRef },
|
|
1589
|
-
React__default.createElement(InputText, Object.assign({ ref: mergeRefs([ref, inputRef]),
|
|
1588
|
+
React__default.createElement(InputText, Object.assign({ ref: mergeRefs([ref, inputRef]), autoComplete: "off", size: size, value: inputText, onChange: handleInputChange, placeholder: placeholder, onFocus: handleInputFocus, onBlur: handleInputBlur }, inputProps)),
|
|
1590
1589
|
React__default.createElement(Menu, { attachTo: autocompleteRef, inputRef: inputRef, inputFocused: inputFocused, options: options, customRenderMenu: customRenderMenu, selectedOption: value, onOptionSelect: handleMenuChange })));
|
|
1591
1590
|
function updateInput(newText) {
|
|
1592
1591
|
setInputText(newText);
|
|
@@ -1654,7 +1653,7 @@ function AutocompleteShim(props, ref) {
|
|
|
1654
1653
|
if (isNewAutocompleteProps(props)) {
|
|
1655
1654
|
return (React__default.createElement(AutocompleteRebuilt, Object.assign({}, props, { ref: ref })));
|
|
1656
1655
|
}
|
|
1657
|
-
return React__default.createElement(Autocomplete$1, Object.assign({}, props, { ref: ref }));
|
|
1656
|
+
return (React__default.createElement(Autocomplete$1, Object.assign({}, props, { ref: ref })));
|
|
1658
1657
|
}
|
|
1659
1658
|
const AutocompleteForwarded = forwardRef(AutocompleteShim);
|
|
1660
1659
|
AutocompleteForwarded.displayName = "Autocomplete";
|
|
@@ -5,8 +5,7 @@ require('react');
|
|
|
5
5
|
require('classnames');
|
|
6
6
|
require('@jobber/design');
|
|
7
7
|
require('@jobber/hooks');
|
|
8
|
-
require('../../../InputText
|
|
9
|
-
require('../../../FormField-cjs.js');
|
|
8
|
+
require('../../../InputText-cjs.js');
|
|
10
9
|
require('../../../FormFieldWrapper-cjs.js');
|
|
11
10
|
require('framer-motion');
|
|
12
11
|
require('../../../Button-cjs.js');
|
|
@@ -3,8 +3,7 @@ import 'react';
|
|
|
3
3
|
import 'classnames';
|
|
4
4
|
import '@jobber/design';
|
|
5
5
|
import '@jobber/hooks';
|
|
6
|
-
import '../../../InputText
|
|
7
|
-
import '../../../FormField-es.js';
|
|
6
|
+
import '../../../InputText-es.js';
|
|
8
7
|
import '../../../FormFieldWrapper-es.js';
|
|
9
8
|
import 'framer-motion';
|
|
10
9
|
import '../../../Button-es.js';
|
package/dist/DataList/index.cjs
CHANGED
|
@@ -79,8 +79,7 @@ require('../ComboboxActivator-cjs.js');
|
|
|
79
79
|
require('../DataListOverflowFade-cjs.js');
|
|
80
80
|
require('../DataListStickyHeader-cjs.js');
|
|
81
81
|
require('../DataListSearch-cjs.js');
|
|
82
|
-
require('../InputText
|
|
83
|
-
require('../FormField-cjs.js');
|
|
82
|
+
require('../InputText-cjs.js');
|
|
84
83
|
require('../FormFieldWrapper-cjs.js');
|
|
85
84
|
require('../useFormFieldFocus-cjs.js');
|
|
86
85
|
require('../InputValidation-cjs.js');
|
package/dist/DataList/index.mjs
CHANGED
|
@@ -77,8 +77,7 @@ import '../ComboboxActivator-es.js';
|
|
|
77
77
|
import '../DataListOverflowFade-es.js';
|
|
78
78
|
import '../DataListStickyHeader-es.js';
|
|
79
79
|
import '../DataListSearch-es.js';
|
|
80
|
-
import '../InputText
|
|
81
|
-
import '../FormField-es.js';
|
|
80
|
+
import '../InputText-es.js';
|
|
82
81
|
import '../FormFieldWrapper-es.js';
|
|
83
82
|
import '../useFormFieldFocus-es.js';
|
|
84
83
|
import '../InputValidation-es.js';
|
|
@@ -4,7 +4,7 @@ var React = require('react');
|
|
|
4
4
|
var classnames = require('classnames');
|
|
5
5
|
var design = require('@jobber/design');
|
|
6
6
|
var jobberHooks = require('@jobber/hooks');
|
|
7
|
-
var
|
|
7
|
+
var InputText = require('./InputText-cjs.js');
|
|
8
8
|
var DataListContext = require('./DataListContext-cjs.js');
|
|
9
9
|
var DataList_const = require('./DataList.const-cjs.js');
|
|
10
10
|
var Button = require('./Button-cjs.js');
|
|
@@ -24,24 +24,26 @@ function DataListSearch(_) {
|
|
|
24
24
|
function InternalDataListSearch() {
|
|
25
25
|
const inputRef = React.useRef(null);
|
|
26
26
|
const [visible, setVisible] = React.useState(false);
|
|
27
|
+
const [internalValue, setInternalValue] = React.useState("");
|
|
27
28
|
const { searchComponent, filterComponent, sorting, title } = DataListContext.useDataListContext();
|
|
28
29
|
const debouncedSearch = jobberHooks.useDebounce((value) => { var _a; return (_a = searchComponent === null || searchComponent === void 0 ? void 0 : searchComponent.props) === null || _a === void 0 ? void 0 : _a.onSearch(value); }, DataList_const.SEARCH_DEBOUNCE_DELAY);
|
|
29
30
|
if (!searchComponent)
|
|
30
31
|
return null;
|
|
31
32
|
const { placeholder, initialValue, value: controlledValue, } = searchComponent.props;
|
|
33
|
+
const isControlled = controlledValue !== undefined;
|
|
32
34
|
return (React.createElement("div", { className: classnames(styles.wrapper, {
|
|
33
35
|
[styles.withNoFilters]: !filterComponent && !sorting,
|
|
34
36
|
}) },
|
|
35
37
|
React.createElement("div", { "data-testid": DATA_LIST_SEARCH_TEST_ID, className: classnames(styles.searchInput, {
|
|
36
38
|
[styles.searchInputVisible]: visible,
|
|
37
39
|
}) },
|
|
38
|
-
React.createElement(
|
|
40
|
+
React.createElement(InputText.InputText
|
|
39
41
|
// If the initial value changes, reset the input.
|
|
40
42
|
, {
|
|
41
43
|
// If the initial value changes, reset the input.
|
|
42
|
-
key: initialValue,
|
|
43
|
-
? searchComponent.props.onSearch
|
|
44
|
-
:
|
|
44
|
+
key: initialValue, value: isControlled ? controlledValue : internalValue, ref: inputRef, placeholder: getPlaceholder(), onChange: isControlled
|
|
45
|
+
? (val) => searchComponent.props.onSearch(val)
|
|
46
|
+
: handleUncontrolledChange, prefix: { icon: "search" }, clearable: "always" })),
|
|
45
47
|
React.createElement("div", { className: styles.searchButton },
|
|
46
48
|
React.createElement(AnimatedSwitcher.AnimatedSwitcher, { switched: visible, initialChild: React.createElement(Button.Button, { variation: "subtle", icon: "search", ariaLabel: "Search", onClick: toggleSearch }), switchTo: React.createElement(Button.Button, { variation: "subtle", icon: "remove", ariaLabel: "Close search bar", onClick: toggleSearch }) }))));
|
|
47
49
|
function getPlaceholder() {
|
|
@@ -55,9 +57,13 @@ function InternalDataListSearch() {
|
|
|
55
57
|
const visibility = !visible;
|
|
56
58
|
setVisible(visibility);
|
|
57
59
|
if (visibility && inputRef.current) {
|
|
58
|
-
setTimeout(inputRef.current.focus, design.tokens["timing-quick"]);
|
|
60
|
+
setTimeout(() => { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, design.tokens["timing-quick"]);
|
|
59
61
|
}
|
|
60
62
|
}
|
|
63
|
+
function handleUncontrolledChange(val) {
|
|
64
|
+
setInternalValue(val);
|
|
65
|
+
debouncedSearch(val);
|
|
66
|
+
}
|
|
61
67
|
}
|
|
62
68
|
|
|
63
69
|
exports.DATA_LIST_SEARCH_TEST_ID = DATA_LIST_SEARCH_TEST_ID;
|
|
@@ -2,7 +2,7 @@ import React__default, { useRef, useState } from 'react';
|
|
|
2
2
|
import classnames from 'classnames';
|
|
3
3
|
import { tokens } from '@jobber/design';
|
|
4
4
|
import { useDebounce } from '@jobber/hooks';
|
|
5
|
-
import { InputText } from './InputText
|
|
5
|
+
import { I as InputText } from './InputText-es.js';
|
|
6
6
|
import { u as useDataListContext } from './DataListContext-es.js';
|
|
7
7
|
import { S as SEARCH_DEBOUNCE_DELAY } from './DataList.const-es.js';
|
|
8
8
|
import { B as Button } from './Button-es.js';
|
|
@@ -22,11 +22,13 @@ function DataListSearch(_) {
|
|
|
22
22
|
function InternalDataListSearch() {
|
|
23
23
|
const inputRef = useRef(null);
|
|
24
24
|
const [visible, setVisible] = useState(false);
|
|
25
|
+
const [internalValue, setInternalValue] = useState("");
|
|
25
26
|
const { searchComponent, filterComponent, sorting, title } = useDataListContext();
|
|
26
27
|
const debouncedSearch = useDebounce((value) => { var _a; return (_a = searchComponent === null || searchComponent === void 0 ? void 0 : searchComponent.props) === null || _a === void 0 ? void 0 : _a.onSearch(value); }, SEARCH_DEBOUNCE_DELAY);
|
|
27
28
|
if (!searchComponent)
|
|
28
29
|
return null;
|
|
29
30
|
const { placeholder, initialValue, value: controlledValue, } = searchComponent.props;
|
|
31
|
+
const isControlled = controlledValue !== undefined;
|
|
30
32
|
return (React__default.createElement("div", { className: classnames(styles.wrapper, {
|
|
31
33
|
[styles.withNoFilters]: !filterComponent && !sorting,
|
|
32
34
|
}) },
|
|
@@ -37,9 +39,9 @@ function InternalDataListSearch() {
|
|
|
37
39
|
// If the initial value changes, reset the input.
|
|
38
40
|
, {
|
|
39
41
|
// If the initial value changes, reset the input.
|
|
40
|
-
key: initialValue,
|
|
41
|
-
? searchComponent.props.onSearch
|
|
42
|
-
:
|
|
42
|
+
key: initialValue, value: isControlled ? controlledValue : internalValue, ref: inputRef, placeholder: getPlaceholder(), onChange: isControlled
|
|
43
|
+
? (val) => searchComponent.props.onSearch(val)
|
|
44
|
+
: handleUncontrolledChange, prefix: { icon: "search" }, clearable: "always" })),
|
|
43
45
|
React__default.createElement("div", { className: styles.searchButton },
|
|
44
46
|
React__default.createElement(AnimatedSwitcher, { switched: visible, initialChild: React__default.createElement(Button, { variation: "subtle", icon: "search", ariaLabel: "Search", onClick: toggleSearch }), switchTo: React__default.createElement(Button, { variation: "subtle", icon: "remove", ariaLabel: "Close search bar", onClick: toggleSearch }) }))));
|
|
45
47
|
function getPlaceholder() {
|
|
@@ -53,9 +55,13 @@ function InternalDataListSearch() {
|
|
|
53
55
|
const visibility = !visible;
|
|
54
56
|
setVisible(visibility);
|
|
55
57
|
if (visibility && inputRef.current) {
|
|
56
|
-
setTimeout(inputRef.current.focus, tokens["timing-quick"]);
|
|
58
|
+
setTimeout(() => { var _a; return (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus(); }, tokens["timing-quick"]);
|
|
57
59
|
}
|
|
58
60
|
}
|
|
61
|
+
function handleUncontrolledChange(val) {
|
|
62
|
+
setInternalValue(val);
|
|
63
|
+
debouncedSearch(val);
|
|
64
|
+
}
|
|
59
65
|
}
|
|
60
66
|
|
|
61
67
|
export { DATA_LIST_SEARCH_TEST_ID as D, InternalDataListSearch as I, DataListSearch as a };
|
package/dist/InputDate/index.cjs
CHANGED
|
@@ -30,8 +30,7 @@ require('../_baseAssignValue-cjs.js');
|
|
|
30
30
|
require('../_baseFlatten-cjs.js');
|
|
31
31
|
require('../_setToString-cjs.js');
|
|
32
32
|
require('../AtlantisContext-cjs.js');
|
|
33
|
-
require('../InputText
|
|
34
|
-
require('../FormField-cjs.js');
|
|
33
|
+
require('../InputText-cjs.js');
|
|
35
34
|
require('../FormFieldWrapper-cjs.js');
|
|
36
35
|
require('framer-motion');
|
|
37
36
|
require('../Text-cjs.js');
|
package/dist/InputDate/index.mjs
CHANGED
|
@@ -28,8 +28,7 @@ import '../_baseAssignValue-es.js';
|
|
|
28
28
|
import '../_baseFlatten-es.js';
|
|
29
29
|
import '../_setToString-es.js';
|
|
30
30
|
import '../AtlantisContext-es.js';
|
|
31
|
-
import '../InputText
|
|
32
|
-
import '../FormField-es.js';
|
|
31
|
+
import '../InputText-es.js';
|
|
33
32
|
import '../FormFieldWrapper-es.js';
|
|
34
33
|
import 'framer-motion';
|
|
35
34
|
import '../Text-es.js';
|
package/dist/InputDate-cjs.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var DatePicker = require('./DatePicker-cjs.js');
|
|
5
|
-
var
|
|
5
|
+
var InputText = require('./InputText-cjs.js');
|
|
6
6
|
|
|
7
7
|
function useInputDateActivatorActions({ onChange, onBlur, onFocus, }) {
|
|
8
8
|
const [isFocused, setIsFocused] = React.useState(false);
|
|
@@ -82,7 +82,7 @@ const InputDate = React.forwardRef((props, forwardedRef) => {
|
|
|
82
82
|
return (
|
|
83
83
|
// We prevent the picker from opening on focus for keyboard navigation, so to maintain a good UX for mouse users we want to open the picker on click
|
|
84
84
|
React.createElement("div", { onClick: onClick },
|
|
85
|
-
React.createElement(
|
|
85
|
+
React.createElement(InputText.InputText, { "aria-describedby": activatorProps.ariaDescribedBy, "aria-labelledby": activatorProps.ariaLabelledBy, "aria-required": activatorProps.ariaRequired === "true" ? true : false, autoFocus: props.autoFocus, id: activatorProps.id, autoComplete: props.autoComplete, disabled: props.disabled, error: props.error, readOnly: props.readOnly, placeholder: props.placeholder, size: props.size, inline: props.inline, align: props.align, description: props.description, invalid: props.invalid, required: props.required, name: props.name, value: showEmptyValueLabel ? props.emptyValueLabel || "" : value || "", ref: forwardedRef, suffix: suffix, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: event => {
|
|
86
86
|
var _a, _b;
|
|
87
87
|
if (props.showIcon === false && event.key === "ArrowDown") {
|
|
88
88
|
(_a = activatorProps.onClick) === null || _a === void 0 ? void 0 : _a.call(activatorProps);
|
package/dist/InputDate-es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React__default, { useState, forwardRef, useRef } from 'react';
|
|
2
2
|
import { D as DatePicker } from './DatePicker-es.js';
|
|
3
|
-
import { InputText } from './InputText
|
|
3
|
+
import { I as InputText } from './InputText-es.js';
|
|
4
4
|
|
|
5
5
|
function useInputDateActivatorActions({ onChange, onBlur, onFocus, }) {
|
|
6
6
|
const [isFocused, setIsFocused] = useState(false);
|
|
@@ -80,7 +80,7 @@ const InputDate = forwardRef((props, forwardedRef) => {
|
|
|
80
80
|
return (
|
|
81
81
|
// We prevent the picker from opening on focus for keyboard navigation, so to maintain a good UX for mouse users we want to open the picker on click
|
|
82
82
|
React__default.createElement("div", { onClick: onClick },
|
|
83
|
-
React__default.createElement(InputText, { "aria-describedby": activatorProps.ariaDescribedBy, "aria-labelledby": activatorProps.ariaLabelledBy, "aria-required": activatorProps.ariaRequired === "true" ? true : false, autoFocus: props.autoFocus, id: activatorProps.id, autoComplete: props.autoComplete, disabled: props.disabled, error: props.error, readOnly: props.readOnly, placeholder: props.placeholder, size: props.size, inline: props.inline, align: props.align, description: props.description, invalid: props.invalid, required: props.required, name: props.name,
|
|
83
|
+
React__default.createElement(InputText, { "aria-describedby": activatorProps.ariaDescribedBy, "aria-labelledby": activatorProps.ariaLabelledBy, "aria-required": activatorProps.ariaRequired === "true" ? true : false, autoFocus: props.autoFocus, id: activatorProps.id, autoComplete: props.autoComplete, disabled: props.disabled, error: props.error, readOnly: props.readOnly, placeholder: props.placeholder, size: props.size, inline: props.inline, align: props.align, description: props.description, invalid: props.invalid, required: props.required, name: props.name, value: showEmptyValueLabel ? props.emptyValueLabel || "" : value || "", ref: forwardedRef, suffix: suffix, onFocus: handleFocus, onBlur: handleBlur, onKeyDown: event => {
|
|
84
84
|
var _a, _b;
|
|
85
85
|
if (props.showIcon === false && event.key === "ArrowDown") {
|
|
86
86
|
(_a = activatorProps.onClick) === null || _a === void 0 ? void 0 : _a.call(activatorProps);
|