@porsche-design-system/components-react 3.0.0-rc.1 → 3.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/bin/patchRemixRunProcessBrowserGlobalIdentifier.js +35 -26
  3. package/esm/lib/components/icon.wrapper.js +1 -1
  4. package/esm/lib/components/scroller.wrapper.js +3 -3
  5. package/lib/components/icon.wrapper.js +1 -1
  6. package/lib/components/scroller.wrapper.d.ts +15 -7
  7. package/lib/components/scroller.wrapper.js +3 -3
  8. package/lib/types.d.ts +210 -191
  9. package/package.json +2 -2
  10. package/ssr/components/dist/styles/esm/styles-entry.js +180 -77
  11. package/ssr/components/dist/utils/esm/utils-entry.js +45 -7
  12. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/components/icon.wrapper.js +1 -1
  13. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.js +4 -4
  14. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/components/select-wrapper-dropdown.wrapper.js +38 -0
  15. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/components/stepper-horizontal.wrapper.js +0 -1
  16. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.js +2 -1
  17. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.js +34 -0
  18. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.js +6 -3
  19. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.js +1 -1
  20. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.js +1 -1
  21. package/ssr/esm/components/dist/styles/esm/styles-entry.js +180 -78
  22. package/ssr/esm/components/dist/utils/esm/utils-entry.js +40 -8
  23. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/icon.wrapper.js +1 -1
  24. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/scroller.wrapper.js +4 -4
  25. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/select-wrapper-dropdown.wrapper.js +36 -0
  26. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/stepper-horizontal.wrapper.js +0 -1
  27. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.js +3 -2
  28. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.js +32 -0
  29. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.js +6 -3
  30. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.js +1 -1
  31. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.js +1 -1
  32. package/ssr/lib/components/scroller.wrapper.d.ts +15 -7
  33. package/ssr/lib/components/select-wrapper-dropdown.wrapper.d.ts +30 -0
  34. package/ssr/lib/dsr-components/select-wrapper.d.ts +0 -1
  35. package/ssr/lib/types.d.ts +210 -191
@@ -6,13 +6,13 @@ var hooks = require('../../hooks.js');
6
6
  var utils = require('../../utils.js');
7
7
  var scroller = require('../dsr-components/scroller.js');
8
8
 
