@bearmenu/ui 0.8.16 → 0.8.18
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/{chunk-WYTJR2YU.js → chunk-5CPBSNWQ.js} +6 -1
- package/dist/{chunk-36KEHCET.js → chunk-5LTILG3L.js} +15 -4
- package/dist/{chunk-P43B3ONY.js → chunk-5XREWOBB.js} +3 -1
- package/dist/{chunk-CLLY6XB3.js → chunk-6VOWT4YR.js} +6 -3
- package/dist/{chunk-S33K4RC5.js → chunk-BKKQ7GCZ.js} +1 -1
- package/dist/{chunk-ZLPWEHZO.js → chunk-EQYB4Q77.js} +2 -2
- package/dist/chunk-LYREUZH6.js +156 -0
- package/dist/chunk-PW247TG2.js +81 -0
- package/dist/chunk-QY66ME5B.js +207 -0
- package/dist/{chunk-T6S2ZBV6.js → chunk-SDWN6L4O.js} +1 -1
- package/dist/{chunk-CNJQUHCU.js → chunk-SWD6CJ35.js} +2 -1
- package/dist/{chunk-HDR7V6IZ.js → chunk-TIQNM4XD.js} +8 -1
- package/dist/components/alert-dialog.js +1 -1
- package/dist/components/alert.d.ts +2 -2
- package/dist/components/badge.d.ts +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/card.d.ts +2 -2
- package/dist/components/carousel.js +1 -1
- package/dist/components/coach-marks.d.ts +63 -0
- package/dist/components/coach-marks.js +162 -0
- package/dist/components/combobox.js +1 -1
- package/dist/components/command.d.ts +15 -15
- package/dist/components/concept-compare-rail.js +3 -3
- package/dist/components/concept-compare.js +3 -3
- package/dist/components/concept-convergence.js +2 -2
- package/dist/components/doorway-tiles.d.ts +11 -0
- package/dist/components/doorway-tiles.js +5 -3
- package/dist/components/empty-state.js +1 -1
- package/dist/components/event-card.d.ts +22 -4
- package/dist/components/event-card.js +95 -50
- package/dist/components/event-day-header.d.ts +5 -3
- package/dist/components/event-day-header.js +12 -4
- package/dist/components/event-detail-panel.js +2 -2
- package/dist/components/event-door.d.ts +41 -0
- package/dist/components/event-door.js +65 -0
- package/dist/components/event-hub-hero.d.ts +10 -2
- package/dist/components/event-hub-hero.js +11 -5
- package/dist/components/event-index-row.js +1 -1
- package/dist/components/event-list-row-wide.js +2 -2
- package/dist/components/event-list-row.js +1 -1
- package/dist/components/event-tonight-strip.d.ts +50 -0
- package/dist/components/event-tonight-strip.js +67 -0
- package/dist/components/facet-group.d.ts +8 -1
- package/dist/components/facet-group.js +3 -0
- package/dist/components/filter-category-row.js +1 -1
- package/dist/components/hue-chip.js +1 -1
- package/dist/components/item.d.ts +2 -2
- package/dist/components/item.js +4 -1
- package/dist/components/kitchen-dossier.js +1 -1
- package/dist/components/link-button.js +1 -1
- package/dist/components/menu-family-block.d.ts +8 -1
- package/dist/components/menu-family-block.js +101 -68
- package/dist/components/menu-family-card.js +2 -2
- package/dist/components/menu-filter-chips.d.ts +12 -3
- package/dist/components/menu-filter-chips.js +22 -4
- package/dist/components/menu-hub-hero.d.ts +7 -1
- package/dist/components/menu-hub-hero.js +2 -1
- package/dist/components/menu-index-list.js +1 -1
- package/dist/components/menu-item.js +3 -3
- package/dist/components/menu-kitchen-list.d.ts +14 -2
- package/dist/components/menu-kitchen-list.js +1 -1
- package/dist/components/multi-select-combobox.js +2 -2
- package/dist/components/pagination.js +1 -1
- package/dist/components/photo-ground.d.ts +7 -1
- package/dist/components/photo-ground.js +1 -1
- package/dist/components/place-card.js +2 -2
- package/dist/components/place-details-mobile.js +1 -1
- package/dist/components/poster-stack.d.ts +36 -3
- package/dist/components/poster-stack.js +49 -18
- package/dist/components/searchable-select.js +1 -1
- package/dist/components/section-header.d.ts +7 -1
- package/dist/components/section-header.js +11 -7
- package/dist/components/signature-chip.js +2 -2
- package/dist/components/sliding-panels.js +1 -1
- package/dist/components/snap-rail.d.ts +2 -2
- package/dist/components/snap-rail.js +1 -1
- package/dist/components/spinner.d.ts +2 -2
- package/dist/components/tag.d.ts +2 -2
- package/dist/components/text.d.ts +3 -3
- package/dist/components/timeline-day.d.ts +54 -0
- package/dist/components/timeline-day.js +65 -0
- package/dist/components/timeline-hour-puck.d.ts +47 -0
- package/dist/components/timeline-hour-puck.js +3 -0
- package/dist/components/timeline-hour.d.ts +96 -0
- package/dist/components/{timeline-band.js → timeline-hour.js} +2 -1
- package/dist/components/timeline-playhead.js +1 -3
- package/dist/components/toggle-group.js +9 -4
- package/dist/components/toggle.d.ts +1 -1
- package/dist/components/toggle.js +1 -1
- package/dist/components/top-ranking-entry.js +3 -3
- package/package.json +1 -1
- package/src/components/badge.stories.tsx +31 -1
- package/src/components/badge.tsx +2 -0
- package/src/components/button.stories.tsx +5 -4
- package/src/components/button.test.tsx +11 -1
- package/src/components/button.tsx +16 -5
- package/src/components/coach-marks.stories.tsx +79 -0
- package/src/components/coach-marks.test.tsx +140 -0
- package/src/components/coach-marks.tsx +252 -0
- package/src/components/doorway-tiles.stories.tsx +34 -0
- package/src/components/doorway-tiles.test.tsx +27 -0
- package/src/components/doorway-tiles.tsx +30 -2
- package/src/components/event-card.tsx +70 -13
- package/src/components/event-day-header.tsx +19 -7
- package/src/components/event-door.stories.tsx +88 -0
- package/src/components/event-door.tsx +97 -0
- package/src/components/event-hub-hero.tsx +21 -3
- package/src/components/event-tonight-strip.stories.tsx +78 -0
- package/src/components/event-tonight-strip.test.tsx +59 -0
- package/src/components/event-tonight-strip.tsx +134 -0
- package/src/components/facet-group.tsx +9 -0
- package/src/components/hue-chip.test.tsx +6 -3
- package/src/components/hue-chip.tsx +5 -2
- package/src/components/item.tsx +4 -1
- package/src/components/menu-family-block.stories.tsx +12 -0
- package/src/components/menu-family-block.tsx +53 -20
- package/src/components/menu-filter-chips.tsx +32 -4
- package/src/components/menu-hub-hero.test.tsx +13 -0
- package/src/components/menu-hub-hero.tsx +9 -2
- package/src/components/menu-kitchen-list.tsx +45 -6
- package/src/components/photo-ground.tsx +7 -0
- package/src/components/poster-stack.stories.tsx +43 -1
- package/src/components/poster-stack.tsx +98 -19
- package/src/components/section-header.test.tsx +15 -0
- package/src/components/section-header.tsx +26 -12
- package/src/components/snap-rail.tsx +6 -1
- package/src/components/timeline-day.stories.tsx +201 -0
- package/src/components/timeline-day.test.tsx +78 -0
- package/src/components/timeline-day.tsx +114 -0
- package/src/components/timeline-hour-puck.tsx +139 -0
- package/src/components/timeline-hour.tsx +266 -0
- package/src/components/timeline-playhead.tsx +1 -1
- package/src/components/toggle-group.stories.tsx +37 -1
- package/src/components/toggle-group.tsx +11 -6
- package/src/components/toggle.tsx +8 -0
- package/dist/chunk-NSNEANOQ.js +0 -104
- package/dist/chunk-SXQZ7DLH.js +0 -167
- package/dist/components/hour-band.d.ts +0 -66
- package/dist/components/hour-band.js +0 -81
- package/dist/components/hour-group.d.ts +0 -67
- package/dist/components/hour-group.js +0 -59
- package/dist/components/timeline-band.d.ts +0 -64
- package/src/components/hour-band.stories.tsx +0 -182
- package/src/components/hour-band.tsx +0 -146
- package/src/components/hour-group.stories.tsx +0 -100
- package/src/components/hour-group.tsx +0 -124
- package/src/components/timeline-band.stories.tsx +0 -206
- package/src/components/timeline-band.tsx +0 -247
|
@@ -12,6 +12,9 @@ var snapRailVariants = cva(
|
|
|
12
12
|
{
|
|
13
13
|
variants: {
|
|
14
14
|
itemWidth: {
|
|
15
|
+
/** Square door tiles — three and a third per phone screen, so the
|
|
16
|
+
* cut fourth says "swipe"; more as the viewport widens. */
|
|
17
|
+
xs: "[&>*]:w-[30%] sm:[&>*]:w-[22%] md:[&>*]:w-[18%]",
|
|
15
18
|
sm: "[&>*]:w-[46%]",
|
|
16
19
|
md: "[&>*]:w-[60%]",
|
|
17
20
|
lg: "[&>*]:w-[80%]",
|
|
@@ -25,7 +28,9 @@ var snapRailVariants = cva(
|
|
|
25
28
|
bleed: {
|
|
26
29
|
none: "",
|
|
27
30
|
card: "-mx-3.5 px-3.5 scroll-px-3.5",
|
|
28
|
-
page
|
|
31
|
+
/** The consumer's page gutter, read from `--page-gutter` (16px on a
|
|
32
|
+
* phone, 24px from md) — a fixed `-mx-4` was 8px short at md. */
|
|
33
|
+
page: "-mx-[var(--page-gutter,1rem)] px-[var(--page-gutter,1rem)] scroll-px-[var(--page-gutter,1rem)]"
|
|
29
34
|
}
|
|
30
35
|
},
|
|
31
36
|
defaultVariants: {
|
|
@@ -15,9 +15,19 @@ var buttonVariants = cva(
|
|
|
15
15
|
variant: {
|
|
16
16
|
default: "bg-primary text-primary-foreground shadow-sm hover:bg-primary/90 hover:shadow",
|
|
17
17
|
destructive: "bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/85 hover:shadow",
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
/**
|
|
19
|
+
* The quiet variants tint on hover, they do not invert. `--accent`
|
|
20
|
+
* here is the brand brown, so the shadcn default (`hover:bg-accent`,
|
|
21
|
+
* written for an accent that is a pale grey) turned every outline,
|
|
22
|
+
* ghost and secondary button into a filled brown block the moment the
|
|
23
|
+
* pointer touched it — a second primary on every row. The standard
|
|
24
|
+
* (shadcn on its own tokens, Radix, Polaris, Material) is a step of the
|
|
25
|
+
* surface: the fill darkens a notch, the border firms up, the type
|
|
26
|
+
* stays put. `--accent-subtle` is that step; `active:` goes one more.
|
|
27
|
+
*/
|
|
28
|
+
outline: "border border-border bg-background hover:bg-accent-subtle hover:border-accent/40 active:bg-muted",
|
|
29
|
+
secondary: "bg-secondary text-secondary-foreground shadow-sm border border-border hover:bg-accent-subtle hover:border-accent/40 active:bg-muted",
|
|
30
|
+
ghost: "hover:bg-accent-subtle active:bg-muted",
|
|
21
31
|
link: "text-primary underline-offset-4 hover:underline",
|
|
22
32
|
glass: "glass glass-hover text-foreground",
|
|
23
33
|
/**
|
|
@@ -45,7 +55,8 @@ var buttonVariants = cva(
|
|
|
45
55
|
*/
|
|
46
56
|
ink: "border border-white/20 bg-white/[0.16] text-white hover:bg-white/25 focus-visible:ring-white/70 focus-visible:ring-offset-0",
|
|
47
57
|
brown: "bg-brown text-brown-foreground shadow-sm hover:bg-brown/85 hover:shadow",
|
|
48
|
-
|
|
58
|
+
/** An ON state that is not the primary — a toggled mode, a guide running. */
|
|
59
|
+
warning: "bg-warning text-warning-foreground shadow-sm hover:bg-warning/90 hover:shadow"
|
|
49
60
|
},
|
|
50
61
|
size: {
|
|
51
62
|
xs: "h-8 rounded-lg px-3 text-xs [&_svg]:size-3.5",
|
|
@@ -16,7 +16,9 @@ var badgeVariants = cva(
|
|
|
16
16
|
glass: "glass text-foreground border-border/50",
|
|
17
17
|
success: "border-transparent bg-success text-success-foreground",
|
|
18
18
|
warning: "border-transparent bg-warning text-warning-foreground",
|
|
19
|
-
brown: "border-transparent bg-brown text-brown-foreground"
|
|
19
|
+
brown: "border-transparent bg-brown text-brown-foreground",
|
|
20
|
+
/** A count sitting INSIDE a primary-filled control: its own ink, lifted a notch. */
|
|
21
|
+
onPrimary: "border-transparent bg-primary-foreground/20 text-primary-foreground"
|
|
20
22
|
},
|
|
21
23
|
// v1.0 motion: "live" surface signal — applies `live-pulse` archetype.
|
|
22
24
|
// Pair with a colored variant (e.g. variant="destructive" live).
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cn } from './chunk-FEK5XGZW.js';
|
|
2
|
-
import { jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
|
|
4
4
|
var STRENGTH = {
|
|
5
5
|
/** A labelled facet: readable at 11.5px, still clearly the family's colour. */
|
|
@@ -25,14 +25,17 @@ function HueChip({
|
|
|
25
25
|
{
|
|
26
26
|
"aria-label": ariaLabel,
|
|
27
27
|
className: cn(
|
|
28
|
-
|
|
28
|
+
// One line, and never wider than its row: a chip that wraps grows past
|
|
29
|
+
// its 28px and paints over its neighbours; a chip that overflows pushes
|
|
30
|
+
// the row. The label ellipsises instead.
|
|
31
|
+
"inline-flex h-7 min-w-0 max-w-full items-center gap-1.5 whitespace-nowrap rounded-full px-2.5 text-[11.5px] text-foreground",
|
|
29
32
|
!hue && "bg-muted",
|
|
30
33
|
className
|
|
31
34
|
),
|
|
32
35
|
style: hue ? { backgroundColor: hueTint(hue, tone, base) } : void 0,
|
|
33
36
|
children: [
|
|
34
37
|
icon,
|
|
35
|
-
children
|
|
38
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children })
|
|
36
39
|
]
|
|
37
40
|
}
|
|
38
41
|
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SnapRail, SnapRailDots } from './chunk-
|
|
2
|
-
import { PhotoGround } from './chunk-
|
|
1
|
+
import { SnapRail, SnapRailDots } from './chunk-5CPBSNWQ.js';
|
|
2
|
+
import { PhotoGround } from './chunk-SWD6CJ35.js';
|
|
3
3
|
import { cn } from './chunk-FEK5XGZW.js';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import { TimelineHourPuck, TIMELINE_MOBILE_GUTTER_CLASS } from './chunk-PW247TG2.js';
|
|
2
|
+
import { Separator } from './chunk-NWZGSLPU.js';
|
|
3
|
+
import { Skeleton } from './chunk-XBBEX4SF.js';
|
|
4
|
+
import { cn } from './chunk-FEK5XGZW.js';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var HEADING_CENTRE_LG = "lg:top-[30px]";
|
|
9
|
+
function TimelineHour({
|
|
10
|
+
time,
|
|
11
|
+
role = "hour",
|
|
12
|
+
isLive,
|
|
13
|
+
liveLabel,
|
|
14
|
+
countLabel,
|
|
15
|
+
note,
|
|
16
|
+
layout = "cards",
|
|
17
|
+
children,
|
|
18
|
+
overflow,
|
|
19
|
+
className
|
|
20
|
+
}) {
|
|
21
|
+
const isHero = role === "hero";
|
|
22
|
+
const isContinuation = role === "continuation";
|
|
23
|
+
const isUnscheduled = role === "unscheduled";
|
|
24
|
+
const hasStation = !isUnscheduled;
|
|
25
|
+
const isCards = layout === "cards";
|
|
26
|
+
const items = React.Children.toArray(children);
|
|
27
|
+
const overflowItems = React.Children.toArray(overflow);
|
|
28
|
+
return /* @__PURE__ */ jsxs(
|
|
29
|
+
"section",
|
|
30
|
+
{
|
|
31
|
+
"data-timeline-hour": role,
|
|
32
|
+
className: cn(
|
|
33
|
+
"relative flex flex-col pt-2.5",
|
|
34
|
+
// The phone gutter: the puck's column plus the 12px gap `HourBand` had.
|
|
35
|
+
hasStation && "pl-[70px] lg:pl-0",
|
|
36
|
+
"lg:pt-[22px]",
|
|
37
|
+
isHero ? cn(
|
|
38
|
+
// The lane. Placed by the grid, not by source order; `self-start`
|
|
39
|
+
// is load-bearing — a stretched item would be the day's full
|
|
40
|
+
// height and never stick.
|
|
41
|
+
// Longhands, not `grid-row`: a `/` inside an arbitrary value
|
|
42
|
+
// collides with the opacity-modifier parse.
|
|
43
|
+
"lg:col-start-1 lg:row-start-1 lg:[grid-row-end:span_var(--timeline-rows)] lg:self-start",
|
|
44
|
+
"lg:sticky lg:top-[var(--timeline-lane-top)] lg:pt-3.5"
|
|
45
|
+
) : "lg:col-start-3",
|
|
46
|
+
className
|
|
47
|
+
),
|
|
48
|
+
children: [
|
|
49
|
+
hasStation && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
50
|
+
/* @__PURE__ */ jsx(
|
|
51
|
+
TimelineHourPuck,
|
|
52
|
+
{
|
|
53
|
+
time,
|
|
54
|
+
isLive,
|
|
55
|
+
liveLabel,
|
|
56
|
+
className: cn(
|
|
57
|
+
"absolute left-0 top-2.5",
|
|
58
|
+
TIMELINE_MOBILE_GUTTER_CLASS,
|
|
59
|
+
// Out on the spine, centred on the heading rule.
|
|
60
|
+
"lg:left-[calc(var(--timeline-spine)*-0.5)] lg:w-0 lg:-translate-y-1/2",
|
|
61
|
+
HEADING_CENTRE_LG,
|
|
62
|
+
isContinuation && "invisible lg:visible",
|
|
63
|
+
isHero && "lg:hidden"
|
|
64
|
+
)
|
|
65
|
+
}
|
|
66
|
+
),
|
|
67
|
+
/* @__PURE__ */ jsx(
|
|
68
|
+
Separator,
|
|
69
|
+
{
|
|
70
|
+
orientation: "vertical",
|
|
71
|
+
className: cn(
|
|
72
|
+
"absolute -bottom-2.5 left-[29px] top-10 h-auto -translate-x-1/2 lg:hidden",
|
|
73
|
+
isLive && "bg-success/30"
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
)
|
|
77
|
+
] }),
|
|
78
|
+
/* @__PURE__ */ jsxs(
|
|
79
|
+
"div",
|
|
80
|
+
{
|
|
81
|
+
className: cn(
|
|
82
|
+
"items-center gap-2.5",
|
|
83
|
+
isUnscheduled ? "flex h-4" : "hidden lg:flex lg:h-4",
|
|
84
|
+
isHero && "lg:hidden"
|
|
85
|
+
),
|
|
86
|
+
children: [
|
|
87
|
+
isUnscheduled && /* @__PURE__ */ jsx("span", { className: "font-mono text-[11.5px] text-muted-foreground tabular-nums lg:text-xs", children: time }),
|
|
88
|
+
/* @__PURE__ */ jsx(Separator, { className: "flex-1" }),
|
|
89
|
+
countLabel && /* @__PURE__ */ jsx("span", { className: "text-[10.5px] text-muted-foreground/70 lg:text-[11px]", children: countLabel })
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
),
|
|
93
|
+
/* @__PURE__ */ jsx(
|
|
94
|
+
"div",
|
|
95
|
+
{
|
|
96
|
+
className: cn(
|
|
97
|
+
"flex min-w-0 flex-col",
|
|
98
|
+
isCards && "gap-4 pb-2 lg:grid lg:grid-cols-2 lg:gap-5 lg:pb-0 lg:pt-3.5 xl:grid-cols-3",
|
|
99
|
+
isCards && isHero && "lg:flex lg:pt-0",
|
|
100
|
+
isUnscheduled && isCards && "pt-3.5"
|
|
101
|
+
),
|
|
102
|
+
children: isCards ? items : items.map((child, index) => /* @__PURE__ */ jsxs("div", { children: [
|
|
103
|
+
index > 0 && /* @__PURE__ */ jsx(Separator, {}),
|
|
104
|
+
child
|
|
105
|
+
] }, index))
|
|
106
|
+
}
|
|
107
|
+
),
|
|
108
|
+
overflowItems.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 pb-2 lg:gap-0 lg:pb-0 lg:pt-2", children: overflowItems.map((child, index) => /* @__PURE__ */ jsxs("div", { children: [
|
|
109
|
+
index > 0 && /* @__PURE__ */ jsx(Separator, { className: "hidden lg:block" }),
|
|
110
|
+
child
|
|
111
|
+
] }, index)) }),
|
|
112
|
+
note && /* @__PURE__ */ jsx("p", { className: "pt-[9px] text-[11.5px] text-muted-foreground", children: note })
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
function TimelineHourSkeleton({ cardCount = 2, className }) {
|
|
118
|
+
return /* @__PURE__ */ jsxs(
|
|
119
|
+
"div",
|
|
120
|
+
{
|
|
121
|
+
"aria-hidden": "true",
|
|
122
|
+
className: cn("relative flex flex-col pl-[70px] pt-2.5 lg:col-start-3 lg:pl-0 lg:pt-[22px]", className),
|
|
123
|
+
children: [
|
|
124
|
+
/* @__PURE__ */ jsx(
|
|
125
|
+
Skeleton,
|
|
126
|
+
{
|
|
127
|
+
className: cn(
|
|
128
|
+
"absolute left-0 top-2.5 h-6 rounded-[7px]",
|
|
129
|
+
TIMELINE_MOBILE_GUTTER_CLASS,
|
|
130
|
+
"lg:left-[calc(var(--timeline-spine)*-0.5)] lg:h-[26px] lg:w-14 lg:-translate-x-1/2 lg:-translate-y-1/2",
|
|
131
|
+
HEADING_CENTRE_LG
|
|
132
|
+
)
|
|
133
|
+
}
|
|
134
|
+
),
|
|
135
|
+
/* @__PURE__ */ jsx(
|
|
136
|
+
Separator,
|
|
137
|
+
{
|
|
138
|
+
orientation: "vertical",
|
|
139
|
+
className: "absolute -bottom-2.5 left-[29px] top-10 h-auto -translate-x-1/2 lg:hidden"
|
|
140
|
+
}
|
|
141
|
+
),
|
|
142
|
+
/* @__PURE__ */ jsxs("div", { className: "hidden h-4 items-center gap-2.5 lg:flex", children: [
|
|
143
|
+
/* @__PURE__ */ jsx(Separator, { className: "flex-1" }),
|
|
144
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-12" })
|
|
145
|
+
] }),
|
|
146
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4 pb-2 lg:grid lg:grid-cols-2 lg:gap-5 lg:pb-0 lg:pt-3.5 xl:grid-cols-3", children: Array.from({ length: cardCount }, (_, index) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
147
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "aspect-[4/3] w-full rounded-xl" }),
|
|
148
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-3.5 w-4/5" }),
|
|
149
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-1/2" })
|
|
150
|
+
] }, index)) })
|
|
151
|
+
]
|
|
152
|
+
}
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export { TimelineHour, TimelineHourSkeleton };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { cn } from './chunk-FEK5XGZW.js';
|
|
2
|
+
import { Radio } from 'lucide-react';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var LIVE_PUCK_PULSE_CLASS = "bm-timeline-live-puck-pulse";
|
|
6
|
+
var TIMELINE_MOBILE_GUTTER_CLASS = "w-[58px]";
|
|
7
|
+
function TimelineHourPuck({
|
|
8
|
+
time,
|
|
9
|
+
isLive,
|
|
10
|
+
liveLabel,
|
|
11
|
+
variant = "responsive",
|
|
12
|
+
className
|
|
13
|
+
}) {
|
|
14
|
+
const chipClasses = cn(
|
|
15
|
+
"inline-flex h-6 min-w-[58px] items-center justify-center gap-1 rounded-[7px] border border-transparent px-1 text-[12px] font-medium",
|
|
16
|
+
isLive ? cn("bg-success/10 text-success", LIVE_PUCK_PULSE_CLASS) : "bg-muted text-foreground"
|
|
17
|
+
);
|
|
18
|
+
const stationClasses = cn(
|
|
19
|
+
"rounded-[7px] border bg-background px-[7px] py-[3px] text-[12.5px] font-medium",
|
|
20
|
+
isLive ? cn("border-success/40 text-success", LIVE_PUCK_PULSE_CLASS) : "border-border text-foreground"
|
|
21
|
+
);
|
|
22
|
+
const glyphClasses = "h-2.5 w-2.5 shrink-0";
|
|
23
|
+
const labelHiddenClasses = "sr-only";
|
|
24
|
+
const labelStationClasses = cn(
|
|
25
|
+
"absolute top-[calc(100%+6px)] whitespace-nowrap bg-background px-1",
|
|
26
|
+
"text-[9.5px] font-extrabold tracking-[0.08em] text-success"
|
|
27
|
+
);
|
|
28
|
+
const labelResponsiveClasses = cn(
|
|
29
|
+
"absolute -m-px h-px w-px overflow-hidden whitespace-nowrap p-0 [clip:rect(0,0,0,0)]",
|
|
30
|
+
"lg:m-0 lg:h-auto lg:w-auto lg:overflow-visible lg:px-1 lg:[clip:auto]",
|
|
31
|
+
"lg:top-[calc(100%+6px)] lg:bg-background lg:text-[9.5px] lg:font-extrabold lg:tracking-[0.08em] lg:text-success"
|
|
32
|
+
);
|
|
33
|
+
return /* @__PURE__ */ jsxs("span", { className: cn("relative flex justify-center", className), children: [
|
|
34
|
+
isLive && /* @__PURE__ */ jsx("style", { children: `
|
|
35
|
+
@keyframes ${LIVE_PUCK_PULSE_CLASS} {
|
|
36
|
+
0%, 100% { box-shadow: 0 0 0 0 color-mix(in oklch, var(--success) 40%, transparent); }
|
|
37
|
+
50% { box-shadow: 0 0 0 4px color-mix(in oklch, var(--success) 0%, transparent); }
|
|
38
|
+
}
|
|
39
|
+
.${LIVE_PUCK_PULSE_CLASS} {
|
|
40
|
+
animation: ${LIVE_PUCK_PULSE_CLASS} 2.4s ease-in-out infinite;
|
|
41
|
+
}
|
|
42
|
+
@media (prefers-reduced-motion: reduce) {
|
|
43
|
+
.${LIVE_PUCK_PULSE_CLASS} { animation: none; }
|
|
44
|
+
}
|
|
45
|
+
` }),
|
|
46
|
+
/* @__PURE__ */ jsxs(
|
|
47
|
+
"span",
|
|
48
|
+
{
|
|
49
|
+
className: cn(
|
|
50
|
+
"whitespace-nowrap font-mono tabular-nums",
|
|
51
|
+
variant === "chip" && chipClasses,
|
|
52
|
+
variant === "station" && stationClasses,
|
|
53
|
+
variant === "responsive" && cn(
|
|
54
|
+
chipClasses,
|
|
55
|
+
// The station look from `lg`: bordered, background-filled,
|
|
56
|
+
// no fixed width. Every chip utility above has an `lg:` twin.
|
|
57
|
+
"lg:h-auto lg:min-w-0 lg:gap-0 lg:border-border lg:bg-background lg:px-[7px] lg:py-[3px] lg:text-[12.5px] lg:text-foreground",
|
|
58
|
+
isLive && "lg:border-success/40 lg:bg-background lg:text-success"
|
|
59
|
+
)
|
|
60
|
+
),
|
|
61
|
+
children: [
|
|
62
|
+
isLive && variant !== "station" && /* @__PURE__ */ jsx(Radio, { className: cn(glyphClasses, variant === "responsive" && "lg:hidden"), "aria-hidden": true }),
|
|
63
|
+
time
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
),
|
|
67
|
+
isLive && !!liveLabel && /* @__PURE__ */ jsx(
|
|
68
|
+
"span",
|
|
69
|
+
{
|
|
70
|
+
className: cn(
|
|
71
|
+
variant === "chip" && labelHiddenClasses,
|
|
72
|
+
variant === "station" && labelStationClasses,
|
|
73
|
+
variant === "responsive" && labelResponsiveClasses
|
|
74
|
+
),
|
|
75
|
+
children: liveLabel
|
|
76
|
+
}
|
|
77
|
+
)
|
|
78
|
+
] });
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export { TIMELINE_MOBILE_GUTTER_CLASS, TimelineHourPuck };
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { Separator } from './chunk-NWZGSLPU.js';
|
|
2
|
+
import { Skeleton } from './chunk-XBBEX4SF.js';
|
|
3
|
+
import { cn } from './chunk-FEK5XGZW.js';
|
|
4
|
+
import { __objRest, __spreadValues } from './chunk-MMUBH76A.js';
|
|
5
|
+
import { Star, Clock, Check, MessageSquare, ChevronRight } from 'lucide-react';
|
|
6
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
function DefaultLink(_a) {
|
|
9
|
+
var _b = _a, { href } = _b, props = __objRest(_b, ["href"]);
|
|
10
|
+
return /* @__PURE__ */ jsx("a", __spreadValues({ href }, props));
|
|
11
|
+
}
|
|
12
|
+
function MenuKitchenList({
|
|
13
|
+
kitchens,
|
|
14
|
+
labels,
|
|
15
|
+
onShowMore,
|
|
16
|
+
layout = "wide",
|
|
17
|
+
linkComponent = DefaultLink,
|
|
18
|
+
className
|
|
19
|
+
}) {
|
|
20
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", className), children: [
|
|
21
|
+
/* @__PURE__ */ jsx("ol", { children: kitchens.map((kitchen, index) => /* @__PURE__ */ jsxs("li", { className: "[&:first-child>div]:pt-0", children: [
|
|
22
|
+
index > 0 && /* @__PURE__ */ jsx(Separator, {}),
|
|
23
|
+
/* @__PURE__ */ jsx(
|
|
24
|
+
KitchenRow,
|
|
25
|
+
{
|
|
26
|
+
kitchen,
|
|
27
|
+
labels,
|
|
28
|
+
layout,
|
|
29
|
+
linkComponent
|
|
30
|
+
}
|
|
31
|
+
)
|
|
32
|
+
] }, kitchen.place.slug)) }),
|
|
33
|
+
onShowMore && labels.showMore && /* @__PURE__ */ jsx(
|
|
34
|
+
"button",
|
|
35
|
+
{
|
|
36
|
+
type: "button",
|
|
37
|
+
onClick: onShowMore,
|
|
38
|
+
className: "mt-2 self-start rounded-md py-2 text-[13px] font-bold text-accent transition-colors hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring motion-reduce:transition-none",
|
|
39
|
+
children: labels.showMore
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
] });
|
|
43
|
+
}
|
|
44
|
+
function KitchenRow({
|
|
45
|
+
kitchen,
|
|
46
|
+
labels,
|
|
47
|
+
layout,
|
|
48
|
+
linkComponent: LinkComponent
|
|
49
|
+
}) {
|
|
50
|
+
const { place, dish } = kitchen;
|
|
51
|
+
const openNow = place.open_now === true;
|
|
52
|
+
const wide = layout === "wide";
|
|
53
|
+
return /* @__PURE__ */ jsxs(
|
|
54
|
+
"div",
|
|
55
|
+
{
|
|
56
|
+
className: cn(
|
|
57
|
+
"relative flex flex-wrap items-center gap-[11px] py-3 transition-colors hover:bg-muted/30 motion-reduce:transition-none lg:gap-4 lg:py-3.5",
|
|
58
|
+
wide && "lg:flex-nowrap"
|
|
59
|
+
),
|
|
60
|
+
children: [
|
|
61
|
+
/* @__PURE__ */ jsx(
|
|
62
|
+
LinkComponent,
|
|
63
|
+
{
|
|
64
|
+
href: kitchen.href,
|
|
65
|
+
"aria-label": labels.openVenue(place.name),
|
|
66
|
+
className: "absolute inset-0 z-[1] rounded-xl focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent"
|
|
67
|
+
}
|
|
68
|
+
),
|
|
69
|
+
/* @__PURE__ */ jsxs("span", { className: "relative h-[46px] w-[46px] shrink-0 overflow-hidden rounded-[11px] bg-[repeating-linear-gradient(135deg,oklch(0.78_0.018_55)_0_8px,oklch(0.84_0.012_58)_8px_16px)] lg:h-[58px] lg:w-[58px] lg:rounded-[13px]", children: [
|
|
70
|
+
place.thumbnail_url && // eslint-disable-next-line @next/next/no-img-element
|
|
71
|
+
/* @__PURE__ */ jsx(
|
|
72
|
+
"img",
|
|
73
|
+
{
|
|
74
|
+
src: place.thumbnail_url,
|
|
75
|
+
alt: "",
|
|
76
|
+
loading: "lazy",
|
|
77
|
+
decoding: "async",
|
|
78
|
+
className: "h-full w-full object-cover"
|
|
79
|
+
}
|
|
80
|
+
),
|
|
81
|
+
/* @__PURE__ */ jsx(
|
|
82
|
+
"span",
|
|
83
|
+
{
|
|
84
|
+
title: openNow ? labels.openNow : void 0,
|
|
85
|
+
className: cn(
|
|
86
|
+
"absolute right-[5px] top-[5px] h-[7px] w-[7px] rounded-full ring-2 ring-white/85",
|
|
87
|
+
openNow ? "bg-[var(--free,oklch(0.55_0.13_155))]" : "bg-[oklch(0.8_0.01_60)]"
|
|
88
|
+
)
|
|
89
|
+
}
|
|
90
|
+
)
|
|
91
|
+
] }),
|
|
92
|
+
/* @__PURE__ */ jsxs(
|
|
93
|
+
"div",
|
|
94
|
+
{
|
|
95
|
+
className: cn(
|
|
96
|
+
"flex min-w-0 flex-1 flex-col gap-0.5",
|
|
97
|
+
wide && "lg:w-[226px] lg:flex-none"
|
|
98
|
+
),
|
|
99
|
+
children: [
|
|
100
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-[14.5px] font-bold tracking-[-0.01em] lg:line-clamp-2 lg:whitespace-normal lg:text-[15.5px] lg:leading-tight", children: place.name }),
|
|
101
|
+
/* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1 truncate text-xs text-muted-foreground", children: [
|
|
102
|
+
place.rating && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
103
|
+
/* @__PURE__ */ jsx(Star, { className: "h-[11px] w-[11px] shrink-0", "aria-hidden": true }),
|
|
104
|
+
place.rating.rating,
|
|
105
|
+
kitchen.metaLabel && " \xB7 "
|
|
106
|
+
] }),
|
|
107
|
+
kitchen.metaLabel
|
|
108
|
+
] }),
|
|
109
|
+
kitchen.hoursLabel && /* @__PURE__ */ jsxs(
|
|
110
|
+
"span",
|
|
111
|
+
{
|
|
112
|
+
className: cn(
|
|
113
|
+
"mt-[3px] inline-flex h-[21px] w-max items-center gap-[5px] rounded-md px-2 text-[10.5px] font-bold",
|
|
114
|
+
openNow ? "bg-[oklch(0.96_0.02_155)] text-[var(--free,oklch(0.45_0.13_155))]" : "bg-muted text-muted-foreground"
|
|
115
|
+
),
|
|
116
|
+
children: [
|
|
117
|
+
/* @__PURE__ */ jsx(Clock, { className: "h-2.5 w-2.5 shrink-0", "aria-hidden": true }),
|
|
118
|
+
kitchen.hoursLabel
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
),
|
|
125
|
+
dish && /* DESKTOP ONLY, where it is a column of its own beside the venue.
|
|
126
|
+
On the phone it wrapped to a third line under the row — kicker, dish,
|
|
127
|
+
mention count — which turned a four-line venue row into a seven-line
|
|
128
|
+
block and, ten rows down, buried the venue names the list exists to
|
|
129
|
+
be scanned for. The dish is not what a reader is choosing here; it is
|
|
130
|
+
one tap away on the venue's own page, with room to state it.
|
|
131
|
+
|
|
132
|
+
`order-5` puts it last in the visual order without moving it in the
|
|
133
|
+
DOM, where it belongs to the venue. In the `stacked` layout it is a
|
|
134
|
+
second LINE under the venue, indented past the thumbnail. */
|
|
135
|
+
/* @__PURE__ */ jsxs(
|
|
136
|
+
"div",
|
|
137
|
+
{
|
|
138
|
+
className: cn(
|
|
139
|
+
"hidden min-w-0 basis-full pl-[57px]",
|
|
140
|
+
layout !== "phone" && "lg:block",
|
|
141
|
+
wide ? "lg:order-none lg:flex-1 lg:basis-auto lg:pl-0" : "lg:order-5 lg:pl-[74px]"
|
|
142
|
+
),
|
|
143
|
+
children: [
|
|
144
|
+
/* @__PURE__ */ jsxs(
|
|
145
|
+
"span",
|
|
146
|
+
{
|
|
147
|
+
className: cn(
|
|
148
|
+
"flex items-center gap-1.5 text-[9px] font-extrabold uppercase tracking-[0.1em]",
|
|
149
|
+
dish.matched ? "text-accent" : "text-[oklch(0.72_0.01_60)]"
|
|
150
|
+
),
|
|
151
|
+
children: [
|
|
152
|
+
dish.kicker,
|
|
153
|
+
dish.matched && dish.matchLabel && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 rounded-[5px] bg-accent-subtle px-1.5 py-px text-[10.5px] font-bold normal-case tracking-normal text-accent", children: [
|
|
154
|
+
/* @__PURE__ */ jsx(Check, { className: "h-2.5 w-2.5 shrink-0", "aria-hidden": true }),
|
|
155
|
+
dish.matchLabel
|
|
156
|
+
] })
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
),
|
|
160
|
+
dish.href ? /* @__PURE__ */ jsx(
|
|
161
|
+
LinkComponent,
|
|
162
|
+
{
|
|
163
|
+
href: dish.href,
|
|
164
|
+
"aria-label": labels.openDish(dish.name),
|
|
165
|
+
className: "relative z-[2] mt-0.5 block truncate font-serif text-[13.5px] italic underline decoration-[oklch(0.84_0.01_60)] decoration-1 underline-offset-[3px] transition-colors hover:text-accent hover:decoration-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring motion-reduce:transition-none lg:text-[15px]",
|
|
166
|
+
children: dish.name
|
|
167
|
+
}
|
|
168
|
+
) : /* @__PURE__ */ jsx("span", { className: "mt-0.5 block truncate font-serif text-[13.5px] italic lg:text-[15px]", children: dish.name }),
|
|
169
|
+
dish.meta && /* @__PURE__ */ jsxs("span", { className: "mt-[3px] flex items-center gap-1 text-[11.5px] text-muted-foreground", children: [
|
|
170
|
+
!dish.matched && /* @__PURE__ */ jsx(MessageSquare, { className: "h-2.5 w-2.5 shrink-0", "aria-hidden": true }),
|
|
171
|
+
dish.meta
|
|
172
|
+
] })
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
),
|
|
176
|
+
/* @__PURE__ */ jsxs("div", { className: cn("ml-auto flex shrink-0 items-center gap-[11px]", wide && "lg:ml-0"), children: [
|
|
177
|
+
kitchen.priceLabel && /* @__PURE__ */ jsx("span", { className: "text-base font-extrabold tabular-nums text-accent", children: kitchen.priceLabel }),
|
|
178
|
+
/* @__PURE__ */ jsx(ChevronRight, { className: "h-[15px] w-[15px] shrink-0 text-muted-foreground", "aria-hidden": true })
|
|
179
|
+
] })
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
function MenuKitchenListSkeleton({
|
|
185
|
+
rows = 10,
|
|
186
|
+
className
|
|
187
|
+
}) {
|
|
188
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col", className), "aria-hidden": true, children: Array.from({ length: rows }, (_, index) => /* @__PURE__ */ jsxs("div", { children: [
|
|
189
|
+
index > 0 && /* @__PURE__ */ jsx(Separator, {}),
|
|
190
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-[11px] py-3 lg:flex-nowrap lg:gap-4 lg:py-3.5", children: [
|
|
191
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-[46px] w-[46px] rounded-[11px] lg:h-[58px] lg:w-[58px] lg:rounded-[13px]" }),
|
|
192
|
+
/* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-1.5 lg:w-[226px] lg:flex-none", children: [
|
|
193
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-4 w-[60%]" }),
|
|
194
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-3 w-[45%]" }),
|
|
195
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-[21px] w-[120px] rounded-md" })
|
|
196
|
+
] }),
|
|
197
|
+
/* @__PURE__ */ jsxs("div", { className: "hidden min-w-0 basis-full pl-[57px] lg:order-none lg:block lg:flex-1 lg:basis-auto lg:pl-0", children: [
|
|
198
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "h-2.5 w-[90px]" }),
|
|
199
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "mt-1.5 h-4 w-[70%]" }),
|
|
200
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "mt-1.5 h-3 w-[40%]" })
|
|
201
|
+
] }),
|
|
202
|
+
/* @__PURE__ */ jsx(Skeleton, { className: "ml-auto h-5 w-[56px] lg:ml-0" })
|
|
203
|
+
] })
|
|
204
|
+
] }, index)) });
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export { MenuKitchenList, MenuKitchenListSkeleton };
|
|
@@ -2,6 +2,7 @@ import { cn } from './chunk-FEK5XGZW.js';
|
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
|
|
4
4
|
var PHOTO_GROUND = "bg-[oklch(0.21_0.012_55)]";
|
|
5
|
+
var PHOTO_GLYPH_SHADOW = "drop-shadow-[0_2px_6px_oklch(0.16_0.012_55_/_0.6)]";
|
|
5
6
|
var OVERLAY = "absolute inset-0 bg-[oklch(0.16_0.012_55_/_0.5)]";
|
|
6
7
|
function PhotoGround({
|
|
7
8
|
photos,
|
|
@@ -79,4 +80,4 @@ function PhotoGround({
|
|
|
79
80
|
] });
|
|
80
81
|
}
|
|
81
82
|
|
|
82
|
-
export { PHOTO_GROUND, PhotoGround };
|
|
83
|
+
export { PHOTO_GLYPH_SHADOW, PHOTO_GROUND, PhotoGround };
|
|
@@ -10,7 +10,14 @@ var toggleVariants = cva(
|
|
|
10
10
|
variants: {
|
|
11
11
|
variant: {
|
|
12
12
|
default: "bg-transparent",
|
|
13
|
-
outline: "border border-border bg-transparent hover:bg-accent/50 hover:text-accent-foreground data-[state=on]:border-primary"
|
|
13
|
+
outline: "border border-border bg-transparent hover:bg-accent/50 hover:text-accent-foreground data-[state=on]:border-primary",
|
|
14
|
+
/**
|
|
15
|
+
* One cell of a segmented control: a raised card on the group's
|
|
16
|
+
* muted capsule when on, quiet type when off. The group
|
|
17
|
+
* (`ToggleGroup variant="segmented"`) supplies the capsule; the cell
|
|
18
|
+
* never fills with the accent, which would read as a primary button.
|
|
19
|
+
*/
|
|
20
|
+
segmented: "h-10 w-11 rounded-full text-muted-foreground hover:bg-transparent hover:text-foreground data-[state=on]:bg-card data-[state=on]:text-foreground data-[state=on]:shadow-[var(--shadow-card)]"
|
|
14
21
|
},
|
|
15
22
|
size: {
|
|
16
23
|
default: "h-9 px-2 min-w-9",
|
|
@@ -3,10 +3,10 @@ import * as React from 'react';
|
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
4
|
|
|
5
5
|
declare const alertVariants: (props?: ({
|
|
6
|
-
variant?: "
|
|
6
|
+
variant?: "success" | "warning" | "default" | "destructive" | null | undefined;
|
|
7
7
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
8
8
|
declare const Alert: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
|
|
9
|
-
variant?: "
|
|
9
|
+
variant?: "success" | "warning" | "default" | "destructive" | null | undefined;
|
|
10
10
|
} & class_variance_authority_types.ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
|
|
11
11
|
declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
12
12
|
declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
|
|
@@ -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?: "
|
|
7
|
+
variant?: "success" | "warning" | "default" | "destructive" | "outline" | "secondary" | "glass" | "overlay" | "brown" | "onPrimary" | null | undefined;
|
|
8
8
|
live?: boolean | null | undefined;
|
|
9
9
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
10
|
interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
|
package/dist/components/badge.js
CHANGED
|
@@ -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?: "
|
|
6
|
+
variant?: "link" | "warning" | "default" | "destructive" | "outline" | "secondary" | "ghost" | "glass" | "overlay" | "ink" | "brown" | null | undefined;
|
|
7
7
|
size?: "default" | "xs" | "sm" | "lg" | "pill" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
|
|
8
8
|
fullWidth?: boolean | null | undefined;
|
|
9
9
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|