@noxlovette/material 0.1.24 → 0.1.25

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.
@@ -20,6 +20,7 @@ They’re used for branding, screen titles, navigation, and actions.
20
20
  leading,
21
21
  class: className,
22
22
  showBack,
23
+ ghost = false,
23
24
  ...rest
24
25
  }: AppBarProps = $props();
25
26
 
@@ -31,6 +32,7 @@ They’re used for branding, screen titles, navigation, and actions.
31
32
 
32
33
  const {
33
34
  base,
35
+ ghost: ghostCls,
34
36
  title: titleCLs,
35
37
  textContainer,
36
38
  subtitle: subtitleCls,
@@ -58,3 +60,6 @@ They’re used for branding, screen titles, navigation, and actions.
58
60
  {@render trailing?.()}
59
61
  </div>
60
62
  </nav>
63
+ {#if ghost}
64
+ <div class={ghostCls()} aria-hidden="true"></div>
65
+ {/if}
@@ -27,6 +27,7 @@ export declare const appbar: import("tailwind-variants").TVReturnType<{
27
27
  };
28
28
  }, {
29
29
  base: string;
30
+ ghost: string;
30
31
  textContainer: string;
31
32
  title: string;
32
33
  subtitle: string;
@@ -59,6 +60,7 @@ export declare const appbar: import("tailwind-variants").TVReturnType<{
59
60
  };
60
61
  }, {
61
62
  base: string;
63
+ ghost: string;
62
64
  textContainer: string;
63
65
  title: string;
64
66
  subtitle: string;
@@ -91,6 +93,7 @@ export declare const appbar: import("tailwind-variants").TVReturnType<{
91
93
  };
92
94
  }, {
93
95
  base: string;
96
+ ghost: string;
94
97
  textContainer: string;
95
98
  title: string;
96
99
  subtitle: string;
@@ -1,7 +1,8 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
  export const appbar = tv({
3
3
  slots: {
4
- base: 'py-1 fixed top-0 left-0 w-full md:hidden flex z-40 items-center justify-between',
4
+ base: 'h-16 py-1 fixed top-0 left-0 w-full md:hidden flex z-40 items-center justify-between',
5
+ ghost: 'h-16 w-full shrink-0 md:hidden pointer-events-none',
5
6
  textContainer: 'flex flex-col items-start gap-0.5 grow',
6
7
  title: 'text-md-sys-color-on-surface md-sys-typescale-title-large line-clamp-1 capitalize ',
7
8
  subtitle: 'text-md-sys-color-on-surface-variant md-sys-typescale-label-medium',
@@ -17,4 +17,6 @@ export type AppBarProps = AppbarVariants & HTMLAttributes<HTMLElementTagNameMap[
17
17
  trailing?: Snippet;
18
18
  /** Whether to show a back button in the leading section. */
19
19
  showBack?: boolean;
20
+ /** Renders an invisible same-height spacer after the fixed bar so page content isn't obscured. */
21
+ ghost?: boolean;
20
22
  };
@@ -10,13 +10,13 @@ This component takes NavbarItems as its children
10
10
  @see https://m3.material.io/components/navigation-bar/overview
11
11
  -->
12
12
  <script lang="ts">
13
- import type { Snippet } from 'svelte';
14
- import { navbar } from './theme.js';
15
13
  import { NavigationMenu } from 'bits-ui';
14
+ import { navbar } from './theme.js';
15
+ import type { NavBarProps } from './types.js';
16
16
 
17
- const { children, fab }: { children: Snippet; fab?: Snippet } = $props();
17
+ const { children, fab, ghost = false }: NavBarProps = $props();
18
18
 
19
- const { base, items, fab: fabCls } = $derived(navbar());
19
+ const { base, items, fab: fabCls, ghost: ghostCls } = $derived(navbar());
20
20
  </script>
21
21
 
22
22
  <div class={base()}>
@@ -31,3 +31,6 @@ This component takes NavbarItems as its children
31
31
  </NavigationMenu.List>
32
32
  </NavigationMenu.Root>
33
33
  </div>
34
+ {#if ghost}
35
+ <div class={ghostCls()} aria-hidden="true"></div>
36
+ {/if}
@@ -1,8 +1,4 @@
1
- import type { Snippet } from 'svelte';
2
- type $$ComponentProps = {
3
- children: Snippet;
4
- fab?: Snippet;
5
- };
1
+ import type { NavBarProps } from './types.js';
6
2
  /**
7
3
  * Material 3 Navigation Bar.
8
4
  *
@@ -13,6 +9,6 @@ type $$ComponentProps = {
13
9
  *
14
10
  * @see https://m3.material.io/components/navigation-bar/overview
15
11
  */
16
- declare const Navbar: import("svelte").Component<$$ComponentProps, {}, "">;
12
+ declare const Navbar: import("svelte").Component<NavBarProps, {}, "">;
17
13
  type Navbar = ReturnType<typeof Navbar>;
18
14
  export default Navbar;
@@ -3,6 +3,7 @@ export declare const navbar: import("tailwind-variants").TVReturnType<{
3
3
  [key: string]: import("tailwind-merge").ClassNameValue | {
4
4
  base?: import("tailwind-merge").ClassNameValue;
5
5
  items?: import("tailwind-merge").ClassNameValue;
6
+ ghost?: import("tailwind-merge").ClassNameValue;
6
7
  fab?: import("tailwind-merge").ClassNameValue;
7
8
  };
8
9
  };
@@ -11,6 +12,7 @@ export declare const navbar: import("tailwind-variants").TVReturnType<{
11
12
  [x: string]: import("tailwind-merge").ClassNameValue | {
12
13
  base?: import("tailwind-merge").ClassNameValue;
13
14
  items?: import("tailwind-merge").ClassNameValue;
15
+ ghost?: import("tailwind-merge").ClassNameValue;
14
16
  fab?: import("tailwind-merge").ClassNameValue;
15
17
  };
16
18
  };
@@ -18,11 +20,13 @@ export declare const navbar: import("tailwind-variants").TVReturnType<{
18
20
  base: string;
19
21
  items: string;
20
22
  fab: string;
23
+ ghost: string;
21
24
  }, undefined, {
22
25
  [key: string]: {
23
26
  [key: string]: import("tailwind-merge").ClassNameValue | {
24
27
  base?: import("tailwind-merge").ClassNameValue;
25
28
  items?: import("tailwind-merge").ClassNameValue;
29
+ ghost?: import("tailwind-merge").ClassNameValue;
26
30
  fab?: import("tailwind-merge").ClassNameValue;
27
31
  };
28
32
  };
@@ -30,10 +34,12 @@ export declare const navbar: import("tailwind-variants").TVReturnType<{
30
34
  base: string;
31
35
  items: string;
32
36
  fab: string;
37
+ ghost: string;
33
38
  }, import("tailwind-variants").TVReturnType<unknown, {
34
39
  base: string;
35
40
  items: string;
36
41
  fab: string;
42
+ ghost: string;
37
43
  }, undefined, unknown, unknown, undefined>>;
38
44
  export declare const navitem: import("tailwind-variants").TVReturnType<{
39
45
  active: {
@@ -3,7 +3,8 @@ export const navbar = tv({
3
3
  slots: {
4
4
  base: 'shadow-elevation-2 bg-md-sys-color-surface-container relative z-20 flex h-20 fixed bottom-0 w-full left-0 justify-around py-3 md:hidden',
5
5
  items: 'flex justify-around w-full',
6
- fab: 'bottom-24 right-4 absolute'
6
+ fab: 'bottom-24 right-4 absolute',
7
+ ghost: 'h-20 w-full shrink-0 md:hidden pointer-events-none'
7
8
  }
8
9
  });
9
10
  export const navitem = tv({
@@ -26,4 +26,6 @@ export type NavBarProps = NavBarVariants & HTMLAttributes<HTMLDivElement> & {
26
26
  children: Snippet;
27
27
  /** An optional Floating Action Button snippet. */
28
28
  fab?: Snippet;
29
+ /** Renders an invisible same-height spacer after the fixed bar so page content isn't obscured. */
30
+ ghost?: boolean;
29
31
  };
@@ -2,25 +2,43 @@
2
2
  @component
3
3
  Toolbar provides a horizontal (or vertical) container for grouped actions.
4
4
 
5
+ - variant="floating" — elevated, rounded, inline (default)
6
+ - variant="docked" — full-width, flat, anchored to top/bottom
7
+ - color="standard" — surface-container background
8
+ - color="vibrant" — secondary-container background with inverted toggle selection
9
+ - fab snippet — renders a FAB at the trailing edge (canonical for docked bottom bars)
10
+
5
11
  @see https://m3.material.io/components/toolbars
6
12
  -->
7
13
  <script lang="ts">
8
14
  import { Toolbar } from 'bits-ui';
9
15
  import clsx from 'clsx';
16
+ import { setContext } from 'svelte';
10
17
  import { toolbar } from './theme.js';
11
18
  import type { ToolbarProps } from './types.js';
12
19
 
13
20
  let {
14
21
  children,
22
+ fab,
15
23
  orientation = 'horizontal',
16
24
  loop = true,
25
+ variant = 'floating',
26
+ color = 'standard',
17
27
  class: className,
18
28
  ...restProps
19
29
  }: ToolbarProps = $props();
20
30
 
21
- const cls = $derived(toolbar({ orientation }));
31
+ setContext('toolbar-color', color);
32
+ setContext('toolbar-orientation', orientation);
33
+
34
+ const cls = $derived(toolbar({ orientation, variant, color }));
22
35
  </script>
23
36
 
24
37
  <Toolbar.Root {orientation} {loop} class={cls.root({ class: clsx(className) })} {...restProps}>
25
38
  {@render children?.()}
39
+ {#if fab}
40
+ <div class={cls.fabSlot()}>
41
+ {@render fab()}
42
+ </div>
43
+ {/if}
26
44
  </Toolbar.Root>
@@ -3,6 +3,12 @@ import type { ToolbarProps } from './types.js';
3
3
  /**
4
4
  * Toolbar provides a horizontal (or vertical) container for grouped actions.
5
5
  *
6
+ * - variant="floating" — elevated, rounded, inline (default)
7
+ * - variant="docked" — full-width, flat, anchored to top/bottom
8
+ * - color="standard" — surface-container background
9
+ * - color="vibrant" — secondary-container background with inverted toggle selection
10
+ * - fab snippet — renders a FAB at the trailing edge (canonical for docked bottom bars)
11
+ *
6
12
  * @see https://m3.material.io/components/toolbars
7
13
  */
8
14
  declare const Toolbar: import("svelte").Component<ToolbarProps, {}, "">;
@@ -1,13 +1,16 @@
1
1
  <!--
2
2
  @component
3
3
  An action button within a Toolbar. Non-toggleable.
4
+ Color is inherited from the parent Toolbar via context.
4
5
  -->
5
6
  <script lang="ts">
6
7
  import { Toolbar } from 'bits-ui';
7
8
  import clsx from 'clsx';
9
+ import { getContext } from 'svelte';
8
10
  import { Icon, Layer } from '../../utils/index.js';
9
11
  import { toolbarButton } from './theme.js';
10
12
  import type { ToolbarButtonProps } from './types.js';
13
+ import type { ToolbarColor } from './types.js';
11
14
 
12
15
  let {
13
16
  iconProps,
@@ -16,7 +19,8 @@ An action button within a Toolbar. Non-toggleable.
16
19
  ...restProps
17
20
  }: ToolbarButtonProps = $props();
18
21
 
19
- const { base, icon } = toolbarButton();
22
+ const color = getContext<ToolbarColor>('toolbar-color') ?? 'standard';
23
+ const { base, icon } = toolbarButton({ color });
20
24
  </script>
21
25
 
22
26
  <Toolbar.Button {disabled} class={base({ class: clsx(className) })} {...restProps}>
@@ -1,5 +1,8 @@
1
1
  import type { ToolbarButtonProps } from './types.js';
2
- /** An action button within a Toolbar. Non-toggleable. */
2
+ /**
3
+ * An action button within a Toolbar. Non-toggleable.
4
+ * Color is inherited from the parent Toolbar via context.
5
+ */
3
6
  declare const ToolbarButton: import("svelte").Component<ToolbarButtonProps, {}, "">;
4
7
  type ToolbarButton = ReturnType<typeof ToolbarButton>;
5
8
  export default ToolbarButton;
@@ -1,6 +1,12 @@
1
1
  <script lang="ts">
2
+ import { getContext } from 'svelte';
2
3
  import { toolbar } from './theme.js';
3
- const cls = toolbar();
4
+
5
+ const orientation = getContext<'horizontal' | 'vertical'>('toolbar-orientation') ?? 'horizontal';
6
+ const cls = toolbar({ orientation });
7
+
8
+ // separator runs perpendicular to the toolbar flow
9
+ const ariaOrientation = orientation === 'horizontal' ? 'vertical' : 'horizontal';
4
10
  </script>
5
11
 
6
- <div class={cls.divider()} role="separator" aria-orientation="vertical"></div>
12
+ <div class={cls.divider()} role="separator" aria-orientation={ariaOrientation}></div>
@@ -2,13 +2,16 @@
2
2
  @component
3
3
  A toggleable icon button within a ToolbarGroup.
4
4
  Selected state is driven by data-[state=on] from Bits UI.
5
+ Color is inherited from the parent Toolbar via context.
5
6
  -->
6
7
  <script lang="ts">
7
8
  import { Toolbar } from 'bits-ui';
8
9
  import clsx from 'clsx';
10
+ import { getContext } from 'svelte';
9
11
  import { Icon, Layer } from '../../utils/index.js';
10
12
  import { toolbarGroupItem } from './theme.js';
11
13
  import type { ToolbarGroupItemProps } from './types.js';
14
+ import type { ToolbarColor } from './types.js';
12
15
 
13
16
  let {
14
17
  iconProps,
@@ -18,7 +21,8 @@ Selected state is driven by data-[state=on] from Bits UI.
18
21
  ...restProps
19
22
  }: ToolbarGroupItemProps = $props();
20
23
 
21
- const { base, icon } = toolbarGroupItem();
24
+ const color = getContext<ToolbarColor>('toolbar-color') ?? 'standard';
25
+ const { base, icon } = toolbarGroupItem({ color });
22
26
  </script>
23
27
 
24
28
  <Toolbar.GroupItem {value} {disabled} class={base({ class: clsx(className) })} {...restProps}>
@@ -2,6 +2,7 @@ import type { ToolbarGroupItemProps } from './types.js';
2
2
  /**
3
3
  * A toggleable icon button within a ToolbarGroup.
4
4
  * Selected state is driven by data-[state=on] from Bits UI.
5
+ * Color is inherited from the parent Toolbar via context.
5
6
  */
6
7
  declare const ToolbarGroupItem: import("svelte").Component<ToolbarGroupItemProps, {}, "">;
7
8
  type ToolbarGroupItem = ReturnType<typeof ToolbarGroupItem>;
@@ -6,101 +6,170 @@ export declare const toolbar: import("tailwind-variants").TVReturnType<{
6
6
  orientation: {
7
7
  horizontal: {
8
8
  root: string;
9
+ divider: string;
9
10
  };
10
11
  vertical: {
11
12
  root: string;
13
+ divider: string;
14
+ };
15
+ };
16
+ variant: {
17
+ floating: {
18
+ root: string;
19
+ };
20
+ docked: {
21
+ root: string;
22
+ };
23
+ };
24
+ color: {
25
+ standard: {
26
+ root: string;
27
+ };
28
+ vibrant: {
29
+ root: string;
12
30
  };
13
31
  };
14
32
  }, {
15
33
  root: string;
16
34
  group: string;
17
35
  divider: string;
36
+ fabSlot: string;
18
37
  }, undefined, {
19
38
  orientation: {
20
39
  horizontal: {
21
40
  root: string;
41
+ divider: string;
22
42
  };
23
43
  vertical: {
24
44
  root: string;
45
+ divider: string;
46
+ };
47
+ };
48
+ variant: {
49
+ floating: {
50
+ root: string;
51
+ };
52
+ docked: {
53
+ root: string;
54
+ };
55
+ };
56
+ color: {
57
+ standard: {
58
+ root: string;
59
+ };
60
+ vibrant: {
61
+ root: string;
25
62
  };
26
63
  };
27
64
  }, {
28
65
  root: string;
29
66
  group: string;
30
67
  divider: string;
68
+ fabSlot: string;
31
69
  }, import("tailwind-variants").TVReturnType<{
32
70
  orientation: {
33
71
  horizontal: {
34
72
  root: string;
73
+ divider: string;
35
74
  };
36
75
  vertical: {
37
76
  root: string;
77
+ divider: string;
78
+ };
79
+ };
80
+ variant: {
81
+ floating: {
82
+ root: string;
83
+ };
84
+ docked: {
85
+ root: string;
86
+ };
87
+ };
88
+ color: {
89
+ standard: {
90
+ root: string;
91
+ };
92
+ vibrant: {
93
+ root: string;
38
94
  };
39
95
  };
40
96
  }, {
41
97
  root: string;
42
98
  group: string;
43
99
  divider: string;
100
+ fabSlot: string;
44
101
  }, undefined, unknown, unknown, undefined>>;
45
102
  export declare const toolbarButton: import("tailwind-variants").TVReturnType<{
46
- [key: string]: {
47
- [key: string]: import("tailwind-merge").ClassNameValue | {
48
- base?: import("tailwind-merge").ClassNameValue;
49
- icon?: import("tailwind-merge").ClassNameValue;
103
+ color: {
104
+ standard: {
105
+ base: string;
50
106
  };
51
- };
52
- } | {
53
- [x: string]: {
54
- [x: string]: import("tailwind-merge").ClassNameValue | {
55
- base?: import("tailwind-merge").ClassNameValue;
56
- icon?: import("tailwind-merge").ClassNameValue;
107
+ vibrant: {
108
+ base: string;
57
109
  };
58
110
  };
59
- } | {}, {
111
+ }, {
60
112
  base: string;
61
113
  icon: string;
62
114
  }, undefined, {
63
- [key: string]: {
64
- [key: string]: import("tailwind-merge").ClassNameValue | {
65
- base?: import("tailwind-merge").ClassNameValue;
66
- icon?: import("tailwind-merge").ClassNameValue;
115
+ color: {
116
+ standard: {
117
+ base: string;
118
+ };
119
+ vibrant: {
120
+ base: string;
67
121
  };
68
122
  };
69
- } | {}, {
123
+ }, {
70
124
  base: string;
71
125
  icon: string;
72
- }, import("tailwind-variants").TVReturnType<unknown, {
126
+ }, import("tailwind-variants").TVReturnType<{
127
+ color: {
128
+ standard: {
129
+ base: string;
130
+ };
131
+ vibrant: {
132
+ base: string;
133
+ };
134
+ };
135
+ }, {
73
136
  base: string;
74
137
  icon: string;
75
138
  }, undefined, unknown, unknown, undefined>>;
76
139
  export declare const toolbarGroupItem: import("tailwind-variants").TVReturnType<{
77
- [key: string]: {
78
- [key: string]: import("tailwind-merge").ClassNameValue | {
79
- base?: import("tailwind-merge").ClassNameValue;
80
- icon?: import("tailwind-merge").ClassNameValue;
140
+ color: {
141
+ standard: {
142
+ base: string;
81
143
  };
82
- };
83
- } | {
84
- [x: string]: {
85
- [x: string]: import("tailwind-merge").ClassNameValue | {
86
- base?: import("tailwind-merge").ClassNameValue;
87
- icon?: import("tailwind-merge").ClassNameValue;
144
+ vibrant: {
145
+ base: string;
88
146
  };
89
147
  };
90
- } | {}, {
148
+ }, {
91
149
  base: string;
92
150
  icon: string;
93
151
  }, undefined, {
94
- [key: string]: {
95
- [key: string]: import("tailwind-merge").ClassNameValue | {
96
- base?: import("tailwind-merge").ClassNameValue;
97
- icon?: import("tailwind-merge").ClassNameValue;
152
+ color: {
153
+ standard: {
154
+ base: string;
155
+ };
156
+ vibrant: {
157
+ base: string;
98
158
  };
99
159
  };
100
- } | {}, {
160
+ }, {
101
161
  base: string;
102
162
  icon: string;
103
- }, import("tailwind-variants").TVReturnType<unknown, {
163
+ }, import("tailwind-variants").TVReturnType<{
164
+ color: {
165
+ standard: {
166
+ base: string;
167
+ };
168
+ vibrant: {
169
+ base: string;
170
+ };
171
+ };
172
+ }, {
104
173
  base: string;
105
174
  icon: string;
106
175
  }, undefined, unknown, unknown, undefined>>;
@@ -1,27 +1,59 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
  export const toolbar = tv({
3
3
  slots: {
4
- root: 'inline-flex items-center gap-0.5 rounded-2xl bg-md-sys-color-surface-container px-2 py-1 shadow-elevation-1',
4
+ root: 'items-center gap-0.5 px-2',
5
5
  group: 'inline-flex items-center gap-0.5',
6
- divider: 'mx-1 h-6 w-px shrink-0 bg-md-sys-color-outline-variant'
6
+ divider: 'shrink-0 bg-md-sys-color-outline-variant',
7
+ fabSlot: 'ml-auto flex items-center ps-2'
7
8
  },
8
9
  variants: {
9
10
  orientation: {
10
- horizontal: { root: 'flex-row' },
11
- vertical: { root: 'flex-col h-auto w-14' }
11
+ horizontal: { root: 'flex-row', divider: 'mx-1 h-6 w-px' },
12
+ vertical: { root: 'flex-col h-auto w-14 py-2 px-1', divider: 'my-1 h-px w-6' }
13
+ },
14
+ variant: {
15
+ floating: { root: 'inline-flex rounded-2xl shadow-elevation-1 py-1' },
16
+ docked: { root: 'flex w-full rounded-none py-3' }
17
+ },
18
+ color: {
19
+ standard: { root: 'bg-md-sys-color-surface-container' },
20
+ vibrant: { root: 'bg-md-sys-color-secondary-container' }
12
21
  }
13
22
  },
14
- defaultVariants: { orientation: 'horizontal' }
23
+ defaultVariants: {
24
+ orientation: 'horizontal',
25
+ variant: 'floating',
26
+ color: 'standard'
27
+ }
15
28
  });
16
29
  export const toolbarButton = tv({
17
30
  slots: {
18
- base: 'layer-container state-layer before:rounded-full relative inline-flex size-10 items-center justify-center rounded-full text-md-sys-color-on-surface-variant outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-38',
31
+ base: 'layer-container state-layer before:rounded-full relative inline-flex size-10 items-center justify-center rounded-full outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-38',
19
32
  icon: 'size-5 text-[20px]'
20
- }
33
+ },
34
+ variants: {
35
+ color: {
36
+ standard: { base: 'text-md-sys-color-on-surface-variant' },
37
+ vibrant: { base: 'text-md-sys-color-on-secondary-container' }
38
+ }
39
+ },
40
+ defaultVariants: { color: 'standard' }
21
41
  });
22
42
  export const toolbarGroupItem = tv({
23
43
  slots: {
24
- base: 'layer-container state-layer before:rounded-full relative inline-flex size-10 items-center justify-center rounded-full text-md-sys-color-on-surface-variant outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-38 data-[state=on]:bg-md-sys-color-secondary-container data-[state=on]:text-md-sys-color-on-secondary-container',
44
+ base: 'layer-container state-layer before:rounded-full relative inline-flex size-10 items-center justify-center rounded-full outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-38',
25
45
  icon: 'size-5 text-[20px]'
26
- }
46
+ },
47
+ variants: {
48
+ color: {
49
+ standard: {
50
+ base: 'text-md-sys-color-on-surface-variant data-[state=on]:bg-md-sys-color-secondary-container data-[state=on]:text-md-sys-color-on-secondary-container'
51
+ },
52
+ vibrant: {
53
+ // inverted: selected uses on-secondary-container as bg so it pops against the secondary-container toolbar
54
+ base: 'text-md-sys-color-on-secondary-container data-[state=on]:bg-md-sys-color-on-secondary-container data-[state=on]:text-md-sys-color-secondary-container'
55
+ }
56
+ }
57
+ },
58
+ defaultVariants: { color: 'standard' }
27
59
  });
@@ -1,12 +1,14 @@
1
1
  import type { IconProps } from '../../utils/index.js';
2
2
  import type { ToolbarButtonProps as BitsToolbarButtonProps, ToolbarGroupItemProps as BitsToolbarGroupItemProps, ToolbarGroupProps as BitsToolbarGroupProps, ToolbarRootProps } from 'bits-ui';
3
3
  import type { Snippet } from 'svelte';
4
- import type { ToolbarButtonVariants, ToolbarGroupItemVariants, ToolbarVariants } from './theme.js';
4
+ import type { ToolbarVariants } from './theme.js';
5
+ export type ToolbarColor = 'standard' | 'vibrant';
5
6
  export type ToolbarProps = ToolbarVariants & Omit<ToolbarRootProps, 'children' | 'child'> & {
6
7
  children?: Snippet;
8
+ fab?: Snippet;
7
9
  class?: string;
8
10
  };
9
- export type ToolbarButtonProps = ToolbarButtonVariants & Omit<BitsToolbarButtonProps, 'children' | 'child'> & {
11
+ export type ToolbarButtonProps = Omit<BitsToolbarButtonProps, 'children' | 'child'> & {
10
12
  iconProps: IconProps;
11
13
  class?: string;
12
14
  };
@@ -14,7 +16,7 @@ export type ToolbarGroupProps = Omit<BitsToolbarGroupProps, 'children' | 'child'
14
16
  children?: Snippet;
15
17
  class?: string;
16
18
  };
17
- export type ToolbarGroupItemProps = ToolbarGroupItemVariants & Omit<BitsToolbarGroupItemProps, 'children' | 'child'> & {
19
+ export type ToolbarGroupItemProps = Omit<BitsToolbarGroupItemProps, 'children' | 'child'> & {
18
20
  iconProps: IconProps;
19
21
  class?: string;
20
22
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noxlovette/material",
3
- "version": "0.1.24",
3
+ "version": "0.1.25",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {