@porsche-design-system/components-react 3.6.1 → 3.7.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.
Files changed (112) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/lib/components/multi-select-option.wrapper.cjs +25 -0
  3. package/cjs/lib/components/multi-select.wrapper.cjs +26 -0
  4. package/cjs/public-api.cjs +4 -0
  5. package/esm/lib/components/index.d.ts +2 -0
  6. package/esm/lib/components/multi-select-option.wrapper.d.ts +23 -0
  7. package/esm/lib/components/multi-select-option.wrapper.mjs +23 -0
  8. package/esm/lib/components/multi-select.wrapper.d.ts +104 -0
  9. package/esm/lib/components/multi-select.wrapper.mjs +24 -0
  10. package/esm/lib/types.d.ts +12 -0
  11. package/esm/public-api.mjs +2 -0
  12. package/package.json +2 -2
  13. package/ssr/cjs/components/dist/styles/esm/styles-entry.cjs +445 -239
  14. package/ssr/cjs/components/dist/utils/esm/utils-entry.cjs +6 -26
  15. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/multi-select-option.wrapper.cjs +39 -0
  16. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/components/multi-select.wrapper.cjs +40 -0
  17. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.cjs +2 -0
  18. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.cjs +2 -0
  19. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.cjs +2 -0
  20. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.cjs +2 -0
  21. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.cjs +2 -0
  22. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.cjs +2 -0
  23. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.cjs +2 -0
  24. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.cjs +2 -0
  25. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.cjs +2 -0
  26. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.cjs +2 -0
  27. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-social.cjs +2 -0
  28. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-model-signature.cjs +2 -0
  29. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.cjs +2 -0
  30. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link.cjs +2 -0
  31. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.cjs +2 -0
  32. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.cjs +83 -0
  33. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.cjs +99 -0
  34. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.cjs +2 -0
  35. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/popover.cjs +2 -0
  36. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.cjs +2 -0
  37. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control-item.cjs +2 -0
  38. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.cjs +5 -5
  39. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.cjs +2 -0
  40. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/state-message.cjs +2 -0
  41. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal-item.cjs +2 -0
  42. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.cjs +2 -0
  43. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.cjs +2 -0
  44. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table-head-cell.cjs +2 -0
  45. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.cjs +2 -0
  46. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.cjs +2 -0
  47. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.cjs +2 -0
  48. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag-dismissible.cjs +2 -0
  49. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.cjs +2 -0
  50. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.cjs +2 -0
  51. package/ssr/cjs/components-react/projects/react-ssr-wrapper/src/public-api.cjs +4 -0
  52. package/ssr/esm/components/dist/styles/esm/styles-entry.mjs +411 -207
  53. package/ssr/esm/components/dist/utils/esm/utils-entry.mjs +5 -24
  54. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/multi-select-option.wrapper.mjs +37 -0
  55. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/multi-select.wrapper.mjs +38 -0
  56. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/accordion.mjs +4 -2
  57. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/banner.mjs +4 -2
  58. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-group.mjs +2 -2
  59. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-pure.mjs +4 -2
  60. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button-tile.mjs +4 -2
  61. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/button.mjs +4 -2
  62. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.mjs +4 -2
  63. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/checkbox-wrapper.mjs +4 -2
  64. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/content-wrapper.mjs +2 -2
  65. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/crest.mjs +2 -2
  66. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/display.mjs +2 -2
  67. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/divider.mjs +2 -2
  68. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset-wrapper.mjs +2 -2
  69. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/fieldset.mjs +2 -2
  70. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex-item.mjs +2 -2
  71. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flex.mjs +2 -2
  72. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/flyout.mjs +4 -2
  73. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid-item.mjs +2 -2
  74. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/grid.mjs +2 -2
  75. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/heading.mjs +2 -2
  76. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/headline.mjs +2 -2
  77. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/icon.mjs +2 -2
  78. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/inline-notification.mjs +4 -2
  79. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-pure.mjs +4 -2
  80. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-social.mjs +4 -2
  81. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile-model-signature.mjs +4 -2
  82. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link-tile.mjs +4 -2
  83. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/link.mjs +4 -2
  84. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/marque.mjs +2 -2
  85. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/modal.mjs +4 -2
  86. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/model-signature.mjs +2 -2
  87. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select-option.mjs +81 -0
  88. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/multi-select.mjs +97 -0
  89. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.mjs +2 -0
  90. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/popover.mjs +2 -0
  91. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/scroller.mjs +2 -0
  92. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/segmented-control-item.mjs +2 -0
  93. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper-dropdown.mjs +8 -8
  94. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/select-wrapper.mjs +4 -2
  95. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/state-message.mjs +2 -0
  96. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal-item.mjs +2 -0
  97. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/stepper-horizontal.mjs +2 -0
  98. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/switch.mjs +2 -0
  99. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table-head-cell.mjs +2 -0
  100. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/table.mjs +2 -0
  101. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs-bar.mjs +2 -0
  102. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tabs.mjs +2 -0
  103. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag-dismissible.mjs +2 -0
  104. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/tag.mjs +2 -0
  105. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/text-field-wrapper.mjs +2 -0
  106. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/public-api.mjs +2 -0
  107. package/ssr/esm/lib/components/index.d.ts +2 -0
  108. package/ssr/esm/lib/components/multi-select-option.wrapper.d.ts +23 -0
  109. package/ssr/esm/lib/components/multi-select.wrapper.d.ts +104 -0
  110. package/ssr/esm/lib/dsr-components/multi-select-option.d.ts +6 -0
  111. package/ssr/esm/lib/dsr-components/multi-select.d.ts +17 -0
  112. package/ssr/esm/lib/types.d.ts +12 -0
