@porsche-design-system/components-react 3.24.0 → 3.25.0-rc.1
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 +25 -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/carousel.cjs +3 -1
- 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 +5 -3
- 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/carousel.d.ts +1 -0
- package/ssr/esm/lib/dsr-components/sheet.d.ts +14 -0
- package/ssr/esm/lib/types.d.ts +7 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Component } from 'react';
|
|
3
|
+
import '../../provider.mjs';
|
|
4
|
+
import { splitChildren } from '../../splitChildren.mjs';
|
|
5
|
+
import { minifyCss } from '../../minifyCss.mjs';
|
|
6
|
+
import { stripFocusAndHoverStyles } from '../../stripFocusAndHoverStyles.mjs';
|
|
7
|
+
import { getSheetCss as getComponentCss$p } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
|
|
8
|
+
import { parseAndGetAriaAttributes } from '../../../../../../components/dist/utils/esm/utils-entry.mjs';
|
|
9
|
+
import { PButton } from '../components/button.wrapper.mjs';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @slot {"name": "header", "description": "Renders a header section above the content area." }
|
|
13
|
+
* @slot {"name": "", "description": "Default slot for the main content." }
|
|
14
|
+
*
|
|
15
|
+
* @controlled {"props": ["open"], "event": "dismiss"}
|
|
16
|
+
*/
|
|
17
|
+
class DSRSheet extends Component {
|
|
18
|
+
host;
|
|
19
|
+
dialog;
|
|
20
|
+
scroller;
|
|
21
|
+
hasHeader;
|
|
22
|
+
render() {
|
|
23
|
+
const { children, namedSlotChildren, otherChildren } = splitChildren(this.props.children);
|
|
24
|
+
const hasHeader = namedSlotChildren.filter(({ props: { slot } }) => slot === 'header').length > 0;
|
|
25
|
+
if (this.props.open) ;
|
|
26
|
+
const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$p(this.props.open, this.props.dismissButton, this.props.theme)));
|
|
27
|
+
return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsx("dialog", { inert: !this.props.open, tabIndex: -1, ...parseAndGetAriaAttributes({
|
|
28
|
+
'aria-modal': true,
|
|
29
|
+
...(hasHeader && {
|
|
30
|
+
'aria-label': namedSlotChildren.filter(({ props: { slot } }) => slot === 'header').length > 0 && namedSlotChildren.find(({ props: { slot } }) => slot === 'header')?.props.children,
|
|
31
|
+
}),
|
|
32
|
+
...parseAndGetAriaAttributes(this.props.aria),
|
|
33
|
+
}), children: jsx("div", { className: "scroller", children: jsxs("div", { className: "sheet", children: [this.props.dismissButton && (jsx(PButton, { variant: "ghost", className: "dismiss", type: "button", hideLabel: true, icon: "close", theme: this.props.theme, children: "Dismiss sheet" })), hasHeader && jsx("slot", { name: "header" }), jsx("slot", {})] }) }) })] }), this.props.children] }));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export { DSRSheet };
|
|
@@ -7,8 +7,8 @@ import { stripFocusAndHoverStyles } from '../../stripFocusAndHoverStyles.mjs';
|
|
|
7
7
|
import { getTextFieldWrapperCss as getComponentCss$8 } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
|
|
8
8
|
import { isWithinForm, hasLocateAction, showCustomCalendarOrTimeIndicator, isType } from '../../../../../../components/dist/utils/esm/utils-entry.mjs';
|
|
9
9
|
import { PButtonPure } from '../components/button-pure.wrapper.mjs';
|
|
10
|
-
import { StateMessage } from './state-message.mjs';
|
|
11
10
|
import { Label } from './label.mjs';
|
|
11
|
+
import { StateMessage } from './state-message.mjs';
|
|
12
12
|
import { PIcon } from '../components/icon.wrapper.mjs';
|
|
13
13
|
|
|
14
14
|
/**
|
|
@@ -51,7 +51,7 @@ class DSRTextFieldWrapper extends Component {
|
|
|
51
51
|
const hasAction = hasLocateAction(this.props.actionIcon);
|
|
52
52
|
const isClearable = typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && !!otherChildren[0]?.props.value;
|
|
53
53
|
const hasCounter = false; // hasCounterAndIsTypeText(otherChildren[0]?.props);
|
|
54
|
-
const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$8(disabled, this.props.hideLabel, this.props.state, this.props.isCounterVisible, this.props.isCounterVisible ? 'suffix' : this.props.unitPosition, isPassword ? 'password' : type, this.props.showPasswordToggle, this.props.isWithinForm, this.props.submitButton, this.props.theme)));
|
|
54
|
+
const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$8(disabled, readOnly, this.props.hideLabel, this.props.state, this.props.isCounterVisible, this.props.isCounterVisible ? 'suffix' : this.props.unitPosition, isPassword ? 'password' : type, this.props.showPasswordToggle, this.props.isWithinForm, this.props.submitButton, this.props.theme)));
|
|
55
55
|
return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs("div", { className: "root", children: [jsx(Label, { hasLabel: this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: this.props.label, description: this.props.description, formElement: typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && otherChildren[0]?.props, isDisabled: disabled }), jsxs("div", { className: "wrapper", children: [jsx("slot", {}), hasCounter, (this.props.isCounterVisible) && (jsx("span", { className: "unit-counter", "aria-hidden": "true", children: this.props.unit })), isPassword && this.props.showPasswordToggle ? (jsx(PButtonPure, { ...buttonProps, type: "button", icon: this.props.showPassword ? 'view-off' : 'view', disabled: disabled, aria: { 'aria-pressed': this.props.showPassword ? 'true' : 'false' }, children: "Toggle password visibility" })) : showCustomCalendarOrTimeIndicator(isCalendar, isTime) ? (jsxs(PButtonPure, { ...buttonProps, type: "button", icon: isCalendar ? 'calendar' : 'clock', disabled: disabled, children: ["Show $", isCalendar ? 'date' : 'time', " picker"] })) : (isSearch && [
|
|
56
56
|
// TODO: create an own component, which would fix SSR support too
|
|
57
57
|
this.props.isWithinForm && this.props.submitButton ? (createElement(PButtonPure, { ...buttonProps, key: "btn-submit", type: "submit", icon: "search", disabled: disabledOrReadOnly }, "Search")) : (jsx(PIcon, { className: "icon", name: "search", color: "state-disabled", theme: this.props.theme, "aria-hidden": "true" }, "icon")),
|
|
@@ -4,8 +4,8 @@ import { Component } from 'react';
|
|
|
4
4
|
import { minifyCss } from '../../minifyCss.mjs';
|
|
5
5
|
import { stripFocusAndHoverStyles } from '../../stripFocusAndHoverStyles.mjs';
|
|
6
6
|
import { getTextareaWrapperCss as getComponentCss$4 } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
|
|
7
|
-
import { StateMessage } from './state-message.mjs';
|
|
8
7
|
import { Label } from './label.mjs';
|
|
8
|
+
import { StateMessage } from './state-message.mjs';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* @slot {"name": "label", "description": "Shows a label. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed." }
|
|
@@ -22,8 +22,8 @@ class DSRTextareaWrapper extends Component {
|
|
|
22
22
|
eventListener;
|
|
23
23
|
render() {
|
|
24
24
|
const { children, namedSlotChildren, otherChildren } = splitChildren(this.props.children);
|
|
25
|
-
const { disabled } = typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && otherChildren[0]?.props || {};
|
|
26
|
-
const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$4(disabled, this.props.hideLabel, this.props.state, this.props.hasCounter, this.props.theme)));
|
|
25
|
+
const { disabled, readOnly } = typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && otherChildren[0]?.props || {};
|
|
26
|
+
const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$4(disabled, readOnly, this.props.hideLabel, this.props.state, this.props.hasCounter, this.props.theme)));
|
|
27
27
|
return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs("div", { className: "root", children: [jsx(Label, { hasLabel: this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, label: this.props.label, description: this.props.description, isDisabled: disabled, formElement: typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && otherChildren[0]?.props }), jsxs("div", { className: "wrapper", children: [jsx("slot", {}), this.props.hasCounter && jsx("span", { className: "counter", "aria-hidden": "true" }), this.props.hasCounter && jsx("span", { className: "sr-only", "aria-live": "polite" })] }), jsx(StateMessage, { hasMessage: (this.props.message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(this.props.state), state: this.props.state, message: this.props.message, theme: this.props.theme, host: null })] })] }), this.props.children] }));
|
|
28
28
|
}
|
|
29
29
|
}
|
package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/textarea.mjs
CHANGED
|
@@ -5,8 +5,8 @@ import { minifyCss } from '../../minifyCss.mjs';
|
|
|
5
5
|
import { stripFocusAndHoverStyles } from '../../stripFocusAndHoverStyles.mjs';
|
|
6
6
|
import { getTextareaCss as getComponentCss$3 } from '../../../../../../components/dist/styles/esm/styles-entry.mjs';
|
|
7
7
|
import { debounce } from '../../../../../../components/dist/utils/esm/utils-entry.mjs';
|
|
8
|
-
import { messageId, StateMessage } from './state-message.mjs';
|
|
9
8
|
import { Label, descriptionId } from './label.mjs';
|
|
9
|
+
import { messageId, StateMessage } from './state-message.mjs';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* @slot {"name": "label", "description": "Shows a label. Only [phrasing content](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content) is allowed." }
|
|
@@ -24,7 +24,7 @@ class DSRTextarea extends Component {
|
|
|
24
24
|
hasCounter;
|
|
25
25
|
setCounterAriaTextDebounced = debounce(() => this.props.setCounterAriaText());
|
|
26
26
|
formResetCallback() {
|
|
27
|
-
this.props.internals
|
|
27
|
+
this.props.internals?.setFormValue(this.props.defaultValue);
|
|
28
28
|
}
|
|
29
29
|
formDisabledCallback() {
|
|
30
30
|
}
|
|
@@ -33,7 +33,7 @@ class DSRTextarea extends Component {
|
|
|
33
33
|
render() {
|
|
34
34
|
const { children, namedSlotChildren, otherChildren } = splitChildren(this.props.children);
|
|
35
35
|
const id = 'textarea';
|
|
36
|
-
const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$3(this.props.disabled, this.props.hideLabel, this.props.state, this.props.hasCounter, this.props.resize, this.props.theme)));
|
|
36
|
+
const style = minifyCss(stripFocusAndHoverStyles(getComponentCss$3(this.props.disabled, this.props.readOnly, this.props.hideLabel, this.props.state, this.props.hasCounter, this.props.resize, this.props.theme)));
|
|
37
37
|
return (jsxs(Fragment, { children: [jsxs("template", { shadowroot: "open", shadowrootmode: "open", shadowrootdelegatesfocus: "true", children: [jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxs("div", { className: "root", children: [jsx(Label, { hasLabel: this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0, hasDescription: this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0, host: null, htmlFor: id, label: this.props.label, description: this.props.description, isRequired: this.props.required, isDisabled: this.props.disabled }), jsxs("div", { className: "wrapper", children: [jsx("textarea", { "aria-describedby": `${descriptionId} ${messageId}`, "aria-invalid": this.props.state === 'error' ? 'true' : null, id: id, onBlur: this.props.onBlur, name: this.props.name, value: this.props.value, form: this.props.form, disabled: this.props.disabled, required: this.props.required, placeholder: this.props.placeholder, maxLength: this.props.maxLength, minLength: this.props.minLength, rows: this.props.rows, readOnly: this.props.readOnly, spellCheck: this.props.spellCheck, autoComplete: this.props.autoComplete, wrap: this.props.wrap }), this.props.hasCounter && (jsx("span", { className: "counter", "aria-hidden": "true", children: `${this.props.value.length}/${this.props.maxLength}` })), this.props.hasCounter && jsx("span", { className: "sr-only", "aria-live": "polite" })] }), jsx(StateMessage, { hasMessage: (this.props.message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(this.props.state), state: this.props.state, message: this.props.message, theme: this.props.theme, host: null })] })] }), this.props.children] }));
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -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';
|
|
@@ -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
|
*/
|
|
@@ -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
|
*/
|
|
@@ -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,14 @@
|
|
|
1
|
+
import { Component } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @slot {"name": "header", "description": "Renders a header section above the content area." }
|
|
4
|
+
* @slot {"name": "", "description": "Default slot for the main content." }
|
|
5
|
+
*
|
|
6
|
+
* @controlled {"props": ["open"], "event": "dismiss"}
|
|
7
|
+
*/
|
|
8
|
+
export declare class DSRSheet extends Component<any> {
|
|
9
|
+
host: HTMLElement;
|
|
10
|
+
private dialog;
|
|
11
|
+
private scroller;
|
|
12
|
+
private hasHeader;
|
|
13
|
+
render(): JSX.Element;
|
|
14
|
+
}
|
package/ssr/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",
|