|
1 | | -<!-- @migration-task Error while migrating Svelte code: This migration would change the name of a slot making the component unusable --> |
2 | | -<!-- @migration-task Error while migrating Svelte code: This migration would change the name of a slot making the component unusable --> |
3 | | -<!-- // TODO: check it - Error while migrating Svelte code: This migration would change the name of a slot making the component unusable --> |
4 | 1 | <script lang="ts"> |
5 | 2 | import { tooltip } from '$lib/actions/tooltip'; |
6 | 3 | import type { Placement } from '@floating-ui/dom'; |
|
33 | 30 | xl: 'px-7 py-4 text-lg' |
34 | 31 | }; |
35 | 32 |
|
36 | | - interface $$Props extends HTMLButtonAttributes { |
| 33 | + interface Props extends HTMLButtonAttributes { |
37 | 34 | variant: keyof typeof variants; |
38 | 35 | tooltipPlacement?: Placement; |
39 | 36 | size?: keyof typeof sizes; |
40 | 37 | class?: string; |
| 38 | + children?: import('svelte').Snippet; |
| 39 | + tooltip?: import('svelte').Snippet; |
41 | 40 | } |
42 | 41 |
|
43 | | - export let variant: keyof typeof variants; |
44 | | - export let tooltipPlacement: Placement = 'right'; |
45 | | - export let size: keyof typeof sizes = 'md'; |
46 | | - let className = ''; |
47 | | - export { className as class }; |
| 42 | + let { |
| 43 | + variant, |
| 44 | + tooltipPlacement = 'right', |
| 45 | + size = 'md', |
| 46 | + class: className = '', |
| 47 | + children, |
| 48 | + tooltip: tooltipSnippet, |
| 49 | + onclick, |
| 50 | + ...restProps |
| 51 | + }: Props = $props(); |
48 | 52 | </script> |
49 | 53 |
|
50 | | -<!-- <div use:tooltip={{ placement: tooltipPlacement }} class="w-full"> |
51 | | - <button |
52 | | - on:click |
53 | | - data-trigger |
54 | | - class={twMerge(baseClasses, disabledClasses, variants[variant], sizes[size], className)} |
55 | | - {...$$restProps} |
56 | | - > |
57 | | - <slot /> |
58 | | - </button> |
59 | | -
|
60 | | - {#if $$slots.tooltip} |
61 | | - <div role="tooltip" class="tooltip"> |
62 | | - <slot name="tooltip" /> |
63 | | - </div> |
64 | | - {/if} |
65 | | -</div> --> |
66 | | - |
67 | 54 | <button |
68 | | - on:click |
| 55 | + {onclick} |
69 | 56 | data-trigger |
70 | 57 | use:tooltip={{ placement: tooltipPlacement, isTrigger: true }} |
71 | 58 | class={twMerge(baseClasses, variants[variant], sizes[size], disabledClasses, className, ' ')} |
72 | | - {...$$restProps} |
| 59 | + {...restProps} |
73 | 60 | > |
74 | | - <slot /> |
| 61 | + {@render children?.()} |
75 | 62 |
|
76 | | - {#if $$slots.tooltip} |
| 63 | + {#if tooltipSnippet} |
77 | 64 | <div role="tooltip" class="tooltip ring-bl"> |
78 | | - <slot name="tooltip" /> |
| 65 | + {@render tooltipSnippet()} |
79 | 66 | </div> |
80 | 67 | {/if} |
81 | 68 | </button> |
0 commit comments