@porsche-design-system/components-react 3.28.0 → 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.
Files changed (96) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/cjs/lib/components/input-number.wrapper.cjs +3 -3
  3. package/cjs/lib/components/input-password.wrapper.cjs +3 -3
  4. package/cjs/lib/components/input-search.wrapper.cjs +29 -0
  5. package/cjs/lib/components/input-text.wrapper.cjs +29 -0
  6. package/cjs/lib/components/select.wrapper.cjs +3 -3
  7. package/cjs/lib/components/textarea.wrapper.cjs +1 -1
  8. package/cjs/public-api.cjs +4 -0
  9. package/esm/lib/components/index.d.ts +2 -0
  10. package/esm/lib/components/input-number.wrapper.d.ts +12 -4
  11. package/esm/lib/components/input-number.wrapper.mjs +3 -3
  12. package/esm/lib/components/input-password.wrapper.d.ts +10 -2
  13. package/esm/lib/components/input-password.wrapper.mjs +3 -3
  14. package/esm/lib/components/input-search.wrapper.d.ts +176 -0
  15. package/esm/lib/components/input-search.wrapper.mjs +27 -0
  16. package/esm/lib/components/input-text.wrapper.d.ts +192 -0
  17. package/esm/lib/components/input-text.wrapper.mjs +27 -0
  18. package/esm/lib/components/select.wrapper.d.ts +8 -0
  19. package/esm/lib/components/select.wrapper.mjs +3 -3
  20. package/esm/lib/components/textarea.wrapper.d.ts +4 -4
  21. package/esm/lib/components/textarea.wrapper.mjs +1 -1
  22. package/esm/lib/types.d.ts +20 -5
  23. package/esm/public-api.mjs +2 -0
  24. package/package.json +2 -2
  25. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +179 -77
  26. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +4 -15
  27. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-number.wrapper.cjs +4 -4
  28. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-password.wrapper.cjs +4 -4
  29. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-search.wrapper.cjs +40 -0
  30. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-text.wrapper.cjs +40 -0
  31. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/select.wrapper.cjs +4 -4
  32. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/textarea.wrapper.cjs +1 -1
  33. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.cjs +8 -4
  34. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-number.cjs +5 -3
  35. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-password.cjs +4 -3
  36. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-search.cjs +47 -0
  37. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-text.cjs +43 -0
  38. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.cjs +4 -1
  39. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/public-api.cjs +4 -0
  40. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +148 -48
  41. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +4 -15
  42. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-number.wrapper.mjs +4 -4
  43. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-password.wrapper.mjs +4 -4
  44. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-search.wrapper.mjs +38 -0
  45. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-text.wrapper.mjs +38 -0
  46. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/select.wrapper.mjs +4 -4
  47. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/textarea.wrapper.mjs +1 -1
  48. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.mjs +2 -2
  49. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.mjs +2 -2
  50. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-group.mjs +2 -2
  51. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +2 -2
  52. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.mjs +2 -2
  53. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.mjs +2 -2
  54. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/canvas.mjs +2 -2
  55. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +2 -2
  56. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.mjs +2 -2
  57. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.mjs +2 -2
  58. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/content-wrapper.mjs +2 -2
  59. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/crest.mjs +2 -2
  60. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.mjs +2 -2
  61. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/divider.mjs +2 -2
  62. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown-item.mjs +2 -2
  63. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown-link.mjs +2 -2
  64. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown.mjs +2 -2
  65. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset-wrapper.mjs +2 -2
  66. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset.mjs +2 -2
  67. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex-item.mjs +2 -2
  68. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex.mjs +2 -2
  69. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +2 -2
  70. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid-item.mjs +2 -2
  71. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid.mjs +2 -2
  72. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.mjs +2 -2
  73. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/headline.mjs +2 -2
  74. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/icon.mjs +2 -2
  75. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.mjs +2 -2
  76. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.mjs +8 -4
  77. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-number.mjs +6 -4
  78. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-password.mjs +5 -4
  79. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-search.mjs +45 -0
  80. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-text.mjs +41 -0
  81. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs +5 -2
  82. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/public-api.mjs +2 -0
  83. package/ssr/esm/lib/components/index.d.ts +2 -0
  84. package/ssr/esm/lib/components/input-number.wrapper.d.ts +12 -4
  85. package/ssr/esm/lib/components/input-password.wrapper.d.ts +10 -2
  86. package/ssr/esm/lib/components/input-search.wrapper.d.ts +176 -0
  87. package/ssr/esm/lib/components/input-text.wrapper.d.ts +192 -0
  88. package/ssr/esm/lib/components/select.wrapper.d.ts +8 -0
  89. package/ssr/esm/lib/components/textarea.wrapper.d.ts +4 -4
  90. package/ssr/esm/lib/dsr-components/input-base.d.ts +4 -2
  91. package/ssr/esm/lib/dsr-components/input-number.d.ts +1 -0
  92. package/ssr/esm/lib/dsr-components/input-password.d.ts +1 -0
  93. package/ssr/esm/lib/dsr-components/input-search.d.ts +20 -0
  94. package/ssr/esm/lib/dsr-components/input-text.d.ts +19 -0
  95. package/ssr/esm/lib/dsr-components/select.d.ts +2 -0
  96. package/ssr/esm/lib/types.d.ts +20 -5
