@wheelhouse/ui 0.2.1 → 0.2.2

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.
Files changed (37) hide show
  1. package/dist/components/badge/badge.d.ts +1 -1
  2. package/dist/components/button/button.d.ts +2 -2
  3. package/dist/components/frame/frame.d.ts +1 -1
  4. package/dist/components/index.d.ts +1 -0
  5. package/dist/components/index.d.ts.map +1 -1
  6. package/dist/components/index.js +1 -0
  7. package/dist/components/input-group/input-group.d.ts +2 -2
  8. package/dist/components/item/item.d.ts +2 -2
  9. package/dist/components/navigation-pattern-1/index.d.ts.map +1 -0
  10. package/dist/components/navigation-pattern-1/pattern-1.config.d.ts.map +1 -0
  11. package/dist/{blocks/navigation/pattern-1 → components/navigation-pattern-1}/pattern-1.d.ts.map +1 -1
  12. package/dist/{blocks/navigation/pattern-1 → components/navigation-pattern-1}/pattern-1.js +43 -10
  13. package/dist/components/navigation-pattern-1/pattern-1.stories.d.ts.map +1 -0
  14. package/dist/{blocks/navigation/pattern-1 → components/navigation-pattern-1}/pattern-1.stories.js +1 -1
  15. package/dist/components/tabs/tabs.d.ts +1 -1
  16. package/dist/components/text/text.d.ts +1 -1
  17. package/dist/index.d.ts +0 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +0 -1
  20. package/dist/tsconfig.tsbuildinfo +1 -1
  21. package/llms.txt +3 -10
  22. package/package.json +3 -3
  23. package/dist/blocks/index.d.ts +0 -2
  24. package/dist/blocks/index.d.ts.map +0 -1
  25. package/dist/blocks/index.js +0 -1
  26. package/dist/blocks/navigation/index.d.ts +0 -2
  27. package/dist/blocks/navigation/index.d.ts.map +0 -1
  28. package/dist/blocks/navigation/index.js +0 -1
  29. package/dist/blocks/navigation/pattern-1/index.d.ts.map +0 -1
  30. package/dist/blocks/navigation/pattern-1/pattern-1.config.d.ts.map +0 -1
  31. package/dist/blocks/navigation/pattern-1/pattern-1.stories.d.ts.map +0 -1
  32. /package/dist/{blocks/navigation/pattern-1 → components/navigation-pattern-1}/index.d.ts +0 -0
  33. /package/dist/{blocks/navigation/pattern-1 → components/navigation-pattern-1}/index.js +0 -0
  34. /package/dist/{blocks/navigation/pattern-1 → components/navigation-pattern-1}/pattern-1.config.d.ts +0 -0
  35. /package/dist/{blocks/navigation/pattern-1 → components/navigation-pattern-1}/pattern-1.config.js +0 -0
  36. /package/dist/{blocks/navigation/pattern-1 → components/navigation-pattern-1}/pattern-1.d.ts +0 -0
  37. /package/dist/{blocks/navigation/pattern-1 → components/navigation-pattern-1}/pattern-1.stories.d.ts +0 -0
@@ -27,7 +27,7 @@ export declare const badgeVariantKeys: (keyof typeof badgeVariantStyles)[];
27
27
  export declare const badgeSizeKeys: (keyof typeof badgeSizeStyles)[];
