@bearmenu/ui 0.8.34 → 0.8.35

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.
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const badgeVariants: (props?: ({
7
- variant?: "default" | "secondary" | "success" | "warning" | "destructive" | "outline" | "glass" | "overlay" | "brown" | "code" | "onPrimary" | "confirmed" | "pending" | "completed" | "assignee" | null | undefined;
7
+ variant?: "secondary" | "default" | "success" | "warning" | "destructive" | "outline" | "glass" | "overlay" | "brown" | "code" | "onPrimary" | "confirmed" | "pending" | "completed" | "assignee" | null | undefined;
8
8
  size?: "status" | "chip" | null | undefined;
9
9
  live?: boolean | null | undefined;
10
10
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -43,12 +43,22 @@ type BookingRowProps = {
43
43
  href: string;
44
44
  /** The venue photo, rendered by the app; a quiet placeholder when absent. */
45
45
  thumbnail?: React.ReactNode;
46
+ /**
47
+ * One more chip about this booking, beside the status — "on this phone" for
48
+ * a booking the signed-in guest has not put in their account yet.
49
+ *
50
+ * A node rather than a string because the app owns what it says and how it
51
+ * is marked; the row only owns where it sits. It rides with the status on
52
+ * both layouts, so the two read as one cluster of facts about the booking
53
+ * rather than a second row of chrome.
54
+ */
55
+ note?: React.ReactNode;
46
56
  /** The next booking up — tinted on desktop. */
47
57
  highlighted?: boolean;
48
58
  linkComponent?: React.ComponentType<BookingRowLinkProps>;
49
59
  className?: string;
50
60
  };
51
- declare function BookingRow({ venueName, venueType, when, party, status, statusLabel, code, href, thumbnail, highlighted, linkComponent: LinkComponent, className, }: BookingRowProps): react_jsx_runtime.JSX.Element;
61
+ declare function BookingRow({ venueName, venueType, when, party, status, statusLabel, code, href, thumbnail, note, highlighted, linkComponent: LinkComponent, className, }: BookingRowProps): react_jsx_runtime.JSX.Element;
52
62
  type BookingRowListProps = {
53
63
  children: React.ReactNode;
54
64
  /** "Upcoming bookings" — names the list for assistive tech. */
@@ -34,6 +34,7 @@ function BookingRow({
34
34
  code,
35
35
  href,
36
36
  thumbnail,
37
+ note,
37
38
  highlighted,
38
39
  linkComponent: LinkComponent = DefaultLink,
39
40
  className
@@ -65,6 +66,7 @@ function BookingRow({
65
66
  /* @__PURE__ */ jsxs("div", { className: "mt-2 flex flex-wrap items-center gap-[7px]", children: [
66
67
  /* @__PURE__ */ jsx("span", { className: "text-[12.5px] font-medium", children: when }),
67
68
  /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: party }),
69
+ note,
68
70
  statusPill
69
71
  ] })
70
72
  ] }),
@@ -80,6 +82,7 @@ function BookingRow({
80
82
  ] })
81
83
  ] }),
