@porsche-design-system/components-react 3.29.0-rc.2 → 3.29.0-rc.4

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 (162) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/bin/patchRemixRunProcessBrowserGlobalIdentifier.js +0 -0
  3. package/cjs/lib/components/fieldset.wrapper.cjs +3 -3
  4. package/cjs/lib/components/flag.wrapper.cjs +26 -0
  5. package/cjs/lib/components/input-date.wrapper.cjs +29 -0
  6. package/cjs/lib/components/input-email.wrapper.cjs +29 -0
  7. package/cjs/lib/components/input-tel.wrapper.cjs +29 -0
  8. package/cjs/lib/components/input-time.wrapper.cjs +29 -0
  9. package/cjs/lib/components/input-url.wrapper.cjs +29 -0
  10. package/cjs/lib/components/multi-select.wrapper.cjs +3 -3
  11. package/cjs/lib/components/scroller.wrapper.cjs +1 -1
  12. package/cjs/lib/components/tabs-bar.wrapper.cjs +1 -1
  13. package/cjs/lib/components/tabs.wrapper.cjs +1 -1
  14. package/cjs/public-api.cjs +12 -0
  15. package/esm/lib/components/fieldset.wrapper.d.ts +9 -1
  16. package/esm/lib/components/fieldset.wrapper.mjs +3 -3
  17. package/esm/lib/components/flag.wrapper.d.ts +30 -0
  18. package/esm/lib/components/flag.wrapper.mjs +24 -0
  19. package/esm/lib/components/index.d.ts +6 -0
  20. package/esm/lib/components/input-date.wrapper.d.ts +176 -0
  21. package/esm/lib/components/input-date.wrapper.mjs +27 -0
  22. package/esm/lib/components/input-email.wrapper.d.ts +200 -0
  23. package/esm/lib/components/input-email.wrapper.mjs +27 -0
  24. package/esm/lib/components/input-number.wrapper.d.ts +31 -31
  25. package/esm/lib/components/input-password.wrapper.d.ts +35 -35
  26. package/esm/lib/components/input-search.wrapper.d.ts +31 -31
  27. package/esm/lib/components/input-tel.wrapper.d.ts +192 -0
  28. package/esm/lib/components/input-tel.wrapper.mjs +27 -0
  29. package/esm/lib/components/input-text.wrapper.d.ts +35 -35
  30. package/esm/lib/components/input-time.wrapper.d.ts +176 -0
  31. package/esm/lib/components/input-time.wrapper.mjs +27 -0
  32. package/esm/lib/components/input-url.wrapper.d.ts +192 -0
  33. package/esm/lib/components/input-url.wrapper.mjs +27 -0
  34. package/esm/lib/components/multi-select.wrapper.d.ts +8 -0
  35. package/esm/lib/components/multi-select.wrapper.mjs +3 -3
  36. package/esm/lib/components/scroller.wrapper.d.ts +4 -4
  37. package/esm/lib/components/scroller.wrapper.mjs +1 -1
  38. package/esm/lib/components/tabs-bar.wrapper.d.ts +4 -4
  39. package/esm/lib/components/tabs-bar.wrapper.mjs +1 -1
  40. package/esm/lib/components/tabs.wrapper.d.ts +2 -2
  41. package/esm/lib/components/tabs.wrapper.mjs +1 -1
  42. package/esm/lib/components/textarea.wrapper.d.ts +37 -37
  43. package/esm/lib/types.d.ts +153 -41
  44. package/esm/public-api.mjs +6 -0
  45. package/package.json +2 -2
  46. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +551 -513
  47. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +46 -35
  48. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/fieldset.wrapper.cjs +4 -4
  49. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/flag.wrapper.cjs +36 -0
  50. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-date.wrapper.cjs +40 -0
  51. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-email.wrapper.cjs +40 -0
  52. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-tel.wrapper.cjs +40 -0
  53. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-time.wrapper.cjs +40 -0
  54. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/input-url.wrapper.cjs +40 -0
  55. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/multi-select.wrapper.cjs +4 -4
  56. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.cjs +1 -1
  57. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/tabs-bar.wrapper.cjs +1 -1
  58. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/tabs.wrapper.cjs +1 -1
  59. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset.cjs +3 -2
  60. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flag.cjs +17 -0
  61. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.cjs +2 -2
  62. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-date.cjs +44 -0
  63. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-email.cjs +43 -0
  64. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-tel.cjs +43 -0
  65. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-text.cjs +1 -2
  66. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-time.cjs +44 -0
  67. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-url.cjs +43 -0
  68. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.cjs +1 -1
  69. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +15 -6
  70. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/no-results-option.cjs +9 -0
  71. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.cjs +1 -5
  72. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.cjs +8 -5
  73. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea.cjs +1 -1
  74. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/public-api.cjs +12 -0
  75. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +511 -480
  76. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +42 -34
  77. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/fieldset.wrapper.mjs +4 -4
  78. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/flag.wrapper.mjs +34 -0
  79. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-date.wrapper.mjs +38 -0
  80. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-email.wrapper.mjs +38 -0
  81. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-tel.wrapper.mjs +38 -0
  82. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-time.wrapper.mjs +38 -0
  83. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/input-url.wrapper.mjs +38 -0
  84. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/multi-select.wrapper.mjs +4 -4
  85. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.mjs +1 -1
  86. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/tabs-bar.wrapper.mjs +1 -1
  87. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/tabs.wrapper.mjs +1 -1
  88. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.mjs +2 -2
  89. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.mjs +2 -2
  90. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-group.mjs +2 -2
  91. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +2 -2
  92. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.mjs +2 -2
  93. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.mjs +2 -2
  94. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/canvas.mjs +2 -2
  95. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +2 -2
  96. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.mjs +2 -2
  97. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.mjs +2 -2
  98. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/content-wrapper.mjs +2 -2
  99. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/crest.mjs +2 -2
  100. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.mjs +2 -2
  101. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/divider.mjs +2 -2
  102. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown-item.mjs +2 -2
  103. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown-link.mjs +2 -2
  104. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/drilldown.mjs +2 -2
  105. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset-wrapper.mjs +2 -2
  106. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset.mjs +5 -4
  107. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flag.mjs +15 -0
  108. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex-item.mjs +2 -2
  109. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex.mjs +2 -2
  110. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +2 -2
  111. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid-item.mjs +2 -2
  112. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid.mjs +2 -2
  113. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.mjs +2 -2
  114. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/headline.mjs +2 -2
  115. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/icon.mjs +2 -2
  116. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.mjs +2 -2
  117. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-base.mjs +2 -2
  118. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-date.mjs +42 -0
  119. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-email.mjs +41 -0
  120. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-number.mjs +2 -2
  121. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-password.mjs +2 -2
  122. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-search.mjs +2 -2
  123. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-tel.mjs +41 -0
  124. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-text.mjs +3 -4
  125. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-time.mjs +42 -0
  126. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/input-url.mjs +41 -0
  127. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.mjs +1 -1
  128. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +18 -9
  129. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/no-results-option.mjs +7 -0
  130. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/optgroup.mjs +2 -2
  131. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.mjs +1 -5
  132. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs +9 -6
  133. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea.mjs +1 -1
  134. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/public-api.mjs +6 -0
  135. package/ssr/esm/lib/components/fieldset.wrapper.d.ts +9 -1
  136. package/ssr/esm/lib/components/flag.wrapper.d.ts +30 -0
  137. package/ssr/esm/lib/components/index.d.ts +6 -0
  138. package/ssr/esm/lib/components/input-date.wrapper.d.ts +176 -0
  139. package/ssr/esm/lib/components/input-email.wrapper.d.ts +200 -0
  140. package/ssr/esm/lib/components/input-number.wrapper.d.ts +31 -31
  141. package/ssr/esm/lib/components/input-password.wrapper.d.ts +35 -35
  142. package/ssr/esm/lib/components/input-search.wrapper.d.ts +31 -31
  143. package/ssr/esm/lib/components/input-tel.wrapper.d.ts +192 -0
  144. package/ssr/esm/lib/components/input-text.wrapper.d.ts +35 -35
  145. package/ssr/esm/lib/components/input-time.wrapper.d.ts +176 -0
  146. package/ssr/esm/lib/components/input-url.wrapper.d.ts +192 -0
  147. package/ssr/esm/lib/components/multi-select.wrapper.d.ts +8 -0
  148. package/ssr/esm/lib/components/scroller.wrapper.d.ts +4 -4
  149. package/ssr/esm/lib/components/tabs-bar.wrapper.d.ts +4 -4
  150. package/ssr/esm/lib/components/tabs.wrapper.d.ts +2 -2
  151. package/ssr/esm/lib/components/textarea.wrapper.d.ts +37 -37
  152. package/ssr/esm/lib/dsr-components/flag.d.ts +5 -0
  153. package/ssr/esm/lib/dsr-components/input-base.d.ts +4 -2
  154. package/ssr/esm/lib/dsr-components/input-date.d.ts +19 -0
  155. package/ssr/esm/lib/dsr-components/input-email.d.ts +19 -0
  156. package/ssr/esm/lib/dsr-components/input-tel.d.ts +19 -0
  157. package/ssr/esm/lib/dsr-components/input-time.d.ts +19 -0
  158. package/ssr/esm/lib/dsr-components/input-url.d.ts +19 -0
  159. package/ssr/esm/lib/dsr-components/multi-select.d.ts +5 -1
  160. package/ssr/esm/lib/dsr-components/no-results-option.d.ts +2 -0
  161. package/ssr/esm/lib/dsr-components/select.d.ts +4 -1
  162. package/ssr/esm/lib/types.d.ts +153 -41
