framework7-svelte 8.3.4 → 9.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/components/accordion-content.d.ts +11 -5
  2. package/components/accordion-content.svelte +8 -6
  3. package/components/accordion-item.d.ts +23 -11
  4. package/components/accordion-item.svelte +27 -25
  5. package/components/accordion-toggle.d.ts +11 -5
  6. package/components/accordion-toggle.svelte +8 -6
  7. package/components/accordion.d.ts +11 -5
  8. package/components/accordion.svelte +11 -10
  9. package/components/actions-button.d.ts +14 -6
  10. package/components/actions-button.svelte +21 -19
  11. package/components/actions-group.d.ts +11 -5
  12. package/components/actions-group.svelte +4 -7
  13. package/components/actions-label.d.ts +11 -5
  14. package/components/actions-label.svelte +13 -23
  15. package/components/actions.d.ts +31 -21
  16. package/components/actions.svelte +50 -54
  17. package/components/app.d.ts +11 -5
  18. package/components/app.svelte +6 -7
  19. package/components/area-chart.d.ts +13 -6
  20. package/components/area-chart.svelte +42 -46
  21. package/components/badge.d.ts +11 -5
  22. package/components/badge.svelte +10 -9
  23. package/components/block-footer.d.ts +11 -5
  24. package/components/block-footer.svelte +8 -6
  25. package/components/block-header.d.ts +11 -5
  26. package/components/block-header.svelte +8 -6
  27. package/components/block-title.d.ts +11 -5
  28. package/components/block-title.svelte +12 -10
  29. package/components/block.d.ts +11 -5
  30. package/components/block.svelte +76 -76
  31. package/components/breadcrumbs-collapsed.d.ts +12 -6
  32. package/components/breadcrumbs-collapsed.svelte +10 -15
  33. package/components/breadcrumbs-item.d.ts +12 -6
  34. package/components/breadcrumbs-item.svelte +9 -8
  35. package/components/breadcrumbs-separator.d.ts +10 -5
  36. package/components/breadcrumbs-separator.svelte +9 -5
  37. package/components/breadcrumbs.d.ts +11 -6
  38. package/components/breadcrumbs.svelte +8 -6
  39. package/components/button.d.ts +44 -37
  40. package/components/button.svelte +107 -103
  41. package/components/card-content.d.ts +11 -5
  42. package/components/card-content.svelte +11 -10
  43. package/components/card-footer.d.ts +11 -5
  44. package/components/card-footer.svelte +8 -6
  45. package/components/card-header.d.ts +11 -5
  46. package/components/card-header.svelte +8 -6
  47. package/components/card.d.ts +43 -31
  48. package/components/card.svelte +78 -67
  49. package/components/checkbox.d.ts +20 -13
  50. package/components/checkbox.svelte +32 -30
  51. package/components/chip.d.ts +22 -15
  52. package/components/chip.svelte +54 -60
  53. package/components/fab-backdrop.d.ts +10 -5
  54. package/components/fab-backdrop.svelte +5 -7
  55. package/components/fab-button.d.ts +17 -11
  56. package/components/fab-button.svelte +20 -29
  57. package/components/fab-buttons.d.ts +11 -5
  58. package/components/fab-buttons.svelte +5 -12
  59. package/components/fab.d.ts +22 -13
  60. package/components/fab.svelte +55 -51
  61. package/components/gauge.d.ts +24 -19
  62. package/components/gauge.svelte +25 -25
  63. package/components/icon.d.ts +19 -13
  64. package/components/icon.svelte +65 -63
  65. package/components/input.d.ts +78 -61
  66. package/components/input.svelte +171 -154
  67. package/components/link.d.ts +28 -21
  68. package/components/link.svelte +67 -65
  69. package/components/list-button.d.ts +22 -15
  70. package/components/list-button.svelte +56 -44
  71. package/components/list-group.d.ts +16 -10
  72. package/components/list-group.svelte +38 -34
  73. package/components/list-index.d.ts +20 -13
  74. package/components/list-index.svelte +23 -24
  75. package/components/list-input.d.ts +91 -64
  76. package/components/list-input.svelte +254 -205
  77. package/components/list-item.d.ts +98 -63
  78. package/components/list-item.svelte +412 -439
  79. package/components/list.d.ts +72 -54
  80. package/components/list.svelte +151 -147
  81. package/components/login-screen-title.d.ts +11 -5
  82. package/components/login-screen-title.svelte +4 -6
  83. package/components/login-screen.d.ts +20 -10
  84. package/components/login-screen.svelte +39 -42
  85. package/components/message.d.ts +48 -29
  86. package/components/message.svelte +123 -88
  87. package/components/messagebar-attachment.d.ts +17 -9
  88. package/components/messagebar-attachment.svelte +16 -18
  89. package/components/messagebar-attachments.d.ts +11 -5
  90. package/components/messagebar-attachments.svelte +6 -6
  91. package/components/messagebar-sheet-image.d.ts +19 -10
  92. package/components/messagebar-sheet-image.svelte +30 -22
  93. package/components/messagebar-sheet-item.d.ts +11 -5
  94. package/components/messagebar-sheet-item.svelte +4 -6
  95. package/components/messagebar-sheet.d.ts +11 -5
  96. package/components/messagebar-sheet.svelte +4 -6
  97. package/components/messagebar.d.ts +53 -31
  98. package/components/messagebar.svelte +100 -77
  99. package/components/messages-title.d.ts +11 -5
  100. package/components/messages-title.svelte +4 -6
  101. package/components/messages.d.ts +26 -20
  102. package/components/messages.svelte +32 -32
  103. package/components/nav-left.d.ts +19 -12
  104. package/components/nav-left.svelte +23 -39
  105. package/components/nav-right.d.ts +11 -6
  106. package/components/nav-right.svelte +4 -15
  107. package/components/nav-title-large.d.ts +11 -5
  108. package/components/nav-title-large.svelte +4 -6
  109. package/components/nav-title.d.ts +13 -8
  110. package/components/nav-title.svelte +25 -20
  111. package/components/navbar.d.ts +47 -28
  112. package/components/navbar.svelte +100 -111
  113. package/components/page-content.d.ts +41 -29
  114. package/components/page-content.svelte +58 -50
  115. package/components/page.d.ts +71 -46
  116. package/components/page.svelte +102 -82
  117. package/components/panel.d.ts +51 -35
  118. package/components/panel.svelte +94 -99
  119. package/components/photo-browser.d.ts +50 -41
  120. package/components/photo-browser.svelte +48 -47
  121. package/components/pie-chart.d.ts +13 -6
  122. package/components/pie-chart.svelte +29 -27
  123. package/components/popover.d.ts +28 -19
  124. package/components/popover.svelte +45 -48
  125. package/components/popup.d.ts +37 -23
  126. package/components/popup.svelte +68 -57
  127. package/components/preloader.d.ts +10 -5
  128. package/components/preloader.svelte +30 -31
  129. package/components/progressbar.d.ts +11 -6
  130. package/components/progressbar.svelte +13 -17
  131. package/components/radio.d.ts +19 -12
  132. package/components/radio.svelte +19 -23
  133. package/components/range.d.ts +35 -27
  134. package/components/range.svelte +47 -44
  135. package/components/routable-modals.d.ts +9 -4
  136. package/components/routable-modals.svelte +9 -8
  137. package/components/router-context-provider.d.ts +11 -6
  138. package/components/router-context-provider.svelte +2 -4
  139. package/components/searchbar.d.ts +60 -43
  140. package/components/searchbar.svelte +115 -104
  141. package/components/segmented.d.ts +21 -15
  142. package/components/segmented.svelte +38 -35
  143. package/components/sheet.d.ts +47 -30
  144. package/components/sheet.svelte +94 -76
  145. package/components/snippet-render.d.ts +24 -0
  146. package/components/snippet-render.svelte +9 -0
  147. package/components/stepper.d.ts +53 -43
  148. package/components/stepper.svelte +83 -79
  149. package/components/subnavbar.d.ts +13 -8
  150. package/components/subnavbar.svelte +12 -20
  151. package/components/swipeout-actions.d.ts +14 -8
  152. package/components/swipeout-actions.svelte +14 -13
  153. package/components/swipeout-button.d.ts +20 -13
  154. package/components/swipeout-button.svelte +31 -31
  155. package/components/tab.d.ts +14 -8
  156. package/components/tab.svelte +20 -28
  157. package/components/tabs.d.ts +15 -9
  158. package/components/tabs.svelte +27 -26
  159. package/components/text-editor.d.ts +44 -24
  160. package/components/text-editor.svelte +56 -41
  161. package/components/toggle.d.ts +22 -15
  162. package/components/toggle.svelte +33 -37
  163. package/components/toolbar-pane.d.ts +24 -0
  164. package/components/toolbar-pane.svelte +14 -0
  165. package/components/toolbar.d.ts +30 -20
  166. package/components/toolbar.svelte +61 -53
  167. package/components/treeview-item.d.ts +36 -17
  168. package/components/treeview-item.svelte +101 -81
  169. package/components/treeview.d.ts +11 -5
  170. package/components/treeview.svelte +4 -6
  171. package/components/use-icon.d.ts +9 -4
  172. package/components/use-icon.svelte +1 -1
  173. package/components/view.d.ts +76 -65
  174. package/components/view.svelte +66 -48
  175. package/components/views.d.ts +11 -5
  176. package/components/views.svelte +12 -15
  177. package/framework7-svelte.d.ts +3 -1
  178. package/framework7-svelte.js +6 -4
  179. package/package.json +2 -2
  180. package/shared/components-router.js +28 -25
  181. package/shared/f7.js +1 -7
  182. package/shared/mixins.js +5 -5
  183. package/shared/modal-state-classes.js +4 -5
  184. package/shared/plugin.js +1 -4
  185. package/shared/rest-props.js +1 -4
  186. package/shared/use-icon.js +2 -5
  187. package/shared/use-store.js +9 -9
  188. package/shared/use-tab.js +3 -3
  189. package/shared/use-tooltip.js +3 -4
  190. package/shared/utils.js +2 -8
  191. package/shared/get-reactive-context.js +0 -16
  192. package/shared/list-context.js +0 -10
  193. package/shared/router-context.js +0 -8
  194. package/shared/set-reactive-context.js +0 -26
