vuetify 3.5.5 → 3.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/dist/_component-variables-labs.sass +2 -0
  2. package/dist/json/attributes.json +352 -40
  3. package/dist/json/importMap-labs.json +16 -8
  4. package/dist/json/importMap.json +122 -118
  5. package/dist/json/tags.json +93 -0
  6. package/dist/json/web-types.json +1084 -52
  7. package/dist/vuetify-labs.css +2121 -1996
  8. package/dist/vuetify-labs.d.ts +1336 -128
  9. package/dist/vuetify-labs.esm.js +332 -81
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +332 -81
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +838 -839
  14. package/dist/vuetify.d.ts +320 -145
  15. package/dist/vuetify.esm.js +87 -75
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +87 -75
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +60 -58
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VApp/index.d.mts +8 -6
  23. package/lib/components/VAutocomplete/VAutocomplete.css +4 -4
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +33 -29
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
  27. package/lib/components/VCheckbox/VCheckbox.mjs +3 -1
  28. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  29. package/lib/components/VCombobox/VCombobox.css +4 -4
  30. package/lib/components/VCombobox/VCombobox.mjs +22 -23
  31. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  32. package/lib/components/VCombobox/VCombobox.sass +1 -1
  33. package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
  34. package/lib/components/VDataIterator/index.d.mts +50 -94
  35. package/lib/components/VDataTable/index.d.mts +214 -1
  36. package/lib/components/VDataTable/index.mjs +1 -0
  37. package/lib/components/VDataTable/index.mjs.map +1 -1
  38. package/lib/components/VExpansionPanel/VExpansionPanel.css +4 -7
  39. package/lib/components/VExpansionPanel/VExpansionPanel.sass +4 -3
  40. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +2 -0
  41. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  42. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +2 -0
  43. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  44. package/lib/components/VExpansionPanel/index.d.mts +27 -0
  45. package/lib/components/VLayout/index.d.mts +8 -6
  46. package/lib/components/VSelect/VSelect.mjs +20 -18
  47. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  48. package/lib/components/VToolbar/VToolbar.css +3 -1
  49. package/lib/components/VToolbar/VToolbar.sass +2 -1
  50. package/lib/components/index.d.mts +279 -106
  51. package/lib/composables/filter.mjs +1 -1
  52. package/lib/composables/filter.mjs.map +1 -1
  53. package/lib/composables/goto.mjs +2 -2
  54. package/lib/composables/goto.mjs.map +1 -1
  55. package/lib/composables/layout.mjs.map +1 -1
  56. package/lib/entry-bundler.mjs +1 -1
  57. package/lib/framework.mjs +1 -1
  58. package/lib/index.d.mts +42 -39
  59. package/lib/labs/VEmptyState/VEmptyState.css +59 -0
  60. package/lib/labs/VEmptyState/VEmptyState.mjs +145 -0
  61. package/lib/labs/VEmptyState/VEmptyState.mjs.map +1 -0
  62. package/lib/labs/VEmptyState/VEmptyState.sass +53 -0
  63. package/lib/labs/VEmptyState/_variables.scss +22 -0
  64. package/lib/labs/VEmptyState/index.d.mts +415 -0
  65. package/lib/labs/VEmptyState/index.mjs +2 -0
  66. package/lib/labs/VEmptyState/index.mjs.map +1 -0
  67. package/lib/labs/VFab/VFab.css +69 -0
  68. package/lib/labs/VFab/VFab.mjs +114 -0
  69. package/lib/labs/VFab/VFab.mjs.map +1 -0
  70. package/lib/labs/VFab/VFab.sass +82 -0
  71. package/lib/labs/VFab/_mixins.scss +22 -0
  72. package/lib/labs/VFab/_variables.scss +33 -0
  73. package/lib/labs/VFab/index.d.mts +656 -0
  74. package/lib/labs/VFab/index.mjs +2 -0
  75. package/lib/labs/VFab/index.mjs.map +1 -0
  76. package/lib/labs/VSparkline/VBarline.mjs +4 -4
  77. package/lib/labs/VSparkline/VBarline.mjs.map +1 -1
  78. package/lib/labs/VSparkline/VTrendline.mjs +6 -2
  79. package/lib/labs/VSparkline/VTrendline.mjs.map +1 -1
  80. package/lib/labs/VSparkline/index.d.mts +12 -0
  81. package/lib/labs/VSparkline/util/line.mjs +2 -0
  82. package/lib/labs/VSparkline/util/line.mjs.map +1 -1
  83. package/lib/labs/components.d.mts +1066 -2
  84. package/lib/labs/components.mjs +2 -0
  85. package/lib/labs/components.mjs.map +1 -1
  86. package/package.json +2 -2