9
- const PScroller = react.forwardRef(({ alignScrollIndicator = 'center', gradientColor = 'background-base', gradientColorScheme, scrollIndicatorPosition, scrollToPosition, scrollbar = false, theme = 'light', className, children, ...rest }, ref) => {
9
+ const PScroller = react.forwardRef(({ alignScrollIndicator = 'center', aria, gradientColor = 'background-base', gradientColorScheme, scrollIndicatorPosition, scrollToPosition, scrollbar = false, theme = 'light', className, children, ...rest }, ref) => {
10
10
  const elementRef = react.useRef();
11
11
  const WebComponentTag = hooks.usePrefix('p-scroller');
12
- const propsToSync = [alignScrollIndicator, gradientColor, gradientColorScheme, scrollIndicatorPosition, scrollToPosition, scrollbar, theme];
12
+ const propsToSync = [alignScrollIndicator, aria, gradientColor, gradientColorScheme, scrollIndicatorPosition, scrollToPosition, scrollbar, theme];
13
13
  hooks.useBrowserLayoutEffect(() => {
14
14
  const { current } = elementRef;
15
- ['alignScrollIndicator', 'gradientColor', 'gradientColorScheme', 'scrollIndicatorPosition', 'scrollToPosition', 'scrollbar', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
+ ['alignScrollIndicator', 'aria', 'gradientColor', 'gradientColorScheme', 'scrollIndicatorPosition', 'scrollToPosition', 'scrollbar', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
16
  }, propsToSync);
17
17
  // @ts-ignore
18
18
  if (!process.browser) {
@@ -23,7 +23,7 @@ const PScroller = react.forwardRef(({ alignScrollIndicator = 'center', gradientC
23
23
  // @ts-ignore
24
24
  ...(!process.browser
25
25
  ? {
26
- children: (jsxRuntime.jsx(scroller.DSRScroller, { ...{ alignScrollIndicator, gradientColor, gradientColorScheme, scrollIndicatorPosition, scrollToPosition, scrollbar, theme, children } })),
26
+ children: (jsxRuntime.jsx(scroller.DSRScroller, { ...{ alignScrollIndicator, aria, gradientColor, gradientColorScheme, scrollIndicatorPosition, scrollToPosition, scrollbar, theme, children } })),
27
27
  }
28
28
  : {
29
29
  children,
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var hooks = require('../../hooks.js');
6
+ var utils = require('../../utils.js');
7
+ var selectWrapperDropdown = require('../dsr-components/select-wrapper-dropdown.js');
8
+
9
+ const PSelectWrapperDropdown = react.forwardRef(({ description, direction = 'auto', disabled = false, filter = false, isOpenOverride = false, label, message, onOpenChange, required = false, selectRef, state, theme = 'light', className, ...rest }, ref) => {
10
+ const elementRef = react.useRef();
11
+ hooks.useEventCallback(elementRef, 'openChange', onOpenChange);
12
+ const WebComponentTag = hooks.usePrefix('p-select-wrapper-dropdown');
13
+ const propsToSync = [description, direction, disabled, filter, isOpenOverride, label, message, required, selectRef, state, theme];
14
+ hooks.useBrowserLayoutEffect(() => {
15
+ const { current } = elementRef;
16
+ ['description', 'direction', 'disabled', 'filter', 'isOpenOverride', 'label', 'message', 'required', 'selectRef', 'state', 'theme'].forEach((propName, i) => (current[propName] = propsToSync[i]));
17
+ }, propsToSync);
18
+ // @ts-ignore
19
+ if (!process.browser) {
20
+ className = className ? `${className} ssr` : 'ssr';
21
+ }
22
+ const props = {
23
+ ...rest,
24
+ // @ts-ignore
25
+ ...(!process.browser
26
+ ? {
27
+ children: (jsxRuntime.jsx(selectWrapperDropdown.DSRSelectWrapperDropdown, { ...{ description, direction, disabled, filter, isOpenOverride, label, message, required, selectRef, state, theme } })),
28
+ }
29
+ : {
30
+ suppressHydrationWarning: true,
31
+ }),
32
+ class: hooks.useMergedClass(elementRef, className),
33
+ ref: utils.syncRef(elementRef, ref)
34
+ };
35
+ return jsxRuntime.jsx(WebComponentTag, { ...props });
36
+ });
37
+
38
+ exports.PSelectWrapperDropdown = PSelectWrapperDropdown;
@@ -25,7 +25,6 @@ const PStepperHorizontal = react.forwardRef(({ onStepChange, onUpdate, size = 's
25
25
  // @ts-ignore
26
26
  ...(!process.browser
27
27
  ? {
28
- ...{ "role": "list" },
29
28
  children: (jsxRuntime.jsx(stepperHorizontal.DSRStepperHorizontal, { ...{ size, theme, children } })),
30
29
  }
31
30
  : {
@@ -76,6 +76,7 @@ class DSRScroller extends react.Component {
76
76
  }
77
77
  // should only update if scrollable
78
78
  render() {
79
+ var _a;
79
80
  splitChildren.splitChildren(this.props.children);
80
81
  const deprecationMap = {
81
82
  default: 'background-base',
@@ -86,7 +87,7 @@ class DSRScroller extends react.Component {
86
87
  return (jsxRuntime.jsx("div", { className: direction === 'next' ? 'action-next' : 'action-prev', children: jsxRuntime.jsx("button", { type: "button", tabIndex: -1, "aria-hidden": "true", "aria-label": direction, children: jsxRuntime.jsx(icon_wrapper.PIcon, { className: "icon", name: direction === 'next' ? 'arrow-head-right' : 'arrow-head-left', theme: this.props.theme }) }) }, direction));
87
88
  };
88
89
  const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getScrollerCss(deprecationMap[this.props.gradientColorScheme] || this.props.gradientColor, this.isNextHidden, this.isPrevHidden, this.props.scrollIndicatorPosition || this.props.alignScrollIndicator, this.props.scrollbar, this.props.theme)));
89
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs("div", { className: "root", children: [jsxRuntime.jsx("div", { className: "scroll-area", children: jsxRuntime.jsxs("div", { className: "scroll-wrapper", tabIndex: utilsEntry.isScrollable(this.isPrevHidden, this.isNextHidden) ? 0 : null, children: [jsxRuntime.jsx("slot", {}), jsxRuntime.jsx("div", { className: "trigger" }), jsxRuntime.jsx("div", { className: "trigger" })] }) }), ['prev', 'next'].map(renderPrevNextButton)] })] }), this.props.children] }));
90
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs("div", { className: "root", children: [jsxRuntime.jsx("div", { className: "scroll-area", children: jsxRuntime.jsxs("div", { className: "scroll-wrapper", role: ((_a = utilsEntry.parseAndGetAriaAttributes(this.props.aria)) === null || _a === void 0 ? void 0 : _a.role) || null, tabIndex: utilsEntry.isScrollable(this.isPrevHidden, this.isNextHidden) ? 0 : null, children: [jsxRuntime.jsx("slot", {}), jsxRuntime.jsx("div", { className: "trigger" }), jsxRuntime.jsx("div", { className: "trigger" })] }) }), ['prev', 'next'].map(renderPrevNextButton)] })] }), this.props.children] }));
90
91
  }
91
92
  }
92
93
 
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var react = require('react');
5
+ var minifyCss = require('../../minifyCss.js');
6
+ var stripFocusAndHoverStyles = require('../../stripFocusAndHoverStyles.js');
7
+ var stylesEntry = require('../../../../../../components/dist/styles/esm/styles-entry.js');
8
+ var utilsEntry = require('../../../../../../components/dist/utils/esm/utils-entry.js');
9
+
10
+ class DSRSelectWrapperDropdown extends react.Component {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.isOpen = this.props.isOpenOverride;
14
+ this.optionMaps = [];
15
+ this.searchString = '';
16
+ }
17
+ get selectedIndex() {
18
+ return 0;
19
+ }
20
+ render() {
21
+ var _a;
22
+ const dropdownId = 'list';
23
+ const labelId = 'label';
24
+ const descriptionId = this.props.description && 'description';
25
+ const buttonId = 'value';
26
+ const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getSelectWrapperDropdownCss(this.props.direction === 'auto' ? 'down' : this.props.direction, this.isOpen, this.props.state, this.props.disabled, this.props.filter, this.props.theme)));
27
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsx(jsxRuntime.Fragment, { children: this.props.filter ? ([
28
+ jsxRuntime.jsx("input", { type: "text", role: "combobox", disabled: this.props.disabled, placeholder: ((_a = utilsEntry.getSelectedOptionMap(this.optionMaps)) === null || _a === void 0 ? void 0 : _a.value) || null, autoComplete: "off", value: this.searchString, ...utilsEntry.getFilterInputAriaAttributes(this.isOpen, this.props.required, labelId, descriptionId, dropdownId, utilsEntry.getHighlightedOptionMapIndex(this.optionMaps)) }),
29
+ jsxRuntime.jsx("span", {}),
30
+ ]) : (jsxRuntime.jsx("button", { type: "button", role: "combobox", id: buttonId, disabled: this.props.disabled, ...utilsEntry.getSelectWrapperDropdownButtonAriaAttributes(this.isOpen, labelId, descriptionId, dropdownId, utilsEntry.getHighlightedOptionMapIndex(this.optionMaps)) })) })] }) }));
31
+ }
32
+ }
33
+
34
+ exports.DSRSelectWrapperDropdown = DSRSelectWrapperDropdown;
@@ -61,23 +61,26 @@ require('../components/text-list-item.wrapper.js');
61
61
  require('../components/textarea-wrapper.wrapper.js');
