@porsche-design-system/components-vue 3.27.0-rc.4 → 3.27.0-rc.6

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 CHANGED
@@ -14,6 +14,45 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
14
14
 
15
15
  ### [Unreleased]
16
16
 
17
+ ### [3.27.0-rc.6] - 2025-02-28
18
+
19
+ #### Changed
20
+
21
+ - `Carousel`: Center layout of Carousel on mobile view
22
+ ([#3765](https://github.com/porsche-design-system/porsche-design-system/pull/3765))
23
+ - `Carousel`: `auto` value of `slides-per-page` prop is breakpoint customizable
24
+ ([#3767](https://github.com/porsche-design-system/porsche-design-system/pull/3767))
25
+
26
+ #### Added
27
+
28
+ - `Table`: `compact` prop to enable a smaller, space-saving version for compact layouts
29
+ ([#3758](https://github.com/porsche-design-system/porsche-design-system/pull/3758))
30
+ - `Table`: `layout` prop to render table with `table-layout: fixed` css for manual control of column widths
31
+ ([#3758](https://github.com/porsche-design-system/porsche-design-system/pull/3758))
32
+ - `Carousel`: `align-controls` prop to align the controls slot to the left or center (overwrites auto-alignment)
33
+ ([#3766](https://github.com/porsche-design-system/porsche-design-system/pull/3766))
34
+
35
+ #### Changed
36
+
37
+ - `Select`, `Multi Select`, `Select Wrapper`:
38
+ - gets rendered on `#top-layer` which enables it to be shown correctly even when used e.g. within a scroll container
39
+ or overflow context ([#3754](https://github.com/porsche-design-system/porsche-design-system/pull/3754))
40
+ - gets positioned by [CSS Anchor Positioning](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_anchor_positioning)
41
+ or [Floating UI](https://floating-ui.com) as fallback for browsers not supporting it yet
42
+ ([#3754](https://github.com/porsche-design-system/porsche-design-system/pull/3754))
43
+ - modernized visual appearance, dynamic max-height based on viewport and fade in animation of option list
44
+ ([#3754](https://github.com/porsche-design-system/porsche-design-system/pull/3754))
45
+ - `Select`, `Select Wrapper`:
46
+ - focus outline becomes default focus style when no filter is used
47
+ ([#3754](https://github.com/porsche-design-system/porsche-design-system/pull/3754))
48
+
49
+ ### [3.27.0-rc.5] - 2025-02-20
50
+
51
+ #### Fixed
52
+
53
+ - `AG Grid`: error on reload in next.js.
54
+ ([#3759](https://github.com/porsche-design-system/porsche-design-system/pull/3759))
55
+
17
56
  ### [3.27.0-rc.4] - 2025-02-20
18
57
 
19
58
  #### Fixed
@@ -1 +1 @@
1
- "use strict";const e=require("vue"),t=require("../../utils.cjs"),p=e.defineComponent({__name:"CarouselWrapper",props:{activeSlideIndex:{default:0},alignHeader:{default:"start"},aria:{},description:{},disablePagination:{},focusOnCenterSlide:{type:Boolean,default:!1},gradientColor:{default:"none"},heading:{},headingSize:{default:"x-large"},intl:{},pagination:{default:!0},rewind:{type:Boolean,default:!0},skipLinkTarget:{},slidesPerPage:{default:1},theme:{},trimSpace:{type:Boolean,default:!0},width:{default:"basic"},wrapContent:{type:Boolean}},emits:["carouselChange","update"],setup(l,{emit:d}){const u=t.usePrefix("p-carousel"),a=l,n=e.ref(),r=d,s=e.inject(t.themeInjectionKey),i=()=>t.syncProperties(n,{...a,theme:a.theme||s.value});return e.onMounted(()=>{i(),t.addEventListenerToElementRef(n,"carouselChange",r),t.addEventListenerToElementRef(n,"update",r)}),e.onUpdated(i),e.watch(s,o=>{t.syncProperties(n,{theme:a.theme||o})}),(o,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(u)),{ref_key:"pdsComponentRef",ref:n},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},512))}});module.exports=p;
1
+ "use strict";const e=require("vue"),t=require("../../utils.cjs"),p=e.defineComponent({__name:"CarouselWrapper",props:{activeSlideIndex:{default:0},alignControls:{default:"auto"},alignHeader:{default:"start"},aria:{},description:{},disablePagination:{},focusOnCenterSlide:{type:Boolean,default:!1},gradientColor:{default:"none"},heading:{},headingSize:{default:"x-large"},intl:{},pagination:{default:!0},rewind:{type:Boolean,default:!0},skipLinkTarget:{},slidesPerPage:{default:1},theme:{},trimSpace:{type:Boolean,default:!0},width:{default:"basic"},wrapContent:{type:Boolean}},emits:["carouselChange","update"],setup(l,{emit:d}){const u=t.usePrefix("p-carousel"),a=l,n=e.ref(),r=d,s=e.inject(t.themeInjectionKey),i=()=>t.syncProperties(n,{...a,theme:a.theme||s.value});return e.onMounted(()=>{i(),t.addEventListenerToElementRef(n,"carouselChange",r),t.addEventListenerToElementRef(n,"update",r)}),e.onUpdated(i),e.watch(s,o=>{t.syncProperties(n,{theme:a.theme||o})}),(o,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(u)),{ref_key:"pdsComponentRef",ref:n},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default")]),_:3},512))}});module.exports=p;
@@ -1 +1 @@
1
- "use strict";const e=require("vue"),t=require("../../utils.cjs"),u=e.defineComponent({__name:"TableWrapper",props:{caption:{},theme:{}},emits:["sortingChange","update"],setup(a,{emit:i}){const m=t.usePrefix("p-table"),o=a,n=e.ref(),r=i,c=e.inject(t.themeInjectionKey),p=()=>t.syncProperties(n,{...o,theme:o.theme||c.value});return e.onMounted(()=>{p(),t.addEventListenerToElementRef(n,"sortingChange",r),t.addEventListenerToElementRef(n,"update",r)}),e.onUpdated(p),e.watch(c,s=>{t.syncProperties(n,{theme:o.theme||s})}),(s,d)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(m)),{ref_key:"pdsComponentRef",ref:n},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},512))}});module.exports=u;
1
+ "use strict";const e=require("vue"),t=require("../../utils.cjs"),u=e.defineComponent({__name:"TableWrapper",props:{caption:{},compact:{type:Boolean,default:!1},layout:{default:"auto"},theme:{}},emits:["sortingChange","update"],setup(p,{emit:i}){const m=t.usePrefix("p-table"),o=p,n=e.ref(),r=i,a=e.inject(t.themeInjectionKey),c=()=>t.syncProperties(n,{...o,theme:o.theme||a.value});return e.onMounted(()=>{c(),t.addEventListenerToElementRef(n,"sortingChange",r),t.addEventListenerToElementRef(n,"update",r)}),e.onUpdated(c),e.watch(a,s=>{t.syncProperties(n,{theme:o.theme||s})}),(s,l)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(m)),{ref_key:"pdsComponentRef",ref:n},{default:e.withCtx(()=>[e.renderSlot(s.$slots,"default")]),_:3},512))}});module.exports=u;
@@ -1,9 +1,13 @@
1
- import type { CarouselAlignHeader, SelectedAriaAttributes, CarouselAriaAttribute, BreakpointCustomizable, CarouselGradientColor, CarouselHeadingSize, CarouselInternationalization, Theme, CarouselWidth } from '../types';
1
+ import type { CarouselAlignControls, CarouselAlignHeader, SelectedAriaAttributes, CarouselAriaAttribute, BreakpointCustomizable, CarouselGradientColor, CarouselHeadingSize, CarouselInternationalization, CarouselSlidesPerPage, Theme, CarouselWidth } from '../types';
2
2
  type PCarouselProps = {
3
3
  /**
4
4
  * Defines which slide to be active (zero-based numbering).
5
5
  */
6
6
  activeSlideIndex?: number;
7
+ /**
8
+ * Alignment of slotted controls
9
+ */
10
+ alignControls?: CarouselAlignControls;
7
11
  /**
8
12
  * Alignment of heading and description
9
13
  */
@@ -55,7 +59,7 @@ type PCarouselProps = {
55
59
  /**
56
60
  * Sets the amount of slides visible at the same time. Can be set to `auto` if you want to define different widths per slide via CSS.
57
61
  */
58
- slidesPerPage?: BreakpointCustomizable<number> | "auto";
62
+ slidesPerPage?: BreakpointCustomizable<CarouselSlidesPerPage>;
59
63
  /**
60
64
  * Adapts the color when used on dark background.
61
65
  */
@@ -86,13 +90,14 @@ declare const __VLS_component: import("vue").DefineComponent<PCarouselProps, {},
86
90
  }>, {
87
91
  width: CarouselWidth;
88
92
  activeSlideIndex: number;
93
+ alignControls: CarouselAlignControls;
89
94
  alignHeader: CarouselAlignHeader;
90
95
  focusOnCenterSlide: boolean;
91
96
  gradientColor: CarouselGradientColor;
92
97
  headingSize: CarouselHeadingSize;
93
98
  pagination: BreakpointCustomizable<boolean>;
94
99
  rewind: boolean;
95
- slidesPerPage: BreakpointCustomizable<number> | "auto";
100
+ slidesPerPage: BreakpointCustomizable<CarouselSlidesPerPage>;
96
101
  trimSpace: boolean;
97
102
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
98
103
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
@@ -1,9 +1,10 @@
1
1
  import { defineComponent as u, ref as f, inject as c, onMounted as m, onUpdated as h, watch as g, openBlock as C, createBlock as y, resolveDynamicComponent as _, unref as w, withCtx as B, renderSlot as P } from "vue";
2
- import { usePrefix as k, themeInjectionKey as x, addEventListenerToElementRef as i, syncProperties as l } from "../../utils.mjs";
2
+ import { usePrefix as k, themeInjectionKey as x, addEventListenerToElementRef as l, syncProperties as i } from "../../utils.mjs";
3
3
  const b = /* @__PURE__ */ u({
4
4
  __name: "CarouselWrapper",
5
5
  props: {
6
6
  activeSlideIndex: { default: 0 },
7
+ alignControls: { default: "auto" },
7
8
  alignHeader: { default: "start" },
8
9
  aria: {},
9
10
  description: {},
@@ -24,11 +25,11 @@ const b = /* @__PURE__ */ u({
24
25
  },
25
26
  emits: ["carouselChange", "update"],
26
27
  setup(s, { emit: d }) {
27
- const p = k("p-carousel"), t = s, e = f(), a = d, o = c(x), r = () => l(e, { ...t, theme: t.theme || o.value });
28
+ const p = k("p-carousel"), t = s, e = f(), a = d, o = c(x), r = () => i(e, { ...t, theme: t.theme || o.value });
28
29
  return m(() => {
29
- r(), i(e, "carouselChange", a), i(e, "update", a);
30
+ r(), l(e, "carouselChange", a), l(e, "update", a);
30
31
  }), h(r), g(o, (n) => {
31
- l(e, { theme: t.theme || n });
32
+ i(e, { theme: t.theme || n });
32
33
  }), (n, S) => (C(), y(_(w(p)), {
33
34
  ref_key: "pdsComponentRef",
34
35
  ref: e
@@ -1,9 +1,17 @@
1
- import type { Theme } from '../types';
1
+ import type { TableLayout, Theme } from '../types';
2
2
  type PTableProps = {
3
3
  /**
4
4
  * A caption describing the contents of the table for accessibility only. This won't be visible in the browser. Use an element with an attribute of `slot="caption"` for a visible caption.
5
5
  */
6
6
  caption?: string;
7
+ /**
8
+ * Displays as compact version.
9
+ */
10
+ compact?: boolean;
11
+ /**
12
+ * Controls the layout behavior of the table.
13
+ */
14
+ layout?: TableLayout;
7
15
  /**
8
16
  * Adapts the color when used on dark background.
9
17
  */
@@ -18,7 +26,10 @@ declare const __VLS_component: import("vue").DefineComponent<PTableProps, {}, {}
18
26
  }, string, import("vue").PublicProps, Readonly<PTableProps> & Readonly<{
19
27
  onUpdate?: ((value: import("../types").TableHeadCellSort) => any) | undefined;
20
28
  onSortingChange?: ((value: import("../types").TableHeadCellSort) => any) | undefined;
21
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ }>, {
30
+ compact: boolean;
31
+ layout: TableLayout;
32
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
33
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
23
34
  export default _default;
24
35
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -1,29 +1,31 @@
1
- import { defineComponent as f, ref as d, inject as h, onMounted as l, onUpdated as u, watch as C, openBlock as _, createBlock as g, resolveDynamicComponent as y, unref as R, withCtx as b, renderSlot as k } from "vue";
2
- import { usePrefix as v, themeInjectionKey as w, addEventListenerToElementRef as p, syncProperties as m } from "../../utils.mjs";
3
- const j = /* @__PURE__ */ f({
1
+ import { defineComponent as i, ref as l, inject as d, onMounted as u, onUpdated as h, watch as C, openBlock as y, createBlock as _, resolveDynamicComponent as g, unref as R, withCtx as b, renderSlot as k } from "vue";
2
+ import { usePrefix as v, themeInjectionKey as w, addEventListenerToElementRef as p, syncProperties as s } from "../../utils.mjs";
3
+ const T = /* @__PURE__ */ i({
4
4
  __name: "TableWrapper",
5
5
  props: {
6
6
  caption: {},
7
+ compact: { type: Boolean, default: !1 },
8
+ layout: { default: "auto" },
7
9
  theme: {}
8
10
  },
9
11
  emits: ["sortingChange", "update"],
10
- setup(a, { emit: c }) {
11
- const i = v("p-table"), t = a, e = d(), o = c, r = h(w), s = () => m(e, { ...t, theme: t.theme || r.value });
12
- return l(() => {
13
- s(), p(e, "sortingChange", o), p(e, "update", o);
14
- }), u(s), C(r, (n) => {
15
- m(e, { theme: t.theme || n });
16
- }), (n, x) => (_(), g(y(R(i)), {
12
+ setup(m, { emit: c }) {
13
+ const f = v("p-table"), t = m, e = l(), n = c, a = d(w), r = () => s(e, { ...t, theme: t.theme || a.value });
14
+ return u(() => {
15
+ r(), p(e, "sortingChange", n), p(e, "update", n);
16
+ }), h(r), C(a, (o) => {
17
+ s(e, { theme: t.theme || o });
18
+ }), (o, x) => (y(), _(g(R(f)), {
17
19
  ref_key: "pdsComponentRef",
18
20
  ref: e
19
21
  }, {
20
22
  default: b(() => [
21
- k(n.$slots, "default")
23
+ k(o.$slots, "default")
22
24
  ]),
23
25
  _: 3
24
26
  }, 512));
25
27
  }
26
28
  });
27
29
  export {
28
- j as default
30
+ T as default
29
31
  };
@@ -767,6 +767,8 @@ declare const CAROUSEL_WIDTHS: readonly [
767
767
  "extended"
768
768
  ];
769
769
  export type CarouselWidth = (typeof CAROUSEL_WIDTHS)[number];
770
+ declare const CAROUSEL_SLIDES_PER_PAGE: (string | number)[];
771
+ export type CarouselSlidesPerPage = (typeof CAROUSEL_SLIDES_PER_PAGE)[number];
770
772
  declare const CAROUSEL_GRADIENT_COLORS: readonly [
771
773
  "background-base",
772
774
  "background-surface",
@@ -791,6 +793,12 @@ export type CarouselUpdateEvent = {
791
793
  previousIndex: number;
792
794
  };
793
795
  export type CarouselUpdateEventDetail = CarouselUpdateEvent;
796
+ declare const CAROUSEL_ALIGN_CONTROLS: readonly [
797
+ "start",
798
+ "center",
799
+ "auto"
800
+ ];
801
+ export type CarouselAlignControls = (typeof CAROUSEL_ALIGN_CONTROLS)[number];
794
802
  export type CheckboxState = FormState;
795
803
  export type CheckboxUpdateEventDetail = {
796
804
  name: string;
@@ -1357,6 +1365,11 @@ export type SwitchUpdateEvent = {
1357
1365
  };
1358
1366
  export type SwitchUpdateEventDetail = SwitchUpdateEvent;
1359
1367
  export type Direction = "asc" | "desc";
1368
+ declare const TABLE_LAYOUTS: readonly [
1369
+ "auto",
1370
+ "fixed"
1371
+ ];
1372
+ export type TableLayout = (typeof TABLE_LAYOUTS)[number];
1360
1373
  export type TableHeadCellSort = {
1361
1374
  id: string;
1362
1375
  active?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@porsche-design-system/components-vue",
3
- "version": "3.27.0-rc.4",
3
+ "version": "3.27.0-rc.6",
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.27.0-rc.4"
20
+ "@porsche-design-system/components-js": "3.27.0-rc.6"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "ag-grid-enterprise": ">= 33.0.0 <34.0.0",