@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/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,33 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
|
|
|
14
14
|
|
|
15
15
|
## [Unreleased]
|
|
16
16
|
|
|
17
|
+
## [3.29.0-rc.0] - 2025-06-27
|
|
18
|
+
|
|
19
|
+
#### Added
|
|
20
|
+
|
|
21
|
+
- `Input Search`: ([#3874](https://github.com/porsche-design-system/porsche-design-system/pull/3874))
|
|
22
|
+
- `Input Number`, `Input Password`: added loading state
|
|
23
|
+
([#3874](https://github.com/porsche-design-system/porsche-design-system/pull/3874))
|
|
24
|
+
- `Input Text`: ([#3897](https://github.com/porsche-design-system/porsche-design-system/pull/3897))
|
|
25
|
+
- `Select`: `filter` prop to enable an input in the dropdown to filter options
|
|
26
|
+
([#3893](https://github.com/porsche-design-system/porsche-design-system/pull/3893))
|
|
27
|
+
- `Flyout`: expose `--ref-p-flyout-pt` and `--ref-p-flyout-px` read only CSS variable
|
|
28
|
+
([#3902](https://github.com/porsche-design-system/porsche-design-system/pull/3902))
|
|
29
|
+
|
|
30
|
+
## [3.28.0] - 2025-06-02
|
|
31
|
+
|
|
32
|
+
#### Added
|
|
33
|
+
|
|
34
|
+
- `Input Number`: ([#3855](https://github.com/porsche-design-system/porsche-design-system/pull/3855))
|
|
35
|
+
|
|
36
|
+
#### Fixed
|
|
37
|
+
|
|
38
|
+
- `Select Wrapper`: update of scroll position if dropdown is navigated with keyboard
|
|
39
|
+
([#3858](https://github.com/porsche-design-system/porsche-design-system/pull/3858))
|
|
40
|
+
- `Select`, `Multi Select`: replacement of static (english) a11y announcement of active `option` with dynamic
|
|
41
|
+
announcement through `ariaActiveDescendantElement`
|
|
42
|
+
([#3826](https://github.com/porsche-design-system/porsche-design-system/pull/3826))
|
|
43
|
+
|
|
17
44
|
## [3.28.0-rc.3] - 2025-05-19
|
|
18
45
|
|
|
19
46
|
### Added
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var hooks = require('../../hooks.cjs');
|
|
7
|
+
var utils = require('../../utils.cjs');
|
|
8
|
+
|
|
9
|
+
const PInputNumber = /*#__PURE__*/ react.forwardRef(({ autoComplete, compact = false, controls = false, description = '', disabled = false, form, hideLabel = false, label = '', loading = false, max, message = '', min, name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, state = 'none', step = 1, theme, value = '', className, ...rest }, ref) => {
|
|
10
|
+
const elementRef = react.useRef(undefined);
|
|
11
|
+
hooks.useEventCallback(elementRef, 'blur', onBlur);
|
|
12
|
+
hooks.useEventCallback(elementRef, 'change', onChange);
|
|
13
|
+
hooks.useEventCallback(elementRef, 'input', onInput);
|
|
14
|
+
const WebComponentTag = hooks.usePrefix('p-input-number');
|
|
15
|
+
const propsToSync = [autoComplete, compact, controls, description, disabled, form, hideLabel, label, loading, max, message, min, name, placeholder, readOnly, required, state, step, theme || hooks.useTheme(), value];
|
|
16
|
+
hooks.useBrowserLayoutEffect(() => {
|
|
17
|
+
const { current } = elementRef;
|
|
18
|
+
['autoComplete', 'compact', 'controls', 'description', 'disabled', 'form', 'hideLabel', 'label', 'loading', 'max', 'message', 'min', 'name', 'placeholder', 'readOnly', 'required', 'state', 'step', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
19
|
+
}, propsToSync);
|
|
20
|
+
const props = {
|
|
21
|
+
...rest,
|
|
22
|
+
class: hooks.useMergedClass(elementRef, className),
|
|
23
|
+
ref: utils.syncRef(elementRef, ref)
|
|
24
|
+
};
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
return jsxRuntime.jsx(WebComponentTag, { ...props });
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
exports.PInputNumber = PInputNumber;
|
|
@@ -6,16 +6,16 @@ var react = require('react');
|
|
|
6
6
|
var hooks = require('../../hooks.cjs');
|
|
7
7
|
var utils = require('../../utils.cjs');
|
|
8
8
|
|
|
9
|
-
const PInputPassword = /*#__PURE__*/ react.forwardRef(({ autoComplete
|
|
9
|
+
const PInputPassword = /*#__PURE__*/ react.forwardRef(({ autoComplete, compact = false, description = '', disabled = false, form, hideLabel = false, label = '', loading = false, maxLength, message = '', minLength, name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, state = 'none', theme, toggle = false, value = '', className, ...rest }, ref) => {
|
|
10
10
|
const elementRef = react.useRef(undefined);
|
|
11
11
|
hooks.useEventCallback(elementRef, 'blur', onBlur);
|
|
12
12
|
hooks.useEventCallback(elementRef, 'change', onChange);
|
|
13
13
|
hooks.useEventCallback(elementRef, 'input', onInput);
|
|
14
14
|
const WebComponentTag = hooks.usePrefix('p-input-password');
|
|
15
|
-
const propsToSync = [autoComplete, compact, description, disabled, form, hideLabel, label, maxLength, message, minLength, name, placeholder, readOnly, required, state, theme || hooks.useTheme(), toggle, value];
|
|
15
|
+
const propsToSync = [autoComplete, compact, description, disabled, form, hideLabel, label, loading, maxLength, message, minLength, name, placeholder, readOnly, required, state, theme || hooks.useTheme(), toggle, value];
|
|
16
16
|
hooks.useBrowserLayoutEffect(() => {
|
|
17
17
|
const { current } = elementRef;
|
|
18
|
-
['autoComplete', 'compact', 'description', 'disabled', 'form', 'hideLabel', 'label', 'maxLength', 'message', 'minLength', 'name', 'placeholder', 'readOnly', 'required', 'state', 'theme', 'toggle', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
18
|
+
['autoComplete', 'compact', 'description', 'disabled', 'form', 'hideLabel', 'label', 'loading', 'maxLength', 'message', 'minLength', 'name', 'placeholder', 'readOnly', 'required', 'state', 'theme', 'toggle', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
19
19
|
}, propsToSync);
|
|
20
20
|
const props = {
|
|
21
21
|
...rest,
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var hooks = require('../../hooks.cjs');
|
|
7
|
+
var utils = require('../../utils.cjs');
|
|
8
|
+
|
|
9
|
+
const PInputSearch = /*#__PURE__*/ react.forwardRef(({ autoComplete, clear = false, compact = false, description = '', disabled = false, form, hideLabel = false, indicator = true, label = '', loading = false, message = '', name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, state = 'none', theme, value = '', className, ...rest }, ref) => {
|
|
10
|
+
const elementRef = react.useRef(undefined);
|
|
11
|
+
hooks.useEventCallback(elementRef, 'blur', onBlur);
|
|
12
|
+
hooks.useEventCallback(elementRef, 'change', onChange);
|
|
13
|
+
hooks.useEventCallback(elementRef, 'input', onInput);
|
|
14
|
+
const WebComponentTag = hooks.usePrefix('p-input-search');
|
|
15
|
+
const propsToSync = [autoComplete, clear, compact, description, disabled, form, hideLabel, indicator, label, loading, message, name, placeholder, readOnly, required, state, theme || hooks.useTheme(), value];
|
|
16
|
+
hooks.useBrowserLayoutEffect(() => {
|
|
17
|
+
const { current } = elementRef;
|
|
18
|
+
['autoComplete', 'clear', 'compact', 'description', 'disabled', 'form', 'hideLabel', 'indicator', 'label', 'loading', 'message', 'name', 'placeholder', 'readOnly', 'required', 'state', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
19
|
+
}, propsToSync);
|
|
20
|
+
const props = {
|
|
21
|
+
...rest,
|
|
22
|
+
class: hooks.useMergedClass(elementRef, className),
|
|
23
|
+
ref: utils.syncRef(elementRef, ref)
|
|
24
|
+
};
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
return jsxRuntime.jsx(WebComponentTag, { ...props });
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
exports.PInputSearch = PInputSearch;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var hooks = require('../../hooks.cjs');
|
|
7
|
+
var utils = require('../../utils.cjs');
|
|
8
|
+
|
|
9
|
+
const PInputText = /*#__PURE__*/ react.forwardRef(({ autoComplete, compact = false, counter = false, description = '', disabled = false, form, hideLabel = false, label = '', loading = false, maxLength, message = '', minLength, name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, spellCheck, state = 'none', theme, value = '', className, ...rest }, ref) => {
|
|
10
|
+
const elementRef = react.useRef(undefined);
|
|
11
|
+
hooks.useEventCallback(elementRef, 'blur', onBlur);
|
|
12
|
+
hooks.useEventCallback(elementRef, 'change', onChange);
|
|
13
|
+
hooks.useEventCallback(elementRef, 'input', onInput);
|
|
14
|
+
const WebComponentTag = hooks.usePrefix('p-input-text');
|
|
15
|
+
const propsToSync = [autoComplete, compact, counter, description, disabled, form, hideLabel, label, loading, maxLength, message, minLength, name, placeholder, readOnly, required, spellCheck, state, theme || hooks.useTheme(), value];
|
|
16
|
+
hooks.useBrowserLayoutEffect(() => {
|
|
17
|
+
const { current } = elementRef;
|
|
18
|
+
['autoComplete', 'compact', 'counter', 'description', 'disabled', 'form', 'hideLabel', 'label', 'loading', 'maxLength', 'message', 'minLength', 'name', 'placeholder', 'readOnly', 'required', 'spellCheck', 'state', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
19
|
+
}, propsToSync);
|
|
20
|
+
const props = {
|
|
21
|
+
...rest,
|
|
22
|
+
class: hooks.useMergedClass(elementRef, className),
|
|
23
|
+
ref: utils.syncRef(elementRef, ref)
|
|
24
|
+
};
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
return jsxRuntime.jsx(WebComponentTag, { ...props });
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
exports.PInputText = PInputText;
|
|
@@ -6,14 +6,14 @@ var react = require('react');
|
|
|
6
6
|
var hooks = require('../../hooks.cjs');
|
|
7
7
|
var utils = require('../../utils.cjs');
|
|
8
8
|
|
|
9
|
-
const PSelect = /*#__PURE__*/ react.forwardRef(({ compact = false, description = '', disabled = false, dropdownDirection = 'auto', form, hideLabel = false, label = '', message = '', name, onUpdate, required = false, state = 'none', theme, value, className, ...rest }, ref) => {
|
|
9
|
+
const PSelect = /*#__PURE__*/ react.forwardRef(({ compact = false, description = '', disabled = false, dropdownDirection = 'auto', filter = false, form, hideLabel = false, label = '', message = '', name, onUpdate, required = false, state = 'none', theme, value, className, ...rest }, ref) => {
|
|
10
10
|
const elementRef = react.useRef(undefined);
|
|
11
11
|
hooks.useEventCallback(elementRef, 'update', onUpdate);
|
|
12
12
|
const WebComponentTag = hooks.usePrefix('p-select');
|
|
13
|
-
const propsToSync = [compact, description, disabled, dropdownDirection, form, hideLabel, label, message, name, required, state, theme || hooks.useTheme(), value];
|
|
13
|
+
const propsToSync = [compact, description, disabled, dropdownDirection, filter, form, hideLabel, label, message, name, required, state, theme || hooks.useTheme(), value];
|
|
14
14
|
hooks.useBrowserLayoutEffect(() => {
|
|
15
15
|
const { current } = elementRef;
|
|
16
|
-
['compact', 'description', 'disabled', 'dropdownDirection', 'form', 'hideLabel', 'label', 'message', 'name', 'required', 'state', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
16
|
+
['compact', 'description', 'disabled', 'dropdownDirection', 'filter', 'form', 'hideLabel', 'label', 'message', 'name', 'required', 'state', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
17
17
|
}, propsToSync);
|
|
18
18
|
const props = {
|
|
19
19
|
...rest,
|
|
@@ -6,7 +6,7 @@ var react = require('react');
|
|
|
6
6
|
var hooks = require('../../hooks.cjs');
|
|
7
7
|
var utils = require('../../utils.cjs');
|
|
8
8
|
|
|
9
|
-
const PTextarea = /*#__PURE__*/ react.forwardRef(({ autoComplete
|
|
9
|
+
const PTextarea = /*#__PURE__*/ react.forwardRef(({ autoComplete, description = '', disabled = false, form, hideLabel = false, label = '', maxLength, message = '', minLength, name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, resize = 'vertical', rows = 7, showCounter = true, spellCheck, state = 'none', theme, value = '', wrap = 'soft', className, ...rest }, ref) => {
|
|
10
10
|
const elementRef = react.useRef(undefined);
|
|
11
11
|
hooks.useEventCallback(elementRef, 'blur', onBlur);
|
|
12
12
|
hooks.useEventCallback(elementRef, 'change', onChange);
|
package/cjs/public-api.cjs
CHANGED
|
@@ -29,7 +29,10 @@ var heading_wrapper = require('./lib/components/heading.wrapper.cjs');
|
|
|
29
29
|
var headline_wrapper = require('./lib/components/headline.wrapper.cjs');
|
|
30
30
|
var icon_wrapper = require('./lib/components/icon.wrapper.cjs');
|
|
31
31
|
var inlineNotification_wrapper = require('./lib/components/inline-notification.wrapper.cjs');
|
|
32
|
+
var inputNumber_wrapper = require('./lib/components/input-number.wrapper.cjs');
|
|
32
33
|
var inputPassword_wrapper = require('./lib/components/input-password.wrapper.cjs');
|
|
34
|
+
var inputSearch_wrapper = require('./lib/components/input-search.wrapper.cjs');
|
|
35
|
+
var inputText_wrapper = require('./lib/components/input-text.wrapper.cjs');
|
|
33
36
|
var link_wrapper = require('./lib/components/link.wrapper.cjs');
|
|
34
37
|
var linkPure_wrapper = require('./lib/components/link-pure.wrapper.cjs');
|
|
35
38
|
var linkSocial_wrapper = require('./lib/components/link-social.wrapper.cjs');
|
|
@@ -115,7 +118,10 @@ exports.PHeading = heading_wrapper.PHeading;
|
|
|
115
118
|
exports.PHeadline = headline_wrapper.PHeadline;
|
|
116
119
|
exports.PIcon = icon_wrapper.PIcon;
|
|
117
120
|
exports.PInlineNotification = inlineNotification_wrapper.PInlineNotification;
|
|
121
|
+
exports.PInputNumber = inputNumber_wrapper.PInputNumber;
|
|
118
122
|
exports.PInputPassword = inputPassword_wrapper.PInputPassword;
|
|
123
|
+
exports.PInputSearch = inputSearch_wrapper.PInputSearch;
|
|
124
|
+
exports.PInputText = inputText_wrapper.PInputText;
|
|
119
125
|
exports.PLink = link_wrapper.PLink;
|
|
120
126
|
exports.PLinkPure = linkPure_wrapper.PLinkPure;
|
|
121
127
|
exports.PLinkSocial = linkSocial_wrapper.PLinkSocial;
|
|
@@ -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>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { forwardRef, useRef } from 'react';
|
|
4
|
+
import { useEventCallback, usePrefix, useTheme, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
|
|
5
|
+
import { syncRef } from '../../utils.mjs';
|
|
6
|
+
|
|
7
|
+
const PInputNumber = /*#__PURE__*/ forwardRef(({ autoComplete, compact = false, controls = false, description = '', disabled = false, form, hideLabel = false, label = '', loading = false, max, message = '', min, name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, state = 'none', step = 1, theme, value = '', className, ...rest }, ref) => {
|
|
8
|
+
const elementRef = useRef(undefined);
|
|
9
|
+
useEventCallback(elementRef, 'blur', onBlur);
|
|
10
|
+
useEventCallback(elementRef, 'change', onChange);
|
|
11
|
+
useEventCallback(elementRef, 'input', onInput);
|
|
12
|
+
const WebComponentTag = usePrefix('p-input-number');
|
|
13
|
+
const propsToSync = [autoComplete, compact, controls, description, disabled, form, hideLabel, label, loading, max, message, min, name, placeholder, readOnly, required, state, step, theme || useTheme(), value];
|
|
14
|
+
useBrowserLayoutEffect(() => {
|
|
15
|
+
const { current } = elementRef;
|
|
16
|
+
['autoComplete', 'compact', 'controls', 'description', 'disabled', 'form', 'hideLabel', 'label', 'loading', 'max', 'message', 'min', 'name', 'placeholder', 'readOnly', 'required', 'state', 'step', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
17
|
+
}, propsToSync);
|
|
18
|
+
const props = {
|
|
19
|
+
...rest,
|
|
20
|
+
class: useMergedClass(elementRef, className),
|
|
21
|
+
ref: syncRef(elementRef, ref)
|
|
22
|
+
};
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
return jsx(WebComponentTag, { ...props });
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export { PInputNumber };
|
|
@@ -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
|
*/
|
|
@@ -4,16 +4,16 @@ import { forwardRef, useRef } from 'react';
|
|
|
4
4
|
import { useEventCallback, usePrefix, useTheme, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
|
|
5
5
|
import { syncRef } from '../../utils.mjs';
|
|
6
6
|
|
|
7
|
-
const PInputPassword = /*#__PURE__*/ forwardRef(({ autoComplete
|
|
7
|
+
const PInputPassword = /*#__PURE__*/ forwardRef(({ autoComplete, compact = false, description = '', disabled = false, form, hideLabel = false, label = '', loading = false, maxLength, message = '', minLength, name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, state = 'none', theme, toggle = false, value = '', className, ...rest }, ref) => {
|
|
8
8
|
const elementRef = useRef(undefined);
|
|
9
9
|
useEventCallback(elementRef, 'blur', onBlur);
|
|
10
10
|
useEventCallback(elementRef, 'change', onChange);
|
|
11
11
|
useEventCallback(elementRef, 'input', onInput);
|
|
12
12
|
const WebComponentTag = usePrefix('p-input-password');
|
|
13
|
-
const propsToSync = [autoComplete, compact, description, disabled, form, hideLabel, label, maxLength, message, minLength, name, placeholder, readOnly, required, state, theme || useTheme(), toggle, value];
|
|
13
|
+
const propsToSync = [autoComplete, compact, description, disabled, form, hideLabel, label, loading, maxLength, message, minLength, name, placeholder, readOnly, required, state, theme || useTheme(), toggle, value];
|
|
14
14
|
useBrowserLayoutEffect(() => {
|
|
15
15
|
const { current } = elementRef;
|
|
16
|
-
['autoComplete', 'compact', 'description', 'disabled', 'form', 'hideLabel', 'label', 'maxLength', 'message', 'minLength', 'name', 'placeholder', 'readOnly', 'required', 'state', 'theme', 'toggle', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
16
|
+
['autoComplete', 'compact', 'description', 'disabled', 'form', 'hideLabel', 'label', 'loading', 'maxLength', 'message', 'minLength', 'name', 'placeholder', 'readOnly', 'required', 'state', 'theme', 'toggle', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
17
17
|
}, propsToSync);
|
|
18
18
|
const props = {
|
|
19
19
|
...rest,
|