@mcp-elements/vue 0.1.1 → 0.1.2

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/dist/index.js CHANGED
@@ -325,10 +325,18 @@ var McpeDialog = defineComponent8({
325
325
  const close = () => emit("update:modelValue", false);
326
326
  let unlockScroll = null;
327
327
  const lockScroll = () => {
328
- const prev = document.body.style.overflow;
329
- document.body.style.overflow = "hidden";
328
+ const body = document.body;
329
+ const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
330
+ const prevOverflow = body.style.overflow;
331
+ const prevPaddingRight = body.style.paddingRight;
332
+ body.style.overflow = "hidden";
333
+ if (scrollbarWidth > 0) {
334
+ const currentPad = parseFloat(getComputedStyle(body).paddingRight) || 0;
335
+ body.style.paddingRight = `${currentPad + scrollbarWidth}px`;
336
+ }
330
337
  return () => {
331
- document.body.style.overflow = prev;
338
+ body.style.overflow = prevOverflow;
339
+ body.style.paddingRight = prevPaddingRight;
332
340
  };
333
341
  };
334
342
  watch(
@@ -362,48 +370,53 @@ var McpeDialog = defineComponent8({
362
370
  return () => {
363
371
  if (!props.modelValue) return h8("span", { style: "display:none" });
364
372
  return h8(Teleport, { to: "body" }, [
365
- h8("div", {
366
- class: "mcpe-dialog-overlay",
367
- onClick: close
368
- }),
369
373
  h8(
370
374
  "div",
371
375
  {
372
- class: cn8("mcpe-dialog-content", props.class),
373
- role: "dialog",
374
- "aria-modal": props.modal,
375
- onClick: (e) => e.stopPropagation()
376
+ class: "mcpe-dialog-overlay",
377
+ onClick: close
376
378
  },
377
379
  [
378
- slots.default?.(),
379
380
  h8(
380
- "button",
381
+ "div",
381
382
  {
382
- class: "mcpe-dialog-close",
383
- "aria-label": "Close",
384
- type: "button",
385
- onClick: close
383
+ class: cn8("mcpe-dialog-content", props.class),
384
+ role: "dialog",
385
+ "aria-modal": props.modal,
386
+ onClick: (e) => e.stopPropagation()
386
387
  },
387
388
  [
389
+ slots.default?.(),
388
390
  h8(
389
- "svg",
391
+ "button",
390
392
  {
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"
393
+ class: "mcpe-dialog-close",
394
+ "aria-label": "Close",
395
+ type: "button",
396
+ onClick: close
400
397
  },
401
398
  [
402
- h8("path", { d: "M18 6 6 18" }),
403
- h8("path", { d: "m6 6 12 12" })
399
+ h8(
400
+ "svg",
401
+ {
402
+ xmlns: "http://www.w3.org/2000/svg",
403
+ width: "16",
404
+ height: "16",
405
+ viewBox: "0 0 24 24",
406
+ fill: "none",
407
+ stroke: "currentColor",
408
+ "stroke-width": "2",
409
+ "stroke-linecap": "round",
410
+ "stroke-linejoin": "round",
411
+ "aria-hidden": "true"
412
+ },
413
+ [
414
+ h8("path", { d: "M18 6 6 18" }),
415
+ h8("path", { d: "m6 6 12 12" })
416
+ ]
417
+ )
404
418
  ]
405
- ),
406
- h8("span", { class: "sr-only" }, "Close")
419
+ )
407
420
  ]
408
421
  )
409
422
  ]
@@ -846,10 +859,18 @@ var McpeMcpConsentDialog = defineComponent14({
846
859
  const deny = () => emit("deny");
847
860
  let unlockScroll = null;
848
861
  const lockScroll = () => {
849
- const prev = document.body.style.overflow;
850
- document.body.style.overflow = "hidden";
862
+ const body = document.body;
863
+ const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
864
+ const prevOverflow = body.style.overflow;
865
+ const prevPaddingRight = body.style.paddingRight;
866
+ body.style.overflow = "hidden";
867
+ if (scrollbarWidth > 0) {
868
+ const currentPad = parseFloat(getComputedStyle(body).paddingRight) || 0;
869
+ body.style.paddingRight = `${currentPad + scrollbarWidth}px`;
870
+ }
851
871
  return () => {
852
- document.body.style.overflow = prev;
872
+ body.style.overflow = prevOverflow;
873
+ body.style.paddingRight = prevPaddingRight;
853
874
  };
854
875
  };
855
876
  watch4(
@@ -874,60 +895,80 @@ var McpeMcpConsentDialog = defineComponent14({
874
895
  });
875
896
  return () => {
876
897
  if (!props.open) return h14("span", { style: "display:none" });
877
- const iconChild = props.serverIcon ? h14("img", { src: props.serverIcon, alt: "", class: "h-full w-full object-cover" }) : props.serverName[0]?.toUpperCase() ?? "?";
898
+ const iconChild = props.serverIcon ? h14("img", { src: props.serverIcon, alt: "" }) : props.serverName[0]?.toUpperCase() ?? "?";
878
899
  return h14(Teleport2, { to: "body" }, [
879
- h14("div", { class: "mcpe-dialog-overlay", onClick: deny }),
880
900
  h14(
881
901
  "div",
882
- {
883
- class: "mcpe-dialog-content",
884
- role: "dialog",
885
- "aria-modal": "true",
886
- "aria-label": `Allow ${props.serverName}?`,
887
- onClick: (e) => e.stopPropagation()
888
- },
902
+ { class: "mcpe-dialog-overlay", onClick: deny },
889
903
  [
890
- h14("div", { class: "mcpe-mcp-consent-dialog-server" }, [
891
- h14("div", { class: "mcpe-mcp-consent-dialog-icon", "aria-hidden": "true" }, [iconChild]),
892
- h14("div", {}, [
893
- h14("p", { class: "mcpe-mcp-consent-dialog-server-name" }, props.serverName),
894
- h14("p", { class: "mcpe-mcp-consent-dialog-server-meta" }, "is requesting access to")
895
- ])
896
- ]),
897
904
  h14(
898
905
  "div",
899
906
  {
900
- class: "mcpe-mcp-consent-dialog-scopes",
901
- role: "list",
902
- "aria-label": "Requested permissions"
907
+ class: "mcpe-dialog-content",
908
+ role: "dialog",
909
+ "aria-modal": "true",
910
+ "aria-label": `Allow ${props.serverName}?`,
911
+ onClick: (e) => e.stopPropagation()
903
912
  },
904
- parsedScopes.value.map(
905
- (s) => h14("div", { class: "mcpe-mcp-consent-dialog-scope-item", role: "listitem" }, [
906
- h14("div", { class: "flex-1 min-w-0" }, [
907
- h14("p", { class: "mcpe-mcp-consent-dialog-scope-resource" }, s.resource),
913
+ [
914
+ h14("div", { class: "mcpe-mcp-consent-dialog" }, [
915
+ h14("div", { class: "mcpe-dialog-header" }, [
916
+ h14("h2", { class: "mcpe-dialog-title" }, "Permission Request"),
908
917
  h14(
909
- "div",
910
- { class: "mcpe-mcp-consent-dialog-scope-perms" },
911
- s.permissions.map(
912
- (p) => h14("span", { class: "mcpe-mcp-consent-dialog-scope-perm" }, p)
913
- )
918
+ "p",
919
+ { class: "mcpe-dialog-description" },
920
+ "Review and approve the permissions this server is requesting."
921
+ )
922
+ ]),
923
+ h14("div", { class: "mcpe-mcp-consent-dialog-server" }, [
924
+ h14("div", { class: "mcpe-mcp-consent-dialog-icon", "aria-hidden": "true" }, [iconChild]),
925
+ h14("div", { class: "mcpe-mcp-consent-dialog-server-text" }, [
926
+ h14("p", { class: "mcpe-mcp-consent-dialog-server-name" }, props.serverName),
927
+ h14("p", { class: "mcpe-mcp-consent-dialog-server-meta" }, "is requesting access to")
928
+ ])
929
+ ]),
930
+ h14(
931
+ "div",
932
+ {
933
+ class: "mcpe-mcp-consent-dialog-scopes",
934
+ role: "list",
935
+ "aria-label": "Requested permissions"
936
+ },
937
+ parsedScopes.value.map(
938
+ (s) => h14("div", { class: "mcpe-mcp-consent-dialog-scope-item", role: "listitem" }, [
939
+ h14("span", { class: "mcpe-mcp-consent-dialog-scope-resource" }, s.resource),
940
+ h14(
941
+ "div",
942
+ { class: "mcpe-mcp-consent-dialog-scope-perms" },
943
+ s.permissions.map(
944
+ (p) => h14(
945
+ "span",
946
+ {
947
+ class: "mcpe-mcp-consent-dialog-scope-perm",
948
+ "data-perm": p.toLowerCase()
949
+ },
950
+ p
951
+ )
952
+ )
953
+ )
954
+ ])
955
+ )
956
+ ),
957
+ h14("div", { class: "mcpe-mcp-consent-dialog-actions" }, [
958
+ h14(
959
+ "button",
960
+ { type: "button", class: "mcpe-btn mcpe-btn-outline", onClick: deny },
961
+ "Deny"
962
+ ),
963
+ h14(
964
+ "button",
965
+ { type: "button", class: "mcpe-btn mcpe-btn-primary", onClick: approve },
966
+ "Allow"
914
967
  )
915
968
  ])
916
969
  ])
917
- )
918
- ),
919
- h14("div", { class: "mcpe-mcp-consent-dialog-actions" }, [
920
- h14(
921
- "button",
922
- { type: "button", class: "mcpe-btn mcpe-btn-outline flex-1", onClick: deny },
923
- "Deny"
924
- ),
925
- h14(
926
- "button",
927
- { type: "button", class: "mcpe-btn mcpe-btn-primary flex-1", onClick: approve },
928
- "Allow"
929
- )
930
- ])
970
+ ]
971
+ )
931
972
  ]
932
973
  )
933
974
  ]);
@@ -986,7 +1027,7 @@ var McpeMcpScopeInspector = defineComponent15({
986
1027
  "div",
987
1028
  { class: "mcpe-mcp-scope-inspector-perms" },
988
1029
  s.permissions.map(
989
- (p) => h15("span", { class: "mcpe-mcp-scope-inspector-perm" }, p)
1030
+ (p) => h15("span", { class: "mcpe-mcp-scope-inspector-perm", "data-perm": p.toLowerCase() }, p)
990
1031
  )
991
1032
  )
992
1033
  ]),
package/dist/index.js.map CHANGED
@@ -1 +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","../src/mcp/mcp-server-status.ts","../src/mcp/mcp-tool-call.ts","../src/mcp/mcp-tool-form.ts","../src/mcp/mcp-consent-dialog.ts","../src/mcp/mcp-scope-inspector.ts","../src/mcp/mcp-resource-browser.ts","../src/mcp/mcp-app-frame.ts","../src/composables/use-mcp-tool-state.ts","../src/composables/use-mcp-oauth.ts","../src/composables/use-mcp-app-bridge.ts","../src/composables/use-mcp-schema-form.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","import { defineComponent, h, computed, type PropType } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\nexport type McpConnectionStatus =\n | 'connected'\n | 'connecting'\n | 'disconnected'\n | 'error'\n\nconst STATUS_LABELS: Record<McpConnectionStatus, string> = {\n connected: 'Connected',\n connecting: 'Connecting',\n disconnected: 'Disconnected',\n error: 'Error',\n}\n\nexport const McpeMcpServerStatus = defineComponent({\n name: 'McpeMcpServerStatus',\n props: {\n status: { type: String as PropType<McpConnectionStatus>, required: true },\n serverName: { type: String, default: '' },\n class: { type: String, default: '' },\n },\n setup(props) {\n const label = computed(\n () => (props.serverName ? `${props.serverName} · ` : '') + STATUS_LABELS[props.status]\n )\n const ariaLabel = computed(\n () => (props.serverName ? `${props.serverName}: ` : '') + STATUS_LABELS[props.status]\n )\n\n return () =>\n h(\n 'span',\n {\n class: cn(\n 'mcpe-mcp-server-status',\n `mcpe-mcp-server-status-${props.status}`,\n props.class\n ),\n role: 'status',\n 'aria-live': 'polite',\n 'aria-label': ariaLabel.value,\n },\n [h('span', { class: 'mcpe-mcp-server-status-dot', 'aria-hidden': 'true' }), label.value]\n )\n },\n})\n","import { defineComponent, h, ref, computed, watch, onUnmounted, type PropType, type VNode } from 'vue'\nimport { cn } from '@mcp-elements/core'\nimport type { ToolStateApi, ToolStateSnapshot, ContentBlock } from '@mcp-elements/core'\n\nconst STATUS_LABELS: Record<string, string> = {\n idle: 'idle',\n pending: 'pending',\n running: 'running',\n done: 'done',\n error: 'error',\n cancelled: 'cancelled',\n}\n\ntype TextBlock = Extract<ContentBlock, { type: 'text' }>\n\nexport const McpeMcpToolCall = defineComponent({\n name: 'McpeMcpToolCall',\n props: {\n state: { type: Object as PropType<ToolStateApi>, required: true },\n toolName: { type: String, default: '' },\n args: { type: Object as PropType<Record<string, unknown>>, default: undefined },\n class: { type: String, default: '' },\n },\n emits: ['retry'],\n setup(props, { emit }) {\n // Reactivity bridge: mirror the core ToolState machine into a Vue ref.\n // Re-subscribe whenever the `state` prop identity changes; seed the initial\n // snapshot from the machine's getters before the first subscribe fires.\n const snap = ref<ToolStateSnapshot>({ status: 'idle' })\n let unsub: (() => void) | undefined\n\n watch(\n () => props.state,\n (state) => {\n unsub?.()\n snap.value = {\n status: state.status,\n tool: state.tool,\n args: state.args,\n result: state.result,\n error: state.error,\n startedAt: state.startedAt,\n endedAt: state.endedAt,\n }\n unsub = state.subscribe((s) => {\n snap.value = { ...s }\n })\n },\n { immediate: true }\n )\n\n onUnmounted(() => unsub?.())\n\n const displayName = computed(() => snap.value.tool ?? props.toolName ?? 'unknown')\n const displayArgs = computed(() => snap.value.args ?? props.args)\n const textBlocks = computed<TextBlock[]>(\n () =>\n (snap.value.result?.content ?? []).filter((c): c is TextBlock => c.type === 'text')\n )\n\n return () => {\n const status = snap.value.status\n const children: VNode[] = []\n\n children.push(\n h('div', { class: 'mcpe-mcp-tool-call-header' }, [\n h('div', { class: 'mcpe-mcp-tool-call-name' }, [\n h('span', { class: 'mcpe-mcp-tool-call-icon', 'aria-hidden': 'true' }, 'fn'),\n h('span', { class: 'mcpe-mcp-tool-call-title' }, displayName.value),\n ]),\n h(\n 'span',\n { class: cn('mcpe-mcp-tool-call-badge', `mcpe-mcp-tool-call-badge-${status}`) },\n [\n status === 'running'\n ? h(\n 'svg',\n {\n class: 'animate-spin h-3 w-3',\n fill: 'none',\n viewBox: '0 0 24 24',\n 'aria-hidden': 'true',\n },\n [\n h('circle', {\n class: 'opacity-25',\n cx: '12',\n cy: '12',\n r: '10',\n stroke: 'currentColor',\n 'stroke-width': '4',\n }),\n h('path', {\n class: 'opacity-75',\n fill: 'currentColor',\n d: 'M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z',\n }),\n ]\n )\n : null,\n STATUS_LABELS[status],\n ]\n ),\n ])\n )\n\n if (displayArgs.value) {\n children.push(\n h('pre', { class: 'mcpe-mcp-tool-call-args' }, JSON.stringify(displayArgs.value, null, 2))\n )\n }\n\n if (status === 'running') {\n children.push(\n h(\n 'div',\n {\n class: 'mcpe-mcp-tool-call-progress',\n role: 'progressbar',\n 'aria-label': 'Tool running',\n },\n [h('div', { class: 'mcpe-mcp-tool-call-progress-bar', style: 'width: 60%' })]\n )\n )\n }\n\n if (status === 'done' && snap.value.result) {\n children.push(\n h(\n 'div',\n { class: 'mcpe-mcp-tool-call-result mcpe-mcp-tool-call-result-done' },\n textBlocks.value.map((b) => h('p', { class: 'whitespace-pre-wrap text-sm' }, b.text))\n )\n )\n }\n\n if (status === 'error' && snap.value.error) {\n children.push(\n h('div', { class: 'mcpe-mcp-tool-call-result mcpe-mcp-tool-call-result-error' }, [\n h('p', { class: 'text-sm' }, snap.value.error.message),\n h(\n 'button',\n {\n class: 'text-xs underline underline-offset-2',\n type: 'button',\n onClick: () => emit('retry'),\n },\n 'Retry'\n ),\n ])\n )\n }\n\n return h('div', { class: cn('mcpe-mcp-tool-call', props.class) }, children)\n }\n },\n})\n","import { defineComponent, h, reactive, computed, watch, type PropType, type VNode } from 'vue'\nimport { cn, schemaToFields } from '@mcp-elements/core'\nimport type { JsonSchema, FieldDescriptor } from '@mcp-elements/core'\n\nexport const McpeMcpToolForm = defineComponent({\n name: 'McpeMcpToolForm',\n props: {\n schema: { type: Object as PropType<JsonSchema>, required: true },\n loading: { type: Boolean, default: false },\n submitLabel: { type: String, default: 'Run' },\n class: { type: String, default: '' },\n },\n emits: ['submit'],\n setup(props, { emit }) {\n const fields = computed<FieldDescriptor[]>(() => schemaToFields(props.schema))\n const values = reactive<Record<string, unknown>>({})\n\n watch(\n fields,\n (fs) => {\n for (const k of Object.keys(values)) delete values[k]\n for (const f of fs) {\n if (f.defaultValue !== undefined) values[f.key] = f.defaultValue\n }\n },\n { immediate: true }\n )\n\n const getStr = (key: string) => {\n const v = values[key]\n return v == null ? '' : String(v)\n }\n const getBool = (key: string) => Boolean(values[key])\n const inputType = (f: FieldDescriptor) =>\n f.kind === 'email' ? 'email' : f.kind === 'url' ? 'url' : f.kind === 'date' ? 'date' : 'text'\n\n const handleSubmit = (e: Event) => {\n e.preventDefault()\n emit('submit', { ...values })\n }\n\n const submitButton = () =>\n h('div', { class: 'mcpe-mcp-tool-form-submit' }, [\n h(\n 'button',\n {\n type: 'submit',\n class: 'mcpe-btn mcpe-btn-primary mcpe-btn-sm',\n disabled: props.loading,\n },\n props.loading ? 'Running…' : props.submitLabel\n ),\n ])\n\n const fieldInput = (field: FieldDescriptor): VNode => {\n switch (field.kind) {\n case 'switch':\n return h('input', {\n type: 'checkbox',\n id: field.key,\n class: 'mcpe-switch',\n checked: getBool(field.key),\n onChange: (e: Event) => {\n values[field.key] = (e.target as HTMLInputElement).checked\n },\n })\n case 'select':\n return h(\n 'select',\n {\n id: field.key,\n class: 'mcpe-select',\n value: getStr(field.key),\n onChange: (e: Event) => {\n values[field.key] = (e.target as HTMLSelectElement).value\n },\n },\n [\n h('option', { value: '' }, 'Select…'),\n ...(field.options ?? []).map((opt) =>\n h('option', { value: opt.value }, opt.label)\n ),\n ]\n )\n case 'textarea':\n return h('textarea', {\n id: field.key,\n class: 'mcpe-textarea',\n rows: 4,\n value: getStr(field.key),\n onInput: (e: Event) => {\n values[field.key] = (e.target as HTMLTextAreaElement).value\n },\n })\n case 'number':\n return h('input', {\n type: 'number',\n id: field.key,\n class: 'mcpe-input',\n value: getStr(field.key),\n onInput: (e: Event) => {\n const raw = (e.target as HTMLInputElement).value\n values[field.key] = raw === '' ? undefined : Number(raw)\n },\n })\n default:\n return h('input', {\n type: inputType(field),\n id: field.key,\n class: 'mcpe-input',\n value: getStr(field.key),\n onInput: (e: Event) => {\n values[field.key] = (e.target as HTMLInputElement).value\n },\n })\n }\n }\n\n return () => {\n if (fields.value.length === 0) {\n return h('form', { class: cn('mcpe-mcp-tool-form', props.class), onSubmit: handleSubmit }, [\n h('p', { class: 'text-sm text-muted-foreground' }, 'This tool takes no inputs.'),\n submitButton(),\n ])\n }\n\n const fieldNodes = fields.value.map((field) => {\n const children: VNode[] = [\n h(\n 'label',\n {\n for: field.key,\n class: cn(\n 'mcpe-mcp-tool-form-label',\n field.required ? 'mcpe-mcp-tool-form-label-required' : ''\n ),\n },\n field.label\n ),\n fieldInput(field),\n ]\n if (field.help) {\n children.push(h('p', { class: 'mcpe-mcp-tool-form-help' }, field.help))\n }\n return h('div', { class: 'mcpe-mcp-tool-form-field' }, children)\n })\n\n return h('form', { class: cn('mcpe-mcp-tool-form', props.class), onSubmit: handleSubmit }, [\n ...fieldNodes,\n submitButton(),\n ])\n }\n },\n})\n","import {\n defineComponent,\n h,\n computed,\n watch,\n onMounted,\n onUnmounted,\n Teleport,\n type PropType,\n type VNode,\n} from 'vue'\nimport { parseScopes } from '@mcp-elements/core'\n\nexport const McpeMcpConsentDialog = defineComponent({\n name: 'McpeMcpConsentDialog',\n props: {\n open: { type: Boolean, required: true },\n serverName: { type: String, required: true },\n serverIcon: { type: String, default: undefined },\n scopes: { type: Array as PropType<string[]>, default: () => [] },\n },\n emits: ['approve', 'deny'],\n setup(props, { emit }) {\n const parsedScopes = computed(() => parseScopes(props.scopes.join(' ')))\n\n const approve = () => emit('approve')\n const deny = () => emit('deny')\n\n // Match McpeDialog behaviour: Escape closes (deny) + scroll lock while open.\n let unlockScroll: (() => void) | null = null\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.open,\n (isOpen) => {\n if (isOpen) {\n unlockScroll = lockScroll()\n } else if (unlockScroll) {\n unlockScroll()\n unlockScroll = null\n }\n },\n { immediate: true }\n )\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && props.open) deny()\n }\n\n onMounted(() => document.addEventListener('keydown', handleKeydown))\n onUnmounted(() => {\n document.removeEventListener('keydown', handleKeydown)\n if (unlockScroll) unlockScroll()\n })\n\n return () => {\n if (!props.open) return h('span', { style: 'display:none' })\n\n const iconChild: VNode | string = props.serverIcon\n ? h('img', { src: props.serverIcon, alt: '', class: 'h-full w-full object-cover' })\n : (props.serverName[0]?.toUpperCase() ?? '?')\n\n return h(Teleport as unknown as string, { to: 'body' }, [\n h('div', { class: 'mcpe-dialog-overlay', onClick: deny }),\n h(\n 'div',\n {\n class: 'mcpe-dialog-content',\n role: 'dialog',\n 'aria-modal': 'true',\n 'aria-label': `Allow ${props.serverName}?`,\n onClick: (e: MouseEvent) => e.stopPropagation(),\n },\n [\n h('div', { class: 'mcpe-mcp-consent-dialog-server' }, [\n h('div', { class: 'mcpe-mcp-consent-dialog-icon', 'aria-hidden': 'true' }, [iconChild]),\n h('div', {}, [\n h('p', { class: 'mcpe-mcp-consent-dialog-server-name' }, props.serverName),\n h('p', { class: 'mcpe-mcp-consent-dialog-server-meta' }, 'is requesting access to'),\n ]),\n ]),\n h(\n 'div',\n {\n class: 'mcpe-mcp-consent-dialog-scopes',\n role: 'list',\n 'aria-label': 'Requested permissions',\n },\n parsedScopes.value.map((s) =>\n h('div', { class: 'mcpe-mcp-consent-dialog-scope-item', role: 'listitem' }, [\n h('div', { class: 'flex-1 min-w-0' }, [\n h('p', { class: 'mcpe-mcp-consent-dialog-scope-resource' }, s.resource),\n h(\n 'div',\n { class: 'mcpe-mcp-consent-dialog-scope-perms' },\n s.permissions.map((p) =>\n h('span', { class: 'mcpe-mcp-consent-dialog-scope-perm' }, p)\n )\n ),\n ]),\n ])\n )\n ),\n h('div', { class: 'mcpe-mcp-consent-dialog-actions' }, [\n h(\n 'button',\n { type: 'button', class: 'mcpe-btn mcpe-btn-outline flex-1', onClick: deny },\n 'Deny'\n ),\n h(\n 'button',\n { type: 'button', class: 'mcpe-btn mcpe-btn-primary flex-1', onClick: approve },\n 'Allow'\n ),\n ]),\n ]\n ),\n ])\n }\n },\n})\n","import { defineComponent, h, ref, computed, type PropType, type VNode } from 'vue'\nimport { cn, parseScopes } from '@mcp-elements/core'\nimport type { ScopeDescriptor } from '@mcp-elements/core'\n\nexport const McpeMcpScopeInspector = defineComponent({\n name: 'McpeMcpScopeInspector',\n props: {\n scopes: {\n type: [String, Array] as PropType<string | ScopeDescriptor[]>,\n default: '',\n },\n descriptions: {\n type: Object as PropType<Record<string, string>>,\n default: () => ({}),\n },\n class: { type: String, default: '' },\n },\n setup(props) {\n const parsed = computed<ScopeDescriptor[]>(() =>\n typeof props.scopes === 'string' ? parseScopes(props.scopes) : props.scopes\n )\n\n const openKeys = ref<Set<string>>(new Set())\n const isOpen = (key: string) => openKeys.value.has(key)\n const toggle = (key: string) => {\n const next = new Set(openKeys.value)\n if (next.has(key)) next.delete(key)\n else next.add(key)\n openKeys.value = next\n }\n\n const getDescription = (s: ScopeDescriptor) =>\n props.descriptions[s.raw] ?? props.descriptions[s.resource] ?? s.description\n\n return () =>\n h(\n 'div',\n { class: cn('mcpe-mcp-scope-inspector', props.class), role: 'list' },\n parsed.value.map((s) => {\n const open = isOpen(s.raw)\n const desc = getDescription(s)\n const itemChildren: VNode[] = [\n h(\n 'button',\n {\n type: 'button',\n class: 'mcpe-mcp-scope-inspector-trigger',\n 'aria-expanded': open,\n onClick: () => toggle(s.raw),\n },\n [\n h('div', { class: 'flex items-center gap-3' }, [\n h('span', { class: 'mcpe-mcp-scope-inspector-resource' }, s.resource),\n h(\n 'div',\n { class: 'mcpe-mcp-scope-inspector-perms' },\n s.permissions.map((p) =>\n h('span', { class: 'mcpe-mcp-scope-inspector-perm' }, p)\n )\n ),\n ]),\n h(\n 'svg',\n {\n class: cn(\n 'mcpe-mcp-scope-inspector-chevron',\n open ? 'mcpe-mcp-scope-inspector-chevron-open' : ''\n ),\n xmlns: 'http://www.w3.org/2000/svg',\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 'aria-hidden': 'true',\n },\n [h('path', { d: 'm6 9 6 6 6-6' })]\n ),\n ]\n ),\n ]\n\n if (open && desc) {\n itemChildren.push(\n h('div', { role: 'region', class: 'mcpe-mcp-scope-inspector-body' }, desc)\n )\n }\n\n return h(\n 'div',\n { class: 'mcpe-mcp-scope-inspector-item', role: 'listitem' },\n itemChildren\n )\n })\n )\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\nexport interface McpResource {\n uri: string\n name: string\n mimeType?: string\n description?: string\n}\n\nfunction mimeTypeLabel(mimeType?: string): string {\n if (!mimeType) return 'res'\n if (mimeType.includes('json')) return 'json'\n if (mimeType.includes('text')) return 'txt'\n if (mimeType.includes('image')) return 'img'\n if (mimeType.includes('pdf')) return 'pdf'\n return mimeType.split('/')[1]?.slice(0, 4) ?? 'res'\n}\n\nexport const McpeMcpResourceBrowser = defineComponent({\n name: 'McpeMcpResourceBrowser',\n props: {\n resources: { type: Array as PropType<McpResource[]>, default: () => [] },\n selectedUri: { type: String, default: undefined },\n loading: { type: Boolean, default: false },\n class: { type: String, default: '' },\n },\n emits: ['select'],\n setup(props, { emit }) {\n return () => {\n if (props.loading) {\n return h(\n 'div',\n { class: cn('mcpe-mcp-resource-browser', props.class) },\n [1, 2, 3, 4].map(() =>\n h('div', { class: 'flex items-center gap-3 px-3 py-2.5' }, [\n h('div', { class: 'h-8 w-8 rounded-md animate-pulse bg-muted' }),\n h('div', { class: 'h-4 flex-1 rounded animate-pulse bg-muted' }),\n ])\n )\n )\n }\n\n if (props.resources.length === 0) {\n return h('div', { class: cn('mcpe-mcp-resource-browser', props.class) }, [\n h('p', { class: 'mcpe-mcp-resource-browser-empty' }, 'No resources available'),\n ])\n }\n\n return h(\n 'div',\n { class: cn('mcpe-mcp-resource-browser', props.class), role: 'list' },\n props.resources.map((r) => {\n const selected = props.selectedUri === r.uri\n const children = [\n h(\n 'span',\n { class: 'mcpe-mcp-resource-browser-icon', 'aria-hidden': 'true' },\n mimeTypeLabel(r.mimeType)\n ),\n h('span', { class: 'mcpe-mcp-resource-browser-name' }, r.name),\n ]\n if (r.mimeType) {\n children.push(\n h('span', { class: 'mcpe-mcp-resource-browser-type' }, r.mimeType.split('/')[0])\n )\n }\n return h(\n 'button',\n {\n type: 'button',\n role: 'listitem',\n class: cn(\n 'mcpe-mcp-resource-browser-item w-full text-left',\n selected ? 'mcpe-mcp-resource-browser-item-selected' : ''\n ),\n 'aria-selected': selected,\n 'aria-label': r.name,\n onClick: () => emit('select', r),\n },\n children\n )\n })\n )\n }\n },\n})\n","import { defineComponent, h, ref, watch, onUnmounted } from 'vue'\nimport { cn, createAppBridge } from '@mcp-elements/core'\nimport type { AppBridge } from '@mcp-elements/core'\n\nexport const McpeMcpAppFrame = defineComponent({\n name: 'McpeMcpAppFrame',\n props: {\n src: { type: String, required: true },\n height: { type: Number, default: 480 },\n sandbox: { type: String, default: 'allow-scripts allow-same-origin' },\n class: { type: String, default: '' },\n },\n emits: ['message'],\n setup(props, { emit }) {\n const frameRef = ref<HTMLIFrameElement | null>(null)\n\n let bridge: AppBridge | null = null\n let unsub: (() => void) | null = null\n let messageHandler: ((e: MessageEvent) => void) | null = null\n\n const cleanup = () => {\n if (unsub) unsub()\n if (messageHandler) window.removeEventListener('message', messageHandler)\n unsub = null\n messageHandler = null\n bridge = null\n }\n\n const setup = () => {\n cleanup()\n bridge = createAppBridge({\n postMessage: (env) => frameRef.value?.contentWindow?.postMessage(env, '*'),\n })\n unsub = bridge.onMessage((env) => emit('message', env))\n messageHandler = (e: MessageEvent) => bridge?.receive(e.data)\n window.addEventListener('message', messageHandler)\n }\n\n // Re-establish the bridge when the iframe mounts or its src changes.\n watch([frameRef, () => props.src], () => {\n if (frameRef.value) setup()\n })\n\n onUnmounted(cleanup)\n\n return () =>\n h('div', { class: cn('mcpe-mcp-app-frame', props.class) }, [\n h('iframe', {\n ref: frameRef,\n src: props.src,\n sandbox: props.sandbox,\n height: `${props.height}px`,\n title: 'MCP App',\n 'aria-label': 'MCP App frame',\n style: 'display:block;width:100%;border:none',\n }),\n ])\n },\n})\n","import { ref, onUnmounted, type Ref } from 'vue'\nimport { createToolState } from '@mcp-elements/core'\nimport type { ToolStateApi, ToolStateSnapshot } from '@mcp-elements/core'\n\nexport interface UseMcpToolState {\n /** The underlying tool-state machine (call start/markRunning/markDone/…). */\n api: ToolStateApi\n /** Reactive snapshot of the machine, updated on every transition. */\n snapshot: Ref<ToolStateSnapshot>\n}\n\n/**\n * Vue composable wrapping the framework-free `createToolState()` machine.\n * Creates one machine instance and mirrors it into a reactive ref; the\n * subscription is cleaned up automatically on unmount.\n */\nexport function useMcpToolState(): UseMcpToolState {\n const api = createToolState()\n const snapshot = ref<ToolStateSnapshot>({\n status: api.status,\n tool: api.tool,\n args: api.args,\n result: api.result,\n error: api.error,\n startedAt: api.startedAt,\n endedAt: api.endedAt,\n })\n\n const unsub = api.subscribe((s) => {\n snapshot.value = { ...s }\n })\n\n onUnmounted(unsub)\n\n return { api, snapshot }\n}\n","import { ref, onUnmounted, type Ref } from 'vue'\nimport { createOAuthFlow } from '@mcp-elements/core'\nimport type { OAuthFlowApi, OAuthFlowSnapshot } from '@mcp-elements/core'\n\nexport interface UseMcpOAuth {\n /** The underlying OAuth flow machine (call start/markAuthorized/…). */\n api: OAuthFlowApi\n /** Reactive snapshot of the flow, updated on every transition. */\n snapshot: Ref<OAuthFlowSnapshot>\n}\n\n/**\n * Vue composable wrapping the framework-free `createOAuthFlow()` machine.\n * Mirrors the flow state into a reactive ref; cleans up on unmount.\n */\nexport function useMcpOAuth(): UseMcpOAuth {\n const api = createOAuthFlow()\n const snapshot = ref<OAuthFlowSnapshot>({\n status: api.status,\n verifier: api.verifier,\n state: api.state,\n tokens: api.tokens,\n error: api.error,\n })\n\n const unsub = api.subscribe((s) => {\n snapshot.value = { ...s }\n })\n\n onUnmounted(unsub)\n\n return { api, snapshot }\n}\n","import { ref, watch, onUnmounted, type Ref } from 'vue'\nimport { createAppBridge } from '@mcp-elements/core'\nimport type { AppBridge, AppMessageEnvelope } from '@mcp-elements/core'\n\nexport interface UseMcpAppBridgeOptions {\n /** Called for every well-formed envelope received from the iframe. */\n onMessage?: (env: AppMessageEnvelope) => void\n}\n\nexport interface UseMcpAppBridge {\n /** Bind this to the iframe element (`ref=\"frameRef\"` / `:ref=\"frameRef\"`). */\n frameRef: Ref<HTMLIFrameElement | null>\n /** Post an envelope to the framed MCP App. */\n send: (env: AppMessageEnvelope) => void\n}\n\n/**\n * Vue composable that wires a postMessage `createAppBridge()` to an iframe.\n * Establishes the bridge once the iframe is mounted and tears down the\n * window listener + subscription on unmount.\n */\nexport function useMcpAppBridge(options: UseMcpAppBridgeOptions = {}): UseMcpAppBridge {\n const frameRef = ref<HTMLIFrameElement | null>(null)\n\n let bridge: AppBridge | null = null\n let unsub: (() => void) | null = null\n let messageHandler: ((e: MessageEvent) => void) | null = null\n\n const cleanup = () => {\n if (unsub) unsub()\n if (messageHandler) window.removeEventListener('message', messageHandler)\n unsub = null\n messageHandler = null\n bridge = null\n }\n\n const establish = () => {\n cleanup()\n bridge = createAppBridge({\n postMessage: (env) => frameRef.value?.contentWindow?.postMessage(env, '*'),\n })\n if (options.onMessage) unsub = bridge.onMessage(options.onMessage)\n messageHandler = (e: MessageEvent) => bridge?.receive(e.data)\n window.addEventListener('message', messageHandler)\n }\n\n watch(frameRef, (el) => {\n if (el) establish()\n })\n\n onUnmounted(cleanup)\n\n const send = (env: AppMessageEnvelope) => bridge?.send(env)\n\n return { frameRef, send }\n}\n","import { reactive, computed, watch, type ComputedRef } from 'vue'\nimport { schemaToFields } from '@mcp-elements/core'\nimport type { JsonSchema, FieldDescriptor } from '@mcp-elements/core'\n\nexport interface UseMcpSchemaForm {\n /** Form fields derived from the JSON Schema. */\n fields: ComputedRef<FieldDescriptor[]>\n /** Reactive map of field key → current value. */\n values: Record<string, unknown>\n /** Set a single field's value. */\n setValue: (key: string, value: unknown) => void\n /** Reset all values to the schema defaults. */\n reset: () => void\n}\n\n/**\n * Vue composable that turns a JSON Schema into reactive form state via the\n * framework-free `schemaToFields()`. Re-seeds defaults when the schema changes.\n */\nexport function useMcpSchemaForm(schema: JsonSchema | (() => JsonSchema)): UseMcpSchemaForm {\n const getSchema = typeof schema === 'function' ? schema : () => schema\n const fields = computed<FieldDescriptor[]>(() => schemaToFields(getSchema()))\n const values = reactive<Record<string, unknown>>({})\n\n const reset = () => {\n for (const k of Object.keys(values)) delete values[k]\n for (const f of fields.value) {\n if (f.defaultValue !== undefined) values[f.key] = f.defaultValue\n }\n }\n\n watch(fields, reset, { immediate: true })\n\n const setValue = (key: string, value: unknown) => {\n values[key] = value\n }\n\n return { fields, values, setValue, reset }\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","defineComponent","h","computed","cn","defineComponent","h","computed","watch","onUnmounted","cn","STATUS_LABELS","defineComponent","h","computed","watch","cn","defineComponent","h","computed","watch","onMounted","onUnmounted","Teleport","defineComponent","h","ref","computed","cn","parseScopes","defineComponent","h","cn","defineComponent","h","ref","watch","onUnmounted","cn","ref","onUnmounted","ref","onUnmounted","ref","watch","onUnmounted","createAppBridge","reactive","computed","watch","schemaToFields"]}
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","../src/mcp/mcp-server-status.ts","../src/mcp/mcp-tool-call.ts","../src/mcp/mcp-tool-form.ts","../src/mcp/mcp-consent-dialog.ts","../src/mcp/mcp-scope-inspector.ts","../src/mcp/mcp-resource-browser.ts","../src/mcp/mcp-app-frame.ts","../src/composables/use-mcp-tool-state.ts","../src/composables/use-mcp-oauth.ts","../src/composables/use-mcp-app-bridge.ts","../src/composables/use-mcp-schema-form.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 body = document.body\n // Compensate for the scrollbar so the page doesn't shift on open.\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n const prevOverflow = body.style.overflow\n const prevPaddingRight = body.style.paddingRight\n body.style.overflow = 'hidden'\n if (scrollbarWidth > 0) {\n const currentPad = parseFloat(getComputedStyle(body).paddingRight) || 0\n body.style.paddingRight = `${currentPad + scrollbarWidth}px`\n }\n return () => {\n body.style.overflow = prevOverflow\n body.style.paddingRight = prevPaddingRight\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(\n 'div',\n {\n class: 'mcpe-dialog-overlay',\n onClick: close,\n },\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: '16',\n height: '16',\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 'aria-hidden': 'true',\n },\n [\n h('path', { d: 'M18 6 6 18' }),\n h('path', { d: 'm6 6 12 12' }),\n ]\n ),\n ]\n ),\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","import { defineComponent, h, computed, type PropType } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\nexport type McpConnectionStatus =\n | 'connected'\n | 'connecting'\n | 'disconnected'\n | 'error'\n\nconst STATUS_LABELS: Record<McpConnectionStatus, string> = {\n connected: 'Connected',\n connecting: 'Connecting',\n disconnected: 'Disconnected',\n error: 'Error',\n}\n\nexport const McpeMcpServerStatus = defineComponent({\n name: 'McpeMcpServerStatus',\n props: {\n status: { type: String as PropType<McpConnectionStatus>, required: true },\n serverName: { type: String, default: '' },\n class: { type: String, default: '' },\n },\n setup(props) {\n const label = computed(\n () => (props.serverName ? `${props.serverName} · ` : '') + STATUS_LABELS[props.status]\n )\n const ariaLabel = computed(\n () => (props.serverName ? `${props.serverName}: ` : '') + STATUS_LABELS[props.status]\n )\n\n return () =>\n h(\n 'span',\n {\n class: cn(\n 'mcpe-mcp-server-status',\n `mcpe-mcp-server-status-${props.status}`,\n props.class\n ),\n role: 'status',\n 'aria-live': 'polite',\n 'aria-label': ariaLabel.value,\n },\n [h('span', { class: 'mcpe-mcp-server-status-dot', 'aria-hidden': 'true' }), label.value]\n )\n },\n})\n","import { defineComponent, h, ref, computed, watch, onUnmounted, type PropType, type VNode } from 'vue'\nimport { cn } from '@mcp-elements/core'\nimport type { ToolStateApi, ToolStateSnapshot, ContentBlock } from '@mcp-elements/core'\n\nconst STATUS_LABELS: Record<string, string> = {\n idle: 'idle',\n pending: 'pending',\n running: 'running',\n done: 'done',\n error: 'error',\n cancelled: 'cancelled',\n}\n\ntype TextBlock = Extract<ContentBlock, { type: 'text' }>\n\nexport const McpeMcpToolCall = defineComponent({\n name: 'McpeMcpToolCall',\n props: {\n state: { type: Object as PropType<ToolStateApi>, required: true },\n toolName: { type: String, default: '' },\n args: { type: Object as PropType<Record<string, unknown>>, default: undefined },\n class: { type: String, default: '' },\n },\n emits: ['retry'],\n setup(props, { emit }) {\n // Reactivity bridge: mirror the core ToolState machine into a Vue ref.\n // Re-subscribe whenever the `state` prop identity changes; seed the initial\n // snapshot from the machine's getters before the first subscribe fires.\n const snap = ref<ToolStateSnapshot>({ status: 'idle' })\n let unsub: (() => void) | undefined\n\n watch(\n () => props.state,\n (state) => {\n unsub?.()\n snap.value = {\n status: state.status,\n tool: state.tool,\n args: state.args,\n result: state.result,\n error: state.error,\n startedAt: state.startedAt,\n endedAt: state.endedAt,\n }\n unsub = state.subscribe((s) => {\n snap.value = { ...s }\n })\n },\n { immediate: true }\n )\n\n onUnmounted(() => unsub?.())\n\n const displayName = computed(() => snap.value.tool ?? props.toolName ?? 'unknown')\n const displayArgs = computed(() => snap.value.args ?? props.args)\n const textBlocks = computed<TextBlock[]>(\n () =>\n (snap.value.result?.content ?? []).filter((c): c is TextBlock => c.type === 'text')\n )\n\n return () => {\n const status = snap.value.status\n const children: VNode[] = []\n\n children.push(\n h('div', { class: 'mcpe-mcp-tool-call-header' }, [\n h('div', { class: 'mcpe-mcp-tool-call-name' }, [\n h('span', { class: 'mcpe-mcp-tool-call-icon', 'aria-hidden': 'true' }, 'fn'),\n h('span', { class: 'mcpe-mcp-tool-call-title' }, displayName.value),\n ]),\n h(\n 'span',\n { class: cn('mcpe-mcp-tool-call-badge', `mcpe-mcp-tool-call-badge-${status}`) },\n [\n status === 'running'\n ? h(\n 'svg',\n {\n class: 'animate-spin h-3 w-3',\n fill: 'none',\n viewBox: '0 0 24 24',\n 'aria-hidden': 'true',\n },\n [\n h('circle', {\n class: 'opacity-25',\n cx: '12',\n cy: '12',\n r: '10',\n stroke: 'currentColor',\n 'stroke-width': '4',\n }),\n h('path', {\n class: 'opacity-75',\n fill: 'currentColor',\n d: 'M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z',\n }),\n ]\n )\n : null,\n STATUS_LABELS[status],\n ]\n ),\n ])\n )\n\n if (displayArgs.value) {\n children.push(\n h('pre', { class: 'mcpe-mcp-tool-call-args' }, JSON.stringify(displayArgs.value, null, 2))\n )\n }\n\n if (status === 'running') {\n children.push(\n h(\n 'div',\n {\n class: 'mcpe-mcp-tool-call-progress',\n role: 'progressbar',\n 'aria-label': 'Tool running',\n },\n [h('div', { class: 'mcpe-mcp-tool-call-progress-bar', style: 'width: 60%' })]\n )\n )\n }\n\n if (status === 'done' && snap.value.result) {\n children.push(\n h(\n 'div',\n { class: 'mcpe-mcp-tool-call-result mcpe-mcp-tool-call-result-done' },\n textBlocks.value.map((b) => h('p', { class: 'whitespace-pre-wrap text-sm' }, b.text))\n )\n )\n }\n\n if (status === 'error' && snap.value.error) {\n children.push(\n h('div', { class: 'mcpe-mcp-tool-call-result mcpe-mcp-tool-call-result-error' }, [\n h('p', { class: 'text-sm' }, snap.value.error.message),\n h(\n 'button',\n {\n class: 'text-xs underline underline-offset-2',\n type: 'button',\n onClick: () => emit('retry'),\n },\n 'Retry'\n ),\n ])\n )\n }\n\n return h('div', { class: cn('mcpe-mcp-tool-call', props.class) }, children)\n }\n },\n})\n","import { defineComponent, h, reactive, computed, watch, type PropType, type VNode } from 'vue'\nimport { cn, schemaToFields } from '@mcp-elements/core'\nimport type { JsonSchema, FieldDescriptor } from '@mcp-elements/core'\n\nexport const McpeMcpToolForm = defineComponent({\n name: 'McpeMcpToolForm',\n props: {\n schema: { type: Object as PropType<JsonSchema>, required: true },\n loading: { type: Boolean, default: false },\n submitLabel: { type: String, default: 'Run' },\n class: { type: String, default: '' },\n },\n emits: ['submit'],\n setup(props, { emit }) {\n const fields = computed<FieldDescriptor[]>(() => schemaToFields(props.schema))\n const values = reactive<Record<string, unknown>>({})\n\n watch(\n fields,\n (fs) => {\n for (const k of Object.keys(values)) delete values[k]\n for (const f of fs) {\n if (f.defaultValue !== undefined) values[f.key] = f.defaultValue\n }\n },\n { immediate: true }\n )\n\n const getStr = (key: string) => {\n const v = values[key]\n return v == null ? '' : String(v)\n }\n const getBool = (key: string) => Boolean(values[key])\n const inputType = (f: FieldDescriptor) =>\n f.kind === 'email' ? 'email' : f.kind === 'url' ? 'url' : f.kind === 'date' ? 'date' : 'text'\n\n const handleSubmit = (e: Event) => {\n e.preventDefault()\n emit('submit', { ...values })\n }\n\n const submitButton = () =>\n h('div', { class: 'mcpe-mcp-tool-form-submit' }, [\n h(\n 'button',\n {\n type: 'submit',\n class: 'mcpe-btn mcpe-btn-primary mcpe-btn-sm',\n disabled: props.loading,\n },\n props.loading ? 'Running…' : props.submitLabel\n ),\n ])\n\n const fieldInput = (field: FieldDescriptor): VNode => {\n switch (field.kind) {\n case 'switch':\n return h('input', {\n type: 'checkbox',\n id: field.key,\n class: 'mcpe-switch',\n checked: getBool(field.key),\n onChange: (e: Event) => {\n values[field.key] = (e.target as HTMLInputElement).checked\n },\n })\n case 'select':\n return h(\n 'select',\n {\n id: field.key,\n class: 'mcpe-select',\n value: getStr(field.key),\n onChange: (e: Event) => {\n values[field.key] = (e.target as HTMLSelectElement).value\n },\n },\n [\n h('option', { value: '' }, 'Select…'),\n ...(field.options ?? []).map((opt) =>\n h('option', { value: opt.value }, opt.label)\n ),\n ]\n )\n case 'textarea':\n return h('textarea', {\n id: field.key,\n class: 'mcpe-textarea',\n rows: 4,\n value: getStr(field.key),\n onInput: (e: Event) => {\n values[field.key] = (e.target as HTMLTextAreaElement).value\n },\n })\n case 'number':\n return h('input', {\n type: 'number',\n id: field.key,\n class: 'mcpe-input',\n value: getStr(field.key),\n onInput: (e: Event) => {\n const raw = (e.target as HTMLInputElement).value\n values[field.key] = raw === '' ? undefined : Number(raw)\n },\n })\n default:\n return h('input', {\n type: inputType(field),\n id: field.key,\n class: 'mcpe-input',\n value: getStr(field.key),\n onInput: (e: Event) => {\n values[field.key] = (e.target as HTMLInputElement).value\n },\n })\n }\n }\n\n return () => {\n if (fields.value.length === 0) {\n return h('form', { class: cn('mcpe-mcp-tool-form', props.class), onSubmit: handleSubmit }, [\n h('p', { class: 'text-sm text-muted-foreground' }, 'This tool takes no inputs.'),\n submitButton(),\n ])\n }\n\n const fieldNodes = fields.value.map((field) => {\n const children: VNode[] = [\n h(\n 'label',\n {\n for: field.key,\n class: cn(\n 'mcpe-mcp-tool-form-label',\n field.required ? 'mcpe-mcp-tool-form-label-required' : ''\n ),\n },\n field.label\n ),\n fieldInput(field),\n ]\n if (field.help) {\n children.push(h('p', { class: 'mcpe-mcp-tool-form-help' }, field.help))\n }\n return h('div', { class: 'mcpe-mcp-tool-form-field' }, children)\n })\n\n return h('form', { class: cn('mcpe-mcp-tool-form', props.class), onSubmit: handleSubmit }, [\n ...fieldNodes,\n submitButton(),\n ])\n }\n },\n})\n","import {\n defineComponent,\n h,\n computed,\n watch,\n onMounted,\n onUnmounted,\n Teleport,\n type PropType,\n type VNode,\n} from 'vue'\nimport { parseScopes } from '@mcp-elements/core'\n\nexport const McpeMcpConsentDialog = defineComponent({\n name: 'McpeMcpConsentDialog',\n props: {\n open: { type: Boolean, required: true },\n serverName: { type: String, required: true },\n serverIcon: { type: String, default: undefined },\n scopes: { type: Array as PropType<string[]>, default: () => [] },\n },\n emits: ['approve', 'deny'],\n setup(props, { emit }) {\n const parsedScopes = computed(() => parseScopes(props.scopes.join(' ')))\n\n const approve = () => emit('approve')\n const deny = () => emit('deny')\n\n // Match McpeDialog behaviour: Escape closes (deny) + scroll lock while open.\n let unlockScroll: (() => void) | null = null\n const lockScroll = () => {\n const body = document.body\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth\n const prevOverflow = body.style.overflow\n const prevPaddingRight = body.style.paddingRight\n body.style.overflow = 'hidden'\n if (scrollbarWidth > 0) {\n const currentPad = parseFloat(getComputedStyle(body).paddingRight) || 0\n body.style.paddingRight = `${currentPad + scrollbarWidth}px`\n }\n return () => {\n body.style.overflow = prevOverflow\n body.style.paddingRight = prevPaddingRight\n }\n }\n\n watch(\n () => props.open,\n (isOpen) => {\n if (isOpen) {\n unlockScroll = lockScroll()\n } else if (unlockScroll) {\n unlockScroll()\n unlockScroll = null\n }\n },\n { immediate: true }\n )\n\n const handleKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && props.open) deny()\n }\n\n onMounted(() => document.addEventListener('keydown', handleKeydown))\n onUnmounted(() => {\n document.removeEventListener('keydown', handleKeydown)\n if (unlockScroll) unlockScroll()\n })\n\n return () => {\n if (!props.open) return h('span', { style: 'display:none' })\n\n const iconChild: VNode | string = props.serverIcon\n ? h('img', { src: props.serverIcon, alt: '' })\n : (props.serverName[0]?.toUpperCase() ?? '?')\n\n return h(Teleport as unknown as string, { to: 'body' }, [\n h(\n 'div',\n { class: 'mcpe-dialog-overlay', onClick: deny },\n [\n h(\n 'div',\n {\n class: 'mcpe-dialog-content',\n role: 'dialog',\n 'aria-modal': 'true',\n 'aria-label': `Allow ${props.serverName}?`,\n onClick: (e: MouseEvent) => e.stopPropagation(),\n },\n [\n h('div', { class: 'mcpe-mcp-consent-dialog' }, [\n h('div', { class: 'mcpe-dialog-header' }, [\n h('h2', { class: 'mcpe-dialog-title' }, 'Permission Request'),\n h(\n 'p',\n { class: 'mcpe-dialog-description' },\n 'Review and approve the permissions this server is requesting.'\n ),\n ]),\n h('div', { class: 'mcpe-mcp-consent-dialog-server' }, [\n h('div', { class: 'mcpe-mcp-consent-dialog-icon', 'aria-hidden': 'true' }, [iconChild]),\n h('div', { class: 'mcpe-mcp-consent-dialog-server-text' }, [\n h('p', { class: 'mcpe-mcp-consent-dialog-server-name' }, props.serverName),\n h('p', { class: 'mcpe-mcp-consent-dialog-server-meta' }, 'is requesting access to'),\n ]),\n ]),\n h(\n 'div',\n {\n class: 'mcpe-mcp-consent-dialog-scopes',\n role: 'list',\n 'aria-label': 'Requested permissions',\n },\n parsedScopes.value.map((s) =>\n h('div', { class: 'mcpe-mcp-consent-dialog-scope-item', role: 'listitem' }, [\n h('span', { class: 'mcpe-mcp-consent-dialog-scope-resource' }, s.resource),\n h(\n 'div',\n { class: 'mcpe-mcp-consent-dialog-scope-perms' },\n s.permissions.map((p) =>\n h(\n 'span',\n {\n class: 'mcpe-mcp-consent-dialog-scope-perm',\n 'data-perm': p.toLowerCase(),\n },\n p\n )\n )\n ),\n ])\n )\n ),\n h('div', { class: 'mcpe-mcp-consent-dialog-actions' }, [\n h(\n 'button',\n { type: 'button', class: 'mcpe-btn mcpe-btn-outline', onClick: deny },\n 'Deny'\n ),\n h(\n 'button',\n { type: 'button', class: 'mcpe-btn mcpe-btn-primary', onClick: approve },\n 'Allow'\n ),\n ]),\n ]),\n ]\n ),\n ]\n ),\n ])\n }\n },\n})\n","import { defineComponent, h, ref, computed, type PropType, type VNode } from 'vue'\nimport { cn, parseScopes } from '@mcp-elements/core'\nimport type { ScopeDescriptor } from '@mcp-elements/core'\n\nexport const McpeMcpScopeInspector = defineComponent({\n name: 'McpeMcpScopeInspector',\n props: {\n scopes: {\n type: [String, Array] as PropType<string | ScopeDescriptor[]>,\n default: '',\n },\n descriptions: {\n type: Object as PropType<Record<string, string>>,\n default: () => ({}),\n },\n class: { type: String, default: '' },\n },\n setup(props) {\n const parsed = computed<ScopeDescriptor[]>(() =>\n typeof props.scopes === 'string' ? parseScopes(props.scopes) : props.scopes\n )\n\n const openKeys = ref<Set<string>>(new Set())\n const isOpen = (key: string) => openKeys.value.has(key)\n const toggle = (key: string) => {\n const next = new Set(openKeys.value)\n if (next.has(key)) next.delete(key)\n else next.add(key)\n openKeys.value = next\n }\n\n const getDescription = (s: ScopeDescriptor) =>\n props.descriptions[s.raw] ?? props.descriptions[s.resource] ?? s.description\n\n return () =>\n h(\n 'div',\n { class: cn('mcpe-mcp-scope-inspector', props.class), role: 'list' },\n parsed.value.map((s) => {\n const open = isOpen(s.raw)\n const desc = getDescription(s)\n const itemChildren: VNode[] = [\n h(\n 'button',\n {\n type: 'button',\n class: 'mcpe-mcp-scope-inspector-trigger',\n 'aria-expanded': open,\n onClick: () => toggle(s.raw),\n },\n [\n h('div', { class: 'flex items-center gap-3' }, [\n h('span', { class: 'mcpe-mcp-scope-inspector-resource' }, s.resource),\n h(\n 'div',\n { class: 'mcpe-mcp-scope-inspector-perms' },\n s.permissions.map((p) =>\n h('span', { class: 'mcpe-mcp-scope-inspector-perm', 'data-perm': p.toLowerCase() }, p)\n )\n ),\n ]),\n h(\n 'svg',\n {\n class: cn(\n 'mcpe-mcp-scope-inspector-chevron',\n open ? 'mcpe-mcp-scope-inspector-chevron-open' : ''\n ),\n xmlns: 'http://www.w3.org/2000/svg',\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 'aria-hidden': 'true',\n },\n [h('path', { d: 'm6 9 6 6 6-6' })]\n ),\n ]\n ),\n ]\n\n if (open && desc) {\n itemChildren.push(\n h('div', { role: 'region', class: 'mcpe-mcp-scope-inspector-body' }, desc)\n )\n }\n\n return h(\n 'div',\n { class: 'mcpe-mcp-scope-inspector-item', role: 'listitem' },\n itemChildren\n )\n })\n )\n },\n})\n","import { defineComponent, h, type PropType } from 'vue'\nimport { cn } from '@mcp-elements/core'\n\nexport interface McpResource {\n uri: string\n name: string\n mimeType?: string\n description?: string\n}\n\nfunction mimeTypeLabel(mimeType?: string): string {\n if (!mimeType) return 'res'\n if (mimeType.includes('json')) return 'json'\n if (mimeType.includes('text')) return 'txt'\n if (mimeType.includes('image')) return 'img'\n if (mimeType.includes('pdf')) return 'pdf'\n return mimeType.split('/')[1]?.slice(0, 4) ?? 'res'\n}\n\nexport const McpeMcpResourceBrowser = defineComponent({\n name: 'McpeMcpResourceBrowser',\n props: {\n resources: { type: Array as PropType<McpResource[]>, default: () => [] },\n selectedUri: { type: String, default: undefined },\n loading: { type: Boolean, default: false },\n class: { type: String, default: '' },\n },\n emits: ['select'],\n setup(props, { emit }) {\n return () => {\n if (props.loading) {\n return h(\n 'div',\n { class: cn('mcpe-mcp-resource-browser', props.class) },\n [1, 2, 3, 4].map(() =>\n h('div', { class: 'flex items-center gap-3 px-3 py-2.5' }, [\n h('div', { class: 'h-8 w-8 rounded-md animate-pulse bg-muted' }),\n h('div', { class: 'h-4 flex-1 rounded animate-pulse bg-muted' }),\n ])\n )\n )\n }\n\n if (props.resources.length === 0) {\n return h('div', { class: cn('mcpe-mcp-resource-browser', props.class) }, [\n h('p', { class: 'mcpe-mcp-resource-browser-empty' }, 'No resources available'),\n ])\n }\n\n return h(\n 'div',\n { class: cn('mcpe-mcp-resource-browser', props.class), role: 'list' },\n props.resources.map((r) => {\n const selected = props.selectedUri === r.uri\n const children = [\n h(\n 'span',\n { class: 'mcpe-mcp-resource-browser-icon', 'aria-hidden': 'true' },\n mimeTypeLabel(r.mimeType)\n ),\n h('span', { class: 'mcpe-mcp-resource-browser-name' }, r.name),\n ]\n if (r.mimeType) {\n children.push(\n h('span', { class: 'mcpe-mcp-resource-browser-type' }, r.mimeType.split('/')[0])\n )\n }\n return h(\n 'button',\n {\n type: 'button',\n role: 'listitem',\n class: cn(\n 'mcpe-mcp-resource-browser-item w-full text-left',\n selected ? 'mcpe-mcp-resource-browser-item-selected' : ''\n ),\n 'aria-selected': selected,\n 'aria-label': r.name,\n onClick: () => emit('select', r),\n },\n children\n )\n })\n )\n }\n },\n})\n","import { defineComponent, h, ref, watch, onUnmounted } from 'vue'\nimport { cn, createAppBridge } from '@mcp-elements/core'\nimport type { AppBridge } from '@mcp-elements/core'\n\nexport const McpeMcpAppFrame = defineComponent({\n name: 'McpeMcpAppFrame',\n props: {\n src: { type: String, required: true },\n height: { type: Number, default: 480 },\n sandbox: { type: String, default: 'allow-scripts allow-same-origin' },\n class: { type: String, default: '' },\n },\n emits: ['message'],\n setup(props, { emit }) {\n const frameRef = ref<HTMLIFrameElement | null>(null)\n\n let bridge: AppBridge | null = null\n let unsub: (() => void) | null = null\n let messageHandler: ((e: MessageEvent) => void) | null = null\n\n const cleanup = () => {\n if (unsub) unsub()\n if (messageHandler) window.removeEventListener('message', messageHandler)\n unsub = null\n messageHandler = null\n bridge = null\n }\n\n const setup = () => {\n cleanup()\n bridge = createAppBridge({\n postMessage: (env) => frameRef.value?.contentWindow?.postMessage(env, '*'),\n })\n unsub = bridge.onMessage((env) => emit('message', env))\n messageHandler = (e: MessageEvent) => bridge?.receive(e.data)\n window.addEventListener('message', messageHandler)\n }\n\n // Re-establish the bridge when the iframe mounts or its src changes.\n watch([frameRef, () => props.src], () => {\n if (frameRef.value) setup()\n })\n\n onUnmounted(cleanup)\n\n return () =>\n h('div', { class: cn('mcpe-mcp-app-frame', props.class) }, [\n h('iframe', {\n ref: frameRef,\n src: props.src,\n sandbox: props.sandbox,\n height: `${props.height}px`,\n title: 'MCP App',\n 'aria-label': 'MCP App frame',\n style: 'display:block;width:100%;border:none',\n }),\n ])\n },\n})\n","import { ref, onUnmounted, type Ref } from 'vue'\nimport { createToolState } from '@mcp-elements/core'\nimport type { ToolStateApi, ToolStateSnapshot } from '@mcp-elements/core'\n\nexport interface UseMcpToolState {\n /** The underlying tool-state machine (call start/markRunning/markDone/…). */\n api: ToolStateApi\n /** Reactive snapshot of the machine, updated on every transition. */\n snapshot: Ref<ToolStateSnapshot>\n}\n\n/**\n * Vue composable wrapping the framework-free `createToolState()` machine.\n * Creates one machine instance and mirrors it into a reactive ref; the\n * subscription is cleaned up automatically on unmount.\n */\nexport function useMcpToolState(): UseMcpToolState {\n const api = createToolState()\n const snapshot = ref<ToolStateSnapshot>({\n status: api.status,\n tool: api.tool,\n args: api.args,\n result: api.result,\n error: api.error,\n startedAt: api.startedAt,\n endedAt: api.endedAt,\n })\n\n const unsub = api.subscribe((s) => {\n snapshot.value = { ...s }\n })\n\n onUnmounted(unsub)\n\n return { api, snapshot }\n}\n","import { ref, onUnmounted, type Ref } from 'vue'\nimport { createOAuthFlow } from '@mcp-elements/core'\nimport type { OAuthFlowApi, OAuthFlowSnapshot } from '@mcp-elements/core'\n\nexport interface UseMcpOAuth {\n /** The underlying OAuth flow machine (call start/markAuthorized/…). */\n api: OAuthFlowApi\n /** Reactive snapshot of the flow, updated on every transition. */\n snapshot: Ref<OAuthFlowSnapshot>\n}\n\n/**\n * Vue composable wrapping the framework-free `createOAuthFlow()` machine.\n * Mirrors the flow state into a reactive ref; cleans up on unmount.\n */\nexport function useMcpOAuth(): UseMcpOAuth {\n const api = createOAuthFlow()\n const snapshot = ref<OAuthFlowSnapshot>({\n status: api.status,\n verifier: api.verifier,\n state: api.state,\n tokens: api.tokens,\n error: api.error,\n })\n\n const unsub = api.subscribe((s) => {\n snapshot.value = { ...s }\n })\n\n onUnmounted(unsub)\n\n return { api, snapshot }\n}\n","import { ref, watch, onUnmounted, type Ref } from 'vue'\nimport { createAppBridge } from '@mcp-elements/core'\nimport type { AppBridge, AppMessageEnvelope } from '@mcp-elements/core'\n\nexport interface UseMcpAppBridgeOptions {\n /** Called for every well-formed envelope received from the iframe. */\n onMessage?: (env: AppMessageEnvelope) => void\n}\n\nexport interface UseMcpAppBridge {\n /** Bind this to the iframe element (`ref=\"frameRef\"` / `:ref=\"frameRef\"`). */\n frameRef: Ref<HTMLIFrameElement | null>\n /** Post an envelope to the framed MCP App. */\n send: (env: AppMessageEnvelope) => void\n}\n\n/**\n * Vue composable that wires a postMessage `createAppBridge()` to an iframe.\n * Establishes the bridge once the iframe is mounted and tears down the\n * window listener + subscription on unmount.\n */\nexport function useMcpAppBridge(options: UseMcpAppBridgeOptions = {}): UseMcpAppBridge {\n const frameRef = ref<HTMLIFrameElement | null>(null)\n\n let bridge: AppBridge | null = null\n let unsub: (() => void) | null = null\n let messageHandler: ((e: MessageEvent) => void) | null = null\n\n const cleanup = () => {\n if (unsub) unsub()\n if (messageHandler) window.removeEventListener('message', messageHandler)\n unsub = null\n messageHandler = null\n bridge = null\n }\n\n const establish = () => {\n cleanup()\n bridge = createAppBridge({\n postMessage: (env) => frameRef.value?.contentWindow?.postMessage(env, '*'),\n })\n if (options.onMessage) unsub = bridge.onMessage(options.onMessage)\n messageHandler = (e: MessageEvent) => bridge?.receive(e.data)\n window.addEventListener('message', messageHandler)\n }\n\n watch(frameRef, (el) => {\n if (el) establish()\n })\n\n onUnmounted(cleanup)\n\n const send = (env: AppMessageEnvelope) => bridge?.send(env)\n\n return { frameRef, send }\n}\n","import { reactive, computed, watch, type ComputedRef } from 'vue'\nimport { schemaToFields } from '@mcp-elements/core'\nimport type { JsonSchema, FieldDescriptor } from '@mcp-elements/core'\n\nexport interface UseMcpSchemaForm {\n /** Form fields derived from the JSON Schema. */\n fields: ComputedRef<FieldDescriptor[]>\n /** Reactive map of field key → current value. */\n values: Record<string, unknown>\n /** Set a single field's value. */\n setValue: (key: string, value: unknown) => void\n /** Reset all values to the schema defaults. */\n reset: () => void\n}\n\n/**\n * Vue composable that turns a JSON Schema into reactive form state via the\n * framework-free `schemaToFields()`. Re-seeds defaults when the schema changes.\n */\nexport function useMcpSchemaForm(schema: JsonSchema | (() => JsonSchema)): UseMcpSchemaForm {\n const getSchema = typeof schema === 'function' ? schema : () => schema\n const fields = computed<FieldDescriptor[]>(() => schemaToFields(getSchema()))\n const values = reactive<Record<string, unknown>>({})\n\n const reset = () => {\n for (const k of Object.keys(values)) delete values[k]\n for (const f of fields.value) {\n if (f.defaultValue !== undefined) values[f.key] = f.defaultValue\n }\n }\n\n watch(fields, reset, { immediate: true })\n\n const setValue = (key: string, value: unknown) => {\n values[key] = value\n }\n\n return { fields, values, setValue, reset }\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","defineComponent","h","computed","cn","defineComponent","h","computed","watch","onUnmounted","cn","STATUS_LABELS","defineComponent","h","computed","watch","cn","defineComponent","h","computed","watch","onMounted","onUnmounted","Teleport","defineComponent","h","ref","computed","cn","parseScopes","defineComponent","h","cn","defineComponent","h","ref","watch","onUnmounted","cn","ref","onUnmounted","ref","onUnmounted","ref","watch","onUnmounted","createAppBridge","reactive","computed","watch","schemaToFields"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-elements/vue",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "private": false,
5
5
  "description": "mcp-elements Vue 3 components",
6
6
  "type": "module",
@@ -17,7 +17,7 @@
17
17
  "dist"
18
18
  ],
19
19
  "dependencies": {
20
- "@mcp-elements/core": "0.1.1"
20
+ "@mcp-elements/core": "0.1.2"
21
21
  },
22
22
  "peerDependencies": {
23
23
  "vue": "^3.4.0"