@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.
@@ -20,12 +20,12 @@ function ProductHeaderBreadcrumb({
20
20
  }) {
21
21
  const titleSegments = getTitleSegments(pageTitle, productName);
22
22
  return /* @__PURE__ */ jsxs(Fragment2, { children: [
23
- /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: productName }),
23
+ /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground", children: productName }),
24
24
  titleSegments?.map((segment, index) => {
25
25
  const isLast = index === titleSegments.length - 1;
26
26
  return /* @__PURE__ */ jsxs(Fragment, { children: [
27
- /* @__PURE__ */ jsx(ChevronRight, { className: "size-4 text-muted-foreground" }),
28
- isLast ? /* @__PURE__ */ jsx("h1", { "aria-current": "page", children: segment }) : /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: segment })
27
+ /* @__PURE__ */ jsx(ChevronRight, { className: "size-4 text-foreground" }),
28
+ isLast ? /* @__PURE__ */ jsx("h1", { "aria-current": "page", children: segment }) : /* @__PURE__ */ jsx("span", { className: "text-sm text-foreground", children: segment })
29
29
  ] }, `${segment}-${index}`);
30
30
  })
31
31
  ] });
@@ -34,6 +34,7 @@ var ProductHeader = memo(function ProductHeader2({
34
34
  actions,
35
35
  actionsTargetRef,
36
36
  desktopShell = false,
37
+ hideBreadcrumb = false,
37
38
  leading,
38
39
  pageTitle,
39
40
  productName,
@@ -57,7 +58,13 @@ var ProductHeader = memo(function ProductHeader2({
57
58
  className: "flex min-w-0 items-center gap-2 px-4 [&_h1]:text-sm [&_h1]:text-foreground [&:has(>[data-page-chrome-content])>[data-page-chrome-fallback]]:hidden",
58
59
  children: [
59
60
  leading,
60
- /* @__PURE__ */ jsx("div", { "data-page-chrome-fallback": true, className: "contents", children: /* @__PURE__ */ jsx(ProductHeaderBreadcrumb, { pageTitle, productName }) })
61
+ hideBreadcrumb ? null : /* @__PURE__ */ jsx("div", { "data-page-chrome-fallback": true, className: "contents", children: /* @__PURE__ */ jsx(
62
+ ProductHeaderBreadcrumb,
63
+ {
64
+ ...pageTitle !== void 0 ? { pageTitle } : {},
65
+ ...productName !== void 0 ? { productName } : {}
66
+ }
67
+ ) })
61
68
  ]
62
69
  }
63
70
  ),
@@ -0,0 +1,201 @@
1
+ import {
2
+ cn
3
+ } from "./chunk-VIB7OX7D.js";
4
+
5
+ // ../ui/src/components/sheet.tsx
6
+ import * as React2 from "react";
7
+ import { Dialog as SheetPrimitive } from "@base-ui/react/dialog";
8
+
9
+ // ../ui/src/lib/modal-backdrop.ts
10
+ var MODAL_BACKDROP_CLASS_NAME = "bg-black/50 supports-backdrop-filter:backdrop-blur-[2px]";
11
+
12
+ // ../ui/src/components/button.tsx
13
+ import * as React from "react";
14
+ import { Button as ButtonPrimitive } from "@base-ui/react/button";
15
+
16
+ // ../ui/src/components/button.variants.ts
17
+ import { cva } from "class-variance-authority";
18
+ var buttonVariants = cva(
19
+ "group/button inline-flex box-border shrink-0 items-center justify-center rounded-full bg-clip-padding text-sm font-normal whitespace-nowrap transition-[color,background-color,box-shadow,border-color,transform] duration-200 ease-out outline-none select-none focus-visible:ring-3 focus-visible:ring-inset focus-visible:ring-ring/50 active:not-aria-[haspopup]:scale-[0.97] motion-reduce:transition-none motion-reduce:active:scale-100 disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-3 aria-invalid:ring-inset aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
20
+ {
21
+ variants: {
22
+ variant: {
23
+ default: "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)] hover:bg-[image:var(--button-primary-gradient-hover)] active:bg-[var(--button-primary-active)]",
24
+ outline: "bg-background shadow-[var(--button-outline-shadow)] hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:bg-[var(--warm-surface-raised-dark,var(--input))] dark:[--button-outline-shadow:inset_0_1px_0_rgb(255_255_255_/_0.1)] dark:hover:bg-[var(--warm-surface-raised-hover-dark,var(--muted))]",
25
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
26
+ ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
27
+ 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",
28
+ link: "underline-offset-4 decoration-current hover:underline"
29
+ },
30
+ size: {
31
+ default: "h-9 gap-2 rounded-full px-4 in-data-[slot=button-group]:rounded-full has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
32
+ xs: "h-6 gap-2 rounded-full px-2 text-xs in-data-[slot=button-group]:rounded-full has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3",
33
+ sm: "h-8 gap-2 rounded-full px-2 in-data-[slot=button-group]:rounded-full has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
34
+ md: "h-9 gap-2 rounded-full px-4 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
35
+ lg: "h-11 gap-2 rounded-full px-4 text-base has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4",
36
+ xl: "h-12 gap-2 rounded-full px-4 text-base has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4",
37
+ jumbo: "h-14 gap-2 rounded-full px-4 text-lg font-bold has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4 [&_svg:not([class*='size-'])]:size-5",
38
+ option: "h-auto min-h-16 items-start justify-start gap-2 whitespace-normal rounded-full px-4 py-4 text-sm",
39
+ icon: "size-9",
40
+ "icon-round": "size-9 rounded-full",
41
+ "icon-xs": "size-6 rounded-full in-data-[slot=button-group]:rounded-full [&_svg:not([class*='size-'])]:size-3",
42
+ "icon-sm": "size-8 rounded-full in-data-[slot=button-group]:rounded-full",
43
+ "icon-lg": "size-10",
44
+ "icon-xl": "size-11 rounded-full",
45
+ "input-icon": "h-full w-10 rounded-l-none"
46
+ }
47
+ },
48
+ defaultVariants: {
49
+ variant: "default",
50
+ size: "default"
51
+ }
52
+ }
53
+ );
54
+
55
+ // ../ui/src/components/button.tsx
56
+ import { jsx } from "react/jsx-runtime";
57
+ function Button({
58
+ className,
59
+ variant = "default",
60
+ size = "default",
61
+ asChild = false,
62
+ render,
63
+ children,
64
+ ...props
65
+ }) {
66
+ const resolvedRender = render ?? (asChild && React.isValidElement(children) ? children : void 0);
67
+ return /* @__PURE__ */ jsx(
68
+ ButtonPrimitive,
69
+ {
70
+ "data-slot": "button",
71
+ "data-variant": variant,
72
+ "data-size": size,
73
+ className: cn(buttonVariants({ variant, size }), className),
74
+ ...props,
75
+ render: resolvedRender,
76
+ children: resolvedRender ? void 0 : children
77
+ }
78
+ );
79
+ }
80
+
81
+ // ../ui/src/components/sheet.tsx
82
+ import { XIcon } from "lucide-react";
83
+ import { jsx as jsx2, jsxs } from "react/jsx-runtime";
84
+ function Sheet(props) {
85
+ return /* @__PURE__ */ jsx2(SheetPrimitive.Root, { ...props });
86
+ }
87
+ function SheetTrigger({ asChild = false, children, render, ...props }) {
88
+ const resolvedRender = render ?? (asChild && React2.isValidElement(children) ? children : void 0);
89
+ return /* @__PURE__ */ jsx2(SheetPrimitive.Trigger, { "data-slot": "sheet-trigger", render: resolvedRender, ...props, children: resolvedRender ? void 0 : children });
90
+ }
91
+ function SheetClose({ asChild = false, children, render, ...props }) {
92
+ const resolvedRender = render ?? (asChild && React2.isValidElement(children) ? children : void 0);
93
+ return /* @__PURE__ */ jsx2(SheetPrimitive.Close, { "data-slot": "sheet-close", render: resolvedRender, ...props, children: resolvedRender ? void 0 : children });
94
+ }
95
+ function SheetPortal({ ...props }) {
96
+ return /* @__PURE__ */ jsx2(SheetPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
97
+ }
98
+ function SheetOverlay({ className, ...props }) {
99
+ return /* @__PURE__ */ jsx2(
100
+ SheetPrimitive.Backdrop,
101
+ {
102
+ "data-slot": "sheet-overlay",
103
+ className: cn(
104
+ "fixed inset-0 z-[var(--z-overlay-backdrop)] duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",
105
+ MODAL_BACKDROP_CLASS_NAME,
106
+ className
107
+ ),
108
+ ...props
109
+ }
110
+ );
111
+ }
112
+ function SheetContent({
113
+ className,
114
+ children,
115
+ side = "right",
116
+ showCloseButton = true,
117
+ overlayClassName,
118
+ ...props
119
+ }) {
120
+ return /* @__PURE__ */ jsxs(SheetPortal, { children: [
121
+ /* @__PURE__ */ jsx2(SheetOverlay, { className: overlayClassName }),
122
+ /* @__PURE__ */ jsxs(
123
+ SheetPrimitive.Popup,
124
+ {
125
+ "data-slot": "sheet-content",
126
+ "data-side": side,
127
+ className: cn(
128
+ "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=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=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=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=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",
129
+ className
130
+ ),
131
+ ...props,
132
+ children: [
133
+ children,
134
+ showCloseButton && /* @__PURE__ */ jsxs(
135
+ SheetPrimitive.Close,
136
+ {
137
+ "data-slot": "sheet-close",
138
+ render: /* @__PURE__ */ jsx2(
139
+ Button,
140
+ {
141
+ variant: "ghost",
142
+ className: "absolute top-[max(1rem,var(--safe-area-inset-top))] right-[max(1rem,var(--safe-area-inset-right))]",
143
+ size: "icon-sm"
144
+ }
145
+ ),
146
+ children: [
147
+ /* @__PURE__ */ jsx2(XIcon, {}),
148
+ /* @__PURE__ */ jsx2("span", { className: "sr-only", children: "Close" })
149
+ ]
150
+ }
151
+ )
152
+ ]
153
+ }
154
+ )
155
+ ] });
156
+ }
157
+ function SheetHeader({ className, ...props }) {
158
+ return /* @__PURE__ */ jsx2("div", { "data-slot": "sheet-header", className: cn("flex flex-col gap-2 p-4", className), ...props });
159
+ }
160
+ function SheetFooter({ className, ...props }) {
161
+ return /* @__PURE__ */ jsx2(
162
+ "div",
163
+ {
164
+ "data-slot": "sheet-footer",
165
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
166
+ ...props
167
+ }
168
+ );
169
+ }
170
+ function SheetTitle({ className, ...props }) {
171
+ return /* @__PURE__ */ jsx2(
172
+ SheetPrimitive.Title,
173
+ {
174
+ "data-slot": "sheet-title",
175
+ className: cn("font-heading font-bold text-foreground", className),
176
+ ...props
177
+ }
178
+ );
179
+ }
180
+ function SheetDescription({ className, ...props }) {
181
+ return /* @__PURE__ */ jsx2(
182
+ SheetPrimitive.Description,
183
+ {
184
+ "data-slot": "sheet-description",
185
+ className: cn("text-sm text-muted-foreground", className),
186
+ ...props
187
+ }
188
+ );
189
+ }
190
+
191
+ export {
192
+ Button,
193
+ Sheet,
194
+ SheetTrigger,
195
+ SheetClose,
196
+ SheetContent,
197
+ SheetHeader,
198
+ SheetFooter,
199
+ SheetTitle,
200
+ SheetDescription
201
+ };
@@ -11,7 +11,7 @@ import {
11
11
  DropdownMenuRadioItem,
12
12
  DropdownMenuSeparator,
13
13
  DropdownMenuTrigger
14
- } from "./chunks/chunk-SK7IZUFC.js";
14
+ } from "./chunks/chunk-KN6WVLCR.js";
15
15
  import "./chunks/chunk-VIB7OX7D.js";
16
16
  export {
17
17
  DropdownMenu,
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  StackedDisplay,
3
3
  Text
4
- } from "./chunks/chunk-D25QMXJR.js";
4
+ } from "./chunks/chunk-4RQCHKAW.js";
5
5
  import {
6
6
  Badge
7
7
  } from "./chunks/chunk-ICC7GQXS.js";
8
8
  import {
9
9
  Button,
10
10
  ButtonLink
11
- } from "./chunks/chunk-KCEDMF2I.js";
11
+ } from "./chunks/chunk-GKEYV2XW.js";
12
12
  import {
13
13
  DropdownMenu,
14
14
  DropdownMenuCheckboxItem,
@@ -21,15 +21,18 @@ import {
21
21
  DropdownMenuRadioItem,
22
22
  DropdownMenuSeparator,
23
23
  DropdownMenuTrigger
24
- } from "./chunks/chunk-SK7IZUFC.js";
24
+ } from "./chunks/chunk-KN6WVLCR.js";
25
25
  import {
26
26
  Logo,
27
+ WarmBrandedLogoLink,
28
+ WarmBrandedLogoMark,
29
+ WarmBrandedLogoMarkStatic,
27
30
  WarmLogoIcon
28
- } from "./chunks/chunk-VNQVIATP.js";
31
+ } from "./chunks/chunk-HDCV4ACN.js";
29
32
  import {
30
33
  ProductHeader,
31
34
  ProductHeaderBreadcrumb
32
- } from "./chunks/chunk-4UZNCKKG.js";
35
+ } from "./chunks/chunk-PBWF6BDE.js";
33
36
  import {
34
37
  SheetClose,
35
38
  SheetContent,
@@ -38,7 +41,7 @@ import {
38
41
  SheetHeader,
39
42
  SheetTitle,
40
43
  SheetTrigger
41
- } from "./chunks/chunk-ZEDHNFX6.js";
44
+ } from "./chunks/chunk-MIMC4M6W.js";
42
45
  import {
43
46
  Sidebar,
44
47
  SidebarAccountTrigger,
@@ -55,12 +58,12 @@ import {
55
58
  SidebarMenuButton,
56
59
  SidebarMenuItem,
57
60
  SidebarProvider,
61
+ SidebarTrigger,
58
62
  useSidebar
59
- } from "./chunks/chunk-UB25BRXT.js";
63
+ } from "./chunks/chunk-FW2EHGRK.js";
60
64
  import {
61
65
  Sheet
62
- } from "./chunks/chunk-OWDC2VC6.js";
63
- import "./chunks/chunk-T2TXMN3G.js";
66
+ } from "./chunks/chunk-YTDMREDR.js";
64
67
  import "./chunks/chunk-VIB7OX7D.js";
