@warmio/ui 1.0.0 → 1.1.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/dist/sidebar.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import {
2
2
  Sidebar,
3
+ SidebarAccountTrigger,
4
+ SidebarBrand,
3
5
  SidebarContent,
4
6
  SidebarFooter,
5
7
  SidebarGroup,
@@ -13,10 +15,14 @@ import {
13
15
  SidebarMenuItem,
14
16
  SidebarProvider,
15
17
  useSidebar
16
- } from "./chunks/chunk-EJ2CNGRW.js";
18
+ } from "./chunks/chunk-PBTUB66J.js";
19
+ import "./chunks/chunk-OWDC2VC6.js";
20
+ import "./chunks/chunk-T2TXMN3G.js";
17
21
  import "./chunks/chunk-VIB7OX7D.js";
18
22
  export {
19
23
  Sidebar,
24
+ SidebarAccountTrigger,
25
+ SidebarBrand,
20
26
  SidebarContent,
21
27
  SidebarFooter,
22
28
  SidebarGroup,
package/dist/text.js ADDED
@@ -0,0 +1,9 @@
1
+ import {
2
+ StackedDisplay,
3
+ Text
4
+ } from "./chunks/chunk-D25QMXJR.js";
5
+ import "./chunks/chunk-VIB7OX7D.js";
6
+ export {
7
+ StackedDisplay,
8
+ Text
9
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@warmio/ui",
3
- "version": "1.0.0",
4
- "description": "Portable React components for Warm products.",
3
+ "version": "1.1.0",
4
+ "description": "Portable, sealed React components for Warm products.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "sideEffects": false,
@@ -30,6 +30,16 @@
30
30
  "import": "./dist/badge.js",
31
31
  "default": "./dist/badge.js"
32
32
  },
33
+ "./button": {
34
+ "types": "./types/button.d.ts",
35
+ "import": "./dist/button.js",
36
+ "default": "./dist/button.js"
37
+ },
38
+ "./dropdown-menu": {
39
+ "types": "./types/dropdown-menu.d.ts",
40
+ "import": "./dist/dropdown-menu.js",
41
+ "default": "./dist/dropdown-menu.js"
42
+ },
33
43
  "./logo": {
34
44
  "types": "./types/logo.d.ts",
35
45
  "import": "./dist/logo.js",
@@ -39,6 +49,16 @@
39
49
  "types": "./types/sidebar.d.ts",
40
50
  "import": "./dist/sidebar.js",
41
51
  "default": "./dist/sidebar.js"
52
+ },
53
+ "./sheet": {
54
+ "types": "./types/sheet.d.ts",
55
+ "import": "./dist/sheet.js",
56
+ "default": "./dist/sheet.js"
57
+ },
58
+ "./text": {
59
+ "types": "./types/text.d.ts",
60
+ "import": "./dist/text.js",
61
+ "default": "./dist/text.js"
42
62
  }
43
63
  },
