@vuecs/overlays 1.0.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 (177) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +37 -0
  3. package/dist/components/context-menu/ContextMenu.vue.d.ts +63 -0
  4. package/dist/components/context-menu/ContextMenu.vue.d.ts.map +1 -0
  5. package/dist/components/context-menu/ContextMenuCheckboxItem.vue.d.ts +98 -0
  6. package/dist/components/context-menu/ContextMenuCheckboxItem.vue.d.ts.map +1 -0
  7. package/dist/components/context-menu/ContextMenuContent.vue.d.ts +111 -0
  8. package/dist/components/context-menu/ContextMenuContent.vue.d.ts.map +1 -0
  9. package/dist/components/context-menu/ContextMenuGroup.vue.d.ts +47 -0
  10. package/dist/components/context-menu/ContextMenuGroup.vue.d.ts.map +1 -0
  11. package/dist/components/context-menu/ContextMenuItem.vue.d.ts +113 -0
  12. package/dist/components/context-menu/ContextMenuItem.vue.d.ts.map +1 -0
  13. package/dist/components/context-menu/ContextMenuItemIndicator.vue.d.ts +63 -0
  14. package/dist/components/context-menu/ContextMenuItemIndicator.vue.d.ts.map +1 -0
  15. package/dist/components/context-menu/ContextMenuLabel.vue.d.ts +79 -0
  16. package/dist/components/context-menu/ContextMenuLabel.vue.d.ts.map +1 -0
  17. package/dist/components/context-menu/ContextMenuRadioGroup.vue.d.ts +65 -0
  18. package/dist/components/context-menu/ContextMenuRadioGroup.vue.d.ts.map +1 -0
  19. package/dist/components/context-menu/ContextMenuRadioItem.vue.d.ts +96 -0
  20. package/dist/components/context-menu/ContextMenuRadioItem.vue.d.ts.map +1 -0
  21. package/dist/components/context-menu/ContextMenuSeparator.vue.d.ts +47 -0
  22. package/dist/components/context-menu/ContextMenuSeparator.vue.d.ts.map +1 -0
  23. package/dist/components/context-menu/ContextMenuSub.vue.d.ts +47 -0
  24. package/dist/components/context-menu/ContextMenuSub.vue.d.ts.map +1 -0
  25. package/dist/components/context-menu/ContextMenuSubContent.vue.d.ts +127 -0
  26. package/dist/components/context-menu/ContextMenuSubContent.vue.d.ts.map +1 -0
  27. package/dist/components/context-menu/ContextMenuSubTrigger.vue.d.ts +111 -0
  28. package/dist/components/context-menu/ContextMenuSubTrigger.vue.d.ts.map +1 -0
  29. package/dist/components/context-menu/ContextMenuTrigger.vue.d.ts +95 -0
  30. package/dist/components/context-menu/ContextMenuTrigger.vue.d.ts.map +1 -0
  31. package/dist/components/context-menu/index.d.ts +31 -0
  32. package/dist/components/context-menu/index.d.ts.map +1 -0
  33. package/dist/components/context-menu/theme.d.ts +4 -0
  34. package/dist/components/context-menu/theme.d.ts.map +1 -0
  35. package/dist/components/context-menu/types.d.ts +33 -0
  36. package/dist/components/context-menu/types.d.ts.map +1 -0
  37. package/dist/components/dropdown-menu/DropdownMenu.vue.d.ts +79 -0
  38. package/dist/components/dropdown-menu/DropdownMenu.vue.d.ts.map +1 -0
  39. package/dist/components/dropdown-menu/DropdownMenuArrow.vue.d.ts +79 -0
  40. package/dist/components/dropdown-menu/DropdownMenuArrow.vue.d.ts.map +1 -0
  41. package/dist/components/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts +98 -0
  42. package/dist/components/dropdown-menu/DropdownMenuCheckboxItem.vue.d.ts.map +1 -0
  43. package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts +159 -0
  44. package/dist/components/dropdown-menu/DropdownMenuContent.vue.d.ts.map +1 -0
  45. package/dist/components/dropdown-menu/DropdownMenuGroup.vue.d.ts +47 -0
  46. package/dist/components/dropdown-menu/DropdownMenuGroup.vue.d.ts.map +1 -0
  47. package/dist/components/dropdown-menu/DropdownMenuItem.vue.d.ts +113 -0
  48. package/dist/components/dropdown-menu/DropdownMenuItem.vue.d.ts.map +1 -0
  49. package/dist/components/dropdown-menu/DropdownMenuItemIndicator.vue.d.ts +63 -0
  50. package/dist/components/dropdown-menu/DropdownMenuItemIndicator.vue.d.ts.map +1 -0
  51. package/dist/components/dropdown-menu/DropdownMenuLabel.vue.d.ts +79 -0
  52. package/dist/components/dropdown-menu/DropdownMenuLabel.vue.d.ts.map +1 -0
  53. package/dist/components/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts +65 -0
  54. package/dist/components/dropdown-menu/DropdownMenuRadioGroup.vue.d.ts.map +1 -0
  55. package/dist/components/dropdown-menu/DropdownMenuRadioItem.vue.d.ts +96 -0
  56. package/dist/components/dropdown-menu/DropdownMenuRadioItem.vue.d.ts.map +1 -0
  57. package/dist/components/dropdown-menu/DropdownMenuSeparator.vue.d.ts +47 -0
  58. package/dist/components/dropdown-menu/DropdownMenuSeparator.vue.d.ts.map +1 -0
  59. package/dist/components/dropdown-menu/DropdownMenuSub.vue.d.ts +47 -0
  60. package/dist/components/dropdown-menu/DropdownMenuSub.vue.d.ts.map +1 -0
  61. package/dist/components/dropdown-menu/DropdownMenuSubContent.vue.d.ts +127 -0
  62. package/dist/components/dropdown-menu/DropdownMenuSubContent.vue.d.ts.map +1 -0
  63. package/dist/components/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts +111 -0
  64. package/dist/components/dropdown-menu/DropdownMenuSubTrigger.vue.d.ts.map +1 -0
  65. package/dist/components/dropdown-menu/DropdownMenuTrigger.vue.d.ts +79 -0
  66. package/dist/components/dropdown-menu/DropdownMenuTrigger.vue.d.ts.map +1 -0
  67. package/dist/components/dropdown-menu/index.d.ts +33 -0
  68. package/dist/components/dropdown-menu/index.d.ts.map +1 -0
  69. package/dist/components/dropdown-menu/theme.d.ts +4 -0
  70. package/dist/components/dropdown-menu/theme.d.ts.map +1 -0
  71. package/dist/components/dropdown-menu/types.d.ts +35 -0
  72. package/dist/components/dropdown-menu/types.d.ts.map +1 -0
  73. package/dist/components/hover-card/HoverCard.vue.d.ts +79 -0
  74. package/dist/components/hover-card/HoverCard.vue.d.ts.map +1 -0
  75. package/dist/components/hover-card/HoverCardArrow.vue.d.ts +79 -0
  76. package/dist/components/hover-card/HoverCardArrow.vue.d.ts.map +1 -0
  77. package/dist/components/hover-card/HoverCardContent.vue.d.ts +143 -0
  78. package/dist/components/hover-card/HoverCardContent.vue.d.ts.map +1 -0
  79. package/dist/components/hover-card/HoverCardTrigger.vue.d.ts +79 -0
  80. package/dist/components/hover-card/HoverCardTrigger.vue.d.ts.map +1 -0
  81. package/dist/components/hover-card/index.d.ts +11 -0
  82. package/dist/components/hover-card/index.d.ts.map +1 -0
  83. package/dist/components/hover-card/theme.d.ts +4 -0
  84. package/dist/components/hover-card/theme.d.ts.map +1 -0
  85. package/dist/components/hover-card/types.d.ts +15 -0
  86. package/dist/components/hover-card/types.d.ts.map +1 -0
  87. package/dist/components/index.d.ts +9 -0
  88. package/dist/components/index.d.ts.map +1 -0
  89. package/dist/components/modal/Modal.vue.d.ts +63 -0
  90. package/dist/components/modal/Modal.vue.d.ts.map +1 -0
  91. package/dist/components/modal/ModalClose.vue.d.ts +116 -0
  92. package/dist/components/modal/ModalClose.vue.d.ts.map +1 -0
  93. package/dist/components/modal/ModalContent.vue.d.ts +81 -0
  94. package/dist/components/modal/ModalContent.vue.d.ts.map +1 -0
  95. package/dist/components/modal/ModalDescription.vue.d.ts +47 -0
  96. package/dist/components/modal/ModalDescription.vue.d.ts.map +1 -0
  97. package/dist/components/modal/ModalTitle.vue.d.ts +47 -0
  98. package/dist/components/modal/ModalTitle.vue.d.ts.map +1 -0
  99. package/dist/components/modal/ModalTrigger.vue.d.ts +79 -0
  100. package/dist/components/modal/ModalTrigger.vue.d.ts.map +1 -0
  101. package/dist/components/modal/index.d.ts +16 -0
  102. package/dist/components/modal/index.d.ts.map +1 -0
  103. package/dist/components/modal/theme.d.ts +13 -0
  104. package/dist/components/modal/theme.d.ts.map +1 -0
  105. package/dist/components/modal/types.d.ts +38 -0
  106. package/dist/components/modal/types.d.ts.map +1 -0
  107. package/dist/components/modal/use-modal.d.ts +54 -0
  108. package/dist/components/modal/use-modal.d.ts.map +1 -0
  109. package/dist/components/popover/Popover.vue.d.ts +63 -0
  110. package/dist/components/popover/Popover.vue.d.ts.map +1 -0
  111. package/dist/components/popover/PopoverArrow.vue.d.ts +79 -0
  112. package/dist/components/popover/PopoverArrow.vue.d.ts.map +1 -0
  113. package/dist/components/popover/PopoverClose.vue.d.ts +116 -0
  114. package/dist/components/popover/PopoverClose.vue.d.ts.map +1 -0
  115. package/dist/components/popover/PopoverContent.vue.d.ts +143 -0
  116. package/dist/components/popover/PopoverContent.vue.d.ts.map +1 -0
  117. package/dist/components/popover/PopoverTrigger.vue.d.ts +79 -0
  118. package/dist/components/popover/PopoverTrigger.vue.d.ts.map +1 -0
  119. package/dist/components/popover/index.d.ts +13 -0
  120. package/dist/components/popover/index.d.ts.map +1 -0
  121. package/dist/components/popover/theme.d.ts +4 -0
  122. package/dist/components/popover/theme.d.ts.map +1 -0
  123. package/dist/components/popover/types.d.ts +25 -0
  124. package/dist/components/popover/types.d.ts.map +1 -0
  125. package/dist/components/presence/Presence.vue.d.ts +39 -0
  126. package/dist/components/presence/Presence.vue.d.ts.map +1 -0
  127. package/dist/components/presence/index.d.ts +3 -0
  128. package/dist/components/presence/index.d.ts.map +1 -0
  129. package/dist/components/presence/types.d.ts +20 -0
  130. package/dist/components/presence/types.d.ts.map +1 -0
  131. package/dist/components/toast/Toast.vue.d.ts +225 -0
  132. package/dist/components/toast/Toast.vue.d.ts.map +1 -0
  133. package/dist/components/toast/ToastAction.vue.d.ts +99 -0
  134. package/dist/components/toast/ToastAction.vue.d.ts.map +1 -0
  135. package/dist/components/toast/ToastClose.vue.d.ts +116 -0
  136. package/dist/components/toast/ToastClose.vue.d.ts.map +1 -0
  137. package/dist/components/toast/ToastDescription.vue.d.ts +90 -0
  138. package/dist/components/toast/ToastDescription.vue.d.ts.map +1 -0
  139. package/dist/components/toast/ToastProvider.vue.d.ts +85 -0
  140. package/dist/components/toast/ToastProvider.vue.d.ts.map +1 -0
  141. package/dist/components/toast/ToastTitle.vue.d.ts +90 -0
  142. package/dist/components/toast/ToastTitle.vue.d.ts.map +1 -0
  143. package/dist/components/toast/Toaster.vue.d.ts +135 -0
  144. package/dist/components/toast/Toaster.vue.d.ts.map +1 -0
  145. package/dist/components/toast/index.d.ts +18 -0
  146. package/dist/components/toast/index.d.ts.map +1 -0
  147. package/dist/components/toast/theme.d.ts +8 -0
  148. package/dist/components/toast/theme.d.ts.map +1 -0
  149. package/dist/components/toast/types.d.ts +148 -0
  150. package/dist/components/toast/types.d.ts.map +1 -0
  151. package/dist/components/toast/use-toast.d.ts +41 -0
  152. package/dist/components/toast/use-toast.d.ts.map +1 -0
  153. package/dist/components/tooltip/Tooltip.vue.d.ts +95 -0
  154. package/dist/components/tooltip/Tooltip.vue.d.ts.map +1 -0
  155. package/dist/components/tooltip/TooltipArrow.vue.d.ts +79 -0
  156. package/dist/components/tooltip/TooltipArrow.vue.d.ts.map +1 -0
  157. package/dist/components/tooltip/TooltipContent.vue.d.ts +143 -0
  158. package/dist/components/tooltip/TooltipContent.vue.d.ts.map +1 -0
  159. package/dist/components/tooltip/TooltipProvider.vue.d.ts +99 -0
  160. package/dist/components/tooltip/TooltipProvider.vue.d.ts.map +1 -0
  161. package/dist/components/tooltip/TooltipTrigger.vue.d.ts +79 -0
  162. package/dist/components/tooltip/TooltipTrigger.vue.d.ts.map +1 -0
  163. package/dist/components/tooltip/index.d.ts +13 -0
  164. package/dist/components/tooltip/index.d.ts.map +1 -0
  165. package/dist/components/tooltip/theme.d.ts +4 -0
  166. package/dist/components/tooltip/theme.d.ts.map +1 -0
  167. package/dist/components/tooltip/types.d.ts +15 -0
  168. package/dist/components/tooltip/types.d.ts.map +1 -0
  169. package/dist/config.d.ts +25 -0
  170. package/dist/config.d.ts.map +1 -0
  171. package/dist/index.d.ts +11 -0
  172. package/dist/index.d.ts.map +1 -0
  173. package/dist/index.mjs +2620 -0
  174. package/dist/index.mjs.map +1 -0
  175. package/dist/vue.d.ts +119 -0
  176. package/dist/vue.d.ts.map +1 -0
  177. package/package.json +65 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/config.ts","../src/components/context-menu/ContextMenu.vue","../src/components/context-menu/ContextMenu.vue","../src/components/context-menu/theme.ts","../src/components/context-menu/ContextMenuTrigger.vue","../src/components/context-menu/ContextMenuTrigger.vue","../src/components/context-menu/ContextMenuContent.vue","../src/components/context-menu/ContextMenuContent.vue","../src/components/context-menu/ContextMenuItem.vue","../src/components/context-menu/ContextMenuItem.vue","../src/components/context-menu/ContextMenuCheckboxItem.vue","../src/components/context-menu/ContextMenuCheckboxItem.vue","../src/components/context-menu/ContextMenuRadioGroup.vue","../src/components/context-menu/ContextMenuRadioGroup.vue","../src/components/context-menu/ContextMenuRadioItem.vue","../src/components/context-menu/ContextMenuRadioItem.vue","../src/components/context-menu/ContextMenuItemIndicator.vue","../src/components/context-menu/ContextMenuItemIndicator.vue","../src/components/context-menu/ContextMenuLabel.vue","../src/components/context-menu/ContextMenuLabel.vue","../src/components/context-menu/ContextMenuSeparator.vue","../src/components/context-menu/ContextMenuSeparator.vue","../src/components/context-menu/ContextMenuGroup.vue","../src/components/context-menu/ContextMenuGroup.vue","../src/components/context-menu/ContextMenuSub.vue","../src/components/context-menu/ContextMenuSub.vue","../src/components/context-menu/ContextMenuSubTrigger.vue","../src/components/context-menu/ContextMenuSubTrigger.vue","../src/components/context-menu/ContextMenuSubContent.vue","../src/components/context-menu/ContextMenuSubContent.vue","../src/components/dropdown-menu/DropdownMenu.vue","../src/components/dropdown-menu/DropdownMenu.vue","../src/components/dropdown-menu/theme.ts","../src/components/dropdown-menu/DropdownMenuTrigger.vue","../src/components/dropdown-menu/DropdownMenuTrigger.vue","../src/components/dropdown-menu/DropdownMenuContent.vue","../src/components/dropdown-menu/DropdownMenuContent.vue","../src/components/dropdown-menu/DropdownMenuItem.vue","../src/components/dropdown-menu/DropdownMenuItem.vue","../src/components/dropdown-menu/DropdownMenuCheckboxItem.vue","../src/components/dropdown-menu/DropdownMenuCheckboxItem.vue","../src/components/dropdown-menu/DropdownMenuRadioGroup.vue","../src/components/dropdown-menu/DropdownMenuRadioGroup.vue","../src/components/dropdown-menu/DropdownMenuRadioItem.vue","../src/components/dropdown-menu/DropdownMenuRadioItem.vue","../src/components/dropdown-menu/DropdownMenuItemIndicator.vue","../src/components/dropdown-menu/DropdownMenuItemIndicator.vue","../src/components/dropdown-menu/DropdownMenuLabel.vue","../src/components/dropdown-menu/DropdownMenuLabel.vue","../src/components/dropdown-menu/DropdownMenuSeparator.vue","../src/components/dropdown-menu/DropdownMenuSeparator.vue","../src/components/dropdown-menu/DropdownMenuGroup.vue","../src/components/dropdown-menu/DropdownMenuGroup.vue","../src/components/dropdown-menu/DropdownMenuSub.vue","../src/components/dropdown-menu/DropdownMenuSub.vue","../src/components/dropdown-menu/DropdownMenuSubTrigger.vue","../src/components/dropdown-menu/DropdownMenuSubTrigger.vue","../src/components/dropdown-menu/DropdownMenuSubContent.vue","../src/components/dropdown-menu/DropdownMenuSubContent.vue","../src/components/dropdown-menu/DropdownMenuArrow.vue","../src/components/dropdown-menu/DropdownMenuArrow.vue","../src/components/hover-card/HoverCard.vue","../src/components/hover-card/HoverCard.vue","../src/components/hover-card/theme.ts","../src/components/hover-card/HoverCardTrigger.vue","../src/components/hover-card/HoverCardTrigger.vue","../src/components/hover-card/HoverCardContent.vue","../src/components/hover-card/HoverCardContent.vue","../src/components/hover-card/HoverCardArrow.vue","../src/components/hover-card/HoverCardArrow.vue","../src/components/modal/Modal.vue","../src/components/modal/Modal.vue","../src/components/modal/theme.ts","../src/components/modal/ModalTrigger.vue","../src/components/modal/ModalTrigger.vue","../src/components/modal/ModalContent.vue","../src/components/modal/ModalContent.vue","../src/components/modal/ModalTitle.vue","../src/components/modal/ModalTitle.vue","../src/components/modal/ModalDescription.vue","../src/components/modal/ModalDescription.vue","../src/components/modal/ModalClose.vue","../src/components/modal/ModalClose.vue","../src/components/modal/use-modal.ts","../src/components/popover/Popover.vue","../src/components/popover/Popover.vue","../src/components/popover/theme.ts","../src/components/popover/PopoverTrigger.vue","../src/components/popover/PopoverTrigger.vue","../src/components/popover/PopoverContent.vue","../src/components/popover/PopoverContent.vue","../src/components/popover/PopoverArrow.vue","../src/components/popover/PopoverArrow.vue","../src/components/popover/PopoverClose.vue","../src/components/popover/PopoverClose.vue","../src/components/presence/Presence.vue","../src/components/presence/Presence.vue","../src/components/toast/theme.ts","../src/components/toast/Toast.vue","../src/components/toast/Toast.vue","../src/components/toast/ToastProvider.vue","../src/components/toast/ToastProvider.vue","../src/components/toast/ToastTitle.vue","../src/components/toast/ToastTitle.vue","../src/components/toast/ToastDescription.vue","../src/components/toast/ToastDescription.vue","../src/components/toast/ToastAction.vue","../src/components/toast/ToastAction.vue","../src/components/toast/ToastClose.vue","../src/components/toast/ToastClose.vue","../src/components/toast/use-toast.ts","../src/components/toast/Toaster.vue","../src/components/toast/Toaster.vue","../src/components/tooltip/TooltipProvider.vue","../src/components/tooltip/TooltipProvider.vue","../src/components/tooltip/Tooltip.vue","../src/components/tooltip/Tooltip.vue","../src/components/tooltip/theme.ts","../src/components/tooltip/TooltipTrigger.vue","../src/components/tooltip/TooltipTrigger.vue","../src/components/tooltip/TooltipContent.vue","../src/components/tooltip/TooltipContent.vue","../src/components/tooltip/TooltipArrow.vue","../src/components/tooltip/TooltipArrow.vue","../src/index.ts"],"sourcesContent":["import type { ConfigManager } from '@vuecs/core';\n\n/**\n * Overlay-specific config keys. Augments the cross-cutting `Config`\n * interface in `@vuecs/core`. Side-effect imported by this package's\n * `index.ts` so the augmentation is loaded whenever consumers depend\n * on `@vuecs/overlays`.\n */\ndeclare module '@vuecs/core' {\n interface Config {\n /**\n * Selector or element that should receive scroll-lock when an\n * overlay opens (modal/popover/dropdown in modal mode).\n * Defaults to `'body'` (registered by overlays' install).\n */\n scrollLockTarget?: string | HTMLElement;\n }\n}\n\n/**\n * Register overlay-specific defaults onto a `ConfigManager` instance.\n * Called from `@vuecs/overlays`'s `install(app)` after\n * `installConfigManager`. Consumer-supplied config wins; this only fills\n * in keys the consumer didn't pass.\n */\nexport function registerOverlayConfigDefaults(manager: ConfigManager): void {\n manager.withDefaults({ scrollLockTarget: 'body' });\n}\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst contextMenuProps = {\n /** Modal mode — locks focus inside the menu and blocks outside interaction. */\n modal: { type: Boolean, default: true },\n /** Delay (ms) from press-down until the menu opens (touch / press-and-hold). */\n pressOpenDelay: { type: Number, default: 700 },\n /** Reading direction for the menu content. Falls through to `<VCConfigProvider>` / browser default when undefined. */\n dir: { type: String as PropType<'ltr' | 'rtl' | undefined>, default: undefined },\n};\n\nexport type ContextMenuProps = ExtractPublicPropTypes<typeof contextMenuProps>;\n\nexport default defineComponent({\n name: 'VCContextMenu',\n inheritAttrs: false,\n props: contextMenuProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n ContextMenuRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst contextMenuProps = {\n /** Modal mode — locks focus inside the menu and blocks outside interaction. */\n modal: { type: Boolean, default: true },\n /** Delay (ms) from press-down until the menu opens (touch / press-and-hold). */\n pressOpenDelay: { type: Number, default: 700 },\n /** Reading direction for the menu content. Falls through to `<VCConfigProvider>` / browser default when undefined. */\n dir: { type: String as PropType<'ltr' | 'rtl' | undefined>, default: undefined },\n};\n\nexport type ContextMenuProps = ExtractPublicPropTypes<typeof contextMenuProps>;\n\nexport default defineComponent({\n name: 'VCContextMenu',\n inheritAttrs: false,\n props: contextMenuProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n ContextMenuRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","import type { ComponentThemeDefinition } from '@vuecs/core';\nimport type { ContextMenuThemeClasses } from './types';\n\nexport const contextMenuThemeDefaults: ComponentThemeDefinition<ContextMenuThemeClasses> = {\n classes: {\n content: 'vc-context-menu-content',\n trigger: 'vc-context-menu-trigger',\n item: 'vc-context-menu-item',\n checkboxItem: 'vc-context-menu-checkbox-item',\n radioItem: 'vc-context-menu-radio-item',\n radioGroup: 'vc-context-menu-radio-group',\n itemIndicator: 'vc-context-menu-item-indicator',\n label: 'vc-context-menu-label',\n separator: 'vc-context-menu-separator',\n group: 'vc-context-menu-group',\n subTrigger: 'vc-context-menu-sub-trigger',\n subContent: 'vc-context-menu-sub-content',\n },\n};\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'span'`. */\n as: { type: String, default: 'span' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** When true, the trigger does not open the menu on right-click / press. */\n disabled: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuTriggerProps = ExtractPublicPropTypes<typeof contextMenuTriggerProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuTrigger',\n props: contextMenuTriggerProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuTrigger,\n {\n as: props.as,\n asChild: props.asChild,\n disabled: props.disabled,\n class: theme.value.trigger || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'span'`. */\n as: { type: String, default: 'span' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** When true, the trigger does not open the menu on right-click / press. */\n disabled: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuTriggerProps = ExtractPublicPropTypes<typeof contextMenuTriggerProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuTrigger',\n props: contextMenuTriggerProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuTrigger,\n {\n as: props.as,\n asChild: props.asChild,\n disabled: props.disabled,\n class: theme.value.trigger || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuContent, ContextMenuPortal } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Loop arrow-key focus from last item back to first. Vuecs convention: `true` (Reka default: `false`). */\n loop: { type: Boolean, default: true },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the menu to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuContentProps = ExtractPublicPropTypes<typeof contextMenuContentProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuContent',\n inheritAttrs: false,\n props: contextMenuContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n\n const renderContent = () => h(\n ContextMenuContent,\n mergeProps(attrs, {\n loop: props.loop,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n class: theme.value.content || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(ContextMenuPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuContent, ContextMenuPortal } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Loop arrow-key focus from last item back to first. Vuecs convention: `true` (Reka default: `false`). */\n loop: { type: Boolean, default: true },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the menu to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuContentProps = ExtractPublicPropTypes<typeof contextMenuContentProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuContent',\n inheritAttrs: false,\n props: contextMenuContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n\n const renderContent = () => h(\n ContextMenuContent,\n mergeProps(attrs, {\n loop: props.loop,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n class: theme.value.content || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(ContextMenuPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuItemProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuItemProps = ExtractPublicPropTypes<typeof contextMenuItemProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuItem',\n inheritAttrs: false,\n props: contextMenuItemProps,\n emits: ['select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuItem,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n disabled: props.disabled,\n textValue: props.textValue,\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.item || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuItemProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuItemProps = ExtractPublicPropTypes<typeof contextMenuItemProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuItem',\n inheritAttrs: false,\n props: contextMenuItemProps,\n emits: ['select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuItem,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n disabled: props.disabled,\n textValue: props.textValue,\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.item || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuCheckboxItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuCheckboxItemProps = {\n /** Checked state. Use `'indeterminate'` for tri-state. */\n modelValue: { type: [Boolean, String] as PropType<boolean | 'indeterminate'>, default: false },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuCheckboxItemProps = ExtractPublicPropTypes<typeof contextMenuCheckboxItemProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuCheckboxItem',\n inheritAttrs: false,\n props: contextMenuCheckboxItemProps,\n emits: ['update:modelValue', 'select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuCheckboxItem,\n mergeProps(attrs, {\n modelValue: props.modelValue,\n disabled: props.disabled,\n textValue: props.textValue,\n 'onUpdate:modelValue': (value: boolean | 'indeterminate') => emit('update:modelValue', value),\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.checkboxItem || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuCheckboxItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuCheckboxItemProps = {\n /** Checked state. Use `'indeterminate'` for tri-state. */\n modelValue: { type: [Boolean, String] as PropType<boolean | 'indeterminate'>, default: false },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuCheckboxItemProps = ExtractPublicPropTypes<typeof contextMenuCheckboxItemProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuCheckboxItem',\n inheritAttrs: false,\n props: contextMenuCheckboxItemProps,\n emits: ['update:modelValue', 'select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuCheckboxItem,\n mergeProps(attrs, {\n modelValue: props.modelValue,\n disabled: props.disabled,\n textValue: props.textValue,\n 'onUpdate:modelValue': (value: boolean | 'indeterminate') => emit('update:modelValue', value),\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.checkboxItem || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuRadioGroup } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuRadioGroupProps = {\n /** Selected value within the group. Bind via `v-model`. */\n modelValue: { type: String, default: '' },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuRadioGroupProps = ExtractPublicPropTypes<typeof contextMenuRadioGroupProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuRadioGroup',\n inheritAttrs: false,\n props: contextMenuRadioGroupProps,\n emits: ['update:modelValue'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuRadioGroup,\n mergeProps(attrs, {\n modelValue: props.modelValue,\n 'onUpdate:modelValue': (value: string) => emit('update:modelValue', value),\n class: theme.value.radioGroup || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuRadioGroup } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuRadioGroupProps = {\n /** Selected value within the group. Bind via `v-model`. */\n modelValue: { type: String, default: '' },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuRadioGroupProps = ExtractPublicPropTypes<typeof contextMenuRadioGroupProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuRadioGroup',\n inheritAttrs: false,\n props: contextMenuRadioGroupProps,\n emits: ['update:modelValue'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuRadioGroup,\n mergeProps(attrs, {\n modelValue: props.modelValue,\n 'onUpdate:modelValue': (value: string) => emit('update:modelValue', value),\n class: theme.value.radioGroup || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuRadioItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuRadioItemProps = {\n /** Identifier matched against the group's `modelValue`. */\n value: { type: String, required: true },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuRadioItemProps = ExtractPublicPropTypes<typeof contextMenuRadioItemProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuRadioItem',\n inheritAttrs: false,\n props: contextMenuRadioItemProps,\n emits: ['select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuRadioItem,\n {\n ...mergeProps(attrs, {\n disabled: props.disabled,\n textValue: props.textValue,\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.radioItem || undefined,\n }),\n value: props.value,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuRadioItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuRadioItemProps = {\n /** Identifier matched against the group's `modelValue`. */\n value: { type: String, required: true },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuRadioItemProps = ExtractPublicPropTypes<typeof contextMenuRadioItemProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuRadioItem',\n inheritAttrs: false,\n props: contextMenuRadioItemProps,\n emits: ['select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuRadioItem,\n {\n ...mergeProps(attrs, {\n disabled: props.disabled,\n textValue: props.textValue,\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.radioItem || undefined,\n }),\n value: props.value,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuItemIndicator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuItemIndicatorProps = {\n /** Force the indicator to mount even when its parent is unchecked (useful for animated transitions). */\n forceMount: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuItemIndicatorProps = ExtractPublicPropTypes<typeof contextMenuItemIndicatorProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuItemIndicator',\n props: contextMenuItemIndicatorProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuItemIndicator,\n {\n forceMount: props.forceMount,\n class: theme.value.itemIndicator || undefined,\n },\n { default: () => slots.default?.() ?? '✓' },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuItemIndicator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuItemIndicatorProps = {\n /** Force the indicator to mount even when its parent is unchecked (useful for animated transitions). */\n forceMount: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuItemIndicatorProps = ExtractPublicPropTypes<typeof contextMenuItemIndicatorProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuItemIndicator',\n props: contextMenuItemIndicatorProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuItemIndicator,\n {\n forceMount: props.forceMount,\n class: theme.value.itemIndicator || undefined,\n },\n { default: () => slots.default?.() ?? '✓' },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuLabel } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuLabelProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuLabelProps = ExtractPublicPropTypes<typeof contextMenuLabelProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuLabel',\n props: contextMenuLabelProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuLabel,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.label || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuLabel } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuLabelProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuLabelProps = ExtractPublicPropTypes<typeof contextMenuLabelProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuLabel',\n props: contextMenuLabelProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuLabel,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.label || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuSeparator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuSeparatorProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuSeparatorProps = ExtractPublicPropTypes<typeof contextMenuSeparatorProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuSeparator',\n props: contextMenuSeparatorProps,\n setup(props) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(ContextMenuSeparator, { class: theme.value.separator || undefined });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuSeparator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuSeparatorProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuSeparatorProps = ExtractPublicPropTypes<typeof contextMenuSeparatorProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuSeparator',\n props: contextMenuSeparatorProps,\n setup(props) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(ContextMenuSeparator, { class: theme.value.separator || undefined });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuGroup } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuGroupProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuGroupProps = ExtractPublicPropTypes<typeof contextMenuGroupProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuGroup',\n props: contextMenuGroupProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuGroup,\n { class: theme.value.group || undefined },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuGroup } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuGroupProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuGroupProps = ExtractPublicPropTypes<typeof contextMenuGroupProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuGroup',\n props: contextMenuGroupProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuGroup,\n { class: theme.value.group || undefined },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuSub } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst contextMenuSubProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n};\n\nexport type ContextMenuSubProps = ExtractPublicPropTypes<typeof contextMenuSubProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuSub',\n inheritAttrs: false,\n props: contextMenuSubProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n ContextMenuSub,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuSub } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst contextMenuSubProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n};\n\nexport type ContextMenuSubProps = ExtractPublicPropTypes<typeof contextMenuSubProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuSub',\n inheritAttrs: false,\n props: contextMenuSubProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n ContextMenuSub,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuSubTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuSubTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** When true, prevents user interaction with the sub-trigger. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuSubTriggerProps = ExtractPublicPropTypes<typeof contextMenuSubTriggerProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuSubTrigger',\n inheritAttrs: false,\n props: contextMenuSubTriggerProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuSubTrigger,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n disabled: props.disabled,\n textValue: props.textValue,\n class: theme.value.subTrigger || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuSubTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuSubTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** When true, prevents user interaction with the sub-trigger. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuSubTriggerProps = ExtractPublicPropTypes<typeof contextMenuSubTriggerProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuSubTrigger',\n inheritAttrs: false,\n props: contextMenuSubTriggerProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n return () => h(\n ContextMenuSubTrigger,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n disabled: props.disabled,\n textValue: props.textValue,\n class: theme.value.subTrigger || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuPortal, ContextMenuSubContent } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuSubContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Distance in pixels between sub-trigger and sub-menu. */\n sideOffset: { type: Number, default: 0 },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the sub-menu to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Loop arrow-key focus from last item back to first. Vuecs convention: `true` (Reka default: `false`). */\n loop: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuSubContentProps = ExtractPublicPropTypes<typeof contextMenuSubContentProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuSubContent',\n inheritAttrs: false,\n props: contextMenuSubContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n\n const renderContent = () => h(\n ContextMenuSubContent,\n mergeProps(attrs, {\n sideOffset: props.sideOffset,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n loop: props.loop,\n class: theme.value.subContent || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(ContextMenuPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ContextMenuPortal, ContextMenuSubContent } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { contextMenuThemeDefaults } from './theme';\nimport type { ContextMenuThemeClasses } from './types';\n\nconst contextMenuSubContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Distance in pixels between sub-trigger and sub-menu. */\n sideOffset: { type: Number, default: 0 },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the sub-menu to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Loop arrow-key focus from last item back to first. Vuecs convention: `true` (Reka default: `false`). */\n loop: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ContextMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ContextMenuSubContentProps = ExtractPublicPropTypes<typeof contextMenuSubContentProps>;\n\nexport default defineComponent({\n name: 'VCContextMenuSubContent',\n inheritAttrs: false,\n props: contextMenuSubContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('contextMenu', props, contextMenuThemeDefaults);\n\n const renderContent = () => h(\n ContextMenuSubContent,\n mergeProps(attrs, {\n sideOffset: props.sideOffset,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n loop: props.loop,\n class: theme.value.subContent || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(ContextMenuPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst dropdownMenuProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n /** Modal mode — locks focus inside the menu and blocks outside interaction. */\n modal: { type: Boolean, default: true },\n /** Reading direction for the menu content. Falls through to `<VCConfigProvider>` / browser default when undefined. */\n dir: { type: String as PropType<'ltr' | 'rtl' | undefined>, default: undefined },\n};\n\nexport type DropdownMenuProps = ExtractPublicPropTypes<typeof dropdownMenuProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenu',\n inheritAttrs: false,\n props: dropdownMenuProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n DropdownMenuRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst dropdownMenuProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n /** Modal mode — locks focus inside the menu and blocks outside interaction. */\n modal: { type: Boolean, default: true },\n /** Reading direction for the menu content. Falls through to `<VCConfigProvider>` / browser default when undefined. */\n dir: { type: String as PropType<'ltr' | 'rtl' | undefined>, default: undefined },\n};\n\nexport type DropdownMenuProps = ExtractPublicPropTypes<typeof dropdownMenuProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenu',\n inheritAttrs: false,\n props: dropdownMenuProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n DropdownMenuRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","import type { ComponentThemeDefinition } from '@vuecs/core';\nimport type { DropdownMenuThemeClasses } from './types';\n\nexport const dropdownMenuThemeDefaults: ComponentThemeDefinition<DropdownMenuThemeClasses> = {\n classes: {\n content: 'vc-dropdown-content',\n trigger: 'vc-dropdown-trigger',\n item: 'vc-dropdown-item',\n checkboxItem: 'vc-dropdown-checkbox-item',\n radioItem: 'vc-dropdown-radio-item',\n radioGroup: 'vc-dropdown-radio-group',\n itemIndicator: 'vc-dropdown-item-indicator',\n label: 'vc-dropdown-label',\n separator: 'vc-dropdown-separator',\n group: 'vc-dropdown-group',\n subTrigger: 'vc-dropdown-sub-trigger',\n subContent: 'vc-dropdown-sub-content',\n arrow: 'vc-dropdown-arrow',\n },\n};\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuTriggerProps = ExtractPublicPropTypes<typeof dropdownMenuTriggerProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuTrigger',\n props: dropdownMenuTriggerProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuTrigger,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuTriggerProps = ExtractPublicPropTypes<typeof dropdownMenuTriggerProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuTrigger',\n props: dropdownMenuTriggerProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuTrigger,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuContent, DropdownMenuPortal } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Preferred side relative to the trigger. */\n side: { type: String as PropType<'top' | 'right' | 'bottom' | 'left'>, default: 'bottom' },\n /** Distance in pixels between trigger and menu. Vuecs convention: 4 (Reka default: 0). */\n sideOffset: { type: Number, default: 4 },\n /** Alignment along the chosen side. Vuecs convention: `'start'` (Reka default: `'center'`) so menus left-align under their trigger. */\n align: { type: String as PropType<'start' | 'center' | 'end'>, default: 'start' },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the menu to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Loop arrow-key focus from last item back to first. Vuecs convention: `true` (Reka default: `false`). */\n loop: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuContentProps = ExtractPublicPropTypes<typeof dropdownMenuContentProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuContent',\n inheritAttrs: false,\n props: dropdownMenuContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n\n const renderContent = () => h(\n DropdownMenuContent,\n mergeProps(attrs, {\n side: props.side,\n sideOffset: props.sideOffset,\n align: props.align,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n loop: props.loop,\n class: theme.value.content || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(DropdownMenuPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuContent, DropdownMenuPortal } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Preferred side relative to the trigger. */\n side: { type: String as PropType<'top' | 'right' | 'bottom' | 'left'>, default: 'bottom' },\n /** Distance in pixels between trigger and menu. Vuecs convention: 4 (Reka default: 0). */\n sideOffset: { type: Number, default: 4 },\n /** Alignment along the chosen side. Vuecs convention: `'start'` (Reka default: `'center'`) so menus left-align under their trigger. */\n align: { type: String as PropType<'start' | 'center' | 'end'>, default: 'start' },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the menu to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Loop arrow-key focus from last item back to first. Vuecs convention: `true` (Reka default: `false`). */\n loop: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuContentProps = ExtractPublicPropTypes<typeof dropdownMenuContentProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuContent',\n inheritAttrs: false,\n props: dropdownMenuContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n\n const renderContent = () => h(\n DropdownMenuContent,\n mergeProps(attrs, {\n side: props.side,\n sideOffset: props.sideOffset,\n align: props.align,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n loop: props.loop,\n class: theme.value.content || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(DropdownMenuPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuItemProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuItemProps = ExtractPublicPropTypes<typeof dropdownMenuItemProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuItem',\n inheritAttrs: false,\n props: dropdownMenuItemProps,\n emits: ['select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuItem,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n disabled: props.disabled,\n textValue: props.textValue,\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.item || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuItemProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuItemProps = ExtractPublicPropTypes<typeof dropdownMenuItemProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuItem',\n inheritAttrs: false,\n props: dropdownMenuItemProps,\n emits: ['select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuItem,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n disabled: props.disabled,\n textValue: props.textValue,\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.item || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuCheckboxItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuCheckboxItemProps = {\n /** Checked state. Use `'indeterminate'` for tri-state. */\n modelValue: { type: [Boolean, String] as PropType<boolean | 'indeterminate'>, default: false },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuCheckboxItemProps = ExtractPublicPropTypes<typeof dropdownMenuCheckboxItemProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuCheckboxItem',\n inheritAttrs: false,\n props: dropdownMenuCheckboxItemProps,\n emits: ['update:modelValue', 'select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuCheckboxItem,\n mergeProps(attrs, {\n modelValue: props.modelValue,\n disabled: props.disabled,\n textValue: props.textValue,\n 'onUpdate:modelValue': (value: boolean | 'indeterminate') => emit('update:modelValue', value),\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.checkboxItem || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuCheckboxItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuCheckboxItemProps = {\n /** Checked state. Use `'indeterminate'` for tri-state. */\n modelValue: { type: [Boolean, String] as PropType<boolean | 'indeterminate'>, default: false },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuCheckboxItemProps = ExtractPublicPropTypes<typeof dropdownMenuCheckboxItemProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuCheckboxItem',\n inheritAttrs: false,\n props: dropdownMenuCheckboxItemProps,\n emits: ['update:modelValue', 'select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuCheckboxItem,\n mergeProps(attrs, {\n modelValue: props.modelValue,\n disabled: props.disabled,\n textValue: props.textValue,\n 'onUpdate:modelValue': (value: boolean | 'indeterminate') => emit('update:modelValue', value),\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.checkboxItem || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuRadioGroup } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuRadioGroupProps = {\n /** Selected value within the group. Bind via `v-model`. */\n modelValue: { type: String, default: '' },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuRadioGroupProps = ExtractPublicPropTypes<typeof dropdownMenuRadioGroupProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuRadioGroup',\n inheritAttrs: false,\n props: dropdownMenuRadioGroupProps,\n emits: ['update:modelValue'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuRadioGroup,\n mergeProps(attrs, {\n modelValue: props.modelValue,\n 'onUpdate:modelValue': (value: string) => emit('update:modelValue', value),\n class: theme.value.radioGroup || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuRadioGroup } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuRadioGroupProps = {\n /** Selected value within the group. Bind via `v-model`. */\n modelValue: { type: String, default: '' },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuRadioGroupProps = ExtractPublicPropTypes<typeof dropdownMenuRadioGroupProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuRadioGroup',\n inheritAttrs: false,\n props: dropdownMenuRadioGroupProps,\n emits: ['update:modelValue'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuRadioGroup,\n mergeProps(attrs, {\n modelValue: props.modelValue,\n 'onUpdate:modelValue': (value: string) => emit('update:modelValue', value),\n class: theme.value.radioGroup || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuRadioItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuRadioItemProps = {\n /** Identifier matched against the group's `modelValue`. */\n value: { type: String, required: true },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuRadioItemProps = ExtractPublicPropTypes<typeof dropdownMenuRadioItemProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuRadioItem',\n inheritAttrs: false,\n props: dropdownMenuRadioItemProps,\n emits: ['select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuRadioItem,\n {\n ...mergeProps(attrs, {\n disabled: props.disabled,\n textValue: props.textValue,\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.radioItem || undefined,\n }),\n value: props.value,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuRadioItem } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuRadioItemProps = {\n /** Identifier matched against the group's `modelValue`. */\n value: { type: String, required: true },\n /** When true, prevents user interaction with the item. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuRadioItemProps = ExtractPublicPropTypes<typeof dropdownMenuRadioItemProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuRadioItem',\n inheritAttrs: false,\n props: dropdownMenuRadioItemProps,\n emits: ['select'],\n setup(props, {\n slots,\n emit,\n attrs,\n }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuRadioItem,\n {\n ...mergeProps(attrs, {\n disabled: props.disabled,\n textValue: props.textValue,\n onSelect: (event: Event) => emit('select', event),\n class: theme.value.radioItem || undefined,\n }),\n value: props.value,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuItemIndicator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuItemIndicatorProps = {\n /** Force the indicator to mount even when its parent is unchecked (useful for animated transitions). */\n forceMount: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuItemIndicatorProps = ExtractPublicPropTypes<typeof dropdownMenuItemIndicatorProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuItemIndicator',\n props: dropdownMenuItemIndicatorProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuItemIndicator,\n {\n forceMount: props.forceMount,\n class: theme.value.itemIndicator || undefined,\n },\n { default: () => slots.default?.() ?? '✓' },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuItemIndicator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuItemIndicatorProps = {\n /** Force the indicator to mount even when its parent is unchecked (useful for animated transitions). */\n forceMount: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuItemIndicatorProps = ExtractPublicPropTypes<typeof dropdownMenuItemIndicatorProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuItemIndicator',\n props: dropdownMenuItemIndicatorProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuItemIndicator,\n {\n forceMount: props.forceMount,\n class: theme.value.itemIndicator || undefined,\n },\n { default: () => slots.default?.() ?? '✓' },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuLabel } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuLabelProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuLabelProps = ExtractPublicPropTypes<typeof dropdownMenuLabelProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuLabel',\n props: dropdownMenuLabelProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuLabel,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.label || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuLabel } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuLabelProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuLabelProps = ExtractPublicPropTypes<typeof dropdownMenuLabelProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuLabel',\n props: dropdownMenuLabelProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuLabel,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.label || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuSeparator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuSeparatorProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuSeparatorProps = ExtractPublicPropTypes<typeof dropdownMenuSeparatorProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuSeparator',\n props: dropdownMenuSeparatorProps,\n setup(props) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(DropdownMenuSeparator, { class: theme.value.separator || undefined });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuSeparator } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuSeparatorProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuSeparatorProps = ExtractPublicPropTypes<typeof dropdownMenuSeparatorProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuSeparator',\n props: dropdownMenuSeparatorProps,\n setup(props) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(DropdownMenuSeparator, { class: theme.value.separator || undefined });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuGroup } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuGroupProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuGroupProps = ExtractPublicPropTypes<typeof dropdownMenuGroupProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuGroup',\n props: dropdownMenuGroupProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuGroup,\n { class: theme.value.group || undefined },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuGroup } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuGroupProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuGroupProps = ExtractPublicPropTypes<typeof dropdownMenuGroupProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuGroup',\n props: dropdownMenuGroupProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuGroup,\n { class: theme.value.group || undefined },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuSub } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst dropdownMenuSubProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n};\n\nexport type DropdownMenuSubProps = ExtractPublicPropTypes<typeof dropdownMenuSubProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuSub',\n inheritAttrs: false,\n props: dropdownMenuSubProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n DropdownMenuSub,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuSub } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst dropdownMenuSubProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n};\n\nexport type DropdownMenuSubProps = ExtractPublicPropTypes<typeof dropdownMenuSubProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuSub',\n inheritAttrs: false,\n props: dropdownMenuSubProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n DropdownMenuSub,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuSubTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuSubTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** When true, prevents user interaction with the sub-trigger. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuSubTriggerProps = ExtractPublicPropTypes<typeof dropdownMenuSubTriggerProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuSubTrigger',\n inheritAttrs: false,\n props: dropdownMenuSubTriggerProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuSubTrigger,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n disabled: props.disabled,\n textValue: props.textValue,\n class: theme.value.subTrigger || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuSubTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuSubTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'div'`. */\n as: { type: String, default: 'div' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** When true, prevents user interaction with the sub-trigger. */\n disabled: { type: Boolean, default: false },\n /** Optional typeahead text override (defaults to the item's `.textContent`). */\n textValue: { type: String, default: undefined },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuSubTriggerProps = ExtractPublicPropTypes<typeof dropdownMenuSubTriggerProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuSubTrigger',\n inheritAttrs: false,\n props: dropdownMenuSubTriggerProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(\n DropdownMenuSubTrigger,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n disabled: props.disabled,\n textValue: props.textValue,\n class: theme.value.subTrigger || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuPortal, DropdownMenuSubContent } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuSubContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Distance in pixels between sub-trigger and sub-menu. */\n sideOffset: { type: Number, default: 0 },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the sub-menu to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Loop arrow-key focus from last item back to first. Vuecs convention: `true` (Reka default: `false`). */\n loop: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuSubContentProps = ExtractPublicPropTypes<typeof dropdownMenuSubContentProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuSubContent',\n inheritAttrs: false,\n props: dropdownMenuSubContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n\n const renderContent = () => h(\n DropdownMenuSubContent,\n mergeProps(attrs, {\n sideOffset: props.sideOffset,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n loop: props.loop,\n class: theme.value.subContent || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(DropdownMenuPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuPortal, DropdownMenuSubContent } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuSubContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Distance in pixels between sub-trigger and sub-menu. */\n sideOffset: { type: Number, default: 0 },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the sub-menu to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Loop arrow-key focus from last item back to first. Vuecs convention: `true` (Reka default: `false`). */\n loop: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuSubContentProps = ExtractPublicPropTypes<typeof dropdownMenuSubContentProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuSubContent',\n inheritAttrs: false,\n props: dropdownMenuSubContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n\n const renderContent = () => h(\n DropdownMenuSubContent,\n mergeProps(attrs, {\n sideOffset: props.sideOffset,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n loop: props.loop,\n class: theme.value.subContent || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(DropdownMenuPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuArrow } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuArrowProps = {\n /** Arrow width in pixels. */\n width: { type: Number, default: 10 },\n /** Arrow height in pixels. */\n height: { type: Number, default: 5 },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuArrowProps = ExtractPublicPropTypes<typeof dropdownMenuArrowProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuArrow',\n props: dropdownMenuArrowProps,\n setup(props) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(DropdownMenuArrow, {\n width: props.width,\n height: props.height,\n class: theme.value.arrow || undefined,\n });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DropdownMenuArrow } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { dropdownMenuThemeDefaults } from './theme';\nimport type { DropdownMenuThemeClasses } from './types';\n\nconst dropdownMenuArrowProps = {\n /** Arrow width in pixels. */\n width: { type: Number, default: 10 },\n /** Arrow height in pixels. */\n height: { type: Number, default: 5 },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<DropdownMenuThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type DropdownMenuArrowProps = ExtractPublicPropTypes<typeof dropdownMenuArrowProps>;\n\nexport default defineComponent({\n name: 'VCDropdownMenuArrow',\n props: dropdownMenuArrowProps,\n setup(props) {\n const theme = useComponentTheme('dropdownMenu', props, dropdownMenuThemeDefaults);\n return () => h(DropdownMenuArrow, {\n width: props.width,\n height: props.height,\n class: theme.value.arrow || undefined,\n });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { HoverCardRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst hoverCardProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n /** Delay (ms) from pointer-enter to opening. */\n openDelay: { type: Number, default: 700 },\n /** Delay (ms) from pointer-leave to closing — covers grace-area travel. */\n closeDelay: { type: Number, default: 300 },\n};\n\nexport type HoverCardProps = ExtractPublicPropTypes<typeof hoverCardProps>;\n\nexport default defineComponent({\n name: 'VCHoverCard',\n inheritAttrs: false,\n props: hoverCardProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n HoverCardRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { HoverCardRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst hoverCardProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n /** Delay (ms) from pointer-enter to opening. */\n openDelay: { type: Number, default: 700 },\n /** Delay (ms) from pointer-leave to closing — covers grace-area travel. */\n closeDelay: { type: Number, default: 300 },\n};\n\nexport type HoverCardProps = ExtractPublicPropTypes<typeof hoverCardProps>;\n\nexport default defineComponent({\n name: 'VCHoverCard',\n inheritAttrs: false,\n props: hoverCardProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n HoverCardRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","import type { ComponentThemeDefinition } from '@vuecs/core';\nimport type { HoverCardThemeClasses } from './types';\n\nexport const hoverCardThemeDefaults: ComponentThemeDefinition<HoverCardThemeClasses> = {\n classes: {\n trigger: 'vc-hover-card-trigger',\n content: 'vc-hover-card-content',\n arrow: 'vc-hover-card-arrow',\n },\n};\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { HoverCardTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { hoverCardThemeDefaults } from './theme';\nimport type { HoverCardThemeClasses } from './types';\n\nconst hoverCardTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'a'` (hover-card triggers are typically links). */\n as: { type: String, default: 'a' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<HoverCardThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type HoverCardTriggerProps = ExtractPublicPropTypes<typeof hoverCardTriggerProps>;\n\nexport default defineComponent({\n name: 'VCHoverCardTrigger',\n props: hoverCardTriggerProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('hoverCard', props, hoverCardThemeDefaults);\n return () => h(\n HoverCardTrigger,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { HoverCardTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { hoverCardThemeDefaults } from './theme';\nimport type { HoverCardThemeClasses } from './types';\n\nconst hoverCardTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'a'` (hover-card triggers are typically links). */\n as: { type: String, default: 'a' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<HoverCardThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type HoverCardTriggerProps = ExtractPublicPropTypes<typeof hoverCardTriggerProps>;\n\nexport default defineComponent({\n name: 'VCHoverCardTrigger',\n props: hoverCardTriggerProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('hoverCard', props, hoverCardThemeDefaults);\n return () => h(\n HoverCardTrigger,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { HoverCardContent, HoverCardPortal } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { hoverCardThemeDefaults } from './theme';\nimport type { HoverCardThemeClasses } from './types';\n\nconst hoverCardContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Preferred side relative to the trigger. */\n side: { type: String as PropType<'top' | 'right' | 'bottom' | 'left'>, default: 'bottom' },\n /** Distance in pixels between trigger and panel. Vuecs convention: 4 (Reka default: 0). */\n sideOffset: { type: Number, default: 4 },\n /** Alignment along the chosen side. */\n align: { type: String as PropType<'start' | 'center' | 'end'>, default: 'center' },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the panel to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<HoverCardThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type HoverCardContentProps = ExtractPublicPropTypes<typeof hoverCardContentProps>;\n\nexport default defineComponent({\n name: 'VCHoverCardContent',\n inheritAttrs: false,\n props: hoverCardContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('hoverCard', props, hoverCardThemeDefaults);\n\n const renderContent = () => h(\n HoverCardContent,\n mergeProps(attrs, {\n side: props.side,\n sideOffset: props.sideOffset,\n align: props.align,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n class: theme.value.content || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(HoverCardPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { HoverCardContent, HoverCardPortal } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { hoverCardThemeDefaults } from './theme';\nimport type { HoverCardThemeClasses } from './types';\n\nconst hoverCardContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Preferred side relative to the trigger. */\n side: { type: String as PropType<'top' | 'right' | 'bottom' | 'left'>, default: 'bottom' },\n /** Distance in pixels between trigger and panel. Vuecs convention: 4 (Reka default: 0). */\n sideOffset: { type: Number, default: 4 },\n /** Alignment along the chosen side. */\n align: { type: String as PropType<'start' | 'center' | 'end'>, default: 'center' },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the panel to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<HoverCardThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type HoverCardContentProps = ExtractPublicPropTypes<typeof hoverCardContentProps>;\n\nexport default defineComponent({\n name: 'VCHoverCardContent',\n inheritAttrs: false,\n props: hoverCardContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('hoverCard', props, hoverCardThemeDefaults);\n\n const renderContent = () => h(\n HoverCardContent,\n mergeProps(attrs, {\n side: props.side,\n sideOffset: props.sideOffset,\n align: props.align,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n class: theme.value.content || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(HoverCardPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { HoverCardArrow } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { hoverCardThemeDefaults } from './theme';\nimport type { HoverCardThemeClasses } from './types';\n\nconst hoverCardArrowProps = {\n /** Arrow width in pixels. */\n width: { type: Number, default: 10 },\n /** Arrow height in pixels. */\n height: { type: Number, default: 5 },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<HoverCardThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type HoverCardArrowProps = ExtractPublicPropTypes<typeof hoverCardArrowProps>;\n\nexport default defineComponent({\n name: 'VCHoverCardArrow',\n props: hoverCardArrowProps,\n setup(props) {\n const theme = useComponentTheme('hoverCard', props, hoverCardThemeDefaults);\n return () => h(HoverCardArrow, {\n width: props.width,\n height: props.height,\n class: theme.value.arrow || undefined,\n });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { HoverCardArrow } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { hoverCardThemeDefaults } from './theme';\nimport type { HoverCardThemeClasses } from './types';\n\nconst hoverCardArrowProps = {\n /** Arrow width in pixels. */\n width: { type: Number, default: 10 },\n /** Arrow height in pixels. */\n height: { type: Number, default: 5 },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<HoverCardThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type HoverCardArrowProps = ExtractPublicPropTypes<typeof hoverCardArrowProps>;\n\nexport default defineComponent({\n name: 'VCHoverCardArrow',\n props: hoverCardArrowProps,\n setup(props) {\n const theme = useComponentTheme('hoverCard', props, hoverCardThemeDefaults);\n return () => h(HoverCardArrow, {\n width: props.width,\n height: props.height,\n class: theme.value.arrow || undefined,\n });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DialogRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst modalProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n /** Modal mode — disables interaction with outside elements when open. */\n modal: { type: Boolean, default: true },\n};\n\nexport type ModalProps = ExtractPublicPropTypes<typeof modalProps>;\n\nexport default defineComponent({\n name: 'VCModal',\n inheritAttrs: false,\n props: modalProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n DialogRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DialogRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst modalProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n /** Modal mode — disables interaction with outside elements when open. */\n modal: { type: Boolean, default: true },\n};\n\nexport type ModalProps = ExtractPublicPropTypes<typeof modalProps>;\n\nexport default defineComponent({\n name: 'VCModal',\n inheritAttrs: false,\n props: modalProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n DialogRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","import type { ComponentThemeDefinition } from '@vuecs/core';\nimport type { ModalThemeClasses } from './types';\n\n/**\n * Single theme-defaults source for every `<VCModal*>` part. Each component\n * reads only the slot it needs from the resolved theme — sharing the source\n * keeps the augmentation, types, and consumer overrides in one place.\n *\n * Slot names map 1:1 onto the Reka Dialog parts they wrap, plus `header` /\n * `body` / `footer` regions exposed for layout composition and `back` for\n * the optional view-stack back button.\n */\nexport const modalThemeDefaults: ComponentThemeDefinition<ModalThemeClasses> = {\n classes: {\n overlay: 'vc-modal-overlay',\n content: 'vc-modal-content',\n header: 'vc-modal-header',\n title: 'vc-modal-title',\n description: 'vc-modal-description',\n body: 'vc-modal-body',\n footer: 'vc-modal-footer',\n trigger: 'vc-modal-trigger',\n close: 'vc-modal-close',\n closeIcon: 'vc-modal-close-icon',\n back: 'vc-modal-back',\n },\n};\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DialogTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { modalThemeDefaults } from './theme';\nimport type { ModalThemeClasses } from './types';\n\nconst modalTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ModalThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ModalTriggerProps = ExtractPublicPropTypes<typeof modalTriggerProps>;\n\nexport default defineComponent({\n name: 'VCModalTrigger',\n props: modalTriggerProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('modal', props, modalThemeDefaults);\n return () => h(\n DialogTrigger,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DialogTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { modalThemeDefaults } from './theme';\nimport type { ModalThemeClasses } from './types';\n\nconst modalTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ModalThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ModalTriggerProps = ExtractPublicPropTypes<typeof modalTriggerProps>;\n\nexport default defineComponent({\n name: 'VCModalTrigger',\n props: modalTriggerProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('modal', props, modalThemeDefaults);\n return () => h(\n DialogTrigger,\n {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport {\n DialogContent,\n DialogOverlay,\n DialogPortal,\n} from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { modalThemeDefaults } from './theme';\nimport type { ModalThemeClasses } from './types';\n\nconst modalContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Disable the overlay backdrop. Internal — controls our own render branch. */\n hideOverlay: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ModalThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ModalContentProps = ExtractPublicPropTypes<typeof modalContentProps>;\n\nexport default defineComponent({\n name: 'VCModalContent',\n props: modalContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('modal', props, modalThemeDefaults);\n\n const renderInner = () => [\n ...(props.hideOverlay ?\n [] :\n [h(DialogOverlay, { class: theme.value.overlay || undefined })]),\n h(\n DialogContent,\n mergeProps(attrs, { class: theme.value.content || undefined }),\n { default: () => slots.default?.() },\n ),\n ];\n\n return () => {\n if (props.inline) {\n return renderInner();\n }\n return h(DialogPortal, null, { default: () => renderInner() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport {\n DialogContent,\n DialogOverlay,\n DialogPortal,\n} from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { modalThemeDefaults } from './theme';\nimport type { ModalThemeClasses } from './types';\n\nconst modalContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Disable the overlay backdrop. Internal — controls our own render branch. */\n hideOverlay: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ModalThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ModalContentProps = ExtractPublicPropTypes<typeof modalContentProps>;\n\nexport default defineComponent({\n name: 'VCModalContent',\n props: modalContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('modal', props, modalThemeDefaults);\n\n const renderInner = () => [\n ...(props.hideOverlay ?\n [] :\n [h(DialogOverlay, { class: theme.value.overlay || undefined })]),\n h(\n DialogContent,\n mergeProps(attrs, { class: theme.value.content || undefined }),\n { default: () => slots.default?.() },\n ),\n ];\n\n return () => {\n if (props.inline) {\n return renderInner();\n }\n return h(DialogPortal, null, { default: () => renderInner() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DialogTitle } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { modalThemeDefaults } from './theme';\nimport type { ModalThemeClasses } from './types';\n\nconst modalTitleProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ModalThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ModalTitleProps = ExtractPublicPropTypes<typeof modalTitleProps>;\n\nexport default defineComponent({\n name: 'VCModalTitle',\n props: modalTitleProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('modal', props, modalThemeDefaults);\n return () => h(\n DialogTitle,\n { class: theme.value.title || undefined },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DialogTitle } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { modalThemeDefaults } from './theme';\nimport type { ModalThemeClasses } from './types';\n\nconst modalTitleProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ModalThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ModalTitleProps = ExtractPublicPropTypes<typeof modalTitleProps>;\n\nexport default defineComponent({\n name: 'VCModalTitle',\n props: modalTitleProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('modal', props, modalThemeDefaults);\n return () => h(\n DialogTitle,\n { class: theme.value.title || undefined },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DialogDescription } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { modalThemeDefaults } from './theme';\nimport type { ModalThemeClasses } from './types';\n\nconst modalDescriptionProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ModalThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ModalDescriptionProps = ExtractPublicPropTypes<typeof modalDescriptionProps>;\n\nexport default defineComponent({\n name: 'VCModalDescription',\n props: modalDescriptionProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('modal', props, modalThemeDefaults);\n return () => h(\n DialogDescription,\n { class: theme.value.description || undefined },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DialogDescription } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { modalThemeDefaults } from './theme';\nimport type { ModalThemeClasses } from './types';\n\nconst modalDescriptionProps = {\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ModalThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ModalDescriptionProps = ExtractPublicPropTypes<typeof modalDescriptionProps>;\n\nexport default defineComponent({\n name: 'VCModalDescription',\n props: modalDescriptionProps,\n setup(props, { slots }) {\n const theme = useComponentTheme('modal', props, modalThemeDefaults);\n return () => h(\n DialogDescription,\n { class: theme.value.description || undefined },\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DialogClose } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { modalThemeDefaults } from './theme';\nimport type { ModalThemeClasses } from './types';\n\nconst modalCloseProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /**\n * Force the corner-X presentation (reads the theme's `closeIcon` slot —\n * absolute positioning + sizing). When false (default), the slot-presence\n * heuristic decides: slotless renders the corner-X, slotted renders the\n * neutral `close` styling so consumer classes compose cleanly.\n *\n * Internal slot-picker — never forwarded to Reka.\n */\n icon: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ModalThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ModalCloseProps = ExtractPublicPropTypes<typeof modalCloseProps>;\n\nexport default defineComponent({\n name: 'VCModalClose',\n inheritAttrs: false,\n props: modalCloseProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('modal', props, modalThemeDefaults);\n return () => {\n // When the consumer doesn't supply slot content the rendered\n // button only contains the \"×\" glyph (U+00D7), which screen\n // readers announce as \"multiplication sign\". Provide a default\n // aria-label so the fallback is accessible out of the box;\n // consumers can still override via attrs.\n const hasSlot = !!slots.default;\n const ariaLabel = (attrs['aria-label'] as string | undefined) ??\n (hasSlot ? undefined : 'Close');\n // Slot-presence heuristic: a bare `<VCModalClose />` means\n // the consumer wants the default `×` glyph in the corner — they\n // didn't provide content because they want the icon presentation.\n // Explicit `icon` always wins; a slot with content (e.g. \"Cancel\")\n // implies the labelled-button presentation.\n const slotKey = props.icon || !hasSlot ? 'closeIcon' : 'close';\n return h(\n DialogClose,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value[slotKey] || undefined,\n 'aria-label': ariaLabel,\n }),\n { default: () => slots.default?.() ?? '×' },\n );\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { DialogClose } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { modalThemeDefaults } from './theme';\nimport type { ModalThemeClasses } from './types';\n\nconst modalCloseProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /**\n * Force the corner-X presentation (reads the theme's `closeIcon` slot —\n * absolute positioning + sizing). When false (default), the slot-presence\n * heuristic decides: slotless renders the corner-X, slotted renders the\n * neutral `close` styling so consumer classes compose cleanly.\n *\n * Internal slot-picker — never forwarded to Reka.\n */\n icon: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ModalThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ModalCloseProps = ExtractPublicPropTypes<typeof modalCloseProps>;\n\nexport default defineComponent({\n name: 'VCModalClose',\n inheritAttrs: false,\n props: modalCloseProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('modal', props, modalThemeDefaults);\n return () => {\n // When the consumer doesn't supply slot content the rendered\n // button only contains the \"×\" glyph (U+00D7), which screen\n // readers announce as \"multiplication sign\". Provide a default\n // aria-label so the fallback is accessible out of the box;\n // consumers can still override via attrs.\n const hasSlot = !!slots.default;\n const ariaLabel = (attrs['aria-label'] as string | undefined) ??\n (hasSlot ? undefined : 'Close');\n // Slot-presence heuristic: a bare `<VCModalClose />` means\n // the consumer wants the default `×` glyph in the corner — they\n // didn't provide content because they want the icon presentation.\n // Explicit `icon` always wins; a slot with content (e.g. \"Cancel\")\n // implies the labelled-button presentation.\n const slotKey = props.icon || !hasSlot ? 'closeIcon' : 'close';\n return h(\n DialogClose,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value[slotKey] || undefined,\n 'aria-label': ariaLabel,\n }),\n { default: () => slots.default?.() ?? '×' },\n );\n };\n },\n});\n</script>\n","import {\n computed,\n ref,\n shallowRef,\n} from 'vue';\nimport type { Component, ComputedRef, Ref } from 'vue';\n\nexport type ModalView = {\n /**\n * Distinguishing key. Used as the Vue render `key` so swapping views\n * remounts the content (state inside the previous view is discarded).\n */\n key?: string | number | symbol;\n /** Component to render in the modal body. */\n component: Component;\n /** Props passed to the rendered component. */\n props?: Record<string, unknown>;\n /** Optional title to render in `<VCModalTitle>` when no slot is provided. */\n title?: string;\n};\n\nexport type UseModalOptions = {\n /** Initial view to push when the modal opens. Optional — open() can be called without a starting view. */\n initialView?: ModalView;\n /**\n * Called after the modal closes (after the view stack is cleared).\n * Use this for cleanup (resetting form state, refetching parent data, etc.).\n */\n onClose?: () => void;\n};\n\nexport type UseModalReturn = {\n /** Reactive open/closed state. Bind to `<VCModal v-model:open>`. */\n isOpen: Ref<boolean>;\n /** Current top-of-stack view, or `undefined` when the stack is empty. */\n currentView: ComputedRef<ModalView | undefined>;\n /** True when `popView()` would do something (i.e. stack depth > 1). */\n hasHistory: ComputedRef<boolean>;\n /** Current stack depth. */\n depth: ComputedRef<number>;\n\n /** Open the modal. If `view` is supplied, it becomes the initial entry on the stack. */\n open: (view?: ModalView) => void;\n /** Close the modal and clear the stack. Fires `onClose`. */\n close: () => void;\n /** Push a view onto the stack. Opens the modal if it isn't open already. */\n pushView: (view: ModalView) => void;\n /** Pop the top view. If the stack would become empty, closes the modal instead. */\n popView: () => void;\n /** Replace the entire stack with a single view. Opens the modal if needed. */\n replaceView: (view: ModalView) => void;\n /** Programmatic update for v-model:open. */\n setOpen: (next: boolean) => void;\n};\n\n/**\n * View-stack-aware modal state. Used in tandem with `<VCModal>`'s compound\n * components for flows like \"list view → push detail view → pop back\" without\n * stacking modals or fighting z-index.\n *\n * Originally proposed in https://github.com/tada5hi/vuecs/issues/1480.\n */\nexport function useModal(options: UseModalOptions = {}): UseModalReturn {\n const isOpen = ref(false);\n const stack = shallowRef<ModalView[]>([]);\n\n const setStack = (next: ModalView[]) => {\n stack.value = next;\n };\n\n const currentView = computed(() => stack.value[stack.value.length - 1]);\n const depth = computed(() => stack.value.length);\n const hasHistory = computed(() => stack.value.length > 1);\n\n const open = (view?: ModalView) => {\n if (view) {\n setStack([view]);\n } else if (stack.value.length === 0 && options.initialView) {\n setStack([options.initialView]);\n }\n isOpen.value = true;\n };\n\n const close = () => {\n // Guard against double-fire: if already closed, don't re-invoke\n // onClose. Triggers: setOpen(false) on an already-closed modal,\n // popView() on an empty stack, duplicate update:open emissions.\n const wasOpen = isOpen.value;\n isOpen.value = false;\n setStack([]);\n if (wasOpen) {\n options.onClose?.();\n }\n };\n\n const pushView = (view: ModalView) => {\n setStack([...stack.value, view]);\n if (!isOpen.value) {\n isOpen.value = true;\n }\n };\n\n const popView = () => {\n if (stack.value.length <= 1) {\n close();\n return;\n }\n setStack(stack.value.slice(0, -1));\n };\n\n const replaceView = (view: ModalView) => {\n setStack([view]);\n if (!isOpen.value) {\n isOpen.value = true;\n }\n };\n\n const setOpen = (next: boolean) => {\n if (next) {\n open();\n } else {\n close();\n }\n };\n\n return {\n isOpen,\n currentView,\n hasHistory,\n depth,\n open,\n close,\n pushView,\n popView,\n replaceView,\n setOpen,\n };\n}\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { PopoverRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst popoverProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n /** Modal mode — locks focus inside the popover and blocks outside interaction. */\n modal: { type: Boolean, default: false },\n};\n\nexport type PopoverProps = ExtractPublicPropTypes<typeof popoverProps>;\n\nexport default defineComponent({\n name: 'VCPopover',\n inheritAttrs: false,\n props: popoverProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n PopoverRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { PopoverRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst popoverProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n /** Modal mode — locks focus inside the popover and blocks outside interaction. */\n modal: { type: Boolean, default: false },\n};\n\nexport type PopoverProps = ExtractPublicPropTypes<typeof popoverProps>;\n\nexport default defineComponent({\n name: 'VCPopover',\n inheritAttrs: false,\n props: popoverProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n PopoverRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","import type { ComponentThemeDefinition } from '@vuecs/core';\nimport type { PopoverThemeClasses } from './types';\n\nexport const popoverThemeDefaults: ComponentThemeDefinition<PopoverThemeClasses> = {\n classes: {\n content: 'vc-popover-content',\n trigger: 'vc-popover-trigger',\n arrow: 'vc-popover-arrow',\n close: 'vc-popover-close',\n closeIcon: 'vc-popover-close-icon',\n },\n};\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { PopoverTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { popoverThemeDefaults } from './theme';\nimport type { PopoverThemeClasses } from './types';\n\nconst popoverTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<PopoverThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type PopoverTriggerProps = ExtractPublicPropTypes<typeof popoverTriggerProps>;\n\nexport default defineComponent({\n name: 'VCPopoverTrigger',\n inheritAttrs: false,\n props: popoverTriggerProps,\n setup(props, { attrs, slots }) {\n const theme = useComponentTheme('popover', props, popoverThemeDefaults);\n return () => h(\n PopoverTrigger,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { PopoverTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { popoverThemeDefaults } from './theme';\nimport type { PopoverThemeClasses } from './types';\n\nconst popoverTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<PopoverThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type PopoverTriggerProps = ExtractPublicPropTypes<typeof popoverTriggerProps>;\n\nexport default defineComponent({\n name: 'VCPopoverTrigger',\n inheritAttrs: false,\n props: popoverTriggerProps,\n setup(props, { attrs, slots }) {\n const theme = useComponentTheme('popover', props, popoverThemeDefaults);\n return () => h(\n PopoverTrigger,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { PopoverContent, PopoverPortal } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { popoverThemeDefaults } from './theme';\nimport type { PopoverThemeClasses } from './types';\n\nconst popoverContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Preferred side relative to the trigger. */\n side: { type: String as PropType<'top' | 'right' | 'bottom' | 'left'>, default: 'bottom' },\n /** Distance in pixels between trigger and panel. Vuecs convention: 4 (Reka default: 0). */\n sideOffset: { type: Number, default: 4 },\n /** Alignment along the chosen side. */\n align: { type: String as PropType<'start' | 'center' | 'end'>, default: 'center' },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the panel to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<PopoverThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type PopoverContentProps = ExtractPublicPropTypes<typeof popoverContentProps>;\n\nexport default defineComponent({\n name: 'VCPopoverContent',\n inheritAttrs: false,\n props: popoverContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('popover', props, popoverThemeDefaults);\n\n const renderContent = () => h(\n PopoverContent,\n mergeProps(attrs, {\n side: props.side,\n sideOffset: props.sideOffset,\n align: props.align,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n class: theme.value.content || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(PopoverPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { PopoverContent, PopoverPortal } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { popoverThemeDefaults } from './theme';\nimport type { PopoverThemeClasses } from './types';\n\nconst popoverContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Preferred side relative to the trigger. */\n side: { type: String as PropType<'top' | 'right' | 'bottom' | 'left'>, default: 'bottom' },\n /** Distance in pixels between trigger and panel. Vuecs convention: 4 (Reka default: 0). */\n sideOffset: { type: Number, default: 4 },\n /** Alignment along the chosen side. */\n align: { type: String as PropType<'start' | 'center' | 'end'>, default: 'center' },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the panel to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<PopoverThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type PopoverContentProps = ExtractPublicPropTypes<typeof popoverContentProps>;\n\nexport default defineComponent({\n name: 'VCPopoverContent',\n inheritAttrs: false,\n props: popoverContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('popover', props, popoverThemeDefaults);\n\n const renderContent = () => h(\n PopoverContent,\n mergeProps(attrs, {\n side: props.side,\n sideOffset: props.sideOffset,\n align: props.align,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n class: theme.value.content || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(PopoverPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { PopoverArrow } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { popoverThemeDefaults } from './theme';\nimport type { PopoverThemeClasses } from './types';\n\nconst popoverArrowProps = {\n /** Arrow width in pixels. */\n width: { type: Number, default: 10 },\n /** Arrow height in pixels. */\n height: { type: Number, default: 5 },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<PopoverThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type PopoverArrowProps = ExtractPublicPropTypes<typeof popoverArrowProps>;\n\nexport default defineComponent({\n name: 'VCPopoverArrow',\n props: popoverArrowProps,\n setup(props) {\n const theme = useComponentTheme('popover', props, popoverThemeDefaults);\n return () => h(PopoverArrow, {\n width: props.width,\n height: props.height,\n class: theme.value.arrow || undefined,\n });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { PopoverArrow } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { popoverThemeDefaults } from './theme';\nimport type { PopoverThemeClasses } from './types';\n\nconst popoverArrowProps = {\n /** Arrow width in pixels. */\n width: { type: Number, default: 10 },\n /** Arrow height in pixels. */\n height: { type: Number, default: 5 },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<PopoverThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type PopoverArrowProps = ExtractPublicPropTypes<typeof popoverArrowProps>;\n\nexport default defineComponent({\n name: 'VCPopoverArrow',\n props: popoverArrowProps,\n setup(props) {\n const theme = useComponentTheme('popover', props, popoverThemeDefaults);\n return () => h(PopoverArrow, {\n width: props.width,\n height: props.height,\n class: theme.value.arrow || undefined,\n });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { PopoverClose } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { popoverThemeDefaults } from './theme';\nimport type { PopoverThemeClasses } from './types';\n\nconst popoverCloseProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /**\n * Force the corner-X presentation (reads the theme's `closeIcon` slot —\n * absolute positioning + sizing). When false (default), the slot-presence\n * heuristic decides: slotless renders the corner-X, slotted renders the\n * neutral `close` styling so consumer classes compose cleanly.\n *\n * Internal slot-picker — never forwarded to Reka.\n */\n icon: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<PopoverThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type PopoverCloseProps = ExtractPublicPropTypes<typeof popoverCloseProps>;\n\nexport default defineComponent({\n name: 'VCPopoverClose',\n inheritAttrs: false,\n props: popoverCloseProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('popover', props, popoverThemeDefaults);\n return () => {\n // When the consumer doesn't supply slot content the rendered\n // button only contains the \"×\" glyph (U+00D7), which screen\n // readers announce as \"multiplication sign\". Provide a default\n // aria-label so the fallback is accessible out of the box;\n // consumers can still override via attrs.\n const hasSlot = !!slots.default;\n const ariaLabel = (attrs['aria-label'] as string | undefined) ??\n (hasSlot ? undefined : 'Close');\n // Slot-presence heuristic: a bare `<VCPopoverClose />` means\n // the consumer wants the default `×` glyph in the corner — they\n // didn't provide content because they want the icon presentation.\n // Explicit `icon` always wins; a slot with content implies the\n // labelled-button presentation.\n const slotKey = props.icon || !hasSlot ? 'closeIcon' : 'close';\n return h(\n PopoverClose,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value[slotKey] || undefined,\n 'aria-label': ariaLabel,\n }),\n { default: () => slots.default?.() ?? '×' },\n );\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { PopoverClose } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { popoverThemeDefaults } from './theme';\nimport type { PopoverThemeClasses } from './types';\n\nconst popoverCloseProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /**\n * Force the corner-X presentation (reads the theme's `closeIcon` slot —\n * absolute positioning + sizing). When false (default), the slot-presence\n * heuristic decides: slotless renders the corner-X, slotted renders the\n * neutral `close` styling so consumer classes compose cleanly.\n *\n * Internal slot-picker — never forwarded to Reka.\n */\n icon: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<PopoverThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type PopoverCloseProps = ExtractPublicPropTypes<typeof popoverCloseProps>;\n\nexport default defineComponent({\n name: 'VCPopoverClose',\n inheritAttrs: false,\n props: popoverCloseProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('popover', props, popoverThemeDefaults);\n return () => {\n // When the consumer doesn't supply slot content the rendered\n // button only contains the \"×\" glyph (U+00D7), which screen\n // readers announce as \"multiplication sign\". Provide a default\n // aria-label so the fallback is accessible out of the box;\n // consumers can still override via attrs.\n const hasSlot = !!slots.default;\n const ariaLabel = (attrs['aria-label'] as string | undefined) ??\n (hasSlot ? undefined : 'Close');\n // Slot-presence heuristic: a bare `<VCPopoverClose />` means\n // the consumer wants the default `×` glyph in the corner — they\n // didn't provide content because they want the icon presentation.\n // Explicit `icon` always wins; a slot with content implies the\n // labelled-button presentation.\n const slotKey = props.icon || !hasSlot ? 'closeIcon' : 'close';\n return h(\n PopoverClose,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value[slotKey] || undefined,\n 'aria-label': ariaLabel,\n }),\n { default: () => slots.default?.() ?? '×' },\n );\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport { Presence } from 'reka-ui';\nimport type { VCPresenceProps } from './types';\n\n/**\n * Animation lifecycle wrapper. Keeps the wrapped subtree mounted while\n * `present` is true, and waits for in-flight `data-state` CSS animations\n * to finish before unmounting when `present` flips to false.\n *\n * Wraps Reka's `Presence` primitive without re-exporting it directly —\n * the props shape is vuecs-owned (see `VCPresenceProps`).\n */\nexport default defineComponent({\n name: 'VCPresence',\n inheritAttrs: false,\n props: {\n /** Whether the wrapped subtree should be mounted. Toggle to trigger enter/exit animations. */\n present: { type: Boolean, required: true },\n /** Force the subtree to stay mounted regardless of `present` (debug / programmatic transition control). */\n forceMount: { type: Boolean, default: false },\n } satisfies Record<keyof VCPresenceProps, unknown>,\n setup(props, { slots }) {\n return () => h(\n Presence,\n {\n present: props.present,\n forceMount: props.forceMount,\n },\n { default: (scope: { present: boolean }) => slots.default?.(scope) },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport { Presence } from 'reka-ui';\nimport type { VCPresenceProps } from './types';\n\n/**\n * Animation lifecycle wrapper. Keeps the wrapped subtree mounted while\n * `present` is true, and waits for in-flight `data-state` CSS animations\n * to finish before unmounting when `present` flips to false.\n *\n * Wraps Reka's `Presence` primitive without re-exporting it directly —\n * the props shape is vuecs-owned (see `VCPresenceProps`).\n */\nexport default defineComponent({\n name: 'VCPresence',\n inheritAttrs: false,\n props: {\n /** Whether the wrapped subtree should be mounted. Toggle to trigger enter/exit animations. */\n present: { type: Boolean, required: true },\n /** Force the subtree to stay mounted regardless of `present` (debug / programmatic transition control). */\n forceMount: { type: Boolean, default: false },\n } satisfies Record<keyof VCPresenceProps, unknown>,\n setup(props, { slots }) {\n return () => h(\n Presence,\n {\n present: props.present,\n forceMount: props.forceMount,\n },\n { default: (scope: { present: boolean }) => slots.default?.(scope) },\n );\n },\n});\n</script>\n","import type { ComponentThemeDefinition } from '@vuecs/core';\nimport type {\n ToastActionThemeClasses,\n ToastDescriptionThemeClasses,\n ToastThemeClasses,\n ToastTitleThemeClasses,\n ToastViewportThemeClasses,\n} from './types';\n\nexport const toastViewportThemeDefaults: ComponentThemeDefinition<ToastViewportThemeClasses> = { classes: { root: 'vc-toast-viewport' } };\n\nexport const toastThemeDefaults: ComponentThemeDefinition<ToastThemeClasses> = {\n classes: {\n root: 'vc-toast',\n body: 'vc-toast-body',\n close: 'vc-toast-close',\n closeIcon: 'vc-toast-close-icon',\n },\n};\n\nexport const toastTitleThemeDefaults: ComponentThemeDefinition<ToastTitleThemeClasses> = { classes: { root: 'vc-toast-title' } };\n\nexport const toastDescriptionThemeDefaults: ComponentThemeDefinition<ToastDescriptionThemeClasses> = { classes: { root: 'vc-toast-description' } };\n\nexport const toastActionThemeDefaults: ComponentThemeDefinition<ToastActionThemeClasses> = { classes: { root: 'vc-toast-action' } };\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ToastRoot } from 'reka-ui';\nimport { themableProps, useComponentTheme, useThemeProps } from '@vuecs/core';\nimport { toastThemeDefaults } from './theme';\nimport type { ToastColor, ToastThemeClasses, ToastVariant } from './types';\n\nconst toastProps = {\n /** Semantic color — drives the `color` theme variant. */\n color: { type: String as PropType<ToastColor>, default: undefined },\n /** Visual treatment — `solid` / `soft` / `outline`. */\n variant: { type: String as PropType<ToastVariant>, default: undefined },\n /**\n * Auto-dismiss timeout (ms). Falls back to the `<VCToastProvider>`\n * default. Use `0` for a persistent toast (no auto-dismiss).\n */\n duration: { type: Number, default: undefined },\n /**\n * Reka `type` — `'foreground'` interrupts AT (use for errors / urgent\n * messages); `'background'` queues politely.\n *\n * Vuecs convention: defaults to `'background'` (Reka's default is\n * `'foreground'`). Most toasts are informational and shouldn't\n * interrupt screen-reader users; explicit `type=\"foreground\"` opts\n * into the louder announcement for urgent error toasts.\n */\n type: { type: String as PropType<'foreground' | 'background'>, default: 'background' },\n /**\n * Controlled open state. Leave undefined to let Reka's internal state\n * machine manage open/close lifecycle from `defaultOpen` + the\n * auto-dismiss timer. `<VCToaster>` deliberately doesn't bind this —\n * it dismisses entries via the queue, letting Reka own per-toast state.\n */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state when `open` is undefined. */\n defaultOpen: { type: Boolean, default: true },\n /** HTML tag to render. */\n as: { type: String, default: 'li' },\n /** Render the consumer's slot child as the root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n ...themableProps<ToastThemeClasses>(),\n};\n\nexport type ToastProps = ExtractPublicPropTypes<typeof toastProps>;\n\nexport default defineComponent({\n name: 'VCToast',\n inheritAttrs: false,\n props: toastProps,\n emits: ['update:open', 'escape-key-down', 'pause', 'resume', 'swipe-start', 'swipe-move', 'swipe-cancel', 'swipe-end'],\n setup(props, {\n attrs, \n slots, \n emit, \n }) {\n const themeProps = useThemeProps(props, 'color', 'variant');\n const theme = useComponentTheme('toast', themeProps, toastThemeDefaults);\n\n return () => h(\n ToastRoot,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n type: props.type,\n open: props.open,\n defaultOpen: props.defaultOpen,\n duration: props.duration,\n class: theme.value.root || undefined,\n 'onUpdate:open': (open: boolean) => emit('update:open', open),\n onEscapeKeyDown: (e: Event) => emit('escape-key-down', e),\n onPause: () => emit('pause'),\n onResume: () => emit('resume'),\n onSwipeStart: (e: Event) => emit('swipe-start', e),\n onSwipeMove: (e: Event) => emit('swipe-move', e),\n onSwipeCancel: (e: Event) => emit('swipe-cancel', e),\n onSwipeEnd: (e: Event) => emit('swipe-end', e),\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ToastRoot } from 'reka-ui';\nimport { themableProps, useComponentTheme, useThemeProps } from '@vuecs/core';\nimport { toastThemeDefaults } from './theme';\nimport type { ToastColor, ToastThemeClasses, ToastVariant } from './types';\n\nconst toastProps = {\n /** Semantic color — drives the `color` theme variant. */\n color: { type: String as PropType<ToastColor>, default: undefined },\n /** Visual treatment — `solid` / `soft` / `outline`. */\n variant: { type: String as PropType<ToastVariant>, default: undefined },\n /**\n * Auto-dismiss timeout (ms). Falls back to the `<VCToastProvider>`\n * default. Use `0` for a persistent toast (no auto-dismiss).\n */\n duration: { type: Number, default: undefined },\n /**\n * Reka `type` — `'foreground'` interrupts AT (use for errors / urgent\n * messages); `'background'` queues politely.\n *\n * Vuecs convention: defaults to `'background'` (Reka's default is\n * `'foreground'`). Most toasts are informational and shouldn't\n * interrupt screen-reader users; explicit `type=\"foreground\"` opts\n * into the louder announcement for urgent error toasts.\n */\n type: { type: String as PropType<'foreground' | 'background'>, default: 'background' },\n /**\n * Controlled open state. Leave undefined to let Reka's internal state\n * machine manage open/close lifecycle from `defaultOpen` + the\n * auto-dismiss timer. `<VCToaster>` deliberately doesn't bind this —\n * it dismisses entries via the queue, letting Reka own per-toast state.\n */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state when `open` is undefined. */\n defaultOpen: { type: Boolean, default: true },\n /** HTML tag to render. */\n as: { type: String, default: 'li' },\n /** Render the consumer's slot child as the root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n ...themableProps<ToastThemeClasses>(),\n};\n\nexport type ToastProps = ExtractPublicPropTypes<typeof toastProps>;\n\nexport default defineComponent({\n name: 'VCToast',\n inheritAttrs: false,\n props: toastProps,\n emits: ['update:open', 'escape-key-down', 'pause', 'resume', 'swipe-start', 'swipe-move', 'swipe-cancel', 'swipe-end'],\n setup(props, {\n attrs, \n slots, \n emit, \n }) {\n const themeProps = useThemeProps(props, 'color', 'variant');\n const theme = useComponentTheme('toast', themeProps, toastThemeDefaults);\n\n return () => h(\n ToastRoot,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n type: props.type,\n open: props.open,\n defaultOpen: props.defaultOpen,\n duration: props.duration,\n class: theme.value.root || undefined,\n 'onUpdate:open': (open: boolean) => emit('update:open', open),\n onEscapeKeyDown: (e: Event) => emit('escape-key-down', e),\n onPause: () => emit('pause'),\n onResume: () => emit('resume'),\n onSwipeStart: (e: Event) => emit('swipe-start', e),\n onSwipeMove: (e: Event) => emit('swipe-move', e),\n onSwipeCancel: (e: Event) => emit('swipe-cancel', e),\n onSwipeEnd: (e: Event) => emit('swipe-end', e),\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ToastProvider } from 'reka-ui';\nimport { useForwardProps } from '@vuecs/core';\n\nconst toastProviderProps = {\n /** Default auto-dismiss timeout (ms). Reka default: `5000`. Per-toast `duration` overrides. */\n duration: { type: Number, default: 5000 },\n /** Label announced by screen readers when a toast renders. */\n label: { type: String, default: 'Notification' },\n /** Swipe direction that dismisses a toast via touch. Reka default: `'right'`. */\n swipeDirection: { type: String as PropType<'up' | 'down' | 'left' | 'right'>, default: 'right' },\n /** Pixels swiped before a dismissal is registered. Reka default: `50`. */\n swipeThreshold: { type: Number, default: 50 },\n};\n\nexport type ToastProviderProps = ExtractPublicPropTypes<typeof toastProviderProps>;\n\n/**\n * App-level Toast configuration. Wrap your app (or specific subtrees) once\n * to control duration + swipe behaviour for every nested `<VCToast>`.\n *\n * Maps to Reka's `ToastProvider`. The `<VCToaster>` viewport — typically\n * rendered as a child of this provider — reads its queue from the shared\n * `useToast()` singleton.\n */\nexport default defineComponent({\n name: 'VCToastProvider',\n inheritAttrs: false,\n props: toastProviderProps,\n setup(props, { slots }) {\n // `useForwardProps` (not `useForwardPropsEmits`) — `ToastProvider`\n // exposes no events, and `useEmitAsProps` warns about empty `emits`.\n const forwarded = useForwardProps(props);\n return () => h(\n ToastProvider,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ToastProvider } from 'reka-ui';\nimport { useForwardProps } from '@vuecs/core';\n\nconst toastProviderProps = {\n /** Default auto-dismiss timeout (ms). Reka default: `5000`. Per-toast `duration` overrides. */\n duration: { type: Number, default: 5000 },\n /** Label announced by screen readers when a toast renders. */\n label: { type: String, default: 'Notification' },\n /** Swipe direction that dismisses a toast via touch. Reka default: `'right'`. */\n swipeDirection: { type: String as PropType<'up' | 'down' | 'left' | 'right'>, default: 'right' },\n /** Pixels swiped before a dismissal is registered. Reka default: `50`. */\n swipeThreshold: { type: Number, default: 50 },\n};\n\nexport type ToastProviderProps = ExtractPublicPropTypes<typeof toastProviderProps>;\n\n/**\n * App-level Toast configuration. Wrap your app (or specific subtrees) once\n * to control duration + swipe behaviour for every nested `<VCToast>`.\n *\n * Maps to Reka's `ToastProvider`. The `<VCToaster>` viewport — typically\n * rendered as a child of this provider — reads its queue from the shared\n * `useToast()` singleton.\n */\nexport default defineComponent({\n name: 'VCToastProvider',\n inheritAttrs: false,\n props: toastProviderProps,\n setup(props, { slots }) {\n // `useForwardProps` (not `useForwardPropsEmits`) — `ToastProvider`\n // exposes no events, and `useEmitAsProps` warns about empty `emits`.\n const forwarded = useForwardProps(props);\n return () => h(\n ToastProvider,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes } from 'vue';\nimport { ToastTitle } from 'reka-ui';\nimport { themableProps, useComponentTheme, useThemeProps } from '@vuecs/core';\nimport { toastTitleThemeDefaults } from './theme';\nimport type { ToastTitleThemeClasses } from './types';\n\nconst toastTitleProps = {\n /**\n * HTML tag to render.\n *\n * Vuecs convention: defaults to `'h3'` (Reka's `Primitive` default is\n * `'div'`). `h3` is the semantically-correct host for an in-context\n * heading within a toast — overridable via `:as`.\n */\n as: { type: String, default: 'h3' },\n /** Render the consumer's slot child as the root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n ...themableProps<ToastTitleThemeClasses>(),\n};\n\nexport type ToastTitleProps = ExtractPublicPropTypes<typeof toastTitleProps>;\n\nexport default defineComponent({\n name: 'VCToastTitle',\n inheritAttrs: false,\n props: toastTitleProps,\n setup(props, { attrs, slots }) {\n const theme = useComponentTheme(\n 'toastTitle',\n useThemeProps(props),\n toastTitleThemeDefaults,\n );\n return () => h(\n ToastTitle,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.root || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes } from 'vue';\nimport { ToastTitle } from 'reka-ui';\nimport { themableProps, useComponentTheme, useThemeProps } from '@vuecs/core';\nimport { toastTitleThemeDefaults } from './theme';\nimport type { ToastTitleThemeClasses } from './types';\n\nconst toastTitleProps = {\n /**\n * HTML tag to render.\n *\n * Vuecs convention: defaults to `'h3'` (Reka's `Primitive` default is\n * `'div'`). `h3` is the semantically-correct host for an in-context\n * heading within a toast — overridable via `:as`.\n */\n as: { type: String, default: 'h3' },\n /** Render the consumer's slot child as the root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n ...themableProps<ToastTitleThemeClasses>(),\n};\n\nexport type ToastTitleProps = ExtractPublicPropTypes<typeof toastTitleProps>;\n\nexport default defineComponent({\n name: 'VCToastTitle',\n inheritAttrs: false,\n props: toastTitleProps,\n setup(props, { attrs, slots }) {\n const theme = useComponentTheme(\n 'toastTitle',\n useThemeProps(props),\n toastTitleThemeDefaults,\n );\n return () => h(\n ToastTitle,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.root || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes } from 'vue';\nimport { ToastDescription } from 'reka-ui';\nimport { themableProps, useComponentTheme, useThemeProps } from '@vuecs/core';\nimport { toastDescriptionThemeDefaults } from './theme';\nimport type { ToastDescriptionThemeClasses } from './types';\n\nconst toastDescriptionProps = {\n /**\n * HTML tag to render.\n *\n * Vuecs convention: defaults to `'p'` (Reka's `Primitive` default is\n * `'div'`). `p` is the semantically-correct host for the toast body\n * text — overridable via `:as`.\n */\n as: { type: String, default: 'p' },\n /** Render the consumer's slot child as the root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n ...themableProps<ToastDescriptionThemeClasses>(),\n};\n\nexport type ToastDescriptionProps = ExtractPublicPropTypes<typeof toastDescriptionProps>;\n\nexport default defineComponent({\n name: 'VCToastDescription',\n inheritAttrs: false,\n props: toastDescriptionProps,\n setup(props, { attrs, slots }) {\n const theme = useComponentTheme(\n 'toastDescription',\n useThemeProps(props),\n toastDescriptionThemeDefaults,\n );\n return () => h(\n ToastDescription,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.root || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes } from 'vue';\nimport { ToastDescription } from 'reka-ui';\nimport { themableProps, useComponentTheme, useThemeProps } from '@vuecs/core';\nimport { toastDescriptionThemeDefaults } from './theme';\nimport type { ToastDescriptionThemeClasses } from './types';\n\nconst toastDescriptionProps = {\n /**\n * HTML tag to render.\n *\n * Vuecs convention: defaults to `'p'` (Reka's `Primitive` default is\n * `'div'`). `p` is the semantically-correct host for the toast body\n * text — overridable via `:as`.\n */\n as: { type: String, default: 'p' },\n /** Render the consumer's slot child as the root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n ...themableProps<ToastDescriptionThemeClasses>(),\n};\n\nexport type ToastDescriptionProps = ExtractPublicPropTypes<typeof toastDescriptionProps>;\n\nexport default defineComponent({\n name: 'VCToastDescription',\n inheritAttrs: false,\n props: toastDescriptionProps,\n setup(props, { attrs, slots }) {\n const theme = useComponentTheme(\n 'toastDescription',\n useThemeProps(props),\n toastDescriptionThemeDefaults,\n );\n return () => h(\n ToastDescription,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.root || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes } from 'vue';\nimport { ToastAction } from 'reka-ui';\nimport { themableProps, useComponentTheme, useThemeProps } from '@vuecs/core';\nimport { toastActionThemeDefaults } from './theme';\nimport type { ToastActionThemeClasses } from './types';\n\nconst toastActionProps = {\n /**\n * Short text describing the action. Required by Reka for AT — when the\n * toast auto-dismisses, screen readers announce this label so the user\n * knows what was missed. Mirror your action button's visible label.\n */\n altText: { type: String, required: true },\n /** HTML tag to render. */\n as: { type: String, default: 'button' },\n /** Render the consumer's slot child as the root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n ...themableProps<ToastActionThemeClasses>(),\n};\n\nexport type ToastActionProps = ExtractPublicPropTypes<typeof toastActionProps>;\n\nexport default defineComponent({\n name: 'VCToastAction',\n inheritAttrs: false,\n props: toastActionProps,\n setup(props, { attrs, slots }) {\n const theme = useComponentTheme(\n 'toastAction',\n useThemeProps(props),\n toastActionThemeDefaults,\n );\n return () => h(\n ToastAction as never,\n mergeProps(attrs, {\n altText: props.altText,\n as: props.as,\n asChild: props.asChild,\n class: theme.value.root || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes } from 'vue';\nimport { ToastAction } from 'reka-ui';\nimport { themableProps, useComponentTheme, useThemeProps } from '@vuecs/core';\nimport { toastActionThemeDefaults } from './theme';\nimport type { ToastActionThemeClasses } from './types';\n\nconst toastActionProps = {\n /**\n * Short text describing the action. Required by Reka for AT — when the\n * toast auto-dismisses, screen readers announce this label so the user\n * knows what was missed. Mirror your action button's visible label.\n */\n altText: { type: String, required: true },\n /** HTML tag to render. */\n as: { type: String, default: 'button' },\n /** Render the consumer's slot child as the root (Reka `asChild` pattern). */\n asChild: { type: Boolean, default: false },\n ...themableProps<ToastActionThemeClasses>(),\n};\n\nexport type ToastActionProps = ExtractPublicPropTypes<typeof toastActionProps>;\n\nexport default defineComponent({\n name: 'VCToastAction',\n inheritAttrs: false,\n props: toastActionProps,\n setup(props, { attrs, slots }) {\n const theme = useComponentTheme(\n 'toastAction',\n useThemeProps(props),\n toastActionThemeDefaults,\n );\n return () => h(\n ToastAction as never,\n mergeProps(attrs, {\n altText: props.altText,\n as: props.as,\n asChild: props.asChild,\n class: theme.value.root || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ToastClose } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { toastThemeDefaults } from './theme';\nimport type { ToastThemeClasses } from './types';\n\nconst toastCloseProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /**\n * Force the corner-X presentation (reads the theme's `closeIcon` slot).\n * When false (default), the slot-presence heuristic decides:\n * - slotless renders the corner-X (`closeIcon`)\n * - slotted renders the neutral `close` styling\n *\n * Same convention as `<VCModalClose>` / `<VCPopoverClose>`.\n */\n icon: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ToastThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ToastCloseProps = ExtractPublicPropTypes<typeof toastCloseProps>;\n\nexport default defineComponent({\n name: 'VCToastClose',\n inheritAttrs: false,\n props: toastCloseProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('toast', props, toastThemeDefaults);\n return () => {\n const hasSlot = !!slots.default;\n const ariaLabel = (attrs['aria-label'] as string | undefined) ??\n (hasSlot ? undefined : 'Close');\n const slotKey = props.icon || !hasSlot ? 'closeIcon' : 'close';\n return h(\n ToastClose,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value[slotKey] || undefined,\n 'aria-label': ariaLabel,\n }),\n { default: () => slots.default?.() ?? '×' },\n );\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { ToastClose } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { toastThemeDefaults } from './theme';\nimport type { ToastThemeClasses } from './types';\n\nconst toastCloseProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /**\n * Force the corner-X presentation (reads the theme's `closeIcon` slot).\n * When false (default), the slot-presence heuristic decides:\n * - slotless renders the corner-X (`closeIcon`)\n * - slotted renders the neutral `close` styling\n *\n * Same convention as `<VCModalClose>` / `<VCPopoverClose>`.\n */\n icon: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<ToastThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type ToastCloseProps = ExtractPublicPropTypes<typeof toastCloseProps>;\n\nexport default defineComponent({\n name: 'VCToastClose',\n inheritAttrs: false,\n props: toastCloseProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('toast', props, toastThemeDefaults);\n return () => {\n const hasSlot = !!slots.default;\n const ariaLabel = (attrs['aria-label'] as string | undefined) ??\n (hasSlot ? undefined : 'Close');\n const slotKey = props.icon || !hasSlot ? 'closeIcon' : 'close';\n return h(\n ToastClose,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value[slotKey] || undefined,\n 'aria-label': ariaLabel,\n }),\n { default: () => slots.default?.() ?? '×' },\n );\n };\n },\n});\n</script>\n","import { readonly, ref } from 'vue';\nimport type { Ref } from 'vue';\nimport type { ToastEntry, ToastEntryInput } from './types';\n\n// ──────────────────────────────────────────────────────────────────────────\n// Singleton queue (module-level — shared across every `useToast()` caller)\n// ──────────────────────────────────────────────────────────────────────────\n\nconst entries = ref<ToastEntry[]>([]);\nlet nextId = 0;\n\nfunction generateId(): string {\n nextId += 1;\n return `vc-toast-${nextId}`;\n}\n\nexport type UseToastReturn = {\n /** Readonly queue — drives `<VCToaster>`'s iteration. */\n entries: Readonly<Ref<ReadonlyArray<ToastEntry>>>;\n /**\n * Push a new toast onto the queue. Returns the entry's `id` so callers\n * can later `dismiss(id)` or `update(id, ...)`.\n */\n add: (entry: ToastEntryInput) => string;\n /** Remove a toast by id. Fires its `onDismiss` callback if set. No-op when id isn't in the queue. */\n dismiss: (id: string) => void;\n /** Patch a queued toast in place (e.g. progress updates). No-op when id isn't in the queue. */\n update: (id: string, patch: Partial<Omit<ToastEntry, 'id'>>) => void;\n /** Remove every queued toast. Fires each entry's `onDismiss`. */\n clear: () => void;\n};\n\n/**\n * Module-level singleton — every `useToast()` call returns the same queue\n * ref and mutator set. Adding from a fetch handler and rendering inside\n * `<VCToaster>` reuse one source of truth (singleton queue per plan 029 Q2).\n *\n * const toast = useToast();\n * toast.add({ title: 'Saved', description: 'User updated.', color: 'success' });\n * const id = toast.add({ title: 'Uploading…', duration: 0 });\n * toast.update(id, { description: '50% complete…' });\n * toast.dismiss(id);\n *\n * The composable owns NO timer logic — auto-dismiss + pause-on-hover are\n * driven by Reka's `ToastRoot` `duration` prop, which `<VCToast>` forwards\n * from `entry.duration ?? <VCToastProvider :duration>`.\n *\n * SSR note: The singleton is *process-wide*, not per-request. If a server\n * worker is reused across requests (Nuxt default), state could in theory\n * leak between renders — but toasts are user-action notifications fired\n * from client-side handlers (clicks, fetch callbacks), so the server-side\n * queue is almost always empty at render time. Don't call `add()` from\n * SSR setup paths; defer it to `onMounted` or post-hydration handlers.\n */\nexport function useToast(): UseToastReturn {\n function add(entry: ToastEntryInput): string {\n // Caller-provided `entry.id` is a hint, not a guarantee — if it\n // collides with an existing queue entry we regenerate so the\n // queue's id invariant stays unique. Caller receives the actual\n // id back. Keeps `dismiss(id)` / `update(id)` deterministic\n // without throwing on duplicate-id submissions.\n const suggested = entry.id;\n const id = (suggested === undefined || entries.value.some((e) => e.id === suggested)) ?\n generateId() :\n suggested;\n entries.value = [...entries.value, { ...entry, id }];\n return id;\n }\n\n function dismiss(id: string): void {\n const idx = entries.value.findIndex((e) => e.id === id);\n if (idx === -1) return;\n const removed = entries.value[idx];\n entries.value = entries.value.filter((e) => e.id !== id);\n // `toastApi` is initialised below; the closure resolves at call\n // time so by the time any user-triggered `dismiss` runs, it's\n // fully wired up.\n removed?.onDismiss?.(id, toastApi);\n }\n\n function update(id: string, patch: Partial<Omit<ToastEntry, 'id'>>): void {\n const idx = entries.value.findIndex((e) => e.id === id);\n if (idx === -1) return;\n const next = [...entries.value];\n next[idx] = { ...next[idx], ...patch };\n entries.value = next;\n }\n\n function clear(): void {\n const toFire = entries.value;\n entries.value = [];\n for (const e of toFire) e.onDismiss?.(e.id, toastApi);\n }\n\n const toastApi: UseToastReturn = {\n entries: readonly(entries) as Readonly<Ref<ReadonlyArray<ToastEntry>>>,\n add,\n dismiss,\n update,\n clear,\n };\n return toastApi;\n}\n","<script lang=\"ts\">\nimport {\n Fragment,\n computed,\n defineComponent,\n h,\n mergeProps,\n} from 'vue';\nimport type {\n ExtractPublicPropTypes,\n PropType,\n SlotsType,\n VNode,\n} from 'vue';\nimport { ToastViewport } from 'reka-ui';\nimport { themableProps, useComponentTheme, useThemeProps } from '@vuecs/core';\nimport VCToast from './Toast.vue';\nimport VCToastTitle from './ToastTitle.vue';\nimport VCToastDescription from './ToastDescription.vue';\nimport VCToastAction from './ToastAction.vue';\nimport VCToastClose from './ToastClose.vue';\nimport { useToast } from './use-toast';\nimport type { UseToastReturn } from './use-toast';\nimport { toastThemeDefaults, toastViewportThemeDefaults } from './theme';\nimport type {\n ToastActionRenderFn,\n ToastEntry,\n ToastEntryAction,\n ToastRenderFn,\n ToastThemeClasses,\n ToastViewportPosition,\n ToastViewportThemeClasses,\n} from './types';\n\nconst toasterProps = {\n /**\n * Viewport position. Drives the `position` theme variant on\n * `toastViewport`. Defaults to `'top-right'` on desktop with\n * theme-provided responsive overrides at narrow viewports.\n */\n position: { type: String as PropType<ToastViewportPosition>, default: 'top-right' },\n /**\n * Keyboard shortcut that focuses the viewport (Reka default: `'F8'`).\n * Allows screen-reader users to jump back to recent toasts.\n */\n hotkey: { type: Array as PropType<string[]>, default: undefined },\n /** Aria label for the viewport landmark. */\n label: { type: String, default: undefined },\n /** HTML tag to render. */\n as: { type: String, default: 'ol' },\n ...themableProps<ToastViewportThemeClasses>(),\n};\n\nexport type ToasterProps = ExtractPublicPropTypes<typeof toasterProps>;\n\nexport type ToasterSlotProps = {\n /** The entry being rendered. */\n entry: ToastEntry;\n /** Call to dismiss this entry from the queue. */\n dismiss: () => void;\n /** Resolved `toast` theme classes — pass straight to a custom layout. */\n classes: ToastThemeClasses;\n};\n\n// Discriminate the structured `{ label, onClick }` action shape from the\n// render-fn flavour. Render fns ARE functions, so `typeof === 'function'`\n// is the right tell.\nfunction isActionRenderFn(\n action: ToastEntryAction | ToastActionRenderFn,\n): action is ToastActionRenderFn {\n return typeof action === 'function';\n}\n\n// Same shape for title / description — string vs render fn.\nfunction renderTextField(\n value: string | ToastRenderFn,\n wrapper: typeof VCToastTitle | typeof VCToastDescription,\n): VNode {\n return h(\n wrapper,\n null,\n { default: typeof value === 'function' ? value : () => value },\n );\n}\n\nexport default defineComponent({\n name: 'VCToaster',\n inheritAttrs: false,\n props: toasterProps,\n slots: Object as SlotsType<{\n default(props: ToasterSlotProps): unknown;\n }>,\n setup(props, { attrs, slots }) {\n const themeProps = useThemeProps(props, 'position');\n const theme = useComponentTheme('toastViewport', themeProps, toastViewportThemeDefaults);\n // Resolved canonical-layout classes — also passed to the consumer\n // slot so custom layouts can reuse the active theme's class strings.\n const toastTheme = useComponentTheme('toast', {}, toastThemeDefaults);\n\n const toastApi: UseToastReturn = useToast();\n const { entries, dismiss } = toastApi;\n\n const rekaProps = computed(() => {\n const out: Record<string, unknown> = {};\n if (props.hotkey) out.hotkey = props.hotkey;\n if (props.label) out.label = props.label;\n return out;\n });\n\n // Render each queue entry. Order of precedence for layout:\n // 1. `entry.component` — per-entry full custom render (escape hatch).\n // 2. Toaster default slot — global per-entry render fn (consumer slot).\n // 3. Canonical layout — title + description + action + close.\n function renderEntry(entry: ToastEntry) {\n const onClose = () => dismiss(entry.id);\n\n // (1) per-entry component wins — wrap in VCToast for the\n // theme + a11y + animation infrastructure, then mount the\n // consumer's component as the body.\n if (entry.component) {\n return h(\n VCToast,\n {\n key: entry.id,\n color: entry.color,\n variant: entry.variant,\n duration: entry.duration,\n 'onUpdate:open': (open: boolean) => { if (!open) onClose(); },\n },\n () => h(entry.component!, {\n // Spread `componentProps` FIRST so the contract-\n // guaranteed `entry` + `dismiss` reserved keys\n // always win — `componentProps.entry` / `.dismiss`\n // can't shadow them.\n ...(entry.componentProps ?? {}),\n entry,\n dismiss: onClose,\n }),\n );\n }\n\n // (2) consumer slot — takes precedence over canonical layout\n // when set globally on <VCToaster>.\n if (slots.default) {\n // Wrap in a keyed Fragment so Vue diffs by entry id, not by\n // position — preserves vnode state when the queue shifts.\n // Cast through `VNode[]` because `SlotsType` types the slot\n // return as `unknown`, which trips Vue's `h()` overload\n // resolution against the `Fragment` symbol type.\n const children = slots.default({\n entry,\n dismiss: onClose,\n classes: toastTheme.value,\n }) as VNode[];\n return h(Fragment, { key: entry.id }, children);\n }\n\n // (3) canonical layout — title + description + action + close.\n // title / description accept string OR render fn for inline\n // rich content. action accepts {label, onClick} OR render fn\n // for fully-custom action UIs.\n const body = h('div', { class: toastTheme.value.body || undefined }, [\n entry.title !== undefined ? renderTextField(entry.title, VCToastTitle) : null,\n entry.description !== undefined ? renderTextField(entry.description, VCToastDescription) : null,\n renderAction(entry, toastApi),\n ]);\n\n const closable = entry.closable !== false;\n\n return h(\n VCToast,\n {\n key: entry.id,\n color: entry.color,\n variant: entry.variant,\n duration: entry.duration,\n 'onUpdate:open': (open: boolean) => { if (!open) onClose(); },\n },\n () => [body, closable ? h(VCToastClose) : null],\n );\n }\n\n function renderAction(entry: ToastEntry, api: UseToastReturn): VNode | null {\n if (!entry.action) return null;\n if (isActionRenderFn(entry.action)) {\n // Custom action content — pass `(id, toast)` so the render\n // fn can wire its own dismiss / update / add handlers\n // without closure capture. Wrap result in a div so Vue\n // sees a single vnode.\n return h('div', null, entry.action(entry.id, api));\n }\n const structured = entry.action;\n return h(\n VCToastAction,\n {\n altText: structured.label,\n onClick: () => structured.onClick(entry.id, api),\n },\n () => structured.label,\n );\n }\n\n return () => h(\n ToastViewport,\n mergeProps(attrs, {\n as: props.as,\n class: theme.value.root || undefined,\n ...rekaProps.value,\n }),\n { default: () => entries.value.map(renderEntry) },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport {\n Fragment,\n computed,\n defineComponent,\n h,\n mergeProps,\n} from 'vue';\nimport type {\n ExtractPublicPropTypes,\n PropType,\n SlotsType,\n VNode,\n} from 'vue';\nimport { ToastViewport } from 'reka-ui';\nimport { themableProps, useComponentTheme, useThemeProps } from '@vuecs/core';\nimport VCToast from './Toast.vue';\nimport VCToastTitle from './ToastTitle.vue';\nimport VCToastDescription from './ToastDescription.vue';\nimport VCToastAction from './ToastAction.vue';\nimport VCToastClose from './ToastClose.vue';\nimport { useToast } from './use-toast';\nimport type { UseToastReturn } from './use-toast';\nimport { toastThemeDefaults, toastViewportThemeDefaults } from './theme';\nimport type {\n ToastActionRenderFn,\n ToastEntry,\n ToastEntryAction,\n ToastRenderFn,\n ToastThemeClasses,\n ToastViewportPosition,\n ToastViewportThemeClasses,\n} from './types';\n\nconst toasterProps = {\n /**\n * Viewport position. Drives the `position` theme variant on\n * `toastViewport`. Defaults to `'top-right'` on desktop with\n * theme-provided responsive overrides at narrow viewports.\n */\n position: { type: String as PropType<ToastViewportPosition>, default: 'top-right' },\n /**\n * Keyboard shortcut that focuses the viewport (Reka default: `'F8'`).\n * Allows screen-reader users to jump back to recent toasts.\n */\n hotkey: { type: Array as PropType<string[]>, default: undefined },\n /** Aria label for the viewport landmark. */\n label: { type: String, default: undefined },\n /** HTML tag to render. */\n as: { type: String, default: 'ol' },\n ...themableProps<ToastViewportThemeClasses>(),\n};\n\nexport type ToasterProps = ExtractPublicPropTypes<typeof toasterProps>;\n\nexport type ToasterSlotProps = {\n /** The entry being rendered. */\n entry: ToastEntry;\n /** Call to dismiss this entry from the queue. */\n dismiss: () => void;\n /** Resolved `toast` theme classes — pass straight to a custom layout. */\n classes: ToastThemeClasses;\n};\n\n// Discriminate the structured `{ label, onClick }` action shape from the\n// render-fn flavour. Render fns ARE functions, so `typeof === 'function'`\n// is the right tell.\nfunction isActionRenderFn(\n action: ToastEntryAction | ToastActionRenderFn,\n): action is ToastActionRenderFn {\n return typeof action === 'function';\n}\n\n// Same shape for title / description — string vs render fn.\nfunction renderTextField(\n value: string | ToastRenderFn,\n wrapper: typeof VCToastTitle | typeof VCToastDescription,\n): VNode {\n return h(\n wrapper,\n null,\n { default: typeof value === 'function' ? value : () => value },\n );\n}\n\nexport default defineComponent({\n name: 'VCToaster',\n inheritAttrs: false,\n props: toasterProps,\n slots: Object as SlotsType<{\n default(props: ToasterSlotProps): unknown;\n }>,\n setup(props, { attrs, slots }) {\n const themeProps = useThemeProps(props, 'position');\n const theme = useComponentTheme('toastViewport', themeProps, toastViewportThemeDefaults);\n // Resolved canonical-layout classes — also passed to the consumer\n // slot so custom layouts can reuse the active theme's class strings.\n const toastTheme = useComponentTheme('toast', {}, toastThemeDefaults);\n\n const toastApi: UseToastReturn = useToast();\n const { entries, dismiss } = toastApi;\n\n const rekaProps = computed(() => {\n const out: Record<string, unknown> = {};\n if (props.hotkey) out.hotkey = props.hotkey;\n if (props.label) out.label = props.label;\n return out;\n });\n\n // Render each queue entry. Order of precedence for layout:\n // 1. `entry.component` — per-entry full custom render (escape hatch).\n // 2. Toaster default slot — global per-entry render fn (consumer slot).\n // 3. Canonical layout — title + description + action + close.\n function renderEntry(entry: ToastEntry) {\n const onClose = () => dismiss(entry.id);\n\n // (1) per-entry component wins — wrap in VCToast for the\n // theme + a11y + animation infrastructure, then mount the\n // consumer's component as the body.\n if (entry.component) {\n return h(\n VCToast,\n {\n key: entry.id,\n color: entry.color,\n variant: entry.variant,\n duration: entry.duration,\n 'onUpdate:open': (open: boolean) => { if (!open) onClose(); },\n },\n () => h(entry.component!, {\n // Spread `componentProps` FIRST so the contract-\n // guaranteed `entry` + `dismiss` reserved keys\n // always win — `componentProps.entry` / `.dismiss`\n // can't shadow them.\n ...(entry.componentProps ?? {}),\n entry,\n dismiss: onClose,\n }),\n );\n }\n\n // (2) consumer slot — takes precedence over canonical layout\n // when set globally on <VCToaster>.\n if (slots.default) {\n // Wrap in a keyed Fragment so Vue diffs by entry id, not by\n // position — preserves vnode state when the queue shifts.\n // Cast through `VNode[]` because `SlotsType` types the slot\n // return as `unknown`, which trips Vue's `h()` overload\n // resolution against the `Fragment` symbol type.\n const children = slots.default({\n entry,\n dismiss: onClose,\n classes: toastTheme.value,\n }) as VNode[];\n return h(Fragment, { key: entry.id }, children);\n }\n\n // (3) canonical layout — title + description + action + close.\n // title / description accept string OR render fn for inline\n // rich content. action accepts {label, onClick} OR render fn\n // for fully-custom action UIs.\n const body = h('div', { class: toastTheme.value.body || undefined }, [\n entry.title !== undefined ? renderTextField(entry.title, VCToastTitle) : null,\n entry.description !== undefined ? renderTextField(entry.description, VCToastDescription) : null,\n renderAction(entry, toastApi),\n ]);\n\n const closable = entry.closable !== false;\n\n return h(\n VCToast,\n {\n key: entry.id,\n color: entry.color,\n variant: entry.variant,\n duration: entry.duration,\n 'onUpdate:open': (open: boolean) => { if (!open) onClose(); },\n },\n () => [body, closable ? h(VCToastClose) : null],\n );\n }\n\n function renderAction(entry: ToastEntry, api: UseToastReturn): VNode | null {\n if (!entry.action) return null;\n if (isActionRenderFn(entry.action)) {\n // Custom action content — pass `(id, toast)` so the render\n // fn can wire its own dismiss / update / add handlers\n // without closure capture. Wrap result in a div so Vue\n // sees a single vnode.\n return h('div', null, entry.action(entry.id, api));\n }\n const structured = entry.action;\n return h(\n VCToastAction,\n {\n altText: structured.label,\n onClick: () => structured.onClick(entry.id, api),\n },\n () => structured.label,\n );\n }\n\n return () => h(\n ToastViewport,\n mergeProps(attrs, {\n as: props.as,\n class: theme.value.root || undefined,\n ...rekaProps.value,\n }),\n { default: () => entries.value.map(renderEntry) },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes } from 'vue';\nimport { TooltipProvider } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst tooltipProviderProps = {\n /** Delay before opening on hover, ms. */\n delayDuration: { type: Number, default: 700 },\n /** Window after a tooltip closes during which sibling tooltips skip the delay, ms. */\n skipDelayDuration: { type: Number, default: 300 },\n /** Disable hovering-only opens (focus still works). */\n disableHoverableContent: { type: Boolean, default: false },\n /** Disable closing on pointer-down outside content. */\n disableClosingTrigger: { type: Boolean, default: false },\n /** Treat non-keyboard focus events as not focusing the trigger. */\n ignoreNonKeyboardFocus: { type: Boolean, default: false },\n};\n\nexport type TooltipProviderProps = ExtractPublicPropTypes<typeof tooltipProviderProps>;\n\n/**\n * App-level tooltip configuration. Wrap your app once (or specific subtrees)\n * to control delays + skip-grouping for every nested `<VCTooltip>`.\n *\n * Maps to Reka's `TooltipProvider`.\n */\nexport default defineComponent({\n name: 'VCTooltipProvider',\n inheritAttrs: false,\n props: tooltipProviderProps,\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n TooltipProvider,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes } from 'vue';\nimport { TooltipProvider } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst tooltipProviderProps = {\n /** Delay before opening on hover, ms. */\n delayDuration: { type: Number, default: 700 },\n /** Window after a tooltip closes during which sibling tooltips skip the delay, ms. */\n skipDelayDuration: { type: Number, default: 300 },\n /** Disable hovering-only opens (focus still works). */\n disableHoverableContent: { type: Boolean, default: false },\n /** Disable closing on pointer-down outside content. */\n disableClosingTrigger: { type: Boolean, default: false },\n /** Treat non-keyboard focus events as not focusing the trigger. */\n ignoreNonKeyboardFocus: { type: Boolean, default: false },\n};\n\nexport type TooltipProviderProps = ExtractPublicPropTypes<typeof tooltipProviderProps>;\n\n/**\n * App-level tooltip configuration. Wrap your app once (or specific subtrees)\n * to control delays + skip-grouping for every nested `<VCTooltip>`.\n *\n * Maps to Reka's `TooltipProvider`.\n */\nexport default defineComponent({\n name: 'VCTooltipProvider',\n inheritAttrs: false,\n props: tooltipProviderProps,\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n TooltipProvider,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { TooltipRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst tooltipProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n /** Per-tooltip override of the provider's hover-open delay (ms). Falls through to provider when undefined. */\n delayDuration: { type: Number as PropType<number | undefined>, default: undefined },\n /** Per-tooltip override — disable hover-only opens (focus still works). Falls through to provider when undefined. */\n disableHoverableContent: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Per-tooltip override — disable closing on pointer-down outside. Falls through to provider when undefined. */\n disableClosingTrigger: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n};\n\nexport type TooltipProps = ExtractPublicPropTypes<typeof tooltipProps>;\n\nexport default defineComponent({\n name: 'VCTooltip',\n inheritAttrs: false,\n props: tooltipProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n TooltipRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { TooltipRoot } from 'reka-ui';\nimport { useForwardPropsEmits } from '@vuecs/core';\n\nconst tooltipProps = {\n /** Controlled open state. Bind via `v-model:open`. */\n open: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Initial open state for uncontrolled usage. */\n defaultOpen: { type: Boolean, default: false },\n /** Per-tooltip override of the provider's hover-open delay (ms). Falls through to provider when undefined. */\n delayDuration: { type: Number as PropType<number | undefined>, default: undefined },\n /** Per-tooltip override — disable hover-only opens (focus still works). Falls through to provider when undefined. */\n disableHoverableContent: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n /** Per-tooltip override — disable closing on pointer-down outside. Falls through to provider when undefined. */\n disableClosingTrigger: { type: Boolean as PropType<boolean | undefined>, default: undefined },\n};\n\nexport type TooltipProps = ExtractPublicPropTypes<typeof tooltipProps>;\n\nexport default defineComponent({\n name: 'VCTooltip',\n inheritAttrs: false,\n props: tooltipProps,\n emits: ['update:open'],\n setup(props, { slots, emit }) {\n const forwarded = useForwardPropsEmits(props, emit);\n return () => h(\n TooltipRoot,\n forwarded.value,\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","import type { ComponentThemeDefinition } from '@vuecs/core';\nimport type { TooltipThemeClasses } from './types';\n\nexport const tooltipThemeDefaults: ComponentThemeDefinition<TooltipThemeClasses> = {\n classes: {\n content: 'vc-tooltip-content',\n trigger: 'vc-tooltip-trigger',\n arrow: 'vc-tooltip-arrow',\n },\n};\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { TooltipTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { tooltipThemeDefaults } from './theme';\nimport type { TooltipThemeClasses } from './types';\n\nconst tooltipTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<TooltipThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type TooltipTriggerProps = ExtractPublicPropTypes<typeof tooltipTriggerProps>;\n\nexport default defineComponent({\n name: 'VCTooltipTrigger',\n inheritAttrs: false,\n props: tooltipTriggerProps,\n setup(props, { attrs, slots }) {\n const theme = useComponentTheme('tooltip', props, tooltipThemeDefaults);\n return () => h(\n TooltipTrigger,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { TooltipTrigger } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { tooltipThemeDefaults } from './theme';\nimport type { TooltipThemeClasses } from './types';\n\nconst tooltipTriggerProps = {\n /** HTML tag (or component) to render as. Reka default: `'button'`. */\n as: { type: String, default: 'button' },\n /** Render the slot content as the rendered element instead of wrapping it. */\n asChild: { type: Boolean, default: false },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<TooltipThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type TooltipTriggerProps = ExtractPublicPropTypes<typeof tooltipTriggerProps>;\n\nexport default defineComponent({\n name: 'VCTooltipTrigger',\n inheritAttrs: false,\n props: tooltipTriggerProps,\n setup(props, { attrs, slots }) {\n const theme = useComponentTheme('tooltip', props, tooltipThemeDefaults);\n return () => h(\n TooltipTrigger,\n mergeProps(attrs, {\n as: props.as,\n asChild: props.asChild,\n class: theme.value.trigger || undefined,\n }),\n { default: () => slots.default?.() },\n );\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { TooltipContent, TooltipPortal } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { tooltipThemeDefaults } from './theme';\nimport type { TooltipThemeClasses } from './types';\n\nconst tooltipContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Preferred side relative to the trigger. Reka default for tooltip: `'top'`. */\n side: { type: String as PropType<'top' | 'right' | 'bottom' | 'left'>, default: 'top' },\n /** Distance in pixels between trigger and panel. Vuecs convention: 4 (Reka default: 0). */\n sideOffset: { type: Number, default: 4 },\n /** Alignment along the chosen side. */\n align: { type: String as PropType<'start' | 'center' | 'end'>, default: 'center' },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the panel to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<TooltipThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type TooltipContentProps = ExtractPublicPropTypes<typeof tooltipContentProps>;\n\nexport default defineComponent({\n name: 'VCTooltipContent',\n inheritAttrs: false,\n props: tooltipContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('tooltip', props, tooltipThemeDefaults);\n\n const renderContent = () => h(\n TooltipContent,\n mergeProps(attrs, {\n side: props.side,\n sideOffset: props.sideOffset,\n align: props.align,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n class: theme.value.content || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(TooltipPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h, mergeProps } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { TooltipContent, TooltipPortal } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { tooltipThemeDefaults } from './theme';\nimport type { TooltipThemeClasses } from './types';\n\nconst tooltipContentProps = {\n /** Skip the portal and render in-place (testing / custom mounting). Internal — never forwarded to Reka. */\n inline: { type: Boolean, default: false },\n /** Preferred side relative to the trigger. Reka default for tooltip: `'top'`. */\n side: { type: String as PropType<'top' | 'right' | 'bottom' | 'left'>, default: 'top' },\n /** Distance in pixels between trigger and panel. Vuecs convention: 4 (Reka default: 0). */\n sideOffset: { type: Number, default: 4 },\n /** Alignment along the chosen side. */\n align: { type: String as PropType<'start' | 'center' | 'end'>, default: 'center' },\n /** Offset in pixels along the alignment axis. */\n alignOffset: { type: Number, default: 0 },\n /** Flip / shift the panel to stay inside the viewport. */\n avoidCollisions: { type: Boolean, default: true },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<TooltipThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type TooltipContentProps = ExtractPublicPropTypes<typeof tooltipContentProps>;\n\nexport default defineComponent({\n name: 'VCTooltipContent',\n inheritAttrs: false,\n props: tooltipContentProps,\n setup(props, { slots, attrs }) {\n const theme = useComponentTheme('tooltip', props, tooltipThemeDefaults);\n\n const renderContent = () => h(\n TooltipContent,\n mergeProps(attrs, {\n side: props.side,\n sideOffset: props.sideOffset,\n align: props.align,\n alignOffset: props.alignOffset,\n avoidCollisions: props.avoidCollisions,\n class: theme.value.content || undefined,\n }),\n { default: () => slots.default?.() },\n );\n\n return () => {\n if (props.inline) {\n return renderContent();\n }\n return h(TooltipPortal, null, { default: () => renderContent() });\n };\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { TooltipArrow } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { tooltipThemeDefaults } from './theme';\nimport type { TooltipThemeClasses } from './types';\n\nconst tooltipArrowProps = {\n /** Arrow width in pixels. */\n width: { type: Number, default: 10 },\n /** Arrow height in pixels. */\n height: { type: Number, default: 5 },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<TooltipThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type TooltipArrowProps = ExtractPublicPropTypes<typeof tooltipArrowProps>;\n\nexport default defineComponent({\n name: 'VCTooltipArrow',\n props: tooltipArrowProps,\n setup(props) {\n const theme = useComponentTheme('tooltip', props, tooltipThemeDefaults);\n return () => h(TooltipArrow, {\n width: props.width,\n height: props.height,\n class: theme.value.arrow || undefined,\n });\n },\n});\n</script>\n","<script lang=\"ts\">\nimport { defineComponent, h } from 'vue';\nimport type { ExtractPublicPropTypes, PropType } from 'vue';\nimport { TooltipArrow } from 'reka-ui';\nimport { useComponentTheme } from '@vuecs/core';\nimport type { ThemeClassesOverride, VariantValues } from '@vuecs/core';\nimport { tooltipThemeDefaults } from './theme';\nimport type { TooltipThemeClasses } from './types';\n\nconst tooltipArrowProps = {\n /** Arrow width in pixels. */\n width: { type: Number, default: 10 },\n /** Arrow height in pixels. */\n height: { type: Number, default: 5 },\n /** Per-instance theme override — flat slot key map. */\n themeClass: { type: Object as PropType<ThemeClassesOverride<TooltipThemeClasses>>, default: undefined },\n /** Per-instance variant values. */\n themeVariant: { type: Object as PropType<VariantValues>, default: undefined },\n};\n\nexport type TooltipArrowProps = ExtractPublicPropTypes<typeof tooltipArrowProps>;\n\nexport default defineComponent({\n name: 'VCTooltipArrow',\n props: tooltipArrowProps,\n setup(props) {\n const theme = useComponentTheme('tooltip', props, tooltipThemeDefaults);\n return () => h(TooltipArrow, {\n width: props.width,\n height: props.height,\n class: theme.value.arrow || undefined,\n });\n },\n});\n</script>\n","import type { App, Plugin } from 'vue';\nimport { installConfigManager, installDefaultsManager, installThemeManager } from '@vuecs/core';\nimport type { CoreOptions } from '@vuecs/core';\n\nimport './vue';\nimport { registerOverlayConfigDefaults } from './config';\nimport {\n VCContextMenu,\n VCContextMenuCheckboxItem,\n VCContextMenuContent,\n VCContextMenuGroup,\n VCContextMenuItem,\n VCContextMenuItemIndicator,\n VCContextMenuLabel,\n VCContextMenuRadioGroup,\n VCContextMenuRadioItem,\n VCContextMenuSeparator,\n VCContextMenuSub,\n VCContextMenuSubContent,\n VCContextMenuSubTrigger,\n VCContextMenuTrigger,\n VCDropdownMenu,\n VCDropdownMenuArrow,\n VCDropdownMenuCheckboxItem,\n VCDropdownMenuContent,\n VCDropdownMenuGroup,\n VCDropdownMenuItem,\n VCDropdownMenuItemIndicator,\n VCDropdownMenuLabel,\n VCDropdownMenuRadioGroup,\n VCDropdownMenuRadioItem,\n VCDropdownMenuSeparator,\n VCDropdownMenuSub,\n VCDropdownMenuSubContent,\n VCDropdownMenuSubTrigger,\n VCDropdownMenuTrigger,\n VCHoverCard,\n VCHoverCardArrow,\n VCHoverCardContent,\n VCHoverCardTrigger,\n VCModal,\n VCModalClose,\n VCModalContent,\n VCModalDescription,\n VCModalTitle,\n VCModalTrigger,\n VCPopover,\n VCPopoverArrow,\n VCPopoverClose,\n VCPopoverContent,\n VCPopoverTrigger,\n VCPresence,\n VCToast,\n VCToastAction,\n VCToastClose,\n VCToastDescription,\n VCToastProvider,\n VCToastTitle,\n VCToaster,\n VCTooltip,\n VCTooltipArrow,\n VCTooltipContent,\n VCTooltipProvider,\n VCTooltipTrigger,\n} from './components';\n\nexport * from './components';\n\nexport type Options = CoreOptions;\n\nexport function install(app: App, options: Options = {}): void {\n installThemeManager(app, options);\n installDefaultsManager(app, options);\n const config = installConfigManager(app, options);\n registerOverlayConfigDefaults(config);\n\n Object.entries({\n VCPresence,\n VCModal,\n VCModalTrigger,\n VCModalContent,\n VCModalTitle,\n VCModalDescription,\n VCModalClose,\n VCPopover,\n VCPopoverTrigger,\n VCPopoverContent,\n VCPopoverArrow,\n VCPopoverClose,\n VCTooltipProvider,\n VCTooltip,\n VCTooltipTrigger,\n VCTooltipContent,\n VCTooltipArrow,\n VCDropdownMenu,\n VCDropdownMenuTrigger,\n VCDropdownMenuContent,\n VCDropdownMenuItem,\n VCDropdownMenuCheckboxItem,\n VCDropdownMenuRadioGroup,\n VCDropdownMenuRadioItem,\n VCDropdownMenuItemIndicator,\n VCDropdownMenuLabel,\n VCDropdownMenuSeparator,\n VCDropdownMenuGroup,\n VCDropdownMenuSub,\n VCDropdownMenuSubTrigger,\n VCDropdownMenuSubContent,\n VCDropdownMenuArrow,\n VCHoverCard,\n VCHoverCardTrigger,\n VCHoverCardContent,\n VCHoverCardArrow,\n VCContextMenu,\n VCContextMenuTrigger,\n VCContextMenuContent,\n VCContextMenuItem,\n VCContextMenuCheckboxItem,\n VCContextMenuRadioGroup,\n VCContextMenuRadioItem,\n VCContextMenuItemIndicator,\n VCContextMenuLabel,\n VCContextMenuSeparator,\n VCContextMenuGroup,\n VCContextMenuSub,\n VCContextMenuSubTrigger,\n VCContextMenuSubContent,\n VCToastProvider,\n VCToaster,\n VCToast,\n VCToastTitle,\n VCToastDescription,\n VCToastAction,\n VCToastClose,\n }).forEach(([name, component]) => {\n app.component(name, component);\n });\n}\n\nexport default { install } satisfies Plugin<[Options?]>;\n"],"mappings":"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"}