@porsche-design-system/components-react 4.0.0-beta.1 → 4.0.0-beta.2

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 (48) hide show
  1. package/CHANGELOG.md +84 -6
  2. package/cjs/lib/components/scroller.wrapper.cjs +3 -3
  3. package/cjs/lib/components/table.wrapper.cjs +3 -3
  4. package/cjs/lib/components/tabs-bar.wrapper.cjs +3 -3
  5. package/cjs/lib/components/tabs.wrapper.cjs +3 -3
  6. package/esm/lib/components/scroller.wrapper.d.ts +20 -4
  7. package/esm/lib/components/scroller.wrapper.mjs +3 -3
  8. package/esm/lib/components/table.wrapper.d.ts +10 -2
  9. package/esm/lib/components/table.wrapper.mjs +3 -3
  10. package/esm/lib/components/tabs-bar.wrapper.d.ts +19 -3
  11. package/esm/lib/components/tabs-bar.wrapper.mjs +3 -3
  12. package/esm/lib/components/tabs.wrapper.d.ts +19 -3
  13. package/esm/lib/components/tabs.wrapper.mjs +3 -3
  14. package/esm/lib/types.d.ts +34 -16
  15. package/package.json +2 -2
  16. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +302 -216
  17. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +3 -12
  18. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.cjs +4 -4
  19. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/table.wrapper.cjs +4 -4
  20. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/tabs-bar.wrapper.cjs +4 -4
  21. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/tabs.wrapper.cjs +4 -4
  22. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.cjs +8 -12
  23. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.cjs +1 -1
  24. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.cjs +3 -2
  25. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.cjs +1 -1
  26. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.cjs +8 -8
  27. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.cjs +3 -2
  28. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +302 -216
  29. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +4 -11
  30. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.mjs +4 -4
  31. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/table.wrapper.mjs +4 -4
  32. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/tabs-bar.wrapper.mjs +4 -4
  33. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/tabs.wrapper.mjs +4 -4
  34. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.mjs +9 -13
  35. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.mjs +1 -1
  36. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.mjs +3 -2
  37. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.mjs +1 -1
  38. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.mjs +8 -8
  39. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.mjs +3 -2
  40. package/ssr/esm/lib/components/scroller.wrapper.d.ts +20 -4
  41. package/ssr/esm/lib/components/table.wrapper.d.ts +10 -2
  42. package/ssr/esm/lib/components/tabs-bar.wrapper.d.ts +19 -3
  43. package/ssr/esm/lib/components/tabs.wrapper.d.ts +19 -3
  44. package/ssr/esm/lib/dsr-components/scroller.d.ts +5 -3
  45. package/ssr/esm/lib/dsr-components/stepper-horizontal.d.ts +3 -2
  46. package/ssr/esm/lib/dsr-components/tabs-bar.d.ts +6 -6
  47. package/ssr/esm/lib/dsr-components/tabs.d.ts +2 -1
  48. package/ssr/esm/lib/types.d.ts +34 -16
package/CHANGELOG.md CHANGED
@@ -14,6 +14,74 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
14
14
 
15
15
  ## [Unreleased]
16
16
 