package/CHANGELOG.md CHANGED
@@ -14,6 +14,37 @@ 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.4] - 2025-08-15
18
+
19
+ ### Added
20
+
21
+ - `Flag`: ([#3964](https://github.com/porsche-design-system/porsche-design-system/pull/3964))
22
+ - `Input Url`: ([#3949](https://github.com/porsche-design-system/porsche-design-system/pull/3949))
23
+ - `Multi Select`: `compact` prop to enable a smaller, space-saving version for compact layouts
24
+ ([#3953](https://github.com/porsche-design-system/porsche-design-system/pull/3953))
25
+ - `Fieldset`: ARIA role `radiogroup` is now supported via `aria` prop. Internal ARIA attributes for `aria-invalid` and
26
+ `aria-required`. ([#3957](https://github.com/porsche-design-system/porsche-design-system/pull/3957))
27
+ - `Input Date`, `Input Time`: ([#3954](https://github.com/porsche-design-system/porsche-design-system/pull/3954))
28
+
29
+ ### Changed
30
+
31
+ - `Multi Select`, `Select`: `background` is now transparent to be aligned with other form fields
32
+ ([#3953](https://github.com/porsche-design-system/porsche-design-system/pull/3953))
33
+ - `Multi Select`, `Select`: improved a11y and highlight of options
34
+ ([#3953](https://github.com/porsche-design-system/porsche-design-system/pull/3953))
35
+ - `Multi Select`: aligned filter and keyboard behavior with `Select`
36
+ ([#3943](https://github.com/porsche-design-system/porsche-design-system/pull/3943))
37
+ - `Scroller`: Deprecation of prop `gradientColor` because gradient is now managed internally and adapts to all themes
38
+ and background colors automatically.
39
+ ([#3962](https://github.com/porsche-design-system/porsche-design-system/pull/3962))
40
+
41
+ ## [3.29.0-rc.3] - 2025-07-29
42
+
43
+ ### Fixed
44
+
45
+ - Partials: `topLevelAwait` issue in ESM build
46
+ ([#3947](https://github.com/porsche-design-system/porsche-design-system/pull/3947))
47
+
17
48
  ## [3.29.0-rc.2] - 2025-07-28
18
49
 
19
50
  ### Changed
@@ -30,6 +61,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
30
61
  ([#3916](https://github.com/porsche-design-system/porsche-design-system/pull/3916))
31
62
  - `Input Text`: `counter` prop functions independently of `max-length`, allowing character count display even when no
32
63
  limit is set ([#3901](https://github.com/porsche-design-system/porsche-design-system/pull/3901))
64
+ - `Input Email`: ([#3927](https://github.com/porsche-design-system/porsche-design-system/pull/3927))
65
+ - `Input Tel`: ([#3928](https://github.com/porsche-design-system/porsche-design-system/pull/3928))
33
66
 
34
67
  ### Changed
35
68
 
@@ -6,13 +6,13 @@ var react = require('react');
6
6
  var hooks = require('../../hooks.cjs');
7
7
  var utils = require('../../utils.cjs');
8
8
 
9
- const PFieldset = /*#__PURE__*/ react.forwardRef(({ label = '', labelSize = 'medium', message = '', required = false, state = 'none', theme, className, ...rest }, ref) => {
9
+ const PFieldset = /*#__PURE__*/ react.forwardRef(({ aria, label = '', labelSize = 'medium', message = '', required = false, state = 'none', theme, className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  const WebComponentTag = hooks.usePrefix('p-fieldset');
12
- const propsToSync = [label, labelSize, message, required, state, theme || hooks.useTheme()];
12
+ const propsToSync = [aria, label, labelSize, message, required, state, theme || hooks.useTheme()];
13
13
  hooks.useBrowserLayoutEffect(() => {
14
14
  const { current } = elementRef;
15
- ['label', 'labelSize', 'message', 'required', 'state', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
+ ['aria', 'label', 'labelSize', 'message', 'required', 'state', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
16
  }, propsToSync);
17
17
  const props = {
18
18
  ...rest,
@@ -0,0 +1,26 @@
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 PFlag = /*#__PURE__*/ react.forwardRef(({ aria, name = 'de', size = 'small', className, ...rest }, ref) => {
10
+ const elementRef = react.useRef(undefined);
11
+ const WebComponentTag = hooks.usePrefix('p-flag');
12
+ const propsToSync = [aria, name, size];
13
+ hooks.useBrowserLayoutEffect(() => {
14
+ const { current } = elementRef;
15
+ ['aria', 'name', 'size'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
+ }, propsToSync);
17
+ const props = {
18
+ ...rest,
19
+ class: hooks.useMergedClass(elementRef, className),
20
+ ref: utils.syncRef(elementRef, ref)
21
+ };
22
+ // @ts-ignore
23
+ return jsxRuntime.jsx(WebComponentTag, { ...props });
24
+ });
25
+
26
+ exports.PFlag = PFlag;
@@ -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 PInputDate = /*#__PURE__*/ react.forwardRef(({ autoComplete, compact = false, description = '', disabled = false, form, hideLabel = false, label = '', loading = false, max, message = '', min, name, onBlur, onChange, onInput, 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-date');
15
+ const propsToSync = [autoComplete, compact, description, disabled, form, hideLabel, label, loading, max, message, min, name, readOnly, required, state, step, theme || hooks.useTheme(), value];
16
+ hooks.useBrowserLayoutEffect(() => {
17
+ const { current } = elementRef;
18
+ ['autoComplete', 'compact', 'description', 'disabled', 'form', 'hideLabel', 'label', 'loading', 'max', 'message', 'min', 'name', '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.PInputDate = PInputDate;
@@ -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 PInputEmail = /*#__PURE__*/ react.forwardRef(({ autoComplete, compact = false, description = '', disabled = false, form, hideLabel = false, indicator = false, label = '', loading = false, maxLength, message = '', minLength, multiple = false, name, onBlur, onChange, onInput, pattern, 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-email');
15
+ const propsToSync = [autoComplete, compact, description, disabled, form, hideLabel, indicator, label, loading, maxLength, message, minLength, multiple, name, pattern, placeholder, readOnly, required, state, theme || hooks.useTheme(), value];
16
+ hooks.useBrowserLayoutEffect(() => {
17
+ const { current } = elementRef;
18
+ ['autoComplete', 'compact', 'description', 'disabled', 'form', 'hideLabel', 'indicator', 'label', 'loading', 'maxLength', 'message', 'minLength', 'multiple', 'name', 'pattern', '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.PInputEmail = PInputEmail;
@@ -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 PInputTel = /*#__PURE__*/ react.forwardRef(({ autoComplete, compact = false, description = '', disabled = false, form, hideLabel = false, indicator = false, label = '', loading = false, maxLength, message = '', minLength, name, onBlur, onChange, onInput, pattern, 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-tel');
15
+ const propsToSync = [autoComplete, compact, description, disabled, form, hideLabel, indicator, label, loading, maxLength, message, minLength, name, pattern, placeholder, readOnly, required, state, theme || hooks.useTheme(), value];
16
+ hooks.useBrowserLayoutEffect(() => {
17
+ const { current } = elementRef;
18
+ ['autoComplete', 'compact', 'description', 'disabled', 'form', 'hideLabel', 'indicator', 'label', 'loading', 'maxLength', 'message', 'minLength', 'name', 'pattern', '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.PInputTel = PInputTel;
@@ -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 PInputTime = /*#__PURE__*/ react.forwardRef(({ autoComplete, compact = false, description = '', disabled = false, form, hideLabel = false, label = '', loading = false, max, message = '', min, name, onBlur, onChange, onInput, readOnly = false, required = false, state = 'none', step = 60, 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-time');
15
+ const propsToSync = [autoComplete, compact, description, disabled, form, hideLabel, label, loading, max, message, min, name, readOnly, required, state, step, theme || hooks.useTheme(), value];
16
+ hooks.useBrowserLayoutEffect(() => {
17
+ const { current } = elementRef;
18
+ ['autoComplete', 'compact', 'description', 'disabled', 'form', 'hideLabel', 'label', 'loading', 'max', 'message', 'min', 'name', '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.PInputTime = PInputTime;
@@ -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 PInputUrl = /*#__PURE__*/ react.forwardRef(({ autoComplete, compact = false, description = '', disabled = false, form, hideLabel = false, indicator = false, label = '', loading = false, maxLength, message = '', minLength, name, onBlur, onChange, onInput, pattern, 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-url');
15
+ const propsToSync = [autoComplete, compact, description, disabled, form, hideLabel, indicator, label, loading, maxLength, message, minLength, name, pattern, placeholder, readOnly, required, state, theme || hooks.useTheme(), value];
16
+ hooks.useBrowserLayoutEffect(() => {
17
+ const { current } = elementRef;
18
+ ['autoComplete', 'compact', 'description', 'disabled', 'form', 'hideLabel', 'indicator', 'label', 'loading', 'maxLength', 'message', 'minLength', 'name', 'pattern', '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.PInputUrl = PInputUrl;
@@ -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 PMultiSelect = /*#__PURE__*/ react.forwardRef(({ description = '', disabled = false, dropdownDirection = 'auto', form, hideLabel = false, label = '', message = '', name, onUpdate, required = false, state = 'none', theme, value = [], className, ...rest }, ref) => {
9
+ const PMultiSelect = /*#__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) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  hooks.useEventCallback(elementRef, 'update', onUpdate);
12
12
  const WebComponentTag = hooks.usePrefix('p-multi-select');
13
- const propsToSync = [description, disabled, dropdownDirection, form, hideLabel, label, message, name, required, state, theme || hooks.useTheme(), value];
13
+ const propsToSync = [compact, description, disabled, dropdownDirection, form, hideLabel, label, message, name, required, state, theme || hooks.useTheme(), value];
14
14
  hooks.useBrowserLayoutEffect(() => {
15
15
  const { current } = elementRef;
16
- ['description', 'disabled', 'dropdownDirection', 'form', 'hideLabel', 'label', 'message', 'name', 'required', 'state', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
+ ['compact', 'description', 'disabled', 'dropdownDirection', '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 PScroller = /*#__PURE__*/ react.forwardRef(({ alignScrollIndicator = 'center', aria, gradientColor = 'background-base', gradientColorScheme, scrollIndicatorPosition, scrollToPosition, scrollbar = false, theme, className, ...rest }, ref) => {
9
+ const PScroller = /*#__PURE__*/ react.forwardRef(({ alignScrollIndicator = 'center', aria, gradientColor, gradientColorScheme, scrollIndicatorPosition, scrollToPosition, scrollbar = false, theme, className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  const WebComponentTag = hooks.usePrefix('p-scroller');
12
12
  const propsToSync = [alignScrollIndicator, aria, gradientColor, gradientColorScheme, scrollIndicatorPosition, scrollToPosition, scrollbar, theme || hooks.useTheme()];
@@ -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 PTabsBar = /*#__PURE__*/ react.forwardRef(({ activeTabIndex, gradientColor = 'background-base', gradientColorScheme, onTabChange, onUpdate, size = 'small', theme, weight = 'regular', className, ...rest }, ref) => {
9
+ const PTabsBar = /*#__PURE__*/ react.forwardRef(({ activeTabIndex, gradientColor, gradientColorScheme, onTabChange, onUpdate, size = 'small', theme, weight = 'regular', className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  hooks.useEventCallback(elementRef, 'tabChange', onTabChange);
12
12
  hooks.useEventCallback(elementRef, 'update', onUpdate);
@@ -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 PTabs = /*#__PURE__*/ react.forwardRef(({ activeTabIndex = 0, gradientColor = 'background-base', gradientColorScheme, onTabChange, onUpdate, size = 'small', theme, weight = 'regular', className, ...rest }, ref) => {
9
+ const PTabs = /*#__PURE__*/ react.forwardRef(({ activeTabIndex = 0, gradientColor, gradientColorScheme, onTabChange, onUpdate, size = 'small', theme, weight = 'regular', className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  hooks.useEventCallback(elementRef, 'tabChange', onTabChange);
12
12
  hooks.useEventCallback(elementRef, 'update', onUpdate);
@@ -20,6 +20,7 @@ var drilldownItem_wrapper = require('./lib/components/drilldown-item.wrapper.cjs
20
20
  var drilldownLink_wrapper = require('./lib/components/drilldown-link.wrapper.cjs');
21
21
  var fieldset_wrapper = require('./lib/components/fieldset.wrapper.cjs');
22
22
  var fieldsetWrapper_wrapper = require('./lib/components/fieldset-wrapper.wrapper.cjs');
23
+ var flag_wrapper = require('./lib/components/flag.wrapper.cjs');
23
24
  var flex_wrapper = require('./lib/components/flex.wrapper.cjs');
24
25
  var flexItem_wrapper = require('./lib/components/flex-item.wrapper.cjs');
25
26
  var flyout_wrapper = require('./lib/components/flyout.wrapper.cjs');
@@ -29,10 +30,15 @@ var heading_wrapper = require('./lib/components/heading.wrapper.cjs');
29
30
  var headline_wrapper = require('./lib/components/headline.wrapper.cjs');
30
31
  var icon_wrapper = require('./lib/components/icon.wrapper.cjs');
31
32
  var inlineNotification_wrapper = require('./lib/components/inline-notification.wrapper.cjs');
33
+ var inputDate_wrapper = require('./lib/components/input-date.wrapper.cjs');
34
+ var inputEmail_wrapper = require('./lib/components/input-email.wrapper.cjs');
32
35
  var inputNumber_wrapper = require('./lib/components/input-number.wrapper.cjs');
33
36
  var inputPassword_wrapper = require('./lib/components/input-password.wrapper.cjs');
34
37
  var inputSearch_wrapper = require('./lib/components/input-search.wrapper.cjs');
38
+ var inputTel_wrapper = require('./lib/components/input-tel.wrapper.cjs');
35
39
  var inputText_wrapper = require('./lib/components/input-text.wrapper.cjs');
40
+ var inputTime_wrapper = require('./lib/components/input-time.wrapper.cjs');
41
+ var inputUrl_wrapper = require('./lib/components/input-url.wrapper.cjs');
36
42
  var link_wrapper = require('./lib/components/link.wrapper.cjs');
37
43
  var linkPure_wrapper = require('./lib/components/link-pure.wrapper.cjs');
38
44
  var linkSocial_wrapper = require('./lib/components/link-social.wrapper.cjs');
@@ -109,6 +115,7 @@ exports.PDrilldownItem = drilldownItem_wrapper.PDrilldownItem;
109
115
  exports.PDrilldownLink = drilldownLink_wrapper.PDrilldownLink;
110
116
  exports.PFieldset = fieldset_wrapper.PFieldset;
111
117
  exports.PFieldsetWrapper = fieldsetWrapper_wrapper.PFieldsetWrapper;
118
+ exports.PFlag = flag_wrapper.PFlag;
112
119
  exports.PFlex = flex_wrapper.PFlex;
113
120
  exports.PFlexItem = flexItem_wrapper.PFlexItem;
114
121
  exports.PFlyout = flyout_wrapper.PFlyout;
@@ -118,10 +125,15 @@ exports.PHeading = heading_wrapper.PHeading;
118
125
  exports.PHeadline = headline_wrapper.PHeadline;
119
126
  exports.PIcon = icon_wrapper.PIcon;
120
127
  exports.PInlineNotification = inlineNotification_wrapper.PInlineNotification;
128
+ exports.PInputDate = inputDate_wrapper.PInputDate;
129
+ exports.PInputEmail = inputEmail_wrapper.PInputEmail;
121
130
  exports.PInputNumber = inputNumber_wrapper.PInputNumber;
122
131
  exports.PInputPassword = inputPassword_wrapper.PInputPassword;
123
132
  exports.PInputSearch = inputSearch_wrapper.PInputSearch;
133
+ exports.PInputTel = inputTel_wrapper.PInputTel;
124
134
  exports.PInputText = inputText_wrapper.PInputText;
135
+ exports.PInputTime = inputTime_wrapper.PInputTime;
136
+ exports.PInputUrl = inputUrl_wrapper.PInputUrl;
125
137
  exports.PLink = link_wrapper.PLink;
126
138
  exports.PLinkPure = linkPure_wrapper.PLinkPure;
127
139
  exports.PLinkSocial = linkSocial_wrapper.PLinkSocial;
@@ -1,6 +1,10 @@
1
1
  import type { BaseProps } from '../../BaseProps';
2
- import type { FieldsetLabelSize, FieldsetState, Theme } from '../types';
2
+ import type { SelectedAriaRole, FieldsetLabelSize, FieldsetState, Theme } from '../types';
3
3
  export type PFieldsetProps = BaseProps & {
4
+ /**
5
+ * Add ARIA attributes.
6
+ */
7
+ aria?: SelectedAriaRole<"radiogroup">;
4
8
  /**
5
9
  * The label text.
6
10
  */
@@ -27,6 +31,10 @@ export type PFieldsetProps = BaseProps & {
27
31
  theme?: Theme;
28
32
  };
29
33
  export declare const PFieldset: import("react").ForwardRefExoticComponent<import("react").DOMAttributes<{}> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
34
+ /**
35
+ * Add ARIA attributes.
36
+ */
37
+ aria?: SelectedAriaRole<"radiogroup">;
30
38
  /**
31
39
  * The label text.
32
40
  */
@@ -4,13 +4,13 @@ import { forwardRef, useRef } from 'react';
4
4
  import { usePrefix, useTheme, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
5
  import { syncRef } from '../../utils.mjs';
6
6
 
7
- const PFieldset = /*#__PURE__*/ forwardRef(({ label = '', labelSize = 'medium', message = '', required = false, state = 'none', theme, className, ...rest }, ref) => {
7
+ const PFieldset = /*#__PURE__*/ forwardRef(({ aria, label = '', labelSize = 'medium', message = '', required = false, state = 'none', theme, className, ...rest }, ref) => {
8
8
  const elementRef = useRef(undefined);
9
9
  const WebComponentTag = usePrefix('p-fieldset');
10
- const propsToSync = [label, labelSize, message, required, state, theme || useTheme()];
10
+ const propsToSync = [aria, label, labelSize, message, required, state, theme || useTheme()];
11
11
  useBrowserLayoutEffect(() => {
12
12
  const { current } = elementRef;
13
- ['label', 'labelSize', 'message', 'required', 'state', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
13
+ ['aria', 'label', 'labelSize', 'message', 'required', 'state', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
14
  }, propsToSync);
15
15
  const props = {
16
16
  ...rest,
@@ -0,0 +1,30 @@
1
+ import type { BaseProps } from '../../BaseProps';
2
+ import type { SelectedAriaAttributes, FlagAriaAttribute, FlagName, FlagSize } from '../types';
3
+ export type PFlagProps = BaseProps & {
4
+ /**
5
+ * A map of ARIA attributes to enhance the flag's accessibility. For example, use `{ 'aria-label': 'German flag' }` to provide a descriptive label for screen readers.
6
+ */
7
+ aria?: SelectedAriaAttributes<FlagAriaAttribute>;
8
+ /**
9
+ * Specifies the country flag to display. Use the two-letter ISO 3166-1 alpha-2 country code. For example, use `us` for the United States, `de` for Germany, `gb` for Great Britain.
10
+ */
11
+ name?: FlagName;
12
+ /**
13
+ * The size of the flag. Pre-defined sizes are aligned with the Porsche Next typescale. Available values are `small`, `medium`, `large`, etc.
14
+ */
15
+ size?: FlagSize;
16
+ };
17
+ export declare const PFlag: import("react").ForwardRefExoticComponent<import("react").DOMAttributes<{}> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
18
+ /**
19
+ * A map of ARIA attributes to enhance the flag's accessibility. For example, use `{ 'aria-label': 'German flag' }` to provide a descriptive label for screen readers.
20
+ */
21
+ aria?: SelectedAriaAttributes<FlagAriaAttribute>;
22
+ /**
23
+ * Specifies the country flag to display. Use the two-letter ISO 3166-1 alpha-2 country code. For example, use `us` for the United States, `de` for Germany, `gb` for Great Britain.
24
+ */
25
+ name?: FlagName;
26
+ /**
27
+ * The size of the flag. Pre-defined sizes are aligned with the Porsche Next typescale. Available values are `small`, `medium`, `large`, etc.
28
+ */
29
+ size?: FlagSize;
30
+ } & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef, useRef } from 'react';
4
+ import { usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
+ import { syncRef } from '../../utils.mjs';
6
+
7
+ const PFlag = /*#__PURE__*/ forwardRef(({ aria, name = 'de', size = 'small', className, ...rest }, ref) => {
8
+ const elementRef = useRef(undefined);
9
+ const WebComponentTag = usePrefix('p-flag');
10
+ const propsToSync = [aria, name, size];
11
+ useBrowserLayoutEffect(() => {
12
+ const { current } = elementRef;
13
+ ['aria', 'name', 'size'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
+ }, propsToSync);
15
+ const props = {
16
+ ...rest,
17
+ class: useMergedClass(elementRef, className),
18
+ ref: syncRef(elementRef, ref)
19
+ };
20
+ // @ts-ignore
21
+ return jsx(WebComponentTag, { ...props });
22
+ });
23
+
24
+ export { PFlag };
@@ -17,6 +17,7 @@ export * from './drilldown-item.wrapper';
17
17
  export * from './drilldown-link.wrapper';
18
18
  export * from './fieldset.wrapper';
19
19
  export * from './fieldset-wrapper.wrapper';
20
+ export * from './flag.wrapper';
20
21
  export * from './flex.wrapper';
21
22
  export * from './flex-item.wrapper';
22
23
  export * from './flyout.wrapper';
@@ -26,10 +27,15 @@ export * from './heading.wrapper';
26
27
  export * from './headline.wrapper';
27
28
  export * from './icon.wrapper';
28
29
  export * from './inline-notification.wrapper';
30
+ export * from './input-date.wrapper';
31
+ export * from './input-email.wrapper';
29
32
  export * from './input-number.wrapper';
30
33
  export * from './input-password.wrapper';
31
34
  export * from './input-search.wrapper';
35
+ export * from './input-tel.wrapper';
32
36
  export * from './input-text.wrapper';
37
+ export * from './input-time.wrapper';
38
+ export * from './input-url.wrapper';
33
39
  export * from './link.wrapper';
34
40
  export * from './link-pure.wrapper';
35
41
  export * from './link-social.wrapper';