framework7-svelte 8.3.4 → 9.0.0

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,66 +1,62 @@
1
1
  <script>
2
- import { createEventDispatcher, onMount, onDestroy } from 'svelte';
2
+ import { onMount, onDestroy } from 'svelte';
3
3
  import { colorClasses } from '../shared/mixins.js';
4
- import { classNames, plainText, createEmitter } from '../shared/utils.js';
5
- import { restProps } from '../shared/rest-props.js';
4
+ import { classNames, plainText } from '../shared/utils.js';
6
5
  import { app, f7ready } from '../shared/f7.js';
7
6
 
8
7
  import CardHeader from './card-header.svelte';
9
8
  import CardContent from './card-content.svelte';
10
9
  import CardFooter from './card-footer.svelte';
11
10
 
12
- const emit = createEmitter(createEventDispatcher, $$props);
11
+ let {
12
+ class: className,
13
+ title = undefined,
14
+ raised = false,
15
+ outline = false,
16
+ outlineIos = false,
17
+ outlineMd = false,
18
+ headerDivider = false,
19
+ footerDivider = false,
20
+ expandable = false,
21
+ expandableAnimateWidth = false,
22
+ expandableOpened = false,
23
+ animate = undefined,
24
+ hideNavbarOnOpen = undefined,
25
+ hideToolbarOnOpen = undefined,
26
+ hideStatusbarOnOpen = undefined,
27
+ scrollableEl = undefined,
28
+ swipeToClose = undefined,
29
+ closeByBackdropClick = undefined,
30
+ backdrop = undefined,
31
+ backdropEl = undefined,
32
+ padding = true,
33
+ children,
34
+ header,
35
+ content,
36
+ footer,
37
+ ...restProps
38
+ } = $props();
13
39
 
14
- let className = undefined;
15
- export { className as class };
40
+ let el = $state(null);
16
41
 
17
- export let title = undefined;
18
- export let content = undefined;
19
- export let footer = undefined;
20
- export let raised = false;
21
- export let outline = false;
22
- export let outlineIos = false;
23
- export let outlineMd = false;
24
- export let headerDivider = false;
25
- export let footerDivider = false;
26
- export let expandable = false;
27
- export let expandableAnimateWidth = false;
28
- export let expandableOpened = false;
29
- export let animate = undefined;
30
- export let hideNavbarOnOpen = undefined;
31
- export let hideToolbarOnOpen = undefined;
32
- export let hideStatusbarOnOpen = undefined;
33
- export let scrollableEl = undefined;
34
- export let swipeToClose = undefined;
35
- export let closeByBackdropClick = undefined;
36
- export let backdrop = undefined;
37
- export let backdropEl = undefined;
38
- export let padding = true;
39
-
40
- let el;
41
-
42
- $: classes = classNames(
43
- className,
44
- 'card',
45
- {
46
- 'card-outline': outline,
47
- 'card-outline-ios': outlineIos,
48
- 'card-outline-md': outlineMd,
49
- 'card-raised': raised,
50
- 'card-header-divider': headerDivider,
51
- 'card-footer-divider': footerDivider,
52
- 'card-expandable': expandable,
53
- 'card-expandable-animate-width': expandableAnimateWidth,
54
- },
55
- colorClasses($$props),
42
+ const classes = $derived(
43
+ classNames(
44
+ className,
45
+ 'card',
46
+ {
47
+ 'card-outline': outline,
48
+ 'card-outline-ios': outlineIos,
49
+ 'card-outline-md': outlineMd,
50
+ 'card-raised': raised,
51
+ 'card-header-divider': headerDivider,
52
+ 'card-footer-divider': footerDivider,
53
+ 'card-expandable': expandable,
54
+ 'card-expandable-animate-width': expandableAnimateWidth,
55
+ },
56
+ colorClasses(restProps),
57
+ ),
56
58
  );
57
59
 
58
- /* eslint-disable no-undef */
59
- $: hasHeaderSlots = $$slots.header;
60
- $: hasContentSlots = $$slots.content;
61
- $: hasFooterSlots = $$slots.footer;
62
- /* eslint-enable no-undef */
63
-
64
60
  function open() {
65
61
  app.f7.card.open(el);
66
62
  }
@@ -82,28 +78,33 @@
82
78
  }
83
79
  }
84
80
 
85
- $: watchOpened(expandableOpened);
81
+ $effect(() => watchOpened(expandableOpened));
86
82
 
