@porsche-design-system/components-react 3.1.0-rc.2 → 3.2.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 (25) hide show
  1. package/CHANGELOG.md +45 -6
  2. package/esm/lib/components/carousel.wrapper.js +3 -3
  3. package/esm/lib/components/pagination.wrapper.js +3 -3
  4. package/lib/components/carousel.wrapper.d.ts +8 -0
  5. package/lib/components/carousel.wrapper.js +3 -3
  6. package/lib/components/pagination.wrapper.d.ts +10 -2
  7. package/lib/components/pagination.wrapper.js +3 -3
  8. package/lib/types.d.ts +199 -199
  9. package/package.json +2 -2
  10. package/ssr/components/dist/styles/esm/styles-entry.js +79 -37
  11. package/ssr/components/dist/utils/esm/utils-entry.js +55 -89
  12. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/components/carousel.wrapper.js +4 -4
  13. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/components/pagination.wrapper.js +4 -4
  14. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.js +5 -4
  15. package/ssr/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.js +7 -6
  16. package/ssr/esm/components/dist/styles/esm/styles-entry.js +79 -37
  17. package/ssr/esm/components/dist/utils/esm/utils-entry.js +55 -89
  18. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/carousel.wrapper.js +4 -4
  19. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/components/pagination.wrapper.js +4 -4
  20. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/carousel.js +5 -4
  21. package/ssr/esm/components-react/projects/react-ssr-wrapper/src/lib/dsr-components/pagination.js +8 -7
  22. package/ssr/lib/components/carousel.wrapper.d.ts +8 -0
  23. package/ssr/lib/components/pagination.wrapper.d.ts +10 -2
  24. package/ssr/lib/dsr-components/pagination.d.ts +0 -1
  25. package/ssr/lib/types.d.ts +199 -199
