Skip to content

Commit 92fa5bb

Browse files
committed
feat(svelte): updated Block components
1 parent 15a15a4 commit 92fa5bb

4 files changed

Lines changed: 69 additions & 64 deletions

File tree

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
<script>
22
import { colorClasses } from '../shared/mixins.js';
33
import { classNames } from '../shared/utils.js';
4-
import { restProps } from '../shared/rest-props.js';
54
6-
let className = undefined;
7-
export { className as class };
5+
let {
6+
class: className,
7+
children,
8+
...restProps
9+
} = $props();
810
9-
$: classes = classNames(className, 'block-footer', colorClasses($$props));
11+
const classes = $derived(classNames(className, 'block-footer', colorClasses(restProps)));
1012
</script>
1113

12-
<div class={classes} {...restProps($$restProps)}>
13-
<slot />
14+
<div class={classes} {...restProps}>
15+
{@render children?.()}
1416
</div>
Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
<script>
2-
import { restProps } from '../shared/rest-props.js';
32
import { colorClasses } from '../shared/mixins.js';
43
import { classNames } from '../shared/utils.js';
54
6-
let className = undefined;
7-
export { className as class };
5+
let {
6+
class: className,
7+
children,
8+
...restProps
9+
} = $props();
810
9-
$: classes = classNames(className, 'block-header', colorClasses($$props));
11+
const classes = $derived(classNames(className, 'block-header', colorClasses(restProps)));
1012
</script>
1113

12-
<div class={classes} {...restProps($$restProps)}>
13-
<slot />
14+
<div class={classes} {...restProps}>
15+
{@render children?.()}
1416
</div>
Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
11
<script>
22
import { colorClasses } from '../shared/mixins.js';
33
import { classNames } from '../shared/utils.js';
4-
import { restProps } from '../shared/rest-props.js';
54
6-
export let large = false;
7-
export let medium = false;
5+
let {
6+
class: className,
7+
large = false,
8+
medium = false,
9+
children,
10+
...restProps
11+
} = $props();
812
9-
let className = undefined;
10-
export { className as class };
1113
12-
$: classes = classNames(
14+
const classes = $derived(classNames(
1315
className,
1416
'block-title',
1517
{
1618
'block-title-large': large,
1719
'block-title-medium': medium,
1820
},
19-
colorClasses($$props),
20-
);
21+
colorClasses(restProps),
22+
));
2123
</script>
2224

23-
<div class={classes} {...restProps($$restProps)}>
24-
<slot />
25+
<div class={classes} {...restProps}>
26+
{@render children?.()}
2527
</div>

src/svelte/components/block.svelte

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,47 @@
11
<script>
2-
import { createEventDispatcher } from 'svelte';
32
import { colorClasses } from '../shared/mixins.js';
4-
import { classNames, createEmitter } from '../shared/utils.js';
5-
import { restProps } from '../shared/rest-props.js';
3+
import { classNames } from '../shared/utils.js';
64
import { useTab } from '../shared/use-tab.js';
75
8-
const emit = createEmitter(createEventDispatcher, $$props);
6+
let {
7+
class: className,
8+
inset = false,
9+
insetIos = false,
10+
insetMd = false,
11+
xsmallInset = false,
12+
xsmallInsetIos = false,
13+
xsmallInsetMd = false,
14+
smallInset = false,
15+
smallInsetIos = false,
16+
smallInsetMd = false,
17+
mediumInset = false,
18+
mediumInsetIos = false,
19+
mediumInsetMd = false,
20+
largeInset = false,
21+
largeInsetIos = false,
22+
largeInsetMd = false,
23+
xlargeInset = false,
24+
xlargeInsetIos = false,
25+
xlargeInsetMd = false,
26+
strong = false,
27+
strongIos = false,
28+
strongMd = false,
29+
tabs = false,
30+
tab = false,
31+
tabActive = false,
32+
accordionList = false,
33+
accordionOpposite = false,
34+
outline = false,
35+
outlineMd = false,
36+
outlineIos = false,
37+
children,
38+
...restProps
39+
} = $props();
940
10-
export let inset = false;
11-
export let insetIos = false;
12-
export let insetMd = false;
13-
export let xsmallInset = false;
14-
export let xsmallInsetIos = false;
15-
export let xsmallInsetMd = false;
16-
export let smallInset = false;
17-
export let smallInsetIos = false;
18-
export let smallInsetMd = false;
19-
export let mediumInset = false;
20-
export let mediumInsetIos = false;
21-
export let mediumInsetMd = false;
22-
export let largeInset = false;
23-
export let largeInsetIos = false;
24-
export let largeInsetMd = false;
25-
export let xlargeInset = false;
26-
export let xlargeInsetIos = false;
27-
export let xlargeInsetMd = false;
28-
export let strong = false;
29-
export let strongIos = false;
30-
export let strongMd = false;
31-
export let tabs = false;
32-
export let tab = false;
33-
export let tabActive = false;
34-
export let accordionList = false;
35-
export let accordionOpposite = false;
36-
export let outline = false;
37-
export let outlineMd = false;
38-
export let outlineIos = false;
39-
40-
let className = undefined;
41-
export { className as class };
4241
4342
let el;
4443
45-
$: classes = classNames(
44+
const classes = $derived(classNames(
4645
className,
4746
'block',
4847
{
@@ -76,12 +75,12 @@
7675
'block-outline-md': outlineMd,
7776
'block-outline-ios': outlineIos,
7877
},
79-
colorClasses($$props),
80-
);
78+
colorClasses(restProps),
79+
));
8180
82-
useTab(() => el, emit);
81+
useTab(() => el, restProps);
8382
</script>
8483

85-
<div class={classes} bind:this={el} {...restProps($$restProps)}>
86-
<slot />
84+
<div class={classes} bind:this={el} {...restProps}>
85+
{@render children?.()}
8786
</div>

0 commit comments

Comments
 (0)