{
	"$schema": "https://shadcn-svelte.com/schema/registry-item.json",
	"name": "shiny-button",
	"title": "Shiny Button",
	"type": "registry:ui",
	"description": "A button with a shiny reflection effect.",
	"dependencies": [
		"class-variance-authority@^0.7.1"
	],
	"registryDependencies": [
		"button"
	],
	"files": [
		{
			"content": "<script lang=\"ts\">\n\timport { cn } from '$UTILS$';\n\timport { buttonVariants } from '$lib/components/ui/button';\n\timport type { Snippet } from 'svelte';\n\timport type { VariantProps } from 'class-variance-authority';\n\timport type { HTMLButtonAttributes, HTMLAnchorAttributes } from 'svelte/elements';\n\n\ttype Props = (HTMLButtonAttributes & HTMLAnchorAttributes) &\n\t\tVariantProps<typeof buttonVariants> & {\n\t\t\tchildren: Snippet;\n\t\t};\n\n\tlet {\n\t\tclass: className,\n\t\tvariant = 'default',\n\t\tsize = 'default',\n\t\thref = undefined,\n\t\tchildren,\n\t\t...rest\n\t}: Props = $props();\n</script>\n\n{#snippet ButtonContent()}\n\t<div\n\t\tclass=\"shine-element absolute inset-0 -top-[20%] -bottom-[20%] z-0 hidden w-[50%] -translate-x-[200%] skew-x-[-20deg] bg-gradient-to-r from-transparent via-current to-transparent opacity-30 group-hover:animate-none md:block\"\n\t\taria-hidden=\"true\"\n\t></div>\n\n\t<span class=\"relative z-10 flex items-center justify-center\">\n\t\t{@render children()}\n\t</span>\n{/snippet}\n\n{#if href}\n\t<a\n\t\tclass={cn(\n\t\t\t'relative overflow-hidden group cursor-pointer',\n\t\t\tbuttonVariants({ variant, size }),\n\t\t\tclassName\n\t\t)}\n\t\t{href}\n\t\t{...rest}\n\t>\n\t\t{@render ButtonContent()}\n\t</a>\n{:else}\n\t<button\n\t\tclass={cn(\n\t\t\t'relative overflow-hidden group cursor-pointer',\n\t\t\tbuttonVariants({ variant, size }),\n\t\t\tclassName\n\t\t)}\n\t\t{...rest}\n\t>\n\t\t{@render ButtonContent()}\n\t</button>\n{/if}\n\n<style>\n\t.shine-element {\n\t\tanimation: shine 4s ease-in-out infinite;\n\t}\n\n\t@keyframes shine {\n\t\t0% {\n\t\t\tleft: -100%;\n\t\t}\n\t\t15% {\n\t\t\tleft: 210%;\n\t\t}\n\t\t100% {\n\t\t\tleft: 210%;\n\t\t}\n\t}\n</style>\n",
			"type": "registry:ui",
			"target": "shiny-button/shiny-button.svelte"
		},
		{
			"content": "import ShinyButton from \"./shiny-button.svelte\";\r\nexport { ShinyButton };",
			"type": "registry:ui",
			"target": "shiny-button/index.ts"
		}
	]
}