@@ -1,26 +1,26 @@
1
1
 
2
- import { SvelteComponent } from 'svelte';
2
+ import { SvelteComponent, Snippet } from 'svelte';
3
3
  import { HTMLAttributes } from 'svelte/elements';
4
4
 
5
5
  import { SmartSelect } from 'framework7/types';
6
6
 
7
7
 
8
- interface LinkProps {
9
- noLinkClass ?: boolean;
10
- text ?: string;
11
- tabLink ?: boolean | string;
12
- tabLinkActive ?: boolean;
13
- tabbarLabel ?: boolean;
14
- iconOnly ?: boolean;
15
- badge ?: string | number;
16
- badgeColor ?: string;
17
- iconBadge ?: string | number;
18
- href ?: string | boolean;
19
- target ?: string;
20
- tooltip ?: string;
21
- tooltipTrigger ?: string;
22
- smartSelect ?: boolean;
23
- smartSelectParams ?: SmartSelect.Parameters;
8
+ interface Props {
9
+ noLinkClass?: boolean;
10
+ text?: string | Snippet;
11
+ tabLink?: boolean | string;
12
+ tabLinkActive?: boolean;
13
+ tabbarLabel?: boolean;
14
+ iconOnly?: boolean;
15
+ badge?: string | number;
16
+ badgeColor?: string;
17
+ iconBadge?: string | number;
18
+ href?: string | boolean;
19
+ target?: string;
20
+ tooltip?: string;
21
+ tooltipTrigger?: string;
22
+ smartSelect?: boolean;
23
+ smartSelectParams?: SmartSelect.Parameters;
24
24
  color?: string;
25
25
  colorTheme?: string;
26
26
  textColor?: string;
@@ -74,15 +74,22 @@ interface LinkProps {
74
74
  preventRouter?: boolean;
75
75
  transition?: string;
76
76
  openIn?: string;
77
- onClick ?: (event?: any) => void;
77
+ onClick?: (event?: any) => void;
78
+ children?: Snippet;
79
+ onclick?: () => void;
78
80
  }
79
81
 
82
+ interface LinkProps {}
83
+ interface LinkProps extends Props {}
84
+
85
+ interface LinkEvents extends Record<'',{}>{}
86
+
80
87
 
81
88
 
82
89
  declare class Link extends SvelteComponent<
83
- LinkProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof LinkProps>,
84
- { click: CustomEvent<void>; },
85
- { 'default' : {}; }
90
+ LinkProps,
91
+ LinkEvents,
92
+ { }
86
93
  > {}
87
94
 
88
95
  export { LinkProps };
@@ -1,5 +1,5 @@
1
1
  <script>
2
- import { createEventDispatcher } from 'svelte';
2
+ import { getContext } from 'svelte';
3
3
  import {
4
4
  colorClasses,
5
5
  routerAttrs,
@@ -7,90 +7,88 @@
7
7
  actionsAttrs,
8
8
  actionsClasses,
9
9
  } from '../shared/mixins.js';
10
- import { classNames, extend, isStringProp, plainText, createEmitter } from '../shared/utils.js';
11
- import { restProps } from '../shared/rest-props.js';
10
+ import { classNames, extend, isStringProp } from '../shared/utils.js';
12
11
  import { useTooltip } from '../shared/use-tooltip.js';
13
12
  import { useSmartSelect } from '../shared/use-smart-select.js';
14
13
  import { useRouteProps } from '../shared/use-route-props.js';
15
14
  import { useIcon } from '../shared/use-icon.js';
16
- import { getReactiveContext } from '../shared/get-reactive-context.js';
17
15
 
18
16
  import UseIcon from './use-icon.svelte';
19
17
  import Badge from './badge.svelte';
20
18
 
21
- const emit = createEmitter(createEventDispatcher, $$props);
22
-
23
- let className = undefined;
24
- export { className as class };
25
-
26
- export let noLinkClass = false;
27
- export let text = undefined;
28
- export let tabLink = undefined;
29
- export let tabLinkActive = false;
30
- export let tabbarLabel = false;
31
- export let iconOnly = false;
32
- export let badge = undefined;
33
- export let badgeColor = undefined;
34
- export let href = '#';
35
- export let target = undefined;
36
- export let tooltip = undefined;
37
- export let tooltipTrigger = undefined;
38
- export let routeProps = undefined;
39
-
40
- // Smart Select
41
- export let smartSelect = false;
42
- export let smartSelectParams = undefined;
43
-
44
- let el;
19
+ let {
20
+ class: className,
21
+ noLinkClass = false,
22
+ text = undefined,
23
+ tabLink = undefined,
24
+ tabLinkActive = false,
25
+ tabbarLabel = false,
26
+ iconOnly = false,
27
+ badge = undefined,
28
+ badgeColor = undefined,
29
+ href = '#',
30
+ target = undefined,
31
+ tooltip = undefined,
32
+ tooltipTrigger = undefined,
33
+ routeProps = undefined,
34
+ smartSelect = false,
35
+ smartSelectParams = undefined,
36
+ children,
37
+ ...restProps
38
+ } = $props();
39
+
40
+ let el = $state(undefined);
45
41
  let f7SmartSelect;
46
42
 
47
43
  export function smartSelectInstance() {
48
44
  return f7SmartSelect;
49
45
  }
50
46
 
51
- let TabbarContext =
52
- getReactiveContext('TabbarContext', (newValue) => {
53
- TabbarContext = newValue;
54
- }) || {};
47
+ const TabbarContext = getContext('TabbarContext') || (() => ({ value: {} }));
55
48
 
56
- $: isTabbarIcons = tabbarLabel || TabbarContext.tabbarHasIcons;
49
+ const isTabbarIcons = $derived(tabbarLabel || TabbarContext().value.tabbarHasIcons);
57
50
 
58
- $: hrefComputed = href === true ? '#' : href || undefined;
51
+ const hrefComputed = $derived(href === true ? '#' : href || undefined);
59
52
 
60
- $: attrs = extend(
61
- {
62
- href: hrefComputed,
63
- target,
64
- 'data-tab': (isStringProp(tabLink) && tabLink) || undefined,
65
- ...restProps($$restProps),
66
- },
67
- routerAttrs($$props),
68
- actionsAttrs($$props),
53
+ const attrs = $derived(
54
+ extend(
55
+ {
56
+ href: hrefComputed,
57
+ target,
58
+ 'data-tab': (isStringProp(tabLink) && tabLink) || undefined,
59
+ ...restProps,
60
+ },
61
+ routerAttrs(restProps),
62
+ actionsAttrs(restProps),
63
+ ),
69
64
  );
70
65
 
71
66
  // eslint-disable-next-line
72
- $: hasDefaultSlots = $$slots.default;
73
-
74
- $: iconOnlyComputed = iconOnly || (!text && !hasDefaultSlots);
75
-
76
- $: classes = classNames(
77
- className,
78
- {
79
- link: !(noLinkClass || isTabbarIcons),
80
- 'icon-only': iconOnlyComputed,
81
- 'tab-link': tabLink || tabLink === '',
82
- 'tab-link-active': tabLinkActive,
83
- 'smart-select': smartSelect,
84
- },
85
- colorClasses($$props),
86
- routerClasses($$props),
87
- actionsClasses($$props),
67
+ const hasDefaultSlots = $derived(children);
68
+
69
+ const iconOnlyComputed = $derived(iconOnly || (!text && !hasDefaultSlots));
70
+
71
+ const classes = $derived(
72
+ classNames(
73
+ className,
74
+ {
75
+ link: !(noLinkClass || isTabbarIcons),
76
+ 'icon-only': iconOnlyComputed,
77
+ 'tab-link': tabLink || tabLink === '',
78
+ 'tab-link-active': tabLinkActive,
79
+ 'smart-select': smartSelect,
80
+ },
81
+ colorClasses(restProps),
82
+ routerClasses(restProps),
83
+ actionsClasses(restProps),
84
+ ),
88
85
  );
89
86
 
90
- $: icon = useIcon($$props);
87
+ const icon = $derived(useIcon(restProps));
91
88
 
92
89
  function onClick() {
93
- emit('click');
90
+ restProps.onClick?.();
91
+ restProps.onclick?.();
94
92
  }
95
93
 
96
94
  useSmartSelect(
@@ -106,7 +104,7 @@
106
104
  <a
107
105
  bind:this={el}
108
106
  class={classes}
109
- on:click={onClick}
107
+ onclick={onClick}
110
108
  {...attrs}
111
109
  use:useTooltip={{ tooltip, tooltipTrigger }}
112
110
  use:useRouteProps={routeProps}
@@ -114,11 +112,15 @@
114
112
  {#if icon}
115
113
  <UseIcon {icon} />
116
114
  {/if}
117
- <slot />
115
+ {@render children?.()}
118
116
  {#if typeof text !== 'undefined' || typeof badge !== 'undefined'}
119
117
  <span class:tabbar-label={isTabbarIcons}>
120
- {plainText(text)}
121
- {#if typeof badge !== 'undefined'}<Badge color={badgeColor}>{plainText(badge)}</Badge>{/if}
118
+ {#if typeof text === 'function'}
119
+ {@render text?.()}
120
+ {:else if typeof text !== 'undefined'}
121
+ {text}
122
+ {/if}
123
+ {#if typeof badge !== 'undefined'}<Badge color={badgeColor}>{badge}</Badge>{/if}
122
124
  </span>
123
125
  {/if}
124
126
  </a>
@@ -1,18 +1,18 @@
1
1
 
2
- import { SvelteComponent } from 'svelte';
2
+ import { SvelteComponent, Snippet } from 'svelte';
3
3
  import { HTMLAttributes } from 'svelte/elements';
4
4
 
5
5
 
6
- interface ListButtonProps {
7
- title ?: string | number;
8
- text ?: string | number;
9
- tabLink ?: boolean | string;
10
- tabLinkActive ?: boolean;
11
- link ?: boolean | string;
12
- href ?: boolean | string;
13
- target ?: string;
14
- tooltip ?: string;
15
- tooltipTrigger ?: string;
6
+ interface Props {
7
+ title?: string | number | Snippet;
8
+ text?: string | number | Snippet;
9
+ tabLink?: boolean | string;
10
+ tabLinkActive?: boolean;
11
+ link?: boolean | string;
12
+ href?: boolean | string;
13
+ target?: string;
14
+ tooltip?: string;
15
+ tooltipTrigger?: string;
16
16
  color?: string;
17
17
  colorTheme?: string;
18
18
  textColor?: string;
@@ -59,15 +59,22 @@ interface ListButtonProps {
59
59
  cardPreventOpen?: boolean | string;
60
60
  cardClose?: boolean | string;
61
61
  menuClose?: boolean | string;
62
- onClick ?: (event?: any) => void;
62
+ onClick?: (event?: any) => void;
63
+ children?: Snippet;
64
+ onclick?: () => void;
63
65
  }
64
66
 
67
+ interface ListButtonProps {}
68
+ interface ListButtonProps extends Props {}
69
+
70
+ interface ListButtonEvents extends Record<'',{}>{}
71
+
65
72
 
66
73
 
67
74
  declare class ListButton extends SvelteComponent<
68
- ListButtonProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof ListButtonProps>,
69
- { click: CustomEvent<void>; },
70
- { 'default' : {}; }
75
+ ListButtonProps,
76
+ ListButtonEvents,
77
+ { }
71
78
  > {}
72
79
 
73
80
  export { ListButtonProps };
@@ -1,5 +1,4 @@
1
1
  <script>
2
- import { createEventDispatcher } from 'svelte';
3
2
  import {
4
3
  colorClasses,
5
4
  routerAttrs,
@@ -7,68 +6,81 @@
7
6
  actionsAttrs,
8
7
  actionsClasses,
9
8
  } from '../shared/mixins.js';
10
- import { classNames, extend, plainText, isStringProp, createEmitter } from '../shared/utils.js';
11
- import { restProps } from '../shared/rest-props.js';
9
+ import { classNames, extend, isStringProp } from '../shared/utils.js';
12
10
  import { useTooltip } from '../shared/use-tooltip.js';
13
11
  import { useRouteProps } from '../shared/use-route-props.js';
14
12
 
15
- const emit = createEmitter(createEventDispatcher, $$props);
13
+ let {
14
+ class: className,
15
+ title = undefined,
16
+ text = undefined,
17
+ tabLink = undefined,
18
+ tabLinkActive = false,
19
+ link = undefined,
20
+ href = undefined,
21
+ target = undefined,
22
+ tooltip = undefined,
23
+ tooltipTrigger = undefined,
24
+ routeProps = undefined,
25
+ children,
26
+ ...restProps
27
+ } = $props();
16
28
 
17
- let className = undefined;
18
- export { className as class };
29
+ let el = $state(null);
19
30
 
20
- export let title = undefined;
21
- export let text = undefined;
22
- export let tabLink = undefined;
23
- export let tabLinkActive = false;
24
- export let link = undefined;
25
- export let href = undefined;
26
- export let target = undefined;
27
- export let tooltip = undefined;
28
- export let tooltipTrigger = undefined;
29
- export let routeProps = undefined;
30
-
31
- let el;
32
-
33
- $: hrefComputed = typeof link === 'boolean' && typeof href === 'boolean' ? '#' : link || href;
31
+ const hrefComputed = $derived(
32
+ typeof link === 'boolean' && typeof href === 'boolean' ? '#' : link || href,
33
+ );
34
34
 
35
- $: attrs = extend(
36
- {
37
- href: hrefComputed,
38
- target,
39
- 'data-tab': (isStringProp(tabLink) && tabLink) || undefined,
40
- },
41
- routerAttrs($$props),
42
- actionsAttrs($$props),
35
+ const attrs = $derived(
36
+ extend(
37
+ {
38
+ href: hrefComputed,
39
+ target,
40
+ 'data-tab': (isStringProp(tabLink) && tabLink) || undefined,
41
+ },
42
+ routerAttrs(restProps),
43
+ actionsAttrs(restProps),
44
+ ),
43
45
  );
44
46
 
45
- $: classes = classNames(
46
- {
47
- 'list-button': true,
48
- 'tab-link': tabLink || tabLink === '',
49
- 'tab-link-active': tabLinkActive,
50
- },
51
- colorClasses($$props),
52
- routerClasses($$props),
53
- actionsClasses($$props),
47
+ const classes = $derived(
48
+ classNames(
49
+ {
50
+ 'list-button': true,
51
+ 'tab-link': tabLink || tabLink === '',
52
+ 'tab-link-active': tabLinkActive,
53
+ },
54
+ colorClasses(restProps),
55
+ routerClasses(restProps),
56
+ actionsClasses(restProps),
57
+ ),
54
58
  );
55
59
 
56
60
  function onClick() {
57
- emit('click');
61
+ restProps.onClick?.();
62
+ restProps.onclick?.();
58
63
  }
59
64
  </script>
60
65
 
61
- <!-- svelte-ignore a11y-missing-attribute -->
62
66
  <li
63
67
  class={className}
64
- {...restProps($$restProps)}
68
+ {...restProps}
65
69
  bind:this={el}
66
70
  use:useRouteProps={routeProps}
67
71
  use:useTooltip={{ tooltip, tooltipTrigger }}
68
72
  >
69
- <a class={classes} {...attrs} on:click={onClick}>
70
- {plainText(title)}
71
- {plainText(text)}
72
- <slot />
73
+ <a class={classes} {...attrs} onclick={onClick}>
74
+ {#if typeof title === 'function'}
75
+ {@render title?.()}
76
+ {:else if typeof title !== 'undefined'}
77
+ {title}
78
+ {/if}
79
+ {#if typeof text === 'function'}
80
+ {@render text?.()}
81
+ {:else if typeof text !== 'undefined'}
82
+ {text}
83
+ {/if}
84
+ {@render children?.()}
73
85
  </a>
74
86
  </li>
@@ -1,14 +1,14 @@
1
1
 
2
- import { SvelteComponent } from 'svelte';
2
+ import { SvelteComponent, Snippet } from 'svelte';
3
3
  import { HTMLAttributes } from 'svelte/elements';
4
4
 
5
5
 
6
- interface ListGroupProps {
7
- mediaList ?: boolean;
8
- sortable ?: boolean;
9
- sortableOpposite ?: boolean;
10
- sortableTapHold ?: boolean;
11
- sortableMoveElements ?: boolean;
6
+ interface Props {
7
+ mediaList?: boolean;
8
+ sortable?: boolean;
9
+ sortableOpposite?: boolean;
10
+ sortableTapHold?: boolean;
11
+ sortableMoveElements?: boolean;
12
12
  color?: string;
13
13
  colorTheme?: string;
14
14
  textColor?: string;
@@ -16,14 +16,20 @@ interface ListGroupProps {
16
16
  borderColor?: string;
17
17
  rippleColor?: string;
18
18
  dark?: boolean;
19
+ children?: Snippet;
19
20
  }
20
21
 
22
+ interface ListGroupProps {}
23
+ interface ListGroupProps extends Props {}
24
+
25
+ interface ListGroupEvents extends Record<'',{}>{}
26
+
21
27
 
22
28
 
23
29
  declare class ListGroup extends SvelteComponent<
24
- ListGroupProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof ListGroupProps>,
25
- { },
26
- { 'default' : {}; }
30
+ ListGroupProps,
31
+ ListGroupEvents,
32
+ { }
27
33
  > {}
28
34
 
29
35
  export { ListGroupProps };
@@ -1,42 +1,46 @@
1
1
  <script>
2
+ import { setContext, getContext } from 'svelte';
2
3
  import { colorClasses } from '../shared/mixins.js';
3
4
  import { classNames } from '../shared/utils.js';
4
- import { restProps } from '../shared/rest-props.js';
5
- import { setReactiveContext } from '../shared/set-reactive-context.js';
6
- import { getReactiveContext } from '../shared/get-reactive-context.js';
5
+ let {
6
+ class: className,
7
+ mediaList = undefined,
8
+ sortable = undefined,
9
+ sortableOpposite = undefined,
10
+ sortableTapHold = false,
11
+ sortableMoveElements = undefined,
12
+ simpleList = undefined,
13
+ children,
14
+ ...restProps
15
+ } = $props();
7
16
 
8
- let className = undefined;
9
- export { className as class };
17
+ const ListContext =
18
+ getContext('ListContext') ||
19
+ (() => ({
20
+ value: {},
21
+ }));
10
22
 
11
- export let mediaList = undefined;
12
- export let sortable = undefined;
13
- export let sortableOpposite = undefined;
14
- export let sortableTapHold = false;
15
- export let sortableMoveElements = undefined;
16
- export let simpleList = undefined;
17
-
18
- let ListContext =
19
- getReactiveContext('ListContext', (value) => {
20
- ListContext = value || {};
21
- }) || {};
22
-
23
- setReactiveContext('ListContext', () => ({
24
- listIsMedia: mediaList || ListContext.listIsMedia,
25
- listIsSimple: simpleList || ListContext.listIsSimple,
26
- listIsSortable: sortable || ListContext.listIsSortable,
27
- listIsSortableOpposite: sortableOpposite || ListContext.listIsSortableOpposite,
23
+ setContext('ListContext', () => ({
24
+ value: {
25
+ listIsMedia: mediaList || ListContext().value.listIsMedia,
26
+ listIsSimple: simpleList || ListContext().value.listIsSimple,
27
+ listIsSortable: sortable || ListContext().value.listIsSortable,
28
+ listIsSortableOpposite: sortableOpposite || ListContext().value.listIsSortableOpposite,
29
+ },
28
30
  }));
29
31
 
30
- $: classes = classNames(
31
- className,
32
- 'list-group',
33
- {
34
- 'media-list': mediaList,
35
- sortable,
36
- 'sortable-tap-hold': sortableTapHold,
37
- 'sortable-opposite': sortableOpposite,
38
- },
39
- colorClasses($$props),
32
+ const classes = $derived(
33
+ classNames(
34
+ className,
35
+ 'list-group',
36
+ {
37
+ 'media-list': mediaList,
38
+ sortable,
39
+ 'sortable-tap-hold': sortableTapHold,
40
+ 'sortable-opposite': sortableOpposite,
41
+ },
42
+ colorClasses(restProps),
43
+ ),
40
44
  );
41
45
  </script>
42
46
 
@@ -45,9 +49,9 @@
45
49
  data-sortable-move-elements={typeof sortableMoveElements !== 'undefined'
46
50
  ? sortableMoveElements.toString()
47
51
  : undefined}
48
- {...restProps($$restProps)}
52
+ {...restProps}
49
53
  >
50
54
  <ul>
51
- <slot />
55
+ {@render children?.()}
52
56
  </ul>
53
57
  </div>
@@ -1,16 +1,16 @@
1
1
 
2
- import { SvelteComponent } from 'svelte';
2
+ import { SvelteComponent, Snippet } from 'svelte';
3
3
  import { HTMLAttributes } from 'svelte/elements';
4
4
 
5
5
 
6
- interface ListIndexProps {
7
- init ?: boolean;
8
- listEl ?: string | object;
9
- indexes ?: string | Array<any>;
10
- scrollList ?: boolean;
11
- label ?: boolean;
12
- iosItemHeight ?: number;
13
- mdItemHeight ?: number;
6
+ interface Props {
7
+ init?: boolean;
8
+ listEl?: string | object;
9
+ indexes?: string | Array<any>;
10
+ scrollList?: boolean;
11
+ label?: boolean;
12
+ iosItemHeight?: number;
13
+ mdItemHeight?: number;
14
14
  color?: string;
15
15
  colorTheme?: string;
16
16
  textColor?: string;
@@ -18,15 +18,22 @@ interface ListIndexProps {
18
18
  borderColor?: string;
19
19
  rippleColor?: string;
20
20
  dark?: boolean;
21
- onListIndexSelect ?: (itemContent?: any, itemIndex?: any) => void;
21
+ onListIndexSelect?: (itemContent?: any, itemIndex?: any) => void;
22
+ children?: Snippet;
23
+ onlistindexselect?: () => void;
22
24
  }
23
25
 
26
+ interface ListIndexProps {}
27
+ interface ListIndexProps extends Props {}
28
+
29
+ interface ListIndexEvents extends Record<'',{}>{}
30
+
24
31
 
25
32
 
26
33
  declare class ListIndex extends SvelteComponent<
27
- ListIndexProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof ListIndexProps>,
28
- { listIndexSelect: CustomEvent<void>; },
29
- { 'default' : {}; }
34
+ ListIndexProps,
35
+ ListIndexEvents,
36
+ { }
30
37
  > {}
31
38
 
32
39
  export { ListIndexProps };