@@ -0,0 +1,145 @@
1
+ import { createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
+ // Styles
3
+ import "./VEmptyState.css";
4
+
5
+ // Components
6
+ import { VBtn } from "../../components/VBtn/index.mjs";
7
+ import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs";
8
+ import { VIcon } from "../../components/VIcon/index.mjs";
9
+ import { VImg } from "../../components/VImg/index.mjs"; // Composables
10
+ import { useBackgroundColor } from "../../composables/color.mjs";
11
+ import { makeComponentProps } from "../../composables/component.mjs";
12
+ import { makeDimensionProps, useDimension } from "../../composables/dimensions.mjs";
13
+ import { IconValue } from "../../composables/icons.mjs";
14
+ import { makeSizeProps } from "../../composables/size.mjs";
15
+ import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
16
+ import { toRef } from 'vue';
17
+ import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
18
+ // Types
19
+ export const makeVEmptyStateProps = propsFactory({
20
+ actionText: String,
21
+ bgColor: String,
22
+ color: String,
23
+ icon: IconValue,
24
+ image: String,
25
+ justify: {
26
+ type: String,
27
+ default: 'center'
28
+ },
29
+ headline: String,
30
+ title: String,
31
+ text: String,
32
+ textWidth: {
33
+ type: [Number, String],
34
+ default: 500
35
+ },
36
+ href: String,
37
+ to: String,
38
+ ...makeComponentProps(),
39
+ ...makeDimensionProps(),
40
+ ...makeSizeProps({
41
+ size: undefined
42
+ }),
43
+ ...makeThemeProps()
44
+ }, 'VEmptyState');
45
+ export const VEmptyState = genericComponent()({
46
+ name: 'VEmptyState',
47
+ props: makeVEmptyStateProps(),
48
+ emits: {
49
+ 'click:action': e => true
50
+ },
51
+ setup(props, _ref) {
52
+ let {
53
+ emit,
54
+ slots
55
+ } = _ref;
56
+ const {
57
+ themeClasses
58
+ } = provideTheme(props);
59
+ const {
60
+ backgroundColorClasses,
61
+ backgroundColorStyles
62
+ } = useBackgroundColor(toRef(props, 'bgColor'));
63
+ const {
64
+ dimensionStyles
65
+ } = useDimension(props);
66
+ function onClickAction(e) {
67
+ emit('click:action', e);
68
+ }
69
+ useRender(() => {
70
+ const hasActions = !!(slots.actions || props.actionText);
71
+ const hasHeadline = !!(slots.headline || props.headline);
72
+ const hasTitle = !!(slots.title || props.title);
73
+ const hasText = !!(slots.text || props.text);
74
+ const hasMedia = !!(slots.media || props.image || props.icon);
75
+ const size = props.size || (props.image ? 200 : 96);
76
+ return _createVNode("div", {
77
+ "class": ['v-empty-state', {
78
+ [`v-empty-state--${props.justify}`]: true
79
+ }, themeClasses.value, backgroundColorClasses.value, props.class],
80
+ "style": [backgroundColorStyles.value, dimensionStyles.value, props.style]
81
+ }, [hasMedia && _createVNode("div", {
82
+ "key": "media",
83
+ "class": "v-empty-state__media"
84
+ }, [!slots.media ? _createVNode(_Fragment, null, [props.image ? _createVNode(VImg, {
85
+ "key": "image",
86
+ "src": props.image,
87
+ "height": size
88
+ }, null) : props.icon ? _createVNode(VIcon, {
89
+ "key": "icon",
90
+ "size": size,
91
+ "icon": props.icon
92
+ }, null) : undefined]) : _createVNode(VDefaultsProvider, {
93
+ "key": "media-defaults",
94
+ "defaults": {
95
+ VImg: {
96
+ src: props.image,
97
+ height: size
98
+ },
99
+ VIcon: {
100
+ size,
101
+ icon: props.icon
102
+ }
103
+ }
104
+ }, {
105
+ default: () => [slots.media()]
106
+ })]), hasHeadline && _createVNode("div", {
107
+ "key": "headline",
108
+ "class": "v-empty-state__headline"
109
+ }, [slots.headline?.() ?? props.headline]), hasTitle && _createVNode("div", {
110
+ "key": "title",
111
+ "class": "v-empty-state__title"
112
+ }, [slots.title?.() ?? props.title]), hasText && _createVNode("div", {
113
+ "key": "text",
114
+ "class": "v-empty-state__text",
115
+ "style": {
116
+ maxWidth: convertToUnit(props.textWidth)
117
+ }
118
+ }, [slots.text?.() ?? props.text]), slots.default && _createVNode("div", {
119
+ "key": "content",
120
+ "class": "v-empty-state__content"
121
+ }, [slots.default()]), hasActions && _createVNode("div", {
122
+ "key": "actions",
123
+ "class": "v-empty-state__actions"
124
+ }, [_createVNode(VDefaultsProvider, {
125
+ "defaults": {
126
+ VBtn: {
127
+ class: 'v-empty-state__action-btn',
128
+ color: props.color,
129
+ text: props.actionText
130
+ }
131
+ }
132
+ }, {
133
+ default: () => [slots.actions?.({
134
+ props: {
135
+ onClick: onClickAction
136
+ }
137
+ }) ?? _createVNode(VBtn, {
138
+ "onClick": onClickAction
139
+ }, null)]
140
+ })])]);
141
+ });
142
+ return {};
143
+ }
144
+ });
145
+ //# sourceMappingURL=VEmptyState.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VEmptyState.mjs","names":["VBtn","VDefaultsProvider","VIcon","VImg","useBackgroundColor","makeComponentProps","makeDimensionProps","useDimension","IconValue","makeSizeProps","makeThemeProps","provideTheme","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVEmptyStateProps","actionText","String","bgColor","color","icon","image","justify","type","default","headline","title","text","textWidth","Number","href","to","size","undefined","VEmptyState","name","props","emits","e","setup","_ref","emit","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","dimensionStyles","onClickAction","hasActions","actions","hasHeadline","hasTitle","hasText","hasMedia","media","_createVNode","value","class","style","_Fragment","src","height","maxWidth","onClick"],"sources":["../../../src/labs/VEmptyState/VEmptyState.tsx"],"sourcesContent":["// Styles\nimport './VEmptyState.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { IconValue } from '@/composables/icons'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// Types\n\nexport type VEmptyStateSlots = {\n actions: {\n props: {\n onClick: (e: Event) => void\n }\n }\n default: never\n headline: never\n title: never\n media: never\n text: never\n}\n\nexport const makeVEmptyStateProps = propsFactory({\n actionText: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n image: String,\n justify: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n headline: String,\n title: String,\n text: String,\n textWidth: {\n type: [Number, String],\n default: 500,\n },\n href: String,\n to: String,\n\n ...makeComponentProps(),\n ...makeDimensionProps(),\n ...makeSizeProps({ size: undefined }),\n ...makeThemeProps(),\n}, 'VEmptyState')\n\nexport const VEmptyState = genericComponent<VEmptyStateSlots>()({\n name: 'VEmptyState',\n\n props: makeVEmptyStateProps(),\n\n emits: {\n 'click:action': (e: Event) => true,\n },\n\n setup (props, { emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { dimensionStyles } = useDimension(props)\n\n function onClickAction (e: Event) {\n emit('click:action', e)\n }\n\n useRender(() => {\n const hasActions = !!(slots.actions || props.actionText)\n const hasHeadline = !!(slots.headline || props.headline)\n const hasTitle = !!(slots.title || props.title)\n const hasText = !!(slots.text || props.text)\n const hasMedia = !!(slots.media || props.image || props.icon)\n const size = props.size || (props.image ? 200 : 96)\n\n return (\n <div\n class={[\n 'v-empty-state',\n {\n [`v-empty-state--${props.justify}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n >\n { hasMedia && (\n <div key=\"media\" class=\"v-empty-state__media\">\n { !slots.media ? (\n <>\n { props.image ? (\n <VImg\n key=\"image\"\n src={ props.image }\n height={ size }\n />\n ) : props.icon ? (\n <VIcon\n key=\"icon\"\n size={ size }\n icon={ props.icon }\n />\n ) : undefined }\n </>\n ) : (\n <VDefaultsProvider\n key=\"media-defaults\"\n defaults={{\n VImg: {\n src: props.image,\n height: size,\n },\n VIcon: {\n size,\n icon: props.icon,\n },\n }}\n >\n { slots.media() }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n { hasHeadline && (\n <div key=\"headline\" class=\"v-empty-state__headline\">\n { slots.headline?.() ?? props.headline }\n </div>\n )}\n\n { hasTitle && (\n <div key=\"title\" class=\"v-empty-state__title\">\n { slots.title?.() ?? props.title }\n </div>\n )}\n\n { hasText && (\n <div\n key=\"text\"\n class=\"v-empty-state__text\"\n style={{\n maxWidth: convertToUnit(props.textWidth),\n }}\n >\n { slots.text?.() ?? props.text }\n </div>\n )}\n\n { slots.default && (\n <div key=\"content\" class=\"v-empty-state__content\">\n { slots.default() }\n </div>\n )}\n\n { hasActions && (\n <div key=\"actions\" class=\"v-empty-state__actions\">\n <VDefaultsProvider\n defaults={{\n VBtn: {\n class: 'v-empty-state__action-btn',\n color: props.color,\n text: props.actionText,\n },\n }}\n >\n {\n slots.actions?.({ props: { onClick: onClickAction } }) ?? (\n <VBtn onClick={ onClickAction } />\n )\n }\n </VDefaultsProvider>\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VEmptyState = InstanceType<typeof VEmptyState>\n"],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ @use './variables' as *
2
+
3
+ .v-empty-state
4
+ align-items: center
5
+ display: flex
6
+ flex-direction: column
7
+ justify-content: center
8
+ min-height: $empty-state-min-height
9
+ padding: $empty-state-padding
10
+
11
+ &--start
12
+ align-items: flex-start
13
+
14
+ &--center
15
+ align-items: center
16
+
17
+ &--end
18
+ align-items: flex-end
19
+
20
+ .v-empty-state__media
21
+ text-align: center
22
+ width: 100%
23
+
24
+ .v-empty-state__headline
25
+ color: $empty-state-headline-color
26
+ font-size: $empty-state-headline-font-size
27
+ font-weight: $empty-state-headline-font-weight
28
+ line-height: $empty-state-headline-line-height
29
+
30
+ .v-empty-state__title
31
+ font-size: $empty-state-title-font-size
32
+ font-weight: $empty-state-title-font-weight
33
+ line-height: $empty-state-title-line-height
34
+ text-align: center
35
+
36
+ .v-empty-state__text
37
+ font-size: $empty-state-text-font-size
38
+ font-weight: $empty-state-text-font-weight
39
+ line-height: $empty-state-text-line-height
40
+ padding: $empty-state-text-padding
41
+ text-align: center
42
+
43
+ .v-empty-state__content
44
+ padding: $empty-state-content-padding
45
+
46
+ .v-empty-state__actions
47
+ display: flex
48
+ gap: $empty-state-actions-gap
49
+ padding: $empty-state-actions-padding
50
+
51
+ .v-empty-state__action-btn.v-btn
52
+ background-color: $empty-state-actions-btn-background-color
53
+ color: $empty-state-actions-btn-color
@@ -0,0 +1,22 @@
1
+ @use '../../styles/settings';
2
+ @use "../../styles/tools/functions";
3
+
4
+ $empty-state-actions-btn-background-color: rgb(var(--v-theme-surface-variant)) !default;
5
+ $empty-state-actions-btn-color: rgb(var(--v-theme-on-surface-variant)) !default;
6
+ $empty-state-actions-gap: 8px !default;
7
+ $empty-state-actions-padding: 16px !default;
8
+ $empty-state-content-padding: 24px 0 !default;
9
+ $empty-state-headline-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default;
10
+ $empty-state-headline-font-size: functions.map-deep-get(settings.$typography, 'h2', 'size') !default;
11
+ $empty-state-headline-line-height: functions.map-deep-get(settings.$typography, 'h2', 'line-height') !default;
12
+ $empty-state-headline-font-weight: functions.map-deep-get(settings.$typography, 'h2', 'weight') !default;
13
+ $empty-state-image-padding: 16px !default;
14
+ $empty-state-min-height: 100% !default;
15
+ $empty-state-padding: 16px !default;
16
+ $empty-state-text-font-size: functions.map-deep-get(settings.$typography, 'body-1', 'size') !default;
17
+ $empty-state-text-font-weight: functions.map-deep-get(settings.$typography, 'body-1', 'weight') !default;
18
+ $empty-state-text-line-height: functions.map-deep-get(settings.$typography, 'body-1', 'line-height') !default;
19
+ $empty-state-text-padding: 0 16px !default;
20
+ $empty-state-title-font-size: functions.map-deep-get(settings.$typography, 'h6', 'size') !default;
21
+ $empty-state-title-line-height: functions.map-deep-get(settings.$typography, 'h6', 'line-height') !default;
22
+ $empty-state-title-font-weight: functions.map-deep-get(settings.$typography, 'h6', 'weight') !default;
@@ -0,0 +1,415 @@
1
+ import * as vue from 'vue';
2
+ import { ComponentPropsOptions, ExtractPropTypes, JSXComponent, PropType } from 'vue';
3
+
4
+ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
+ filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
+ }
7
+
8
+ type IconValue = string | (string | [path: string, opacity: number])[] | JSXComponent;
9
+ declare const IconValue: PropType<IconValue>;
10
+
11
+ declare const VEmptyState: {
12
+ new (...args: any[]): vue.CreateComponentPublicInstance<{
13
+ style: vue.StyleValue;
14
+ size: NonNullable<string | number> | undefined;
15
+ justify: "center" | "end" | "start";
16
+ textWidth: string | number;
17
+ } & {
18
+ height?: string | number | undefined;
19
+ width?: string | number | undefined;
20
+ color?: string | undefined;
21
+ maxHeight?: string | number | undefined;
22
+ maxWidth?: string | number | undefined;
23
+ minHeight?: string | number | undefined;
24
+ minWidth?: string | number | undefined;
25
+ title?: string | undefined;
26
+ image?: string | undefined;
27
+ text?: string | undefined;
28
+ class?: any;
29
+ icon?: IconValue | undefined;
30
+ href?: string | undefined;
31
+ to?: string | undefined;
32
+ theme?: string | undefined;
33
+ bgColor?: string | undefined;
34
+ actionText?: string | undefined;
35
+ headline?: string | undefined;
36
+ } & {
37
+ $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
38
+ actions?: ((arg: {
39
+ props: {
40
+ onClick: (e: Event) => void;
41
+ };
42
+ }) => vue.VNodeChild) | undefined;
43
+ default?: (() => vue.VNodeChild) | undefined;
44
+ headline?: (() => vue.VNodeChild) | undefined;
45
+ title?: (() => vue.VNodeChild) | undefined;
46
+ media?: (() => vue.VNodeChild) | undefined;
47
+ text?: (() => vue.VNodeChild) | undefined;
48
+ };
49
+ 'v-slots'?: {
50
+ actions?: false | ((arg: {
51
+ props: {
52
+ onClick: (e: Event) => void;
53
+ };
54
+ }) => vue.VNodeChild) | undefined;
55
+ default?: false | (() => vue.VNodeChild) | undefined;
56
+ headline?: false | (() => vue.VNodeChild) | undefined;
57
+ title?: false | (() => vue.VNodeChild) | undefined;
58
+ media?: false | (() => vue.VNodeChild) | undefined;
59
+ text?: false | (() => vue.VNodeChild) | undefined;
60
+ } | undefined;
61
+ } & {
62
+ "v-slot:actions"?: false | ((arg: {
63
+ props: {
64
+ onClick: (e: Event) => void;
65
+ };
66
+ }) => vue.VNodeChild) | undefined;
67
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
68
+ "v-slot:headline"?: false | (() => vue.VNodeChild) | undefined;
69
+ "v-slot:title"?: false | (() => vue.VNodeChild) | undefined;
70
+ "v-slot:media"?: false | (() => vue.VNodeChild) | undefined;
71
+ "v-slot:text"?: false | (() => vue.VNodeChild) | undefined;
72
+ } & {
73
+ "onClick:action"?: ((e: Event) => any) | undefined;
74
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
75
+ 'click:action': (e: Event) => true;
76
+ }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
77
+ style: vue.StyleValue;
78
+ size: NonNullable<string | number> | undefined;
79
+ justify: "center" | "end" | "start";
80
+ textWidth: string | number;
81
+ } & {
82
+ height?: string | number | undefined;
83
+ width?: string | number | undefined;
84
+ color?: string | undefined;
85
+ maxHeight?: string | number | undefined;
86
+ maxWidth?: string | number | undefined;
87
+ minHeight?: string | number | undefined;
88
+ minWidth?: string | number | undefined;
89
+ title?: string | undefined;
90
+ image?: string | undefined;
91
+ text?: string | undefined;
92
+ class?: any;
93
+ icon?: IconValue | undefined;
94
+ href?: string | undefined;
95
+ to?: string | undefined;
96
+ theme?: string | undefined;
97
+ bgColor?: string | undefined;
98
+ actionText?: string | undefined;
99
+ headline?: string | undefined;
100
+ } & {
101
+ $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
102
+ actions?: ((arg: {
103
+ props: {
104
+ onClick: (e: Event) => void;
105
+ };
106
+ }) => vue.VNodeChild) | undefined;
107
+ default?: (() => vue.VNodeChild) | undefined;
108
+ headline?: (() => vue.VNodeChild) | undefined;
109
+ title?: (() => vue.VNodeChild) | undefined;
110
+ media?: (() => vue.VNodeChild) | undefined;
111
+ text?: (() => vue.VNodeChild) | undefined;
112
+ };
113
+ 'v-slots'?: {
114
+ actions?: false | ((arg: {
115
+ props: {
116
+ onClick: (e: Event) => void;
117
+ };
118
+ }) => vue.VNodeChild) | undefined;
119
+ default?: false | (() => vue.VNodeChild) | undefined;
120
+ headline?: false | (() => vue.VNodeChild) | undefined;
121
+ title?: false | (() => vue.VNodeChild) | undefined;
122
+ media?: false | (() => vue.VNodeChild) | undefined;
123
+ text?: false | (() => vue.VNodeChild) | undefined;
124
+ } | undefined;
125
+ } & {
126
+ "v-slot:actions"?: false | ((arg: {
127
+ props: {
128
+ onClick: (e: Event) => void;
129
+ };
130
+ }) => vue.VNodeChild) | undefined;
131
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
132
+ "v-slot:headline"?: false | (() => vue.VNodeChild) | undefined;
133
+ "v-slot:title"?: false | (() => vue.VNodeChild) | undefined;
134
+ "v-slot:media"?: false | (() => vue.VNodeChild) | undefined;
135
+ "v-slot:text"?: false | (() => vue.VNodeChild) | undefined;
136
+ } & {
137
+ "onClick:action"?: ((e: Event) => any) | undefined;
138
+ }, {
139
+ style: vue.StyleValue;
140
+ size: NonNullable<string | number> | undefined;
141
+ justify: "center" | "end" | "start";
142
+ textWidth: string | number;
143
+ }, true, {}, vue.SlotsType<Partial<{
144
+ actions: (arg: {
145
+ props: {
146
+ onClick: (e: Event) => void;
147
+ };
148
+ }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
149
+ [key: string]: any;
150
+ }>[];
151
+ default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
152
+ [key: string]: any;
153
+ }>[];
154
+ headline: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
155
+ [key: string]: any;
156
+ }>[];
157
+ title: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
158
+ [key: string]: any;
159
+ }>[];
160
+ media: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
161
+ [key: string]: any;
162
+ }>[];
163
+ text: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
164
+ [key: string]: any;
165
+ }>[];
166
+ }>>, {
167
+ P: {};
168
+ B: {};
169
+ D: {};
170
+ C: {};
171
+ M: {};
172
+ Defaults: {};
173
+ }, {
174
+ style: vue.StyleValue;
175
+ size: NonNullable<string | number> | undefined;
176
+ justify: "center" | "end" | "start";
177
+ textWidth: string | number;
178
+ } & {
179
+ height?: string | number | undefined;
180
+ width?: string | number | undefined;
181
+ color?: string | undefined;
182
+ maxHeight?: string | number | undefined;
183
+ maxWidth?: string | number | undefined;
184
+ minHeight?: string | number | undefined;
185
+ minWidth?: string | number | undefined;
186
+ title?: string | undefined;
187
+ image?: string | undefined;
188
+ text?: string | undefined;
189
+ class?: any;
190
+ icon?: IconValue | undefined;
191
+ href?: string | undefined;
192
+ to?: string | undefined;
193
+ theme?: string | undefined;
194
+ bgColor?: string | undefined;
195
+ actionText?: string | undefined;
196
+ headline?: string | undefined;
197
+ } & {
198
+ $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
199
+ actions?: ((arg: {
200
+ props: {
201
+ onClick: (e: Event) => void;
202
+ };
203
+ }) => vue.VNodeChild) | undefined;
204
+ default?: (() => vue.VNodeChild) | undefined;
205
+ headline?: (() => vue.VNodeChild) | undefined;
206
+ title?: (() => vue.VNodeChild) | undefined;
207
+ media?: (() => vue.VNodeChild) | undefined;
208
+ text?: (() => vue.VNodeChild) | undefined;
209
+ };
210
+ 'v-slots'?: {
211
+ actions?: false | ((arg: {
212
+ props: {
213
+ onClick: (e: Event) => void;
214
+ };
215
+ }) => vue.VNodeChild) | undefined;
216
+ default?: false | (() => vue.VNodeChild) | undefined;
217
+ headline?: false | (() => vue.VNodeChild) | undefined;
218
+ title?: false | (() => vue.VNodeChild) | undefined;
219
+ media?: false | (() => vue.VNodeChild) | undefined;
220
+ text?: false | (() => vue.VNodeChild) | undefined;
221
+ } | undefined;
222
+ } & {
223
+ "v-slot:actions"?: false | ((arg: {
224
+ props: {
225
+ onClick: (e: Event) => void;
226
+ };
227
+ }) => vue.VNodeChild) | undefined;
228
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
229
+ "v-slot:headline"?: false | (() => vue.VNodeChild) | undefined;
230
+ "v-slot:title"?: false | (() => vue.VNodeChild) | undefined;
231
+ "v-slot:media"?: false | (() => vue.VNodeChild) | undefined;
232
+ "v-slot:text"?: false | (() => vue.VNodeChild) | undefined;
233
+ } & {
234
+ "onClick:action"?: ((e: Event) => any) | undefined;
235
+ }, {}, {}, {}, {}, {
236
+ style: vue.StyleValue;
237
+ size: NonNullable<string | number> | undefined;
238
+ justify: "center" | "end" | "start";
239
+ textWidth: string | number;
240
+ }>;
241
+ __isFragment?: undefined;
242
+ __isTeleport?: undefined;
243
+ __isSuspense?: undefined;
244
+ } & vue.ComponentOptionsBase<{
245
+ style: vue.StyleValue;
246
+ size: NonNullable<string | number> | undefined;
247
+ justify: "center" | "end" | "start";
248
+ textWidth: string | number;
249
+ } & {
250
+ height?: string | number | undefined;
251
+ width?: string | number | undefined;
252
+ color?: string | undefined;
253
+ maxHeight?: string | number | undefined;
254
+ maxWidth?: string | number | undefined;
255
+ minHeight?: string | number | undefined;
256
+ minWidth?: string | number | undefined;
257
+ title?: string | undefined;
258
+ image?: string | undefined;
259
+ text?: string | undefined;
260
+ class?: any;
261
+ icon?: IconValue | undefined;
262
+ href?: string | undefined;
263
+ to?: string | undefined;
264
+ theme?: string | undefined;
265
+ bgColor?: string | undefined;
266
+ actionText?: string | undefined;
267
+ headline?: string | undefined;
268
+ } & {
269
+ $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
270
+ actions?: ((arg: {
271
+ props: {
272
+ onClick: (e: Event) => void;
273
+ };
274
+ }) => vue.VNodeChild) | undefined;
275
+ default?: (() => vue.VNodeChild) | undefined;
276
+ headline?: (() => vue.VNodeChild) | undefined;
277
+ title?: (() => vue.VNodeChild) | undefined;
278
+ media?: (() => vue.VNodeChild) | undefined;
279
+ text?: (() => vue.VNodeChild) | undefined;
280
+ };
281
+ 'v-slots'?: {
282
+ actions?: false | ((arg: {
283
+ props: {
284
+ onClick: (e: Event) => void;
285
+ };
286
+ }) => vue.VNodeChild) | undefined;
287
+ default?: false | (() => vue.VNodeChild) | undefined;
288
+ headline?: false | (() => vue.VNodeChild) | undefined;
289
+ title?: false | (() => vue.VNodeChild) | undefined;
290
+ media?: false | (() => vue.VNodeChild) | undefined;
291
+ text?: false | (() => vue.VNodeChild) | undefined;
292
+ } | undefined;
293
+ } & {
294
+ "v-slot:actions"?: false | ((arg: {
295
+ props: {
296
+ onClick: (e: Event) => void;
297
+ };
298
+ }) => vue.VNodeChild) | undefined;
299
+ "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
300
+ "v-slot:headline"?: false | (() => vue.VNodeChild) | undefined;
301
+ "v-slot:title"?: false | (() => vue.VNodeChild) | undefined;
302
+ "v-slot:media"?: false | (() => vue.VNodeChild) | undefined;
303
+ "v-slot:text"?: false | (() => vue.VNodeChild) | undefined;
304
+ } & {
305
+ "onClick:action"?: ((e: Event) => any) | undefined;
306
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
307
+ 'click:action': (e: Event) => true;
308
+ }, string, {
309
+ style: vue.StyleValue;
310
+ size: NonNullable<string | number> | undefined;
311
+ justify: "center" | "end" | "start";
312
+ textWidth: string | number;
313
+ }, {}, string, vue.SlotsType<Partial<{
314
+ actions: (arg: {
315
+ props: {
316
+ onClick: (e: Event) => void;
317
+ };
318
+ }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
319
+ [key: string]: any;
320
+ }>[];
321
+ default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
322
+ [key: string]: any;
323
+ }>[];
324
+ headline: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
325
+ [key: string]: any;
326
+ }>[];
327
+ title: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
328
+ [key: string]: any;
329
+ }>[];
330
+ media: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
331
+ [key: string]: any;
332
+ }>[];
333
+ text: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
334
+ [key: string]: any;
335
+ }>[];
336
+ }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
337
+ theme: StringConstructor;
338
+ size: Omit<{
339
+ type: (StringConstructor | NumberConstructor)[];
340
+ default: string;
341
+ }, "type" | "default"> & {
342
+ type: PropType<NonNullable<string | number> | undefined>;
343
+ default: NonNullable<string | number> | undefined;
344
+ };
345
+ height: (StringConstructor | NumberConstructor)[];
346
+ maxHeight: (StringConstructor | NumberConstructor)[];
347
+ maxWidth: (StringConstructor | NumberConstructor)[];
348
+ minHeight: (StringConstructor | NumberConstructor)[];
349
+ minWidth: (StringConstructor | NumberConstructor)[];
350
+ width: (StringConstructor | NumberConstructor)[];
351
+ class: PropType<any>;
352
+ style: {
353
+ type: PropType<vue.StyleValue>;
354
+ default: null;
355
+ };
356
+ actionText: StringConstructor;
357
+ bgColor: StringConstructor;
358
+ color: StringConstructor;
359
+ icon: PropType<IconValue>;
360
+ image: StringConstructor;
361
+ justify: {
362
+ type: PropType<"center" | "end" | "start">;
363
+ default: string;
364
+ };
365
+ headline: StringConstructor;
366
+ title: StringConstructor;
367
+ text: StringConstructor;
368
+ textWidth: {
369
+ type: (StringConstructor | NumberConstructor)[];
370
+ default: number;
371
+ };
372
+ href: StringConstructor;
373
+ to: StringConstructor;
374
+ }, vue.ExtractPropTypes<{
375
+ theme: StringConstructor;
376
+ size: Omit<{
377
+ type: (StringConstructor | NumberConstructor)[];
378
+ default: string;
379
+ }, "type" | "default"> & {
380
+ type: PropType<NonNullable<string | number> | undefined>;
381
+ default: NonNullable<string | number> | undefined;
382
+ };
383
+ height: (StringConstructor | NumberConstructor)[];
384
+ maxHeight: (StringConstructor | NumberConstructor)[];
385
+ maxWidth: (StringConstructor | NumberConstructor)[];
386
+ minHeight: (StringConstructor | NumberConstructor)[];
387
+ minWidth: (StringConstructor | NumberConstructor)[];
388
+ width: (StringConstructor | NumberConstructor)[];
389
+ class: PropType<any>;
390
+ style: {
391
+ type: PropType<vue.StyleValue>;
392
+ default: null;
393
+ };
394
+ actionText: StringConstructor;
395
+ bgColor: StringConstructor;
396
+ color: StringConstructor;
397
+ icon: PropType<IconValue>;
398
+ image: StringConstructor;
399
+ justify: {
400
+ type: PropType<"center" | "end" | "start">;
401
+ default: string;
402
+ };
403
+ headline: StringConstructor;
404
+ title: StringConstructor;
405
+ text: StringConstructor;
406
+ textWidth: {
407
+ type: (StringConstructor | NumberConstructor)[];
408
+ default: number;
409
+ };
410
+ href: StringConstructor;
411
+ to: StringConstructor;
412
+ }>>;
413
+ type VEmptyState = InstanceType<typeof VEmptyState>;
414
+
415
+ export { VEmptyState };
@@ -0,0 +1,2 @@
1
+ export { VEmptyState } from "./VEmptyState.mjs";
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["VEmptyState"],"sources":["../../../src/labs/VEmptyState/index.ts"],"sourcesContent":["export { VEmptyState } from './VEmptyState'\n"],"mappings":"SAASA,WAAW"}