44
64
  "peerDependencies": {
@@ -46,6 +66,7 @@
46
66
  "@warmio/design": "1.0.0",
47
67
  "class-variance-authority": "^0.7.1",
48
68
  "clsx": "^2.1.1",
69
+ "cuelume": "0.1.0",
49
70
  "lucide-react": ">=0.562.0 <2.0.0",
50
71
  "react": ">=19.0.0",
51
72
  "react-dom": ">=19.0.0",
@@ -0,0 +1,48 @@
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;
@@ -0,0 +1,54 @@
1
+ // Dedicated public declaration entrypoint keeps the ./dropdown-menu npm export independent of private workspace source.
2
+ import type { Menu } from '@base-ui/react/menu';
3
+ import type { ReactElement, ReactNode } from 'react';
4
+
5
+ type WithoutChrome<T> = Omit<T, 'className' | 'style'> & {
6
+ className?: never;
7
+ style?: never;
8
+ };
9
+ type WithoutStyling<T> = Omit<T, 'asChild' | 'className' | 'render' | 'style'>;
10
+
11
+ export type DropdownMenuSide = 'top' | 'right' | 'bottom' | 'left';
12
+ export type DropdownMenuAlign = 'start' | 'center' | 'end';
13
+ export type DropdownMenuContentSize = 'default' | 'auto' | 'sidebar';
14
+ export type DropdownMenuContentSpacing = 'default' | 'roomy';
15
+ export type DropdownMenuItemVariant = 'default' | 'destructive';
16
+ export type DropdownMenuContentProps = WithoutStyling<Menu.Popup.Props> &
17
+ Pick<Menu.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'> & {
18
+ align?: DropdownMenuAlign;
19
+ portal?: boolean;
20
+ side?: DropdownMenuSide;
21
+ size?: DropdownMenuContentSize;
22
+ spacing?: DropdownMenuContentSpacing;
23
+ };
24
+ export type DropdownMenuItemProps = WithoutStyling<Menu.Item.Props> & {
25
+ inset?: boolean;
26
+ variant?: DropdownMenuItemVariant;
27
+ };
28
+ export type DropdownMenuLinkItemProps = DropdownMenuItemProps & {
29
+ href: string;
30
+ };
31
+ export type DropdownMenuCheckboxItemProps = WithoutStyling<Menu.CheckboxItem.Props> & {
32
+ inset?: boolean;
33
+ };
34
+ export type DropdownMenuRadioItemProps = WithoutStyling<Menu.RadioItem.Props> & { inset?: boolean };
35
+ export type DropdownMenuLabelProps = WithoutStyling<Menu.GroupLabel.Props> & {
36
+ inset?: boolean;
37
+ };
38
+ export type DropdownMenuSeparatorProps = WithoutStyling<Menu.Separator.Props>;
39
+ export type DropdownMenuTriggerProps = WithoutChrome<Menu.Trigger.Props> & {
40
+ asChild?: boolean;
41
+ };
42
+ export type DropdownMenuGroupProps = WithoutChrome<Menu.Group.Props>;
43
+ export type DropdownMenuRadioGroupProps = WithoutChrome<Menu.RadioGroup.Props>;
44
+ export declare function DropdownMenu(props: Menu.Root.Props): ReactNode;
45
+ export declare function DropdownMenuTrigger(props: DropdownMenuTriggerProps): ReactNode;
46
+ export declare function DropdownMenuContent(props: DropdownMenuContentProps): ReactNode;
47
+ export declare function DropdownMenuGroup(props: DropdownMenuGroupProps): ReactNode;
48
+ export declare function DropdownMenuLabel(props: DropdownMenuLabelProps): ReactNode;
49
+ export declare function DropdownMenuItem(props: DropdownMenuItemProps): ReactNode;
50
+ export declare function DropdownMenuLinkItem(props: DropdownMenuLinkItemProps): ReactNode;
51
+ export declare function DropdownMenuCheckboxItem(props: DropdownMenuCheckboxItemProps): ReactNode;
52
+ export declare function DropdownMenuRadioGroup(props: DropdownMenuRadioGroupProps): ReactNode;
53
+ export declare function DropdownMenuRadioItem(props: DropdownMenuRadioItemProps): ReactNode;
54
+ export declare function DropdownMenuSeparator(props: DropdownMenuSeparatorProps): ReactNode;
package/types/index.d.ts CHANGED
@@ -1,3 +1,7 @@
1
1
  export * from './badge.js';
2
+ export * from './button.js';
3
+ export * from './dropdown-menu.js';
2
4
  export * from './logo.js';
5
+ export * from './sheet.js';
3
6
  export * from './sidebar.js';
7
+ export * from './text.js';
@@ -0,0 +1,40 @@
1
+ // Dedicated public declaration entrypoint keeps the ./sheet npm export independent of private workspace source.
2
+ import type { Dialog } from '@base-ui/react/dialog';
3
+ import type { ComponentProps, ReactNode } from 'react';
4
+
5
+ type WithoutChrome<T> = Omit<T, 'className' | 'style'> & {
6
+ className?: never;
7
+ style?: never;
8
+ };
9
+ export type SheetCloseProps = WithoutChrome<Dialog.Close.Props> & {
10
+ asChild?: boolean;
11
+ };
12
+ export type SheetContentProps = Omit<WithoutChrome<Dialog.Popup.Props>, 'overlayClassName'> & {
13
+ overlayClassName?: never;
14
+ presentation?: 'navigation' | 'scroll';
15
+ responsive?: 'always' | 'mobileOnly';
16
+ width?: 'default' | 'full' | 'wide';
17
+ };
18
+ export type SheetFooterProps = WithoutChrome<ComponentProps<'div'>> & {
19
+ spacing?: 'default' | 'roomy';
20
+ };
21
+ export type SheetHeaderProps = WithoutChrome<ComponentProps<'div'>> & {
22
+ presentation?: 'navigation';
23
+ spacing?: 'default' | 'roomy';
24
+ };
25
+ export type SheetTitleProps = WithoutChrome<Dialog.Title.Props> & {
26
+ presentation?: 'navigation';
27
+ };
28
+ export type SheetTriggerProps = WithoutChrome<Dialog.Trigger.Props> & {
29
+ asChild?: boolean;
30
+ };
31
+ export declare function Sheet(props: Dialog.Root.Props): ReactNode;
32
+ export declare function SheetTrigger(props: SheetTriggerProps): ReactNode;
33
+ export declare function SheetClose(props: SheetCloseProps): ReactNode;
34
+ export declare function SheetContent(props: SheetContentProps): ReactNode;
35
+ export declare function SheetHeader(props: SheetHeaderProps): ReactNode;
36
+ export declare function SheetFooter(props: SheetFooterProps): ReactNode;
37
+ export declare function SheetTitle(props: SheetTitleProps): ReactNode;
38
+ export declare const SheetDescription: (
39
+ props: WithoutChrome<Dialog.Description.Props>
40
+ ) => ReactNode;
@@ -1,4 +1,4 @@
1
- import type { ComponentProps, ReactElement, ReactNode } from 'react';
1
+ import type { ComponentProps, ComponentPropsWithRef, ReactElement, ReactNode } from 'react';
2
2
 
