@warmio/ui 1.2.0 → 1.4.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/types/logo.d.ts CHANGED
@@ -1,25 +1,8 @@
1
- import type { ReactNode } from 'react';
2
-
3
- export type WarmLogoSize = 'badge' | 'default' | 'feature' | 'hero';
4
- export type WarmLogoTone = 'default' | 'foreground' | 'sidebar';
5
-
6
- type StrictLogoProps = {
7
- className?: never;
8
- style?: never;
9
- textClass?: never;
10
- };
11
-
12
- export type WarmLogoIconProps = StrictLogoProps & {
13
- size?: WarmLogoSize;
14
- tone?: WarmLogoTone;
15
- decorative?: boolean;
16
- };
17
-
18
- export type LogoProps = StrictLogoProps & {
19
- size?: WarmLogoSize;
20
- tone?: WarmLogoTone;
21
- showText?: boolean;
22
- };
23
-
24
- export declare function WarmLogoIcon(props: WarmLogoIconProps): ReactNode;
25
- export declare function Logo(props: LogoProps): ReactNode;
1
+ export {
2
+ Logo,
3
+ WarmLogoIcon,
4
+ type LogoProps,
5
+ type WarmLogoIconProps,
6
+ type WarmLogoSize,
7
+ type WarmLogoTone,
8
+ } from '@warmio/design/logo';
package/types/sheet.d.ts CHANGED
@@ -15,12 +15,9 @@ export type SheetContentProps = Omit<WithoutChrome<Dialog.Popup.Props>, 'overlay
15
15
  responsive?: 'always' | 'mobileOnly';
16
16
  width?: 'default' | 'full' | 'wide';
17
17
  };
18
- export type SheetFooterProps = WithoutChrome<ComponentProps<'div'>> & {
19
- spacing?: 'default' | 'roomy';
20
- };
18
+ export type SheetFooterProps = WithoutChrome<ComponentProps<'div'>>;
21
19
  export type SheetHeaderProps = WithoutChrome<ComponentProps<'div'>> & {
22
20
  presentation?: 'navigation';
23
- spacing?: 'default' | 'roomy';
24
21
  };