package/CHANGELOG.md CHANGED
@@ -14,6 +14,17 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
14
14
 
15
15
  ### [Unreleased]
16
16
 
17
+ ### [3.7.0-rc.0] - 2023-09-05
18
+
19
+ #### Added
20
+
21
+ - `Multi Select` ([#2658](https://github.com/porsche-design-system/porsche-design-system/pull/2658))
22
+
23
+ #### Changed
24
+
25
+ - Partials: `Cdn` and `Format` types are exposed
26
+ ([#2760](https://github.com/porsche-design-system/porsche-design-system/pull/2760))
27
+
17
28
  ### [3.6.1] - 2023-08-29
18
29
 
19
30
  ### [3.6.1-rc.0] - 2023-08-29
@@ -0,0 +1,25 @@
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 PMultiSelectOption = react.forwardRef(({ disabled = false, value, className, ...rest }, ref) => {
10
+ const elementRef = react.useRef();
11
+ const WebComponentTag = hooks.usePrefix('p-multi-select-option');
12
+ const propsToSync = [disabled, value];
13
+ hooks.useBrowserLayoutEffect(() => {
14
+ const { current } = elementRef;
15
+ ['disabled', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
16
+ }, propsToSync);
17
+ const props = {
18
+ ...rest,
19
+ class: hooks.useMergedClass(elementRef, className),
20
+ ref: utils.syncRef(elementRef, ref)
21
+ };
22
+ return jsxRuntime.jsx(WebComponentTag, { ...props });
23
+ });
24
+
25
+ exports.PMultiSelectOption = PMultiSelectOption;
@@ -0,0 +1,26 @@
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 PMultiSelect = react.forwardRef(({ description = '', disabled = false, dropdownDirection = 'auto', hideLabel = false, label = '', message = '', name, onUpdate, required = false, state = 'none', theme = 'light', value = [], className, ...rest }, ref) => {
10
+ const elementRef = react.useRef();
11
+ hooks.useEventCallback(elementRef, 'update', onUpdate);
12
+ const WebComponentTag = hooks.usePrefix('p-multi-select');
13
+ const propsToSync = [description, disabled, dropdownDirection, hideLabel, label, message, name, required, state, theme, value];
14
+ hooks.useBrowserLayoutEffect(() => {
15
+ const { current } = elementRef;
16
+ ['description', 'disabled', 'dropdownDirection', 'hideLabel', 'label', 'message', 'name', 'required', 'state', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
17
+ }, propsToSync);
18
+ const props = {
19
+ ...rest,
20
+ class: hooks.useMergedClass(elementRef, className),
21
+ ref: utils.syncRef(elementRef, ref)
22
+ };
23
+ return jsxRuntime.jsx(WebComponentTag, { ...props });
24
+ });
25
+
26
+ exports.PMultiSelect = PMultiSelect;
@@ -32,6 +32,8 @@ var linkTileModelSignature_wrapper = require('./lib/components/link-tile-model-s
32
32
  var marque_wrapper = require('./lib/components/marque.wrapper.cjs');
33
33
  var modal_wrapper = require('./lib/components/modal.wrapper.cjs');
34
34
  var modelSignature_wrapper = require('./lib/components/model-signature.wrapper.cjs');
35
+ var multiSelect_wrapper = require('./lib/components/multi-select.wrapper.cjs');
36
+ var multiSelectOption_wrapper = require('./lib/components/multi-select-option.wrapper.cjs');
35
37
  var pagination_wrapper = require('./lib/components/pagination.wrapper.cjs');
36
38
  var popover_wrapper = require('./lib/components/popover.wrapper.cjs');
37
39
  var radioButtonWrapper_wrapper = require('./lib/components/radio-button-wrapper.wrapper.cjs');
@@ -103,6 +105,8 @@ exports.PLinkTileModelSignature = linkTileModelSignature_wrapper.PLinkTileModelS
103
105
  exports.PMarque = marque_wrapper.PMarque;
104
106
  exports.PModal = modal_wrapper.PModal;
105
107
  exports.PModelSignature = modelSignature_wrapper.PModelSignature;
108
+ exports.PMultiSelect = multiSelect_wrapper.PMultiSelect;
109
+ exports.PMultiSelectOption = multiSelectOption_wrapper.PMultiSelectOption;
106
110
  exports.PPagination = pagination_wrapper.PPagination;
107
111
  exports.PPopover = popover_wrapper.PPopover;
108
112
  exports.PRadioButtonWrapper = radioButtonWrapper_wrapper.PRadioButtonWrapper;
@@ -29,6 +29,8 @@ export * from './link-tile-model-signature.wrapper';
29
29
  export * from './marque.wrapper';
30
30
  export * from './modal.wrapper';
31
31
  export * from './model-signature.wrapper';
32
+ export * from './multi-select.wrapper';
33
+ export * from './multi-select-option.wrapper';
32
34
  export * from './pagination.wrapper';
33
35
  export * from './popover.wrapper';
34
36
  export * from './radio-button-wrapper.wrapper';
@@ -0,0 +1,23 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ export type PMultiSelectOptionProps = Omit<HTMLAttributes<{}>, 'color'> & {
3
+ /**
4
+ * Disables the option.
5
+ */
6
+ disabled?: boolean;
7
+ /**
8
+ * The option value.
9
+ */
10
+ value: string;
11
+ };
12
+ export declare const PMultiSelectOption: import("react").ForwardRefExoticComponent<Omit<HTMLAttributes<{}>, "color"> & {
13
+ /**
14
+ * Disables the option.
15
+ */
16
+ disabled?: boolean | undefined;
17
+ /**
18
+ * The option value.
19
+ */
20
+ value: string;
21
+ } & {
22
+ children?: import("react").ReactNode;
23
+ } & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1,23 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef, useRef } from 'react';
4
+ import { usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
+ import { syncRef } from '../../utils.mjs';
6
+
7
+ const PMultiSelectOption = forwardRef(({ disabled = false, value, className, ...rest }, ref) => {
8
+ const elementRef = useRef();
9
+ const WebComponentTag = usePrefix('p-multi-select-option');
10
+ const propsToSync = [disabled, value];
11
+ useBrowserLayoutEffect(() => {
12
+ const { current } = elementRef;
13
+ ['disabled', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
14
+ }, propsToSync);
15
+ const props = {
16
+ ...rest,
17
+ class: useMergedClass(elementRef, className),
18
+ ref: syncRef(elementRef, ref)
19
+ };
20
+ return jsx(WebComponentTag, { ...props });
21
+ });
22
+
23
+ export { PMultiSelectOption };
@@ -0,0 +1,104 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ import type { MultiSelectDropdownDirection, BreakpointCustomizable, MultiSelectUpdateEvent, MultiSelectState, Theme } from '../types';
3
+ export type PMultiSelectProps = Omit<HTMLAttributes<{}>, 'color'> & {
4
+ /**
5
+ * The description text.
6
+ */
7
+ description?: string;
8
+ /**
9
+ * Disables the multi-select
10
+ */
11
+ disabled?: boolean;
12
+ /**
13
+ * Changes the direction to which the dropdown list appears.
14
+ */
15
+ dropdownDirection?: MultiSelectDropdownDirection;
16
+ /**
17
+ * Show or hide label. For better accessibility it is recommended to show the label.
18
+ */
19
+ hideLabel?: BreakpointCustomizable<boolean>;
20
+ /**
21
+ * The label text.
22
+ */
23
+ label?: string;
24
+ /**
25
+ * The message styled depending on validation state.
26
+ */
27
+ message?: string;
28
+ /**
29
+ * The name of the control.
30
+ */
31
+ name: string;
32
+ /**
33
+ * Emitted when the selection is changed.
34
+ */
35
+ onUpdate?: (event: CustomEvent<MultiSelectUpdateEvent>) => void;
36
+ /**
37
+ * A Boolean attribute indicating that an option with a non-empty string value must be selected.
38
+ */
39
+ required?: boolean;
40
+ /**
41
+ * The validation state.
42
+ */
43
+ state?: MultiSelectState;
44
+ /**
45
+ * Adapts the select color depending on the theme.
46
+ */
47
+ theme?: Theme;
48
+ /**
49
+ * The selected values.
50
+ */
51
+ value?: string[];
52
+ };
53
+ export declare const PMultiSelect: import("react").ForwardRefExoticComponent<Omit<HTMLAttributes<{}>, "color"> & {
54
+ /**
55
+ * The description text.
56
+ */
57
+ description?: string | undefined;
58
+ /**
59
+ * Disables the multi-select
60
+ */
61
+ disabled?: boolean | undefined;
62
+ /**
63
+ * Changes the direction to which the dropdown list appears.
64
+ */
65
+ dropdownDirection?: "auto" | "down" | "up" | undefined;
66
+ /**
67
+ * Show or hide label. For better accessibility it is recommended to show the label.
68
+ */
69
+ hideLabel?: BreakpointCustomizable<boolean> | undefined;
70
+ /**
71
+ * The label text.
72
+ */
73
+ label?: string | undefined;
74
+ /**
75
+ * The message styled depending on validation state.
76
+ */
77
+ message?: string | undefined;
78
+ /**
79
+ * The name of the control.
80
+ */
81
+ name: string;
82
+ /**
83
+ * Emitted when the selection is changed.
84
+ */
85
+ onUpdate?: ((event: CustomEvent<MultiSelectUpdateEvent>) => void) | undefined;
86
+ /**
87
+ * A Boolean attribute indicating that an option with a non-empty string value must be selected.
88
+ */
89
+ required?: boolean | undefined;
90
+ /**
91
+ * The validation state.
92
+ */
93
+ state?: "none" | "success" | "error" | undefined;
94
+ /**
95
+ * Adapts the select color depending on the theme.
96
+ */
97
+ theme?: "light" | "dark" | undefined;
98
+ /**
99
+ * The selected values.
100
+ */
101
+ value?: string[] | undefined;
102
+ } & {
103
+ children?: import("react").ReactNode;
104
+ } & import("react").RefAttributes<HTMLElement>>;
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef, useRef } from 'react';
4
+ import { useEventCallback, usePrefix, useBrowserLayoutEffect, useMergedClass } from '../../hooks.mjs';
5
+ import { syncRef } from '../../utils.mjs';
6
+
7
+ const PMultiSelect = forwardRef(({ description = '', disabled = false, dropdownDirection = 'auto', hideLabel = false, label = '', message = '', name, onUpdate, required = false, state = 'none', theme = 'light', value = [], className, ...rest }, ref) => {
8
+ const elementRef = useRef();
9
+ useEventCallback(elementRef, 'update', onUpdate);
10
+ const WebComponentTag = usePrefix('p-multi-select');
11
+ const propsToSync = [description, disabled, dropdownDirection, hideLabel, label, message, name, required, state, theme, value];
12
+ useBrowserLayoutEffect(() => {
13
+ const { current } = elementRef;
14
+ ['description', 'disabled', 'dropdownDirection', 'hideLabel', 'label', 'message', 'name', 'required', 'state', 'theme', 'value'].forEach((propName, i) => (current[propName] = propsToSync[i]));
15
+ }, propsToSync);
16
+ const props = {
17
+ ...rest,
18
+ class: useMergedClass(elementRef, className),
19
+ ref: syncRef(elementRef, ref)
20
+ };
21
+ return jsx(WebComponentTag, { ...props });
22
+ });
23
+
24
+ export { PMultiSelect };
@@ -501,6 +501,12 @@ declare const SCROLL_INDICATOR_POSITIONS: readonly [
501
501
  /** @deprecated */
502
502
  export type ScrollerScrollIndicatorPosition = (typeof SCROLL_INDICATOR_POSITIONS)[number];
503
503
  export type ScrollerAlignScrollIndicator = ScrollerScrollIndicatorPosition;
504
+ declare const SELECT_DROPDOWN_DIRECTIONS: readonly [
505
+ "down",
506
+ "up",
507
+ "auto"
508
+ ];
509
+ export type SelectDropdownDirection = (typeof SELECT_DROPDOWN_DIRECTIONS)[number];
504
510
  declare const ALIGN_LABELS: readonly [
505
511
  "left",
506
512
  "right"
@@ -1006,6 +1012,12 @@ declare const MODEL_SIGNATURE_COLORS: readonly [
1006
1012
  "inherit"
1007
1013
  ];
1008
1014
  export type ModelSignatureColor = (typeof MODEL_SIGNATURE_COLORS)[number];
1015
+ export type MultiSelectState = FormState;
1016
+ export type MultiSelectDropdownDirection = SelectDropdownDirection;
1017
+ export type MultiSelectUpdateEvent = {
1018
+ value: string[];
1019
+ name: string;
1020
+ };
1009
1021
  declare const PAGINATION_NUMBER_OF_PAGE_LINKS: readonly [
1010
1022
  5,
1011
1023
  7
@@ -30,6 +30,8 @@ export { PLinkTileModelSignature } from './lib/components/link-tile-model-signat
30
30
  export { PMarque } from './lib/components/marque.wrapper.mjs';
31
31
  export { PModal } from './lib/components/modal.wrapper.mjs';
32
32
  export { PModelSignature } from './lib/components/model-signature.wrapper.mjs';
33
+ export { PMultiSelect } from './lib/components/multi-select.wrapper.mjs';
34
+ export { PMultiSelectOption } from './lib/components/multi-select-option.wrapper.mjs';
33
35
  export { PPagination } from './lib/components/pagination.wrapper.mjs';
34
36
  export { PPopover } from './lib/components/popover.wrapper.mjs';
35
37
  export { PRadioButtonWrapper } from './lib/components/radio-button-wrapper.wrapper.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@porsche-design-system/components-react",
3
- "version": "3.6.1",
3
+ "version": "3.7.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.6.1"
20
+ "@porsche-design-system/components-js": "3.7.0-rc.0"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "react": ">=17.0.0 <19.0.0",