@vuetify/nightly 3.9.5-dev.2025-08-12 → 3.9.5-dev.2025-08-24

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 (40) hide show
  1. package/CHANGELOG.md +6 -3
  2. package/dist/json/attributes.json +2183 -2175
  3. package/dist/json/importMap-labs.json +40 -40
  4. package/dist/json/importMap.json +156 -156
  5. package/dist/json/tags.json +4 -1
  6. package/dist/json/web-types.json +4199 -4178
  7. package/dist/vuetify-labs.cjs +202 -98
  8. package/dist/vuetify-labs.css +5261 -5261
  9. package/dist/vuetify-labs.d.ts +112 -84
  10. package/dist/vuetify-labs.esm.js +202 -98
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +202 -98
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +85 -65
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +2218 -2218
  17. package/dist/vuetify.d.ts +91 -63
  18. package/dist/vuetify.esm.js +85 -65
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +85 -65
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +367 -366
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VCard/VCardActions.d.ts +44 -0
  26. package/lib/components/VCard/VCardActions.js +11 -6
  27. package/lib/components/VCard/VCardActions.js.map +1 -1
  28. package/lib/components/VCard/VCardItem.d.ts +25 -0
  29. package/lib/components/VCard/VCardItem.js +64 -60
  30. package/lib/components/VCard/VCardItem.js.map +1 -1
  31. package/lib/composables/filter.d.ts +1 -0
  32. package/lib/composables/filter.js +13 -0
  33. package/lib/composables/filter.js.map +1 -1
  34. package/lib/entry-bundler.js +1 -1
  35. package/lib/framework.d.ts +63 -63
  36. package/lib/framework.js +1 -1
  37. package/lib/labs/VMaskInput/VMaskInput.d.ts +22 -21
  38. package/lib/labs/VMaskInput/VMaskInput.js +118 -34
  39. package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
  40. package/package.json +1 -1
