feat: added product page
This commit is contained in:
20
src/lib/components/ui/icon/Icon.svelte
Normal file
20
src/lib/components/ui/icon/Icon.svelte
Normal file
@@ -0,0 +1,20 @@
|
||||
<script lang="ts">
|
||||
import { icons } from '@lucide/svelte'
|
||||
import type { IconKeys } from '.'
|
||||
let {
|
||||
name,
|
||||
class: className,
|
||||
...props
|
||||
}: { name: IconKeys; class?: string } = $props()
|
||||
|
||||
const Icon = $derived.by(() => {
|
||||
if (name in icons) {
|
||||
// @ts-ignore
|
||||
return icons[name]
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
{#if Icon}
|
||||
<Icon class={className} {...props} />
|
||||
{/if}
|
||||
5
src/lib/components/ui/icon/index.ts
Normal file
5
src/lib/components/ui/icon/index.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import Icon from './Icon.svelte'
|
||||
import { icons } from '@lucide/svelte'
|
||||
type IconKeys = keyof typeof icons
|
||||
|
||||
export { Icon, type IconKeys }
|
||||
Reference in New Issue
Block a user