@porsche-design-system/components-vue 3.17.0 → 3.18.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.
package/CHANGELOG.md CHANGED
@@ -14,6 +14,42 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
14
14
 
15
15
  ### [Unreleased]
16
16
 
17
+ ### [3.18.0-rc.0] - 2024-08-21
18
+
19
+ #### Added
20
+
21
+ - `Button Tile`, `Link Tile`, `Link Tile Model Signature`: supports `<video/>` (the tile components automatically check
22
+ for OS reduced motion setting to decide weather the video autoplay should be prevented or not to improve accessibility
23
+ & UX) ([#3454](https://github.com/porsche-design-system/porsche-design-system/pull/3454))
24
+ - Extend deprecation console warnings by reference to causing DOM element
25
+ ([#3439](https://github.com/porsche-design-system/porsche-design-system/pull/3439))
26
+ - `Textarea`: ([#3443](https://github.com/porsche-design-system/porsche-design-system/pull/3443))
27
+
28
+ #### Changed
29
+
30
+ - Partials: `getInitialStyles` uses CSS `:defined` to determine the visibility of web components, as well as
31
+ `[data-ssr]` attribute instead of `.ssr` class for Next JS and Remix
32
+ ([#3466](https://github.com/porsche-design-system/porsche-design-system/pull/3466))
33
+ - Components: Use `:defined` & `[data-ssr]` to handle visibility of nested elements within Shadow DOM
34
+ ([#3470](https://github.com/porsche-design-system/porsche-design-system/pull/3470))
35
+ - `Button`, `Link`: spacings adjusted for `compact` mode
36
+ - `Banner`, `Flyout`, `Inline Notification`, `Modal`, `Scroller`, `Toast`: button style
37
+ ([#3435](https://github.com/porsche-design-system/porsche-design-system/pull/3435))
38
+ - `Select`: added `display: block` to host in order to be consistent with other form components
39
+ ([#3462](https://github.com/porsche-design-system/porsche-design-system/pull/3462))
40
+
41
+ #### Fixed
42
+
43
+ - `Select`, `Multi-Select`: programmatic focus
44
+ ([#3462](https://github.com/porsche-design-system/porsche-design-system/pull/3462))
45
+ - `Button Tile`, `Link Tile`, `Link Tile Model Signature`: correct image position if custom css `position: absolute` is
46
+ used on media element ([#3446](https://github.com/porsche-design-system/porsche-design-system/pull/3446))
47
+ - `Button`, `Link`: Safari rendering issue of `backdrop-filter` on border in variant `ghost`
48
+ ([#3435](https://github.com/porsche-design-system/porsche-design-system/pull/3435))
49
+ - `Select`, `Select Wrapper`, `Multi Select`, `Textfield Wrapper`: `text-overflow` has now ellipsis behaviour and
50
+ `min-width` is added to prevent text overlapping
51
+ ([#3465](https://github.com/porsche-design-system/porsche-design-system/pull/3465))
52
+
17
53
  ### [3.17.0] - 2024-08-01
18
54
 
19
55
  ### [3.17.0-rc.2] - 2024-08-01
@@ -2112,7 +2148,7 @@ to the new values since those ones will be removed with next major version.
2112
2148
  - Validation to ensure crucial partials are used.
2113
2149
  **Disclaimer:** The Porsche Design System will **not** inject its initial styles anymore. Please use the
2114
2150
  `getInitialStyles()` partial to reduce flash of unstyled content (FOUC) as described here:
2115
- [getInitialStyles() documentation](https://designsystem.porsche.com/latest/partials/initial-styles)
2151
+ [getInitialStyles() documentation](https://designsystem.porsche.com/v2/partials/initial-styles)
2116
2152
 
2117
2153
  #### Changed
2118
2154
 
@@ -2147,7 +2183,7 @@ to the new values since those ones will be removed with next major version.
2147
2183
 
2148
2184
  **Important:** make sure to apply the new `getDSRPonyfill()` partial right before your closing `</body>` tag. More
2149
2185
  information can be found here:
2150
- [getDSRPonyfill() documentation](https://designsystem.porsche.com/latest/partials/dsr-ponyfill)
2186
+ [getDSRPonyfill() documentation](https://designsystem.porsche.com/v2/partials/dsr-ponyfill)
2151
2187
 
2152
2188
  ```diff
2153
2189
  - import { PorscheDesignSystemProvider, PButton, ... } from '@porsche-design-system/components-react';
@@ -2884,31 +2920,31 @@ guidelines.
2884
2920
 
2885
2921
  ## General changes / improvements:
2886
2922
 
2887
- #### All components, icons, fonts, styles and marque of the Porsche Design System are loaded versioned and chunked from a central CDN
2923
+ ### All components, icons, fonts, styles and marque of the Porsche Design System are loaded versioned and chunked from a central CDN
2888
2924
 
2889
2925
  This way all web based digital Porsche products share and use the cached and versioned assets regardless of the JS
2890
2926
  framework used to improve loading performance across the Porsche group. Only a tiny (1.4kb sized) Porsche Design System
2891
2927
  loader script gets bundled into your application code. Everything else gets loaded versioned, cached and chunked from a
2892
- central CDN ([read more](https://designsystem.porsche.com/latest/performance/cdn)). However, this also means that you
2893
- will need an **Internet connection** to render the components in a browser (possibly relevant for development stage or
2894
- intranet applications).
2928
+ central CDN ([read more](https://designsystem.porsche.com/v3/must-know/performance/cdn)). However, this also means that
2929
+ you will need an **Internet connection** to render the components in a browser (possibly relevant for development stage
2930
+ or intranet applications).
2895
2931
 
2896
- #### Enabling Micro Frontend Architecture
2932
+ ### Enabling Micro Frontend Architecture
2897
2933
 
2898
2934
  In case of a micro-frontend architecture, multiple instances and versions of the Porsche Design System can be combined
2899
2935
  in a final application by configurable prefixing technique of the Porsche Design System components during runtime.
2900
2936
  Please refer to our framework specific guidelines
2901
- [Vanilla JS](https://designsystem.porsche.com/latest/start-coding/vanilla-js),
2902
- [Angular](https://designsystem.porsche.com/latest/start-coding/angular) and
2903
- [React](https://designsystem.porsche.com/latest/start-coding/react).
2937
+ [Vanilla JS](https://designsystem.porsche.com/v2/start-coding/vanilla-js),
2938
+ [Angular](https://designsystem.porsche.com/v2/start-coding/angular) and
2939
+ [React](https://designsystem.porsche.com/v2/start-coding/react).
2904
2940
 
2905
- #### Prevent Flash of Unstyled Content (FOUC) and Flash of Unstyled Text (FOUT)
2941
+ ### Prevent Flash of Unstyled Content (FOUC) and Flash of Unstyled Text (FOUT)
2906
2942
 
2907
2943
  To prevent FOUC/FOUT, the Porsche Design System offers various partials as part of the
2908
2944
  `@porsche-design-system/components-{js|angular|react}` package to ensure all necessary Porsche Design System fonts and
2909
2945
  components are fully loaded. If you've used the `@porsche-design-system/partials` package previously, stop using it and
2910
2946
  replace the integration with the partials provided by `@porsche-design-system/components-{js|angular|react}` package.
2911
- Have a look at our [FOUC/FOUT guidelines](https://designsystem.porsche.com/latest/performance/loading-behaviour).
2947
+ Have a look at our [FOUC/FOUT guidelines](https://designsystem.porsche.com/v3/must-know/performance/loading-behaviour).
2912
2948
 
2913
2949
  ```diff
2914
2950
  - <%= require('@porsche-design-system/partials').getPorscheDesignSystemCoreStyles() %>
@@ -2921,14 +2957,14 @@ Have a look at our [FOUC/FOUT guidelines](https://designsystem.porsche.com/lates
2921
2957
  + <%= require('@porsche-design-system/components-{js|angular|react}/partials').getFontLinks({ weights: ['regular', 'semi-bold'] }) %>
2922
2958
  ```
2923
2959
 
2924
- #### Added support for China CDN
2960
+ ### Added support for China CDN
2925
2961
 
2926
2962
  Our CDN is configured to forward requests to Chinese CDN automatically when necessary. So you're good to go without any
2927
2963
  configuration or multiple region specific builds of your application. However, if you are aiming for the maximum
2928
2964
  possible performance in China, you can configure which CDN the Porsche Design System must use. Please follow our
2929
- [CDN guidelines](https://designsystem.porsche.com/latest/performance/cdn) for more information.
2965
+ [CDN guidelines](https://designsystem.porsche.com/v3/must-know/performance/cdn) for more information.
2930
2966
 
2931
- #### New/optimized components
2967
+ ### New/optimized components
2932
2968
 
2933
2969
  - **Tabs**
2934
2970
  - **Tabs Bar**
@@ -2945,43 +2981,43 @@ possible performance in China, you can configure which CDN the Porsche Design Sy
2945
2981
  - Checkbox
2946
2982
  - Radio Button
2947
2983
 
2948
- #### Improved TypeScript support for Angular and React
2984
+ ### Improved TypeScript support for Angular and React
2949
2985
 
2950
2986
  To ensure the best possible typing support, we have refactored our Angular and React wrappers which integrate the native
2951
2987
  web components of the Porsche Design System.
2952
2988
 
2953
- #### componentsReady() works reliable
2989
+ ### componentsReady() works reliable
2954
2990
 
2955
2991
  Because the Porsche Design System components get loaded async at the time they are needed, it might be relevant within
2956
2992
  your application or test automation to know when those have been initialized. Therefore, we provide in all three
2957
2993
  `@porsche-design-system/components-{js|angular|react}')` packages a reliable helper function `componentsReady()`.
2958
- [Read more about it](https://designsystem.porsche.com/latest/helpers/components-ready).
2994
+ [Read more about it](https://designsystem.porsche.com/v3/developing/components-ready).
2959
2995
 
2960
- #### Removed "blur on focus"
2996
+ ### Removed "blur on focus"
2961
2997
 
2962
2998
  Now focus styling is only applied when you navigate through keyboard and ignored by mouse interaction for browsers
2963
2999
  supporting `:focus-visible` otherwise it will fallback to `:focus` CSS implementation.
2964
3000
 
2965
- #### Changed focus styling for a better compromise between accessibility and visual appearance
3001
+ ### Changed focus styling for a better compromise between accessibility and visual appearance
2966
3002
 
2967
3003
  Color and outline of general focus styling has changed to `currentColor` for light/dark theme with an outline of 1px
2968
3004
  width/offset. If you have custom components build with the usage of our `@porsche-design-system/utilities` package then
2969
3005
  update it to the latest version.
2970
3006
 
2971
- #### Improved geometry of Porsche Next font
3007
+ ### Improved geometry of Porsche Next font
2972
3008
 
2973
3009
  For better alignment and readability we've changed the geometry of the Porsche Next font which results in a visual
2974
3010
  change of font size and spacing.
2975
3011
 
2976
- #### Dropped support for IE11 and EdgeHTML according to Porsche's official browser strategy 2021
3012
+ ### Dropped support for IE11 and EdgeHTML according to Porsche's official browser strategy 2021
2977
3013
 
2978
3014
  If you still need to support these browsers, you have to stick to `v1.5.x`. We offer a Browser Notification package
2979
3015
  `@porsche-design-system/browser-notification` to alert users that these browsers are no longer supported. It supports a
2980
3016
  blocking layer (to be used with Porsche Design System `v2.x`), or a dismissible banner (to be used with Porsche Design
2981
3017
  System `v1.x`). Please refer to our
2982
- [Browser compatibility guidelines](https://designsystem.porsche.com/latest/help/browser-compatibility).
3018
+ [Browser compatibility guidelines](https://designsystem.porsche.com/v3/must-know/browser-compatibility).
2983
3019
 
2984
- #### Changed default type of Button and Button Pure
3020
+ ### Changed default type of Button and Button Pure
2985
3021
 
2986
3022
  To be in sync with native `<button>` behavior we've changed the default `type` of **Button** and **Button Pure**
2987
3023
  component. Those components will render a button within their Shadow DOM as `<button type="submit">` ( previously
@@ -2992,7 +3028,7 @@ component. Those components will render a button within their Shadow DOM as `<bu
2992
3028
  - `button`: The button has no default behavior, and does nothing when pressed by default. It can have client-side
2993
3029
  scripts listen to the element's events, which are triggered when the events occur.
2994
3030
 
2995
- #### Changed support for wrapped links around Link, Link Pure and Link Social component
3031
+ ### Changed support for wrapped links around Link, Link Pure and Link Social component
2996
3032
 
2997
3033
  Due to the support for setting links (`<a href="#">`) in our **Link**, **Link Pure** and **Link Social** components as
2998
3034
  child, we've removed support for styling the anchor tag (`<a>`) when it surrounds the component. So we recommend
@@ -3009,7 +3045,7 @@ changing the position of the `<a>` tag from wrapping the component to a direct s
3009
3045
  + <p-link-social><a href="#">Some label</a></p-link-social>
3010
3046
  ```
3011
3047
 
3012
- #### Automatic \* asterisk symbol to form field labels
3048
+ ### Automatic \* asterisk symbol to form field labels
3013
3049
 
3014
3050
  We added an automatic generated _ asterisk symbol to form field labels which have the required attribute. This might
3015
3051
  lead to a doubled _ symbol if you set one by yourself.
@@ -3034,7 +3070,7 @@ lead to a doubled _ symbol if you set one by yourself.
3034
3070
  + <p-select-wrapper label="Some label"><select name="some-name" required><option>A</option></select></p-select-wrapper>
3035
3071
  ```
3036
3072
 
3037
- #### Shadow DOM
3073
+ ### Shadow DOM
3038
3074
 
3039
3075
  `Flex`, `Flex Item`, `Grid` and `Grid Item` now use Shadow DOM, thus you are not able to overwrite styles defined by
3040
3076
  these components any longer.
@@ -3043,18 +3079,18 @@ these components any longer.
3043
3079
 
3044
3080
  ## Angular
3045
3081
 
3046
- #### Integration of Angular components
3082
+ ### Integration of Angular components
3047
3083
 
3048
3084
  In the past it was possible to provide a token called `PREVENT_WEB_COMPONENTS_REGISTRATION` which prevented the
3049
3085
  registration of the Porsche Design System components and loading of polyfills. Due to the fact that we no longer provide
3050
3086
  / need poly filling, we have completely removed the token. For advanced usage please
3051
- [read further](https://designsystem.porsche.com/latest/start-coding/angular).
3087
+ [read further](https://designsystem.porsche.com/v2/start-coding/angular).
3052
3088
 
3053
3089
  ---
3054
3090
 
3055
3091
  ## React
3056
3092
 
3057
- #### Integration of React components
3093
+ ### Integration of React components
3058
3094
 
3059
3095
  In the past `@porsche-design-system/components-react` components have initialized the **Porsche Design System Loader**
3060
3096
  automatically as soon as a component was imported. With `v2.x` you have to import the `PorscheDesignSystemProvider` once
@@ -3077,7 +3113,7 @@ in your `index.tsx` which then initializes the **Porsche Design System Loader**,
3077
3113
  );
3078
3114
  ```
3079
3115
 
3080
- For advanced usage please [read further](https://designsystem.porsche.com/latest/start-coding/react).
3116
+ For advanced usage please [read further](https://designsystem.porsche.com/v2/start-coding/react).
3081
3117
 
3082
3118
  #### Jsdom Polyfill for React / Jest / jsdom test automation
3083
3119
 
@@ -3085,13 +3121,13 @@ We removed test mocks for React / Jest / jsdom as Shadow DOM is supported since
3085
3121
  Jsdom Polyfill (exclusivly for `@porsche-design-system/components-react` package) fixing missing implementation of jsdom
3086
3122
  which the Porsche Design System relies on. **Note:** If your test includes Porsche Design System components, make sure
3087
3123
  to wrap the component you want to test with a PorscheDesignSystemProvider in order to avoid exceptions. For more
3088
- information please [read further](https://designsystem.porsche.com/latest/start-coding/react).
3124
+ information please [read further](https://designsystem.porsche.com/v2/start-coding/react).
3089
3125
 
3090
3126
  ---
3091
3127
 
3092
3128
  ## Vanilla JS
3093
3129
 
3094
- #### Integration of Vanilla JS components
3130
+ ### Integration of Vanilla JS components
3095
3131
 
3096
3132
  With `v1.x` of the Porsche Design System you've had to copy all needed JS files of
3097
3133
  `@porsche-design-system/components-js` into your target directory and include the ES5 and ESM loader snippet. Now you
@@ -3117,7 +3153,7 @@ only need to copy one `index.js` file and initialize the Porsche Design System l
3117
3153
  </html>
3118
3154
  ```
3119
3155
 
3120
- For advanced usage please [read further](https://designsystem.porsche.com/latest/start-coding/vanilla-js).
3156
+ For advanced usage please [read further](https://designsystem.porsche.com/v2/start-coding/vanilla-js).
3121
3157
 
3122
3158
  ---
3123
3159
 
@@ -3165,7 +3201,7 @@ For advanced usage please [read further](https://designsystem.porsche.com/latest
3165
3201
 
3166
3202
  - `Tabs Bar` has a new default `activeTabIndex`, which is `undefined`
3167
3203
  - `Tabs Bar` does not work by itself anymore. The `activeTabIndex` needs to be controlled from the outside
3168
- ([read more](https://designsystem.porsche.com/latest/components/tabs-bar/examples))
3204
+ ([read more](https://designsystem.porsche.com/v2/components/tabs-bar/examples))
3169
3205
  - Background Color of `Select Wrapper` in `dark` theme to meet accessibility criteria
3170
3206
 
3171
3207
  ### [2.0.0-rc.7] - 2021-03-15
@@ -0,0 +1 @@
1
+ "use strict";const e=require("vue"),t=require("../../utils.cjs"),p=e.defineComponent({__name:"TextareaWrapper",props:{autoComplete:{default:""},description:{default:""},disabled:{type:Boolean,default:!1},form:{},hideLabel:{default:!1},label:{default:""},maxLength:{},message:{default:""},minLength:{},name:{},placeholder:{default:""},readOnly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},resize:{default:"vertical"},rows:{default:7},showCounter:{type:Boolean,default:!0},spellCheck:{type:Boolean},state:{default:"none"},theme:{},value:{default:""},wrap:{default:"soft"}},emits:["blur","change","input"],setup(u,{emit:d}){const f=t.usePrefix("p-textarea"),a=u,n=e.ref(),o=d,l=e.inject(t.themeInjectionKey),r=()=>t.syncProperties(n,{...a,theme:a.theme||l.value});return e.onMounted(()=>{r(),t.addEventListenerToElementRef(n,"blur",o),t.addEventListenerToElementRef(n,"change",o),t.addEventListenerToElementRef(n,"input",o)}),e.onUpdated(r),e.watch(l,s=>{t.syncProperties(n,{theme:a.theme||s})}),(s,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(f)),{ref_key:"pdsComponentRef",ref:n},null,512))}});module.exports=p;
@@ -0,0 +1 @@
1
+ "use strict";const e=require("./TextareaWrapper.vue.cjs");module.exports=e;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("@porsche-design-system/components-js"),t=require("./lib/components/AccordionWrapper.vue.cjs"),_=require("./lib/components/BannerWrapper.vue.cjs"),u=require("./lib/components/ButtonWrapper.vue.cjs"),p=require("./lib/components/ButtonGroupWrapper.vue.cjs"),s=require("./lib/components/ButtonPureWrapper.vue.cjs"),i=require("./lib/components/ButtonTileWrapper.vue.cjs"),a=require("./lib/components/CanvasWrapper.vue.cjs"),n=require("./lib/components/CarouselWrapper.vue.cjs"),c=require("./lib/components/CheckboxWrapperWrapper.vue.cjs"),o=require("./lib/components/ContentWrapperWrapper.vue.cjs"),l=require("./lib/components/CrestWrapper.vue.cjs"),v=require("./lib/components/DisplayWrapper.vue.cjs"),g=require("./lib/components/DividerWrapper.vue.cjs"),P=require("./lib/components/FieldsetWrapper.vue.cjs"),y=require("./lib/components/FieldsetWrapperWrapper.vue.cjs"),W=require("./lib/components/FlexWrapper.vue.cjs"),q=require("./lib/components/FlexItemWrapper.vue.cjs"),d=require("./lib/components/FlyoutWrapper.vue.cjs"),T=require("./lib/components/FlyoutMultilevelWrapper.vue.cjs"),S=require("./lib/components/FlyoutMultilevelItemWrapper.vue.cjs"),m=require("./lib/components/GridWrapper.vue.cjs"),b=require("./lib/components/GridItemWrapper.vue.cjs"),C=require("./lib/components/HeadingWrapper.vue.cjs"),M=require("./lib/components/HeadlineWrapper.vue.cjs"),I=require("./lib/components/IconWrapper.vue.cjs"),k=require("./lib/components/InlineNotificationWrapper.vue.cjs"),x=require("./lib/components/LinkWrapper.vue.cjs"),B=require("./lib/components/LinkPureWrapper.vue.cjs"),F=require("./lib/components/LinkSocialWrapper.vue.cjs"),L=require("./lib/components/LinkTileWrapper.vue.cjs"),H=require("./lib/components/LinkTileModelSignatureWrapper.vue.cjs"),D=require("./lib/components/LinkTileProductWrapper.vue.cjs"),h=require("./lib/components/MarqueWrapper.vue.cjs"),O=require("./lib/components/ModalWrapper.vue.cjs"),R=require("./lib/components/ModelSignatureWrapper.vue.cjs"),w=require("./lib/components/MultiSelectWrapper.vue.cjs"),G=require("./lib/components/MultiSelectOptionWrapper.vue.cjs"),f=require("./lib/components/OptgroupWrapper.vue.cjs"),z=require("./lib/components/PaginationWrapper.vue.cjs"),j=require("./lib/components/PinCodeWrapper.vue.cjs"),A=require("./lib/components/PopoverWrapper.vue.cjs"),N=require("./lib/components/RadioButtonWrapperWrapper.vue.cjs"),J=require("./lib/components/ScrollerWrapper.vue.cjs"),E=require("./lib/components/SegmentedControlWrapper.vue.cjs"),K=require("./lib/components/SegmentedControlItemWrapper.vue.cjs"),Q=require("./lib/components/SelectWrapper.vue.cjs"),U=require("./lib/components/SelectOptionWrapper.vue.cjs"),V=require("./lib/components/SelectWrapperWrapper.vue.cjs"),X=require("./lib/components/SpinnerWrapper.vue.cjs"),Y=require("./lib/components/StepperHorizontalWrapper.vue.cjs"),Z=require("./lib/components/StepperHorizontalItemWrapper.vue.cjs"),$=require("./lib/components/SwitchWrapper.vue.cjs"),ee=require("./lib/components/TableWrapper.vue.cjs"),re=require("./lib/components/TableBodyWrapper.vue.cjs"),te=require("./lib/components/TableCellWrapper.vue.cjs"),_e=require("./lib/components/TableHeadWrapper.vue.cjs"),ue=require("./lib/components/TableHeadCellWrapper.vue.cjs"),pe=require("./lib/components/TableHeadRowWrapper.vue.cjs"),se=require("./lib/components/TableRowWrapper.vue.cjs"),ie=require("./lib/components/TabsWrapper.vue.cjs"),ae=require("./lib/components/TabsBarWrapper.vue.cjs"),ne=require("./lib/components/TabsItemWrapper.vue.cjs"),ce=require("./lib/components/TagWrapper.vue.cjs"),oe=require("./lib/components/TagDismissibleWrapper.vue.cjs"),le=require("./lib/components/TextWrapper.vue.cjs"),ve=require("./lib/components/TextFieldWrapperWrapper.vue.cjs"),ge=require("./lib/components/TextListWrapper.vue.cjs"),Pe=require("./lib/components/TextListItemWrapper.vue.cjs"),ye=require("./lib/components/TextareaWrapperWrapper.vue.cjs"),We=require("./lib/components/ToastWrapper.vue.cjs"),qe=require("./lib/components/WordmarkWrapper.vue.cjs"),de=require("./utils.cjs"),Te=require("./PorscheDesignSystemProvider.vue.cjs"),e=require("./plugin.cjs");Object.defineProperty(exports,"componentsReady",{enumerable:!0,get:()=>r.componentsReady});exports.PAccordion=t;exports.PBanner=_;exports.PButton=u;exports.PButtonGroup=p;exports.PButtonPure=s;exports.PButtonTile=i;exports.PCanvas=a;exports.PCarousel=n;exports.PCheckboxWrapper=c;exports.PContentWrapper=o;exports.PCrest=l;exports.PDisplay=v;exports.PDivider=g;exports.PFieldset=P;exports.PFieldsetWrapper=y;exports.PFlex=W;exports.PFlexItem=q;exports.PFlyout=d;exports.PFlyoutMultilevel=T;exports.PFlyoutMultilevelItem=S;exports.PGrid=m;exports.PGridItem=b;exports.PHeading=C;exports.PHeadline=M;exports.PIcon=I;exports.PInlineNotification=k;exports.PLink=x;exports.PLinkPure=B;exports.PLinkSocial=F;exports.PLinkTile=L;exports.PLinkTileModelSignature=H;exports.PLinkTileProduct=D;exports.PMarque=h;exports.PModal=O;exports.PModelSignature=R;exports.PMultiSelect=w;exports.PMultiSelectOption=G;exports.POptgroup=f;exports.PPagination=z;exports.PPinCode=j;exports.PPopover=A;exports.PRadioButtonWrapper=N;exports.PScroller=J;exports.PSegmentedControl=E;exports.PSegmentedControlItem=K;exports.PSelect=Q;exports.PSelectOption=U;exports.PSelectWrapper=V;exports.PSpinner=X;exports.PStepperHorizontal=Y;exports.PStepperHorizontalItem=Z;exports.PSwitch=$;exports.PTable=ee;exports.PTableBody=re;exports.PTableCell=te;exports.PTableHead=_e;exports.PTableHeadCell=ue;exports.PTableHeadRow=pe;exports.PTableRow=se;exports.PTabs=ie;exports.PTabsBar=ae;exports.PTabsItem=ne;exports.PTag=ce;exports.PTagDismissible=oe;exports.PText=le;exports.PTextFieldWrapper=ve;exports.PTextList=ge;exports.PTextListItem=Pe;exports.PTextareaWrapper=ye;exports.PToast=We;exports.PWordmark=qe;exports.useToastManager=de.useToastManager;exports.PorscheDesignSystemProvider=Te;exports.createPorscheDesignSystem=e.createPorscheDesignSystem;exports.usePorscheDesignSystemPlugin=e.usePorscheDesignSystemPlugin;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("@porsche-design-system/components-js"),t=require("./lib/components/AccordionWrapper.vue.cjs"),_=require("./lib/components/BannerWrapper.vue.cjs"),u=require("./lib/components/ButtonWrapper.vue.cjs"),p=require("./lib/components/ButtonGroupWrapper.vue.cjs"),s=require("./lib/components/ButtonPureWrapper.vue.cjs"),i=require("./lib/components/ButtonTileWrapper.vue.cjs"),a=require("./lib/components/CanvasWrapper.vue.cjs"),n=require("./lib/components/CarouselWrapper.vue.cjs"),c=require("./lib/components/CheckboxWrapperWrapper.vue.cjs"),o=require("./lib/components/ContentWrapperWrapper.vue.cjs"),l=require("./lib/components/CrestWrapper.vue.cjs"),v=require("./lib/components/DisplayWrapper.vue.cjs"),g=require("./lib/components/DividerWrapper.vue.cjs"),P=require("./lib/components/FieldsetWrapper.vue.cjs"),y=require("./lib/components/FieldsetWrapperWrapper.vue.cjs"),W=require("./lib/components/FlexWrapper.vue.cjs"),q=require("./lib/components/FlexItemWrapper.vue.cjs"),d=require("./lib/components/FlyoutWrapper.vue.cjs"),T=require("./lib/components/FlyoutMultilevelWrapper.vue.cjs"),S=require("./lib/components/FlyoutMultilevelItemWrapper.vue.cjs"),m=require("./lib/components/GridWrapper.vue.cjs"),b=require("./lib/components/GridItemWrapper.vue.cjs"),C=require("./lib/components/HeadingWrapper.vue.cjs"),M=require("./lib/components/HeadlineWrapper.vue.cjs"),x=require("./lib/components/IconWrapper.vue.cjs"),I=require("./lib/components/InlineNotificationWrapper.vue.cjs"),k=require("./lib/components/LinkWrapper.vue.cjs"),B=require("./lib/components/LinkPureWrapper.vue.cjs"),F=require("./lib/components/LinkSocialWrapper.vue.cjs"),L=require("./lib/components/LinkTileWrapper.vue.cjs"),H=require("./lib/components/LinkTileModelSignatureWrapper.vue.cjs"),D=require("./lib/components/LinkTileProductWrapper.vue.cjs"),h=require("./lib/components/MarqueWrapper.vue.cjs"),O=require("./lib/components/ModalWrapper.vue.cjs"),R=require("./lib/components/ModelSignatureWrapper.vue.cjs"),w=require("./lib/components/MultiSelectWrapper.vue.cjs"),G=require("./lib/components/MultiSelectOptionWrapper.vue.cjs"),f=require("./lib/components/OptgroupWrapper.vue.cjs"),z=require("./lib/components/PaginationWrapper.vue.cjs"),j=require("./lib/components/PinCodeWrapper.vue.cjs"),A=require("./lib/components/PopoverWrapper.vue.cjs"),N=require("./lib/components/RadioButtonWrapperWrapper.vue.cjs"),J=require("./lib/components/ScrollerWrapper.vue.cjs"),E=require("./lib/components/SegmentedControlWrapper.vue.cjs"),K=require("./lib/components/SegmentedControlItemWrapper.vue.cjs"),Q=require("./lib/components/SelectWrapper.vue.cjs"),U=require("./lib/components/SelectOptionWrapper.vue.cjs"),V=require("./lib/components/SelectWrapperWrapper.vue.cjs"),X=require("./lib/components/SpinnerWrapper.vue.cjs"),Y=require("./lib/components/StepperHorizontalWrapper.vue.cjs"),Z=require("./lib/components/StepperHorizontalItemWrapper.vue.cjs"),$=require("./lib/components/SwitchWrapper.vue.cjs"),ee=require("./lib/components/TableWrapper.vue.cjs"),re=require("./lib/components/TableBodyWrapper.vue.cjs"),te=require("./lib/components/TableCellWrapper.vue.cjs"),_e=require("./lib/components/TableHeadWrapper.vue.cjs"),ue=require("./lib/components/TableHeadCellWrapper.vue.cjs"),pe=require("./lib/components/TableHeadRowWrapper.vue.cjs"),se=require("./lib/components/TableRowWrapper.vue.cjs"),ie=require("./lib/components/TabsWrapper.vue.cjs"),ae=require("./lib/components/TabsBarWrapper.vue.cjs"),ne=require("./lib/components/TabsItemWrapper.vue.cjs"),ce=require("./lib/components/TagWrapper.vue.cjs"),oe=require("./lib/components/TagDismissibleWrapper.vue.cjs"),le=require("./lib/components/TextWrapper.vue.cjs"),ve=require("./lib/components/TextFieldWrapperWrapper.vue.cjs"),ge=require("./lib/components/TextListWrapper.vue.cjs"),Pe=require("./lib/components/TextListItemWrapper.vue.cjs"),ye=require("./lib/components/TextareaWrapper.vue.cjs"),We=require("./lib/components/TextareaWrapperWrapper.vue.cjs"),qe=require("./lib/components/ToastWrapper.vue.cjs"),de=require("./lib/components/WordmarkWrapper.vue.cjs"),Te=require("./utils.cjs"),Se=require("./PorscheDesignSystemProvider.vue.cjs"),e=require("./plugin.cjs");Object.defineProperty(exports,"componentsReady",{enumerable:!0,get:()=>r.componentsReady});exports.PAccordion=t;exports.PBanner=_;exports.PButton=u;exports.PButtonGroup=p;exports.PButtonPure=s;exports.PButtonTile=i;exports.PCanvas=a;exports.PCarousel=n;exports.PCheckboxWrapper=c;exports.PContentWrapper=o;exports.PCrest=l;exports.PDisplay=v;exports.PDivider=g;exports.PFieldset=P;exports.PFieldsetWrapper=y;exports.PFlex=W;exports.PFlexItem=q;exports.PFlyout=d;exports.PFlyoutMultilevel=T;exports.PFlyoutMultilevelItem=S;exports.PGrid=m;exports.PGridItem=b;exports.PHeading=C;exports.PHeadline=M;exports.PIcon=x;exports.PInlineNotification=I;exports.PLink=k;exports.PLinkPure=B;exports.PLinkSocial=F;exports.PLinkTile=L;exports.PLinkTileModelSignature=H;exports.PLinkTileProduct=D;exports.PMarque=h;exports.PModal=O;exports.PModelSignature=R;exports.PMultiSelect=w;exports.PMultiSelectOption=G;exports.POptgroup=f;exports.PPagination=z;exports.PPinCode=j;exports.PPopover=A;exports.PRadioButtonWrapper=N;exports.PScroller=J;exports.PSegmentedControl=E;exports.PSegmentedControlItem=K;exports.PSelect=Q;exports.PSelectOption=U;exports.PSelectWrapper=V;exports.PSpinner=X;exports.PStepperHorizontal=Y;exports.PStepperHorizontalItem=Z;exports.PSwitch=$;exports.PTable=ee;exports.PTableBody=re;exports.PTableCell=te;exports.PTableHead=_e;exports.PTableHeadCell=ue;exports.PTableHeadRow=pe;exports.PTableRow=se;exports.PTabs=ie;exports.PTabsBar=ae;exports.PTabsItem=ne;exports.PTag=ce;exports.PTagDismissible=oe;exports.PText=le;exports.PTextFieldWrapper=ve;exports.PTextList=ge;exports.PTextListItem=Pe;exports.PTextarea=ye;exports.PTextareaWrapper=We;exports.PToast=qe;exports.PWordmark=de;exports.useToastManager=Te.useToastManager;exports.PorscheDesignSystemProvider=Se;exports.createPorscheDesignSystem=e.createPorscheDesignSystem;exports.usePorscheDesignSystemPlugin=e.usePorscheDesignSystemPlugin;
@@ -0,0 +1,162 @@
1
+ import type { TextareaAutoComplete, BreakpointCustomizable, TextareaResize, TextareaState, Theme, TextareaWrap } from '../types';
2
+ type PTextareaProps = {
3
+ /**
4
+ * Specifies whether the input can be autofilled by the browser
5
+ */
6
+ autoComplete?: TextareaAutoComplete;
7
+ /**
8
+ * The description text.
9
+ */
10
+ description?: string;
11
+ /**
12
+ * Marks the textarea as disabled.
13
+ */
14
+ disabled?: boolean;
15
+ /**
16
+ * The id of a form element the textarea should be associated with.
17
+ */
18
+ form?: string;
19
+ /**
20
+ * Show or hide label. For better accessibility it is recommended to show the label.
21
+ */
22
+ hideLabel?: BreakpointCustomizable<boolean>;
23
+ /**
24
+ * The label text.
25
+ */
26
+ label?: string;
27
+ /**
28
+ * The max length of the textarea.
29
+ */
30
+ maxLength?: number;
31
+ /**
32
+ * The message styled depending on validation state.
33
+ */
34
+ message?: string;
35
+ /**
36
+ * The min length of the textarea.
37
+ */
38
+ minLength?: number;
39
+ /**
40
+ * The name of the textarea.
41
+ */
42
+ name: string;
43
+ /**
44
+ * The placeholder text.
45
+ */
46
+ placeholder?: string;
47
+ /**
48
+ * Specifies whether the textarea should be read-only.
49
+ */
50
+ readOnly?: boolean;
51
+ /**
52
+ * Marks the textarea as required.
53
+ */
54
+ required?: boolean;
55
+ /**
56
+ * Controls whether the textarea is resizable and in which direction.
57
+ */
58
+ resize?: TextareaResize;
59
+ /**
60
+ * The amount of rows of the textarea.
61
+ */
62
+ rows?: number;
63
+ /**
64
+ * Show or hide max character count.
65
+ */
66
+ showCounter?: boolean;
67
+ /**
68
+ * Specifies whether the input should have its spelling and grammar checked
69
+ */
70
+ spellCheck?: boolean;
71
+ /**
72
+ * The validation state.
73
+ */
74
+ state?: TextareaState;
75
+ /**
76
+ * Adapts the color depending on the theme.
77
+ */
78
+ theme?: Theme;
79
+ /**
80
+ * The textarea value.
81
+ */
82
+ value?: string;
83
+ /**
84
+ * Handles wrapping behaviour of elements.
85
+ */
86
+ wrap?: TextareaWrap;
87
+ };
88
+ declare const _default: import("vue").DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToOption<PTextareaProps>, {
89
+ autoComplete: string;
90
+ description: string;
91
+ disabled: boolean;
92
+ hideLabel: boolean;
93
+ label: string;
94
+ message: string;
95
+ placeholder: string;
96
+ readOnly: boolean;
97
+ required: boolean;
98
+ resize: string;
99
+ rows: number;
100
+ showCounter: boolean;
101
+ state: string;
102
+ value: string;
103
+ wrap: string;
104
+ }>, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
105
+ blur: (value: Event) => void;
106
+ change: (value: Event) => void;
107
+ input: (value: InputEvent) => void;
108
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<PTextareaProps>, {
109
+ autoComplete: string;
110
+ description: string;
111
+ disabled: boolean;
112
+ hideLabel: boolean;
113
+ label: string;
114
+ message: string;
115
+ placeholder: string;
116
+ readOnly: boolean;
117
+ required: boolean;
118
+ resize: string;
119
+ rows: number;
120
+ showCounter: boolean;
121
+ state: string;
122
+ value: string;
123
+ wrap: string;
124
+ }>>> & {
125
+ onBlur?: ((value: Event) => any) | undefined;
126
+ onChange?: ((value: Event) => any) | undefined;
127
+ onInput?: ((value: InputEvent) => any) | undefined;
128
+ }, {
129
+ wrap: TextareaWrap;
130
+ resize: TextareaResize;
131
+ label: string;
132
+ description: string;
133
+ state: TextareaState;
134
+ required: boolean;
135
+ disabled: boolean;
136
+ hideLabel: BreakpointCustomizable<boolean>;
137
+ value: string;
138
+ message: string;
139
+ showCounter: boolean;
140
+ autoComplete: TextareaAutoComplete;
141
+ placeholder: string;
142
+ readOnly: boolean;
143
+ rows: number;
144
+ }, {}>;
145
+ export default _default;
146
+ type __VLS_WithDefaults<P, D> = {
147
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
148
+ default: D[K];
149
+ }> : P[K];
150
+ };
151
+ type __VLS_Prettify<T> = {
152
+ [K in keyof T]: T[K];
153
+ } & {};
154
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
155
+ type __VLS_TypePropsToOption<T> = {
156
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
157
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
158
+ } : {
159
+ type: import('vue').PropType<T[K]>;
160
+ required: true;
161
+ };
162
+ };
@@ -0,0 +1,43 @@
1
+ import { defineComponent as d, ref as m, inject as c, onMounted as i, onUpdated as h, watch as y, openBlock as C, createBlock as B, resolveDynamicComponent as _, unref as b } from "vue";
2
+ import { usePrefix as g, themeInjectionKey as x, addEventListenerToElementRef as n, syncProperties as s } from "../../utils.mjs";
3
+ const L = /* @__PURE__ */ d({
4
+ __name: "TextareaWrapper",
5
+ props: {
6
+ autoComplete: { default: "" },
7
+ description: { default: "" },
8
+ disabled: { type: Boolean, default: !1 },
9
+ form: {},
10
+ hideLabel: { default: !1 },
11
+ label: { default: "" },
12
+ maxLength: {},
13
+ message: { default: "" },
14
+ minLength: {},
15
+ name: {},
16
+ placeholder: { default: "" },
17
+ readOnly: { type: Boolean, default: !1 },
18
+ required: { type: Boolean, default: !1 },
19
+ resize: { default: "vertical" },
20
+ rows: { default: 7 },
21
+ showCounter: { type: Boolean, default: !0 },
22
+ spellCheck: { type: Boolean },
23
+ state: { default: "none" },
24
+ theme: {},
25
+ value: { default: "" },
26
+ wrap: { default: "soft" }
27
+ },
28
+ emits: ["blur", "change", "input"],
29
+ setup(f, { emit: p }) {
30
+ const u = g("p-textarea"), t = f, e = m(), a = p, o = c(x), l = () => s(e, { ...t, theme: t.theme || o.value });
31
+ return i(() => {
32
+ l(), n(e, "blur", a), n(e, "change", a), n(e, "input", a);
33
+ }), h(l), y(o, (r) => {
34
+ s(e, { theme: t.theme || r });
35
+ }), (r, v) => (C(), B(_(b(u)), {
36
+ ref_key: "pdsComponentRef",
37
+ ref: e
38
+ }, null, 512));
39
+ }
40
+ });
41
+ export {
42
+ L as default
43
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./TextareaWrapper.vue.mjs";
2
+ export {
3
+ f as default
4
+ };
@@ -66,6 +66,7 @@ export { default as PText } from './TextWrapper.vue';
66
66
  export { default as PTextFieldWrapper } from './TextFieldWrapperWrapper.vue';
67
67
  export { default as PTextList } from './TextListWrapper.vue';
68
68
  export { default as PTextListItem } from './TextListItemWrapper.vue';
69
+ export { default as PTextarea } from './TextareaWrapper.vue';
69
70
  export { default as PTextareaWrapper } from './TextareaWrapperWrapper.vue';
70
71
  export { default as PToast } from './ToastWrapper.vue';
71
72
  export { default as PWordmark } from './WordmarkWrapper.vue';
@@ -1363,6 +1363,31 @@ declare const TEXT_LIST_TYPES: readonly [
1363
1363
  "alphabetically"
1364
1364
  ];
1365
1365
  export type TextListType = typeof TEXT_LIST_TYPES[number];
1366
+ export type TextareaState = FormState;
1367
+ declare const AUTO_COMPLETE: readonly [
1368
+ "off",
1369
+ "on",
1370
+ ""
1371
+ ];
1372
+ export type TextareaAutoComplete = (typeof AUTO_COMPLETE)[number];
1373
+ declare const TEXTAREA_WRAPS: readonly [
1374
+ "hard",
1375
+ "soft",
1376
+ "off"
1377
+ ];
1378
+ export type TextareaWrap = (typeof TEXTAREA_WRAPS)[number];
1379
+ declare const TEXTAREA_RESIZE: readonly [
1380
+ "none",
1381
+ "both",
1382
+ "horizontal",
1383
+ "vertical",
1384
+ "block",
1385
+ "inline"
1386
+ ];
1387
+ export type TextareaResize = (typeof TEXTAREA_RESIZE)[number];
1388
+ export type TextareaChangeEventDetail = Event;
1389
+ export type TextareaBlurEventDetail = Event;
1390
+ export type TextareaInputEventDetail = InputEvent;
1366
1391
  export type TextareaWrapperState = FormState;
1367
1392
  declare const TOAST_STATES: readonly [
1368
1393
  "info",
@@ -67,12 +67,13 @@ import { default as Mt } from "./lib/components/TextWrapper.vue.mjs";
67
67
  import { default as Bt } from "./lib/components/TextFieldWrapperWrapper.vue.mjs";
68
68
  import { default as Lt } from "./lib/components/TextListWrapper.vue.mjs";
69
69
  import { default as Ht } from "./lib/components/TextListItemWrapper.vue.mjs";
70
- import { default as Dt } from "./lib/components/TextareaWrapperWrapper.vue.mjs";
71
- import { default as Rt } from "./lib/components/ToastWrapper.vue.mjs";
72
- import { default as Gt } from "./lib/components/WordmarkWrapper.vue.mjs";
73
- import { useToastManager as zt } from "./utils.mjs";
74
- import { default as At } from "./PorscheDesignSystemProvider.vue.mjs";
75
- import { createPorscheDesignSystem as jt, usePorscheDesignSystemPlugin as Et } from "./plugin.mjs";
70
+ import { default as Dt } from "./lib/components/TextareaWrapper.vue.mjs";
71
+ import { default as Rt } from "./lib/components/TextareaWrapperWrapper.vue.mjs";
72
+ import { default as Gt } from "./lib/components/ToastWrapper.vue.mjs";
73
+ import { default as zt } from "./lib/components/WordmarkWrapper.vue.mjs";
74
+ import { useToastManager as At } from "./utils.mjs";
75
+ import { default as jt } from "./PorscheDesignSystemProvider.vue.mjs";
76
+ import { createPorscheDesignSystem as Jt, usePorscheDesignSystemPlugin as Kt } from "./plugin.mjs";
76
77
  export {
77
78
  a as PAccordion,
78
79
  l as PBanner,
@@ -142,12 +143,13 @@ export {
142
143
  Bt as PTextFieldWrapper,
143
144
  Lt as PTextList,
144
145
  Ht as PTextListItem,
145
- Dt as PTextareaWrapper,
146
- Rt as PToast,
147
- Gt as PWordmark,
148
- At as PorscheDesignSystemProvider,
146
+ Dt as PTextarea,
147
+ Rt as PTextareaWrapper,
148
+ Gt as PToast,
149
+ zt as PWordmark,
150
+ jt as PorscheDesignSystemProvider,
149
151
  o as componentsReady,
150
- jt as createPorscheDesignSystem,
151
- Et as usePorscheDesignSystemPlugin,
152
- zt as useToastManager
152
+ Jt as createPorscheDesignSystem,
153
+ Kt as usePorscheDesignSystemPlugin,
154
+ At as useToastManager
153
155
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@porsche-design-system/components-vue",
3
- "version": "3.17.0",
3
+ "version": "3.18.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.17.0"
20
+ "@porsche-design-system/components-js": "3.18.0-rc.0"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "vue": ">=3.0.0 <4.0.0"