{
  "name": "resizable",
  "type": "registry:ui",
  "dependencies": [
    "@vueuse/core",
    "reka-ui"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "ui/resizable/ResizableHandle.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { SplitterResizeHandleEmits, SplitterResizeHandleProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { SplitterResizeHandle, useForwardPropsEmits } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<SplitterResizeHandleProps & { class?: HTMLAttributes[\"class\"], withHandle?: boolean }>()\nconst emits = defineEmits<SplitterResizeHandleEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\", \"withHandle\")\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n  <SplitterResizeHandle\n    data-slot=\"resizable-handle\"\n    v-bind=\"forwarded\"\n    :class=\"cn('cn-resizable-handle relative flex w-px items-center justify-center bg-border ring-offset-background after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:outline-hidden data-[orientation=vertical]:h-px data-[orientation=vertical]:w-full data-[orientation=vertical]:after:left-0 data-[orientation=vertical]:after:h-1 data-[orientation=vertical]:after:w-full data-[orientation=vertical]:after:translate-x-0 data-[orientation=vertical]:after:-translate-y-1/2 [&[data-orientation=vertical]>div]:rotate-90', props.class)\"\n  >\n    <template v-if=\"props.withHandle\">\n      <div class=\"cn-resizable-handle-icon z-10 flex shrink-0\">\n        <slot />\n      </div>\n    </template>\n  </SplitterResizeHandle>\n</template>\n"
    },
    {
      "path": "ui/resizable/ResizablePanel.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { SplitterPanelEmits, SplitterPanelProps } from \"reka-ui\"\nimport { SplitterPanel, useForwardExpose, useForwardPropsEmits } from \"reka-ui\"\n\nconst props = defineProps<SplitterPanelProps>()\nconst emits = defineEmits<SplitterPanelEmits>()\n\nconst forwarded = useForwardPropsEmits(props, emits)\nuseForwardExpose()\n</script>\n\n<template>\n  <SplitterPanel\n    v-slot=\"slotProps\"\n    data-slot=\"resizable-panel\"\n    v-bind=\"forwarded\"\n  >\n    <slot v-bind=\"slotProps\" />\n  </SplitterPanel>\n</template>\n"
    },
    {
      "path": "ui/resizable/ResizablePanelGroup.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { SplitterGroupEmits, SplitterGroupProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { SplitterGroup, useForwardPropsEmits } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<SplitterGroupProps & { class?: HTMLAttributes[\"class\"] }>()\nconst emits = defineEmits<SplitterGroupEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n  <SplitterGroup\n    v-slot=\"slotProps\"\n    data-slot=\"resizable-panel-group\"\n    v-bind=\"forwarded\"\n    :class=\"cn('cn-resizable-panel-group flex h-full w-full data-[orientation=vertical]:flex-col', props.class)\"\n  >\n    <slot v-bind=\"slotProps\" />\n  </SplitterGroup>\n</template>\n"
    },
    {
      "path": "ui/resizable/index.ts",
      "type": "registry:ui",
      "content": "export { default as ResizableHandle } from \"./ResizableHandle.vue\"\nexport { default as ResizablePanel } from \"./ResizablePanel.vue\"\nexport { default as ResizablePanelGroup } from \"./ResizablePanelGroup.vue\"\n"
    }
  ]
}
