@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 +73 -35
- package/cjs/lib/components/TextareaWrapper.vue.cjs +1 -0
- package/cjs/lib/components/TextareaWrapper.vue2.cjs +1 -0
- package/cjs/public-api.cjs +1 -1
- package/esm/lib/components/TextareaWrapper.vue.d.ts +162 -0
- package/esm/lib/components/TextareaWrapper.vue.mjs +43 -0
- package/esm/lib/components/TextareaWrapper.vue2.mjs +4 -0
- package/esm/lib/components/index.d.ts +1 -0
- package/esm/lib/types.d.ts +25 -0
- package/esm/public-api.mjs +15 -13
- package/package.json +2 -2
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/
|
|
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/
|
|
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
|
-
|
|
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/
|
|
2891
|
-
will need an **Internet connection** to render the components in a browser (possibly relevant for development stage
|
|
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
|
-
|
|
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/
|
|
2900
|
-
[Angular](https://designsystem.porsche.com/
|
|
2901
|
-
[React](https://designsystem.porsche.com/
|
|
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
|
-
|
|
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/
|
|
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
|
-
|
|
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/
|
|
2965
|
+
[CDN guidelines](https://designsystem.porsche.com/v3/must-know/performance/cdn) for more information.
|
|
2928
2966
|
|
|
2929
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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/
|
|
2994
|
+
[Read more about it](https://designsystem.porsche.com/v3/developing/components-ready).
|
|
2957
2995
|
|
|
2958
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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/
|
|
3018
|
+
[Browser compatibility guidelines](https://designsystem.porsche.com/v3/must-know/browser-compatibility).
|
|
2981
3019
|
|
|
2982
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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/
|
|
3087
|
+
[read further](https://designsystem.porsche.com/v2/start-coding/angular).
|
|
3050
3088
|
|
|
3051
3089
|
---
|
|
3052
3090
|
|
|
3053
3091
|
## React
|
|
3054
3092
|
|
|
3055
|
-
|
|
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/
|
|
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/
|
|
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
|
-
|
|
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/
|
|
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/
|
|
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;
|
package/cjs/public-api.cjs
CHANGED
|
@@ -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"),
|
|
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
|
+
};
|
|
@@ -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';
|
package/esm/lib/types.d.ts
CHANGED
|
@@ -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",
|
package/esm/public-api.mjs
CHANGED
|
@@ -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/
|
|
71
|
-
import { default as Rt } from "./lib/components/
|
|
72
|
-
import { default as Gt } from "./lib/components/
|
|
73
|
-
import {
|
|
74
|
-
import {
|
|
75
|
-
import {
|
|
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
|
|
146
|
-
Rt as
|
|
147
|
-
Gt as
|
|
148
|
-
|
|
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
|
-
|
|
151
|
-
|
|
152
|
-
|
|
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.
|
|
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.
|
|
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"
|