3
3
  type WithoutChrome<T> = Omit<T, 'className' | 'style'> & {
4
4
  className?: never;
@@ -39,7 +39,7 @@ export type SidebarFooterProps = WithoutChrome<ComponentProps<'div'>> & {
39
39
 
40
40
  export type SidebarGroupProps = WithoutChrome<ComponentProps<'div'>> & {
41
41
  collapsed?: boolean;
42
- presentation?: 'mockup' | 'navigation';
42
+ presentation?: 'mockup' | 'navigation' | 'navigation-primary';
43
43
  };
44
44
 
45
45
  export type SidebarGroupContentProps = WithoutChrome<ComponentProps<'div'>>;
@@ -60,7 +60,8 @@ export type SidebarMenuButtonProps = WithoutChrome<ComponentProps<'button'>> & {
60
60
  render?: ReactElement;
61
61
  variant?: 'default' | 'outline' | null;
62
62
  size?: 'default' | 'sm' | 'lg' | null;
63
- presentation?: 'account' | 'disabled' | 'previewCollapsed';
63
+ collapsed?: boolean;
64
+ presentation?: 'account' | 'disabled' | 'navigation' | 'previewCollapsed';
64
65
  };
65
66
 
66
67
  export type SidebarMenuBadgeProps = WithoutChrome<ComponentProps<'div'>> & {
@@ -91,3 +92,25 @@ export declare function SidebarMenuItem(props: SidebarMenuItemProps): ReactNode;
91
92
  export declare function SidebarMenuButton(props: SidebarMenuButtonProps): ReactNode;
92
93
  export declare function SidebarMenuBadge(props: SidebarMenuBadgeProps): ReactNode;
93
94
  export declare function useSidebar(): SidebarContextValue;
95
+
96
+ export type SidebarBrandProps = {
97
+ actions?: ReactNode;
98
+ className?: never;
99
+ /** Routing/link elements; SidebarBrand injects the sealed visual classes. */
100
+ collapsed: ReactElement<{ className?: string }>;
101
+ /** Routing/link elements; SidebarBrand injects the sealed visual classes. */
102
+ expanded: ReactElement<{ className?: string }>;
103
+ style?: never;
104
+ };
105
+ export type SidebarAccountTriggerProps = Omit<
106
+ ComponentPropsWithRef<'button'>,
107
+ 'children' | 'className' | 'style'
108
+ > & {
109
+ avatar?: ReactNode;
110
+ className?: never;
111
+ email: string;
112
+ label: string;
113
+ style?: never;
114
+ };
115
+ export declare function SidebarBrand(props: SidebarBrandProps): ReactNode;
116
+ export declare function SidebarAccountTrigger(props: SidebarAccountTriggerProps): ReactNode;
@@ -0,0 +1,36 @@
1
+ // Dedicated public declaration entrypoint keeps the ./text npm export independent of private workspace source.
2
+ import type { ReactNode } from 'react';
3
+
4
+ export type TextVariant =
5
+ | 'body'
6
+ | 'caption'
7
+ | 'display'
8
+ | 'displayCompact'
9
+ | 'helper'
10
+ | 'micro'
11
+ | 'microStrong'
12
+ | 'overline'
13
+ | 'sectionTitle';
14
+ export type TextTone = 'default' | 'foreground' | 'muted' | 'primary' | 'success' | 'warning';
15
+ export type TextAlign = 'center' | 'end' | 'start';
16
+ export type TextProps = {
17
+ align?: TextAlign;
18
+ as?: 'div' | 'h2' | 'h3' | 'p' | 'small' | 'span';
19
+ children?: ReactNode;
20
+ className?: never;
21
+ numeric?: boolean;
22
+ style?: never;
23
+ tone?: TextTone;
24
+ truncate?: boolean;
25
+ variant?: TextVariant;
26
+ };
27
+ export type StackedDisplayProps = {
28
+ align?: TextAlign;
29
+ className?: never;
30
+ firstLine: ReactNode;
31
+ presentation?: 'dashboard' | 'welcome';
32
+ secondLine: ReactNode;
33
+ style?: never;
34
+ };
35
+ export declare function Text(props: TextProps): ReactNode;
36
+ export declare function StackedDisplay(props: StackedDisplayProps): ReactNode;