65
68
  export {
66
69
  Badge,
@@ -103,8 +106,12 @@ export {
103
106
  SidebarMenuButton,
104
107
  SidebarMenuItem,
105
108
  SidebarProvider,
109
+ SidebarTrigger,
106
110
  StackedDisplay,
107
111
  Text,
112
+ WarmBrandedLogoLink,
113
+ WarmBrandedLogoMark,
114
+ WarmBrandedLogoMarkStatic,
108
115
  WarmLogoIcon,
109
116
  useSidebar
110
117
  };
package/dist/logo.js CHANGED
@@ -1,9 +1,15 @@
1
1
  import {
2
2
  Logo,
3
+ WarmBrandedLogoLink,
4
+ WarmBrandedLogoMark,
5
+ WarmBrandedLogoMarkStatic,
3
6
  WarmLogoIcon
4
- } from "./chunks/chunk-VNQVIATP.js";
7
+ } from "./chunks/chunk-HDCV4ACN.js";
5
8
  import "./chunks/chunk-VIB7OX7D.js";
6
9
  export {
7
10
  Logo,
11
+ WarmBrandedLogoLink,
12
+ WarmBrandedLogoMark,
13
+ WarmBrandedLogoMarkStatic,
8
14
  WarmLogoIcon
9
15
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ProductHeader,
3
3
  ProductHeaderBreadcrumb
4
- } from "./chunks/chunk-4UZNCKKG.js";
4
+ } from "./chunks/chunk-PBWF6BDE.js";
5
5
  import "./chunks/chunk-VIB7OX7D.js";
