@mcp-elements/vue 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Mayur Rawte
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,612 @@
1
+ import * as vue from 'vue';
2
+ import { SelectOption } from '@mcp-elements/core';
3
+
4
+ type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'link';
5
+ type ButtonSize = 'sm' | 'md' | 'lg' | 'icon';
6
+ declare const McpeButton: vue.DefineComponent<vue.ExtractPropTypes<{
7
+ variant: {
8
+ type: () => ButtonVariant;
9
+ default: string;
10
+ };
11
+ size: {
12
+ type: () => ButtonSize;
13
+ default: string;
14
+ };
15
+ disabled: {
16
+ type: BooleanConstructor;
17
+ default: boolean;
18
+ };
19
+ type: {
20
+ type: () => "button" | "submit" | "reset";
21
+ default: string;
22
+ };
23
+ class: {
24
+ type: StringConstructor;
25
+ default: string;
26
+ };
27
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
28
+ [key: string]: any;
29
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
30
+ variant: {
31
+ type: () => ButtonVariant;
32
+ default: string;
33
+ };
34
+ size: {
35
+ type: () => ButtonSize;
36
+ default: string;
37
+ };
38
+ disabled: {
39
+ type: BooleanConstructor;
40
+ default: boolean;
41
+ };
42
+ type: {
43
+ type: () => "button" | "submit" | "reset";
44
+ default: string;
45
+ };
46
+ class: {
47
+ type: StringConstructor;
48
+ default: string;
49
+ };
50
+ }>> & Readonly<{}>, {
51
+ variant: ButtonVariant;
52
+ size: ButtonSize;
53
+ disabled: boolean;
54
+ type: "button" | "submit" | "reset";
55
+ class: string;
56
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
57
+
58
+ declare const McpeCard: vue.DefineComponent<vue.ExtractPropTypes<{
59
+ class: {
60
+ type: StringConstructor;
61
+ default: string;
62
+ };
63
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
64
+ [key: string]: any;
65
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
66
+ class: {
67
+ type: StringConstructor;
68
+ default: string;
69
+ };
70
+ }>> & Readonly<{}>, {
71
+ class: string;
72
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
73
+ declare const McpeCardHeader: vue.DefineComponent<vue.ExtractPropTypes<{
74
+ class: {
75
+ type: StringConstructor;
76
+ default: string;
77
+ };
78
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
79
+ [key: string]: any;
80
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
81
+ class: {
82
+ type: StringConstructor;
83
+ default: string;
84
+ };
85
+ }>> & Readonly<{}>, {
86
+ class: string;
87
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
88
+ declare const McpeCardTitle: vue.DefineComponent<vue.ExtractPropTypes<{
89
+ class: {
90
+ type: StringConstructor;
91
+ default: string;
92
+ };
93
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
94
+ [key: string]: any;
95
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
96
+ class: {
97
+ type: StringConstructor;
98
+ default: string;
99
+ };
100
+ }>> & Readonly<{}>, {
101
+ class: string;
102
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
103
+ declare const McpeCardDescription: vue.DefineComponent<vue.ExtractPropTypes<{
104
+ class: {
105
+ type: StringConstructor;
106
+ default: string;
107
+ };
108
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
109
+ [key: string]: any;
110
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
111
+ class: {
112
+ type: StringConstructor;
113
+ default: string;
114
+ };
115
+ }>> & Readonly<{}>, {
116
+ class: string;
117
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
118
+ declare const McpeCardContent: vue.DefineComponent<vue.ExtractPropTypes<{
119
+ class: {
120
+ type: StringConstructor;
121
+ default: string;
122
+ };
123
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
124
+ [key: string]: any;
125
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
126
+ class: {
127
+ type: StringConstructor;
128
+ default: string;
129
+ };
130
+ }>> & Readonly<{}>, {
131
+ class: string;
132
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
133
+ declare const McpeCardFooter: vue.DefineComponent<vue.ExtractPropTypes<{
134
+ class: {
135
+ type: StringConstructor;
136
+ default: string;
137
+ };
138
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
139
+ [key: string]: any;
140
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
141
+ class: {
142
+ type: StringConstructor;
143
+ default: string;
144
+ };
145
+ }>> & Readonly<{}>, {
146
+ class: string;
147
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
148
+
149
+ type BadgeVariant = 'default' | 'secondary' | 'outline' | 'destructive';
150
+ type BadgeSize = 'sm' | 'md';
151
+ declare const McpeBadge: vue.DefineComponent<vue.ExtractPropTypes<{
152
+ variant: {
153
+ type: () => BadgeVariant;
154
+ default: string;
155
+ };
156
+ size: {
157
+ type: () => BadgeSize;
158
+ default: string;
159
+ };
160
+ class: {
161
+ type: StringConstructor;
162
+ default: string;
163
+ };
164
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
165
+ [key: string]: any;
166
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
167
+ variant: {
168
+ type: () => BadgeVariant;
169
+ default: string;
170
+ };
171
+ size: {
172
+ type: () => BadgeSize;
173
+ default: string;
174
+ };
175
+ class: {
176
+ type: StringConstructor;
177
+ default: string;
178
+ };
179
+ }>> & Readonly<{}>, {
180
+ variant: BadgeVariant;
181
+ size: BadgeSize;
182
+ class: string;
183
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
184
+
185
+ declare const McpeInput: vue.DefineComponent<vue.ExtractPropTypes<{
186
+ modelValue: {
187
+ type: StringConstructor;
188
+ default: string;
189
+ };
190
+ label: {
191
+ type: StringConstructor;
192
+ default: string;
193
+ };
194
+ error: {
195
+ type: StringConstructor;
196
+ default: string;
197
+ };
198
+ helperText: {
199
+ type: StringConstructor;
200
+ default: string;
201
+ };
202
+ disabled: {
203
+ type: BooleanConstructor;
204
+ default: boolean;
205
+ };
206
+ placeholder: {
207
+ type: StringConstructor;
208
+ default: string;
209
+ };
210
+ type: {
211
+ type: StringConstructor;
212
+ default: string;
213
+ };
214
+ id: {
215
+ type: StringConstructor;
216
+ default: string;
217
+ };
218
+ class: {
219
+ type: StringConstructor;
220
+ default: string;
221
+ };
222
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
223
+ [key: string]: any;
224
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
225
+ modelValue: {
226
+ type: StringConstructor;
227
+ default: string;
228
+ };
229
+ label: {
230
+ type: StringConstructor;
231
+ default: string;
232
+ };
233
+ error: {
234
+ type: StringConstructor;
235
+ default: string;
236
+ };
237
+ helperText: {
238
+ type: StringConstructor;
239
+ default: string;
240
+ };
241
+ disabled: {
242
+ type: BooleanConstructor;
243
+ default: boolean;
244
+ };
245
+ placeholder: {
246
+ type: StringConstructor;
247
+ default: string;
248
+ };
249
+ type: {
250
+ type: StringConstructor;
251
+ default: string;
252
+ };
253
+ id: {
254
+ type: StringConstructor;
255
+ default: string;
256
+ };
257
+ class: {
258
+ type: StringConstructor;
259
+ default: string;
260
+ };
261
+ }>> & Readonly<{
262
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
263
+ }>, {
264
+ disabled: boolean;
265
+ type: string;
266
+ class: string;
267
+ label: string;
268
+ error: string;
269
+ modelValue: string;
270
+ helperText: string;
271
+ placeholder: string;
272
+ id: string;
273
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
274
+
275
+ declare const McpeTextarea: vue.DefineComponent<vue.ExtractPropTypes<{
276
+ modelValue: {
277
+ type: StringConstructor;
278
+ default: string;
279
+ };
280
+ label: {
281
+ type: StringConstructor;
282
+ default: string;
283
+ };
284
+ error: {
285
+ type: StringConstructor;
286
+ default: string;
287
+ };
288
+ helperText: {
289
+ type: StringConstructor;
290
+ default: string;
291
+ };
292
+ rows: {
293
+ type: NumberConstructor;
294
+ default: number;
295
+ };
296
+ disabled: {
297
+ type: BooleanConstructor;
298
+ default: boolean;
299
+ };
300
+ placeholder: {
301
+ type: StringConstructor;
302
+ default: string;
303
+ };
304
+ id: {
305
+ type: StringConstructor;
306
+ default: string;
307
+ };
308
+ class: {
309
+ type: StringConstructor;
310
+ default: string;
311
+ };
312
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
313
+ [key: string]: any;
314
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
315
+ modelValue: {
316
+ type: StringConstructor;
317
+ default: string;
318
+ };
319
+ label: {
320
+ type: StringConstructor;
321
+ default: string;
322
+ };
323
+ error: {
324
+ type: StringConstructor;
325
+ default: string;
326
+ };
327
+ helperText: {
328
+ type: StringConstructor;
329
+ default: string;
330
+ };
331
+ rows: {
332
+ type: NumberConstructor;
333
+ default: number;
334
+ };
335
+ disabled: {
336
+ type: BooleanConstructor;
337
+ default: boolean;
338
+ };
339
+ placeholder: {
340
+ type: StringConstructor;
341
+ default: string;
342
+ };
343
+ id: {
344
+ type: StringConstructor;
345
+ default: string;
346
+ };
347
+ class: {
348
+ type: StringConstructor;
349
+ default: string;
350
+ };
351
+ }>> & Readonly<{
352
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
353
+ }>, {
354
+ disabled: boolean;
355
+ class: string;
356
+ label: string;
357
+ error: string;
358
+ modelValue: string;
359
+ helperText: string;
360
+ placeholder: string;
361
+ id: string;
362
+ rows: number;
363
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
364
+
365
+ declare const McpeSelect: vue.DefineComponent<vue.ExtractPropTypes<{
366
+ modelValue: {
367
+ type: StringConstructor;
368
+ default: string;
369
+ };
370
+ options: {
371
+ type: () => SelectOption[];
372
+ default: () => never[];
373
+ };
374
+ label: {
375
+ type: StringConstructor;
376
+ default: string;
377
+ };
378
+ error: {
379
+ type: StringConstructor;
380
+ default: string;
381
+ };
382
+ disabled: {
383
+ type: BooleanConstructor;
384
+ default: boolean;
385
+ };
386
+ placeholder: {
387
+ type: StringConstructor;
388
+ default: string;
389
+ };
390
+ id: {
391
+ type: StringConstructor;
392
+ default: string;
393
+ };
394
+ class: {
395
+ type: StringConstructor;
396
+ default: string;
397
+ };
398
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
399
+ [key: string]: any;
400
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
401
+ modelValue: {
402
+ type: StringConstructor;
403
+ default: string;
404
+ };
405
+ options: {
406
+ type: () => SelectOption[];
407
+ default: () => never[];
408
+ };
409
+ label: {
410
+ type: StringConstructor;
411
+ default: string;
412
+ };
413
+ error: {
414
+ type: StringConstructor;
415
+ default: string;
416
+ };
417
+ disabled: {
418
+ type: BooleanConstructor;
419
+ default: boolean;
420
+ };
421
+ placeholder: {
422
+ type: StringConstructor;
423
+ default: string;
424
+ };
425
+ id: {
426
+ type: StringConstructor;
427
+ default: string;
428
+ };
429
+ class: {
430
+ type: StringConstructor;
431
+ default: string;
432
+ };
433
+ }>> & Readonly<{
434
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
435
+ }>, {
436
+ disabled: boolean;
437
+ class: string;
438
+ label: string;
439
+ error: string;
440
+ modelValue: string;
441
+ placeholder: string;
442
+ id: string;
443
+ options: SelectOption[];
444
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
445
+
446
+ declare const McpeSwitch: vue.DefineComponent<vue.ExtractPropTypes<{
447
+ modelValue: {
448
+ type: BooleanConstructor;
449
+ default: boolean;
450
+ };
451
+ label: {
452
+ type: StringConstructor;
453
+ default: string;
454
+ };
455
+ disabled: {
456
+ type: BooleanConstructor;
457
+ default: boolean;
458
+ };
459
+ id: {
460
+ type: StringConstructor;
461
+ default: string;
462
+ };
463
+ class: {
464
+ type: StringConstructor;
465
+ default: string;
466
+ };
467
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
468
+ [key: string]: any;
469
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
470
+ modelValue: {
471
+ type: BooleanConstructor;
472
+ default: boolean;
473
+ };
474
+ label: {
475
+ type: StringConstructor;
476
+ default: string;
477
+ };
478
+ disabled: {
479
+ type: BooleanConstructor;
480
+ default: boolean;
481
+ };
482
+ id: {
483
+ type: StringConstructor;
484
+ default: string;
485
+ };
486
+ class: {
487
+ type: StringConstructor;
488
+ default: string;
489
+ };
490
+ }>> & Readonly<{
491
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
492
+ }>, {
493
+ disabled: boolean;
494
+ class: string;
495
+ label: string;
496
+ modelValue: boolean;
497
+ id: string;
498
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
499
+
500
+ declare const McpeDialog: vue.DefineComponent<vue.ExtractPropTypes<{
501
+ modelValue: {
502
+ type: BooleanConstructor;
503
+ default: boolean;
504
+ };
505
+ modal: {
506
+ type: BooleanConstructor;
507
+ default: boolean;
508
+ };
509
+ class: {
510
+ type: StringConstructor;
511
+ default: string;
512
+ };
513
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
514
+ [key: string]: any;
515
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
516
+ modelValue: {
517
+ type: BooleanConstructor;
518
+ default: boolean;
519
+ };
520
+ modal: {
521
+ type: BooleanConstructor;
522
+ default: boolean;
523
+ };
524
+ class: {
525
+ type: StringConstructor;
526
+ default: string;
527
+ };
528
+ }>> & Readonly<{
529
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
530
+ }>, {
531
+ class: string;
532
+ modelValue: boolean;
533
+ modal: boolean;
534
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
535
+
536
+ type AlertVariant = 'default' | 'destructive' | 'success' | 'warning' | 'info' | 'error';
537
+ declare const McpeAlert: vue.DefineComponent<vue.ExtractPropTypes<{
538
+ variant: {
539
+ type: () => AlertVariant;
540
+ default: string;
541
+ };
542
+ title: {
543
+ type: StringConstructor;
544
+ default: string;
545
+ };
546
+ class: {
547
+ type: StringConstructor;
548
+ default: string;
549
+ };
550
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
551
+ [key: string]: any;
552
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
553
+ variant: {
554
+ type: () => AlertVariant;
555
+ default: string;
556
+ };
557
+ title: {
558
+ type: StringConstructor;
559
+ default: string;
560
+ };
561
+ class: {
562
+ type: StringConstructor;
563
+ default: string;
564
+ };
565
+ }>> & Readonly<{}>, {
566
+ variant: AlertVariant;
567
+ class: string;
568
+ title: string;
569
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
570
+
571
+ interface TabsItem {
572
+ value: string;
573
+ label: string;
574
+ disabled?: boolean;
575
+ }
576
+ declare const McpeTabs: vue.DefineComponent<vue.ExtractPropTypes<{
577
+ modelValue: {
578
+ type: StringConstructor;
579
+ default: string;
580
+ };
581
+ tabs: {
582
+ type: () => TabsItem[];
583
+ default: () => never[];
584
+ };
585
+ class: {
586
+ type: StringConstructor;
587
+ default: string;
588
+ };
589
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
590
+ [key: string]: any;
591
+ }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
592
+ modelValue: {
593
+ type: StringConstructor;
594
+ default: string;
595
+ };
596
+ tabs: {
597
+ type: () => TabsItem[];
598
+ default: () => never[];
599
+ };
600
+ class: {
601
+ type: StringConstructor;
602
+ default: string;
603
+ };
604
+ }>> & Readonly<{
605
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
606
+ }>, {
607
+ class: string;
608
+ modelValue: string;
609
+ tabs: TabsItem[];
610
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
611
+
612
+ export { McpeAlert, McpeBadge, McpeButton, McpeCard, McpeCardContent, McpeCardDescription, McpeCardFooter, McpeCardHeader, McpeCardTitle, McpeDialog, McpeInput, McpeSelect, McpeSwitch, McpeTabs, McpeTextarea };
package/dist/index.js ADDED
@@ -0,0 +1,517 @@
1
+ // src/button.ts
2
+ import { defineComponent, computed, h } from "vue";
3
+ import { cn } from "@mcp-elements/core";
4
+ var McpeButton = defineComponent({
5
+ name: "McpeButton",
6
+ props: {
7
+ variant: { type: String, default: "primary" },
8
+ size: { type: String, default: "md" },
9
+ disabled: { type: Boolean, default: false },
10
+ type: { type: String, default: "button" },
11
+ class: { type: String, default: "" }
12
+ },
13
+ setup(props, { slots }) {
14
+ const classes = computed(
15
+ () => cn("mcpe-btn", `mcpe-btn-${props.variant}`, `mcpe-btn-${props.size}`, props.class)
16
+ );
17
+ return () => h(
18
+ "button",
19
+ {
20
+ class: classes.value,
21
+ disabled: props.disabled,
22
+ type: props.type
23
+ },
24
+ slots.default?.()
25
+ );
26
+ }
27
+ });
28
+
29
+ // src/card.ts
30
+ import { defineComponent as defineComponent2, h as h2 } from "vue";
31
+ import { cn as cn2 } from "@mcp-elements/core";
32
+ var McpeCard = defineComponent2({
33
+ name: "McpeCard",
34
+ props: {
35
+ class: { type: String, default: "" }
36
+ },
37
+ setup(props, { slots }) {
38
+ return () => h2("div", { class: cn2("mcpe-card", props.class) }, slots.default?.());
39
+ }
40
+ });
41
+ var McpeCardHeader = defineComponent2({
42
+ name: "McpeCardHeader",
43
+ props: {
44
+ class: { type: String, default: "" }
45
+ },
46
+ setup(props, { slots }) {
47
+ return () => h2("div", { class: cn2("mcpe-card-header", props.class) }, slots.default?.());
48
+ }
49
+ });
50
+ var McpeCardTitle = defineComponent2({
51
+ name: "McpeCardTitle",
52
+ props: {
53
+ class: { type: String, default: "" }
54
+ },
55
+ setup(props, { slots }) {
56
+ return () => h2("h3", { class: cn2("mcpe-card-title", props.class) }, slots.default?.());
57
+ }
58
+ });
59
+ var McpeCardDescription = defineComponent2({
60
+ name: "McpeCardDescription",
61
+ props: {
62
+ class: { type: String, default: "" }
63
+ },
64
+ setup(props, { slots }) {
65
+ return () => h2("p", { class: cn2("mcpe-card-description", props.class) }, slots.default?.());
66
+ }
67
+ });
68
+ var McpeCardContent = defineComponent2({
69
+ name: "McpeCardContent",
70
+ props: {
71
+ class: { type: String, default: "" }
72
+ },
73
+ setup(props, { slots }) {
74
+ return () => h2("div", { class: cn2("mcpe-card-content", props.class) }, slots.default?.());
75
+ }
76
+ });
77
+ var McpeCardFooter = defineComponent2({
78
+ name: "McpeCardFooter",
79
+ props: {
80
+ class: { type: String, default: "" }
81
+ },
82
+ setup(props, { slots }) {
83
+ return () => h2("div", { class: cn2("mcpe-card-footer", props.class) }, slots.default?.());
84
+ }
85
+ });
86
+
87
+ // src/badge.ts
88
+ import { defineComponent as defineComponent3, computed as computed2, h as h3 } from "vue";
89
+ import { cn as cn3 } from "@mcp-elements/core";
90
+ var McpeBadge = defineComponent3({
91
+ name: "McpeBadge",
92
+ props: {
93
+ variant: { type: String, default: "default" },
94
+ size: { type: String, default: "md" },
95
+ class: { type: String, default: "" }
96
+ },
97
+ setup(props, { slots }) {
98
+ const classes = computed2(
99
+ () => cn3("mcpe-badge", `mcpe-badge-${props.variant}`, `mcpe-badge-${props.size}`, props.class)
100
+ );
101
+ return () => h3("div", { class: classes.value }, slots.default?.());
102
+ }
103
+ });
104
+
105
+ // src/input.ts
106
+ import { defineComponent as defineComponent4, computed as computed3, h as h4 } from "vue";
107
+ import { cn as cn4 } from "@mcp-elements/core";
108
+ var McpeInput = defineComponent4({
109
+ name: "McpeInput",
110
+ props: {
111
+ modelValue: { type: String, default: "" },
112
+ label: { type: String, default: "" },
113
+ error: { type: String, default: "" },
114
+ helperText: { type: String, default: "" },
115
+ disabled: { type: Boolean, default: false },
116
+ placeholder: { type: String, default: "" },
117
+ type: { type: String, default: "text" },
118
+ id: { type: String, default: "" },
119
+ class: { type: String, default: "" }
120
+ },
121
+ emits: ["update:modelValue"],
122
+ setup(props, { emit }) {
123
+ const inputId = computed3(() => props.id || `mcpe-input-${Math.random().toString(36).slice(2, 9)}`);
124
+ return () => {
125
+ const children = [];
126
+ if (props.label) {
127
+ children.push(
128
+ h4("label", { for: inputId.value, class: "mcpe-input-label" }, props.label)
129
+ );
130
+ }
131
+ children.push(
132
+ h4("input", {
133
+ id: inputId.value,
134
+ type: props.type,
135
+ class: cn4("mcpe-input", props.error ? "mcpe-input-error" : "", props.class),
136
+ value: props.modelValue,
137
+ disabled: props.disabled,
138
+ placeholder: props.placeholder,
139
+ onInput: (e) => emit("update:modelValue", e.target.value)
140
+ })
141
+ );
142
+ if (props.error) {
143
+ children.push(h4("p", { class: "mcpe-input-error-text" }, props.error));
144
+ } else if (props.helperText) {
145
+ children.push(h4("p", { class: "mcpe-input-helper-text" }, props.helperText));
146
+ }
147
+ return h4("div", { class: "mcpe-input-wrapper" }, children);
148
+ };
149
+ }
150
+ });
151
+
152
+ // src/textarea.ts
153
+ import { defineComponent as defineComponent5, computed as computed4, h as h5 } from "vue";
154
+ import { cn as cn5 } from "@mcp-elements/core";
155
+ var McpeTextarea = defineComponent5({
156
+ name: "McpeTextarea",
157
+ props: {
158
+ modelValue: { type: String, default: "" },
159
+ label: { type: String, default: "" },
160
+ error: { type: String, default: "" },
161
+ helperText: { type: String, default: "" },
162
+ rows: { type: Number, default: 3 },
163
+ disabled: { type: Boolean, default: false },
164
+ placeholder: { type: String, default: "" },
165
+ id: { type: String, default: "" },
166
+ class: { type: String, default: "" }
167
+ },
168
+ emits: ["update:modelValue"],
169
+ setup(props, { emit }) {
170
+ const textareaId = computed4(
171
+ () => props.id || `mcpe-textarea-${Math.random().toString(36).slice(2, 9)}`
172
+ );
173
+ return () => {
174
+ const children = [];
175
+ if (props.label) {
176
+ children.push(
177
+ h5("label", { for: textareaId.value, class: "mcpe-textarea-label" }, props.label)
178
+ );
179
+ }
180
+ children.push(
181
+ h5("textarea", {
182
+ id: textareaId.value,
183
+ class: cn5("mcpe-textarea", props.error ? "mcpe-textarea-error" : "", props.class),
184
+ value: props.modelValue,
185
+ rows: props.rows,
186
+ disabled: props.disabled,
187
+ placeholder: props.placeholder,
188
+ onInput: (e) => emit("update:modelValue", e.target.value)
189
+ })
190
+ );
191
+ if (props.error) {
192
+ children.push(h5("p", { class: "mcpe-textarea-error-text" }, props.error));
193
+ } else if (props.helperText) {
194
+ children.push(h5("p", { class: "mcpe-textarea-helper-text" }, props.helperText));
195
+ }
196
+ return h5("div", { class: "mcpe-textarea-wrapper" }, children);
197
+ };
198
+ }
199
+ });
200
+
201
+ // src/select.ts
202
+ import { defineComponent as defineComponent6, computed as computed5, h as h6 } from "vue";
203
+ import { cn as cn6 } from "@mcp-elements/core";
204
+ var McpeSelect = defineComponent6({
205
+ name: "McpeSelect",
206
+ props: {
207
+ modelValue: { type: String, default: "" },
208
+ options: { type: Array, default: () => [] },
209
+ label: { type: String, default: "" },
210
+ error: { type: String, default: "" },
211
+ disabled: { type: Boolean, default: false },
212
+ placeholder: { type: String, default: "Select..." },
213
+ id: { type: String, default: "" },
214
+ class: { type: String, default: "" }
215
+ },
216
+ emits: ["update:modelValue"],
217
+ setup(props, { emit }) {
218
+ const selectId = computed5(
219
+ () => props.id || `mcpe-select-${Math.random().toString(36).slice(2, 9)}`
220
+ );
221
+ return () => {
222
+ const children = [];
223
+ if (props.label) {
224
+ children.push(
225
+ h6("label", { for: selectId.value, class: "mcpe-select-label" }, props.label)
226
+ );
227
+ }
228
+ const optionNodes = [
229
+ h6("option", { value: "", disabled: true }, props.placeholder),
230
+ ...props.options.map(
231
+ (opt) => h6(
232
+ "option",
233
+ {
234
+ key: opt.value,
235
+ value: opt.value,
236
+ disabled: opt.disabled ?? false
237
+ },
238
+ opt.label
239
+ )
240
+ )
241
+ ];
242
+ children.push(
243
+ h6("select", {
244
+ id: selectId.value,
245
+ class: cn6("mcpe-select", props.error ? "mcpe-select-error" : "", props.class),
246
+ value: props.modelValue,
247
+ disabled: props.disabled,
248
+ onChange: (e) => emit("update:modelValue", e.target.value)
249
+ }, optionNodes)
250
+ );
251
+ if (props.error) {
252
+ children.push(h6("p", { class: "mcpe-select-error-text" }, props.error));
253
+ }
254
+ return h6("div", { class: "mcpe-select-wrapper" }, children);
255
+ };
256
+ }
257
+ });
258
+
259
+ // src/switch.ts
260
+ import { defineComponent as defineComponent7, computed as computed6, h as h7 } from "vue";
261
+ import { cn as cn7 } from "@mcp-elements/core";
262
+ var McpeSwitch = defineComponent7({
263
+ name: "McpeSwitch",
264
+ props: {
265
+ modelValue: { type: Boolean, default: false },
266
+ label: { type: String, default: "" },
267
+ disabled: { type: Boolean, default: false },
268
+ id: { type: String, default: "" },
269
+ class: { type: String, default: "" }
270
+ },
271
+ emits: ["update:modelValue"],
272
+ setup(props, { emit }) {
273
+ const switchId = computed6(
274
+ () => props.id || `mcpe-switch-${Math.random().toString(36).slice(2, 9)}`
275
+ );
276
+ const toggle = () => {
277
+ if (!props.disabled) {
278
+ emit("update:modelValue", !props.modelValue);
279
+ }
280
+ };
281
+ return () => {
282
+ const switchBtn = h7("button", {
283
+ id: switchId.value,
284
+ type: "button",
285
+ role: "switch",
286
+ "aria-checked": props.modelValue,
287
+ "aria-disabled": props.disabled || void 0,
288
+ disabled: props.disabled,
289
+ class: cn7(
290
+ "mcpe-switch",
291
+ props.modelValue ? "mcpe-switch-checked" : "",
292
+ props.class
293
+ ),
294
+ onClick: toggle,
295
+ onKeydown: (e) => {
296
+ if (e.key === " " || e.key === "Enter") {
297
+ e.preventDefault();
298
+ toggle();
299
+ }
300
+ }
301
+ }, [h7("span", { class: "mcpe-switch-thumb" })]);
302
+ if (props.label) {
303
+ return h7("label", { class: "mcpe-switch-wrapper" }, [
304
+ switchBtn,
305
+ h7("span", { class: "mcpe-switch-label" }, props.label)
306
+ ]);
307
+ }
308
+ return switchBtn;
309
+ };
310
+ }
311
+ });
312
+
313
+ // src/dialog.ts
314
+ import { defineComponent as defineComponent8, h as h8, Teleport, onMounted, onUnmounted, watch } from "vue";
315
+ import { cn as cn8 } from "@mcp-elements/core";
316
+ var McpeDialog = defineComponent8({
317
+ name: "McpeDialog",
318
+ props: {
319
+ modelValue: { type: Boolean, default: false },
320
+ modal: { type: Boolean, default: true },
321
+ class: { type: String, default: "" }
322
+ },
323
+ emits: ["update:modelValue"],
324
+ setup(props, { slots, emit }) {
325
+ const close = () => emit("update:modelValue", false);
326
+ let unlockScroll = null;
327
+ const lockScroll = () => {
328
+ const prev = document.body.style.overflow;
329
+ document.body.style.overflow = "hidden";
330
+ return () => {
331
+ document.body.style.overflow = prev;
332
+ };
333
+ };
334
+ watch(
335
+ () => props.modelValue,
336
+ (isOpen) => {
337
+ if (isOpen && props.modal) {
338
+ unlockScroll = lockScroll();
339
+ } else if (!isOpen && unlockScroll) {
340
+ unlockScroll();
341
+ unlockScroll = null;
342
+ }
343
+ },
344
+ { immediate: true }
345
+ );
346
+ onUnmounted(() => {
347
+ if (unlockScroll) {
348
+ unlockScroll();
349
+ }
350
+ });
351
+ const handleKeydown = (e) => {
352
+ if (e.key === "Escape") {
353
+ close();
354
+ }
355
+ };
356
+ onMounted(() => {
357
+ document.addEventListener("keydown", handleKeydown);
358
+ });
359
+ onUnmounted(() => {
360
+ document.removeEventListener("keydown", handleKeydown);
361
+ });
362
+ return () => {
363
+ if (!props.modelValue) return h8("span", { style: "display:none" });
364
+ return h8(Teleport, { to: "body" }, [
365
+ h8("div", {
366
+ class: "mcpe-dialog-overlay",
367
+ onClick: close
368
+ }),
369
+ h8(
370
+ "div",
371
+ {
372
+ class: cn8("mcpe-dialog-content", props.class),
373
+ role: "dialog",
374
+ "aria-modal": props.modal,
375
+ onClick: (e) => e.stopPropagation()
376
+ },
377
+ [
378
+ slots.default?.(),
379
+ h8(
380
+ "button",
381
+ {
382
+ class: "mcpe-dialog-close",
383
+ "aria-label": "Close",
384
+ type: "button",
385
+ onClick: close
386
+ },
387
+ [
388
+ h8(
389
+ "svg",
390
+ {
391
+ xmlns: "http://www.w3.org/2000/svg",
392
+ width: "15",
393
+ height: "15",
394
+ viewBox: "0 0 24 24",
395
+ fill: "none",
396
+ stroke: "currentColor",
397
+ "stroke-width": "2",
398
+ "stroke-linecap": "round",
399
+ "stroke-linejoin": "round"
400
+ },
401
+ [
402
+ h8("path", { d: "M18 6 6 18" }),
403
+ h8("path", { d: "m6 6 12 12" })
404
+ ]
405
+ ),
406
+ h8("span", { class: "sr-only" }, "Close")
407
+ ]
408
+ )
409
+ ]
410
+ )
411
+ ]);
412
+ };
413
+ }
414
+ });
415
+
416
+ // src/alert.ts
417
+ import { defineComponent as defineComponent9, computed as computed7, h as h9 } from "vue";
418
+ import { cn as cn9 } from "@mcp-elements/core";
419
+ var McpeAlert = defineComponent9({
420
+ name: "McpeAlert",
421
+ props: {
422
+ variant: { type: String, default: "default" },
423
+ title: { type: String, default: "" },
424
+ class: { type: String, default: "" }
425
+ },
426
+ setup(props, { slots }) {
427
+ const classes = computed7(
428
+ () => cn9("mcpe-alert", `mcpe-alert-${props.variant}`, props.class)
429
+ );
430
+ return () => {
431
+ const children = [];
432
+ if (props.title) {
433
+ children.push(h9("h5", { class: "mcpe-alert-title" }, props.title));
434
+ }
435
+ if (slots.default) {
436
+ children.push(h9("div", { class: "mcpe-alert-description" }, slots.default()));
437
+ }
438
+ return h9("div", { role: "alert", class: classes.value }, children);
439
+ };
440
+ }
441
+ });
442
+
443
+ // src/tabs.ts
444
+ import { defineComponent as defineComponent10, computed as computed8, h as h10 } from "vue";
445
+ import { cn as cn10 } from "@mcp-elements/core";
446
+ var McpeTabs = defineComponent10({
447
+ name: "McpeTabs",
448
+ props: {
449
+ modelValue: { type: String, default: "" },
450
+ tabs: { type: Array, default: () => [] },
451
+ class: { type: String, default: "" }
452
+ },
453
+ emits: ["update:modelValue"],
454
+ setup(props, { slots, emit }) {
455
+ const activeTab = computed8(() => props.modelValue || props.tabs[0]?.value || "");
456
+ const selectTab = (value) => emit("update:modelValue", value);
457
+ return () => {
458
+ const triggerNodes = props.tabs.map((tab) => {
459
+ const isActive = tab.value === activeTab.value;
460
+ return h10(
461
+ "button",
462
+ {
463
+ key: tab.value,
464
+ role: "tab",
465
+ "aria-selected": isActive,
466
+ tabindex: isActive ? 0 : -1,
467
+ disabled: tab.disabled ?? false,
468
+ class: cn10(
469
+ "mcpe-tabs-trigger",
470
+ isActive ? "mcpe-tabs-trigger-active" : ""
471
+ ),
472
+ onClick: () => {
473
+ if (!tab.disabled) selectTab(tab.value);
474
+ }
475
+ },
476
+ tab.label
477
+ );
478
+ });
479
+ const tabList = h10(
480
+ "div",
481
+ { role: "tablist", class: "mcpe-tabs-list" },
482
+ triggerNodes
483
+ );
484
+ const activeTabData = props.tabs.find((tab) => tab.value === activeTab.value);
485
+ const contentNodes = activeTabData ? [
486
+ h10(
487
+ "div",
488
+ {
489
+ key: activeTabData.value,
490
+ role: "tabpanel",
491
+ class: "mcpe-tabs-content"
492
+ },
493
+ slots[activeTabData.value]?.() ?? []
494
+ )
495
+ ] : [];
496
+ return h10("div", { class: cn10("mcpe-tabs", props.class) }, [tabList, ...contentNodes]);
497
+ };
498
+ }
499
+ });
500
+ export {
501
+ McpeAlert,
502
+ McpeBadge,
503
+ McpeButton,
504
+ McpeCard,
505
+ McpeCardContent,
506
+ McpeCardDescription,
507
+ McpeCardFooter,
508
+ McpeCardHeader,
509
+ McpeCardTitle,
510
+ McpeDialog,
511
+ McpeInput,
512
+ McpeSelect,
513
+ McpeSwitch,
514
+ McpeTabs,
515
+ McpeTextarea
516
+ };
517
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/button.ts","../src/card.ts","../src/badge.ts","../src/input.ts","../src/textarea.ts","../src/select.ts","../src/switch.ts","../src/dialog.ts","../src/alert.ts","../src/tabs.ts"],"sourcesContent":["import { defineComponent, computed, h } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\ntype ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'link'\ntype ButtonSize = 'sm' | 'md' | 'lg' | 'icon'\n\nexport const McpeButton = defineComponent({\n name: 'McpeButton',\n props: {\n variant: { type: String as () => ButtonVariant, default: 'primary' },\n size: { type: String as () => ButtonSize, default: 'md' },\n disabled: { type: Boolean, default: false },\n type: { type: String as () => 'button' | 'submit' | 'reset', default: 'button' },\n class: { type: String, default: '' },\n },\n setup(props, { slots }) {\n const classes = computed(() =>\n cn('mcpe-btn', `mcpe-btn-${props.variant}`, `mcpe-btn-${props.size}`, props.class)\n )\n return () =>\n h(\n 'button',\n {\n class: classes.value,\n disabled: props.disabled,\n type: props.type,\n },\n slots.default?.()\n )\n },\n})\n","import { defineComponent, h } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\nexport const McpeCard = defineComponent({\n name: 'McpeCard',\n props: {\n class: { type: String, default: '' },\n },\n setup(props, { slots }) {\n return () =>\n h('div', { class: cn('mcpe-card', props.class) }, slots.default?.())\n },\n})\n\nexport const McpeCardHeader = defineComponent({\n name: 'McpeCardHeader',\n props: {\n class: { type: String, default: '' },\n },\n setup(props, { slots }) {\n return () =>\n h('div', { class: cn('mcpe-card-header', props.class) }, slots.default?.())\n },\n})\n\nexport const McpeCardTitle = defineComponent({\n name: 'McpeCardTitle',\n props: {\n class: { type: String, default: '' },\n },\n setup(props, { slots }) {\n return () =>\n h('h3', { class: cn('mcpe-card-title', props.class) }, slots.default?.())\n },\n})\n\nexport const McpeCardDescription = defineComponent({\n name: 'McpeCardDescription',\n props: {\n class: { type: String, default: '' },\n },\n setup(props, { slots }) {\n return () =>\n h('p', { class: cn('mcpe-card-description', props.class) }, slots.default?.())\n },\n})\n\nexport const McpeCardContent = defineComponent({\n name: 'McpeCardContent',\n props: {\n class: { type: String, default: '' },\n },\n setup(props, { slots }) {\n return () =>\n h('div', { class: cn('mcpe-card-content', props.class) }, slots.default?.())\n },\n})\n\nexport const McpeCardFooter = defineComponent({\n name: 'McpeCardFooter',\n props: {\n class: { type: String, default: '' },\n },\n setup(props, { slots }) {\n return () =>\n h('div', { class: cn('mcpe-card-footer', props.class) }, slots.default?.())\n },\n})\n","import { defineComponent, computed, h } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\ntype BadgeVariant = 'default' | 'secondary' | 'outline' | 'destructive'\ntype BadgeSize = 'sm' | 'md'\n\nexport const McpeBadge = defineComponent({\n name: 'McpeBadge',\n props: {\n variant: { type: String as () => BadgeVariant, default: 'default' },\n size: { type: String as () => BadgeSize, default: 'md' },\n class: { type: String, default: '' },\n },\n setup(props, { slots }) {\n const classes = computed(() =>\n cn('mcpe-badge', `mcpe-badge-${props.variant}`, `mcpe-badge-${props.size}`, props.class)\n )\n return () =>\n h('div', { class: classes.value }, slots.default?.())\n },\n})\n","import { defineComponent, computed, h } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\nexport const McpeInput = defineComponent({\n name: 'McpeInput',\n props: {\n modelValue: { type: String, default: '' },\n label: { type: String, default: '' },\n error: { type: String, default: '' },\n helperText: { type: String, default: '' },\n disabled: { type: Boolean, default: false },\n placeholder: { type: String, default: '' },\n type: { type: String, default: 'text' },\n id: { type: String, default: '' },\n class: { type: String, default: '' },\n },\n emits: ['update:modelValue'],\n setup(props, { emit }) {\n const inputId = computed(() => props.id || `mcpe-input-${Math.random().toString(36).slice(2, 9)}`)\n\n return () => {\n const children = []\n\n if (props.label) {\n children.push(\n h('label', { for: inputId.value, class: 'mcpe-input-label' }, props.label)\n )\n }\n\n children.push(\n h('input', {\n id: inputId.value,\n type: props.type,\n class: cn('mcpe-input', props.error ? 'mcpe-input-error' : '', props.class),\n value: props.modelValue,\n disabled: props.disabled,\n placeholder: props.placeholder,\n onInput: (e: Event) => emit('update:modelValue', (e.target as HTMLInputElement).value),\n })\n )\n\n if (props.error) {\n children.push(h('p', { class: 'mcpe-input-error-text' }, props.error))\n } else if (props.helperText) {\n children.push(h('p', { class: 'mcpe-input-helper-text' }, props.helperText))\n }\n\n return h('div', { class: 'mcpe-input-wrapper' }, children)\n }\n },\n})\n","import { defineComponent, computed, h } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\nexport const McpeTextarea = defineComponent({\n name: 'McpeTextarea',\n props: {\n modelValue: { type: String, default: '' },\n label: { type: String, default: '' },\n error: { type: String, default: '' },\n helperText: { type: String, default: '' },\n rows: { type: Number, default: 3 },\n disabled: { type: Boolean, default: false },\n placeholder: { type: String, default: '' },\n id: { type: String, default: '' },\n class: { type: String, default: '' },\n },\n emits: ['update:modelValue'],\n setup(props, { emit }) {\n const textareaId = computed(\n () => props.id || `mcpe-textarea-${Math.random().toString(36).slice(2, 9)}`\n )\n\n return () => {\n const children = []\n\n if (props.label) {\n children.push(\n h('label', { for: textareaId.value, class: 'mcpe-textarea-label' }, props.label)\n )\n }\n\n children.push(\n h('textarea', {\n id: textareaId.value,\n class: cn('mcpe-textarea', props.error ? 'mcpe-textarea-error' : '', props.class),\n value: props.modelValue,\n rows: props.rows,\n disabled: props.disabled,\n placeholder: props.placeholder,\n onInput: (e: Event) =>\n emit('update:modelValue', (e.target as HTMLTextAreaElement).value),\n })\n )\n\n if (props.error) {\n children.push(h('p', { class: 'mcpe-textarea-error-text' }, props.error))\n } else if (props.helperText) {\n children.push(h('p', { class: 'mcpe-textarea-helper-text' }, props.helperText))\n }\n\n return h('div', { class: 'mcpe-textarea-wrapper' }, children)\n }\n },\n})\n","import { defineComponent, computed, h } from 'vue'\nimport { cn } from '@mcp-elements/core'\nimport type { SelectOption } from '@mcp-elements/core'\n\nexport const McpeSelect = defineComponent({\n name: 'McpeSelect',\n props: {\n modelValue: { type: String, default: '' },\n options: { type: Array as () => SelectOption[], default: () => [] },\n label: { type: String, default: '' },\n error: { type: String, default: '' },\n disabled: { type: Boolean, default: false },\n placeholder: { type: String, default: 'Select...' },\n id: { type: String, default: '' },\n class: { type: String, default: '' },\n },\n emits: ['update:modelValue'],\n setup(props, { emit }) {\n const selectId = computed(\n () => props.id || `mcpe-select-${Math.random().toString(36).slice(2, 9)}`\n )\n\n return () => {\n const children = []\n\n if (props.label) {\n children.push(\n h('label', { for: selectId.value, class: 'mcpe-select-label' }, props.label)\n )\n }\n\n const optionNodes = [\n h('option', { value: '', disabled: true }, props.placeholder),\n ...props.options.map((opt) =>\n h(\n 'option',\n {\n key: opt.value,\n value: opt.value,\n disabled: opt.disabled ?? false,\n },\n opt.label\n )\n ),\n ]\n\n children.push(\n h('select', {\n id: selectId.value,\n class: cn('mcpe-select', props.error ? 'mcpe-select-error' : '', props.class),\n value: props.modelValue,\n disabled: props.disabled,\n onChange: (e: Event) =>\n emit('update:modelValue', (e.target as HTMLSelectElement).value),\n }, optionNodes)\n )\n\n if (props.error) {\n children.push(h('p', { class: 'mcpe-select-error-text' }, props.error))\n }\n\n return h('div', { class: 'mcpe-select-wrapper' }, children)\n }\n },\n})\n","import { defineComponent, computed, h } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\nexport const McpeSwitch = defineComponent({\n name: 'McpeSwitch',\n props: {\n modelValue: { type: Boolean, default: false },\n label: { type: String, default: '' },\n disabled: { type: Boolean, default: false },\n id: { type: String, default: '' },\n class: { type: String, default: '' },\n },\n emits: ['update:modelValue'],\n setup(props, { emit }) {\n const switchId = computed(\n () => props.id || `mcpe-switch-${Math.random().toString(36).slice(2, 9)}`\n )\n\n const toggle = () => {\n if (!props.disabled) {\n emit('update:modelValue', !props.modelValue)\n }\n }\n\n return () => {\n const switchBtn = h('button', {\n id: switchId.value,\n type: 'button',\n role: 'switch',\n 'aria-checked': props.modelValue,\n 'aria-disabled': props.disabled || undefined,\n disabled: props.disabled,\n class: cn(\n 'mcpe-switch',\n props.modelValue ? 'mcpe-switch-checked' : '',\n props.class\n ),\n onClick: toggle,\n onKeydown: (e: KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault()\n toggle()\n }\n },\n }, [h('span', { class: 'mcpe-switch-thumb' })])\n\n if (props.label) {\n return h('label', { class: 'mcpe-switch-wrapper' }, [\n switchBtn,\n h('span', { class: 'mcpe-switch-label' }, props.label),\n ])\n }\n\n return switchBtn\n }\n },\n})\n","import { defineComponent, h, Teleport, onMounted, onUnmounted, watch } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\nexport const McpeDialog = defineComponent({\n name: 'McpeDialog',\n props: {\n modelValue: { type: Boolean, default: false },\n modal: { type: Boolean, default: true },\n class: { type: String, default: '' },\n },\n emits: ['update:modelValue'],\n setup(props, { slots, emit }) {\n const close = () => emit('update:modelValue', false)\n\n let unlockScroll: (() => void) | null = null\n\n const lockScroll = () => {\n const prev = document.body.style.overflow\n document.body.style.overflow = 'hidden'\n return () => {\n document.body.style.overflow = prev\n }\n }\n\n watch(\n () => props.modelValue,\n (isOpen) => {\n if (isOpen && props.modal) {\n unlockScroll = lockScroll()\n } else if (!isOpen && unlockScroll) {\n unlockScroll()\n unlockScroll = null\n }\n },\n { immediate: true }\n )\n\n onUnmounted(() => {\n if (unlockScroll) {\n unlockScroll()\n }\n })\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n close()\n }\n }\n\n onMounted(() => {\n document.addEventListener('keydown', handleKeydown)\n })\n\n onUnmounted(() => {\n document.removeEventListener('keydown', handleKeydown)\n })\n\n return () => {\n if (!props.modelValue) return h('span', { style: 'display:none' })\n\n return h(Teleport as unknown as string, { to: 'body' }, [\n h('div', {\n class: 'mcpe-dialog-overlay',\n onClick: close,\n }),\n h(\n 'div',\n {\n class: cn('mcpe-dialog-content', props.class),\n role: 'dialog',\n 'aria-modal': props.modal,\n onClick: (e: MouseEvent) => e.stopPropagation(),\n },\n [\n slots.default?.(),\n h(\n 'button',\n {\n class: 'mcpe-dialog-close',\n 'aria-label': 'Close',\n type: 'button',\n onClick: close,\n },\n [\n h(\n 'svg',\n {\n xmlns: 'http://www.w3.org/2000/svg',\n width: '15',\n height: '15',\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': '2',\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n },\n [\n h('path', { d: 'M18 6 6 18' }),\n h('path', { d: 'm6 6 12 12' }),\n ]\n ),\n h('span', { class: 'sr-only' }, 'Close'),\n ]\n ),\n ]\n ),\n ])\n }\n },\n})\n","import { defineComponent, computed, h } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\ntype AlertVariant = 'default' | 'destructive' | 'success' | 'warning' | 'info' | 'error'\n\nexport const McpeAlert = defineComponent({\n name: 'McpeAlert',\n props: {\n variant: { type: String as () => AlertVariant, default: 'default' },\n title: { type: String, default: '' },\n class: { type: String, default: '' },\n },\n setup(props, { slots }) {\n const classes = computed(() =>\n cn('mcpe-alert', `mcpe-alert-${props.variant}`, props.class)\n )\n\n return () => {\n const children = []\n\n if (props.title) {\n children.push(h('h5', { class: 'mcpe-alert-title' }, props.title))\n }\n\n if (slots.default) {\n children.push(h('div', { class: 'mcpe-alert-description' }, slots.default()))\n }\n\n return h('div', { role: 'alert', class: classes.value }, children)\n }\n },\n})\n","import { defineComponent, computed, h } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\nexport interface TabsItem {\n value: string\n label: string\n disabled?: boolean\n}\n\nexport const McpeTabs = defineComponent({\n name: 'McpeTabs',\n props: {\n modelValue: { type: String, default: '' },\n tabs: { type: Array as () => TabsItem[], default: () => [] },\n class: { type: String, default: '' },\n },\n emits: ['update:modelValue'],\n setup(props, { slots, emit }) {\n const activeTab = computed(() => props.modelValue || props.tabs[0]?.value || '')\n\n const selectTab = (value: string) => emit('update:modelValue', value)\n\n return () => {\n const triggerNodes = props.tabs.map((tab) => {\n const isActive = tab.value === activeTab.value\n return h(\n 'button',\n {\n key: tab.value,\n role: 'tab',\n 'aria-selected': isActive,\n tabindex: isActive ? 0 : -1,\n disabled: tab.disabled ?? false,\n class: cn(\n 'mcpe-tabs-trigger',\n isActive ? 'mcpe-tabs-trigger-active' : ''\n ),\n onClick: () => {\n if (!tab.disabled) selectTab(tab.value)\n },\n },\n tab.label\n )\n })\n\n const tabList = h(\n 'div',\n { role: 'tablist', class: 'mcpe-tabs-list' },\n triggerNodes\n )\n\n const activeTabData = props.tabs.find((tab) => tab.value === activeTab.value)\n const contentNodes = activeTabData\n ? [\n h(\n 'div',\n {\n key: activeTabData.value,\n role: 'tabpanel',\n class: 'mcpe-tabs-content',\n },\n slots[activeTabData.value]?.() ?? []\n ),\n ]\n : []\n\n return h('div', { class: cn('mcpe-tabs', props.class) }, [tabList, ...contentNodes])\n }\n },\n})\n"],"mappings":"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","names":["defineComponent","h","cn","defineComponent","computed","h","cn","defineComponent","computed","h","cn","defineComponent","computed","h","cn","defineComponent","computed","h","cn","defineComponent","computed","h","cn","defineComponent","h","cn","defineComponent","computed","h","cn","defineComponent","computed","h","cn"]}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@mcp-elements/vue",
3
+ "version": "0.1.0",
4
+ "private": false,
5
+ "description": "mcp-elements Vue 3 components",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "module": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ }
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "dependencies": {
20
+ "@mcp-elements/core": "0.1.0"
21
+ },
22
+ "peerDependencies": {
23
+ "vue": "^3.4.0"
24
+ },
25
+ "devDependencies": {
26
+ "vue": "^3.4.0",
27
+ "@vue/tsconfig": "^0.7.0",
28
+ "tsup": "^8.3.0"
29
+ },
30
+ "scripts": {
31
+ "build": "tsup",
32
+ "dev": "tsup --watch",
33
+ "clean": "rm -rf dist"
34
+ }
35
+ }