@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,6 +1,9 @@
|
|
|
1
|
-
import { MenuFamilyBlockPreview, MenuConceptPreview, MenuFamilyPreview,
|
|
2
|
-
import {
|
|
1
|
+
import { MenuFamilyBlockPreview, MenuConceptPreview, MenuFamilyPreview, MenuFilterChip, MenuIndexEntry, MenuIntentFigure, MenuItemPreview, MenuKitchenPreview, MenuLoosenOption, QaItem, MenuVenuePreview } from './menu-types.js';
|
|
2
|
+
import { DoorwayTile } from './doorway-tiles.js';
|
|
3
|
+
import { P as PlacePreview } from '../place-types-BHdeMMiG.js';
|
|
3
4
|
import 'react';
|
|
5
|
+
import 'react/jsx-runtime';
|
|
6
|
+
import '../lib/grade.js';
|
|
4
7
|
|
|
5
8
|
/**
|
|
6
9
|
* Fixtures for the menu-hub surfaces — used by their stories, and shipped so
|
|
@@ -41,9 +44,17 @@ declare const mockDrinkFamily: MenuFamilyPreview;
|
|
|
41
44
|
* venue's, never a plate's; the last one ships without, so the story shows
|
|
42
45
|
* the initial fallback beside six real tiles.
|
|
43
46
|
*/
|
|
44
|
-
declare const mockFamilyTiles:
|
|
47
|
+
declare const mockFamilyTiles: DoorwayTile[];
|
|
45
48
|
/** The closing tile: stone, so it reads as the index and not as an eighth cuisine. */
|
|
46
|
-
declare const mockFamilyTilesAll:
|
|
49
|
+
declare const mockFamilyTilesAll: DoorwayTile;
|
|
50
|
+
/**
|
|
51
|
+
* The homepage's seven occasions in the day's order, ground treatment: the
|
|
52
|
+
* mood's hue multiplied over a room. The last one ships without a photograph
|
|
53
|
+
* so the story shows the initial on the bare hue.
|
|
54
|
+
*/
|
|
55
|
+
declare const mockOccasionTiles: DoorwayTile[];
|
|
56
|
+
/** The closing tile: stone, so it reads as the index and not as an eighth mood. */
|
|
57
|
+
declare const mockOccasionTilesAll: DoorwayTile;
|
|
47
58
|
/** Formatters the stories pass. Real callers inject locale-aware ones. */
|
|
48
59
|
declare const mockFormatters: {
|
|
49
60
|
price: (value: number) => string;
|
|
@@ -94,4 +105,4 @@ declare const mockFamilyBlock: MenuFamilyBlockPreview;
|
|
|
94
105
|
declare const mockBareFamilyBlock: MenuFamilyBlockPreview;
|
|
95
106
|
declare const mockQa: QaItem[];
|
|
96
107
|
|
|
97
|
-
export { mockBareFamilyBlock, mockConcept, mockDrinkFamily, mockFamily, mockFamilyBlock, mockFamilyTiles, mockFamilyTilesAll, mockFilterChips, mockFormatters, mockGradients, mockHubLabels, mockIndexEntries, mockIntentFigures, mockItems, mockKitchens, mockLoosenOptions, mockMatchedKitchens, mockPlaces, mockQa, mockVenues };
|
|
108
|
+
export { mockBareFamilyBlock, mockConcept, mockDrinkFamily, mockFamily, mockFamilyBlock, mockFamilyTiles, mockFamilyTilesAll, mockFilterChips, mockFormatters, mockGradients, mockHubLabels, mockIndexEntries, mockIntentFigures, mockItems, mockKitchens, mockLoosenOptions, mockMatchedKitchens, mockOccasionTiles, mockOccasionTilesAll, mockPlaces, mockQa, mockVenues };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { __spreadProps, __spreadValues } from '../chunk-
|
|
1
|
+
import { __spreadProps, __spreadValues } from '../chunk-MMUBH76A.js';
|
|
2
2
|
|
|
3
3
|
// src/components/menu-mocks.ts
|
|
4
4
|
var mockGradients = {
|
|
@@ -351,6 +351,27 @@ var mockFamilyTilesAll = {
|
|
|
351
351
|
gradient: "linear-gradient(150deg, oklch(0.50 0.03 70), oklch(0.40 0.028 64))",
|
|
352
352
|
photoUrl: familyPhoto(60)
|
|
353
353
|
};
|
|
354
|
+
var occasionGradient = (l, c, h) => `linear-gradient(150deg, oklch(${l} ${c} ${h}), color-mix(in oklab, oklch(${l} ${c} ${h}) 82%, black))`;
|
|
355
|
+
var occasionPhoto = (hue) => "data:image/svg+xml;utf8," + encodeURIComponent(
|
|
356
|
+
`<svg xmlns="http://www.w3.org/2000/svg" width="640" height="320"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="hsl(${hue} 20% 88%)"/><stop offset="1" stop-color="hsl(${hue} 18% 52%)"/></linearGradient></defs><rect width="640" height="320" fill="url(#g)"/><circle cx="420" cy="120" r="70" fill="white" opacity=".6"/><rect x="60" y="200" width="220" height="80" fill="hsl(${hue} 15% 40%)" opacity=".5"/></svg>`
|
|
357
|
+
);
|
|
358
|
+
var mockOccasionTiles = [
|
|
359
|
+
{ slug: "brunch", label: "Brunch", countLabel: "314 places", href: "/menu/cuisines/breakfast-brunch", gradient: occasionGradient(0.62, 0.14, 82), photoUrl: occasionPhoto(40) },
|
|
360
|
+
{ slug: "laptop-and-coffee", label: "Laptop and coffee", countLabel: "52 places", href: "/occasions/laptop-and-coffee", gradient: occasionGradient(0.44, 0.1, 52), photoUrl: occasionPhoto(30) },
|
|
361
|
+
{ slug: "quiet", label: "Somewhere quiet", countLabel: "108 places", href: "/occasions/quiet", gradient: occasionGradient(0.38, 0.09, 255), photoUrl: occasionPhoto(210) },
|
|
362
|
+
{ slug: "something-sweet", label: "Something sweet", countLabel: "120 places", href: "/occasions/something-sweet", gradient: occasionGradient(0.5, 0.08, 335), photoUrl: occasionPhoto(330) },
|
|
363
|
+
{ slug: "with-friends", label: "With friends", countLabel: "158 places", href: "/occasions/with-friends", gradient: occasionGradient(0.6, 0.14, 358), photoUrl: occasionPhoto(10) },
|
|
364
|
+
{ slug: "date-night", label: "Date night", countLabel: "53 places", href: "/occasions/date-night", gradient: occasionGradient(0.44, 0.15, 18), photoUrl: occasionPhoto(0) },
|
|
365
|
+
{ slug: "late-night", label: "Late night", countLabel: "59 places", href: "/occasions/late-night", gradient: occasionGradient(0.34, 0.1, 300) }
|
|
366
|
+
];
|
|
367
|
+
var mockOccasionTilesAll = {
|
|
368
|
+
slug: "all",
|
|
369
|
+
label: "All occasions",
|
|
370
|
+
countLabel: "14 sets",
|
|
371
|
+
href: "/occasions",
|
|
372
|
+
gradient: "linear-gradient(150deg, oklch(0.50 0.03 70), oklch(0.40 0.028 64))",
|
|
373
|
+
photoUrl: occasionPhoto(60)
|
|
374
|
+
};
|
|
354
375
|
var mockFormatters = {
|
|
355
376
|
price: (value) => `${value} lei`,
|
|
356
377
|
number: (value) => value.toLocaleString("en-US"),
|
|
@@ -513,4 +534,4 @@ var mockQa = [
|
|
|
513
534
|
}
|
|
514
535
|
];
|
|
515
536
|
|
|
516
|
-
export { mockBareFamilyBlock, mockConcept, mockDrinkFamily, mockFamily, mockFamilyBlock, mockFamilyTiles, mockFamilyTilesAll, mockFilterChips, mockFormatters, mockGradients, mockHubLabels, mockIndexEntries, mockIntentFigures, mockItems, mockKitchens, mockLoosenOptions, mockMatchedKitchens, mockPlaces, mockQa, mockVenues };
|
|
537
|
+
export { mockBareFamilyBlock, mockConcept, mockDrinkFamily, mockFamily, mockFamilyBlock, mockFamilyTiles, mockFamilyTilesAll, mockFilterChips, mockFormatters, mockGradients, mockHubLabels, mockIndexEntries, mockIntentFigures, mockItems, mockKitchens, mockLoosenOptions, mockMatchedKitchens, mockOccasionTiles, mockOccasionTilesAll, mockPlaces, mockQa, mockVenues };
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { ComponentType, CSSProperties, ReactNode } from 'react';
|
|
2
|
-
import { MenuSizeAndPrice, PlacePreview } from '
|
|
2
|
+
import { M as MenuSizeAndPrice, P as PlacePreview } from '../place-types-BHdeMMiG.js';
|
|
3
|
+
import 'react/jsx-runtime';
|
|
4
|
+
import '../lib/grade.js';
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* Structural mirror of the openapi `Dish` / `Drink` schemas, decoupled from any
|
|
@@ -203,37 +205,6 @@ type MenuVenueSignature = {
|
|
|
203
205
|
/** The digest called this the venue's signature rather than merely frequent. */
|
|
204
206
|
isSignature?: boolean;
|
|
205
207
|
};
|
|
206
|
-
/**
|
|
207
|
-
* A family tile — a cuisine on the dishes tab, a going-out family on the
|
|
208
|
-
* drinks tab — as the hub's doorway grid draws it: a hue, a name, a venue
|
|
209
|
-
* count and one venue's photograph.
|
|
210
|
-
*
|
|
211
|
-
* `href` is required: a tile that cannot resolve to a real destination is not
|
|
212
|
-
* rendered rather than linking nowhere.
|
|
213
|
-
*/
|
|
214
|
-
type MenuFamilyTile = {
|
|
215
|
-
slug: string;
|
|
216
|
-
label: string;
|
|
217
|
-
/**
|
|
218
|
-
* The venue count, already formatted by the caller — "64", "1,204" — because
|
|
219
|
-
* thousands separators are locale-dependent and the DS owns no locale.
|
|
220
|
-
*/
|
|
221
|
-
countLabel?: string;
|
|
222
|
-
href: string;
|
|
223
|
-
/**
|
|
224
|
-
* Finished CSS gradient for the tile's ground, e.g.
|
|
225
|
-
* `linear-gradient(150deg, …)`.
|
|
226
|
-
*
|
|
227
|
-
* A gradient rather than a token name, for the same reason `<MenuField>`
|
|
228
|
-
* takes one: the hue tables are app-owned, and a component referencing
|
|
229
|
-
* `var(--h-pizza)` renders an invisible tile in any consumer that does not
|
|
230
|
-
* happen to define that variable. A missing gradient falls back to `bg-muted`
|
|
231
|
-
* — visible and obviously unstyled, rather than white text on white.
|
|
232
|
-
*/
|
|
233
|
-
gradient?: string;
|
|
234
|
-
/** Pre-resolved VENUE photograph. Venue photography is real; item photography is not. */
|
|
235
|
-
photoUrl?: string;
|
|
236
|
-
};
|
|
237
208
|
/**
|
|
238
209
|
* One figure in the intent hero — a number the reader can tap to filter by.
|
|
239
210
|
*
|
|
@@ -361,7 +332,9 @@ type MenuIndexEntry = {
|
|
|
361
332
|
gradient?: string;
|
|
362
333
|
};
|
|
363
334
|
/**
|
|
364
|
-
* A family on the cuisines index — the hub's card, opened out sideways
|
|
335
|
+
* A family on the cuisines index — the hub's card, opened out sideways — and,
|
|
336
|
+
* with `kicker` / `facts` / `badge`, a concept on the dishes index: the same
|
|
337
|
+
* card with the unit swapped, as the design draws it.
|
|
365
338
|
*
|
|
366
339
|
* Deliberately thin. The reader here is choosing a cuisine, not a venue, and
|
|
367
340
|
* every field the block does NOT carry is a decision the next page owns.
|
|
@@ -369,7 +342,21 @@ type MenuIndexEntry = {
|
|
|
369
342
|
type MenuFamilyBlockPreview = {
|
|
370
343
|
slug: string;
|
|
371
344
|
name: string;
|
|
345
|
+
/** Small caps over the name, e.g. "DESSERT CONCEPT". Composed by the caller. */
|
|
346
|
+
kicker?: string;
|
|
372
347
|
venueCount: number;
|
|
348
|
+
/**
|
|
349
|
+
* Further pre-formatted facts on the count line, after the unit and before
|
|
350
|
+
* the price band, e.g. `["50 names"]`. Each is one fact; the block draws the
|
|
351
|
+
* separators.
|
|
352
|
+
*/
|
|
353
|
+
facts?: string[];
|
|
354
|
+
/**
|
|
355
|
+
* The pill in the photo's corner, e.g. "168 mentions". When given it replaces
|
|
356
|
+
* the "+N more" overflow pill, which the concept card has no room for beside
|
|
357
|
+
* a name-chip overflow that already says it.
|
|
358
|
+
*/
|
|
359
|
+
badge?: string;
|
|
373
360
|
/** Facet chips. Labels only — the block never prints their counts. */
|
|
374
361
|
chips?: MenuFamilyChip[];
|
|
375
362
|
/** Composed price band, e.g. "22–86 lei". */
|
|
@@ -441,4 +428,4 @@ type MenuHubLabels = {
|
|
|
441
428
|
until: string;
|
|
442
429
|
};
|
|
443
430
|
|
|
444
|
-
export { type MenuConceptPreview, type MenuConceptRow, type MenuFamilyBlockPreview, type MenuFamilyChip, type MenuFamilyPreview, type
|
|
431
|
+
export { type MenuConceptPreview, type MenuConceptRow, type MenuFamilyBlockPreview, type MenuFamilyChip, type MenuFamilyPreview, type MenuFilterChip, type MenuFormatters, type MenuHubLabels, type MenuIndexEntry, type MenuIntentFigure, type MenuItemPlaceRef, type MenuItemPreview, type MenuKitchenDish, type MenuKitchenPreview, type MenuLinkComponent, type MenuLinkProps, type MenuLoosenOption, MenuSizeAndPrice, type MenuVenuePreview, type MenuVenueSignature, type QaItem };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { MotionIconProps } from './motion-icon.js';
|
|
3
|
+
import 'framer-motion';
|
|
4
|
+
import 'react';
|
|
5
|
+
|
|
6
|
+
type MotionDirection = "right" | "left";
|
|
7
|
+
declare function MotionArrow({ direction, ...props }: MotionIconProps & {
|
|
8
|
+
direction?: MotionDirection;
|
|
9
|
+
}): react_jsx_runtime.JSX.Element;
|
|
10
|
+
declare function MotionCaret({ direction, ...props }: MotionIconProps & {
|
|
11
|
+
direction?: MotionDirection;
|
|
12
|
+
}): react_jsx_runtime.JSX.Element;
|
|
13
|
+
declare function MotionX(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
14
|
+
declare function MotionCircleX(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
15
|
+
declare function MotionExternalLink(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
16
|
+
declare function MotionSend(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
17
|
+
declare function MotionNavigation(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
18
|
+
declare function MotionLocate(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
19
|
+
declare function MotionMaximize(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
20
|
+
declare function MotionPhone(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
21
|
+
declare function MotionMail(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
22
|
+
declare function MotionFlag(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
23
|
+
declare function MotionLogIn(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
24
|
+
declare function MotionLogOut(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
25
|
+
declare function MotionSettings(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
26
|
+
|
|
27
|
+
export { MotionArrow, MotionCaret, MotionCircleX, type MotionDirection, MotionExternalLink, MotionFlag, MotionLocate, MotionLogIn, MotionLogOut, MotionMail, MotionMaximize, MotionNavigation, MotionPhone, MotionSend, MotionSettings, MotionX };
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
import { beats, pivot, poses, MotionIcon, returnTransition, useSvgId } from '../chunk-L3VEMP5A.js';
|
|
2
|
+
import '../chunk-FEK5XGZW.js';
|
|
3
|
+
import { __objRest, __spreadProps, __spreadValues } from '../chunk-MMUBH76A.js';
|
|
4
|
+
import { motion } from 'framer-motion';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
function returning(play, transition) {
|
|
8
|
+
const held = {};
|
|
9
|
+
for (const key of Object.keys(play)) held[key] = play[key][0];
|
|
10
|
+
return poses(held, held, play, transition);
|
|
11
|
+
}
|
|
12
|
+
var flip = (values, direction) => direction === "right" ? values : values.map((v) => -v);
|
|
13
|
+
var ARROW = beats([0, 0.14, 0.42, 0.58, 0.82, 1], 0.6);
|
|
14
|
+
function arrowParts(direction) {
|
|
15
|
+
const tailX = direction === "right" ? 5 : 19;
|
|
16
|
+
return {
|
|
17
|
+
head: returning({ x: flip([0, -2.5, 9, 8, -1, 0], direction) }, ARROW),
|
|
18
|
+
shaft: returning({ scaleX: [1, 0.82, 1, 1.45, 0.93, 1] }, ARROW),
|
|
19
|
+
tail: pivot(tailX, 12),
|
|
20
|
+
headD: direction === "right" ? "m12 5 7 7-7 7" : "m12 19-7-7 7-7",
|
|
21
|
+
shaftD: direction === "right" ? "M5 12h14" : "M19 12H5"
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
var ARROW_RIGHT = arrowParts("right");
|
|
25
|
+
var ARROW_LEFT = arrowParts("left");
|
|
26
|
+
function MotionArrow(_a) {
|
|
27
|
+
var _b = _a, {
|
|
28
|
+
direction = "right"
|
|
29
|
+
} = _b, props = __objRest(_b, [
|
|
30
|
+
"direction"
|
|
31
|
+
]);
|
|
32
|
+
const parts = direction === "right" ? ARROW_RIGHT : ARROW_LEFT;
|
|
33
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
34
|
+
/* @__PURE__ */ jsx(motion.path, { variants: parts.shaft, style: parts.tail, d: parts.shaftD }),
|
|
35
|
+
/* @__PURE__ */ jsx(motion.path, { variants: parts.head, d: parts.headD })
|
|
36
|
+
] }));
|
|
37
|
+
}
|
|
38
|
+
var CARET = beats([0, 0.14, 0.4, 0.56, 0.8, 1], 0.56);
|
|
39
|
+
function caretParts(direction) {
|
|
40
|
+
const apexX = direction === "right" ? 15 : 9;
|
|
41
|
+
const armX = direction === "right" ? 9 : 15;
|
|
42
|
+
const upperSwing = flip([0, 8, -25, -20, 6, 0], direction);
|
|
43
|
+
return {
|
|
44
|
+
body: returning({ x: flip([0, -2, 7, 6.5, -1, 0], direction) }, CARET),
|
|
45
|
+
upper: returning({ rotate: upperSwing }, CARET),
|
|
46
|
+
lower: returning({ rotate: upperSwing.map((v) => -v) }, CARET),
|
|
47
|
+
apex: pivot(apexX, 12),
|
|
48
|
+
upperD: `M${apexX} 12 ${armX} 6`,
|
|
49
|
+
lowerD: `M${apexX} 12 ${armX} 18`
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
var CARET_RIGHT = caretParts("right");
|
|
53
|
+
var CARET_LEFT = caretParts("left");
|
|
54
|
+
function MotionCaret(_a) {
|
|
55
|
+
var _b = _a, {
|
|
56
|
+
direction = "right"
|
|
57
|
+
} = _b, props = __objRest(_b, [
|
|
58
|
+
"direction"
|
|
59
|
+
]);
|
|
60
|
+
const parts = direction === "right" ? CARET_RIGHT : CARET_LEFT;
|
|
61
|
+
return /* @__PURE__ */ jsx(MotionIcon, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsxs(motion.g, { variants: parts.body, children: [
|
|
62
|
+
/* @__PURE__ */ jsx(motion.path, { variants: parts.upper, style: parts.apex, d: parts.upperD }),
|
|
63
|
+
/* @__PURE__ */ jsx(motion.path, { variants: parts.lower, style: parts.apex, d: parts.lowerD })
|
|
64
|
+
] }) }));
|
|
65
|
+
}
|
|
66
|
+
var X_TIMES = beats([0, 0.15, 0.42, 0.56, 0.8, 1], 0.56);
|
|
67
|
+
var bladeA = returning({ rotate: [0, 7, -48, -45, 5, 0] }, X_TIMES);
|
|
68
|
+
var bladeB = returning({ rotate: [0, -7, 48, 45, -5, 0] }, X_TIMES);
|
|
69
|
+
function MotionX(props) {
|
|
70
|
+
const crossing = pivot(12, 12);
|
|
71
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
72
|
+
/* @__PURE__ */ jsx(motion.path, { variants: bladeA, style: crossing, d: "M18 6 6 18" }),
|
|
73
|
+
/* @__PURE__ */ jsx(motion.path, { variants: bladeB, style: crossing, d: "m6 6 12 12" })
|
|
74
|
+
] }));
|
|
75
|
+
}
|
|
76
|
+
var CLEAR = beats([0, 0.18, 0.4, 0.54, 0.72, 1], 0.6);
|
|
77
|
+
var clearRing = returning(
|
|
78
|
+
{ scaleY: [1, 0.66, 1.06, 1, 0.9, 1], scaleX: [1, 1.1, 1, 1, 1, 1] },
|
|
79
|
+
CLEAR
|
|
80
|
+
);
|
|
81
|
+
var clearX = returning(
|
|
82
|
+
{
|
|
83
|
+
y: [0, 0, -11, -11, 1, 0],
|
|
84
|
+
scaleY: [1, 0.66, 1, 1, 1, 1],
|
|
85
|
+
opacity: [1, 1, 1, 0, 1, 1]
|
|
86
|
+
},
|
|
87
|
+
CLEAR
|
|
88
|
+
);
|
|
89
|
+
function MotionCircleX(props) {
|
|
90
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
91
|
+
/* @__PURE__ */ jsx(motion.circle, { variants: clearRing, style: pivot(12, 22), cx: "12", cy: "12", r: "10" }),
|
|
92
|
+
/* @__PURE__ */ jsxs(motion.g, { variants: clearX, style: pivot(12, 12), children: [
|
|
93
|
+
/* @__PURE__ */ jsx("path", { d: "m15 9-6 6" }),
|
|
94
|
+
/* @__PURE__ */ jsx("path", { d: "m9 9 6 6" })
|
|
95
|
+
] })
|
|
96
|
+
] }));
|
|
97
|
+
}
|
|
98
|
+
var EXTERNAL = beats([0, 0.16, 0.4, 0.5, 0.62, 1], 0.6);
|
|
99
|
+
var leavingArrow = returning(
|
|
100
|
+
{
|
|
101
|
+
x: [0, -2, 9, 9, -5, 0],
|
|
102
|
+
y: [0, 2, -9, -9, 5, 0],
|
|
103
|
+
opacity: [1, 1, 1, 0, 0, 1]
|
|
104
|
+
},
|
|
105
|
+
EXTERNAL
|
|
106
|
+
);
|
|
107
|
+
var recoilingBox = returning({ scaleY: [1, 1, 0.9, 1.03, 1, 1] }, EXTERNAL);
|
|
108
|
+
function MotionExternalLink(props) {
|
|
109
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
110
|
+
/* @__PURE__ */ jsx(
|
|
111
|
+
motion.path,
|
|
112
|
+
{
|
|
113
|
+
variants: recoilingBox,
|
|
114
|
+
style: pivot(10.5, 21),
|
|
115
|
+
d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"
|
|
116
|
+
}
|
|
117
|
+
),
|
|
118
|
+
/* @__PURE__ */ jsxs(motion.g, { variants: leavingArrow, children: [
|
|
119
|
+
/* @__PURE__ */ jsx("path", { d: "M15 3h6v6" }),
|
|
120
|
+
/* @__PURE__ */ jsx("path", { d: "M10 14 21 3" })
|
|
121
|
+
] })
|
|
122
|
+
] }));
|
|
123
|
+
}
|
|
124
|
+
var SEND_TIMES = [0, 0.14, 0.36, 0.5, 0.72, 1];
|
|
125
|
+
var SEND = beats(SEND_TIMES, 0.62);
|
|
126
|
+
var sendArrow = {
|
|
127
|
+
rest: { y: 0, opacity: 1, transition: returnTransition },
|
|
128
|
+
active: { y: -18, opacity: 0, transition: returnTransition },
|
|
129
|
+
play: {
|
|
130
|
+
y: [0, 2.5, -18, -18, -18, -18],
|
|
131
|
+
opacity: [1, 1, 1, 0, 0, 0],
|
|
132
|
+
transition: SEND
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
var sendShaft = {
|
|
136
|
+
rest: { scaleY: 1, transition: returnTransition },
|
|
137
|
+
active: { scaleY: 1, transition: returnTransition },
|
|
138
|
+
play: { scaleY: [1, 0.85, 1.25, 1, 1, 1], transition: SEND }
|
|
139
|
+
};
|
|
140
|
+
var stopBlock = {
|
|
141
|
+
rest: { y: 6, opacity: 0, fillOpacity: 0, scaleY: 1, transition: returnTransition },
|
|
142
|
+
active: { y: 0, opacity: 1, fillOpacity: 1, scaleY: 1, transition: returnTransition },
|
|
143
|
+
play: {
|
|
144
|
+
y: [-12, -12, -12, -12, 1, 0],
|
|
145
|
+
opacity: [0, 0, 0, 1, 1, 1],
|
|
146
|
+
fillOpacity: [0, 0, 0, 0, 1, 1],
|
|
147
|
+
scaleY: [1, 1, 1, 1, 0.82, 1],
|
|
148
|
+
transition: SEND
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
function MotionSend(props) {
|
|
152
|
+
const floor = pivot(12, 19);
|
|
153
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
154
|
+
/* @__PURE__ */ jsxs(motion.g, { variants: sendArrow, children: [
|
|
155
|
+
/* @__PURE__ */ jsx("path", { d: "m5 12 7-7 7 7" }),
|
|
156
|
+
/* @__PURE__ */ jsx(motion.path, { variants: sendShaft, style: floor, d: "M12 19V5" })
|
|
157
|
+
] }),
|
|
158
|
+
/* @__PURE__ */ jsx(
|
|
159
|
+
motion.rect,
|
|
160
|
+
{
|
|
161
|
+
variants: stopBlock,
|
|
162
|
+
style: floor,
|
|
163
|
+
fill: "currentColor",
|
|
164
|
+
fillOpacity: 0,
|
|
165
|
+
opacity: 0,
|
|
166
|
+
x: "5",
|
|
167
|
+
y: "5",
|
|
168
|
+
width: "14",
|
|
169
|
+
height: "14",
|
|
170
|
+
rx: "2"
|
|
171
|
+
}
|
|
172
|
+
)
|
|
173
|
+
] }));
|
|
174
|
+
}
|
|
175
|
+
var needle = returning(
|
|
176
|
+
{ rotate: [0, 12, -38, 14, -5, 0] },
|
|
177
|
+
beats([0, 0.16, 0.44, 0.64, 0.84, 1], 0.62)
|
|
178
|
+
);
|
|
179
|
+
function MotionNavigation(props) {
|
|
180
|
+
return /* @__PURE__ */ jsx(MotionIcon, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx(motion.polygon, { variants: needle, style: pivot(12, 12), points: "3 11 22 2 13 21 11 13 3 11" }) }));
|
|
181
|
+
}
|
|
182
|
+
var LOCATE = beats([0, 0.16, 0.44, 0.6, 0.8, 1], 0.62);
|
|
183
|
+
var reticle = returning(
|
|
184
|
+
{ x: [0, 2, -7, 0.8, -0.3, 0], y: [0, -1.5, 5, -0.6, 0.2, 0] },
|
|
185
|
+
LOCATE
|
|
186
|
+
);
|
|
187
|
+
var ring = returning({ scale: [1, 1, 1, 0.9, 1.02, 1] }, LOCATE);
|
|
188
|
+
var tick = (axis, inward) => axis === "x" ? returning({ x: [0, 0, 0, inward, 0, 0] }, LOCATE) : returning({ y: [0, 0, 0, inward, 0, 0] }, LOCATE);
|
|
189
|
+
var tickLeft = tick("x", 2.5);
|
|
190
|
+
var tickRight = tick("x", -2.5);
|
|
191
|
+
var tickTop = tick("y", 2.5);
|
|
192
|
+
var tickBottom = tick("y", -2.5);
|
|
193
|
+
var lockDot = returning(
|
|
194
|
+
{ scale: [1, 1, 1, 1.35, 1, 1], fillOpacity: [0, 0, 0, 1, 1, 0] },
|
|
195
|
+
LOCATE
|
|
196
|
+
);
|
|
197
|
+
function MotionLocate(props) {
|
|
198
|
+
const centre = pivot(12, 12);
|
|
199
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
200
|
+
/* @__PURE__ */ jsxs(motion.g, { variants: reticle, children: [
|
|
201
|
+
/* @__PURE__ */ jsx(motion.line, { variants: tickLeft, x1: "2", x2: "5", y1: "12", y2: "12" }),
|
|
202
|
+
/* @__PURE__ */ jsx(motion.line, { variants: tickRight, x1: "19", x2: "22", y1: "12", y2: "12" }),
|
|
203
|
+
/* @__PURE__ */ jsx(motion.line, { variants: tickTop, x1: "12", x2: "12", y1: "2", y2: "5" }),
|
|
204
|
+
/* @__PURE__ */ jsx(motion.line, { variants: tickBottom, x1: "12", x2: "12", y1: "19", y2: "22" }),
|
|
205
|
+
/* @__PURE__ */ jsx(motion.circle, { variants: ring, style: centre, cx: "12", cy: "12", r: "7" })
|
|
206
|
+
] }),
|
|
207
|
+
/* @__PURE__ */ jsx(
|
|
208
|
+
motion.circle,
|
|
209
|
+
{
|
|
210
|
+
variants: lockDot,
|
|
211
|
+
style: centre,
|
|
212
|
+
fill: "currentColor",
|
|
213
|
+
fillOpacity: 0,
|
|
214
|
+
cx: "12",
|
|
215
|
+
cy: "12",
|
|
216
|
+
r: "3"
|
|
217
|
+
}
|
|
218
|
+
)
|
|
219
|
+
] }));
|
|
220
|
+
}
|
|
221
|
+
var MAXIMIZE = beats([0, 0.16, 0.44, 0.6, 0.82, 1], 0.6);
|
|
222
|
+
var CORNER_OFFSET = [0, -2, 7, 6, -0.8, 0];
|
|
223
|
+
var DIAGONAL_STRETCH = CORNER_OFFSET.map((d) => (9.9 + d * Math.SQRT2) / 9.9);
|
|
224
|
+
var cornerTopRight = returning(
|
|
225
|
+
{ x: CORNER_OFFSET, y: CORNER_OFFSET.map((d) => -d) },
|
|
226
|
+
MAXIMIZE
|
|
227
|
+
);
|
|
228
|
+
var cornerBottomLeft = returning(
|
|
229
|
+
{ x: CORNER_OFFSET.map((d) => -d), y: CORNER_OFFSET },
|
|
230
|
+
MAXIMIZE
|
|
231
|
+
);
|
|
232
|
+
var diagonal = returning({ scale: DIAGONAL_STRETCH }, MAXIMIZE);
|
|
233
|
+
function MotionMaximize(props) {
|
|
234
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
235
|
+
/* @__PURE__ */ jsx(motion.path, { variants: cornerTopRight, d: "M15 3h6v6" }),
|
|
236
|
+
/* @__PURE__ */ jsx(motion.path, { variants: diagonal, style: pivot(14, 10), d: "m21 3-7 7" }),
|
|
237
|
+
/* @__PURE__ */ jsx(motion.path, { variants: diagonal, style: pivot(10, 14), d: "m3 21 7-7" }),
|
|
238
|
+
/* @__PURE__ */ jsx(motion.path, { variants: cornerBottomLeft, d: "M9 21H3v-6" })
|
|
239
|
+
] }));
|
|
240
|
+
}
|
|
241
|
+
var PHONE = beats([0, 0.14, 0.42, 0.56, 0.8, 1], 0.64);
|
|
242
|
+
var handset = returning({ rotate: [0, -6, 46, 40, -5, 0] }, PHONE);
|
|
243
|
+
var cradle = returning({ scaleY: [1, 0.97, 1, 1, 0.92, 1] }, PHONE);
|
|
244
|
+
function MotionPhone(props) {
|
|
245
|
+
return /* @__PURE__ */ jsx(MotionIcon, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsx(motion.g, { variants: cradle, style: pivot(18.5, 22), children: /* @__PURE__ */ jsx(
|
|
246
|
+
motion.path,
|
|
247
|
+
{
|
|
248
|
+
variants: handset,
|
|
249
|
+
style: pivot(18.5, 18.5),
|
|
250
|
+
d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384"
|
|
251
|
+
}
|
|
252
|
+
) }) }));
|
|
253
|
+
}
|
|
254
|
+
var MAIL_TIMES = [0, 0.14, 0.42, 0.56, 0.84, 1];
|
|
255
|
+
var flap = returning({ scaleY: [1, 1.12, -1.15, -1, 1.08, 1] }, beats(MAIL_TIMES, 0.64));
|
|
256
|
+
var envelope = returning({ scaleY: [1, 1, 0.92, 1] }, beats([0, 0.84, 0.92, 1], 0.64));
|
|
257
|
+
function MotionMail(props) {
|
|
258
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
259
|
+
/* @__PURE__ */ jsx(motion.rect, { variants: envelope, style: pivot(12, 20), x: "2", y: "4", width: "20", height: "16", rx: "2" }),
|
|
260
|
+
/* @__PURE__ */ jsx(
|
|
261
|
+
motion.path,
|
|
262
|
+
{
|
|
263
|
+
variants: flap,
|
|
264
|
+
style: pivot(12, 5.5),
|
|
265
|
+
d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7"
|
|
266
|
+
}
|
|
267
|
+
)
|
|
268
|
+
] }));
|
|
269
|
+
}
|
|
270
|
+
var FLAG = beats([0, 0.18, 0.4, 0.56, 0.76, 1], 0.62);
|
|
271
|
+
var wholeFlag = returning({ y: [0, -8, 1.2, 0, 0, 0] }, FLAG);
|
|
272
|
+
var pole = returning({ scaleY: [1, 1, 0.88, 1.02, 1, 1] }, FLAG);
|
|
273
|
+
var cloth = returning({ rotate: [0, 5, -22, 12, -4, 0] }, FLAG);
|
|
274
|
+
function MotionFlag(props) {
|
|
275
|
+
return /* @__PURE__ */ jsx(MotionIcon, __spreadProps(__spreadValues({}, props), { children: /* @__PURE__ */ jsxs(motion.g, { variants: wholeFlag, children: [
|
|
276
|
+
/* @__PURE__ */ jsx(motion.path, { variants: pole, style: pivot(4, 22), d: "M4 22V4" }),
|
|
277
|
+
/* @__PURE__ */ jsx(
|
|
278
|
+
motion.path,
|
|
279
|
+
{
|
|
280
|
+
variants: cloth,
|
|
281
|
+
style: pivot(4, 4),
|
|
282
|
+
d: "M4 4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528"
|
|
283
|
+
}
|
|
284
|
+
)
|
|
285
|
+
] }) }));
|
|
286
|
+
}
|
|
287
|
+
var DOOR_REEL = beats([0, 0.16, 0.6, 0.78, 1], 0.6);
|
|
288
|
+
var reel = returning({ x: [0, -2, 17.2, 15.6, 16] }, DOOR_REEL);
|
|
289
|
+
function DoorArrow({ shaftD, headD, dx }) {
|
|
290
|
+
return /* @__PURE__ */ jsxs("g", { transform: dx ? `translate(${dx} 0)` : void 0, children: [
|
|
291
|
+
/* @__PURE__ */ jsx("path", { d: shaftD }),
|
|
292
|
+
/* @__PURE__ */ jsx("path", { d: headD })
|
|
293
|
+
] });
|
|
294
|
+
}
|
|
295
|
+
var doorKickIn = returning({ x: [0, 0, 1.5, -0.4, 0] }, beats([0, 0.5, 0.64, 0.82, 1], 0.6));
|
|
296
|
+
function MotionLogIn(props) {
|
|
297
|
+
const clipId = useSvgId("door-in");
|
|
298
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
299
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: clipId, children: /* @__PURE__ */ jsx("rect", { x: "0", y: "3", width: "17", height: "18" }) }) }),
|
|
300
|
+
/* @__PURE__ */ jsx("g", { clipPath: `url(#${clipId})`, children: /* @__PURE__ */ jsxs(motion.g, { variants: reel, children: [
|
|
301
|
+
/* @__PURE__ */ jsx(DoorArrow, { shaftD: "M15 12H3", headD: "m10 17 5-5-5-5", dx: 0 }),
|
|
302
|
+
/* @__PURE__ */ jsx(DoorArrow, { shaftD: "M15 12H3", headD: "m10 17 5-5-5-5", dx: -16 })
|
|
303
|
+
] }) }),
|
|
304
|
+
/* @__PURE__ */ jsx(motion.path, { variants: doorKickIn, d: "M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4" })
|
|
305
|
+
] }));
|
|
306
|
+
}
|
|
307
|
+
var doorKickOut = returning({ x: [0, 0, -1.5, 0.4, 0] }, beats([0, 0.3, 0.44, 0.62, 1], 0.6));
|
|
308
|
+
function MotionLogOut(props) {
|
|
309
|
+
const clipId = useSvgId("door-out");
|
|
310
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
311
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: clipId, children: /* @__PURE__ */ jsx("rect", { x: "8", y: "3", width: "16", height: "18" }) }) }),
|
|
312
|
+
/* @__PURE__ */ jsx("g", { clipPath: `url(#${clipId})`, children: /* @__PURE__ */ jsxs(motion.g, { variants: reel, children: [
|
|
313
|
+
/* @__PURE__ */ jsx(DoorArrow, { shaftD: "M21 12H9", headD: "m16 17 5-5-5-5", dx: 0 }),
|
|
314
|
+
/* @__PURE__ */ jsx(DoorArrow, { shaftD: "M21 12H9", headD: "m16 17 5-5-5-5", dx: -16 })
|
|
315
|
+
] }) }),
|
|
316
|
+
/* @__PURE__ */ jsx(motion.path, { variants: doorKickOut, d: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4" })
|
|
317
|
+
] }));
|
|
318
|
+
}
|
|
319
|
+
var gear = returning({ rotate: [0, -10, 98, 87, 90] }, beats([0, 0.16, 0.62, 0.8, 1], 0.6));
|
|
320
|
+
var hub = returning({ scale: [1, 0.8, 0.8, 1.2, 1] }, beats([0, 0.16, 0.62, 0.78, 1], 0.6));
|
|
321
|
+
function MotionSettings(props) {
|
|
322
|
+
const centre = pivot(12, 12);
|
|
323
|
+
return /* @__PURE__ */ jsxs(MotionIcon, __spreadProps(__spreadValues({}, props), { children: [
|
|
324
|
+
/* @__PURE__ */ jsx(
|
|
325
|
+
motion.path,
|
|
326
|
+
{
|
|
327
|
+
variants: gear,
|
|
328
|
+
style: centre,
|
|
329
|
+
d: "M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"
|
|
330
|
+
}
|
|
331
|
+
),
|
|
332
|
+
/* @__PURE__ */ jsx(motion.circle, { variants: hub, style: centre, cx: "12", cy: "12", r: "3" })
|
|
333
|
+
] }));
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
export { MotionArrow, MotionCaret, MotionCircleX, MotionExternalLink, MotionFlag, MotionLocate, MotionLogIn, MotionLogOut, MotionMail, MotionMaximize, MotionNavigation, MotionPhone, MotionSend, MotionSettings, MotionX };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { MotionBookmark, MotionCheck, MotionChevron, MotionCopy, MotionEye, MotionHeart, MotionPlayPause, MotionRefresh, MotionSearch, MotionShare, MotionSliders, MotionSort, MotionStar, MotionTheme } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { MotionBookmark, MotionCheck, MotionChevron, MotionCopy, MotionEye, MotionHeart, MotionPlayPause, MotionRefresh, MotionSearch, MotionShare, MotionSliders, MotionSort, MotionStar, MotionTheme } from '../chunk-4OF4T4AI.js';
|
|
2
|
+
import '../chunk-L3VEMP5A.js';
|
|
3
3
|
import '../chunk-FEK5XGZW.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-MMUBH76A.js';
|
|
@@ -23,5 +23,17 @@ declare function MotionMapPin(props: MotionIconProps): react_jsx_runtime.JSX.Ele
|
|
|
23
23
|
* still, which is what sells the contents moving.
|
|
24
24
|
*/
|
|
25
25
|
declare function MotionCalendar(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
26
|
+
declare function MotionLayoutGrid(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* The one gesture that HOLDS on the drinks side: rest is the exact lucide
|
|
29
|
+
* glyph (empty, line visible), active is the bowl filled to the line. Outline
|
|
30
|
+
* → solid mass is the largest silhouette change in the set, and at the
|
|
31
|
+
* segmented control's 16px that is still ~4.7px of rising liquid.
|
|
32
|
+
*/
|
|
33
|
+
declare function MotionWine(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
34
|
+
declare function MotionMap(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
35
|
+
declare function MotionFlame(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
36
|
+
declare function MotionCalendarClock(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
37
|
+
declare function MotionList(props: MotionIconProps): react_jsx_runtime.JSX.Element;
|
|
26
38
|
|
|
27
|
-
export { MotionCalendar, MotionHouse, MotionMapPin, MotionUtensils };
|
|
39
|
+
export { MotionCalendar, MotionCalendarClock, MotionFlame, MotionHouse, MotionLayoutGrid, MotionList, MotionMap, MotionMapPin, MotionUtensils, MotionWine };
|