@bearmenu/ui 0.6.0 → 0.7.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.
Files changed (80) hide show
  1. package/dist/chunk-A5ONAJCE.js +102 -0
  2. package/dist/chunk-AV777R4G.js +43 -0
  3. package/dist/{chunk-WKMLZDUT.js → chunk-FRPPIXMY.js} +1 -1
  4. package/dist/{chunk-PSR7N36A.js → chunk-HCM6LKM5.js} +1 -1
  5. package/dist/{chunk-YJ6OBKZJ.js → chunk-TL4YU2O5.js} +10 -3
  6. package/dist/chunk-UX6SWAKH.js +320 -0
  7. package/dist/{chunk-7PPCH42H.js → chunk-VQNDZVI7.js} +1 -1
  8. package/dist/chunk-WSRWFA6K.js +26 -0
  9. package/dist/chunk-YLNYXPIH.js +61 -0
  10. package/dist/components/accordion.js +1 -1
  11. package/dist/components/alert.d.ts +2 -2
  12. package/dist/components/badge.d.ts +3 -2
  13. package/dist/components/badge.js +1 -1
  14. package/dist/components/button.d.ts +1 -1
  15. package/dist/components/card.d.ts +2 -2
  16. package/dist/components/card.js +127 -4
  17. package/dist/components/combobox.js +2 -2
  18. package/dist/components/command.d.ts +15 -15
  19. package/dist/components/command.js +2 -2
  20. package/dist/components/currency-input.js +1 -1
  21. package/dist/components/date-input.d.ts +1 -1
  22. package/dist/components/date-input.js +1 -1
  23. package/dist/components/dialog.js +1 -1
  24. package/dist/components/filter-category-row.d.ts +13 -0
  25. package/dist/components/filter-category-row.js +44 -0
  26. package/dist/components/input-group.d.ts +2 -0
  27. package/dist/components/input-group.js +10 -5
  28. package/dist/components/input.d.ts +1 -0
  29. package/dist/components/input.js +1 -1
  30. package/dist/components/item.d.ts +2 -2
  31. package/dist/components/multi-select-combobox.js +3 -3
  32. package/dist/components/phone-frame.js +1 -1
  33. package/dist/components/place-about-tab.d.ts +2 -2
  34. package/dist/components/place-about-tab.js +4 -3
  35. package/dist/components/place-details-mobile.js +5 -3
  36. package/dist/components/place-schedule-week.d.ts +19 -0
  37. package/dist/components/place-schedule-week.js +4 -0
  38. package/dist/components/place-types.d.ts +18 -9
  39. package/dist/components/scroll-fade.d.ts +15 -0
  40. package/dist/components/scroll-fade.js +121 -0
  41. package/dist/components/searchable-select.js +2 -2
  42. package/dist/components/separator.js +3 -26
  43. package/dist/components/sheet.js +1 -1
  44. package/dist/components/sliding-panels.d.ts +1 -0
  45. package/dist/components/sliding-panels.js +22 -6
  46. package/dist/components/sort-option-list.d.ts +16 -0
  47. package/dist/components/sort-option-list.js +46 -0
  48. package/dist/components/spinner.d.ts +2 -2
  49. package/dist/components/tabs.js +98 -17
  50. package/dist/components/tag.d.ts +2 -2
  51. package/dist/components/tag.js +3 -61
  52. package/dist/components/text.d.ts +3 -3
  53. package/dist/components/toast.js +1 -1
  54. package/dist/components/toaster.js +1 -1
  55. package/package.json +23 -112
  56. package/src/components/accordion.tsx +1 -1
  57. package/src/components/badge.tsx +9 -2
  58. package/src/components/card.tsx +22 -18
  59. package/src/components/dialog.tsx +1 -1
  60. package/src/components/filter-category-row.tsx +52 -0
  61. package/src/components/input-group.tsx +9 -4
  62. package/src/components/input.tsx +8 -3
  63. package/src/components/phone-frame.tsx +1 -1
  64. package/src/components/place-about-tab.stories.tsx +24 -13
  65. package/src/components/place-about-tab.test.tsx +92 -38
  66. package/src/components/place-about-tab.tsx +310 -344
  67. package/src/components/place-schedule-week.tsx +128 -0
  68. package/src/components/place-types.ts +27 -8
  69. package/src/components/scroll-fade.stories.tsx +98 -0
  70. package/src/components/scroll-fade.tsx +132 -0
  71. package/src/components/sheet.tsx +1 -1
  72. package/src/components/sliding-panels.tsx +33 -6
  73. package/src/components/sort-option-list.tsx +57 -0
  74. package/src/components/tabs.tsx +76 -11
  75. package/src/components/toast.tsx +1 -1
  76. package/src/globals.css +77 -19
  77. package/src/lib/motion.ts +137 -0
  78. package/dist/chunk-BAZFVSSG.js +0 -279
  79. package/dist/chunk-RIDXFY6M.js +0 -38
  80. package/dist/chunk-XK2ZDQVE.js +0 -122