62
62
  require('../components/toast.wrapper.js');
63
63
  require('../components/wordmark.wrapper.js');
64
+ var selectWrapperDropdown_wrapper = require('../components/select-wrapper-dropdown.wrapper.js');
64
65
  var splitChildren = require('../../splitChildren.js');
65
66
  var react = require('react');
66
67
  var minifyCss = require('../../minifyCss.js');
67
68
  var stripFocusAndHoverStyles = require('../../stripFocusAndHoverStyles.js');
68
69
  var stylesEntry = require('../../../../../../components/dist/styles/esm/styles-entry.js');
70
+ var utilsEntry = require('../../../../../../components/dist/utils/esm/utils-entry.js');
69
71
  var stateMessage = require('./state-message.js');
70
72
 
71
73
  class DSRSelectWrapper extends react.Component {
72
74
  render() {
73
- var _a;
75
+ var _a, _b, _c, _d, _e;
76
+ const hasCustomDropdown = utilsEntry.isCustomDropdown(this.props.filter, this.props.native);
74
77
  const { children, namedSlotChildren, otherChildren } = splitChildren.splitChildren(this.props.children);
75
78
  const { disabled } = typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && ((_a = otherChildren[0]) === null || _a === void 0 ? void 0 : _a.props) || {};
76
79
  const labelProps = disabled
77
80
  ? {}
78
81
  : {};
79
- const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getSelectWrapperCss(disabled, this.props.hideLabel, this.props.state, this.props.theme)));
80
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: "root", children: [jsxRuntime.jsxs("label", { className: "label", children: [(this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0) && (jsxRuntime.jsx("span", { className: "label__text", ...labelProps, children: this.props.label || jsxRuntime.jsx("slot", { name: "label" }) })), (this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0) && (jsxRuntime.jsx("span", { className: "label__text", ...labelProps, children: this.props.description || jsxRuntime.jsx("slot", { name: "description" }) })), jsxRuntime.jsx(icon_wrapper.PIcon, { className: "icon", name: "arrow-head-down", theme: this.props.theme, color: disabled ? 'state-disabled' : 'primary', "aria-hidden": "true" }), jsxRuntime.jsx("slot", {})] }), this.props.hasCustomDropdown && (jsxRuntime.jsx(jsxRuntime.Fragment, {}))] }), (this.props.message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(this.props.state) && (jsxRuntime.jsx(stateMessage.StateMessage, { state: this.props.state, message: this.props.message, theme: this.props.theme, host: null }))] })] }), this.props.children] }));
82
+ const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getSelectWrapperCss(disabled, this.props.native, this.props.hideLabel, this.props.state, this.props.theme)));
83
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: "root", children: [jsxRuntime.jsxs("label", { className: "label", children: [(this.props.label || namedSlotChildren.filter(({ props: { slot } }) => slot === 'label').length > 0) && (jsxRuntime.jsx("span", { className: "label__text", ...labelProps, children: this.props.label || jsxRuntime.jsx("slot", { name: "label" }) })), (this.props.description || namedSlotChildren.filter(({ props: { slot } }) => slot === 'description').length > 0) && (jsxRuntime.jsx("span", { className: "label__text", ...labelProps, children: this.props.description || jsxRuntime.jsx("slot", { name: "description" }) })), jsxRuntime.jsx(icon_wrapper.PIcon, { className: "icon", name: "arrow-head-down", theme: this.props.theme, color: disabled ? 'state-disabled' : 'primary', "aria-hidden": "true" }), jsxRuntime.jsx("slot", {})] }), hasCustomDropdown && !disabled && (jsxRuntime.jsx(selectWrapperDropdown_wrapper.PSelectWrapperDropdown, { selectRef: typeof otherChildren[0] === 'object' && 'props' in otherChildren[0] && ((_b = otherChildren[0]) === null || _b === void 0 ? void 0 : _b.props), label: this.props.label || ((_c = namedSlotChildren.find(({ props: { slot } }) => slot === 'label')) === null || _c === void 0 ? void 0 : _c.props.children), message: this.props.message || ((_d = namedSlotChildren.find(({ props: { slot } }) => slot === 'message')) === null || _d === void 0 ? void 0 : _d.props.children), description: this.props.description || ((_e = namedSlotChildren.find(({ props: { slot } }) => slot === 'description')) === null || _e === void 0 ? void 0 : _e.props.children), state: this.props.state, direction: this.props.dropdownDirection, filter: this.props.filter, theme: this.props.theme, required: false, disabled: disabled, onOpenChange: (isOpen) => this.props.iconElement.classList[isOpen ? 'add' : 'remove']('icon--open') }))] }), (this.props.message || namedSlotChildren.filter(({ props: { slot } }) => slot === 'message').length > 0) && ['success', 'error'].includes(this.props.state) && (jsxRuntime.jsx(stateMessage.StateMessage, { state: this.props.state, message: this.props.message, theme: this.props.theme, host: null }))] })] }), this.props.children] }));
81
84
  }
