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