17
+ ## [4.0.0-beta.2] - 2026-03-11
18
+
19
+ ### Added
20
+
21
+ - `Scroller`:
22
+ - Prop `compact`: Displays with reduced spacing and smaller padding for a more condensed layout.
23
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
24
+ - Prop `sticky`: Makes the indicator sticky at the top or bottom while scrolling depending on the scroll direction.
25
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
26
+ - CSS Variable `--p-scroller-indicator-top`: Defines the distance from the top of the viewport at which the indicator
27
+ sticks when scrolling down and `sticky` is enabled.
28
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
29
+ - CSS Variable `--p-scroller-indicator-bottom`: Defines the distance from the bottom of the viewport at which the
30
+ indicator sticks when scrolling up and `sticky` is enabled.
31
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
32
+ - CSS Variable `--p-scroller-gap`: Defines the gap between slotted nodes.
33
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
34
+ - `Tabs Bar`:
35
+ - Prop `background`: Defines the background color. Use `frosted` only on images, videos or gradients.
36
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
37
+ - Prop `compact`: Displays with reduced spacing and smaller padding for a more condensed layout.
38
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
39
+ - `Tabs`:
40
+ - Prop `background`: Defines the background color. Use `frosted` only on images, videos or gradients.
41
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
42
+ - Prop `compact`: Displays with reduced spacing and smaller padding for a more condensed layout.
43
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
44
+ - `Table`:
45
+ - Prop `sticky`: Makes the scroll indicator sticky at the top or bottom while scrolling depending on the scroll
46
+ direction. ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
47
+ - CSS Variable `--p-table-scroll-indicator-top`: Defines the distance from the top of the viewport at which the scroll
48
+ indicator sticks when scrolling down and `sticky` is enabled.
49
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
50
+ - CSS Variable `--p-table-scroll-indicator-bottom`: Defines the distance from the bottom of the viewport at which the
51
+ scroll indicator sticks when scrolling up and `sticky` is enabled.
52
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
53
+
54
+ ### Changed
55
+
56
+ - `Scroller`:
57
+ - Modernize visual appearance ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
58
+ - `Tabs Bar`:
59
+ - Modernize visual appearance ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
60
+ - `Tabs`:
61
+ - Modernize visual appearance ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
62
+ - `Table`:
63
+ - Use modernized scroller internally
64
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
65
+ - `Stepper Horizontal`:
66
+ - Use modernized scroller internally
67
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
68
+
69
+ ### Deprecated
70
+
71
+ - `Scroller`:
72
+ - Prop `alignScrollIndicator`: Will be removed with next major release, has no effect anymore.
73
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
74
+ - Prop `scrollToPosition`: Will be removed with next major release, use native `scrollIntoView()` on the slotted
75
+ element itself, e.g.
76
+ `el.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center', container: 'nearest' })`.
77
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
78
+ - `Tabs Bar`:
79
+ - Prop `weight`: Will be removed with next major release, has no effect anymore.
80
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
81
+ - `Tabs`:
82
+ - Prop `weight`: Will be removed with next major release, has no effect anymore.
83
+ ([#4228](https://github.com/porsche-design-system/porsche-design-system/pull/4228))
84
+
17
85
  ## [4.0.0-beta.1] - 2026-03-02
18
86
 
19
87
  ### Added
@@ -525,6 +593,21 @@ and migration steps.
525
593
  - `Multi Select`: trim whitespace of selected options text
526
594
  ([#4132](https://github.com/porsche-design-system/porsche-design-system/pull/4132))
527
595
 
596
+ ## [3.33.0] - 2026-03-09
597
+
598
+ ## [3.33.0-rc.0] - 2026-03-04
599
+
600
+ ### Added
601
+
602
+ - `Tag`: new `variant` property to define background colors which complies now with PDS `v4`
603
+ ([#4227](https://github.com/porsche-design-system/porsche-design-system/pull/4227))
604
+ - `Checkbox`: add warning for Firefox form restore bug
605
+
606
+ ### Changed
607
+
608
+ - `Tag`: deprecated `color` property, use `variant` property instead to define background colors which complies now with
609
+ PDS `v4` ([#4227](https://github.com/porsche-design-system/porsche-design-system/pull/4227))
610
+
528
611
  ## [3.32.1] - 2026-02-24
529
612
 
530
613
  ## [3.32.1-rc.0] - 2026-02-20
@@ -601,11 +684,6 @@ and migration steps.
601
684
  - `Multi Select`: trim whitespace of selected options text
602
685
  ([#4132](https://github.com/porsche-design-system/porsche-design-system/pull/4132))
603
686
 
604
- ### Changed
605
-
606
- - `Link Tile`, `Button Tile`: appearance in compact mode
607
- - `Canvas`: appearance on mobile view
608
-
609
687
  ## [3.31.0] - 2025-11-13
610
688
 
611
689
  ## [3.31.0-rc.0] - 2025-11-11
@@ -2021,7 +2099,7 @@ and migration steps.
2021
2099
 
2022
2100
  ```diff
2023
2101
  - <p-carousel align-header="left"></p-carousel>
2024
- + <p-carousel align-header="start"></p-carousel>
2102
+ + <p-carousel-pure align-header="start"></p-carousel>
2025
2103
  ```
2026
2104
 
2027
2105
  ### Fixed
@@ -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 PScroller = /*#__PURE__*/ react.forwardRef(({ alignScrollIndicator = 'center', aria, scrollToPosition, scrollbar = false, className, ...rest }, ref) => {
9
+ const PScroller = /*#__PURE__*/ react.forwardRef(({ alignScrollIndicator = 'center', aria, compact, scrollToPosition, scrollbar = false, sticky = false, className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  const WebComponentTag = hooks.usePrefix('p-scroller');
12
- const propsToSync = [alignScrollIndicator, aria, scrollToPosition, scrollbar];
12
+ const propsToSync = [alignScrollIndicator, aria, compact, scrollToPosition, scrollbar, sticky];
13
13
  hooks.useBrowserLayoutEffect(() => {
14
14
  const { current } = elementRef;
15
- ['alignScrollIndicator', 'aria', 'scrollToPosition', 'scrollbar'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
+ ['alignScrollIndicator', 'aria', 'compact', 'scrollToPosition', 'scrollbar', 'sticky'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
16
  }, propsToSync);
17
17
  const props = {
18
18
  ...rest,
@@ -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 PTable = /*#__PURE__*/ react.forwardRef(({ caption, compact = false, layout = 'auto', onUpdate, className, ...rest }, ref) => {
9
+ const PTable = /*#__PURE__*/ react.forwardRef(({ caption, compact = false, layout = 'auto', onUpdate, sticky = false, className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  hooks.useEventCallback(elementRef, 'update', onUpdate);
12
12
  const WebComponentTag = hooks.usePrefix('p-table');
13
- const propsToSync = [caption, compact, layout];
13
+ const propsToSync = [caption, compact, layout, sticky];
14
14
  hooks.useBrowserLayoutEffect(() => {
15
15
  const { current } = elementRef;
16
- ['caption', 'compact', 'layout'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
+ ['caption', 'compact', 'layout', 'sticky'].forEach((propName, i) => (current[propName] = propsToSync[i]));
17
17
  }, propsToSync);
18
18
  const props = {
19
19
  ...rest,
@@ -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 PTabsBar = /*#__PURE__*/ react.forwardRef(({ activeTabIndex, onUpdate, size = 'small', weight = 'regular', className, ...rest }, ref) => {
9
+ const PTabsBar = /*#__PURE__*/ react.forwardRef(({ activeTabIndex, background = 'none', compact, onUpdate, size = 'small', weight = 'regular', className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  hooks.useEventCallback(elementRef, 'update', onUpdate);
12
12
  const WebComponentTag = hooks.usePrefix('p-tabs-bar');
13
- const propsToSync = [activeTabIndex, size, weight];
13
+ const propsToSync = [activeTabIndex, background, compact, size, weight];
14
14
  hooks.useBrowserLayoutEffect(() => {
15
15
  const { current } = elementRef;
16
- ['activeTabIndex', 'size', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
+ ['activeTabIndex', 'background', 'compact', 'size', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
17
17
  }, propsToSync);
18
18
  const props = {
19
19
  ...rest,
@@ -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 PTabs = /*#__PURE__*/ react.forwardRef(({ activeTabIndex = 0, onUpdate, size = 'small', weight = 'regular', className, ...rest }, ref) => {
9
+ const PTabs = /*#__PURE__*/ react.forwardRef(({ activeTabIndex = 0, background = 'none', compact, onUpdate, size = 'small', weight = 'regular', className, ...rest }, ref) => {
10
10
  const elementRef = react.useRef(undefined);
11
11
  hooks.useEventCallback(elementRef, 'update', onUpdate);
12
12
  const WebComponentTag = hooks.usePrefix('p-tabs');
13
- const propsToSync = [activeTabIndex, size, weight];
13
+ const propsToSync = [activeTabIndex, background, compact, size, weight];
14
14
  hooks.useBrowserLayoutEffect(() => {
15
15
  const { current } = elementRef;
16
- ['activeTabIndex', 'size', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
+ ['activeTabIndex', 'background', 'compact', 'size', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
17
17
  }, propsToSync);
18
18
  const props = {
19
19
  ...rest,
@@ -2,7 +2,7 @@ import type { BaseProps } from '../../BaseProps';
2
2
  import type { ScrollerAlignScrollIndicator, SelectedAriaAttributes, ScrollerAriaAttribute, ScrollerScrollToPosition } from '../types';
3
3
  export type PScrollerProps = BaseProps & {
4
4
  /**
5
- * Sets the vertical position of scroll indicator.
5
+ * @deprecated since v4.0.0, will be removed with next major release, has no effect anymore.
6
6
  */
7
7
  alignScrollIndicator?: ScrollerAlignScrollIndicator;
8
8
  /**
@@ -10,17 +10,25 @@ export type PScrollerProps = BaseProps & {
10
10
  */
11
11
  aria?: SelectedAriaAttributes<ScrollerAriaAttribute>;
12
12
  /**
13
- * Scrolls the scroll area to the left either smooth or immediately.
13
+ * Displays with reduced spacing and smaller padding for a more condensed layout.
14
+ */
15
+ compact?: boolean;
16
+ /**
17
+ * @deprecated since v4.0.0, use native `scrollIntoView()` on the slotted element itself.
14
18
  */
15
19
  scrollToPosition?: ScrollerScrollToPosition;
16
20
  /**
17
21
  * Specifies if scrollbar should be shown.
18
22
  */
19
23
  scrollbar?: boolean;
24
+ /**
25
+ * @experimental Makes the indicator sticky at the top or bottom while scrolling depending on the scroll direction.
26
+ */
27
+ sticky?: boolean;
20
28
  };
21
29
  export declare const PScroller: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
22
30
  /**
23
- * Sets the vertical position of scroll indicator.
31
+ * @deprecated since v4.0.0, will be removed with next major release, has no effect anymore.
24
32
  */
25
33
  alignScrollIndicator?: ScrollerAlignScrollIndicator;
26
34
  /**
@@ -28,13 +36,21 @@ export declare const PScroller: import("react").ForwardRefExoticComponent<Omit<i
28
36
  */
29
37
  aria?: SelectedAriaAttributes<ScrollerAriaAttribute>;
30
38
  /**
31
- * Scrolls the scroll area to the left either smooth or immediately.
39
+ * Displays with reduced spacing and smaller padding for a more condensed layout.
40
+ */
41
+ compact?: boolean;
42
+ /**
43
+ * @deprecated since v4.0.0, use native `scrollIntoView()` on the slotted element itself.
32
44
  */
33
45
  scrollToPosition?: ScrollerScrollToPosition;
34
46
  /**
35
47
  * Specifies if scrollbar should be shown.
36
48
  */
37
49
  scrollbar?: boolean;
50
+ /**
51
+ * @experimental Makes the indicator sticky at the top or bottom while scrolling depending on the scroll direction.
52
+ */
53
+ sticky?: boolean;
38
54
  } & {
39
55
  children?: import("react").ReactNode | undefined;
40
56
  } & import("react").RefAttributes<HTMLElement>>;
@@ -4,13 +4,13 @@ import { forwardRef, useRef } from 'react';
4
4
  import { usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
5
  import { syncRef } from '../../utils.mjs';
6
6
 
7
- const PScroller = /*#__PURE__*/ forwardRef(({ alignScrollIndicator = 'center', aria, scrollToPosition, scrollbar = false, className, ...rest }, ref) => {
7
+ const PScroller = /*#__PURE__*/ forwardRef(({ alignScrollIndicator = 'center', aria, compact, scrollToPosition, scrollbar = false, sticky = false, className, ...rest }, ref) => {
8
8
  const elementRef = useRef(undefined);
9
9
  const WebComponentTag = usePrefix('p-scroller');
10
- const propsToSync = [alignScrollIndicator, aria, scrollToPosition, scrollbar];
10
+ const propsToSync = [alignScrollIndicator, aria, compact, scrollToPosition, scrollbar, sticky];
11
11
  useBrowserLayoutEffect(() => {
12
12
  const { current } = elementRef;
13
- ['alignScrollIndicator', 'aria', 'scrollToPosition', 'scrollbar'].forEach((propName, i) => (current[propName] = propsToSync[i]));
13
+ ['alignScrollIndicator', 'aria', 'compact', 'scrollToPosition', 'scrollbar', 'sticky'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
14
  }, propsToSync);
15
15
  const props = {
16
16
  ...rest,
@@ -6,7 +6,7 @@ export type PTableProps = BaseProps & {
6
6
  */
7
7
  caption?: string;
8
8
  /**
9
- * Displays as compact version.
9
+ * Displays with reduced spacing and smaller padding for a more condensed layout.
10
10
  */
11
11
  compact?: boolean;
12
12
  /**
@@ -17,6 +17,10 @@ export type PTableProps = BaseProps & {
17
17
  * Emitted when sorting is changed.
18
18
  */
19
19
  onUpdate?: (event: CustomEvent<TableUpdateEventDetail>) => void;
20
+ /**
21
+ * @experimental Makes the scroll indicator sticky at the top or bottom while scrolling depending on the scroll direction.
22
+ */
23
+ sticky?: boolean;
20
24
  };
21
25
  export declare const PTable: import("react").ForwardRefExoticComponent<Omit<import("react").DOMAttributes<{}>, "onChange" | "onInput" | "onToggle"> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
22
26
  /**
@@ -24,7 +28,7 @@ export declare const PTable: import("react").ForwardRefExoticComponent<Omit<impo
24
28
  */
25
29
  caption?: string;
26
30
  /**
27
- * Displays as compact version.
31
+ * Displays with reduced spacing and smaller padding for a more condensed layout.
28
32
  */
29
33
  compact?: boolean;
30
34
  /**
@@ -35,6 +39,10 @@ export declare const PTable: import("react").ForwardRefExoticComponent<Omit<impo
35
39
  * Emitted when sorting is changed.
36
40
  */
37
41
  onUpdate?: (event: CustomEvent<TableUpdateEventDetail>) => void;
42
+ /**
43
+ * @experimental Makes the scroll indicator sticky at the top or bottom while scrolling depending on the scroll direction.
44
+ */
45
+ sticky?: boolean;
38
46
  } & {
39
47
  children?: import("react").ReactNode | undefined;
40
48
  } & import("react").RefAttributes<HTMLElement>>;
@@ -4,14 +4,14 @@ import { forwardRef, useRef } from 'react';
4
4
  import { useEventCallback, usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
5
  import { syncRef } from '../../utils.mjs';
6
6
 
7
- const PTable = /*#__PURE__*/ forwardRef(({ caption, compact = false, layout = 'auto', onUpdate, className, ...rest }, ref) => {
7
+ const PTable = /*#__PURE__*/ forwardRef(({ caption, compact = false, layout = 'auto', onUpdate, sticky = false, className, ...rest }, ref) => {
8
8
  const elementRef = useRef(undefined);
9
9
  useEventCallback(elementRef, 'update', onUpdate);
10
10
  const WebComponentTag = usePrefix('p-table');
11
- const propsToSync = [caption, compact, layout];
11
+ const propsToSync = [caption, compact, layout, sticky];
12
12
  useBrowserLayoutEffect(() => {
13
13
  const { current } = elementRef;
14
- ['caption', 'compact', 'layout'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
+ ['caption', 'compact', 'layout', 'sticky'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
15
  }, propsToSync);
16
16
  const props = {
17
17
  ...rest,
@@ -1,10 +1,18 @@
1
1
  import type { BaseProps } from '../../BaseProps';
2
- import type { TabsBarUpdateEventDetail, BreakpointCustomizable, TabsBarSize, TabsBarWeight } from '../types';
2
+ import type { TabsBarBackground, TabsBarUpdateEventDetail, BreakpointCustomizable, TabsBarSize, TabsBarWeight } from '../types';
3
3
  export type PTabsBarProps = BaseProps & {
4
4
  /**
5
5
  * Defines which tab to be visualized as selected (zero-based numbering), undefined if none should be selected.
6
6
  */
7
7
  activeTabIndex?: number | undefined;
8
+ /**
9
+ * Defines the background color. Use `frosted` only on images, videos or gradients.
10
+ */
11
+ background?: TabsBarBackground;
12
+ /**
13
+ * Displays with reduced spacing and smaller padding for a more condensed layout.
14
+ */
15
+ compact?: boolean;
8
16
  /**
9
17
  * Emitted when active tab is changed.
10
18
  */
@@ -14,7 +22,7 @@ export type PTabsBarProps = BaseProps & {
14
22
  */
15
23
  size?: BreakpointCustomizable<TabsBarSize>;
16
24
  /**
17
- * The text weight.
25
+ * @deprecated Will be removed in the next major release. Has no effect anymore.
18
26
  */
19
27
  weight?: TabsBarWeight;
20
28
  };
@@ -23,6 +31,14 @@ export declare const PTabsBar: import("react").ForwardRefExoticComponent<Omit<im
23
31
  * Defines which tab to be visualized as selected (zero-based numbering), undefined if none should be selected.
24
32
  */
25
33
  activeTabIndex?: number | undefined;
34
+ /**
35
+ * Defines the background color. Use `frosted` only on images, videos or gradients.
36
+ */
37
+ background?: TabsBarBackground;
38
+ /**
39
+ * Displays with reduced spacing and smaller padding for a more condensed layout.
40
+ */
41
+ compact?: boolean;
26
42
  /**
27
43
  * Emitted when active tab is changed.
28
44
  */
@@ -32,7 +48,7 @@ export declare const PTabsBar: import("react").ForwardRefExoticComponent<Omit<im
32
48
  */
33
49
  size?: BreakpointCustomizable<TabsBarSize>;
34
50
  /**
35
- * The text weight.
51
+ * @deprecated Will be removed in the next major release. Has no effect anymore.
36
52
  */
37
53
  weight?: TabsBarWeight;
38
54
  } & {
@@ -4,14 +4,14 @@ import { forwardRef, useRef } from 'react';
4
4
  import { useEventCallback, usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
5
  import { syncRef } from '../../utils.mjs';
6
6
 
7
- const PTabsBar = /*#__PURE__*/ forwardRef(({ activeTabIndex, onUpdate, size = 'small', weight = 'regular', className, ...rest }, ref) => {
7
+ const PTabsBar = /*#__PURE__*/ forwardRef(({ activeTabIndex, background = 'none', compact, onUpdate, size = 'small', weight = 'regular', className, ...rest }, ref) => {
8
8
  const elementRef = useRef(undefined);
9
9
  useEventCallback(elementRef, 'update', onUpdate);
10
10
  const WebComponentTag = usePrefix('p-tabs-bar');
11
- const propsToSync = [activeTabIndex, size, weight];
11
+ const propsToSync = [activeTabIndex, background, compact, size, weight];
12
12
  useBrowserLayoutEffect(() => {
13
13
  const { current } = elementRef;
14
- ['activeTabIndex', 'size', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
+ ['activeTabIndex', 'background', 'compact', 'size', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
15
  }, propsToSync);
16
16
  const props = {
17
17
  ...rest,
@@ -1,10 +1,18 @@
1
1
  import type { BaseProps } from '../../BaseProps';
2
- import type { TabsUpdateEventDetail, BreakpointCustomizable, TabsSize, TabsWeight } from '../types';
2
+ import type { TabsBackground, TabsUpdateEventDetail, BreakpointCustomizable, TabsSize, TabsWeight } from '../types';
3
3
  export type PTabsProps = BaseProps & {
4
4
  /**
5
5
  * Defines which tab to be visualized as selected (zero-based numbering).
6
6
  */
7
7
  activeTabIndex?: number;
8
+ /**
9
+ * Defines the background color. Use `frosted` only on images, videos or gradients.
10
+ */
11
+ background?: TabsBackground;
12
+ /**
13
+ * Displays with reduced spacing and smaller padding for a more condensed layout.
14
+ */
15
+ compact?: boolean;
8
16
  /**
9
17
  * Emitted when active tab is changed.
10
18
  */
@@ -14,7 +22,7 @@ export type PTabsProps = BaseProps & {
14
22
  */
15
23
  size?: BreakpointCustomizable<TabsSize>;
16
24
  /**
17
- * The text weight.
25
+ * @deprecated Will be removed in the next major release. Has no effect anymore.
18
26
  */
19
27
  weight?: TabsWeight;
20
28
  };
@@ -23,6 +31,14 @@ export declare const PTabs: import("react").ForwardRefExoticComponent<Omit<impor
23
31
  * Defines which tab to be visualized as selected (zero-based numbering).
24
32
  */
25
33
  activeTabIndex?: number;
34
+ /**
35
+ * Defines the background color. Use `frosted` only on images, videos or gradients.
36
+ */
37
+ background?: TabsBackground;
38
+ /**
39
+ * Displays with reduced spacing and smaller padding for a more condensed layout.
40
+ */
41
+ compact?: boolean;
26
42
  /**
27
43
  * Emitted when active tab is changed.
28
44
  */
@@ -32,7 +48,7 @@ export declare const PTabs: import("react").ForwardRefExoticComponent<Omit<impor
32
48
  */
33
49
  size?: BreakpointCustomizable<TabsSize>;
34
50
  /**
35
- * The text weight.
51
+ * @deprecated Will be removed in the next major release. Has no effect anymore.
36
52
  */
37
53
  weight?: TabsWeight;
38
54
  } & {
@@ -4,14 +4,14 @@ import { forwardRef, useRef } from 'react';
4
4
  import { useEventCallback, usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
5
  import { syncRef } from '../../utils.mjs';
6
6
 
7
- const PTabs = /*#__PURE__*/ forwardRef(({ activeTabIndex = 0, onUpdate, size = 'small', weight = 'regular', className, ...rest }, ref) => {
7
+ const PTabs = /*#__PURE__*/ forwardRef(({ activeTabIndex = 0, background = 'none', compact, onUpdate, size = 'small', weight = 'regular', className, ...rest }, ref) => {
8
8
  const elementRef = useRef(undefined);
9
9
  useEventCallback(elementRef, 'update', onUpdate);
10
10
  const WebComponentTag = usePrefix('p-tabs');
11
- const propsToSync = [activeTabIndex, size, weight];
11
+ const propsToSync = [activeTabIndex, background, compact, size, weight];
12
12
  useBrowserLayoutEffect(() => {
13
13
  const { current } = elementRef;
14
- ['activeTabIndex', 'size', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
+ ['activeTabIndex', 'background', 'compact', 'size', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
15
  }, propsToSync);
16
16
  const props = {
17
17
  ...rest,
@@ -752,19 +752,6 @@ declare const LINK_ARIA_ATTRIBUTES: readonly [
752
752
  "aria-haspopup"
753
753
  ];
754
754
  export type LinkAriaAttribute = (typeof LINK_ARIA_ATTRIBUTES)[number];
755
- declare const SCROLLER_ARIA_ATTRIBUTES: readonly [
756
- "role"
757
- ];
758
- export type ScrollerAriaAttribute = (typeof SCROLLER_ARIA_ATTRIBUTES)[number];
759
- export type ScrollerScrollToPosition = {
760
- scrollPosition: number;
761
- isSmooth?: boolean;
762
- } | string;
763
- declare const SCROLL_INDICATOR_POSITIONS: readonly [
764
- "top",
765
- "center"
766
- ];
767
- export type ScrollerAlignScrollIndicator = (typeof SCROLL_INDICATOR_POSITIONS)[number];
768
755
  export type MultiSelectState = FormState;
769
756
  export type MultiSelectDropdownDirection = SelectComponentsDropdownDirection;
770
757
  export type MultiSelectChangeEventDetail = {
@@ -1222,6 +1209,21 @@ export type GroupDirection = (typeof GROUP_DIRECTIONS)[number];
1222
1209
  export type RadioGroupState = FormState;
1223
1210
  export type RadioGroupDirection = GroupDirection;
1224
1211
  export type RadioGroupChangeEventDetail = Event;
1212
+ declare const SCROLLER_ALIGN_SCROLL_INDICATORS: readonly [
1213
+ "top",
1214
+ "center"
1215
+ ];
1216
+ /** @deprecated */
1217
+ export type ScrollerAlignScrollIndicator = (typeof SCROLLER_ALIGN_SCROLL_INDICATORS)[number];
1218
+ declare const SCROLLER_ARIA_ATTRIBUTES: readonly [
1219
+ "role"
1220
+ ];
1221
+ export type ScrollerAriaAttribute = (typeof SCROLLER_ARIA_ATTRIBUTES)[number];
1222
+ /** @deprecated */
1223
+ export type ScrollerScrollToPosition = {
1224
+ scrollPosition: number;
1225
+ isSmooth?: boolean;
1226
+ } | string;
1225
1227
  export type SegmentedControlChangeEventDetail = {
1226
1228
  value: string | number;
1227
1229
  };
@@ -1291,27 +1293,43 @@ declare const TABS_SIZES: readonly [
1291
1293
  "medium"
1292
1294
  ];
1293
1295
  export type TabsSize = (typeof TABS_SIZES)[number];
1296
+ declare const TABS_BACKGROUNDS: readonly [
1297
+ "canvas",
1298
+ "surface",
1299
+ "frosted",
1300
+ "none"
1301
+ ];
1302
+ export type TabsBackground = (typeof TABS_BACKGROUNDS)[number];
1294
1303
  declare const TABS_WEIGHTS: readonly [
1295
1304
  "regular",
1296
1305
  "semi-bold"
1297
1306
  ];
1307
+ /** @deprecated */
1298
1308
  export type TabsWeight = (typeof TABS_WEIGHTS)[number];
1299
1309
  export type TabsUpdateEventDetail = {
1300
1310
  activeTabIndex: number;
1301
1311
  };
1312
+ declare const TABS_BAR_BACKGROUNDS: readonly [
1313
+ "canvas",
1314
+ "surface",
1315
+ "frosted",
1316
+ "none"
1317
+ ];
1318
+ export type TabsBarBackground = (typeof TABS_BAR_BACKGROUNDS)[number];
1302
1319
  declare const TABS_BAR_SIZES: readonly [
1303
1320
  "small",
1304
1321
  "medium"
1305
1322
  ];
1306
1323
  export type TabsBarSize = (typeof TABS_BAR_SIZES)[number];
1324
+ export type TabsBarUpdateEventDetail = {
1325
+ activeTabIndex: number;
1326
+ };
1307
1327
  declare const TABS_BAR_WEIGHTS: readonly [
1308
1328
  "regular",
1309
1329
  "semi-bold"
1310
1330
  ];
1331
+ /** @deprecated */
1311
1332
  export type TabsBarWeight = (typeof TABS_BAR_WEIGHTS)[number];
1312
- export type TabsBarUpdateEventDetail = {
1313
- activeTabIndex: number;
1314
- };
1315
1333
  export type TagIcon = IconName | "none";
1316
1334
  declare const TAG_VARIANTS: readonly [
1317
1335
  "primary",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@porsche-design-system/components-react",
3
- "version": "4.0.0-beta.1",
3
+ "version": "4.0.0-beta.2",
4
4
  "description": "Porsche Design System is a component library designed to help developers create the best experience for software or services distributed by Dr. Ing. h.c. F. Porsche AG.",
5
5
  "keywords": [
6
6
  "porsche",
@@ -17,7 +17,7 @@
17
17
  "license": "SEE LICENSE IN LICENSE",
18
18
  "homepage": "https://designsystem.porsche.com",
19
19
  "dependencies": {
20
- "@porsche-design-system/components-js": "4.0.0-beta.1"
20
+ "@porsche-design-system/components-js": "4.0.0-beta.2"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "ag-grid-community": ">= 35.0.0 <36.0.0",