@porsche-design-system/components-vue 3.27.0-rc.5 → 3.27.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.
- package/CHANGELOG.md +34 -0
- package/cjs/lib/components/CarouselWrapper.vue.cjs +1 -1
- package/cjs/lib/components/TableWrapper.vue.cjs +1 -1
- package/esm/lib/components/CarouselWrapper.vue.d.ts +8 -3
- package/esm/lib/components/CarouselWrapper.vue.mjs +5 -4
- package/esm/lib/components/TableWrapper.vue.d.ts +13 -2
- package/esm/lib/components/TableWrapper.vue.mjs +14 -12
- package/esm/lib/types.d.ts +13 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,40 @@ 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] - 2025-02-28
|
|
18
|
+
|
|
19
|
+
### [3.27.0-rc.6] - 2025-02-28
|
|
20
|
+
|
|
21
|
+
#### Changed
|
|
22
|
+
|
|
23
|
+
- `Carousel`: Center layout of Carousel on mobile view
|
|
24
|
+
([#3765](https://github.com/porsche-design-system/porsche-design-system/pull/3765))
|
|
25
|
+
- `Carousel`: `auto` value of `slides-per-page` prop is breakpoint customizable
|
|
26
|
+
([#3767](https://github.com/porsche-design-system/porsche-design-system/pull/3767))
|
|
27
|
+
|
|
28
|
+
#### Added
|
|
29
|
+
|
|
30
|
+
- `Table`: `compact` prop to enable a smaller, space-saving version for compact layouts
|
|
31
|
+
([#3758](https://github.com/porsche-design-system/porsche-design-system/pull/3758))
|
|
32
|
+
- `Table`: `layout` prop to render table with `table-layout: fixed` css for manual control of column widths
|
|
33
|
+
([#3758](https://github.com/porsche-design-system/porsche-design-system/pull/3758))
|
|
34
|
+
- `Carousel`: `align-controls` prop to align the controls slot to the left or center (overwrites auto-alignment)
|
|
35
|
+
([#3766](https://github.com/porsche-design-system/porsche-design-system/pull/3766))
|
|
36
|
+
|
|
37
|
+
#### Changed
|
|
38
|
+
|
|
39
|
+
- `Select`, `Multi Select`, `Select Wrapper`:
|
|
40
|
+
- gets rendered on `#top-layer` which enables it to be shown correctly even when used e.g. within a scroll container
|
|
41
|
+
or overflow context ([#3754](https://github.com/porsche-design-system/porsche-design-system/pull/3754))
|
|
42
|
+
- gets positioned by [CSS Anchor Positioning](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_anchor_positioning)
|
|
43
|
+
or [Floating UI](https://floating-ui.com) as fallback for browsers not supporting it yet
|
|
44
|
+
([#3754](https://github.com/porsche-design-system/porsche-design-system/pull/3754))
|
|
45
|
+
- modernized visual appearance, dynamic max-height based on viewport and fade in animation of option list
|
|
46
|
+
([#3754](https://github.com/porsche-design-system/porsche-design-system/pull/3754))
|
|
47
|
+
- `Select`, `Select Wrapper`:
|
|
48
|
+
- focus outline becomes default focus style when no filter is used
|
|
49
|
+
([#3754](https://github.com/porsche-design-system/porsche-design-system/pull/3754))
|
|
50
|
+
|
|
17
51
|
### [3.27.0-rc.5] - 2025-02-20
|
|
18
52
|
|
|
19
53
|
#### 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(
|
|
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<
|
|
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<
|
|
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
|
|
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 = () =>
|
|
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(),
|
|
30
|
+
r(), l(e, "carouselChange", a), l(e, "update", a);
|
|
30
31
|
}), h(r), g(o, (n) => {
|
|
31
|
-
|
|
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
|
-
}>, {
|
|
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
|
|
2
|
-
import { usePrefix as v, themeInjectionKey as w, addEventListenerToElementRef as p, syncProperties as
|
|
3
|
-
const
|
|
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(
|
|
11
|
-
const
|
|
12
|
-
return
|
|
13
|
-
|
|
14
|
-
}),
|
|
15
|
-
|
|
16
|
-
}), (
|
|
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(
|
|
23
|
+
k(o.$slots, "default")
|
|
22
24
|
]),
|
|
23
25
|
_: 3
|
|
24
26
|
}, 512));
|
|
25
27
|
}
|
|
26
28
|
});
|
|
27
29
|
export {
|
|
28
|
-
|
|
30
|
+
T as default
|
|
29
31
|
};
|
package/esm/lib/types.d.ts
CHANGED
|
@@ -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
|
|
3
|
+
"version": "3.27.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.27.0
|
|
20
|
+
"@porsche-design-system/components-js": "3.27.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"ag-grid-enterprise": ">= 33.0.0 <34.0.0",
|