routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
+3
@@ -0,0 +1,3 @@
|
||||
export { md1 } from './md1.js';
|
||||
export { md2 } from './md2.js';
|
||||
export { md3 } from './md3.js';
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
export { md1 } from "./md1.js";
|
||||
export { md2 } from "./md2.js";
|
||||
export { md3 } from "./md3.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["md1","md2","md3"],"sources":["../../src/blueprints/index.ts"],"sourcesContent":["export { md1 } from './md1'\nexport { md2 } from './md2'\nexport { md3 } from './md3'\n"],"mappings":"SAASA,GAAG;AAAA,SACHC,GAAG;AAAA,SACHC,GAAG","ignoreList":[]}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import type { Blueprint } from '../framework.js';
|
||||
export declare const md1: Blueprint;
|
||||
+93
@@ -0,0 +1,93 @@
|
||||
// Icons
|
||||
import { mdi } from "../iconsets/mdi.js"; // Types
|
||||
export const md1 = {
|
||||
defaults: {
|
||||
global: {
|
||||
rounded: 'sm'
|
||||
},
|
||||
VAvatar: {
|
||||
rounded: 'circle'
|
||||
},
|
||||
VAutocomplete: {
|
||||
variant: 'underlined'
|
||||
},
|
||||
VBanner: {
|
||||
color: 'primary'
|
||||
},
|
||||
VBtn: {
|
||||
class: 'text-uppercase',
|
||||
color: 'primary',
|
||||
rounded: 0
|
||||
},
|
||||
VCheckbox: {
|
||||
color: 'secondary',
|
||||
indentDetails: false
|
||||
},
|
||||
VCombobox: {
|
||||
variant: 'underlined'
|
||||
},
|
||||
VDatePicker: {
|
||||
color: 'primary',
|
||||
controlHeight: 44,
|
||||
elevation: 1,
|
||||
rounded: 0,
|
||||
controlVariant: 'modal',
|
||||
VBtn: {
|
||||
color: 'high-emphasis',
|
||||
rounded: 'circle'
|
||||
}
|
||||
},
|
||||
VSelect: {
|
||||
variant: 'underlined'
|
||||
},
|
||||
VSlider: {
|
||||
color: 'primary',
|
||||
indentDetails: false
|
||||
},
|
||||
VSwitch: {
|
||||
indentDetails: false
|
||||
},
|
||||
VRadioGroup: {
|
||||
indentDetails: false
|
||||
},
|
||||
VRangeSlider: {
|
||||
indentDetails: false
|
||||
},
|
||||
VTabs: {
|
||||
color: 'primary'
|
||||
},
|
||||
VTextarea: {
|
||||
variant: 'underlined'
|
||||
},
|
||||
VTextField: {
|
||||
variant: 'underlined'
|
||||
},
|
||||
VToolbar: {
|
||||
VBtn: {
|
||||
color: null
|
||||
}
|
||||
}
|
||||
},
|
||||
icons: {
|
||||
defaultSet: 'mdi',
|
||||
sets: {
|
||||
mdi
|
||||
}
|
||||
},
|
||||
theme: {
|
||||
themes: {
|
||||
light: {
|
||||
colors: {
|
||||
primary: '#3F51B5',
|
||||
'primary-darken-1': '#303F9F',
|
||||
'primary-lighten-1': '#C5CAE9',
|
||||
secondary: '#FF4081',
|
||||
'secondary-darken-1': '#F50057',
|
||||
'secondary-lighten-1': '#FF80AB',
|
||||
accent: '#009688'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=md1.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"md1.js","names":["mdi","md1","defaults","global","rounded","VAvatar","VAutocomplete","variant","VBanner","color","VBtn","class","VCheckbox","indentDetails","VCombobox","VDatePicker","controlHeight","elevation","controlVariant","VSelect","VSlider","VSwitch","VRadioGroup","VRangeSlider","VTabs","VTextarea","VTextField","VToolbar","icons","defaultSet","sets","theme","themes","light","colors","primary","secondary","accent"],"sources":["../../src/blueprints/md1.ts"],"sourcesContent":["// Icons\nimport { mdi } from '@/iconsets/mdi'\n\n// Types\nimport type { Blueprint } from '@/framework'\n\nexport const md1: Blueprint = {\n defaults: {\n global: {\n rounded: 'sm',\n },\n VAvatar: {\n rounded: 'circle',\n },\n VAutocomplete: {\n variant: 'underlined',\n },\n VBanner: {\n color: 'primary',\n },\n VBtn: {\n class: 'text-uppercase',\n color: 'primary',\n rounded: 0,\n },\n VCheckbox: {\n color: 'secondary',\n indentDetails: false,\n },\n VCombobox: {\n variant: 'underlined',\n },\n VDatePicker: {\n color: 'primary',\n controlHeight: 44,\n elevation: 1,\n rounded: 0,\n controlVariant: 'modal',\n\n VBtn: {\n color: 'high-emphasis',\n rounded: 'circle',\n },\n },\n VSelect: {\n variant: 'underlined',\n },\n VSlider: {\n color: 'primary',\n indentDetails: false,\n },\n VSwitch: {\n indentDetails: false,\n },\n VRadioGroup: {\n indentDetails: false,\n },\n VRangeSlider: {\n indentDetails: false,\n },\n VTabs: {\n color: 'primary',\n },\n VTextarea: {\n variant: 'underlined',\n },\n VTextField: {\n variant: 'underlined',\n },\n VToolbar: {\n VBtn: {\n color: null,\n },\n },\n },\n icons: {\n defaultSet: 'mdi',\n sets: {\n mdi,\n },\n },\n theme: {\n themes: {\n light: {\n colors: {\n primary: '#3F51B5',\n 'primary-darken-1': '#303F9F',\n 'primary-lighten-1': '#C5CAE9',\n secondary: '#FF4081',\n 'secondary-darken-1': '#F50057',\n 'secondary-lighten-1': '#FF80AB',\n accent: '#009688',\n },\n },\n },\n },\n}\n"],"mappings":"AAAA;AAAA,SACSA,GAAG,8BAEZ;AAGA,OAAO,MAAMC,GAAc,GAAG;EAC5BC,QAAQ,EAAE;IACRC,MAAM,EAAE;MACNC,OAAO,EAAE;IACX,CAAC;IACDC,OAAO,EAAE;MACPD,OAAO,EAAE;IACX,CAAC;IACDE,aAAa,EAAE;MACbC,OAAO,EAAE;IACX,CAAC;IACDC,OAAO,EAAE;MACPC,KAAK,EAAE;IACT,CAAC;IACDC,IAAI,EAAE;MACJC,KAAK,EAAE,gBAAgB;MACvBF,KAAK,EAAE,SAAS;MAChBL,OAAO,EAAE;IACX,CAAC;IACDQ,SAAS,EAAE;MACTH,KAAK,EAAE,WAAW;MAClBI,aAAa,EAAE;IACjB,CAAC;IACDC,SAAS,EAAE;MACTP,OAAO,EAAE;IACX,CAAC;IACDQ,WAAW,EAAE;MACXN,KAAK,EAAE,SAAS;MAChBO,aAAa,EAAE,EAAE;MACjBC,SAAS,EAAE,CAAC;MACZb,OAAO,EAAE,CAAC;MACVc,cAAc,EAAE,OAAO;MAEvBR,IAAI,EAAE;QACJD,KAAK,EAAE,eAAe;QACtBL,OAAO,EAAE;MACX;IACF,CAAC;IACDe,OAAO,EAAE;MACPZ,OAAO,EAAE;IACX,CAAC;IACDa,OAAO,EAAE;MACPX,KAAK,EAAE,SAAS;MAChBI,aAAa,EAAE;IACjB,CAAC;IACDQ,OAAO,EAAE;MACPR,aAAa,EAAE;IACjB,CAAC;IACDS,WAAW,EAAE;MACXT,aAAa,EAAE;IACjB,CAAC;IACDU,YAAY,EAAE;MACZV,aAAa,EAAE;IACjB,CAAC;IACDW,KAAK,EAAE;MACLf,KAAK,EAAE;IACT,CAAC;IACDgB,SAAS,EAAE;MACTlB,OAAO,EAAE;IACX,CAAC;IACDmB,UAAU,EAAE;MACVnB,OAAO,EAAE;IACX,CAAC;IACDoB,QAAQ,EAAE;MACRjB,IAAI,EAAE;QACJD,KAAK,EAAE;MACT;IACF;EACF,CAAC;EACDmB,KAAK,EAAE;IACLC,UAAU,EAAE,KAAK;IACjBC,IAAI,EAAE;MACJ9B;IACF;EACF,CAAC;EACD+B,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,KAAK,EAAE;QACLC,MAAM,EAAE;UACNC,OAAO,EAAE,SAAS;UAClB,kBAAkB,EAAE,SAAS;UAC7B,mBAAmB,EAAE,SAAS;UAC9BC,SAAS,EAAE,SAAS;UACpB,oBAAoB,EAAE,SAAS;UAC/B,qBAAqB,EAAE,SAAS;UAChCC,MAAM,EAAE;QACV;MACF;IACF;EACF;AACF,CAAC","ignoreList":[]}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import type { Blueprint } from '../framework.js';
|
||||
export declare const md2: Blueprint;
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
// Icons
|
||||
import { mdi } from "../iconsets/mdi.js"; // Types
|
||||
export const md2 = {
|
||||
defaults: {
|
||||
VAvatar: {
|
||||
rounded: 'circle'
|
||||
},
|
||||
VAutocomplete: {
|
||||
variant: 'filled'
|
||||
},
|
||||
VBanner: {
|
||||
color: 'primary'
|
||||
},
|
||||
VBtn: {
|
||||
class: 'text-uppercase',
|
||||
color: 'primary'
|
||||
},
|
||||
VCheckbox: {
|
||||
color: 'secondary',
|
||||
indentDetails: true
|
||||
},
|
||||
VCombobox: {
|
||||
variant: 'filled'
|
||||
},
|
||||
VDatePicker: {
|
||||
color: 'primary',
|
||||
controlHeight: 56,
|
||||
elevation: 2,
|
||||
rounded: 'md',
|
||||
controlVariant: 'modal',
|
||||
VBtn: {
|
||||
color: 'high-emphasis',
|
||||
rounded: 'circle'
|
||||
}
|
||||
},
|
||||
VRadioGroup: {
|
||||
indentDetails: true
|
||||
},
|
||||
VSelect: {
|
||||
variant: 'filled'
|
||||
},
|
||||
VSlider: {
|
||||
color: 'primary',
|
||||
indentDetails: true
|
||||
},
|
||||
VRangeSlider: {
|
||||
indentDetails: true
|
||||
},
|
||||
VSwitch: {
|
||||
indentDetails: true
|
||||
},
|
||||
VTabs: {
|
||||
color: 'primary'
|
||||
},
|
||||
VTextarea: {
|
||||
variant: 'filled'
|
||||
},
|
||||
VTextField: {
|
||||
variant: 'filled'
|
||||
},
|
||||
VToolbar: {
|
||||
VBtn: {
|
||||
color: null
|
||||
}
|
||||
}
|
||||
},
|
||||
icons: {
|
||||
defaultSet: 'mdi',
|
||||
sets: {
|
||||
mdi
|
||||
}
|
||||
},
|
||||
theme: {
|
||||
themes: {
|
||||
light: {
|
||||
colors: {
|
||||
primary: '#6200EE',
|
||||
'primary-darken-1': '#3700B3',
|
||||
secondary: '#03DAC6',
|
||||
'secondary-darken-1': '#018786',
|
||||
error: '#B00020'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=md2.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"md2.js","names":["mdi","md2","defaults","VAvatar","rounded","VAutocomplete","variant","VBanner","color","VBtn","class","VCheckbox","indentDetails","VCombobox","VDatePicker","controlHeight","elevation","controlVariant","VRadioGroup","VSelect","VSlider","VRangeSlider","VSwitch","VTabs","VTextarea","VTextField","VToolbar","icons","defaultSet","sets","theme","themes","light","colors","primary","secondary","error"],"sources":["../../src/blueprints/md2.ts"],"sourcesContent":["// Icons\nimport { mdi } from '@/iconsets/mdi'\n\n// Types\nimport type { Blueprint } from '@/framework'\n\nexport const md2: Blueprint = {\n defaults: {\n VAvatar: {\n rounded: 'circle',\n },\n VAutocomplete: {\n variant: 'filled',\n },\n VBanner: {\n color: 'primary',\n },\n VBtn: {\n class: 'text-uppercase',\n color: 'primary',\n },\n VCheckbox: {\n color: 'secondary',\n indentDetails: true,\n },\n VCombobox: {\n variant: 'filled',\n },\n VDatePicker: {\n color: 'primary',\n controlHeight: 56,\n elevation: 2,\n rounded: 'md',\n controlVariant: 'modal',\n\n VBtn: {\n color: 'high-emphasis',\n rounded: 'circle',\n },\n },\n VRadioGroup: {\n indentDetails: true,\n },\n VSelect: {\n variant: 'filled',\n },\n VSlider: {\n color: 'primary',\n indentDetails: true,\n },\n VRangeSlider: {\n indentDetails: true,\n },\n VSwitch: {\n indentDetails: true,\n },\n VTabs: {\n color: 'primary',\n },\n VTextarea: {\n variant: 'filled',\n },\n VTextField: {\n variant: 'filled',\n },\n VToolbar: {\n VBtn: {\n color: null,\n },\n },\n },\n icons: {\n defaultSet: 'mdi',\n sets: {\n mdi,\n },\n },\n theme: {\n themes: {\n light: {\n colors: {\n primary: '#6200EE',\n 'primary-darken-1': '#3700B3',\n secondary: '#03DAC6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n },\n },\n },\n },\n}\n"],"mappings":"AAAA;AAAA,SACSA,GAAG,8BAEZ;AAGA,OAAO,MAAMC,GAAc,GAAG;EAC5BC,QAAQ,EAAE;IACRC,OAAO,EAAE;MACPC,OAAO,EAAE;IACX,CAAC;IACDC,aAAa,EAAE;MACbC,OAAO,EAAE;IACX,CAAC;IACDC,OAAO,EAAE;MACPC,KAAK,EAAE;IACT,CAAC;IACDC,IAAI,EAAE;MACJC,KAAK,EAAE,gBAAgB;MACvBF,KAAK,EAAE;IACT,CAAC;IACDG,SAAS,EAAE;MACTH,KAAK,EAAE,WAAW;MAClBI,aAAa,EAAE;IACjB,CAAC;IACDC,SAAS,EAAE;MACTP,OAAO,EAAE;IACX,CAAC;IACDQ,WAAW,EAAE;MACXN,KAAK,EAAE,SAAS;MAChBO,aAAa,EAAE,EAAE;MACjBC,SAAS,EAAE,CAAC;MACZZ,OAAO,EAAE,IAAI;MACba,cAAc,EAAE,OAAO;MAEvBR,IAAI,EAAE;QACJD,KAAK,EAAE,eAAe;QACtBJ,OAAO,EAAE;MACX;IACF,CAAC;IACDc,WAAW,EAAE;MACXN,aAAa,EAAE;IACjB,CAAC;IACDO,OAAO,EAAE;MACPb,OAAO,EAAE;IACX,CAAC;IACDc,OAAO,EAAE;MACPZ,KAAK,EAAE,SAAS;MAChBI,aAAa,EAAE;IACjB,CAAC;IACDS,YAAY,EAAE;MACZT,aAAa,EAAE;IACjB,CAAC;IACDU,OAAO,EAAE;MACPV,aAAa,EAAE;IACjB,CAAC;IACDW,KAAK,EAAE;MACLf,KAAK,EAAE;IACT,CAAC;IACDgB,SAAS,EAAE;MACTlB,OAAO,EAAE;IACX,CAAC;IACDmB,UAAU,EAAE;MACVnB,OAAO,EAAE;IACX,CAAC;IACDoB,QAAQ,EAAE;MACRjB,IAAI,EAAE;QACJD,KAAK,EAAE;MACT;IACF;EACF,CAAC;EACDmB,KAAK,EAAE;IACLC,UAAU,EAAE,KAAK;IACjBC,IAAI,EAAE;MACJ7B;IACF;EACF,CAAC;EACD8B,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,KAAK,EAAE;QACLC,MAAM,EAAE;UACNC,OAAO,EAAE,SAAS;UAClB,kBAAkB,EAAE,SAAS;UAC7BC,SAAS,EAAE,SAAS;UACpB,oBAAoB,EAAE,SAAS;UAC/BC,KAAK,EAAE;QACT;MACF;IACF;EACF;AACF,CAAC","ignoreList":[]}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import type { Blueprint } from '../framework.js';
|
||||
export declare const md3: Blueprint;
|
||||
+128
@@ -0,0 +1,128 @@
|
||||
// Icons
|
||||
import { mdi } from "../iconsets/mdi.js"; // Types
|
||||
export const md3 = {
|
||||
defaults: {
|
||||
VAppBar: {
|
||||
flat: true
|
||||
},
|
||||
VAutocomplete: {
|
||||
variant: 'outlined'
|
||||
},
|
||||
VBanner: {
|
||||
color: 'primary'
|
||||
},
|
||||
VBottomSheet: {
|
||||
contentClass: 'rounded-t-xl overflow-hidden'
|
||||
},
|
||||
VBtn: {
|
||||
color: 'primary',
|
||||
rounded: 'xl'
|
||||
},
|
||||
VBtnGroup: {
|
||||
rounded: 'xl',
|
||||
VBtn: {
|
||||
rounded: null
|
||||
}
|
||||
},
|
||||
VCard: {
|
||||
rounded: 'lg'
|
||||
},
|
||||
VCheckbox: {
|
||||
color: 'secondary',
|
||||
inset: true,
|
||||
indentDetails: true
|
||||
},
|
||||
VChip: {
|
||||
rounded: 'sm'
|
||||
},
|
||||
VCombobox: {
|
||||
variant: 'outlined'
|
||||
},
|
||||
VDateInput: {
|
||||
variant: 'outlined'
|
||||
},
|
||||
VDatePicker: {
|
||||
controlHeight: 48,
|
||||
color: 'primary',
|
||||
divided: true,
|
||||
headerColor: '',
|
||||
elevation: 1,
|
||||
rounded: 'xl',
|
||||
VBtn: {
|
||||
color: 'high-emphasis',
|
||||
rounded: 'circle'
|
||||
}
|
||||
},
|
||||
VFileInput: {
|
||||
variant: 'outlined'
|
||||
},
|
||||
VList: {
|
||||
prependGap: 16
|
||||
},
|
||||
VNavigationDrawer: {
|
||||
// VList: {
|
||||
// nav: true,
|
||||
// VListItem: {
|
||||
// rounded: 'xl',
|
||||
// },
|
||||
// },
|
||||
},
|
||||
VNumberInput: {
|
||||
variant: 'outlined',
|
||||
VBtn: {
|
||||
color: undefined,
|
||||
rounded: undefined
|
||||
}
|
||||
},
|
||||
VRadioGroup: {
|
||||
indentDetails: true
|
||||
},
|
||||
VSelect: {
|
||||
variant: 'outlined'
|
||||
},
|
||||
VSlider: {
|
||||
color: 'primary',
|
||||
indentDetails: true
|
||||
},
|
||||
VRangeSlider: {
|
||||
indentDetails: true
|
||||
},
|
||||
VSwitch: {
|
||||
indentDetails: true
|
||||
},
|
||||
VTabs: {
|
||||
color: 'primary'
|
||||
},
|
||||
VTextarea: {
|
||||
variant: 'outlined'
|
||||
},
|
||||
VTextField: {
|
||||
variant: 'outlined'
|
||||
},
|
||||
VToolbar: {
|
||||
VBtn: {
|
||||
color: null
|
||||
}
|
||||
}
|
||||
},
|
||||
icons: {
|
||||
defaultSet: 'mdi',
|
||||
sets: {
|
||||
mdi
|
||||
}
|
||||
},
|
||||
theme: {
|
||||
themes: {
|
||||
light: {
|
||||
colors: {
|
||||
primary: '#6750a4',
|
||||
secondary: '#b4b0bb',
|
||||
tertiary: '#7d5260',
|
||||
error: '#b3261e',
|
||||
surface: '#fffbfe'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=md3.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"md3.js","names":["mdi","md3","defaults","VAppBar","flat","VAutocomplete","variant","VBanner","color","VBottomSheet","contentClass","VBtn","rounded","VBtnGroup","VCard","VCheckbox","inset","indentDetails","VChip","VCombobox","VDateInput","VDatePicker","controlHeight","divided","headerColor","elevation","VFileInput","VList","prependGap","VNavigationDrawer","VNumberInput","undefined","VRadioGroup","VSelect","VSlider","VRangeSlider","VSwitch","VTabs","VTextarea","VTextField","VToolbar","icons","defaultSet","sets","theme","themes","light","colors","primary","secondary","tertiary","error","surface"],"sources":["../../src/blueprints/md3.ts"],"sourcesContent":["// Icons\nimport { mdi } from '@/iconsets/mdi'\n\n// Types\nimport type { Blueprint } from '@/framework'\n\nexport const md3: Blueprint = {\n defaults: {\n VAppBar: {\n flat: true,\n },\n VAutocomplete: {\n variant: 'outlined',\n },\n VBanner: {\n color: 'primary',\n },\n VBottomSheet: {\n contentClass: 'rounded-t-xl overflow-hidden',\n },\n VBtn: {\n color: 'primary',\n rounded: 'xl',\n },\n VBtnGroup: {\n rounded: 'xl',\n VBtn: { rounded: null },\n },\n VCard: {\n rounded: 'lg',\n },\n VCheckbox: {\n color: 'secondary',\n inset: true,\n indentDetails: true,\n },\n VChip: {\n rounded: 'sm',\n },\n VCombobox: {\n variant: 'outlined',\n },\n VDateInput: {\n variant: 'outlined',\n },\n VDatePicker: {\n controlHeight: 48,\n color: 'primary',\n divided: true,\n headerColor: '',\n elevation: 1,\n rounded: 'xl',\n\n VBtn: {\n color: 'high-emphasis',\n rounded: 'circle',\n },\n },\n VFileInput: {\n variant: 'outlined',\n },\n VList: {\n prependGap: 16,\n },\n VNavigationDrawer: {\n // VList: {\n // nav: true,\n // VListItem: {\n // rounded: 'xl',\n // },\n // },\n },\n VNumberInput: {\n variant: 'outlined',\n\n VBtn: {\n color: undefined,\n rounded: undefined,\n },\n },\n VRadioGroup: {\n indentDetails: true,\n },\n VSelect: {\n variant: 'outlined',\n },\n VSlider: {\n color: 'primary',\n indentDetails: true,\n },\n VRangeSlider: {\n indentDetails: true,\n },\n VSwitch: {\n indentDetails: true,\n },\n VTabs: {\n color: 'primary',\n },\n VTextarea: {\n variant: 'outlined',\n },\n VTextField: {\n variant: 'outlined',\n },\n VToolbar: {\n VBtn: {\n color: null,\n },\n },\n },\n icons: {\n defaultSet: 'mdi',\n sets: {\n mdi,\n },\n },\n theme: {\n themes: {\n light: {\n colors: {\n primary: '#6750a4',\n secondary: '#b4b0bb',\n tertiary: '#7d5260',\n error: '#b3261e',\n surface: '#fffbfe',\n },\n },\n },\n },\n}\n"],"mappings":"AAAA;AAAA,SACSA,GAAG,8BAEZ;AAGA,OAAO,MAAMC,GAAc,GAAG;EAC5BC,QAAQ,EAAE;IACRC,OAAO,EAAE;MACPC,IAAI,EAAE;IACR,CAAC;IACDC,aAAa,EAAE;MACbC,OAAO,EAAE;IACX,CAAC;IACDC,OAAO,EAAE;MACPC,KAAK,EAAE;IACT,CAAC;IACDC,YAAY,EAAE;MACZC,YAAY,EAAE;IAChB,CAAC;IACDC,IAAI,EAAE;MACJH,KAAK,EAAE,SAAS;MAChBI,OAAO,EAAE;IACX,CAAC;IACDC,SAAS,EAAE;MACTD,OAAO,EAAE,IAAI;MACbD,IAAI,EAAE;QAAEC,OAAO,EAAE;MAAK;IACxB,CAAC;IACDE,KAAK,EAAE;MACLF,OAAO,EAAE;IACX,CAAC;IACDG,SAAS,EAAE;MACTP,KAAK,EAAE,WAAW;MAClBQ,KAAK,EAAE,IAAI;MACXC,aAAa,EAAE;IACjB,CAAC;IACDC,KAAK,EAAE;MACLN,OAAO,EAAE;IACX,CAAC;IACDO,SAAS,EAAE;MACTb,OAAO,EAAE;IACX,CAAC;IACDc,UAAU,EAAE;MACVd,OAAO,EAAE;IACX,CAAC;IACDe,WAAW,EAAE;MACXC,aAAa,EAAE,EAAE;MACjBd,KAAK,EAAE,SAAS;MAChBe,OAAO,EAAE,IAAI;MACbC,WAAW,EAAE,EAAE;MACfC,SAAS,EAAE,CAAC;MACZb,OAAO,EAAE,IAAI;MAEbD,IAAI,EAAE;QACJH,KAAK,EAAE,eAAe;QACtBI,OAAO,EAAE;MACX;IACF,CAAC;IACDc,UAAU,EAAE;MACVpB,OAAO,EAAE;IACX,CAAC;IACDqB,KAAK,EAAE;MACLC,UAAU,EAAE;IACd,CAAC;IACDC,iBAAiB,EAAE;MACjB;MACA;MACA;MACA;MACA;MACA;IAAA,CACD;IACDC,YAAY,EAAE;MACZxB,OAAO,EAAE,UAAU;MAEnBK,IAAI,EAAE;QACJH,KAAK,EAAEuB,SAAS;QAChBnB,OAAO,EAAEmB;MACX;IACF,CAAC;IACDC,WAAW,EAAE;MACXf,aAAa,EAAE;IACjB,CAAC;IACDgB,OAAO,EAAE;MACP3B,OAAO,EAAE;IACX,CAAC;IACD4B,OAAO,EAAE;MACP1B,KAAK,EAAE,SAAS;MAChBS,aAAa,EAAE;IACjB,CAAC;IACDkB,YAAY,EAAE;MACZlB,aAAa,EAAE;IACjB,CAAC;IACDmB,OAAO,EAAE;MACPnB,aAAa,EAAE;IACjB,CAAC;IACDoB,KAAK,EAAE;MACL7B,KAAK,EAAE;IACT,CAAC;IACD8B,SAAS,EAAE;MACThC,OAAO,EAAE;IACX,CAAC;IACDiC,UAAU,EAAE;MACVjC,OAAO,EAAE;IACX,CAAC;IACDkC,QAAQ,EAAE;MACR7B,IAAI,EAAE;QACJH,KAAK,EAAE;MACT;IACF;EACF,CAAC;EACDiC,KAAK,EAAE;IACLC,UAAU,EAAE,KAAK;IACjBC,IAAI,EAAE;MACJ3C;IACF;EACF,CAAC;EACD4C,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,KAAK,EAAE;QACLC,MAAM,EAAE;UACNC,OAAO,EAAE,SAAS;UAClBC,SAAS,EAAE,SAAS;UACpBC,QAAQ,EAAE,SAAS;UACnBC,KAAK,EAAE,SAAS;UAChBC,OAAO,EAAE;QACX;MACF;IACF;EACF;AACF,CAAC","ignoreList":[]}
|
||||
+238
@@ -0,0 +1,238 @@
|
||||
@layer vuetify-components {
|
||||
.v-alert {
|
||||
display: grid;
|
||||
flex: 1 1;
|
||||
grid-template-areas: "prepend content append close" ". content . .";
|
||||
grid-template-columns: max-content auto max-content max-content;
|
||||
position: relative;
|
||||
padding: 16px;
|
||||
overflow: hidden;
|
||||
--v-border-color: currentColor;
|
||||
}
|
||||
.v-alert--absolute {
|
||||
position: absolute;
|
||||
}
|
||||
.v-alert--fixed {
|
||||
position: fixed;
|
||||
}
|
||||
.v-alert--sticky {
|
||||
position: sticky;
|
||||
}
|
||||
.v-alert {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.v-alert--variant-plain, .v-alert--variant-outlined, .v-alert--variant-text, .v-alert--variant-tonal {
|
||||
background: transparent;
|
||||
color: inherit;
|
||||
}
|
||||
.v-alert--variant-plain {
|
||||
opacity: 0.62;
|
||||
}
|
||||
.v-alert--variant-plain:focus, .v-alert--variant-plain:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
.v-alert--variant-plain .v-alert__overlay {
|
||||
display: none;
|
||||
}
|
||||
.v-alert--variant-elevated, .v-alert--variant-flat {
|
||||
background: rgb(var(--v-theme-surface-light));
|
||||
color: color-mix(in srgb, rgb(var(--v-theme-on-surface-light)) calc(var(--v-high-emphasis-opacity) * 100%), transparent);
|
||||
}
|
||||
.v-alert--variant-elevated {
|
||||
box-shadow: 0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity, 0.3)), 0px 1px 3px 1px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity, 0.15));
|
||||
--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 2%, transparent);
|
||||
}
|
||||
.v-alert--variant-flat {
|
||||
box-shadow: 0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity, 0.3)), 0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity, 0.15));
|
||||
--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 0%, transparent);
|
||||
}
|
||||
.v-alert--variant-outlined {
|
||||
border: thin solid currentColor;
|
||||
}
|
||||
.v-alert--variant-text .v-alert__overlay {
|
||||
background: currentColor;
|
||||
}
|
||||
.v-alert--variant-tonal .v-alert__underlay {
|
||||
background: currentColor;
|
||||
opacity: var(--v-activated-opacity);
|
||||
border-radius: inherit;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
.v-alert .v-alert__underlay {
|
||||
position: absolute;
|
||||
}
|
||||
.v-alert--prominent {
|
||||
grid-template-areas: "prepend content append close" "prepend content . .";
|
||||
}
|
||||
.v-alert.v-alert--border {
|
||||
--v-border-opacity: 0.38;
|
||||
}
|
||||
.v-alert.v-alert--border.v-alert--border-start {
|
||||
padding-inline-start: 24px;
|
||||
}
|
||||
.v-alert.v-alert--border.v-alert--border-end {
|
||||
padding-inline-end: 24px;
|
||||
}
|
||||
.v-alert--variant-plain {
|
||||
transition: 0.2s opacity cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
.v-alert--density-default {
|
||||
padding-bottom: 16px;
|
||||
padding-top: 16px;
|
||||
}
|
||||
.v-alert--density-default.v-alert--border-top {
|
||||
padding-top: 24px;
|
||||
}
|
||||
.v-alert--density-default.v-alert--border-bottom {
|
||||
padding-bottom: 24px;
|
||||
}
|
||||
.v-alert--density-comfortable {
|
||||
padding-bottom: 12px;
|
||||
padding-top: 12px;
|
||||
}
|
||||
.v-alert--density-comfortable.v-alert--border-top {
|
||||
padding-top: 20px;
|
||||
}
|
||||
.v-alert--density-comfortable.v-alert--border-bottom {
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.v-alert--density-compact {
|
||||
padding-bottom: 8px;
|
||||
padding-top: 8px;
|
||||
}
|
||||
.v-alert--density-compact.v-alert--border-top {
|
||||
padding-top: 16px;
|
||||
}
|
||||
.v-alert--density-compact.v-alert--border-bottom {
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
.v-alert:not(:has(.v-alert-title)) .v-alert__content {
|
||||
padding-block: calc((1.75rem - 1.5 * 1rem) / 2);
|
||||
}
|
||||
.v-alert__border {
|
||||
border-radius: inherit;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
opacity: var(--v-border-opacity);
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.v-alert__border {
|
||||
border-color: currentColor;
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
}
|
||||
.v-alert__border--border {
|
||||
border-width: 8px;
|
||||
box-shadow: none;
|
||||
}
|
||||
.v-alert--border-start .v-alert__border {
|
||||
border-inline-start-width: 8px;
|
||||
}
|
||||
.v-alert--border-end .v-alert__border {
|
||||
border-inline-end-width: 8px;
|
||||
}
|
||||
.v-alert--border-top .v-alert__border {
|
||||
border-top-width: 8px;
|
||||
}
|
||||
.v-alert--border-bottom .v-alert__border {
|
||||
border-bottom-width: 8px;
|
||||
}
|
||||
.v-alert__close {
|
||||
flex: 0 1 auto;
|
||||
grid-area: close;
|
||||
}
|
||||
.v-alert__close > .v-btn {
|
||||
margin-block: calc(-1 * (var(--v-btn-height) + 12px - 1.75rem) / 2);
|
||||
}
|
||||
.v-alert__content {
|
||||
align-self: center;
|
||||
grid-area: content;
|
||||
overflow: hidden;
|
||||
}
|
||||
.v-alert__content > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
.v-alert__content > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.v-alert__append,
|
||||
.v-alert__close {
|
||||
margin-inline-start: 16px;
|
||||
}
|
||||
.v-alert__append {
|
||||
align-self: flex-start;
|
||||
grid-area: append;
|
||||
}
|
||||
.v-alert__append + .v-alert__close {
|
||||
margin-inline-start: 16px;
|
||||
}
|
||||
.v-alert__prepend {
|
||||
align-self: flex-start;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
grid-area: prepend;
|
||||
margin-inline-end: 16px;
|
||||
min-height: 1.75rem;
|
||||
}
|
||||
.v-alert__prepend > .v-icon {
|
||||
font-size: 1.75rem;
|
||||
height: 1.75rem;
|
||||
width: 1.75rem;
|
||||
}
|
||||
.v-alert--prominent .v-alert__prepend {
|
||||
align-self: center;
|
||||
}
|
||||
.v-alert__underlay {
|
||||
grid-area: none;
|
||||
position: absolute;
|
||||
}
|
||||
.v-alert--border-start .v-alert__underlay {
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.v-alert--border-end .v-alert__underlay {
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.v-alert--border-top .v-alert__underlay {
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
.v-alert--border-bottom .v-alert__underlay {
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
.v-alert-title {
|
||||
align-items: center;
|
||||
align-self: center;
|
||||
display: flex;
|
||||
font-size: 1.5rem;
|
||||
font-weight: 400;
|
||||
hyphens: auto;
|
||||
letter-spacing: normal;
|
||||
line-height: 1.75rem;
|
||||
overflow-wrap: normal;
|
||||
text-transform: none;
|
||||
word-break: normal;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
@media (forced-colors: active) {
|
||||
.v-alert:not(.v-alert--variant-text, .v-alert--variant-plain) {
|
||||
border-style: solid;
|
||||
}
|
||||
.v-alert--variant-outlined, .v-alert--variant-tonal {
|
||||
border-width: medium;
|
||||
}
|
||||
.v-alert--variant-elevated, .v-alert--variant-flat {
|
||||
border-width: thick;
|
||||
}
|
||||
}
|
||||
}
|
||||
+734
@@ -0,0 +1,734 @@
|
||||
|
||||
import { IconValue } from '../../composables/icons.js';
|
||||
import type { PropType } from 'vue';
|
||||
declare const allowedTypes: readonly ['success', 'info', 'warning', 'error'];
|
||||
type ContextualType = (typeof allowedTypes)[number];
|
||||
export declare const makeVAlertProps: <Defaults extends {
|
||||
theme?: unknown;
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
density?: unknown;
|
||||
elevation?: unknown;
|
||||
rounded?: unknown;
|
||||
tile?: unknown;
|
||||
tag?: unknown;
|
||||
color?: unknown;
|
||||
variant?: unknown;
|
||||
height?: unknown;
|
||||
maxHeight?: unknown;
|
||||
maxWidth?: unknown;
|
||||
minHeight?: unknown;
|
||||
minWidth?: unknown;
|
||||
width?: unknown;
|
||||
location?: unknown;
|
||||
position?: unknown;
|
||||
iconSize?: unknown;
|
||||
iconSizes?: unknown;
|
||||
border?: unknown;
|
||||
borderColor?: unknown;
|
||||
closable?: unknown;
|
||||
closeIcon?: unknown;
|
||||
closeLabel?: unknown;
|
||||
icon?: unknown;
|
||||
modelValue?: unknown;
|
||||
prominent?: unknown;
|
||||
title?: unknown;
|
||||
text?: unknown;
|
||||
type?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
theme: unknown extends Defaults["theme"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
|
||||
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
||||
};
|
||||
class: unknown extends Defaults["class"] ? PropType<any> : {
|
||||
type: PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
density: unknown extends Defaults["density"] ? {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
|
||||
default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
|
||||
};
|
||||
elevation: unknown extends Defaults["elevation"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["elevation"] ? string | number : string | number | Defaults["elevation"]>;
|
||||
default: unknown extends Defaults["elevation"] ? string | number : Defaults["elevation"] | NonNullable<string | number>;
|
||||
};
|
||||
rounded: unknown extends Defaults["rounded"] ? {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>;
|
||||
default: unknown extends Defaults["rounded"] ? string | number | boolean : Defaults["rounded"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
tile: unknown extends Defaults["tile"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>;
|
||||
default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"];
|
||||
};
|
||||
tag: unknown extends Defaults["tag"] ? {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | Defaults["tag"] | import("../../util/index.js").JSXComponent>;
|
||||
default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
color: unknown extends Defaults["color"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
|
||||
default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
|
||||
};
|
||||
variant: unknown extends Defaults["variant"] ? Omit<{
|
||||
type: PropType<import("../../composables/variant.js").Variant>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
} : Omit<Omit<{
|
||||
type: PropType<import("../../composables/variant.js").Variant>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["variant"] ? "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" : "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" | Defaults["variant"]>;
|
||||
default: unknown extends Defaults["variant"] ? "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" : Defaults["variant"] | NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
};
|
||||
height: unknown extends Defaults["height"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["height"] ? string | number : string | number | Defaults["height"]>;
|
||||
default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable<string | number>;
|
||||
};
|
||||
maxHeight: unknown extends Defaults["maxHeight"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["maxHeight"] ? string | number : string | number | Defaults["maxHeight"]>;
|
||||
default: unknown extends Defaults["maxHeight"] ? string | number : Defaults["maxHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
maxWidth: unknown extends Defaults["maxWidth"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["maxWidth"] ? string | number : string | number | Defaults["maxWidth"]>;
|
||||
default: unknown extends Defaults["maxWidth"] ? string | number : Defaults["maxWidth"] | NonNullable<string | number>;
|
||||
};
|
||||
minHeight: unknown extends Defaults["minHeight"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["minHeight"] ? string | number : string | number | Defaults["minHeight"]>;
|
||||
default: unknown extends Defaults["minHeight"] ? string | number : Defaults["minHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
minWidth: unknown extends Defaults["minWidth"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["minWidth"] ? string | number : string | number | Defaults["minWidth"]>;
|
||||
default: unknown extends Defaults["minWidth"] ? string | number : Defaults["minWidth"] | NonNullable<string | number>;
|
||||
};
|
||||
width: unknown extends Defaults["width"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["width"] ? string | number : string | number | Defaults["width"]>;
|
||||
default: unknown extends Defaults["width"] ? string | number : Defaults["width"] | NonNullable<string | number>;
|
||||
};
|
||||
location: unknown extends Defaults["location"] ? PropType<import("../../util/index.js").Anchor | null> : {
|
||||
type: PropType<unknown extends Defaults["location"] ? import("../../util/index.js").Anchor | null : Defaults["location"] | import("../../util/index.js").Anchor | null>;
|
||||
default: unknown extends Defaults["location"] ? import("../../util/index.js").Anchor | null : Defaults["location"] | NonNullable<import("../../util/index.js").Anchor | null>;
|
||||
};
|
||||
position: unknown extends Defaults["position"] ? {
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["position"] ? "absolute" | "fixed" | "relative" | "static" | "sticky" : "absolute" | "fixed" | "relative" | "static" | "sticky" | Defaults["position"]>;
|
||||
default: unknown extends Defaults["position"] ? "absolute" | "fixed" | "relative" | "static" | "sticky" : Defaults["position"] | NonNullable<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
};
|
||||
iconSize: unknown extends Defaults["iconSize"] ? PropType<string | number> : {
|
||||
type: PropType<unknown extends Defaults["iconSize"] ? string | number : string | number | Defaults["iconSize"]>;
|
||||
default: unknown extends Defaults["iconSize"] ? string | number : Defaults["iconSize"] | NonNullable<string | number>;
|
||||
};
|
||||
iconSizes: unknown extends Defaults["iconSizes"] ? {
|
||||
type: PropType<[import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][]>;
|
||||
default: () => (string | number)[][];
|
||||
} : Omit<{
|
||||
type: PropType<[import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][]>;
|
||||
default: () => (string | number)[][];
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["iconSizes"] ? [import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][] : [import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][] | Defaults["iconSizes"]>;
|
||||
default: unknown extends Defaults["iconSizes"] ? [import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][] : [import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][] | Defaults["iconSizes"];
|
||||
};
|
||||
border: unknown extends Defaults["border"] ? {
|
||||
type: PropType<boolean | 'top' | 'end' | 'bottom' | 'start'>;
|
||||
validator: (val: boolean | string) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<boolean | 'top' | 'end' | 'bottom' | 'start'>;
|
||||
validator: (val: boolean | string) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["border"] ? "bottom" | "end" | "start" | "top" | boolean : "bottom" | "end" | "start" | "top" | boolean | Defaults["border"]>;
|
||||
default: unknown extends Defaults["border"] ? "bottom" | "end" | "start" | "top" | boolean : Defaults["border"] | NonNullable<"bottom" | "end" | "start" | "top" | boolean>;
|
||||
};
|
||||
borderColor: unknown extends Defaults["borderColor"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["borderColor"] ? string : string | Defaults["borderColor"]>;
|
||||
default: unknown extends Defaults["borderColor"] ? string : string | Defaults["borderColor"];
|
||||
};
|
||||
closable: unknown extends Defaults["closable"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["closable"] ? boolean : boolean | Defaults["closable"]>;
|
||||
default: unknown extends Defaults["closable"] ? boolean : boolean | Defaults["closable"];
|
||||
};
|
||||
closeIcon: unknown extends Defaults["closeIcon"] ? {
|
||||
type: PropType<IconValue>;
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: PropType<IconValue>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["closeIcon"] ? IconValue : Defaults["closeIcon"] | IconValue>;
|
||||
default: unknown extends Defaults["closeIcon"] ? IconValue : Defaults["closeIcon"] | NonNullable<IconValue>;
|
||||
};
|
||||
closeLabel: unknown extends Defaults["closeLabel"] ? {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["closeLabel"] ? string : string | Defaults["closeLabel"]>;
|
||||
default: unknown extends Defaults["closeLabel"] ? string : string | Defaults["closeLabel"];
|
||||
};
|
||||
icon: unknown extends Defaults["icon"] ? {
|
||||
type: PropType<false | IconValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: PropType<false | IconValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["icon"] ? false | IconValue : false | Defaults["icon"] | IconValue>;
|
||||
default: unknown extends Defaults["icon"] ? false | IconValue : Defaults["icon"] | NonNullable<false | IconValue>;
|
||||
};
|
||||
modelValue: unknown extends Defaults["modelValue"] ? {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
} : Omit<{
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["modelValue"] ? boolean : boolean | Defaults["modelValue"]>;
|
||||
default: unknown extends Defaults["modelValue"] ? boolean : boolean | Defaults["modelValue"];
|
||||
};
|
||||
prominent: unknown extends Defaults["prominent"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["prominent"] ? boolean : boolean | Defaults["prominent"]>;
|
||||
default: unknown extends Defaults["prominent"] ? boolean : boolean | Defaults["prominent"];
|
||||
};
|
||||
title: unknown extends Defaults["title"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["title"] ? string : string | Defaults["title"]>;
|
||||
default: unknown extends Defaults["title"] ? string : string | Defaults["title"];
|
||||
};
|
||||
text: unknown extends Defaults["text"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["text"] ? string : string | Defaults["text"]>;
|
||||
default: unknown extends Defaults["text"] ? string : string | Defaults["text"];
|
||||
};
|
||||
type: unknown extends Defaults["type"] ? {
|
||||
type: PropType<ContextualType>;
|
||||
validator: (val: ContextualType) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<ContextualType>;
|
||||
validator: (val: ContextualType) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["type"] ? "error" | "info" | "success" | "warning" : "error" | "info" | "success" | "warning" | Defaults["type"]>;
|
||||
default: unknown extends Defaults["type"] ? "error" | "info" | "success" | "warning" : Defaults["type"] | NonNullable<"error" | "info" | "success" | "warning">;
|
||||
};
|
||||
};
|
||||
export type VAlertSlots = {
|
||||
default: never;
|
||||
prepend: never;
|
||||
title: never;
|
||||
text: never;
|
||||
append: never;
|
||||
close: {
|
||||
props: Record<string, any>;
|
||||
};
|
||||
};
|
||||
export declare const VAlert: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
iconSizes: [import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][];
|
||||
closable: boolean;
|
||||
closeIcon: IconValue;
|
||||
closeLabel: string;
|
||||
icon: false | IconValue;
|
||||
modelValue: boolean;
|
||||
prominent: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
iconSize?: string | number | undefined;
|
||||
border?: "bottom" | "end" | "start" | "top" | boolean | undefined;
|
||||
borderColor?: string | undefined;
|
||||
title?: string | undefined;
|
||||
text?: string | undefined;
|
||||
type?: "error" | "info" | "success" | "warning" | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
title?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
append?: (() => import("vue").VNodeChild) | undefined;
|
||||
close?: ((arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
title?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
append?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
close?: false | ((arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:append"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:close"?: false | ((arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:title"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & {
|
||||
"onClick:close"?: ((e: MouseEvent) => any) | undefined;
|
||||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
||||
}, () => false | JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
||||
'click:close': (e: MouseEvent) => true;
|
||||
'update:modelValue': (value: boolean) => true;
|
||||
}, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
iconSizes: [import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][];
|
||||
closable: boolean;
|
||||
closeIcon: IconValue;
|
||||
closeLabel: string;
|
||||
icon: false | IconValue;
|
||||
modelValue: boolean;
|
||||
prominent: boolean;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
prepend: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
title: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
text: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
append: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
close: (arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
iconSizes: [import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][];
|
||||
closable: boolean;
|
||||
closeIcon: IconValue;
|
||||
closeLabel: string;
|
||||
icon: false | IconValue;
|
||||
modelValue: boolean;
|
||||
prominent: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
iconSize?: string | number | undefined;
|
||||
border?: "bottom" | "end" | "start" | "top" | boolean | undefined;
|
||||
borderColor?: string | undefined;
|
||||
title?: string | undefined;
|
||||
text?: string | undefined;
|
||||
type?: "error" | "info" | "success" | "warning" | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
title?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
append?: (() => import("vue").VNodeChild) | undefined;
|
||||
close?: ((arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
title?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
append?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
close?: false | ((arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:append"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:close"?: false | ((arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:title"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & {
|
||||
"onClick:close"?: ((e: MouseEvent) => any) | undefined;
|
||||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
||||
}, () => false | JSX.Element, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
iconSizes: [import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][];
|
||||
closable: boolean;
|
||||
closeIcon: IconValue;
|
||||
closeLabel: string;
|
||||
icon: false | IconValue;
|
||||
modelValue: boolean;
|
||||
prominent: boolean;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
iconSizes: [import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][];
|
||||
closable: boolean;
|
||||
closeIcon: IconValue;
|
||||
closeLabel: string;
|
||||
icon: false | IconValue;
|
||||
modelValue: boolean;
|
||||
prominent: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
iconSize?: string | number | undefined;
|
||||
border?: "bottom" | "end" | "start" | "top" | boolean | undefined;
|
||||
borderColor?: string | undefined;
|
||||
title?: string | undefined;
|
||||
text?: string | undefined;
|
||||
type?: "error" | "info" | "success" | "warning" | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
title?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
append?: (() => import("vue").VNodeChild) | undefined;
|
||||
close?: ((arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
title?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
append?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
close?: false | ((arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:append"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:close"?: false | ((arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:title"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & {
|
||||
"onClick:close"?: ((e: MouseEvent) => any) | undefined;
|
||||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
||||
}, () => false | JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
||||
'click:close': (e: MouseEvent) => true;
|
||||
'update:modelValue': (value: boolean) => true;
|
||||
}, string, {
|
||||
style: import("vue").StyleValue;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
iconSizes: [import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][];
|
||||
closable: boolean;
|
||||
closeIcon: IconValue;
|
||||
closeLabel: string;
|
||||
icon: false | IconValue;
|
||||
modelValue: boolean;
|
||||
prominent: boolean;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
prepend: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
title: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
text: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
append: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
close: (arg: {
|
||||
props: Record<string, any>;
|
||||
}) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
theme: StringConstructor;
|
||||
class: PropType<import("../../composables/component.js").ClassValue>;
|
||||
style: {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
density: {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
color: StringConstructor;
|
||||
variant: Omit<{
|
||||
type: PropType<import("../../composables/variant.js").Variant>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
};
|
||||
height: (NumberConstructor | StringConstructor)[];
|
||||
maxHeight: (NumberConstructor | StringConstructor)[];
|
||||
maxWidth: (NumberConstructor | StringConstructor)[];
|
||||
minHeight: (NumberConstructor | StringConstructor)[];
|
||||
minWidth: (NumberConstructor | StringConstructor)[];
|
||||
width: (NumberConstructor | StringConstructor)[];
|
||||
location: PropType<import("../../util/index.js").Anchor | null>;
|
||||
position: {
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
iconSize: PropType<import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes | number | string>;
|
||||
iconSizes: {
|
||||
type: PropType<[import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][]>;
|
||||
default: () => (string | number)[][];
|
||||
};
|
||||
border: {
|
||||
type: PropType<boolean | 'top' | 'end' | 'bottom' | 'start'>;
|
||||
validator: (val: boolean | string) => boolean;
|
||||
};
|
||||
borderColor: StringConstructor;
|
||||
closable: BooleanConstructor;
|
||||
closeIcon: {
|
||||
type: PropType<IconValue>;
|
||||
default: string;
|
||||
};
|
||||
closeLabel: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
icon: {
|
||||
type: PropType<false | IconValue>;
|
||||
default: null;
|
||||
};
|
||||
modelValue: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
prominent: BooleanConstructor;
|
||||
title: StringConstructor;
|
||||
text: StringConstructor;
|
||||
type: {
|
||||
type: PropType<ContextualType>;
|
||||
validator: (val: ContextualType) => boolean;
|
||||
};
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
theme: StringConstructor;
|
||||
class: PropType<import("../../composables/component.js").ClassValue>;
|
||||
style: {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
density: {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
color: StringConstructor;
|
||||
variant: Omit<{
|
||||
type: PropType<import("../../composables/variant.js").Variant>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
};
|
||||
height: (NumberConstructor | StringConstructor)[];
|
||||
maxHeight: (NumberConstructor | StringConstructor)[];
|
||||
maxWidth: (NumberConstructor | StringConstructor)[];
|
||||
minHeight: (NumberConstructor | StringConstructor)[];
|
||||
minWidth: (NumberConstructor | StringConstructor)[];
|
||||
width: (NumberConstructor | StringConstructor)[];
|
||||
location: PropType<import("../../util/index.js").Anchor | null>;
|
||||
position: {
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
iconSize: PropType<import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes | number | string>;
|
||||
iconSizes: {
|
||||
type: PropType<[import("../../labs/VIconBtn/VIconBtn.js").VIconBtnSizes, number][]>;
|
||||
default: () => (string | number)[][];
|
||||
};
|
||||
border: {
|
||||
type: PropType<boolean | 'top' | 'end' | 'bottom' | 'start'>;
|
||||
validator: (val: boolean | string) => boolean;
|
||||
};
|
||||
borderColor: StringConstructor;
|
||||
closable: BooleanConstructor;
|
||||
closeIcon: {
|
||||
type: PropType<IconValue>;
|
||||
default: string;
|
||||
};
|
||||
closeLabel: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
icon: {
|
||||
type: PropType<false | IconValue>;
|
||||
default: null;
|
||||
};
|
||||
modelValue: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
prominent: BooleanConstructor;
|
||||
title: StringConstructor;
|
||||
text: StringConstructor;
|
||||
type: {
|
||||
type: PropType<ContextualType>;
|
||||
validator: (val: ContextualType) => boolean;
|
||||
};
|
||||
}>>;
|
||||
export type VAlert = InstanceType<typeof VAlert>;
|
||||
|
||||
+208
@@ -0,0 +1,208 @@
|
||||
import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
||||
// Styles
|
||||
import "./VAlert.css";
|
||||
|
||||
// Components
|
||||
import { VAlertTitle } from "./VAlertTitle.js";
|
||||
import { VBtn } from "../VBtn/index.js";
|
||||
import { VDefaultsProvider } from "../VDefaultsProvider/index.js";
|
||||
import { VIcon } from "../VIcon/index.js"; // Composables
|
||||
import { useTextColor } from "../../composables/color.js";
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { makeDensityProps, useDensity } from "../../composables/density.js";
|
||||
import { makeDimensionProps, useDimension } from "../../composables/dimensions.js";
|
||||
import { makeElevationProps, useElevation } from "../../composables/elevation.js";
|
||||
import { IconValue } from "../../composables/icons.js";
|
||||
import { makeIconSizeProps, useIconSizes } from "../../composables/iconSizes.js";
|
||||
import { useLocale } from "../../composables/locale.js";
|
||||
import { makeLocationProps, useLocation } from "../../composables/location.js";
|
||||
import { makePositionProps, usePosition } from "../../composables/position.js";
|
||||
import { useProxiedModel } from "../../composables/proxiedModel.js";
|
||||
import { makeRoundedProps, useRounded } from "../../composables/rounded.js";
|
||||
import { makeTagProps } from "../../composables/tag.js";
|
||||
import { makeThemeProps, provideTheme } from "../../composables/theme.js";
|
||||
import { genOverlays, makeVariantProps, useVariant } from "../../composables/variant.js"; // Utilities
|
||||
import { toRef } from 'vue';
|
||||
import { genericComponent, propsFactory } from "../../util/index.js"; // Types
|
||||
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
||||
export const makeVAlertProps = propsFactory({
|
||||
border: {
|
||||
type: [Boolean, String],
|
||||
validator: val => {
|
||||
return typeof val === 'boolean' || ['top', 'end', 'bottom', 'start'].includes(val);
|
||||
}
|
||||
},
|
||||
borderColor: String,
|
||||
closable: Boolean,
|
||||
closeIcon: {
|
||||
type: IconValue,
|
||||
default: '$close'
|
||||
},
|
||||
closeLabel: {
|
||||
type: String,
|
||||
default: '$vuetify.close'
|
||||
},
|
||||
icon: {
|
||||
type: [Boolean, String, Function, Object],
|
||||
default: null
|
||||
},
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
prominent: Boolean,
|
||||
title: String,
|
||||
text: String,
|
||||
type: {
|
||||
type: String,
|
||||
validator: val => allowedTypes.includes(val)
|
||||
},
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...makeDimensionProps(),
|
||||
...makeElevationProps(),
|
||||
...makeIconSizeProps(),
|
||||
...makeLocationProps(),
|
||||
...makePositionProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeTagProps(),
|
||||
...makeThemeProps(),
|
||||
...makeVariantProps({
|
||||
variant: 'flat'
|
||||
})
|
||||
}, 'VAlert');
|
||||
export const VAlert = genericComponent()({
|
||||
name: 'VAlert',
|
||||
props: makeVAlertProps(),
|
||||
emits: {
|
||||
'click:close': e => true,
|
||||
'update:modelValue': value => true
|
||||
},
|
||||
setup(props, {
|
||||
emit,
|
||||
slots
|
||||
}) {
|
||||
const isActive = useProxiedModel(props, 'modelValue');
|
||||
const icon = toRef(() => {
|
||||
if (props.icon === false) return undefined;
|
||||
if (!props.type) return props.icon;
|
||||
return props.icon ?? `$${props.type}`;
|
||||
});
|
||||
const {
|
||||
iconSize
|
||||
} = useIconSizes(props, () => props.prominent ? 44 : undefined);
|
||||
const {
|
||||
themeClasses
|
||||
} = provideTheme(props);
|
||||
const {
|
||||
colorClasses,
|
||||
colorStyles,
|
||||
variantClasses
|
||||
} = useVariant(() => ({
|
||||
color: props.color ?? props.type,
|
||||
variant: props.variant
|
||||
}));
|
||||
const {
|
||||
densityClasses
|
||||
} = useDensity(props);
|
||||
const {
|
||||
dimensionStyles
|
||||
} = useDimension(props);
|
||||
const {
|
||||
elevationClasses
|
||||
} = useElevation(props);
|
||||
const {
|
||||
locationStyles
|
||||
} = useLocation(props);
|
||||
const {
|
||||
positionClasses
|
||||
} = usePosition(props);
|
||||
const {
|
||||
roundedClasses
|
||||
} = useRounded(props);
|
||||
const {
|
||||
textColorClasses,
|
||||
textColorStyles
|
||||
} = useTextColor(() => props.borderColor);
|
||||
const {
|
||||
t
|
||||
} = useLocale();
|
||||
const closeProps = toRef(() => ({
|
||||
'aria-label': t(props.closeLabel),
|
||||
onClick(e) {
|
||||
isActive.value = false;
|
||||
emit('click:close', e);
|
||||
}
|
||||
}));
|
||||
return () => {
|
||||
const hasPrepend = !!(slots.prepend || icon.value);
|
||||
const hasTitle = !!(slots.title || props.title);
|
||||
const hasClose = !!(slots.close || props.closable);
|
||||
const iconProps = {
|
||||
density: props.density,
|
||||
icon: icon.value,
|
||||
size: props.iconSize || props.prominent ? iconSize.value : undefined
|
||||
};
|
||||
return isActive.value && _createVNode(props.tag, {
|
||||
"class": _normalizeClass(['v-alert', props.border && {
|
||||
'v-alert--border': !!props.border,
|
||||
[`v-alert--border-${props.border === true ? 'start' : props.border}`]: true
|
||||
}, {
|
||||
'v-alert--prominent': props.prominent
|
||||
}, themeClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class]),
|
||||
"style": _normalizeStyle([colorStyles.value, dimensionStyles.value, locationStyles.value, props.style]),
|
||||
"role": "alert"
|
||||
}, {
|
||||
default: () => [genOverlays(false, 'v-alert'), props.border && _createElementVNode("div", {
|
||||
"key": "border",
|
||||
"class": _normalizeClass(['v-alert__border', textColorClasses.value]),
|
||||
"style": _normalizeStyle(textColorStyles.value)
|
||||
}, null), hasPrepend && _createElementVNode("div", {
|
||||
"key": "prepend",
|
||||
"class": "v-alert__prepend"
|
||||
}, [!slots.prepend ? _createVNode(VIcon, _mergeProps({
|
||||
"key": "prepend-icon"
|
||||
}, iconProps), null) : _createVNode(VDefaultsProvider, {
|
||||
"key": "prepend-defaults",
|
||||
"disabled": !icon.value,
|
||||
"defaults": {
|
||||
VIcon: {
|
||||
...iconProps
|
||||
}
|
||||
}
|
||||
}, slots.prepend)]), _createElementVNode("div", {
|
||||
"class": "v-alert__content"
|
||||
}, [hasTitle && _createVNode(VAlertTitle, {
|
||||
"key": "title"
|
||||
}, {
|
||||
default: () => [slots.title?.() ?? props.title]
|
||||
}), slots.text?.() ?? props.text, slots.default?.()]), slots.append && _createElementVNode("div", {
|
||||
"key": "append",
|
||||
"class": "v-alert__append"
|
||||
}, [slots.append()]), hasClose && _createElementVNode("div", {
|
||||
"key": "close",
|
||||
"class": "v-alert__close"
|
||||
}, [!slots.close ? _createVNode(VBtn, _mergeProps({
|
||||
"key": "close-btn",
|
||||
"icon": props.closeIcon,
|
||||
"size": "x-small",
|
||||
"variant": "text"
|
||||
}, closeProps.value), null) : _createVNode(VDefaultsProvider, {
|
||||
"key": "close-defaults",
|
||||
"defaults": {
|
||||
VBtn: {
|
||||
icon: props.closeIcon,
|
||||
size: 'x-small',
|
||||
variant: 'text'
|
||||
}
|
||||
}
|
||||
}, {
|
||||
default: () => [slots.close?.({
|
||||
props: closeProps.value
|
||||
})]
|
||||
})])]
|
||||
});
|
||||
};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VAlert.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+165
@@ -0,0 +1,165 @@
|
||||
@use '../../styles/settings'
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-alert
|
||||
display: grid
|
||||
flex: 1 1
|
||||
grid-template-areas: "prepend content append close" ". content . ."
|
||||
grid-template-columns: max-content auto max-content max-content
|
||||
position: relative
|
||||
padding: $alert-padding
|
||||
overflow: hidden
|
||||
--v-border-color: #{$alert-border-color}
|
||||
|
||||
@include tools.position($alert-positions)
|
||||
@include tools.rounded($alert-border-radius)
|
||||
@include tools.variant($alert-variants...)
|
||||
|
||||
&--prominent
|
||||
grid-template-areas: "prepend content append close" "prepend content . ."
|
||||
|
||||
&.v-alert--border
|
||||
--v-border-opacity: #{$alert-border-opacity}
|
||||
|
||||
&.v-alert--border-start
|
||||
padding-inline-start: $alert-padding + $alert-border-thin-width
|
||||
|
||||
&.v-alert--border-end
|
||||
padding-inline-end: $alert-padding + $alert-border-thin-width
|
||||
|
||||
&--variant-plain
|
||||
transition: $alert-plain-transition
|
||||
|
||||
@at-root
|
||||
@include tools.density('v-alert', $alert-density) using ($modifier)
|
||||
padding-bottom: $alert-padding + $modifier
|
||||
padding-top: $alert-padding + $modifier
|
||||
|
||||
&.v-alert--border-top
|
||||
padding-top: $alert-padding + $alert-border-thin-width + $modifier
|
||||
|
||||
&.v-alert--border-bottom
|
||||
padding-bottom: $alert-padding + $alert-border-thin-width + $modifier
|
||||
|
||||
&:not(:has(.v-alert-title))
|
||||
.v-alert__content
|
||||
padding-block: calc((#{$alert-prepend-icon-size} - #{settings.$line-height-root} * 1rem) / 2)
|
||||
|
||||
.v-alert__border
|
||||
border-radius: inherit
|
||||
bottom: 0
|
||||
left: 0
|
||||
opacity: var(--v-border-opacity)
|
||||
position: absolute
|
||||
pointer-events: none
|
||||
right: 0
|
||||
top: 0
|
||||
width: 100%
|
||||
|
||||
@include tools.border($alert-border...)
|
||||
|
||||
.v-alert--border-start &
|
||||
border-inline-start-width: $alert-border-thin-width
|
||||
|
||||
.v-alert--border-end &
|
||||
border-inline-end-width: $alert-border-thin-width
|
||||
|
||||
.v-alert--border-top &
|
||||
border-top-width: $alert-border-thin-width
|
||||
|
||||
.v-alert--border-bottom &
|
||||
border-bottom-width: $alert-border-thin-width
|
||||
|
||||
.v-alert__close
|
||||
flex: 0 1 auto
|
||||
grid-area: close
|
||||
|
||||
> .v-btn
|
||||
margin-block: calc(-1 * (var(--v-btn-height) + 12px - #{$alert-prepend-icon-size}) / 2)
|
||||
|
||||
.v-alert__content
|
||||
align-self: center
|
||||
grid-area: content
|
||||
overflow: hidden
|
||||
|
||||
> :first-child
|
||||
margin-top: 0
|
||||
|
||||
> :last-child
|
||||
margin-bottom: 0
|
||||
|
||||
.v-alert__append,
|
||||
.v-alert__close
|
||||
margin-inline-start: $alert-append-margin-inline-start
|
||||
|
||||
.v-alert__append
|
||||
align-self: flex-start
|
||||
grid-area: append
|
||||
|
||||
+ .v-alert__close
|
||||
margin-inline-start: $alert-append-close-margin-inline-start
|
||||
|
||||
.v-alert__prepend
|
||||
align-self: flex-start
|
||||
display: flex
|
||||
align-items: center
|
||||
grid-area: prepend
|
||||
margin-inline-end: $alert-prepend-margin-inline-end
|
||||
min-height: $alert-prepend-icon-size
|
||||
|
||||
> .v-icon
|
||||
font-size: $alert-prepend-icon-size
|
||||
height: $alert-prepend-icon-size
|
||||
width: $alert-prepend-icon-size
|
||||
|
||||
.v-alert--prominent &
|
||||
align-self: center
|
||||
|
||||
.v-alert__underlay
|
||||
grid-area: none
|
||||
position: absolute
|
||||
|
||||
.v-alert--border-start &
|
||||
border-top-left-radius: 0
|
||||
border-bottom-left-radius: 0
|
||||
|
||||
.v-alert--border-end &
|
||||
border-top-right-radius: 0
|
||||
border-bottom-right-radius: 0
|
||||
|
||||
.v-alert--border-top &
|
||||
border-top-left-radius: 0
|
||||
border-top-right-radius: 0
|
||||
|
||||
.v-alert--border-bottom &
|
||||
border-bottom-left-radius: 0
|
||||
border-bottom-right-radius: 0
|
||||
|
||||
.v-alert-title
|
||||
align-items: center
|
||||
align-self: center
|
||||
display: flex
|
||||
font-size: $alert-title-font-size
|
||||
font-weight: $alert-title-font-weight
|
||||
hyphens: $alert-title-hyphens
|
||||
letter-spacing: $alert-title-letter-spacing
|
||||
line-height: $alert-title-line-height
|
||||
overflow-wrap: $alert-title-overflow-wrap
|
||||
text-transform: $alert-title-text-transform
|
||||
word-break: $alert-title-word-break
|
||||
word-wrap: $alert-title-word-wrap
|
||||
|
||||
@media (forced-colors: active)
|
||||
.v-alert
|
||||
&:not(&--variant-text, &--variant-plain)
|
||||
border-style: solid
|
||||
|
||||
&--variant-outlined,
|
||||
&--variant-tonal
|
||||
border-width: medium
|
||||
|
||||
&--variant-elevated,
|
||||
&--variant-flat
|
||||
border-width: thick
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
export declare const VAlertTitle: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string;
|
||||
} & {
|
||||
class?: any;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string;
|
||||
} & {
|
||||
class?: any;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string;
|
||||
} & {
|
||||
class?: any;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
tag: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
tag: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
}>>;
|
||||
export type VAlertTitle = InstanceType<typeof VAlertTitle>;
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// Utilities
|
||||
import { createSimpleFunctional } from "../../util/index.js";
|
||||
export const VAlertTitle = createSimpleFunctional('v-alert-title');
|
||||
//# sourceMappingURL=VAlertTitle.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VAlertTitle.js","names":["createSimpleFunctional","VAlertTitle"],"sources":["../../../src/components/VAlert/VAlertTitle.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VAlertTitle = createSimpleFunctional('v-alert-title')\n\nexport type VAlertTitle = InstanceType<typeof VAlertTitle>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,WAAW,GAAGD,sBAAsB,CAAC,eAAe,CAAC","ignoreList":[]}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
@use '../../styles/settings';
|
||||
@use '../../styles/tools';
|
||||
|
||||
// VAlert
|
||||
$alert-background: rgb(var(--v-theme-surface-light)) !default;
|
||||
$alert-border-color: currentColor !default;
|
||||
$alert-border-opacity: .38 !default;
|
||||
$alert-border-radius: settings.$border-radius-root !default;
|
||||
$alert-border-style: settings.$border-style-root !default;
|
||||
$alert-border-thin-width: 8px !default;
|
||||
$alert-border-width: 0 !default;
|
||||
$alert-color: tools.theme-color('on-surface-light', var(--v-high-emphasis-opacity)) !default;
|
||||
$alert-density: ('default': 0, 'comfortable': -1, 'compact': -2) !default;
|
||||
$alert-elevation: 1 !default;
|
||||
$alert-padding: 16px !default;
|
||||
$alert-plain-opacity: .62 !default;
|
||||
$alert-plain-transition: .2s opacity settings.$standard-easing !default;
|
||||
$alert-positions: absolute fixed sticky !default;
|
||||
$alert-prepend-margin-inline-end: 16px !default;
|
||||
$alert-prepend-icon-size: 1.75rem !default;
|
||||
$alert-append-margin-inline-start: 16px !default;
|
||||
$alert-append-close-margin-inline-start: 16px !default;
|
||||
|
||||
// VAlertTitle
|
||||
$alert-title-font-size: tools.map-deep-get(settings.$typography, 'headline-small', 'size') !default;
|
||||
$alert-title-font-weight: tools.map-deep-get(settings.$typography, 'headline-small', 'weight') !default;
|
||||
$alert-title-hyphens: auto !default;
|
||||
$alert-title-letter-spacing: tools.map-deep-get(settings.$typography, 'headline-small', 'letter-spacing') !default;
|
||||
$alert-title-line-height: 1.75rem !default;
|
||||
$alert-title-overflow-wrap: normal !default;
|
||||
$alert-title-text-transform: none !default;
|
||||
$alert-title-word-break: normal !default;
|
||||
$alert-title-word-wrap: break-word !default;
|
||||
|
||||
// VAlertText
|
||||
$alert-text-line-height: 1.35 !default;
|
||||
|
||||
// Lists
|
||||
$alert-border: (
|
||||
$alert-border-color,
|
||||
$alert-border-style,
|
||||
$alert-border-width,
|
||||
$alert-border-thin-width
|
||||
) !default;
|
||||
|
||||
$alert-variants: (
|
||||
$alert-background,
|
||||
$alert-color,
|
||||
$alert-elevation,
|
||||
$alert-plain-opacity,
|
||||
'v-alert'
|
||||
) !default;
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
export { VAlert } from './VAlert.js';
|
||||
export { VAlertTitle } from './VAlertTitle.js';
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
export { VAlert } from "./VAlert.js";
|
||||
export { VAlertTitle } from "./VAlertTitle.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VAlert","VAlertTitle"],"sources":["../../../src/components/VAlert/index.ts"],"sourcesContent":["export { VAlert } from './VAlert'\nexport { VAlertTitle } from './VAlertTitle'\n"],"mappings":"SAASA,MAAM;AAAA,SACNC,WAAW","ignoreList":[]}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
@layer vuetify-components {
|
||||
.v-application {
|
||||
display: flex;
|
||||
background: rgb(var(--v-theme-background));
|
||||
color: color-mix(in srgb, rgb(var(--v-theme-on-background)) calc(var(--v-high-emphasis-opacity) * 100%), transparent);
|
||||
}
|
||||
.v-application__wrap {
|
||||
backface-visibility: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1 1 auto;
|
||||
max-width: 100%;
|
||||
min-height: 100vh;
|
||||
min-height: 100dvh;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
+185
@@ -0,0 +1,185 @@
|
||||
|
||||
export declare const makeVAppProps: <Defaults extends {
|
||||
theme?: unknown;
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
overlaps?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
theme: unknown extends Defaults["theme"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
|
||||
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
||||
};
|
||||
class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
overlaps: unknown extends Defaults["overlaps"] ? import("vue").Prop<string[]> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["overlaps"] ? string[] : string[] | Defaults["overlaps"]>;
|
||||
default: unknown extends Defaults["overlaps"] ? string[] : string[] | Defaults["overlaps"];
|
||||
};
|
||||
};
|
||||
export declare const VApp: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
overlaps?: string[] | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {
|
||||
getLayoutItem: (id: string) => {
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
} | undefined;
|
||||
items: import("vue").ComputedRef<{
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
}[]>;
|
||||
theme: import("../../types.js").ThemeInstance;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
overlaps?: string[] | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {
|
||||
getLayoutItem: (id: string) => {
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
} | undefined;
|
||||
items: import("vue").ComputedRef<{
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
}[]>;
|
||||
theme: import("../../types.js").ThemeInstance;
|
||||
}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
overlaps?: string[] | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {
|
||||
getLayoutItem: (id: string) => {
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
} | undefined;
|
||||
items: import("vue").ComputedRef<{
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
}[]>;
|
||||
theme: import("../../types.js").ThemeInstance;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
theme: StringConstructor;
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
overlaps: import("vue").Prop<string[]>;
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
theme: StringConstructor;
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
overlaps: import("vue").Prop<string[]>;
|
||||
}>>;
|
||||
export type VApp = InstanceType<typeof VApp>;
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
|
||||
// Styles
|
||||
import "./VApp.css";
|
||||
|
||||
// Composables
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { createLayout, makeLayoutProps } from "../../composables/layout.js";
|
||||
import { useRtl } from "../../composables/locale.js";
|
||||
import { makeThemeProps, provideTheme } from "../../composables/theme.js"; // Utilities
|
||||
import { genericComponent, omit, propsFactory, useRender } from "../../util/index.js";
|
||||
export const makeVAppProps = propsFactory({
|
||||
...makeComponentProps(),
|
||||
...omit(makeLayoutProps(), ['fullHeight']),
|
||||
...makeThemeProps()
|
||||
}, 'VApp');
|
||||
export const VApp = genericComponent()({
|
||||
name: 'VApp',
|
||||
props: makeVAppProps(),
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
const theme = provideTheme(props);
|
||||
const {
|
||||
layoutClasses,
|
||||
getLayoutItem,
|
||||
items,
|
||||
layoutRef
|
||||
} = createLayout({
|
||||
...props,
|
||||
fullHeight: true
|
||||
});
|
||||
const {
|
||||
rtlClasses
|
||||
} = useRtl();
|
||||
useRender(() => _createElementVNode("div", {
|
||||
"ref": layoutRef,
|
||||
"class": _normalizeClass(['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class]),
|
||||
"style": _normalizeStyle([props.style])
|
||||
}, [_createElementVNode("div", {
|
||||
"class": "v-application__wrap"
|
||||
}, [slots.default?.()])]));
|
||||
return {
|
||||
getLayoutItem,
|
||||
items,
|
||||
theme
|
||||
};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VApp.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VApp.js","names":["makeComponentProps","createLayout","makeLayoutProps","useRtl","makeThemeProps","provideTheme","genericComponent","omit","propsFactory","useRender","makeVAppProps","VApp","name","props","setup","slots","theme","layoutClasses","getLayoutItem","items","layoutRef","fullHeight","rtlClasses","_createElementVNode","_normalizeClass","themeClasses","value","class","_normalizeStyle","style","default"],"sources":["../../../src/components/VApp/VApp.tsx"],"sourcesContent":["// Styles\nimport './VApp.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\nimport { useRtl } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\nexport const makeVAppProps = propsFactory({\n ...makeComponentProps(),\n ...omit(makeLayoutProps(), ['fullHeight']),\n ...makeThemeProps(),\n}, 'VApp')\n\nexport const VApp = genericComponent()({\n name: 'VApp',\n\n props: makeVAppProps(),\n\n setup (props, { slots }) {\n const theme = provideTheme(props)\n const { layoutClasses, getLayoutItem, items, layoutRef } = createLayout({ ...props, fullHeight: true })\n const { rtlClasses } = useRtl()\n\n useRender(() => (\n <div\n ref={ layoutRef }\n class={[\n 'v-application',\n theme.themeClasses.value,\n layoutClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n props.style,\n ]}\n >\n <div class=\"v-application__wrap\">\n { slots.default?.() }\n </div>\n </div>\n ))\n\n return {\n getLayoutItem,\n items,\n theme,\n }\n },\n})\n\nexport type VApp = InstanceType<typeof VApp>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,YAAY,EAAEC,eAAe;AAAA,SAC7BC,MAAM;AAAA,SACNC,cAAc,EAAEC,YAAY,sCAErC;AAAA,SACSC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS;AAExD,OAAO,MAAMC,aAAa,GAAGF,YAAY,CAAC;EACxC,GAAGR,kBAAkB,CAAC,CAAC;EACvB,GAAGO,IAAI,CAACL,eAAe,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;EAC1C,GAAGE,cAAc,CAAC;AACpB,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,MAAMO,IAAI,GAAGL,gBAAgB,CAAC,CAAC,CAAC;EACrCM,IAAI,EAAE,MAAM;EAEZC,KAAK,EAAEH,aAAa,CAAC,CAAC;EAEtBI,KAAKA,CAAED,KAAK,EAAE;IAAEE;EAAM,CAAC,EAAE;IACvB,MAAMC,KAAK,GAAGX,YAAY,CAACQ,KAAK,CAAC;IACjC,MAAM;MAAEI,aAAa;MAAEC,aAAa;MAAEC,KAAK;MAAEC;IAAU,CAAC,GAAGnB,YAAY,CAAC;MAAE,GAAGY,KAAK;MAAEQ,UAAU,EAAE;IAAK,CAAC,CAAC;IACvG,MAAM;MAAEC;IAAW,CAAC,GAAGnB,MAAM,CAAC,CAAC;IAE/BM,SAAS,CAAC,MAAAc,mBAAA;MAAA,OAEAH,SAAS;MAAA,SAAAI,eAAA,CACR,CACL,eAAe,EACfR,KAAK,CAACS,YAAY,CAACC,KAAK,EACxBT,aAAa,CAACS,KAAK,EACnBJ,UAAU,CAACI,KAAK,EAChBb,KAAK,CAACc,KAAK,CACZ;MAAA,SAAAC,eAAA,CACM,CACLf,KAAK,CAACgB,KAAK,CACZ;IAAA,IAAAN,mBAAA;MAAA;IAAA,IAGGR,KAAK,CAACe,OAAO,GAAG,CAAC,IAGxB,CAAC;IAEF,OAAO;MACLZ,aAAa;MACbC,KAAK;MACLH;IACF,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-application
|
||||
display: flex
|
||||
background: $application-background
|
||||
color: $application-color
|
||||
|
||||
.v-application__wrap
|
||||
backface-visibility: hidden
|
||||
display: flex
|
||||
flex-direction: column
|
||||
flex: 1 1 auto
|
||||
max-width: 100%
|
||||
min-height: 100vh
|
||||
min-height: 100dvh
|
||||
position: relative
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
@use '../../styles/settings';
|
||||
@use '../../styles/tools';
|
||||
|
||||
// VApp
|
||||
$application-background: rgb(var(--v-theme-background)) !default;
|
||||
$application-color: tools.theme-color('on-background', var(--v-high-emphasis-opacity)) !default;
|
||||
+1
@@ -0,0 +1 @@
|
||||
export { VApp } from './VApp.js';
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
export { VApp } from "./VApp.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VApp"],"sources":["../../../src/components/VApp/index.ts"],"sourcesContent":["export { VApp } from './VApp'\n"],"mappings":"SAASA,IAAI","ignoreList":[]}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
@layer vuetify-components {
|
||||
.v-app-bar {
|
||||
display: flex;
|
||||
}
|
||||
.v-app-bar.v-toolbar {
|
||||
background: rgb(var(--v-theme-surface));
|
||||
color: color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-high-emphasis-opacity) * 100%), transparent);
|
||||
}
|
||||
.v-app-bar.v-toolbar:not(.v-toolbar--flat) {
|
||||
box-shadow: 0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity, 0.3)), 0px 2px 6px 2px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity, 0.15));
|
||||
--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent);
|
||||
}
|
||||
.v-app-bar:not(.v-toolbar--absolute) {
|
||||
padding-inline-end: var(--v-scrollbar-offset);
|
||||
}
|
||||
}
|
||||
+669
@@ -0,0 +1,669 @@
|
||||
|
||||
import type { PropType } from 'vue';
|
||||
export declare const makeVAppBarProps: <Defaults extends {
|
||||
theme?: unknown;
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
name?: unknown;
|
||||
order?: unknown;
|
||||
absolute?: unknown;
|
||||
border?: unknown;
|
||||
elevation?: unknown;
|
||||
rounded?: unknown;
|
||||
tile?: unknown;
|
||||
tag?: unknown;
|
||||
collapse?: unknown;
|
||||
collapsePosition?: unknown;
|
||||
color?: unknown;
|
||||
density?: unknown;
|
||||
extended?: unknown;
|
||||
extensionHeight?: unknown;
|
||||
flat?: unknown;
|
||||
floating?: unknown;
|
||||
image?: unknown;
|
||||
title?: unknown;
|
||||
scrollTarget?: unknown;
|
||||
scrollThreshold?: unknown;
|
||||
scrollBehavior?: unknown;
|
||||
modelValue?: unknown;
|
||||
location?: unknown;
|
||||
height?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
theme: unknown extends Defaults["theme"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
|
||||
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
||||
};
|
||||
class: unknown extends Defaults["class"] ? PropType<any> : {
|
||||
type: PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
name: unknown extends Defaults["name"] ? {
|
||||
type: StringConstructor;
|
||||
} : Omit<{
|
||||
type: StringConstructor;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["name"] ? string : string | Defaults["name"]>;
|
||||
default: unknown extends Defaults["name"] ? string : string | Defaults["name"];
|
||||
};
|
||||
order: unknown extends Defaults["order"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["order"] ? string | number : string | number | Defaults["order"]>;
|
||||
default: unknown extends Defaults["order"] ? string | number : Defaults["order"] | NonNullable<string | number>;
|
||||
};
|
||||
absolute: unknown extends Defaults["absolute"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["absolute"] ? boolean : boolean | Defaults["absolute"]>;
|
||||
default: unknown extends Defaults["absolute"] ? boolean : boolean | Defaults["absolute"];
|
||||
};
|
||||
border: unknown extends Defaults["border"] ? (BooleanConstructor | NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["border"] ? string | number | boolean : string | number | boolean | Defaults["border"]>;
|
||||
default: unknown extends Defaults["border"] ? string | number | boolean : Defaults["border"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
elevation: unknown extends Defaults["elevation"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["elevation"] ? string | number : string | number | Defaults["elevation"]>;
|
||||
default: unknown extends Defaults["elevation"] ? string | number : Defaults["elevation"] | NonNullable<string | number>;
|
||||
};
|
||||
rounded: unknown extends Defaults["rounded"] ? {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>;
|
||||
default: unknown extends Defaults["rounded"] ? string | number | boolean : Defaults["rounded"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
tile: unknown extends Defaults["tile"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>;
|
||||
default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"];
|
||||
};
|
||||
tag: unknown extends Defaults["tag"] ? Omit<{
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
} : Omit<Omit<{
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | Defaults["tag"] | import("../../util/index.js").JSXComponent>;
|
||||
default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
collapse: unknown extends Defaults["collapse"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["collapse"] ? boolean : boolean | Defaults["collapse"]>;
|
||||
default: unknown extends Defaults["collapse"] ? boolean : boolean | Defaults["collapse"];
|
||||
};
|
||||
collapsePosition: unknown extends Defaults["collapsePosition"] ? {
|
||||
type: PropType<'start' | 'end'>;
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: PropType<'start' | 'end'>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["collapsePosition"] ? "end" | "start" : "end" | "start" | Defaults["collapsePosition"]>;
|
||||
default: unknown extends Defaults["collapsePosition"] ? "end" | "start" : Defaults["collapsePosition"] | NonNullable<"end" | "start">;
|
||||
};
|
||||
color: unknown extends Defaults["color"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
|
||||
default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
|
||||
};
|
||||
density: unknown extends Defaults["density"] ? {
|
||||
type: PropType<import("../VToolbar/VToolbar.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<import("../VToolbar/VToolbar.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["density"] ? import("../VToolbar/VToolbar.js").Density : Defaults["density"] | import("../VToolbar/VToolbar.js").Density>;
|
||||
default: unknown extends Defaults["density"] ? import("../VToolbar/VToolbar.js").Density : Defaults["density"] | NonNullable<import("../VToolbar/VToolbar.js").Density>;
|
||||
};
|
||||
extended: unknown extends Defaults["extended"] ? {
|
||||
type: BooleanConstructor;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: BooleanConstructor;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["extended"] ? boolean : boolean | Defaults["extended"]>;
|
||||
default: unknown extends Defaults["extended"] ? boolean : boolean | Defaults["extended"];
|
||||
};
|
||||
extensionHeight: unknown extends Defaults["extensionHeight"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["extensionHeight"] ? string | number : string | number | Defaults["extensionHeight"]>;
|
||||
default: unknown extends Defaults["extensionHeight"] ? string | number : Defaults["extensionHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
flat: unknown extends Defaults["flat"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["flat"] ? boolean : boolean | Defaults["flat"]>;
|
||||
default: unknown extends Defaults["flat"] ? boolean : boolean | Defaults["flat"];
|
||||
};
|
||||
floating: unknown extends Defaults["floating"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["floating"] ? boolean : boolean | Defaults["floating"]>;
|
||||
default: unknown extends Defaults["floating"] ? boolean : boolean | Defaults["floating"];
|
||||
};
|
||||
image: unknown extends Defaults["image"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["image"] ? string : string | Defaults["image"]>;
|
||||
default: unknown extends Defaults["image"] ? string : string | Defaults["image"];
|
||||
};
|
||||
title: unknown extends Defaults["title"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["title"] ? string : string | Defaults["title"]>;
|
||||
default: unknown extends Defaults["title"] ? string : string | Defaults["title"];
|
||||
};
|
||||
scrollTarget: unknown extends Defaults["scrollTarget"] ? {
|
||||
type: StringConstructor;
|
||||
} : Omit<{
|
||||
type: StringConstructor;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["scrollTarget"] ? string : string | Defaults["scrollTarget"]>;
|
||||
default: unknown extends Defaults["scrollTarget"] ? string : string | Defaults["scrollTarget"];
|
||||
};
|
||||
scrollThreshold: unknown extends Defaults["scrollThreshold"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["scrollThreshold"] ? string | number : string | number | Defaults["scrollThreshold"]>;
|
||||
default: unknown extends Defaults["scrollThreshold"] ? string | number : Defaults["scrollThreshold"] | NonNullable<string | number>;
|
||||
};
|
||||
scrollBehavior: unknown extends Defaults["scrollBehavior"] ? PropType<"collapse" | "elevate" | "fade-image" | "fully-hide" | "hide" | "inverted" | (string & {})> : {
|
||||
type: PropType<unknown extends Defaults["scrollBehavior"] ? "collapse" | "elevate" | "fade-image" | "fully-hide" | "hide" | "inverted" | (string & {}) : "collapse" | "elevate" | "fade-image" | "fully-hide" | "hide" | "inverted" | Defaults["scrollBehavior"] | (string & {})>;
|
||||
default: unknown extends Defaults["scrollBehavior"] ? "collapse" | "elevate" | "fade-image" | "fully-hide" | "hide" | "inverted" | (string & {}) : string | Defaults["scrollBehavior"];
|
||||
};
|
||||
modelValue: unknown extends Defaults["modelValue"] ? {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
} : Omit<{
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["modelValue"] ? boolean : boolean | Defaults["modelValue"]>;
|
||||
default: unknown extends Defaults["modelValue"] ? boolean : boolean | Defaults["modelValue"];
|
||||
};
|
||||
location: unknown extends Defaults["location"] ? {
|
||||
type: PropType<'top' | 'bottom'>;
|
||||
default: string;
|
||||
validator: (value: any) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<'top' | 'bottom'>;
|
||||
default: string;
|
||||
validator: (value: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["location"] ? "bottom" | "top" : "bottom" | "top" | Defaults["location"]>;
|
||||
default: unknown extends Defaults["location"] ? "bottom" | "top" : Defaults["location"] | NonNullable<"bottom" | "top">;
|
||||
};
|
||||
height: unknown extends Defaults["height"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["height"] ? string | number : string | number | Defaults["height"]>;
|
||||
default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable<string | number>;
|
||||
};
|
||||
};
|
||||
export declare const VAppBar: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
collapse: boolean;
|
||||
collapsePosition: "end" | "start";
|
||||
density: import("../VToolbar/VToolbar.js").Density;
|
||||
extended: boolean;
|
||||
extensionHeight: string | number;
|
||||
flat: boolean;
|
||||
floating: boolean;
|
||||
scrollThreshold: string | number;
|
||||
modelValue: boolean;
|
||||
location: "bottom" | "top";
|
||||
height: string | number;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
name?: string | undefined;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
image?: string | undefined;
|
||||
title?: string | undefined;
|
||||
scrollTarget?: string | undefined;
|
||||
scrollBehavior?: "collapse" | "elevate" | "fade-image" | "fully-hide" | "hide" | "inverted" | (string & {}) | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
image?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
append?: (() => import("vue").VNodeChild) | undefined;
|
||||
title?: (() => import("vue").VNodeChild) | undefined;
|
||||
extension?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
image?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
append?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
title?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
extension?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:append"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:extension"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:image"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:title"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & {
|
||||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
||||
'update:modelValue': (value: boolean) => true;
|
||||
}, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
collapse: boolean;
|
||||
collapsePosition: "end" | "start";
|
||||
density: import("../VToolbar/VToolbar.js").Density;
|
||||
extended: boolean;
|
||||
extensionHeight: string | number;
|
||||
flat: boolean;
|
||||
floating: boolean;
|
||||
scrollThreshold: string | number;
|
||||
modelValue: boolean;
|
||||
location: "bottom" | "top";
|
||||
height: string | number;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
image: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
prepend: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
append: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
title: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
extension: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
collapse: boolean;
|
||||
collapsePosition: "end" | "start";
|
||||
density: import("../VToolbar/VToolbar.js").Density;
|
||||
extended: boolean;
|
||||
extensionHeight: string | number;
|
||||
flat: boolean;
|
||||
floating: boolean;
|
||||
scrollThreshold: string | number;
|
||||
modelValue: boolean;
|
||||
location: "bottom" | "top";
|
||||
height: string | number;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
name?: string | undefined;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
image?: string | undefined;
|
||||
title?: string | undefined;
|
||||
scrollTarget?: string | undefined;
|
||||
scrollBehavior?: "collapse" | "elevate" | "fade-image" | "fully-hide" | "hide" | "inverted" | (string & {}) | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
image?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
append?: (() => import("vue").VNodeChild) | undefined;
|
||||
title?: (() => import("vue").VNodeChild) | undefined;
|
||||
extension?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
image?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
append?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
title?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
extension?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:append"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:extension"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:image"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:title"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & {
|
||||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
collapse: boolean;
|
||||
collapsePosition: "end" | "start";
|
||||
density: import("../VToolbar/VToolbar.js").Density;
|
||||
extended: boolean;
|
||||
extensionHeight: string | number;
|
||||
flat: boolean;
|
||||
floating: boolean;
|
||||
scrollThreshold: string | number;
|
||||
modelValue: boolean;
|
||||
location: "bottom" | "top";
|
||||
height: string | number;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
collapse: boolean;
|
||||
collapsePosition: "end" | "start";
|
||||
density: import("../VToolbar/VToolbar.js").Density;
|
||||
extended: boolean;
|
||||
extensionHeight: string | number;
|
||||
flat: boolean;
|
||||
floating: boolean;
|
||||
scrollThreshold: string | number;
|
||||
modelValue: boolean;
|
||||
location: "bottom" | "top";
|
||||
height: string | number;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
name?: string | undefined;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
image?: string | undefined;
|
||||
title?: string | undefined;
|
||||
scrollTarget?: string | undefined;
|
||||
scrollBehavior?: "collapse" | "elevate" | "fade-image" | "fully-hide" | "hide" | "inverted" | (string & {}) | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
image?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
append?: (() => import("vue").VNodeChild) | undefined;
|
||||
title?: (() => import("vue").VNodeChild) | undefined;
|
||||
extension?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
image?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
append?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
title?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
extension?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:append"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:extension"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:image"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:title"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & {
|
||||
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
||||
'update:modelValue': (value: boolean) => true;
|
||||
}, string, {
|
||||
style: import("vue").StyleValue;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
collapse: boolean;
|
||||
collapsePosition: "end" | "start";
|
||||
density: import("../VToolbar/VToolbar.js").Density;
|
||||
extended: boolean;
|
||||
extensionHeight: string | number;
|
||||
flat: boolean;
|
||||
floating: boolean;
|
||||
scrollThreshold: string | number;
|
||||
modelValue: boolean;
|
||||
location: "bottom" | "top";
|
||||
height: string | number;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
image: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
prepend: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
append: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
title: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
extension: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
theme: StringConstructor;
|
||||
class: PropType<import("../../composables/component.js").ClassValue>;
|
||||
style: {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
name: {
|
||||
type: StringConstructor;
|
||||
};
|
||||
order: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
absolute: BooleanConstructor;
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: Omit<{
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
collapse: BooleanConstructor;
|
||||
collapsePosition: {
|
||||
type: PropType<'start' | 'end'>;
|
||||
default: string;
|
||||
};
|
||||
color: StringConstructor;
|
||||
density: {
|
||||
type: PropType<import("../VToolbar/VToolbar.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
extended: {
|
||||
type: BooleanConstructor;
|
||||
default: null;
|
||||
};
|
||||
extensionHeight: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
flat: BooleanConstructor;
|
||||
floating: BooleanConstructor;
|
||||
image: StringConstructor;
|
||||
title: StringConstructor;
|
||||
scrollTarget: {
|
||||
type: StringConstructor;
|
||||
};
|
||||
scrollThreshold: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
scrollBehavior: PropType<'hide' | 'fully-hide' | 'inverted' | 'collapse' | 'elevate' | 'fade-image' | (string & {})>;
|
||||
modelValue: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
location: {
|
||||
type: PropType<'top' | 'bottom'>;
|
||||
default: string;
|
||||
validator: (value: any) => boolean;
|
||||
};
|
||||
height: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
theme: StringConstructor;
|
||||
class: PropType<import("../../composables/component.js").ClassValue>;
|
||||
style: {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
name: {
|
||||
type: StringConstructor;
|
||||
};
|
||||
order: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
absolute: BooleanConstructor;
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: Omit<{
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
collapse: BooleanConstructor;
|
||||
collapsePosition: {
|
||||
type: PropType<'start' | 'end'>;
|
||||
default: string;
|
||||
};
|
||||
color: StringConstructor;
|
||||
density: {
|
||||
type: PropType<import("../VToolbar/VToolbar.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
extended: {
|
||||
type: BooleanConstructor;
|
||||
default: null;
|
||||
};
|
||||
extensionHeight: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
flat: BooleanConstructor;
|
||||
floating: BooleanConstructor;
|
||||
image: StringConstructor;
|
||||
title: StringConstructor;
|
||||
scrollTarget: {
|
||||
type: StringConstructor;
|
||||
};
|
||||
scrollThreshold: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
scrollBehavior: PropType<'hide' | 'fully-hide' | 'inverted' | 'collapse' | 'elevate' | 'fade-image' | (string & {})>;
|
||||
modelValue: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
location: {
|
||||
type: PropType<'top' | 'bottom'>;
|
||||
default: string;
|
||||
validator: (value: any) => boolean;
|
||||
};
|
||||
height: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
}>>;
|
||||
export type VAppBar = InstanceType<typeof VAppBar>;
|
||||
+154
@@ -0,0 +1,154 @@
|
||||
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
||||
// Styles
|
||||
import "./VAppBar.css";
|
||||
|
||||
// Components
|
||||
import { makeVToolbarProps, VToolbar } from "../VToolbar/VToolbar.js"; // Composables
|
||||
import { makeLayoutItemProps, useLayoutItem } from "../../composables/layout.js";
|
||||
import { useProxiedModel } from "../../composables/proxiedModel.js";
|
||||
import { makeScrollProps, useScroll } from "../../composables/scroll.js";
|
||||
import { useSsrBoot } from "../../composables/ssrBoot.js";
|
||||
import { useToggleScope } from "../../composables/toggleScope.js"; // Utilities
|
||||
import { computed, ref, shallowRef, toRef, watchEffect } from 'vue';
|
||||
import { genericComponent, omit, propsFactory, useRender } from "../../util/index.js"; // Types
|
||||
export const makeVAppBarProps = propsFactory({
|
||||
scrollBehavior: String,
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
location: {
|
||||
type: String,
|
||||
default: 'top',
|
||||
validator: value => ['top', 'bottom'].includes(value)
|
||||
},
|
||||
...omit(makeVToolbarProps(), ['location']),
|
||||
...makeLayoutItemProps(),
|
||||
...makeScrollProps(),
|
||||
height: {
|
||||
type: [Number, String],
|
||||
default: 64
|
||||
}
|
||||
}, 'VAppBar');
|
||||
export const VAppBar = genericComponent()({
|
||||
name: 'VAppBar',
|
||||
props: makeVAppBarProps(),
|
||||
emits: {
|
||||
'update:modelValue': value => true
|
||||
},
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
const vToolbarRef = ref();
|
||||
const isActive = useProxiedModel(props, 'modelValue');
|
||||
const scrollBehavior = computed(() => {
|
||||
const behavior = new Set(props.scrollBehavior?.split(' ') ?? []);
|
||||
return {
|
||||
hide: behavior.has('hide'),
|
||||
fullyHide: behavior.has('fully-hide'),
|
||||
inverted: behavior.has('inverted'),
|
||||
collapse: behavior.has('collapse'),
|
||||
elevate: behavior.has('elevate'),
|
||||
fadeImage: behavior.has('fade-image')
|
||||
// shrink: behavior.has('shrink'),
|
||||
};
|
||||
});
|
||||
const canScroll = computed(() => {
|
||||
const behavior = scrollBehavior.value;
|
||||
return behavior.hide || behavior.fullyHide || behavior.inverted || behavior.collapse || behavior.elevate || behavior.fadeImage ||
|
||||
// behavior.shrink ||
|
||||
!isActive.value;
|
||||
});
|
||||
const appBarHeight = computed(() => {
|
||||
const height = vToolbarRef.value?.contentHeight ?? 0;
|
||||
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
||||
return height + extensionHeight;
|
||||
});
|
||||
const {
|
||||
currentScroll,
|
||||
scrollThreshold,
|
||||
isScrollingUp,
|
||||
scrollRatio,
|
||||
isAtBottom,
|
||||
reachedBottomWhileScrollingDown,
|
||||
hasEnoughScrollableSpace
|
||||
} = useScroll(props, {
|
||||
canScroll,
|
||||
layoutSize: appBarHeight
|
||||
});
|
||||
const canHide = toRef(() => scrollBehavior.value.hide || scrollBehavior.value.fullyHide);
|
||||
const isCollapsed = computed(() => props.collapse || scrollBehavior.value.collapse && (scrollBehavior.value.inverted ? scrollRatio.value > 0 : scrollRatio.value === 0));
|
||||
const isFlat = computed(() => props.flat || scrollBehavior.value.fullyHide && !isActive.value || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
|
||||
const opacity = computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
|
||||
const height = computed(() => {
|
||||
if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
|
||||
const height = vToolbarRef.value?.contentHeight ?? 0;
|
||||
const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
|
||||
if (!canHide.value) return height + extensionHeight;
|
||||
return currentScroll.value < scrollThreshold.value || scrollBehavior.value.fullyHide ? height + extensionHeight : height;
|
||||
});
|
||||
useToggleScope(() => !!props.scrollBehavior, () => {
|
||||
watchEffect(() => {
|
||||
if (!canHide.value) {
|
||||
isActive.value = true;
|
||||
return;
|
||||
}
|
||||
if (scrollBehavior.value.inverted) {
|
||||
isActive.value = currentScroll.value > scrollThreshold.value;
|
||||
return;
|
||||
}
|
||||
|
||||
// If there's not enough scrollable space, don't apply scroll-hide behavior at all
|
||||
// This prevents flickering/bouncing animations on short pages
|
||||
if (!hasEnoughScrollableSpace.value) {
|
||||
isActive.value = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// Prevent navbar from showing when we reached bottom while scrolling down
|
||||
// This handles the case where scroll momentum causes to hit bottom during hide transition
|
||||
if (reachedBottomWhileScrollingDown.value) {
|
||||
isActive.value = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// Normal behavior: show when scrolling up (and not at bottom) or above threshold
|
||||
isActive.value = isScrollingUp.value && !isAtBottom.value || currentScroll.value < scrollThreshold.value;
|
||||
});
|
||||
});
|
||||
const {
|
||||
ssrBootStyles
|
||||
} = useSsrBoot();
|
||||
const {
|
||||
layoutItemStyles
|
||||
} = useLayoutItem({
|
||||
id: props.name,
|
||||
order: computed(() => parseInt(props.order, 10)),
|
||||
position: toRef(() => props.location),
|
||||
layoutSize: height,
|
||||
elementSize: shallowRef(undefined),
|
||||
active: isActive,
|
||||
absolute: toRef(() => props.absolute)
|
||||
});
|
||||
useRender(() => {
|
||||
const toolbarProps = omit(VToolbar.filterProps(props), ['location']);
|
||||
return _createVNode(VToolbar, _mergeProps({
|
||||
"ref": vToolbarRef,
|
||||
"class": ['v-app-bar', {
|
||||
'v-app-bar--bottom': props.location === 'bottom'
|
||||
}, props.class],
|
||||
"style": [{
|
||||
...layoutItemStyles.value,
|
||||
'--v-toolbar-image-opacity': opacity.value,
|
||||
height: undefined,
|
||||
...ssrBootStyles.value
|
||||
}, props.style]
|
||||
}, toolbarProps, {
|
||||
"collapse": isCollapsed.value,
|
||||
"flat": isFlat.value
|
||||
}), slots);
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VAppBar.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+15
@@ -0,0 +1,15 @@
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-app-bar
|
||||
display: flex
|
||||
|
||||
&.v-toolbar
|
||||
@include tools.theme($app-bar-theme...)
|
||||
|
||||
&:not(.v-toolbar--flat)
|
||||
@include tools.elevation($app-bar-elevation)
|
||||
|
||||
&:not(.v-toolbar--absolute)
|
||||
padding-inline-end: var(--v-scrollbar-offset)
|
||||
+836
@@ -0,0 +1,836 @@
|
||||
export declare const makeVAppBarNavIconProps: <Defaults extends {
|
||||
theme?: unknown;
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
border?: unknown;
|
||||
density?: unknown;
|
||||
elevation?: unknown;
|
||||
rounded?: unknown;
|
||||
tile?: unknown;
|
||||
tag?: unknown;
|
||||
color?: unknown;
|
||||
variant?: unknown;
|
||||
value?: unknown;
|
||||
disabled?: unknown;
|
||||
selectedClass?: unknown;
|
||||
size?: unknown;
|
||||
height?: unknown;
|
||||
maxHeight?: unknown;
|
||||
maxWidth?: unknown;
|
||||
minHeight?: unknown;
|
||||
minWidth?: unknown;
|
||||
width?: unknown;
|
||||
location?: unknown;
|
||||
loading?: unknown;
|
||||
position?: unknown;
|
||||
href?: unknown;
|
||||
replace?: unknown;
|
||||
to?: unknown;
|
||||
exact?: unknown;
|
||||
active?: unknown;
|
||||
activeColor?: unknown;
|
||||
baseColor?: unknown;
|
||||
symbol?: unknown;
|
||||
flat?: unknown;
|
||||
icon?: unknown;
|
||||
prependIcon?: unknown;
|
||||
appendIcon?: unknown;
|
||||
block?: unknown;
|
||||
readonly?: unknown;
|
||||
slim?: unknown;
|
||||
stacked?: unknown;
|
||||
ripple?: unknown;
|
||||
text?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
theme: unknown extends Defaults["theme"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
|
||||
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
||||
};
|
||||
class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
border: unknown extends Defaults["border"] ? (BooleanConstructor | NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["border"] ? string | number | boolean : string | number | boolean | Defaults["border"]>;
|
||||
default: unknown extends Defaults["border"] ? string | number | boolean : Defaults["border"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
density: unknown extends Defaults["density"] ? {
|
||||
type: import("vue").PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
|
||||
default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
|
||||
};
|
||||
elevation: unknown extends Defaults["elevation"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["elevation"] ? string | number : string | number | Defaults["elevation"]>;
|
||||
default: unknown extends Defaults["elevation"] ? string | number : Defaults["elevation"] | NonNullable<string | number>;
|
||||
};
|
||||
rounded: unknown extends Defaults["rounded"] ? {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>;
|
||||
default: unknown extends Defaults["rounded"] ? string | number | boolean : Defaults["rounded"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
tile: unknown extends Defaults["tile"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>;
|
||||
default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"];
|
||||
};
|
||||
tag: unknown extends Defaults["tag"] ? Omit<{
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
} : Omit<Omit<{
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | Defaults["tag"] | import("../../util/index.js").JSXComponent>;
|
||||
default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
color: unknown extends Defaults["color"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
|
||||
default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
|
||||
};
|
||||
variant: unknown extends Defaults["variant"] ? Omit<Omit<{
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
} : Omit<Omit<Omit<{
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["variant"] ? "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" : "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" | Defaults["variant"]>;
|
||||
default: unknown extends Defaults["variant"] ? "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" : Defaults["variant"] | NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
};
|
||||
value: unknown extends Defaults["value"] ? null : {
|
||||
type: import("vue").PropType<unknown extends Defaults["value"] ? any : any>;
|
||||
default: unknown extends Defaults["value"] ? any : any;
|
||||
};
|
||||
disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>;
|
||||
default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"];
|
||||
};
|
||||
selectedClass: unknown extends Defaults["selectedClass"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["selectedClass"] ? string : string | Defaults["selectedClass"]>;
|
||||
default: unknown extends Defaults["selectedClass"] ? string : string | Defaults["selectedClass"];
|
||||
};
|
||||
size: unknown extends Defaults["size"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["size"] ? string | number : string | number | Defaults["size"]>;
|
||||
default: unknown extends Defaults["size"] ? string | number : Defaults["size"] | NonNullable<string | number>;
|
||||
};
|
||||
height: unknown extends Defaults["height"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["height"] ? string | number : string | number | Defaults["height"]>;
|
||||
default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable<string | number>;
|
||||
};
|
||||
maxHeight: unknown extends Defaults["maxHeight"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["maxHeight"] ? string | number : string | number | Defaults["maxHeight"]>;
|
||||
default: unknown extends Defaults["maxHeight"] ? string | number : Defaults["maxHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
maxWidth: unknown extends Defaults["maxWidth"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["maxWidth"] ? string | number : string | number | Defaults["maxWidth"]>;
|
||||
default: unknown extends Defaults["maxWidth"] ? string | number : Defaults["maxWidth"] | NonNullable<string | number>;
|
||||
};
|
||||
minHeight: unknown extends Defaults["minHeight"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["minHeight"] ? string | number : string | number | Defaults["minHeight"]>;
|
||||
default: unknown extends Defaults["minHeight"] ? string | number : Defaults["minHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
minWidth: unknown extends Defaults["minWidth"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["minWidth"] ? string | number : string | number | Defaults["minWidth"]>;
|
||||
default: unknown extends Defaults["minWidth"] ? string | number : Defaults["minWidth"] | NonNullable<string | number>;
|
||||
};
|
||||
width: unknown extends Defaults["width"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["width"] ? string | number : string | number | Defaults["width"]>;
|
||||
default: unknown extends Defaults["width"] ? string | number : Defaults["width"] | NonNullable<string | number>;
|
||||
};
|
||||
location: unknown extends Defaults["location"] ? import("vue").PropType<import("../../util/index.js").Anchor | null> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["location"] ? import("../../util/index.js").Anchor | null : Defaults["location"] | import("../../util/index.js").Anchor | null>;
|
||||
default: unknown extends Defaults["location"] ? import("../../util/index.js").Anchor | null : Defaults["location"] | NonNullable<import("../../util/index.js").Anchor | null>;
|
||||
};
|
||||
loading: unknown extends Defaults["loading"] ? (BooleanConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["loading"] ? string | boolean : string | boolean | Defaults["loading"]>;
|
||||
default: unknown extends Defaults["loading"] ? string | boolean : Defaults["loading"] | NonNullable<string | boolean>;
|
||||
};
|
||||
position: unknown extends Defaults["position"] ? {
|
||||
type: import("vue").PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["position"] ? "absolute" | "fixed" | "relative" | "static" | "sticky" : "absolute" | "fixed" | "relative" | "static" | "sticky" | Defaults["position"]>;
|
||||
default: unknown extends Defaults["position"] ? "absolute" | "fixed" | "relative" | "static" | "sticky" : Defaults["position"] | NonNullable<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
};
|
||||
href: unknown extends Defaults["href"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["href"] ? string : string | Defaults["href"]>;
|
||||
default: unknown extends Defaults["href"] ? string : string | Defaults["href"];
|
||||
};
|
||||
replace: unknown extends Defaults["replace"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["replace"] ? boolean : boolean | Defaults["replace"]>;
|
||||
default: unknown extends Defaults["replace"] ? boolean : boolean | Defaults["replace"];
|
||||
};
|
||||
to: unknown extends Defaults["to"] ? import("vue").PropType<string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["to"] ? string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric : string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric | Defaults["to"]>;
|
||||
default: unknown extends Defaults["to"] ? string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric : Defaults["to"] | NonNullable<string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric>;
|
||||
};
|
||||
exact: unknown extends Defaults["exact"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["exact"] ? boolean : boolean | Defaults["exact"]>;
|
||||
default: unknown extends Defaults["exact"] ? boolean : boolean | Defaults["exact"];
|
||||
};
|
||||
active: unknown extends Defaults["active"] ? {
|
||||
type: BooleanConstructor;
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: BooleanConstructor;
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["active"] ? boolean : boolean | Defaults["active"]>;
|
||||
default: unknown extends Defaults["active"] ? boolean : boolean | Defaults["active"];
|
||||
};
|
||||
activeColor: unknown extends Defaults["activeColor"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["activeColor"] ? string : string | Defaults["activeColor"]>;
|
||||
default: unknown extends Defaults["activeColor"] ? string : string | Defaults["activeColor"];
|
||||
};
|
||||
baseColor: unknown extends Defaults["baseColor"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"]>;
|
||||
default: unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"];
|
||||
};
|
||||
symbol: unknown extends Defaults["symbol"] ? {
|
||||
type: null;
|
||||
default: import("vue").InjectionKey<import("../../composables/group.js").GroupProvide>;
|
||||
} : Omit<{
|
||||
type: null;
|
||||
default: import("vue").InjectionKey<import("../../composables/group.js").GroupProvide>;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["symbol"] ? any : any>;
|
||||
default: unknown extends Defaults["symbol"] ? any : any;
|
||||
};
|
||||
flat: unknown extends Defaults["flat"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["flat"] ? boolean : boolean | Defaults["flat"]>;
|
||||
default: unknown extends Defaults["flat"] ? boolean : boolean | Defaults["flat"];
|
||||
};
|
||||
icon: unknown extends Defaults["icon"] ? {
|
||||
type: import("vue").PropType<boolean | import("../../composables/icons.js").IconValue>;
|
||||
default: NonNullable<boolean | import("../../composables/icons.js").IconValue>;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<boolean | import("../../composables/icons.js").IconValue>;
|
||||
default: NonNullable<boolean | import("../../composables/icons.js").IconValue>;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["icon"] ? boolean | import("../../composables/icons.js").IconValue : boolean | Defaults["icon"] | import("../../composables/icons.js").IconValue>;
|
||||
default: unknown extends Defaults["icon"] ? boolean | import("../../composables/icons.js").IconValue : Defaults["icon"] | NonNullable<boolean | import("../../composables/icons.js").IconValue>;
|
||||
};
|
||||
prependIcon: unknown extends Defaults["prependIcon"] ? import("vue").PropType<import("../../composables/icons.js").IconValue> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["prependIcon"] ? import("../../composables/icons.js").IconValue : Defaults["prependIcon"] | import("../../composables/icons.js").IconValue>;
|
||||
default: unknown extends Defaults["prependIcon"] ? import("../../composables/icons.js").IconValue : Defaults["prependIcon"] | NonNullable<import("../../composables/icons.js").IconValue>;
|
||||
};
|
||||
appendIcon: unknown extends Defaults["appendIcon"] ? import("vue").PropType<import("../../composables/icons.js").IconValue> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["appendIcon"] ? import("../../composables/icons.js").IconValue : Defaults["appendIcon"] | import("../../composables/icons.js").IconValue>;
|
||||
default: unknown extends Defaults["appendIcon"] ? import("../../composables/icons.js").IconValue : Defaults["appendIcon"] | NonNullable<import("../../composables/icons.js").IconValue>;
|
||||
};
|
||||
block: unknown extends Defaults["block"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["block"] ? boolean : boolean | Defaults["block"]>;
|
||||
default: unknown extends Defaults["block"] ? boolean : boolean | Defaults["block"];
|
||||
};
|
||||
readonly: unknown extends Defaults["readonly"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["readonly"] ? boolean : boolean | Defaults["readonly"]>;
|
||||
default: unknown extends Defaults["readonly"] ? boolean : boolean | Defaults["readonly"];
|
||||
};
|
||||
slim: unknown extends Defaults["slim"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["slim"] ? boolean : boolean | Defaults["slim"]>;
|
||||
default: unknown extends Defaults["slim"] ? boolean : boolean | Defaults["slim"];
|
||||
};
|
||||
stacked: unknown extends Defaults["stacked"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["stacked"] ? boolean : boolean | Defaults["stacked"]>;
|
||||
default: unknown extends Defaults["stacked"] ? boolean : boolean | Defaults["stacked"];
|
||||
};
|
||||
ripple: unknown extends Defaults["ripple"] ? {
|
||||
type: import("vue").PropType<boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | undefined>;
|
||||
default: boolean;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | undefined>;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["ripple"] ? boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | undefined : boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | Defaults["ripple"] | undefined>;
|
||||
default: unknown extends Defaults["ripple"] ? boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | undefined : Defaults["ripple"] | NonNullable<boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | undefined>;
|
||||
};
|
||||
text: unknown extends Defaults["text"] ? {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["text"] ? string | number | boolean : string | number | boolean | Defaults["text"]>;
|
||||
default: unknown extends Defaults["text"] ? string | number | boolean : Defaults["text"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
};
|
||||
export declare const VAppBarNavIcon: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
disabled: boolean;
|
||||
size: string | number;
|
||||
replace: boolean;
|
||||
exact: boolean;
|
||||
symbol: any;
|
||||
flat: boolean;
|
||||
icon: boolean | import("../../composables/icons.js").IconValue;
|
||||
block: boolean;
|
||||
readonly: boolean;
|
||||
slim: boolean;
|
||||
stacked: boolean;
|
||||
ripple: boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
};
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
value?: any;
|
||||
selectedClass?: string | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
loading?: string | boolean | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
href?: string | undefined;
|
||||
to?: string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric | undefined;
|
||||
active?: boolean | undefined;
|
||||
activeColor?: string | undefined;
|
||||
baseColor?: string | undefined;
|
||||
prependIcon?: import("../../composables/icons.js").IconValue | undefined;
|
||||
appendIcon?: import("../../composables/icons.js").IconValue | undefined;
|
||||
text?: string | number | boolean | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
append?: (() => import("vue").VNodeChild) | undefined;
|
||||
loader?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
append?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
loader?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:append"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:loader"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
disabled: boolean;
|
||||
size: string | number;
|
||||
replace: boolean;
|
||||
exact: boolean;
|
||||
active: boolean;
|
||||
symbol: any;
|
||||
flat: boolean;
|
||||
icon: boolean | import("../../composables/icons.js").IconValue;
|
||||
block: boolean;
|
||||
readonly: boolean;
|
||||
slim: boolean;
|
||||
stacked: boolean;
|
||||
ripple: boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | undefined;
|
||||
text: string | number | boolean;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
prepend: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
append: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
loader: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
disabled: boolean;
|
||||
size: string | number;
|
||||
replace: boolean;
|
||||
exact: boolean;
|
||||
symbol: any;
|
||||
flat: boolean;
|
||||
icon: boolean | import("../../composables/icons.js").IconValue;
|
||||
block: boolean;
|
||||
readonly: boolean;
|
||||
slim: boolean;
|
||||
stacked: boolean;
|
||||
ripple: boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
};
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
value?: any;
|
||||
selectedClass?: string | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
loading?: string | boolean | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
href?: string | undefined;
|
||||
to?: string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric | undefined;
|
||||
active?: boolean | undefined;
|
||||
activeColor?: string | undefined;
|
||||
baseColor?: string | undefined;
|
||||
prependIcon?: import("../../composables/icons.js").IconValue | undefined;
|
||||
appendIcon?: import("../../composables/icons.js").IconValue | undefined;
|
||||
text?: string | number | boolean | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
append?: (() => import("vue").VNodeChild) | undefined;
|
||||
loader?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
append?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
loader?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:append"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:loader"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
disabled: boolean;
|
||||
size: string | number;
|
||||
replace: boolean;
|
||||
exact: boolean;
|
||||
active: boolean;
|
||||
symbol: any;
|
||||
flat: boolean;
|
||||
icon: boolean | import("../../composables/icons.js").IconValue;
|
||||
block: boolean;
|
||||
readonly: boolean;
|
||||
slim: boolean;
|
||||
stacked: boolean;
|
||||
ripple: boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | undefined;
|
||||
text: string | number | boolean;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
disabled: boolean;
|
||||
size: string | number;
|
||||
replace: boolean;
|
||||
exact: boolean;
|
||||
symbol: any;
|
||||
flat: boolean;
|
||||
icon: boolean | import("../../composables/icons.js").IconValue;
|
||||
block: boolean;
|
||||
readonly: boolean;
|
||||
slim: boolean;
|
||||
stacked: boolean;
|
||||
ripple: boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
};
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
value?: any;
|
||||
selectedClass?: string | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
loading?: string | boolean | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
href?: string | undefined;
|
||||
to?: string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric | undefined;
|
||||
active?: boolean | undefined;
|
||||
activeColor?: string | undefined;
|
||||
baseColor?: string | undefined;
|
||||
prependIcon?: import("../../composables/icons.js").IconValue | undefined;
|
||||
appendIcon?: import("../../composables/icons.js").IconValue | undefined;
|
||||
text?: string | number | boolean | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
append?: (() => import("vue").VNodeChild) | undefined;
|
||||
loader?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
append?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
loader?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:append"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:loader"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
disabled: boolean;
|
||||
size: string | number;
|
||||
replace: boolean;
|
||||
exact: boolean;
|
||||
active: boolean;
|
||||
symbol: any;
|
||||
flat: boolean;
|
||||
icon: boolean | import("../../composables/icons.js").IconValue;
|
||||
block: boolean;
|
||||
readonly: boolean;
|
||||
slim: boolean;
|
||||
stacked: boolean;
|
||||
ripple: boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | undefined;
|
||||
text: string | number | boolean;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
prepend: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
append: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
loader: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
theme: StringConstructor;
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
density: {
|
||||
type: import("vue").PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: Omit<{
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
color: StringConstructor;
|
||||
variant: Omit<Omit<{
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
};
|
||||
value: null;
|
||||
disabled: BooleanConstructor;
|
||||
selectedClass: StringConstructor;
|
||||
size: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
};
|
||||
height: (NumberConstructor | StringConstructor)[];
|
||||
maxHeight: (NumberConstructor | StringConstructor)[];
|
||||
maxWidth: (NumberConstructor | StringConstructor)[];
|
||||
minHeight: (NumberConstructor | StringConstructor)[];
|
||||
minWidth: (NumberConstructor | StringConstructor)[];
|
||||
width: (NumberConstructor | StringConstructor)[];
|
||||
location: import("vue").PropType<import("../../util/index.js").Anchor | null>;
|
||||
loading: (BooleanConstructor | StringConstructor)[];
|
||||
position: {
|
||||
type: import("vue").PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
href: StringConstructor;
|
||||
replace: BooleanConstructor;
|
||||
to: import("vue").PropType<string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric>;
|
||||
exact: BooleanConstructor;
|
||||
active: {
|
||||
type: BooleanConstructor;
|
||||
default: undefined;
|
||||
};
|
||||
activeColor: StringConstructor;
|
||||
baseColor: StringConstructor;
|
||||
symbol: {
|
||||
type: null;
|
||||
default: import("vue").InjectionKey<import("../../composables/group.js").GroupProvide>;
|
||||
};
|
||||
flat: BooleanConstructor;
|
||||
icon: {
|
||||
type: import("vue").PropType<boolean | import("../../composables/icons.js").IconValue>;
|
||||
default: NonNullable<boolean | import("../../composables/icons.js").IconValue>;
|
||||
};
|
||||
prependIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
||||
appendIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
||||
block: BooleanConstructor;
|
||||
readonly: BooleanConstructor;
|
||||
slim: BooleanConstructor;
|
||||
stacked: BooleanConstructor;
|
||||
ripple: {
|
||||
type: import("vue").PropType<boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | undefined>;
|
||||
default: boolean;
|
||||
};
|
||||
text: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
theme: StringConstructor;
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
density: {
|
||||
type: import("vue").PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: Omit<{
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
color: StringConstructor;
|
||||
variant: Omit<Omit<{
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
};
|
||||
value: null;
|
||||
disabled: BooleanConstructor;
|
||||
selectedClass: StringConstructor;
|
||||
size: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
};
|
||||
height: (NumberConstructor | StringConstructor)[];
|
||||
maxHeight: (NumberConstructor | StringConstructor)[];
|
||||
maxWidth: (NumberConstructor | StringConstructor)[];
|
||||
minHeight: (NumberConstructor | StringConstructor)[];
|
||||
minWidth: (NumberConstructor | StringConstructor)[];
|
||||
width: (NumberConstructor | StringConstructor)[];
|
||||
location: import("vue").PropType<import("../../util/index.js").Anchor | null>;
|
||||
loading: (BooleanConstructor | StringConstructor)[];
|
||||
position: {
|
||||
type: import("vue").PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
href: StringConstructor;
|
||||
replace: BooleanConstructor;
|
||||
to: import("vue").PropType<string | import("vue-router").RouteLocationAsPathGeneric | import("vue-router").RouteLocationAsRelativeGeneric>;
|
||||
exact: BooleanConstructor;
|
||||
active: {
|
||||
type: BooleanConstructor;
|
||||
default: undefined;
|
||||
};
|
||||
activeColor: StringConstructor;
|
||||
baseColor: StringConstructor;
|
||||
symbol: {
|
||||
type: null;
|
||||
default: import("vue").InjectionKey<import("../../composables/group.js").GroupProvide>;
|
||||
};
|
||||
flat: BooleanConstructor;
|
||||
icon: {
|
||||
type: import("vue").PropType<boolean | import("../../composables/icons.js").IconValue>;
|
||||
default: NonNullable<boolean | import("../../composables/icons.js").IconValue>;
|
||||
};
|
||||
prependIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
||||
appendIcon: import("vue").PropType<import("../../composables/icons.js").IconValue>;
|
||||
block: BooleanConstructor;
|
||||
readonly: BooleanConstructor;
|
||||
slim: BooleanConstructor;
|
||||
stacked: BooleanConstructor;
|
||||
ripple: {
|
||||
type: import("vue").PropType<boolean | {
|
||||
class?: string;
|
||||
keys?: string[];
|
||||
} | undefined>;
|
||||
default: boolean;
|
||||
};
|
||||
text: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
}>>;
|
||||
export type VAppBarNavIcon = InstanceType<typeof VAppBarNavIcon>;
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
||||
// Components
|
||||
import { makeVBtnProps, VBtn } from "../VBtn/VBtn.js"; // Utilities
|
||||
import { genericComponent, omit, propsFactory, useRender } from "../../util/index.js"; // Types
|
||||
export const makeVAppBarNavIconProps = propsFactory({
|
||||
...omit(makeVBtnProps({
|
||||
icon: '$menu',
|
||||
variant: 'text'
|
||||
}), ['spaced'])
|
||||
}, 'VAppBarNavIcon');
|
||||
export const VAppBarNavIcon = genericComponent()({
|
||||
name: 'VAppBarNavIcon',
|
||||
props: makeVAppBarNavIconProps(),
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
useRender(() => _createVNode(VBtn, _mergeProps(props, {
|
||||
"class": ['v-app-bar-nav-icon']
|
||||
}), slots));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VAppBarNavIcon.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VAppBarNavIcon.js","names":["makeVBtnProps","VBtn","genericComponent","omit","propsFactory","useRender","makeVAppBarNavIconProps","icon","variant","VAppBarNavIcon","name","props","setup","slots","_createVNode","_mergeProps"],"sources":["../../../src/components/VAppBar/VAppBarNavIcon.tsx"],"sourcesContent":["// Components\nimport { makeVBtnProps, VBtn } from '@/components/VBtn/VBtn'\n\n// Utilities\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VBtnSlots } from '@/components/VBtn/VBtn'\n\nexport const makeVAppBarNavIconProps = propsFactory({\n ...omit(makeVBtnProps({\n icon: '$menu',\n variant: 'text' as const,\n }), ['spaced']),\n}, 'VAppBarNavIcon')\n\nexport const VAppBarNavIcon = genericComponent<VBtnSlots>()({\n name: 'VAppBarNavIcon',\n\n props: makeVAppBarNavIconProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n <VBtn\n { ...props }\n class={[\n 'v-app-bar-nav-icon',\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VAppBarNavIcon = InstanceType<typeof VAppBarNavIcon>\n"],"mappings":";AAAA;AAAA,SACSA,aAAa,EAAEC,IAAI,2BAE5B;AAAA,SACSC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,+BAExD;AAGA,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CAAC;EAClD,GAAGD,IAAI,CAACH,aAAa,CAAC;IACpBO,IAAI,EAAE,OAAO;IACbC,OAAO,EAAE;EACX,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC;AAChB,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMC,cAAc,GAAGP,gBAAgB,CAAY,CAAC,CAAC;EAC1DQ,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEL,uBAAuB,CAAC,CAAC;EAEhCM,KAAKA,CAAED,KAAK,EAAE;IAAEE;EAAM,CAAC,EAAE;IACvBR,SAAS,CAAC,MAAAS,YAAA,CAAAb,IAAA,EAAAc,WAAA,CAEDJ,KAAK;MAAA,SACH,CACL,oBAAoB;IACrB,IACSE,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
export declare const VAppBarTitle: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
} & {
|
||||
class?: any;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
text: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
} & {
|
||||
class?: any;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
} & {
|
||||
class?: any;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
text: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
tag: {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
text: StringConstructor;
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
tag: {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
text: StringConstructor;
|
||||
}>>;
|
||||
export type VAppBarTitle = InstanceType<typeof VAppBarTitle>;
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
||||
// Components
|
||||
import { makeVToolbarTitleProps, VToolbarTitle } from "../VToolbar/VToolbarTitle.js"; // Utilities
|
||||
import { genericComponent, useRender } from "../../util/index.js"; // Types
|
||||
export const VAppBarTitle = genericComponent()({
|
||||
name: 'VAppBarTitle',
|
||||
props: makeVToolbarTitleProps(),
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
useRender(() => _createVNode(VToolbarTitle, _mergeProps(props, {
|
||||
"class": "v-app-bar-title"
|
||||
}), slots));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VAppBarTitle.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VAppBarTitle.js","names":["makeVToolbarTitleProps","VToolbarTitle","genericComponent","useRender","VAppBarTitle","name","props","setup","slots","_createVNode","_mergeProps"],"sources":["../../../src/components/VAppBar/VAppBarTitle.tsx"],"sourcesContent":["// Components\nimport { makeVToolbarTitleProps, VToolbarTitle } from '@/components/VToolbar/VToolbarTitle'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { VToolbarTitleSlots } from '@/components/VToolbar/VToolbarTitle'\n\nexport const VAppBarTitle = genericComponent<VToolbarTitleSlots>()({\n name: 'VAppBarTitle',\n\n props: makeVToolbarTitleProps(),\n\n setup (props, { slots }) {\n useRender(() => (\n <VToolbarTitle\n { ...props }\n class=\"v-app-bar-title\"\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VAppBarTitle = InstanceType<typeof VAppBarTitle>\n"],"mappings":";AAAA;AAAA,SACSA,sBAAsB,EAAEC,aAAa,wCAE9C;AAAA,SACSC,gBAAgB,EAAEC,SAAS,+BAEpC;AAGA,OAAO,MAAMC,YAAY,GAAGF,gBAAgB,CAAqB,CAAC,CAAC;EACjEG,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAEN,sBAAsB,CAAC,CAAC;EAE/BO,KAAKA,CAAED,KAAK,EAAE;IAAEE;EAAM,CAAC,EAAE;IACvBL,SAAS,CAAC,MAAAM,YAAA,CAAAR,aAAA,EAAAS,WAAA,CAEDJ,KAAK;MAAA;IAAA,IAEAE,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
@use "sass:map";
|
||||
@use "../../styles/settings/variables";
|
||||
@use "../../styles/tools/functions";
|
||||
|
||||
// VAppBar
|
||||
$app-bar-background: rgb(var(--v-theme-surface)) !default;
|
||||
$app-bar-border-color: variables.$border-color-root !default;
|
||||
$app-bar-border-radius: map.get(variables.$rounded, '0') !default;
|
||||
$app-bar-border-style: variables.$border-style-root !default;
|
||||
$app-bar-border-thin-width: 0 0 thin !default;
|
||||
$app-bar-border-width: 0 !default;
|
||||
$app-bar-collapsed-border-radius: 24px !default;
|
||||
$app-bar-collapsed-max-width: 112px !default;
|
||||
$app-bar-color: functions.theme-color('on-surface', var(--v-high-emphasis-opacity)) !default;
|
||||
$app-bar-density-comfortable-padding: 4px !default;
|
||||
$app-bar-density-compact-padding: 0 !default;
|
||||
$app-bar-density-default-padding: 8px !default;
|
||||
$app-bar-elevation: 2 !default;
|
||||
$app-bar-flat-elevation: 0 !default;
|
||||
$app-bar-image-height: inherit !default;
|
||||
$app-bar-image-object-fit: cover !default;
|
||||
$app-bar-image-width: inherit !default;
|
||||
$app-bar-padding-end: 4px !default;
|
||||
$app-bar-padding-start: 4px !default;
|
||||
$app-bar-prominent-height: 128px !default;
|
||||
$app-bar-rounded-border-radius: variables.$border-radius-root !default;
|
||||
$app-bar-scrolled-title-padding-bottom: 9px !default;
|
||||
$app-bar-shaped-border-radius: map.get(variables.$rounded, 'xl') $app-bar-border-radius !default;
|
||||
$app-bar-title-font-size: functions.map-deep-get(variables.$typography, 'headline-medium', 'size') !default;
|
||||
$app-bar-title-padding: 6px 20px !default;
|
||||
$app-bar-transition: .2s variables.$standard-easing !default;
|
||||
|
||||
// Lists
|
||||
$app-bar-border: (
|
||||
$app-bar-border-color,
|
||||
$app-bar-border-style,
|
||||
$app-bar-border-width,
|
||||
$app-bar-border-thin-width
|
||||
) !default;
|
||||
|
||||
$app-bar-theme: (
|
||||
$app-bar-background,
|
||||
$app-bar-color
|
||||
) !default;
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
export { VAppBar } from './VAppBar.js';
|
||||
export { VAppBarNavIcon } from './VAppBarNavIcon.js';
|
||||
export { VAppBarTitle } from './VAppBarTitle.js';
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
export { VAppBar } from "./VAppBar.js";
|
||||
export { VAppBarNavIcon } from "./VAppBarNavIcon.js";
|
||||
export { VAppBarTitle } from "./VAppBarTitle.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VAppBar","VAppBarNavIcon","VAppBarTitle"],"sources":["../../../src/components/VAppBar/index.ts"],"sourcesContent":["export { VAppBar } from './VAppBar'\nexport { VAppBarNavIcon } from './VAppBarNavIcon'\nexport { VAppBarTitle } from './VAppBarTitle'\n"],"mappings":"SAASA,OAAO;AAAA,SACPC,cAAc;AAAA,SACdC,YAAY","ignoreList":[]}
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
@layer vuetify-components {
|
||||
.v-autocomplete--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,
|
||||
.v-autocomplete--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,
|
||||
.v-autocomplete--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,
|
||||
.v-autocomplete--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating {
|
||||
top: 0px;
|
||||
}
|
||||
.v-autocomplete .v-field .v-text-field__prefix,
|
||||
.v-autocomplete .v-field .v-text-field__suffix,
|
||||
.v-autocomplete .v-field .v-field__input,
|
||||
.v-autocomplete .v-field .v-field__input > input, .v-autocomplete .v-field.v-field {
|
||||
cursor: text;
|
||||
}
|
||||
.v-autocomplete .v-field .v-field__input > input {
|
||||
flex: 1 1;
|
||||
}
|
||||
.v-autocomplete .v-field input {
|
||||
min-width: 64px;
|
||||
}
|
||||
.v-autocomplete .v-field:not(.v-field--focused) input {
|
||||
min-width: 0;
|
||||
}
|
||||
.v-autocomplete .v-field--dirty .v-autocomplete__selection {
|
||||
margin-inline-end: 2px;
|
||||
}
|
||||
.v-autocomplete .v-autocomplete__selection-text {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.v-autocomplete__content {
|
||||
overflow: hidden;
|
||||
}
|
||||
.v-autocomplete__content {
|
||||
box-shadow: 0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity, 0.3)), 0px 2px 6px 2px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity, 0.15));
|
||||
--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent);
|
||||
}
|
||||
.v-menu > .v-overlay__content.v-autocomplete__content {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.v-autocomplete__content > .v-sheet {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.v-autocomplete__mask {
|
||||
background: rgb(var(--v-theme-surface-light));
|
||||
}
|
||||
.v-autocomplete__selection {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
height: 1.5rem;
|
||||
letter-spacing: inherit;
|
||||
line-height: inherit;
|
||||
max-width: calc(100% - 2px - 2px);
|
||||
}
|
||||
.v-autocomplete__selection:first-child {
|
||||
margin-inline-start: 0;
|
||||
}
|
||||
.v-autocomplete--selecting-index .v-autocomplete__selection {
|
||||
opacity: var(--v-medium-emphasis-opacity);
|
||||
}
|
||||
.v-autocomplete--selecting-index .v-autocomplete__selection--selected {
|
||||
opacity: 1;
|
||||
}
|
||||
.v-autocomplete--selecting-index .v-field__input > input {
|
||||
caret-color: transparent;
|
||||
}
|
||||
.v-autocomplete--single:not(.v-autocomplete--selection-slot).v-text-field input {
|
||||
flex: 1 1;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
padding-inline: inherit;
|
||||
}
|
||||
.v-autocomplete--single:not(.v-autocomplete--selection-slot) .v-field--active input {
|
||||
transition: none;
|
||||
}
|
||||
.v-autocomplete--single:not(.v-autocomplete--selection-slot) .v-field--dirty:not(.v-field--focused) input {
|
||||
opacity: 0;
|
||||
}
|
||||
.v-autocomplete--single:not(.v-autocomplete--selection-slot) .v-field--focused .v-autocomplete__selection {
|
||||
opacity: 0;
|
||||
}
|
||||
.v-autocomplete__menu-icon {
|
||||
margin-inline-start: 4px;
|
||||
transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
.v-autocomplete--active-menu .v-autocomplete__menu-icon {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
+11693
File diff suppressed because one or more lines are too long
+571
@@ -0,0 +1,571 @@
|
||||
import { Fragment as _Fragment, createElementVNode as _createElementVNode, createVNode as _createVNode, mergeProps as _mergeProps, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
|
||||
// Styles
|
||||
import "./VAutocomplete.css";
|
||||
|
||||
// Components
|
||||
import { VAvatar } from "../VAvatar/index.js";
|
||||
import { VCheckboxBtn } from "../VCheckbox/index.js";
|
||||
import { VChip } from "../VChip/index.js";
|
||||
import { VDefaultsProvider } from "../VDefaultsProvider/index.js";
|
||||
import { VDivider } from "../VDivider/index.js";
|
||||
import { VIcon } from "../VIcon/index.js";
|
||||
import { useInputIcon } from "../VInput/InputIcon.js";
|
||||
import { VList, VListItem, VListSubheader } from "../VList/index.js";
|
||||
import { VMenu } from "../VMenu/index.js";
|
||||
import { makeSelectProps } from "../VSelect/VSelect.js";
|
||||
import { VSheet } from "../VSheet/index.js";
|
||||
import { makeVTextFieldProps, VTextField } from "../VTextField/VTextField.js";
|
||||
import { VVirtualScroll } from "../VVirtualScroll/index.js"; // Composables
|
||||
import { useScrolling } from "../VSelect/useScrolling.js";
|
||||
import { useTextColor } from "../../composables/color.js";
|
||||
import { highlightResult, makeFilterProps, useFilter } from "../../composables/filter.js";
|
||||
import { useFocusGroups } from "../../composables/focusGroups.js";
|
||||
import { useForm } from "../../composables/form.js";
|
||||
import { forwardRefs } from "../../composables/forwardRefs.js";
|
||||
import { useItems } from "../../composables/list-items.js";
|
||||
import { useLocale } from "../../composables/locale.js";
|
||||
import { useMenuActivator } from "../../composables/menuActivator.js";
|
||||
import { useProxiedModel } from "../../composables/proxiedModel.js"; // Utilities
|
||||
import { computed, mergeProps, nextTick, ref, shallowRef, toRef, watch } from 'vue';
|
||||
import { checkPrintable, deepEqual, ensureValidVNode, genericComponent, IN_BROWSER, matchesSelector, noop, omit, propsFactory, useRender, wrapInArray } from "../../util/index.js"; // Types
|
||||
export const makeVAutocompleteProps = propsFactory({
|
||||
autoSelectFirst: {
|
||||
type: [Boolean, String]
|
||||
},
|
||||
clearOnSelect: Boolean,
|
||||
search: String,
|
||||
...makeFilterProps({
|
||||
filterKeys: ['title']
|
||||
}),
|
||||
...makeSelectProps(),
|
||||
...omit(makeVTextFieldProps({
|
||||
modelValue: null,
|
||||
role: 'combobox'
|
||||
}), ['validationValue', 'dirty'])
|
||||
}, 'VAutocomplete');
|
||||
export const VAutocomplete = genericComponent()({
|
||||
name: 'VAutocomplete',
|
||||
props: makeVAutocompleteProps(),
|
||||
emits: {
|
||||
'update:focused': focused => true,
|
||||
'update:search': value => true,
|
||||
'update:modelValue': value => true,
|
||||
'update:menu': value => true
|
||||
},
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
const {
|
||||
t
|
||||
} = useLocale();
|
||||
const vTextFieldRef = ref();
|
||||
const isFocused = shallowRef(false);
|
||||
const isPristine = shallowRef(true);
|
||||
const listHasFocus = shallowRef(false);
|
||||
const vMenuRef = ref();
|
||||
const vVirtualScrollRef = ref();
|
||||
const selectionIndex = shallowRef(-1);
|
||||
const _searchLock = shallowRef(null);
|
||||
const {
|
||||
items,
|
||||
transformIn,
|
||||
transformOut
|
||||
} = useItems(props);
|
||||
const {
|
||||
textColorClasses,
|
||||
textColorStyles
|
||||
} = useTextColor(() => vTextFieldRef.value?.color);
|
||||
const {
|
||||
InputIcon
|
||||
} = useInputIcon(props);
|
||||
const search = useProxiedModel(props, 'search', '');
|
||||
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
||||
const transformed = transformOut(v);
|
||||
return props.multiple ? transformed : transformed[0] ?? null;
|
||||
});
|
||||
const counterValue = computed(() => {
|
||||
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
|
||||
});
|
||||
const form = useForm(props);
|
||||
const {
|
||||
filteredItems,
|
||||
getMatches
|
||||
} = useFilter(props, items, () => _searchLock.value ?? (isPristine.value ? '' : search.value));
|
||||
const displayItems = computed(() => {
|
||||
if (props.hideSelected && _searchLock.value === null) {
|
||||
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
||||
}
|
||||
return filteredItems.value;
|
||||
});
|
||||
const closableChips = toRef(() => props.closableChips && !form.isReadonly.value && !form.isDisabled.value);
|
||||
const hasChips = computed(() => !!(props.chips || slots.chip));
|
||||
const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
|
||||
const selectedValues = computed(() => model.value.map(selection => selection.props.value));
|
||||
const firstSelectableItem = computed(() => displayItems.value.find(x => x.type === 'item' && !x.props.disabled));
|
||||
const highlightFirst = computed(() => {
|
||||
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === firstSelectableItem.value?.title;
|
||||
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
||||
});
|
||||
const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
|
||||
const _menu = useProxiedModel(props, 'menu');
|
||||
const menu = computed({
|
||||
get: () => _menu.value,
|
||||
set: v => {
|
||||
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
||||
if (v && menuDisabled.value) return;
|
||||
_menu.value = v;
|
||||
}
|
||||
});
|
||||
const {
|
||||
menuId,
|
||||
ariaExpanded,
|
||||
ariaControls
|
||||
} = useMenuActivator(props, menu);
|
||||
const listRef = ref();
|
||||
const headerRef = ref();
|
||||
const footerRef = ref();
|
||||
const listEvents = useScrolling(listRef, vTextFieldRef);
|
||||
const {
|
||||
onTabKeydown
|
||||
} = useFocusGroups({
|
||||
groups: [{
|
||||
type: 'element',
|
||||
contentRef: headerRef
|
||||
}, {
|
||||
type: 'list',
|
||||
contentRef: listRef,
|
||||
displayItemsCount: () => displayItems.value.length
|
||||
}, {
|
||||
type: 'element',
|
||||
contentRef: footerRef
|
||||
}],
|
||||
onLeave: () => {
|
||||
menu.value = false;
|
||||
vTextFieldRef.value?.focus();
|
||||
}
|
||||
});
|
||||
function onClear(e) {
|
||||
if (props.openOnClear) {
|
||||
menu.value = true;
|
||||
}
|
||||
search.value = '';
|
||||
}
|
||||
function onMousedownControl() {
|
||||
if (menuDisabled.value) return;
|
||||
menu.value = true;
|
||||
}
|
||||
function onMousedownMenuIcon(e) {
|
||||
if (menuDisabled.value) return;
|
||||
if (isFocused.value) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
}
|
||||
menu.value = !menu.value;
|
||||
}
|
||||
function onMenuKeydown(e) {
|
||||
if (e.key === 'Tab') {
|
||||
onTabKeydown(e);
|
||||
}
|
||||
if (listRef.value?.$el.contains(e.target) && (checkPrintable(e) || e.key === 'Backspace')) {
|
||||
vTextFieldRef.value?.focus();
|
||||
}
|
||||
}
|
||||
|
||||
// eslint-disable-next-line complexity
|
||||
function onKeydown(e) {
|
||||
if (form.isReadonly.value) return;
|
||||
const selectionStart = vTextFieldRef.value?.selectionStart;
|
||||
const length = model.value.length;
|
||||
if (['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
|
||||
e.preventDefault();
|
||||
}
|
||||
if (['Enter', 'ArrowDown'].includes(e.key)) {
|
||||
menu.value = true;
|
||||
}
|
||||
if (['Escape'].includes(e.key)) {
|
||||
menu.value = false;
|
||||
}
|
||||
if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && firstSelectableItem.value && !model.value.some(({
|
||||
value
|
||||
}) => value === firstSelectableItem.value.value)) {
|
||||
select(firstSelectableItem.value);
|
||||
}
|
||||
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
||||
listRef.value?.focus('next');
|
||||
}
|
||||
if (['Backspace', 'Delete'].includes(e.key)) {
|
||||
if (!props.multiple && hasSelectionSlot.value && model.value.length > 0 && !search.value) return select(model.value[0], false);
|
||||
if (~selectionIndex.value) {
|
||||
e.preventDefault();
|
||||
const originalSelectionIndex = selectionIndex.value;
|
||||
select(model.value[selectionIndex.value], false);
|
||||
selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
|
||||
} else if (e.key === 'Backspace' && !search.value) {
|
||||
selectionIndex.value = length - 1;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (!props.multiple) return;
|
||||
if (e.key === 'ArrowLeft') {
|
||||
if (selectionIndex.value < 0 && selectionStart && selectionStart > 0) return;
|
||||
const prev = selectionIndex.value > -1 ? selectionIndex.value - 1 : length - 1;
|
||||
if (model.value[prev]) {
|
||||
selectionIndex.value = prev;
|
||||
} else {
|
||||
const searchLength = search.value?.length ?? null;
|
||||
selectionIndex.value = -1;
|
||||
vTextFieldRef.value?.setSelectionRange(searchLength, searchLength);
|
||||
}
|
||||
} else if (e.key === 'ArrowRight') {
|
||||
if (selectionIndex.value < 0) return;
|
||||
const next = selectionIndex.value + 1;
|
||||
if (model.value[next]) {
|
||||
selectionIndex.value = next;
|
||||
} else {
|
||||
selectionIndex.value = -1;
|
||||
vTextFieldRef.value?.setSelectionRange(0, 0);
|
||||
}
|
||||
} else if (~selectionIndex.value && checkPrintable(e)) {
|
||||
selectionIndex.value = -1;
|
||||
}
|
||||
}
|
||||
function onChange(e) {
|
||||
if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {
|
||||
const item = items.value.find(item => item.title === e.target.value);
|
||||
if (item) {
|
||||
select(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
function onAfterEnter() {
|
||||
if (props.eager) {
|
||||
vVirtualScrollRef.value?.calculateVisibleItems();
|
||||
}
|
||||
}
|
||||
function onAfterLeave() {
|
||||
if (isFocused.value) {
|
||||
isPristine.value = true;
|
||||
vTextFieldRef.value?.focus();
|
||||
}
|
||||
_searchLock.value = null;
|
||||
}
|
||||
function onFocusin(e) {
|
||||
isFocused.value = true;
|
||||
setTimeout(() => {
|
||||
listHasFocus.value = true;
|
||||
});
|
||||
}
|
||||
function onFocusout(e) {
|
||||
listHasFocus.value = false;
|
||||
if (!vTextFieldRef.value?.$el.contains(e.relatedTarget)) {
|
||||
isFocused.value = false;
|
||||
}
|
||||
}
|
||||
function onUpdateModelValue(v) {
|
||||
if (v == null || v === '' && !props.multiple && !hasSelectionSlot.value) model.value = [];
|
||||
}
|
||||
function onBlur(e) {
|
||||
const menuContent = vMenuRef.value?.contentEl;
|
||||
if (menuContent?.contains(e.relatedTarget)) {
|
||||
isFocused.value = true;
|
||||
}
|
||||
}
|
||||
const isSelecting = shallowRef(false);
|
||||
|
||||
/** @param set - null means toggle */
|
||||
function select(item, set = true) {
|
||||
if (!item || item.props.disabled) return;
|
||||
if (props.multiple) {
|
||||
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
||||
const add = set == null ? !~index : set;
|
||||
if (~index) {
|
||||
const value = add ? [...model.value, item] : [...model.value];
|
||||
value.splice(index, 1);
|
||||
model.value = value;
|
||||
} else if (add) {
|
||||
model.value = [...model.value, item];
|
||||
}
|
||||
if (props.clearOnSelect) {
|
||||
search.value = '';
|
||||
}
|
||||
} else {
|
||||
const add = set !== false;
|
||||
model.value = add ? [item] : [];
|
||||
_searchLock.value = isPristine.value ? '' : search.value ?? '';
|
||||
search.value = add && !hasSelectionSlot.value ? item.title : '';
|
||||
|
||||
// watch for search watcher to trigger
|
||||
nextTick(() => {
|
||||
menu.value = false;
|
||||
isPristine.value = true;
|
||||
});
|
||||
}
|
||||
}
|
||||
watch(isFocused, (val, oldVal) => {
|
||||
if (val === oldVal) return;
|
||||
if (val) {
|
||||
isSelecting.value = true;
|
||||
search.value = props.multiple || hasSelectionSlot.value ? '' : String(model.value.at(-1)?.props.title ?? '');
|
||||
isPristine.value = true;
|
||||
nextTick(() => isSelecting.value = false);
|
||||
} else {
|
||||
if (!props.multiple && search.value == null) model.value = [];
|
||||
menu.value = false;
|
||||
if (!isPristine.value && search.value) {
|
||||
_searchLock.value = search.value;
|
||||
}
|
||||
search.value = '';
|
||||
selectionIndex.value = -1;
|
||||
}
|
||||
});
|
||||
watch(search, val => {
|
||||
if (!isFocused.value || isSelecting.value) return;
|
||||
if (val) menu.value = true;
|
||||
isPristine.value = !val;
|
||||
});
|
||||
watch(menu, val => {
|
||||
if (!props.hideSelected && val && model.value.length && isPristine.value) {
|
||||
const index = displayItems.value.findIndex(item => model.value.some(s => item.value === s.value));
|
||||
IN_BROWSER && window.requestAnimationFrame(() => {
|
||||
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
||||
});
|
||||
}
|
||||
if (val) _searchLock.value = null;
|
||||
});
|
||||
watch(items, (newVal, oldVal) => {
|
||||
if (menu.value) return;
|
||||
if (isFocused.value && !oldVal.length && newVal.length) {
|
||||
menu.value = true;
|
||||
}
|
||||
});
|
||||
useRender(() => {
|
||||
const hasList = !!(!props.hideNoData || displayItems.value.length || slots['prepend-item'] || slots['append-item'] || slots['no-data']);
|
||||
const isDirty = model.value.length > 0;
|
||||
const textFieldProps = VTextField.filterProps(props);
|
||||
const menuSlotProps = {
|
||||
search,
|
||||
filteredItems: filteredItems.value
|
||||
};
|
||||
return _createVNode(VTextField, _mergeProps({
|
||||
"ref": vTextFieldRef
|
||||
}, textFieldProps, {
|
||||
"modelValue": search.value,
|
||||
"onUpdate:modelValue": [$event => search.value = $event, onUpdateModelValue],
|
||||
"focused": isFocused.value,
|
||||
"onUpdate:focused": $event => isFocused.value = $event,
|
||||
"validationValue": model.externalValue,
|
||||
"counterValue": counterValue.value,
|
||||
"dirty": isDirty,
|
||||
"onChange": onChange,
|
||||
"class": ['v-autocomplete', `v-autocomplete--${props.multiple ? 'multiple' : 'single'}`, {
|
||||
'v-autocomplete--active-menu': menu.value,
|
||||
'v-autocomplete--chips': !!props.chips,
|
||||
'v-autocomplete--selection-slot': !!hasSelectionSlot.value,
|
||||
'v-autocomplete--selecting-index': selectionIndex.value > -1
|
||||
}, props.class],
|
||||
"style": props.style,
|
||||
"readonly": form.isReadonly.value,
|
||||
"placeholder": isDirty ? undefined : props.placeholder,
|
||||
"onClick:clear": onClear,
|
||||
"onMousedown:control": onMousedownControl,
|
||||
"onKeydown": onKeydown,
|
||||
"onBlur": onBlur,
|
||||
"aria-expanded": ariaExpanded.value,
|
||||
"aria-controls": ariaControls.value
|
||||
}), {
|
||||
...slots,
|
||||
default: ({
|
||||
id
|
||||
}) => _createElementVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({
|
||||
"id": menuId.value,
|
||||
"ref": vMenuRef,
|
||||
"modelValue": menu.value,
|
||||
"onUpdate:modelValue": $event => menu.value = $event,
|
||||
"activator": "parent",
|
||||
"contentClass": "v-autocomplete__content",
|
||||
"disabled": menuDisabled.value,
|
||||
"eager": props.eager,
|
||||
"maxHeight": 310,
|
||||
"openOnClick": false,
|
||||
"closeOnContentClick": false,
|
||||
"onAfterEnter": onAfterEnter,
|
||||
"onAfterLeave": onAfterLeave
|
||||
}, props.menuProps), {
|
||||
default: () => [_createVNode(VSheet, {
|
||||
"elevation": props.menuElevation,
|
||||
"onFocusin": onFocusin,
|
||||
"onKeydown": onMenuKeydown
|
||||
}, {
|
||||
default: () => [slots['menu-header'] && _createElementVNode("header", {
|
||||
"ref": headerRef
|
||||
}, [slots['menu-header'](menuSlotProps)]), hasList && _createVNode(VList, _mergeProps({
|
||||
"key": "autocomplete-list",
|
||||
"ref": listRef,
|
||||
"filterable": true,
|
||||
"selected": selectedValues.value,
|
||||
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
||||
"onMousedown": e => e.preventDefault(),
|
||||
"onFocusout": onFocusout,
|
||||
"tabindex": "-1",
|
||||
"selectable": !!displayItems.value.length,
|
||||
"aria-live": "polite",
|
||||
"aria-labelledby": `${id.value}-label`,
|
||||
"aria-multiselectable": props.multiple,
|
||||
"color": props.itemColor ?? props.color
|
||||
}, listEvents, props.listProps), {
|
||||
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VListItem, {
|
||||
"key": "no-data",
|
||||
"title": t(props.noDataText)
|
||||
}, null)), _createVNode(VVirtualScroll, {
|
||||
"ref": vVirtualScrollRef,
|
||||
"renderless": true,
|
||||
"items": displayItems.value,
|
||||
"itemKey": "value"
|
||||
}, {
|
||||
default: ({
|
||||
item,
|
||||
index,
|
||||
itemRef
|
||||
}) => {
|
||||
const itemProps = mergeProps(item.props, {
|
||||
ref: itemRef,
|
||||
key: item.value,
|
||||
active: highlightFirst.value && item === firstSelectableItem.value ? true : undefined,
|
||||
onClick: () => select(item, null),
|
||||
'aria-posinset': index + 1,
|
||||
'aria-setsize': displayItems.value.length
|
||||
});
|
||||
if (item.type === 'divider') {
|
||||
return slots.divider?.({
|
||||
props: item.raw,
|
||||
index
|
||||
}) ?? _createVNode(VDivider, _mergeProps(item.props, {
|
||||
"key": `divider-${index}`
|
||||
}), null);
|
||||
}
|
||||
if (item.type === 'subheader') {
|
||||
return slots.subheader?.({
|
||||
props: item.raw,
|
||||
index
|
||||
}) ?? _createVNode(VListSubheader, _mergeProps(item.props, {
|
||||
"key": `subheader-${index}`
|
||||
}), null);
|
||||
}
|
||||
return slots.item?.({
|
||||
item: item.raw,
|
||||
internalItem: item,
|
||||
index,
|
||||
props: itemProps
|
||||
}) ?? _createVNode(VListItem, _mergeProps(itemProps, {
|
||||
"role": "option"
|
||||
}), {
|
||||
prepend: ({
|
||||
isSelected
|
||||
}) => _createElementVNode(_Fragment, null, [props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {
|
||||
"key": item.value,
|
||||
"modelValue": isSelected,
|
||||
"ripple": false,
|
||||
"tabindex": "-1",
|
||||
"aria-hidden": true,
|
||||
"onClick": event => event.preventDefault()
|
||||
}, null) : undefined, item.props.prependAvatar && _createVNode(VAvatar, {
|
||||
"image": item.props.prependAvatar
|
||||
}, null), item.props.prependIcon && _createVNode(VIcon, {
|
||||
"icon": item.props.prependIcon
|
||||
}, null)]),
|
||||
title: () => {
|
||||
return isPristine.value ? item.title : highlightResult('v-autocomplete', item.title, getMatches(item)?.title);
|
||||
}
|
||||
});
|
||||
}
|
||||
}), slots['append-item']?.()]
|
||||
}), slots['menu-footer'] && _createElementVNode("footer", {
|
||||
"ref": footerRef
|
||||
}, [slots['menu-footer'](menuSlotProps)])]
|
||||
})]
|
||||
}), model.value.map((item, index) => {
|
||||
function onChipClose(e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
select(item, false);
|
||||
}
|
||||
const slotProps = mergeProps(VChip.filterProps(item.props), {
|
||||
'onClick:close': onChipClose,
|
||||
onKeydown(e) {
|
||||
if (e.key !== 'Enter' && e.key !== ' ') return;
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
onChipClose(e);
|
||||
},
|
||||
onMousedown(e) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
},
|
||||
modelValue: true,
|
||||
'onUpdate:modelValue': undefined
|
||||
});
|
||||
const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
|
||||
const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
|
||||
item: item.raw,
|
||||
internalItem: item,
|
||||
index,
|
||||
props: slotProps
|
||||
}) : slots.selection({
|
||||
item: item.raw,
|
||||
internalItem: item,
|
||||
index
|
||||
})) : undefined;
|
||||
if (hasSlot && !slotContent) return undefined;
|
||||
return _createElementVNode("div", {
|
||||
"key": item.value,
|
||||
"class": _normalizeClass(['v-autocomplete__selection', index === selectionIndex.value && ['v-autocomplete__selection--selected', textColorClasses.value]]),
|
||||
"style": _normalizeStyle(index === selectionIndex.value ? textColorStyles.value : {})
|
||||
}, [hasChips.value ? !slots.chip ? _createVNode(VChip, _mergeProps({
|
||||
"key": "chip",
|
||||
"closable": closableChips.value,
|
||||
"size": "small",
|
||||
"text": item.title,
|
||||
"disabled": item.props.disabled
|
||||
}, slotProps), null) : _createVNode(VDefaultsProvider, {
|
||||
"key": "chip-defaults",
|
||||
"defaults": {
|
||||
VChip: {
|
||||
closable: closableChips.value,
|
||||
size: 'small',
|
||||
text: item.title
|
||||
}
|
||||
}
|
||||
}, {
|
||||
default: () => [slotContent]
|
||||
}) : slotContent ?? _createElementVNode("span", {
|
||||
"class": "v-autocomplete__selection-text"
|
||||
}, [item.title, props.multiple && index < model.value.length - 1 && _createElementVNode("span", {
|
||||
"class": "v-autocomplete__selection-comma"
|
||||
}, [_createTextVNode(",")])])]);
|
||||
})]),
|
||||
'append-inner': (...args) => _createElementVNode(_Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? _createVNode(VIcon, {
|
||||
"class": "v-autocomplete__menu-icon",
|
||||
"color": vTextFieldRef.value?.fieldIconColor,
|
||||
"icon": props.menuIcon,
|
||||
"onMousedown": onMousedownMenuIcon,
|
||||
"onClick": noop,
|
||||
"aria-hidden": true,
|
||||
"tabindex": "-1"
|
||||
}, null) : undefined, props.appendInnerIcon && _createVNode(InputIcon, {
|
||||
"key": "append-icon",
|
||||
"name": "appendInner",
|
||||
"color": args[0].iconColor.value
|
||||
}, null)])
|
||||
});
|
||||
});
|
||||
return forwardRefs({
|
||||
isFocused,
|
||||
isPristine,
|
||||
menu,
|
||||
search,
|
||||
filteredItems,
|
||||
select
|
||||
}, vTextFieldRef);
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VAutocomplete.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+105
@@ -0,0 +1,105 @@
|
||||
@use 'sass:selector'
|
||||
@use 'sass:math'
|
||||
@use '../../styles/settings'
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
@use '../VSelect/mixins' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-autocomplete
|
||||
@include select-compact-chip-label
|
||||
|
||||
.v-field
|
||||
.v-text-field__prefix,
|
||||
.v-text-field__suffix,
|
||||
.v-field__input,
|
||||
.v-field__input > input,
|
||||
&.v-field
|
||||
cursor: text
|
||||
|
||||
.v-field
|
||||
.v-field__input
|
||||
> input
|
||||
flex: 1 1
|
||||
|
||||
.v-field
|
||||
input
|
||||
min-width: $autocomplete-focused-input
|
||||
|
||||
&:not(.v-field--focused)
|
||||
input
|
||||
min-width: 0
|
||||
|
||||
.v-field--dirty
|
||||
.v-autocomplete__selection
|
||||
margin-inline-end: $autocomplete-selection-gap
|
||||
|
||||
.v-autocomplete__selection-text
|
||||
overflow: hidden
|
||||
text-overflow: ellipsis
|
||||
white-space: nowrap
|
||||
|
||||
.v-autocomplete
|
||||
&__content
|
||||
overflow: hidden
|
||||
@include tools.elevation($autocomplete-content-elevation)
|
||||
|
||||
@at-root #{selector.append('.v-menu > .v-overlay__content', &)}
|
||||
@include tools.rounded($autocomplete-content-border-radius)
|
||||
|
||||
> .v-sheet
|
||||
display: flex
|
||||
flex-direction: column
|
||||
|
||||
&__mask
|
||||
background: rgb(var(--v-theme-surface-light))
|
||||
|
||||
&__selection
|
||||
display: inline-flex
|
||||
align-items: center
|
||||
height: calc($input-font-size * $input-line-height)
|
||||
letter-spacing: inherit
|
||||
line-height: inherit
|
||||
max-width: calc(100% - $autocomplete-selection-gap - $autocomplete-input-buffer)
|
||||
|
||||
&__selection
|
||||
&:first-child
|
||||
margin-inline-start: 0
|
||||
|
||||
&--selecting-index
|
||||
.v-autocomplete__selection
|
||||
opacity: var(--v-medium-emphasis-opacity)
|
||||
|
||||
&--selected
|
||||
opacity: 1
|
||||
|
||||
.v-field__input > input
|
||||
caret-color: transparent
|
||||
|
||||
&--single:not(.v-autocomplete--selection-slot)
|
||||
&.v-text-field input
|
||||
flex: 1 1
|
||||
position: absolute
|
||||
left: 0
|
||||
right: 0
|
||||
width: 100%
|
||||
padding-inline: inherit
|
||||
|
||||
.v-field--active
|
||||
input
|
||||
transition: none
|
||||
|
||||
.v-field--dirty:not(.v-field--focused)
|
||||
input
|
||||
opacity: 0
|
||||
|
||||
.v-field--focused
|
||||
.v-autocomplete__selection
|
||||
opacity: 0
|
||||
|
||||
&__menu-icon
|
||||
margin-inline-start: 4px
|
||||
transition: $autocomplete-transition
|
||||
|
||||
.v-autocomplete--active-menu &
|
||||
transform: rotate(180deg)
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
@forward '../VInput/variables';
|
||||
@use '../../styles/settings';
|
||||
|
||||
// Defaults
|
||||
$autocomplete-content-border-radius: 4px !default;
|
||||
$autocomplete-content-elevation: 2 !default;
|
||||
$autocomplete-focused-input: 64px !default;
|
||||
$autocomplete-input-buffer: 2px !default;
|
||||
$autocomplete-line-height: 1.75 !default;
|
||||
$autocomplete-selection-gap: 2px !default;
|
||||
$autocomplete-transition: .2s settings.$standard-easing !default;
|
||||
$autocomplete-chips-control-min-height: 64px !default;
|
||||
$autocomplete-chips-margin-top: null !default;
|
||||
$autocomplete-chips-margin-bottom: null !default;
|
||||
+1
@@ -0,0 +1 @@
|
||||
export { VAutocomplete } from './VAutocomplete.js';
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
export { VAutocomplete } from "./VAutocomplete.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VAutocomplete"],"sources":["../../../src/components/VAutocomplete/index.ts"],"sourcesContent":["export { VAutocomplete } from './VAutocomplete'\n"],"mappings":"SAASA,aAAa","ignoreList":[]}
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
@layer vuetify-components {
|
||||
.v-avatar {
|
||||
flex: none;
|
||||
align-items: center;
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
line-height: normal;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
transition-property: width, height;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.v-avatar.v-avatar--size-x-small {
|
||||
--v-avatar-height: 24px;
|
||||
}
|
||||
.v-avatar.v-avatar--size-small {
|
||||
--v-avatar-height: 32px;
|
||||
}
|
||||
.v-avatar.v-avatar--size-default {
|
||||
--v-avatar-height: 40px;
|
||||
}
|
||||
.v-avatar.v-avatar--size-large {
|
||||
--v-avatar-height: 48px;
|
||||
}
|
||||
.v-avatar.v-avatar--size-x-large {
|
||||
--v-avatar-height: 56px;
|
||||
}
|
||||
.v-avatar.v-avatar--density-default {
|
||||
height: calc(var(--v-avatar-height) + 0px);
|
||||
width: calc(var(--v-avatar-height) + 0px);
|
||||
}
|
||||
.v-avatar.v-avatar--density-comfortable {
|
||||
height: calc(var(--v-avatar-height) + -4px);
|
||||
width: calc(var(--v-avatar-height) + -4px);
|
||||
}
|
||||
.v-avatar.v-avatar--density-compact {
|
||||
height: calc(var(--v-avatar-height) + -8px);
|
||||
width: calc(var(--v-avatar-height) + -8px);
|
||||
}
|
||||
.v-avatar {
|
||||
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
}
|
||||
.v-avatar--border {
|
||||
border-width: thin;
|
||||
box-shadow: none;
|
||||
}
|
||||
.v-avatar {
|
||||
border-radius: 50%;
|
||||
}
|
||||
.v-avatar--variant-plain, .v-avatar--variant-outlined, .v-avatar--variant-text, .v-avatar--variant-tonal {
|
||||
background: transparent;
|
||||
color: inherit;
|
||||
}
|
||||
.v-avatar--variant-plain {
|
||||
opacity: 0.62;
|
||||
}
|
||||
.v-avatar--variant-plain:focus, .v-avatar--variant-plain:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
.v-avatar--variant-plain .v-avatar__overlay {
|
||||
display: none;
|
||||
}
|
||||
.v-avatar--variant-elevated, .v-avatar--variant-flat {
|
||||
background: rgb(var(--v-theme-surface));
|
||||
color: color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-medium-emphasis-opacity) * 100%), transparent);
|
||||
}
|
||||
.v-avatar--variant-elevated {
|
||||
box-shadow: 0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity, 0.3)), 0px 1px 3px 1px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity, 0.15));
|
||||
--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 2%, transparent);
|
||||
}
|
||||
.v-avatar--variant-flat {
|
||||
box-shadow: 0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity, 0.3)), 0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity, 0.15));
|
||||
--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 0%, transparent);
|
||||
}
|
||||
.v-avatar--variant-outlined {
|
||||
border: thin solid currentColor;
|
||||
}
|
||||
.v-avatar--variant-text .v-avatar__overlay {
|
||||
background: currentColor;
|
||||
}
|
||||
.v-avatar--variant-tonal .v-avatar__underlay {
|
||||
background: currentColor;
|
||||
opacity: var(--v-activated-opacity);
|
||||
border-radius: inherit;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
.v-avatar .v-avatar__underlay {
|
||||
position: absolute;
|
||||
}
|
||||
.v-avatar--rounded {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.v-avatar--start {
|
||||
margin-inline-end: 8px;
|
||||
}
|
||||
.v-avatar--end {
|
||||
margin-inline-start: 8px;
|
||||
}
|
||||
.v-avatar .v-img {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
+976
@@ -0,0 +1,976 @@
|
||||
|
||||
import { VBadge } from '../VBadge/VBadge.js';
|
||||
import { IconValue } from '../../composables/icons.js';
|
||||
import type { PropType } from 'vue';
|
||||
export declare const makeVAvatarProps: <Defaults extends {
|
||||
theme?: unknown;
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
border?: unknown;
|
||||
density?: unknown;
|
||||
rounded?: unknown;
|
||||
tile?: unknown;
|
||||
tag?: unknown;
|
||||
color?: unknown;
|
||||
variant?: unknown;
|
||||
size?: unknown;
|
||||
badge?: unknown;
|
||||
start?: unknown;
|
||||
end?: unknown;
|
||||
icon?: unknown;
|
||||
image?: unknown;
|
||||
text?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
theme: unknown extends Defaults["theme"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
|
||||
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
||||
};
|
||||
class: unknown extends Defaults["class"] ? PropType<any> : {
|
||||
type: PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
border: unknown extends Defaults["border"] ? (BooleanConstructor | NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["border"] ? string | number | boolean : string | number | boolean | Defaults["border"]>;
|
||||
default: unknown extends Defaults["border"] ? string | number | boolean : Defaults["border"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
density: unknown extends Defaults["density"] ? {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
|
||||
default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
|
||||
};
|
||||
rounded: unknown extends Defaults["rounded"] ? {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>;
|
||||
default: unknown extends Defaults["rounded"] ? string | number | boolean : Defaults["rounded"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
tile: unknown extends Defaults["tile"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>;
|
||||
default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"];
|
||||
};
|
||||
tag: unknown extends Defaults["tag"] ? {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | Defaults["tag"] | import("../../util/index.js").JSXComponent>;
|
||||
default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
color: unknown extends Defaults["color"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
|
||||
default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
|
||||
};
|
||||
variant: unknown extends Defaults["variant"] ? Omit<{
|
||||
type: PropType<import("../../composables/variant.js").Variant>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
} : Omit<Omit<{
|
||||
type: PropType<import("../../composables/variant.js").Variant>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["variant"] ? "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" : "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" | Defaults["variant"]>;
|
||||
default: unknown extends Defaults["variant"] ? "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal" : Defaults["variant"] | NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
};
|
||||
size: unknown extends Defaults["size"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["size"] ? string | number : string | number | Defaults["size"]>;
|
||||
default: unknown extends Defaults["size"] ? string | number : Defaults["size"] | NonNullable<string | number>;
|
||||
};
|
||||
badge: unknown extends Defaults["badge"] ? {
|
||||
type: PropType<boolean | VBadge['$props']>;
|
||||
default: boolean;
|
||||
} : Omit<{
|
||||
type: PropType<boolean | VBadge['$props']>;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["badge"] ? boolean | (Partial<{
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}> & Omit<{
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dot: boolean;
|
||||
dotSize?: string | number | undefined;
|
||||
floating: boolean;
|
||||
icon?: IconValue | undefined;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
max?: string | number | undefined;
|
||||
modelValue: boolean;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "bordered" | "dot" | "floating" | "inline" | "label" | "location" | "modelValue" | "rounded" | "style" | "tag" | "tile" | "transition">) : boolean | Defaults["badge"] | (Partial<{
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}> & Omit<{
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dot: boolean;
|
||||
dotSize?: string | number | undefined;
|
||||
floating: boolean;
|
||||
icon?: IconValue | undefined;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
max?: string | number | undefined;
|
||||
modelValue: boolean;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "bordered" | "dot" | "floating" | "inline" | "label" | "location" | "modelValue" | "rounded" | "style" | "tag" | "tile" | "transition">)>;
|
||||
default: unknown extends Defaults["badge"] ? boolean | (Partial<{
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}> & Omit<{
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dot: boolean;
|
||||
dotSize?: string | number | undefined;
|
||||
floating: boolean;
|
||||
icon?: IconValue | undefined;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
max?: string | number | undefined;
|
||||
modelValue: boolean;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "bordered" | "dot" | "floating" | "inline" | "label" | "location" | "modelValue" | "rounded" | "style" | "tag" | "tile" | "transition">) : Defaults["badge"] | NonNullable<boolean | (Partial<{
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}> & Omit<{
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dot: boolean;
|
||||
dotSize?: string | number | undefined;
|
||||
floating: boolean;
|
||||
icon?: IconValue | undefined;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
max?: string | number | undefined;
|
||||
modelValue: boolean;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "bordered" | "dot" | "floating" | "inline" | "label" | "location" | "modelValue" | "rounded" | "style" | "tag" | "tile" | "transition">)>;
|
||||
};
|
||||
start: unknown extends Defaults["start"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["start"] ? boolean : boolean | Defaults["start"]>;
|
||||
default: unknown extends Defaults["start"] ? boolean : boolean | Defaults["start"];
|
||||
};
|
||||
end: unknown extends Defaults["end"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["end"] ? boolean : boolean | Defaults["end"]>;
|
||||
default: unknown extends Defaults["end"] ? boolean : boolean | Defaults["end"];
|
||||
};
|
||||
icon: unknown extends Defaults["icon"] ? PropType<IconValue> : {
|
||||
type: PropType<unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | IconValue>;
|
||||
default: unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | NonNullable<IconValue>;
|
||||
};
|
||||
image: unknown extends Defaults["image"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["image"] ? string : string | Defaults["image"]>;
|
||||
default: unknown extends Defaults["image"] ? string : string | Defaults["image"];
|
||||
};
|
||||
text: unknown extends Defaults["text"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["text"] ? string : string | Defaults["text"]>;
|
||||
default: unknown extends Defaults["text"] ? string : string | Defaults["text"];
|
||||
};
|
||||
};
|
||||
export type VAvatarSlots = {
|
||||
default: never;
|
||||
badge: never;
|
||||
};
|
||||
export declare const VAvatar: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
size: string | number;
|
||||
badge: boolean | (Partial<{
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}> & Omit<{
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dot: boolean;
|
||||
dotSize?: string | number | undefined;
|
||||
floating: boolean;
|
||||
icon?: IconValue | undefined;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
max?: string | number | undefined;
|
||||
modelValue: boolean;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "bordered" | "dot" | "floating" | "inline" | "label" | "location" | "modelValue" | "rounded" | "style" | "tag" | "tile" | "transition">);
|
||||
start: boolean;
|
||||
end: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
border?: string | number | boolean | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
image?: string | undefined;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
size: string | number;
|
||||
badge: boolean | (Partial<{
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}> & Omit<{
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dot: boolean;
|
||||
dotSize?: string | number | undefined;
|
||||
floating: boolean;
|
||||
icon?: IconValue | undefined;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
max?: string | number | undefined;
|
||||
modelValue: boolean;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "bordered" | "dot" | "floating" | "inline" | "label" | "location" | "modelValue" | "rounded" | "style" | "tag" | "tile" | "transition">);
|
||||
start: boolean;
|
||||
end: boolean;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
badge: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
size: string | number;
|
||||
badge: boolean | (Partial<{
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}> & Omit<{
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dot: boolean;
|
||||
dotSize?: string | number | undefined;
|
||||
floating: boolean;
|
||||
icon?: IconValue | undefined;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
max?: string | number | undefined;
|
||||
modelValue: boolean;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "bordered" | "dot" | "floating" | "inline" | "label" | "location" | "modelValue" | "rounded" | "style" | "tag" | "tile" | "transition">);
|
||||
start: boolean;
|
||||
end: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
border?: string | number | boolean | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
image?: string | undefined;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
size: string | number;
|
||||
badge: boolean | (Partial<{
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}> & Omit<{
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dot: boolean;
|
||||
dotSize?: string | number | undefined;
|
||||
floating: boolean;
|
||||
icon?: IconValue | undefined;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
max?: string | number | undefined;
|
||||
modelValue: boolean;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "bordered" | "dot" | "floating" | "inline" | "label" | "location" | "modelValue" | "rounded" | "style" | "tag" | "tile" | "transition">);
|
||||
start: boolean;
|
||||
end: boolean;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
size: string | number;
|
||||
badge: boolean | (Partial<{
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}> & Omit<{
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dot: boolean;
|
||||
dotSize?: string | number | undefined;
|
||||
floating: boolean;
|
||||
icon?: IconValue | undefined;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
max?: string | number | undefined;
|
||||
modelValue: boolean;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "bordered" | "dot" | "floating" | "inline" | "label" | "location" | "modelValue" | "rounded" | "style" | "tag" | "tile" | "transition">);
|
||||
start: boolean;
|
||||
end: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
border?: string | number | boolean | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
color?: string | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
image?: string | undefined;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
variant: "elevated" | "flat" | "outlined" | "plain" | "text" | "tonal";
|
||||
size: string | number;
|
||||
badge: boolean | (Partial<{
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}> & Omit<{
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dot: boolean;
|
||||
dotSize?: string | number | undefined;
|
||||
floating: boolean;
|
||||
icon?: IconValue | undefined;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
max?: string | number | undefined;
|
||||
modelValue: boolean;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "bordered" | "dot" | "floating" | "inline" | "label" | "location" | "modelValue" | "rounded" | "style" | "tag" | "tile" | "transition">);
|
||||
start: boolean;
|
||||
end: boolean;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
badge: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
theme: StringConstructor;
|
||||
class: PropType<import("../../composables/component.js").ClassValue>;
|
||||
style: {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
density: {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
color: StringConstructor;
|
||||
variant: Omit<{
|
||||
type: PropType<import("../../composables/variant.js").Variant>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
};
|
||||
size: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
};
|
||||
badge: {
|
||||
type: PropType<boolean | VBadge['$props']>;
|
||||
default: boolean;
|
||||
};
|
||||
start: BooleanConstructor;
|
||||
end: BooleanConstructor;
|
||||
icon: PropType<IconValue>;
|
||||
image: StringConstructor;
|
||||
text: StringConstructor;
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
theme: StringConstructor;
|
||||
class: PropType<import("../../composables/component.js").ClassValue>;
|
||||
style: {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
density: {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
color: StringConstructor;
|
||||
variant: Omit<{
|
||||
type: PropType<import("../../composables/variant.js").Variant>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
default: NonNullable<"elevated" | "flat" | "outlined" | "plain" | "text" | "tonal">;
|
||||
};
|
||||
size: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: string;
|
||||
};
|
||||
badge: {
|
||||
type: PropType<boolean | VBadge['$props']>;
|
||||
default: boolean;
|
||||
};
|
||||
start: BooleanConstructor;
|
||||
end: BooleanConstructor;
|
||||
icon: PropType<IconValue>;
|
||||
image: StringConstructor;
|
||||
text: StringConstructor;
|
||||
}>>;
|
||||
export type VAvatar = InstanceType<typeof VAvatar>;
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
import { createVNode as _createVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
|
||||
// Styles
|
||||
import "./VAvatar.css";
|
||||
|
||||
// Components
|
||||
import { VBadge } from "../VBadge/VBadge.js";
|
||||
import { VDefaultsProvider } from "../VDefaultsProvider/index.js";
|
||||
import { VIcon } from "../VIcon/index.js";
|
||||
import { VImg } from "../VImg/index.js"; // Composables
|
||||
import { makeBorderProps, useBorder } from "../../composables/border.js";
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { makeDensityProps, useDensity } from "../../composables/density.js";
|
||||
import { IconValue } from "../../composables/icons.js";
|
||||
import { makeRoundedProps, useRounded } from "../../composables/rounded.js";
|
||||
import { makeSizeProps, useSize } from "../../composables/size.js";
|
||||
import { makeTagProps } from "../../composables/tag.js";
|
||||
import { makeThemeProps, provideTheme } from "../../composables/theme.js";
|
||||
import { genOverlays, makeVariantProps, useVariant } from "../../composables/variant.js"; // Utilities
|
||||
import { computed } from 'vue';
|
||||
import { genericComponent, isObject, propsFactory, useRender } from "../../util/index.js"; // Types
|
||||
export const makeVAvatarProps = propsFactory({
|
||||
badge: {
|
||||
type: [Boolean, Object],
|
||||
default: false
|
||||
},
|
||||
start: Boolean,
|
||||
end: Boolean,
|
||||
icon: IconValue,
|
||||
image: String,
|
||||
text: String,
|
||||
...makeBorderProps(),
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeSizeProps(),
|
||||
...makeTagProps(),
|
||||
...makeThemeProps(),
|
||||
...makeVariantProps({
|
||||
variant: 'flat'
|
||||
})
|
||||
}, 'VAvatar');
|
||||
export const VAvatar = genericComponent()({
|
||||
name: 'VAvatar',
|
||||
props: makeVAvatarProps(),
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
const {
|
||||
themeClasses
|
||||
} = provideTheme(props);
|
||||
const {
|
||||
borderClasses
|
||||
} = useBorder(props);
|
||||
const {
|
||||
colorClasses,
|
||||
colorStyles,
|
||||
variantClasses
|
||||
} = useVariant(props);
|
||||
const {
|
||||
densityClasses
|
||||
} = useDensity(props);
|
||||
const {
|
||||
roundedClasses
|
||||
} = useRounded(props);
|
||||
const {
|
||||
sizeClasses,
|
||||
sizeStyles
|
||||
} = useSize(props);
|
||||
const badgeDotSize = computed(() => {
|
||||
switch (props.size) {
|
||||
case 'x-small':
|
||||
return 8;
|
||||
case 'small':
|
||||
return 10;
|
||||
case 'large':
|
||||
return 14;
|
||||
case 'x-large':
|
||||
return 16;
|
||||
default:
|
||||
return 12;
|
||||
}
|
||||
});
|
||||
const badgeOffset = computed(() => {
|
||||
const {
|
||||
floating
|
||||
} = isObject(props.badge) ? props.badge : {};
|
||||
return (floating ? badgeDotSize.value / 2 : 0) - 1.5;
|
||||
});
|
||||
const badgeProps = computed(() => {
|
||||
return {
|
||||
bordered: true,
|
||||
dot: !slots.badge,
|
||||
dotSize: badgeDotSize.value,
|
||||
offsetX: badgeOffset.value,
|
||||
offsetY: badgeOffset.value,
|
||||
color: typeof props.badge === 'string' ? props.badge : 'primary',
|
||||
...(isObject(props.badge) ? props.badge : {})
|
||||
};
|
||||
});
|
||||
useRender(() => {
|
||||
const avatar = _createVNode(props.tag, {
|
||||
"class": _normalizeClass(['v-avatar', {
|
||||
'v-avatar--start': props.start,
|
||||
'v-avatar--end': props.end
|
||||
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class]),
|
||||
"style": _normalizeStyle([colorStyles.value, sizeStyles.value, props.style])
|
||||
}, {
|
||||
default: () => [!slots.default ? props.image ? _createVNode(VImg, {
|
||||
"key": "image",
|
||||
"src": props.image,
|
||||
"alt": "",
|
||||
"cover": true
|
||||
}, null) : props.icon ? _createVNode(VIcon, {
|
||||
"key": "icon",
|
||||
"icon": props.icon
|
||||
}, null) : props.text : _createVNode(VDefaultsProvider, {
|
||||
"key": "content-defaults",
|
||||
"defaults": {
|
||||
VImg: {
|
||||
cover: true,
|
||||
src: props.image
|
||||
},
|
||||
VIcon: {
|
||||
icon: props.icon
|
||||
}
|
||||
}
|
||||
}, {
|
||||
default: () => [slots.default()]
|
||||
}), genOverlays(false, 'v-avatar')]
|
||||
});
|
||||
return props.badge ? _createVNode(VBadge, badgeProps.value, {
|
||||
default: () => avatar,
|
||||
badge: slots.badge
|
||||
}) : avatar;
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VAvatar.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+37
@@ -0,0 +1,37 @@
|
||||
@use '../../styles/settings'
|
||||
@use '../../styles/tools'
|
||||
@use './mixins' as *
|
||||
@use './variables' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-avatar
|
||||
flex: none
|
||||
align-items: center
|
||||
display: inline-flex
|
||||
justify-content: center
|
||||
line-height: $avatar-line-height
|
||||
overflow: hidden
|
||||
position: relative
|
||||
text-align: center
|
||||
transition: 0.2s settings.$standard-easing
|
||||
transition-property: width, height
|
||||
vertical-align: $avatar-vertical-align
|
||||
|
||||
@include avatar-sizes($avatar-sizes)
|
||||
@include avatar-density(('height', 'width'), $avatar-density)
|
||||
@include tools.border($avatar-border...)
|
||||
@include tools.rounded($avatar-border-radius)
|
||||
@include tools.variant($avatar-variants...)
|
||||
|
||||
&--rounded
|
||||
@include tools.rounded($avatar-rounded-border-radius)
|
||||
|
||||
&--start
|
||||
margin-inline-end: $avatar-margin-start
|
||||
|
||||
&--end
|
||||
margin-inline-start: $avatar-margin-end
|
||||
|
||||
.v-img
|
||||
height: 100%
|
||||
width: 100%
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
@use 'sass:map';
|
||||
@use 'sass:meta';
|
||||
@use '../../styles/settings';
|
||||
@use './variables' as *;
|
||||
|
||||
@mixin avatar-sizes ($map: $avatar-sizes) {
|
||||
@each $sizeName, $multiplier in settings.$size-scales {
|
||||
$size: map.get($map, 'height') + (8 * $multiplier);
|
||||
|
||||
&.v-avatar--size-#{$sizeName} {
|
||||
--v-avatar-height: #{$size};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin avatar-density ($properties, $densities) {
|
||||
@each $density, $multiplier in $densities {
|
||||
$value: calc(var(--v-avatar-height) + #{$multiplier * settings.$spacer});
|
||||
|
||||
&.v-avatar--density-#{$density} {
|
||||
@if meta.type-of($properties) == "list" {
|
||||
@each $property in $properties {
|
||||
#{$property}: $value;
|
||||
}
|
||||
}
|
||||
@else {
|
||||
#{$properties}: $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
@use "sass:map";
|
||||
@use '../../styles/settings';
|
||||
@use "../../styles/settings/variables";
|
||||
@use "../../styles/tools/functions";
|
||||
|
||||
// Defaults
|
||||
$avatar-background: rgb(var(--v-theme-surface)) !default;
|
||||
$avatar-border-radius: map.get(variables.$rounded, 'circle') !default;
|
||||
$avatar-border-color: settings.$border-color-root !default;
|
||||
$avatar-border-radius: map.get(settings.$rounded, 0) !default;
|
||||
$avatar-border-style: settings.$border-style-root !default;
|
||||
$avatar-border-thin-width: thin !default;
|
||||
$avatar-border-width: 0 !default;
|
||||
$avatar-color: functions.theme-color('on-surface', var(--v-medium-emphasis-opacity)) !default;
|
||||
$avatar-density: ('default': 0, 'comfortable': -1, 'compact': -2) !default;
|
||||
$avatar-elevation: 1 !default;
|
||||
$avatar-height: 40px !default;
|
||||
$avatar-line-height: normal !default;
|
||||
$avatar-plain-opacity: .62 !default;
|
||||
$avatar-rounded-border-radius: variables.$border-radius-root !default;
|
||||
$avatar-vertical-align: middle !default;
|
||||
$avatar-width: 40px !default;
|
||||
$avatar-margin-end: 8px !default;
|
||||
$avatar-margin-start: 8px !default;
|
||||
|
||||
$avatar-sizes: () !default;
|
||||
$avatar-sizes: functions.map-deep-merge(
|
||||
(
|
||||
'height': $avatar-height,
|
||||
'width': $avatar-width
|
||||
),
|
||||
$avatar-sizes
|
||||
);
|
||||
|
||||
$avatar-border: (
|
||||
$avatar-border-color,
|
||||
$avatar-border-style,
|
||||
$avatar-border-width,
|
||||
$avatar-border-thin-width
|
||||
) !default;
|
||||
|
||||
$avatar-variants: (
|
||||
$avatar-background,
|
||||
$avatar-color,
|
||||
$avatar-elevation,
|
||||
$avatar-plain-opacity,
|
||||
'v-avatar'
|
||||
) !default;
|
||||
+1
@@ -0,0 +1 @@
|
||||
export { VAvatar } from './VAvatar.js';
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
export { VAvatar } from "./VAvatar.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VAvatar"],"sources":["../../../src/components/VAvatar/index.ts"],"sourcesContent":["export { VAvatar } from './VAvatar'\n"],"mappings":"SAASA,OAAO","ignoreList":[]}
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
@layer vuetify-components {
|
||||
.v-badge {
|
||||
display: inline-block;
|
||||
line-height: 1;
|
||||
}
|
||||
.v-badge__badge {
|
||||
align-items: center;
|
||||
display: inline-flex;
|
||||
border-radius: 10px;
|
||||
font-family: var(--v-font-body, "Roboto", sans-serif);
|
||||
font-size: 0.75rem;
|
||||
font-weight: 500;
|
||||
height: 1.25rem;
|
||||
justify-content: center;
|
||||
min-width: 20px;
|
||||
padding: 4px 6px;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
text-indent: 0;
|
||||
transition: 0.225s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
white-space: nowrap;
|
||||
}
|
||||
.v-badge__badge {
|
||||
background: rgb(var(--v-theme-surface-variant));
|
||||
color: color-mix(in srgb, rgb(var(--v-theme-on-surface-variant)) calc(var(--v-high-emphasis-opacity) * 100%), transparent);
|
||||
}
|
||||
.v-badge__badge:has(.v-icon) {
|
||||
padding: 4px 6px;
|
||||
}
|
||||
.v-badge--bordered .v-badge__badge::after {
|
||||
border-radius: inherit;
|
||||
border-style: solid;
|
||||
border-width: 2px;
|
||||
color: rgb(var(--v-theme-background));
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
transform: scale(1.05);
|
||||
}
|
||||
.v-badge--dot .v-badge__badge {
|
||||
border-radius: 50%;
|
||||
height: 9px;
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
width: 9px;
|
||||
}
|
||||
.v-badge--dot .v-badge__badge::after {
|
||||
border-width: 1.5px;
|
||||
}
|
||||
.v-badge--inline .v-badge__badge {
|
||||
position: relative;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.v-badge__badge .v-icon {
|
||||
color: inherit;
|
||||
font-size: 0.75rem;
|
||||
margin: 0 -2px;
|
||||
}
|
||||
.v-badge__badge img,
|
||||
.v-badge__badge .v-img {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.v-badge__wrapper {
|
||||
display: flex;
|
||||
position: relative;
|
||||
}
|
||||
.v-badge--inline .v-badge__wrapper {
|
||||
align-items: center;
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
margin: 0 4px;
|
||||
}
|
||||
}
|
||||
@layer vuetify-final.trumps {
|
||||
@media (forced-colors: active) {
|
||||
.v-badge__badge {
|
||||
forced-color-adjust: preserve-parent-color;
|
||||
background: highlight;
|
||||
color: highlighttext;
|
||||
}
|
||||
}
|
||||
}
|
||||
+526
@@ -0,0 +1,526 @@
|
||||
|
||||
import { IconValue } from '../../composables/icons.js';
|
||||
export type VBadgeSlots = {
|
||||
default: never;
|
||||
badge: never;
|
||||
};
|
||||
export declare const makeVBadgeProps: <Defaults extends {
|
||||
theme?: unknown;
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
rounded?: unknown;
|
||||
tile?: unknown;
|
||||
tag?: unknown;
|
||||
height?: unknown;
|
||||
maxHeight?: unknown;
|
||||
maxWidth?: unknown;
|
||||
minHeight?: unknown;
|
||||
minWidth?: unknown;
|
||||
width?: unknown;
|
||||
location?: unknown;
|
||||
transition?: unknown;
|
||||
bordered?: unknown;
|
||||
color?: unknown;
|
||||
content?: unknown;
|
||||
dot?: unknown;
|
||||
dotSize?: unknown;
|
||||
floating?: unknown;
|
||||
icon?: unknown;
|
||||
inline?: unknown;
|
||||
label?: unknown;
|
||||
max?: unknown;
|
||||
modelValue?: unknown;
|
||||
offsetX?: unknown;
|
||||
offsetY?: unknown;
|
||||
textColor?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
theme: unknown extends Defaults["theme"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
|
||||
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
||||
};
|
||||
class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
rounded: unknown extends Defaults["rounded"] ? {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>;
|
||||
default: unknown extends Defaults["rounded"] ? string | number | boolean : Defaults["rounded"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
tile: unknown extends Defaults["tile"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>;
|
||||
default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"];
|
||||
};
|
||||
tag: unknown extends Defaults["tag"] ? {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | Defaults["tag"] | import("../../util/index.js").JSXComponent>;
|
||||
default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
height: unknown extends Defaults["height"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["height"] ? string | number : string | number | Defaults["height"]>;
|
||||
default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable<string | number>;
|
||||
};
|
||||
maxHeight: unknown extends Defaults["maxHeight"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["maxHeight"] ? string | number : string | number | Defaults["maxHeight"]>;
|
||||
default: unknown extends Defaults["maxHeight"] ? string | number : Defaults["maxHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
maxWidth: unknown extends Defaults["maxWidth"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["maxWidth"] ? string | number : string | number | Defaults["maxWidth"]>;
|
||||
default: unknown extends Defaults["maxWidth"] ? string | number : Defaults["maxWidth"] | NonNullable<string | number>;
|
||||
};
|
||||
minHeight: unknown extends Defaults["minHeight"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["minHeight"] ? string | number : string | number | Defaults["minHeight"]>;
|
||||
default: unknown extends Defaults["minHeight"] ? string | number : Defaults["minHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
minWidth: unknown extends Defaults["minWidth"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["minWidth"] ? string | number : string | number | Defaults["minWidth"]>;
|
||||
default: unknown extends Defaults["minWidth"] ? string | number : Defaults["minWidth"] | NonNullable<string | number>;
|
||||
};
|
||||
width: unknown extends Defaults["width"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["width"] ? string | number : string | number | Defaults["width"]>;
|
||||
default: unknown extends Defaults["width"] ? string | number : Defaults["width"] | NonNullable<string | number>;
|
||||
};
|
||||
location: unknown extends Defaults["location"] ? {
|
||||
type: import("vue").PropType<import("../../util/index.js").Anchor | null>;
|
||||
default: NonNullable<import("../../util/index.js").Anchor | null>;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<import("../../util/index.js").Anchor | null>;
|
||||
default: NonNullable<import("../../util/index.js").Anchor | null>;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["location"] ? import("../../util/index.js").Anchor | null : Defaults["location"] | import("../../util/index.js").Anchor | null>;
|
||||
default: unknown extends Defaults["location"] ? import("../../util/index.js").Anchor | null : Defaults["location"] | NonNullable<import("../../util/index.js").Anchor | null>;
|
||||
};
|
||||
transition: unknown extends Defaults["transition"] ? {
|
||||
type: import("vue").PropType<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null>;
|
||||
default: NonNullable<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null>;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null>;
|
||||
default: NonNullable<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null>;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["transition"] ? string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null : string | boolean | Defaults["transition"] | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null>;
|
||||
default: unknown extends Defaults["transition"] ? string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null : Defaults["transition"] | NonNullable<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null>;
|
||||
};
|
||||
bordered: unknown extends Defaults["bordered"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["bordered"] ? boolean : boolean | Defaults["bordered"]>;
|
||||
default: unknown extends Defaults["bordered"] ? boolean : boolean | Defaults["bordered"];
|
||||
};
|
||||
color: unknown extends Defaults["color"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
|
||||
default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
|
||||
};
|
||||
content: unknown extends Defaults["content"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["content"] ? string | number : string | number | Defaults["content"]>;
|
||||
default: unknown extends Defaults["content"] ? string | number : Defaults["content"] | NonNullable<string | number>;
|
||||
};
|
||||
dot: unknown extends Defaults["dot"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["dot"] ? boolean : boolean | Defaults["dot"]>;
|
||||
default: unknown extends Defaults["dot"] ? boolean : boolean | Defaults["dot"];
|
||||
};
|
||||
dotSize: unknown extends Defaults["dotSize"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["dotSize"] ? string | number : string | number | Defaults["dotSize"]>;
|
||||
default: unknown extends Defaults["dotSize"] ? string | number : Defaults["dotSize"] | NonNullable<string | number>;
|
||||
};
|
||||
floating: unknown extends Defaults["floating"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["floating"] ? boolean : boolean | Defaults["floating"]>;
|
||||
default: unknown extends Defaults["floating"] ? boolean : boolean | Defaults["floating"];
|
||||
};
|
||||
icon: unknown extends Defaults["icon"] ? import("vue").PropType<IconValue> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | IconValue>;
|
||||
default: unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | NonNullable<IconValue>;
|
||||
};
|
||||
inline: unknown extends Defaults["inline"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["inline"] ? boolean : boolean | Defaults["inline"]>;
|
||||
default: unknown extends Defaults["inline"] ? boolean : boolean | Defaults["inline"];
|
||||
};
|
||||
label: unknown extends Defaults["label"] ? {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["label"] ? string : string | Defaults["label"]>;
|
||||
default: unknown extends Defaults["label"] ? string : string | Defaults["label"];
|
||||
};
|
||||
max: unknown extends Defaults["max"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["max"] ? string | number : string | number | Defaults["max"]>;
|
||||
default: unknown extends Defaults["max"] ? string | number : Defaults["max"] | NonNullable<string | number>;
|
||||
};
|
||||
modelValue: unknown extends Defaults["modelValue"] ? {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
} : Omit<{
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["modelValue"] ? boolean : boolean | Defaults["modelValue"]>;
|
||||
default: unknown extends Defaults["modelValue"] ? boolean : boolean | Defaults["modelValue"];
|
||||
};
|
||||
offsetX: unknown extends Defaults["offsetX"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["offsetX"] ? string | number : string | number | Defaults["offsetX"]>;
|
||||
default: unknown extends Defaults["offsetX"] ? string | number : Defaults["offsetX"] | NonNullable<string | number>;
|
||||
};
|
||||
offsetY: unknown extends Defaults["offsetY"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["offsetY"] ? string | number : string | number | Defaults["offsetY"]>;
|
||||
default: unknown extends Defaults["offsetY"] ? string | number : Defaults["offsetY"] | NonNullable<string | number>;
|
||||
};
|
||||
textColor: unknown extends Defaults["textColor"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["textColor"] ? string : string | Defaults["textColor"]>;
|
||||
default: unknown extends Defaults["textColor"] ? string : string | Defaults["textColor"];
|
||||
};
|
||||
};
|
||||
export declare const VBadge: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dotSize?: string | number | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
max?: string | number | undefined;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
badge: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dotSize?: string | number | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
max?: string | number | undefined;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
color?: string | undefined;
|
||||
content?: string | number | undefined;
|
||||
dotSize?: string | number | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
max?: string | number | undefined;
|
||||
offsetX?: string | number | undefined;
|
||||
offsetY?: string | number | undefined;
|
||||
textColor?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
badge?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:badge"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
location: import("../../util/index.js").Anchor | null;
|
||||
transition: string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null;
|
||||
bordered: boolean;
|
||||
dot: boolean;
|
||||
floating: boolean;
|
||||
inline: boolean;
|
||||
label: string;
|
||||
modelValue: boolean;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
badge: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
theme: StringConstructor;
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
height: (NumberConstructor | StringConstructor)[];
|
||||
maxHeight: (NumberConstructor | StringConstructor)[];
|
||||
maxWidth: (NumberConstructor | StringConstructor)[];
|
||||
minHeight: (NumberConstructor | StringConstructor)[];
|
||||
minWidth: (NumberConstructor | StringConstructor)[];
|
||||
width: (NumberConstructor | StringConstructor)[];
|
||||
location: {
|
||||
type: import("vue").PropType<import("../../util/index.js").Anchor | null>;
|
||||
default: NonNullable<import("../../util/index.js").Anchor | null>;
|
||||
};
|
||||
transition: {
|
||||
type: import("vue").PropType<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null>;
|
||||
default: NonNullable<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null>;
|
||||
};
|
||||
bordered: BooleanConstructor;
|
||||
color: StringConstructor;
|
||||
content: (NumberConstructor | StringConstructor)[];
|
||||
dot: BooleanConstructor;
|
||||
dotSize: (NumberConstructor | StringConstructor)[];
|
||||
floating: BooleanConstructor;
|
||||
icon: import("vue").PropType<IconValue>;
|
||||
inline: BooleanConstructor;
|
||||
label: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
max: (NumberConstructor | StringConstructor)[];
|
||||
modelValue: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
offsetX: (NumberConstructor | StringConstructor)[];
|
||||
offsetY: (NumberConstructor | StringConstructor)[];
|
||||
textColor: StringConstructor;
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
theme: StringConstructor;
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
height: (NumberConstructor | StringConstructor)[];
|
||||
maxHeight: (NumberConstructor | StringConstructor)[];
|
||||
maxWidth: (NumberConstructor | StringConstructor)[];
|
||||
minHeight: (NumberConstructor | StringConstructor)[];
|
||||
minWidth: (NumberConstructor | StringConstructor)[];
|
||||
width: (NumberConstructor | StringConstructor)[];
|
||||
location: {
|
||||
type: import("vue").PropType<import("../../util/index.js").Anchor | null>;
|
||||
default: NonNullable<import("../../util/index.js").Anchor | null>;
|
||||
};
|
||||
transition: {
|
||||
type: import("vue").PropType<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null>;
|
||||
default: NonNullable<string | boolean | (import("vue").TransitionProps & {
|
||||
component?: import("vue").Component;
|
||||
}) | null>;
|
||||
};
|
||||
bordered: BooleanConstructor;
|
||||
color: StringConstructor;
|
||||
content: (NumberConstructor | StringConstructor)[];
|
||||
dot: BooleanConstructor;
|
||||
dotSize: (NumberConstructor | StringConstructor)[];
|
||||
floating: BooleanConstructor;
|
||||
icon: import("vue").PropType<IconValue>;
|
||||
inline: BooleanConstructor;
|
||||
label: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
max: (NumberConstructor | StringConstructor)[];
|
||||
modelValue: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
offsetX: (NumberConstructor | StringConstructor)[];
|
||||
offsetY: (NumberConstructor | StringConstructor)[];
|
||||
textColor: StringConstructor;
|
||||
}>>;
|
||||
export type VBadge = InstanceType<typeof VBadge>;
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
import { createVNode as _createVNode, vShow as _vShow, mergeProps as _mergeProps, createElementVNode as _createElementVNode, withDirectives as _withDirectives } from "vue";
|
||||
// Styles
|
||||
import "./VBadge.css";
|
||||
|
||||
// Components
|
||||
import { VIcon } from "../VIcon/index.js"; // Composables
|
||||
import { useBackgroundColor, useTextColor } from "../../composables/color.js";
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { makeDimensionProps, useDimension } from "../../composables/dimensions.js";
|
||||
import { IconValue } from "../../composables/icons.js";
|
||||
import { useLocale } from "../../composables/locale.js";
|
||||
import { makeLocationProps, useLocation } from "../../composables/location.js";
|
||||
import { makeRoundedProps, useRounded } from "../../composables/rounded.js";
|
||||
import { makeTagProps } from "../../composables/tag.js";
|
||||
import { makeThemeProps, useTheme } from "../../composables/theme.js";
|
||||
import { makeTransitionProps, MaybeTransition } from "../../composables/transition.js"; // Utilities
|
||||
import { convertToUnit, genericComponent, pickWithRest, propsFactory, useRender } from "../../util/index.js";
|
||||
export const makeVBadgeProps = propsFactory({
|
||||
bordered: Boolean,
|
||||
color: String,
|
||||
content: [Number, String],
|
||||
dot: Boolean,
|
||||
dotSize: [Number, String],
|
||||
floating: Boolean,
|
||||
icon: IconValue,
|
||||
inline: Boolean,
|
||||
label: {
|
||||
type: String,
|
||||
default: '$vuetify.badge'
|
||||
},
|
||||
max: [Number, String],
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
offsetX: [Number, String],
|
||||
offsetY: [Number, String],
|
||||
textColor: String,
|
||||
...makeComponentProps(),
|
||||
...makeLocationProps({
|
||||
location: 'top end'
|
||||
}),
|
||||
...makeRoundedProps(),
|
||||
...makeTagProps(),
|
||||
...makeThemeProps(),
|
||||
...makeTransitionProps({
|
||||
transition: 'scale-rotate-transition'
|
||||
}),
|
||||
...makeDimensionProps()
|
||||
}, 'VBadge');
|
||||
export const VBadge = genericComponent()({
|
||||
name: 'VBadge',
|
||||
inheritAttrs: false,
|
||||
props: makeVBadgeProps(),
|
||||
setup(props, ctx) {
|
||||
const {
|
||||
backgroundColorClasses,
|
||||
backgroundColorStyles
|
||||
} = useBackgroundColor(() => props.color);
|
||||
const {
|
||||
roundedClasses
|
||||
} = useRounded(props);
|
||||
const {
|
||||
t
|
||||
} = useLocale();
|
||||
const {
|
||||
textColorClasses,
|
||||
textColorStyles
|
||||
} = useTextColor(() => props.textColor);
|
||||
const {
|
||||
themeClasses
|
||||
} = useTheme();
|
||||
const {
|
||||
locationStyles
|
||||
} = useLocation(props, true, side => {
|
||||
const base = props.floating ? props.dot ? 2 : 4 : props.dot ? Number(props.dotSize ?? 8) : 12;
|
||||
return base + (['top', 'bottom'].includes(side) ? Number(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? Number(props.offsetX ?? 0) : 0);
|
||||
});
|
||||
const {
|
||||
dimensionStyles
|
||||
} = useDimension(props);
|
||||
useRender(() => {
|
||||
const value = Number(props.content);
|
||||
const content = !props.max || isNaN(value) ? props.content : value <= Number(props.max) ? value : `${props.max}+`;
|
||||
const [badgeAttrs, attrs] = pickWithRest(ctx.attrs, ['aria-atomic', 'aria-label', 'aria-live', 'role', 'title']);
|
||||
return _createVNode(props.tag, _mergeProps({
|
||||
"class": ['v-badge', {
|
||||
'v-badge--bordered': props.bordered,
|
||||
'v-badge--dot': props.dot,
|
||||
'v-badge--floating': props.floating,
|
||||
'v-badge--inline': props.inline
|
||||
}, props.class]
|
||||
}, attrs, {
|
||||
"style": props.style
|
||||
}), {
|
||||
default: () => [_createElementVNode("div", {
|
||||
"class": "v-badge__wrapper"
|
||||
}, [ctx.slots.default?.(), _createVNode(MaybeTransition, {
|
||||
"transition": props.transition
|
||||
}, {
|
||||
default: () => [_withDirectives(_createElementVNode("span", _mergeProps({
|
||||
"class": ['v-badge__badge', themeClasses.value, backgroundColorClasses.value, roundedClasses.value, textColorClasses.value],
|
||||
"style": [backgroundColorStyles.value, textColorStyles.value, dimensionStyles.value, props.inline ? {} : locationStyles.value, props.dot && props.dotSize ? {
|
||||
width: convertToUnit(props.dotSize),
|
||||
height: convertToUnit(props.dotSize)
|
||||
} : {}],
|
||||
"aria-atomic": "true",
|
||||
"aria-label": t(props.label, value),
|
||||
"aria-live": "polite",
|
||||
"role": "status"
|
||||
}, badgeAttrs), [props.dot ? undefined : ctx.slots.badge ? ctx.slots.badge?.() : props.icon ? _createVNode(VIcon, {
|
||||
"icon": props.icon
|
||||
}, null) : content]), [[_vShow, props.modelValue]])]
|
||||
})])]
|
||||
});
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VBadge.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+81
@@ -0,0 +1,81 @@
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-badge
|
||||
display: inline-block
|
||||
line-height: $badge-line-height
|
||||
|
||||
.v-badge__badge
|
||||
align-items: center
|
||||
display: inline-flex
|
||||
border-radius: $badge-border-radius
|
||||
font-family: $badge-font-family
|
||||
font-size: $badge-font-size
|
||||
font-weight: $badge-font-weight
|
||||
height: $badge-height
|
||||
justify-content: center
|
||||
min-width: $badge-min-width
|
||||
padding: $badge-padding
|
||||
position: absolute
|
||||
text-align: center
|
||||
text-indent: 0
|
||||
transition: $badge-transition
|
||||
white-space: nowrap
|
||||
|
||||
@include tools.theme($badge-theme...)
|
||||
|
||||
&:has(.v-icon)
|
||||
padding: $badge-icon-padding
|
||||
|
||||
.v-badge--bordered &
|
||||
&::after
|
||||
border-radius: inherit
|
||||
border-style: $badge-border-style
|
||||
border-width: $badge-border-width
|
||||
color: $badge-border-color
|
||||
content: ''
|
||||
position: absolute
|
||||
inset: 0
|
||||
transform: $badge-border-transform
|
||||
|
||||
.v-badge--dot &
|
||||
border-radius: $badge-dot-border-radius
|
||||
height: $badge-dot-height
|
||||
min-width: 0
|
||||
padding: 0
|
||||
width: $badge-dot-width
|
||||
|
||||
&::after
|
||||
border-width: $badge-dot-border-width
|
||||
|
||||
.v-badge--inline &
|
||||
position: relative
|
||||
vertical-align: $badge-inline-vertical-align
|
||||
|
||||
.v-icon
|
||||
color: inherit
|
||||
font-size: $badge-font-size
|
||||
margin: $badge-icon-margin
|
||||
|
||||
img,
|
||||
.v-img
|
||||
height: 100%
|
||||
width: 100%
|
||||
|
||||
.v-badge__wrapper
|
||||
display: flex
|
||||
position: relative
|
||||
|
||||
.v-badge--inline &
|
||||
align-items: center
|
||||
display: inline-flex
|
||||
justify-content: center
|
||||
margin: $badge-wrapper-margin
|
||||
|
||||
@include tools.layer('trumps')
|
||||
@media (forced-colors: active)
|
||||
.v-badge__badge
|
||||
forced-color-adjust: preserve-parent-color
|
||||
background: highlight
|
||||
color: highlighttext
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
@use '../../styles/settings';
|
||||
@use '../../styles/tools';
|
||||
|
||||
// VBadge
|
||||
$badge-background: rgb(var(--v-theme-surface-variant)) !default;
|
||||
$badge-color: tools.theme-color('on-surface-variant', var(--v-high-emphasis-opacity)) !default;
|
||||
$badge-border-color: rgb(var(--v-theme-background)) !default;
|
||||
$badge-border-radius: 10px !default;
|
||||
$badge-border-style: solid !default;
|
||||
$badge-border-transform: scale(1.05) !default;
|
||||
$badge-border-width: 2px !default;
|
||||
$badge-dot-border-radius: 50% !default;
|
||||
$badge-dot-border-width: 1.5px !default;
|
||||
$badge-dot-height: 9px !default;
|
||||
$badge-dot-width: 9px !default;
|
||||
$badge-font-family: settings.$body-font-family !default;
|
||||
$badge-font-size: .75rem !default;
|
||||
$badge-font-weight: 500 !default;
|
||||
$badge-height: 1.25rem !default;
|
||||
$badge-icon-margin: 0 -2px !default;
|
||||
$badge-icon-padding: 4px 6px !default;
|
||||
$badge-inline-vertical-align: middle !default;
|
||||
$badge-line-height: 1 !default;
|
||||
$badge-min-width: 20px !default;
|
||||
$badge-padding: 4px 6px !default;
|
||||
$badge-transition: .225s settings.$standard-easing !default;
|
||||
$badge-wrapper-margin: 0 4px !default;
|
||||
|
||||
// Lists
|
||||
$badge-theme: (
|
||||
$badge-background,
|
||||
$badge-color
|
||||
) !default;
|
||||
+1
@@ -0,0 +1 @@
|
||||
export { VBadge } from './VBadge.js';
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
export { VBadge } from "./VBadge.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VBadge"],"sources":["../../../src/components/VBadge/index.ts"],"sourcesContent":["export { VBadge } from './VBadge'\n"],"mappings":"SAASA,MAAM","ignoreList":[]}
|
||||
+163
@@ -0,0 +1,163 @@
|
||||
@layer vuetify-components {
|
||||
.v-banner {
|
||||
display: grid;
|
||||
flex: 1 1;
|
||||
font-size: 0.875rem;
|
||||
grid-template-areas: "prepend content actions";
|
||||
grid-template-columns: max-content auto max-content;
|
||||
grid-template-rows: max-content max-content;
|
||||
line-height: 1.4285714286;
|
||||
overflow: hidden;
|
||||
padding-inline: 16px 8px;
|
||||
padding-top: 16px;
|
||||
padding-bottom: 16px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.v-banner {
|
||||
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
||||
border-style: solid;
|
||||
border-width: 0 0 thin 0;
|
||||
}
|
||||
.v-banner--border {
|
||||
border-width: thin;
|
||||
box-shadow: none;
|
||||
}
|
||||
.v-banner {
|
||||
box-shadow: 0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity, 0.3)), 0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity, 0.15));
|
||||
--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 0%, transparent);
|
||||
}
|
||||
.v-banner--absolute {
|
||||
position: absolute;
|
||||
}
|
||||
.v-banner--fixed {
|
||||
position: fixed;
|
||||
}
|
||||
.v-banner--sticky {
|
||||
position: sticky;
|
||||
}
|
||||
.v-banner {
|
||||
border-radius: 0;
|
||||
}
|
||||
.v-banner {
|
||||
background: rgb(var(--v-theme-surface));
|
||||
color: color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-high-emphasis-opacity) * 100%), transparent);
|
||||
}
|
||||
.v-banner--rounded {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.v-banner--stacked:not(.v-banner--one-line) {
|
||||
grid-template-areas: "prepend content" ". actions";
|
||||
}
|
||||
.v-banner--stacked .v-banner-text {
|
||||
padding-inline-end: 36px;
|
||||
}
|
||||
.v-banner--density-default .v-banner-actions {
|
||||
margin-bottom: -8px;
|
||||
}
|
||||
.v-banner--density-default.v-banner--one-line {
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
.v-banner--density-default.v-banner--one-line .v-banner-actions {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.v-banner--density-default.v-banner--one-line {
|
||||
padding-top: 10px;
|
||||
}
|
||||
.v-banner--density-default.v-banner--two-line {
|
||||
padding-top: 16px;
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
.v-banner--density-default.v-banner--three-line {
|
||||
padding-top: 24px;
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
.v-banner--density-default:not(.v-banner--one-line) .v-banner-actions, .v-banner--density-default.v-banner--two-line .v-banner-actions, .v-banner--density-default.v-banner--three-line .v-banner-actions {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.v-banner--density-comfortable .v-banner-actions {
|
||||
margin-bottom: -4px;
|
||||
}
|
||||
.v-banner--density-comfortable.v-banner--one-line {
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
.v-banner--density-comfortable.v-banner--one-line .v-banner-actions {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.v-banner--density-comfortable.v-banner--two-line {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
.v-banner--density-comfortable.v-banner--three-line {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
.v-banner--density-comfortable:not(.v-banner--one-line) .v-banner-actions, .v-banner--density-comfortable.v-banner--two-line .v-banner-actions, .v-banner--density-comfortable.v-banner--three-line .v-banner-actions {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.v-banner--density-compact .v-banner-actions {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.v-banner--density-compact.v-banner--one-line {
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
.v-banner--density-compact.v-banner--one-line .v-banner-actions {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.v-banner--density-compact.v-banner--two-line {
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
.v-banner--density-compact.v-banner--three-line {
|
||||
padding-top: 16px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
.v-banner--density-compact:not(.v-banner--one-line) .v-banner-actions, .v-banner--density-compact.v-banner--two-line .v-banner-actions, .v-banner--density-compact.v-banner--three-line .v-banner-actions {
|
||||
margin-top: 12px;
|
||||
}
|
||||
.v-banner--sticky {
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
.v-banner__content {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
grid-area: content;
|
||||
}
|
||||
.v-banner__prepend {
|
||||
align-self: flex-start;
|
||||
grid-area: prepend;
|
||||
margin-inline-end: 24px;
|
||||
}
|
||||
.v-banner-actions {
|
||||
align-self: flex-end;
|
||||
display: flex;
|
||||
flex: 0 1;
|
||||
grid-area: actions;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.v-banner--two-line .v-banner-actions, .v-banner--three-line .v-banner-actions {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.v-banner-text {
|
||||
-webkit-box-orient: vertical;
|
||||
display: -webkit-box;
|
||||
padding-inline-end: 90px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.v-banner--one-line .v-banner-text {
|
||||
-webkit-line-clamp: 1;
|
||||
}
|
||||
.v-banner--two-line .v-banner-text {
|
||||
-webkit-line-clamp: 2;
|
||||
}
|
||||
.v-banner--three-line .v-banner-text {
|
||||
-webkit-line-clamp: 3;
|
||||
}
|
||||
.v-banner--two-line .v-banner-text, .v-banner--three-line .v-banner-text {
|
||||
align-self: flex-start;
|
||||
}
|
||||
}
|
||||
+517
@@ -0,0 +1,517 @@
|
||||
|
||||
import { IconValue } from '../../composables/icons.js';
|
||||
import type { PropType } from 'vue';
|
||||
export type VBannerSlots = {
|
||||
default: never;
|
||||
prepend: never;
|
||||
text: never;
|
||||
actions: never;
|
||||
};
|
||||
export declare const makeVBannerProps: <Defaults extends {
|
||||
theme?: unknown;
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
mobile?: unknown;
|
||||
mobileBreakpoint?: unknown;
|
||||
border?: unknown;
|
||||
density?: unknown;
|
||||
elevation?: unknown;
|
||||
rounded?: unknown;
|
||||
tile?: unknown;
|
||||
tag?: unknown;
|
||||
height?: unknown;
|
||||
maxHeight?: unknown;
|
||||
maxWidth?: unknown;
|
||||
minHeight?: unknown;
|
||||
minWidth?: unknown;
|
||||
width?: unknown;
|
||||
location?: unknown;
|
||||
position?: unknown;
|
||||
avatar?: unknown;
|
||||
bgColor?: unknown;
|
||||
color?: unknown;
|
||||
icon?: unknown;
|
||||
lines?: unknown;
|
||||
stacked?: unknown;
|
||||
sticky?: unknown;
|
||||
text?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
theme: unknown extends Defaults["theme"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
|
||||
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
||||
};
|
||||
class: unknown extends Defaults["class"] ? PropType<any> : {
|
||||
type: PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
mobile: unknown extends Defaults["mobile"] ? Omit<{
|
||||
type: PropType<boolean | null>;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<boolean | null>;
|
||||
default: NonNullable<boolean | null> | null;
|
||||
} : Omit<Omit<{
|
||||
type: PropType<boolean | null>;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<boolean | null>;
|
||||
default: NonNullable<boolean | null> | null;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["mobile"] ? boolean | null : boolean | Defaults["mobile"] | null>;
|
||||
default: unknown extends Defaults["mobile"] ? boolean | null : Defaults["mobile"] | NonNullable<boolean | null>;
|
||||
};
|
||||
mobileBreakpoint: unknown extends Defaults["mobileBreakpoint"] ? PropType<number | import("../../types.js").DisplayBreakpoint> : {
|
||||
type: PropType<unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : number | Defaults["mobileBreakpoint"] | import("../../types.js").DisplayBreakpoint>;
|
||||
default: unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : Defaults["mobileBreakpoint"] | NonNullable<number | import("../../types.js").DisplayBreakpoint>;
|
||||
};
|
||||
border: unknown extends Defaults["border"] ? (BooleanConstructor | NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["border"] ? string | number | boolean : string | number | boolean | Defaults["border"]>;
|
||||
default: unknown extends Defaults["border"] ? string | number | boolean : Defaults["border"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
density: unknown extends Defaults["density"] ? {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
|
||||
default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
|
||||
};
|
||||
elevation: unknown extends Defaults["elevation"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["elevation"] ? string | number : string | number | Defaults["elevation"]>;
|
||||
default: unknown extends Defaults["elevation"] ? string | number : Defaults["elevation"] | NonNullable<string | number>;
|
||||
};
|
||||
rounded: unknown extends Defaults["rounded"] ? {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>;
|
||||
default: unknown extends Defaults["rounded"] ? string | number | boolean : Defaults["rounded"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
tile: unknown extends Defaults["tile"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>;
|
||||
default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"];
|
||||
};
|
||||
tag: unknown extends Defaults["tag"] ? {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | Defaults["tag"] | import("../../util/index.js").JSXComponent>;
|
||||
default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
height: unknown extends Defaults["height"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["height"] ? string | number : string | number | Defaults["height"]>;
|
||||
default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable<string | number>;
|
||||
};
|
||||
maxHeight: unknown extends Defaults["maxHeight"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["maxHeight"] ? string | number : string | number | Defaults["maxHeight"]>;
|
||||
default: unknown extends Defaults["maxHeight"] ? string | number : Defaults["maxHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
maxWidth: unknown extends Defaults["maxWidth"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["maxWidth"] ? string | number : string | number | Defaults["maxWidth"]>;
|
||||
default: unknown extends Defaults["maxWidth"] ? string | number : Defaults["maxWidth"] | NonNullable<string | number>;
|
||||
};
|
||||
minHeight: unknown extends Defaults["minHeight"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["minHeight"] ? string | number : string | number | Defaults["minHeight"]>;
|
||||
default: unknown extends Defaults["minHeight"] ? string | number : Defaults["minHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
minWidth: unknown extends Defaults["minWidth"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["minWidth"] ? string | number : string | number | Defaults["minWidth"]>;
|
||||
default: unknown extends Defaults["minWidth"] ? string | number : Defaults["minWidth"] | NonNullable<string | number>;
|
||||
};
|
||||
width: unknown extends Defaults["width"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["width"] ? string | number : string | number | Defaults["width"]>;
|
||||
default: unknown extends Defaults["width"] ? string | number : Defaults["width"] | NonNullable<string | number>;
|
||||
};
|
||||
location: unknown extends Defaults["location"] ? PropType<import("../../util/index.js").Anchor | null> : {
|
||||
type: PropType<unknown extends Defaults["location"] ? import("../../util/index.js").Anchor | null : Defaults["location"] | import("../../util/index.js").Anchor | null>;
|
||||
default: unknown extends Defaults["location"] ? import("../../util/index.js").Anchor | null : Defaults["location"] | NonNullable<import("../../util/index.js").Anchor | null>;
|
||||
};
|
||||
position: unknown extends Defaults["position"] ? {
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["position"] ? "absolute" | "fixed" | "relative" | "static" | "sticky" : "absolute" | "fixed" | "relative" | "static" | "sticky" | Defaults["position"]>;
|
||||
default: unknown extends Defaults["position"] ? "absolute" | "fixed" | "relative" | "static" | "sticky" : Defaults["position"] | NonNullable<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
};
|
||||
avatar: unknown extends Defaults["avatar"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["avatar"] ? string : string | Defaults["avatar"]>;
|
||||
default: unknown extends Defaults["avatar"] ? string : string | Defaults["avatar"];
|
||||
};
|
||||
bgColor: unknown extends Defaults["bgColor"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["bgColor"] ? string : string | Defaults["bgColor"]>;
|
||||
default: unknown extends Defaults["bgColor"] ? string : string | Defaults["bgColor"];
|
||||
};
|
||||
color: unknown extends Defaults["color"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
|
||||
default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
|
||||
};
|
||||
icon: unknown extends Defaults["icon"] ? PropType<IconValue> : {
|
||||
type: PropType<unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | IconValue>;
|
||||
default: unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | NonNullable<IconValue>;
|
||||
};
|
||||
lines: unknown extends Defaults["lines"] ? PropType<"one" | "three" | "two"> : {
|
||||
type: PropType<unknown extends Defaults["lines"] ? "one" | "three" | "two" : "one" | "three" | "two" | Defaults["lines"]>;
|
||||
default: unknown extends Defaults["lines"] ? "one" | "three" | "two" : Defaults["lines"] | NonNullable<"one" | "three" | "two">;
|
||||
};
|
||||
stacked: unknown extends Defaults["stacked"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["stacked"] ? boolean : boolean | Defaults["stacked"]>;
|
||||
default: unknown extends Defaults["stacked"] ? boolean : boolean | Defaults["stacked"];
|
||||
};
|
||||
sticky: unknown extends Defaults["sticky"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["sticky"] ? boolean : boolean | Defaults["sticky"]>;
|
||||
default: unknown extends Defaults["sticky"] ? boolean : boolean | Defaults["sticky"];
|
||||
};
|
||||
text: unknown extends Defaults["text"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["text"] ? string : string | Defaults["text"]>;
|
||||
default: unknown extends Defaults["text"] ? string : string | Defaults["text"];
|
||||
};
|
||||
};
|
||||
export declare const VBanner: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
avatar?: string | undefined;
|
||||
bgColor?: string | undefined;
|
||||
color?: string | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
lines?: "one" | "three" | "two" | undefined;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:actions"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
prepend: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
text: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
actions: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
avatar?: string | undefined;
|
||||
bgColor?: string | undefined;
|
||||
color?: string | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
lines?: "one" | "three" | "two" | undefined;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:actions"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
avatar?: string | undefined;
|
||||
bgColor?: string | undefined;
|
||||
color?: string | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
lines?: "one" | "three" | "two" | undefined;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:actions"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
prepend: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
text: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
actions: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
theme: StringConstructor;
|
||||
class: PropType<import("../../composables/component.js").ClassValue>;
|
||||
style: {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
mobile: Omit<{
|
||||
type: PropType<boolean | null>;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<boolean | null>;
|
||||
default: NonNullable<boolean | null> | null;
|
||||
};
|
||||
mobileBreakpoint: PropType<number | import("../../types.js").DisplayBreakpoint>;
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
density: {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
height: (NumberConstructor | StringConstructor)[];
|
||||
maxHeight: (NumberConstructor | StringConstructor)[];
|
||||
maxWidth: (NumberConstructor | StringConstructor)[];
|
||||
minHeight: (NumberConstructor | StringConstructor)[];
|
||||
minWidth: (NumberConstructor | StringConstructor)[];
|
||||
width: (NumberConstructor | StringConstructor)[];
|
||||
location: PropType<import("../../util/index.js").Anchor | null>;
|
||||
position: {
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
avatar: StringConstructor;
|
||||
bgColor: StringConstructor;
|
||||
color: StringConstructor;
|
||||
icon: PropType<IconValue>;
|
||||
lines: PropType<'one' | 'two' | 'three'>;
|
||||
stacked: BooleanConstructor;
|
||||
sticky: BooleanConstructor;
|
||||
text: StringConstructor;
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
theme: StringConstructor;
|
||||
class: PropType<import("../../composables/component.js").ClassValue>;
|
||||
style: {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
mobile: Omit<{
|
||||
type: PropType<boolean | null>;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<boolean | null>;
|
||||
default: NonNullable<boolean | null> | null;
|
||||
};
|
||||
mobileBreakpoint: PropType<number | import("../../types.js").DisplayBreakpoint>;
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
density: {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
height: (NumberConstructor | StringConstructor)[];
|
||||
maxHeight: (NumberConstructor | StringConstructor)[];
|
||||
maxWidth: (NumberConstructor | StringConstructor)[];
|
||||
minHeight: (NumberConstructor | StringConstructor)[];
|
||||
minWidth: (NumberConstructor | StringConstructor)[];
|
||||
width: (NumberConstructor | StringConstructor)[];
|
||||
location: PropType<import("../../util/index.js").Anchor | null>;
|
||||
position: {
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
avatar: StringConstructor;
|
||||
bgColor: StringConstructor;
|
||||
color: StringConstructor;
|
||||
icon: PropType<IconValue>;
|
||||
lines: PropType<'one' | 'two' | 'three'>;
|
||||
stacked: BooleanConstructor;
|
||||
sticky: BooleanConstructor;
|
||||
text: StringConstructor;
|
||||
}>>;
|
||||
export type VBanner = InstanceType<typeof VBanner>;
|
||||
+141
@@ -0,0 +1,141 @@
|
||||
import { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
|
||||
// Styles
|
||||
import "./VBanner.css";
|
||||
|
||||
// Components
|
||||
import { VBannerActions } from "./VBannerActions.js";
|
||||
import { VBannerText } from "./VBannerText.js";
|
||||
import { VAvatar } from "../VAvatar/index.js";
|
||||
import { VDefaultsProvider } from "../VDefaultsProvider/index.js"; // Composables
|
||||
import { makeBorderProps, useBorder } from "../../composables/border.js";
|
||||
import { useBackgroundColor } from "../../composables/color.js";
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { provideDefaults } from "../../composables/defaults.js";
|
||||
import { makeDensityProps, useDensity } from "../../composables/density.js";
|
||||
import { makeDimensionProps, useDimension } from "../../composables/dimensions.js";
|
||||
import { makeDisplayProps, useDisplay } from "../../composables/display.js";
|
||||
import { makeElevationProps, useElevation } from "../../composables/elevation.js";
|
||||
import { IconValue } from "../../composables/icons.js";
|
||||
import { makeLocationProps, useLocation } from "../../composables/location.js";
|
||||
import { makePositionProps, usePosition } from "../../composables/position.js";
|
||||
import { makeRoundedProps, useRounded } from "../../composables/rounded.js";
|
||||
import { makeTagProps } from "../../composables/tag.js";
|
||||
import { makeThemeProps, provideTheme } from "../../composables/theme.js"; // Utilities
|
||||
import { toRef } from 'vue';
|
||||
import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
|
||||
export const makeVBannerProps = propsFactory({
|
||||
avatar: String,
|
||||
bgColor: String,
|
||||
color: String,
|
||||
icon: IconValue,
|
||||
lines: String,
|
||||
stacked: Boolean,
|
||||
sticky: Boolean,
|
||||
text: String,
|
||||
...makeBorderProps(),
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...makeDimensionProps(),
|
||||
...makeDisplayProps({
|
||||
mobile: null
|
||||
}),
|
||||
...makeElevationProps(),
|
||||
...makeLocationProps(),
|
||||
...makePositionProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeTagProps(),
|
||||
...makeThemeProps()
|
||||
}, 'VBanner');
|
||||
export const VBanner = genericComponent()({
|
||||
name: 'VBanner',
|
||||
props: makeVBannerProps(),
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
const {
|
||||
backgroundColorClasses,
|
||||
backgroundColorStyles
|
||||
} = useBackgroundColor(() => props.bgColor);
|
||||
const {
|
||||
borderClasses
|
||||
} = useBorder(props);
|
||||
const {
|
||||
densityClasses
|
||||
} = useDensity(props);
|
||||
const {
|
||||
displayClasses,
|
||||
mobile
|
||||
} = useDisplay(props);
|
||||
const {
|
||||
dimensionStyles
|
||||
} = useDimension(props);
|
||||
const {
|
||||
elevationClasses
|
||||
} = useElevation(props);
|
||||
const {
|
||||
locationStyles
|
||||
} = useLocation(props);
|
||||
const {
|
||||
positionClasses
|
||||
} = usePosition(props);
|
||||
const {
|
||||
roundedClasses
|
||||
} = useRounded(props);
|
||||
const {
|
||||
themeClasses
|
||||
} = provideTheme(props);
|
||||
const color = toRef(() => props.color);
|
||||
const density = toRef(() => props.density);
|
||||
provideDefaults({
|
||||
VBannerActions: {
|
||||
color,
|
||||
density
|
||||
}
|
||||
});
|
||||
useRender(() => {
|
||||
const hasText = !!(props.text || slots.text);
|
||||
const hasPrependMedia = !!(props.avatar || props.icon);
|
||||
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
||||
return _createVNode(props.tag, {
|
||||
"class": _normalizeClass(['v-banner', {
|
||||
'v-banner--stacked': props.stacked || mobile.value,
|
||||
'v-banner--sticky': props.sticky,
|
||||
[`v-banner--${props.lines}-line`]: !!props.lines
|
||||
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class]),
|
||||
"style": _normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]),
|
||||
"role": "banner"
|
||||
}, {
|
||||
default: () => [hasPrepend && _createElementVNode("div", {
|
||||
"key": "prepend",
|
||||
"class": "v-banner__prepend"
|
||||
}, [!slots.prepend ? _createVNode(VAvatar, {
|
||||
"key": "prepend-avatar",
|
||||
"color": color.value,
|
||||
"density": density.value,
|
||||
"icon": props.icon,
|
||||
"image": props.avatar
|
||||
}, null) : _createVNode(VDefaultsProvider, {
|
||||
"key": "prepend-defaults",
|
||||
"disabled": !hasPrependMedia,
|
||||
"defaults": {
|
||||
VAvatar: {
|
||||
color: color.value,
|
||||
density: density.value,
|
||||
icon: props.icon,
|
||||
image: props.avatar
|
||||
}
|
||||
}
|
||||
}, slots.prepend)]), _createElementVNode("div", {
|
||||
"class": "v-banner__content"
|
||||
}, [hasText && _createVNode(VBannerText, {
|
||||
"key": "text"
|
||||
}, {
|
||||
default: () => [slots.text?.() ?? props.text]
|
||||
}), slots.default?.()]), slots.actions && _createVNode(VBannerActions, {
|
||||
"key": "actions"
|
||||
}, slots.actions)]
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VBanner.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+109
@@ -0,0 +1,109 @@
|
||||
@use 'sass:math'
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-banner
|
||||
display: grid
|
||||
flex: 1 1
|
||||
font-size: $banner-font-size
|
||||
grid-template-areas: "prepend content actions"
|
||||
grid-template-columns: max-content auto max-content
|
||||
grid-template-rows: max-content max-content
|
||||
line-height: $banner-line-height
|
||||
overflow: hidden
|
||||
padding-inline: $banner-padding-inline-start $banner-padding-inline-end
|
||||
padding-top: $banner-padding * 2
|
||||
padding-bottom: $banner-padding * 2
|
||||
position: relative
|
||||
width: $banner-width
|
||||
|
||||
@include tools.border($banner-border...)
|
||||
@include tools.elevation($banner-elevation)
|
||||
@include tools.position($banner-positions)
|
||||
@include tools.rounded($banner-border-radius)
|
||||
@include tools.theme($banner-theme...)
|
||||
|
||||
&--rounded
|
||||
@include tools.rounded($banner-rounded-border-radius)
|
||||
|
||||
&--stacked
|
||||
&:not(.v-banner--one-line)
|
||||
grid-template-areas: "prepend content" ". actions"
|
||||
|
||||
.v-banner-text
|
||||
padding-inline-end: $banner-stacked-padding-inline-end
|
||||
|
||||
@at-root
|
||||
@include tools.density('v-banner', $banner-density) using ($modifier)
|
||||
.v-banner-actions
|
||||
margin-bottom: -($banner-padding + $modifier)
|
||||
|
||||
&.v-banner--one-line
|
||||
padding-top: $banner-padding + $modifier
|
||||
padding-bottom: $banner-padding + $modifier
|
||||
|
||||
.v-banner-actions
|
||||
margin-bottom: 0
|
||||
|
||||
@if ($modifier == 0px)
|
||||
&.v-banner--one-line
|
||||
padding-top: $banner-padding + $modifier + 2
|
||||
|
||||
&.v-banner--two-line
|
||||
padding-top: $banner-padding * 2 + $modifier
|
||||
padding-bottom: $banner-padding * 2 + $modifier
|
||||
|
||||
&.v-banner--three-line
|
||||
padding-top: $banner-padding * 3 + $modifier
|
||||
padding-bottom: $banner-padding * 2 + $modifier
|
||||
|
||||
&:not(.v-banner--one-line),
|
||||
&.v-banner--two-line,
|
||||
&.v-banner--three-line
|
||||
.v-banner-actions
|
||||
margin-top: $banner-action-margin + $modifier
|
||||
|
||||
&--sticky
|
||||
top: $banner-sticky-top
|
||||
z-index: $banner-sticky-z-index
|
||||
|
||||
.v-banner__content
|
||||
align-items: center
|
||||
display: flex
|
||||
grid-area: content
|
||||
|
||||
.v-banner__prepend
|
||||
align-self: flex-start
|
||||
grid-area: prepend
|
||||
margin-inline-end: $banner-prepend-margin-end
|
||||
|
||||
.v-banner-actions
|
||||
align-self: flex-end
|
||||
display: flex
|
||||
flex: 0 1
|
||||
grid-area: actions
|
||||
justify-content: flex-end
|
||||
|
||||
.v-banner--two-line &,
|
||||
.v-banner--three-line &
|
||||
margin-top: $banner-actions-line-margin-top
|
||||
|
||||
.v-banner-text
|
||||
-webkit-box-orient: vertical
|
||||
display: -webkit-box
|
||||
padding-inline-end: $banner-text-padding-end
|
||||
overflow: hidden
|
||||
|
||||
.v-banner--one-line &
|
||||
-webkit-line-clamp: 1
|
||||
|
||||
.v-banner--two-line &
|
||||
-webkit-line-clamp: 2
|
||||
|
||||
.v-banner--three-line &
|
||||
-webkit-line-clamp: 3
|
||||
|
||||
.v-banner--two-line &,
|
||||
.v-banner--three-line &
|
||||
align-self: flex-start
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
export declare const makeVBannerActionsProps: <Defaults extends {
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
color?: unknown;
|
||||
density?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
color: unknown extends Defaults["color"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
|
||||
default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
|
||||
};
|
||||
density: unknown extends Defaults["density"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["density"] ? string : string | Defaults["density"]>;
|
||||
default: unknown extends Defaults["density"] ? string : string | Defaults["density"];
|
||||
};
|
||||
};
|
||||
export declare const VBannerActions: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
class?: any;
|
||||
color?: string | undefined;
|
||||
density?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
class?: any;
|
||||
color?: string | undefined;
|
||||
density?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
class?: any;
|
||||
color?: string | undefined;
|
||||
density?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
color: StringConstructor;
|
||||
density: StringConstructor;
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
color: StringConstructor;
|
||||
density: StringConstructor;
|
||||
}>>;
|
||||
export type VBannerActions = InstanceType<typeof VBannerActions>;
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode } from "vue";
|
||||
// Composables
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { provideDefaults } from "../../composables/defaults.js"; // Utilities
|
||||
import { genericComponent, propsFactory, useRender } from "../../util/index.js";
|
||||
export const makeVBannerActionsProps = propsFactory({
|
||||
color: String,
|
||||
density: String,
|
||||
...makeComponentProps()
|
||||
}, 'VBannerActions');
|
||||
export const VBannerActions = genericComponent()({
|
||||
name: 'VBannerActions',
|
||||
props: makeVBannerActionsProps(),
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
provideDefaults({
|
||||
VBtn: {
|
||||
color: props.color,
|
||||
density: props.density,
|
||||
slim: true,
|
||||
variant: 'text'
|
||||
}
|
||||
});
|
||||
useRender(() => _createElementVNode("div", {
|
||||
"class": _normalizeClass(['v-banner-actions', props.class]),
|
||||
"style": _normalizeStyle(props.style)
|
||||
}, [slots.default?.()]));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VBannerActions.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VBannerActions.js","names":["makeComponentProps","provideDefaults","genericComponent","propsFactory","useRender","makeVBannerActionsProps","color","String","density","VBannerActions","name","props","setup","slots","VBtn","slim","variant","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","default"],"sources":["../../../src/components/VBanner/VBannerActions.tsx"],"sourcesContent":["// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBannerActionsProps = propsFactory({\n color: String,\n density: String,\n\n ...makeComponentProps(),\n}, 'VBannerActions')\n\nexport const VBannerActions = genericComponent()({\n name: 'VBannerActions',\n\n props: makeVBannerActionsProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: props.color,\n density: props.density,\n slim: true,\n variant: 'text',\n },\n })\n\n useRender(() => (\n <div\n class={[\n 'v-banner-actions',\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VBannerActions = InstanceType<typeof VBannerActions>\n"],"mappings":";AAAA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,eAAe,yCAExB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CAAC;EAClDG,KAAK,EAAEC,MAAM;EACbC,OAAO,EAAED,MAAM;EAEf,GAAGP,kBAAkB,CAAC;AACxB,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMS,cAAc,GAAGP,gBAAgB,CAAC,CAAC,CAAC;EAC/CQ,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEN,uBAAuB,CAAC,CAAC;EAEhCO,KAAKA,CAAED,KAAK,EAAE;IAAEE;EAAM,CAAC,EAAE;IACvBZ,eAAe,CAAC;MACda,IAAI,EAAE;QACJR,KAAK,EAAEK,KAAK,CAACL,KAAK;QAClBE,OAAO,EAAEG,KAAK,CAACH,OAAO;QACtBO,IAAI,EAAE,IAAI;QACVC,OAAO,EAAE;MACX;IACF,CAAC,CAAC;IAEFZ,SAAS,CAAC,MAAAa,mBAAA;MAAA,SAAAC,eAAA,CAEC,CACL,kBAAkB,EAClBP,KAAK,CAACQ,KAAK,CACZ;MAAA,SAAAC,eAAA,CACOT,KAAK,CAACU,KAAK;IAAA,IAEjBR,KAAK,CAACS,OAAO,GAAG,CAAC,EAEtB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
export declare const VBannerText: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string;
|
||||
} & {
|
||||
class?: any;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string;
|
||||
} & {
|
||||
class?: any;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string;
|
||||
} & {
|
||||
class?: any;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
tag: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
tag: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
}>>;
|
||||
export type VBannerText = InstanceType<typeof VBannerText>;
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// Utilities
|
||||
import { createSimpleFunctional } from "../../util/index.js";
|
||||
export const VBannerText = createSimpleFunctional('v-banner-text');
|
||||
//# sourceMappingURL=VBannerText.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VBannerText.js","names":["createSimpleFunctional","VBannerText"],"sources":["../../../src/components/VBanner/VBannerText.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VBannerText = createSimpleFunctional('v-banner-text')\n\nexport type VBannerText = InstanceType<typeof VBannerText>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,WAAW,GAAGD,sBAAsB,CAAC,eAAe,CAAC","ignoreList":[]}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
@use 'sass:map';
|
||||
@use '../../styles/settings';
|
||||
@use '../../styles/tools';
|
||||
|
||||
// Defaults
|
||||
$banner-action-margin: 20px !default;
|
||||
$banner-actions-line-margin-top: 20px !default;
|
||||
$banner-background: rgb(var(--v-theme-surface)) !default;
|
||||
$banner-border-color: settings.$border-color-root !default;
|
||||
$banner-border-radius: map.get(settings.$rounded, 0) !default;
|
||||
$banner-border-style: settings.$border-style-root !default;
|
||||
$banner-border-thin-width: thin !default;
|
||||
$banner-border-width: 0 0 thin 0 !default;
|
||||
$banner-color: tools.theme-color('on-surface', var(--v-high-emphasis-opacity)) !default;
|
||||
$banner-density: ('default': 0, 'comfortable': -1, 'compact': -2) !default;
|
||||
$banner-elevation: 0 !default;
|
||||
$banner-font-size: tools.map-deep-get(settings.$typography, 'body-medium', 'size') !default;
|
||||
$banner-line-height: tools.map-deep-get(settings.$typography, 'label-large', 'line-height') !default;
|
||||
$banner-padding-inline-start: 16px !default;
|
||||
$banner-padding-inline-end: 8px !default;
|
||||
$banner-padding: 8px !default;
|
||||
$banner-positions: absolute fixed sticky !default;
|
||||
$banner-prepend-margin-end: 24px !default;
|
||||
$banner-rounded-border-radius: settings.$border-radius-root !default;
|
||||
$banner-stacked-padding-inline-end: 36px !default;
|
||||
$banner-sticky-top: 0 !default;
|
||||
$banner-sticky-z-index: 1 !default;
|
||||
$banner-text-padding-end: 90px !default;
|
||||
$banner-width: 100% !default;
|
||||
|
||||
// Mobile
|
||||
$banner-mobile-avatar-margin-end: 16px !default;
|
||||
$banner-mobile-content-padding-end: 8px !default;
|
||||
$banner-mobile-padding-end: 8px !default;
|
||||
$banner-mobile-padding-start: 16px !default;
|
||||
|
||||
$banner-border: (
|
||||
$banner-border-color,
|
||||
$banner-border-style,
|
||||
$banner-border-width,
|
||||
$banner-border-thin-width
|
||||
) !default;
|
||||
|
||||
$banner-theme: (
|
||||
$banner-background,
|
||||
$banner-color
|
||||
) !default;
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
export { VBanner } from './VBanner.js';
|
||||
export { VBannerActions } from './VBannerActions.js';
|
||||
export { VBannerText } from './VBannerText.js';
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
export { VBanner } from "./VBanner.js";
|
||||
export { VBannerActions } from "./VBannerActions.js";
|
||||
export { VBannerText } from "./VBannerText.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VBanner","VBannerActions","VBannerText"],"sources":["../../../src/components/VBanner/index.ts"],"sourcesContent":["export { VBanner } from './VBanner'\nexport { VBannerActions } from './VBannerActions'\nexport { VBannerText } from './VBannerText'\n"],"mappings":"SAASA,OAAO;AAAA,SACPC,cAAc;AAAA,SACdC,WAAW","ignoreList":[]}
|
||||
Generated
Vendored
+67
@@ -0,0 +1,67 @@
|
||||
@layer vuetify-components {
|
||||
.v-bottom-navigation {
|
||||
display: flex;
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
transition: transform, color, 0.2s, 0.1s cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
.v-bottom-navigation {
|
||||
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
}
|
||||
.v-bottom-navigation--border {
|
||||
border-width: thin;
|
||||
box-shadow: none;
|
||||
}
|
||||
.v-bottom-navigation {
|
||||
border-radius: 0;
|
||||
}
|
||||
.v-bottom-navigation {
|
||||
background: rgb(var(--v-theme-surface));
|
||||
color: color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-high-emphasis-opacity) * 100%), transparent);
|
||||
}
|
||||
.v-bottom-navigation--active {
|
||||
box-shadow: 0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity, 0.3)), 0px 2px 6px 2px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity, 0.15));
|
||||
--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent);
|
||||
}
|
||||
.v-bottom-navigation__content {
|
||||
display: flex;
|
||||
flex: none;
|
||||
font-size: 0.6875rem;
|
||||
justify-content: center;
|
||||
transition: inherit;
|
||||
width: 100%;
|
||||
}
|
||||
.v-bottom-navigation .v-bottom-navigation__content > .v-btn {
|
||||
font-size: inherit;
|
||||
height: 100%;
|
||||
max-width: 168px;
|
||||
min-width: 80px;
|
||||
text-transform: none;
|
||||
transition: inherit;
|
||||
width: auto;
|
||||
}
|
||||
.v-bottom-navigation .v-bottom-navigation__content > .v-btn {
|
||||
border-radius: 0;
|
||||
}
|
||||
.v-bottom-navigation .v-bottom-navigation__content > .v-btn .v-btn__content,
|
||||
.v-bottom-navigation .v-bottom-navigation__content > .v-btn .v-btn__icon {
|
||||
transition: inherit;
|
||||
}
|
||||
.v-bottom-navigation .v-bottom-navigation__content > .v-btn .v-btn__icon {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
.v-bottom-navigation--grow .v-bottom-navigation__content > .v-btn {
|
||||
flex-basis: 0;
|
||||
flex-grow: 1;
|
||||
}
|
||||
.v-bottom-navigation--shift .v-bottom-navigation__content .v-btn:not(.v-btn--selected) .v-btn__content > span {
|
||||
transition: inherit;
|
||||
opacity: 0;
|
||||
}
|
||||
.v-bottom-navigation--shift .v-bottom-navigation__content .v-btn:not(.v-btn--selected) .v-btn__content {
|
||||
transform: translateY(0.5rem);
|
||||
}
|
||||
}
|
||||
Generated
Vendored
+512
@@ -0,0 +1,512 @@
|
||||
|
||||
import type { GenericProps } from '../../util/index.js';
|
||||
export declare const makeVBottomNavigationProps: <Defaults extends {
|
||||
theme?: unknown;
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
name?: unknown;
|
||||
order?: unknown;
|
||||
absolute?: unknown;
|
||||
border?: unknown;
|
||||
density?: unknown;
|
||||
elevation?: unknown;
|
||||
rounded?: unknown;
|
||||
tile?: unknown;
|
||||
tag?: unknown;
|
||||
modelValue?: unknown;
|
||||
multiple?: unknown;
|
||||
mandatory?: unknown;
|
||||
max?: unknown;
|
||||
selectedClass?: unknown;
|
||||
disabled?: unknown;
|
||||
baseColor?: unknown;
|
||||
bgColor?: unknown;
|
||||
color?: unknown;
|
||||
grow?: unknown;
|
||||
mode?: unknown;
|
||||
height?: unknown;
|
||||
active?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
theme: unknown extends Defaults["theme"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
|
||||
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
||||
};
|
||||
class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
name: unknown extends Defaults["name"] ? Omit<{
|
||||
type: StringConstructor;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string>;
|
||||
default: string;
|
||||
} : Omit<Omit<{
|
||||
type: StringConstructor;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["name"] ? string : string | Defaults["name"]>;
|
||||
default: unknown extends Defaults["name"] ? string : string | Defaults["name"];
|
||||
};
|
||||
order: unknown extends Defaults["order"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["order"] ? string | number : string | number | Defaults["order"]>;
|
||||
default: unknown extends Defaults["order"] ? string | number : Defaults["order"] | NonNullable<string | number>;
|
||||
};
|
||||
absolute: unknown extends Defaults["absolute"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["absolute"] ? boolean : boolean | Defaults["absolute"]>;
|
||||
default: unknown extends Defaults["absolute"] ? boolean : boolean | Defaults["absolute"];
|
||||
};
|
||||
border: unknown extends Defaults["border"] ? (BooleanConstructor | NumberConstructor | StringConstructor)[] : {
|
||||
type: import("vue").PropType<unknown extends Defaults["border"] ? string | number | boolean : string | number | boolean | Defaults["border"]>;
|
||||
default: unknown extends Defaults["border"] ? string | number | boolean : Defaults["border"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
density: unknown extends Defaults["density"] ? {
|
||||
type: import("vue").PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
|
||||
default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
|
||||
};
|
||||
elevation: unknown extends Defaults["elevation"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["elevation"] ? string | number : string | number | Defaults["elevation"]>;
|
||||
default: unknown extends Defaults["elevation"] ? string | number : Defaults["elevation"] | NonNullable<string | number>;
|
||||
};
|
||||
rounded: unknown extends Defaults["rounded"] ? {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>;
|
||||
default: unknown extends Defaults["rounded"] ? string | number | boolean : Defaults["rounded"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
tile: unknown extends Defaults["tile"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>;
|
||||
default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"];
|
||||
};
|
||||
tag: unknown extends Defaults["tag"] ? Omit<{
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
} : Omit<Omit<{
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | Defaults["tag"] | import("../../util/index.js").JSXComponent>;
|
||||
default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
modelValue: unknown extends Defaults["modelValue"] ? {
|
||||
type: null;
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: null;
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["modelValue"] ? any : any>;
|
||||
default: unknown extends Defaults["modelValue"] ? any : any;
|
||||
};
|
||||
multiple: unknown extends Defaults["multiple"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["multiple"] ? boolean : boolean | Defaults["multiple"]>;
|
||||
default: unknown extends Defaults["multiple"] ? boolean : boolean | Defaults["multiple"];
|
||||
};
|
||||
mandatory: unknown extends Defaults["mandatory"] ? import("vue").PropType<"force" | boolean> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["mandatory"] ? "force" | boolean : "force" | boolean | Defaults["mandatory"]>;
|
||||
default: unknown extends Defaults["mandatory"] ? "force" | boolean : Defaults["mandatory"] | NonNullable<"force" | boolean>;
|
||||
};
|
||||
max: unknown extends Defaults["max"] ? NumberConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["max"] ? number : number | Defaults["max"]>;
|
||||
default: unknown extends Defaults["max"] ? number : number | Defaults["max"];
|
||||
};
|
||||
selectedClass: unknown extends Defaults["selectedClass"] ? {
|
||||
type: import("vue").PropType<string>;
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<string>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["selectedClass"] ? string : string | Defaults["selectedClass"]>;
|
||||
default: unknown extends Defaults["selectedClass"] ? string : string | Defaults["selectedClass"];
|
||||
};
|
||||
disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>;
|
||||
default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"];
|
||||
};
|
||||
baseColor: unknown extends Defaults["baseColor"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"]>;
|
||||
default: unknown extends Defaults["baseColor"] ? string : string | Defaults["baseColor"];
|
||||
};
|
||||
bgColor: unknown extends Defaults["bgColor"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["bgColor"] ? string : string | Defaults["bgColor"]>;
|
||||
default: unknown extends Defaults["bgColor"] ? string : string | Defaults["bgColor"];
|
||||
};
|
||||
color: unknown extends Defaults["color"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
|
||||
default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
|
||||
};
|
||||
grow: unknown extends Defaults["grow"] ? BooleanConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["grow"] ? boolean : boolean | Defaults["grow"]>;
|
||||
default: unknown extends Defaults["grow"] ? boolean : boolean | Defaults["grow"];
|
||||
};
|
||||
mode: unknown extends Defaults["mode"] ? {
|
||||
type: StringConstructor;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: StringConstructor;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["mode"] ? string : string | Defaults["mode"]>;
|
||||
default: unknown extends Defaults["mode"] ? string : string | Defaults["mode"];
|
||||
};
|
||||
height: unknown extends Defaults["height"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["height"] ? string | number : string | number | Defaults["height"]>;
|
||||
default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable<string | number>;
|
||||
};
|
||||
active: unknown extends Defaults["active"] ? {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
} : Omit<{
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["active"] ? boolean : boolean | Defaults["active"]>;
|
||||
default: unknown extends Defaults["active"] ? boolean : boolean | Defaults["active"];
|
||||
};
|
||||
};
|
||||
export declare const VBottomNavigation: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
name: string;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
multiple: boolean;
|
||||
selectedClass: string;
|
||||
disabled: boolean;
|
||||
grow: boolean;
|
||||
height: string | number;
|
||||
active: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
mandatory?: "force" | boolean | undefined;
|
||||
max?: number | undefined;
|
||||
baseColor?: string | undefined;
|
||||
bgColor?: string | undefined;
|
||||
color?: string | undefined;
|
||||
mode?: string | undefined;
|
||||
} & {
|
||||
"onUpdate:active"?: ((value: any) => any) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<{
|
||||
'update:active': (value: any) => true;
|
||||
'update:modelValue': (value: any) => true;
|
||||
}, "$children" | "modelValue" | "update:modelValue" | "v-slot:default" | "v-slots">, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
name: string;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
multiple: boolean;
|
||||
selectedClass: string;
|
||||
disabled: boolean;
|
||||
grow: boolean;
|
||||
height: string | number;
|
||||
active: boolean;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
name: string;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
multiple: boolean;
|
||||
selectedClass: string;
|
||||
disabled: boolean;
|
||||
grow: boolean;
|
||||
height: string | number;
|
||||
active: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
mandatory?: "force" | boolean | undefined;
|
||||
max?: number | undefined;
|
||||
baseColor?: string | undefined;
|
||||
bgColor?: string | undefined;
|
||||
color?: string | undefined;
|
||||
mode?: string | undefined;
|
||||
} & {
|
||||
"onUpdate:active"?: ((value: any) => any) | undefined;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
name: string;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
multiple: boolean;
|
||||
selectedClass: string;
|
||||
disabled: boolean;
|
||||
grow: boolean;
|
||||
height: string | number;
|
||||
active: boolean;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
name: string;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
multiple: boolean;
|
||||
selectedClass: string;
|
||||
disabled: boolean;
|
||||
grow: boolean;
|
||||
height: string | number;
|
||||
active: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
mandatory?: "force" | boolean | undefined;
|
||||
max?: number | undefined;
|
||||
baseColor?: string | undefined;
|
||||
bgColor?: string | undefined;
|
||||
color?: string | undefined;
|
||||
mode?: string | undefined;
|
||||
} & {
|
||||
"onUpdate:active"?: ((value: any) => any) | undefined;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<{
|
||||
'update:active': (value: any) => true;
|
||||
'update:modelValue': (value: any) => true;
|
||||
}, "$children" | "modelValue" | "update:modelValue" | "v-slot:default" | "v-slots">, string, {
|
||||
style: import("vue").StyleValue;
|
||||
name: string;
|
||||
order: string | number;
|
||||
absolute: boolean;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
multiple: boolean;
|
||||
selectedClass: string;
|
||||
disabled: boolean;
|
||||
grow: boolean;
|
||||
height: string | number;
|
||||
active: boolean;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new <T>(props: {
|
||||
modelValue?: T;
|
||||
'onUpdate:modelValue'?: (value: T) => void;
|
||||
}, slots: {
|
||||
default: never;
|
||||
}) => GenericProps<typeof props, typeof slots>) & import("../../util/index.js").FilterPropsOptions<{
|
||||
theme: StringConstructor;
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
name: Omit<{
|
||||
type: StringConstructor;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string>;
|
||||
default: string;
|
||||
};
|
||||
order: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
absolute: BooleanConstructor;
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
density: {
|
||||
type: import("vue").PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: Omit<{
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
modelValue: {
|
||||
type: null;
|
||||
default: undefined;
|
||||
};
|
||||
multiple: BooleanConstructor;
|
||||
mandatory: import("vue").PropType<"force" | boolean>;
|
||||
max: NumberConstructor;
|
||||
selectedClass: {
|
||||
type: import("vue").PropType<string>;
|
||||
default: string;
|
||||
};
|
||||
disabled: BooleanConstructor;
|
||||
baseColor: StringConstructor;
|
||||
bgColor: StringConstructor;
|
||||
color: StringConstructor;
|
||||
grow: BooleanConstructor;
|
||||
mode: {
|
||||
type: StringConstructor;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
height: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
active: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
theme: StringConstructor;
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
name: Omit<{
|
||||
type: StringConstructor;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string>;
|
||||
default: string;
|
||||
};
|
||||
order: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
absolute: BooleanConstructor;
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
density: {
|
||||
type: import("vue").PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: Omit<{
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
modelValue: {
|
||||
type: null;
|
||||
default: undefined;
|
||||
};
|
||||
multiple: BooleanConstructor;
|
||||
mandatory: import("vue").PropType<"force" | boolean>;
|
||||
max: NumberConstructor;
|
||||
selectedClass: {
|
||||
type: import("vue").PropType<string>;
|
||||
default: string;
|
||||
};
|
||||
disabled: BooleanConstructor;
|
||||
baseColor: StringConstructor;
|
||||
bgColor: StringConstructor;
|
||||
color: StringConstructor;
|
||||
grow: BooleanConstructor;
|
||||
mode: {
|
||||
type: StringConstructor;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
height: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
default: number;
|
||||
};
|
||||
active: {
|
||||
type: BooleanConstructor;
|
||||
default: boolean;
|
||||
};
|
||||
}>>;
|
||||
export type VBottomNavigation = InstanceType<typeof VBottomNavigation>;
|
||||
Generated
Vendored
+131
@@ -0,0 +1,131 @@
|
||||
import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from "vue";
|
||||
// Styles
|
||||
import "./VBottomNavigation.css";
|
||||
|
||||
// Components
|
||||
import { VBtnToggleSymbol } from "../VBtnToggle/VBtnToggle.js"; // Composables
|
||||
import { makeBorderProps, useBorder } from "../../composables/border.js";
|
||||
import { useBackgroundColor } from "../../composables/color.js";
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { provideDefaults } from "../../composables/defaults.js";
|
||||
import { makeDensityProps, useDensity } from "../../composables/density.js";
|
||||
import { makeElevationProps, useElevation } from "../../composables/elevation.js";
|
||||
import { makeGroupProps, useGroup } from "../../composables/group.js";
|
||||
import { makeLayoutItemProps, useLayoutItem } from "../../composables/layout.js";
|
||||
import { useProxiedModel } from "../../composables/proxiedModel.js";
|
||||
import { makeRoundedProps, useRounded } from "../../composables/rounded.js";
|
||||
import { useSsrBoot } from "../../composables/ssrBoot.js";
|
||||
import { makeTagProps } from "../../composables/tag.js";
|
||||
import { makeThemeProps, useTheme } from "../../composables/theme.js"; // Utilities
|
||||
import { computed, toRef } from 'vue';
|
||||
import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
|
||||
export const makeVBottomNavigationProps = propsFactory({
|
||||
baseColor: String,
|
||||
bgColor: String,
|
||||
color: String,
|
||||
grow: Boolean,
|
||||
mode: {
|
||||
type: String,
|
||||
validator: v => !v || ['horizontal', 'shift'].includes(v)
|
||||
},
|
||||
height: {
|
||||
type: [Number, String],
|
||||
default: 56
|
||||
},
|
||||
active: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
...makeBorderProps(),
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...makeElevationProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeLayoutItemProps({
|
||||
name: 'bottom-navigation'
|
||||
}),
|
||||
...makeTagProps({
|
||||
tag: 'header'
|
||||
}),
|
||||
...makeGroupProps({
|
||||
selectedClass: 'v-btn--selected'
|
||||
}),
|
||||
...makeThemeProps()
|
||||
}, 'VBottomNavigation');
|
||||
export const VBottomNavigation = genericComponent()({
|
||||
name: 'VBottomNavigation',
|
||||
props: makeVBottomNavigationProps(),
|
||||
emits: {
|
||||
'update:active': value => true,
|
||||
'update:modelValue': value => true
|
||||
},
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
const {
|
||||
themeClasses
|
||||
} = useTheme();
|
||||
const {
|
||||
borderClasses
|
||||
} = useBorder(props);
|
||||
const {
|
||||
backgroundColorClasses,
|
||||
backgroundColorStyles
|
||||
} = useBackgroundColor(() => props.bgColor);
|
||||
const {
|
||||
densityClasses
|
||||
} = useDensity(props);
|
||||
const {
|
||||
elevationClasses
|
||||
} = useElevation(props);
|
||||
const {
|
||||
roundedClasses
|
||||
} = useRounded(props);
|
||||
const {
|
||||
ssrBootStyles
|
||||
} = useSsrBoot();
|
||||
const height = computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));
|
||||
const isActive = useProxiedModel(props, 'active', props.active);
|
||||
const {
|
||||
layoutItemStyles
|
||||
} = useLayoutItem({
|
||||
id: props.name,
|
||||
order: computed(() => parseInt(props.order, 10)),
|
||||
position: toRef(() => 'bottom'),
|
||||
layoutSize: toRef(() => isActive.value ? height.value : 0),
|
||||
elementSize: height,
|
||||
active: isActive,
|
||||
absolute: toRef(() => props.absolute)
|
||||
});
|
||||
useGroup(props, VBtnToggleSymbol);
|
||||
provideDefaults({
|
||||
VBtn: {
|
||||
baseColor: toRef(() => props.baseColor),
|
||||
color: toRef(() => props.color),
|
||||
density: toRef(() => props.density),
|
||||
stacked: toRef(() => props.mode !== 'horizontal'),
|
||||
variant: 'text'
|
||||
}
|
||||
}, {
|
||||
scoped: true
|
||||
});
|
||||
useRender(() => {
|
||||
return _createVNode(props.tag, {
|
||||
"class": _normalizeClass(['v-bottom-navigation', {
|
||||
'v-bottom-navigation--active': isActive.value,
|
||||
'v-bottom-navigation--grow': props.grow,
|
||||
'v-bottom-navigation--shift': props.mode === 'shift'
|
||||
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
|
||||
"style": _normalizeStyle([backgroundColorStyles.value, layoutItemStyles.value, {
|
||||
height: convertToUnit(height.value)
|
||||
}, ssrBootStyles.value, props.style])
|
||||
}, {
|
||||
default: () => [slots.default && _createElementVNode("div", {
|
||||
"class": "v-bottom-navigation__content"
|
||||
}, [slots.default()])]
|
||||
});
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VBottomNavigation.js.map
|
||||
Generated
Vendored
+1
File diff suppressed because one or more lines are too long
Generated
Vendored
+59
@@ -0,0 +1,59 @@
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-bottom-navigation
|
||||
display: flex
|
||||
max-width: 100%
|
||||
overflow: hidden
|
||||
position: absolute
|
||||
transition: $bottom-navigation-transition
|
||||
|
||||
@include tools.border($bottom-navigation-border...)
|
||||
@include tools.rounded($bottom-navigation-border-radius)
|
||||
@include tools.theme($bottom-navigation-theme...)
|
||||
|
||||
&--active
|
||||
@include tools.elevation($bottom-navigation-elevation)
|
||||
|
||||
.v-bottom-navigation__content
|
||||
display: flex
|
||||
flex: none
|
||||
font-size: $bottom-navigation-content-font-size
|
||||
justify-content: center
|
||||
transition: inherit
|
||||
width: 100%
|
||||
|
||||
.v-bottom-navigation &
|
||||
> .v-btn
|
||||
font-size: inherit
|
||||
height: $bottom-navigation-height
|
||||
max-width: $bottom-navigation-max-width
|
||||
min-width: $bottom-navigation-min-width
|
||||
text-transform: $bottom-navigation-text-transform
|
||||
transition: inherit
|
||||
width: auto
|
||||
|
||||
@include tools.rounded(0)
|
||||
|
||||
.v-btn__content,
|
||||
.v-btn__icon
|
||||
transition: inherit
|
||||
|
||||
.v-btn__icon
|
||||
font-size: $bottom-navigation-icon-font-size
|
||||
|
||||
.v-bottom-navigation--grow &
|
||||
> .v-btn
|
||||
flex-basis: 0
|
||||
flex-grow: 1
|
||||
|
||||
.v-bottom-navigation--shift &
|
||||
.v-btn
|
||||
&:not(.v-btn--selected)
|
||||
.v-btn__content > span
|
||||
transition: inherit
|
||||
opacity: 0
|
||||
|
||||
.v-btn__content
|
||||
transform: $bottom-navigation-shift-icon-transform
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
@use 'sass:map';
|
||||
@use 'sass:math';
|
||||
@use '../../styles/settings';
|
||||
@use "../../styles/settings/variables";
|
||||
@use "../../styles/tools/functions";
|
||||
|
||||
// VBottomNavigation
|
||||
$bottom-navigation-background: rgb(var(--v-theme-surface)) !default;
|
||||
$bottom-navigation-border-color: settings.$border-color-root !default;
|
||||
$bottom-navigation-border-radius: 0 !default;
|
||||
$bottom-navigation-border-radius: map.get(settings.$rounded, '0') !default;
|
||||
$bottom-navigation-border-style: settings.$border-style-root !default;
|
||||
$bottom-navigation-border-thin-width: thin !default;
|
||||
$bottom-navigation-border-width: 0 !default;
|
||||
$bottom-navigation-button-color: functions.theme-color('on-surface', var(--v-medium-emphasis-opacity)) !default;
|
||||
$bottom-navigation-color: functions.theme-color('on-surface', var(--v-high-emphasis-opacity)) !default;
|
||||
$bottom-navigation-content-font-size: functions.map-deep-get(variables.$typography, 'label-small', 'size') !default;
|
||||
$bottom-navigation-elevation: 2 !default;
|
||||
$bottom-navigation-flat-elevation: 0 !default;
|
||||
$bottom-navigation-height: 100% !default;
|
||||
$bottom-navigation-icon-font-size: 1.5rem !default;
|
||||
$bottom-navigation-max-width: 168px !default;
|
||||
$bottom-navigation-min-width: 80px !default;
|
||||
$bottom-navigation-opacity: var(--v-medium-emphasis-opacity) !default;
|
||||
$bottom-navigation-shift-content-color: functions.theme-color('on-surface', 0) !default;
|
||||
$bottom-navigation-shift-icon-top: math.div($bottom-navigation-icon-font-size, 3) !default;
|
||||
$bottom-navigation-shift-icon-transform: translateY($bottom-navigation-shift-icon-top) !default;
|
||||
$bottom-navigation-text-transform: none !default;
|
||||
$bottom-navigation-transition: transform, color, .2s, .1s settings.$standard-easing !default;
|
||||
|
||||
// Lists
|
||||
$bottom-navigation-border: (
|
||||
$bottom-navigation-border-color,
|
||||
$bottom-navigation-border-style,
|
||||
$bottom-navigation-border-width,
|
||||
$bottom-navigation-border-thin-width
|
||||
) !default;
|
||||
|
||||
$bottom-navigation-theme: (
|
||||
$bottom-navigation-background,
|
||||
$bottom-navigation-color
|
||||
) !default;
|
||||
+1
@@ -0,0 +1 @@
|
||||
export { VBottomNavigation } from './VBottomNavigation.js';
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
export { VBottomNavigation } from "./VBottomNavigation.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VBottomNavigation"],"sources":["../../../src/components/VBottomNavigation/index.ts"],"sourcesContent":["export { VBottomNavigation } from './VBottomNavigation'\n"],"mappings":"SAASA,iBAAiB","ignoreList":[]}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user