@porsche-design-system/components-vue 3.17.0 → 3.18.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] - 2024-08-21
18
+
19
+ ### [3.18.0-rc.0] - 2024-08-21
20
+
21
+ #### Added
22
+
23
+ - `Button Tile`, `Link Tile`, `Link Tile Model Signature`: supports `<video/>` (the tile components automatically check
24
+ for OS reduced motion setting to decide weather the video autoplay should be prevented or not to improve accessibility
25
+ & UX) ([#3454](https://github.com/porsche-design-system/porsche-design-system/pull/3454))
26
+ - Extend deprecation console warnings by reference to causing DOM element
27
+ ([#3439](https://github.com/porsche-design-system/porsche-design-system/pull/3439))
28
+ - `Textarea`: ([#3443](https://github.com/porsche-design-system/porsche-design-system/pull/3443))
29
+
30
+ #### Changed
31
+
32
+ - Partials: `getInitialStyles` uses CSS `:defined` to determine the visibility of web components, as well as
33
+ `[data-ssr]` attribute instead of `.ssr` class for Next JS and Remix
34
+ ([#3466](https://github.com/porsche-design-system/porsche-design-system/pull/3466))
35
+ - Components: Use `:defined` & `[data-ssr]` to handle visibility of nested elements within Shadow DOM
36
+ ([#3470](https://github.com/porsche-design-system/porsche-design-system/pull/3470))
37
+ - `Button`, `Link`: spacings adjusted for `compact` mode
38
+ - `Banner`, `Flyout`, `Inline Notification`, `Modal`, `Scroller`, `Toast`: button style
39
+ ([#3435](https://github.com/porsche-design-system/porsche-design-system/pull/3435))
40
+ - `Select`: added `display: block` to host in order to be consistent with other form components
41
+ ([#3462](https://github.com/porsche-design-system/porsche-design-system/pull/3462))
42
+
43
+ #### Fixed
44
+
45
+ - `Select`, `Multi-Select`: programmatic focus
46
+ ([#3462](https://github.com/porsche-design-system/porsche-design-system/pull/3462))
47
+ - `Button Tile`, `Link Tile`, `Link Tile Model Signature`: correct image position if custom css `position: absolute` is
48
+ used on media element ([#3446](https://github.com/porsche-design-system/porsche-design-system/pull/3446))
49
+ - `Button`, `Link`: Safari rendering issue of `backdrop-filter` on border in variant `ghost`
50
+ ([#3435](https://github.com/porsche-design-system/porsche-design-system/pull/3435))
51
+ - `Select`, `Select Wrapper`, `Multi Select`, `Textfield Wrapper`: `text-overflow` has now ellipsis behaviour and
52
+ `min-width` is added to prevent text overlapping
53
+ ([#3465](https://github.com/porsche-design-system/porsche-design-system/pull/3465))
54
+
17
55
  ### [3.17.0] - 2024-08-01
18
56
 
19
57
  ### [3.17.0-rc.2] - 2024-08-01
@@ -2112,7 +2150,7 @@ to the new values since those ones will be removed with next major version.
2112
2150
  - Validation to ensure crucial partials are used.
2113
2151
  **Disclaimer:** The Porsche Design System will **not** inject its initial styles anymore. Please use the
2114
2152
  `getInitialStyles()` partial to reduce flash of unstyled content (FOUC) as described here:
2115
- [getInitialStyles() documentation](https://designsystem.porsche.com/latest/partials/initial-styles)
2153
+ [getInitialStyles() documentation](https://designsystem.porsche.com/v2/partials/initial-styles)
2116
2154
 
2117
2155
  #### Changed
2118
2156
 
@@ -2147,7 +2185,7 @@ to the new values since those ones will be removed with next major version.
2147
2185
 
2148
2186
  **Important:** make sure to apply the new `getDSRPonyfill()` partial right before your closing `</body>` tag. More
2149
2187
  information can be found here:
2150
- [getDSRPonyfill() documentation](https://designsystem.porsche.com/latest/partials/dsr-ponyfill)
2188
+ [getDSRPonyfill() documentation](https://designsystem.porsche.com/v2/partials/dsr-ponyfill)
2151
2189
 
2152
2190
  ```diff
2153
2191
  - import { PorscheDesignSystemProvider, PButton, ... } from '@porsche-design-system/components-react';
@@ -2884,31 +2922,31 @@ guidelines.
2884
2922
 
2885
2923
  ## General changes / improvements:
2886
2924
 
2887
- #### All components, icons, fonts, styles and marque of the Porsche Design System are loaded versioned and chunked from a central CDN
2925
+ ### All components, icons, fonts, styles and marque of the Porsche Design System are loaded versioned and chunked from a central CDN
2888
2926
 
2889
2927
  This way all web based digital Porsche products share and use the cached and versioned assets regardless of the JS
2890
2928
  framework used to improve loading performance across the Porsche group. Only a tiny (1.4kb sized) Porsche Design System
2891
2929
  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).
2930
+ central CDN ([read more](https://designsystem.porsche.com/v3/must-know/performance/cdn)). However, this also means that
2931
+ you will need an **Internet connection** to render the components in a browser (possibly relevant for development stage
2932
+ or intranet applications).
2895
2933
 
2896
- #### Enabling Micro Frontend Architecture
2934
+ ### Enabling Micro Frontend Architecture
2897
2935
 
2898
2936
  In case of a micro-frontend architecture, multiple instances and versions of the Porsche Design System can be combined
2899
2937
  in a final application by configurable prefixing technique of the Porsche Design System components during runtime.
2900
2938
  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).
2939
+ [Vanilla JS](https://designsystem.porsche.com/v2/start-coding/vanilla-js),
2940
+ [Angular](https://designsystem.porsche.com/v2/start-coding/angular) and
2941
+ [React](https://designsystem.porsche.com/v2/start-coding/react).
2904
2942
 
2905
- #### Prevent Flash of Unstyled Content (FOUC) and Flash of Unstyled Text (FOUT)
2943
+ ### Prevent Flash of Unstyled Content (FOUC) and Flash of Unstyled Text (FOUT)
2906
2944
 
2907
2945
  To prevent FOUC/FOUT, the Porsche Design System offers various partials as part of the
2908
2946
  `@porsche-design-system/components-{js|angular|react}` package to ensure all necessary Porsche Design System fonts and
2909
2947
  components are fully loaded. If you've used the `@porsche-design-system/partials` package previously, stop using it and
2910
2948
  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).
2949
+ Have a look at our [FOUC/FOUT guidelines](https://designsystem.porsche.com/v3/must-know/performance/loading-behaviour).
2912
2950
 
2913
2951
  ```diff
2914
2952
  - <%= require('@porsche-design-system/partials').getPorscheDesignSystemCoreStyles() %>
@@ -2921,14 +2959,14 @@ Have a look at our [FOUC/FOUT guidelines](https://designsystem.porsche.com/lates
2921
2959
  + <%= require('@porsche-design-system/components-{js|angular|react}/partials').getFontLinks({ weights: ['regular', 'semi-bold'] }) %>
2922
2960
  ```
2923
2961
 
2924
- #### Added support for China CDN
2962
+ ### Added support for China CDN
2925
2963
 
2926
2964
  Our CDN is configured to forward requests to Chinese CDN automatically when necessary. So you're good to go without any
2927
2965
  configuration or multiple region specific builds of your application. However, if you are aiming for the maximum
2928
2966
  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.
2967
+ [CDN guidelines](https://designsystem.porsche.com/v3/must-know/performance/cdn) for more information.
2930
2968
 
2931
- #### New/optimized components
2969
+ ### New/optimized components
2932
2970
 
2933
2971
  - **Tabs**
2934
2972
  - **Tabs Bar**
@@ -2945,43 +2983,43 @@ possible performance in China, you can configure which CDN the Porsche Design Sy
2945
2983
  - Checkbox
2946
2984
  - Radio Button
2947
2985
 
2948
- #### Improved TypeScript support for Angular and React
2986
+ ### Improved TypeScript support for Angular and React
2949
2987
 
2950
2988
  To ensure the best possible typing support, we have refactored our Angular and React wrappers which integrate the native
2951
2989
  web components of the Porsche Design System.
2952
2990
 
2953
- #### componentsReady() works reliable
2991
+ ### componentsReady() works reliable
2954
2992
 
2955
2993
  Because the Porsche Design System components get loaded async at the time they are needed, it might be relevant within
2956
2994
  your application or test automation to know when those have been initialized. Therefore, we provide in all three
2957
2995
  `@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).
2996
+ [Read more about it](https://designsystem.porsche.com/v3/developing/components-ready).
2959
2997
 
2960
- #### Removed "blur on focus"
2998
+ ### Removed "blur on focus"
2961
2999
 
2962
3000
  Now focus styling is only applied when you navigate through keyboard and ignored by mouse interaction for browsers
2963
3001
  supporting `:focus-visible` otherwise it will fallback to `:focus` CSS implementation.
2964
3002
 
2965
- #### Changed focus styling for a better compromise between accessibility and visual appearance
3003
+ ### Changed focus styling for a better compromise between accessibility and visual appearance
2966
3004
 
2967
3005
  Color and outline of general focus styling has changed to `currentColor` for light/dark theme with an outline of 1px
2968
3006
  width/offset. If you have custom components build with the usage of our `@porsche-design-system/utilities` package then
2969
3007
  update it to the latest version.
2970
3008
 
2971
- #### Improved geometry of Porsche Next font
3009
+ ### Improved geometry of Porsche Next font
2972
3010
 
2973
3011
  For better alignment and readability we've changed the geometry of the Porsche Next font which results in a visual
2974
3012
  change of font size and spacing.
2975
3013
 
2976
- #### Dropped support for IE11 and EdgeHTML according to Porsche's official browser strategy 2021
3014
+ ### Dropped support for IE11 and EdgeHTML according to Porsche's official browser strategy 2021
2977
3015
 
2978
3016
  If you still need to support these browsers, you have to stick to `v1.5.x`. We offer a Browser Notification package
2979
3017
  `@porsche-design-system/browser-notification` to alert users that these browsers are no longer supported. It supports a
2980
3018
  blocking layer (to be used with Porsche Design System `v2.x`), or a dismissible banner (to be used with Porsche Design
2981
3019
  System `v1.x`). Please refer to our
2982
- [Browser compatibility guidelines](https://designsystem.porsche.com/latest/help/browser-compatibility).
3020
+ [Browser compatibility guidelines](https://designsystem.porsche.com/v3/must-know/browser-compatibility).
2983
3021
 
2984
- #### Changed default type of Button and Button Pure
3022
+ ### Changed default type of Button and Button Pure
2985
3023
 
2986
3024
  To be in sync with native `<button>` behavior we've changed the default `type` of **Button** and **Button Pure**
2987
3025
  component. Those components will render a button within their Shadow DOM as `<button type="submit">` ( previously
@@ -2992,7 +3030,7 @@ component. Those components will render a button within their Shadow DOM as `<bu
2992
3030
  - `button`: The button has no default behavior, and does nothing when pressed by default. It can have client-side
2993
3031
  scripts listen to the element's events, which are triggered when the events occur.
2994
3032
 
2995
- #### Changed support for wrapped links around Link, Link Pure and Link Social component
3033
+ ### Changed support for wrapped links around Link, Link Pure and Link Social component
2996
3034
 
2997
3035
  Due to the support for setting links (`<a href="#">`) in our **Link**, **Link Pure** and **Link Social** components as
2998
3036
  child, we've removed support for styling the anchor tag (`<a>`) when it surrounds the component. So we recommend
@@ -3009,7 +3047,7 @@ changing the position of the `<a>` tag from wrapping the component to a direct s
3009
3047
  + <p-link-social><a href="#">Some label</a></p-link-social>
3010
3048
  ```
3011
3049
 
3012
- #### Automatic \* asterisk symbol to form field labels
3050
+ ### Automatic \* asterisk symbol to form field labels
3013
3051
 
3014
3052
  We added an automatic generated _ asterisk symbol to form field labels which have the required attribute. This might
3015
3053
  lead to a doubled _ symbol if you set one by yourself.
@@ -3034,7 +3072,7 @@ lead to a doubled _ symbol if you set one by yourself.
3034
3072
  + <p-select-wrapper label="Some label"><select name="some-name" required><option>A</option></select></p-select-wrapper>
3035
3073
  ```
3036
3074
 
3037
- #### Shadow DOM
3075
+ ### Shadow DOM
3038
3076
 
3039
3077
  `Flex`, `Flex Item`, `Grid` and `Grid Item` now use Shadow DOM, thus you are not able to overwrite styles defined by
3040
3078
  these components any longer.
@@ -3043,18 +3081,18 @@ these components any longer.
3043
3081
 
3044
3082
  ## Angular
3045
3083
 
3046
- #### Integration of Angular components
3084
+ ### Integration of Angular components
3047
3085
 
3048
3086
  In the past it was possible to provide a token called `PREVENT_WEB_COMPONENTS_REGISTRATION` which prevented the
3049
3087
  registration of the Porsche Design System components and loading of polyfills. Due to the fact that we no longer provide
3050
3088
  / need poly filling, we have completely removed the token. For advanced usage please
3051
- [read further](https://designsystem.porsche.com/latest/start-coding/angular).
3089
+ [read further](https://designsystem.porsche.com/v2/start-coding/angular).
3052
3090
 
3053
3091
  ---
3054
3092
 
3055
3093
  ## React
3056
3094
 
3057
- #### Integration of React components
3095
+ ### Integration of React components
3058
3096
 
3059
3097
  In the past `@porsche-design-system/components-react` components have initialized the **Porsche Design System Loader**
3060
3098
  automatically as soon as a component was imported. With `v2.x` you have to import the `PorscheDesignSystemProvider` once
@@ -3077,7 +3115,7 @@ in your `index.tsx` which then initializes the **Porsche Design System Loader**,
3077
3115
  );
3078
3116
  ```
3079
3117
 
3080
- For advanced usage please [read further](https://designsystem.porsche.com/latest/start-coding/react).
3118
+ For advanced usage please [read further](https://designsystem.porsche.com/v2/start-coding/react).
3081
3119
 
3082
3120
  #### Jsdom Polyfill for React / Jest / jsdom test automation
3083
3121
 
@@ -3085,13 +3123,13 @@ We removed test mocks for React / Jest / jsdom as Shadow DOM is supported since
3085
3123
  Jsdom Polyfill (exclusivly for `@porsche-design-system/components-react` package) fixing missing implementation of jsdom
3086
3124
  which the Porsche Design System relies on. **Note:** If your test includes Porsche Design System components, make sure
3087
3125
  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).
3126
+ information please [read further](https://designsystem.porsche.com/v2/start-coding/react).
3089
3127
 
3090
3128
  ---
3091
3129
 
3092
3130
  ## Vanilla JS
3093
3131
 
3094
- #### Integration of Vanilla JS components
3132
+ ### Integration of Vanilla JS components
3095
3133
 
3096
3134
  With `v1.x` of the Porsche Design System you've had to copy all needed JS files of
3097
3135
  `@porsche-design-system/components-js` into your target directory and include the ES5 and ESM loader snippet. Now you
@@ -3117,7 +3155,7 @@ only need to copy one `index.js` file and initialize the Porsche Design System l
3117
3155
  </html>
3118
3156
  ```
3119
3157
 
3120
- For advanced usage please [read further](https://designsystem.porsche.com/latest/start-coding/vanilla-js).
3158
+ For advanced usage please [read further](https://designsystem.porsche.com/v2/start-coding/vanilla-js).
3121
3159
 
3122
3160
  ---
3123
3161
 
@@ -3165,7 +3203,7 @@ For advanced usage please [read further](https://designsystem.porsche.com/latest
3165
3203
 
3166
3204
  - `Tabs Bar` has a new default `activeTabIndex`, which is `undefined`
3167
3205
  - `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))
3206
+ ([read more](https://designsystem.porsche.com/v2/components/tabs-bar/examples))
3169
3207
  - Background Color of `Select Wrapper` in `dark` theme to meet accessibility criteria
3170
3208
 
3171
3209
  ### [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",
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"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "vue": ">=3.0.0 <4.0.0"