@porsche-design-system/components-vue 3.28.0-rc.3 → 3.29.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 +27 -0
- package/cjs/lib/components/InputNumberWrapper.vue.cjs +1 -0
- package/cjs/lib/components/InputNumberWrapper.vue2.cjs +1 -0
- package/cjs/lib/components/InputPasswordWrapper.vue.cjs +1 -1
- package/cjs/lib/components/InputSearchWrapper.vue.cjs +1 -0
- package/cjs/lib/components/InputSearchWrapper.vue2.cjs +1 -0
- package/cjs/lib/components/InputTextWrapper.vue.cjs +1 -0
- package/cjs/lib/components/InputTextWrapper.vue2.cjs +1 -0
- package/cjs/lib/components/SelectWrapper.vue.cjs +1 -1
- package/cjs/lib/components/TextareaWrapper.vue.cjs +1 -1
- package/cjs/public-api.cjs +1 -1
- package/esm/lib/components/InputNumberWrapper.vue.d.ts +117 -0
- package/esm/lib/components/InputNumberWrapper.vue.mjs +47 -0
- package/esm/lib/components/InputNumberWrapper.vue2.mjs +4 -0
- package/esm/lib/components/InputPasswordWrapper.vue.d.ts +6 -2
- package/esm/lib/components/InputPasswordWrapper.vue.mjs +8 -7
- package/esm/lib/components/InputSearchWrapper.vue.d.ts +109 -0
- package/esm/lib/components/InputSearchWrapper.vue.mjs +45 -0
- package/esm/lib/components/InputSearchWrapper.vue2.mjs +4 -0
- package/esm/lib/components/InputTextWrapper.vue.d.ts +116 -0
- package/esm/lib/components/InputTextWrapper.vue.mjs +47 -0
- package/esm/lib/components/InputTextWrapper.vue2.mjs +4 -0
- package/esm/lib/components/SelectWrapper.vue.d.ts +5 -0
- package/esm/lib/components/SelectWrapper.vue.mjs +8 -7
- package/esm/lib/components/TextareaWrapper.vue.d.ts +2 -3
- package/esm/lib/components/TextareaWrapper.vue.mjs +4 -4
- package/esm/lib/components/index.d.ts +3 -0
- package/esm/lib/types.d.ts +29 -4
- package/esm/public-api.mjs +126 -120
- package/package.json +3 -3
- package/{tailwind → tailwindcss}/index.css +194 -133
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,33 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0),
|
|
|
14
14
|
|
|
15
15
|
## [Unreleased]
|
|
16
16
|
|
|
17
|
+
## [3.29.0-rc.0] - 2025-06-27
|
|
18
|
+
|
|
19
|
+
#### Added
|
|
20
|
+
|
|
21
|
+
- `Input Search`: ([#3874](https://github.com/porsche-design-system/porsche-design-system/pull/3874))
|
|
22
|
+
- `Input Number`, `Input Password`: added loading state
|
|
23
|
+
([#3874](https://github.com/porsche-design-system/porsche-design-system/pull/3874))
|
|
24
|
+
- `Input Text`: ([#3897](https://github.com/porsche-design-system/porsche-design-system/pull/3897))
|
|
25
|
+
- `Select`: `filter` prop to enable an input in the dropdown to filter options
|
|
26
|
+
([#3893](https://github.com/porsche-design-system/porsche-design-system/pull/3893))
|
|
27
|
+
- `Flyout`: expose `--ref-p-flyout-pt` and `--ref-p-flyout-px` read only CSS variable
|
|
28
|
+
([#3902](https://github.com/porsche-design-system/porsche-design-system/pull/3902))
|
|
29
|
+
|
|
30
|
+
## [3.28.0] - 2025-06-02
|
|
31
|
+
|
|
32
|
+
#### Added
|
|
33
|
+
|
|
34
|
+
- `Input Number`: ([#3855](https://github.com/porsche-design-system/porsche-design-system/pull/3855))
|
|
35
|
+
|
|
36
|
+
#### Fixed
|
|
37
|
+
|
|
38
|
+
- `Select Wrapper`: update of scroll position if dropdown is navigated with keyboard
|
|
39
|
+
([#3858](https://github.com/porsche-design-system/porsche-design-system/pull/3858))
|
|
40
|
+
- `Select`, `Multi Select`: replacement of static (english) a11y announcement of active `option` with dynamic
|
|
41
|
+
announcement through `ariaActiveDescendantElement`
|
|
42
|
+
([#3826](https://github.com/porsche-design-system/porsche-design-system/pull/3826))
|
|
43
|
+
|
|
17
44
|
## [3.28.0-rc.3] - 2025-05-19
|
|
18
45
|
|
|
19
46
|
### Added
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=require("vue"),t=require("../../utils.cjs"),p=e.defineComponent({__name:"InputNumberWrapper",props:{autoComplete:{},compact:{type:Boolean,default:!1},controls:{type:Boolean,default:!1},description:{default:""},disabled:{type:Boolean,default:!1},form:{},hideLabel:{default:!1},label:{default:""},loading:{type:Boolean,default:!1},max:{},message:{default:""},min:{},name:{},placeholder:{default:""},readOnly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},state:{default:"none"},step:{default:1},theme:{},value:{default:""}},emits:["blur","change","input"],setup(u,{emit:d}){const f=t.usePrefix("p-input-number"),o=u,n=e.ref(),a=d,s=e.inject(t.themeInjectionKey),r=()=>t.syncProperties(n,{...o,theme:o.theme||s.value});return e.onMounted(()=>{r(),t.addEventListenerToElementRef(n,"blur",a),t.addEventListenerToElementRef(n,"change",a),t.addEventListenerToElementRef(n,"input",a)}),e.onUpdated(r),e.watch(s,l=>{t.syncProperties(n,{theme:o.theme||l})}),(l,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(f)),{ref_key:"pdsComponentRef",ref:n},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},512))}});module.exports=p;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=require("./InputNumberWrapper.vue.cjs");module.exports=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),t=require("../../utils.cjs"),
|
|
1
|
+
"use strict";const e=require("vue"),t=require("../../utils.cjs"),u=e.defineComponent({__name:"InputPasswordWrapper",props:{autoComplete:{},compact:{type:Boolean,default:!1},description:{default:""},disabled:{type:Boolean,default:!1},form:{},hideLabel:{default:!1},label:{default:""},loading:{type:Boolean,default:!1},maxLength:{},message:{default:""},minLength:{},name:{},placeholder:{default:""},readOnly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},state:{default:"none"},theme:{},toggle:{type:Boolean,default:!1},value:{default:""}},emits:["blur","change","input"],setup(d,{emit:f}){const p=t.usePrefix("p-input-password"),o=d,n=e.ref(),a=f,s=e.inject(t.themeInjectionKey),r=()=>t.syncProperties(n,{...o,theme:o.theme||s.value});return e.onMounted(()=>{r(),t.addEventListenerToElementRef(n,"blur",a),t.addEventListenerToElementRef(n,"change",a),t.addEventListenerToElementRef(n,"input",a)}),e.onUpdated(r),e.watch(s,l=>{t.syncProperties(n,{theme:o.theme||l})}),(l,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(p)),{ref_key:"pdsComponentRef",ref:n},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},512))}});module.exports=u;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=require("vue"),t=require("../../utils.cjs"),p=e.defineComponent({__name:"InputSearchWrapper",props:{autoComplete:{},clear:{type:Boolean,default:!1},compact:{type:Boolean,default:!1},description:{default:""},disabled:{type:Boolean,default:!1},form:{},hideLabel:{default:!1},indicator:{type:Boolean,default:!0},label:{default:""},loading:{type:Boolean,default:!1},message:{default:""},name:{},placeholder:{default:""},readOnly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},state:{default:"none"},theme:{},value:{default:""}},emits:["blur","change","input"],setup(d,{emit:u}){const f=t.usePrefix("p-input-search"),a=d,n=e.ref(),o=u,s=e.inject(t.themeInjectionKey),r=()=>t.syncProperties(n,{...a,theme:a.theme||s.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(s,l=>{t.syncProperties(n,{theme:a.theme||l})}),(l,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(f)),{ref_key:"pdsComponentRef",ref:n},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},512))}});module.exports=p;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=require("./InputSearchWrapper.vue.cjs");module.exports=e;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=require("vue"),t=require("../../utils.cjs"),f=e.defineComponent({__name:"InputTextWrapper",props:{autoComplete:{},compact:{type:Boolean,default:!1},counter:{type:Boolean,default:!1},description:{default:""},disabled:{type:Boolean,default:!1},form:{},hideLabel:{default:!1},label:{default:""},loading:{type:Boolean,default:!1},maxLength:{},message:{default:""},minLength:{},name:{},placeholder:{default:""},readOnly:{type:Boolean,default:!1},required:{type:Boolean,default:!1},spellCheck:{type:Boolean},state:{default:"none"},theme:{},value:{default:""}},emits:["blur","change","input"],setup(p,{emit:u}){const d=t.usePrefix("p-input-text"),o=p,n=e.ref(),a=u,s=e.inject(t.themeInjectionKey),r=()=>t.syncProperties(n,{...o,theme:o.theme||s.value});return e.onMounted(()=>{r(),t.addEventListenerToElementRef(n,"blur",a),t.addEventListenerToElementRef(n,"change",a),t.addEventListenerToElementRef(n,"input",a)}),e.onUpdated(r),e.watch(s,l=>{t.syncProperties(n,{theme:o.theme||l})}),(l,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(d)),{ref_key:"pdsComponentRef",ref:n},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},512))}});module.exports=f;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const e=require("./InputTextWrapper.vue.cjs");module.exports=e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),t=require("../../utils.cjs"),
|
|
1
|
+
"use strict";const e=require("vue"),t=require("../../utils.cjs"),c=e.defineComponent({__name:"SelectWrapper",props:{compact:{type:Boolean,default:!1},description:{default:""},disabled:{type:Boolean,default:!1},dropdownDirection:{default:"auto"},filter:{type:Boolean,default:!1},form:{},hideLabel:{default:!1},label:{default:""},message:{default:""},name:{},required:{type:Boolean,default:!1},state:{default:"none"},theme:{},value:{}},emits:["update"],setup(r,{emit:d}){const f=t.usePrefix("p-select"),n=r,o=e.ref(),p=d,s=e.inject(t.themeInjectionKey),l=()=>t.syncProperties(o,{...n,theme:n.theme||s.value});return e.onMounted(()=>{l(),t.addEventListenerToElementRef(o,"update",p)}),e.onUpdated(l),e.watch(s,a=>{t.syncProperties(o,{theme:n.theme||a})}),(a,u)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(f)),{ref_key:"pdsComponentRef",ref:o},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default")]),_:3},512))}});module.exports=c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),t=require("../../utils.cjs"),p=e.defineComponent({__name:"TextareaWrapper",props:{autoComplete:{
|
|
1
|
+
"use strict";const e=require("vue"),t=require("../../utils.cjs"),p=e.defineComponent({__name:"TextareaWrapper",props:{autoComplete:{},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"),o=u,n=e.ref(),a=d,r=e.inject(t.themeInjectionKey),s=()=>t.syncProperties(n,{...o,theme:o.theme||r.value});return e.onMounted(()=>{s(),t.addEventListenerToElementRef(n,"blur",a),t.addEventListenerToElementRef(n,"change",a),t.addEventListenerToElementRef(n,"input",a)}),e.onUpdated(s),e.watch(r,l=>{t.syncProperties(n,{theme:o.theme||l})}),(l,c)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(f)),{ref_key:"pdsComponentRef",ref:n},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},512))}});module.exports=p;
|
package/cjs/public-api.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@porsche-design-system/components-js"),t=require("./lib/components/AccordionWrapper.vue.cjs"),p=require("./lib/components/BannerWrapper.vue.cjs"),u=require("./lib/components/ButtonWrapper.vue.cjs"),s=require("./lib/components/ButtonGroupWrapper.vue.cjs"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=require("@porsche-design-system/components-js"),t=require("./lib/components/AccordionWrapper.vue.cjs"),p=require("./lib/components/BannerWrapper.vue.cjs"),u=require("./lib/components/ButtonWrapper.vue.cjs"),s=require("./lib/components/ButtonGroupWrapper.vue.cjs"),n=require("./lib/components/ButtonPureWrapper.vue.cjs"),i=require("./lib/components/ButtonTileWrapper.vue.cjs"),a=require("./lib/components/CanvasWrapper.vue.cjs"),c=require("./lib/components/CarouselWrapper.vue.cjs"),o=require("./lib/components/CheckboxWrapper.vue.cjs"),l=require("./lib/components/CheckboxWrapperWrapper.vue.cjs"),v=require("./lib/components/ContentWrapperWrapper.vue.cjs"),g=require("./lib/components/CrestWrapper.vue.cjs"),P=require("./lib/components/DisplayWrapper.vue.cjs"),y=require("./lib/components/DividerWrapper.vue.cjs"),W=require("./lib/components/DrilldownWrapper.vue.cjs"),q=require("./lib/components/DrilldownItemWrapper.vue.cjs"),d=require("./lib/components/DrilldownLinkWrapper.vue.cjs"),T=require("./lib/components/FieldsetWrapper.vue.cjs"),S=require("./lib/components/FieldsetWrapperWrapper.vue.cjs"),m=require("./lib/components/FlexWrapper.vue.cjs"),b=require("./lib/components/FlexItemWrapper.vue.cjs"),I=require("./lib/components/FlyoutWrapper.vue.cjs"),x=require("./lib/components/GridWrapper.vue.cjs"),C=require("./lib/components/GridItemWrapper.vue.cjs"),k=require("./lib/components/HeadingWrapper.vue.cjs"),h=require("./lib/components/HeadlineWrapper.vue.cjs"),D=require("./lib/components/IconWrapper.vue.cjs"),L=require("./lib/components/InlineNotificationWrapper.vue.cjs"),B=require("./lib/components/InputNumberWrapper.vue.cjs"),M=require("./lib/components/InputPasswordWrapper.vue.cjs"),w=require("./lib/components/InputSearchWrapper.vue.cjs"),H=require("./lib/components/InputTextWrapper.vue.cjs"),F=require("./lib/components/LinkWrapper.vue.cjs"),O=require("./lib/components/LinkPureWrapper.vue.cjs"),R=require("./lib/components/LinkSocialWrapper.vue.cjs"),G=require("./lib/components/LinkTileWrapper.vue.cjs"),f=require("./lib/components/LinkTileModelSignatureWrapper.vue.cjs"),j=require("./lib/components/LinkTileProductWrapper.vue.cjs"),z=require("./lib/components/MarqueWrapper.vue.cjs"),N=require("./lib/components/ModalWrapper.vue.cjs"),A=require("./lib/components/ModelSignatureWrapper.vue.cjs"),K=require("./lib/components/MultiSelectWrapper.vue.cjs"),J=require("./lib/components/MultiSelectOptionWrapper.vue.cjs"),E=require("./lib/components/OptgroupWrapper.vue.cjs"),Q=require("./lib/components/PaginationWrapper.vue.cjs"),U=require("./lib/components/PinCodeWrapper.vue.cjs"),V=require("./lib/components/PopoverWrapper.vue.cjs"),X=require("./lib/components/RadioButtonWrapperWrapper.vue.cjs"),Y=require("./lib/components/ScrollerWrapper.vue.cjs"),Z=require("./lib/components/SegmentedControlWrapper.vue.cjs"),$=require("./lib/components/SegmentedControlItemWrapper.vue.cjs"),ee=require("./lib/components/SelectWrapper.vue.cjs"),re=require("./lib/components/SelectOptionWrapper.vue.cjs"),_e=require("./lib/components/SelectWrapperWrapper.vue.cjs"),te=require("./lib/components/SheetWrapper.vue.cjs"),pe=require("./lib/components/SpinnerWrapper.vue.cjs"),ue=require("./lib/components/StepperHorizontalWrapper.vue.cjs"),se=require("./lib/components/StepperHorizontalItemWrapper.vue.cjs"),ne=require("./lib/components/SwitchWrapper.vue.cjs"),ie=require("./lib/components/TableWrapper.vue.cjs"),ae=require("./lib/components/TableBodyWrapper.vue.cjs"),ce=require("./lib/components/TableCellWrapper.vue.cjs"),oe=require("./lib/components/TableHeadWrapper.vue.cjs"),le=require("./lib/components/TableHeadCellWrapper.vue.cjs"),ve=require("./lib/components/TableHeadRowWrapper.vue.cjs"),ge=require("./lib/components/TableRowWrapper.vue.cjs"),Pe=require("./lib/components/TabsWrapper.vue.cjs"),ye=require("./lib/components/TabsBarWrapper.vue.cjs"),We=require("./lib/components/TabsItemWrapper.vue.cjs"),qe=require("./lib/components/TagWrapper.vue.cjs"),de=require("./lib/components/TagDismissibleWrapper.vue.cjs"),Te=require("./lib/components/TextWrapper.vue.cjs"),Se=require("./lib/components/TextFieldWrapperWrapper.vue.cjs"),me=require("./lib/components/TextListWrapper.vue.cjs"),be=require("./lib/components/TextListItemWrapper.vue.cjs"),Ie=require("./lib/components/TextareaWrapper.vue.cjs"),xe=require("./lib/components/TextareaWrapperWrapper.vue.cjs"),Ce=require("./lib/components/ToastWrapper.vue.cjs"),ke=require("./lib/components/WordmarkWrapper.vue.cjs"),e=require("./utils.cjs"),he=require("./PorscheDesignSystemProvider.vue.cjs"),r=require("./plugin.cjs");Object.defineProperty(exports,"componentsReady",{enumerable:!0,get:()=>_.componentsReady});exports.PAccordion=t;exports.PBanner=p;exports.PButton=u;exports.PButtonGroup=s;exports.PButtonPure=n;exports.PButtonTile=i;exports.PCanvas=a;exports.PCarousel=c;exports.PCheckbox=o;exports.PCheckboxWrapper=l;exports.PContentWrapper=v;exports.PCrest=g;exports.PDisplay=P;exports.PDivider=y;exports.PDrilldown=W;exports.PDrilldownItem=q;exports.PDrilldownLink=d;exports.PFieldset=T;exports.PFieldsetWrapper=S;exports.PFlex=m;exports.PFlexItem=b;exports.PFlyout=I;exports.PGrid=x;exports.PGridItem=C;exports.PHeading=k;exports.PHeadline=h;exports.PIcon=D;exports.PInlineNotification=L;exports.PInputNumber=B;exports.PInputPassword=M;exports.PInputSearch=w;exports.PInputText=H;exports.PLink=F;exports.PLinkPure=O;exports.PLinkSocial=R;exports.PLinkTile=G;exports.PLinkTileModelSignature=f;exports.PLinkTileProduct=j;exports.PMarque=z;exports.PModal=N;exports.PModelSignature=A;exports.PMultiSelect=K;exports.PMultiSelectOption=J;exports.POptgroup=E;exports.PPagination=Q;exports.PPinCode=U;exports.PPopover=V;exports.PRadioButtonWrapper=X;exports.PScroller=Y;exports.PSegmentedControl=Z;exports.PSegmentedControlItem=$;exports.PSelect=ee;exports.PSelectOption=re;exports.PSelectWrapper=_e;exports.PSheet=te;exports.PSpinner=pe;exports.PStepperHorizontal=ue;exports.PStepperHorizontalItem=se;exports.PSwitch=ne;exports.PTable=ie;exports.PTableBody=ae;exports.PTableCell=ce;exports.PTableHead=oe;exports.PTableHeadCell=le;exports.PTableHeadRow=ve;exports.PTableRow=ge;exports.PTabs=Pe;exports.PTabsBar=ye;exports.PTabsItem=We;exports.PTag=qe;exports.PTagDismissible=de;exports.PText=Te;exports.PTextFieldWrapper=Se;exports.PTextList=me;exports.PTextListItem=be;exports.PTextarea=Ie;exports.PTextareaWrapper=xe;exports.PToast=Ce;exports.PWordmark=ke;exports.themeInjectionKey=e.themeInjectionKey;exports.useToastManager=e.useToastManager;exports.PorscheDesignSystemProvider=he;exports.createPorscheDesignSystem=r.createPorscheDesignSystem;exports.usePorscheDesignSystemPlugin=r.usePorscheDesignSystemPlugin;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import type { InputNumberAutoComplete, BreakpointCustomizable, InputNumberState, Theme } from '../types';
|
|
2
|
+
type PInputNumberProps = {
|
|
3
|
+
/**
|
|
4
|
+
* Specifies whether the input can be autofilled by the browser
|
|
5
|
+
*/
|
|
6
|
+
autoComplete?: InputNumberAutoComplete;
|
|
7
|
+
/**
|
|
8
|
+
* Displays as a compact version.
|
|
9
|
+
*/
|
|
10
|
+
compact?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Show or hide the increment/decrement stepper controls.
|
|
13
|
+
*/
|
|
14
|
+
controls?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The description text.
|
|
17
|
+
*/
|
|
18
|
+
description?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Marks the number input as disabled.
|
|
21
|
+
*/
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* The id of a form element the number input should be associated with.
|
|
25
|
+
*/
|
|
26
|
+
form?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Show or hide label and description text. For better accessibility, it is recommended to show the label.
|
|
29
|
+
*/
|
|
30
|
+
hideLabel?: BreakpointCustomizable<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* The label text.
|
|
33
|
+
*/
|
|
34
|
+
label?: string;
|
|
35
|
+
/**
|
|
36
|
+
* @experimental Shows a loading indicator.
|
|
37
|
+
*/
|
|
38
|
+
loading?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The max value of the number input.
|
|
41
|
+
*/
|
|
42
|
+
max?: number;
|
|
43
|
+
/**
|
|
44
|
+
* The message styled depending on validation state.
|
|
45
|
+
*/
|
|
46
|
+
message?: string;
|
|
47
|
+
/**
|
|
48
|
+
* The min value of the number input.
|
|
49
|
+
*/
|
|
50
|
+
min?: number;
|
|
51
|
+
/**
|
|
52
|
+
* The name of the number input.
|
|
53
|
+
*/
|
|
54
|
+
name: string;
|
|
55
|
+
/**
|
|
56
|
+
* The placeholder text.
|
|
57
|
+
*/
|
|
58
|
+
placeholder?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Specifies whether the number input should be read-only.
|
|
61
|
+
*/
|
|
62
|
+
readOnly?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Marks the number input as required.
|
|
65
|
+
*/
|
|
66
|
+
required?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* The validation state.
|
|
69
|
+
*/
|
|
70
|
+
state?: InputNumberState;
|
|
71
|
+
/**
|
|
72
|
+
* The granularity that the value must adhere to.
|
|
73
|
+
*/
|
|
74
|
+
step?: number;
|
|
75
|
+
/**
|
|
76
|
+
* Adapts the color depending on the theme.
|
|
77
|
+
*/
|
|
78
|
+
theme?: Theme;
|
|
79
|
+
/**
|
|
80
|
+
* The number input value.
|
|
81
|
+
*/
|
|
82
|
+
value?: string;
|
|
83
|
+
};
|
|
84
|
+
declare function __VLS_template(): {
|
|
85
|
+
default?(_: {}): any;
|
|
86
|
+
};
|
|
87
|
+
declare const __VLS_component: import("vue").DefineComponent<PInputNumberProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
88
|
+
blur: (value: Event) => void;
|
|
89
|
+
change: (value: Event) => void;
|
|
90
|
+
input: (value: InputEvent) => void;
|
|
91
|
+
}, string, import("vue").PublicProps, Readonly<PInputNumberProps> & Readonly<{
|
|
92
|
+
onBlur?: ((value: Event) => any) | undefined;
|
|
93
|
+
onChange?: ((value: Event) => any) | undefined;
|
|
94
|
+
onInput?: ((value: InputEvent) => any) | undefined;
|
|
95
|
+
}>, {
|
|
96
|
+
step: number;
|
|
97
|
+
label: string;
|
|
98
|
+
description: string;
|
|
99
|
+
disabled: boolean;
|
|
100
|
+
compact: boolean;
|
|
101
|
+
state: InputNumberState;
|
|
102
|
+
required: boolean;
|
|
103
|
+
hideLabel: BreakpointCustomizable<boolean>;
|
|
104
|
+
loading: boolean;
|
|
105
|
+
value: string;
|
|
106
|
+
message: string;
|
|
107
|
+
controls: boolean;
|
|
108
|
+
placeholder: string;
|
|
109
|
+
readOnly: boolean;
|
|
110
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
111
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
112
|
+
export default _default;
|
|
113
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
114
|
+
new (): {
|
|
115
|
+
$slots: S;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { defineComponent as d, ref as m, inject as c, onMounted as i, onUpdated as h, watch as y, openBlock as b, createBlock as B, resolveDynamicComponent as C, unref as _, withCtx as g, renderSlot as v } from "vue";
|
|
2
|
+
import { usePrefix as x, themeInjectionKey as R, addEventListenerToElementRef as a, syncProperties as s } from "../../utils.mjs";
|
|
3
|
+
const j = /* @__PURE__ */ d({
|
|
4
|
+
__name: "InputNumberWrapper",
|
|
5
|
+
props: {
|
|
6
|
+
autoComplete: {},
|
|
7
|
+
compact: { type: Boolean, default: !1 },
|
|
8
|
+
controls: { type: Boolean, default: !1 },
|
|
9
|
+
description: { default: "" },
|
|
10
|
+
disabled: { type: Boolean, default: !1 },
|
|
11
|
+
form: {},
|
|
12
|
+
hideLabel: { default: !1 },
|
|
13
|
+
label: { default: "" },
|
|
14
|
+
loading: { type: Boolean, default: !1 },
|
|
15
|
+
max: {},
|
|
16
|
+
message: { default: "" },
|
|
17
|
+
min: {},
|
|
18
|
+
name: {},
|
|
19
|
+
placeholder: { default: "" },
|
|
20
|
+
readOnly: { type: Boolean, default: !1 },
|
|
21
|
+
required: { type: Boolean, default: !1 },
|
|
22
|
+
state: { default: "none" },
|
|
23
|
+
step: { default: 1 },
|
|
24
|
+
theme: {},
|
|
25
|
+
value: { default: "" }
|
|
26
|
+
},
|
|
27
|
+
emits: ["blur", "change", "input"],
|
|
28
|
+
setup(p, { emit: r }) {
|
|
29
|
+
const u = x("p-input-number"), t = p, e = m(), o = r, l = c(R), f = () => s(e, { ...t, theme: t.theme || l.value });
|
|
30
|
+
return i(() => {
|
|
31
|
+
f(), a(e, "blur", o), a(e, "change", o), a(e, "input", o);
|
|
32
|
+
}), h(f), y(l, (n) => {
|
|
33
|
+
s(e, { theme: t.theme || n });
|
|
34
|
+
}), (n, k) => (b(), B(C(_(u)), {
|
|
35
|
+
ref_key: "pdsComponentRef",
|
|
36
|
+
ref: e
|
|
37
|
+
}, {
|
|
38
|
+
default: g(() => [
|
|
39
|
+
v(n.$slots, "default")
|
|
40
|
+
]),
|
|
41
|
+
_: 3
|
|
42
|
+
}, 512));
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
export {
|
|
46
|
+
j as default
|
|
47
|
+
};
|
|
@@ -5,7 +5,7 @@ type PInputPasswordProps = {
|
|
|
5
5
|
*/
|
|
6
6
|
autoComplete?: InputPasswordAutoComplete;
|
|
7
7
|
/**
|
|
8
|
-
* Displays as compact version.
|
|
8
|
+
* Displays as a compact version.
|
|
9
9
|
*/
|
|
10
10
|
compact?: boolean;
|
|
11
11
|
/**
|
|
@@ -28,6 +28,10 @@ type PInputPasswordProps = {
|
|
|
28
28
|
* The label text.
|
|
29
29
|
*/
|
|
30
30
|
label?: string;
|
|
31
|
+
/**
|
|
32
|
+
* @experimental Shows a loading indicator.
|
|
33
|
+
*/
|
|
34
|
+
loading?: boolean;
|
|
31
35
|
/**
|
|
32
36
|
* The max length of the password input.
|
|
33
37
|
*/
|
|
@@ -93,9 +97,9 @@ declare const __VLS_component: import("vue").DefineComponent<PInputPasswordProps
|
|
|
93
97
|
state: InputPasswordState;
|
|
94
98
|
required: boolean;
|
|
95
99
|
hideLabel: BreakpointCustomizable<boolean>;
|
|
100
|
+
loading: boolean;
|
|
96
101
|
value: string;
|
|
97
102
|
message: string;
|
|
98
|
-
autoComplete: InputPasswordAutoComplete;
|
|
99
103
|
placeholder: string;
|
|
100
104
|
readOnly: boolean;
|
|
101
105
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { defineComponent as u, ref as m, inject as c, onMounted as i, onUpdated as h, watch as y, openBlock as g, createBlock as B, resolveDynamicComponent as C, unref as _, withCtx as b, renderSlot as w } from "vue";
|
|
2
|
-
import { usePrefix as v, themeInjectionKey as x, addEventListenerToElementRef as
|
|
2
|
+
import { usePrefix as v, themeInjectionKey as x, addEventListenerToElementRef as n, syncProperties as f } from "../../utils.mjs";
|
|
3
3
|
const k = /* @__PURE__ */ u({
|
|
4
4
|
__name: "InputPasswordWrapper",
|
|
5
5
|
props: {
|
|
6
|
-
autoComplete: {
|
|
6
|
+
autoComplete: {},
|
|
7
7
|
compact: { type: Boolean, default: !1 },
|
|
8
8
|
description: { default: "" },
|
|
9
9
|
disabled: { type: Boolean, default: !1 },
|
|
10
10
|
form: {},
|
|
11
11
|
hideLabel: { default: !1 },
|
|
12
12
|
label: { default: "" },
|
|
13
|
+
loading: { type: Boolean, default: !1 },
|
|
13
14
|
maxLength: {},
|
|
14
15
|
message: { default: "" },
|
|
15
16
|
minLength: {},
|
|
@@ -26,15 +27,15 @@ const k = /* @__PURE__ */ u({
|
|
|
26
27
|
setup(p, { emit: r }) {
|
|
27
28
|
const d = v("p-input-password"), t = p, e = m(), o = r, l = c(x), s = () => f(e, { ...t, theme: t.theme || l.value });
|
|
28
29
|
return i(() => {
|
|
29
|
-
s(),
|
|
30
|
-
}), h(s), y(l, (
|
|
31
|
-
f(e, { theme: t.theme ||
|
|
32
|
-
}), (
|
|
30
|
+
s(), n(e, "blur", o), n(e, "change", o), n(e, "input", o);
|
|
31
|
+
}), h(s), y(l, (a) => {
|
|
32
|
+
f(e, { theme: t.theme || a });
|
|
33
|
+
}), (a, L) => (g(), B(C(_(d)), {
|
|
33
34
|
ref_key: "pdsComponentRef",
|
|
34
35
|
ref: e
|
|
35
36
|
}, {
|
|
36
37
|
default: b(() => [
|
|
37
|
-
w(
|
|
38
|
+
w(a.$slots, "default")
|
|
38
39
|
]),
|
|
39
40
|
_: 3
|
|
40
41
|
}, 512));
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { InputSearchAutoComplete, BreakpointCustomizable, InputSearchState, Theme } from '../types';
|
|
2
|
+
type PInputSearchProps = {
|
|
3
|
+
/**
|
|
4
|
+
* Specifies whether the input can be autofilled by the browser
|
|
5
|
+
*/
|
|
6
|
+
autoComplete?: InputSearchAutoComplete;
|
|
7
|
+
/**
|
|
8
|
+
* Show clear input value button
|
|
9
|
+
*/
|
|
10
|
+
clear?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Displays as a compact version.
|
|
13
|
+
*/
|
|
14
|
+
compact?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The description text.
|
|
17
|
+
*/
|
|
18
|
+
description?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Marks the search input as disabled.
|
|
21
|
+
*/
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* The id of a form element the search input should be associated with.
|
|
25
|
+
*/
|
|
26
|
+
form?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Show or hide label and description text. For better accessibility it is recommended to show the label.
|
|
29
|
+
*/
|
|
30
|
+
hideLabel?: BreakpointCustomizable<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Show search indicator icon
|
|
33
|
+
*/
|
|
34
|
+
indicator?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* The label text.
|
|
37
|
+
*/
|
|
38
|
+
label?: string;
|
|
39
|
+
/**
|
|
40
|
+
* @experimental Shows a loading indicator.
|
|
41
|
+
*/
|
|
42
|
+
loading?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* The message styled depending on validation state.
|
|
45
|
+
*/
|
|
46
|
+
message?: string;
|
|
47
|
+
/**
|
|
48
|
+
* The name of the search input.
|
|
49
|
+
*/
|
|
50
|
+
name: string;
|
|
51
|
+
/**
|
|
52
|
+
* The placeholder text.
|
|
53
|
+
*/
|
|
54
|
+
placeholder?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Specifies whether the search input should be read-only.
|
|
57
|
+
*/
|
|
58
|
+
readOnly?: boolean;
|
|
59
|
+
/**
|
|
60
|
+
* Marks the search input as required.
|
|
61
|
+
*/
|
|
62
|
+
required?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* The validation state.
|
|
65
|
+
*/
|
|
66
|
+
state?: InputSearchState;
|
|
67
|
+
/**
|
|
68
|
+
* Adapts the color depending on the theme.
|
|
69
|
+
*/
|
|
70
|
+
theme?: Theme;
|
|
71
|
+
/**
|
|
72
|
+
* The search input value.
|
|
73
|
+
*/
|
|
74
|
+
value?: string;
|
|
75
|
+
};
|
|
76
|
+
declare function __VLS_template(): {
|
|
77
|
+
default?(_: {}): any;
|
|
78
|
+
};
|
|
79
|
+
declare const __VLS_component: import("vue").DefineComponent<PInputSearchProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
80
|
+
blur: (value: Event) => void;
|
|
81
|
+
change: (value: Event) => void;
|
|
82
|
+
input: (value: InputEvent) => void;
|
|
83
|
+
}, string, import("vue").PublicProps, Readonly<PInputSearchProps> & Readonly<{
|
|
84
|
+
onBlur?: ((value: Event) => any) | undefined;
|
|
85
|
+
onChange?: ((value: Event) => any) | undefined;
|
|
86
|
+
onInput?: ((value: InputEvent) => any) | undefined;
|
|
87
|
+
}>, {
|
|
88
|
+
label: string;
|
|
89
|
+
description: string;
|
|
90
|
+
disabled: boolean;
|
|
91
|
+
compact: boolean;
|
|
92
|
+
state: InputSearchState;
|
|
93
|
+
required: boolean;
|
|
94
|
+
hideLabel: BreakpointCustomizable<boolean>;
|
|
95
|
+
loading: boolean;
|
|
96
|
+
value: string;
|
|
97
|
+
message: string;
|
|
98
|
+
placeholder: string;
|
|
99
|
+
readOnly: boolean;
|
|
100
|
+
clear: boolean;
|
|
101
|
+
indicator: boolean;
|
|
102
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
103
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
104
|
+
export default _default;
|
|
105
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
106
|
+
new (): {
|
|
107
|
+
$slots: S;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { defineComponent as u, ref as c, inject as m, onMounted as i, onUpdated as h, watch as y, openBlock as B, createBlock as C, resolveDynamicComponent as _, unref as b, withCtx as g, renderSlot as v } from "vue";
|
|
2
|
+
import { usePrefix as R, themeInjectionKey as k, addEventListenerToElementRef as n, syncProperties as f } from "../../utils.mjs";
|
|
3
|
+
const j = /* @__PURE__ */ u({
|
|
4
|
+
__name: "InputSearchWrapper",
|
|
5
|
+
props: {
|
|
6
|
+
autoComplete: {},
|
|
7
|
+
clear: { type: Boolean, default: !1 },
|
|
8
|
+
compact: { type: Boolean, default: !1 },
|
|
9
|
+
description: { default: "" },
|
|
10
|
+
disabled: { type: Boolean, default: !1 },
|
|
11
|
+
form: {},
|
|
12
|
+
hideLabel: { default: !1 },
|
|
13
|
+
indicator: { type: Boolean, default: !0 },
|
|
14
|
+
label: { default: "" },
|
|
15
|
+
loading: { type: Boolean, default: !1 },
|
|
16
|
+
message: { default: "" },
|
|
17
|
+
name: {},
|
|
18
|
+
placeholder: { default: "" },
|
|
19
|
+
readOnly: { type: Boolean, default: !1 },
|
|
20
|
+
required: { type: Boolean, default: !1 },
|
|
21
|
+
state: { default: "none" },
|
|
22
|
+
theme: {},
|
|
23
|
+
value: { default: "" }
|
|
24
|
+
},
|
|
25
|
+
emits: ["blur", "change", "input"],
|
|
26
|
+
setup(p, { emit: s }) {
|
|
27
|
+
const d = R("p-input-search"), t = p, e = c(), a = s, l = m(k), r = () => f(e, { ...t, theme: t.theme || l.value });
|
|
28
|
+
return i(() => {
|
|
29
|
+
r(), n(e, "blur", a), n(e, "change", a), n(e, "input", a);
|
|
30
|
+
}), h(r), y(l, (o) => {
|
|
31
|
+
f(e, { theme: t.theme || o });
|
|
32
|
+
}), (o, w) => (B(), C(_(b(d)), {
|
|
33
|
+
ref_key: "pdsComponentRef",
|
|
34
|
+
ref: e
|
|
35
|
+
}, {
|
|
36
|
+
default: g(() => [
|
|
37
|
+
v(o.$slots, "default")
|
|
38
|
+
]),
|
|
39
|
+
_: 3
|
|
40
|
+
}, 512));
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
export {
|
|
44
|
+
j as default
|
|
45
|
+
};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import type { InputTextAutoComplete, BreakpointCustomizable, InputTextState, Theme } from '../types';
|
|
2
|
+
type PInputTextProps = {
|
|
3
|
+
/**
|
|
4
|
+
* Specifies whether the input can be autofilled by the browser
|
|
5
|
+
*/
|
|
6
|
+
autoComplete?: InputTextAutoComplete;
|
|
7
|
+
/**
|
|
8
|
+
* Displays as a compact version.
|
|
9
|
+
*/
|
|
10
|
+
compact?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Show or hide the character counter.
|
|
13
|
+
*/
|
|
14
|
+
counter?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The description text.
|
|
17
|
+
*/
|
|
18
|
+
description?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Marks the text input as disabled.
|
|
21
|
+
*/
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* The id of a form element the text input should be associated with.
|
|
25
|
+
*/
|
|
26
|
+
form?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Show or hide label and description text. For better accessibility, it is recommended to show the label.
|
|
29
|
+
*/
|
|
30
|
+
hideLabel?: BreakpointCustomizable<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* The label text.
|
|
33
|
+
*/
|
|
34
|
+
label?: string;
|
|
35
|
+
/**
|
|
36
|
+
* @experimental Shows a loading indicator.
|
|
37
|
+
*/
|
|
38
|
+
loading?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* The max length of the text input.
|
|
41
|
+
*/
|
|
42
|
+
maxLength?: number;
|
|
43
|
+
/**
|
|
44
|
+
* The message styled depending on validation state.
|
|
45
|
+
*/
|
|
46
|
+
message?: string;
|
|
47
|
+
/**
|
|
48
|
+
* The min length of the text input.
|
|
49
|
+
*/
|
|
50
|
+
minLength?: number;
|
|
51
|
+
/**
|
|
52
|
+
* The name of the text input.
|
|
53
|
+
*/
|
|
54
|
+
name: string;
|
|
55
|
+
/**
|
|
56
|
+
* The placeholder text.
|
|
57
|
+
*/
|
|
58
|
+
placeholder?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Specifies whether the text input should be read-only.
|
|
61
|
+
*/
|
|
62
|
+
readOnly?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Marks the text input as required.
|
|
65
|
+
*/
|
|
66
|
+
required?: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Indicate whether to enable spell-checking.
|
|
69
|
+
*/
|
|
70
|
+
spellCheck?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* The validation state.
|
|
73
|
+
*/
|
|
74
|
+
state?: InputTextState;
|
|
75
|
+
/**
|
|
76
|
+
* Adapts the color depending on the theme.
|
|
77
|
+
*/
|
|
78
|
+
theme?: Theme;
|
|
79
|
+
/**
|
|
80
|
+
* The text input value.
|
|
81
|
+
*/
|
|
82
|
+
value?: string;
|
|
83
|
+
};
|
|
84
|
+
declare function __VLS_template(): {
|
|
85
|
+
default?(_: {}): any;
|
|
86
|
+
};
|
|
87
|
+
declare const __VLS_component: import("vue").DefineComponent<PInputTextProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
88
|
+
blur: (value: Event) => void;
|
|
89
|
+
change: (value: Event) => void;
|
|
90
|
+
input: (value: InputEvent) => void;
|
|
91
|
+
}, string, import("vue").PublicProps, Readonly<PInputTextProps> & Readonly<{
|
|
92
|
+
onBlur?: ((value: Event) => any) | undefined;
|
|
93
|
+
onChange?: ((value: Event) => any) | undefined;
|
|
94
|
+
onInput?: ((value: InputEvent) => any) | undefined;
|
|
95
|
+
}>, {
|
|
96
|
+
label: string;
|
|
97
|
+
description: string;
|
|
98
|
+
disabled: boolean;
|
|
99
|
+
compact: boolean;
|
|
100
|
+
state: InputTextState;
|
|
101
|
+
required: boolean;
|
|
102
|
+
hideLabel: BreakpointCustomizable<boolean>;
|
|
103
|
+
loading: boolean;
|
|
104
|
+
value: string;
|
|
105
|
+
message: string;
|
|
106
|
+
placeholder: string;
|
|
107
|
+
readOnly: boolean;
|
|
108
|
+
counter: boolean;
|
|
109
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
110
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
111
|
+
export default _default;
|
|
112
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
113
|
+
new (): {
|
|
114
|
+
$slots: S;
|
|
115
|
+
};
|
|
116
|
+
};
|