6
6
  export {
7
7
  ProductHeader,
@@ -3,15 +3,16 @@ import type { ReactNode, Ref } from 'react';
3
3
  export type ProductHeaderVisibility = 'always' | 'container' | 'desktop';
4
4
 
5
5
  export interface ProductHeaderBreadcrumbProps {
6
- pageTitle?: string;
7
- productName?: string;
6
+ pageTitle?: string | undefined;
7
+ productName?: string | undefined;
8
8
  }
9
9
 
10
10
  export interface ProductHeaderProps extends ProductHeaderBreadcrumbProps {
11
- actions?: ReactNode;
12
- actionsTargetRef?: Ref<HTMLDivElement>;
13
- desktopShell?: boolean;
14
- leading?: ReactNode;
15
- titleTargetRef?: Ref<HTMLDivElement>;
16
- visibility?: ProductHeaderVisibility;
11
+ actions?: ReactNode | undefined;
12
+ actionsTargetRef?: Ref<HTMLDivElement> | undefined;
13
+ desktopShell?: boolean | undefined;
14
+ hideBreadcrumb?: boolean | undefined;
15
+ leading?: ReactNode | undefined;
16
+ titleTargetRef?: Ref<HTMLDivElement> | undefined;
17
+ visibility?: ProductHeaderVisibility | undefined;
17
18
  }
package/dist/sheet.js CHANGED
@@ -6,11 +6,10 @@ import {
6
6
  SheetHeader,
7
7
  SheetTitle,
8
8
  SheetTrigger
9
- } from "./chunks/chunk-ZEDHNFX6.js";
9
+ } from "./chunks/chunk-MIMC4M6W.js";
10
10
  import {
11
11
  Sheet
12
- } from "./chunks/chunk-OWDC2VC6.js";
13
- import "./chunks/chunk-T2TXMN3G.js";
12
+ } from "./chunks/chunk-YTDMREDR.js";
14
13
  import "./chunks/chunk-VIB7OX7D.js";
