@soave/ui 0.4.0 → 0.5.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.
Files changed (101) hide show
  1. package/dist/components/Alert.vue.d.ts +23 -0
  2. package/dist/components/Alert.vue.d.ts.map +1 -0
  3. package/dist/components/AlertDescription.vue.d.ts +18 -0
  4. package/dist/components/AlertDescription.vue.d.ts.map +1 -0
  5. package/dist/components/AlertTitle.vue.d.ts +18 -0
  6. package/dist/components/AlertTitle.vue.d.ts.map +1 -0
  7. package/dist/components/CardContent.vue.d.ts +18 -0
  8. package/dist/components/CardContent.vue.d.ts.map +1 -0
  9. package/dist/components/CardDescription.vue.d.ts +18 -0
  10. package/dist/components/CardDescription.vue.d.ts.map +1 -0
  11. package/dist/components/CardFooter.vue.d.ts +18 -0
  12. package/dist/components/CardFooter.vue.d.ts.map +1 -0
  13. package/dist/components/CardHeader.vue.d.ts +18 -0
  14. package/dist/components/CardHeader.vue.d.ts.map +1 -0
  15. package/dist/components/CardTitle.vue.d.ts +18 -0
  16. package/dist/components/CardTitle.vue.d.ts.map +1 -0
  17. package/dist/components/DialogContent.vue.d.ts +24 -0
  18. package/dist/components/DialogContent.vue.d.ts.map +1 -0
  19. package/dist/components/DialogDescription.vue.d.ts +21 -0
  20. package/dist/components/DialogDescription.vue.d.ts.map +1 -0
  21. package/dist/components/DialogFooter.vue.d.ts +18 -0
  22. package/dist/components/DialogFooter.vue.d.ts.map +1 -0
  23. package/dist/components/DialogHeader.vue.d.ts +18 -0
  24. package/dist/components/DialogHeader.vue.d.ts.map +1 -0
  25. package/dist/components/DialogOverlay.vue.d.ts +7 -0
  26. package/dist/components/DialogOverlay.vue.d.ts.map +1 -0
  27. package/dist/components/DialogTitle.vue.d.ts +21 -0
  28. package/dist/components/DialogTitle.vue.d.ts.map +1 -0
  29. package/dist/components/DialogTrigger.vue.d.ts +20 -0
  30. package/dist/components/DialogTrigger.vue.d.ts.map +1 -0
  31. package/dist/components/DropdownMenu.vue.d.ts +33 -0
  32. package/dist/components/DropdownMenu.vue.d.ts.map +1 -0
  33. package/dist/components/DropdownMenuContent.vue.d.ts +25 -0
  34. package/dist/components/DropdownMenuContent.vue.d.ts.map +1 -0
  35. package/dist/components/DropdownMenuItem.vue.d.ts +29 -0
  36. package/dist/components/DropdownMenuItem.vue.d.ts.map +1 -0
  37. package/dist/components/DropdownMenuLabel.vue.d.ts +18 -0
  38. package/dist/components/DropdownMenuLabel.vue.d.ts.map +1 -0
  39. package/dist/components/DropdownMenuSeparator.vue.d.ts +3 -0
  40. package/dist/components/DropdownMenuSeparator.vue.d.ts.map +1 -0
  41. package/dist/components/DropdownMenuTrigger.vue.d.ts +24 -0
  42. package/dist/components/DropdownMenuTrigger.vue.d.ts.map +1 -0
  43. package/dist/components/FileInput.vue.d.ts +81 -0
  44. package/dist/components/FileInput.vue.d.ts.map +1 -0
  45. package/dist/components/FormError.vue.d.ts +21 -0
  46. package/dist/components/FormError.vue.d.ts.map +1 -0
  47. package/dist/components/FormField.vue.d.ts +26 -0
  48. package/dist/components/FormField.vue.d.ts.map +1 -0
  49. package/dist/components/FormInput.vue.d.ts +19 -0
  50. package/dist/components/FormInput.vue.d.ts.map +1 -0
  51. package/dist/components/FormLabel.vue.d.ts +21 -0
  52. package/dist/components/FormLabel.vue.d.ts.map +1 -0
  53. package/dist/components/FormTextarea.vue.d.ts +19 -0
  54. package/dist/components/FormTextarea.vue.d.ts.map +1 -0
  55. package/dist/components/Popover.vue.d.ts +38 -0
  56. package/dist/components/Popover.vue.d.ts.map +1 -0
  57. package/dist/components/PopoverContent.vue.d.ts +25 -0
  58. package/dist/components/PopoverContent.vue.d.ts.map +1 -0
  59. package/dist/components/PopoverTrigger.vue.d.ts +24 -0
  60. package/dist/components/PopoverTrigger.vue.d.ts.map +1 -0
  61. package/dist/components/SelectValue.vue.d.ts +24 -0
  62. package/dist/components/SelectValue.vue.d.ts.map +1 -0
  63. package/dist/components/Sheet.vue.d.ts +42 -0
  64. package/dist/components/Sheet.vue.d.ts.map +1 -0
  65. package/dist/components/SheetClose.vue.d.ts +20 -0
  66. package/dist/components/SheetClose.vue.d.ts.map +1 -0
  67. package/dist/components/SheetContent.vue.d.ts +18 -0
  68. package/dist/components/SheetContent.vue.d.ts.map +1 -0
  69. package/dist/components/SheetDescription.vue.d.ts +18 -0
  70. package/dist/components/SheetDescription.vue.d.ts.map +1 -0
  71. package/dist/components/SheetFooter.vue.d.ts +18 -0
  72. package/dist/components/SheetFooter.vue.d.ts.map +1 -0
  73. package/dist/components/SheetHeader.vue.d.ts +18 -0
  74. package/dist/components/SheetHeader.vue.d.ts.map +1 -0
  75. package/dist/components/SheetOverlay.vue.d.ts +3 -0
  76. package/dist/components/SheetOverlay.vue.d.ts.map +1 -0
  77. package/dist/components/SheetTitle.vue.d.ts +18 -0
  78. package/dist/components/SheetTitle.vue.d.ts.map +1 -0
  79. package/dist/components/SheetTrigger.vue.d.ts +20 -0
  80. package/dist/components/SheetTrigger.vue.d.ts.map +1 -0
  81. package/dist/components/Toast.vue.d.ts +35 -0
  82. package/dist/components/Toast.vue.d.ts.map +1 -0
  83. package/dist/components/ToastClose.vue.d.ts +22 -0
  84. package/dist/components/ToastClose.vue.d.ts.map +1 -0
  85. package/dist/components/ToastDescription.vue.d.ts +18 -0
  86. package/dist/components/ToastDescription.vue.d.ts.map +1 -0
  87. package/dist/components/ToastTitle.vue.d.ts +18 -0
  88. package/dist/components/ToastTitle.vue.d.ts.map +1 -0
  89. package/dist/components/Toaster.vue.d.ts +58 -0
  90. package/dist/components/Toaster.vue.d.ts.map +1 -0
  91. package/dist/components/Tooltip.vue.d.ts +34 -0
  92. package/dist/components/Tooltip.vue.d.ts.map +1 -0
  93. package/dist/components/TooltipContent.vue.d.ts +23 -0
  94. package/dist/components/TooltipContent.vue.d.ts.map +1 -0
  95. package/dist/components/TooltipTrigger.vue.d.ts +22 -0
  96. package/dist/components/TooltipTrigger.vue.d.ts.map +1 -0
  97. package/dist/components/index.d.ts +48 -0
  98. package/dist/components/index.d.ts.map +1 -1
  99. package/dist/index.mjs +1398 -49
  100. package/dist/index.mjs.map +1 -1
  101. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../constants/logs.ts","../components/Button.vue","../components/Input.vue","../components/Textarea.vue","../components/Card.vue","../components/Checkbox.vue","../components/Switch.vue","../components/Dialog.vue","../components/Select.vue","../components/SelectTrigger.vue","../components/SelectContent.vue","../components/SelectItem.vue","../components/RadioGroup.vue","../components/RadioItem.vue","../types/dialog.ts","../types/tooltip.ts","../types/popover.ts","../types/dropdown.ts","../types/sheet.ts","../types/theme.ts"],"sourcesContent":["// CLAUDE.md規則: 全てのログメッセージは単一のファイル内に記述\n\nexport const FORM_LOGS = {\n FIELD_VALIDATED: (field: string) => `フィールド \"${field}\" のバリデーションが完了しました`,\n FORM_SUBMITTED: \"フォームが送信されました\",\n FORM_RESET: \"フォームがリセットされました\",\n VALIDATION_STARTED: \"バリデーションを開始します\"\n} as const\n\nexport const COMPONENT_LOGS = {\n DIALOG_OPENED: \"ダイアログが開かれました\",\n DIALOG_CLOSED: \"ダイアログが閉じられました\",\n BUTTON_CLICKED: \"ボタンがクリックされました\",\n INPUT_FOCUSED: \"入力フィールドにフォーカスが当たりました\",\n INPUT_BLURRED: \"入力フィールドからフォーカスが外れました\"\n} as const\n\nexport const CONFIG_LOGS = {\n PROVIDER_INITIALIZED: \"UIProviderが初期化されました\",\n CONFIG_UPDATED: \"UI設定が更新されました\"\n} as const\n","<template>\n <button\n :disabled=\"composable.state.value.disabled || composable.state.value.loading\"\n :type=\"composable.state.value.type\"\n v-bind=\"composable.aria_attributes.value\"\n @click=\"handleClick\"\n >\n <slot />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef } from \"vue\"\nimport { useButton } from \"../composables/useButton\"\n\nconst props = withDefaults(defineProps<{\n variant?: \"primary\" | \"secondary\" | \"outline\" | \"ghost\" | \"destructive\"\n size?: \"sm\" | \"md\" | \"lg\"\n disabled?: boolean\n loading?: boolean\n type?: \"button\" | \"submit\" | \"reset\"\n}>(), {\n variant: \"primary\",\n size: \"md\",\n disabled: false,\n loading: false,\n type: \"button\"\n})\n\nconst emit = defineEmits<{\n click: [event: MouseEvent]\n}>()\n\nconst composable = useButton(toRef(() => props))\n\nconst handleClick = (event: MouseEvent) => {\n if (!composable.state.value.disabled && !composable.state.value.loading) {\n emit(\"click\", event)\n }\n}\n</script>\n","<template>\n <input\n :type=\"composable.state.value.type\"\n :value=\"modelValue\"\n :disabled=\"composable.state.value.disabled\"\n :readonly=\"composable.state.value.readonly\"\n :placeholder=\"placeholder\"\n :id=\"id\"\n v-bind=\"composable.aria_attributes.value\"\n @input=\"handleInput\"\n @focus=\"composable.handleFocus\"\n @blur=\"composable.handleBlur\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef } from \"vue\"\nimport { useInput } from \"../composables/useInput\"\nimport type { InputType, InputSize } from \"../types/input\"\n\nconst props = withDefaults(defineProps<{\n type?: InputType\n size?: InputSize\n placeholder?: string\n disabled?: boolean\n readonly?: boolean\n error?: string\n error_id?: string\n id?: string\n modelValue?: string\n}>(), {\n type: \"text\",\n size: \"md\",\n disabled: false,\n readonly: false\n})\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string]\n}>()\n\nconst composable = useInput(toRef(() => props))\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n emit(\"update:modelValue\", target.value)\n}\n</script>\n","<template>\n <textarea\n :value=\"modelValue\"\n :disabled=\"composable.state.value.disabled\"\n :readonly=\"composable.state.value.readonly\"\n :placeholder=\"placeholder\"\n :rows=\"rows\"\n :id=\"id\"\n v-bind=\"composable.aria_attributes.value\"\n @input=\"handleInput\"\n @focus=\"composable.handleFocus\"\n @blur=\"composable.handleBlur\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef } from \"vue\"\nimport { useTextarea } from \"../composables/useTextarea\"\nimport type { TextareaSize, TextareaResize } from \"../types/textarea\"\n\nconst props = withDefaults(defineProps<{\n size?: TextareaSize\n placeholder?: string\n disabled?: boolean\n readonly?: boolean\n error?: string\n error_id?: string\n rows?: number\n resize?: TextareaResize\n modelValue?: string\n id?: string\n}>(), {\n size: \"md\",\n disabled: false,\n readonly: false,\n rows: 3,\n resize: \"vertical\"\n})\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string]\n}>()\n\nconst composable = useTextarea(toRef(() => props))\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLTextAreaElement\n emit(\"update:modelValue\", target.value)\n}\n\ndefineExpose({\n state: composable.state,\n is_focused: composable.is_focused\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef } from \"vue\"\nimport { useCard } from \"../composables/useCard\"\n\nconst props = withDefaults(defineProps<{\n padding?: \"none\" | \"sm\" | \"md\" | \"lg\"\n}>(), {\n padding: \"md\"\n})\n\n// Composable is available for state access if needed\nconst composable = useCard(toRef(() => props))\n\n// Export state for external access\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <button\n type=\"button\"\n :disabled=\"composable.state.value.disabled\"\n :data-state=\"dataState\"\n v-bind=\"composable.aria_attributes.value\"\n @click=\"handleClick\"\n @keydown.space.prevent=\"handleClick\"\n >\n <slot :checked=\"model\" :indeterminate=\"composable.state.value.indeterminate\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef, computed } from \"vue\"\nimport { useCheckbox } from \"../composables/useCheckbox\"\n\nconst props = withDefaults(defineProps<{\n size?: \"sm\" | \"md\" | \"lg\"\n disabled?: boolean\n indeterminate?: boolean\n}>(), {\n size: \"md\",\n disabled: false,\n indeterminate: false\n})\n\nconst model = defineModel<boolean>({ default: false })\n\nconst emit = defineEmits<{\n change: [checked: boolean]\n}>()\n\nconst composable = useCheckbox(toRef(() => props), model)\n\nconst dataState = computed(() => {\n if (composable.state.value.indeterminate) return \"indeterminate\"\n return model.value ? \"checked\" : \"unchecked\"\n})\n\nconst handleClick = () => {\n if (!composable.state.value.disabled) {\n model.value = !model.value\n emit(\"change\", model.value)\n }\n}\n</script>\n","<template>\n <button\n type=\"button\"\n :disabled=\"composable.state.value.disabled\"\n :data-state=\"model ? 'checked' : 'unchecked'\"\n v-bind=\"composable.aria_attributes.value\"\n @click=\"handleClick\"\n >\n <slot :checked=\"model\">\n <span :data-state=\"model ? 'checked' : 'unchecked'\" />\n </slot>\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef } from \"vue\"\nimport { useSwitch } from \"../composables/useSwitch\"\n\nconst props = withDefaults(defineProps<{\n size?: \"sm\" | \"md\" | \"lg\"\n disabled?: boolean\n}>(), {\n size: \"md\",\n disabled: false\n})\n\nconst model = defineModel<boolean>({ default: false })\n\nconst emit = defineEmits<{\n change: [checked: boolean]\n}>()\n\nconst composable = useSwitch(toRef(() => props), model)\n\nconst handleClick = () => {\n if (!composable.state.value.disabled) {\n model.value = !model.value\n emit(\"change\", model.value)\n }\n}\n\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <Teleport to=\"body\">\n <div\n v-if=\"is_open\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-labelledby=\"titleId\"\n :aria-describedby=\"descriptionId\"\n >\n <!-- Overlay -->\n <div\n @click=\"handleOverlayClick\"\n @keydown.escape=\"close\"\n />\n <!-- Content -->\n <div\n ref=\"content_ref\"\n tabindex=\"-1\"\n @keydown.escape=\"close\"\n >\n <slot :close=\"close\" />\n </div>\n </div>\n </Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onMounted, onUnmounted, provide } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\nimport { useDialog } from \"../composables/useDialog\"\n\ninterface DialogContext {\n is_open: Ref<boolean>\n close: () => void\n titleId?: string\n descriptionId?: string\n}\n\nconst DIALOG_KEY: InjectionKey<DialogContext> = Symbol(\"dialog\")\n\nconst props = withDefaults(defineProps<{\n closeOnOverlay?: boolean\n closeOnEscape?: boolean\n titleId?: string\n descriptionId?: string\n}>(), {\n closeOnOverlay: true,\n closeOnEscape: true\n})\n\nconst model = defineModel<boolean>(\"open\", { default: false })\n\nconst content_ref = ref<HTMLElement | null>(null)\nconst dialog = useDialog()\nconst { is_open, open, close, toggle } = dialog\n\n// Sync with v-model\nwatch(model, (value) => {\n if (value) {\n open()\n } else {\n close()\n }\n}, { immediate: true })\n\nwatch(is_open, (value) => {\n model.value = value\n})\n\nconst handleOverlayClick = () => {\n if (props.closeOnOverlay) {\n close()\n }\n}\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && props.closeOnEscape && is_open.value) {\n close()\n }\n}\n\n// Provide context for child components\nconst context: DialogContext = {\n is_open,\n close,\n titleId: props.titleId,\n descriptionId: props.descriptionId\n}\nprovide(DIALOG_KEY, context)\n\nonMounted(() => {\n document.addEventListener(\"keydown\", handleKeyDown)\n})\n\nonUnmounted(() => {\n document.removeEventListener(\"keydown\", handleKeyDown)\n})\n\ndefineExpose({\n is_open,\n open,\n close,\n toggle\n})\n</script>\n","<template>\n <div ref=\"root_ref\">\n <slot\n :is_open=\"context.is_open.value\"\n :selected_value=\"model\"\n :open=\"context.open\"\n :close=\"context.close\"\n :toggle=\"context.toggle\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, provide, watch, onMounted, onUnmounted, computed } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\n\ninterface SelectContext {\n model_value: Ref<string>\n is_open: Ref<boolean>\n disabled: ComputedRef<boolean>\n size: ComputedRef<\"sm\" | \"md\" | \"lg\">\n placeholder: ComputedRef<string>\n trigger_ref: Ref<HTMLElement | null>\n updateValue: (value: string) => void\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (element: HTMLElement | null) => void\n}\n\nconst SELECT_KEY: InjectionKey<SelectContext> = Symbol(\"select\")\n\nconst props = withDefaults(defineProps<{\n size?: \"sm\" | \"md\" | \"lg\"\n disabled?: boolean\n placeholder?: string\n}>(), {\n size: \"md\",\n disabled: false,\n placeholder: \"\"\n})\n\nconst model = defineModel<string>({ default: \"\" })\n\nconst root_ref = ref<HTMLElement | null>(null)\nconst trigger_ref = ref<HTMLElement | null>(null)\nconst is_open = ref(false)\n\nconst open = () => {\n if (!props.disabled) {\n is_open.value = true\n }\n}\n\nconst close = () => {\n is_open.value = false\n}\n\nconst toggle = () => {\n if (is_open.value) {\n close()\n } else {\n open()\n }\n}\n\nconst updateValue = (value: string) => {\n model.value = value\n close()\n}\n\nconst setTriggerRef = (element: HTMLElement | null) => {\n trigger_ref.value = element\n}\n\nconst handleClickOutside = (event: MouseEvent) => {\n if (!is_open.value) return\n const target = event.target as Node\n if (root_ref.value && !root_ref.value.contains(target)) {\n close()\n }\n}\n\nconst context: SelectContext = {\n model_value: model,\n is_open,\n disabled: computed(() => props.disabled),\n size: computed(() => props.size ?? \"md\"),\n placeholder: computed(() => props.placeholder ?? \"\"),\n trigger_ref,\n updateValue,\n open,\n close,\n toggle,\n setTriggerRef\n}\n\nprovide(SELECT_KEY, context)\n\nonMounted(() => {\n document.addEventListener(\"mousedown\", handleClickOutside)\n})\n\nonUnmounted(() => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n})\n\ndefineExpose({\n is_open,\n open,\n close,\n toggle\n})\n</script>\n","<template>\n <button\n ref=\"trigger_element\"\n type=\"button\"\n :disabled=\"composable.state.value.disabled\"\n :aria-expanded=\"composable.state.value.is_open\"\n aria-haspopup=\"listbox\"\n @click=\"handleClick\"\n @keydown=\"handleKeyDown\"\n >\n <slot :is_open=\"composable.state.value.is_open\" :disabled=\"composable.state.value.disabled\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, inject, onMounted } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\nimport { useSelectTrigger } from \"../composables/useSelect\"\n\ninterface SelectContext {\n model_value: Ref<string>\n is_open: Ref<boolean>\n disabled: ComputedRef<boolean>\n size: ComputedRef<\"sm\" | \"md\" | \"lg\">\n placeholder: ComputedRef<string>\n trigger_ref: Ref<HTMLElement | null>\n updateValue: (value: string) => void\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (element: HTMLElement | null) => void\n}\n\nconst SELECT_KEY: InjectionKey<SelectContext> = Symbol(\"select\")\n\nconst trigger_element = ref<HTMLElement | null>(null)\nconst context = inject<SelectContext | null>(SELECT_KEY, null)\n\nif (!context) {\n throw new Error(\"SelectTrigger must be used within Select\")\n}\n\nconst composable = useSelectTrigger()\n\nconst handleClick = () => {\n if (!composable.state.value.disabled) {\n context.toggle()\n }\n}\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n if (composable.state.value.disabled) return\n\n switch (event.key) {\n case \"Enter\":\n case \" \":\n case \"ArrowDown\":\n event.preventDefault()\n context.open()\n break\n case \"ArrowUp\":\n event.preventDefault()\n context.open()\n break\n }\n}\n\nonMounted(() => {\n context.setTriggerRef(trigger_element.value)\n})\n\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <div\n v-if=\"composable.state.value.is_open\"\n role=\"listbox\"\n tabindex=\"-1\"\n @keydown=\"handleKeyDown\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\nimport { useSelectContent } from \"../composables/useSelect\"\n\ninterface SelectContext {\n model_value: Ref<string>\n is_open: Ref<boolean>\n disabled: ComputedRef<boolean>\n size: ComputedRef<\"sm\" | \"md\" | \"lg\">\n placeholder: ComputedRef<string>\n trigger_ref: Ref<HTMLElement | null>\n updateValue: (value: string) => void\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (element: HTMLElement | null) => void\n}\n\nconst SELECT_KEY: InjectionKey<SelectContext> = Symbol(\"select\")\n\nconst context = inject<SelectContext | null>(SELECT_KEY, null)\n\nif (!context) {\n throw new Error(\"SelectContent must be used within Select\")\n}\n\nconst composable = useSelectContent()\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n switch (event.key) {\n case \"Escape\":\n event.preventDefault()\n context.close()\n context.trigger_ref.value?.focus()\n break\n }\n}\n\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <div\n role=\"option\"\n :aria-selected=\"composable.state.value.selected\"\n :aria-disabled=\"composable.state.value.disabled\"\n :data-state=\"composable.state.value.selected ? 'selected' : undefined\"\n :data-disabled=\"composable.state.value.disabled ? '' : undefined\"\n @click=\"handleClick\"\n @keydown.enter=\"handleClick\"\n @keydown.space.prevent=\"handleClick\"\n >\n <slot :selected=\"composable.state.value.selected\" :disabled=\"composable.state.value.disabled\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, toRef } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\nimport { useSelectItem } from \"../composables/useSelect\"\n\ninterface SelectContext {\n model_value: Ref<string>\n is_open: Ref<boolean>\n disabled: ComputedRef<boolean>\n size: ComputedRef<\"sm\" | \"md\" | \"lg\">\n placeholder: ComputedRef<string>\n trigger_ref: Ref<HTMLElement | null>\n updateValue: (value: string) => void\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (element: HTMLElement | null) => void\n}\n\nconst SELECT_KEY: InjectionKey<SelectContext> = Symbol(\"select\")\n\nconst props = withDefaults(defineProps<{\n value: string\n disabled?: boolean\n}>(), {\n disabled: false\n})\n\nconst context = inject<SelectContext | null>(SELECT_KEY, null)\n\nif (!context) {\n throw new Error(\"SelectItem must be used within Select\")\n}\n\nconst composable = useSelectItem(toRef(() => ({ value: props.value, disabled: props.disabled })))\n\nconst handleClick = () => {\n if (!composable.state.value.disabled) {\n context.updateValue(props.value)\n }\n}\n\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <div\n role=\"radiogroup\"\n :aria-orientation=\"orientation\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { provide, computed } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\n\ninterface RadioGroupContext {\n model_value: Ref<string>\n disabled: ComputedRef<boolean>\n updateValue: (value: string) => void\n}\n\nconst RADIO_GROUP_KEY: InjectionKey<RadioGroupContext> = Symbol(\"radio-group\")\n\nconst props = withDefaults(defineProps<{\n disabled?: boolean\n orientation?: \"horizontal\" | \"vertical\"\n}>(), {\n disabled: false,\n orientation: \"vertical\"\n})\n\nconst model = defineModel<string>({ default: \"\" })\n\nconst updateValue = (value: string) => {\n if (!props.disabled) {\n model.value = value\n }\n}\n\nconst context: RadioGroupContext = {\n model_value: model,\n disabled: computed(() => props.disabled),\n updateValue\n}\n\nprovide(RADIO_GROUP_KEY, context)\n</script>\n","<template>\n <button\n type=\"button\"\n :disabled=\"composable.state.value.disabled\"\n :data-state=\"composable.state.value.checked ? 'checked' : 'unchecked'\"\n v-bind=\"composable.aria_attributes.value\"\n @click=\"handleClick\"\n @keydown=\"handleKeyDown\"\n >\n <slot :checked=\"composable.state.value.checked\" :disabled=\"composable.state.value.disabled\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, toRef } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\nimport { useRadioItem } from \"../composables/useRadio\"\n\ninterface RadioGroupContext {\n model_value: Ref<string>\n disabled: ComputedRef<boolean>\n updateValue: (value: string) => void\n}\n\nconst RADIO_GROUP_KEY: InjectionKey<RadioGroupContext> = Symbol(\"radio-group\")\n\nconst props = withDefaults(defineProps<{\n value: string\n size?: \"sm\" | \"md\" | \"lg\"\n disabled?: boolean\n}>(), {\n size: \"md\",\n disabled: false\n})\n\nconst context = inject<RadioGroupContext | null>(RADIO_GROUP_KEY, null)\n\nif (!context) {\n throw new Error(\"RadioItem must be used within RadioGroup\")\n}\n\nconst composable = useRadioItem(toRef(() => props))\n\nconst handleClick = () => {\n if (!composable.state.value.disabled) {\n context.updateValue(props.value)\n }\n}\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n if (composable.state.value.disabled) return\n\n switch (event.key) {\n case \"Enter\":\n case \" \":\n event.preventDefault()\n context.updateValue(props.value)\n break\n }\n}\n\ndefineExpose({\n state: composable.state\n})\n</script>\n","import type { Ref, DeepReadonly, InjectionKey } from \"vue\"\n\nexport interface DialogContext {\n close: () => void\n}\n\nexport const DIALOG_KEY: InjectionKey<DialogContext> = Symbol(\"dialog\")\n\nexport interface DialogProps {\n open?: boolean\n modal?: boolean\n showCloseButton?: boolean\n unstyled?: boolean\n}\n\nexport interface DialogReturn {\n is_open: DeepReadonly<Ref<boolean>>\n open: () => void\n close: () => void\n toggle: () => void\n}\n\nexport interface DialogContentProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DialogHeaderProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DialogTitleProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DialogDescriptionProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DialogFooterProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DialogTriggerProps {\n as_child?: boolean\n}\n","import type { InjectionKey } from \"vue\"\nimport type { UseTooltipReturn } from \"../composables/useTooltip\"\n\nexport type TooltipSide = \"top\" | \"right\" | \"bottom\" | \"left\"\nexport type TooltipAlign = \"start\" | \"center\" | \"end\"\n\nexport interface TooltipProps {\n content: string\n side?: TooltipSide\n align?: TooltipAlign\n delay_duration?: number\n skip_delay_duration?: number\n disabled?: boolean\n class?: string\n unstyled?: boolean\n}\n\nexport interface TooltipContentProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface TooltipReturn {\n is_open: boolean\n trigger_ref: HTMLElement | null\n content_styles: Record<string, string>\n show: () => void\n hide: () => void\n toggle: () => void\n}\n\nexport interface TooltipAriaAttributes {\n role: \"tooltip\"\n id: string\n}\n\nexport interface TooltipTriggerAriaAttributes {\n \"aria-describedby\": string\n}\n\nexport const TOOLTIP_CONTEXT_KEY: InjectionKey<UseTooltipReturn> = Symbol(\"tooltip-context\")\n","import type { InjectionKey } from \"vue\"\nimport type { UsePopoverReturn } from \"../composables/usePopover\"\n\nexport type PopoverSide = \"top\" | \"right\" | \"bottom\" | \"left\"\nexport type PopoverAlign = \"start\" | \"center\" | \"end\"\n\nexport interface PopoverProps {\n side?: PopoverSide\n align?: PopoverAlign\n modal?: boolean\n class?: string\n unstyled?: boolean\n}\n\nexport interface PopoverContentProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface PopoverContext {\n is_open: boolean\n popover_id: string\n trigger_ref: HTMLElement | null\n open: () => void\n close: () => void\n toggle: () => void\n}\n\nexport const POPOVER_CONTEXT_KEY: InjectionKey<UsePopoverReturn> = Symbol(\"popover-context\")\n","import type { InjectionKey } from \"vue\"\nimport type { UseDropdownReturn } from \"../composables/useDropdown\"\n\nexport type DropdownSide = \"top\" | \"right\" | \"bottom\" | \"left\"\nexport type DropdownAlign = \"start\" | \"center\" | \"end\"\n\nexport interface DropdownProps {\n side?: DropdownSide\n align?: DropdownAlign\n class?: string\n unstyled?: boolean\n}\n\nexport interface DropdownContentProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DropdownItemProps {\n disabled?: boolean\n destructive?: boolean\n class?: string\n unstyled?: boolean\n}\n\nexport interface DropdownContext {\n is_open: boolean\n dropdown_id: string\n active_item_index: number\n items_count: number\n trigger_ref: HTMLElement | null\n open: () => void\n close: () => void\n toggle: () => void\n registerItem: () => number\n setActiveItem: (index: number) => void\n}\n\nexport interface DropdownItemContext {\n index: number\n is_active: boolean\n is_disabled: boolean\n}\n\nexport const DROPDOWN_CONTEXT_KEY: InjectionKey<UseDropdownReturn> = Symbol(\"dropdown-context\")\n","import type { InjectionKey } from \"vue\"\n\nexport type SheetSide = \"top\" | \"right\" | \"bottom\" | \"left\"\n\nexport interface SheetProps {\n open?: boolean\n side?: SheetSide\n showCloseButton?: boolean\n class?: string\n unstyled?: boolean\n}\n\nexport interface SheetHeaderProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface SheetTitleProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface SheetDescriptionProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface SheetFooterProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface SheetContext {\n is_open: boolean\n side: SheetSide\n open: () => void\n close: () => void\n}\n\nexport const SHEET_CONTEXT_KEY: InjectionKey<SheetContext> = Symbol(\"sheet-context\")\n","export type ThemeMode = \"light\" | \"dark\" | \"system\"\n\nexport interface ThemeColors {\n background: string\n foreground: string\n card: string\n card_foreground: string\n popover: string\n popover_foreground: string\n primary: string\n primary_foreground: string\n secondary: string\n secondary_foreground: string\n muted: string\n muted_foreground: string\n accent: string\n accent_foreground: string\n destructive: string\n destructive_foreground: string\n border: string\n input: string\n ring: string\n}\n\nexport interface Theme {\n name: string\n colors: {\n light: ThemeColors\n dark: ThemeColors\n }\n}\n\nexport interface ThemeConfig {\n default_mode: ThemeMode\n storage_key: string\n attribute: string\n themes: Theme[]\n}\n\nexport interface ThemeReturn {\n mode: ThemeMode\n resolved_mode: \"light\" | \"dark\"\n setMode: (mode: ThemeMode) => void\n toggleMode: () => void\n}\n\nexport const DEFAULT_LIGHT_COLORS: ThemeColors = {\n background: \"0 0% 100%\",\n foreground: \"222.2 84% 4.9%\",\n card: \"0 0% 100%\",\n card_foreground: \"222.2 84% 4.9%\",\n popover: \"0 0% 100%\",\n popover_foreground: \"222.2 84% 4.9%\",\n primary: \"222.2 47.4% 11.2%\",\n primary_foreground: \"210 40% 98%\",\n secondary: \"210 40% 96.1%\",\n secondary_foreground: \"222.2 47.4% 11.2%\",\n muted: \"210 40% 96.1%\",\n muted_foreground: \"215.4 16.3% 46.9%\",\n accent: \"210 40% 96.1%\",\n accent_foreground: \"222.2 47.4% 11.2%\",\n destructive: \"0 84.2% 60.2%\",\n destructive_foreground: \"210 40% 98%\",\n border: \"214.3 31.8% 91.4%\",\n input: \"214.3 31.8% 91.4%\",\n ring: \"222.2 84% 4.9%\"\n}\n\nexport const DEFAULT_DARK_COLORS: ThemeColors = {\n background: \"222.2 84% 4.9%\",\n foreground: \"210 40% 98%\",\n card: \"222.2 84% 4.9%\",\n card_foreground: \"210 40% 98%\",\n popover: \"222.2 84% 4.9%\",\n popover_foreground: \"210 40% 98%\",\n primary: \"210 40% 98%\",\n primary_foreground: \"222.2 47.4% 11.2%\",\n secondary: \"217.2 32.6% 17.5%\",\n secondary_foreground: \"210 40% 98%\",\n muted: \"217.2 32.6% 17.5%\",\n muted_foreground: \"215 20.2% 65.1%\",\n accent: \"217.2 32.6% 17.5%\",\n accent_foreground: \"210 40% 98%\",\n destructive: \"0 62.8% 30.6%\",\n destructive_foreground: \"210 40% 98%\",\n border: \"217.2 32.6% 17.5%\",\n input: \"217.2 32.6% 17.5%\",\n ring: \"212.7 26.8% 83.9%\"\n}\n"],"names":["_openBlock","_createElementBlock","_mergeProps","_unref","_renderSlot","_useModel","_createElementVNode","DIALOG_KEY","_createBlock","_Teleport","_withKeys"],"mappings":";;;;;AAEO,MAAM,YAAY;AAAA,EACrB,iBAAiB,CAAC,UAAkB,UAAU,KAAK;AAAA,EACnD,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,oBAAoB;AACxB;AAEO,MAAM,iBAAiB;AAAA,EAC1B,eAAe;AAAA,EACf,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AACnB;AAEO,MAAM,cAAc;AAAA,EACvB,sBAAsB;AAAA,EACtB,gBAAgB;AACpB;;;;;;;;;;;;;ACLA,UAAM,QAAQ;AAcd,UAAM,OAAO;AAIb,UAAM,aAAa,UAAU,MAAM,MAAM,KAAK,CAAC;AAE/C,UAAM,cAAc,CAAC,UAAsB;AACvC,UAAI,CAAC,WAAW,MAAM,MAAM,YAAY,CAAC,WAAW,MAAM,MAAM,SAAS;AACrE,aAAK,SAAS,KAAK;AAAA,MACvB;AAAA,IACJ;;AAtCI,aAAAA,UAAA,GAAAC,mBAOS,UAPTC,WAOS;AAAA,QANJ,UAAUC,MAAA,UAAA,EAAW,MAAM,MAAM,YAAYA,kBAAW,MAAM,MAAM;AAAA,QACpE,MAAMA,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,MAAA,GACtBA,MAAA,UAAA,EAAW,gBAAgB,OAAK,EACvC,SAAO,YAAA,CAAW,GAAA;AAAA,QAEnBC,WAAQ,KAAA,QAAA,SAAA;AAAA,MAAA;;;;;;;;;;;;;;;;;;;;ACahB,UAAM,QAAQ;AAiBd,UAAM,OAAO;AAIb,UAAM,aAAa,SAAS,MAAM,MAAM,KAAK,CAAC;AAE9C,UAAM,cAAc,CAAC,UAAiB;AAClC,YAAM,SAAS,MAAM;AACrB,WAAK,qBAAqB,OAAO,KAAK;AAAA,IAC1C;;AA7CI,aAAAJ,UAAA,GAAAC,mBAWE,SAXFC,WAWE;AAAA,QAVG,MAAMC,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QAC7B,OAAO,QAAA;AAAA,QACP,UAAUA,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACjC,UAAUA,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACjC,aAAa,QAAA;AAAA,QACb,IAAI,QAAA;AAAA,MAAA,GACGA,MAAA,UAAA,EAAW,gBAAgB,OAAK;AAAA,QACvC,SAAO;AAAA,QACP,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA;AAAA,QAAE,IAAA,SAAAA,MAAA,UAAA,EAAW,eAAXA,MAAA,UAAA,EAAW,YAAW,GAAA,IAAA;AAAA,QAC7B,QAAI,OAAA,CAAA,MAAA,OAAA,CAAA;AAAA,QAAE,IAAA,SAAAA,MAAA,UAAA,EAAW,cAAXA,MAAA,UAAA,EAAW,WAAU,GAAA,IAAA;AAAA,MAAA;;;;;;;;;;;;;;;;;;;;;ACSpC,UAAM,QAAQ;AAmBd,UAAM,OAAO;AAIb,UAAM,aAAa,YAAY,MAAM,MAAM,KAAK,CAAC;AAEjD,UAAM,cAAc,CAAC,UAAiB;AAClC,YAAM,SAAS,MAAM;AACrB,WAAK,qBAAqB,OAAO,KAAK;AAAA,IAC1C;AAEA,aAAa;AAAA,MACT,OAAO,WAAW;AAAA,MAClB,YAAY,WAAW;AAAA,IAAA,CAC1B;;AApDG,aAAAH,UAAA,GAAAC,mBAWE,YAXFC,WAWE;AAAA,QAVG,OAAO,QAAA;AAAA,QACP,UAAUC,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACjC,UAAUA,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACjC,aAAa,QAAA;AAAA,QACb,MAAM,QAAA;AAAA,QACN,IAAI,QAAA;AAAA,MAAA,GACGA,MAAA,UAAA,EAAW,gBAAgB,OAAK;AAAA,QACvC,SAAO;AAAA,QACP,SAAK,OAAA,CAAA,MAAA,OAAA,CAAA;AAAA,QAAE,IAAA,SAAAA,MAAA,UAAA,EAAW,eAAXA,MAAA,UAAA,EAAW,YAAW,GAAA,IAAA;AAAA,QAC7B,QAAI,OAAA,CAAA,MAAA,OAAA,CAAA;AAAA,QAAE,IAAA,SAAAA,MAAA,UAAA,EAAW,cAAXA,MAAA,UAAA,EAAW,WAAU,GAAA,IAAA;AAAA,MAAA;;;;;;;;;;ACDpC,UAAM,QAAQ;AAOd,UAAM,aAAa,QAAQ,MAAM,MAAM,KAAK,CAAC;AAG7C,aAAa;AAAA,MACT,OAAO,WAAW;AAAA,IAAA,CACrB;;0BArBGF,mBAEM,OAAA,MAAA;AAAA,QADFG,WAAQ,KAAA,QAAA,SAAA;AAAA,MAAA;;;;;;;;;;;;;;;;;ACehB,UAAM,QAAQ;AAUd,UAAM,QAAQC,SAAoB,SAAA,YAAmB;AAErD,UAAM,OAAO;AAIb,UAAM,aAAa,YAAY,MAAM,MAAM,KAAK,GAAG,KAAK;AAExD,UAAM,YAAY,SAAS,MAAM;AAC7B,UAAI,WAAW,MAAM,MAAM,cAAe,QAAO;AACjD,aAAO,MAAM,QAAQ,YAAY;AAAA,IACrC,CAAC;AAED,UAAM,cAAc,MAAM;AACtB,UAAI,CAAC,WAAW,MAAM,MAAM,UAAU;AAClC,cAAM,QAAQ,CAAC,MAAM;AACrB,aAAK,UAAU,MAAM,KAAK;AAAA,MAC9B;AAAA,IACJ;;AA5CI,aAAAL,UAAA,GAAAC,mBASS,UATTC,WASS;AAAA,QARL,MAAK;AAAA,QACJ,UAAUC,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACjC,cAAY,UAAA;AAAA,MAAA,GACLA,MAAA,UAAA,EAAW,gBAAgB,OAAK;AAAA,QACvC,SAAO;AAAA,QACP,kCAAuB,aAAW,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA,MAAA;QAEnCC,WAA+E,KAAA,QAAA,WAAA;AAAA,UAAxE,SAAS,MAAA;AAAA,UAAQ,eAAeD,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QAAA;;;;;;;;;;;;;;;;;;ACStE,UAAM,QAAQ;AAQd,UAAM,QAAQE,SAAoB,SAAA,YAAmB;AAErD,UAAM,OAAO;AAIb,UAAM,aAAa,UAAU,MAAM,MAAM,KAAK,GAAG,KAAK;AAEtD,UAAM,cAAc,MAAM;AACtB,UAAI,CAAC,WAAW,MAAM,MAAM,UAAU;AAClC,cAAM,QAAQ,CAAC,MAAM;AACrB,aAAK,UAAU,MAAM,KAAK;AAAA,MAC9B;AAAA,IACJ;AAEA,aAAa;AAAA,MACT,OAAO,WAAW;AAAA,IAAA,CACrB;;AA1CG,aAAAL,UAAA,GAAAC,mBAUS,UAVTC,WAUS;AAAA,QATL,MAAK;AAAA,QACJ,UAAUC,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACjC,cAAY,MAAA,QAAK,YAAA;AAAA,MAAA,GACVA,MAAA,UAAA,EAAW,gBAAgB,OAAK,EACvC,SAAO,YAAA,CAAW,GAAA;AAAA,QAEnBC,WAEO,KAAA,QAAA,WAAA,EAFA,SAAS,MAAA,MAAA,GAAhB,MAEO;AAAA,UADHE,mBAAsD,QAAA;AAAA,YAA/C,cAAY,MAAA,QAAK,YAAA;AAAA,UAAA;;;;;;;;;;;;;;;;;;;;AC6BpC,UAAMC,cAA0C,OAAO,QAAQ;AAE/D,UAAM,QAAQ;AAUd,UAAM,QAAQF,SAAoB,SAAC,MAA0B;AAE7D,UAAM,cAAc,IAAwB,IAAI;AAChD,UAAM,SAAS,UAAA;AACf,UAAM,EAAE,SAAS,MAAM,OAAO,WAAW;AAGzC,UAAM,OAAO,CAAC,UAAU;AACpB,UAAI,OAAO;AACP,aAAA;AAAA,MACJ,OAAO;AACH,cAAA;AAAA,MACJ;AAAA,IACJ,GAAG,EAAE,WAAW,MAAM;AAEtB,UAAM,SAAS,CAAC,UAAU;AACtB,YAAM,QAAQ;AAAA,IAClB,CAAC;AAED,UAAM,qBAAqB,MAAM;AAC7B,UAAI,MAAM,gBAAgB;AACtB,cAAA;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,gBAAgB,CAAC,UAAyB;AAC5C,UAAI,MAAM,QAAQ,YAAY,MAAM,iBAAiB,QAAQ,OAAO;AAChE,cAAA;AAAA,MACJ;AAAA,IACJ;AAGA,UAAM,UAAyB;AAAA,MAC3B;AAAA,MACA;AAAA,MACA,SAAS,MAAM;AAAA,MACf,eAAe,MAAM;AAAA,IAAA;AAEzB,YAAQE,aAAY,OAAO;AAE3B,cAAU,MAAM;AACZ,eAAS,iBAAiB,WAAW,aAAa;AAAA,IACtD,CAAC;AAED,gBAAY,MAAM;AACd,eAAS,oBAAoB,WAAW,aAAa;AAAA,IACzD,CAAC;AAED,aAAa;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACH;;0BAtGGC,YAsBWC,UAAA,EAtBD,IAAG,UAAM;AAAA,QAELN,MAAA,OAAA,kBADVF,mBAoBM,OAAA;AAAA;UAlBF,MAAK;AAAA,UACL,cAAW;AAAA,UACV,mBAAiB,QAAA;AAAA,UACjB,oBAAkB,QAAA;AAAA,QAAA;UAGnBK,mBAGE,OAAA;AAAA,YAFG,SAAO;AAAA,YACP,WAAO,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAI;AAAAA;AAAAA,2BAASP,MAAA,KAAA,KAAAA,MAAA,KAAA,EAAA,GAAA,IAAA;AAAA,cAAK,CAAA,QAAA;AAAA,YAAA;AAAA,UAAA;UAG1BG,mBAMM,OAAA;AAAA,qBALE;AAAA,YAAJ,KAAI;AAAA,YACJ,UAAS;AAAA,YACR,WAAO,OAAA,CAAA,MAAA,OAAA,CAAA,IAAAI;AAAAA;AAAAA,2BAASP,MAAA,KAAA,KAAAA,MAAA,KAAA,EAAA,GAAA,IAAA;AAAA,cAAK,CAAA,QAAA;AAAA,YAAA;AAAA,UAAA;YAEtBC,WAAuB,KAAA,QAAA,WAAA,EAAhB,OAAOD,MAAA,KAAA,EAAA,CAAK;AAAA,UAAA;;;;;;;;;;;;;;;;;;ACUnC,UAAM,aAA0C,OAAO,QAAQ;AAE/D,UAAM,QAAQ;AAUd,UAAM,QAAQE,SAAmB,SAAA,YAAgB;AAEjD,UAAM,WAAW,IAAwB,IAAI;AAC7C,UAAM,cAAc,IAAwB,IAAI;AAChD,UAAM,UAAU,IAAI,KAAK;AAEzB,UAAM,OAAO,MAAM;AACf,UAAI,CAAC,MAAM,UAAU;AACjB,gBAAQ,QAAQ;AAAA,MACpB;AAAA,IACJ;AAEA,UAAM,QAAQ,MAAM;AAChB,cAAQ,QAAQ;AAAA,IACpB;AAEA,UAAM,SAAS,MAAM;AACjB,UAAI,QAAQ,OAAO;AACf,cAAA;AAAA,MACJ,OAAO;AACH,aAAA;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,cAAc,CAAC,UAAkB;AACnC,YAAM,QAAQ;AACd,YAAA;AAAA,IACJ;AAEA,UAAM,gBAAgB,CAAC,YAAgC;AACnD,kBAAY,QAAQ;AAAA,IACxB;AAEA,UAAM,qBAAqB,CAAC,UAAsB;AAC9C,UAAI,CAAC,QAAQ,MAAO;AACpB,YAAM,SAAS,MAAM;AACrB,UAAI,SAAS,SAAS,CAAC,SAAS,MAAM,SAAS,MAAM,GAAG;AACpD,cAAA;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,UAAyB;AAAA,MAC3B,aAAa;AAAA,MACb;AAAA,MACA,UAAU,SAAS,MAAM,MAAM,QAAQ;AAAA,MACvC,MAAM,SAAS,MAAM,MAAM,QAAQ,IAAI;AAAA,MACvC,aAAa,SAAS,MAAM,MAAM,eAAe,EAAE;AAAA,MACnD;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAGJ,YAAQ,YAAY,OAAO;AAE3B,cAAU,MAAM;AACZ,eAAS,iBAAiB,aAAa,kBAAkB;AAAA,IAC7D,CAAC;AAED,gBAAY,MAAM;AACd,eAAS,oBAAoB,aAAa,kBAAkB;AAAA,IAChE,CAAC;AAED,aAAa;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACH;;0BA/GGJ,mBAQM,OAAA;AAAA,iBARG;AAAA,QAAJ,KAAI;AAAA,MAAA;QACLG,WAME,KAAA,QAAA,WAAA;AAAA,UALG,SAAS,QAAQ,QAAQ;AAAA,UACzB,gBAAgB,MAAA;AAAA,UAChB,MAAM,QAAQ;AAAA,UACd,OAAO,QAAQ;AAAA,UACf,QAAQ,QAAQ;AAAA,QAAA;;;;;;;;;AC0B7B,UAAM,aAA0C,OAAO,QAAQ;AAE/D,UAAM,kBAAkB,IAAwB,IAAI;AACpD,UAAM,UAAU,OAA6B,YAAY,IAAI;AAE7D,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,0CAA0C;AAAA,IAC9D;AAEA,UAAM,aAAa,iBAAA;AAEnB,UAAM,cAAc,MAAM;AACtB,UAAI,CAAC,WAAW,MAAM,MAAM,UAAU;AAClC,gBAAQ,OAAA;AAAA,MACZ;AAAA,IACJ;AAEA,UAAM,gBAAgB,CAAC,UAAyB;AAC5C,UAAI,WAAW,MAAM,MAAM,SAAU;AAErC,cAAQ,MAAM,KAAA;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AAAA,QACL,KAAK;AACD,gBAAM,eAAA;AACN,kBAAQ,KAAA;AACR;AAAA,QACJ,KAAK;AACD,gBAAM,eAAA;AACN,kBAAQ,KAAA;AACR;AAAA,MAAA;AAAA,IAEZ;AAEA,cAAU,MAAM;AACZ,cAAQ,cAAc,gBAAgB,KAAK;AAAA,IAC/C,CAAC;AAED,aAAa;AAAA,MACT,OAAO,WAAW;AAAA,IAAA,CACrB;;0BAxEGH,mBAUS,UAAA;AAAA,iBATD;AAAA,QAAJ,KAAI;AAAA,QACJ,MAAK;AAAA,QACJ,UAAUE,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACjC,iBAAeA,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACvC,iBAAc;AAAA,QACb,SAAO;AAAA,QACP,WAAS;AAAA,MAAA;QAEVC,WAA8F,KAAA,QAAA,WAAA;AAAA,UAAvF,SAASD,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,UAAU,UAAUA,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QAAA;;;;;;;;ACoB1F,UAAM,aAA0C,OAAO,QAAQ;AAE/D,UAAM,UAAU,OAA6B,YAAY,IAAI;AAE7D,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,0CAA0C;AAAA,IAC9D;AAEA,UAAM,aAAa,iBAAA;AAEnB,UAAM,gBAAgB,CAAC,UAAyB;;AAC5C,cAAQ,MAAM,KAAA;AAAA,QACV,KAAK;AACD,gBAAM,eAAA;AACN,kBAAQ,MAAA;AACR,wBAAQ,YAAY,UAApB,mBAA2B;AAC3B;AAAA,MAAA;AAAA,IAEZ;AAEA,aAAa;AAAA,MACT,OAAO,WAAW;AAAA,IAAA,CACrB;;AAlDa,aAAAA,MAAA,UAAA,EAAW,MAAM,MAAM,wBADjCF,mBAOM,OAAA;AAAA;QALF,MAAK;AAAA,QACL,UAAS;AAAA,QACR,WAAS;AAAA,MAAA;QAEVG,WAAQ,KAAA,QAAA,SAAA;AAAA,MAAA;;;;;;;;;;;;AC2BhB,UAAM,aAA0C,OAAO,QAAQ;AAE/D,UAAM,QAAQ;AAOd,UAAM,UAAU,OAA6B,YAAY,IAAI;AAE7D,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,uCAAuC;AAAA,IAC3D;AAEA,UAAM,aAAa,cAAc,MAAM,OAAO,EAAE,OAAO,MAAM,OAAO,UAAU,MAAM,SAAA,EAAW,CAAC;AAEhG,UAAM,cAAc,MAAM;AACtB,UAAI,CAAC,WAAW,MAAM,MAAM,UAAU;AAClC,gBAAQ,YAAY,MAAM,KAAK;AAAA,MACnC;AAAA,IACJ;AAEA,aAAa;AAAA,MACT,OAAO,WAAW;AAAA,IAAA,CACrB;;0BA1DGH,mBAWM,OAAA;AAAA,QAVF,MAAK;AAAA,QACJ,iBAAeE,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACtC,iBAAeA,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACtC,cAAYA,kBAAW,MAAM,MAAM,WAAQ,aAAgB;AAAA,QAC3D,iBAAeA,kBAAW,MAAM,MAAM,WAAQ,KAAQ;AAAA,QACtD,SAAO;AAAA,QACP,WAAO;AAAA,mBAAQ,aAAW,CAAA,OAAA,CAAA;AAAA,iCACH,aAAW,CAAA,SAAA,CAAA,GAAA,CAAA,OAAA,CAAA;AAAA,QAAA;AAAA;QAEnCC,WAAgG,KAAA,QAAA,WAAA;AAAA,UAAzF,UAAUD,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,UAAW,UAAUA,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QAAA;;;;;;;;;;;;;;;;;ACQ5F,UAAM,kBAAmD,OAAO,aAAa;AAE7E,UAAM,QAAQ;AAQd,UAAM,QAAQE,SAAmB,SAAA,YAAgB;AAEjD,UAAM,cAAc,CAAC,UAAkB;AACnC,UAAI,CAAC,MAAM,UAAU;AACjB,cAAM,QAAQ;AAAA,MAClB;AAAA,IACJ;AAEA,UAAM,UAA6B;AAAA,MAC/B,aAAa;AAAA,MACb,UAAU,SAAS,MAAM,MAAM,QAAQ;AAAA,MACvC;AAAA,IAAA;AAGJ,YAAQ,iBAAiB,OAAO;;0BA1C5BJ,mBAKM,OAAA;AAAA,QAJF,MAAK;AAAA,QACJ,oBAAkB,QAAA;AAAA,MAAA;QAEnBG,WAAQ,KAAA,QAAA,SAAA;AAAA,MAAA;;;;;;;;;;;;;ACmBhB,UAAM,kBAAmD,OAAO,aAAa;AAE7E,UAAM,QAAQ;AASd,UAAM,UAAU,OAAiC,iBAAiB,IAAI;AAEtE,QAAI,CAAC,SAAS;AACV,YAAM,IAAI,MAAM,0CAA0C;AAAA,IAC9D;AAEA,UAAM,aAAa,aAAa,MAAM,MAAM,KAAK,CAAC;AAElD,UAAM,cAAc,MAAM;AACtB,UAAI,CAAC,WAAW,MAAM,MAAM,UAAU;AAClC,gBAAQ,YAAY,MAAM,KAAK;AAAA,MACnC;AAAA,IACJ;AAEA,UAAM,gBAAgB,CAAC,UAAyB;AAC5C,UAAI,WAAW,MAAM,MAAM,SAAU;AAErC,cAAQ,MAAM,KAAA;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AACD,gBAAM,eAAA;AACN,kBAAQ,YAAY,MAAM,KAAK;AAC/B;AAAA,MAAA;AAAA,IAEZ;AAEA,aAAa;AAAA,MACT,OAAO,WAAW;AAAA,IAAA,CACrB;;AA9DG,aAAAJ,UAAA,GAAAC,mBASS,UATTC,WASS;AAAA,QARL,MAAK;AAAA,QACJ,UAAUC,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QACjC,cAAYA,MAAA,UAAA,EAAW,MAAM,MAAM,UAAO,YAAA;AAAA,MAAA,GACnCA,MAAA,UAAA,EAAW,gBAAgB,OAAK;AAAA,QACvC,SAAO;AAAA,QACP,WAAS;AAAA,MAAA;QAEVC,WAA8F,KAAA,QAAA,WAAA;AAAA,UAAvF,SAASD,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,UAAU,UAAUA,MAAA,UAAA,EAAW,MAAM,MAAM;AAAA,QAAA;;;;;ACHnF,MAAM,aAA0C,OAAO,QAAQ;ACkC/D,MAAM,sBAAsD,OAAO,iBAAiB;ACZpF,MAAM,sBAAsD,OAAO,iBAAiB;ACgBpF,MAAM,uBAAwD,OAAO,kBAAkB;ACLvF,MAAM,oBAAgD,OAAO,eAAe;ACO5E,MAAM,uBAAoC;AAAA,EAC7C,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,OAAO;AAAA,EACP,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EACR,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,wBAAwB;AAAA,EACxB,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AACV;AAEO,MAAM,sBAAmC;AAAA,EAC5C,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,WAAW;AAAA,EACX,sBAAsB;AAAA,EACtB,OAAO;AAAA,EACP,kBAAkB;AAAA,EAClB,QAAQ;AAAA,EACR,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,wBAAwB;AAAA,EACxB,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,MAAM;AACV;"}
1
+ {"version":3,"file":"index.mjs","sources":["../constants/logs.ts","../components/Button.vue","../components/Input.vue","../components/Textarea.vue","../components/Card.vue","../components/CardHeader.vue","../components/CardTitle.vue","../components/CardDescription.vue","../components/CardContent.vue","../components/CardFooter.vue","../components/Alert.vue","../components/AlertTitle.vue","../components/AlertDescription.vue","../components/Checkbox.vue","../components/Switch.vue","../components/Dialog.vue","../components/DialogTrigger.vue","../components/DialogOverlay.vue","../components/DialogContent.vue","../components/DialogHeader.vue","../components/DialogTitle.vue","../components/DialogDescription.vue","../components/DialogFooter.vue","../components/Select.vue","../components/SelectTrigger.vue","../components/SelectValue.vue","../components/SelectContent.vue","../components/SelectItem.vue","../components/RadioGroup.vue","../components/RadioItem.vue","../components/FormField.vue","../components/FormLabel.vue","../components/FormInput.vue","../components/FormTextarea.vue","../components/FormError.vue","../components/FileInput.vue","../components/Sheet.vue","../components/SheetTrigger.vue","../components/SheetOverlay.vue","../components/SheetContent.vue","../components/SheetHeader.vue","../components/SheetTitle.vue","../components/SheetDescription.vue","../components/SheetFooter.vue","../components/SheetClose.vue","../components/Popover.vue","../components/PopoverTrigger.vue","../components/PopoverContent.vue","../components/Tooltip.vue","../components/TooltipTrigger.vue","../components/TooltipContent.vue","../components/DropdownMenu.vue","../components/DropdownMenuTrigger.vue","../components/DropdownMenuContent.vue","../components/DropdownMenuItem.vue","../components/DropdownMenuSeparator.vue","../components/DropdownMenuLabel.vue","../components/Toast.vue","../components/ToastTitle.vue","../components/ToastDescription.vue","../components/ToastClose.vue","../components/Toaster.vue","../types/dialog.ts","../types/tooltip.ts","../types/popover.ts","../types/dropdown.ts","../types/sheet.ts","../types/theme.ts"],"sourcesContent":["// CLAUDE.md規則: 全てのログメッセージは単一のファイル内に記述\n\nexport const FORM_LOGS = {\n FIELD_VALIDATED: (field: string) => `フィールド \"${field}\" のバリデーションが完了しました`,\n FORM_SUBMITTED: \"フォームが送信されました\",\n FORM_RESET: \"フォームがリセットされました\",\n VALIDATION_STARTED: \"バリデーションを開始します\"\n} as const\n\nexport const COMPONENT_LOGS = {\n DIALOG_OPENED: \"ダイアログが開かれました\",\n DIALOG_CLOSED: \"ダイアログが閉じられました\",\n BUTTON_CLICKED: \"ボタンがクリックされました\",\n INPUT_FOCUSED: \"入力フィールドにフォーカスが当たりました\",\n INPUT_BLURRED: \"入力フィールドからフォーカスが外れました\"\n} as const\n\nexport const CONFIG_LOGS = {\n PROVIDER_INITIALIZED: \"UIProviderが初期化されました\",\n CONFIG_UPDATED: \"UI設定が更新されました\"\n} as const\n","<template>\n <button\n :disabled=\"composable.state.value.disabled || composable.state.value.loading\"\n :type=\"composable.state.value.type\"\n v-bind=\"composable.aria_attributes.value\"\n @click=\"handleClick\"\n >\n <slot />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef } from \"vue\"\nimport { useButton } from \"../composables/useButton\"\n\nconst props = withDefaults(defineProps<{\n variant?: \"primary\" | \"secondary\" | \"outline\" | \"ghost\" | \"destructive\"\n size?: \"sm\" | \"md\" | \"lg\"\n disabled?: boolean\n loading?: boolean\n type?: \"button\" | \"submit\" | \"reset\"\n}>(), {\n variant: \"primary\",\n size: \"md\",\n disabled: false,\n loading: false,\n type: \"button\"\n})\n\nconst emit = defineEmits<{\n click: [event: MouseEvent]\n}>()\n\nconst composable = useButton(toRef(() => props))\n\nconst handleClick = (event: MouseEvent) => {\n if (!composable.state.value.disabled && !composable.state.value.loading) {\n emit(\"click\", event)\n }\n}\n</script>\n","<template>\n <input\n :type=\"composable.state.value.type\"\n :value=\"modelValue\"\n :disabled=\"composable.state.value.disabled\"\n :readonly=\"composable.state.value.readonly\"\n :placeholder=\"placeholder\"\n :id=\"id\"\n v-bind=\"composable.aria_attributes.value\"\n @input=\"handleInput\"\n @focus=\"composable.handleFocus\"\n @blur=\"composable.handleBlur\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef } from \"vue\"\nimport { useInput } from \"../composables/useInput\"\nimport type { InputType, InputSize } from \"../types/input\"\n\nconst props = withDefaults(defineProps<{\n type?: InputType\n size?: InputSize\n placeholder?: string\n disabled?: boolean\n readonly?: boolean\n error?: string\n error_id?: string\n id?: string\n modelValue?: string\n}>(), {\n type: \"text\",\n size: \"md\",\n disabled: false,\n readonly: false\n})\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string]\n}>()\n\nconst composable = useInput(toRef(() => props))\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n emit(\"update:modelValue\", target.value)\n}\n</script>\n","<template>\n <textarea\n :value=\"modelValue\"\n :disabled=\"composable.state.value.disabled\"\n :readonly=\"composable.state.value.readonly\"\n :placeholder=\"placeholder\"\n :rows=\"rows\"\n :id=\"id\"\n v-bind=\"composable.aria_attributes.value\"\n @input=\"handleInput\"\n @focus=\"composable.handleFocus\"\n @blur=\"composable.handleBlur\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef } from \"vue\"\nimport { useTextarea } from \"../composables/useTextarea\"\nimport type { TextareaSize, TextareaResize } from \"../types/textarea\"\n\nconst props = withDefaults(defineProps<{\n size?: TextareaSize\n placeholder?: string\n disabled?: boolean\n readonly?: boolean\n error?: string\n error_id?: string\n rows?: number\n resize?: TextareaResize\n modelValue?: string\n id?: string\n}>(), {\n size: \"md\",\n disabled: false,\n readonly: false,\n rows: 3,\n resize: \"vertical\"\n})\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string]\n}>()\n\nconst composable = useTextarea(toRef(() => props))\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLTextAreaElement\n emit(\"update:modelValue\", target.value)\n}\n\ndefineExpose({\n state: composable.state,\n is_focused: composable.is_focused\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef } from \"vue\"\nimport { useCard } from \"../composables/useCard\"\n\nconst props = withDefaults(defineProps<{\n padding?: \"none\" | \"sm\" | \"md\" | \"lg\"\n}>(), {\n padding: \"md\"\n})\n\n// Composable is available for state access if needed\nconst composable = useCard(toRef(() => props))\n\n// Export state for external access\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"CardHeader\"\n})\n</script>\n","<template>\n <h3>\n <slot />\n </h3>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"CardTitle\"\n})\n</script>\n","<template>\n <p>\n <slot />\n </p>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"CardDescription\"\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"CardContent\"\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"CardFooter\"\n})\n</script>\n","<template>\n <div\n role=\"alert\"\n :data-variant=\"variant\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nconst props = withDefaults(defineProps<{\n variant?: \"default\" | \"info\" | \"success\" | \"warning\" | \"destructive\"\n}>(), {\n variant: \"default\"\n})\n\ndefineOptions({\n name: \"Alert\"\n})\n</script>\n","<template>\n <h5>\n <slot />\n </h5>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"AlertTitle\"\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"AlertDescription\"\n})\n</script>\n","<template>\n <button\n type=\"button\"\n :disabled=\"composable.state.value.disabled\"\n :data-state=\"dataState\"\n v-bind=\"composable.aria_attributes.value\"\n @click=\"handleClick\"\n @keydown.space.prevent=\"handleClick\"\n >\n <slot :checked=\"model\" :indeterminate=\"composable.state.value.indeterminate\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef, computed } from \"vue\"\nimport { useCheckbox } from \"../composables/useCheckbox\"\n\nconst props = withDefaults(defineProps<{\n size?: \"sm\" | \"md\" | \"lg\"\n disabled?: boolean\n indeterminate?: boolean\n}>(), {\n size: \"md\",\n disabled: false,\n indeterminate: false\n})\n\nconst model = defineModel<boolean>({ default: false })\n\nconst emit = defineEmits<{\n change: [checked: boolean]\n}>()\n\nconst composable = useCheckbox(toRef(() => props), model)\n\nconst dataState = computed(() => {\n if (composable.state.value.indeterminate) return \"indeterminate\"\n return model.value ? \"checked\" : \"unchecked\"\n})\n\nconst handleClick = () => {\n if (!composable.state.value.disabled) {\n model.value = !model.value\n emit(\"change\", model.value)\n }\n}\n</script>\n","<template>\n <button\n type=\"button\"\n :disabled=\"composable.state.value.disabled\"\n :data-state=\"model ? 'checked' : 'unchecked'\"\n v-bind=\"composable.aria_attributes.value\"\n @click=\"handleClick\"\n >\n <slot :checked=\"model\">\n <span :data-state=\"model ? 'checked' : 'unchecked'\" />\n </slot>\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { toRef } from \"vue\"\nimport { useSwitch } from \"../composables/useSwitch\"\n\nconst props = withDefaults(defineProps<{\n size?: \"sm\" | \"md\" | \"lg\"\n disabled?: boolean\n}>(), {\n size: \"md\",\n disabled: false\n})\n\nconst model = defineModel<boolean>({ default: false })\n\nconst emit = defineEmits<{\n change: [checked: boolean]\n}>()\n\nconst composable = useSwitch(toRef(() => props), model)\n\nconst handleClick = () => {\n if (!composable.state.value.disabled) {\n model.value = !model.value\n emit(\"change\", model.value)\n }\n}\n\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <Teleport to=\"body\">\n <div\n v-if=\"is_open\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-labelledby=\"titleId\"\n :aria-describedby=\"descriptionId\"\n >\n <!-- Overlay -->\n <div\n @click=\"handleOverlayClick\"\n @keydown.escape=\"close\"\n />\n <!-- Content -->\n <div\n ref=\"content_ref\"\n tabindex=\"-1\"\n @keydown.escape=\"close\"\n >\n <slot :close=\"close\" />\n </div>\n </div>\n </Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, onMounted, onUnmounted, provide } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\nimport { useDialog } from \"../composables/useDialog\"\n\ninterface DialogContext {\n is_open: Ref<boolean>\n close: () => void\n titleId?: string\n descriptionId?: string\n}\n\nconst DIALOG_KEY: InjectionKey<DialogContext> = Symbol(\"dialog\")\n\nconst props = withDefaults(defineProps<{\n closeOnOverlay?: boolean\n closeOnEscape?: boolean\n titleId?: string\n descriptionId?: string\n}>(), {\n closeOnOverlay: true,\n closeOnEscape: true\n})\n\nconst model = defineModel<boolean>(\"open\", { default: false })\n\nconst content_ref = ref<HTMLElement | null>(null)\nconst dialog = useDialog()\nconst { is_open, open, close, toggle } = dialog\n\n// Sync with v-model\nwatch(model, (value) => {\n if (value) {\n open()\n } else {\n close()\n }\n}, { immediate: true })\n\nwatch(is_open, (value) => {\n model.value = value\n})\n\nconst handleOverlayClick = () => {\n if (props.closeOnOverlay) {\n close()\n }\n}\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && props.closeOnEscape && is_open.value) {\n close()\n }\n}\n\n// Provide context for child components\nconst context: DialogContext = {\n is_open,\n close,\n titleId: props.titleId,\n descriptionId: props.descriptionId\n}\nprovide(DIALOG_KEY, context)\n\nonMounted(() => {\n document.addEventListener(\"keydown\", handleKeyDown)\n})\n\nonUnmounted(() => {\n document.removeEventListener(\"keydown\", handleKeyDown)\n})\n\ndefineExpose({\n is_open,\n open,\n close,\n toggle\n})\n</script>\n","<template>\n <slot :open=\"open\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface DialogContext {\n is_open: Ref<boolean>\n close: () => void\n titleId?: string\n descriptionId?: string\n}\n\nconst DIALOG_KEY: InjectionKey<DialogContext> = Symbol(\"dialog\")\n\nconst context = inject<DialogContext | null>(DIALOG_KEY, null)\n\nconst open = () => {\n if (context) {\n context.is_open.value = true\n }\n}\n\ndefineOptions({\n name: \"DialogTrigger\"\n})\n</script>\n","<template>\n <div\n aria-hidden=\"true\"\n @click=\"$emit('click')\"\n />\n</template>\n\n<script setup lang=\"ts\">\ndefineEmits<{\n click: []\n}>()\n\ndefineOptions({\n name: \"DialogOverlay\"\n})\n</script>\n","<template>\n <div\n ref=\"content_ref\"\n role=\"document\"\n tabindex=\"-1\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\"\n\nconst content_ref = ref<HTMLElement | null>(null)\n\ndefineOptions({\n name: \"DialogContent\"\n})\n\ndefineExpose({\n content_ref\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"DialogHeader\"\n})\n</script>\n","<template>\n <h2 :id=\"id\">\n <slot />\n </h2>\n</template>\n\n<script setup lang=\"ts\">\nconst props = defineProps<{\n id?: string\n}>()\n\ndefineOptions({\n name: \"DialogTitle\"\n})\n</script>\n","<template>\n <p :id=\"id\">\n <slot />\n </p>\n</template>\n\n<script setup lang=\"ts\">\nconst props = defineProps<{\n id?: string\n}>()\n\ndefineOptions({\n name: \"DialogDescription\"\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"DialogFooter\"\n})\n</script>\n","<template>\n <div ref=\"root_ref\">\n <slot\n :is_open=\"context.is_open.value\"\n :selected_value=\"model\"\n :open=\"context.open\"\n :close=\"context.close\"\n :toggle=\"context.toggle\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, provide, watch, onMounted, onUnmounted, computed } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\n\ninterface SelectContext {\n model_value: Ref<string>\n is_open: Ref<boolean>\n disabled: ComputedRef<boolean>\n size: ComputedRef<\"sm\" | \"md\" | \"lg\">\n placeholder: ComputedRef<string>\n trigger_ref: Ref<HTMLElement | null>\n updateValue: (value: string) => void\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (element: HTMLElement | null) => void\n}\n\nconst SELECT_KEY: InjectionKey<SelectContext> = Symbol(\"select\")\n\nconst props = withDefaults(defineProps<{\n size?: \"sm\" | \"md\" | \"lg\"\n disabled?: boolean\n placeholder?: string\n}>(), {\n size: \"md\",\n disabled: false,\n placeholder: \"\"\n})\n\nconst model = defineModel<string>({ default: \"\" })\n\nconst root_ref = ref<HTMLElement | null>(null)\nconst trigger_ref = ref<HTMLElement | null>(null)\nconst is_open = ref(false)\n\nconst open = () => {\n if (!props.disabled) {\n is_open.value = true\n }\n}\n\nconst close = () => {\n is_open.value = false\n}\n\nconst toggle = () => {\n if (is_open.value) {\n close()\n } else {\n open()\n }\n}\n\nconst updateValue = (value: string) => {\n model.value = value\n close()\n}\n\nconst setTriggerRef = (element: HTMLElement | null) => {\n trigger_ref.value = element\n}\n\nconst handleClickOutside = (event: MouseEvent) => {\n if (!is_open.value) return\n const target = event.target as Node\n if (root_ref.value && !root_ref.value.contains(target)) {\n close()\n }\n}\n\nconst context: SelectContext = {\n model_value: model,\n is_open,\n disabled: computed(() => props.disabled),\n size: computed(() => props.size ?? \"md\"),\n placeholder: computed(() => props.placeholder ?? \"\"),\n trigger_ref,\n updateValue,\n open,\n close,\n toggle,\n setTriggerRef\n}\n\nprovide(SELECT_KEY, context)\n\nonMounted(() => {\n document.addEventListener(\"mousedown\", handleClickOutside)\n})\n\nonUnmounted(() => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n})\n\ndefineExpose({\n is_open,\n open,\n close,\n toggle\n})\n</script>\n","<template>\n <button\n ref=\"trigger_element\"\n type=\"button\"\n :disabled=\"composable.state.value.disabled\"\n :aria-expanded=\"composable.state.value.is_open\"\n aria-haspopup=\"listbox\"\n @click=\"handleClick\"\n @keydown=\"handleKeyDown\"\n >\n <slot :is_open=\"composable.state.value.is_open\" :disabled=\"composable.state.value.disabled\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, inject, onMounted } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\nimport { useSelectTrigger } from \"../composables/useSelect\"\n\ninterface SelectContext {\n model_value: Ref<string>\n is_open: Ref<boolean>\n disabled: ComputedRef<boolean>\n size: ComputedRef<\"sm\" | \"md\" | \"lg\">\n placeholder: ComputedRef<string>\n trigger_ref: Ref<HTMLElement | null>\n updateValue: (value: string) => void\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (element: HTMLElement | null) => void\n}\n\nconst SELECT_KEY: InjectionKey<SelectContext> = Symbol(\"select\")\n\nconst trigger_element = ref<HTMLElement | null>(null)\nconst context = inject<SelectContext | null>(SELECT_KEY, null)\n\nif (!context) {\n throw new Error(\"SelectTrigger must be used within Select\")\n}\n\nconst composable = useSelectTrigger()\n\nconst handleClick = () => {\n if (!composable.state.value.disabled) {\n context.toggle()\n }\n}\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n if (composable.state.value.disabled) return\n\n switch (event.key) {\n case \"Enter\":\n case \" \":\n case \"ArrowDown\":\n event.preventDefault()\n context.open()\n break\n case \"ArrowUp\":\n event.preventDefault()\n context.open()\n break\n }\n}\n\nonMounted(() => {\n context.setTriggerRef(trigger_element.value)\n})\n\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <span>\n <slot :value=\"selected_value\" :placeholder=\"placeholder\">\n {{ display_text }}\n </slot>\n </span>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, computed } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\n\ninterface SelectContext {\n model_value: Ref<string>\n is_open: Ref<boolean>\n disabled: ComputedRef<boolean>\n size: ComputedRef<\"sm\" | \"md\" | \"lg\">\n placeholder: ComputedRef<string>\n trigger_ref: Ref<HTMLElement | null>\n updateValue: (value: string) => void\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (element: HTMLElement | null) => void\n}\n\nconst SELECT_KEY: InjectionKey<SelectContext> = Symbol(\"select\")\n\nconst props = defineProps<{\n placeholder?: string\n}>()\n\nconst context = inject<SelectContext | null>(SELECT_KEY, null)\n\nconst selected_value = computed(() => context?.model_value.value ?? \"\")\nconst placeholder = computed(() => props.placeholder ?? context?.placeholder.value ?? \"Select...\")\nconst display_text = computed(() => selected_value.value || placeholder.value)\n\ndefineOptions({\n name: \"SelectValue\"\n})\n</script>\n","<template>\n <div\n v-if=\"composable.state.value.is_open\"\n role=\"listbox\"\n tabindex=\"-1\"\n @keydown=\"handleKeyDown\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\nimport { useSelectContent } from \"../composables/useSelect\"\n\ninterface SelectContext {\n model_value: Ref<string>\n is_open: Ref<boolean>\n disabled: ComputedRef<boolean>\n size: ComputedRef<\"sm\" | \"md\" | \"lg\">\n placeholder: ComputedRef<string>\n trigger_ref: Ref<HTMLElement | null>\n updateValue: (value: string) => void\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (element: HTMLElement | null) => void\n}\n\nconst SELECT_KEY: InjectionKey<SelectContext> = Symbol(\"select\")\n\nconst context = inject<SelectContext | null>(SELECT_KEY, null)\n\nif (!context) {\n throw new Error(\"SelectContent must be used within Select\")\n}\n\nconst composable = useSelectContent()\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n switch (event.key) {\n case \"Escape\":\n event.preventDefault()\n context.close()\n context.trigger_ref.value?.focus()\n break\n }\n}\n\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <div\n role=\"option\"\n :aria-selected=\"composable.state.value.selected\"\n :aria-disabled=\"composable.state.value.disabled\"\n :data-state=\"composable.state.value.selected ? 'selected' : undefined\"\n :data-disabled=\"composable.state.value.disabled ? '' : undefined\"\n @click=\"handleClick\"\n @keydown.enter=\"handleClick\"\n @keydown.space.prevent=\"handleClick\"\n >\n <slot :selected=\"composable.state.value.selected\" :disabled=\"composable.state.value.disabled\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, toRef } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\nimport { useSelectItem } from \"../composables/useSelect\"\n\ninterface SelectContext {\n model_value: Ref<string>\n is_open: Ref<boolean>\n disabled: ComputedRef<boolean>\n size: ComputedRef<\"sm\" | \"md\" | \"lg\">\n placeholder: ComputedRef<string>\n trigger_ref: Ref<HTMLElement | null>\n updateValue: (value: string) => void\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (element: HTMLElement | null) => void\n}\n\nconst SELECT_KEY: InjectionKey<SelectContext> = Symbol(\"select\")\n\nconst props = withDefaults(defineProps<{\n value: string\n disabled?: boolean\n}>(), {\n disabled: false\n})\n\nconst context = inject<SelectContext | null>(SELECT_KEY, null)\n\nif (!context) {\n throw new Error(\"SelectItem must be used within Select\")\n}\n\nconst composable = useSelectItem(toRef(() => ({ value: props.value, disabled: props.disabled })))\n\nconst handleClick = () => {\n if (!composable.state.value.disabled) {\n context.updateValue(props.value)\n }\n}\n\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <div\n role=\"radiogroup\"\n :aria-orientation=\"orientation\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { provide, computed } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\n\ninterface RadioGroupContext {\n model_value: Ref<string>\n disabled: ComputedRef<boolean>\n updateValue: (value: string) => void\n}\n\nconst RADIO_GROUP_KEY: InjectionKey<RadioGroupContext> = Symbol(\"radio-group\")\n\nconst props = withDefaults(defineProps<{\n disabled?: boolean\n orientation?: \"horizontal\" | \"vertical\"\n}>(), {\n disabled: false,\n orientation: \"vertical\"\n})\n\nconst model = defineModel<string>({ default: \"\" })\n\nconst updateValue = (value: string) => {\n if (!props.disabled) {\n model.value = value\n }\n}\n\nconst context: RadioGroupContext = {\n model_value: model,\n disabled: computed(() => props.disabled),\n updateValue\n}\n\nprovide(RADIO_GROUP_KEY, context)\n</script>\n","<template>\n <button\n type=\"button\"\n :disabled=\"composable.state.value.disabled\"\n :data-state=\"composable.state.value.checked ? 'checked' : 'unchecked'\"\n v-bind=\"composable.aria_attributes.value\"\n @click=\"handleClick\"\n @keydown=\"handleKeyDown\"\n >\n <slot :checked=\"composable.state.value.checked\" :disabled=\"composable.state.value.disabled\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, toRef } from \"vue\"\nimport type { Ref, ComputedRef, InjectionKey } from \"vue\"\nimport { useRadioItem } from \"../composables/useRadio\"\n\ninterface RadioGroupContext {\n model_value: Ref<string>\n disabled: ComputedRef<boolean>\n updateValue: (value: string) => void\n}\n\nconst RADIO_GROUP_KEY: InjectionKey<RadioGroupContext> = Symbol(\"radio-group\")\n\nconst props = withDefaults(defineProps<{\n value: string\n size?: \"sm\" | \"md\" | \"lg\"\n disabled?: boolean\n}>(), {\n size: \"md\",\n disabled: false\n})\n\nconst context = inject<RadioGroupContext | null>(RADIO_GROUP_KEY, null)\n\nif (!context) {\n throw new Error(\"RadioItem must be used within RadioGroup\")\n}\n\nconst composable = useRadioItem(toRef(() => props))\n\nconst handleClick = () => {\n if (!composable.state.value.disabled) {\n context.updateValue(props.value)\n }\n}\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n if (composable.state.value.disabled) return\n\n switch (event.key) {\n case \"Enter\":\n case \" \":\n event.preventDefault()\n context.updateValue(props.value)\n break\n }\n}\n\ndefineExpose({\n state: composable.state\n})\n</script>\n","<template>\n <div>\n <slot\n :id=\"field_id\"\n :error_id=\"error_id\"\n :has_error=\"!!error\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { provide, computed } from \"vue\"\nimport type { InjectionKey, ComputedRef } from \"vue\"\n\ninterface FormFieldContext {\n field_id: string\n error_id: string\n has_error: ComputedRef<boolean>\n error: ComputedRef<string | undefined>\n}\n\nconst FORM_FIELD_KEY: InjectionKey<FormFieldContext> = Symbol(\"form-field\")\n\nconst props = defineProps<{\n name: string\n error?: string\n}>()\n\nconst field_id = computed(() => `field-${props.name}`)\nconst error_id = computed(() => `field-${props.name}-error`)\nconst has_error = computed(() => !!props.error)\nconst error = computed(() => props.error)\n\nprovide(FORM_FIELD_KEY, {\n field_id: field_id.value,\n error_id: error_id.value,\n has_error,\n error\n})\n\ndefineOptions({\n name: \"FormField\"\n})\n</script>\n","<template>\n <label :for=\"for_id\">\n <slot />\n </label>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { InjectionKey, ComputedRef } from \"vue\"\n\ninterface FormFieldContext {\n field_id: string\n error_id: string\n has_error: ComputedRef<boolean>\n error: ComputedRef<string | undefined>\n}\n\nconst FORM_FIELD_KEY: InjectionKey<FormFieldContext> = Symbol(\"form-field\")\n\nconst props = defineProps<{\n for?: string\n}>()\n\nconst context = inject(FORM_FIELD_KEY, null)\nconst for_id = props.for ?? context?.field_id\n\ndefineOptions({\n name: \"FormLabel\"\n})\n</script>\n","<template>\n <input\n :id=\"input_id\"\n :type=\"type\"\n :value=\"modelValue\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :placeholder=\"placeholder\"\n :aria-invalid=\"has_error\"\n :aria-describedby=\"has_error ? aria_error_id : undefined\"\n @input=\"handleInput\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, computed } from \"vue\"\nimport type { InjectionKey, ComputedRef } from \"vue\"\n\ninterface FormFieldContext {\n field_id: string\n error_id: string\n has_error: ComputedRef<boolean>\n error: ComputedRef<string | undefined>\n}\n\nconst FORM_FIELD_KEY: InjectionKey<FormFieldContext> = Symbol(\"form-field\")\n\nconst props = withDefaults(defineProps<{\n type?: \"text\" | \"email\" | \"password\" | \"number\" | \"tel\" | \"url\" | \"search\"\n modelValue?: string\n disabled?: boolean\n readonly?: boolean\n placeholder?: string\n id?: string\n}>(), {\n type: \"text\",\n disabled: false,\n readonly: false\n})\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string]\n}>()\n\nconst context = inject(FORM_FIELD_KEY, null)\nconst input_id = computed(() => props.id ?? context?.field_id)\nconst has_error = computed(() => context?.has_error.value ?? false)\nconst aria_error_id = computed(() => context?.error_id)\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n emit(\"update:modelValue\", target.value)\n}\n\ndefineOptions({\n name: \"FormInput\"\n})\n</script>\n","<template>\n <textarea\n :id=\"textarea_id\"\n :value=\"modelValue\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :placeholder=\"placeholder\"\n :rows=\"rows\"\n :aria-invalid=\"has_error\"\n :aria-describedby=\"has_error ? aria_error_id : undefined\"\n @input=\"handleInput\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, computed } from \"vue\"\nimport type { InjectionKey, ComputedRef } from \"vue\"\n\ninterface FormFieldContext {\n field_id: string\n error_id: string\n has_error: ComputedRef<boolean>\n error: ComputedRef<string | undefined>\n}\n\nconst FORM_FIELD_KEY: InjectionKey<FormFieldContext> = Symbol(\"form-field\")\n\nconst props = withDefaults(defineProps<{\n modelValue?: string\n disabled?: boolean\n readonly?: boolean\n placeholder?: string\n rows?: number\n id?: string\n}>(), {\n disabled: false,\n readonly: false,\n rows: 3\n})\n\nconst emit = defineEmits<{\n \"update:modelValue\": [value: string]\n}>()\n\nconst context = inject(FORM_FIELD_KEY, null)\nconst textarea_id = computed(() => props.id ?? context?.field_id)\nconst has_error = computed(() => context?.has_error.value ?? false)\nconst aria_error_id = computed(() => context?.error_id)\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLTextAreaElement\n emit(\"update:modelValue\", target.value)\n}\n\ndefineOptions({\n name: \"FormTextarea\"\n})\n</script>\n","<template>\n <p\n v-if=\"show_error\"\n :id=\"error_id\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n <slot>{{ error_message }}</slot>\n </p>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject, computed } from \"vue\"\nimport type { InjectionKey, ComputedRef } from \"vue\"\n\ninterface FormFieldContext {\n field_id: string\n error_id: string\n has_error: ComputedRef<boolean>\n error: ComputedRef<string | undefined>\n}\n\nconst FORM_FIELD_KEY: InjectionKey<FormFieldContext> = Symbol(\"form-field\")\n\nconst props = defineProps<{\n error?: string\n}>()\n\nconst context = inject(FORM_FIELD_KEY, null)\nconst error_id = computed(() => context?.error_id)\nconst error_message = computed(() => props.error ?? context?.error.value)\nconst show_error = computed(() => !!error_message.value)\n\ndefineOptions({\n name: \"FormError\"\n})\n</script>\n","<template>\n <div\n :data-dragging=\"is_dragging\"\n :data-disabled=\"disabled\"\n :data-has-files=\"has_files\"\n @dragover.prevent=\"handleDragOver\"\n @dragleave=\"handleDragLeave\"\n @drop.prevent=\"handleDrop\"\n >\n <input\n ref=\"input_ref\"\n type=\"file\"\n :accept=\"accept\"\n :multiple=\"multiple\"\n :disabled=\"disabled\"\n @change=\"handleChange\"\n />\n <slot\n :files=\"files\"\n :is_dragging=\"is_dragging\"\n :open=\"openFilePicker\"\n :clear=\"clearFiles\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed } from \"vue\"\n\nconst props = withDefaults(defineProps<{\n accept?: string\n multiple?: boolean\n disabled?: boolean\n maxSize?: number\n maxFiles?: number\n}>(), {\n multiple: false,\n disabled: false\n})\n\nconst emit = defineEmits<{\n change: [files: File[]]\n error: [message: string]\n}>()\n\nconst input_ref = ref<HTMLInputElement | null>(null)\nconst files = ref<File[]>([])\nconst is_dragging = ref(false)\n\nconst has_files = computed(() => files.value.length > 0)\n\nconst validateFiles = (file_list: FileList | null): File[] => {\n if (!file_list) return []\n\n const validated: File[] = []\n const max_files = props.maxFiles ?? (props.multiple ? Infinity : 1)\n\n for (let i = 0; i < Math.min(file_list.length, max_files); i++) {\n const file = file_list[i]\n\n if (props.maxSize && file.size > props.maxSize) {\n emit(\"error\", `File \"${file.name}\" exceeds maximum size`)\n continue\n }\n\n validated.push(file)\n }\n\n return validated\n}\n\nconst handleChange = (event: Event) => {\n const target = event.target as HTMLInputElement\n const validated = validateFiles(target.files)\n files.value = validated\n emit(\"change\", validated)\n}\n\nconst handleDragOver = (event: DragEvent) => {\n if (props.disabled) return\n is_dragging.value = true\n}\n\nconst handleDragLeave = () => {\n is_dragging.value = false\n}\n\nconst handleDrop = (event: DragEvent) => {\n if (props.disabled) return\n is_dragging.value = false\n\n const validated = validateFiles(event.dataTransfer?.files ?? null)\n files.value = validated\n emit(\"change\", validated)\n}\n\nconst openFilePicker = () => {\n if (!props.disabled && input_ref.value) {\n input_ref.value.click()\n }\n}\n\nconst clearFiles = () => {\n files.value = []\n if (input_ref.value) {\n input_ref.value.value = \"\"\n }\n emit(\"change\", [])\n}\n\ndefineOptions({\n name: \"FileInput\"\n})\n\ndefineExpose({\n files,\n is_dragging,\n openFilePicker,\n clearFiles\n})\n</script>\n","<template>\n <Teleport to=\"body\">\n <div\n v-if=\"is_open\"\n :data-side=\"side\"\n >\n <slot :close=\"close\" :is_open=\"is_open\" />\n </div>\n </Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, provide, onMounted, onUnmounted } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface SheetContext {\n is_open: Ref<boolean>\n side: \"top\" | \"right\" | \"bottom\" | \"left\"\n close: () => void\n}\n\nconst SHEET_KEY: InjectionKey<SheetContext> = Symbol(\"sheet\")\n\nconst props = withDefaults(defineProps<{\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n closeOnOverlay?: boolean\n closeOnEscape?: boolean\n}>(), {\n side: \"right\",\n closeOnOverlay: true,\n closeOnEscape: true\n})\n\nconst model = defineModel<boolean>(\"open\", { default: false })\n\nconst is_open = ref(false)\n\nconst open = () => {\n is_open.value = true\n}\n\nconst close = () => {\n is_open.value = false\n}\n\nwatch(model, (value) => {\n is_open.value = value\n}, { immediate: true })\n\nwatch(is_open, (value) => {\n model.value = value\n})\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\" && props.closeOnEscape && is_open.value) {\n close()\n }\n}\n\nprovide(SHEET_KEY, {\n is_open,\n side: props.side,\n close\n})\n\nonMounted(() => {\n document.addEventListener(\"keydown\", handleKeyDown)\n})\n\nonUnmounted(() => {\n document.removeEventListener(\"keydown\", handleKeyDown)\n})\n\ndefineOptions({\n name: \"Sheet\"\n})\n\ndefineExpose({\n is_open,\n open,\n close\n})\n</script>\n","<template>\n <slot :open=\"open\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface SheetContext {\n is_open: Ref<boolean>\n side: \"top\" | \"right\" | \"bottom\" | \"left\"\n close: () => void\n}\n\nconst SHEET_KEY: InjectionKey<SheetContext> = Symbol(\"sheet\")\n\nconst context = inject<SheetContext | null>(SHEET_KEY, null)\n\nconst open = () => {\n if (context) {\n context.is_open.value = true\n }\n}\n\ndefineOptions({\n name: \"SheetTrigger\"\n})\n</script>\n","<template>\n <div\n aria-hidden=\"true\"\n @click=\"handleClick\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface SheetContext {\n is_open: Ref<boolean>\n side: \"top\" | \"right\" | \"bottom\" | \"left\"\n close: () => void\n}\n\nconst SHEET_KEY: InjectionKey<SheetContext> = Symbol(\"sheet\")\n\nconst context = inject<SheetContext | null>(SHEET_KEY, null)\n\nconst handleClick = () => {\n context?.close()\n}\n\ndefineOptions({\n name: \"SheetOverlay\"\n})\n</script>\n","<template>\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"SheetContent\"\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"SheetHeader\"\n})\n</script>\n","<template>\n <h2>\n <slot />\n </h2>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"SheetTitle\"\n})\n</script>\n","<template>\n <p>\n <slot />\n </p>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"SheetDescription\"\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"SheetFooter\"\n})\n</script>\n","<template>\n <slot :close=\"close\">\n <button type=\"button\" @click=\"close\">\n Close\n </button>\n </slot>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface SheetContext {\n is_open: Ref<boolean>\n side: \"top\" | \"right\" | \"bottom\" | \"left\"\n close: () => void\n}\n\nconst SHEET_KEY: InjectionKey<SheetContext> = Symbol(\"sheet\")\n\nconst context = inject<SheetContext | null>(SHEET_KEY, null)\n\nconst close = () => {\n context?.close()\n}\n\ndefineOptions({\n name: \"SheetClose\"\n})\n</script>\n","<template>\n <div ref=\"root_ref\">\n <slot :is_open=\"is_open\" :open=\"open\" :close=\"close\" :toggle=\"toggle\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, provide, onMounted, onUnmounted } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface PopoverContext {\n is_open: Ref<boolean>\n trigger_ref: Ref<HTMLElement | null>\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (el: HTMLElement | null) => void\n}\n\nconst POPOVER_KEY: InjectionKey<PopoverContext> = Symbol(\"popover\")\n\nconst props = withDefaults(defineProps<{\n closeOnClickOutside?: boolean\n}>(), {\n closeOnClickOutside: true\n})\n\nconst root_ref = ref<HTMLElement | null>(null)\nconst trigger_ref = ref<HTMLElement | null>(null)\nconst is_open = ref(false)\n\nconst open = () => {\n is_open.value = true\n}\n\nconst close = () => {\n is_open.value = false\n}\n\nconst toggle = () => {\n is_open.value = !is_open.value\n}\n\nconst setTriggerRef = (el: HTMLElement | null) => {\n trigger_ref.value = el\n}\n\nconst handleClickOutside = (event: MouseEvent) => {\n if (!props.closeOnClickOutside || !is_open.value) return\n const target = event.target as Node\n if (root_ref.value && !root_ref.value.contains(target)) {\n close()\n }\n}\n\nprovide(POPOVER_KEY, {\n is_open,\n trigger_ref,\n open,\n close,\n toggle,\n setTriggerRef\n})\n\nonMounted(() => {\n document.addEventListener(\"mousedown\", handleClickOutside)\n})\n\nonUnmounted(() => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n})\n\ndefineOptions({\n name: \"Popover\"\n})\n\ndefineExpose({\n is_open,\n open,\n close,\n toggle\n})\n</script>\n","<template>\n <button\n ref=\"trigger_element\"\n type=\"button\"\n :aria-expanded=\"is_open\"\n aria-haspopup=\"dialog\"\n @click=\"toggle\"\n >\n <slot :is_open=\"is_open\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, inject, onMounted } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface PopoverContext {\n is_open: Ref<boolean>\n trigger_ref: Ref<HTMLElement | null>\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (el: HTMLElement | null) => void\n}\n\nconst POPOVER_KEY: InjectionKey<PopoverContext> = Symbol(\"popover\")\n\nconst trigger_element = ref<HTMLElement | null>(null)\nconst context = inject<PopoverContext | null>(POPOVER_KEY, null)\n\nconst is_open = context?.is_open ?? ref(false)\n\nconst toggle = () => {\n context?.toggle()\n}\n\nonMounted(() => {\n context?.setTriggerRef(trigger_element.value)\n})\n\ndefineOptions({\n name: \"PopoverTrigger\"\n})\n</script>\n","<template>\n <div\n v-if=\"is_open\"\n role=\"dialog\"\n tabindex=\"-1\"\n :data-side=\"side\"\n :data-align=\"align\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface PopoverContext {\n is_open: Ref<boolean>\n trigger_ref: Ref<HTMLElement | null>\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (el: HTMLElement | null) => void\n}\n\nconst POPOVER_KEY: InjectionKey<PopoverContext> = Symbol(\"popover\")\n\nconst props = withDefaults(defineProps<{\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n align?: \"start\" | \"center\" | \"end\"\n}>(), {\n side: \"bottom\",\n align: \"center\"\n})\n\nconst context = inject<PopoverContext | null>(POPOVER_KEY, null)\nconst is_open = context?.is_open\n\ndefineOptions({\n name: \"PopoverContent\"\n})\n</script>\n","<template>\n <div ref=\"root_ref\">\n <slot :is_open=\"is_open\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, provide } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface TooltipContext {\n is_open: Ref<boolean>\n trigger_ref: Ref<HTMLElement | null>\n delay: number\n open: () => void\n close: () => void\n setTriggerRef: (el: HTMLElement | null) => void\n}\n\nconst TOOLTIP_KEY: InjectionKey<TooltipContext> = Symbol(\"tooltip\")\n\nconst props = withDefaults(defineProps<{\n delay?: number\n}>(), {\n delay: 200\n})\n\nconst root_ref = ref<HTMLElement | null>(null)\nconst trigger_ref = ref<HTMLElement | null>(null)\nconst is_open = ref(false)\nlet timeout_id: ReturnType<typeof setTimeout> | null = null\n\nconst open = () => {\n if (timeout_id) clearTimeout(timeout_id)\n timeout_id = setTimeout(() => {\n is_open.value = true\n }, props.delay)\n}\n\nconst close = () => {\n if (timeout_id) clearTimeout(timeout_id)\n is_open.value = false\n}\n\nconst setTriggerRef = (el: HTMLElement | null) => {\n trigger_ref.value = el\n}\n\nprovide(TOOLTIP_KEY, {\n is_open,\n trigger_ref,\n delay: props.delay,\n open,\n close,\n setTriggerRef\n})\n\ndefineOptions({\n name: \"Tooltip\"\n})\n\ndefineExpose({\n is_open,\n open,\n close\n})\n</script>\n","<template>\n <span\n ref=\"trigger_element\"\n @mouseenter=\"handleMouseEnter\"\n @mouseleave=\"handleMouseLeave\"\n @focus=\"handleMouseEnter\"\n @blur=\"handleMouseLeave\"\n >\n <slot />\n </span>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, inject, onMounted } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface TooltipContext {\n is_open: Ref<boolean>\n trigger_ref: Ref<HTMLElement | null>\n delay: number\n open: () => void\n close: () => void\n setTriggerRef: (el: HTMLElement | null) => void\n}\n\nconst TOOLTIP_KEY: InjectionKey<TooltipContext> = Symbol(\"tooltip\")\n\nconst trigger_element = ref<HTMLElement | null>(null)\nconst context = inject<TooltipContext | null>(TOOLTIP_KEY, null)\n\nconst handleMouseEnter = () => {\n context?.open()\n}\n\nconst handleMouseLeave = () => {\n context?.close()\n}\n\nonMounted(() => {\n context?.setTriggerRef(trigger_element.value)\n})\n\ndefineOptions({\n name: \"TooltipTrigger\"\n})\n</script>\n","<template>\n <div\n v-if=\"is_open\"\n role=\"tooltip\"\n :data-side=\"side\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface TooltipContext {\n is_open: Ref<boolean>\n trigger_ref: Ref<HTMLElement | null>\n delay: number\n open: () => void\n close: () => void\n setTriggerRef: (el: HTMLElement | null) => void\n}\n\nconst TOOLTIP_KEY: InjectionKey<TooltipContext> = Symbol(\"tooltip\")\n\nconst props = withDefaults(defineProps<{\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n}>(), {\n side: \"top\"\n})\n\nconst context = inject<TooltipContext | null>(TOOLTIP_KEY, null)\nconst is_open = context?.is_open\n\ndefineOptions({\n name: \"TooltipContent\"\n})\n</script>\n","<template>\n <div ref=\"root_ref\">\n <slot :is_open=\"is_open\" :open=\"open\" :close=\"close\" :toggle=\"toggle\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, provide, onMounted, onUnmounted } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface DropdownMenuContext {\n is_open: Ref<boolean>\n trigger_ref: Ref<HTMLElement | null>\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (el: HTMLElement | null) => void\n}\n\nconst DROPDOWN_MENU_KEY: InjectionKey<DropdownMenuContext> = Symbol(\"dropdown-menu\")\n\nconst root_ref = ref<HTMLElement | null>(null)\nconst trigger_ref = ref<HTMLElement | null>(null)\nconst is_open = ref(false)\n\nconst open = () => {\n is_open.value = true\n}\n\nconst close = () => {\n is_open.value = false\n}\n\nconst toggle = () => {\n is_open.value = !is_open.value\n}\n\nconst setTriggerRef = (el: HTMLElement | null) => {\n trigger_ref.value = el\n}\n\nconst handleClickOutside = (event: MouseEvent) => {\n if (!is_open.value) return\n const target = event.target as Node\n if (root_ref.value && !root_ref.value.contains(target)) {\n close()\n }\n}\n\nprovide(DROPDOWN_MENU_KEY, {\n is_open,\n trigger_ref,\n open,\n close,\n toggle,\n setTriggerRef\n})\n\nonMounted(() => {\n document.addEventListener(\"mousedown\", handleClickOutside)\n})\n\nonUnmounted(() => {\n document.removeEventListener(\"mousedown\", handleClickOutside)\n})\n\ndefineOptions({\n name: \"DropdownMenu\"\n})\n\ndefineExpose({\n is_open,\n open,\n close,\n toggle\n})\n</script>\n","<template>\n <button\n ref=\"trigger_element\"\n type=\"button\"\n :aria-expanded=\"is_open\"\n aria-haspopup=\"menu\"\n @click=\"toggle\"\n >\n <slot :is_open=\"is_open\" />\n </button>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, inject, onMounted } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface DropdownMenuContext {\n is_open: Ref<boolean>\n trigger_ref: Ref<HTMLElement | null>\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (el: HTMLElement | null) => void\n}\n\nconst DROPDOWN_MENU_KEY: InjectionKey<DropdownMenuContext> = Symbol(\"dropdown-menu\")\n\nconst trigger_element = ref<HTMLElement | null>(null)\nconst context = inject<DropdownMenuContext | null>(DROPDOWN_MENU_KEY, null)\n\nconst is_open = context?.is_open ?? ref(false)\n\nconst toggle = () => {\n context?.toggle()\n}\n\nonMounted(() => {\n context?.setTriggerRef(trigger_element.value)\n})\n\ndefineOptions({\n name: \"DropdownMenuTrigger\"\n})\n</script>\n","<template>\n <div\n v-if=\"is_open\"\n role=\"menu\"\n tabindex=\"-1\"\n :data-side=\"side\"\n :data-align=\"align\"\n @keydown=\"handleKeyDown\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface DropdownMenuContext {\n is_open: Ref<boolean>\n trigger_ref: Ref<HTMLElement | null>\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (el: HTMLElement | null) => void\n}\n\nconst DROPDOWN_MENU_KEY: InjectionKey<DropdownMenuContext> = Symbol(\"dropdown-menu\")\n\nconst props = withDefaults(defineProps<{\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n align?: \"start\" | \"center\" | \"end\"\n}>(), {\n side: \"bottom\",\n align: \"start\"\n})\n\nconst context = inject<DropdownMenuContext | null>(DROPDOWN_MENU_KEY, null)\nconst is_open = context?.is_open\n\nconst handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n context?.close()\n context?.trigger_ref.value?.focus()\n }\n}\n\ndefineOptions({\n name: \"DropdownMenuContent\"\n})\n</script>\n","<template>\n <div\n role=\"menuitem\"\n tabindex=\"0\"\n :data-disabled=\"disabled ? '' : undefined\"\n @click=\"handleClick\"\n @keydown.enter=\"handleClick\"\n @keydown.space.prevent=\"handleClick\"\n >\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { inject } from \"vue\"\nimport type { Ref, InjectionKey } from \"vue\"\n\ninterface DropdownMenuContext {\n is_open: Ref<boolean>\n trigger_ref: Ref<HTMLElement | null>\n open: () => void\n close: () => void\n toggle: () => void\n setTriggerRef: (el: HTMLElement | null) => void\n}\n\nconst DROPDOWN_MENU_KEY: InjectionKey<DropdownMenuContext> = Symbol(\"dropdown-menu\")\n\nconst props = withDefaults(defineProps<{\n disabled?: boolean\n closeOnSelect?: boolean\n}>(), {\n disabled: false,\n closeOnSelect: true\n})\n\nconst emit = defineEmits<{\n select: []\n}>()\n\nconst context = inject<DropdownMenuContext | null>(DROPDOWN_MENU_KEY, null)\n\nconst handleClick = () => {\n if (props.disabled) return\n emit(\"select\")\n if (props.closeOnSelect) {\n context?.close()\n }\n}\n\ndefineOptions({\n name: \"DropdownMenuItem\"\n})\n</script>\n","<template>\n <div role=\"separator\" />\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"DropdownMenuSeparator\"\n})\n</script>\n","<template>\n <div role=\"presentation\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"DropdownMenuLabel\"\n})\n</script>\n","<template>\n <div\n role=\"alert\"\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n :data-variant=\"variant\"\n :data-state=\"is_visible ? 'open' : 'closed'\"\n >\n <slot :close=\"close\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, onUnmounted } from \"vue\"\n\nconst props = withDefaults(defineProps<{\n variant?: \"default\" | \"success\" | \"error\" | \"warning\" | \"info\"\n duration?: number\n closable?: boolean\n}>(), {\n variant: \"default\",\n duration: 5000,\n closable: true\n})\n\nconst emit = defineEmits<{\n close: []\n}>()\n\nconst is_visible = ref(true)\nlet timeout_id: ReturnType<typeof setTimeout> | null = null\n\nconst close = () => {\n is_visible.value = false\n emit(\"close\")\n}\n\nonMounted(() => {\n if (props.duration > 0) {\n timeout_id = setTimeout(close, props.duration)\n }\n})\n\nonUnmounted(() => {\n if (timeout_id) {\n clearTimeout(timeout_id)\n }\n})\n\ndefineOptions({\n name: \"Toast\"\n})\n\ndefineExpose({\n close\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"ToastTitle\"\n})\n</script>\n","<template>\n <div>\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\ndefineOptions({\n name: \"ToastDescription\"\n})\n</script>\n","<template>\n <button\n type=\"button\"\n aria-label=\"Close\"\n @click=\"$emit('click')\"\n >\n <slot>\n &times;\n </slot>\n </button>\n</template>\n\n<script setup lang=\"ts\">\ndefineEmits<{\n click: []\n}>()\n\ndefineOptions({\n name: \"ToastClose\"\n})\n</script>\n","<template>\n <Teleport to=\"body\">\n <div\n :data-position=\"position\"\n aria-live=\"polite\"\n aria-label=\"Notifications\"\n >\n <slot :toasts=\"toasts\" :dismiss=\"dismiss\" />\n </div>\n </Teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, onMounted, onUnmounted } from \"vue\"\n\ninterface ToastItem {\n id: string\n title?: string\n description?: string\n variant?: \"default\" | \"success\" | \"error\" | \"warning\" | \"info\"\n duration?: number\n}\n\nconst props = withDefaults(defineProps<{\n position?: \"top-left\" | \"top-center\" | \"top-right\" | \"bottom-left\" | \"bottom-center\" | \"bottom-right\"\n maxToasts?: number\n}>(), {\n position: \"bottom-right\",\n maxToasts: 5\n})\n\nconst toasts = ref<ToastItem[]>([])\n\nconst add = (toast: Omit<ToastItem, \"id\">) => {\n const id = `toast-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`\n const new_toast: ToastItem = { ...toast, id }\n\n toasts.value = [...toasts.value, new_toast].slice(-props.maxToasts)\n\n if (toast.duration !== 0) {\n const duration = toast.duration ?? 5000\n setTimeout(() => dismiss(id), duration)\n }\n\n return id\n}\n\nconst dismiss = (id: string) => {\n toasts.value = toasts.value.filter(t => t.id !== id)\n}\n\nconst dismissAll = () => {\n toasts.value = []\n}\n\n// Global toast event listener\nconst handleToastEvent = (event: CustomEvent<Omit<ToastItem, \"id\">>) => {\n add(event.detail)\n}\n\nonMounted(() => {\n window.addEventListener(\"soave:toast\" as any, handleToastEvent)\n})\n\nonUnmounted(() => {\n window.removeEventListener(\"soave:toast\" as any, handleToastEvent)\n})\n\ndefineOptions({\n name: \"Toaster\"\n})\n\ndefineExpose({\n toasts,\n add,\n dismiss,\n dismissAll\n})\n</script>\n","import type { Ref, DeepReadonly, InjectionKey } from \"vue\"\n\nexport interface DialogContext {\n close: () => void\n}\n\nexport const DIALOG_KEY: InjectionKey<DialogContext> = Symbol(\"dialog\")\n\nexport interface DialogProps {\n open?: boolean\n modal?: boolean\n showCloseButton?: boolean\n unstyled?: boolean\n}\n\nexport interface DialogReturn {\n is_open: DeepReadonly<Ref<boolean>>\n open: () => void\n close: () => void\n toggle: () => void\n}\n\nexport interface DialogContentProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DialogHeaderProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DialogTitleProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DialogDescriptionProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DialogFooterProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DialogTriggerProps {\n as_child?: boolean\n}\n","import type { InjectionKey } from \"vue\"\nimport type { UseTooltipReturn } from \"../composables/useTooltip\"\n\nexport type TooltipSide = \"top\" | \"right\" | \"bottom\" | \"left\"\nexport type TooltipAlign = \"start\" | \"center\" | \"end\"\n\nexport interface TooltipProps {\n content: string\n side?: TooltipSide\n align?: TooltipAlign\n delay_duration?: number\n skip_delay_duration?: number\n disabled?: boolean\n class?: string\n unstyled?: boolean\n}\n\nexport interface TooltipContentProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface TooltipReturn {\n is_open: boolean\n trigger_ref: HTMLElement | null\n content_styles: Record<string, string>\n show: () => void\n hide: () => void\n toggle: () => void\n}\n\nexport interface TooltipAriaAttributes {\n role: \"tooltip\"\n id: string\n}\n\nexport interface TooltipTriggerAriaAttributes {\n \"aria-describedby\": string\n}\n\nexport const TOOLTIP_CONTEXT_KEY: InjectionKey<UseTooltipReturn> = Symbol(\"tooltip-context\")\n","import type { InjectionKey } from \"vue\"\nimport type { UsePopoverReturn } from \"../composables/usePopover\"\n\nexport type PopoverSide = \"top\" | \"right\" | \"bottom\" | \"left\"\nexport type PopoverAlign = \"start\" | \"center\" | \"end\"\n\nexport interface PopoverProps {\n side?: PopoverSide\n align?: PopoverAlign\n modal?: boolean\n class?: string\n unstyled?: boolean\n}\n\nexport interface PopoverContentProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface PopoverContext {\n is_open: boolean\n popover_id: string\n trigger_ref: HTMLElement | null\n open: () => void\n close: () => void\n toggle: () => void\n}\n\nexport const POPOVER_CONTEXT_KEY: InjectionKey<UsePopoverReturn> = Symbol(\"popover-context\")\n","import type { InjectionKey } from \"vue\"\nimport type { UseDropdownReturn } from \"../composables/useDropdown\"\n\nexport type DropdownSide = \"top\" | \"right\" | \"bottom\" | \"left\"\nexport type DropdownAlign = \"start\" | \"center\" | \"end\"\n\nexport interface DropdownProps {\n side?: DropdownSide\n align?: DropdownAlign\n class?: string\n unstyled?: boolean\n}\n\nexport interface DropdownContentProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface DropdownItemProps {\n disabled?: boolean\n destructive?: boolean\n class?: string\n unstyled?: boolean\n}\n\nexport interface DropdownContext {\n is_open: boolean\n dropdown_id: string\n active_item_index: number\n items_count: number\n trigger_ref: HTMLElement | null\n open: () => void\n close: () => void\n toggle: () => void\n registerItem: () => number\n setActiveItem: (index: number) => void\n}\n\nexport interface DropdownItemContext {\n index: number\n is_active: boolean\n is_disabled: boolean\n}\n\nexport const DROPDOWN_CONTEXT_KEY: InjectionKey<UseDropdownReturn> = Symbol(\"dropdown-context\")\n","import type { InjectionKey } from \"vue\"\n\nexport type SheetSide = \"top\" | \"right\" | \"bottom\" | \"left\"\n\nexport interface SheetProps {\n open?: boolean\n side?: SheetSide\n showCloseButton?: boolean\n class?: string\n unstyled?: boolean\n}\n\nexport interface SheetHeaderProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface SheetTitleProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface SheetDescriptionProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface SheetFooterProps {\n class?: string\n unstyled?: boolean\n}\n\nexport interface SheetContext {\n is_open: boolean\n side: SheetSide\n open: () => void\n close: () => void\n}\n\nexport const SHEET_CONTEXT_KEY: InjectionKey<SheetContext> = Symbol(\"sheet-context\")\n","export type ThemeMode = \"light\" | \"dark\" | \"system\"\n\nexport interface ThemeColors {\n background: string\n foreground: string\n card: string\n card_foreground: string\n popover: string\n popover_foreground: string\n primary: string\n primary_foreground: string\n secondary: string\n secondary_foreground: string\n muted: string\n muted_foreground: string\n accent: string\n accent_foreground: string\n destructive: string\n destructive_foreground: string\n border: string\n input: string\n ring: string\n}\n\nexport interface Theme {\n name: string\n colors: {\n light: ThemeColors\n dark: ThemeColors\n }\n}\n\nexport interface ThemeConfig {\n default_mode: ThemeMode\n storage_key: string\n attribute: string\n themes: Theme[]\n}\n\nexport interface ThemeReturn {\n mode: ThemeMode\n resolved_mode: \"light\" | \"dark\"\n setMode: (mode: ThemeMode) => void\n toggleMode: () => void\n}\n\nexport const DEFAULT_LIGHT_COLORS: ThemeColors = {\n background: \"0 0% 100%\",\n foreground: \"222.2 84% 4.9%\",\n card: \"0 0% 100%\",\n card_foreground: \"222.2 84% 4.9%\",\n popover: \"0 0% 100%\",\n popover_foreground: \"222.2 84% 4.9%\",\n primary: \"222.2 47.4% 11.2%\",\n primary_foreground: \"210 40% 98%\",\n secondary: \"210 40% 96.1%\",\n secondary_foreground: \"222.2 47.4% 11.2%\",\n muted: \"210 40% 96.1%\",\n muted_foreground: \"215.4 16.3% 46.9%\",\n accent: \"210 40% 96.1%\",\n accent_foreground: \"222.2 47.4% 11.2%\",\n destructive: \"0 84.2% 60.2%\",\n destructive_foreground: \"210 40% 98%\",\n border: \"214.3 31.8% 91.4%\",\n input: \"214.3 31.8% 91.4%\",\n ring: \"222.2 84% 4.9%\"\n}\n\nexport const DEFAULT_DARK_COLORS: ThemeColors = {\n background: \"222.2 84% 4.9%\",\n foreground: \"210 40% 98%\",\n card: \"222.2 84% 4.9%\",\n card_foreground: \"210 40% 98%\",\n popover: \"222.2 84% 4.9%\",\n popover_foreground: \"210 40% 98%\",\n primary: \"210 40% 98%\",\n primary_foreground: \"222.2 47.4% 11.2%\",\n secondary: \"217.2 32.6% 17.5%\",\n secondary_foreground: \"210 40% 98%\",\n muted: \"217.2 32.6% 17.5%\",\n muted_foreground: \"215 20.2% 65.1%\",\n accent: \"217.2 32.6% 17.5%\",\n accent_foreground: \"210 40% 98%\",\n destructive: \"0 62.8% 30.6%\",\n destructive_foreground: \"210 40% 98%\",\n border: \"217.2 32.6% 17.5%\",\n input: \"217.2 32.6% 17.5%\",\n ring: \"212.7 26.8% 83.9%\"\n}\n"],"names":["_openBlock","_createElementBlock","_mergeProps","_unref","_renderSlot","_useModel","_createElementVNode","DIALOG_KEY","_createBlock","_Teleport","_withKeys","$emit","i","_hoisted_1","t"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soave/ui",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "soave UI - Composable-First UI Framework for Vue 3 / Nuxt 4",
5
5
  "author": "Arata Ouchi (Original SIN Architecture)",
6
6
  "license": "MIT",