@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.
- package/CHANGELOG.md +84 -6
- package/cjs/lib/components/scroller.wrapper.cjs +3 -3
- package/cjs/lib/components/table.wrapper.cjs +3 -3
- package/cjs/lib/components/tabs-bar.wrapper.cjs +3 -3
- package/cjs/lib/components/tabs.wrapper.cjs +3 -3
- package/esm/lib/components/scroller.wrapper.d.ts +20 -4
- package/esm/lib/components/scroller.wrapper.mjs +3 -3
- package/esm/lib/components/table.wrapper.d.ts +10 -2
- package/esm/lib/components/table.wrapper.mjs +3 -3
- package/esm/lib/components/tabs-bar.wrapper.d.ts +19 -3
- package/esm/lib/components/tabs-bar.wrapper.mjs +3 -3
- package/esm/lib/components/tabs.wrapper.d.ts +19 -3
- package/esm/lib/components/tabs.wrapper.mjs +3 -3
- package/esm/lib/types.d.ts +34 -16
- package/package.json +2 -2
- package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +302 -216
- package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +3 -12
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.cjs +4 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/table.wrapper.cjs +4 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/tabs-bar.wrapper.cjs +4 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/tabs.wrapper.cjs +4 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.cjs +8 -12
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.cjs +3 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.cjs +8 -8
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.cjs +3 -2
- package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +302 -216
- package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +4 -11
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/table.wrapper.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/tabs-bar.wrapper.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/tabs.wrapper.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.mjs +9 -13
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.mjs +3 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.mjs +1 -1
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.mjs +8 -8
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.mjs +3 -2
- package/ssr/esm/lib/components/scroller.wrapper.d.ts +20 -4
- package/ssr/esm/lib/components/table.wrapper.d.ts +10 -2
- package/ssr/esm/lib/components/tabs-bar.wrapper.d.ts +19 -3
- package/ssr/esm/lib/components/tabs.wrapper.d.ts +19 -3
- package/ssr/esm/lib/dsr-components/scroller.d.ts +5 -3
- package/ssr/esm/lib/dsr-components/stepper-horizontal.d.ts +3 -2
- package/ssr/esm/lib/dsr-components/tabs-bar.d.ts +6 -6
- package/ssr/esm/lib/dsr-components/tabs.d.ts +2 -1
- 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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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,
|
package/esm/lib/types.d.ts
CHANGED
|
@@ -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.
|
|
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.
|
|
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",
|