15
14
  export {
16
15
  Sheet,
package/dist/sidebar.js CHANGED
@@ -14,10 +14,10 @@ import {
14
14
  SidebarMenuButton,
15
15
  SidebarMenuItem,
16
16
  SidebarProvider,
17
+ SidebarTrigger,
17
18
  useSidebar
18
- } from "./chunks/chunk-UB25BRXT.js";
19
- import "./chunks/chunk-OWDC2VC6.js";
20
- import "./chunks/chunk-T2TXMN3G.js";
19
+ } from "./chunks/chunk-FW2EHGRK.js";
20
+ import "./chunks/chunk-YTDMREDR.js";
21
21
  import "./chunks/chunk-VIB7OX7D.js";
22
22
  export {
23
23
  Sidebar,
@@ -35,5 +35,6 @@ export {
35
35
  SidebarMenuButton,
36
36
  SidebarMenuItem,
37
37
  SidebarProvider,
38
+ SidebarTrigger,
38
39
  useSidebar
39
40
  };
package/dist/text.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  StackedDisplay,
3
3
  Text
4
- } from "./chunks/chunk-D25QMXJR.js";
4
+ } from "./chunks/chunk-4RQCHKAW.js";
5
5
  import "./chunks/chunk-VIB7OX7D.js";
6
6
  export {
7
7
  StackedDisplay,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warmio/ui",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "description": "Portable, sealed React components for Warm products.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -68,7 +68,7 @@
68
68
  },
69
69
  "peerDependencies": {
70
70
  "@base-ui/react": ">=1.6.0 <2.0.0",
71
- "@warmio/design": "1.0.0",
71
+ "@warmio/design": "1.6.0",
72
72
  "class-variance-authority": "^0.7.1",
73
73
  "clsx": "^2.1.1",
74
74
  "cuelume": "0.1.0",
package/types/badge.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /* oxlint-disable anti-slop/no-shape-in-symbol-names -- Badge shape is part of the aligned public declaration contract. */
1
2
  import type { AriaAttributes, ReactNode } from 'react';
2
3
 
3
4
  export type FeedbackTone = 'default' | 'info' | 'success' | 'warning' | 'destructive';
package/types/button.d.ts CHANGED
@@ -1,48 +1,9 @@
1
- // Dedicated public declaration entrypoint keeps the ./button npm export independent of private workspace source.
2
- import type { ComponentPropsWithRef, ReactNode } from 'react';
3
-
4
- export type ButtonPresentation =
5
- | 'assistantIcon'
6
- | 'assistantRoundIcon'
7
- | 'compact'
8
- | 'composerIcon'
9
- | 'controlPeer'
10
- | 'default'
11
- | 'editPill'
12
- | 'hero'
13
- | 'menuOption'
14
- | 'promptCategory'
15
- | 'promptOption'
16
- | 'sidebarIcon'
17
- | 'tableHeader'
18
- | 'threadMore'
19
- | 'threadNew'
20
- | 'touch';
21
- export type ButtonVariant = 'apple' | 'default' | 'destructive' | 'ghost' | 'outline';
22
- export type ButtonSize = 'default' | 'icon';
23
- export type ButtonProps = Omit<ComponentPropsWithRef<'button'>, 'className' | 'style'> & {
24
- presentation?: ButtonPresentation;
25
- size?: ButtonSize;
26
- style?: never;
27
- variant?: ButtonVariant;
28
- width?: 'full';
29
- };
30
- export type ButtonLinkProps = Omit<
31
- ComponentPropsWithRef<'a'>,
32
- 'aria-disabled' | 'className' | 'disabled' | 'role' | 'style'
33
- > & {
34
- asChild?: never;
35
- className?: never;
36
- disabled?: never;
37
- href: string;
38
- presentation?: ButtonPresentation;
39
- render?: never;
40
- role?: never;
41
- size?: ButtonSize;
42
- style?: never;
43
- variant?: ButtonVariant;
44
- width?: 'full';
45
- 'aria-disabled'?: never;
46
- };
47
- export declare const Button: (props: ButtonProps) => ReactNode;
48
- export declare const ButtonLink: (props: ButtonLinkProps) => ReactNode;
1
+ export {
2
+ Button,
3
+ ButtonLink,
4
+ type ButtonLinkProps,
5
+ type ButtonPresentation,
6
+ type ButtonProps,
7
+ type ButtonSize,
8
+ type ButtonVariant,
9
+ } from '@warmio/design/button';
@@ -1,6 +1,6 @@
1
1
  // Dedicated public declaration entrypoint keeps the ./dropdown-menu npm export independent of private workspace source.
2
2
  import type { Menu } from '@base-ui/react/menu';
3
- import type { ReactElement, ReactNode } from 'react';
3
+ import type { ReactNode } from 'react';
4
4
 
5
5
  type WithoutChrome<T> = Omit<T, 'className' | 'style'> & {
6
6
  className?: never;
@@ -8,7 +8,7 @@ type WithoutChrome<T> = Omit<T, 'className' | 'style'> & {
8
8
  };
9
9
  type WithoutStyling<T> = Omit<T, 'asChild' | 'className' | 'render' | 'style'>;
10
10
 
11
- export type DropdownMenuSide = 'top' | 'right' | 'bottom' | 'left';
11
+ export type DropdownMenuSide = 'top' | 'right' | 'bottom' | 'left' | 'inline-start' | 'inline-end';
12
12
  export type DropdownMenuAlign = 'start' | 'center' | 'end';
13
13
  export type DropdownMenuContentSize = 'default' | 'auto' | 'sidebar';
14
14
  export type DropdownMenuContentSpacing = 'default' | 'roomy';
package/types/index.d.ts CHANGED
@@ -1,8 +1,113 @@
1
- export * from './badge.js';
2
- export * from './button.js';
3
- export * from './dropdown-menu.js';
4
- export * from './logo.js';
5
- export * from './product-header.js';
6
- export * from './sheet.js';
7
- export * from './sidebar.js';
8
- export * from './text.js';
1
+ export { Badge, type BadgeProps, type FeedbackSize, type FeedbackTone } from './badge.js';
2
+ export {
3
+ Button,
4
+ ButtonLink,
5
+ type ButtonLinkProps,
6
+ type ButtonPresentation,
7
+ type ButtonProps,
8
+ type ButtonSize,
9
+ type ButtonVariant,
10
+ } from './button.js';
11
+ export {
12
+ DropdownMenu,
13
+ DropdownMenuCheckboxItem,
14
+ DropdownMenuContent,
15
+ DropdownMenuGroup,
16
+ DropdownMenuItem,
17
+ DropdownMenuLabel,
18
+ DropdownMenuLinkItem,
19
+ DropdownMenuRadioGroup,
20
+ DropdownMenuRadioItem,
21
+ DropdownMenuSeparator,
22
+ DropdownMenuTrigger,
23
+ type DropdownMenuAlign,
24
+ type DropdownMenuCheckboxItemProps,
25
+ type DropdownMenuContentProps,
26
+ type DropdownMenuContentSize,
27
+ type DropdownMenuContentSpacing,
28
+ type DropdownMenuGroupProps,
29
+ type DropdownMenuItemProps,
30
+ type DropdownMenuItemVariant,
31
+ type DropdownMenuLabelProps,
32
+ type DropdownMenuLinkItemProps,
33
+ type DropdownMenuRadioGroupProps,
34
+ type DropdownMenuRadioItemProps,
35
+ type DropdownMenuSeparatorProps,
36
+ type DropdownMenuSide,
37
+ type DropdownMenuTriggerProps,
38
+ } from './dropdown-menu.js';
39
+ export {
40
+ Logo,
41
+ WarmLogoIcon,
42
+ type LogoProps,
43
+ type WarmLogoIconProps,
44
+ type WarmLogoSize,
45
+ type WarmLogoTone,
46
+ } from './logo.js';
47
+ export {
48
+ ProductHeader,
49
+ ProductHeaderBreadcrumb,
50
+ type ProductHeaderBreadcrumbProps,
51
+ type ProductHeaderProps,
52
+ type ProductHeaderVisibility,
53
+ } from './product-header.js';
54
+ export {
55
+ Sheet,
56
+ SheetClose,
57
+ SheetContent,
58
+ SheetDescription,
59
+ SheetFooter,
60
+ SheetHeader,
61
+ SheetTitle,
62
+ SheetTrigger,
63
+ type SheetCloseProps,
64
+ type SheetContentProps,
65
+ type SheetFooterProps,
66
+ type SheetHeaderProps,
67
+ type SheetTitleProps,
68
+ type SheetTriggerProps,
69
+ } from './sheet.js';
70
+ export {
71
+ Sidebar,
72
+ SidebarAccountTrigger,
73
+ SidebarBrand,
74
+ SidebarContent,
75
+ SidebarFooter,
76
+ SidebarGroup,
77
+ SidebarGroupContent,
78
+ SidebarGroupLabel,
79
+ SidebarHeader,
80
+ SidebarInset,
81
+ SidebarMenu,
82
+ SidebarMenuBadge,
83
+ SidebarMenuButton,
84
+ SidebarMenuItem,
85
+ SidebarProvider,
86
+ useSidebar,
87
+ SidebarTrigger,
88
+ type SidebarAccountTriggerProps,
89
+ type SidebarBrandProps,
90
+ type SidebarContentProps,
91
+ type SidebarContextValue,
92
+ type SidebarFooterProps,
93
+ type SidebarGroupContentProps,
94
+ type SidebarGroupLabelProps,
95
+ type SidebarGroupProps,
96
+ type SidebarHeaderProps,
97
+ type SidebarInsetProps,
98
+ type SidebarMenuBadgeProps,
99
+ type SidebarMenuButtonProps,
100
+ type SidebarMenuItemProps,
101
+ type SidebarMenuProps,
102
+ type SidebarProps,
103
+ type SidebarProviderProps,
104
+ } from './sidebar.js';
105
+ export {
106
+ StackedDisplay,
107
+ Text,
108
+ type StackedDisplayProps,
109
+ type TextAlign,
110
+ type TextProps,
111
+ type TextTone,
112
+ type TextVariant,
113
+ } from './text.js';