@porsche-design-system/components-react 3.24.0 → 3.25.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/cjs/lib/components/button-pure.wrapper.cjs +3 -3
- package/cjs/lib/components/button.wrapper.cjs +3 -3
- package/cjs/lib/components/sheet.wrapper.cjs +29 -0
- package/cjs/public-api.cjs +2 -0
- package/esm/lib/components/button-pure.wrapper.d.ts +8 -0
- package/esm/lib/components/button-pure.wrapper.mjs +3 -3
- package/esm/lib/components/button.wrapper.d.ts +8 -0
- package/esm/lib/components/button.wrapper.mjs +3 -3
- package/esm/lib/components/index.d.ts +1 -0
- package/esm/lib/components/sheet.wrapper.d.ts +72 -0
- package/esm/lib/components/sheet.wrapper.mjs +27 -0
- package/esm/lib/types.d.ts +7 -0
- package/esm/public-api.mjs +1 -0
- package/package.json +2 -2
- package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +163 -109
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/button-pure.wrapper.cjs +4 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/button.wrapper.cjs +4 -4
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/sheet.wrapper.cjs +40 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.cjs +2 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.cjs +2 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.cjs +2 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +2 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.cjs +2 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-button-wrapper.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.cjs +1 -1
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.cjs +2 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/sheet.cjs +39 -0
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.cjs +2 -2
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea-wrapper.cjs +3 -3
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea.cjs +3 -3
- package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/public-api.cjs +2 -0
- package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +113 -60
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/button-pure.wrapper.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/button.wrapper.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/sheet.wrapper.mjs +38 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-group.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +4 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.mjs +4 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/canvas.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.mjs +3 -3
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/content-wrapper.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/crest.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/divider.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset-wrapper.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex-item.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-multilevel-item.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout-multilevel.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid-item.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/headline.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/icon.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-social.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-model-signature.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-product.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/marque.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/model-signature.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/optgroup.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pin-code.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/popover.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/radio-button-wrapper.mjs +3 -3
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control-item.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control.mjs +3 -3
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-option.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.mjs +3 -3
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select.mjs +4 -4
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/sheet.mjs +37 -0
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.mjs +2 -2
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea-wrapper.mjs +3 -3
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea.mjs +3 -3
- package/ssr/esm/components-react/projects/react-ssr-wrapper/src/public-api.mjs +1 -0
- package/ssr/esm/lib/components/button-pure.wrapper.d.ts +8 -0
- package/ssr/esm/lib/components/button.wrapper.d.ts +8 -0
- package/ssr/esm/lib/components/index.d.ts +1 -0
- package/ssr/esm/lib/components/sheet.wrapper.d.ts +72 -0
- package/ssr/esm/lib/dsr-components/button-pure.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/button.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/sheet.d.ts +14 -0
- package/ssr/esm/lib/types.d.ts +7 -0
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,24 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
|
|
|
14
14
|
|
|
15
15
|
### [Unreleased]
|
|
16
16
|
|
|
17
|
+
### [3.25.0-rc.0] - 2025-01-21
|
|
18
|
+
|
|
19
|
+
#### Added
|
|
20
|
+
|
|
21
|
+
- `Sheet` ([#3704](https://github.com/porsche-design-system/porsche-design-system/pull/3704))
|
|
22
|
+
- `Button`, `Button-Pure`: Add `form` prop to explicitly associate the component with a form, even when it's not
|
|
23
|
+
directly nested within it. ([#3648](https://github.com/porsche-design-system/porsche-design-system/pull/3648))
|
|
24
|
+
|
|
25
|
+
#### Changed
|
|
26
|
+
|
|
27
|
+
- `Table`: Enable `Table Head Cell` to be used within `Table Row` in addition to `Table Head Row` to further align with
|
|
28
|
+
table structure defined by W3C ([#3701](https://github.com/porsche-design-system/porsche-design-system/pull/3701))
|
|
29
|
+
|
|
30
|
+
#### Fixed
|
|
31
|
+
|
|
32
|
+
- `Textarea`, `Textarea Wrapper`, `Textfield Wrapper`: color contrast of `unit` prop and counter in `readonly` mode
|
|
33
|
+
meets WCAG 2.2 AA standard ([#3693](https://github.com/porsche-design-system/porsche-design-system/pull/3693))
|
|
34
|
+
|
|
17
35
|
### [3.24.0] - 2025-01-08
|
|
18
36
|
|
|
19
37
|
### [3.24.0-rc.1] - 2025-01-08
|
|
@@ -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 PButtonPure = /*#__PURE__*/ react.forwardRef(({ active = false, alignLabel = 'end', aria, disabled = false, hideLabel = false, icon = 'arrow-right', iconSource, loading = false, name, size = 'small', stretch = false, theme, type = 'submit', underline = false, value, weight = 'regular', className, ...rest }, ref) => {
|
|
9
|
+
const PButtonPure = /*#__PURE__*/ react.forwardRef(({ active = false, alignLabel = 'end', aria, disabled = false, form, hideLabel = false, icon = 'arrow-right', iconSource, loading = false, name, size = 'small', stretch = false, theme, type = 'submit', underline = false, value, weight = 'regular', className, ...rest }, ref) => {
|
|
10
10
|
const elementRef = react.useRef(undefined);
|
|
11
11
|
const WebComponentTag = hooks.usePrefix('p-button-pure');
|
|
12
|
-
const propsToSync = [active, alignLabel, aria, disabled, hideLabel, icon, iconSource, loading, name, size, stretch, theme || hooks.useTheme(), type, underline, value, weight];
|
|
12
|
+
const propsToSync = [active, alignLabel, aria, disabled, form, hideLabel, icon, iconSource, loading, name, size, stretch, theme || hooks.useTheme(), type, underline, value, weight];
|
|
13
13
|
hooks.useBrowserLayoutEffect(() => {
|
|
14
14
|
const { current } = elementRef;
|
|
15
|
-
['active', 'alignLabel', 'aria', 'disabled', 'hideLabel', 'icon', 'iconSource', 'loading', 'name', 'size', 'stretch', 'theme', 'type', 'underline', 'value', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
15
|
+
['active', 'alignLabel', 'aria', 'disabled', 'form', 'hideLabel', 'icon', 'iconSource', 'loading', 'name', 'size', 'stretch', 'theme', 'type', 'underline', 'value', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
16
16
|
}, propsToSync);
|
|
17
17
|
const props = {
|
|
18
18
|
...rest,
|
|
@@ -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 PButton = /*#__PURE__*/ react.forwardRef(({ aria, compact = false, disabled = false, hideLabel = false, icon = 'none', iconSource, loading = false, name, theme, type = 'submit', value, variant = 'primary', className, ...rest }, ref) => {
|
|
9
|
+
const PButton = /*#__PURE__*/ react.forwardRef(({ aria, compact = false, disabled = false, form, hideLabel = false, icon = 'none', iconSource, loading = false, name, theme, type = 'submit', value, variant = 'primary', className, ...rest }, ref) => {
|
|
10
10
|
const elementRef = react.useRef(undefined);
|
|
11
11
|
const WebComponentTag = hooks.usePrefix('p-button');
|
|
12
|
-
const propsToSync = [aria, compact, disabled, hideLabel, icon, iconSource, loading, name, theme || hooks.useTheme(), type, value, variant];
|
|
12
|
+
const propsToSync = [aria, compact, disabled, form, hideLabel, icon, iconSource, loading, name, theme || hooks.useTheme(), type, value, variant];
|
|
13
13
|
hooks.useBrowserLayoutEffect(() => {
|
|
14
14
|
const { current } = elementRef;
|
|
15
|
-
['aria', 'compact', 'disabled', 'hideLabel', 'icon', 'iconSource', 'loading', 'name', 'theme', 'type', 'value', 'variant'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
15
|
+
['aria', 'compact', 'disabled', 'form', 'hideLabel', 'icon', 'iconSource', 'loading', 'name', 'theme', 'type', 'value', 'variant'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
16
16
|
}, propsToSync);
|
|
17
17
|
const props = {
|
|
18
18
|
...rest,
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var react = require('react');
|
|
6
|
+
var hooks = require('../../hooks.cjs');
|
|
7
|
+
var utils = require('../../utils.cjs');
|
|
8
|
+
|
|
9
|
+
const PSheet = /*#__PURE__*/ react.forwardRef(({ aria, disableBackdropClick = false, dismissButton = true, onDismiss, onMotionHiddenEnd, onMotionVisibleEnd, open = false, theme, className, ...rest }, ref) => {
|
|
10
|
+
const elementRef = react.useRef(undefined);
|
|
11
|
+
hooks.useEventCallback(elementRef, 'dismiss', onDismiss);
|
|
12
|
+
hooks.useEventCallback(elementRef, 'motionHiddenEnd', onMotionHiddenEnd);
|
|
13
|
+
hooks.useEventCallback(elementRef, 'motionVisibleEnd', onMotionVisibleEnd);
|
|
14
|
+
const WebComponentTag = hooks.usePrefix('p-sheet');
|
|
15
|
+
const propsToSync = [aria, disableBackdropClick, dismissButton, open, theme || hooks.useTheme()];
|
|
16
|
+
hooks.useBrowserLayoutEffect(() => {
|
|
17
|
+
const { current } = elementRef;
|
|
18
|
+
['aria', 'disableBackdropClick', 'dismissButton', 'open', 'theme'].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.PSheet = PSheet;
|
package/cjs/public-api.cjs
CHANGED
|
@@ -50,6 +50,7 @@ var segmentedControlItem_wrapper = require('./lib/components/segmented-control-i
|
|
|
50
50
|
var select_wrapper = require('./lib/components/select.wrapper.cjs');
|
|
51
51
|
var selectOption_wrapper = require('./lib/components/select-option.wrapper.cjs');
|
|
52
52
|
var selectWrapper_wrapper = require('./lib/components/select-wrapper.wrapper.cjs');
|
|
53
|
+
var sheet_wrapper = require('./lib/components/sheet.wrapper.cjs');
|
|
53
54
|
var spinner_wrapper = require('./lib/components/spinner.wrapper.cjs');
|
|
54
55
|
var stepperHorizontal_wrapper = require('./lib/components/stepper-horizontal.wrapper.cjs');
|
|
55
56
|
var stepperHorizontalItem_wrapper = require('./lib/components/stepper-horizontal-item.wrapper.cjs');
|
|
@@ -133,6 +134,7 @@ exports.PSegmentedControlItem = segmentedControlItem_wrapper.PSegmentedControlIt
|
|
|
133
134
|
exports.PSelect = select_wrapper.PSelect;
|
|
134
135
|
exports.PSelectOption = selectOption_wrapper.PSelectOption;
|
|
135
136
|
exports.PSelectWrapper = selectWrapper_wrapper.PSelectWrapper;
|
|
137
|
+
exports.PSheet = sheet_wrapper.PSheet;
|
|
136
138
|
exports.PSpinner = spinner_wrapper.PSpinner;
|
|
137
139
|
exports.PStepperHorizontal = stepperHorizontal_wrapper.PStepperHorizontal;
|
|
138
140
|
exports.PStepperHorizontalItem = stepperHorizontalItem_wrapper.PStepperHorizontalItem;
|
|
@@ -17,6 +17,10 @@ export type PButtonPureProps = BaseProps & {
|
|
|
17
17
|
* Disables the button. No events will be triggered while disabled state is active.
|
|
18
18
|
*/
|
|
19
19
|
disabled?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* The id of a form element the button should be associated with.
|
|
22
|
+
*/
|
|
23
|
+
form?: string;
|
|
20
24
|
/**
|
|
21
25
|
* Show or hide label. For better accessibility it is recommended to show the label.
|
|
22
26
|
*/
|
|
@@ -84,6 +88,10 @@ export declare const PButtonPure: import("react").ForwardRefExoticComponent<impo
|
|
|
84
88
|
* Disables the button. No events will be triggered while disabled state is active.
|
|
85
89
|
*/
|
|
86
90
|
disabled?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* The id of a form element the button should be associated with.
|
|
93
|
+
*/
|
|
94
|
+
form?: string;
|
|
87
95
|
/**
|
|
88
96
|
* Show or hide label. For better accessibility it is recommended to show the label.
|
|
89
97
|
*/
|
|
@@ -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 PButtonPure = /*#__PURE__*/ forwardRef(({ active = false, alignLabel = 'end', aria, disabled = false, hideLabel = false, icon = 'arrow-right', iconSource, loading = false, name, size = 'small', stretch = false, theme, type = 'submit', underline = false, value, weight = 'regular', className, ...rest }, ref) => {
|
|
7
|
+
const PButtonPure = /*#__PURE__*/ forwardRef(({ active = false, alignLabel = 'end', aria, disabled = false, form, hideLabel = false, icon = 'arrow-right', iconSource, loading = false, name, size = 'small', stretch = false, theme, type = 'submit', underline = false, value, weight = 'regular', className, ...rest }, ref) => {
|
|
8
8
|
const elementRef = useRef(undefined);
|
|
9
9
|
const WebComponentTag = usePrefix('p-button-pure');
|
|
10
|
-
const propsToSync = [active, alignLabel, aria, disabled, hideLabel, icon, iconSource, loading, name, size, stretch, theme || useTheme(), type, underline, value, weight];
|
|
10
|
+
const propsToSync = [active, alignLabel, aria, disabled, form, hideLabel, icon, iconSource, loading, name, size, stretch, theme || useTheme(), type, underline, value, weight];
|
|
11
11
|
useBrowserLayoutEffect(() => {
|
|
12
12
|
const { current } = elementRef;
|
|
13
|
-
['active', 'alignLabel', 'aria', 'disabled', 'hideLabel', 'icon', 'iconSource', 'loading', 'name', 'size', 'stretch', 'theme', 'type', 'underline', 'value', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
13
|
+
['active', 'alignLabel', 'aria', 'disabled', 'form', 'hideLabel', 'icon', 'iconSource', 'loading', 'name', 'size', 'stretch', 'theme', 'type', 'underline', 'value', 'weight'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
14
14
|
}, propsToSync);
|
|
15
15
|
const props = {
|
|
16
16
|
...rest,
|
|
@@ -13,6 +13,10 @@ export type PButtonProps = BaseProps & {
|
|
|
13
13
|
* Disables the button. No events will be triggered while disabled state is active.
|
|
14
14
|
*/
|
|
15
15
|
disabled?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The id of a form element the button should be associated with.
|
|
18
|
+
*/
|
|
19
|
+
form?: string;
|
|
16
20
|
/**
|
|
17
21
|
* Show or hide label. For better accessibility it is recommended to show the label.
|
|
18
22
|
*/
|
|
@@ -63,6 +67,10 @@ export declare const PButton: import("react").ForwardRefExoticComponent<import("
|
|
|
63
67
|
* Disables the button. No events will be triggered while disabled state is active.
|
|
64
68
|
*/
|
|
65
69
|
disabled?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* The id of a form element the button should be associated with.
|
|
72
|
+
*/
|
|
73
|
+
form?: string;
|
|
66
74
|
/**
|
|
67
75
|
* Show or hide label. For better accessibility it is recommended to show the label.
|
|
68
76
|
*/
|
|
@@ -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 PButton = /*#__PURE__*/ forwardRef(({ aria, compact = false, disabled = false, hideLabel = false, icon = 'none', iconSource, loading = false, name, theme, type = 'submit', value, variant = 'primary', className, ...rest }, ref) => {
|
|
7
|
+
const PButton = /*#__PURE__*/ forwardRef(({ aria, compact = false, disabled = false, form, hideLabel = false, icon = 'none', iconSource, loading = false, name, theme, type = 'submit', value, variant = 'primary', className, ...rest }, ref) => {
|
|
8
8
|
const elementRef = useRef(undefined);
|
|
9
9
|
const WebComponentTag = usePrefix('p-button');
|
|
10
|
-
const propsToSync = [aria, compact, disabled, hideLabel, icon, iconSource, loading, name, theme || useTheme(), type, value, variant];
|
|
10
|
+
const propsToSync = [aria, compact, disabled, form, hideLabel, icon, iconSource, loading, name, theme || useTheme(), type, value, variant];
|
|
11
11
|
useBrowserLayoutEffect(() => {
|
|
12
12
|
const { current } = elementRef;
|
|
13
|
-
['aria', 'compact', 'disabled', 'hideLabel', 'icon', 'iconSource', 'loading', 'name', 'theme', 'type', 'value', 'variant'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
13
|
+
['aria', 'compact', 'disabled', 'form', 'hideLabel', 'icon', 'iconSource', 'loading', 'name', 'theme', 'type', 'value', 'variant'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
14
14
|
}, propsToSync);
|
|
15
15
|
const props = {
|
|
16
16
|
...rest,
|
|
@@ -47,6 +47,7 @@ export * from './segmented-control-item.wrapper';
|
|
|
47
47
|
export * from './select.wrapper';
|
|
48
48
|
export * from './select-option.wrapper';
|
|
49
49
|
export * from './select-wrapper.wrapper';
|
|
50
|
+
export * from './sheet.wrapper';
|
|
50
51
|
export * from './spinner.wrapper';
|
|
51
52
|
export * from './stepper-horizontal.wrapper';
|
|
52
53
|
export * from './stepper-horizontal-item.wrapper';
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { BaseProps } from '../../BaseProps';
|
|
2
|
+
import type { SelectedAriaAttributes, SheetAriaAttribute, SheetMotionHiddenEndEventDetail, SheetMotionVisibleEndEventDetail, Theme } from '../types';
|
|
3
|
+
export type PSheetProps = BaseProps & {
|
|
4
|
+
/**
|
|
5
|
+
* Add ARIA attributes.
|
|
6
|
+
*/
|
|
7
|
+
aria?: SelectedAriaAttributes<SheetAriaAttribute>;
|
|
8
|
+
/**
|
|
9
|
+
* If true, the sheet will not be closable via backdrop click.
|
|
10
|
+
*/
|
|
11
|
+
disableBackdropClick?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* If false, the sheet will not have a dismiss button.
|
|
14
|
+
*/
|
|
15
|
+
dismissButton?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Emitted when the component requests to be dismissed.
|
|
18
|
+
*/
|
|
19
|
+
onDismiss?: (event: CustomEvent<void>) => void;
|
|
20
|
+
/**
|
|
21
|
+
* Emitted when the sheet is closed and the transition is finished.
|
|
22
|
+
*/
|
|
23
|
+
onMotionHiddenEnd?: (event: CustomEvent<SheetMotionHiddenEndEventDetail>) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Emitted when the sheet is opened and the transition is finished.
|
|
26
|
+
*/
|
|
27
|
+
onMotionVisibleEnd?: (event: CustomEvent<SheetMotionVisibleEndEventDetail>) => void;
|
|
28
|
+
/**
|
|
29
|
+
* If true, the sheet is open.
|
|
30
|
+
*/
|
|
31
|
+
open: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Adapts the sheet color depending on the theme.
|
|
34
|
+
*/
|
|
35
|
+
theme?: Theme;
|
|
36
|
+
};
|
|
37
|
+
export declare const PSheet: import("react").ForwardRefExoticComponent<import("react").DOMAttributes<{}> & Pick<import("react").HTMLAttributes<{}>, "suppressHydrationWarning" | "autoFocus" | "className" | "dir" | "hidden" | "id" | "inert" | "lang" | "slot" | "style" | "tabIndex" | "title" | "translate" | "role"> & {
|
|
38
|
+
/**
|
|
39
|
+
* Add ARIA attributes.
|
|
40
|
+
*/
|
|
41
|
+
aria?: SelectedAriaAttributes<SheetAriaAttribute>;
|
|
42
|
+
/**
|
|
43
|
+
* If true, the sheet will not be closable via backdrop click.
|
|
44
|
+
*/
|
|
45
|
+
disableBackdropClick?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* If false, the sheet will not have a dismiss button.
|
|
48
|
+
*/
|
|
49
|
+
dismissButton?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Emitted when the component requests to be dismissed.
|
|
52
|
+
*/
|
|
53
|
+
onDismiss?: (event: CustomEvent<void>) => void;
|
|
54
|
+
/**
|
|
55
|
+
* Emitted when the sheet is closed and the transition is finished.
|
|
56
|
+
*/
|
|
57
|
+
onMotionHiddenEnd?: (event: CustomEvent<SheetMotionHiddenEndEventDetail>) => void;
|
|
58
|
+
/**
|
|
59
|
+
* Emitted when the sheet is opened and the transition is finished.
|
|
60
|
+
*/
|
|
61
|
+
onMotionVisibleEnd?: (event: CustomEvent<SheetMotionVisibleEndEventDetail>) => void;
|
|
62
|
+
/**
|
|
63
|
+
* If true, the sheet is open.
|
|
64
|
+
*/
|
|
65
|
+
open: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Adapts the sheet color depending on the theme.
|
|
68
|
+
*/
|
|
69
|
+
theme?: Theme;
|
|
70
|
+
} & {
|
|
71
|
+
children?: import("react").ReactNode | undefined;
|
|
72
|
+
} & import("react").RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { forwardRef, useRef } from 'react';
|
|
4
|
+
import { useEventCallback, usePrefix, useTheme, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
|
|
5
|
+
import { syncRef } from '../../utils.mjs';
|
|
6
|
+
|
|
7
|
+
const PSheet = /*#__PURE__*/ forwardRef(({ aria, disableBackdropClick = false, dismissButton = true, onDismiss, onMotionHiddenEnd, onMotionVisibleEnd, open = false, theme, className, ...rest }, ref) => {
|
|
8
|
+
const elementRef = useRef(undefined);
|
|
9
|
+
useEventCallback(elementRef, 'dismiss', onDismiss);
|
|
10
|
+
useEventCallback(elementRef, 'motionHiddenEnd', onMotionHiddenEnd);
|
|
11
|
+
useEventCallback(elementRef, 'motionVisibleEnd', onMotionVisibleEnd);
|
|
12
|
+
const WebComponentTag = usePrefix('p-sheet');
|
|
13
|
+
const propsToSync = [aria, disableBackdropClick, dismissButton, open, theme || useTheme()];
|
|
14
|
+
useBrowserLayoutEffect(() => {
|
|
15
|
+
const { current } = elementRef;
|
|
16
|
+
['aria', 'disableBackdropClick', 'dismissButton', 'open', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
|
|
17
|
+
}, propsToSync);
|
|
18
|
+
const props = {
|
|
19
|
+
...rest,
|
|
20
|
+
class: useMergedClass(elementRef, className),
|
|
21
|
+
ref: syncRef(elementRef, ref)
|
|
22
|
+
};
|
|
23
|
+
// @ts-ignore
|
|
24
|
+
return jsx(WebComponentTag, { ...props });
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export { PSheet };
|
package/esm/lib/types.d.ts
CHANGED
|
@@ -1250,6 +1250,13 @@ declare const DROPDOWN_DIRECTIONS: readonly [
|
|
|
1250
1250
|
];
|
|
1251
1251
|
export type SelectWrapperDropdownDirection = (typeof DROPDOWN_DIRECTIONS)[number];
|
|
1252
1252
|
export type SelectWrapperState = FormState;
|
|
1253
|
+
declare const SHEET_ARIA_ATTRIBUTES: readonly [
|
|
1254
|
+
"aria-label",
|
|
1255
|
+
"role"
|
|
1256
|
+
];
|
|
1257
|
+
export type SheetAriaAttribute = (typeof SHEET_ARIA_ATTRIBUTES)[number];
|
|
1258
|
+
export type SheetMotionVisibleEndEventDetail = TransitionEvent;
|
|
1259
|
+
export type SheetMotionHiddenEndEventDetail = TransitionEvent;
|
|
1253
1260
|
declare const SPINNER_SIZES: readonly [
|
|
1254
1261
|
"small",
|
|
1255
1262
|
"medium",
|
package/esm/public-api.mjs
CHANGED
|
@@ -48,6 +48,7 @@ export { PSegmentedControlItem } from './lib/components/segmented-control-item.w
|
|
|
48
48
|
export { PSelect } from './lib/components/select.wrapper.mjs';
|
|
49
49
|
export { PSelectOption } from './lib/components/select-option.wrapper.mjs';
|
|
50
50
|
export { PSelectWrapper } from './lib/components/select-wrapper.wrapper.mjs';
|
|
51
|
+
export { PSheet } from './lib/components/sheet.wrapper.mjs';
|
|
51
52
|
export { PSpinner } from './lib/components/spinner.wrapper.mjs';
|
|
52
53
|
export { PStepperHorizontal } from './lib/components/stepper-horizontal.wrapper.mjs';
|
|
53
54
|
export { PStepperHorizontalItem } from './lib/components/stepper-horizontal-item.wrapper.mjs';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@porsche-design-system/components-react",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.25.0-rc.0",
|
|
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": "3.
|
|
20
|
+
"@porsche-design-system/components-js": "3.25.0-rc.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"ag-grid-community": ">= 32.0.0 <33.0.0",
|