87
83
  function onBeforeOpen(cardEl, prevent) {
88
84
  if (cardEl !== el) return;
89
- emit('cardBeforeOpen', [el, prevent]);
85
+ restProps.oncardbeforeopen?.(el, prevent);
86
+ restProps.onCardBeforeOpen?.(el, prevent);
90
87
  }
91
88
  function onOpen(cardEl) {
92
89
  if (cardEl !== el) return;
93
- emit('cardOpen', [el]);
90
+ restProps.oncardopen?.(el);
91
+ restProps.onCardOpen?.(el);
94
92
  expandableOpened = true;
95
93
  }
96
94
  function onOpened(cardEl, pageEl) {
97
95
  if (cardEl !== el) return;
98
- emit('cardOpened', [el, pageEl]);
96
+ restProps.oncardopened?.(el, pageEl);
97
+ restProps.onCardOpened?.(el, pageEl);
99
98
  }
100
99
  function onClose(cardEl) {
101
100
  if (cardEl !== el) return;
102
- emit('cardClose', [el]);
101
+ restProps.oncardclose?.(el);
102
+ restProps.onCardClose?.(el);
103
103
  }
104
104
  function onClosed(cardEl, pageEl) {
105
105
  if (cardEl !== el) return;
106
- emit('cardClosed', [el, pageEl]);
106
+ restProps.oncardclosed?.(el, pageEl);
107
+ restProps.onCardClosed?.(el, pageEl);
107
108
  expandableOpened = false;
108
109
  }
109
110
 
@@ -152,25 +153,35 @@
152
153
  : closeByBackdropClick.toString()}
153
154
  data-backdrop={typeof backdrop === 'undefined' ? backdrop : backdrop.toString()}
154
155
  data-backdrop-el={backdropEl}
155
- {...restProps($$restProps)}
156
+ {...restProps}
156
157
  >