package/CHANGELOG.md CHANGED
@@ -14,6 +14,19 @@ 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
+
17
30
  ## [3.28.0] - 2025-06-02
18
31
 
19
32
  #### Added
@@ -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 PInputNumber = /*#__PURE__*/ react.forwardRef(({ autoComplete = '', compact = false, controls = false, description = '', disabled = false, form, hideLabel = false, label = '', max, message = '', min, name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, state = 'none', step = 1, theme, value = '', className, ...rest }, ref) => {
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
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-number');
15
- const propsToSync = [autoComplete, compact, controls, description, disabled, form, hideLabel, label, max, message, min, name, placeholder, readOnly, required, state, step, theme || hooks.useTheme(), value];
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
16
  hooks.useBrowserLayoutEffect(() => {
17
17
  const { current } = elementRef;
18
- ['autoComplete', 'compact', 'controls', 'description', 'disabled', 'form', 'hideLabel', 'label', 'max', 'message', 'min', 'name', 'placeholder', 'readOnly', 'required', 'state', 'step', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
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
19
  }, propsToSync);
20
20
  const props = {
21
21
  ...rest,
@@ -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 = '', compact = false, description = '', disabled = false, form, hideLabel = false, label = '', maxLength, message = '', minLength, name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, state = 'none', theme, toggle = false, value = '', className, ...rest }, ref) => {
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 = '', 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) => {
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);
@@ -31,6 +31,8 @@ var icon_wrapper = require('./lib/components/icon.wrapper.cjs');
31
31
  var inlineNotification_wrapper = require('./lib/components/inline-notification.wrapper.cjs');
32
32
  var inputNumber_wrapper = require('./lib/components/input-number.wrapper.cjs');
33
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');
34
36
  var link_wrapper = require('./lib/components/link.wrapper.cjs');
35
37
  var linkPure_wrapper = require('./lib/components/link-pure.wrapper.cjs');
36
38
  var linkSocial_wrapper = require('./lib/components/link-social.wrapper.cjs');
@@ -118,6 +120,8 @@ exports.PIcon = icon_wrapper.PIcon;
118
120
  exports.PInlineNotification = inlineNotification_wrapper.PInlineNotification;
119
121
  exports.PInputNumber = inputNumber_wrapper.PInputNumber;
120
122
  exports.PInputPassword = inputPassword_wrapper.PInputPassword;
123
+ exports.PInputSearch = inputSearch_wrapper.PInputSearch;
124
+ exports.PInputText = inputText_wrapper.PInputText;
121
125
  exports.PLink = link_wrapper.PLink;
122
126
  exports.PLinkPure = linkPure_wrapper.PLinkPure;
123
127
  exports.PLinkSocial = linkSocial_wrapper.PLinkSocial;
@@ -28,6 +28,8 @@ export * from './icon.wrapper';
28
28
  export * from './inline-notification.wrapper';
29
29
  export * from './input-number.wrapper';
30
30
  export * from './input-password.wrapper';
31
+ export * from './input-search.wrapper';
32
+ export * from './input-text.wrapper';
31
33
  export * from './link.wrapper';
32
34
  export * from './link-pure.wrapper';
33
35
  export * from './link-social.wrapper';
@@ -6,7 +6,7 @@ export type PInputNumberProps = BaseProps & {
6
6
  */
7
7
  autoComplete?: InputNumberAutoComplete;
8
8
  /**
9
- * Displays as compact version.
9
+ * Displays as a compact version.
10
10
  */
11
11
  compact?: boolean;
12
12
  /**
@@ -26,13 +26,17 @@ export type PInputNumberProps = BaseProps & {
26
26
  */
27
27
  form?: string;
28
28
  /**
29
- * Show or hide label and description text. For better accessibility it is recommended to show the label.
29
+ * Show or hide label and description text. For better accessibility, it is recommended to show the label.
30
30
  */
31
31
  hideLabel?: BreakpointCustomizable<boolean>;
32
32
  /**
33
33
  * The label text.
34
34
  */
35
35
  label?: string;
36
+ /**
37
+ * @experimental Shows a loading indicator.
38
+ */
39
+ loading?: boolean;
36
40
  /**
37
41
  * The max value of the number input.
38
42
  */
@@ -96,7 +100,7 @@ export declare const PInputNumber: import("react").ForwardRefExoticComponent<imp
96
100
  */
97
101
  autoComplete?: InputNumberAutoComplete;
98
102
  /**
99
- * Displays as compact version.
103
+ * Displays as a compact version.
100
104
  */
101
105
  compact?: boolean;
102
106
  /**
@@ -116,13 +120,17 @@ export declare const PInputNumber: import("react").ForwardRefExoticComponent<imp
116
120
  */
117
121
  form?: string;
118
122
  /**
119
- * Show or hide label and description text. For better accessibility it is recommended to show the label.
123
+ * Show or hide label and description text. For better accessibility, it is recommended to show the label.
120
124
  */
121
125
  hideLabel?: BreakpointCustomizable<boolean>;
122
126
  /**
123
127
  * The label text.
124
128
  */
125
129
  label?: string;
130
+ /**
131
+ * @experimental Shows a loading indicator.
132
+ */
133
+ loading?: boolean;
126
134
  /**
127
135
  * The max value of the number input.
128
136
  */
@@ -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 PInputNumber = /*#__PURE__*/ forwardRef(({ autoComplete = '', compact = false, controls = false, description = '', disabled = false, form, hideLabel = false, label = '', max, message = '', min, name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, state = 'none', step = 1, theme, value = '', className, ...rest }, ref) => {
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
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-number');
13
- const propsToSync = [autoComplete, compact, controls, description, disabled, form, hideLabel, label, max, message, min, name, placeholder, readOnly, required, state, step, theme || useTheme(), value];
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
14
  useBrowserLayoutEffect(() => {
15
15
  const { current } = elementRef;
16
- ['autoComplete', 'compact', 'controls', 'description', 'disabled', 'form', 'hideLabel', 'label', 'max', 'message', 'min', 'name', 'placeholder', 'readOnly', 'required', 'state', 'step', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
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
17
  }, propsToSync);
18
18
  const props = {
19
19
  ...rest,
@@ -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 = '', compact = false, description = '', disabled = false, form, hideLabel = false, label = '', maxLength, message = '', minLength, name, onBlur, onChange, onInput, placeholder = '', readOnly = false, required = false, state = 'none', theme, toggle = false, value = '', className, ...rest }, ref) => {
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,
@@ -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,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 PInputSearch = /*#__PURE__*/ 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) => {
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-search');
13
+ const propsToSync = [autoComplete, clear, compact, description, disabled, form, hideLabel, indicator, label, loading, message, name, placeholder, readOnly, required, state, theme || useTheme(), value];
14
+ useBrowserLayoutEffect(() => {
15
+ const { current } = elementRef;
16
+ ['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]));
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 { PInputSearch };