82
84
  /* @__PURE__ */ jsxs("span", { className: "hidden md:contents", children: [
85
+ note,
83
86
  statusPill,
84
87
  codeChip,
85
88
  /* @__PURE__ */ jsx(ChevronRight, { "aria-hidden": true, className: "size-[15px] shrink-0 text-muted-foreground" })
@@ -3,8 +3,8 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const buttonVariants: (props?: ({
6
- variant?: "default" | "link" | "secondary" | "warning" | "destructive" | "outline" | "ghost" | "glass" | "overlay" | "ink" | "brown" | "cta" | null | undefined;
7
- size?: "icon" | "default" | "cta" | "xs" | "sm" | "lg" | "pill" | "cta-sm" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
6
+ variant?: "secondary" | "default" | "link" | "warning" | "destructive" | "outline" | "ghost" | "glass" | "overlay" | "ink" | "brown" | "cta" | null | undefined;
7
+ size?: "default" | "icon" | "cta" | "xs" | "sm" | "lg" | "pill" | "cta-sm" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
8
8
  fullWidth?: boolean | null | undefined;
9
9
  } & class_variance_authority_types.ClassProp) | undefined) => string;
10
10
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
@@ -28,7 +28,7 @@ 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>>, "value" | "onChange" | "type"> & {
31
+ }, "asChild" | "key" | keyof React.InputHTMLAttributes<HTMLInputElement>>, "onChange" | "value" | "type"> & {
32
32
  value?: string;
33
33
  onValueChange?: (search: string) => void;
34
34
  } & React.RefAttributes<HTMLInputElement>, "ref"> & React.RefAttributes<HTMLInputElement>>;
@@ -64,7 +64,7 @@ declare const CommandGroup: React.ForwardRefExoticComponent<Omit<{
64
64
  ref?: React.Ref<HTMLDivElement>;
65
65
  } & {
66
66
  asChild?: boolean;
67
- }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key">, "value" | "heading"> & {
67
+ }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key">, "heading" | "value"> & {
68
68
  heading?: React.ReactNode;
69
69
  value?: string;
70
70
  forceMount?: boolean;
@@ -82,7 +82,7 @@ declare const CommandItem: React.ForwardRefExoticComponent<Omit<{
82
82
  ref?: React.Ref<HTMLDivElement>;
83
83
  } & {
84
84
  asChild?: boolean;
85
- }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key">, "value" | "onSelect" | "disabled"> & {
85
+ }, keyof React.HTMLAttributes<HTMLDivElement> | "asChild" | "key">, "onSelect" | "value" | "disabled"> & {
86
86
  disabled?: boolean;
87
87
  onSelect?: (value: string) => void;
88
88
  value?: string;
@@ -4,11 +4,11 @@ import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const spinnerVariants: (props?: ({
6
6
  size?: "default" | "xs" | "sm" | "lg" | "xl" | null | undefined;
7
- tone?: "default" | "inherit" | "primary" | "destructive" | null | undefined;
7
+ tone?: "primary" | "default" | "inherit" | "destructive" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  declare const Spinner: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & VariantProps<(props?: ({
10
10
  size?: "default" | "xs" | "sm" | "lg" | "xl" | null | undefined;
11
- tone?: "default" | "inherit" | "primary" | "destructive" | null | undefined;
11
+ tone?: "primary" | "default" | "inherit" | "destructive" | null | undefined;
12
12
  } & class_variance_authority_types.ClassProp) | undefined) => string> & {
13
13
  /** Visually-hidden label for screen readers. Defaults to "Loading". */
14
14
  label?: string;
@@ -3,11 +3,11 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const tagVariants: (props?: ({
6
- variant?: "default" | "primary" | "success" | "warning" | "destructive" | "outline" | "quiet" | null | undefined;
6
+ variant?: "primary" | "default" | "success" | "warning" | "destructive" | "outline" | "quiet" | null | undefined;
7
7
  size?: "default" | "sm" | "lg" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  declare const Tag: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLSpanElement> & VariantProps<(props?: ({
10
- variant?: "default" | "primary" | "success" | "warning" | "destructive" | "outline" | "quiet" | null | undefined;
10
+ variant?: "primary" | "default" | "success" | "warning" | "destructive" | "outline" | "quiet" | null | undefined;
11
11
  size?: "default" | "sm" | "lg" | null | undefined;
12
12
  } & class_variance_authority_types.ClassProp) | undefined) => string> & {
13
13
  onRemove?: () => void;
@@ -22,8 +22,8 @@ import { VariantProps } from 'class-variance-authority';
22
22
  * Weights are 400 / 600 / 700. 500 is not in the system.
23
23
  */
24
24
  declare const textVariants: (props?: ({
25
- variant?: "body" | "small" | "display" | "h2" | "h3" | "label" | "caption" | "h1" | "h4" | "body-lg" | "body-sm" | "overline" | null | undefined;
26
- color?: "default" | "inherit" | "primary" | "destructive" | "muted" | "primary-foreground" | null | undefined;
25
+ variant?: "small" | "body" | "display" | "h2" | "h3" | "label" | "caption" | "h1" | "h4" | "body-lg" | "body-sm" | "overline" | null | undefined;
26
+ color?: "primary" | "default" | "inherit" | "destructive" | "muted" | "primary-foreground" | null | undefined;
27
27
  weight?: "bold" | "medium" | "normal" | "semibold" | null | undefined;
28
28
  leading?: "none" | "normal" | "tight" | "snug" | "relaxed" | "loose" | null | undefined;
29
29
  tracking?: "normal" | "tight" | "wide" | "wider" | null | undefined;
package/package.json CHANGED
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "name": "@bearmenu/ui",
3
- "version": "0.8.34",
4
- "packageManager": "pnpm@10.28.1",
3
+ "version": "0.8.35",
5
4
  "description": "BearMenu design system — shared UI tokens, primitives, and components",
6
5
  "license": "UNLICENSED",
7
6
  "repository": {
@@ -17,222 +16,20 @@
17
16
  "src"
18
17
  ],
19
18
  "exports": {
20
- "./components/accordion": "./src/components/accordion.tsx",
21
- "./components/action-bar": "./src/components/action-bar.tsx",
22
- "./components/activity-row": "./src/components/activity-row.tsx",
23
- "./components/alert": "./src/components/alert.tsx",
24
- "./components/alert-dialog": "./src/components/alert-dialog.tsx",
25
- "./components/aspect-ratio": "./src/components/aspect-ratio.tsx",
26
- "./components/avatar": "./src/components/avatar.tsx",
27
- "./components/badge": "./src/components/badge.tsx",
28
- "./components/banner": "./src/components/banner.tsx",
29
- "./components/booking-row": "./src/components/booking-row.tsx",
30
- "./components/booking-summary-card": "./src/components/booking-summary-card.tsx",
31
- "./components/breadcrumb": "./src/components/breadcrumb.tsx",
32
- "./components/button": "./src/components/button.tsx",
33
- "./components/button-group": "./src/components/button-group.tsx",
34
- "./components/calendar": "./src/components/calendar.tsx",
35
- "./components/card": "./src/components/card.tsx",
36
- "./components/carousel": "./src/components/carousel.tsx",
37
- "./components/category-deck": "./src/components/category-deck.tsx",
38
- "./components/checkbox": "./src/components/checkbox.tsx",
39
- "./components/circular-progress": "./src/components/circular-progress.tsx",
40
- "./components/coach-marks": "./src/components/coach-marks.tsx",
41
- "./components/collapsible": "./src/components/collapsible.tsx",
42
- "./components/combobox": "./src/components/combobox.tsx",
43
- "./components/command": "./src/components/command.tsx",
44
- "./components/concept-card": "./src/components/concept-card.tsx",
45
- "./components/concept-compare": "./src/components/concept-compare.tsx",
46
- "./components/concept-compare-rail": "./src/components/concept-compare-rail.tsx",
47
- "./components/concept-convergence": "./src/components/concept-convergence.tsx",
48
- "./components/convergence": "./src/components/convergence.tsx",
49
- "./components/coverflow": "./src/components/coverflow.tsx",
50
- "./components/currency-input": "./src/components/currency-input.tsx",
51
- "./components/date-input": "./src/components/date-input.tsx",
52
- "./components/day-rail-chip": "./src/components/day-rail-chip.tsx",
53
- "./components/description-list": "./src/components/description-list.tsx",
54
- "./components/dialog": "./src/components/dialog.tsx",
55
- "./components/doorway-tiles": "./src/components/doorway-tiles.tsx",
56
- "./components/drawer": "./src/components/drawer.tsx",
57
- "./components/drift-rail": "./src/components/drift-rail.tsx",
58
- "./components/dropdown-menu": "./src/components/dropdown-menu.tsx",
59
- "./components/empty-state": "./src/components/empty-state.tsx",
60
- "./components/event-card": "./src/components/event-card.tsx",
61
- "./components/event-compact-row": "./src/components/event-compact-row.tsx",
62
- "./components/event-day-header": "./src/components/event-day-header.tsx",
63
- "./components/event-day-separator": "./src/components/event-day-separator.tsx",
64
- "./components/event-detail-panel": "./src/components/event-detail-panel.tsx",
65
- "./components/event-hub-hero": "./src/components/event-hub-hero.tsx",
66
- "./components/event-index-row": "./src/components/event-index-row.tsx",
67
- "./components/event-list-row": "./src/components/event-list-row.tsx",
68
- "./components/event-list-row-wide": "./src/components/event-list-row-wide.tsx",
69
- "./components/event-poster-fallback": "./src/components/event-poster-fallback.tsx",
70
- "./components/event-tonight-strip": "./src/components/event-tonight-strip.tsx",
71
- "./components/event-types": "./src/components/event-types.ts",
72
- "./components/events-empty-state": "./src/components/events-empty-state.tsx",
73
- "./components/explainer-steps": "./src/components/explainer-steps.tsx",
74
- "./components/facet-group": "./src/components/facet-group.tsx",
75
- "./components/featured-rail-item": "./src/components/featured-rail-item.tsx",
76
- "./components/field": "./src/components/field.tsx",
77
- "./components/filter-category-row": "./src/components/filter-category-row.tsx",
78
- "./components/form": "./src/components/form.tsx",
79
- "./components/glass-ground": "./src/components/glass-ground.tsx",
80
- "./components/grade-atom": "./src/components/grade-atom.tsx",
81
- "./components/haptic-switch": "./src/components/haptic-switch.tsx",
82
- "./components/hold-countdown": "./src/components/hold-countdown.tsx",
83
- "./components/hub-surface": "./src/components/hub-surface.tsx",
84
- "./components/hue-chip": "./src/components/hue-chip.tsx",
85
- "./components/icon": "./src/components/icon.tsx",
86
- "./components/input": "./src/components/input.tsx",
87
- "./components/input-group": "./src/components/input-group.tsx",
88
- "./components/input-otp": "./src/components/input-otp.tsx",
89
- "./components/item": "./src/components/item.tsx",
90
- "./components/kbd": "./src/components/kbd.tsx",
91
- "./components/label": "./src/components/label.tsx",
92
- "./components/kitchen-dossier": "./src/components/kitchen-dossier.tsx",
93
- "./components/lazy-markdown": "./src/components/lazy-markdown.tsx",
94
- "./components/link-button": "./src/components/link-button.tsx",
95
- "./components/markdown-renderer": "./src/components/markdown-renderer.tsx",
96
- "./components/menu-dead-end": "./src/components/menu-dead-end.tsx",
97
- "./components/menu-family-block": "./src/components/menu-family-block.tsx",
98
- "./components/menu-family-card": "./src/components/menu-family-card.tsx",
99
- "./components/menu-field": "./src/components/menu-field.tsx",
100
- "./components/menu-filter-chips": "./src/components/menu-filter-chips.tsx",
101
- "./components/menu-group-rows": "./src/components/menu-group-rows.tsx",
102
- "./components/menu-hub-hero": "./src/components/menu-hub-hero.tsx",
103
- "./components/menu-index-header": "./src/components/menu-index-header.tsx",
104
- "./components/menu-index-list": "./src/components/menu-index-list.tsx",
105
- "./components/menu-intent-hero": "./src/components/menu-intent-hero.tsx",
106
- "./components/menu-item": "./src/components/menu-item.tsx",
107
- "./components/menu-pick-row": "./src/components/menu-pick-row.tsx",
108
- "./components/menu-kitchen-list": "./src/components/menu-kitchen-list.tsx",
109
- "./components/menu-mocks": "./src/components/menu-mocks.ts",
110
- "./components/menu-types": "./src/components/menu-types.ts",
111
- "./components/motion-icon": "./src/components/motion-icon.tsx",
112
- "./components/motion-icon-actions": "./src/components/motion-icon-actions.tsx",
113
- "./components/motion-icon-controls": "./src/components/motion-icon-controls.tsx",
114
- "./components/motion-icon-set": "./src/components/motion-icon-set.tsx",
115
- "./components/multi-select-combobox": "./src/components/multi-select-combobox.tsx",
116
- "./components/multi-select-menu": "./src/components/multi-select-menu.tsx",
117
- "./components/native-select": "./src/components/native-select.tsx",
118
- "./components/open-now-list": "./src/components/open-now-list.tsx",
119
- "./components/pagination": "./src/components/pagination.tsx",
120
- "./components/party-counter": "./src/components/party-counter.tsx",
121
- "./components/phone-frame": "./src/components/phone-frame.tsx",
122
- "./components/photo-ground": "./src/components/photo-ground.tsx",
123
- "./components/place-about-tab": "./src/components/place-about-tab.tsx",
124
- "./components/place-card": "./src/components/place-card.tsx",
125
- "./components/place-details-mobile": "./src/components/place-details-mobile.tsx",
126
- "./components/place-schedule-week": "./src/components/place-schedule-week.tsx",
127
- "./components/place-types": "./src/components/place-types.ts",
128
- "./components/popover": "./src/components/popover.tsx",
129
- "./components/poster-stack": "./src/components/poster-stack.tsx",
130
- "./components/poster-tape": "./src/components/poster-tape.tsx",
131
- "./components/poster-wall": "./src/components/poster-wall.tsx",
132
- "./components/progress": "./src/components/progress.tsx",
133
- "./components/qa-block": "./src/components/qa-block.tsx",
134
- "./components/qr-panel": "./src/components/qr-panel.tsx",
135
- "./components/quiet-stretch": "./src/components/quiet-stretch.tsx",
136
- "./components/radio-group": "./src/components/radio-group.tsx",
137
- "./components/reconcile-bar": "./src/components/reconcile-bar.tsx",
138
- "./components/responsive-overlay": "./src/components/responsive-overlay.tsx",
139
- "./components/rating": "./src/components/rating.tsx",
140
- "./components/scroll-area": "./src/components/scroll-area.tsx",
141
- "./components/scroll-fade": "./src/components/scroll-fade.tsx",
142
- "./components/search-bar": "./src/components/search-bar.tsx",
143
- "./components/searchable-select": "./src/components/searchable-select.tsx",
144
- "./components/section-header": "./src/components/section-header.tsx",
145
- "./components/segmented-nav": "./src/components/segmented-nav.tsx",
146
- "./components/select": "./src/components/select.tsx",
147
- "./components/selection-bar": "./src/components/selection-bar.tsx",
148
- "./components/separator": "./src/components/separator.tsx",
149
- "./components/sheet": "./src/components/sheet.tsx",
150
- "./components/signature-chip": "./src/components/signature-chip.tsx",
151
- "./components/skeleton": "./src/components/skeleton.tsx",
152
- "./components/skeleton-card": "./src/components/skeleton-card.tsx",
153
- "./components/slider": "./src/components/slider.tsx",
154
- "./components/sliding-panels": "./src/components/sliding-panels.tsx",
155
- "./components/sonner": "./src/components/sonner.tsx",
156
- "./components/sort-option-list": "./src/components/sort-option-list.tsx",
157
- "./components/spinner": "./src/components/spinner.tsx",
158
- "./components/split-share-row": "./src/components/split-share-row.tsx",
159
- "./components/stat-banner": "./src/components/stat-banner.tsx",
160
- "./components/stepper": "./src/components/stepper.tsx",
161
- "./components/sticky-container": "./src/components/sticky-container.tsx",
162
- "./components/story": "./src/components/story.tsx",
163
- "./components/switch": "./src/components/switch.tsx",
164
- "./components/table": "./src/components/table.tsx",
165
- "./components/table-ledger-card": "./src/components/table-ledger-card.tsx",
166
- "./components/table-trigger-band": "./src/components/table-trigger-band.tsx",
167
- "./components/tabs": "./src/components/tabs.tsx",
168
- "./components/tag": "./src/components/tag.tsx",
169
- "./components/tag-group": "./src/components/tag-group.tsx",
170
- "./components/text": "./src/components/text.tsx",
171
- "./components/textarea": "./src/components/textarea.tsx",
172
- "./components/time-slot": "./src/components/time-slot.tsx",
173
- "./components/timeline-day": "./src/components/timeline-day.tsx",
174
- "./components/timeline-hour": "./src/components/timeline-hour.tsx",
175
- "./components/timeline-hour-puck": "./src/components/timeline-hour-puck.tsx",
176
- "./components/toggle": "./src/components/toggle.tsx",
177
- "./components/toggle-group": "./src/components/toggle-group.tsx",
178
- "./components/tooltip": "./src/components/tooltip.tsx",
179
- "./components/top-comparison": "./src/components/top-comparison.tsx",
180
- "./components/top-cross-link": "./src/components/top-cross-link.tsx",
181
- "./components/top-ranking-entry": "./src/components/top-ranking-entry.tsx",
182
- "./components/top-ranking-hero": "./src/components/top-ranking-hero.tsx",
183
- "./components/top-ranking-legend": "./src/components/top-ranking-legend.tsx",
184
- "./components/top-types": "./src/components/top-types.ts",
185
- "./components/use-mobile": "./src/components/use-mobile.tsx",
186
- "./components/venue-events-block": "./src/components/venue-events-block.tsx",
187
- "./components/venue-grade-dimensions": "./src/components/venue-grade-dimensions.tsx",
188
- "./components/venue-quotes": "./src/components/venue-quotes.tsx",
189
- "./components/venue-wall": "./src/components/venue-wall.tsx",
190
- "./components/weekday-chip": "./src/components/weekday-chip.tsx",
191
- "./components/weekday-theme-banner": "./src/components/weekday-theme-banner.tsx",
192
- "./components/weekend-panel": "./src/components/weekend-panel.tsx",
193
19
  "./globals.css": "./src/globals.css",
194
- "./hooks/use-drag-swipe": "./src/hooks/use-drag-swipe.ts",
195
- "./hooks/use-haptic": "./src/hooks/use-haptic.ts",
196
- "./hooks/use-media-query": "./src/hooks/use-media-query.ts",
197
- "./hooks/use-mobile": "./src/hooks/use-mobile.ts",
198
- "./hooks/use-mounted-theme": "./src/hooks/use-mounted-theme.ts",
199
- "./hooks/use-sticky": "./src/hooks/use-sticky.ts",
200
- "./lib/card-hover": "./src/lib/card-hover.ts",
201
- "./lib/grade": "./src/lib/grade.ts",
202
- "./lib/icon-depth": "./src/lib/icon-depth.ts",
203
- "./lib/icon-registry": "./src/lib/icon-registry.ts",
204
- "./lib/motion": "./src/lib/motion.ts",
205
- "./lib/overlay-pill": "./src/lib/overlay-pill.ts",
206
- "./lib/utils": "./src/lib/utils.ts"
207
- },
208
- "publishConfig": {
209
- "exports": {
210
- "./globals.css": "./src/globals.css",
211
- "./components/*": {
212
- "types": "./dist/components/*.d.ts",
213
- "import": "./dist/components/*.js"
214
- },
215
- "./hooks/*": {
216
- "types": "./dist/hooks/*.d.ts",
217
- "import": "./dist/hooks/*.js"
218
- },
219
- "./lib/*": {
220
- "types": "./dist/lib/*.d.ts",
221
- "import": "./dist/lib/*.js"
222
- }
20
+ "./components/*": {
21
+ "types": "./dist/components/*.d.ts",
22
+ "import": "./dist/components/*.js"
23
+ },
24
+ "./hooks/*": {
25
+ "types": "./dist/hooks/*.d.ts",
26
+ "import": "./dist/hooks/*.js"
27
+ },
28
+ "./lib/*": {
29
+ "types": "./dist/lib/*.d.ts",
30
+ "import": "./dist/lib/*.js"
223
31
  }
224
32
  },
225
- "scripts": {
226
- "storybook": "storybook dev -p 6006",
227
- "build-storybook": "storybook build",
228
- "build": "tsup",
229
- "dev": "tsup --watch",
230
- "typecheck": "tsc --noEmit",
231
- "test": "vitest run",
232
- "test:watch": "vitest",
233
- "clean": "rm -rf dist",
234
- "prepublishOnly": "pnpm run build"
235
- },
236
33
  "peerDependencies": {
237
34
  "@hookform/resolvers": "^3.0.0 || ^5.0.0",
238
35
  "@radix-ui/react-accordion": "*",
@@ -341,5 +138,15 @@
341
138
  "vaul": "^1.1.2",
342
139
  "vitest": "^4.1.5",
343
140
  "zod": "^3.25.67"
141
+ },
142
+ "scripts": {
143
+ "storybook": "storybook dev -p 6006",
144
+ "build-storybook": "storybook build",
145
+ "build": "tsup",
146
+ "dev": "tsup --watch",
147
+ "typecheck": "tsc --noEmit",
148
+ "test": "vitest run",
149
+ "test:watch": "vitest",
150
+ "clean": "rm -rf dist"
344
151
  }
345
- }
152
+ }
@@ -52,6 +52,16 @@ export type BookingRowProps = {
52
52
  href: string;
53
53
  /** The venue photo, rendered by the app; a quiet placeholder when absent. */
54
54
  thumbnail?: React.ReactNode;
55
+ /**
56
+ * One more chip about this booking, beside the status — "on this phone" for
57
+ * a booking the signed-in guest has not put in their account yet.
58
+ *
59
+ * A node rather than a string because the app owns what it says and how it
60
+ * is marked; the row only owns where it sits. It rides with the status on
61
+ * both layouts, so the two read as one cluster of facts about the booking
62
+ * rather than a second row of chrome.
63
+ */
64
+ note?: React.ReactNode;
55
65
  /** The next booking up — tinted on desktop. */
56
66
  highlighted?: boolean;
57
67
  linkComponent?: React.ComponentType<BookingRowLinkProps>;
@@ -84,6 +94,7 @@ export function BookingRow({
84
94
  code,
85
95
  href,
86
96
  thumbnail,
97
+ note,
87
98
  highlighted,
88
99
  linkComponent: LinkComponent = DefaultLink,
89
100
  className,
@@ -127,6 +138,7 @@ export function BookingRow({
127
138
  <div className="mt-2 flex flex-wrap items-center gap-[7px]">
128
139
  <span className="text-[12.5px] font-medium">{when}</span>
129
140
  <span className="text-xs text-muted-foreground">{party}</span>
141
+ {note}
130
142
  {statusPill}
131
143
  </div>
132
144
  </div>
@@ -142,6 +154,7 @@ export function BookingRow({
142
154
  </div>
143
155
  </div>
144
156
  <span className="hidden md:contents">
157
+ {note}
145
158
  {statusPill}
146
159
  {codeChip}
147
160
  <ChevronRight aria-hidden className="size-[15px] shrink-0 text-muted-foreground" />