157
- {#if typeof title !== 'undefined' || hasHeaderSlots}
158
+ {#if typeof title !== 'undefined' || typeof header !== 'undefined'}
158
159
  <CardHeader>
159
160
  {plainText(title)}
160
- <slot name="header" />
161
+ {#if typeof header === 'function'}
162
+ {@render header?.()}
163
+ {:else if typeof header !== 'undefined'}
164
+ {header}
165
+ {/if}
161
166
  </CardHeader>
162
167
  {/if}
163
- {#if typeof content !== 'undefined' || hasContentSlots}
168
+ {#if typeof content !== 'undefined' || typeof content !== 'undefined'}
164
169
  <CardContent {padding}>
165
- {plainText(content)}
166
- <slot name="content" />
170
+ {#if typeof content === 'function'}
171
+ {@render content?.()}
172
+ {:else if typeof content !== 'undefined'}
173
+ {content}
174
+ {/if}
167
175
  </CardContent>
168
176
  {/if}
169
- {#if typeof footer !== 'undefined' || hasFooterSlots}
177
+ {#if typeof footer !== 'undefined' || typeof footer !== 'undefined'}
170
178
  <CardFooter>
171
- {plainText(footer)}
172
- <slot name="footer" />
179
+ {#if typeof footer === 'function'}
180
+ {@render footer?.()}
181
+ {:else if typeof footer !== 'undefined'}
182
+ {footer}
183
+ {/if}
173
184
  </CardFooter>
174
185
  {/if}
175
- <slot />
186
+ {@render children?.()}
176
187
  </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 CheckboxProps {
7
- checked ?: boolean;
8
- indeterminate ?: boolean;
9
- name ?: number | string;
10
- value ?: number | string | boolean;
11
- disabled ?: boolean;
12
- readonly ?: boolean;
13
- defaultChecked ?: boolean;
6
+ interface Props {
7
+ checked?: boolean;
8
+ indeterminate?: boolean;
9
+ name?: number | string;
10
+ value?: number | string | boolean;
11
+ disabled?: boolean;
12
+ readonly?: boolean;
13
+ defaultChecked?: boolean;
14
14
  color?: string;
15
15
  colorTheme?: string;
16
16
  textColor?: string;
@@ -18,15 +18,22 @@ interface CheckboxProps {
18
18
  borderColor?: string;
19
19
  rippleColor?: string;
20
20
  dark?: boolean;
21
- onChange ?: (event?: any) => void;
21
+ onChange?: (event?: any) => void;
22
+ children?: Snippet;
23
+ onchange?: () => void;
22
24
  }
23
25
 
26
+ interface CheckboxProps {}
27
+ interface CheckboxProps extends Props {}
28
+
29
+ interface CheckboxEvents extends Record<'',{}>{}
30
+
24
31
 
25
32
 
26
33
  declare class Checkbox extends SvelteComponent<
27
- CheckboxProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof CheckboxProps>,
28
- { change: CustomEvent<void>; },
29
- { 'default' : {}; }
34
+ CheckboxProps,
35
+ CheckboxEvents,
36
+ { }
30
37
  > {}
31
38
 
32
39
  export { CheckboxProps };
@@ -1,35 +1,37 @@
1
1
  <script>
2
- import { createEventDispatcher, onMount, afterUpdate } from 'svelte';
2
+ import { onMount } from 'svelte';
3
3
  import { colorClasses } from '../shared/mixins.js';
4
- import { classNames, createEmitter } from '../shared/utils.js';
5
- import { restProps } from '../shared/rest-props.js';
6
-
7
- const emit = createEmitter(createEventDispatcher, $$props);
8
-
9
- let className = undefined;
10
- export { className as class };
11
-
12
- export let checked = undefined;
13
- export let indeterminate = undefined;
14
- export let name = undefined;
15
- export let value = undefined;
16
- export let disabled = undefined;
17
- export let readonly = undefined;
18
-
19
- let inputEl;
20
-
21
- $: classes = classNames(
22
- className,
23
- {
24
- checkbox: true,
25
- disabled,
26
- },
27
- colorClasses($$props),
4
+ import { classNames } from '../shared/utils.js';
5
+
6
+ let {
7
+ class: className,
8
+ checked = undefined,
9
+ indeterminate = undefined,
10
+ name = undefined,
11
+ value = undefined,
12
+ disabled = undefined,
13
+ readonly = undefined,
14
+ children,
15
+ ...restProps
16
+ } = $props();
17
+
18
+ let inputEl = $state(null);
19
+
20
+ const classes = $derived(
21
+ classNames(
22
+ className,
23
+ {
24
+ checkbox: true,
25
+ disabled,
26
+ },
27
+ colorClasses(restProps),
28
+ ),
28
29
  );
29
30
 
30
31
  function onChange(event) {
31
- emit('change', [event]);
32
32
  checked = event.target.checked;
33
+ restProps.onchange?.(event);
34
+ restProps.onChange?.(event);
33
35
  }
34
36
 
35
37
  onMount(() => {
@@ -38,14 +40,14 @@
38
40
  }
39
41
  });
40
42
 
41
- afterUpdate(() => {
43
+ $effect(() => {
42
44
  if (inputEl) {
43
45
  inputEl.indeterminate = indeterminate;
44
46
  }
45
47
  });
46
48
  </script>
47
49
 
48
- <label class={classes} {...restProps($$restProps)}>
50
+ <label class={classes} {...restProps}>
49
51
  <input
50
52
  bind:this={inputEl}
51
53
  type="checkbox"
@@ -54,8 +56,8 @@
54
56
  {disabled}
55
57
  {readonly}
56
58
  {checked}
57
- on:change={onChange}
59
+ onchange={onChange}
58
60
  />
59
61
  <i class="icon-checkbox" />
60
- <slot />
62
+ {@render children?.()}
61
63
  </label>
@@ -1,19 +1,19 @@
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 ChipProps {
7
- media ?: string;
8
- text ?: string | number;
9
- deleteable ?: boolean;
10
- mediaBgColor ?: string;
11
- mediaTextColor ?: string;
12
- outline ?: boolean;
13
- tooltip ?: string;
14
- tooltipTrigger ?: string;
15
- onClick ?: (event?: any) => void;
16
- onDelete ?: (event?: any) => void;
6
+ interface Props {
7
+ media?: string | Snippet;
8
+ text?: string | number | Snippet;
9
+ deleteable?: boolean;
10
+ mediaBgColor?: string;
11
+ mediaTextColor?: string;
12
+ outline?: boolean;
13
+ tooltip?: string;
14
+ tooltipTrigger?: string;
15
+ onClick?: (event?: any) => void;
16
+ onDelete?: (event?: any) => void;
17
17
  color?: string;
18
18
  colorTheme?: string;
19
19
  textColor?: string;
@@ -28,14 +28,21 @@ interface ChipProps {
28
28
  iconMd?: string;
29
29
  iconColor?: string;
30
30
  iconSize?: string | number;
31
+ children?: Snippet;
32
+ ondelete?: () => void;
31
33
  }
32
34
 
35
+ interface ChipProps {}
36
+ interface ChipProps extends Props {}
37
+
38
+ interface ChipEvents extends Record<'',{}>{}
39
+
33
40
 
34
41
 
35
42
  declare class Chip extends SvelteComponent<
36
- ChipProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof ChipProps>,
37
- { click: CustomEvent<void>; delete: CustomEvent<void>; },
38
- { 'media' : {}; 'text' : {}; 'default' : {}; }
43
+ ChipProps,
44
+ ChipEvents,
45
+ { }
39
46
  > {}
40
47
 
41
48
  export { ChipProps };
@@ -1,87 +1,81 @@
1
1
  <script>
2
- import { createEventDispatcher } from 'svelte';
3
-
4
2
  import { colorClasses } from '../shared/mixins.js';
5
- import { classNames, plainText, createEmitter } from '../shared/utils.js';
6
- import { restProps } from '../shared/rest-props.js';
3
+ import { classNames } from '../shared/utils.js';
7
4
  import { useTooltip } from '../shared/use-tooltip.js';
8
5
  import { useIcon } from '../shared/use-icon.js';
9
6
 
10
7
  import UseIcon from './use-icon.svelte';
11
8
 
12
- const emit = createEmitter(createEventDispatcher, $$props);
13
-
14
- let className = undefined;
15
- export { className as class };
16
-
17
- export let media = undefined;
18
- export let text = undefined;
19
- export let deleteable = undefined;
20
- export let mediaBgColor = undefined;
21
- export let mediaTextColor = undefined;
22
- export let outline = undefined;
9
+ let {
10
+ class: className,
11
+ media = undefined,
12
+ text = undefined,
13
+ deleteable = undefined,
14
+ mediaBgColor = undefined,
15
+ mediaTextColor = undefined,
16
+ outline = undefined,
17
+ tooltip = undefined,
18
+ tooltipTrigger = undefined,
19
+ children,
20
+ ...restProps
21
+ } = $props();
23
22
 
24
- export let tooltip = undefined;
25
- export let tooltipTrigger = undefined;
23
+ let el = $state(null);
26
24
 
27
- let el;
28
-
29
- $: classes = classNames(
30
- className,
31
- 'chip',
32
- {
33
- 'chip-outline': outline,
34
- },
35
- colorClasses($$props),
25
+ const classes = $derived(
26
+ classNames(
27
+ className,
28
+ 'chip',
29
+ {
30
+ 'chip-outline': outline,
31
+ },
32
+ colorClasses(restProps),
33
+ ),
36
34
  );
37
35
 
38
- $: mediaClasses = classNames(
39
- 'chip-media',
40
- mediaTextColor && `text-color-${mediaTextColor}`,
41
- mediaBgColor && `bg-color-${mediaBgColor}`,
36
+ const mediaClasses = $derived(
37
+ classNames(
38
+ 'chip-media',
39
+ mediaTextColor && `text-color-${mediaTextColor}`,
40
+ mediaBgColor && `bg-color-${mediaBgColor}`,
41
+ ),
42
42
  );
43
43
 
44
- // eslint-disable-next-line
45
- $: hasMediaSlots = $$slots.media;
46
- // eslint-disable-next-line
47
- $: hasTextSlots = $$slots.text;
48
- // eslint-disable-next-line
49
- $: hasDefaultSlots = $$slots.default;
50
-
51
- $: icon = useIcon($$props);
44
+ const icon = $derived(useIcon(restProps));
52
45
 
53
- function onClick(e) {
54
- emit('click', [e]);
55
- }
56
46
  function onDeleteClick(e) {
57
- emit('delete', [e]);
47
+ restProps.onDelete?.(e);
48
+ restProps.ondelete?.(e);
58
49
  }
59
50
  </script>
60
51
 
61
52
  <!-- svelte-ignore a11y-missing-attribute -->
62
53
  <!-- svelte-ignore a11y-missing-content -->
63
- <div
64
- bind:this={el}
65
- class={classes}
66
- on:click={onClick}
67
- {...restProps($$restProps)}
68
- use:useTooltip={{ tooltip, tooltipTrigger }}
69
- >
70
- {#if media || hasMediaSlots || icon}
54
+ <div bind:this={el} class={classes} {...restProps} use:useTooltip={{ tooltip, tooltipTrigger }}>
55
+ {#if media || icon}
71
56
  <div class={mediaClasses}>
72
57
  {#if icon}
73
58
  <UseIcon {icon} />
74
59
  {/if}
75
- {plainText(media)}
76
- <slot name="media" />
77
- </div>
78
- {/if}
79
- {#if text || hasTextSlots || hasDefaultSlots}
80
- <div class="chip-label">
81
- {plainText(text)}
82
- <slot name="text" />
83
- <slot />
60
+ {#if media}
61
+ {#if typeof media === 'function'}
62
+ {@render media?.()}
63
+ {:else}
64
+ {media}
65
+ {/if}
66
+ {/if}
84
67
  </div>
85
68
  {/if}
86
- {#if deleteable}<a class="chip-delete" on:click={onDeleteClick} />{/if}
69
+ <div class="chip-label">
70
+ {#if text}
71
+ {#if typeof text === 'function'}
72
+ {@render text?.()}
73
+ {:else}
74
+ {text}
75
+ {/if}
76
+ {/if}
77
+
78
+ {@render children?.()}
79
+ </div>
80
+ {#if deleteable}<a class="chip-delete" onclick={onDeleteClick} />{/if}
87
81
  </div>
@@ -1,17 +1,22 @@
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 FabBackdropProps {
7
-
6
+ interface Props {
7
+ children?: Snippet;
8
8
  }
9
9
 
10
+ interface FabBackdropProps {}
11
+ interface FabBackdropProps extends Props {}
12
+
13
+ interface FabBackdropEvents extends Record<'',{}>{}
14
+
10
15
 
11
16
 
12
17
  declare class FabBackdrop extends SvelteComponent<
13
- FabBackdropProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof FabBackdropProps>,
14
- { },
18
+ FabBackdropProps,
19
+ FabBackdropEvents,
15
20
  { }
16
21
  > {}
17
22
 
@@ -1,13 +1,11 @@
1
1
  <script>
2
2
  import { classNames } from '../shared/utils.js';
3
- import { restProps } from '../shared/rest-props.js';
4
3
 
5
- let className = undefined;
6
- export { className as class };
4
+ let { class: className, f7Slot = 'fixed', children, ...restProps } = $props();
7
5
 
8
- export let f7Slot = 'fixed';
9
-
10
- $: classes = classNames(className, 'fab-backdrop');
6
+ const classes = $derived(classNames(className, 'fab-backdrop'));
11
7
  </script>
12
8
 
13
- <div class={classes} data-f7-slot={f7Slot} {...restProps($$restProps)} />
9
+ <div class={classes} data-f7-slot={f7Slot} {...restProps}>
10
+ {@render children?.()}
11
+ </div>
@@ -1,15 +1,15 @@
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 FabButtonProps {
7
- fabClose ?: boolean;
8
- label ?: string;
9
- target ?: string;
10
- tooltip ?: string;
11
- tooltipTrigger ?: string;
12
- onClick ?: (event?: any) => void;
6
+ interface Props {
7
+ fabClose?: boolean;
8
+ label?: string;
9
+ target?: string;
10
+ tooltip?: string;
11
+ tooltipTrigger?: string;
12
+ onClick?: (event?: any) => void;
13
13
  color?: string;
14
14
  colorTheme?: string;
15
15
  textColor?: string;
@@ -17,14 +17,20 @@ interface FabButtonProps {
17
17
  borderColor?: string;
18
18
  rippleColor?: string;
19
19
  dark?: boolean;
20
+ children?: Snippet;
20
21
  }
21
22
 
23
+ interface FabButtonProps {}
24
+ interface FabButtonProps extends Props {}
25
+
26
+ interface FabButtonEvents extends Record<'',{}>{}
27
+
22
28
 
23
29
 
24
30
  declare class FabButton extends SvelteComponent<
25
- FabButtonProps & Omit<HTMLAttributes<HTMLElementTagNameMap['div']>, keyof FabButtonProps>,
26
- { click: CustomEvent<void>; },
27
- { 'default' : {}; }
31
+ FabButtonProps,
32
+ FabButtonEvents,
33
+ { }
28
34
  > {}
29
35
 
30
36
  export { FabButtonProps };