@@ -1,6 +1,37 @@
1
+ export declare const makeVCardActionsProps: <Defaults extends {
2
+ tag?: unknown;
3
+ class?: unknown;
4
+ style?: unknown;
5
+ } = {}>(defaults?: Defaults | undefined) => {
6
+ tag: unknown extends Defaults["tag"] ? {
7
+ type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
8
+ default: string;
9
+ } : Omit<{
10
+ type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
11
+ default: string;
12
+ }, "type" | "default"> & {
13
+ type: import("vue").PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | import("../../util/index.js").JSXComponent | Defaults["tag"]>;
14
+ default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : NonNullable<string | import("../../util/index.js").JSXComponent> | Defaults["tag"];
15
+ };
16
+ class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
17
+ type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
18
+ default: unknown extends Defaults["class"] ? any : any;
19
+ };
20
+ style: unknown extends Defaults["style"] ? {
21
+ type: import("vue").PropType<import("vue").StyleValue>;
22
+ default: null;
23
+ } : Omit<{
24
+ type: import("vue").PropType<import("vue").StyleValue>;
25
+ default: null;
26
+ }, "type" | "default"> & {
27
+ type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : import("vue").StyleValue | Defaults["style"]>;
28
+ default: unknown extends Defaults["style"] ? import("vue").StyleValue : NonNullable<import("vue").StyleValue> | Defaults["style"];
29
+ };
30
+ };
1
31
  export declare const VCardActions: {
2
32
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
3
33
  style: import("vue").StyleValue;
34
+ tag: string | import("../../util/index.js").JSXComponent;
4
35
  } & {
5
36
  class?: any;
6
37
  } & {
@@ -16,6 +47,7 @@ export declare const VCardActions: {
16
47
  "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
17
48
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
18
49
  style: import("vue").StyleValue;
50
+ tag: string | import("../../util/index.js").JSXComponent;
19
51
  }, true, {}, import("vue").SlotsType<Partial<{
20
52
  default: () => import("vue").VNode[];
21
53
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
@@ -27,6 +59,7 @@ export declare const VCardActions: {
27
59
  Defaults: {};
28
60
  }, {
29
61
  style: import("vue").StyleValue;
62
+ tag: string | import("../../util/index.js").JSXComponent;
30
63
  } & {
31
64
  class?: any;
32
65
  } & {
@@ -42,12 +75,14 @@ export declare const VCardActions: {
42
75
  "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
43
76
  }, {}, {}, {}, {}, {
44
77
  style: import("vue").StyleValue;
78
+ tag: string | import("../../util/index.js").JSXComponent;
45
79
  }>;
46
80
  __isFragment?: never;
47
81
  __isTeleport?: never;
48
82
  __isSuspense?: never;
49
83
  } & import("vue").ComponentOptionsBase<{
50
84
  style: import("vue").StyleValue;
85
+ tag: string | import("../../util/index.js").JSXComponent;
51
86
  } & {
52
87
  class?: any;
53
88
  } & {
@@ -63,15 +98,24 @@ export declare const VCardActions: {
63
98
  "v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
64
99
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
65
100
  style: import("vue").StyleValue;
101
+ tag: string | import("../../util/index.js").JSXComponent;
66
102
  }, {}, string, import("vue").SlotsType<Partial<{
67
103
  default: () => import("vue").VNode[];
68
104
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
105
+ tag: {
106
+ type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
107
+ default: string;
108
+ };
69
109
  class: import("vue").PropType<import("../../composables/component.js").ClassValue>;
70
110
  style: {
71
111
  type: import("vue").PropType<import("vue").StyleValue>;
72
112
  default: null;
73
113
  };
74
114
  }, import("vue").ExtractPropTypes<{
115
+ tag: {
116
+ type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
117
+ default: string;
118
+ };
75
119
  class: import("vue").PropType<import("../../composables/component.js").ClassValue>;
76
120
  style: {
77
121
  type: import("vue").PropType<import("vue").StyleValue>;
@@ -1,11 +1,16 @@
1
- import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode } from "vue";
1
+ import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createVNode as _createVNode } from "vue";
2
2
  // Composables
3
3
  import { makeComponentProps } from "../../composables/component.js";
4
- import { provideDefaults } from "../../composables/defaults.js"; // Utilities
5
- import { genericComponent, useRender } from "../../util/index.js";
4
+ import { provideDefaults } from "../../composables/defaults.js";
5
+ import { makeTagProps } from "../../composables/tag.js"; // Utilities
6
+ import { genericComponent, propsFactory, useRender } from "../../util/index.js";
7
+ export const makeVCardActionsProps = propsFactory({
8
+ ...makeComponentProps(),
9
+ ...makeTagProps()
10
+ }, 'VCardActions');
6
11
  export const VCardActions = genericComponent()({
7
12
  name: 'VCardActions',
8
- props: makeComponentProps(),
13
+ props: makeVCardActionsProps(),
9
14
  setup(props, _ref) {
10
15
  let {
11
16
  slots
@@ -16,10 +21,10 @@ export const VCardActions = genericComponent()({
16
21
  variant: 'text'
17
22
  }
18
23
  });
19
- useRender(() => _createElementVNode("div", {
24
+ useRender(() => _createVNode(props.tag, {
20
25
  "class": _normalizeClass(['v-card-actions', props.class]),
21
26
  "style": _normalizeStyle(props.style)
22
- }, [slots.default?.()]));
27
+ }, slots));
23
28
  return {};
24
29
  }
25
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VCardActions.js","names":["makeComponentProps","provideDefaults","genericComponent","useRender","VCardActions","name","props","setup","_ref","slots","VBtn","slim","variant","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","default"],"sources":["../../../src/components/VCard/VCardActions.tsx"],"sourcesContent":["// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\nexport const VCardActions = genericComponent()({\n name: 'VCardActions',\n\n props: makeComponentProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n slim: true,\n variant: 'text',\n },\n })\n\n useRender(() => (\n <div\n class={[\n 'v-card-actions',\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VCardActions = InstanceType<typeof VCardActions>\n"],"mappings":";AAAA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,eAAe,yCAExB;AAAA,SACSC,gBAAgB,EAAEC,SAAS;AAEpC,OAAO,MAAMC,YAAY,GAAGF,gBAAgB,CAAC,CAAC,CAAC;EAC7CG,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAEN,kBAAkB,CAAC,CAAC;EAE3BO,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBP,eAAe,CAAC;MACdS,IAAI,EAAE;QACJC,IAAI,EAAE,IAAI;QACVC,OAAO,EAAE;MACX;IACF,CAAC,CAAC;IAEFT,SAAS,CAAC,MAAAU,mBAAA;MAAA,SAAAC,eAAA,CAEC,CACL,gBAAgB,EAChBR,KAAK,CAACS,KAAK,CACZ;MAAA,SAAAC,eAAA,CACOV,KAAK,CAACW,KAAK;IAAA,IAEjBR,KAAK,CAACS,OAAO,GAAG,CAAC,EAEtB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VCardActions.js","names":["makeComponentProps","provideDefaults","makeTagProps","genericComponent","propsFactory","useRender","makeVCardActionsProps","VCardActions","name","props","setup","_ref","slots","VBtn","slim","variant","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style"],"sources":["../../../src/components/VCard/VCardActions.tsx"],"sourcesContent":["// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVCardActionsProps = propsFactory({\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VCardActions')\n\nexport const VCardActions = genericComponent()({\n name: 'VCardActions',\n\n props: makeVCardActionsProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n slim: true,\n variant: 'text',\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-card-actions',\n props.class,\n ]}\n style={ props.style }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VCardActions = InstanceType<typeof VCardActions>\n"],"mappings":";AAAA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,YAAY,oCAErB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,qBAAqB,GAAGF,YAAY,CAAC;EAChD,GAAGJ,kBAAkB,CAAC,CAAC;EACvB,GAAGE,YAAY,CAAC;AAClB,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAMK,YAAY,GAAGJ,gBAAgB,CAAC,CAAC,CAAC;EAC7CK,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAEH,qBAAqB,CAAC,CAAC;EAE9BI,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBV,eAAe,CAAC;MACdY,IAAI,EAAE;QACJC,IAAI,EAAE,IAAI;QACVC,OAAO,EAAE;MACX;IACF,CAAC,CAAC;IAEFV,SAAS,CAAC,MAAAW,YAAA,CAAAP,KAAA,CAAAQ,GAAA;MAAA,SAAAC,eAAA,CAEC,CACL,gBAAgB,EAChBT,KAAK,CAACU,KAAK,CACZ;MAAA,SAAAC,eAAA,CACOX,KAAK,CAACY,KAAK;IAAA,GACTT,KAAK,CAElB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -7,6 +7,7 @@ export type VCardItemSlots = {
7
7
  subtitle: never;
8
8
  };
9
9
  export declare const makeCardItemProps: <Defaults extends {
10
+ tag?: unknown;
10
11
  density?: unknown;
11
12
  class?: unknown;
12
13
  style?: unknown;
@@ -17,6 +18,16 @@ export declare const makeCardItemProps: <Defaults extends {
17
18
  subtitle?: unknown;
18
19
  title?: unknown;
19
20
  } = {}>(defaults?: Defaults | undefined) => {
21
+ tag: unknown extends Defaults["tag"] ? {
22
+ type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
23
+ default: string;
24
+ } : Omit<{
25
+ type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
26
+ default: string;
27
+ }, "type" | "default"> & {
28
+ type: import("vue").PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | import("../../util/index.js").JSXComponent | Defaults["tag"]>;
29
+ default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : NonNullable<string | import("../../util/index.js").JSXComponent> | Defaults["tag"];
30
+ };
20
31
  density: unknown extends Defaults["density"] ? {
21
32
  type: import("vue").PropType<import("../../composables/density.js").Density>;
22
33
  default: string;
@@ -83,6 +94,7 @@ export declare const makeCardItemProps: <Defaults extends {
83
94
  export declare const VCardItem: {
84
95
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
85
96
  style: import("vue").StyleValue;
97
+ tag: string | import("../../util/index.js").JSXComponent;
86
98
  density: import("../../composables/density.js").Density;
87
99
  } & {
88
100
  title?: string | number | boolean | undefined;
@@ -118,6 +130,7 @@ export declare const VCardItem: {
118
130
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
119
131
  style: import("vue").StyleValue;
120
132
  title: string | number | boolean;
133
+ tag: string | import("../../util/index.js").JSXComponent;
121
134
  density: import("../../composables/density.js").Density;
122
135
  subtitle: string | number | boolean;
123
136
  }, true, {}, import("vue").SlotsType<Partial<{
@@ -135,6 +148,7 @@ export declare const VCardItem: {
135
148
  Defaults: {};
136
149
  }, {
137
150
  style: import("vue").StyleValue;
151
+ tag: string | import("../../util/index.js").JSXComponent;
138
152
  density: import("../../composables/density.js").Density;
139
153
  } & {
140
154
  title?: string | number | boolean | undefined;
@@ -170,6 +184,7 @@ export declare const VCardItem: {
170
184
  }, {}, {}, {}, {}, {
171
185
  style: import("vue").StyleValue;
172
186
  title: string | number | boolean;
187
+ tag: string | import("../../util/index.js").JSXComponent;
173
188
  density: import("../../composables/density.js").Density;
174
189
  subtitle: string | number | boolean;
175
190
  }>;
@@ -178,6 +193,7 @@ export declare const VCardItem: {
178
193
  __isSuspense?: never;
179
194
  } & import("vue").ComponentOptionsBase<{
180
195
  style: import("vue").StyleValue;
196
+ tag: string | import("../../util/index.js").JSXComponent;
181
197
  density: import("../../composables/density.js").Density;
182
198
  } & {
183
199
  title?: string | number | boolean | undefined;
@@ -213,6 +229,7 @@ export declare const VCardItem: {
213
229
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
214
230
  style: import("vue").StyleValue;
215
231
  title: string | number | boolean;
232
+ tag: string | import("../../util/index.js").JSXComponent;
216
233
  density: import("../../composables/density.js").Density;
217
234
  subtitle: string | number | boolean;
218
235
  }, {}, string, import("vue").SlotsType<Partial<{
@@ -222,6 +239,10 @@ export declare const VCardItem: {
222
239
  title: () => import("vue").VNode[];
223
240
  subtitle: () => import("vue").VNode[];
224
241
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
242
+ tag: {
243
+ type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
244
+ default: string;
245
+ };
225
246
  density: {
226
247
  type: import("vue").PropType<import("../../composables/density.js").Density>;
227
248
  default: string;
@@ -245,6 +266,10 @@ export declare const VCardItem: {
245
266
  default: undefined;
246
267
  };
247
268
  }, import("vue").ExtractPropTypes<{
269
+ tag: {
270
+ type: import("vue").PropType<string | import("../../util/index.js").JSXComponent>;
271
+ default: string;
272
+ };
248
273
  density: {
249
274
  type: import("vue").PropType<import("../../composables/density.js").Density>;
250
275
  default: string;
@@ -7,7 +7,8 @@ import { VDefaultsProvider } from "../VDefaultsProvider/index.js";
7
7
  import { VIcon } from "../VIcon/index.js"; // Composables
8
8
  import { makeComponentProps } from "../../composables/component.js";
9
9
  import { makeDensityProps } from "../../composables/density.js";
10
- import { IconValue } from "../../composables/icons.js"; // Utilities
10
+ import { IconValue } from "../../composables/icons.js";
11
+ import { makeTagProps } from "../../composables/tag.js"; // Utilities
11
12
  import { toDisplayString } from 'vue';
12
13
  import { genericComponent, propsFactory, useRender } from "../../util/index.js";
13
14
  export const makeCardItemProps = propsFactory({
@@ -24,7 +25,8 @@ export const makeCardItemProps = propsFactory({
24
25
  default: undefined
25
26
  },
26
27
  ...makeComponentProps(),
27
- ...makeDensityProps()
28
+ ...makeDensityProps(),
29
+ ...makeTagProps()
28
30
  }, 'VCardItem');
29
31
  export const VCardItem = genericComponent()({
30
32
  name: 'VCardItem',
@@ -40,68 +42,70 @@ export const VCardItem = genericComponent()({
40
42
  const hasAppend = !!(hasAppendMedia || slots.append);
41
43
  const hasTitle = !!(props.title != null || slots.title);
42
44
  const hasSubtitle = !!(props.subtitle != null || slots.subtitle);
43
- return _createElementVNode("div", {
45
+ return _createVNode(props.tag, {
44
46
  "class": _normalizeClass(['v-card-item', props.class]),
45
47
  "style": _normalizeStyle(props.style)
46
- }, [hasPrepend && _createElementVNode("div", {
47
- "key": "prepend",
48
- "class": "v-card-item__prepend"
49
- }, [!slots.prepend ? _createElementVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {
50
- "key": "prepend-avatar",
51
- "density": props.density,
52
- "image": props.prependAvatar
53
- }, null), props.prependIcon && _createVNode(VIcon, {
54
- "key": "prepend-icon",
55
- "density": props.density,
56
- "icon": props.prependIcon
57
- }, null)]) : _createVNode(VDefaultsProvider, {
58
- "key": "prepend-defaults",
59
- "disabled": !hasPrependMedia,
60
- "defaults": {
61
- VAvatar: {
62
- density: props.density,
63
- image: props.prependAvatar
64
- },
65
- VIcon: {
66
- density: props.density,
67
- icon: props.prependIcon
68
- }
69
- }
70
- }, slots.prepend)]), _createElementVNode("div", {
71
- "class": "v-card-item__content"
72
- }, [hasTitle && _createVNode(VCardTitle, {
73
- "key": "title"
74
- }, {
75
- default: () => [slots.title?.() ?? toDisplayString(props.title)]
76
- }), hasSubtitle && _createVNode(VCardSubtitle, {
77
- "key": "subtitle"
78
48
  }, {
79
- default: () => [slots.subtitle?.() ?? toDisplayString(props.subtitle)]
80
- }), slots.default?.()]), hasAppend && _createElementVNode("div", {
81
- "key": "append",
82
- "class": "v-card-item__append"
83
- }, [!slots.append ? _createElementVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {
84
- "key": "append-icon",
85
- "density": props.density,
86
- "icon": props.appendIcon
87
- }, null), props.appendAvatar && _createVNode(VAvatar, {
88
- "key": "append-avatar",
89
- "density": props.density,
90
- "image": props.appendAvatar
91
- }, null)]) : _createVNode(VDefaultsProvider, {
92
- "key": "append-defaults",
93
- "disabled": !hasAppendMedia,
94
- "defaults": {
95
- VAvatar: {
96
- density: props.density,
97
- image: props.appendAvatar
98
- },
99
- VIcon: {
100
- density: props.density,
101
- icon: props.appendIcon
49
+ default: () => [hasPrepend && _createElementVNode("div", {
50
+ "key": "prepend",
51
+ "class": "v-card-item__prepend"
52
+ }, [!slots.prepend ? _createElementVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {
53
+ "key": "prepend-avatar",
54
+ "density": props.density,
55
+ "image": props.prependAvatar
56
+ }, null), props.prependIcon && _createVNode(VIcon, {
57
+ "key": "prepend-icon",
58
+ "density": props.density,
59
+ "icon": props.prependIcon
60
+ }, null)]) : _createVNode(VDefaultsProvider, {
61
+ "key": "prepend-defaults",
62
+ "disabled": !hasPrependMedia,
63
+ "defaults": {
64
+ VAvatar: {
65
+ density: props.density,
66
+ image: props.prependAvatar
67
+ },
68
+ VIcon: {
69
+ density: props.density,
70
+ icon: props.prependIcon
71
+ }
72
+ }
73
+ }, slots.prepend)]), _createElementVNode("div", {
74
+ "class": "v-card-item__content"
75
+ }, [hasTitle && _createVNode(VCardTitle, {
76
+ "key": "title"
77
+ }, {
78
+ default: () => [slots.title?.() ?? toDisplayString(props.title)]
79
+ }), hasSubtitle && _createVNode(VCardSubtitle, {
80
+ "key": "subtitle"
81
+ }, {
82
+ default: () => [slots.subtitle?.() ?? toDisplayString(props.subtitle)]
83
+ }), slots.default?.()]), hasAppend && _createElementVNode("div", {
84
+ "key": "append",
85
+ "class": "v-card-item__append"
86
+ }, [!slots.append ? _createElementVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {
87
+ "key": "append-icon",
88
+ "density": props.density,
89
+ "icon": props.appendIcon
90
+ }, null), props.appendAvatar && _createVNode(VAvatar, {
91
+ "key": "append-avatar",
92
+ "density": props.density,
93
+ "image": props.appendAvatar
94
+ }, null)]) : _createVNode(VDefaultsProvider, {
95
+ "key": "append-defaults",
96
+ "disabled": !hasAppendMedia,
97
+ "defaults": {
98
+ VAvatar: {
99
+ density: props.density,
100
+ image: props.appendAvatar
101
+ },
102
+ VIcon: {
103
+ density: props.density,
104
+ icon: props.appendIcon
105
+ }
102
106
  }
103
- }
104
- }, slots.append)])]);
107
+ }, slots.append)])]
108
+ });
105
109
  });
106
110
  return {};
107
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VCardItem.js","names":["VCardSubtitle","VCardTitle","VAvatar","VDefaultsProvider","VIcon","makeComponentProps","makeDensityProps","IconValue","toDisplayString","genericComponent","propsFactory","useRender","makeCardItemProps","appendAvatar","String","appendIcon","prependAvatar","prependIcon","subtitle","type","Number","Boolean","default","undefined","title","VCardItem","name","props","setup","_ref","slots","hasPrependMedia","hasPrepend","prepend","hasAppendMedia","hasAppend","append","hasTitle","hasSubtitle","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","_Fragment","_createVNode","density","image","icon"],"sources":["../../../src/components/VCard/VCardItem.tsx"],"sourcesContent":["// Components\nimport { VCardSubtitle } from './VCardSubtitle'\nimport { VCardTitle } from './VCardTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { toDisplayString } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VCardItemSlots = {\n default: never\n prepend: never\n append: never\n title: never\n subtitle: never\n}\n\nexport const makeCardItemProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: {\n type: [String, Number, Boolean],\n default: undefined,\n },\n title: {\n type: [String, Number, Boolean],\n default: undefined,\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n}, 'VCardItem')\n\nexport const VCardItem = genericComponent<VCardItemSlots>()({\n name: 'VCardItem',\n\n props: makeCardItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasTitle = !!(props.title != null || slots.title)\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle)\n\n return (\n <div\n class={[\n 'v-card-item',\n props.class,\n ]}\n style={ props.style }\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-card-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-card-item__content\">\n { hasTitle && (\n <VCardTitle key=\"title\">\n { slots.title?.() ?? toDisplayString(props.title) }\n </VCardTitle>\n )}\n\n { hasSubtitle && (\n <VCardSubtitle key=\"subtitle\">\n { slots.subtitle?.() ?? toDisplayString(props.subtitle) }\n </VCardSubtitle>\n )}\n\n { slots.default?.() }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-card-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n }}\n v-slots:default={ slots.append }\n />\n )}\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VCardItem = InstanceType<typeof VCardItem>\n"],"mappings":";AAAA;AAAA,SACSA,aAAa;AAAA,SACbC,UAAU;AAAA,SACVC,OAAO;AAAA,SACPC,iBAAiB;AAAA,SACjBC,KAAK,6BAEd;AAAA,SACSC,kBAAkB;AAAA,SAClBC,gBAAgB;AAAA,SAChBC,SAAS,sCAElB;AACA,SAASC,eAAe,QAAQ,KAAK;AAAA,SAC5BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAUlD,OAAO,MAAMC,iBAAiB,GAAGF,YAAY,CAAC;EAC5CG,YAAY,EAAEC,MAAM;EACpBC,UAAU,EAAER,SAAS;EACrBS,aAAa,EAAEF,MAAM;EACrBG,WAAW,EAAEV,SAAS;EACtBW,QAAQ,EAAE;IACRC,IAAI,EAAE,CAACL,MAAM,EAAEM,MAAM,EAAEC,OAAO,CAAC;IAC/BC,OAAO,EAAEC;EACX,CAAC;EACDC,KAAK,EAAE;IACLL,IAAI,EAAE,CAACL,MAAM,EAAEM,MAAM,EAAEC,OAAO,CAAC;IAC/BC,OAAO,EAAEC;EACX,CAAC;EAED,GAAGlB,kBAAkB,CAAC,CAAC;EACvB,GAAGC,gBAAgB,CAAC;AACtB,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMmB,SAAS,GAAGhB,gBAAgB,CAAiB,CAAC,CAAC;EAC1DiB,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEf,iBAAiB,CAAC,CAAC;EAE1BgB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBlB,SAAS,CAAC,MAAM;MACd,MAAMoB,eAAe,GAAG,CAAC,EAAEJ,KAAK,CAACX,aAAa,IAAIW,KAAK,CAACV,WAAW,CAAC;MACpE,MAAMe,UAAU,GAAG,CAAC,EAAED,eAAe,IAAID,KAAK,CAACG,OAAO,CAAC;MACvD,MAAMC,cAAc,GAAG,CAAC,EAAEP,KAAK,CAACd,YAAY,IAAIc,KAAK,CAACZ,UAAU,CAAC;MACjE,MAAMoB,SAAS,GAAG,CAAC,EAAED,cAAc,IAAIJ,KAAK,CAACM,MAAM,CAAC;MACpD,MAAMC,QAAQ,GAAG,CAAC,EAAEV,KAAK,CAACH,KAAK,IAAI,IAAI,IAAIM,KAAK,CAACN,KAAK,CAAC;MACvD,MAAMc,WAAW,GAAG,CAAC,EAAEX,KAAK,CAACT,QAAQ,IAAI,IAAI,IAAIY,KAAK,CAACZ,QAAQ,CAAC;MAEhE,OAAAqB,mBAAA;QAAA,SAAAC,eAAA,CAEW,CACL,aAAa,EACbb,KAAK,CAACc,KAAK,CACZ;QAAA,SAAAC,eAAA,CACOf,KAAK,CAACgB,KAAK;MAAA,IAEjBX,UAAU,IAAAO,mBAAA;QAAA;QAAA;MAAA,IAEN,CAACT,KAAK,CAACG,OAAO,GAAAM,mBAAA,CAAAK,SAAA,SAEVjB,KAAK,CAACX,aAAa,IAAA6B,YAAA,CAAA3C,OAAA;QAAA;QAAA,WAGPyB,KAAK,CAACmB,OAAO;QAAA,SACfnB,KAAK,CAACX;MAAa,QAE9B,EAECW,KAAK,CAACV,WAAW,IAAA4B,YAAA,CAAAzC,KAAA;QAAA;QAAA,WAGLuB,KAAK,CAACmB,OAAO;QAAA,QAChBnB,KAAK,CAACV;MAAW,QAE3B,KAAA4B,YAAA,CAAA1C,iBAAA;QAAA;QAAA,YAKU,CAAC4B,eAAe;QAAA,YACjB;UACR7B,OAAO,EAAE;YACP4C,OAAO,EAAEnB,KAAK,CAACmB,OAAO;YACtBC,KAAK,EAAEpB,KAAK,CAACX;UACf,CAAC;UACDZ,KAAK,EAAE;YACL0C,OAAO,EAAEnB,KAAK,CAACmB,OAAO;YACtBE,IAAI,EAAErB,KAAK,CAACV;UACd;QACF;MAAC,GACiBa,KAAK,CAACG,OAAO,CAElC,EAEJ,EAAAM,mBAAA;QAAA;MAAA,IAGGF,QAAQ,IAAAQ,YAAA,CAAA5C,UAAA;QAAA;MAAA;QAAAqB,OAAA,EAAAA,CAAA,MAEJQ,KAAK,CAACN,KAAK,GAAG,CAAC,IAAIhB,eAAe,CAACmB,KAAK,CAACH,KAAK,CAAC;MAAA,EAEpD,EAECc,WAAW,IAAAO,YAAA,CAAA7C,aAAA;QAAA;MAAA;QAAAsB,OAAA,EAAAA,CAAA,MAEPQ,KAAK,CAACZ,QAAQ,GAAG,CAAC,IAAIV,eAAe,CAACmB,KAAK,CAACT,QAAQ,CAAC;MAAA,EAE1D,EAECY,KAAK,CAACR,OAAO,GAAG,CAAC,IAGnBa,SAAS,IAAAI,mBAAA;QAAA;QAAA;MAAA,IAEL,CAACT,KAAK,CAACM,MAAM,GAAAG,mBAAA,CAAAK,SAAA,SAETjB,KAAK,CAACZ,UAAU,IAAA8B,YAAA,CAAAzC,KAAA;QAAA;QAAA,WAGJuB,KAAK,CAACmB,OAAO;QAAA,QAChBnB,KAAK,CAACZ;MAAU,QAE1B,EAECY,KAAK,CAACd,YAAY,IAAAgC,YAAA,CAAA3C,OAAA;QAAA;QAAA,WAGNyB,KAAK,CAACmB,OAAO;QAAA,SACfnB,KAAK,CAACd;MAAY,QAE7B,KAAAgC,YAAA,CAAA1C,iBAAA;QAAA;QAAA,YAKU,CAAC+B,cAAc;QAAA,YAChB;UACRhC,OAAO,EAAE;YACP4C,OAAO,EAAEnB,KAAK,CAACmB,OAAO;YACtBC,KAAK,EAAEpB,KAAK,CAACd;UACf,CAAC;UACDT,KAAK,EAAE;YACL0C,OAAO,EAAEnB,KAAK,CAACmB,OAAO;YACtBE,IAAI,EAAErB,KAAK,CAACZ;UACd;QACF;MAAC,GACiBe,KAAK,CAACM,MAAM,CAEjC,EAEJ;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VCardItem.js","names":["VCardSubtitle","VCardTitle","VAvatar","VDefaultsProvider","VIcon","makeComponentProps","makeDensityProps","IconValue","makeTagProps","toDisplayString","genericComponent","propsFactory","useRender","makeCardItemProps","appendAvatar","String","appendIcon","prependAvatar","prependIcon","subtitle","type","Number","Boolean","default","undefined","title","VCardItem","name","props","setup","_ref","slots","hasPrependMedia","hasPrepend","prepend","hasAppendMedia","hasAppend","append","hasTitle","hasSubtitle","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style","_createElementVNode","_Fragment","density","image","icon"],"sources":["../../../src/components/VCard/VCardItem.tsx"],"sourcesContent":["// Components\nimport { VCardSubtitle } from './VCardSubtitle'\nimport { VCardTitle } from './VCardTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { toDisplayString } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VCardItemSlots = {\n default: never\n prepend: never\n append: never\n title: never\n subtitle: never\n}\n\nexport const makeCardItemProps = propsFactory({\n appendAvatar: String,\n appendIcon: IconValue,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: {\n type: [String, Number, Boolean],\n default: undefined,\n },\n title: {\n type: [String, Number, Boolean],\n default: undefined,\n },\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeTagProps(),\n}, 'VCardItem')\n\nexport const VCardItem = genericComponent<VCardItemSlots>()({\n name: 'VCardItem',\n\n props: makeCardItemProps(),\n\n setup (props, { slots }) {\n useRender(() => {\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasTitle = !!(props.title != null || slots.title)\n const hasSubtitle = !!(props.subtitle != null || slots.subtitle)\n\n return (\n <props.tag\n class={[\n 'v-card-item',\n props.class,\n ]}\n style={ props.style }\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-card-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-card-item__content\">\n { hasTitle && (\n <VCardTitle key=\"title\">\n { slots.title?.() ?? toDisplayString(props.title) }\n </VCardTitle>\n )}\n\n { hasSubtitle && (\n <VCardSubtitle key=\"subtitle\">\n { slots.subtitle?.() ?? toDisplayString(props.subtitle) }\n </VCardSubtitle>\n )}\n\n { slots.default?.() }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-card-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n }}\n v-slots:default={ slots.append }\n />\n )}\n </div>\n )}\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VCardItem = InstanceType<typeof VCardItem>\n"],"mappings":";AAAA;AAAA,SACSA,aAAa;AAAA,SACbC,UAAU;AAAA,SACVC,OAAO;AAAA,SACPC,iBAAiB;AAAA,SACjBC,KAAK,6BAEd;AAAA,SACSC,kBAAkB;AAAA,SAClBC,gBAAgB;AAAA,SAChBC,SAAS;AAAA,SACTC,YAAY,oCAErB;AACA,SAASC,eAAe,QAAQ,KAAK;AAAA,SAC5BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAUlD,OAAO,MAAMC,iBAAiB,GAAGF,YAAY,CAAC;EAC5CG,YAAY,EAAEC,MAAM;EACpBC,UAAU,EAAET,SAAS;EACrBU,aAAa,EAAEF,MAAM;EACrBG,WAAW,EAAEX,SAAS;EACtBY,QAAQ,EAAE;IACRC,IAAI,EAAE,CAACL,MAAM,EAAEM,MAAM,EAAEC,OAAO,CAAC;IAC/BC,OAAO,EAAEC;EACX,CAAC;EACDC,KAAK,EAAE;IACLL,IAAI,EAAE,CAACL,MAAM,EAAEM,MAAM,EAAEC,OAAO,CAAC;IAC/BC,OAAO,EAAEC;EACX,CAAC;EAED,GAAGnB,kBAAkB,CAAC,CAAC;EACvB,GAAGC,gBAAgB,CAAC,CAAC;EACrB,GAAGE,YAAY,CAAC;AAClB,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMkB,SAAS,GAAGhB,gBAAgB,CAAiB,CAAC,CAAC;EAC1DiB,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEf,iBAAiB,CAAC,CAAC;EAE1BgB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBlB,SAAS,CAAC,MAAM;MACd,MAAMoB,eAAe,GAAG,CAAC,EAAEJ,KAAK,CAACX,aAAa,IAAIW,KAAK,CAACV,WAAW,CAAC;MACpE,MAAMe,UAAU,GAAG,CAAC,EAAED,eAAe,IAAID,KAAK,CAACG,OAAO,CAAC;MACvD,MAAMC,cAAc,GAAG,CAAC,EAAEP,KAAK,CAACd,YAAY,IAAIc,KAAK,CAACZ,UAAU,CAAC;MACjE,MAAMoB,SAAS,GAAG,CAAC,EAAED,cAAc,IAAIJ,KAAK,CAACM,MAAM,CAAC;MACpD,MAAMC,QAAQ,GAAG,CAAC,EAAEV,KAAK,CAACH,KAAK,IAAI,IAAI,IAAIM,KAAK,CAACN,KAAK,CAAC;MACvD,MAAMc,WAAW,GAAG,CAAC,EAAEX,KAAK,CAACT,QAAQ,IAAI,IAAI,IAAIY,KAAK,CAACZ,QAAQ,CAAC;MAEhE,OAAAqB,YAAA,CAAAZ,KAAA,CAAAa,GAAA;QAAA,SAAAC,eAAA,CAEW,CACL,aAAa,EACbd,KAAK,CAACe,KAAK,CACZ;QAAA,SAAAC,eAAA,CACOhB,KAAK,CAACiB,KAAK;MAAA;QAAAtB,OAAA,EAAAA,CAAA,MAEjBU,UAAU,IAAAa,mBAAA;UAAA;UAAA;QAAA,IAEN,CAACf,KAAK,CAACG,OAAO,GAAAY,mBAAA,CAAAC,SAAA,SAEVnB,KAAK,CAACX,aAAa,IAAAuB,YAAA,CAAAtC,OAAA;UAAA;UAAA,WAGP0B,KAAK,CAACoB,OAAO;UAAA,SACfpB,KAAK,CAACX;QAAa,QAE9B,EAECW,KAAK,CAACV,WAAW,IAAAsB,YAAA,CAAApC,KAAA;UAAA;UAAA,WAGLwB,KAAK,CAACoB,OAAO;UAAA,QAChBpB,KAAK,CAACV;QAAW,QAE3B,KAAAsB,YAAA,CAAArC,iBAAA;UAAA;UAAA,YAKU,CAAC6B,eAAe;UAAA,YACjB;YACR9B,OAAO,EAAE;cACP8C,OAAO,EAAEpB,KAAK,CAACoB,OAAO;cACtBC,KAAK,EAAErB,KAAK,CAACX;YACf,CAAC;YACDb,KAAK,EAAE;cACL4C,OAAO,EAAEpB,KAAK,CAACoB,OAAO;cACtBE,IAAI,EAAEtB,KAAK,CAACV;YACd;UACF;QAAC,GACiBa,KAAK,CAACG,OAAO,CAElC,EAEJ,EAAAY,mBAAA;UAAA;QAAA,IAGGR,QAAQ,IAAAE,YAAA,CAAAvC,UAAA;UAAA;QAAA;UAAAsB,OAAA,EAAAA,CAAA,MAEJQ,KAAK,CAACN,KAAK,GAAG,CAAC,IAAIhB,eAAe,CAACmB,KAAK,CAACH,KAAK,CAAC;QAAA,EAEpD,EAECc,WAAW,IAAAC,YAAA,CAAAxC,aAAA;UAAA;QAAA;UAAAuB,OAAA,EAAAA,CAAA,MAEPQ,KAAK,CAACZ,QAAQ,GAAG,CAAC,IAAIV,eAAe,CAACmB,KAAK,CAACT,QAAQ,CAAC;QAAA,EAE1D,EAECY,KAAK,CAACR,OAAO,GAAG,CAAC,IAGnBa,SAAS,IAAAU,mBAAA;UAAA;UAAA;QAAA,IAEL,CAACf,KAAK,CAACM,MAAM,GAAAS,mBAAA,CAAAC,SAAA,SAETnB,KAAK,CAACZ,UAAU,IAAAwB,YAAA,CAAApC,KAAA;UAAA;UAAA,WAGJwB,KAAK,CAACoB,OAAO;UAAA,QAChBpB,KAAK,CAACZ;QAAU,QAE1B,EAECY,KAAK,CAACd,YAAY,IAAA0B,YAAA,CAAAtC,OAAA;UAAA;UAAA,WAGN0B,KAAK,CAACoB,OAAO;UAAA,SACfpB,KAAK,CAACd;QAAY,QAE7B,KAAA0B,YAAA,CAAArC,iBAAA;UAAA;UAAA,YAKU,CAACgC,cAAc;UAAA,YAChB;YACRjC,OAAO,EAAE;cACP8C,OAAO,EAAEpB,KAAK,CAACoB,OAAO;cACtBC,KAAK,EAAErB,KAAK,CAACd;YACf,CAAC;YACDV,KAAK,EAAE;cACL4C,OAAO,EAAEpB,KAAK,CAACoB,OAAO;cACtBE,IAAI,EAAEtB,KAAK,CAACZ;YACd;UACF;QAAC,GACiBe,KAAK,CAACM,MAAM,CAEjC,EAEJ;MAAA;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -70,6 +70,7 @@ export declare function filterItems(items: readonly (readonly [item: InternalIte
70
70
  }): {
71
71
  index: number;
72
72
  matches: Record<string, FilterMatchArrayMultiple | undefined>;
73
+ type?: "divider" | "subheader";
73
74
  }[];
74
75
  export declare function useFilter<T extends InternalItem>(props: FilterProps, items: MaybeRef<T[]>, query: Ref<string | undefined> | (() => string | undefined), options?: {
75
76
  transform?: (item: T) => {};
@@ -47,6 +47,7 @@ export function filterItems(items, query, options) {
47
47
  const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false;
48
48
  const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length;
49
49
  if (!items?.length) return array;
50
+ let lookAheadItem = null;
50
51
  loop: for (let i = 0; i < items.length; i++) {
51
52
  const [item, transformed = item] = wrapInArray(items[i]);
52
53
  const customMatches = {};
@@ -55,6 +56,14 @@ export function filterItems(items, query, options) {
55
56
  if ((query || customFiltersLength > 0) && !options?.noFilter) {
56
57
  if (typeof item === 'object') {
57
58
  if (item.type === 'divider' || item.type === 'subheader') {
59
+ if (lookAheadItem?.type === 'divider' && item.type === 'subheader') {
60
+ array.push(lookAheadItem); // divider before subheader
61
+ }
62
+ lookAheadItem = {
63
+ index: i,
64
+ matches: {},
65
+ type: item.type
66
+ };
58
67
  continue;
59
68
  }
60
69
  const filterKeys = keys || Object.keys(transformed);
@@ -80,6 +89,10 @@ export function filterItems(items, query, options) {
80
89
  if (options?.filterMode === 'union' && customMatchesLength !== customFiltersLength && !defaultMatchesLength) continue;
81
90
  if (options?.filterMode === 'intersection' && (customMatchesLength !== customFiltersLength || !defaultMatchesLength)) continue;
82
91
  }
92
+ if (lookAheadItem) {
93
+ array.push(lookAheadItem);
94
+ lookAheadItem = null;
95
+ }
83
96
  array.push({
84
97
  index: i,
85
98
  matches: {
@@ -1 +1 @@
1
- {"version":3,"file":"filter.js","names":["computed","shallowRef","unref","watchEffect","normalizeClass","_normalizeClass","createElementVNode","_createElementVNode","Fragment","_Fragment","getPropertyFromItem","propsFactory","wrapInArray","defaultFilter","value","query","item","length","toString","toLocaleLowerCase","result","idx","indexOf","push","normaliseMatch","match","Array","isArray","makeFilterProps","customFilter","Function","customKeyFilter","Object","filterKeys","String","filterMode","type","default","noFilter","Boolean","filterItems","items","options","array","filter","keys","customFiltersLength","loop","i","transformed","customMatches","defaultMatches","key","keyFilter","title","defaultMatchesLength","customMatchesLength","index","matches","useFilter","props","filteredItems","filteredMatches","Map","transformedItems","transform","map","_query","strQuery","results","originalItems","_filteredItems","_filteredMatches","forEach","_ref","set","getMatches","get","highlightResult","name","text","start","slice"],"sources":["../../src/composables/filter.tsx"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, shallowRef, unref, watchEffect } from 'vue'\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\n/**\n * - boolean: match without highlight\n * - number: single match (index), length already known\n * - []: single match (start, end)\n * - [][]: multiple matches (start, end), shouldn't overlap\n */\nexport type FilterMatchArraySingle = readonly [number, number]\nexport type FilterMatchArrayMultiple = readonly FilterMatchArraySingle[]\nexport type FilterMatchArray = FilterMatchArraySingle | FilterMatchArrayMultiple\nexport type FilterMatch = boolean | number | FilterMatchArray\nexport type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\nexport interface InternalItem<T = any> {\n value: any\n raw: T\n type?: string\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n if (!query.length) return 0\n\n value = value.toString().toLocaleLowerCase()\n query = query.toString().toLocaleLowerCase()\n\n const result = []\n let idx = value.indexOf(query)\n while (~idx) {\n result.push([idx, idx + query.length] as const)\n\n idx = value.indexOf(query, idx + query.length)\n }\n\n return result.length ? result : -1\n}\n\nfunction normaliseMatch (match: FilterMatch, query: string): FilterMatchArrayMultiple | undefined {\n if (match == null || typeof match === 'boolean' || match === -1) return\n if (typeof match === 'number') return [[match, match + query.length]]\n if (Array.isArray(match[0])) return match as FilterMatchArrayMultiple\n return [match] as FilterMatchArrayMultiple\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: readonly (readonly [item: InternalItem, transformed: {}])[] | readonly InternalItem[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { index: number, matches: Record<string, FilterMatchArrayMultiple | undefined> }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]) as readonly [InternalItem, {}]\n const customMatches: Record<string, FilterMatchArrayMultiple | undefined> = {}\n const defaultMatches: Record<string, FilterMatchArrayMultiple | undefined> = {}\n let match: FilterMatch = -1\n\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n if (item.type === 'divider' || item.type === 'subheader') {\n continue\n }\n\n const filterKeys = keys || Object.keys(transformed)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = normaliseMatch(match, query)\n else defaultMatches[key] = normaliseMatch(match, query)\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = normaliseMatch(match, query)\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter <T extends InternalItem> (\n props: FilterProps,\n items: MaybeRef<T[]>,\n query: Ref<string | undefined> | (() => string | undefined),\n options?: {\n transform?: (item: T) => {}\n customKeyFilter?: MaybeRef<FilterKeyFunctions | undefined>\n }\n) {\n const filteredItems = shallowRef<T[]>([])\n const filteredMatches = shallowRef(new Map<unknown, Record<string, FilterMatchArrayMultiple | undefined>>())\n const transformedItems = computed(() => (\n options?.transform\n ? unref(items).map(item => ([item, options.transform!(item)] as const))\n : unref(items)\n ))\n\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query)\n const strQuery = (\n typeof _query !== 'string' &&\n typeof _query !== 'number'\n ) ? '' : String(_query)\n\n const results = filterItems(\n transformedItems.value,\n strQuery,\n {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter),\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n const originalItems = unref(items)\n\n const _filteredItems: typeof filteredItems['value'] = []\n const _filteredMatches: typeof filteredMatches['value'] = new Map()\n results.forEach(({ index, matches }) => {\n const item = originalItems[index]\n _filteredItems.push(item)\n _filteredMatches.set(item.value, matches)\n })\n filteredItems.value = _filteredItems\n filteredMatches.value = _filteredMatches\n })\n\n function getMatches (item: T) {\n return filteredMatches.value.get(item.value)\n }\n\n return { filteredItems, filteredMatches, getMatches }\n}\n\nexport function highlightResult (name: string, text: string, matches: FilterMatchArrayMultiple | undefined) {\n if (matches == null || !matches.length) return text\n\n return matches.map((match, i) => {\n const start = i === 0 ? 0 : matches[i - 1][1]\n const result = [\n <span class={ `${name}__unmask` }>{ text.slice(start, match[0]) }</span>,\n <span class={ `${name}__mask` }>{ text.slice(match[0], match[1]) }</span>,\n ]\n if (i === matches.length - 1) {\n result.push(<span class={ `${name}__unmask` }>{ text.slice(match[1]) }</span>)\n }\n return <>{ result }</>\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"filter.js","names":["computed","shallowRef","unref","watchEffect","normalizeClass","_normalizeClass","createElementVNode","_createElementVNode","Fragment","_Fragment","getPropertyFromItem","propsFactory","wrapInArray","defaultFilter","value","query","item","length","toString","toLocaleLowerCase","result","idx","indexOf","push","normaliseMatch","match","Array","isArray","makeFilterProps","customFilter","Function","customKeyFilter","Object","filterKeys","String","filterMode","type","default","noFilter","Boolean","filterItems","items","options","array","filter","keys","customFiltersLength","lookAheadItem","loop","i","transformed","customMatches","defaultMatches","index","matches","key","keyFilter","title","defaultMatchesLength","customMatchesLength","useFilter","props","filteredItems","filteredMatches","Map","transformedItems","transform","map","_query","strQuery","results","originalItems","_filteredItems","_filteredMatches","forEach","_ref","set","getMatches","get","highlightResult","name","text","start","slice"],"sources":["../../src/composables/filter.tsx"],"sourcesContent":["/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { computed, shallowRef, unref, watchEffect } from 'vue'\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\n/**\n * - boolean: match without highlight\n * - number: single match (index), length already known\n * - []: single match (start, end)\n * - [][]: multiple matches (start, end), shouldn't overlap\n */\nexport type FilterMatchArraySingle = readonly [number, number]\nexport type FilterMatchArrayMultiple = readonly FilterMatchArraySingle[]\nexport type FilterMatchArray = FilterMatchArraySingle | FilterMatchArrayMultiple\nexport type FilterMatch = boolean | number | FilterMatchArray\nexport type FilterFunction = (value: string, query: string, item?: InternalItem) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\nexport interface InternalItem<T = any> {\n value: any\n raw: T\n type?: string\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n if (!query.length) return 0\n\n value = value.toString().toLocaleLowerCase()\n query = query.toString().toLocaleLowerCase()\n\n const result = []\n let idx = value.indexOf(query)\n while (~idx) {\n result.push([idx, idx + query.length] as const)\n\n idx = value.indexOf(query, idx + query.length)\n }\n\n return result.length ? result : -1\n}\n\nfunction normaliseMatch (match: FilterMatch, query: string): FilterMatchArrayMultiple | undefined {\n if (match == null || typeof match === 'boolean' || match === -1) return\n if (typeof match === 'number') return [[match, match + query.length]]\n if (Array.isArray(match[0])) return match as FilterMatchArrayMultiple\n return [match] as FilterMatchArrayMultiple\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems (\n items: readonly (readonly [item: InternalItem, transformed: {}])[] | readonly InternalItem[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n type FilterResult = { index: number, matches: Record<string, FilterMatchArrayMultiple | undefined>, type?: 'divider' | 'subheader' }\n const array: FilterResult[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n let lookAheadItem: FilterResult | null = null\n\n loop:\n for (let i = 0; i < items.length; i++) {\n const [item, transformed = item] = wrapInArray(items[i]) as readonly [InternalItem, {}]\n const customMatches: Record<string, FilterMatchArrayMultiple | undefined> = {}\n const defaultMatches: Record<string, FilterMatchArrayMultiple | undefined> = {}\n let match: FilterMatch = -1\n\n if ((query || customFiltersLength > 0) && !options?.noFilter) {\n if (typeof item === 'object') {\n if (item.type === 'divider' || item.type === 'subheader') {\n if (lookAheadItem?.type === 'divider' && item.type === 'subheader') {\n array.push(lookAheadItem) // divider before subheader\n }\n\n lookAheadItem = { index: i, matches: { }, type: item.type }\n continue\n }\n\n const filterKeys = keys || Object.keys(transformed)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(transformed, key)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = normaliseMatch(match, query)\n else defaultMatches[key] = normaliseMatch(match, query)\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = normaliseMatch(match, query)\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n if (lookAheadItem) {\n array.push(lookAheadItem)\n lookAheadItem = null\n }\n\n array.push({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter <T extends InternalItem> (\n props: FilterProps,\n items: MaybeRef<T[]>,\n query: Ref<string | undefined> | (() => string | undefined),\n options?: {\n transform?: (item: T) => {}\n customKeyFilter?: MaybeRef<FilterKeyFunctions | undefined>\n }\n) {\n const filteredItems = shallowRef<T[]>([])\n const filteredMatches = shallowRef(new Map<unknown, Record<string, FilterMatchArrayMultiple | undefined>>())\n const transformedItems = computed(() => (\n options?.transform\n ? unref(items).map(item => ([item, options.transform!(item)] as const))\n : unref(items)\n ))\n\n watchEffect(() => {\n const _query = typeof query === 'function' ? query() : unref(query)\n const strQuery = (\n typeof _query !== 'string' &&\n typeof _query !== 'number'\n ) ? '' : String(_query)\n\n const results = filterItems(\n transformedItems.value,\n strQuery,\n {\n customKeyFilter: {\n ...props.customKeyFilter,\n ...unref(options?.customKeyFilter),\n },\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n\n const originalItems = unref(items)\n\n const _filteredItems: typeof filteredItems['value'] = []\n const _filteredMatches: typeof filteredMatches['value'] = new Map()\n results.forEach(({ index, matches }) => {\n const item = originalItems[index]\n _filteredItems.push(item)\n _filteredMatches.set(item.value, matches)\n })\n filteredItems.value = _filteredItems\n filteredMatches.value = _filteredMatches\n })\n\n function getMatches (item: T) {\n return filteredMatches.value.get(item.value)\n }\n\n return { filteredItems, filteredMatches, getMatches }\n}\n\nexport function highlightResult (name: string, text: string, matches: FilterMatchArrayMultiple | undefined) {\n if (matches == null || !matches.length) return text\n\n return matches.map((match, i) => {\n const start = i === 0 ? 0 : matches[i - 1][1]\n const result = [\n <span class={ `${name}__unmask` }>{ text.slice(start, match[0]) }</span>,\n <span class={ `${name}__mask` }>{ text.slice(match[0], match[1]) }</span>,\n ]\n if (i === matches.length - 1) {\n result.push(<span class={ `${name}__unmask` }>{ text.slice(match[1]) }</span>)\n }\n return <>{ result }</>\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.9.5-dev.2025-08-12";
19
+ export const version = "3.9.5-dev.2025-08-24";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";