82
85
  }
83
86
 
@@ -78,7 +78,7 @@ class DSRStepperHorizontal extends react.Component {
78
78
  ? { ...child, props: { ...child.props, theme: this.props.theme } }
79
79
  : child);
80
80
  const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getStepperHorizontalCss(this.props.size)));
81
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(scroller_wrapper.PScroller, { className: "scroller", theme: this.props.theme, children: jsxRuntime.jsx("slot", {}) }) })] }), manipulatedChildren] }));
81
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsx(jsxRuntime.Fragment, { children: jsxRuntime.jsx(scroller_wrapper.PScroller, { className: "scroller", aria: { role: 'list' }, theme: this.props.theme, children: jsxRuntime.jsx("slot", {}) }) })] }), manipulatedChildren] }));
82
82
  }
83
83
  }
84
84
 
@@ -79,7 +79,7 @@ class DSRTabsBar extends react.Component {
79
79
  semibold: 'semi-bold',
80
80
  };
81
81
  const style = minifyCss.minifyCss(stripFocusAndHoverStyles.stripFocusAndHoverStyles(stylesEntry.getTabsBarCss(this.props.size, (deprecationMap[this.props.weight] || this.props.weight), this.props.theme)));
82
- return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs(scroller_wrapper.PScroller, { className: "scroller", role: "tablist", theme: this.props.theme, gradientColorScheme: this.props.gradientColorScheme, gradientColor: this.props.gradientColor, alignScrollIndicator: "top", children: [jsxRuntime.jsx("slot", {}), jsxRuntime.jsx("span", { className: "bar" })] })] }), this.props.children] }));
82
+ return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("template", { shadowroot: "open", shadowrootmode: "open", children: [jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: style } }), jsxRuntime.jsxs(scroller_wrapper.PScroller, { className: "scroller", aria: { role: 'tablist' }, theme: this.props.theme, gradientColorScheme: this.props.gradientColorScheme, gradientColor: this.props.gradientColor, alignScrollIndicator: "top", children: [jsxRuntime.jsx("slot", {}), jsxRuntime.jsx("span", { className: "bar" })] })] }), this.props.children] }));
83
83
  }
84
84
  }
85
85