@bearmenu/ui 0.8.12 → 0.8.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/dist/{chunk-66MAPLXS.js → chunk-2ADCZXZJ.js} +1 -1
  2. package/dist/{chunk-2DEIXTBN.js → chunk-2ZXIXQIU.js} +1 -1
  3. package/dist/{chunk-YOKHBAIH.js → chunk-4OF4T4AI.js} +12 -11
  4. package/dist/{chunk-MZL7CGCL.js → chunk-4XDJXMLF.js} +2 -2
  5. package/dist/{chunk-YYGB4G4Q.js → chunk-CZK2MRS2.js} +1 -1
  6. package/dist/chunk-DJD3EMPK.js +126 -0
  7. package/dist/chunk-EZG2NELX.js +5 -0
  8. package/dist/{chunk-VAXOQS7W.js → chunk-F76NCVVR.js} +1 -1
  9. package/dist/{chunk-VG3PND3D.js → chunk-FMTJGO76.js} +1 -1
  10. package/dist/{chunk-UXWAOISG.js → chunk-FVSKGCK3.js} +2 -2
  11. package/dist/{chunk-2XCZJWTV.js → chunk-GNCWJWFE.js} +1 -1
  12. package/dist/{chunk-X3WMRKOW.js → chunk-HDR7V6IZ.js} +1 -1
  13. package/dist/{chunk-HSIYYA2E.js → chunk-HQU6QVAN.js} +5 -5
  14. package/dist/chunk-I5V446BX.js +27 -0
  15. package/dist/{chunk-WCTHZKU7.js → chunk-ICOU5QHT.js} +1 -1
  16. package/dist/{chunk-G7IFL4Z4.js → chunk-L3VEMP5A.js} +57 -9
  17. package/dist/chunk-LQWGZIYA.js +5 -0
  18. package/dist/{chunk-XNA2INVQ.js → chunk-MCOHLWRS.js} +2 -2
  19. package/dist/{chunk-3GWWZKX7.js → chunk-MMUBH76A.js} +21 -1
  20. package/dist/{chunk-ZDAHKI3A.js → chunk-MWB7S54O.js} +1 -1
  21. package/dist/{chunk-D5QHEHXJ.js → chunk-NMEVJT5Q.js} +1 -1
  22. package/dist/{chunk-3TNPSN4D.js → chunk-NSNEANOQ.js} +2 -2
  23. package/dist/{chunk-WSRWFA6K.js → chunk-NWZGSLPU.js} +1 -1
  24. package/dist/{chunk-LEAYBICI.js → chunk-OIV7B44M.js} +1 -1
  25. package/dist/{chunk-2CXU5WZO.js → chunk-P43B3ONY.js} +1 -1
  26. package/dist/{chunk-FRPPIXMY.js → chunk-PDTPO6NG.js} +1 -1
  27. package/dist/{chunk-6XMYEZVR.js → chunk-PX6RICS5.js} +1 -1
  28. package/dist/{chunk-6TEEY5YA.js → chunk-S33K4RC5.js} +1 -1
  29. package/dist/{chunk-3VMDCCCX.js → chunk-SC2VUTUI.js} +1 -1
  30. package/dist/{chunk-24RFI4RQ.js → chunk-SXQZ7DLH.js} +4 -4
  31. package/dist/{chunk-UDTG3RSE.js → chunk-T6S2ZBV6.js} +2 -2
  32. package/dist/{chunk-DTXNDLSE.js → chunk-WYTJR2YU.js} +16 -1
  33. package/dist/{chunk-QXHMPJ35.js → chunk-XBBEX4SF.js} +1 -1
  34. package/dist/chunk-XCB3F6SF.js +16 -0
  35. package/dist/{chunk-7BWTYWM3.js → chunk-ZLMRVBD7.js} +1 -1
  36. package/dist/{chunk-7A42J73Q.js → chunk-ZLPWEHZO.js} +1 -1
  37. package/dist/components/accordion.js +1 -1
  38. package/dist/components/alert-dialog.js +2 -2
  39. package/dist/components/alert.d.ts +2 -2
  40. package/dist/components/alert.js +2 -2
  41. package/dist/components/aspect-ratio.js +2 -2
  42. package/dist/components/avatar.js +1 -1
  43. package/dist/components/badge.d.ts +1 -1
  44. package/dist/components/badge.js +2 -2
  45. package/dist/components/breadcrumb.js +1 -1
  46. package/dist/components/button-group.js +1 -1
  47. package/dist/components/button.d.ts +1 -1
  48. package/dist/components/button.js +2 -2
  49. package/dist/components/calendar.js +2 -2
  50. package/dist/components/card.d.ts +2 -2
  51. package/dist/components/card.js +3 -3
  52. package/dist/components/carousel.js +2 -2
  53. package/dist/components/category-deck.js +2 -2
  54. package/dist/components/checkbox.js +2 -2
  55. package/dist/components/circular-progress.js +1 -1
  56. package/dist/components/collapsible.js +1 -1
  57. package/dist/components/combobox.js +5 -5
  58. package/dist/components/command.d.ts +15 -15
  59. package/dist/components/command.js +3 -3
  60. package/dist/components/concept-card.js +2 -2
  61. package/dist/components/concept-compare-rail.js +3 -3
  62. package/dist/components/concept-compare.d.ts +2 -1
  63. package/dist/components/concept-compare.js +5 -5
  64. package/dist/components/concept-convergence.js +4 -4
  65. package/dist/components/convergence.js +3 -3
  66. package/dist/components/coverflow.js +1 -1
  67. package/dist/components/currency-input.js +2 -2
  68. package/dist/components/date-input.d.ts +1 -1
  69. package/dist/components/date-input.js +2 -2
  70. package/dist/components/day-rail-chip.js +2 -2
  71. package/dist/components/description-list.js +1 -1
  72. package/dist/components/dialog.js +2 -2
  73. package/dist/components/doorway-tiles.d.ts +57 -0
  74. package/dist/components/doorway-tiles.js +86 -0
  75. package/dist/components/drawer.js +1 -1
  76. package/dist/components/drift-rail.js +1 -1
  77. package/dist/components/dropdown-menu.js +1 -1
  78. package/dist/components/empty-state.js +3 -3
  79. package/dist/components/event-card.js +4 -4
  80. package/dist/components/event-compact-row.js +4 -4
  81. package/dist/components/event-day-header.js +2 -2
  82. package/dist/components/event-day-separator.js +3 -3
  83. package/dist/components/event-detail-panel.js +4 -4
  84. package/dist/components/event-hub-hero.js +2 -2
  85. package/dist/components/event-index-row.js +4 -4
  86. package/dist/components/event-list-row-wide.js +5 -5
  87. package/dist/components/event-list-row.js +5 -5
  88. package/dist/components/event-poster-fallback.js +1 -1
  89. package/dist/components/event-types.js +1 -1
  90. package/dist/components/events-empty-state.js +1 -1
  91. package/dist/components/explainer-steps.js +1 -1
  92. package/dist/components/facet-group.js +2 -2
  93. package/dist/components/featured-rail-item.js +2 -2
  94. package/dist/components/field.js +2 -2
  95. package/dist/components/filter-category-row.js +3 -3
  96. package/dist/components/form.js +2 -2
  97. package/dist/components/glass-ground.js +2 -2
  98. package/dist/components/grade-atom.d.ts +3 -0
  99. package/dist/components/grade-atom.js +4 -0
  100. package/dist/components/haptic-button.js +2 -2
  101. package/dist/components/hour-band.js +4 -4
  102. package/dist/components/hour-group.js +4 -4
  103. package/dist/components/hub-surface.js +1 -1
  104. package/dist/components/hue-chip.js +1 -1
  105. package/dist/components/icon.js +1 -1
  106. package/dist/components/input-group.js +1 -1
  107. package/dist/components/input-otp.js +1 -1
  108. package/dist/components/input.js +2 -2
  109. package/dist/components/item.d.ts +2 -2
  110. package/dist/components/item.js +1 -1
  111. package/dist/components/kbd.js +1 -1
  112. package/dist/components/kitchen-dossier.d.ts +2 -1
  113. package/dist/components/kitchen-dossier.js +3 -3
  114. package/dist/components/label.js +2 -2
  115. package/dist/components/lazy-markdown.js +1 -1
  116. package/dist/components/link-button.js +2 -2
  117. package/dist/components/markdown-renderer.js +1 -1
  118. package/dist/components/menu-dead-end.d.ts +2 -1
  119. package/dist/components/menu-dead-end.js +1 -1
  120. package/dist/components/menu-family-block.d.ts +2 -1
  121. package/dist/components/menu-family-block.js +14 -8
  122. package/dist/components/menu-family-card.d.ts +2 -1
  123. package/dist/components/menu-family-card.js +1 -1
  124. package/dist/components/menu-field.js +1 -1
  125. package/dist/components/menu-filter-chips.d.ts +2 -1
  126. package/dist/components/menu-filter-chips.js +3 -3
  127. package/dist/components/menu-group-rows.d.ts +2 -1
  128. package/dist/components/menu-group-rows.js +2 -2
  129. package/dist/components/menu-hub-hero.js +1 -1
  130. package/dist/components/menu-index-header.d.ts +2 -1
  131. package/dist/components/menu-index-header.js +2 -2
  132. package/dist/components/menu-index-list.d.ts +9 -8
  133. package/dist/components/menu-index-list.js +4 -4
  134. package/dist/components/menu-intent-hero.d.ts +3 -2
  135. package/dist/components/menu-intent-hero.js +1 -1
  136. package/dist/components/menu-item.d.ts +2 -1
  137. package/dist/components/menu-item.js +4 -4
  138. package/dist/components/menu-kitchen-list.d.ts +2 -1
  139. package/dist/components/menu-kitchen-list.js +4 -4
  140. package/dist/components/menu-mocks.d.ts +16 -5
  141. package/dist/components/menu-mocks.js +23 -2
  142. package/dist/components/menu-types.d.ts +21 -34
  143. package/dist/components/motion-icon-actions.d.ts +27 -0
  144. package/dist/components/motion-icon-actions.js +336 -0
  145. package/dist/components/motion-icon-controls.js +3 -3
  146. package/dist/components/motion-icon-set.d.ts +13 -1
  147. package/dist/components/motion-icon-set.js +197 -6
  148. package/dist/components/motion-icon.d.ts +15 -1
  149. package/dist/components/motion-icon.js +2 -2
  150. package/dist/components/multi-select-combobox.js +7 -7
  151. package/dist/components/multi-select-menu.js +2 -2
  152. package/dist/components/native-select.js +1 -1
  153. package/dist/components/open-now-list.d.ts +2 -1
  154. package/dist/components/open-now-list.js +2 -2
  155. package/dist/components/pagination.js +2 -2
  156. package/dist/components/phone-frame.js +1 -1
  157. package/dist/components/photo-ground.js +1 -1
  158. package/dist/components/place-about-tab.d.ts +2 -1
  159. package/dist/components/place-about-tab.js +6 -6
  160. package/dist/components/place-card.d.ts +94 -12
  161. package/dist/components/place-card.js +203 -128
  162. package/dist/components/place-details-mobile.d.ts +2 -1
  163. package/dist/components/place-details-mobile.js +7 -7
  164. package/dist/components/place-schedule-week.d.ts +2 -1
  165. package/dist/components/place-schedule-week.js +3 -3
  166. package/dist/components/place-types.d.ts +3 -265
  167. package/dist/components/popover.js +2 -2
  168. package/dist/components/poster-stack.js +1 -1
  169. package/dist/components/poster-tape.js +1 -1
  170. package/dist/components/poster-wall.d.ts +22 -6
  171. package/dist/components/poster-wall.js +197 -12
  172. package/dist/components/progress.js +1 -1
  173. package/dist/components/qa-block.d.ts +2 -1
  174. package/dist/components/qa-block.js +1 -1
  175. package/dist/components/quiet-stretch.js +1 -1
  176. package/dist/components/radio-group.js +1 -1
  177. package/dist/components/rating.js +1 -1
  178. package/dist/components/scroll-area.js +1 -1
  179. package/dist/components/scroll-fade.js +2 -2
  180. package/dist/components/search-bar.js +1 -1
  181. package/dist/components/searchable-select.js +5 -5
  182. package/dist/components/section-header.js +2 -2
  183. package/dist/components/segmented-nav.d.ts +24 -4
  184. package/dist/components/segmented-nav.js +11 -2
  185. package/dist/components/select.js +1 -1
  186. package/dist/components/selection-bar.js +1 -1
  187. package/dist/components/separator.js +2 -2
  188. package/dist/components/sheet.js +1 -1
  189. package/dist/components/signature-chip.js +3 -3
  190. package/dist/components/skeleton-card.js +3 -3
  191. package/dist/components/skeleton.js +2 -2
  192. package/dist/components/slider.js +1 -1
  193. package/dist/components/sliding-panels.js +2 -2
  194. package/dist/components/snap-rail.d.ts +0 -5
  195. package/dist/components/snap-rail.js +2 -2
  196. package/dist/components/sonner.js +1 -1
  197. package/dist/components/sort-option-list.js +1 -1
  198. package/dist/components/spinner.d.ts +2 -2
  199. package/dist/components/spinner.js +1 -1
  200. package/dist/components/stat-banner.js +1 -1
  201. package/dist/components/stepper.js +1 -1
  202. package/dist/components/sticky-container.js +1 -1
  203. package/dist/components/story.js +1 -1
  204. package/dist/components/switch.js +1 -1
  205. package/dist/components/table.js +1 -1
  206. package/dist/components/tabs.js +2 -2
  207. package/dist/components/tag-group.js +2 -2
  208. package/dist/components/tag.d.ts +2 -2
  209. package/dist/components/tag.js +2 -2
  210. package/dist/components/text.d.ts +3 -3
  211. package/dist/components/text.js +2 -2
  212. package/dist/components/textarea.js +1 -1
  213. package/dist/components/timeline-band.js +4 -4
  214. package/dist/components/timeline-playhead.js +4 -4
  215. package/dist/components/toggle-group.js +2 -2
  216. package/dist/components/toggle.js +2 -2
  217. package/dist/components/tooltip.js +1 -1
  218. package/dist/components/top-comparison.d.ts +2 -1
  219. package/dist/components/top-comparison.js +1 -1
  220. package/dist/components/top-cross-link.d.ts +2 -1
  221. package/dist/components/top-cross-link.js +1 -1
  222. package/dist/components/top-ranking-entry.d.ts +2 -1
  223. package/dist/components/top-ranking-entry.js +6 -6
  224. package/dist/components/top-ranking-hero.d.ts +2 -1
  225. package/dist/components/top-ranking-hero.js +1 -1
  226. package/dist/components/top-ranking-legend.js +1 -1
  227. package/dist/components/top-types.d.ts +3 -1
  228. package/dist/components/use-mobile.js +1 -1
  229. package/dist/components/venue-events-block.js +5 -5
  230. package/dist/components/venue-grade-dimensions.d.ts +2 -1
  231. package/dist/components/venue-grade-dimensions.js +1 -1
  232. package/dist/components/venue-quotes.d.ts +2 -1
  233. package/dist/components/venue-quotes.js +1 -1
  234. package/dist/components/venue-wall.d.ts +2 -1
  235. package/dist/components/venue-wall.js +1 -1
  236. package/dist/components/weekday-theme-banner.js +1 -1
  237. package/dist/components/weekend-panel.js +4 -4
  238. package/dist/hooks/use-drag-swipe.js +1 -1
  239. package/dist/hooks/use-haptic.js +1 -1
  240. package/dist/hooks/use-media-query.js +1 -1
  241. package/dist/hooks/use-mobile.js +1 -1
  242. package/dist/hooks/use-mounted-theme.js +1 -1
  243. package/dist/hooks/use-sticky.js +1 -1
  244. package/dist/lib/card-hover.js +2 -18
  245. package/dist/lib/grade.d.ts +54 -0
  246. package/dist/lib/grade.js +2 -0
  247. package/dist/lib/icon-depth.d.ts +35 -0
  248. package/dist/lib/icon-depth.js +2 -0
  249. package/dist/lib/icon-registry.js +1 -1
  250. package/dist/lib/motion.js +2 -2
  251. package/dist/lib/overlay-pill.d.ts +30 -0
  252. package/dist/lib/overlay-pill.js +2 -0
  253. package/dist/lib/utils.js +1 -1
  254. package/dist/place-types-BHdeMMiG.d.ts +317 -0
  255. package/package.json +1 -1
  256. package/src/components/colour-dictionary.stories.tsx +268 -82
  257. package/src/components/doorway-tiles.stories.tsx +83 -0
  258. package/src/components/doorway-tiles.test.tsx +51 -0
  259. package/src/components/doorway-tiles.tsx +225 -0
  260. package/src/components/grade-atom.stories.tsx +81 -0
  261. package/src/components/grade-atom.tsx +256 -0
  262. package/src/components/hue-chip.stories.tsx +2 -2
  263. package/src/components/menu-family-block.stories.tsx +29 -0
  264. package/src/components/menu-family-block.test.tsx +51 -0
  265. package/src/components/menu-family-block.tsx +20 -4
  266. package/src/components/menu-index-list.tsx +7 -7
  267. package/src/components/menu-intent-hero.tsx +1 -1
  268. package/src/components/menu-kitchen-list.tsx +4 -1
  269. package/src/components/menu-mocks.ts +39 -3
  270. package/src/components/menu-types.ts +17 -33
  271. package/src/components/motion-icon-actions.test.tsx +115 -0
  272. package/src/components/motion-icon-actions.tsx +580 -0
  273. package/src/components/motion-icon-controls.test.tsx +1 -0
  274. package/src/components/motion-icon-controls.tsx +18 -13
  275. package/src/components/motion-icon-set.stories.tsx +62 -3
  276. package/src/components/motion-icon-set.tsx +349 -2
  277. package/src/components/motion-icon.test.tsx +180 -1
  278. package/src/components/motion-icon.tsx +97 -8
  279. package/src/components/place-card.stories.tsx +66 -76
  280. package/src/components/place-card.test.tsx +188 -100
  281. package/src/components/place-card.tsx +356 -148
  282. package/src/components/place-types.ts +17 -4
  283. package/src/components/poster-wall.stories.tsx +84 -0
  284. package/src/components/poster-wall.test.tsx +94 -3
  285. package/src/components/poster-wall.tsx +257 -9
  286. package/src/components/segmented-nav.stories.tsx +72 -1
  287. package/src/components/segmented-nav.test.tsx +96 -0
  288. package/src/components/segmented-nav.tsx +36 -4
  289. package/src/components/snap-rail.tsx +19 -0
  290. package/src/globals.css +26 -0
  291. package/src/lib/grade.test.ts +82 -0
  292. package/src/lib/grade.ts +76 -0
  293. package/src/lib/icon-depth.ts +35 -0
  294. package/src/lib/overlay-pill.ts +29 -0
  295. package/dist/components/menu-family-tiles.d.ts +0 -19
  296. package/dist/components/menu-family-tiles.js +0 -57
  297. package/src/components/menu-family-tiles.stories.tsx +0 -54
  298. package/src/components/menu-family-tiles.test.tsx +0 -30
  299. package/src/components/menu-family-tiles.tsx +0 -132
