@bearmenu/ui 0.8.13 → 0.8.15
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/README.md +0 -1
- package/dist/{chunk-66MAPLXS.js → chunk-2ADCZXZJ.js} +1 -1
- package/dist/{chunk-2DEIXTBN.js → chunk-2ZXIXQIU.js} +1 -1
- package/dist/{chunk-YOKHBAIH.js → chunk-4OF4T4AI.js} +12 -11
- package/dist/{chunk-MZL7CGCL.js → chunk-4XDJXMLF.js} +2 -2
- package/dist/{chunk-VAXOQS7W.js → chunk-5FCC5L5F.js} +3 -3
- package/dist/{chunk-YYGB4G4Q.js → chunk-CZK2MRS2.js} +1 -1
- package/dist/chunk-DJD3EMPK.js +126 -0
- package/dist/chunk-EZG2NELX.js +5 -0
- package/dist/{chunk-VG3PND3D.js → chunk-FMTJGO76.js} +1 -1
- package/dist/{chunk-UXWAOISG.js → chunk-FVSKGCK3.js} +2 -2
- package/dist/{chunk-2XCZJWTV.js → chunk-GNCWJWFE.js} +1 -1
- package/dist/{chunk-X3WMRKOW.js → chunk-HDR7V6IZ.js} +1 -1
- package/dist/{chunk-HSIYYA2E.js → chunk-HQU6QVAN.js} +5 -5
- package/dist/chunk-I5V446BX.js +27 -0
- package/dist/{chunk-WCTHZKU7.js → chunk-ICOU5QHT.js} +1 -1
- package/dist/{chunk-G7IFL4Z4.js → chunk-L3VEMP5A.js} +57 -9
- package/dist/chunk-LQWGZIYA.js +5 -0
- package/dist/{chunk-XNA2INVQ.js → chunk-MCOHLWRS.js} +2 -2
- package/dist/{chunk-3GWWZKX7.js → chunk-MMUBH76A.js} +21 -1
- package/dist/{chunk-ZDAHKI3A.js → chunk-MWB7S54O.js} +1 -1
- package/dist/{chunk-D5QHEHXJ.js → chunk-NMEVJT5Q.js} +1 -1
- package/dist/{chunk-3TNPSN4D.js → chunk-NSNEANOQ.js} +2 -2
- package/dist/{chunk-WSRWFA6K.js → chunk-NWZGSLPU.js} +1 -1
- package/dist/{chunk-LEAYBICI.js → chunk-OIV7B44M.js} +1 -1
- package/dist/{chunk-2CXU5WZO.js → chunk-P43B3ONY.js} +1 -1
- package/dist/{chunk-FRPPIXMY.js → chunk-PDTPO6NG.js} +1 -1
- package/dist/{chunk-6XMYEZVR.js → chunk-PX6RICS5.js} +1 -1
- package/dist/{chunk-6TEEY5YA.js → chunk-S33K4RC5.js} +1 -1
- package/dist/{chunk-3VMDCCCX.js → chunk-SC2VUTUI.js} +1 -1
- package/dist/{chunk-3NMG3KNA.js → chunk-SXQZ7DLH.js} +3 -3
- package/dist/{chunk-UDTG3RSE.js → chunk-T6S2ZBV6.js} +2 -2
- package/dist/{chunk-R47NEOSI.js → chunk-V4E333QS.js} +29 -4
- package/dist/{chunk-FKNBZF5T.js → chunk-WYTJR2YU.js} +1 -1
- package/dist/{chunk-QXHMPJ35.js → chunk-XBBEX4SF.js} +1 -1
- package/dist/chunk-XCB3F6SF.js +16 -0
- package/dist/{chunk-7BWTYWM3.js → chunk-ZLMRVBD7.js} +1 -1
- package/dist/{chunk-P7XTW2CG.js → chunk-ZLPWEHZO.js} +1 -1
- package/dist/components/accordion.js +1 -1
- package/dist/components/alert-dialog.js +3 -3
- package/dist/components/alert.js +2 -2
- package/dist/components/aspect-ratio.js +2 -2
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +2 -2
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/button-group.js +1 -1
- package/dist/components/button.d.ts +4 -0
- package/dist/components/button.js +3 -3
- package/dist/components/calendar.js +3 -3
- package/dist/components/card.js +3 -3
- package/dist/components/carousel.js +3 -3
- package/dist/components/category-deck.js +2 -2
- package/dist/components/checkbox.js +2 -2
- package/dist/components/circular-progress.js +1 -1
- package/dist/components/collapsible.js +1 -1
- package/dist/components/combobox.js +6 -6
- package/dist/components/command.js +3 -3
- package/dist/components/concept-card.js +2 -2
- package/dist/components/concept-compare-rail.js +3 -3
- package/dist/components/concept-compare.d.ts +2 -1
- package/dist/components/concept-compare.js +5 -5
- package/dist/components/concept-convergence.js +4 -4
- package/dist/components/convergence.js +3 -3
- package/dist/components/coverflow.js +1 -1
- package/dist/components/currency-input.js +2 -2
- package/dist/components/date-input.js +2 -2
- package/dist/components/day-rail-chip.js +2 -2
- package/dist/components/description-list.js +1 -1
- package/dist/components/dialog.js +2 -2
- package/dist/components/doorway-tiles.d.ts +57 -0
- package/dist/components/doorway-tiles.js +86 -0
- package/dist/components/drawer.js +1 -1
- package/dist/components/drift-rail.js +1 -1
- package/dist/components/dropdown-menu.js +1 -1
- package/dist/components/empty-state.js +4 -4
- package/dist/components/event-card.js +4 -4
- package/dist/components/event-compact-row.js +4 -4
- package/dist/components/event-day-header.js +2 -2
- package/dist/components/event-day-separator.js +3 -3
- package/dist/components/event-detail-panel.js +5 -5
- package/dist/components/event-hub-hero.js +2 -2
- package/dist/components/event-index-row.js +4 -4
- package/dist/components/event-list-row-wide.js +6 -6
- package/dist/components/event-list-row.js +5 -5
- package/dist/components/event-poster-fallback.js +1 -1
- package/dist/components/event-types.js +1 -1
- package/dist/components/events-empty-state.js +1 -1
- package/dist/components/explainer-steps.js +1 -1
- package/dist/components/facet-group.js +2 -2
- package/dist/components/featured-rail-item.js +2 -2
- package/dist/components/field.js +2 -2
- package/dist/components/filter-category-row.js +3 -3
- package/dist/components/form.js +2 -2
- package/dist/components/glass-ground.js +2 -2
- package/dist/components/grade-atom.d.ts +3 -0
- package/dist/components/grade-atom.js +4 -0
- package/dist/components/hour-band.js +4 -4
- package/dist/components/hour-group.js +4 -4
- package/dist/components/hub-surface.js +1 -1
- package/dist/components/hue-chip.js +1 -1
- package/dist/components/icon.js +1 -1
- package/dist/components/input-group.js +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input.js +2 -2
- package/dist/components/item.js +1 -1
- package/dist/components/kbd.js +1 -1
- package/dist/components/kitchen-dossier.d.ts +2 -1
- package/dist/components/kitchen-dossier.js +4 -4
- package/dist/components/label.js +2 -2
- package/dist/components/lazy-markdown.js +1 -1
- package/dist/components/link-button.js +3 -3
- package/dist/components/markdown-renderer.js +1 -1
- package/dist/components/menu-dead-end.d.ts +2 -1
- package/dist/components/menu-dead-end.js +1 -1
- package/dist/components/menu-family-block.d.ts +2 -1
- package/dist/components/menu-family-block.js +15 -9
- package/dist/components/menu-family-card.d.ts +2 -1
- package/dist/components/menu-family-card.js +1 -1
- package/dist/components/menu-field.js +1 -1
- package/dist/components/menu-filter-chips.d.ts +2 -1
- package/dist/components/menu-filter-chips.js +3 -3
- package/dist/components/menu-group-rows.d.ts +2 -1
- package/dist/components/menu-group-rows.js +2 -2
- package/dist/components/menu-hub-hero.js +1 -1
- package/dist/components/menu-index-header.d.ts +2 -1
- package/dist/components/menu-index-header.js +2 -2
- package/dist/components/menu-index-list.d.ts +2 -1
- package/dist/components/menu-index-list.js +5 -5
- package/dist/components/menu-intent-hero.d.ts +3 -2
- package/dist/components/menu-intent-hero.js +1 -1
- package/dist/components/menu-item.d.ts +2 -1
- package/dist/components/menu-item.js +4 -4
- package/dist/components/menu-kitchen-list.d.ts +2 -1
- package/dist/components/menu-kitchen-list.js +4 -4
- package/dist/components/menu-mocks.d.ts +16 -5
- package/dist/components/menu-mocks.js +23 -2
- package/dist/components/menu-types.d.ts +21 -34
- package/dist/components/motion-icon-actions.d.ts +27 -0
- package/dist/components/motion-icon-actions.js +336 -0
- package/dist/components/motion-icon-controls.js +3 -3
- package/dist/components/motion-icon-set.d.ts +13 -1
- package/dist/components/motion-icon-set.js +197 -6
- package/dist/components/motion-icon.d.ts +15 -1
- package/dist/components/motion-icon.js +2 -2
- package/dist/components/multi-select-combobox.js +8 -8
- package/dist/components/multi-select-menu.js +2 -2
- package/dist/components/native-select.js +1 -1
- package/dist/components/open-now-list.d.ts +2 -1
- package/dist/components/open-now-list.js +2 -2
- package/dist/components/pagination.js +3 -3
- package/dist/components/phone-frame.js +1 -1
- package/dist/components/photo-ground.js +1 -1
- package/dist/components/place-about-tab.d.ts +2 -1
- package/dist/components/place-about-tab.js +6 -6
- package/dist/components/place-card.d.ts +94 -12
- package/dist/components/place-card.js +203 -128
- package/dist/components/place-details-mobile.d.ts +2 -1
- package/dist/components/place-details-mobile.js +7 -7
- package/dist/components/place-schedule-week.d.ts +2 -1
- package/dist/components/place-schedule-week.js +3 -3
- package/dist/components/place-types.d.ts +3 -265
- package/dist/components/popover.js +2 -2
- package/dist/components/poster-stack.js +1 -1
- package/dist/components/poster-tape.js +1 -1
- package/dist/components/poster-wall.d.ts +22 -6
- package/dist/components/poster-wall.js +197 -12
- package/dist/components/progress.js +1 -1
- package/dist/components/qa-block.d.ts +2 -1
- package/dist/components/qa-block.js +1 -1
- package/dist/components/quiet-stretch.js +1 -1
- package/dist/components/radio-group.js +1 -1
- package/dist/components/rating.js +1 -1
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/scroll-fade.js +2 -2
- package/dist/components/search-bar.js +1 -1
- package/dist/components/searchable-select.js +6 -6
- package/dist/components/section-header.js +2 -2
- package/dist/components/segmented-nav.d.ts +24 -4
- package/dist/components/segmented-nav.js +11 -2
- package/dist/components/select.js +1 -1
- package/dist/components/selection-bar.js +1 -1
- package/dist/components/separator.js +2 -2
- package/dist/components/sheet.js +1 -1
- package/dist/components/signature-chip.js +3 -3
- package/dist/components/skeleton-card.js +3 -3
- package/dist/components/skeleton.js +2 -2
- package/dist/components/slider.js +1 -1
- package/dist/components/sliding-panels.js +3 -3
- package/dist/components/snap-rail.js +2 -2
- package/dist/components/sonner.js +1 -1
- package/dist/components/sort-option-list.js +1 -1
- package/dist/components/spinner.js +1 -1
- package/dist/components/stat-banner.js +1 -1
- package/dist/components/stepper.js +1 -1
- package/dist/components/sticky-container.js +1 -1
- package/dist/components/story.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +2 -2
- package/dist/components/tag-group.js +2 -2
- package/dist/components/tag.js +2 -2
- package/dist/components/text.js +2 -2
- package/dist/components/textarea.js +1 -1
- package/dist/components/timeline-band.js +4 -4
- package/dist/components/timeline-playhead.js +4 -4
- package/dist/components/toggle-group.js +2 -2
- package/dist/components/toggle.js +2 -2
- package/dist/components/tooltip.js +1 -1
- package/dist/components/top-comparison.d.ts +2 -1
- package/dist/components/top-comparison.js +1 -1
- package/dist/components/top-cross-link.d.ts +2 -1
- package/dist/components/top-cross-link.js +1 -1
- package/dist/components/top-ranking-entry.d.ts +2 -1
- package/dist/components/top-ranking-entry.js +6 -6
- package/dist/components/top-ranking-hero.d.ts +2 -1
- package/dist/components/top-ranking-hero.js +1 -1
- package/dist/components/top-ranking-legend.js +1 -1
- package/dist/components/top-types.d.ts +3 -1
- package/dist/components/use-mobile.js +1 -1
- package/dist/components/venue-events-block.js +5 -5
- package/dist/components/venue-grade-dimensions.d.ts +2 -1
- package/dist/components/venue-grade-dimensions.js +1 -1
- package/dist/components/venue-quotes.d.ts +2 -1
- package/dist/components/venue-quotes.js +1 -1
- package/dist/components/venue-wall.d.ts +2 -1
- package/dist/components/venue-wall.js +1 -1
- package/dist/components/weekday-theme-banner.js +1 -1
- package/dist/components/weekend-panel.js +4 -4
- package/dist/hooks/use-drag-swipe.js +1 -1
- package/dist/hooks/use-haptic.js +2 -2
- package/dist/hooks/use-media-query.js +1 -1
- package/dist/hooks/use-mobile.js +1 -1
- package/dist/hooks/use-mounted-theme.js +1 -1
- package/dist/hooks/use-sticky.js +1 -1
- package/dist/lib/card-hover.js +2 -18
- package/dist/lib/grade.d.ts +54 -0
- package/dist/lib/grade.js +2 -0
- package/dist/lib/icon-depth.d.ts +35 -0
- package/dist/lib/icon-depth.js +2 -0
- package/dist/lib/icon-registry.js +1 -1
- package/dist/lib/motion.js +2 -2
- package/dist/lib/overlay-pill.d.ts +30 -0
- package/dist/lib/overlay-pill.js +2 -0
- package/dist/lib/utils.js +1 -1
- package/dist/place-types-BHdeMMiG.d.ts +317 -0
- package/package.json +1 -1
- package/src/components/button.tsx +5 -1
- package/src/components/colour-dictionary.stories.tsx +268 -82
- package/src/components/doorway-tiles.stories.tsx +83 -0
- package/src/components/doorway-tiles.test.tsx +51 -0
- package/src/components/doorway-tiles.tsx +225 -0
- package/src/components/grade-atom.stories.tsx +81 -0
- package/src/components/grade-atom.tsx +256 -0
- package/src/components/hue-chip.stories.tsx +2 -2
- package/src/components/menu-family-block.stories.tsx +29 -0
- package/src/components/menu-family-block.test.tsx +51 -0
- package/src/components/menu-family-block.tsx +20 -4
- package/src/components/menu-intent-hero.tsx +1 -1
- package/src/components/menu-mocks.ts +39 -3
- package/src/components/menu-types.ts +17 -33
- package/src/components/motion-icon-actions.test.tsx +115 -0
- package/src/components/motion-icon-actions.tsx +580 -0
- package/src/components/motion-icon-controls.test.tsx +1 -0
- package/src/components/motion-icon-controls.tsx +18 -13
- package/src/components/motion-icon-set.stories.tsx +62 -3
- package/src/components/motion-icon-set.tsx +349 -2
- package/src/components/motion-icon.test.tsx +180 -1
- package/src/components/motion-icon.tsx +97 -8
- package/src/components/place-card.stories.tsx +66 -76
- package/src/components/place-card.test.tsx +188 -100
- package/src/components/place-card.tsx +356 -148
- package/src/components/place-types.ts +17 -4
- package/src/components/poster-wall.stories.tsx +84 -0
- package/src/components/poster-wall.test.tsx +94 -3
- package/src/components/poster-wall.tsx +257 -9
- package/src/components/segmented-nav.stories.tsx +72 -1
- package/src/components/segmented-nav.test.tsx +96 -0
- package/src/components/segmented-nav.tsx +36 -4
- package/src/globals.css +26 -0
- package/src/hooks/use-haptic.test.tsx +80 -0
- package/src/hooks/use-haptic.ts +45 -4
- package/src/lib/grade.test.ts +82 -0
- package/src/lib/grade.ts +76 -0
- package/src/lib/icon-depth.ts +35 -0
- package/src/lib/overlay-pill.ts +29 -0
- package/dist/components/haptic-button.d.ts +0 -12
- package/dist/components/haptic-button.js +0 -17
- package/dist/components/menu-family-tiles.d.ts +0 -19
- package/dist/components/menu-family-tiles.js +0 -57
- package/src/components/haptic-button.stories.tsx +0 -41
- package/src/components/haptic-button.tsx +0 -19
- package/src/components/menu-family-tiles.stories.tsx +0 -54
- package/src/components/menu-family-tiles.test.tsx +0 -30
- package/src/components/menu-family-tiles.tsx +0 -132
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { beats, pivot, MotionIcon,
|
|
1
|
+
import { beats, pivot, returnTransition, MotionIcon, useSvgId } from '../chunk-L3VEMP5A.js';
|
|
2
2
|
import '../chunk-FEK5XGZW.js';
|
|
3
|
-
import { __spreadProps, __spreadValues } from '../chunk-
|
|
4
|
-
import * as React from 'react';
|
|
3
|
+
import { __spreadProps, __spreadValues } from '../chunk-MMUBH76A.js';
|
|
5
4
|
import { motion } from 'framer-motion';
|
|
6
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
7
6
|
|
|
8
7
|
var HOUSE_TIMES = [0, 0.16, 0.44, 0.72, 1];
|
|
9
8
|
var houseRoof = {
|
|
@@ -137,7 +136,7 @@ var reel = {
|
|
|
137
136
|
}
|
|
138
137
|
};
|
|
139
138
|
function MotionCalendar(props) {
|
|
140
|
-
const clipId =
|
|
139
|
+
const clipId = useSvgId("cal-body");
|
|
141
140
|
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
142
141
|
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: clipId, children: /* @__PURE__ */ jsx("rect", { x: "3.5", y: "10.5", width: "17", height: "11", rx: "1.5" }) }) }),
|
|
143
142
|
/* @__PURE__ */ jsx("path", { d: "M8 2v4" }),
|
|
@@ -147,5 +146,197 @@ function MotionCalendar(props) {
|
|
|
147
146
|
/* @__PURE__ */ jsx("g", { clipPath: `url(#${clipId})`, children: /* @__PURE__ */ jsx(motion.g, { variants: reel, children: ROWS.map((y) => COLS.map((x) => /* @__PURE__ */ jsx("path", { d: `M${x} ${y}h.01` }, `${x}-${y}`))) }) })
|
|
148
147
|
] }));
|
|
149
148
|
}
|
|
149
|
+
var GRID_TIMES = [0, 0.14, 0.6, 0.8, 1];
|
|
150
|
+
var GRID_PITCH = 11;
|
|
151
|
+
var GRID_CHASE = 0.03;
|
|
152
|
+
var slide = (direction) => [0, -1.5, GRID_PITCH + 1.5, GRID_PITCH - 0.4, GRID_PITCH].map((v) => v * direction);
|
|
153
|
+
var chase = (order) => __spreadProps(__spreadValues({}, beats(GRID_TIMES, 0.58)), { delay: order * GRID_CHASE });
|
|
154
|
+
function tileAlongX(direction, order) {
|
|
155
|
+
return {
|
|
156
|
+
rest: { x: 0, transition: returnTransition },
|
|
157
|
+
active: { x: 0, transition: returnTransition },
|
|
158
|
+
play: { x: slide(direction), transition: chase(order) }
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
function tileAlongY(direction, order) {
|
|
162
|
+
return {
|
|
163
|
+
rest: { y: 0, transition: returnTransition },
|
|
164
|
+
active: { y: 0, transition: returnTransition },
|
|
165
|
+
play: { y: slide(direction), transition: chase(order) }
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
var tileTopLeft = tileAlongX(1, 0);
|
|
169
|
+
var tileTopRight = tileAlongY(1, 1);
|
|
170
|
+
var tileBottomRight = tileAlongX(-1, 2);
|
|
171
|
+
var tileBottomLeft = tileAlongY(-1, 3);
|
|
172
|
+
function MotionLayoutGrid(props) {
|
|
173
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
174
|
+
/* @__PURE__ */ jsx(motion.rect, { variants: tileTopLeft, width: "7", height: "7", x: "3", y: "3", rx: "1" }),
|
|
175
|
+
/* @__PURE__ */ jsx(motion.rect, { variants: tileTopRight, width: "7", height: "7", x: "14", y: "3", rx: "1" }),
|
|
176
|
+
/* @__PURE__ */ jsx(motion.rect, { variants: tileBottomRight, width: "7", height: "7", x: "14", y: "14", rx: "1" }),
|
|
177
|
+
/* @__PURE__ */ jsx(motion.rect, { variants: tileBottomLeft, width: "7", height: "7", x: "3", y: "14", rx: "1" })
|
|
178
|
+
] }));
|
|
179
|
+
}
|
|
180
|
+
var WINE_TIMES = [0, 0.16, 0.6, 0.78, 1];
|
|
181
|
+
var WINE_EMPTY = 15;
|
|
182
|
+
var WINE_LINE = 10;
|
|
183
|
+
var WINE_SLOSH = 8;
|
|
184
|
+
var liquid = {
|
|
185
|
+
rest: { attrY: WINE_EMPTY, transition: returnTransition },
|
|
186
|
+
active: { attrY: WINE_LINE, transition: returnTransition },
|
|
187
|
+
play: {
|
|
188
|
+
// Sits empty through the squat, rises past the line at the apex, drops
|
|
189
|
+
// back, settles on the line.
|
|
190
|
+
attrY: [WINE_EMPTY, WINE_EMPTY, WINE_SLOSH, WINE_LINE + 0.5, WINE_LINE],
|
|
191
|
+
transition: beats(WINE_TIMES)
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
var glass = {
|
|
195
|
+
rest: { scaleY: 1, transition: returnTransition },
|
|
196
|
+
active: { scaleY: 1, transition: returnTransition },
|
|
197
|
+
play: { scaleY: [1, 0.9, 1.03, 0.98, 1], transition: beats(WINE_TIMES) }
|
|
198
|
+
};
|
|
199
|
+
var BOWL = "M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z";
|
|
200
|
+
function MotionWine(props) {
|
|
201
|
+
const clipId = useSvgId("wine-bowl");
|
|
202
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
203
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: clipId, children: /* @__PURE__ */ jsx("path", { d: BOWL }) }) }),
|
|
204
|
+
/* @__PURE__ */ jsxs(motion.g, { variants: glass, style: pivot(12, 22), children: [
|
|
205
|
+
/* @__PURE__ */ jsx("g", { clipPath: `url(#${clipId})`, children: /* @__PURE__ */ jsx(
|
|
206
|
+
motion.rect,
|
|
207
|
+
{
|
|
208
|
+
variants: liquid,
|
|
209
|
+
fill: "currentColor",
|
|
210
|
+
stroke: "none",
|
|
211
|
+
x: "6",
|
|
212
|
+
y: WINE_EMPTY,
|
|
213
|
+
width: "12",
|
|
214
|
+
height: "12"
|
|
215
|
+
}
|
|
216
|
+
) }),
|
|
217
|
+
/* @__PURE__ */ jsx("path", { d: "M8 22h8" }),
|
|
218
|
+
/* @__PURE__ */ jsx("path", { d: "M7 10h10" }),
|
|
219
|
+
/* @__PURE__ */ jsx("path", { d: "M12 15v7" }),
|
|
220
|
+
/* @__PURE__ */ jsx("path", { d: BOWL })
|
|
221
|
+
] })
|
|
222
|
+
] }));
|
|
223
|
+
}
|
|
224
|
+
var MAP_TIMES = [0, 0.2, 0.5, 0.66, 0.84, 1];
|
|
225
|
+
var FOLD = [1, 0.2, 1.18, 0.94, 1.03, 1];
|
|
226
|
+
var panelRight = {
|
|
227
|
+
rest: { scaleX: 1, transition: returnTransition },
|
|
228
|
+
active: { scaleX: 1, transition: returnTransition },
|
|
229
|
+
play: { scaleX: FOLD, transition: beats(MAP_TIMES, 0.62) }
|
|
230
|
+
};
|
|
231
|
+
var panelLeft = {
|
|
232
|
+
rest: { scaleX: 1, transition: returnTransition },
|
|
233
|
+
active: { scaleX: 1, transition: returnTransition },
|
|
234
|
+
play: { scaleX: FOLD, transition: __spreadProps(__spreadValues({}, beats(MAP_TIMES, 0.62)), { delay: 0.06 }) }
|
|
235
|
+
};
|
|
236
|
+
function MotionMap(props) {
|
|
237
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
238
|
+
/* @__PURE__ */ jsx("path", { d: "M14.106 5.553a2 2 0 0 0 1.788 0" }),
|
|
239
|
+
/* @__PURE__ */ jsx("path", { d: "M15.894 20.554a2 2 0 0 1-1.788 0l-4.212-2.106" }),
|
|
240
|
+
/* @__PURE__ */ jsx("path", { d: "M9.894 3.447 14.106 5.553" }),
|
|
241
|
+
/* @__PURE__ */ jsxs(motion.g, { variants: panelRight, style: pivot(15, 12), children: [
|
|
242
|
+
/* @__PURE__ */ jsx("path", { d: "M15.894 5.553l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277" }),
|
|
243
|
+
/* @__PURE__ */ jsx("path", { d: "M15 5.764v15" })
|
|
244
|
+
] }),
|
|
245
|
+
/* @__PURE__ */ jsxs(motion.g, { variants: panelLeft, style: pivot(9, 12), children: [
|
|
246
|
+
/* @__PURE__ */ jsx("path", { d: "M9.894 18.448a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0" }),
|
|
247
|
+
/* @__PURE__ */ jsx("path", { d: "M9 3.236v15" })
|
|
248
|
+
] })
|
|
249
|
+
] }));
|
|
250
|
+
}
|
|
251
|
+
var FLAME_TIMES = [0, 0.16, 0.42, 0.58, 0.78, 1];
|
|
252
|
+
var flame = {
|
|
253
|
+
rest: { scaleY: 1, scaleX: 1, skewX: 0, fillOpacity: 0, transition: returnTransition },
|
|
254
|
+
active: { scaleY: 1, scaleX: 1, skewX: 0, fillOpacity: 0, transition: returnTransition },
|
|
255
|
+
play: {
|
|
256
|
+
scaleY: [1, 0.8, 1.38, 1.18, 0.96, 1],
|
|
257
|
+
scaleX: [1, 1.15, 0.82, 0.95, 1.03, 1],
|
|
258
|
+
skewX: [0, 0, -8, 7, -2, 0],
|
|
259
|
+
fillOpacity: [0, 0, 1, 1, 0.35, 0],
|
|
260
|
+
transition: beats(FLAME_TIMES)
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
function MotionFlame(props) {
|
|
264
|
+
return /* @__PURE__ */ jsx(MotionIcon, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx(
|
|
265
|
+
motion.path,
|
|
266
|
+
{
|
|
267
|
+
variants: flame,
|
|
268
|
+
style: pivot(12, 22),
|
|
269
|
+
fill: "currentColor",
|
|
270
|
+
fillOpacity: 0,
|
|
271
|
+
d: "M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4"
|
|
272
|
+
}
|
|
273
|
+
) }));
|
|
274
|
+
}
|
|
275
|
+
var CLOCK_TIMES = [0, 0.14, 0.62, 0.8, 1];
|
|
276
|
+
var minuteHand = {
|
|
277
|
+
rest: { rotate: 0, transition: returnTransition },
|
|
278
|
+
active: { rotate: 0, transition: returnTransition },
|
|
279
|
+
play: { rotate: [0, -14, 372, 360, 360], transition: beats(CLOCK_TIMES, 0.62) }
|
|
280
|
+
};
|
|
281
|
+
var elapsed = {
|
|
282
|
+
rest: { pathLength: 0, transition: returnTransition },
|
|
283
|
+
active: { pathLength: 0.34, transition: returnTransition },
|
|
284
|
+
play: { pathLength: [0, 0, 0.42, 0.31, 0.34], transition: beats(CLOCK_TIMES, 0.62) }
|
|
285
|
+
};
|
|
286
|
+
function MotionCalendarClock(props) {
|
|
287
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
288
|
+
/* @__PURE__ */ jsx("path", { d: "M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5" }),
|
|
289
|
+
/* @__PURE__ */ jsx("path", { d: "M16 2v4" }),
|
|
290
|
+
/* @__PURE__ */ jsx("path", { d: "M8 2v4" }),
|
|
291
|
+
/* @__PURE__ */ jsx("path", { d: "M3 10h5" }),
|
|
292
|
+
/* @__PURE__ */ jsx("circle", { cx: "16", cy: "16", r: "6" }),
|
|
293
|
+
/* @__PURE__ */ jsx("g", { transform: "rotate(-90 16 16.2)", children: /* @__PURE__ */ jsx(
|
|
294
|
+
motion.circle,
|
|
295
|
+
{
|
|
296
|
+
variants: elapsed,
|
|
297
|
+
cx: "16",
|
|
298
|
+
cy: "16.2",
|
|
299
|
+
r: "2",
|
|
300
|
+
strokeWidth: 4,
|
|
301
|
+
strokeLinecap: "butt",
|
|
302
|
+
pathLength: 1,
|
|
303
|
+
strokeDasharray: "0 1"
|
|
304
|
+
}
|
|
305
|
+
) }),
|
|
306
|
+
/* @__PURE__ */ jsx(motion.path, { variants: minuteHand, style: pivot(16, 16.2), d: "M16 14v2.2" }),
|
|
307
|
+
/* @__PURE__ */ jsx("path", { d: "M16 16.2l1.6 1" })
|
|
308
|
+
] }));
|
|
309
|
+
}
|
|
310
|
+
var LIST_TIMES = [0, 0.14, 0.62, 0.8, 1];
|
|
311
|
+
var mover = {
|
|
312
|
+
rest: { y: 0, x: 0, scale: 1, transition: returnTransition },
|
|
313
|
+
active: { y: 0, x: 0, scale: 1, transition: returnTransition },
|
|
314
|
+
play: {
|
|
315
|
+
y: [0, 1.5, -15.2, -13.6, -14],
|
|
316
|
+
x: [0, 0, 2.5, 0.6, 0],
|
|
317
|
+
scale: [1, 1, 1.06, 1.02, 1],
|
|
318
|
+
transition: beats(LIST_TIMES, 0.6)
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
var dropSlot = (delay) => ({
|
|
322
|
+
rest: { y: 0, transition: returnTransition },
|
|
323
|
+
active: { y: 0, transition: returnTransition },
|
|
324
|
+
play: { y: [0, 0, 7.6, 6.7, 7], transition: __spreadProps(__spreadValues({}, beats([0, 0.22, 0.62, 0.8, 1], 0.6)), { delay }) }
|
|
325
|
+
});
|
|
326
|
+
var rowFirst = dropSlot(0.07);
|
|
327
|
+
var rowSecond = dropSlot(0);
|
|
328
|
+
function ListRow({ y }) {
|
|
329
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
330
|
+
/* @__PURE__ */ jsx("path", { d: `M3 ${y}h.01` }),
|
|
331
|
+
/* @__PURE__ */ jsx("path", { d: `M8 ${y}h13` })
|
|
332
|
+
] });
|
|
333
|
+
}
|
|
334
|
+
function MotionList(props) {
|
|
335
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
336
|
+
/* @__PURE__ */ jsx(motion.g, { variants: rowFirst, children: /* @__PURE__ */ jsx(ListRow, { y: 5 }) }),
|
|
337
|
+
/* @__PURE__ */ jsx(motion.g, { variants: rowSecond, children: /* @__PURE__ */ jsx(ListRow, { y: 12 }) }),
|
|
338
|
+
/* @__PURE__ */ jsx(motion.g, { variants: mover, style: pivot(3, 19), children: /* @__PURE__ */ jsx(ListRow, { y: 19 }) })
|
|
339
|
+
] }));
|
|
340
|
+
}
|
|
150
341
|
|
|
151
|
-
export { MotionCalendar, MotionHouse, MotionMapPin, MotionUtensils };
|
|
342
|
+
export { MotionCalendar, MotionCalendarClock, MotionFlame, MotionHouse, MotionLayoutGrid, MotionList, MotionMap, MotionMapPin, MotionUtensils, MotionWine };
|
|
@@ -56,10 +56,24 @@ declare function poses(rest: PoseValues, active: PoseValues, play: Record<string
|
|
|
56
56
|
*
|
|
57
57
|
* Both effects compare against a ref rather than trusting the dependency array,
|
|
58
58
|
* so they fire once per actual change and not once per render.
|
|
59
|
+
*
|
|
60
|
+
* A gesture's last keyframe draws the same PICTURE as the held pose, but not
|
|
61
|
+
* always with the same VALUES: the grid's tiles end one slot around the
|
|
62
|
+
* board, the calendar's reel ends four rows up. Left there, the next `rest`
|
|
63
|
+
* tween would perform a second, backwards gesture on leave. So once `play`
|
|
64
|
+
* resolves the values snap — invisibly — to the pose they depict: `active`
|
|
65
|
+
* straight away if the state has arrived, else `rest` after a grace period
|
|
66
|
+
* that a late-arriving `active` cancels. Leaving while a play is in flight
|
|
67
|
+
* defers to that same snap rather than springing the parts back mid-gesture.
|
|
59
68
|
*/
|
|
60
69
|
declare function useIconGesture(active: boolean, replayToken: number): framer_motion.LegacyAnimationControls;
|
|
70
|
+
/**
|
|
71
|
+
* An id safe inside `url(#…)`: React 18's `useId` contains colons, React 19's
|
|
72
|
+
* may contain guillemets, and neither survives a fragment reference.
|
|
73
|
+
*/
|
|
74
|
+
declare function useSvgId(prefix: string): string;
|
|
61
75
|
declare function MotionIcon({ active, replayToken, className, children, }: MotionIconProps & {
|
|
62
76
|
children: React.ReactNode;
|
|
63
77
|
}): react_jsx_runtime.JSX.Element;
|
|
64
78
|
|
|
65
|
-
export { MotionIcon, type MotionIconProps, type MotionIconVariant, beats, pivot, poses, returnTransition, useIconGesture };
|
|
79
|
+
export { MotionIcon, type MotionIconProps, type MotionIconVariant, beats, pivot, poses, returnTransition, useIconGesture, useSvgId };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { MotionIcon, beats, pivot, poses, returnTransition, useIconGesture } from '../chunk-
|
|
1
|
+
export { MotionIcon, beats, pivot, poses, returnTransition, useIconGesture, useSvgId } from '../chunk-L3VEMP5A.js';
|
|
2
2
|
import '../chunk-FEK5XGZW.js';
|
|
3
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-MMUBH76A.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Popover, PopoverTrigger, PopoverContent } from '../chunk-
|
|
2
|
-
import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import { Checkbox } from '../chunk-
|
|
5
|
-
import { Button } from '../chunk-
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import { Badge } from '../chunk-
|
|
1
|
+
import { Popover, PopoverTrigger, PopoverContent } from '../chunk-2ADCZXZJ.js';
|
|
2
|
+
import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-MCOHLWRS.js';
|
|
3
|
+
import '../chunk-PDTPO6NG.js';
|
|
4
|
+
import { Checkbox } from '../chunk-NMEVJT5Q.js';
|
|
5
|
+
import { Button } from '../chunk-5FCC5L5F.js';
|
|
6
|
+
import '../chunk-V4E333QS.js';
|
|
7
|
+
import { Badge } from '../chunk-P43B3ONY.js';
|
|
8
8
|
import { cn } from '../chunk-FEK5XGZW.js';
|
|
9
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-MMUBH76A.js';
|
|
10
10
|
import * as React from 'react';
|
|
11
11
|
import { ChevronsUpDown, X } from 'lucide-react';
|
|
12
12
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Checkbox } from '../chunk-
|
|
1
|
+
import { Checkbox } from '../chunk-NMEVJT5Q.js';
|
|
2
2
|
import { cn } from '../chunk-FEK5XGZW.js';
|
|
3
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-MMUBH76A.js';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
|
6
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { cn } from '../chunk-FEK5XGZW.js';
|
|
2
|
-
import { __objRest, __spreadProps, __spreadValues } from '../chunk-
|
|
2
|
+
import { __objRest, __spreadProps, __spreadValues } from '../chunk-MMUBH76A.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { ChevronDown } from 'lucide-react';
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { MenuVenuePreview, MenuLinkComponent, MenuLinkProps } from './menu-types.js';
|
|
3
3
|
import 'react';
|
|
4
|
-
import '
|
|
4
|
+
import '../place-types-BHdeMMiG.js';
|
|
5
|
+
import '../lib/grade.js';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* OpenNowList — who is still serving, and until when.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Separator } from '../chunk-
|
|
1
|
+
import { Separator } from '../chunk-NWZGSLPU.js';
|
|
2
2
|
import { cn } from '../chunk-FEK5XGZW.js';
|
|
3
|
-
import { __objRest, __spreadValues } from '../chunk-
|
|
3
|
+
import { __objRest, __spreadValues } from '../chunk-MMUBH76A.js';
|
|
4
4
|
import { Clock, ChevronRight } from 'lucide-react';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { buttonVariants } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
import { buttonVariants } from '../chunk-5FCC5L5F.js';
|
|
2
|
+
import '../chunk-V4E333QS.js';
|
|
3
3
|
import { cn } from '../chunk-FEK5XGZW.js';
|
|
4
|
-
import { __objRest, __spreadValues, __spreadProps } from '../chunk-
|
|
4
|
+
import { __objRest, __spreadValues, __spreadProps } from '../chunk-MMUBH76A.js';
|
|
5
5
|
import { ChevronsLeftIcon, ChevronLeftIcon, ChevronRightIcon, ChevronsRightIcon, MoreHorizontalIcon } from 'lucide-react';
|
|
6
6
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
7
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { PlacePreview, PlaceAboutTabLabels, PlaceLinkKind } from '
|
|
2
|
+
import { P as PlacePreview, b as PlaceAboutTabLabels, c as PlaceLinkKind } from '../place-types-BHdeMMiG.js';
|
|
3
|
+
import '../lib/grade.js';
|
|
3
4
|
|
|
4
5
|
interface PlaceAboutTabProps {
|
|
5
6
|
place: PlacePreview;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { PlaceAboutTab } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
1
|
+
export { PlaceAboutTab } from '../chunk-HQU6QVAN.js';
|
|
2
|
+
import '../chunk-FMTJGO76.js';
|
|
3
|
+
import '../chunk-MWB7S54O.js';
|
|
4
|
+
import '../chunk-NWZGSLPU.js';
|
|
5
|
+
import '../chunk-ZLMRVBD7.js';
|
|
6
6
|
import '../chunk-FEK5XGZW.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-MMUBH76A.js';
|
|
@@ -1,17 +1,99 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import * as React$1 from 'react';
|
|
3
|
+
import { ReactNode, MouseEvent } from 'react';
|
|
4
|
+
import { P as PlacePreview, d as PlaceCardLabels } from '../place-types-BHdeMMiG.js';
|
|
5
|
+
import '../lib/grade.js';
|
|
3
6
|
|
|
4
|
-
|
|
7
|
+
/**
|
|
8
|
+
* PlaceCard — the 4:3 cover card every place rail and grid reuses.
|
|
9
|
+
*
|
|
10
|
+
* RENDERS AN ANCHOR WHENEVER `href` IS GIVEN. Pass `href` AND `onOpen`: the
|
|
11
|
+
* anchor is real for crawlers, middle-click and "open in new tab", while a
|
|
12
|
+
* plain left-click is intercepted to open the in-page drawer. Without `href`
|
|
13
|
+
* the root is a `role="button"` (Enter / Space open too).
|
|
14
|
+
*
|
|
15
|
+
* Like `event-card.tsx`, this takes a DS-owned view model, injected labels and
|
|
16
|
+
* injected framework pieces — no app schema, no app hooks, no i18n. The link
|
|
17
|
+
* and the image are both injectable: a plain `<a>` / `<img>` by default, and
|
|
18
|
+
* `next/link` / `next/image` in a Next app, so the consumer keeps its srcset,
|
|
19
|
+
* its priority preload and its image loader on the card that is its LCP.
|
|
20
|
+
*/
|
|
21
|
+
type PlaceCardLinkProps = {
|
|
22
|
+
href: string;
|
|
23
|
+
className?: string;
|
|
24
|
+
children: ReactNode;
|
|
25
|
+
onClick?: (mouseEvent: MouseEvent<HTMLAnchorElement>) => void;
|
|
26
|
+
"aria-label"?: string;
|
|
27
|
+
};
|
|
28
|
+
type PlaceCardImageProps = {
|
|
29
|
+
src: string;
|
|
30
|
+
alt: string;
|
|
31
|
+
/** Responsive `sizes` hint; the default `<img>` ignores it. */
|
|
32
|
+
sizes: string;
|
|
33
|
+
/** The LCP candidate — preload / `loading="eager"`. */
|
|
34
|
+
priority: boolean;
|
|
35
|
+
/** Positions the image to fill the 4:3 box (`absolute inset-0 h-full w-full object-cover` + hover motion). */
|
|
36
|
+
className: string;
|
|
37
|
+
onError: () => void;
|
|
38
|
+
};
|
|
39
|
+
type PlaceCardProps = {
|
|
5
40
|
place: PlacePreview;
|
|
6
41
|
labels: PlaceCardLabels;
|
|
7
|
-
/**
|
|
8
|
-
locale?: string;
|
|
9
|
-
/** Optional click handler. When omitted the card renders as a non-interactive div. */
|
|
10
|
-
onClick?: (place: PlacePreview) => void;
|
|
11
|
-
className?: string;
|
|
12
|
-
/** Forwarded to the thumbnail's `loading` attribute (`"eager"` when true). */
|
|
42
|
+
/** Marks this as the LCP candidate — forwarded to `imageComponent`. */
|
|
13
43
|
priority?: boolean;
|
|
14
|
-
|
|
15
|
-
|
|
44
|
+
/**
|
|
45
|
+
* Responsive image `sizes` hint. Defaults to a viewport-width formula for
|
|
46
|
+
* grid layouts; rail callers (220px-wide carousels) should pass `"220px"` so
|
|
47
|
+
* the browser doesn't download a viewport-width variant for a tiny card.
|
|
48
|
+
*/
|
|
49
|
+
imageSizes?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Real detail-page URL. When set the card root renders as a crawlable
|
|
52
|
+
* anchor; a plain left-click is still intercepted to call `onOpen`, while
|
|
53
|
+
* modified / middle-clicks navigate. When omitted the root is a
|
|
54
|
+
* `role="button"`.
|
|
55
|
+
*/
|
|
56
|
+
href?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Defaults to a plain `<a>`. Pass a ref-forwarding `next/link` adapter in a
|
|
59
|
+
* Next app. MUST be module-scoped: the root is `motion.create(linkComponent)`
|
|
60
|
+
* keyed on its identity, so an inline component remounts the card (and
|
|
61
|
+
* re-requests its cover) on every render.
|
|
62
|
+
*/
|
|
63
|
+
linkComponent?: React.ComponentType<PlaceCardLinkProps>;
|
|
64
|
+
/** Defaults to a plain `<img>`. Pass a `next/image` adapter in a Next app. Module-scoped, like `linkComponent`. */
|
|
65
|
+
imageComponent?: React.ComponentType<PlaceCardImageProps>;
|
|
66
|
+
/** Opens the in-page drawer / sheet. A left-click on the anchor is prevented in favour of this. */
|
|
67
|
+
onOpen?: (place: PlacePreview) => void;
|
|
68
|
+
/**
|
|
69
|
+
* Optional non-interactive context slot rendered below the place's own
|
|
70
|
+
* info rows, e.g. concept page: "Served as X / 45 RON / 300g". MUST be
|
|
71
|
+
* display-only — no buttons or links — since the card itself is the click
|
|
72
|
+
* target.
|
|
73
|
+
*/
|
|
74
|
+
footer?: ReactNode;
|
|
75
|
+
/**
|
|
76
|
+
* Rendered over the photo's top-left corner as a SIBLING of the interactive
|
|
77
|
+
* root, not a child — so it MAY be a button or link (e.g. a trending marker
|
|
78
|
+
* that opens a popover) without nesting interactives inside the card's
|
|
79
|
+
* anchor / `role="button"`. It lifts with the card via the shared
|
|
80
|
+
* `group/card` wrapper. The caller decides when it renders (fe gates its
|
|
81
|
+
* trending badge on the API's `trending` flag).
|
|
82
|
+
*/
|
|
83
|
+
photoOverlay?: ReactNode;
|
|
84
|
+
className?: string;
|
|
85
|
+
};
|
|
86
|
+
declare const PlaceCard: React$1.NamedExoticComponent<PlaceCardProps>;
|
|
87
|
+
type PlaceCardSkeletonProps = {
|
|
88
|
+
/** Matches `PlaceCardProps["footer"]` — the caller's placeholder for its own footer, under the same divider. */
|
|
89
|
+
footer?: ReactNode;
|
|
90
|
+
className?: string;
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* Mirrors `<PlaceCard>`'s geometry so nothing shifts when data lands: the 4:3
|
|
94
|
+
* cover, the title row with its right-hand metric chip, the cuisine · price
|
|
95
|
+
* line and the location line.
|
|
96
|
+
*/
|
|
97
|
+
declare function PlaceCardSkeleton({ footer, className }: PlaceCardSkeletonProps): react_jsx_runtime.JSX.Element;
|
|
16
98
|
|
|
17
|
-
export { PlaceCard, type PlaceCardProps };
|
|
99
|
+
export { PlaceCard, type PlaceCardImageProps, type PlaceCardLinkProps, type PlaceCardProps, PlaceCardSkeleton, type PlaceCardSkeletonProps };
|