@archetypeai/ds-ui-svelte-labs 0.7.1 → 0.8.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @archetypeai/ds-ui-svelte-labs
2
2
 
3
- Labs primitives of the Archetype AI design system - the **experimental 0.x tier** built on top of the frozen [`@archetypeai/ds-ui-svelte-console`](./DS-UI-SVELTE-CONSOLE.md) base. Svelte 5 primitives styled with Tailwind v4 and `tailwind-variants`, wired to the `@archetypeai/ds-lib-tokens` theme, composing console primitives (Button, Card, Badge) where they need stable building blocks. TypeScript source ships as `.svelte` files (no precompilation) so consumers get full type-checking and IDE go-to-definition.
3
+ Labs primitives of the Archetype AI design system - the **experimental 0.x tier** built on top of the frozen [`@archetypeai/ds-ui-svelte-console`](https://www.npmjs.com/package/@archetypeai/ds-ui-svelte-console) base. Svelte 5 primitives styled with Tailwind v4 and `tailwind-variants`, wired to the `@archetypeai/ds-lib-tokens` theme, composing console primitives (Button, Card, Badge) where they need stable building blocks. TypeScript source ships as `.svelte` files (no precompilation) so consumers get full type-checking and IDE go-to-definition.
4
4
 
5
5
  Labs is versioned 0.x: breaking changes are in-contract between minor versions. Components that prove themselves graduate toward console; console itself never changes to accommodate labs.
6
6
 
@@ -1,8 +1,14 @@
1
1
  <script lang="ts">
2
2
  import { AspectRatio as AspectRatioPrimitive } from 'bits-ui';
3
- import type { AspectRatioProps } from './types.js';
3
+ import { cn } from '../utils.js';
4
+ import { aspectRatioVariants, type AspectRatioProps } from './types.js';
4
5
 
5
- let { ref = $bindable(null), ...restProps }: AspectRatioProps = $props();
6
+ let { ref = $bindable(null), class: className, ...restProps }: AspectRatioProps = $props();
6
7
  </script>
7
8
 
8
- <AspectRatioPrimitive.Root bind:ref data-slot="aspect-ratio" {...restProps} />
9
+ <AspectRatioPrimitive.Root
10
+ bind:ref
11
+ data-slot="aspect-ratio"
12
+ class={cn(aspectRatioVariants(), className)}
13
+ {...restProps}
14
+ />
@@ -1,4 +1,4 @@
1
1
  import Root from './aspect-ratio.svelte';
2
- export { type AspectRatioProps } from './types.js';
2
+ export { aspectRatioVariants, type AspectRatioProps } from './types.js';
3
3
  export { Root, Root as AspectRatio };
4
4
  export default Root;
@@ -1,5 +1,5 @@
1
1
  import Root from './aspect-ratio.svelte';
2
- export {} from './types.js';
2
+ export { aspectRatioVariants } from './types.js';
3
3
  export { Root,
4
4
  //
5
5
  Root as AspectRatio };
@@ -1,2 +1,3 @@
1
1
  import type { AspectRatio as AspectRatioPrimitive } from 'bits-ui';
2
+ export declare const aspectRatioVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "", unknown, unknown, undefined>>;
2
3
  export type AspectRatioProps = AspectRatioPrimitive.RootProps;
@@ -1 +1,7 @@
1
- export {};
1
+ import { tv } from 'tailwind-variants';
2
+ // base-only tv(): aspect-ratio is a headless layout primitive with no styling
3
+ // of its own, but the empty base gives consumers a cn() merge anchor and keeps
4
+ // the barrel exporting a *Variants like every other primitive
5
+ export const aspectRatioVariants = tv({
6
+ base: ''
7
+ });
@@ -3,7 +3,7 @@
3
3
  import { scatterTooltipVariants, type ScatterTooltipProps } from './types.js';
4
4
  import { getTooltipContext, Tooltip } from 'layerchart';
5
5
 
6
- let { class: className }: ScatterTooltipProps = $props();
6
+ let { ref = $bindable(null), class: className, ...restProps }: ScatterTooltipProps = $props();
7
7
 
8
8
  const tooltipCtx = getTooltipContext();
9
9
 
@@ -19,7 +19,12 @@
19
19
  </script>
20
20
 
21
21
  <Tooltip.Root variant="none">
22
- <div data-slot="scatter-tooltip" class={cn(scatterTooltipVariants(), className)}>
22
+ <div
23
+ bind:this={ref}
24
+ data-slot="scatter-tooltip"
25
+ class={cn(scatterTooltipVariants(), className)}
26
+ {...restProps}
27
+ >
23
28
  {#if point}
24
29
  <div class="flex items-center justify-between gap-4">
25
30
  <span class="text-muted-foreground">x</span>
@@ -1,4 +1,3 @@
1
- import { type ScatterTooltipProps } from './types.js';
2
- declare const ScatterTooltip: import("svelte").Component<ScatterTooltipProps, {}, "">;
1
+ declare const ScatterTooltip: import("svelte").Component<Omit<import("@archetypeai/ds-ui-svelte-console/primitives/utils").WithElementRef<import("svelte/elements").HTMLAttributes<HTMLDivElement>>, "children">, {}, "ref">;
3
2
  type ScatterTooltip = ReturnType<typeof ScatterTooltip>;
4
3
  export default ScatterTooltip;
@@ -5,7 +5,7 @@ import type { ChartConfig, TooltipPayload } from './chart-utils.js';
5
5
  export declare const chartContainerVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, string[], {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, string[], unknown, unknown, undefined>>;
6
6
  export declare const chartTooltipVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "border-border/50 bg-background grid min-w-36 items-start gap-1.5 rounded-xs border px-2.5 py-1.5 text-xs shadow-xl", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "border-border/50 bg-background grid min-w-36 items-start gap-1.5 rounded-xs border px-2.5 py-1.5 text-xs shadow-xl", unknown, unknown, undefined>>;
7
7
  export declare const scatterTooltipVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "border-border/50 bg-background grid min-w-32 items-start gap-1.5 rounded-xs border px-2.5 py-1.5 text-xs shadow-xl", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "border-border/50 bg-background grid min-w-32 items-start gap-1.5 rounded-xs border px-2.5 py-1.5 text-xs shadow-xl", unknown, unknown, undefined>>;
8
- export type ChartContainerProps = WithElementRef<HTMLAttributes<HTMLElement>> & {
8
+ export type ChartContainerProps = WithElementRef<HTMLAttributes<HTMLDivElement>> & {
9
9
  config: ChartConfig;
10
10
  };
11
11
  export type ChartTooltipIndicator = 'line' | 'dot' | 'dashed';
@@ -28,6 +28,4 @@ export type ChartTooltipProps = WithoutChildren<WithElementRef<HTMLAttributes<HT
28
28
  }
29
29
  ]>;
30
30
  };
31
- export type ScatterTooltipProps = {
32
- class?: string;
33
- };
31
+ export type ScatterTooltipProps = WithoutChildren<WithElementRef<HTMLAttributes<HTMLDivElement>>>;
@@ -1,6 +1,6 @@
1
1
  import { type WithElementRef } from '../utils.js';
2
2
  import type { HTMLAttributes } from 'svelte/elements';
3
- export declare const kbdVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-xs px-1 font-sans text-xs font-medium select-none [&_svg:not([class*='size-'])]:size-3 in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-xs px-1 font-sans text-xs font-medium select-none [&_svg:not([class*='size-'])]:size-3 in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10", unknown, unknown, undefined>>;
3
+ export declare const kbdVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-xs px-1 font-sans text-xs font-normal select-none [&_svg:not([class*='size-'])]:size-3 in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-xs px-1 font-sans text-xs font-normal select-none [&_svg:not([class*='size-'])]:size-3 in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10", unknown, unknown, undefined>>;
4
4
  export declare const kbdGroupVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "inline-flex items-center gap-1", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "inline-flex items-center gap-1", unknown, unknown, undefined>>;
5
5
  export type KbdProps = WithElementRef<HTMLAttributes<HTMLElement>>;
6
6
  export type KbdGroupProps = WithElementRef<HTMLAttributes<HTMLElement>>;
@@ -1,7 +1,7 @@
1
1
  import {} from '../utils.js';
2
2
  import { tv } from 'tailwind-variants';
3
3
  export const kbdVariants = tv({
4
- base: "bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-xs px-1 font-sans text-xs font-medium select-none [&_svg:not([class*='size-'])]:size-3 in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10"
4
+ base: "bg-muted text-muted-foreground pointer-events-none inline-flex h-5 w-fit min-w-5 items-center justify-center gap-1 rounded-xs px-1 font-sans text-xs font-normal select-none [&_svg:not([class*='size-'])]:size-3 in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10"
5
5
  });
6
6
  export const kbdGroupVariants = tv({
7
7
  base: 'inline-flex items-center gap-1'
@@ -2,10 +2,18 @@
2
2
  import { cn } from '../utils.js';
3
3
  import { logoVariants, type LogoProps } from './types.js';
4
4
 
5
- let { class: className, size = 'default', ...restProps }: LogoProps = $props();
5
+ let {
6
+ class: className,
7
+ size = 'default',
8
+ role = 'img',
9
+ 'aria-label': ariaLabel = 'Archetype AI',
10
+ ...restProps
11
+ }: LogoProps = $props();
6
12
  </script>
7
13
 
8
14
  <svg
15
+ {role}
16
+ aria-label={ariaLabel}
9
17
  data-slot="logo"
10
18
  data-size={size}
11
19
  class={cn(logoVariants({ size }), className)}
@@ -20,6 +20,6 @@ export declare const logoVariants: import("tailwind-variants").TVReturnType<{
20
20
  };
21
21
  }, undefined, "text-foreground shrink-0 antialiased", unknown, unknown, undefined>>;
22
22
  export type LogoSize = VariantProps<typeof logoVariants>['size'];
23
- export type LogoProps = SVGAttributes<SVGSVGElement> & {
23
+ export type LogoProps = Omit<SVGAttributes<SVGSVGElement>, 'children'> & {
24
24
  size?: LogoSize;
25
25
  };
@@ -2,14 +2,12 @@
2
2
  import { cn } from '../utils.js';
3
3
  import Logo from '../logo/index.js';
4
4
  import { menubarVariants, type MenubarProps } from './types.js';
5
- import { Badge } from '@archetypeai/ds-ui-svelte-console/primitives/badge';
6
5
  import { Button } from '@archetypeai/ds-ui-svelte-console/primitives/button';
6
+ import { darkMode } from '@archetypeai/ds-ui-svelte-console/primitives/theme';
7
7
  import SeparatorIcon from '@lucide/svelte/icons/minus';
8
8
  import SunIcon from '@lucide/svelte/icons/sun';
9
9
  import MoonIcon from '@lucide/svelte/icons/moon';
10
10
 
11
- const browser = typeof window !== 'undefined';
12
-
13
11
  let {
14
12
  ref = $bindable(null),
15
13
  partnerLogo,
@@ -18,33 +16,14 @@
18
16
  darkToggle = true,
19
17
  ...restProps
20
18
  }: MenubarProps = $props();
21
-
22
- // follow whatever theme the host app has already applied; the toggle is the
23
- // only thing that mutates the document class
24
- let darkMode = $state(browser && document.documentElement.classList.contains('dark'));
25
-
26
- function toggleDark() {
27
- const apply = () => {
28
- darkMode = !darkMode;
29
- document.documentElement.classList.toggle('dark', darkMode);
30
- };
31
-
32
- if (document.startViewTransition) {
33
- document.startViewTransition(apply);
34
- } else {
35
- apply();
36
- }
37
- }
38
19
  </script>
39
20
 
40
21
  <header bind:this={ref} data-slot="menubar" class={cn(menubarVariants(), className)} {...restProps}>
41
22
  <div data-slot="menubar-brand" class="flex items-center gap-3">
42
23
  <Logo />
43
- <SeparatorIcon class="text-muted-foreground size-6" strokeWidth={1} aria-hidden="true" />
44
24
  {#if partnerLogo}
25
+ <SeparatorIcon class="text-muted-foreground size-6" strokeWidth={1} aria-hidden="true" />
45
26
  {@render partnerLogo()}
46
- {:else}
47
- <Badge class="text-muted-foreground mr-0">Partner Logo</Badge>
48
27
  {/if}
49
28
  </div>
50
29
 
@@ -54,8 +33,13 @@
54
33
  {@render children()}
55
34
  {/if}
56
35
  {#if darkToggle}
57
- <Button variant="outline" size="icon" onclick={toggleDark} aria-label="Toggle dark mode">
58
- {#if darkMode}
36
+ <Button
37
+ variant="outline"
38
+ size="icon"
39
+ onclick={() => darkMode.toggle()}
40
+ aria-label="Toggle dark mode"
41
+ >
42
+ {#if darkMode.current}
59
43
  <SunIcon />
60
44
  {:else}
61
45
  <MoonIcon />
@@ -3,7 +3,7 @@ import type { Snippet } from 'svelte';
3
3
  import type { HTMLAttributes } from 'svelte/elements';
4
4
  export declare const menubarVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "border-border flex items-center justify-between border-b px-4 py-2", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "border-border flex items-center justify-between border-b px-4 py-2", unknown, unknown, undefined>>;
5
5
  export type MenubarProps = WithElementRef<HTMLAttributes<HTMLElement>> & {
6
- /** optional partner logo snippet for co-branding; a placeholder badge renders when omitted */
6
+ /** optional partner logo snippet for co-branding; the separator + partner area render only when provided */
7
7
  partnerLogo?: Snippet;
8
8
  /** show built-in dark mode toggle (opt out with false) */
9
9
  darkToggle?: boolean;
@@ -1,7 +1,7 @@
1
1
  import { type WithElementRef } from '../utils.js';
2
2
  import type { Component } from 'svelte';
3
3
  import type { HTMLAttributes } from 'svelte/elements';
4
- export declare const scatterChartVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "bg-card text-card-foreground border-border flex flex-col gap-6 rounded-xs border p-4 shadow-sm", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "bg-card text-card-foreground border-border flex flex-col gap-6 rounded-xs border p-4 shadow-sm", unknown, unknown, undefined>>;
4
+ export declare const scatterChartVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "bg-card text-card-foreground border-border flex flex-col gap-6 rounded-interactive border p-4", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "bg-card text-card-foreground border-border flex flex-col gap-6 rounded-interactive border p-4", unknown, unknown, undefined>>;
5
5
  export type ScatterChartProps = WithElementRef<HTMLAttributes<HTMLDivElement>> & {
6
6
  /** card header label; header renders only when title or icon is set */
7
7
  title?: string;
@@ -2,5 +2,5 @@ import {} from '../utils.js';
2
2
  import { tv } from 'tailwind-variants';
3
3
  // card shell inlined from the retired background-card pattern
4
4
  export const scatterChartVariants = tv({
5
- base: 'bg-card text-card-foreground border-border flex flex-col gap-6 rounded-xs border p-4 shadow-sm'
5
+ base: 'bg-card text-card-foreground border-border flex flex-col gap-6 rounded-interactive border p-4'
6
6
  });
@@ -2,7 +2,7 @@ import { type WithElementRef } from '../utils.js';
2
2
  import type { Component } from 'svelte';
3
3
  import type { HTMLAttributes } from 'svelte/elements';
4
4
  import type { ChartAxis } from '../chart/chart-utils.js';
5
- export declare const sensorChartVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "bg-card text-card-foreground border-border flex flex-col gap-6 rounded-xs border p-4 shadow-sm", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "bg-card text-card-foreground border-border flex flex-col gap-6 rounded-xs border p-4 shadow-sm", unknown, unknown, undefined>>;
5
+ export declare const sensorChartVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "bg-card text-card-foreground border-border flex flex-col gap-6 rounded-interactive border p-4", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "bg-card text-card-foreground border-border flex flex-col gap-6 rounded-interactive border p-4", unknown, unknown, undefined>>;
6
6
  export type SensorChartProps = WithElementRef<HTMLAttributes<HTMLDivElement>> & {
7
7
  /** card header label identifying the sensor; header renders only when title or icon is set */
8
8
  title?: string;
@@ -2,5 +2,5 @@ import {} from '../utils.js';
2
2
  import { tv } from 'tailwind-variants';
3
3
  // card shell inlined from the retired background-card pattern
4
4
  export const sensorChartVariants = tv({
5
- base: 'bg-card text-card-foreground border-border flex flex-col gap-6 rounded-xs border p-4 shadow-sm'
5
+ base: 'bg-card text-card-foreground border-border flex flex-col gap-6 rounded-interactive border p-4'
6
6
  });
@@ -3,5 +3,5 @@ import { type WithoutChildrenOrChild } from '../utils.js';
3
3
  export declare const sliderVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", unknown, unknown, undefined>>;
4
4
  export declare const sliderTrackVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5", unknown, unknown, undefined>>;
5
5
  export declare const sliderRangeVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full", unknown, unknown, undefined>>;
6
- export declare const sliderThumbVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50", unknown, unknown, undefined>>;
6
+ export declare const sliderThumbVariants: import("tailwind-variants").TVReturnType<{} | {} | {}, undefined, "border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-background shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50", {} | {}, undefined, import("tailwind-variants").TVReturnType<unknown, undefined, "border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-background shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50", unknown, unknown, undefined>>;
7
7
  export type SliderProps = WithoutChildrenOrChild<SliderPrimitive.RootProps>;
@@ -10,5 +10,5 @@ export const sliderRangeVariants = tv({
10
10
  base: 'bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full'
11
11
  });
12
12
  export const sliderThumbVariants = tv({
13
- base: 'border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50'
13
+ base: 'border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-background shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50'
14
14
  });
@@ -10,7 +10,7 @@ export declare const toggleVariants: import("tailwind-variants").TVReturnType<{
10
10
  sm: string;
11
11
  lg: string;
12
12
  };
13
- }, undefined, "hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex items-center justify-center gap-2 rounded-xs text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
13
+ }, undefined, "hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex items-center justify-center gap-2 rounded-interactive text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
14
14
  variant: {
15
15
  default: string;
16
16
  outline: string;
@@ -30,7 +30,7 @@ export declare const toggleVariants: import("tailwind-variants").TVReturnType<{
30
30
  sm: string;
31
31
  lg: string;
32
32
  };
33
- }, undefined, "hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex items-center justify-center gap-2 rounded-xs text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", unknown, unknown, undefined>>;
33
+ }, undefined, "hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex items-center justify-center gap-2 rounded-interactive text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", unknown, unknown, undefined>>;
34
34
  export type ToggleVariant = VariantProps<typeof toggleVariants>['variant'];
35
35
  export type ToggleSize = VariantProps<typeof toggleVariants>['size'];
36
36
  export type ToggleProps = TogglePrimitive.RootProps & {
@@ -1,6 +1,6 @@
1
1
  import { tv } from 'tailwind-variants';
2
2
  export const toggleVariants = tv({
3
- base: "hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex items-center justify-center gap-2 rounded-xs text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
3
+ base: "hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex items-center justify-center gap-2 rounded-interactive text-sm font-medium whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
4
4
  variants: {
5
5
  variant: {
6
6
  default: 'bg-transparent',
@@ -129,7 +129,7 @@
129
129
 
130
130
  <span
131
131
  data-slot="video-player-time"
132
- class="bg-background/30 text-foreground rounded-full px-3 py-1.5 whitespace-nowrap"
132
+ class="bg-background/30 text-foreground rounded-full px-3 py-1.5 font-mono text-xs whitespace-nowrap"
133
133
  >
134
134
  {formatMMSS(time)} / {formatMMSS(duration)}
135
135
  </span>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@archetypeai/ds-ui-svelte-labs",
3
- "version": "0.7.1",
3
+ "version": "0.8.0",
4
4
  "description": "Archetype AI Design System Labs Primitives (experimental 0.x tier composing @archetypeai/ds-ui-svelte-console)",
5
5
  "type": "module",
6
6
  "license": "MIT",