package/lib/types.d.ts CHANGED
@@ -1,3 +1,193 @@
1
+ export type Booleanish = boolean | "true" | "false";
2
+ export type AriaAttributes = {
3
+ /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */
4
+ "aria-activedescendant"?: string | undefined;
5
+ /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */
6
+ "aria-atomic"?: Booleanish | undefined;
7
+ /**
8
+ * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be
9
+ * presented if they are made.
10
+ */
11
+ "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
12
+ /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */
13
+ "aria-busy"?: Booleanish | undefined;
14
+ /**
15
+ * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
16
+ * @see aria-pressed @see aria-selected.
17
+ */
18
+ "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
19
+ /**
20
+ * Defines the total number of columns in a table, grid, or treegrid.
21
+ * @see aria-colindex.
22
+ */
23
+ "aria-colcount"?: number | undefined;
24
+ /**
25
+ * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
26
+ * @see aria-colcount @see aria-colspan.
27
+ */
28
+ "aria-colindex"?: number | undefined;
29
+ /**
30
+ * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
31
+ * @see aria-colindex @see aria-rowspan.
32
+ */
33
+ "aria-colspan"?: number | undefined;
34
+ /**
35
+ * Identifies the element (or elements) whose contents or presence are controlled by the current element.
36
+ * @see aria-owns.
37
+ */
38
+ "aria-controls"?: string | undefined;
39
+ /** Indicates the element that represents the current item within a container or set of related elements. */
40
+ "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
41
+ /**
42
+ * Identifies the element (or elements) that describes the object.
43
+ * @see aria-labelledby
44
+ */
45
+ "aria-describedby"?: string | undefined;
46
+ /**
47
+ * Identifies the element that provides a detailed, extended description for the object.
48
+ * @see aria-describedby.
49
+ */
50
+ "aria-details"?: string | undefined;
51
+ /**
52
+ * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
53
+ * @see aria-hidden @see aria-readonly.
54
+ */
55
+ "aria-disabled"?: Booleanish | undefined;
56
+ /**
57
+ * Indicates what functions can be performed when a dragged object is released on the drop target.
58
+ * @deprecated in ARIA 1.1
59
+ */
60
+ "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
61
+ /**
62
+ * Identifies the element that provides an error message for the object.
63
+ * @see aria-invalid @see aria-describedby.
64
+ */
65
+ "aria-errormessage"?: string | undefined;
66
+ /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */
67
+ "aria-expanded"?: Booleanish | undefined;
68
+ /**
69
+ * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,
70
+ * allows assistive technology to override the general default of reading in document source order.
71
+ */
72
+ "aria-flowto"?: string | undefined;
73
+ /**
74
+ * Indicates an element's "grabbed" state in a drag-and-drop operation.
75
+ * @deprecated in ARIA 1.1
76
+ */
77
+ "aria-grabbed"?: Booleanish | undefined;
78
+ /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */
79
+ "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
80
+ /**
81
+ * Indicates whether the element is exposed to an accessibility API.
82
+ * @see aria-disabled.
83
+ */
84
+ "aria-hidden"?: Booleanish | undefined;
85
+ /**
86
+ * Indicates the entered value does not conform to the format expected by the application.
87
+ * @see aria-errormessage.
88
+ */
89
+ "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
90
+ /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */
91
+ "aria-keyshortcuts"?: string | undefined;
92
+ /**
93
+ * Defines a string value that labels the current element.
94
+ * @see aria-labelledby.
95
+ */
96
+ "aria-label"?: string | undefined;
97
+ /**
98
+ * Identifies the element (or elements) that labels the current element.
99
+ * @see aria-describedby.
100
+ */
101
+ "aria-labelledby"?: string | undefined;
102
+ /** Defines the hierarchical level of an element within a structure. */
103
+ "aria-level"?: number | undefined;
104
+ /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */
105
+ "aria-live"?: "off" | "assertive" | "polite" | undefined;
106
+ /** Indicates whether an element is modal when displayed. */
107
+ "aria-modal"?: Booleanish | undefined;
108
+ /** Indicates whether a text box accepts multiple lines of input or only a single line. */
109
+ "aria-multiline"?: Booleanish | undefined;
110
+ /** Indicates that the user may select more than one item from the current selectable descendants. */
111
+ "aria-multiselectable"?: Booleanish | undefined;
112
+ /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
113
+ "aria-orientation"?: "horizontal" | "vertical" | undefined;
114
+ /**
115
+ * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship
116
+ * between DOM elements where the DOM hierarchy cannot be used to represent the relationship.
117
+ * @see aria-controls.
118
+ */
119
+ "aria-owns"?: string | undefined;
120
+ /**
121
+ * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.
122
+ * A hint could be a sample value or a brief description of the expected format.
123
+ */
124
+ "aria-placeholder"?: string | undefined;
125
+ /**
126
+ * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
127
+ * @see aria-setsize.
128
+ */
129
+ "aria-posinset"?: number | undefined;
130
+ /**
131
+ * Indicates the current "pressed" state of toggle buttons.
132
+ * @see aria-checked @see aria-selected.
133
+ */
134
+ "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
135
+ /**
136
+ * Indicates that the element is not editable, but is otherwise operable.
137
+ * @see aria-disabled.
138
+ */
139
+ "aria-readonly"?: Booleanish | undefined;
140
+ /**
141
+ * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
142
+ * @see aria-atomic.
143
+ */
144
+ "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
145
+ /** Indicates that user input is required on the element before a form may be submitted. */
146
+ "aria-required"?: Booleanish | undefined;
147
+ /** Defines a human-readable, author-localized description for the role of an element. */
148
+ "aria-roledescription"?: string | undefined;
149
+ /**
150
+ * Defines the total number of rows in a table, grid, or treegrid.
151
+ * @see aria-rowindex.
152
+ */
153
+ "aria-rowcount"?: number | undefined;
154
+ /**
155
+ * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
156
+ * @see aria-rowcount @see aria-rowspan.
157
+ */
158
+ "aria-rowindex"?: number | undefined;
159
+ /**
160
+ * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
161
+ * @see aria-rowindex @see aria-colspan.
162
+ */
163
+ "aria-rowspan"?: number | undefined;
164
+ /**
165
+ * Indicates the current "selected" state of various widgets.
166
+ * @see aria-checked @see aria-pressed.
167
+ */
168
+ "aria-selected"?: Booleanish | undefined;
169
+ /**
170
+ * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
171
+ * @see aria-posinset.
172
+ */
173
+ "aria-setsize"?: number | undefined;
174
+ /** Indicates if items in a table or grid are sorted in ascending or descending order. */
175
+ "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
176
+ /** Defines the maximum allowed value for a range widget. */
177
+ "aria-valuemax"?: number | undefined;
178
+ /** Defines the minimum allowed value for a range widget. */
179
+ "aria-valuemin"?: number | undefined;
180
+ /**
181
+ * Defines the current value for a range widget.
182
+ * @see aria-valuetext.
183
+ */
184
+ "aria-valuenow"?: number | undefined;
185
+ /** Defines the human readable text alternative of aria-valuenow for a range widget. */
186
+ "aria-valuetext"?: string | undefined;
187
+ /** All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions */
188
+ role?: AriaRole;
189
+ };
190
+ export type AriaRole = "alert" | "alertdialog" | "application" | "article" | "banner" | "button" | "cell" | "checkbox" | "columnheader" | "combobox" | "complementary" | "contentinfo" | "definition" | "dialog" | "directory" | "document" | "feed" | "figure" | "form" | "grid" | "gridcell" | "group" | "heading" | "img" | "link" | "list" | "listbox" | "listitem" | "log" | "main" | "marquee" | "math" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "navigation" | "none" | "note" | "option" | "presentation" | "progressbar" | "radio" | "radiogroup" | "region" | "row" | "rowgroup" | "rowheader" | "scrollbar" | "search" | "searchbox" | "separator" | "slider" | "spinbutton" | "status" | "switch" | "tab" | "table" | "tablist" | "tabpanel" | "term" | "textbox" | "timer" | "toolbar" | "tooltip" | "tree" | "treegrid" | "treeitem";
1
191
  declare const ICON_NAMES: readonly [
2
192
  "360",
3
193
  "accessibility",
@@ -355,196 +545,6 @@ declare const LINK_TARGETS: readonly [
355
545
  "_top"
356
546
  ];
357
547
  export type LinkTarget = typeof LINK_TARGETS[number] | string;
358
- export type Booleanish = boolean | "true" | "false";
359
- export type AriaAttributes = {
360
- /** Identifies the currently active element when DOM focus is on a composite widget, textbox, group, or application. */
361
- "aria-activedescendant"?: string | undefined;
362
- /** Indicates whether assistive technologies will present all, or only parts of, the changed region based on the change notifications defined by the aria-relevant attribute. */
363
- "aria-atomic"?: Booleanish | undefined;
364
- /**
365
- * Indicates whether inputting text could trigger display of one or more predictions of the user's intended value for an input and specifies how predictions would be
366
- * presented if they are made.
367
- */
368
- "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
369
- /** Indicates an element is being modified and that assistive technologies MAY want to wait until the modifications are complete before exposing them to the user. */
370
- "aria-busy"?: Booleanish | undefined;
371
- /**
372
- * Indicates the current "checked" state of checkboxes, radio buttons, and other widgets.
373
- * @see aria-pressed @see aria-selected.
374
- */
375
- "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
376
- /**
377
- * Defines the total number of columns in a table, grid, or treegrid.
378
- * @see aria-colindex.
379
- */
380
- "aria-colcount"?: number | undefined;
381
- /**
382
- * Defines an element's column index or position with respect to the total number of columns within a table, grid, or treegrid.
383
- * @see aria-colcount @see aria-colspan.
384
- */
385
- "aria-colindex"?: number | undefined;
386
- /**
387
- * Defines the number of columns spanned by a cell or gridcell within a table, grid, or treegrid.
388
- * @see aria-colindex @see aria-rowspan.
389
- */
390
- "aria-colspan"?: number | undefined;
391
- /**
392
- * Identifies the element (or elements) whose contents or presence are controlled by the current element.
393
- * @see aria-owns.
394
- */
395
- "aria-controls"?: string | undefined;
396
- /** Indicates the element that represents the current item within a container or set of related elements. */
397
- "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
398
- /**
399
- * Identifies the element (or elements) that describes the object.
400
- * @see aria-labelledby
401
- */
402
- "aria-describedby"?: string | undefined;
403
- /**
404
- * Identifies the element that provides a detailed, extended description for the object.
405
- * @see aria-describedby.
406
- */
407
- "aria-details"?: string | undefined;
408
- /**
409
- * Indicates that the element is perceivable but disabled, so it is not editable or otherwise operable.
410
- * @see aria-hidden @see aria-readonly.
411
- */
412
- "aria-disabled"?: Booleanish | undefined;
413
- /**
414
- * Indicates what functions can be performed when a dragged object is released on the drop target.
415
- * @deprecated in ARIA 1.1
416
- */
417
- "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
418
- /**
419
- * Identifies the element that provides an error message for the object.
420
- * @see aria-invalid @see aria-describedby.
421
- */
422
- "aria-errormessage"?: string | undefined;
423
- /** Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed. */
424
- "aria-expanded"?: Booleanish | undefined;
425
- /**
426
- * Identifies the next element (or elements) in an alternate reading order of content which, at the user's discretion,
427
- * allows assistive technology to override the general default of reading in document source order.
428
- */
429
- "aria-flowto"?: string | undefined;
430
- /**
431
- * Indicates an element's "grabbed" state in a drag-and-drop operation.
432
- * @deprecated in ARIA 1.1
433
- */
434
- "aria-grabbed"?: Booleanish | undefined;
435
- /** Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element. */
436
- "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
437
- /**
438
- * Indicates whether the element is exposed to an accessibility API.
439
- * @see aria-disabled.
440
- */
441
- "aria-hidden"?: Booleanish | undefined;
442
- /**
443
- * Indicates the entered value does not conform to the format expected by the application.
444
- * @see aria-errormessage.
445
- */
446
- "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
447
- /** Indicates keyboard shortcuts that an author has implemented to activate or give focus to an element. */
448
- "aria-keyshortcuts"?: string | undefined;
449
- /**
450
- * Defines a string value that labels the current element.
451
- * @see aria-labelledby.
452
- */
453
- "aria-label"?: string | undefined;
454
- /**
455
- * Identifies the element (or elements) that labels the current element.
456
- * @see aria-describedby.
457
- */
458
- "aria-labelledby"?: string | undefined;
459
- /** Defines the hierarchical level of an element within a structure. */
460
- "aria-level"?: number | undefined;
461
- /** Indicates that an element will be updated, and describes the types of updates the user agents, assistive technologies, and user can expect from the live region. */
462
- "aria-live"?: "off" | "assertive" | "polite" | undefined;
463
- /** Indicates whether an element is modal when displayed. */
464
- "aria-modal"?: Booleanish | undefined;
465
- /** Indicates whether a text box accepts multiple lines of input or only a single line. */
466
- "aria-multiline"?: Booleanish | undefined;
467
- /** Indicates that the user may select more than one item from the current selectable descendants. */
468
- "aria-multiselectable"?: Booleanish | undefined;
469
- /** Indicates whether the element's orientation is horizontal, vertical, or unknown/ambiguous. */
470
- "aria-orientation"?: "horizontal" | "vertical" | undefined;
471
- /**
472
- * Identifies an element (or elements) in order to define a visual, functional, or contextual parent/child relationship
473
- * between DOM elements where the DOM hierarchy cannot be used to represent the relationship.
474
- * @see aria-controls.
475
- */
476
- "aria-owns"?: string | undefined;
477
- /**
478
- * Defines a short hint (a word or short phrase) intended to aid the user with data entry when the control has no value.
479
- * A hint could be a sample value or a brief description of the expected format.
480
- */
481
- "aria-placeholder"?: string | undefined;
482
- /**
483
- * Defines an element's number or position in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
484
- * @see aria-setsize.
485
- */
486
- "aria-posinset"?: number | undefined;
487
- /**
488
- * Indicates the current "pressed" state of toggle buttons.
489
- * @see aria-checked @see aria-selected.
490
- */
491
- "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
492
- /**
493
- * Indicates that the element is not editable, but is otherwise operable.
494
- * @see aria-disabled.
495
- */
496
- "aria-readonly"?: Booleanish | undefined;
497
- /**
498
- * Indicates what notifications the user agent will trigger when the accessibility tree within a live region is modified.
499
- * @see aria-atomic.
500
- */
501
- "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
502
- /** Indicates that user input is required on the element before a form may be submitted. */
503
- "aria-required"?: Booleanish | undefined;
504
- /** Defines a human-readable, author-localized description for the role of an element. */
505
- "aria-roledescription"?: string | undefined;
506
- /**
507
- * Defines the total number of rows in a table, grid, or treegrid.
508
- * @see aria-rowindex.
509
- */
510
- "aria-rowcount"?: number | undefined;
511
- /**
512
- * Defines an element's row index or position with respect to the total number of rows within a table, grid, or treegrid.
513
- * @see aria-rowcount @see aria-rowspan.
514
- */
515
- "aria-rowindex"?: number | undefined;
516
- /**
517
- * Defines the number of rows spanned by a cell or gridcell within a table, grid, or treegrid.
518
- * @see aria-rowindex @see aria-colspan.
519
- */
520
- "aria-rowspan"?: number | undefined;
521
- /**
522
- * Indicates the current "selected" state of various widgets.
523
- * @see aria-checked @see aria-pressed.
524
- */
525
- "aria-selected"?: Booleanish | undefined;
526
- /**
527
- * Defines the number of items in the current set of listitems or treeitems. Not required if all elements in the set are present in the DOM.
528
- * @see aria-posinset.
529
- */
530
- "aria-setsize"?: number | undefined;
531
- /** Indicates if items in a table or grid are sorted in ascending or descending order. */
532
- "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
533
- /** Defines the maximum allowed value for a range widget. */
534
- "aria-valuemax"?: number | undefined;
535
- /** Defines the minimum allowed value for a range widget. */
536
- "aria-valuemin"?: number | undefined;
537
- /**
538
- * Defines the current value for a range widget.
539
- * @see aria-valuetext.
540
- */
541
- "aria-valuenow"?: number | undefined;
542
- /** Defines the human readable text alternative of aria-valuenow for a range widget. */
543
- "aria-valuetext"?: string | undefined;
544
- /** All the WAI-ARIA 1.1 role attribute values from https://www.w3.org/TR/wai-aria-1.1/#role_definitions */
545
- role?: AriaRole;
546
- };
547
- export type AriaRole = "alert" | "alertdialog" | "application" | "article" | "banner" | "button" | "cell" | "checkbox" | "columnheader" | "combobox" | "complementary" | "contentinfo" | "definition" | "dialog" | "directory" | "document" | "feed" | "figure" | "form" | "grid" | "gridcell" | "group" | "heading" | "img" | "link" | "list" | "listbox" | "listitem" | "log" | "main" | "marquee" | "math" | "menu" | "menubar" | "menuitem" | "menuitemcheckbox" | "menuitemradio" | "navigation" | "none" | "note" | "option" | "presentation" | "progressbar" | "radio" | "radiogroup" | "region" | "row" | "rowgroup" | "rowheader" | "scrollbar" | "search" | "searchbox" | "separator" | "slider" | "spinbutton" | "status" | "switch" | "tab" | "table" | "tablist" | "tabpanel" | "term" | "textbox" | "timer" | "toolbar" | "tooltip" | "tree" | "treegrid" | "treeitem";
548
548
  export type LinkButtonIconName = IconName | "none";
549
549
  export type ButtonVariant = LinkButtonVariant;
550
550
  export type LinkVariant = LinkButtonVariant;
@@ -634,19 +634,19 @@ declare const DISPLAY_TAGS: readonly [
634
634
  "h5",
635
635
  "h6"
636
636
  ];
637
- export type DisplayTag = typeof DISPLAY_TAGS[number];
637
+ export type DisplayTag = (typeof DISPLAY_TAGS)[number];
638
638
  declare const DISPLAY_SIZES: readonly [
639
639
  "small",
640
640
  "medium",
641
641
  "large",
642
642
  "inherit"
643
643
  ];
644
- export type DisplaySize = typeof DISPLAY_SIZES[number];
644
+ export type DisplaySize = (typeof DISPLAY_SIZES)[number];
645
645
  declare const DISPLAY_COLORS: readonly [
646
646
  "primary",
647
647
  "inherit"
648
648
  ];
649
- export type DisplayColor = typeof DISPLAY_COLORS[number];
649
+ export type DisplayColor = (typeof DISPLAY_COLORS)[number];
650
650
  export type DisplayAlign = TextAlign;
651
651
  declare const DIVIDER_COLORS: readonly [
652
652
  "contrast-low",
@@ -822,12 +822,12 @@ declare const HEADING_SIZES: readonly [
822
822
  "xx-large",
823
823
  "inherit"
824
824
  ];
825
- export type HeadingSize = typeof HEADING_SIZES[number];
825
+ export type HeadingSize = (typeof HEADING_SIZES)[number];
826
826
  declare const HEADING_COLORS: readonly [
827
827
  "primary",
828
828
  "inherit"
829
829
  ];
830
- export type HeadingColor = typeof HEADING_COLORS[number];
830
+ export type HeadingColor = (typeof HEADING_COLORS)[number];
831
831
  export type HeadingAlign = TextAlign;
832
832
  declare const HEADLINE_VARIANTS: readonly [
833
833
  "large-title",
@@ -999,11 +999,11 @@ declare const POPOVER_DIRECTIONS: readonly [
999
999
  "bottom",
1000
1000
  "left"
1001
1001
  ];
1002
- export type PopoverDirection = typeof POPOVER_DIRECTIONS[number];
1002
+ export type PopoverDirection = (typeof POPOVER_DIRECTIONS)[number];
1003
1003
  declare const POPOVER_ARIA_ATTRIBUTES: readonly [
1004
1004
  "aria-label"
1005
1005
  ];
1006
- export type PopoverAriaAttribute = typeof POPOVER_ARIA_ATTRIBUTES[number];
1006
+ export type PopoverAriaAttribute = (typeof POPOVER_ARIA_ATTRIBUTES)[number];
1007
1007
  export type RadioButtonWrapperState = FormState;
1008
1008
  declare const SEGMENTED_CONTROL_BACKGROUND_COLORS: readonly [
1009
1009
  "background-surface",
@@ -1045,7 +1045,7 @@ declare const STEPPER_ITEM_STATES: readonly [
1045
1045
  "complete",
1046
1046
  "warning"
1047
1047
  ];
1048
- export type StepperHorizontalItemState = typeof STEPPER_ITEM_STATES[number];
1048
+ export type StepperHorizontalItemState = (typeof STEPPER_ITEM_STATES)[number];
1049
1049
  export type SwitchAlignLabel = AlignLabel;
1050
1050
  export type SwitchUpdateEvent = {
1051
1051
  checked: boolean;
@@ -1123,7 +1123,7 @@ declare const UNIT_POSITIONS: readonly [
1123
1123
  "prefix",
1124
1124
  "suffix"
1125
1125
  ];
1126
- export type TextFieldWrapperUnitPosition = typeof UNIT_POSITIONS[number];
1126
+ export type TextFieldWrapperUnitPosition = (typeof UNIT_POSITIONS)[number];
1127
1127
  export type TextFieldWrapperActionIcon = Extract<IconName, "locate">;
1128
1128
  export type TextFieldWrapperState = FormState;
1129
1129
  declare const LIST_TYPES: readonly [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@porsche-design-system/components-react",
3
- "version": "3.1.0-rc.2",
3
+ "version": "3.2.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.1.0-rc.2"
20
+ "@porsche-design-system/components-js": "3.2.0-rc.0"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "react": ">=17.0.0 <19.0.0",
@@ -315,14 +315,17 @@ const hasVisibleIcon = (iconName, iconSource) => {
315
315
  };
316
316
 
317
317
  const childrenMutationMap = new Map();
318
- const getObservedNode = (mutatedNode) => childrenMutationMap.has(mutatedNode) ? mutatedNode : getObservedNode(mutatedNode.parentNode);
319
318
  hasWindow &&
320
319
  new MutationObserver((mutations) => {
321
- mutations
322
- // remove duplicates so we execute callback only once per node
323
- .filter((mutation, idx, arr) => arr.findIndex((m) => m.target === mutation.target) === idx)
324
- .map((mutation) => getObservedNode(mutation.target)) // recursively find root node that is initially observed
325
- .forEach((node) => childrenMutationMap.get(node)());
320
+ // there may be race conditions in jsdom-polyfill tests where the map is already empty when a mutation happens
321
+ if (childrenMutationMap.size) {
322
+ const mapKeys = Array.from(childrenMutationMap.keys());
323
+ mutations
324
+ // remove duplicates so we execute callback only once per node
325
+ .filter((mutation, idx, arr) => arr.findIndex((m) => m.target === mutation.target) === idx)
326
+ // find node in map that contains the mutated element to find and invoke its callback
327
+ .forEach((mutation) => { var _a; return (_a = childrenMutationMap.get(mapKeys.find((node) => node.contains(mutation.target)))) === null || _a === void 0 ? void 0 : _a(); });
328
+ }
326
329
  });
327
330
 
328
331
  /* eslint-disable no-undefined,no-param-reassign,no-shadow */
@@ -4352,6 +4355,11 @@ const getComponentCss$U = (icon, iconSource, variant, hideLabel, disabled, loadi
4352
4355
 
4353
4356
  const carouselTransitionDuration = 400;
4354
4357
  const bulletActiveClass = 'bullet--active';
4358
+ const paginationInfiniteStartCaseClass = 'pagination--infinite';
4359
+ const bulletInfiniteClass = 'bullet--infinite';
4360
+ const paginationBulletSize = '8px';
4361
+ const paginationInfiniteBulletSize = '4px';
4362
+ const paginationActiveBulletSize = '20px';
4355
4363
  const selectorHeading = 'h2,::slotted([slot=heading])';
4356
4364
  const selectorDescription = 'p,::slotted([slot=description])';
4357
4365
  const mediaQueryS = getMediaQueryMin('s');
@@ -4359,13 +4367,13 @@ const mediaQueryXXL = getMediaQueryMin('xxl');
4359
4367
  // we need an explicit grid template, therefor we need to calculate the button group width
4360
4368
  const buttonSize$1 = `calc(${spacingStaticSmall} * 2 + ${fontLineHeight})`;
4361
4369
  // + 2px, compensates hover offset of button-pure
4362
- const buttonGroupWidth = `calc(${buttonSize$1} * 2 + ${spacingStaticXSmall} + 2px)`;
4370
+ const buttonGroupWidth = `calc(${buttonSize$1} * 3 + ${spacingStaticXSmall} + 2px)`;
4363
4371
  const spacingMap = {
4364
4372
  basic: gridBasicOffset,
4365
4373
  extended: gridExtendedOffset,
4366
4374
  };
4367
- const getComponentCss$T = (width, hasPagination, alignHeader, theme) => {
4368
- const { primaryColor, contrastMediumColor } = getThemedColors(theme);
4375
+ const getComponentCss$T = (width, hasPagination, isInfinitePagination, alignHeader, theme) => {
4376
+ const { primaryColor, contrastMediumColor, focusColor } = getThemedColors(theme);
4369
4377
  const { canvasTextColor } = getHighContrastColors();
4370
4378
  const isHeaderAlignCenter = alignHeader === 'center';
4371
4379
  return getCss(Object.assign({ '@global': {
@@ -4395,12 +4403,23 @@ const getComponentCss$T = (width, hasPagination, alignHeader, theme) => {
4395
4403
  gap: spacingStaticXSmall,
4396
4404
  gridArea: '1 / 3 / 3 / auto',
4397
4405
  alignItems: 'end',
4406
+ justifyContent: 'end',
4407
+ justifySelf: 'end',
4398
4408
  },
4399
4409
  }, btn: {
4400
4410
  padding: spacingStaticSmall,
4411
+ }, 'skip-link': {
4412
+ opacity: 0,
4413
+ pointerEvents: 'none',
4414
+ '&:focus': {
4415
+ opacity: 1,
4416
+ pointerEvents: 'all',
4417
+ },
4401
4418
  }, splide: {
4402
4419
  overflow: 'hidden',
4403
4420
  // visibility: 'hidden',
4421
+ padding: '4px 0',
4422
+ margin: '-4px 0',
4404
4423
  '&__track': Object.assign(Object.assign({ cursor: 'grab' }, addImportantToEachRule({
4405
4424
  padding: `0 ${spacingMap[width].base}`,
4406
4425
  [getMediaQueryMax('xs')]: {
@@ -4417,26 +4436,57 @@ const getComponentCss$T = (width, hasPagination, alignHeader, theme) => {
4417
4436
  WebkitUserSelect: 'none',
4418
4437
  WebkitTouchCallout: 'none',
4419
4438
  } }),
4420
- '&__list': Object.assign({ display: 'flex', height: '100%' }, getBackfaceVisibilityJssStyle()),
4421
- '&__slide': Object.assign(Object.assign({ position: 'relative', flexShrink: 0 }, getBackfaceVisibilityJssStyle()), { transform: 'translateZ(0)' }),
4439
+ '&__list': Object.assign({ display: 'flex' }, getBackfaceVisibilityJssStyle()),
4440
+ '&__slide': Object.assign(Object.assign({ position: 'relative', flexShrink: 0 }, getBackfaceVisibilityJssStyle()), { transform: 'translateZ(0)', borderRadius: borderRadiusLarge, overflow: 'hidden', '&:focus-visible': {
4441
+ outline: `${borderWidthBase} solid ${focusColor}`,
4442
+ outlineOffset: '2px',
4443
+ } }),
4422
4444
  '&__sr': getHiddenTextJssStyle(), // appears in the DOM when sliding
4423
- } }, (hasPagination && {
4424
- pagination: Object.assign(Object.assign({}, buildResponsiveStyles(hasPagination, (hasPaginationValue) => ({
4445
+ } }, (hasPagination && Object.assign(Object.assign({ ['pagination-container']: Object.assign(Object.assign({}, buildResponsiveStyles(hasPagination, (hasPaginationValue) => ({
4425
4446
  display: hasPaginationValue ? 'flex' : 'none',
4426
- }))), { justifyContent: 'center', gap: spacingStaticSmall }),
4427
- bullet: {
4428
- borderRadius: borderRadiusSmall,
4429
- background: isHighContrastMode ? canvasTextColor : contrastMediumColor,
4430
- // set transition to have the same speed as switching slides in splide
4431
- transition: `background-color ${carouselTransitionDuration}ms, width ${carouselTransitionDuration}ms`,
4432
- width: '8px',
4433
- height: '8px',
4434
- },
4435
- [bulletActiveClass]: {
4436
- background: isHighContrastMode ? canvasTextColor : primaryColor,
4437
- width: '20px',
4447
+ }))), { position: 'relative', justifyContent: isInfinitePagination ? 'flex-start' : 'center', width: `calc(${paginationActiveBulletSize} + ${paginationBulletSize} * 4 + ${spacingStaticSmall} * 4)`, left: 'calc(50% - 42px)', overflowX: 'hidden' }), pagination: {
4448
+ display: 'flex',
4449
+ alignItems: 'center',
4450
+ width: 'fit-content',
4451
+ gap: spacingStaticSmall,
4452
+ transition: `transform ${carouselTransitionDuration}ms`,
4453
+ }, bullet: Object.assign({ borderRadius: borderRadiusSmall, background: isHighContrastMode ? canvasTextColor : contrastMediumColor }, (isInfinitePagination
4454
+ ? {
4455
+ width: '0px',
4456
+ height: '0px',
4457
+ transition: `background-color ${carouselTransitionDuration}ms, width ${carouselTransitionDuration}ms, height ${carouselTransitionDuration}ms`,
4458
+ }
4459
+ : {
4460
+ width: paginationBulletSize,
4461
+ height: paginationBulletSize,
4462
+ transition: `background-color ${carouselTransitionDuration}ms, width ${carouselTransitionDuration}ms`,
4463
+ })) }, (isInfinitePagination && {
4464
+ [`${paginationInfiniteStartCaseClass}`]: {
4465
+ ['& > .bullet:nth-child(-n+4)']: {
4466
+ width: paginationBulletSize,
4467
+ height: paginationBulletSize,
4468
+ },
4438
4469
  },
4439
- })));
4470
+ [`${bulletInfiniteClass}`]: Object.assign(Object.assign({}, addImportantToEachRule({
4471
+ width: paginationInfiniteBulletSize,
4472
+ height: paginationInfiniteBulletSize,
4473
+ })), { '& ~ span': {
4474
+ width: paginationBulletSize,
4475
+ height: paginationBulletSize,
4476
+ }, [`& ~ .${bulletInfiniteClass} ~ span`]: {
4477
+ width: '0px',
4478
+ height: '0px',
4479
+ } }),
4480
+ })), { [`${bulletActiveClass}`]: Object.assign({ background: isHighContrastMode ? canvasTextColor : primaryColor, height: paginationBulletSize, width: addImportantToRule(paginationActiveBulletSize) }, (isInfinitePagination && {
4481
+ '& ~ span': {
4482
+ width: paginationBulletSize,
4483
+ height: paginationBulletSize,
4484
+ },
4485
+ [`& ~ .${bulletInfiniteClass} ~ span`]: {
4486
+ width: '0px',
4487
+ height: '0px',
4488
+ },
4489
+ })) }))));
4440
4490
  };
4441
4491
 
4442
4492
  const getThemedFormStateColors = (theme, state) => {
@@ -5330,7 +5380,7 @@ const getComponentCss$v = (maxNumberOfPageLinks, theme) => {
5330
5380
  return getCss({
5331
5381
  '@global': {
5332
5382
  ':host': Object.assign({ display: 'block' }, addImportantToEachRule(hostHiddenStyles)),
5333
- nav: Object.assign({ display: 'flex', justifyContent: 'center' }, buildResponsiveStyles(maxNumberOfPageLinks, (n) => ({
5383
+ nav: Object.assign({ display: 'flex', justifyContent: 'center', userSelect: 'none' }, buildResponsiveStyles(maxNumberOfPageLinks, (n) => ({
5334
5384
  counterReset: `size ${n}`,
5335
5385
  }))),
5336
5386
  ul: {
@@ -5354,16 +5404,8 @@ const getComponentCss$v = (maxNumberOfPageLinks, theme) => {
5354
5404
  },
5355
5405
  },
5356
5406
  span: Object.assign(Object.assign(Object.assign(Object.assign({ display: 'flex', justifyContent: 'center', alignItems: 'center', transition: ['color', 'border-color', 'background-color'].map(getTransition).join(), position: 'relative', width: buttonSize, height: buttonSize, boxSizing: 'border-box' }, textSmallStyle), { whiteSpace: 'nowrap', cursor: 'pointer', color: primaryColor, outline: 0, borderRadius: borderRadiusSmall, borderColor: 'transparent' }), hoverMediaQuery({
5357
- '&:not([aria-disabled]):not(.ellipsis):hover': Object.assign(Object.assign({}, frostedGlassStyle), { backgroundColor: hoverColor }),
5358
- })), { '&:not(.ellipsis):focus::before': Object.assign(Object.assign({ content: '""', position: 'absolute' }, getInsetJssStyle(-4)), { border: `${borderWidthBase} solid ${focusColor}`, borderRadius: borderRadiusMedium }), '&:focus:not(:focus-visible)::before': {
5359
- borderColor: 'transparent',
5360
- }, '&[aria-current]': {
5361
- disabledCursorStyle,
5362
- color: primaryColor,
5363
- border: `${borderWidthBase} solid ${primaryColor}`,
5364
- borderRadius: borderRadiusSmall,
5365
- '&:not(.ellipsis):focus::before': Object.assign({}, getInsetJssStyle(-6)),
5366
- }, '&[aria-disabled]': Object.assign(Object.assign({}, disabledCursorStyle), { color: disabledColor }) }),
5407
+ '&:not([aria-disabled]):not(.ellipsis):hover': Object.assign(Object.assign({}, frostedGlassStyle), { background: hoverColor }),
5408
+ })), { '&:not(.ellipsis):focus:focus-visible::before': Object.assign(Object.assign({ content: '""', position: 'absolute' }, getInsetJssStyle(-4)), { border: `${borderWidthBase} solid ${focusColor}`, borderRadius: borderRadiusMedium }), '&[aria-current]': Object.assign(Object.assign({}, disabledCursorStyle), { color: primaryColor, border: `${borderWidthBase} solid ${primaryColor}`, '&:not(.ellipsis):focus::before': getInsetJssStyle(-6) }), '&[aria-disabled]': Object.assign(Object.assign({}, disabledCursorStyle), { color: disabledColor }) }),
5367
5409
  },
5368
5410
  ellipsis: Object.assign(Object.assign({}, disabledCursorStyle), { '&::after': {
5369
5411
  content: '"…"',