@@ -3,7 +3,7 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const buttonVariants: (props?: ({
6
- variant?: "default" | "destructive" | "link" | "outline" | "secondary" | "ghost" | "glass" | "brown" | "antagonist" | null | undefined;
6
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "glass" | "brown" | "antagonist" | null | undefined;
7
7
  size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
8
8
  fullWidth?: boolean | null | undefined;
9
9
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -3,12 +3,12 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const cardVariants: (props?: ({
6
- variant?: "muted" | "outline" | "glass" | "surface" | null | undefined;
6
+ variant?: "outline" | "glass" | "muted" | "surface" | null | undefined;
7
7
  size?: "default" | "sm" | "lg" | null | undefined;
8
8
  interactive?: boolean | null | undefined;
9
9
  } & class_variance_authority_types.ClassProp) | undefined) => string;
10
10
  declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
11
- variant?: "muted" | "outline" | "glass" | "surface" | null | undefined;
11
+ variant?: "outline" | "glass" | "muted" | "surface" | null | undefined;
12
12
  size?: "default" | "sm" | "lg" | null | undefined;
13
13
  interactive?: boolean | null | undefined;
14
14
  } & class_variance_authority_types.ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
@@ -1,4 +1,127 @@
1
- export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, cardVariants } from '../chunk-XK2ZDQVE.js';
2
- import '../chunk-Y5D5LP4A.js';
3
- import '../chunk-FEK5XGZW.js';
4
- import '../chunk-3GWWZKX7.js';
1
+ import { textVariants } from '../chunk-Y5D5LP4A.js';
2
+ import { cn } from '../chunk-FEK5XGZW.js';
3
+ import { __objRest, __spreadValues } from '../chunk-3GWWZKX7.js';
4
+ import * as React from 'react';
5
+ import { cva } from 'class-variance-authority';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ var cardVariants = cva(
9
+ "rounded-3xl text-card-foreground transition-[background-color,border-color] duration-[var(--duration-quick)] ease-[var(--ease-standard)]",
10
+ {
11
+ variants: {
12
+ variant: {
13
+ surface: "bg-card border border-border",
14
+ glass: "glass",
15
+ outline: "bg-transparent border border-border",
16
+ muted: "bg-muted border border-transparent"
17
+ },
18
+ size: {
19
+ sm: "[&_[data-slot=card-header]]:p-4 [&_[data-slot=card-content]]:p-4 [&_[data-slot=card-content]]:pt-0 [&_[data-slot=card-footer]]:p-4 [&_[data-slot=card-footer]]:pt-0",
20
+ default: "[&_[data-slot=card-header]]:p-6 [&_[data-slot=card-content]]:p-6 [&_[data-slot=card-content]]:pt-0 [&_[data-slot=card-footer]]:p-6 [&_[data-slot=card-footer]]:pt-0",
21
+ lg: "[&_[data-slot=card-header]]:p-8 [&_[data-slot=card-content]]:p-8 [&_[data-slot=card-content]]:pt-0 [&_[data-slot=card-footer]]:p-8 [&_[data-slot=card-footer]]:pt-0"
22
+ },
23
+ // Interactive variant follows v1.0 `press-response` archetype:
24
+ // hover lift via shadow + translate (200ms), press scale-down (instant).
25
+ interactive: {
26
+ true: "cursor-pointer transition-[transform,border-color,box-shadow] duration-[var(--duration-quick)] ease-[var(--ease-standard)] hover:border-primary/40 hover:-translate-y-0.5 hover:shadow-md active:scale-[0.97] active:duration-[var(--duration-instant)] motion-reduce:hover:translate-y-0 motion-reduce:active:scale-100",
27
+ false: ""
28
+ }
29
+ },
30
+ defaultVariants: {
31
+ variant: "surface",
32
+ size: "default",
33
+ interactive: false
34
+ }
35
+ }
36
+ );
37
+ var Card = React.forwardRef((_a, ref) => {
38
+ var _b = _a, { className, variant, size, interactive } = _b, props = __objRest(_b, ["className", "variant", "size", "interactive"]);
39
+ return /* @__PURE__ */ jsx(
40
+ "div",
41
+ __spreadValues({
42
+ ref,
43
+ "data-slot": "card",
44
+ className: cn(cardVariants({ variant, size, interactive }), className)
45
+ }, props)
46
+ );
47
+ });
48
+ Card.displayName = "Card";
49
+ var CardHeader = React.forwardRef(
50
+ (_a, ref) => {
51
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
52
+ return /* @__PURE__ */ jsx(
53
+ "div",
54
+ __spreadValues({
55
+ ref,
56
+ "data-slot": "card-header",
57
+ className: cn("flex flex-col space-y-1.5 p-6", className)
58
+ }, props)
59
+ );
60
+ }
61
+ );
62
+ CardHeader.displayName = "CardHeader";
63
+ var CardTitle = React.forwardRef(
64
+ (_a, ref) => {
65
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
66
+ return /* @__PURE__ */ jsx(
67
+ "div",
68
+ __spreadValues({
69
+ ref,
70
+ "data-slot": "card-title",
71
+ className: cn(textVariants({ variant: "h4", wrap: "balance" }), className)
72
+ }, props)
73
+ );
74
+ }
75
+ );
76
+ CardTitle.displayName = "CardTitle";
77
+ var CardDescription = React.forwardRef(
78
+ (_a, ref) => {
79
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
80
+ return /* @__PURE__ */ jsx(
81
+ "div",
82
+ __spreadValues({
83
+ ref,
84
+ "data-slot": "card-description",
85
+ className: cn("text-sm", textVariants({ color: "muted", wrap: "pretty" }), className)
86
+ }, props)
87
+ );
88
+ }
89
+ );
90
+ CardDescription.displayName = "CardDescription";
91
+ var CardContent = React.forwardRef(
92
+ (_a, ref) => {
93
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
94
+ return /* @__PURE__ */ jsx("div", __spreadValues({ ref, "data-slot": "card-content", className: cn("p-6 pt-0", className) }, props));
95
+ }
96
+ );
97
+ CardContent.displayName = "CardContent";
98
+ var CardAction = React.forwardRef(
99
+ (_a, ref) => {
100
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
101
+ return /* @__PURE__ */ jsx(
102
+ "div",
103
+ __spreadValues({
104
+ ref,
105
+ "data-slot": "card-action",
106
+ className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className)
107
+ }, props)
108
+ );
109
+ }
110
+ );
111
+ CardAction.displayName = "CardAction";
112
+ var CardFooter = React.forwardRef(
113
+ (_a, ref) => {
114
+ var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
115
+ return /* @__PURE__ */ jsx(
116
+ "div",
117
+ __spreadValues({
118
+ ref,
119
+ "data-slot": "card-footer",
120
+ className: cn("flex items-center p-6 pt-0", className)
121
+ }, props)
122
+ );
123
+ }
124
+ );
125
+ CardFooter.displayName = "CardFooter";
126
+
127
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, cardVariants };
@@ -1,6 +1,6 @@
1
1
  import { Popover, PopoverTrigger, PopoverContent } from '../chunk-UUJVXN2O.js';