25
22
  export type SheetTitleProps = WithoutChrome<Dialog.Title.Props> & {
26
23
  presentation?: 'navigation';
@@ -59,7 +59,7 @@ export type SidebarMenuButtonProps = WithoutChrome<ComponentProps<'button'>> & {
59
59
  tooltip?: string | ReactNode;
60
60
  render?: ReactElement;
61
61
  variant?: 'default' | 'outline' | null;
62
- size?: 'default' | 'sm' | 'lg' | null;
62
+ size?: 'default' | null;
63
63
  collapsed?: boolean;
64
64
  presentation?: 'account' | 'disabled' | 'navigation' | 'previewCollapsed';
65
65
  };
@@ -92,6 +92,7 @@ export declare function SidebarMenuItem(props: SidebarMenuItemProps): ReactNode;
92
92
  export declare function SidebarMenuButton(props: SidebarMenuButtonProps): ReactNode;
93
93
  export declare function SidebarMenuBadge(props: SidebarMenuBadgeProps): ReactNode;
94
94
  export declare function useSidebar(): SidebarContextValue;
95
+ export declare function SidebarTrigger(props: WithoutChrome<ComponentProps<'button'>>): ReactNode;
95
96
 
96
97
  export type SidebarBrandProps = {
97
98
  actions?: ReactNode;
package/types/text.d.ts CHANGED
@@ -6,7 +6,9 @@ export type TextVariant =
6
6
  | 'caption'
7
7
  | 'display'
8
8
  | 'displayCompact'
9
+ | 'displayHero'
9
10
  | 'helper'
11
+ | 'lede'
10
12
  | 'micro'
11
13
  | 'microStrong'
12
14
  | 'overline'
@@ -15,7 +17,7 @@ export type TextTone = 'default' | 'foreground' | 'muted' | 'primary' | 'success
15
17
  export type TextAlign = 'center' | 'end' | 'start';
16
18
  export type TextProps = {
17
19
  align?: TextAlign;
18
- as?: 'div' | 'h2' | 'h3' | 'p' | 'small' | 'span';
20
+ as?: 'div' | 'h1' | 'h2' | 'h3' | 'p' | 'small' | 'span';
19
21
  children?: ReactNode;
20
22
  className?: never;
21
23
  numeric?: boolean;
@@ -1,124 +0,0 @@
1
- import {
2
- Button,
3
- buttonVariants
4
- } from "./chunk-T2TXMN3G.js";
5
- import {
6
- cn
7
- } from "./chunk-VIB7OX7D.js";
8
-
9
- // ../ui/src/warmio/button.tsx
10
- import * as React from "react";
11
- import { jsx } from "react/jsx-runtime";
12
- var buttonPresentationSize = {
13
- assistantIcon: "icon-xs",
14
- assistantRoundIcon: "icon-round",
15
- composerIcon: "icon-sm",
16
- default: "default",
17
- compact: "sm",
18
- controlPeer: "default",
19
- editPill: "sm",
20
- hero: "lg",
21
- menuOption: "option",
22
- promptCategory: "default",
23
- promptOption: "option",
24
- sidebarIcon: "icon",
25
- tableHeader: "default",
26
- threadMore: "icon-xs",
27
- threadNew: "sm",
28
- touch: "default"
29
- };
30
- var buttonPresentationClasses = {
31
- assistantIcon: "size-6 p-1 active:scale-90",
32
- composerIcon: "size-7 p-1",
33
- editPill: "rounded-full px-3",
34
- hero: "h-12 rounded-xl bg-clip-border px-6 py-2 text-base font-bold",
35
- promptCategory: "h-9 gap-1.5 rounded-full border border-border bg-background px-3.5 text-sm font-normal text-foreground shadow-xs transition-colors hover:bg-muted",
36
- promptOption: "min-h-16 items-start justify-start gap-2 rounded-xl px-3 py-3 text-sm",
37
- sidebarIcon: "bg-clip-border text-sidebar-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground dark:hover:bg-white/6 dark:hover:text-sidebar-foreground",
38
- // Flush with WarmTableHead/Cell edge inset so labels align with row content.
39
- tableHeader: "h-auto min-h-0 w-full justify-start gap-1 rounded-lg px-0 py-0 font-normal text-muted-foreground hover:bg-transparent hover:text-foreground data-[align=end]:justify-end",
40
- touch: "min-h-11",
41
- threadMore: "size-6 p-0",
42
- threadNew: "h-8 justify-start gap-2 rounded-lg px-2.5 text-sm font-normal hover:bg-muted data-active:bg-muted"
43
- };
44
- var buttonVariantBase = {
45
- apple: "outline",
46
- default: "default",
47
- destructive: "destructive",
48
- ghost: "ghost",
49
- outline: "outline"
50
- };
51
- var buttonVariantClasses = {
52
- apple: "border-black bg-black text-white hover:bg-black/90 hover:text-white [&_.warm-loader-logo]:invert"
53
- };
54
- var buttonInputAlignmentClasses = {
55
- default: "bg-clip-border py-1"
56
- };
57
- function resolveButton(presentation, size, variant) {
58
- const resolvedSize = size ?? buttonPresentationSize[presentation];
59
- const presentationClassName = !size && buttonPresentationClasses[presentation] ? buttonPresentationClasses[presentation] : buttonInputAlignmentClasses[resolvedSize];
60
- return {
61
- presentationClassName,
62
- primitiveVariant: buttonVariantBase[variant],
63
- resolvedSize,
64
- variantClassName: buttonVariantClasses[variant]
65
- };
66
- }
67
- var Button2 = React.forwardRef(function Button3({
68
- className: _className,
69
- presentation = "default",
70
- size,
71
- style: _style,
72
- variant = "default",
73
- width,
74
- ...props
75
- }, ref) {
76
- const { presentationClassName, primitiveVariant, resolvedSize, variantClassName } = resolveButton(
77
- presentation,
78
- size,
79
- variant
80
- );
81
- return /* @__PURE__ */ jsx(
82
- Button,
83
- {
84
- ...props,
85
- ref,
86
- variant: primitiveVariant,
87
- size: resolvedSize,
88
- "data-variant": variant,
89
- className: cn(presentationClassName, variantClassName, width === "full" && "w-full")
90
- }
91
- );
92
- });
93
- Button2.displayName = "WarmButton";
94
- var ButtonLink = React.forwardRef(function ButtonLink2({ children, presentation = "default", size, variant = "default", width, ...props }, ref) {
95
- const { presentationClassName, primitiveVariant, resolvedSize, variantClassName } = resolveButton(
96
- presentation,
97
- size,
98
- variant
99
- );
100
- return /* @__PURE__ */ jsx(
101
- "a",
102
- {
103
- ...props,
104
- ref,
105
- "data-slot": "button",
106
- "data-variant": variant,
107
- "data-size": resolvedSize,
108
- className: cn(
109
- buttonVariants({ size: resolvedSize, variant: primitiveVariant }),
110
- presentationClassName,
111
- variantClassName,
112
- "focus-visible:outline-2 focus-visible:outline-solid focus-visible:outline-offset-2 focus-visible:outline-ring",
113
- width === "full" && "w-full"
114
- ),
115
- children
116
- }
117
- );
118
- });
119
- ButtonLink.displayName = "WarmButtonLink";
120
-
121
- export {
122
- Button2 as Button,
123
- ButtonLink
124
- };
@@ -1,135 +0,0 @@
1
- import {
2
- Button
3
- } from "./chunk-T2TXMN3G.js";
4
- import {
5
- cn
6
- } from "./chunk-VIB7OX7D.js";
7
-
8
- // ../ui/src/components/sheet.tsx
9
- import * as React from "react";
10
- import { Dialog as SheetPrimitive } from "@base-ui/react/dialog";
11
- import { XIcon } from "lucide-react";
12
- import { jsx, jsxs } from "react/jsx-runtime";
13
- function Sheet(props) {
14
- return /* @__PURE__ */ jsx(SheetPrimitive.Root, { ...props });
15
- }
16
- function SheetTrigger({ asChild = false, children, render, ...props }) {
17
- const resolvedRender = render ?? (asChild && React.isValidElement(children) ? children : void 0);
18
- return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", render: resolvedRender, ...props, children: resolvedRender ? void 0 : children });
19
- }
20
- function SheetClose({ asChild = false, children, render, ...props }) {
21
- const resolvedRender = render ?? (asChild && React.isValidElement(children) ? children : void 0);
22
- return /* @__PURE__ */ jsx(SheetPrimitive.Close, { "data-slot": "sheet-close", render: resolvedRender, ...props, children: resolvedRender ? void 0 : children });
23
- }
24
- function SheetPortal({ ...props }) {
25
- return /* @__PURE__ */ jsx(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
26
- }
27
- function SheetOverlay({ className, ...props }) {
28
- return /* @__PURE__ */ jsx(
29
- SheetPrimitive.Backdrop,
30
- {
31
- "data-slot": "sheet-overlay",
32
- className: cn(
33
- "fixed inset-0 z-[var(--z-overlay-backdrop)] bg-black/20 duration-100 supports-backdrop-filter:backdrop-blur data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
34
- className
35
- ),
36
- ...props
37
- }
38
- );
39
- }
40
- function SheetContent({
41
- className,
42
- children,
43
- side = "right",
44
- showCloseButton = true,
45
- overlayClassName,
46
- ...props
47
- }) {
48
- return /* @__PURE__ */ jsxs(SheetPortal, { children: [
49
- /* @__PURE__ */ jsx(SheetOverlay, { className: overlayClassName }),
50
- /* @__PURE__ */ jsxs(
51
- SheetPrimitive.Popup,
52
- {
53
- "data-slot": "sheet-content",
54
- "data-side": side,
55
- className: cn(
56
- "fixed z-[calc(var(--z-overlay-backdrop)+1)] flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:max-h-[calc(100dvh-var(--safe-area-inset-top)-var(--safe-area-inset-bottom))] data-[side=bottom]:overflow-y-auto data-[side=bottom]:border-t data-[side=bottom]:pb-[var(--safe-area-inset-bottom)] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:pt-[var(--safe-area-inset-top)] data-[side=left]:pb-[var(--safe-area-inset-bottom)] data-[side=left]:pl-[var(--safe-area-inset-left)] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:pt-[var(--safe-area-inset-top)] data-[side=right]:pr-[var(--safe-area-inset-right)] data-[side=right]:pb-[var(--safe-area-inset-bottom)] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:max-h-[calc(100dvh-var(--safe-area-inset-top)-var(--safe-area-inset-bottom))] data-[side=top]:overflow-y-auto data-[side=top]:border-b data-[side=top]:pt-[var(--safe-area-inset-top)] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:animate-out data-closed:fade-out-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=right]:data-closed:slide-out-to-right-10 data-[side=top]:data-closed:slide-out-to-top-10 motion-reduce:animate-none motion-reduce:transition-none",
57
- className
58
- ),
59
- ...props,
60
- children: [
61
- children,
62
- showCloseButton && /* @__PURE__ */ jsxs(
63
- SheetPrimitive.Close,
64
- {
65
- "data-slot": "sheet-close",
66
- render: /* @__PURE__ */ jsx(
67
- Button,
68
- {
69
- variant: "ghost",
70
- className: "absolute top-[max(1rem,var(--safe-area-inset-top))] right-[max(1rem,var(--safe-area-inset-right))]",
71
- size: "icon-sm"
72
- }
73
- ),
74
- children: [
75
- /* @__PURE__ */ jsx(XIcon, {}),
76
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
77
- ]
78
- }
79
- )
80
- ]
81
- }
82
- )
83
- ] });
84
- }
85
- function SheetHeader({ className, ...props }) {
86
- return /* @__PURE__ */ jsx(
87
- "div",
88
- {
89
- "data-slot": "sheet-header",
90
- className: cn("flex flex-col gap-1.5 p-4", className),
91
- ...props
92
- }
93
- );
94
- }
95
- function SheetFooter({ className, ...props }) {
96
- return /* @__PURE__ */ jsx(
97
- "div",
98
- {
99
- "data-slot": "sheet-footer",
100
- className: cn("mt-auto flex flex-col gap-2 p-4", className),
101
- ...props
102
- }
103
- );
104
- }
105
- function SheetTitle({ className, ...props }) {
106
- return /* @__PURE__ */ jsx(
107
- SheetPrimitive.Title,
108
- {
109
- "data-slot": "sheet-title",
110
- className: cn("font-heading font-bold text-foreground", className),
111
- ...props
112
- }
113
- );
114
- }
115
- function SheetDescription({ className, ...props }) {
116
- return /* @__PURE__ */ jsx(
117
- SheetPrimitive.Description,
118
- {
119
- "data-slot": "sheet-description",
120
- className: cn("text-sm text-muted-foreground", className),
121
- ...props
122
- }
123
- );
124
- }
125
-
126
- export {
127
- Sheet,
128
- SheetTrigger,
129
- SheetClose,
130
- SheetContent,
131
- SheetHeader,
132
- SheetFooter,
133
- SheetTitle,
134
- SheetDescription
135
- };
@@ -1,74 +0,0 @@
1
- import {
2
- cn
3
- } from "./chunk-VIB7OX7D.js";
4
-
5
- // ../ui/src/components/button.variants.ts
6
- import { cva } from "class-variance-authority";
7
- var buttonVariants = cva(
8
- "group/button inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-inset focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-inset aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
9
- {
10
- variants: {
11
- variant: {
12
- default: "border-[color:var(--button-primary-border)] bg-[var(--button-primary-bg)] bg-[image:var(--button-primary-gradient)] text-[color:var(--button-primary-foreground)] shadow-[var(--button-primary-shadow)] hover:bg-[var(--button-primary-hover)] active:bg-[var(--button-primary-active)]",
13
- outline: "border-border bg-background shadow-xs hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
14
- secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
15
- ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
16
- destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
17
- link: "underline-offset-4 decoration-current hover:underline"
18
- },
19
- size: {
20
- default: "h-9 gap-2 rounded-lg px-3 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5",
21
- xs: "h-6 gap-1 rounded-[min(var(--radius-md),8px)] px-2 text-xs in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
22
- sm: "h-8 gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-md has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5",
23
- md: "h-9 gap-2 rounded-lg px-3 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5",
24
- lg: "h-11 gap-2 rounded-xl px-5 text-base has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4",
25
- xl: "h-12 gap-2 rounded-xl px-6 text-base has-data-[icon=inline-end]:pr-5 has-data-[icon=inline-start]:pl-5",
26
- option: "h-auto min-h-16 items-start justify-start gap-2 whitespace-normal rounded-xl px-3 py-3 text-sm",
27
- icon: "size-9",
28
- "icon-round": "size-9 rounded-full",
29
- "icon-xs": "size-6 rounded-[min(var(--radius-md),8px)] in-data-[slot=button-group]:rounded-md [&_svg:not([class*='size-'])]:size-3",
30
- "icon-sm": "size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-md",
31
- "icon-lg": "size-10",
32
- "icon-xl": "size-11 rounded-lg",
33
- "input-icon": "h-full w-10 rounded-l-none"
34
- }
35
- },
36
- defaultVariants: {
37
- variant: "default",
38
- size: "default"
39
- }
40
- }
41
- );
42
-
43
- // ../ui/src/components/button.tsx
44
- import * as React from "react";
45
- import { Button as ButtonPrimitive } from "@base-ui/react/button";
46
- import { jsx } from "react/jsx-runtime";
47
- function Button({
48
- className,
49
- variant = "default",
50
- size = "default",
51
- asChild = false,
52
- render,
53
- children,
54
- ...props
55
- }) {
56
- const resolvedRender = render ?? (asChild && React.isValidElement(children) ? children : void 0);
57
- return /* @__PURE__ */ jsx(
58
- ButtonPrimitive,
59
- {
60
- "data-slot": "button",
61
- "data-variant": variant,
62
- "data-size": size,
63
- className: cn(buttonVariants({ variant, size }), className),
64
- ...props,
65
- render: resolvedRender,
66
- children: resolvedRender ? void 0 : children
67
- }
68
- );
69
- }
70
-
71
- export {
72
- buttonVariants,
73
- Button
74
- };
@@ -1,91 +0,0 @@
1
- import {
2
- cn
3
- } from "./chunk-VIB7OX7D.js";
4
-
5
- // ../ui/src/components/logo.tsx
6
- import { jsx, jsxs } from "react/jsx-runtime";
7
- var WarmLogoIcon = ({
8
- className = "h-5 w-5",
9
- width = 20,
10
- height = 16,
11
- ...props
12
- }) => {
13
- return /* @__PURE__ */ jsxs(
14
- "svg",
15
- {
16
- xmlns: "http://www.w3.org/2000/svg",
17
- width,
18
- height,
19
- viewBox: "0 0 600 469",
20
- className,
21
- "aria-label": "Warm logo",
22
- ...props,
23
- children: [
24
- /* @__PURE__ */ jsx(
25
- "path",
26
- {
27
- d: "M 33.500 40.660 C 20.206 42.744, 0 48.560, -0 50.302 C -0 51.759, 123.955 348.889, 127.738 356.500 C 142.182 385.561, 169.450 410.275, 198.946 421.040 C 218.922 428.330, 243.683 430.825, 264.526 427.648 C 277.151 425.724, 294.628 420.011, 294.194 417.952 C 293.790 416.040, 172.732 124.599, 168.522 115.405 C 161.779 100.679, 149.168 84.171, 135.093 71.646 C 119.358 57.644, 98.880 47.362, 77 42.478 C 69.645 40.836, 40.220 39.606, 33.500 40.660",
28
- fill: "currentColor"
29
- }
30
- ),
31
- /* @__PURE__ */ jsx(
32
- "path",
33
- {
34
- d: "M 229.651 41.597 C 217.916 43.718, 202.443 49.144, 202.744 51.035 C 203.418 55.268, 329.689 356.584, 333.687 363.500 C 340.525 375.327, 345.293 381.483, 355.408 391.538 C 374.603 410.619, 398.878 423.014, 425.907 427.533 C 439.649 429.831, 463.594 429.132, 476 426.072 C 489.892 422.645, 497.188 419.815, 496.703 418.043 C 495.416 413.331, 371.058 116.094, 367.406 109 C 349.467 74.149, 313.008 47.875, 273.752 41.509 C 262.281 39.648, 240.195 39.693, 229.651 41.597",
35
- fill: "currentColor"
36
- }
37
- ),
38
- /* @__PURE__ */ jsx(
39
- "path",
40
- {
41
- d: "M 463 40.593 C 451.670 42.545, 447.288 43.569, 439 46.203 C 433.775 47.864, 429.338 49.372, 429.140 49.555 C 428.942 49.737, 434.670 64.021, 441.868 81.297 C 455.574 114.190, 462.215 131.660, 468.447 151.208 C 475.360 172.892, 486.124 186.213, 503.834 194.997 C 530.956 208.450, 564.982 201.679, 583.654 179.112 C 604.399 154.041, 605.407 121.944, 586.291 95.155 C 567.827 69.280, 539.107 50.114, 508 42.907 C 500.680 41.212, 494.713 40.644, 482 40.434 C 472.925 40.284, 464.375 40.356, 463 40.593",
42
- fill: "currentColor"
43
- }
44
- )
45
- ]
46
- }
47
- );
48
- };
49
-
50
- // ../ui/src/warmio/logo.tsx
51
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
52
- var iconSizeClasses = {
53
- badge: "size-3",
54
- default: "size-7",
55
- feature: "size-8",
56
- hero: "size-14"
57
- };
58
- var toneClasses = {
59
- default: "",
60
- foreground: "text-foreground",
61
- sidebar: "text-sidebar-foreground"
62
- };
63
- function WarmLogoIcon2({
64
- size = "default",
65
- tone = "default",
66
- decorative = false
67
- }) {
68
- return /* @__PURE__ */ jsx2(
69
- WarmLogoIcon,
70
- {
71
- className: cn(iconSizeClasses[size], toneClasses[tone]),
72
- "aria-hidden": decorative ? true : void 0,
73
- "aria-label": decorative ? void 0 : "Warm logo"
74
- }
75
- );
76
- }
77
- var Logo = ({
78
- size = "default",
79
- tone = "default",
80
- showText = true
81
- }) => {
82
- return /* @__PURE__ */ jsxs2("div", { className: "inline-flex items-center gap-2", children: [
83
- /* @__PURE__ */ jsx2(WarmLogoIcon2, { size, tone, decorative: showText }),
84
- showText ? /* @__PURE__ */ jsx2("span", { className: cn("text-sm font-bold tracking-wide", toneClasses[tone]), children: "Warm" }) : null
85
- ] });
86
- };
87
-
88
- export {
89
- WarmLogoIcon2 as WarmLogoIcon,
90
- Logo
91
- };