@porsche-design-system/components-vue 3.17.0-rc.2 → 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,44 @@ 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
+
53
+ ### [3.17.0] - 2024-08-01
54
+
17
55
  ### [3.17.0-rc.2] - 2024-08-01
18
56
 
19
57
  #### Fixed
@@ -2110,7 +2148,7 @@ to the new values since those ones will be removed with next major version.
2110
2148
  - Validation to ensure crucial partials are used.
2111
2149
  **Disclaimer:** The Porsche Design System will **not** inject its initial styles anymore. Please use the
2112
2150
  `getInitialStyles()` partial to reduce flash of unstyled content (FOUC) as described here:
2113
- [getInitialStyles() documentation](https://designsystem.porsche.com/latest/partials/initial-styles)
2151
+ [getInitialStyles() documentation](https://designsystem.porsche.com/v2/partials/initial-styles)
2114
2152
 
2115
2153
  #### Changed
2116
2154
 
@@ -2145,7 +2183,7 @@ to the new values since those ones will be removed with next major version.
2145
2183
 
2146
2184
  **Important:** make sure to apply the new `getDSRPonyfill()` partial right before your closing `</body>` tag. More
2147
2185
  information can be found here:
2148
- [getDSRPonyfill() documentation](https://designsystem.porsche.com/latest/partials/dsr-ponyfill)
2186
+ [getDSRPonyfill() documentation](https://designsystem.porsche.com/v2/partials/dsr-ponyfill)
2149
2187
 
2150
2188
  ```diff
2151
2189
  - import { PorscheDesignSystemProvider, PButton, ... } from '@porsche-design-system/components-react';
@@ -2882,31 +2920,31 @@ guidelines.
2882
2920
 
2883
2921
  ## General changes / improvements:
2884
2922
 
2885
- #### 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
2886
2924
 
2887
2925
  This way all web based digital Porsche products share and use the cached and versioned assets regardless of the JS
2888
2926
  framework used to improve loading performance across the Porsche group. Only a tiny (1.4kb sized) Porsche Design System
2889
2927
  loader script gets bundled into your application code. Everything else gets loaded versioned, cached and chunked from a
2890
- central CDN ([read more](https://designsystem.porsche.com/latest/performance/cdn)). However, this also means that you
2891
- will need an **Internet connection** to render the components in a browser (possibly relevant for development stage or
2892
- 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).
2893
2931
 
2894
- #### Enabling Micro Frontend Architecture
2932
+ ### Enabling Micro Frontend Architecture
2895
2933
 
2896
2934
  In case of a micro-frontend architecture, multiple instances and versions of the Porsche Design System can be combined
2897
2935
  in a final application by configurable prefixing technique of the Porsche Design System components during runtime.
2898
2936
  Please refer to our framework specific guidelines
2899
- [Vanilla JS](https://designsystem.porsche.com/latest/start-coding/vanilla-js),
2900
- [Angular](https://designsystem.porsche.com/latest/start-coding/angular) and
2901
- [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).
2902
2940
 
2903
- #### 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)
2904
2942
 
2905
2943
  To prevent FOUC/FOUT, the Porsche Design System offers various partials as part of the
2906
2944
  `@porsche-design-system/components-{js|angular|react}` package to ensure all necessary Porsche Design System fonts and
2907
2945
  components are fully loaded. If you've used the `@porsche-design-system/partials` package previously, stop using it and
2908
2946
  replace the integration with the partials provided by `@porsche-design-system/components-{js|angular|react}` package.
2909
- 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).
2910
2948
 
2911
2949
  ```diff
2912
2950
  - <%= require('@porsche-design-system/partials').getPorscheDesignSystemCoreStyles() %>
@@ -2919,14 +2957,14 @@ Have a look at our [FOUC/FOUT guidelines](https://designsystem.porsche.com/lates
2919
2957
  + <%= require('@porsche-design-system/components-{js|angular|react}/partials').getFontLinks({ weights: ['regular', 'semi-bold'] }) %>
2920
2958
  ```
2921
2959
 
2922
- #### Added support for China CDN
2960
+ ### Added support for China CDN
2923
2961
 
2924
2962
  Our CDN is configured to forward requests to Chinese CDN automatically when necessary. So you're good to go without any
2925
2963
  configuration or multiple region specific builds of your application. However, if you are aiming for the maximum
2926
2964
  possible performance in China, you can configure which CDN the Porsche Design System must use. Please follow our
2927
- [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.
2928
2966
 
2929
- #### New/optimized components
2967
+ ### New/optimized components
2930
2968
 
2931
2969
  - **Tabs**
2932
2970
  - **Tabs Bar**
@@ -2943,43 +2981,43 @@ possible performance in China, you can configure which CDN the Porsche Design Sy
2943
2981
  - Checkbox
2944
2982
  - Radio Button
2945
2983
 
2946
- #### Improved TypeScript support for Angular and React
2984
+ ### Improved TypeScript support for Angular and React
2947
2985
 
2948
2986
  To ensure the best possible typing support, we have refactored our Angular and React wrappers which integrate the native
2949
2987
  web components of the Porsche Design System.
2950
2988
 
2951
- #### componentsReady() works reliable
2989
+ ### componentsReady() works reliable
2952
2990
 
2953
2991
  Because the Porsche Design System components get loaded async at the time they are needed, it might be relevant within
2954
2992
  your application or test automation to know when those have been initialized. Therefore, we provide in all three
2955
2993
  `@porsche-design-system/components-{js|angular|react}')` packages a reliable helper function `componentsReady()`.
2956
- [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).
2957
2995
 
2958
- #### Removed "blur on focus"
2996
+ ### Removed "blur on focus"
2959
2997
 
2960
2998
  Now focus styling is only applied when you navigate through keyboard and ignored by mouse interaction for browsers
2961
2999
  supporting `:focus-visible` otherwise it will fallback to `:focus` CSS implementation.
2962
3000
 
2963
- #### 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
2964
3002
 
2965
3003
  Color and outline of general focus styling has changed to `currentColor` for light/dark theme with an outline of 1px
2966
3004
  width/offset. If you have custom components build with the usage of our `@porsche-design-system/utilities` package then
2967
3005
  update it to the latest version.
2968
3006
 
2969
- #### Improved geometry of Porsche Next font
3007
+ ### Improved geometry of Porsche Next font
2970
3008
 
2971
3009
  For better alignment and readability we've changed the geometry of the Porsche Next font which results in a visual
2972
3010
  change of font size and spacing.
2973
3011
 
2974
- #### 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
2975
3013
 
2976
3014
  If you still need to support these browsers, you have to stick to `v1.5.x`. We offer a Browser Notification package
2977
3015
  `@porsche-design-system/browser-notification` to alert users that these browsers are no longer supported. It supports a
2978
3016
  blocking layer (to be used with Porsche Design System `v2.x`), or a dismissible banner (to be used with Porsche Design
2979
3017
  System `v1.x`). Please refer to our
2980
- [Browser compatibility guidelines](https://designsystem.porsche.com/latest/help/browser-compatibility).
3018
+ [Browser compatibility guidelines](https://designsystem.porsche.com/v3/must-know/browser-compatibility).
2981
3019
 
2982
- #### Changed default type of Button and Button Pure
3020
+ ### Changed default type of Button and Button Pure
2983
3021
 
2984
3022
  To be in sync with native `<button>` behavior we've changed the default `type` of **Button** and **Button Pure**
2985
3023
  component. Those components will render a button within their Shadow DOM as `<button type="submit">` ( previously
@@ -2990,7 +3028,7 @@ component. Those components will render a button within their Shadow DOM as `<bu
2990
3028
  - `button`: The button has no default behavior, and does nothing when pressed by default. It can have client-side
2991
3029
  scripts listen to the element's events, which are triggered when the events occur.
2992
3030
 
2993
- #### 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
2994
3032
 
2995
3033
  Due to the support for setting links (`<a href="#">`) in our **Link**, **Link Pure** and **Link Social** components as
2996
3034
  child, we've removed support for styling the anchor tag (`<a>`) when it surrounds the component. So we recommend
@@ -3007,7 +3045,7 @@ changing the position of the `<a>` tag from wrapping the component to a direct s
3007
3045
  + <p-link-social><a href="#">Some label</a></p-link-social>
3008
3046
  ```
3009
3047
 
3010
- #### Automatic \* asterisk symbol to form field labels
3048
+ ### Automatic \* asterisk symbol to form field labels
3011
3049
 
3012
3050
  We added an automatic generated _ asterisk symbol to form field labels which have the required attribute. This might
3013
3051
  lead to a doubled _ symbol if you set one by yourself.
@@ -3032,7 +3070,7 @@ lead to a doubled _ symbol if you set one by yourself.
3032
3070
  + <p-select-wrapper label="Some label"><select name="some-name" required><option>A</option></select></p-select-wrapper>
3033
3071
  ```
3034
3072
 
3035
- #### Shadow DOM
3073
+ ### Shadow DOM
3036
3074
 
3037
3075
  `Flex`, `Flex Item`, `Grid` and `Grid Item` now use Shadow DOM, thus you are not able to overwrite styles defined by
3038
3076
  these components any longer.
@@ -3041,18 +3079,18 @@ these components any longer.
3041
3079
 
3042
3080
  ## Angular
3043
3081
 
3044
- #### Integration of Angular components
3082
+ ### Integration of Angular components
3045
3083
 
3046
3084
  In the past it was possible to provide a token called `PREVENT_WEB_COMPONENTS_REGISTRATION` which prevented the
3047
3085
  registration of the Porsche Design System components and loading of polyfills. Due to the fact that we no longer provide
3048
3086
  / need poly filling, we have completely removed the token. For advanced usage please
3049
- [read further](https://designsystem.porsche.com/latest/start-coding/angular).
3087
+ [read further](https://designsystem.porsche.com/v2/start-coding/angular).
3050
3088
 
3051
3089
  ---
3052
3090
 
3053
3091
  ## React
3054
3092
 
3055
- #### Integration of React components
3093
+ ### Integration of React components
3056
3094
 
3057
3095
  In the past `@porsche-design-system/components-react` components have initialized the **Porsche Design System Loader**
3058
3096
  automatically as soon as a component was imported. With `v2.x` you have to import the `PorscheDesignSystemProvider` once
@@ -3075,7 +3113,7 @@ in your `index.tsx` which then initializes the **Porsche Design System Loader**,
3075
3113
  );
3076
3114
  ```
3077
3115
 
3078
- 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).
3079
3117
 
3080
3118
  #### Jsdom Polyfill for React / Jest / jsdom test automation
3081
3119
 
@@ -3083,13 +3121,13 @@ We removed test mocks for React / Jest / jsdom as Shadow DOM is supported since
3083
3121
  Jsdom Polyfill (exclusivly for `@porsche-design-system/components-react` package) fixing missing implementation of jsdom
3084
3122
  which the Porsche Design System relies on. **Note:** If your test includes Porsche Design System components, make sure
3085
3123
  to wrap the component you want to test with a PorscheDesignSystemProvider in order to avoid exceptions. For more
3086
- 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).
3087
3125
 
3088
3126
  ---
3089
3127
 
3090
3128
  ## Vanilla JS
3091
3129
 
3092
- #### Integration of Vanilla JS components
3130
+ ### Integration of Vanilla JS components
3093
3131
 
3094
3132
  With `v1.x` of the Porsche Design System you've had to copy all needed JS files of
3095
3133
  `@porsche-design-system/components-js` into your target directory and include the ES5 and ESM loader snippet. Now you
@@ -3115,7 +3153,7 @@ only need to copy one `index.js` file and initialize the Porsche Design System l
3115
3153
  </html>
3116
3154
  ```
3117
3155
 
3118
- 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).
3119
3157
 
3120
3158
  ---
3121
3159
 
@@ -3163,7 +3201,7 @@ For advanced usage please [read further](https://designsystem.porsche.com/latest
3163
3201
 
3164
3202
  - `Tabs Bar` has a new default `activeTabIndex`, which is `undefined`
3165
3203
  - `Tabs Bar` does not work by itself anymore. The `activeTabIndex` needs to be controlled from the outside
3166
- ([read more](https://designsystem.porsche.com/latest/components/tabs-bar/examples))
3204
+ ([read more](https://designsystem.porsche.com/v2/components/tabs-bar/examples))
3167
3205
  - Background Color of `Select Wrapper` in `dark` theme to meet accessibility criteria
3168
3206
 
3169
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-rc.2",
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-rc.2"
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"