2
- import { Command, CommandInput, CommandList, CommandLoading, CommandEmpty, CommandGroup, CommandItem } from '../chunk-PSR7N36A.js';
3
- import '../chunk-WKMLZDUT.js';
2
+ import { Command, CommandInput, CommandList, CommandLoading, CommandEmpty, CommandGroup, CommandItem } from '../chunk-HCM6LKM5.js';
3
+ import '../chunk-FRPPIXMY.js';
4
4
  import { Button } from '../chunk-ZFNOCP6W.js';
5
5
  import '../chunk-R47NEOSI.js';
6
6
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -4,11 +4,11 @@ import { DialogProps } from '@radix-ui/react-dialog';
4
4
 
5
5
  declare const Command: React.ForwardRefExoticComponent<Omit<{
6
6
  children?: React.ReactNode;
7
- } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
7
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
8
8
  ref?: React.Ref<HTMLDivElement>;
9
9
  } & {
10
10
  asChild?: boolean;
11
- }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key"> & {
11
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
12
12
  label?: string;
13
13
  shouldFilter?: boolean;
14
14
  filter?: (value: string, search: string, keywords?: string[]) => number;
@@ -28,61 +28,61 @@ declare const CommandInput: React.ForwardRefExoticComponent<Omit<Omit<Pick<Pick<
28
28
  ref?: React.Ref<HTMLInputElement>;
29
29
  } & {
30
30
  asChild?: boolean;
31
- }, "asChild" | "key" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "type" | "value"> & {
31
+ }, "key" | "asChild" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "type" | "value"> & {
32
32
  value?: string;
33
33
  onValueChange?: (search: string) => void;
34
34
  } & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
35
35
  declare const CommandList: React.ForwardRefExoticComponent<Omit<{
36
36
  children?: React.ReactNode;
37
- } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
37
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
38
38
  ref?: React.Ref<HTMLDivElement>;
39
39
  } & {
40
40
  asChild?: boolean;
41
- }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key"> & {
41
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
42
42
  label?: string;
43
43
  } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
44
44
  declare const CommandEmpty: React.ForwardRefExoticComponent<Omit<{
45
45
  children?: React.ReactNode;
46
- } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
46
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
47
47
  ref?: React.Ref<HTMLDivElement>;
48
48
  } & {
49
49
  asChild?: boolean;
50
- }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
50
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
51
51
  declare const CommandLoading: React.ForwardRefExoticComponent<Omit<{
52
52
  children?: React.ReactNode;
53
- } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
53
+ } & Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
54
54
  ref?: React.Ref<HTMLDivElement>;
55
55
  } & {
56
56
  asChild?: boolean;
57
- }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key"> & {
57
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
58
58
  progress?: number;
59
59
  label?: string;
60
60
  } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
61
61
  declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
62
62
  children?: React.ReactNode;
63
- } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
63
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
64
64
  ref?: React.Ref<HTMLDivElement>;
65
65
  } & {
66
66
  asChild?: boolean;
67
- }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key">, "heading" | "value"> & {
67
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "heading" | "value"> & {
68
68
  heading?: React.ReactNode;
69
69
  value?: string;
70
70
  forceMount?: boolean;
71
71
  } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
72
- declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
72
+ declare const CommandSeparator: React.ForwardRefExoticComponent<Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
73
73
  ref?: React.Ref<HTMLDivElement>;
74
74
  } & {
75
75
  asChild?: boolean;
76
- }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key"> & {
76
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild"> & {
77
77
  alwaysRender?: boolean;
78
78
  } & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
79
79
  declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
80
80
  children?: React.ReactNode;
81
- } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | "key"> & {
81
+ } & Omit<Pick<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & {
82
82
  ref?: React.Ref<HTMLDivElement>;
83
83
  } & {
84
84
  asChild?: boolean;
85
- }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key">, "onSelect" | "disabled" | "value"> & {
85
+ }, "key" | keyof React.HTMLAttributes<HTMLDivElement> | "asChild">, "onSelect" | "disabled" | "value"> & {
86
86
  disabled?: boolean;
87
87
  onSelect?: (value: string) => void;
88
88
  value?: string;
@@ -1,4 +1,4 @@
1
- export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut } from '../chunk-PSR7N36A.js';
2
- import '../chunk-WKMLZDUT.js';
1
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut } from '../chunk-HCM6LKM5.js';
2
+ import '../chunk-FRPPIXMY.js';
3
3
  import '../chunk-FEK5XGZW.js';
4
4
  import '../chunk-3GWWZKX7.js';
@@ -1,4 +1,4 @@
1
- import { Input } from '../chunk-RIDXFY6M.js';
1
+ import { Input } from '../chunk-AV777R4G.js';
2
2
  import { cn } from '../chunk-FEK5XGZW.js';
3
3
  import { __objRest, __spreadValues } from '../chunk-3GWWZKX7.js';
4
4
  import * as React from 'react';
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
 
3
- declare const DateInput: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "type"> & {
3
+ declare const DateInput: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<HTMLInputElement>, "type" | "size"> & {
4
4
  /** Native input type. Defaults to "date". */
5
5
  type?: "date" | "datetime-local" | "time" | "month" | "week";
6
6
  size?: "sm" | "default" | "lg";
@@ -1,4 +1,4 @@
1
- import { Input } from '../chunk-RIDXFY6M.js';
1
+ import { Input } from '../chunk-AV777R4G.js';
2
2
  import { cn } from '../chunk-FEK5XGZW.js';
3
3
  import { __objRest, __spreadValues } from '../chunk-3GWWZKX7.js';
4
4
  import * as React from 'react';
@@ -1,3 +1,3 @@
1
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, dialogContentVariants } from '../chunk-WKMLZDUT.js';
1
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, dialogContentVariants } from '../chunk-FRPPIXMY.js';
2
2
  import '../chunk-FEK5XGZW.js';
3
3
  import '../chunk-3GWWZKX7.js';
@@ -0,0 +1,13 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { LucideIcon } from 'lucide-react';
3
+
4
+ interface FilterCategoryRowProps {
5
+ icon: LucideIcon;
6
+ label: string;
7
+ description: string;
8
+ count?: number;
9
+ onClick: () => void;
10
+ }
11
+ declare function FilterCategoryRow({ icon: Icon, label, description, count, onClick, }: FilterCategoryRowProps): react_jsx_runtime.JSX.Element;
12
+
13
+ export { FilterCategoryRow };
@@ -0,0 +1,44 @@
1
+ import { Text } from '../chunk-Y5D5LP4A.js';
2
+ import { Badge } from '../chunk-TL4YU2O5.js';
3
+ import '../chunk-FEK5XGZW.js';
4
+ import '../chunk-3GWWZKX7.js';
5
+ import { ChevronRight } from 'lucide-react';
6
+ import { jsxs, jsx } from 'react/jsx-runtime';
7
+
8
+ function FilterCategoryRow({
9
+ icon: Icon,
10
+ label,
11
+ description,
12
+ count = 0,
13
+ onClick
14
+ }) {
15
+ return /* @__PURE__ */ jsxs(
16
+ "button",
17
+ {
18
+ type: "button",
19
+ onClick,
20
+ className: "flex items-center justify-between w-full py-3 transition-colors hover:bg-muted/50 rounded-lg px-2 -mx-2",
21
+ children: [
22
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
23
+ /* @__PURE__ */ jsx(
24
+ Icon,
25
+ {
26
+ "aria-hidden": "true",
27
+ className: "w-5 h-5 text-muted-foreground flex-shrink-0"
28
+ }
29
+ ),
30
+ /* @__PURE__ */ jsxs("div", { className: "text-left", children: [
31
+ /* @__PURE__ */ jsx(Text, { as: "p", weight: "medium", children: label }),
32
+ /* @__PURE__ */ jsx(Text, { as: "p", variant: "body-sm", color: "muted", children: description })
33
+ ] })
34
+ ] }),
35
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
36
+ count > 0 && /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "text-xs", children: count }),
37
+ /* @__PURE__ */ jsx(ChevronRight, { className: "w-5 h-5 text-muted-foreground" })
38
+ ] })
39
+ ]
40
+ }
41
+ );
42
+ }
43
+
44
+ export { FilterCategoryRow };
@@ -4,9 +4,11 @@ import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const inputGroupVariants: (props?: ({
6
6
  size?: "default" | "sm" | "lg" | null | undefined;
7
+ shape?: "rounded" | "pill" | null | undefined;
7
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
8
9
  declare const InputGroup: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
9
10
  size?: "default" | "sm" | "lg" | null | undefined;
11
+ shape?: "rounded" | "pill" | null | undefined;
10
12
  } & class_variance_authority_types.ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
11
13
  declare const InputGroupInput: React.ForwardRefExoticComponent<React.InputHTMLAttributes<HTMLInputElement> & React.RefAttributes<HTMLInputElement>>;
12
14
  declare const InputGroupAddon: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
@@ -6,29 +6,34 @@ import { cva } from 'class-variance-authority';
6
6
  import { jsx } from 'react/jsx-runtime';
7
7
 
8
8
  var inputGroupVariants = cva(
9
- "flex items-center w-full rounded-xl border border-border bg-background text-base md:text-sm text-foreground transition-colors focus-within:outline-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 has-[input:disabled]:cursor-not-allowed has-[input:disabled]:opacity-50 aria-invalid:border-destructive aria-invalid:focus-within:ring-destructive/40",
9
+ "flex items-center w-full border border-border bg-background text-base md:text-sm text-foreground transition-colors focus-within:outline-none focus-within:ring-2 focus-within:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 has-[input:disabled]:cursor-not-allowed has-[input:disabled]:opacity-50 aria-invalid:border-destructive aria-invalid:focus-within:ring-destructive/40",
10
10
  {
11
11
  variants: {
12
12
  size: {
13
13
  sm: "h-9",
14
14
  default: "h-11",
15
15
  lg: "h-12"
16
+ },
17
+ shape: {
18
+ rounded: "rounded-xl focus-within:ring-ring",
19
+ pill: "rounded-full shadow-[var(--shadow-card)] focus-within:ring-accent/30"
16
20
  }
17
21
  },
18
22
  defaultVariants: {
19
- size: "default"
23
+ size: "default",
24
+ shape: "rounded"
20
25
  }
21
26
  }
22
27
  );
23
28
  var InputGroupContext = React.createContext({});
24
29
  var InputGroup = React.forwardRef((_a, ref) => {
25
- var _b = _a, { className, size, children } = _b, props = __objRest(_b, ["className", "size", "children"]);
26
- return /* @__PURE__ */ jsx(InputGroupContext.Provider, { value: { size }, children: /* @__PURE__ */ jsx(
30
+ var _b = _a, { className, size, shape, children } = _b, props = __objRest(_b, ["className", "size", "shape", "children"]);
31
+ return /* @__PURE__ */ jsx(InputGroupContext.Provider, { value: { size, shape }, children: /* @__PURE__ */ jsx(
27
32
  "div",
28
33
  __spreadProps(__spreadValues({
29
34
  ref,
30
35
  "data-slot": "input-group",
31
- className: cn(inputGroupVariants({ size }), className)
36
+ className: cn(inputGroupVariants({ size, shape }), className)
32
37
  }, props), {
33
38
  children
34
39
  })
@@ -4,6 +4,7 @@ import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const inputVariants: (props?: ({
6
6
  size?: "default" | "sm" | "lg" | null | undefined;
7
+ shape?: "rounded" | "pill" | null | undefined;
7
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
8
9
  interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size">, VariantProps<typeof inputVariants> {
9
10
  }
@@ -1,3 +1,3 @@
1
- export { Input, inputVariants } from '../chunk-RIDXFY6M.js';
1
+ export { Input, inputVariants } from '../chunk-AV777R4G.js';
2
2
  import '../chunk-FEK5XGZW.js';
3
3
  import '../chunk-3GWWZKX7.js';
@@ -3,12 +3,12 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const itemVariants: (props?: ({
6
- variant?: "default" | "muted" | "outline" | null | undefined;
6
+ variant?: "default" | "outline" | "muted" | null | undefined;
7
7
  size?: "default" | "sm" | "lg" | null | undefined;
8
8
  interactive?: boolean | null | undefined;
9
9
  } & class_variance_authority_types.ClassProp) | undefined) => string;
10
10
  declare const Item: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
11
- variant?: "default" | "muted" | "outline" | null | undefined;
11
+ variant?: "default" | "outline" | "muted" | null | undefined;
12
12
  size?: "default" | "sm" | "lg" | null | undefined;
13
13
  interactive?: boolean | null | undefined;
14
14
  } & class_variance_authority_types.ClassProp) | undefined) => string> & {
@@ -1,10 +1,10 @@
1
1
  import { Checkbox } from '../chunk-D5QHEHXJ.js';
2
2
  import { Popover, PopoverTrigger, PopoverContent } from '../chunk-UUJVXN2O.js';
3
- import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-PSR7N36A.js';
4
- import '../chunk-WKMLZDUT.js';
3
+ import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-HCM6LKM5.js';
4
+ import '../chunk-FRPPIXMY.js';
5
5
  import { Button } from '../chunk-ZFNOCP6W.js';
6
6
  import '../chunk-R47NEOSI.js';
7
- import { Badge } from '../chunk-YJ6OBKZJ.js';
7
+ import { Badge } from '../chunk-TL4YU2O5.js';
8
8
  import { cn } from '../chunk-FEK5XGZW.js';
9
9
  import '../chunk-3GWWZKX7.js';
10
10
  import * as React from 'react';
@@ -14,7 +14,7 @@ function PhoneFrame({
14
14
  const innerWidth = width - FRAME_PADDING * 2;
15
15
  const scale = mobileViewportWidth ? innerWidth / mobileViewportWidth : 1;
16
16
  const viewportHeight = mobileViewportWidth ? screenHeight / scale : screenHeight;
17
- return /* @__PURE__ */ jsx("div", { className: cn("relative mx-auto shrink-0", className), style: { width }, children: /* @__PURE__ */ jsxs("div", { className: "rounded-[2.5rem] border-[1.5px] border-white/15 bg-black/80 p-1.5 shadow-2xl shadow-black/40", children: [
17
+ return /* @__PURE__ */ jsx("div", { className: cn("relative mx-auto shrink-0", className), style: { width }, children: /* @__PURE__ */ jsxs("div", { className: "rounded-[2.5rem] border-[1.5px] border-white/15 bg-black p-1.5 shadow-2xl shadow-black/40", children: [
18
18
  /* @__PURE__ */ jsx("div", { className: "absolute top-[10px] left-1/2 -translate-x-1/2 w-[68px] h-[20px] bg-black rounded-full z-10" }),
19
19
  /* @__PURE__ */ jsx(
20
20
  "div",
@@ -4,11 +4,11 @@ import { PlacePreview, PlaceAboutTabLabels, PlaceLinkKind } from './place-types.
4
4
  interface PlaceAboutTabProps {
5
5
  place: PlacePreview;
6
6
  labels: PlaceAboutTabLabels;
7
- /** Slot for an embedded map (FE only). Omit to skip the map row. */
7
+ /** Slot for an embedded map. Rendered first, full-bleed the caller controls the breakout / gradient treatment. */
8
8
  mapSlot?: React.ReactNode;
9
9
  /** Slot for an embedded busyness chart. Rendered only when both this prop and `place.busyness` are present. */
10
10
  busynessSlot?: React.ReactNode;
11
- /** Fires when the user clicks a contact link (phone/website/social). The URL is what the caller passed in. */
11
+ /** Fires when the user clicks a contact link (phone/website/social). */
12
12
  onLinkClick?: (kind: PlaceLinkKind, url: string) => void;
13
13
  className?: string;
14
14
  }
@@ -1,6 +1,7 @@
1
- export { PlaceAboutTab } from '../chunk-BAZFVSSG.js';
2
- import '../chunk-XK2ZDQVE.js';
1
+ export { PlaceAboutTab } from '../chunk-UX6SWAKH.js';
2
+ import '../chunk-YLNYXPIH.js';
3
+ import '../chunk-WSRWFA6K.js';
4
+ import '../chunk-A5ONAJCE.js';
3
5
  import '../chunk-Y5D5LP4A.js';
4
- import '../chunk-YJ6OBKZJ.js';
5
6
  import '../chunk-FEK5XGZW.js';
6
7
  import '../chunk-3GWWZKX7.js';
@@ -1,7 +1,9 @@
1
- import { PlaceAboutTab } from '../chunk-BAZFVSSG.js';
2
- import '../chunk-XK2ZDQVE.js';
1
+ import { PlaceAboutTab } from '../chunk-UX6SWAKH.js';
2
+ import '../chunk-YLNYXPIH.js';
3
+ import '../chunk-WSRWFA6K.js';
4
+ import '../chunk-A5ONAJCE.js';
3
5
  import { Text } from '../chunk-Y5D5LP4A.js';
4
- import { Badge } from '../chunk-YJ6OBKZJ.js';
6
+ import { Badge } from '../chunk-TL4YU2O5.js';
5
7
  import { cn } from '../chunk-FEK5XGZW.js';
6
8
  import '../chunk-3GWWZKX7.js';
7
9
  import { useState } from 'react';
@@ -0,0 +1,19 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { PlaceSchedule, PlaceScheduleWeekLabels } from './place-types.js';
3
+
4
+ interface PlaceScheduleWeekProps {
5
+ schedule?: PlaceSchedule;
6
+ labels: PlaceScheduleWeekLabels;
7
+ /**
8
+ * When true, scrolls the today row into view on mount. Use inside a drawer/dialog
9
+ * where the schedule is the only content — auto-scrolling avoids weekend rows
10
+ * being clipped at the bottom of small viewports. Default false: do not auto-scroll
11
+ * when the schedule sits inline on a longer page, where the behaviour disorients
12
+ * the reader.
13
+ */
14
+ autoScrollToToday?: boolean;
15
+ className?: string;
16
+ }
17
+ declare function PlaceScheduleWeek({ schedule, labels, autoScrollToToday, className, }: PlaceScheduleWeekProps): react_jsx_runtime.JSX.Element;
18
+
19
+ export { PlaceScheduleWeek, type PlaceScheduleWeekProps };
@@ -0,0 +1,4 @@
1
+ export { PlaceScheduleWeek } from '../chunk-A5ONAJCE.js';
2
+ import '../chunk-Y5D5LP4A.js';
3
+ import '../chunk-FEK5XGZW.js';
4
+ import '../chunk-3GWWZKX7.js';
@@ -18,6 +18,7 @@ type PlacePreview = {
18
18
  review_count?: number;
19
19
  hours?: PlaceHourBlock[];
20
20
  today_schedule?: PlaceHourBlock[];
21
+ schedule?: PlaceSchedule;
21
22
  location?: {
22
23
  address?: string;
23
24
  geolocation?: {
@@ -65,6 +66,8 @@ type PlaceHourBlock = {
65
66
  opens_at: number;
66
67
  closes_at: number;
67
68
  };
69
+ type WeekdayKey = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
70
+ type PlaceSchedule = Record<WeekdayKey, PlaceHourBlock[]>;
68
71
  type PlacePriceRange = {
69
72
  price_range_low?: number;
70
73
  price_range_high?: number;
@@ -85,15 +88,14 @@ type PlaceCardLabels = {
85
88
  * to the raw enum value (with underscores → spaces).
86
89
  */
87
90
  type PlaceAboutTabLabels = {
88
- overview: string;
91
+ /** Section heading for the editorial prose block (generative summary + review summary + description). */
89
92
  description: string;
90
- whatPeopleSay: string;
91
93
  contactAndLocation: string;
92
- address: string;
93
94
  instagram: string;
94
95
  facebook: string;
96
+ /** Section heading for the inline weekly schedule. */
95
97
  todayHours: string;
96
- statusOpen: string;
98
+ /** Used by the inline schedule's closed-day line-through. */
97
99
  statusClosed: string;
98
100
  typicalBusyness: string;
99
101
  cuisines: string;
@@ -102,10 +104,10 @@ type PlaceAboutTabLabels = {
102
104
  accessibility: string;
103
105
  parking: string;
104
106
  nearbyLandmarks: string;
105
- neighborhood: string;
106
- businessInformation: string;
107
- type: string;
108
- status: string;
107
+ /** Weekday key → translated day name, consumed by the inline `<PlaceScheduleWeek>`. */
108
+ scheduleDays: Record<WeekdayKey, string>;
109
+ /** Fallback shown by `<PlaceScheduleWeek>` when no schedule data is present. */
110
+ noHoursAvailable: string;
109
111
  amenityLabels: Record<string, string>;
110
112
  paymentLabels: Record<string, string>;
111
113
  accessibilityLabels: Record<string, string>;
@@ -115,6 +117,13 @@ type PlaceAboutTabLabels = {
115
117
  };
116
118
  /** Discriminator for `<PlaceAboutTab>`'s `onLinkClick` callback. */
117
119
  type PlaceLinkKind = 'phone' | 'website' | 'instagram' | 'facebook' | 'address';
120
+ /** Labels passed to `<PlaceScheduleWeek>`. */
121
+ type PlaceScheduleWeekLabels = {
122
+ days: Record<WeekdayKey, string>;
123
+ closed: string;
124
+ /** Shown when the `schedule` prop is missing or empty. */
125
+ noHoursAvailable: string;
126
+ };
118
127
  /**
119
128
  * Labels passed to `<PlaceDetailsMobile>`. Extends `PlaceAboutTabLabels` with
120
129
  * the header/tab-strip strings unique to the mobile place-details surface.
@@ -142,4 +151,4 @@ type PlaceDetailsMobileLabels = PlaceAboutTabLabels & {
142
151
  noImageAvailable: string;
143
152
  };
144
153
 
145
- export type { PlaceAboutTabLabels, PlaceCardLabels, PlaceDetailsMobileLabels, PlaceHourBlock, PlaceLinkKind, PlacePreview, PlacePriceRange };
154
+ export type { PlaceAboutTabLabels, PlaceCardLabels, PlaceDetailsMobileLabels, PlaceHourBlock, PlaceLinkKind, PlacePreview, PlacePriceRange, PlaceSchedule, PlaceScheduleWeekLabels, WeekdayKey };
@@ -0,0 +1,15 @@
1
+ import * as React from 'react';
2
+
3
+ type Orientation = "vertical" | "horizontal";
4
+ type FadeColor = "background" | "card" | "muted";
5
+ type Size = "sm" | "md" | "lg";
6
+ interface ScrollFadeProps extends React.HTMLAttributes<HTMLDivElement> {
7
+ orientation?: Orientation;
8
+ fadeColor?: FadeColor;
9
+ size?: Size;
10
+ /** Class names applied to the inner scrollable element (where overflow lives). */
11
+ scrollClassName?: string;
12
+ }
13
+ declare const ScrollFade: React.ForwardRefExoticComponent<ScrollFadeProps & React.RefAttributes<HTMLDivElement>>;
14
+
15
+ export { ScrollFade, type ScrollFadeProps };