@@ -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-YOKHBAIH.js';
2
- import '../chunk-G7IFL4Z4.js';
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-3GWWZKX7.js';
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 };
@@ -1,9 +1,8 @@
1
- import { beats, pivot, MotionIcon, returnTransition } from '../chunk-G7IFL4Z4.js';
1
+ import { beats, pivot, returnTransition, MotionIcon, useSvgId } from '../chunk-L3VEMP5A.js';
2
2
  import '../chunk-FEK5XGZW.js';
3
- import { __spreadProps, __spreadValues } from '../chunk-3GWWZKX7.js';
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 = `cal-body-${React.useId().replace(/:/g, "")}`;
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-G7IFL4Z4.js';
1
+ export { MotionIcon, beats, pivot, poses, returnTransition, useIconGesture, useSvgId } from '../chunk-L3VEMP5A.js';
2
2
  import '../chunk-FEK5XGZW.js';
3
- import '../chunk-3GWWZKX7.js';
3
+ import '../chunk-MMUBH76A.js';
@@ -1,12 +1,12 @@
1
- import { Popover, PopoverTrigger, PopoverContent } from '../chunk-66MAPLXS.js';
2
- import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-XNA2INVQ.js';
3
- import '../chunk-FRPPIXMY.js';
4
- import { Checkbox } from '../chunk-D5QHEHXJ.js';
5
- import { Button } from '../chunk-VAXOQS7W.js';
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-F76NCVVR.js';
6
6
  import '../chunk-R47NEOSI.js';
7
- import { Badge } from '../chunk-2CXU5WZO.js';
7
+ import { Badge } from '../chunk-P43B3ONY.js';
8
8
  import { cn } from '../chunk-FEK5XGZW.js';
9
- import '../chunk-3GWWZKX7.js';
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-D5QHEHXJ.js';
1
+ import { Checkbox } from '../chunk-NMEVJT5Q.js';
2
2
  import { cn } from '../chunk-FEK5XGZW.js';
3
- import '../chunk-3GWWZKX7.js';
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-3GWWZKX7.js';
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 './place-types.js';
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.