{
  "name": "select",
  "title": "Select",
  "description": "Kura Select component source.",
  "type": "ui",
  "add": "when-added",
  "files": [
    {
      "type": "ui",
      "role": "file",
      "content": "import Root from './select.svelte';\nimport Group from './select-group.svelte';\nimport Label from './select-label.svelte';\nimport Item from './select-item.svelte';\nimport Content from './select-content.svelte';\nimport Trigger from './select-trigger.svelte';\nimport Separator from './select-separator.svelte';\nimport ScrollDownButton from './select-scroll-down-button.svelte';\nimport ScrollUpButton from './select-scroll-up-button.svelte';\nimport GroupHeading from './select-group-heading.svelte';\nimport Portal from './select-portal.svelte';\n\nexport {\n  Root,\n  Group,\n  Label,\n  Item,\n  Content,\n  Trigger,\n  Separator,\n  ScrollDownButton,\n  ScrollUpButton,\n  GroupHeading,\n  Portal,\n  //\n  Root as Select,\n  Group as SelectGroup,\n  Label as SelectLabel,\n  Item as SelectItem,\n  Content as SelectContent,\n  Trigger as SelectTrigger,\n  Separator as SelectSeparator,\n  ScrollDownButton as SelectScrollDownButton,\n  ScrollUpButton as SelectScrollUpButton,\n  GroupHeading as SelectGroupHeading,\n  Portal as SelectPortal\n};\n",
      "path": "select/index.ts",
      "_imports_": [
        {
          "import": "./select.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-group.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-group.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-label.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-label.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-item.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-item.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-content.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-content.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-trigger.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-trigger.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-separator.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-separator.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-scroll-down-button.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-scroll-down-button.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-scroll-up-button.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-scroll-up-button.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-group-heading.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-group-heading.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-portal.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-portal.svelte"
          },
          "meta": {}
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import { Select as SelectPrimitive } from 'bits-ui';\n  import SelectPortal from './select-portal.svelte';\n  import SelectScrollUpButton from './select-scroll-up-button.svelte';\n  import SelectScrollDownButton from './select-scroll-down-button.svelte';\n  import { cn, type WithoutChild } from '$lib/utils.js';\n  import type { ComponentProps } from 'svelte';\n  import type { WithoutChildrenOrChild } from '$lib/utils.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    sideOffset = 4,\n    portalProps,\n    children,\n    preventScroll = true,\n    ...restProps\n  }: WithoutChild<SelectPrimitive.ContentProps> & {\n    portalProps?: WithoutChildrenOrChild<ComponentProps<typeof SelectPortal>>;\n  } = $props();\n</script>\n\n<SelectPortal {...portalProps}>\n  <SelectPrimitive.Content\n    bind:ref\n    {sideOffset}\n    {preventScroll}\n    data-slot=\"select-content\"\n    class={cn(\n      'bg-popover text-xs text-popover-foreground ring-1 ring-foreground/10 shadow-md data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 min-w-36 rounded-overlay  duration-100 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 relative isolate z-50 overflow-x-hidden overflow-y-auto',\n      className\n    )}\n    {...restProps}\n  >\n    <SelectScrollUpButton />\n    <SelectPrimitive.Viewport\n      class={cn(\n        'h-(--bits-select-anchor-height) w-full min-w-(--bits-select-anchor-width) scroll-my-1'\n      )}\n    >\n      {@render children?.()}\n    </SelectPrimitive.Viewport>\n    <SelectScrollDownButton />\n  </SelectPrimitive.Content>\n</SelectPortal>\n",
      "path": "select/select-content.svelte",
      "_imports_": [
        {
          "import": "./select-portal.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-portal.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-scroll-up-button.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-scroll-up-button.svelte"
          },
          "meta": {}
        },
        {
          "import": "./select-scroll-down-button.svelte",
          "item": "select",
          "file": {
            "type": "ui",
            "path": "select/select-scroll-down-button.svelte"
          },
          "meta": {}
        },
        {
          "import": "$lib/utils.js",
          "item": "utils",
          "file": {
            "type": "lib",
            "path": "utils.ts"
          },
          "meta": {}
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import { Select as SelectPrimitive } from 'bits-ui';\n  import { cn } from '$lib/utils.js';\n  import type { ComponentProps } from 'svelte';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    children,\n    ...restProps\n  }: ComponentProps<typeof SelectPrimitive.GroupHeading> = $props();\n</script>\n\n<SelectPrimitive.GroupHeading\n  bind:ref\n  data-slot=\"select-group-heading\"\n  class={cn('px-2 py-1.5  text-xs font-medium  text-muted-foreground/50 ', className)}\n  {...restProps}\n>\n  {@render children?.()}\n</SelectPrimitive.GroupHeading>\n",
      "path": "select/select-group-heading.svelte",
      "_imports_": [
        {
          "import": "$lib/utils.js",
          "item": "utils",
          "file": {
            "type": "lib",
            "path": "utils.ts"
          },
          "meta": {}
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import { Select as SelectPrimitive } from 'bits-ui';\n  import { cn } from '$lib/utils.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: SelectPrimitive.GroupProps = $props();\n</script>\n\n<SelectPrimitive.Group\n  bind:ref\n  data-slot=\"select-group\"\n  class={cn('scroll-my-1.5 p-1.5 text-muted-foreground', className)}\n  {...restProps}\n/>\n",
      "path": "select/select-group.svelte",
      "_imports_": [
        {
          "import": "$lib/utils.js",
          "item": "utils",
          "file": {
            "type": "lib",
            "path": "utils.ts"
          },
          "meta": {}
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import { Select as SelectPrimitive } from 'bits-ui';\n  import { cn, type WithoutChild } from '$lib/utils.js';\n  import CheckIcon from 'phosphor-svelte/lib/CheckIcon';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    value,\n    label,\n    children: childrenProp,\n    ...restProps\n  }: WithoutChild<SelectPrimitive.ItemProps> = $props();\n</script>\n\n<SelectPrimitive.Item\n  bind:ref\n  {value}\n  data-slot=\"select-item\"\n  class={cn(\n    \"focus:bg-primary/18 focus:text-foreground not-data-[variant=destructive]:focus:**:text-foreground gap-2.5 rounded-item py-2 pr-8 pl-3  text-xs font-medium  text-muted-foreground [&_svg:not([class*='size-'])]:size-3.5 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2 data-highlighted:bg-primary/18 data-highlighted:text-foreground relative flex w-full cursor-default items-center outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n    className\n  )}\n  {...restProps}\n>\n  {#snippet children({ selected, highlighted })}\n    <span class=\"absolute end-2 flex size-3.5 items-center justify-center text-link\">\n      {#if selected}\n        <CheckIcon class=\"cn-select-item-indicator-icon\" />\n      {/if}\n    </span>\n    <span class=\"flex flex-1 gap-2 shrink-0 whitespace-nowrap\">\n      {#if childrenProp}\n        {@render childrenProp({ selected, highlighted })}\n      {:else}\n        {label || value}\n      {/if}\n    </span>\n  {/snippet}\n</SelectPrimitive.Item>\n",
      "path": "select/select-item.svelte",
      "_imports_": [
        {
          "import": "$lib/utils.js",
          "item": "utils",
          "file": {
            "type": "lib",
            "path": "utils.ts"
          },
          "meta": {}
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import { cn, type WithElementRef } from '$lib/utils.js';\n  import type { HTMLAttributes } from 'svelte/elements';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    children,\n    ...restProps\n  }: WithElementRef<HTMLAttributes<HTMLDivElement>> & {} = $props();\n</script>\n\n<div\n  bind:this={ref}\n  data-slot=\"select-label\"\n  class={cn(\n    'border-b border-border px-3 py-2  text-xs font-medium  text-muted-foreground/50 ',\n    className\n  )}\n  {...restProps}\n>\n  {@render children?.()}\n</div>\n",
      "path": "select/select-label.svelte",
      "_imports_": [
        {
          "import": "$lib/utils.js",
          "item": "utils",
          "file": {
            "type": "lib",
            "path": "utils.ts"
          },
          "meta": {}
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import { Select as SelectPrimitive } from 'bits-ui';\n\n  let { ...restProps }: SelectPrimitive.PortalProps = $props();\n</script>\n\n<SelectPrimitive.Portal {...restProps} />\n",
      "path": "select/select-portal.svelte",
      "_imports_": [],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import { Select as SelectPrimitive } from 'bits-ui';\n  import { cn, type WithoutChildrenOrChild } from '$lib/utils.js';\n  import CaretDownIcon from 'phosphor-svelte/lib/CaretDownIcon';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: WithoutChildrenOrChild<SelectPrimitive.ScrollDownButtonProps> = $props();\n</script>\n\n<SelectPrimitive.ScrollDownButton\n  bind:ref\n  data-slot=\"select-scroll-down-button\"\n  class={cn(\n    \"bg-muted text-muted-foreground/50 z-10 flex cursor-default items-center justify-center border-t border-border py-1 [&_svg:not([class*='size-'])]:size-3.5 bottom-0 w-full\",\n    className\n  )}\n  {...restProps}\n>\n  <CaretDownIcon />\n</SelectPrimitive.ScrollDownButton>\n",
      "path": "select/select-scroll-down-button.svelte",
      "_imports_": [
        {
          "import": "$lib/utils.js",
          "item": "utils",
          "file": {
            "type": "lib",
            "path": "utils.ts"
          },
          "meta": {}
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import { Select as SelectPrimitive } from 'bits-ui';\n  import { cn, type WithoutChildrenOrChild } from '$lib/utils.js';\n  import CaretUpIcon from 'phosphor-svelte/lib/CaretUpIcon';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: WithoutChildrenOrChild<SelectPrimitive.ScrollUpButtonProps> = $props();\n</script>\n\n<SelectPrimitive.ScrollUpButton\n  bind:ref\n  data-slot=\"select-scroll-up-button\"\n  class={cn(\n    \"bg-muted text-muted-foreground/50 z-10 flex cursor-default items-center justify-center border-b border-border py-1 [&_svg:not([class*='size-'])]:size-3.5 top-0 w-full\",\n    className\n  )}\n  {...restProps}\n>\n  <CaretUpIcon />\n</SelectPrimitive.ScrollUpButton>\n",
      "path": "select/select-scroll-up-button.svelte",
      "_imports_": [
        {
          "import": "$lib/utils.js",
          "item": "utils",
          "file": {
            "type": "lib",
            "path": "utils.ts"
          },
          "meta": {}
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import type { Separator as SeparatorPrimitive } from 'bits-ui';\n  import { Separator } from '$lib/components/ui/separator/index.js';\n  import { cn } from '$lib/utils.js';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    ...restProps\n  }: SeparatorPrimitive.RootProps = $props();\n</script>\n\n<Separator\n  bind:ref\n  data-slot=\"select-separator\"\n  class={cn('bg-muted -mx-1.5 my-1.5 h-px pointer-events-none', className)}\n  {...restProps}\n/>\n",
      "path": "select/select-separator.svelte",
      "_imports_": [
        {
          "import": "$lib/components/ui/separator/index.js",
          "item": "separator",
          "file": {
            "type": "ui",
            "path": "separator/index.ts"
          },
          "meta": {}
        },
        {
          "import": "$lib/utils.js",
          "item": "utils",
          "file": {
            "type": "lib",
            "path": "utils.ts"
          },
          "meta": {}
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import { Select as SelectPrimitive } from 'bits-ui';\n  import { cn, type WithoutChild } from '$lib/utils.js';\n  import CaretDownIcon from 'phosphor-svelte/lib/CaretDownIcon';\n\n  let {\n    ref = $bindable(null),\n    class: className,\n    children,\n    size = 'default',\n    ...restProps\n  }: WithoutChild<SelectPrimitive.TriggerProps> & {\n    size?: 'sm' | 'default';\n  } = $props();\n</script>\n\n<SelectPrimitive.Trigger\n  bind:ref\n  data-slot=\"select-trigger\"\n  data-size={size}\n  class={cn(\n    \"border-border bg-muted text-foreground data-placeholder:text-muted-foreground/50 focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/25 aria-invalid:border-destructive aria-invalid:ring-1 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 gap-1.5 rounded-control border px-3 py-1 text-sm transition-[color,border-color,box-shadow] data-[size=default]:h-8 data-[size=sm]:h-7 *:data-[slot=select-value]:flex *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-3.5 flex w-fit items-center justify-between whitespace-nowrap outline-none disabled:cursor-not-allowed disabled:opacity-50 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n    className\n  )}\n  {...restProps}\n>\n  {@render children?.()}\n  <CaretDownIcon class=\"text-muted-foreground/50 size-3.5 pointer-events-none\" />\n</SelectPrimitive.Trigger>\n",
      "path": "select/select-trigger.svelte",
      "_imports_": [
        {
          "import": "$lib/utils.js",
          "item": "utils",
          "file": {
            "type": "lib",
            "path": "utils.ts"
          },
          "meta": {}
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    },
    {
      "type": "ui",
      "role": "file",
      "content": "<script lang=\"ts\">\n  import { Select as SelectPrimitive } from 'bits-ui';\n\n  let {\n    open = $bindable(false),\n    value = $bindable(),\n    ...restProps\n  }: SelectPrimitive.RootProps = $props();\n</script>\n\n<SelectPrimitive.Root bind:open bind:value={value as never} {...restProps} />\n",
      "path": "select/select.svelte",
      "_imports_": [],
      "registryDependencies": [],
      "dependencies": [],
      "devDependencies": []
    }
  ],
  "registryDependencies": [
    "styles",
    "utils",
    "separator"
  ],
  "dependencies": [
    {
      "ecosystem": "js",
      "name": "bits-ui",
      "version": "^2.18.1"
    },
    {
      "ecosystem": "js",
      "name": "phosphor-svelte",
      "version": "^3.1.0"
    }
  ],
  "devDependencies": []
}