Skip to content

Commit 3ec936b

Browse files
committed
feat(svelte): updated Accordion components
1 parent b670e8d commit 3ec936b

4 files changed

Lines changed: 46 additions & 41 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, 'accordion-item-content', colorClasses($$props));
11+
const classes = $derived(classNames(className, 'accordion-item-content', 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: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,51 @@
11
<script>
2-
import { createEventDispatcher, onMount, onDestroy } from 'svelte';
2+
import { onMount, onDestroy } from 'svelte';
33
import { colorClasses } from '../shared/mixins.js';
4-
import { classNames, createEmitter } from '../shared/utils.js';
5-
import { restProps } from '../shared/rest-props.js';
4+
import { classNames } from '../shared/utils.js';
65
import { app, f7ready } from '../shared/f7.js';
76
8-
const emit = createEmitter(createEventDispatcher, $$props);
97
10-
let className = undefined;
11-
export { className as class };
12-
13-
export let opened = undefined;
8+
let {
9+
class: className,
10+
opened = false,
11+
children,
12+
...restProps
13+
} = $props();
1414
1515
let el;
1616
17-
$: classes = classNames(
17+
const classes = $derived(classNames(
1818
className,
1919
'accordion-item',
2020
{
2121
'accordion-item-opened': opened,
2222
},
23-
colorClasses($$props),
24-
);
23+
colorClasses(restProps),
24+
));
2525
2626
function onBeforeOpen(accEl, prevent) {
2727
if (accEl !== el) return;
28-
emit('accordionBeforeOpen', [prevent]);
28+
restProps.accordionBeforeOpen?.(prevent);
2929
}
3030
function onOpen(accEl) {
3131
if (accEl !== el) return;
32-
emit('accordionOpen');
32+
restProps.accordionOpen?.();
3333
}
3434
function onOpened(accEl) {
3535
if (accEl !== el) return;
36-
emit('accordionOpened');
36+
restProps.accordionOpened?.();
3737
}
3838
function onBeforeClose(accEl, prevent) {
3939
if (accEl !== el) return;
40-
emit('accordionBeforeClose', [prevent]);
40+
restProps.accordionBeforeClose?.(prevent);
4141
}
4242
function onClose(accEl) {
4343
if (accEl !== el) return;
44-
emit('accordionClose');
44+
restProps.accordionClose?.();
4545
}
4646
function onClosed(accEl) {
4747
if (accEl !== el) return;
48-
emit('accordionClosed');
48+
restProps.accordionClosed?.();
4949
}
5050
5151
onMount(() => {
@@ -70,6 +70,6 @@
7070
});
7171
</script>
7272
73-
<div bind:this={el} class={classes} {...restProps($$restProps)}>
74-
<slot />
73+
<div bind:this={el} class={classes} {...restProps}>
74+
{@render children?.()}
7575
</div>
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, 'accordion-item-toggle', colorClasses($$props));
11+
const classes = $derived(classNames(className, 'accordion-item-toggle', 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: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
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+
accordionOpposite = false,
8+
children,
9+
...restProps
10+
} = $props();
811
9-
export let accordionOpposite = undefined;
10-
11-
$: classes = classNames(
12+
const classes = $derived(classNames(
1213
className,
1314
'accordion-list',
1415
accordionOpposite && 'accordion-opposite',
15-
colorClasses($$props),
16-
);
16+
colorClasses(restProps),
17+
));
1718
</script>
1819

19-
<div class={classes} {...restProps($$restProps)}>
20-
<slot />
20+
<div class={classes} {...restProps}>
21+
{@render children?.()}
2122
</div>

0 commit comments

Comments
 (0)