@porsche-design-system/components-react 3.28.0-rc.3 → 3.29.0-rc.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/CHANGELOG.md +27 -0
- package/cjs/lib/components/input-number.wrapper.cjs +29 -0
- package/cjs/lib/components/input-password.wrapper.cjs +3 -3
- package/cjs/lib/components/input-search.wrapper.cjs +29 -0
- package/cjs/lib/components/input-text.wrapper.cjs +29 -0
- package/cjs/lib/components/select.wrapper.cjs +3 -3
- package/cjs/lib/components/textarea.wrapper.cjs +1 -1
- package/cjs/public-api.cjs +6 -0
- package/esm/lib/components/index.d.ts +3 -0
- package/esm/lib/components/input-number.wrapper.d.ts +192 -0
- package/esm/lib/components/input-number.wrapper.mjs +27 -0
- package/esm/lib/components/input-password.wrapper.d.ts +10 -2
- package/esm/lib/components/input-password.wrapper.mjs +3 -3
- package/esm/lib/components/input-search.wrapper.d.ts +176 -0
- package/esm/lib/components/input-search.wrapper.mjs +27 -0
- package/esm/lib/components/input-text.wrapper.d.ts +192 -0
- package/esm/lib/components/input-text.wrapper.mjs +27 -0
- package/esm/lib/components/select.wrapper.d.ts +8 -0
- package/esm/lib/components/select.wrapper.mjs +3 -3
- package/esm/lib/components/textarea.wrapper.d.ts +4 -4
- package/esm/lib/components/textarea.wrapper.mjs +1 -1
- package/esm/lib/types.d.ts +29 -4
- package/esm/public-api.mjs +3 -0
- package/package.json +3 -3
- package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +429 -271
- package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +4 -24
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-number.wrapper.cjs +40 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-password.wrapper.cjs +4 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-search.wrapper.cjs +40 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-text.wrapper.cjs +40 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/select.wrapper.cjs +4 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/textarea.wrapper.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/toast.wrapper.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.cjs +26 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-number.cjs +44 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-password.cjs +11 -11
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-search.cjs +47 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-text.cjs +43 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.cjs +10 -3
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +1 -3
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.cjs +6 -5
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.cjs +5 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/public-api.cjs +6 -0
- package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +393 -243
- package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +4 -22
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-number.wrapper.mjs +38 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-password.wrapper.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-search.wrapper.mjs +38 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-text.wrapper.mjs +38 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/select.wrapper.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/textarea.wrapper.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/toast.wrapper.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-group.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/canvas.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/content-wrapper.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/crest.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/divider.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown-item.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown-link.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset-wrapper.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex-item.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid-item.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/headline.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/icon.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.mjs +24 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-number.mjs +42 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-password.mjs +12 -12
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-search.mjs +45 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-text.mjs +41 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.mjs +11 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +2 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.mjs +6 -5
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs +6 -5
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/public-api.mjs +3 -0
- package/ssr/esm/lib/components/index.d.ts +3 -0
- package/ssr/esm/lib/components/input-number.wrapper.d.ts +192 -0
- package/ssr/esm/lib/components/input-password.wrapper.d.ts +10 -2
- package/ssr/esm/lib/components/input-search.wrapper.d.ts +176 -0
- package/ssr/esm/lib/components/input-text.wrapper.d.ts +192 -0
- package/ssr/esm/lib/components/select.wrapper.d.ts +8 -0
- package/ssr/esm/lib/components/textarea.wrapper.d.ts +4 -4
- package/ssr/esm/lib/dsr-components/input-base.d.ts +33 -0
- package/ssr/esm/lib/dsr-components/input-number.d.ts +19 -0
- package/ssr/esm/lib/dsr-components/input-password.d.ts +6 -3
- package/ssr/esm/lib/dsr-components/input-search.d.ts +20 -0
- package/ssr/esm/lib/dsr-components/input-text.d.ts +19 -0
- package/ssr/esm/lib/dsr-components/multi-select.d.ts +0 -1
- package/ssr/esm/lib/dsr-components/select.d.ts +2 -1
- package/ssr/esm/lib/types.d.ts +29 -4
- package/{tailwind → tailwindcss}/index.css +194 -133
package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs
CHANGED
|
@@ -4,10 +4,11 @@ import '../../provider.mjs';
|
|
|
4
4
|
import { splitChildren } from '../../splitChildren.mjs';
|
|
5
5
|
import { minifyCss } from '../../minifyCss.mjs';
|
|
6
6
|
import { getSelectCss as getComponentCss$q } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
|
|
7
|
-
import { getHasNativePopoverSupport, getSelectedOptionString, getComboboxAriaAttributes,
|
|
7
|
+
import { getHasNativePopoverSupport, getSelectedOptionString, getComboboxAriaAttributes, getComboboxFilterAriaAttributes, labelId } from '../../../../../../components/dist/utils/esm/utils-entry.mjs';
|
|
8
8
|
import { Label } from './label.mjs';
|
|
9
9
|
import { messageId, StateMessage } from './state-message.mjs';
|
|
10
10
|
import { PIcon } from '../components/icon.wrapper.mjs';
|
|
11
|
+
import { PInputSearch } from '../components/input-search.wrapper.mjs';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* @slot {"name": "label", "description": "Shows a label. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed." }
|
|
@@ -22,11 +23,12 @@ class DSRSelect extends Component {
|
|
|
22
23
|
// The "name" property is reflected as an attribute to ensure compatibility with native form submission.
|
|
23
24
|
// In the React wrapper, all props are synced as properties on the element ref, so reflecting "name" as an attribute ensures it is properly handled in the form submission process.
|
|
24
25
|
isOpen = false;
|
|
25
|
-
|
|
26
|
+
hasFilterResults = true;
|
|
26
27
|
internals;
|
|
27
28
|
defaultValue;
|
|
28
29
|
buttonElement;
|
|
29
30
|
popoverElement;
|
|
31
|
+
filterInputElement;
|
|
30
32
|
selectOptions = [];
|
|
31
33
|
selectOptgroups = [];
|
|
32
34
|
preventOptionUpdate = false; // Used to prevent value watcher from updating options when options are already updated
|
|
@@ -48,11 +50,10 @@ class DSRSelect extends Component {
|
|
|
48
50
|
const popoverId = 'list';
|
|
49
51
|
const descriptionId = this.props.description ? 'description' : undefined;
|
|
50
52
|
const selectMessageId = (this.props.message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(this.props.state) ? messageId : undefined;
|
|
51
|
-
const
|
|
52
|
-
const ariaDescribedBy = [descriptionId, selectMessageId, initialStatusId].filter(Boolean).join(' ');
|
|
53
|
+
const ariaDescribedBy = [descriptionId, selectMessageId].filter(Boolean).join(' ');
|
|
53
54
|
const selectedOption = getSelectedOptionString(otherChildren);
|
|
54
55
|
const style = minifyCss(getComponentCss$q(this.props.isOpen, this.props.disabled, this.props.hideLabel, this.props.state, this.props.compact, this.props.theme, !!this.props.slottedImagePath));
|
|
55
|
-
return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", shadowrootdelegatesfocus: "true", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs("div", { className: "root", children: [jsx(Label, { hasLabel: this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: this.props.label, description: this.props.description, htmlFor: buttonId, isRequired: this.props.required, isDisabled: this.props.disabled }), jsxs("button", { "aria-invalid": this.props.state === 'error' ? 'true' : null, type: "button", role: "combobox", id: buttonId, ...getComboboxAriaAttributes(this.props.isOpen, this.props.required, labelId, ariaDescribedBy, popoverId), disabled: this.props.disabled, children: [this.props.slottedImagePath && jsx("img", { src: this.props.slottedImagePath, alt: "" }), jsx("span", { children: selectedOption }), jsx(PIcon, { className: "icon", name: "arrow-head-down", theme: this.props.theme, color: this.props.disabled ? 'state-disabled' : 'primary', "aria-hidden": "true" })] }),
|
|
56
|
+
return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", shadowrootdelegatesfocus: "true", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs("div", { className: "root", children: [jsx(Label, { hasLabel: this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: this.props.label, description: this.props.description, htmlFor: buttonId, isRequired: this.props.required, isDisabled: this.props.disabled }), jsxs("button", { "aria-invalid": this.props.state === 'error' ? 'true' : null, type: "button", role: "combobox", id: buttonId, ...getComboboxAriaAttributes(this.props.isOpen, this.props.required, labelId, ariaDescribedBy, popoverId), disabled: this.props.disabled, children: [this.props.slottedImagePath && jsx("img", { src: this.props.slottedImagePath, alt: "" }), jsx("span", { children: selectedOption }), jsx(PIcon, { className: "icon", name: "arrow-head-down", theme: this.props.theme, color: this.props.disabled ? 'state-disabled' : 'primary', "aria-hidden": "true" })] }), jsxs("div", { id: popoverId, popover: "manual", tabIndex: -1, role: "dialog", "aria-label": this.props.label, "aria-hidden": this.props.isOpen ? null : 'true', children: [this.props.filter && (jsx(PInputSearch, { className: "filter", name: "filter", label: "Filter options", hideLabel: true, autoComplete: "off", clear: true, compact: true, theme: this.props.theme, ...getComboboxFilterAriaAttributes() })), jsxs("div", { className: "options", role: "listbox", "aria-label": this.props.label, children: [this.props.filter && !this.props.hasFilterResults && (jsx("div", { className: "no-results", "aria-live": "polite", role: "option", children: jsx("span", { "aria-hidden": "true", children: "\u2013" }) })), jsx("slot", {})] })] }), jsx(StateMessage, { hasMessage: (this.props.message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(this.props.state), state: this.props.state, message: this.props.message, theme: this.props.theme, host: null })] })] }), this.props.children] }));
|
|
56
57
|
}
|
|
57
58
|
getSelectedOptionImagePath = (options) => {
|
|
58
59
|
return (options
|
|
@@ -27,7 +27,10 @@ export { PHeading } from './lib/components/heading.wrapper.mjs';
|
|
|
27
27
|
export { PHeadline } from './lib/components/headline.wrapper.mjs';
|
|
28
28
|
export { PIcon } from './lib/components/icon.wrapper.mjs';
|
|
29
29
|
export { PInlineNotification } from './lib/components/inline-notification.wrapper.mjs';
|
|
30
|
+
export { PInputNumber } from './lib/components/input-number.wrapper.mjs';
|
|
30
31
|
export { PInputPassword } from './lib/components/input-password.wrapper.mjs';
|
|
32
|
+
export { PInputSearch } from './lib/components/input-search.wrapper.mjs';
|
|
33
|
+
export { PInputText } from './lib/components/input-text.wrapper.mjs';
|
|
31
34
|
export { PLink } from './lib/components/link.wrapper.mjs';
|
|
32
35
|
export { PLinkPure } from './lib/components/link-pure.wrapper.mjs';
|
|
33
36
|
export { PLinkSocial } from './lib/components/link-social.wrapper.mjs';
|
|
@@ -26,7 +26,10 @@ export * from './heading.wrapper';
|
|
|
26
26
|
export * from './headline.wrapper';
|
|
27
27
|
export * from './icon.wrapper';
|
|
28
28
|
export * from './inline-notification.wrapper';
|
|
29
|
+
export * from './input-number.wrapper';
|
|
29
30
|
export * from './input-password.wrapper';
|
|
31
|
+
export * from './input-search.wrapper';
|
|
32
|
+
export * from './input-text.wrapper';
|
|
30
33
|
export * from './link.wrapper';
|
|
31
34
|
export * from './link-pure.wrapper';
|
|
32
35
|
export * from './link-social.wrapper';
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import type { BaseProps } from '../../BaseProps';
|
|
2
|
+
import type { InputNumberAutoComplete, BreakpointCustomizable, InputNumberBlurEventDetail, InputNumberChangeEventDetail, InputNumberInputEventDetail, InputNumberState, Theme } from '../types';
|
|
3
|
+
export type PInputNumberProps = BaseProps & {
|
|
4
|
+
/**
|
|
5
|
+
* Specifies whether the input can be autofilled by the browser
|
|
6
|
+
*/
|
|
7
|
+
autoComplete?: InputNumberAutoComplete;
|
|
8
|
+
/**
|
|
9
|
+
* Displays as a compact version.
|
|
10
|
+
*/
|
|
11
|
+
compact?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Show or hide the increment/decrement stepper controls.
|
|
14
|
+
*/
|
|
15
|
+
controls?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The description text.
|
|
18
|
+
*/
|
|
19
|
+
description?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Marks the number input as disabled.
|
|
22
|
+
*/
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The id of a form element the number input should be associated with.
|
|
26
|
+
*/
|
|
27
|
+
form?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Show or hide label and description text. For better accessibility, it is recommended to show the label.
|
|
30
|
+
*/
|
|
31
|
+
hideLabel?: BreakpointCustomizable<boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* The label text.
|
|
34
|
+
*/
|
|
35
|
+
label?: string;
|
|
36
|
+
/**
|
|
37
|
+
* @experimental Shows a loading indicator.
|
|
38
|
+
*/
|
|
39
|
+
loading?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* The max value of the number input.
|
|
42
|
+
*/
|
|
43
|
+
max?: number;
|
|
44
|
+
/**
|
|
45
|
+
* The message styled depending on validation state.
|
|
46
|
+
*/
|
|
47
|
+
message?: string;
|
|
48
|
+
/**
|
|
49
|
+
* The min value of the number input.
|
|
50
|
+
*/
|
|
51
|
+
min?: number;
|
|
52
|
+
/**
|
|
53
|
+
* The name of the number input.
|
|
54
|
+
*/
|
|
55
|
+
name: string;
|
|
56
|
+
/**
|
|
57
|
+
* Emitted when the number input has lost focus.
|
|
58
|
+
*/
|
|
59
|
+
onBlur?: (event: CustomEvent<InputNumberBlurEventDetail>) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Emitted when the number input loses focus after its value was changed.
|
|
62
|
+
*/
|
|
63
|
+
onChange?: (event: CustomEvent<InputNumberChangeEventDetail>) => void;
|
|
64
|
+
/**
|
|
65
|
+
* Emitted when the value has been changed as a direct result of a user action.
|
|
66
|
+
*/
|
|
67
|
+
onInput?: (event: CustomEvent<InputNumberInputEventDetail>) => void;
|
|
68
|
+
/**
|
|
69
|
+
* The placeholder text.
|
|
70
|
+
*/
|
|
71
|
+
placeholder?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Specifies whether the number input should be read-only.
|
|
74
|
+
*/
|
|
75
|
+
readOnly?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Marks the number input as required.
|
|
78
|
+
*/
|
|
79
|
+
required?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* The validation state.
|
|
82
|
+
*/
|
|
83
|
+
state?: InputNumberState;
|
|
84
|
+
/**
|
|
85
|
+
* The granularity that the value must adhere to.
|
|
86
|
+
*/
|
|
87
|
+
step?: number;
|
|
88
|
+
/**
|
|
89
|
+
* Adapts the color depending on the theme.
|
|
90
|
+
*/
|
|
91
|
+
theme?: Theme;
|
|
92
|
+
/**
|
|
93
|
+
* The number input value.
|
|
94
|
+
*/
|
|
95
|
+
value?: string;
|
|
96
|
+
};
|
|
97
|
+
export declare const PInputNumber: import("react").ForwardRefExoticComponent<import("react").DOMAttributes<{}> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
|
|
98
|
+
/**
|
|
99
|
+
* Specifies whether the input can be autofilled by the browser
|
|
100
|
+
*/
|
|
101
|
+
autoComplete?: InputNumberAutoComplete;
|
|
102
|
+
/**
|
|
103
|
+
* Displays as a compact version.
|
|
104
|
+
*/
|
|
105
|
+
compact?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Show or hide the increment/decrement stepper controls.
|
|
108
|
+
*/
|
|
109
|
+
controls?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* The description text.
|
|
112
|
+
*/
|
|
113
|
+
description?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Marks the number input as disabled.
|
|
116
|
+
*/
|
|
117
|
+
disabled?: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* The id of a form element the number input should be associated with.
|
|
120
|
+
*/
|
|
121
|
+
form?: string;
|
|
122
|
+
/**
|
|
123
|
+
* Show or hide label and description text. For better accessibility, it is recommended to show the label.
|
|
124
|
+
*/
|
|
125
|
+
hideLabel?: BreakpointCustomizable<boolean>;
|
|
126
|
+
/**
|
|
127
|
+
* The label text.
|
|
128
|
+
*/
|
|
129
|
+
label?: string;
|
|
130
|
+
/**
|
|
131
|
+
* @experimental Shows a loading indicator.
|
|
132
|
+
*/
|
|
133
|
+
loading?: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* The max value of the number input.
|
|
136
|
+
*/
|
|
137
|
+
max?: number;
|
|
138
|
+
/**
|
|
139
|
+
* The message styled depending on validation state.
|
|
140
|
+
*/
|
|
141
|
+
message?: string;
|
|
142
|
+
/**
|
|
143
|
+
* The min value of the number input.
|
|
144
|
+
*/
|
|
145
|
+
min?: number;
|
|
146
|
+
/**
|
|
147
|
+
* The name of the number input.
|
|
148
|
+
*/
|
|
149
|
+
name: string;
|
|
150
|
+
/**
|
|
151
|
+
* Emitted when the number input has lost focus.
|
|
152
|
+
*/
|
|
153
|
+
onBlur?: (event: CustomEvent<InputNumberBlurEventDetail>) => void;
|
|
154
|
+
/**
|
|
155
|
+
* Emitted when the number input loses focus after its value was changed.
|
|
156
|
+
*/
|
|
157
|
+
onChange?: (event: CustomEvent<InputNumberChangeEventDetail>) => void;
|
|
158
|
+
/**
|
|
159
|
+
* Emitted when the value has been changed as a direct result of a user action.
|
|
160
|
+
*/
|
|
161
|
+
onInput?: (event: CustomEvent<InputNumberInputEventDetail>) => void;
|
|
162
|
+
/**
|
|
163
|
+
* The placeholder text.
|
|
164
|
+
*/
|
|
165
|
+
placeholder?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Specifies whether the number input should be read-only.
|
|
168
|
+
*/
|
|
169
|
+
readOnly?: boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Marks the number input as required.
|
|
172
|
+
*/
|
|
173
|
+
required?: boolean;
|
|
174
|
+
/**
|
|
175
|
+
* The validation state.
|
|
176
|
+
*/
|
|
177
|
+
state?: InputNumberState;
|
|
178
|
+
/**
|
|
179
|
+
* The granularity that the value must adhere to.
|
|
180
|
+
*/
|
|
181
|
+
step?: number;
|
|
182
|
+
/**
|
|
183
|
+
* Adapts the color depending on the theme.
|
|
184
|
+
*/
|
|
185
|
+
theme?: Theme;
|
|
186
|
+
/**
|
|
187
|
+
* The number input value.
|
|
188
|
+
*/
|
|
189
|
+
value?: string;
|
|
190
|
+
} & {
|
|
191
|
+
children?: import("react").ReactNode | undefined;
|
|
192
|
+
} & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -6,7 +6,7 @@ export type PInputPasswordProps = BaseProps & {
|
|
|
6
6
|
*/
|
|
7
7
|
autoComplete?: InputPasswordAutoComplete;
|
|
8
8
|
/**
|
|
9
|
-
* Displays as compact version.
|
|
9
|
+
* Displays as a compact version.
|
|
10
10
|
*/
|
|
11
11
|
compact?: boolean;
|
|
12
12
|
/**
|
|
@@ -29,6 +29,10 @@ export type PInputPasswordProps = BaseProps & {
|
|
|
29
29
|
* The label text.
|
|
30
30
|
*/
|
|
31
31
|
label?: string;
|
|
32
|
+
/**
|
|
33
|
+
* @experimental Shows a loading indicator.
|
|
34
|
+
*/
|
|
35
|
+
loading?: boolean;
|
|
32
36
|
/**
|
|
33
37
|
* The max length of the password input.
|
|
34
38
|
*/
|
|
@@ -92,7 +96,7 @@ export declare const PInputPassword: import("react").ForwardRefExoticComponent<i
|
|
|
92
96
|
*/
|
|
93
97
|
autoComplete?: InputPasswordAutoComplete;
|
|
94
98
|
/**
|
|
95
|
-
* Displays as compact version.
|
|
99
|
+
* Displays as a compact version.
|
|
96
100
|
*/
|
|
97
101
|
compact?: boolean;
|
|
98
102
|
/**
|
|
@@ -115,6 +119,10 @@ export declare const PInputPassword: import("react").ForwardRefExoticComponent<i
|
|
|
115
119
|
* The label text.
|
|
116
120
|
*/
|
|
117
121
|
label?: string;
|
|
122
|
+
/**
|
|
123
|
+
* @experimental Shows a loading indicator.
|
|
124
|
+
*/
|
|
125
|
+
loading?: boolean;
|
|
118
126
|
/**
|
|
119
127
|
* The max length of the password input.
|
|
120
128
|
*/
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import type { BaseProps } from '../../BaseProps';
|
|
2
|
+
import type { InputSearchAutoComplete, BreakpointCustomizable, InputSearchBlurEventDetail, InputSearchChangeEventDetail, InputSearchInputEventDetail, InputSearchState, Theme } from '../types';
|
|
3
|
+
export type PInputSearchProps = BaseProps & {
|
|
4
|
+
/**
|
|
5
|
+
* Specifies whether the input can be autofilled by the browser
|
|
6
|
+
*/
|
|
7
|
+
autoComplete?: InputSearchAutoComplete;
|
|
8
|
+
/**
|
|
9
|
+
* Show clear input value button
|
|
10
|
+
*/
|
|
11
|
+
clear?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Displays as a compact version.
|
|
14
|
+
*/
|
|
15
|
+
compact?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The description text.
|
|
18
|
+
*/
|
|
19
|
+
description?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Marks the search input as disabled.
|
|
22
|
+
*/
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The id of a form element the search input should be associated with.
|
|
26
|
+
*/
|
|
27
|
+
form?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Show or hide label and description text. For better accessibility it is recommended to show the label.
|
|
30
|
+
*/
|
|
31
|
+
hideLabel?: BreakpointCustomizable<boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* Show search indicator icon
|
|
34
|
+
*/
|
|
35
|
+
indicator?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* The label text.
|
|
38
|
+
*/
|
|
39
|
+
label?: string;
|
|
40
|
+
/**
|
|
41
|
+
* @experimental Shows a loading indicator.
|
|
42
|
+
*/
|
|
43
|
+
loading?: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The message styled depending on validation state.
|
|
46
|
+
*/
|
|
47
|
+
message?: string;
|
|
48
|
+
/**
|
|
49
|
+
* The name of the search input.
|
|
50
|
+
*/
|
|
51
|
+
name: string;
|
|
52
|
+
/**
|
|
53
|
+
* Emitted when the search input has lost focus.
|
|
54
|
+
*/
|
|
55
|
+
onBlur?: (event: CustomEvent<InputSearchBlurEventDetail>) => void;
|
|
56
|
+
/**
|
|
57
|
+
* Emitted when the search input loses focus after its value was changed.
|
|
58
|
+
*/
|
|
59
|
+
onChange?: (event: CustomEvent<InputSearchChangeEventDetail>) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Emitted when the value has been changed as a direct result of a user action.
|
|
62
|
+
*/
|
|
63
|
+
onInput?: (event: CustomEvent<InputSearchInputEventDetail>) => void;
|
|
64
|
+
/**
|
|
65
|
+
* The placeholder text.
|
|
66
|
+
*/
|
|
67
|
+
placeholder?: string;
|
|
68
|
+
/**
|
|
69
|
+
* Specifies whether the search input should be read-only.
|
|
70
|
+
*/
|
|
71
|
+
readOnly?: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Marks the search input as required.
|
|
74
|
+
*/
|
|
75
|
+
required?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* The validation state.
|
|
78
|
+
*/
|
|
79
|
+
state?: InputSearchState;
|
|
80
|
+
/**
|
|
81
|
+
* Adapts the color depending on the theme.
|
|
82
|
+
*/
|
|
83
|
+
theme?: Theme;
|
|
84
|
+
/**
|
|
85
|
+
* The search input value.
|
|
86
|
+
*/
|
|
87
|
+
value?: string;
|
|
88
|
+
};
|
|
89
|
+
export declare const PInputSearch: import("react").ForwardRefExoticComponent<import("react").DOMAttributes<{}> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
|
|
90
|
+
/**
|
|
91
|
+
* Specifies whether the input can be autofilled by the browser
|
|
92
|
+
*/
|
|
93
|
+
autoComplete?: InputSearchAutoComplete;
|
|
94
|
+
/**
|
|
95
|
+
* Show clear input value button
|
|
96
|
+
*/
|
|
97
|
+
clear?: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Displays as a compact version.
|
|
100
|
+
*/
|
|
101
|
+
compact?: boolean;
|
|
102
|
+
/**
|
|
103
|
+
* The description text.
|
|
104
|
+
*/
|
|
105
|
+
description?: string;
|
|
106
|
+
/**
|
|
107
|
+
* Marks the search input as disabled.
|
|
108
|
+
*/
|
|
109
|
+
disabled?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* The id of a form element the search input should be associated with.
|
|
112
|
+
*/
|
|
113
|
+
form?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Show or hide label and description text. For better accessibility it is recommended to show the label.
|
|
116
|
+
*/
|
|
117
|
+
hideLabel?: BreakpointCustomizable<boolean>;
|
|
118
|
+
/**
|
|
119
|
+
* Show search indicator icon
|
|
120
|
+
*/
|
|
121
|
+
indicator?: boolean;
|
|
122
|
+
/**
|
|
123
|
+
* The label text.
|
|
124
|
+
*/
|
|
125
|
+
label?: string;
|
|
126
|
+
/**
|
|
127
|
+
* @experimental Shows a loading indicator.
|
|
128
|
+
*/
|
|
129
|
+
loading?: boolean;
|
|
130
|
+
/**
|
|
131
|
+
* The message styled depending on validation state.
|
|
132
|
+
*/
|
|
133
|
+
message?: string;
|
|
134
|
+
/**
|
|
135
|
+
* The name of the search input.
|
|
136
|
+
*/
|
|
137
|
+
name: string;
|
|
138
|
+
/**
|
|
139
|
+
* Emitted when the search input has lost focus.
|
|
140
|
+
*/
|
|
141
|
+
onBlur?: (event: CustomEvent<InputSearchBlurEventDetail>) => void;
|
|
142
|
+
/**
|
|
143
|
+
* Emitted when the search input loses focus after its value was changed.
|
|
144
|
+
*/
|
|
145
|
+
onChange?: (event: CustomEvent<InputSearchChangeEventDetail>) => void;
|
|
146
|
+
/**
|
|
147
|
+
* Emitted when the value has been changed as a direct result of a user action.
|
|
148
|
+
*/
|
|
149
|
+
onInput?: (event: CustomEvent<InputSearchInputEventDetail>) => void;
|
|
150
|
+
/**
|
|
151
|
+
* The placeholder text.
|
|
152
|
+
*/
|
|
153
|
+
placeholder?: string;
|
|
154
|
+
/**
|
|
155
|
+
* Specifies whether the search input should be read-only.
|
|
156
|
+
*/
|
|
157
|
+
readOnly?: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* Marks the search input as required.
|
|
160
|
+
*/
|
|
161
|
+
required?: boolean;
|
|
162
|
+
/**
|
|
163
|
+
* The validation state.
|
|
164
|
+
*/
|
|
165
|
+
state?: InputSearchState;
|
|
166
|
+
/**
|
|
167
|
+
* Adapts the color depending on the theme.
|
|
168
|
+
*/
|
|
169
|
+
theme?: Theme;
|
|
170
|
+
/**
|
|
171
|
+
* The search input value.
|
|
172
|
+
*/
|
|
173
|
+
value?: string;
|
|
174
|
+
} & {
|
|
175
|
+
children?: import("react").ReactNode | undefined;
|
|
176
|
+
} & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import type { BaseProps } from '../../BaseProps';
|
|
2
|
+
import type { InputTextAutoComplete, BreakpointCustomizable, InputTextBlurEventDetail, InputTextChangeEventDetail, InputTextInputEventDetail, InputTextState, Theme } from '../types';
|
|
3
|
+
export type PInputTextProps = BaseProps & {
|
|
4
|
+
/**
|
|
5
|
+
* Specifies whether the input can be autofilled by the browser
|
|
6
|
+
*/
|
|
7
|
+
autoComplete?: InputTextAutoComplete;
|
|
8
|
+
/**
|
|
9
|
+
* Displays as a compact version.
|
|
10
|
+
*/
|
|
11
|
+
compact?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Show or hide the character counter.
|
|
14
|
+
*/
|
|
15
|
+
counter?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The description text.
|
|
18
|
+
*/
|
|
19
|
+
description?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Marks the text input as disabled.
|
|
22
|
+
*/
|
|
23
|
+
disabled?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* The id of a form element the text input should be associated with.
|
|
26
|
+
*/
|
|
27
|
+
form?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Show or hide label and description text. For better accessibility, it is recommended to show the label.
|
|
30
|
+
*/
|
|
31
|
+
hideLabel?: BreakpointCustomizable<boolean>;
|
|
32
|
+
/**
|
|
33
|
+
* The label text.
|
|
34
|
+
*/
|
|
35
|
+
label?: string;
|
|
36
|
+
/**
|
|
37
|
+
* @experimental Shows a loading indicator.
|
|
38
|
+
*/
|
|
39
|
+
loading?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* The max length of the text input.
|
|
42
|
+
*/
|
|
43
|
+
maxLength?: number;
|
|
44
|
+
/**
|
|
45
|
+
* The message styled depending on validation state.
|
|
46
|
+
*/
|
|
47
|
+
message?: string;
|
|
48
|
+
/**
|
|
49
|
+
* The min length of the text input.
|
|
50
|
+
*/
|
|
51
|
+
minLength?: number;
|
|
52
|
+
/**
|
|
53
|
+
* The name of the text input.
|
|
54
|
+
*/
|
|
55
|
+
name: string;
|
|
56
|
+
/**
|
|
57
|
+
* Emitted when the text input has lost focus.
|
|
58
|
+
*/
|
|
59
|
+
onBlur?: (event: CustomEvent<InputTextBlurEventDetail>) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Emitted when the text input loses focus after its value was changed.
|
|
62
|
+
*/
|
|
63
|
+
onChange?: (event: CustomEvent<InputTextChangeEventDetail>) => void;
|
|
64
|
+
/**
|
|
65
|
+
* Emitted when the value has been changed as a direct result of a user action.
|
|
66
|
+
*/
|
|
67
|
+
onInput?: (event: CustomEvent<InputTextInputEventDetail>) => void;
|
|
68
|
+
/**
|
|
69
|
+
* The placeholder text.
|
|
70
|
+
*/
|
|
71
|
+
placeholder?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Specifies whether the text input should be read-only.
|
|
74
|
+
*/
|
|
75
|
+
readOnly?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Marks the text input as required.
|
|
78
|
+
*/
|
|
79
|
+
required?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Indicate whether to enable spell-checking.
|
|
82
|
+
*/
|
|
83
|
+
spellCheck?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* The validation state.
|
|
86
|
+
*/
|
|
87
|
+
state?: InputTextState;
|
|
88
|
+
/**
|
|
89
|
+
* Adapts the color depending on the theme.
|
|
90
|
+
*/
|
|
91
|
+
theme?: Theme;
|
|
92
|
+
/**
|
|
93
|
+
* The text input value.
|
|
94
|
+
*/
|
|
95
|
+
value?: string;
|
|
96
|
+
};
|
|
97
|
+
export declare const PInputText: import("react").ForwardRefExoticComponent<import("react").DOMAttributes<{}> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
|
|
98
|
+
/**
|
|
99
|
+
* Specifies whether the input can be autofilled by the browser
|
|
100
|
+
*/
|
|
101
|
+
autoComplete?: InputTextAutoComplete;
|
|
102
|
+
/**
|
|
103
|
+
* Displays as a compact version.
|
|
104
|
+
*/
|
|
105
|
+
compact?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Show or hide the character counter.
|
|
108
|
+
*/
|
|
109
|
+
counter?: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* The description text.
|
|
112
|
+
*/
|
|
113
|
+
description?: string;
|
|
114
|
+
/**
|
|
115
|
+
* Marks the text input as disabled.
|
|
116
|
+
*/
|
|
117
|
+
disabled?: boolean;
|
|
118
|
+
/**
|
|
119
|
+
* The id of a form element the text input should be associated with.
|
|
120
|
+
*/
|
|
121
|
+
form?: string;
|
|
122
|
+
/**
|
|
123
|
+
* Show or hide label and description text. For better accessibility, it is recommended to show the label.
|
|
124
|
+
*/
|
|
125
|
+
hideLabel?: BreakpointCustomizable<boolean>;
|
|
126
|
+
/**
|
|
127
|
+
* The label text.
|
|
128
|
+
*/
|
|
129
|
+
label?: string;
|
|
130
|
+
/**
|
|
131
|
+
* @experimental Shows a loading indicator.
|
|
132
|
+
*/
|
|
133
|
+
loading?: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* The max length of the text input.
|
|
136
|
+
*/
|
|
137
|
+
maxLength?: number;
|
|
138
|
+
/**
|
|
139
|
+
* The message styled depending on validation state.
|
|
140
|
+
*/
|
|
141
|
+
message?: string;
|
|
142
|
+
/**
|
|
143
|
+
* The min length of the text input.
|
|
144
|
+
*/
|
|
145
|
+
minLength?: number;
|
|
146
|
+
/**
|
|
147
|
+
* The name of the text input.
|
|
148
|
+
*/
|
|
149
|
+
name: string;
|
|
150
|
+
/**
|
|
151
|
+
* Emitted when the text input has lost focus.
|
|
152
|
+
*/
|
|
153
|
+
onBlur?: (event: CustomEvent<InputTextBlurEventDetail>) => void;
|
|
154
|
+
/**
|
|
155
|
+
* Emitted when the text input loses focus after its value was changed.
|
|
156
|
+
*/
|
|
157
|
+
onChange?: (event: CustomEvent<InputTextChangeEventDetail>) => void;
|
|
158
|
+
/**
|
|
159
|
+
* Emitted when the value has been changed as a direct result of a user action.
|
|
160
|
+
*/
|
|
161
|
+
onInput?: (event: CustomEvent<InputTextInputEventDetail>) => void;
|
|
162
|
+
/**
|
|
163
|
+
* The placeholder text.
|
|
164
|
+
*/
|
|
165
|
+
placeholder?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Specifies whether the text input should be read-only.
|
|
168
|
+
*/
|
|
169
|
+
readOnly?: boolean;
|
|
170
|
+
/**
|
|
171
|
+
* Marks the text input as required.
|
|
172
|
+
*/
|
|
173
|
+
required?: boolean;
|
|
174
|
+
/**
|
|
175
|
+
* Indicate whether to enable spell-checking.
|
|
176
|
+
*/
|
|
177
|
+
spellCheck?: boolean;
|
|
178
|
+
/**
|
|
179
|
+
* The validation state.
|
|
180
|
+
*/
|
|
181
|
+
state?: InputTextState;
|
|
182
|
+
/**
|
|
183
|
+
* Adapts the color depending on the theme.
|
|
184
|
+
*/
|
|
185
|
+
theme?: Theme;
|
|
186
|
+
/**
|
|
187
|
+
* The text input value.
|
|
188
|
+
*/
|
|
189
|
+
value?: string;
|
|
190
|
+
} & {
|
|
191
|
+
children?: import("react").ReactNode | undefined;
|
|
192
|
+
} & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -17,6 +17,10 @@ export type PSelectProps = BaseProps & {
|
|
|
17
17
|
* Changes the direction to which the dropdown list appears.
|
|
18
18
|
*/
|
|
19
19
|
dropdownDirection?: SelectDropdownDirection;
|
|
20
|
+
/**
|
|
21
|
+
* Shows an input in the dropdown allowing options to be filtered.
|
|
22
|
+
*/
|
|
23
|
+
filter?: boolean;
|
|
20
24
|
/**
|
|
21
25
|
* The id of a form element the select should be associated with.
|
|
22
26
|
*/
|
|
@@ -75,6 +79,10 @@ export declare const PSelect: import("react").ForwardRefExoticComponent<import("
|
|
|
75
79
|
* Changes the direction to which the dropdown list appears.
|
|
76
80
|
*/
|
|
77
81
|
dropdownDirection?: SelectDropdownDirection;
|
|
82
|
+
/**
|
|
83
|
+
* Shows an input in the dropdown allowing options to be filtered.
|
|
84
|
+
*/
|
|
85
|
+
filter?: boolean;
|
|
78
86
|
/**
|
|
79
87
|
* The id of a form element the select should be associated with.
|
|
80
88
|
*/
|