28
28
  declare const badgeVariants: (props?: ({
29
29
  size?: "default" | "sm" | "lg" | null | undefined;
30
- variant?: "default" | "outline" | "secondary" | "info" | "success" | "warning" | "destructive" | "warning-light" | "success-light" | "info-light" | "destructive-light" | "primary-outline" | "warning-outline" | "success-outline" | "info-outline" | "destructive-outline" | null | undefined;
30
+ variant?: "default" | "destructive" | "outline" | "secondary" | "destructive-outline" | "info" | "success" | "warning" | "warning-light" | "success-light" | "info-light" | "destructive-light" | "primary-outline" | "warning-outline" | "success-outline" | "info-outline" | null | undefined;
31
31
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
32
32
  type BadgeVariantProps = VariantProps<typeof badgeVariants>;
33
33
  type BadgeVariant = BadgeVariantProps['variant'];
@@ -22,8 +22,8 @@ declare const buttonSizeStyles: {
22
22
  export declare const buttonVariantKeys: (keyof typeof buttonVariantStyles)[];
23
23
  export declare const buttonSizeKeys: (keyof typeof buttonSizeStyles)[];
24
24
  declare const buttonVariants: (props?: ({
25
- variant?: "default" | "link" | "outline" | "secondary" | "destructive" | "destructive-outline" | "ghost" | null | undefined;
26
- size?: "default" | "sm" | "lg" | "xs" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
25
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "destructive-outline" | null | undefined;
26
+ size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
27
27
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
28
28
  /**
29
29
  * Props for `Button`. Inherits additional behavior from
@@ -25,7 +25,7 @@ import { type VariantProps } from 'class-variance-authority';
25
25
  */
26
26
  declare const frameVariants: (props?: ({
27
27
  variant?: "default" | "ghost" | "inverse" | null | undefined;
28
- spacing?: "default" | "sm" | "lg" | "xs" | null | undefined;
28
+ spacing?: "default" | "xs" | "sm" | "lg" | null | undefined;
29
29
  stacked?: boolean | null | undefined;
30
30
  dense?: boolean | null | undefined;
31
31
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -32,6 +32,7 @@ export * from './label';
32
32
  export * from './menubar';
33
33
  export * from './native-select';
34
34
  export * from './navigation-menu';
35
+ export * from './navigation-pattern-1';
35
36
  export * from './pagination';
36
37
  export * from './popover';
37
38
  export * from './progress';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC"}
@@ -32,6 +32,7 @@ export * from './label';
32
32
  export * from './menubar';
33
33
  export * from './native-select';
34
34
  export * from './navigation-menu';
35
+ export * from './navigation-pattern-1';
35
36
  export * from './pagination';
36
37
  export * from './popover';
37
38
  export * from './progress';
@@ -6,13 +6,13 @@ import type { TextareaProps } from '../textarea';
6
6
  /** Props for `InputGroup`. */
7
7
  export type InputGroupProps = React.ComponentProps<'div'>;
8
8
  declare const inputGroupAddonVariants: (props?: ({
9
- align?: "inline-end" | "inline-start" | "block-start" | "block-end" | null | undefined;
9
+ align?: "inline-start" | "inline-end" | "block-start" | "block-end" | null | undefined;
10
10
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
11
11
  export declare const inputGroupAddonAlignKeys: readonly ["inline-start", "inline-end", "block-start", "block-end"];
12
12
  /** Props for `InputGroupAddon`. */
13
13
  export type InputGroupAddonProps = React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>;
14
14
  declare const inputGroupButtonVariants: (props?: ({
15
- size?: "sm" | "xs" | "icon-xs" | "icon-sm" | null | undefined;
15
+ size?: "xs" | "sm" | "icon-xs" | "icon-sm" | null | undefined;
16
16
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
17
17
  export declare const inputGroupButtonSizeKeys: readonly ["xs", "sm", "icon-xs", "icon-sm"];
18
18
  /** Props for `InputGroupButton` (ghost button sized for use inside a group). */
@@ -8,7 +8,7 @@ export type ItemGroupProps = React.ComponentProps<'div'>;
8
8
  export type ItemSeparatorProps = React.ComponentProps<typeof Separator>;
9
9
  declare const itemVariants: (props?: ({
10
10
  variant?: "default" | "outline" | "muted" | null | undefined;
11
- size?: "default" | "sm" | "xs" | null | undefined;
11
+ size?: "default" | "xs" | "sm" | null | undefined;
12
12
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
13
  export declare const itemVariantKeys: readonly ["default", "outline", "muted"];
14
14
  export declare const itemSizeKeys: readonly ["default", "sm", "xs"];
@@ -17,7 +17,7 @@ export declare const itemSizeKeys: readonly ["default", "sm", "xs"];
17
17
  */
18
18
  export type ItemProps = useRender.ComponentProps<'div'> & VariantProps<typeof itemVariants>;
19
19
  declare const itemMediaVariants: (props?: ({
20
- variant?: "default" | "image" | "icon" | null | undefined;
20
+ variant?: "image" | "default" | "icon" | null | undefined;
21
21
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
22
22
  export declare const itemMediaVariantKeys: readonly ["default", "icon", "image"];
23
23
  /** Props for `ItemMedia`. */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-pattern-1/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-1.config.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-pattern-1/pattern-1.config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,yDAAyD;AACzD,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;AAE/E,wCAAwC;AACxC,eAAO,MAAM,kBAAkB,EAAE,SAAS,mBAAmB,EAiB5D,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,mBAAmB,EAAE,CAAA;CAO9F,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/D,gEAAgE;AAChE,eAAO,MAAM,gBAAgB,EAAE;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,SAAS,CAAC,SAAS,gBAAgB,EAAE,CAAC,EAAE,CAAC;IACnD,MAAM,EAAE,gBAAgB,CAAC;CAuB5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pattern-1.d.ts","sourceRoot":"","sources":["../../../../src/blocks/navigation/pattern-1/pattern-1.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqB/B,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AA4HlE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,2CAoJlF"}
1
+ {"version":3,"file":"pattern-1.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-pattern-1/pattern-1.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AA4HlE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,uBAAuB,2CAyLlF"}
@@ -2,14 +2,14 @@
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
4
  import { Bell, ChevronDown, Menu, Search, X } from 'lucide-react';
5
- import { Avatar, AvatarFallback, AvatarImage } from '../../../components/avatar';
6
- import { Badge } from '../../../components/badge';
7
- import { Button } from '../../../components/button';
8
- import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../../components/collapsible';
9
- import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from '../../../components/dropdown-menu';
10
- import { Separator } from '../../../components/separator';
11
- import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '../../../components/sheet';
12
- import { cn } from '../../../lib/utils';
5
+ import { Avatar, AvatarFallback, AvatarImage } from '../avatar';
6
+ import { Badge } from '../badge';
7
+ import { Button } from '../button';
8
+ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../collapsible';
9
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from '../dropdown-menu';
10
+ import { Separator } from '../separator';
11
+ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '../sheet';
12
+ import { cn } from '../../lib/utils';
13
13
  import { pattern1PrimaryNav, pattern1SupportMenu, pattern1UserMenu } from './pattern-1.config';
14
14
  /** Demo user — keep in sync between desktop account menu and mobile sheet. */
15
15
  const demoUser = {
@@ -41,10 +41,43 @@ function MobileNavLinks({ onNavigate }) {
41
41
  */
42
42
  export function NavigationPattern1({ className, ...props }) {
43
43
  const [mobileMenuOpen, setMobileMenuOpen] = React.useState(false);
44
+ // #region agent log
45
+ const agentDbg = React.useCallback((hypothesisId, message, data) => {
46
+ fetch('http://127.0.0.1:7669/ingest/d1992449-3e7e-4566-9281-d4bff7e38fe9', {
47
+ method: 'POST',
48
+ headers: { 'Content-Type': 'application/json', 'X-Debug-Session-Id': '8829e4' },
49
+ body: JSON.stringify({
50
+ sessionId: '8829e4',
51
+ runId: 'pre-fix',
52
+ hypothesisId,
53
+ location: 'pattern-1.tsx:NavigationPattern1',
54
+ message,
55
+ data,
56
+ timestamp: Date.now(),
57
+ }),
58
+ }).catch(() => { });
59
+ }, []);
60
+ React.useEffect(() => {
61
+ const mq = typeof window !== 'undefined' ? window.matchMedia('(min-width: 1024px)') : null;
62
+ agentDbg('A', 'viewport-lg', {
63
+ innerWidth: typeof window !== 'undefined' ? window.innerWidth : null,
64
+ lgMatches: mq?.matches ?? null,
65
+ desktopNavExpectedVisible: mq?.matches ?? null,
66
+ });
67
+ const onResize = () => {
68
+ agentDbg('A', 'viewport-lg-resize', {
69
+ innerWidth: window.innerWidth,
70
+ lgMatches: window.matchMedia('(min-width: 1024px)').matches,
71
+ });
72
+ };
73
+ window.addEventListener('resize', onResize);
74
+ return () => window.removeEventListener('resize', onResize);
75
+ }, [agentDbg]);
76
+ // #endregion
44
77
  return (_jsxs("div", { "data-slot": "navigation-pattern-1", className: cn(className), ...props, children: [_jsx("nav", { className: "lg:hidden", "aria-label": "Main", children: _jsxs("div", { className: "relative flex h-14 items-center justify-between border-b border-border bg-background px-4", children: [_jsxs(Button, { type: "button", variant: "ghost", className: "relative -ml-2 h-9 w-9 shrink-0 px-0 [&_svg]:size-5", "aria-expanded": mobileMenuOpen, "aria-controls": "navigation-pattern-1-mobile-sheet", "aria-label": mobileMenuOpen ? 'Close menu' : 'Open menu', onClick: () => setMobileMenuOpen((open) => !open), children: [_jsx("span", { className: cn('absolute transition-all duration-300', mobileMenuOpen ? '-rotate-90 opacity-0' : 'rotate-0 opacity-100'), "aria-hidden": true, children: _jsx(Menu, {}) }), _jsx("span", { className: cn('absolute transition-all duration-300', mobileMenuOpen ? 'rotate-0 opacity-100' : '-rotate-90 opacity-0'), "aria-hidden": true, children: _jsx(X, {}) })] }), _jsx("div", { className: "pointer-events-none absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2", children: _jsx(BrandLogo, { className: "h-6 w-auto" }) }), _jsxs("div", { className: "flex shrink-0 items-center gap-3", children: [_jsx(Button, { type: "button", variant: "ghost", className: "size-9 p-0 [&_svg]:size-5", "aria-label": "Search", children: _jsx(Search, { className: "text-muted-foreground" }) }), _jsx(Button, { type: "button", variant: "ghost", className: "size-9 p-0 [&_svg]:size-5", "aria-label": "Notifications", children: _jsx(Bell, { className: "text-muted-foreground" }) })] })] }) }), _jsx(Sheet, { open: mobileMenuOpen, onOpenChange: setMobileMenuOpen, children: _jsxs(SheetContent, { id: "navigation-pattern-1-mobile-sheet", side: "left", showCloseButton: false, className: "flex h-[100dvh] max-h-[100dvh] w-full flex-col gap-0 overflow-hidden p-0 sm:max-w-sm", children: [_jsxs(SheetHeader, { className: "shrink-0 border-b border-border text-left", children: [_jsx(SheetTitle, { children: "Menu" }), _jsx(SheetDescription, { className: "sr-only", children: "Primary navigation links for the application." })] }), _jsx("div", { className: "min-h-0 flex-1 overflow-y-auto overscroll-contain", children: _jsx(MobileNavLinks, { onNavigate: () => setMobileMenuOpen(false) }) })] }) }), _jsx("nav", { className: "hidden h-12 border-b border-border bg-background lg:block", "aria-label": "Main", children: _jsxs("div", { className: "container flex h-full items-center justify-between px-6", children: [_jsxs("div", { className: "flex items-center gap-x-3", children: [_jsx(BrandLogo, {}), _jsx("div", { className: "flex items-center gap-x-1", children: pattern1PrimaryNav.map((entry, i) => {
45
78
  if (entry.kind === 'link') {
46
79
  return (_jsxs("a", { className: cn(navLinkClass, entry.active && 'text-primary', entry.badge && 'inline-flex items-center gap-1'), href: entry.href, children: [entry.label, entry.badge ? (_jsx(Badge, { variant: "outline", size: "sm", children: entry.badge.label })) : null] }, primaryNavKey(entry, i)));
47
80
  }
48
- return (_jsxs(DropdownMenu, { children: [_jsxs(DropdownMenuTrigger, { className: cn(navLinkClass, 'inline-flex cursor-default items-center gap-0 border-0 bg-transparent'), children: [entry.label, _jsx(ChevronDown, { className: "ml-1 size-4 opacity-80" })] }), _jsx(DropdownMenuContent, { align: "start", className: "min-w-48", children: entry.items.map((sub) => (_jsx(DropdownMenuItem, { children: sub.label }, sub.href))) })] }, primaryNavKey(entry, i)));
49
- }) })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": "Search", children: _jsx(Search, { className: "size-4 text-muted-foreground" }) }), _jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": "Search", children: _jsx(Bell, { className: "size-4 text-muted-foreground" }) }), _jsxs(DropdownMenu, { children: [_jsxs(DropdownMenuTrigger, { className: cn(navLinkClass, 'inline-flex cursor-default items-center gap-0 border-0 bg-transparent'), children: [pattern1SupportMenu.triggerLabel, _jsx(ChevronDown, { className: "ml-1 size-4 opacity-80" })] }), _jsx(DropdownMenuContent, { align: "start", className: "min-w-48", children: pattern1SupportMenu.items.map((item) => (_jsx(DropdownMenuItem, { children: item.label }, item.href))) })] }), _jsxs(DropdownMenu, { children: [_jsxs(DropdownMenuTrigger, { className: cn(navLinkClass, 'inline-flex cursor-default items-center gap-0 border-0 bg-transparent'), children: [pattern1UserMenu.triggerLabel, _jsx(ChevronDown, { className: "ml-1 size-4 opacity-80" })] }), _jsxs(DropdownMenuContent, { align: "end", className: "min-w-56", children: [_jsxs(DropdownMenuLabel, { className: "font-normal", children: [_jsx("span", { className: "block text-sm font-medium", children: demoUser.name }), _jsx("span", { className: "block text-xs text-muted-foreground", children: demoUser.email })] }), _jsx(DropdownMenuSeparator, {}), pattern1UserMenu.sections.map((section, si) => (_jsxs(React.Fragment, { children: [si > 0 ? _jsx(DropdownMenuSeparator, {}) : null, section.map((item) => (_jsx(DropdownMenuItem, { children: item.label }, `${item.href}-${item.label}`)))] }, `user-dd-${si}`))), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { variant: "destructive", children: pattern1UserMenu.logOut.label })] })] })] })] }) })] }));
81
+ return (_jsxs(DropdownMenu, { onOpenChange: (open) => agentDbg('D', 'menu-open-change', { menu: 'portfolio', open, label: entry.label }), children: [_jsxs(DropdownMenuTrigger, { className: cn(navLinkClass, 'inline-flex cursor-default items-center gap-0 border-0 bg-transparent'), children: [entry.label, _jsx(ChevronDown, { className: "ml-1 size-4 opacity-80" })] }), _jsx(DropdownMenuContent, { align: "start", className: "min-w-48", children: entry.items.map((sub) => (_jsx(DropdownMenuItem, { children: sub.label }, sub.href))) })] }, primaryNavKey(entry, i)));
82
+ }) })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": "Search", children: _jsx(Search, { className: "size-4 text-muted-foreground" }) }), _jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": "Search", children: _jsx(Bell, { className: "size-4 text-muted-foreground" }) }), _jsxs(DropdownMenu, { onOpenChange: (open) => agentDbg('D', 'menu-open-change', { menu: 'support', open }), children: [_jsxs(DropdownMenuTrigger, { className: cn(navLinkClass, 'inline-flex cursor-default items-center gap-0 border-0 bg-transparent'), children: [pattern1SupportMenu.triggerLabel, _jsx(ChevronDown, { className: "ml-1 size-4 opacity-80" })] }), _jsx(DropdownMenuContent, { align: "start", className: "min-w-48", children: pattern1SupportMenu.items.map((item) => (_jsx(DropdownMenuItem, { children: item.label }, item.href))) })] }), _jsxs(DropdownMenu, { onOpenChange: (open) => agentDbg('D', 'menu-open-change', { menu: 'user', open }), children: [_jsxs(DropdownMenuTrigger, { className: cn(navLinkClass, 'inline-flex cursor-default items-center gap-0 border-0 bg-transparent'), children: [pattern1UserMenu.triggerLabel, _jsx(ChevronDown, { className: "ml-1 size-4 opacity-80" })] }), _jsxs(DropdownMenuContent, { align: "end", className: "min-w-56", children: [_jsxs(DropdownMenuLabel, { className: "font-normal", children: [_jsx("span", { className: "block text-sm font-medium", children: demoUser.name }), _jsx("span", { className: "block text-xs text-muted-foreground", children: demoUser.email })] }), _jsx(DropdownMenuSeparator, {}), pattern1UserMenu.sections.map((section, si) => (_jsxs(React.Fragment, { children: [si > 0 ? _jsx(DropdownMenuSeparator, {}) : null, section.map((item) => (_jsx(DropdownMenuItem, { children: item.label }, `${item.href}-${item.label}`)))] }, `user-dd-${si}`))), _jsx(DropdownMenuSeparator, {}), _jsx(DropdownMenuItem, { variant: "destructive", children: pattern1UserMenu.logOut.label })] })] })] })] }) })] }));
50
83
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-1.stories.d.ts","sourceRoot":"","sources":["../../../src/components/navigation-pattern-1/pattern-1.stories.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,QAAA,MAAM,IAAI;;;;;;CAMiC,CAAC;AAE5C,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,mFAAmF;AACnF,eAAO,MAAM,OAAO,EAAE,KAGrB,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,MAAM,EAAE,KAEpB,CAAC"}
@@ -2,7 +2,7 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { NavigationPattern1 } from './pattern-1';
4
4
  const meta = {
5
- title: 'Blocks/Navigation/Pattern 1',
5
+ title: 'UI/Navigation pattern 1',
6
6
  component: NavigationPattern1,
7
7
  parameters: {
8
8
  layout: 'padded',
@@ -14,7 +14,7 @@ declare const tabsListVariantStyles: {
14
14
  };
15
15
  export declare const tabsListVariantKeys: (keyof typeof tabsListVariantStyles)[];
16
16
  declare const tabsListVariants: (props?: ({
17
- variant?: "default" | "line" | null | undefined;
17
+ variant?: "line" | "default" | null | undefined;
18
18
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
19
19
  /** Props for the tab list; includes `variant` for pill vs underline styles. */
20
20
  export type TabsListProps = TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants> & {
@@ -26,7 +26,7 @@ export declare const textWeightKeys: (keyof typeof textWeightStyles)[];
26
26
  export declare const textLineClampKeys: readonly [1, 2, 3, 4, 5, 6];
27
27
  export type TextLines = (typeof textLineClampKeys)[number];
28
28
  declare const textVariants: (props?: ({
29
- size?: "default" | "sm" | "lg" | "xs" | "xl" | "2xl" | "3xl" | "4xl" | null | undefined;
29
+ size?: "default" | "xs" | "sm" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | null | undefined;
30
30
  tone?: "default" | "muted" | null | undefined;
31
31
  weight?: "bold" | "normal" | "medium" | "semibold" | null | undefined;
32
32
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- export * from './blocks';
2
1
  export * from './components';
3
2
  export { cn } from './lib/utils';
4
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,2 @@
1
- export * from './blocks';
2
1
  export * from './components';
3
2
  export { cn } from './lib/utils';