@bearmenu/ui 0.7.1 → 0.8.2

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 (123) hide show
  1. package/dist/{chunk-4JOV7FXW.js → chunk-2DEIXTBN.js} +1 -1
  2. package/dist/{chunk-UUJVXN2O.js → chunk-66MAPLXS.js} +3 -1
  3. package/dist/{chunk-Y5D5LP4A.js → chunk-7BWTYWM3.js} +14 -3
  4. package/dist/{chunk-ZFNOCP6W.js → chunk-H3BV4VAG.js} +15 -1
  5. package/dist/{chunk-TL4YU2O5.js → chunk-UKBNQO6Q.js} +2 -2
  6. package/dist/{chunk-UX6SWAKH.js → chunk-UZ3PCIE5.js} +119 -28
  7. package/dist/{chunk-YLNYXPIH.js → chunk-VBA45GLP.js} +1 -1
  8. package/dist/{chunk-A5ONAJCE.js → chunk-VG3PND3D.js} +1 -1
  9. package/dist/{chunk-ZBBUKXM5.js → chunk-X3WMRKOW.js} +1 -1
  10. package/dist/{chunk-HCM6LKM5.js → chunk-XNA2INVQ.js} +2 -2
  11. package/dist/{chunk-AV777R4G.js → chunk-YYGB4G4Q.js} +1 -1
  12. package/dist/components/accordion.js +1 -1
  13. package/dist/components/alert-dialog.js +1 -1
  14. package/dist/components/alert.js +1 -1
  15. package/dist/components/avatar.d.ts +10 -1
  16. package/dist/components/avatar.js +41 -14
  17. package/dist/components/badge.d.ts +11 -2
  18. package/dist/components/badge.js +1 -1
  19. package/dist/components/breadcrumb.js +1 -1
  20. package/dist/components/button.d.ts +1 -1
  21. package/dist/components/button.js +1 -1
  22. package/dist/components/calendar.js +3 -3
  23. package/dist/components/card.js +1 -1
  24. package/dist/components/carousel.js +1 -1
  25. package/dist/components/circular-progress.js +1 -1
  26. package/dist/components/combobox.js +3 -3
  27. package/dist/components/command.js +1 -1
  28. package/dist/components/currency-input.js +2 -2
  29. package/dist/components/date-input.js +1 -1
  30. package/dist/components/description-list.js +1 -1
  31. package/dist/components/drawer.js +5 -1
  32. package/dist/components/dropdown-menu.js +1 -1
  33. package/dist/components/empty-state.js +2 -2
  34. package/dist/components/field.js +2 -2
  35. package/dist/components/filter-category-row.js +2 -2
  36. package/dist/components/form.js +1 -1
  37. package/dist/components/haptic-button.js +1 -1
  38. package/dist/components/input-group.js +1 -1
  39. package/dist/components/input.js +1 -1
  40. package/dist/components/item.js +1 -1
  41. package/dist/components/kbd.js +1 -1
  42. package/dist/components/label.js +1 -1
  43. package/dist/components/link-button.js +1 -1
  44. package/dist/components/multi-select-combobox.js +4 -4
  45. package/dist/components/pagination.js +1 -1
  46. package/dist/components/place-about-tab.d.ts +17 -1
  47. package/dist/components/place-about-tab.js +4 -4
  48. package/dist/components/place-card.js +2 -2
  49. package/dist/components/place-details-mobile.js +7 -7
  50. package/dist/components/place-schedule-week.js +2 -2
  51. package/dist/components/popover.js +1 -1
  52. package/dist/components/searchable-select.js +3 -3
  53. package/dist/components/select.js +2 -2
  54. package/dist/components/selection-bar.js +1 -1
  55. package/dist/components/sheet.d.ts +23 -0
  56. package/dist/components/sheet.js +51 -14
  57. package/dist/components/sliding-panels.js +5 -1
  58. package/dist/components/sonner.js +2 -2
  59. package/dist/components/stepper.js +4 -1
  60. package/dist/components/table.js +1 -1
  61. package/dist/components/tabs.js +1 -1
  62. package/dist/components/tag-group.js +1 -1
  63. package/dist/components/tag.js +1 -1
  64. package/dist/components/text.d.ts +18 -0
  65. package/dist/components/text.js +1 -1
  66. package/dist/components/toggle-group.js +1 -1
  67. package/dist/components/toggle.js +1 -1
  68. package/dist/lib/card-hover.d.ts +75 -0
  69. package/dist/lib/card-hover.js +18 -0
  70. package/package.json +1 -1
  71. package/src/components/accordion.tsx +1 -1
  72. package/src/components/avatar.stories.tsx +59 -26
  73. package/src/components/avatar.test.tsx +129 -0
  74. package/src/components/avatar.tsx +93 -37
  75. package/src/components/badge.tsx +15 -3
  76. package/src/components/breadcrumb.tsx +1 -1
  77. package/src/components/button.tsx +16 -1
  78. package/src/components/calendar.tsx +2 -2
  79. package/src/components/circular-progress.tsx +1 -1
  80. package/src/components/command.tsx +2 -2
  81. package/src/components/currency-input.tsx +1 -1
  82. package/src/components/description-list.tsx +1 -1
  83. package/src/components/drawer.tsx +5 -1
  84. package/src/components/dropdown-menu.tsx +1 -1
  85. package/src/components/field.tsx +1 -1
  86. package/src/components/input-group.tsx +1 -1
  87. package/src/components/input.tsx +1 -1
  88. package/src/components/item.tsx +1 -1
  89. package/src/components/kbd.tsx +1 -1
  90. package/src/components/label.tsx +1 -1
  91. package/src/components/place-about-tab.tsx +131 -18
  92. package/src/components/place-card.tsx +1 -1
  93. package/src/components/place-details-mobile.tsx +2 -2
  94. package/src/components/popover.tsx +9 -1
  95. package/src/components/select.tsx +2 -2
  96. package/src/components/selection-bar.tsx +1 -1
  97. package/src/components/sheet.tsx +72 -12
  98. package/src/components/sliding-panels.stories.tsx +70 -0
  99. package/src/components/sliding-panels.test.tsx +116 -0
  100. package/src/components/sliding-panels.tsx +14 -0
  101. package/src/components/sonner.tsx +2 -2
  102. package/src/components/stepper.tsx +4 -1
  103. package/src/components/table.tsx +1 -1
  104. package/src/components/tabs.tsx +1 -1
  105. package/src/components/tag-group.tsx +1 -1
  106. package/src/components/tag.tsx +1 -1
  107. package/src/components/text.test.tsx +37 -3
  108. package/src/components/text.tsx +32 -3
  109. package/src/components/toggle.tsx +1 -1
  110. package/src/globals.css +53 -11
  111. package/src/lib/card-hover.ts +87 -0
  112. package/dist/chunk-EBAMCZDW.js +0 -112
  113. package/dist/chunk-VQNDZVI7.js +0 -106
  114. package/dist/components/toast.d.ts +0 -18
  115. package/dist/components/toast.js +0 -3
  116. package/dist/components/toaster.d.ts +0 -5
  117. package/dist/components/toaster.js +0 -25
  118. package/dist/components/use-toast.d.ts +0 -42
  119. package/dist/components/use-toast.js +0 -2
  120. package/src/components/toast.stories.tsx +0 -63
  121. package/src/components/toast.tsx +0 -130
  122. package/src/components/toaster.tsx +0 -31
  123. package/src/components/use-toast.ts +0 -180
@@ -1,4 +1,4 @@
1
- import { textVariants } from '../chunk-Y5D5LP4A.js';
1
+ import { textVariants } from '../chunk-7BWTYWM3.js';
2
2
  import { cn } from '../chunk-FEK5XGZW.js';
3
3
  import { __objRest, __spreadValues } from '../chunk-3GWWZKX7.js';
4
4
  import * as React from 'react';
@@ -1,4 +1,4 @@
1
- import { Button } from '../chunk-ZFNOCP6W.js';
1
+ import { Button } from '../chunk-H3BV4VAG.js';
2
2
  import '../chunk-R47NEOSI.js';
3
3
  import { cn } from '../chunk-FEK5XGZW.js';
4
4
  import { __objRest, __spreadProps, __spreadValues } from '../chunk-3GWWZKX7.js';
@@ -91,7 +91,7 @@ var CircularProgress = React.forwardRef(
91
91
  ]
92
92
  }
93
93
  ),
94
- showLabel && !indeterminate && /* @__PURE__ */ jsxs("span", { className: "absolute text-xs font-medium tabular-nums text-foreground", children: [
94
+ showLabel && !indeterminate && /* @__PURE__ */ jsxs("span", { className: "absolute text-xs font-semibold tabular-nums text-foreground", children: [
95
95
  Math.round(percent),
96
96
  "%"
97
97
  ] })
@@ -1,7 +1,7 @@
1
- import { Popover, PopoverTrigger, PopoverContent } from '../chunk-UUJVXN2O.js';
2
- import { Command, CommandInput, CommandList, CommandLoading, CommandEmpty, CommandGroup, CommandItem } from '../chunk-HCM6LKM5.js';
1
+ import { Popover, PopoverTrigger, PopoverContent } from '../chunk-66MAPLXS.js';
2
+ import { Command, CommandInput, CommandList, CommandLoading, CommandEmpty, CommandGroup, CommandItem } from '../chunk-XNA2INVQ.js';
3
3
  import '../chunk-FRPPIXMY.js';
4
- import { Button } from '../chunk-ZFNOCP6W.js';
4
+ import { Button } from '../chunk-H3BV4VAG.js';
5
5
  import '../chunk-R47NEOSI.js';
6
6
  import { cn } from '../chunk-FEK5XGZW.js';
7
7
  import '../chunk-3GWWZKX7.js';
@@ -1,4 +1,4 @@
1
- export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut } from '../chunk-HCM6LKM5.js';
1
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandLoading, CommandSeparator, CommandShortcut } from '../chunk-XNA2INVQ.js';
2
2
  import '../chunk-FRPPIXMY.js';
3
3
  import '../chunk-FEK5XGZW.js';
4
4
  import '../chunk-3GWWZKX7.js';
@@ -1,4 +1,4 @@
1
- import { Input } from '../chunk-AV777R4G.js';
1
+ import { Input } from '../chunk-YYGB4G4Q.js';
2
2
  import { cn } from '../chunk-FEK5XGZW.js';
3
3
  import { __objRest, __spreadValues } from '../chunk-3GWWZKX7.js';
4
4
  import * as React from 'react';
@@ -109,7 +109,7 @@ var CurrencyInput = React.forwardRef(
109
109
  "span",
110
110
  {
111
111
  "aria-hidden": true,
112
- className: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-sm font-medium text-muted-foreground",
112
+ className: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-sm font-semibold text-muted-foreground",
113
113
  children: currency
114
114
  }
115
115
  ),
@@ -1,4 +1,4 @@
1
- import { Input } from '../chunk-AV777R4G.js';
1
+ import { Input } from '../chunk-YYGB4G4Q.js';
2
2
  import { cn } from '../chunk-FEK5XGZW.js';
3
3
  import { __objRest, __spreadValues } from '../chunk-3GWWZKX7.js';
4
4
  import * as React from 'react';
@@ -43,7 +43,7 @@ var DescriptionTerm = React.forwardRef(
43
43
  __spreadValues({
44
44
  ref,
45
45
  "data-slot": "description-term",
46
- className: cn("text-xs font-medium uppercase tracking-wide text-muted-foreground", className)
46
+ className: cn("text-xs font-semibold uppercase tracking-wide text-muted-foreground", className)
47
47
  }, props)
48
48
  );
49
49
  }
@@ -53,7 +53,11 @@ var DrawerContent = React.forwardRef((_a, ref) => {
53
53
  className: cn(
54
54
  "fixed z-[1000] flex border-border bg-card shadow-2xl",
55
55
  positionClasses,
56
- isVertical ? "max-h-[90vh]" : "",
56
+ // The single height cap for every vertical drawer. Consumers should
57
+ // NOT restate it: six app call sites carried an identical
58
+ // `!max-h-[90vh]`, so this default governed nothing and changing it
59
+ // here would have reached none of them.
60
+ isVertical ? "max-h-[85vh]" : "",
57
61
  variant === "floating" && "m-3 rounded-2xl border",
58
62
  className
59
63
  )
@@ -147,7 +147,7 @@ function DropdownMenuLabel(_a) {
147
147
  __spreadValues({
148
148
  "data-slot": "dropdown-menu-label",
149
149
  "data-inset": inset,
150
- className: cn("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className)
150
+ className: cn("px-2 py-1.5 text-sm font-semibold data-[inset]:pl-8", className)
151
151
  }, props)
152
152
  );
153
153
  }
@@ -1,6 +1,6 @@
1
- import { Button } from '../chunk-ZFNOCP6W.js';
1
+ import { Button } from '../chunk-H3BV4VAG.js';
2
2
  import '../chunk-R47NEOSI.js';
3
- import { Text } from '../chunk-Y5D5LP4A.js';
3
+ import { Text } from '../chunk-7BWTYWM3.js';
4
4
  import { cn } from '../chunk-FEK5XGZW.js';
5
5
  import { __objRest, __spreadProps, __spreadValues } from '../chunk-3GWWZKX7.js';
6
6
  import * as React from 'react';
@@ -1,4 +1,4 @@
1
- import { Label } from '../chunk-4JOV7FXW.js';
1
+ import { Label } from '../chunk-2DEIXTBN.js';
2
2
  import { cn } from '../chunk-FEK5XGZW.js';
3
3
  import { __objRest, __spreadProps, __spreadValues } from '../chunk-3GWWZKX7.js';
4
4
  import * as React from 'react';
@@ -120,7 +120,7 @@ var FieldLegend = React.forwardRef(
120
120
  __spreadValues({
121
121
  ref,
122
122
  "data-slot": "field-legend",
123
- className: cn("px-1 text-sm font-medium text-foreground", className)
123
+ className: cn("px-1 text-sm font-semibold text-foreground", className)
124
124
  }, props)
125
125
  );
126
126
  }
@@ -1,5 +1,5 @@
1
- import { Text } from '../chunk-Y5D5LP4A.js';
2
- import { Badge } from '../chunk-TL4YU2O5.js';
1
+ import { Text } from '../chunk-7BWTYWM3.js';
2
+ import { Badge } from '../chunk-UKBNQO6Q.js';
3
3
  import '../chunk-FEK5XGZW.js';
4
4
  import '../chunk-3GWWZKX7.js';
5
5
  import { ChevronRight } from 'lucide-react';
@@ -1,4 +1,4 @@
1
- import { Label } from '../chunk-4JOV7FXW.js';
1
+ import { Label } from '../chunk-2DEIXTBN.js';
2
2
  import { cn } from '../chunk-FEK5XGZW.js';
3
3
  import { __objRest, __spreadValues, __spreadProps } from '../chunk-3GWWZKX7.js';
4
4
  import * as React from 'react';
@@ -1,4 +1,4 @@
1
- import { Button } from '../chunk-ZFNOCP6W.js';
1
+ import { Button } from '../chunk-H3BV4VAG.js';
2
2
  import { useHaptic } from '../chunk-R47NEOSI.js';
3
3
  import '../chunk-FEK5XGZW.js';
4
4
  import { __objRest, __spreadProps, __spreadValues } from '../chunk-3GWWZKX7.js';
@@ -85,7 +85,7 @@ var InputGroupButton = React.forwardRef(
85
85
  type,
86
86
  "data-slot": "input-group-button",
87
87
  className: cn(
88
- "inline-flex h-7 min-w-7 cursor-pointer items-center justify-center gap-1 rounded-md px-2 text-xs font-medium text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&:has(svg:only-child)]:w-7 [&:has(svg:only-child)]:px-0 [&_svg]:size-4",
88
+ "inline-flex h-7 min-w-7 cursor-pointer items-center justify-center gap-1 rounded-md px-2 text-xs font-semibold text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&:has(svg:only-child)]:w-7 [&:has(svg:only-child)]:px-0 [&_svg]:size-4",
89
89
  className
90
90
  )
91
91
  }, props)
@@ -1,3 +1,3 @@
1
- export { Input, inputVariants } from '../chunk-AV777R4G.js';
1
+ export { Input, inputVariants } from '../chunk-YYGB4G4Q.js';
2
2
  import '../chunk-FEK5XGZW.js';
3
3
  import '../chunk-3GWWZKX7.js';
@@ -82,7 +82,7 @@ var ItemTitle = React.forwardRef(
82
82
  __spreadValues({
83
83
  ref,
84
84
  "data-slot": "item-title",
85
- className: cn("truncate text-sm font-medium text-foreground", className)
85
+ className: cn("truncate text-sm font-semibold text-foreground", className)
86
86
  }, props)
87
87
  );
88
88
  }
@@ -5,7 +5,7 @@ import { cva } from 'class-variance-authority';
5
5
  import { jsx } from 'react/jsx-runtime';
6
6
 
7
7
  var kbdVariants = cva(
8
- "inline-flex select-none items-center justify-center gap-1 rounded-md border border-border bg-muted font-mono font-medium text-muted-foreground shadow-[0_1px_0_0_var(--border)]",
8
+ "inline-flex select-none items-center justify-center gap-1 rounded-md border border-border bg-muted font-mono font-semibold text-muted-foreground shadow-[0_1px_0_0_var(--border)]",
9
9
  {
10
10
  variants: {
11
11
  size: {
@@ -1,3 +1,3 @@
1
- export { Label } from '../chunk-4JOV7FXW.js';
1
+ export { Label } from '../chunk-2DEIXTBN.js';
2
2
  import '../chunk-FEK5XGZW.js';
3
3
  import '../chunk-3GWWZKX7.js';
@@ -1,4 +1,4 @@
1
- import { Button } from '../chunk-ZFNOCP6W.js';
1
+ import { Button } from '../chunk-H3BV4VAG.js';
2
2
  import '../chunk-R47NEOSI.js';
3
3
  import '../chunk-FEK5XGZW.js';
4
4
  import { __objRest, __spreadProps, __spreadValues } from '../chunk-3GWWZKX7.js';
@@ -1,10 +1,10 @@
1
1
  import { Checkbox } from '../chunk-D5QHEHXJ.js';
2
- import { Popover, PopoverTrigger, PopoverContent } from '../chunk-UUJVXN2O.js';
3
- import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-HCM6LKM5.js';
2
+ import { Popover, PopoverTrigger, PopoverContent } from '../chunk-66MAPLXS.js';
3
+ import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-XNA2INVQ.js';
4
4
  import '../chunk-FRPPIXMY.js';
5
- import { Button } from '../chunk-ZFNOCP6W.js';
5
+ import { Button } from '../chunk-H3BV4VAG.js';
6
6
  import '../chunk-R47NEOSI.js';
7
- import { Badge } from '../chunk-TL4YU2O5.js';
7
+ import { Badge } from '../chunk-UKBNQO6Q.js';
8
8
  import { cn } from '../chunk-FEK5XGZW.js';
9
9
  import '../chunk-3GWWZKX7.js';
10
10
  import * as React from 'react';
@@ -1,4 +1,4 @@
1
- import { buttonVariants } from '../chunk-ZFNOCP6W.js';
1
+ import { buttonVariants } from '../chunk-H3BV4VAG.js';
2
2
  import '../chunk-R47NEOSI.js';
3
3
  import { cn } from '../chunk-FEK5XGZW.js';
4
4
  import { __objRest, __spreadValues, __spreadProps } from '../chunk-3GWWZKX7.js';
@@ -8,10 +8,26 @@ interface PlaceAboutTabProps {
8
8
  mapSlot?: React.ReactNode;
9
9
  /** Slot for an embedded busyness chart. Rendered only when both this prop and `place.busyness` are present. */
10
10
  busynessSlot?: React.ReactNode;
11
+ /**
12
+ * Slot for "how to order from here" — delivery platforms and the like.
13
+ * Sits directly after contact, because it answers the same question contact
14
+ * does (how do I transact with this venue) and is the most actionable thing
15
+ * the sheet carries.
16
+ *
17
+ * Named for its MEANING, not its position, so a later reordering doesn't turn
18
+ * the prop name into a lie.
19
+ */
20
+ orderingSlot?: React.ReactNode;
21
+ /**
22
+ * Slot for "what the rest of the web says / where else this venue lives" —
23
+ * third-party ratings and the venue's own profiles. Sits after the practical
24
+ * block: it is corroboration, wanted after the facts, not before them.
25
+ */
26
+ reputationSlot?: React.ReactNode;
11
27
  /** Fires when the user clicks a contact link (phone/website/social). */
12
28
  onLinkClick?: (kind: PlaceLinkKind, url: string) => void;
13
29
  className?: string;
14
30
  }
15
- declare function PlaceAboutTab({ place, labels, mapSlot, busynessSlot, onLinkClick, className, }: PlaceAboutTabProps): react_jsx_runtime.JSX.Element;
31
+ declare function PlaceAboutTab({ place, labels, mapSlot, busynessSlot, orderingSlot, reputationSlot, onLinkClick, className, }: PlaceAboutTabProps): react_jsx_runtime.JSX.Element;
16
32
 
17
33
  export { PlaceAboutTab, type PlaceAboutTabProps };
@@ -1,7 +1,7 @@
1
- export { PlaceAboutTab } from '../chunk-UX6SWAKH.js';
2
- import '../chunk-YLNYXPIH.js';
1
+ export { PlaceAboutTab } from '../chunk-UZ3PCIE5.js';
2
+ import '../chunk-VBA45GLP.js';
3
3
  import '../chunk-WSRWFA6K.js';
4
- import '../chunk-A5ONAJCE.js';
5
- import '../chunk-Y5D5LP4A.js';
4
+ import '../chunk-VG3PND3D.js';
5
+ import '../chunk-7BWTYWM3.js';
6
6
  import '../chunk-FEK5XGZW.js';
7
7
  import '../chunk-3GWWZKX7.js';
@@ -1,4 +1,4 @@
1
- import { Text } from '../chunk-Y5D5LP4A.js';
1
+ import { Text } from '../chunk-7BWTYWM3.js';
2
2
  import { cn } from '../chunk-FEK5XGZW.js';
3
3
  import '../chunk-3GWWZKX7.js';
4
4
  import { memo, useState } from 'react';
@@ -61,7 +61,7 @@ var PlaceCard = memo(function PlaceCard2({
61
61
  /* @__PURE__ */ jsx(Text, { as: "h3", weight: "bold", leading: "tight", color: "default", className: "text-lg mb-2", children: place.name }),
62
62
  ratingDisplay !== null && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
63
63
  /* @__PURE__ */ jsx(Star, { className: "w-4 h-4 fill-primary text-primary", "aria-hidden": "true" }),
64
- /* @__PURE__ */ jsx("span", { className: "font-medium text-sm", children: ratingDisplay }),
64
+ /* @__PURE__ */ jsx("span", { className: "font-semibold text-sm", children: ratingDisplay }),
65
65
  reviewCount !== void 0 && reviewCount !== null && /* @__PURE__ */ jsxs("span", { className: "text-xs text-muted-foreground", children: [
66
66
  "(",
67
67
  reviewCount,
@@ -1,9 +1,9 @@
1
- import { PlaceAboutTab } from '../chunk-UX6SWAKH.js';
2
- import '../chunk-YLNYXPIH.js';
1
+ import { PlaceAboutTab } from '../chunk-UZ3PCIE5.js';
2
+ import '../chunk-VBA45GLP.js';
3
3
  import '../chunk-WSRWFA6K.js';
4
- import '../chunk-A5ONAJCE.js';
5
- import { Text } from '../chunk-Y5D5LP4A.js';
6
- import { Badge } from '../chunk-TL4YU2O5.js';
4
+ import '../chunk-VG3PND3D.js';
5
+ import { Text } from '../chunk-7BWTYWM3.js';
6
+ import { Badge } from '../chunk-UKBNQO6Q.js';
7
7
  import { cn } from '../chunk-FEK5XGZW.js';
8
8
  import '../chunk-3GWWZKX7.js';
9
9
  import { useState } from 'react';
@@ -55,7 +55,7 @@ function PlaceDetailsMobile({
55
55
  return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col bg-background", className), children: [
56
56
  /* @__PURE__ */ jsxs("div", { className: "px-4 pt-4", children: [
57
57
  /* @__PURE__ */ jsx("div", { className: "rounded-[22px] overflow-hidden relative", children: /* @__PURE__ */ jsxs("div", { className: "h-44 flex items-center justify-center relative overflow-hidden", children: [
58
- /* @__PURE__ */ jsxs("div", { className: "absolute bottom-2 right-2 z-20 flex items-center gap-1.5 bg-surface border border-border px-2.5 h-7 rounded-[12px] text-[11px] font-medium text-foreground", children: [
58
+ /* @__PURE__ */ jsxs("div", { className: "absolute bottom-2 right-2 z-20 flex items-center gap-1.5 bg-surface border border-border px-2.5 h-7 rounded-[12px] text-[11px] font-semibold text-foreground", children: [
59
59
  /* @__PURE__ */ jsx(
60
60
  "span",
61
61
  {
@@ -174,7 +174,7 @@ function MobileTabPlaceholder({
174
174
  "div",
175
175
  {
176
176
  className: cn(
177
- "flex flex-1 min-w-0 items-center justify-center gap-1 px-1 py-2.5 text-[12px] font-medium border-b-2 -mb-px",
177
+ "flex flex-1 min-w-0 items-center justify-center gap-1 px-1 py-2.5 text-[12px] font-semibold border-b-2 -mb-px",
178
178
  active ? "border-primary text-foreground" : "border-transparent text-muted-foreground"
179
179
  ),
180
180
  "aria-hidden": true,
@@ -1,4 +1,4 @@
1
- export { PlaceScheduleWeek } from '../chunk-A5ONAJCE.js';
2
- import '../chunk-Y5D5LP4A.js';
1
+ export { PlaceScheduleWeek } from '../chunk-VG3PND3D.js';
2
+ import '../chunk-7BWTYWM3.js';
3
3
  import '../chunk-FEK5XGZW.js';
4
4
  import '../chunk-3GWWZKX7.js';
@@ -1,3 +1,3 @@
1
- export { Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from '../chunk-UUJVXN2O.js';
1
+ export { Popover, PopoverAnchor, PopoverArrow, PopoverClose, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from '../chunk-66MAPLXS.js';
2
2
  import '../chunk-FEK5XGZW.js';
3
3
  import '../chunk-3GWWZKX7.js';
@@ -1,7 +1,7 @@
1
- import { Popover, PopoverTrigger, PopoverContent } from '../chunk-UUJVXN2O.js';
2
- import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-HCM6LKM5.js';
1
+ import { Popover, PopoverTrigger, PopoverContent } from '../chunk-66MAPLXS.js';
2
+ import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-XNA2INVQ.js';
3
3
  import '../chunk-FRPPIXMY.js';
4
- import { Button } from '../chunk-ZFNOCP6W.js';
4
+ import { Button } from '../chunk-H3BV4VAG.js';
5
5
  import '../chunk-R47NEOSI.js';
6
6
  import { cn } from '../chunk-FEK5XGZW.js';
7
7
  import '../chunk-3GWWZKX7.js';
@@ -10,7 +10,7 @@ var Select = SelectPrimitive.Root;
10
10
  var SelectGroup = SelectPrimitive.Group;
11
11
  var SelectValue = SelectPrimitive.Value;
12
12
  var selectTriggerVariants = cva(
13
- "flex w-full items-center justify-between rounded-xl bg-background border border-border text-sm font-medium text-foreground transition-colors focus:outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground [&>span]:line-clamp-1 hover:border-foreground/30 aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/40",
13
+ "flex w-full items-center justify-between rounded-xl bg-background border border-border text-sm font-semibold text-foreground transition-colors focus:outline-none focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[placeholder]:text-muted-foreground [&>span]:line-clamp-1 hover:border-foreground/30 aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/40",
14
14
  {
15
15
  variants: {
16
16
  size: {
@@ -118,7 +118,7 @@ var SelectItem = React.forwardRef((_a, ref) => {
118
118
  ref,
119
119
  "data-slot": "select-item",
120
120
  className: cn(
121
- "relative flex w-full cursor-default select-none items-center rounded-md py-2 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=checked]:font-medium",
121
+ "relative flex w-full cursor-default select-none items-center rounded-md py-2 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=checked]:font-semibold",
122
122
  className
123
123
  )
124
124
  }, props), {
@@ -36,7 +36,7 @@ var SelectionBar = React.forwardRef(
36
36
  )
37
37
  }, props), {
38
38
  children: [
39
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm font-medium text-foreground", children: [
39
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm font-semibold text-foreground", children: [
40
40
  onClear && /* @__PURE__ */ jsx(
41
41
  "button",
42
42
  {
@@ -9,10 +9,33 @@ declare const SheetTrigger: React.ForwardRefExoticComponent<DialogPrimitive.Dial
9
9
  declare const SheetClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
10
10
  declare const SheetPortal: React.FC<DialogPrimitive.DialogPortalProps>;
11
11
  declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ /**
13
+ * `attachment` controls whether the panel is welded to the viewport edge or
14
+ * floats clear of it.
15
+ *
16
+ * - `edge` (default) — the classic sheet: full bleed against its side, only the
17
+ * two corners facing inward rounded. Every existing consumer gets this, so
18
+ * adding `inset` changes nothing already shipped.
19
+ * - `inset` — a floating panel: held off all four edges, rounded on every
20
+ * corner, page visible around it. Reads as a surface laid ON the page rather
21
+ * than one grafted to it, which is what detail surfaces want — the content
22
+ * behind stays legible as context instead of being cropped away.
23
+ *
24
+ * `inset` deliberately drops the border. At an edge the border is the seam
25
+ * between panel and viewport and has work to do; floating, the shadow already
26
+ * separates the two and a border only draws a hard line around the radius.
27
+ */
12
28
  declare const sheetVariants: (props?: ({
13
29
  side?: "left" | "right" | "bottom" | "top" | null | undefined;
30
+ attachment?: "inset" | "edge" | null | undefined;
14
31
  } & class_variance_authority_types.ClassProp) | undefined) => string;
15
32
  interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
33
+ /**
34
+ * Suppress the built-in floating close button. Use when the panel renders its
35
+ * own header row with a close control, which would otherwise stack two close
36
+ * buttons in the same corner.
37
+ */
38
+ hideClose?: boolean;
16
39
  }
17
40
  declare const SheetContent: React.ForwardRefExoticComponent<SheetContentProps & React.RefAttributes<HTMLDivElement>>;
18
41
  declare const SheetHeader: {
@@ -26,32 +26,69 @@ var SheetOverlay = React.forwardRef((_a, ref) => {
26
26
  });
27
27
  SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
28
28
  var sheetVariants = cva(
29
- "fixed z-[1000] gap-4 bg-background border-border p-6 shadow-2xl data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:duration-[var(--duration-deliberate)] data-[state=closed]:duration-[var(--duration-exit-standard)] data-[state=open]:ease-[var(--ease-enter)] data-[state=closed]:ease-[var(--ease-exit)]",
29
+ "fixed z-[1000] gap-4 bg-background border-border shadow-2xl data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:duration-[var(--duration-deliberate)] data-[state=closed]:duration-[var(--duration-exit-standard)] data-[state=open]:ease-[var(--ease-enter)] data-[state=closed]:ease-[var(--ease-exit)]",
30
30
  {
31
31
  variants: {
32
32
  side: {
33
- top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
34
- bottom: "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom rounded-t-2xl",
35
- left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm rounded-r-2xl",
36
- right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm rounded-l-2xl"
33
+ top: "inset-x-0 top-0 data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
34
+ bottom: "inset-x-0 bottom-0 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
35
+ left: "inset-y-0 left-0 h-full w-3/4 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left",
36
+ right: "inset-y-0 right-0 h-full w-3/4 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right"
37
+ },
38
+ attachment: {
39
+ edge: "p-6",
40
+ // Padding is the caller's business here: a detail surface runs a gallery
41
+ // and a sticky action bar to the panel edge, and a fixed p-6 would inset
42
+ // both. `edge` keeps its p-6 so nothing already shipped shifts.
43
+ inset: "rounded-2xl overflow-hidden"
37
44
  }
38
45
  },
46
+ compoundVariants: [
47
+ // `edge` restates exactly what each side carried before `attachment`
48
+ // existed — the seam border and the two inward-facing corners. Kept as
49
+ // compounds rather than left on `side` so `inset` is not fighting them
50
+ // through class-merge order.
51
+ // `sm:max-w-sm` lives here, not on `side`: an inset panel is sized by its
52
+ // caller, and a responsive cap left on `side` cannot be overridden from
53
+ // className — tailwind-merge scopes `sm:max-w-*` and `max-w-*` to
54
+ // different groups, so `max-w-none` loses to it at every width ≥ sm.
55
+ { side: "top", attachment: "edge", class: "border-b" },
56
+ { side: "bottom", attachment: "edge", class: "border-t rounded-t-2xl" },
57
+ { side: "left", attachment: "edge", class: "border-r rounded-r-2xl sm:max-w-sm" },
58
+ { side: "right", attachment: "edge", class: "border-l rounded-l-2xl sm:max-w-sm" },
59
+ // The inset offsets live here rather than on `attachment` because each
60
+ // side has to give up its own edge: a right-side panel clears top, right
61
+ // and bottom but is still anchored to the right.
62
+ { side: "right", attachment: "inset", class: "inset-y-3 right-3 h-auto" },
63
+ { side: "left", attachment: "inset", class: "inset-y-3 left-3 h-auto" },
64
+ { side: "top", attachment: "inset", class: "inset-x-3 top-3" },
65
+ { side: "bottom", attachment: "inset", class: "inset-x-3 bottom-3" }
66
+ ],
39
67
  defaultVariants: {
40
- side: "right"
68
+ side: "right",
69
+ attachment: "edge"
41
70
  }
42
71
  }
43
72
  );
44
73
  var SheetContent = React.forwardRef((_a, ref) => {
45
- var _b = _a, { side = "right", className, children } = _b, props = __objRest(_b, ["side", "className", "children"]);
74
+ var _b = _a, { side = "right", attachment = "edge", className, children, hideClose } = _b, props = __objRest(_b, ["side", "attachment", "className", "children", "hideClose"]);
46
75
  return /* @__PURE__ */ jsxs(SheetPortal, { children: [
47
76
  /* @__PURE__ */ jsx(SheetOverlay, {}),
48
- /* @__PURE__ */ jsxs(SheetPrimitive.Content, __spreadProps(__spreadValues({ ref, className: cn(sheetVariants({ side }), className) }, props), { children: [
49
- children,
50
- /* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-lg opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary glass-hover p-2", children: [
51
- /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
52
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
53
- ] })
54
- ] }))
77
+ /* @__PURE__ */ jsxs(
78
+ SheetPrimitive.Content,
79
+ __spreadProps(__spreadValues({
80
+ ref,
81
+ className: cn(sheetVariants({ side, attachment }), className)
82
+ }, props), {
83
+ children: [
84
+ children,
85
+ !hideClose && /* @__PURE__ */ jsxs(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-lg opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary glass-hover p-2", children: [
86
+ /* @__PURE__ */ jsx(X, { className: "h-4 w-4" }),
87
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
88
+ ] })
89
+ ]
90
+ })
91
+ )
55
92
  ] });
56
93
  });
57
94
  SheetContent.displayName = SheetPrimitive.Content.displayName;
@@ -1,4 +1,4 @@
1
- import { Button } from '../chunk-ZFNOCP6W.js';
1
+ import { Button } from '../chunk-H3BV4VAG.js';
2
2
  import '../chunk-R47NEOSI.js';
3
3
  import { cn } from '../chunk-FEK5XGZW.js';
4
4
  import '../chunk-3GWWZKX7.js';
@@ -53,6 +53,7 @@ var SlidingPanels = ({
53
53
  return /* @__PURE__ */ jsx(
54
54
  "div",
55
55
  {
56
+ "data-slot": "sliding-panels",
56
57
  className: cn(
57
58
  "relative overflow-clip transition-[height] duration-500 ease-[cubic-bezier(0.32,0.72,0,1)]",
58
59
  className
@@ -68,12 +69,15 @@ var SlidingPanels = ({
68
69
  ref: (el) => {
69
70
  panelRefs.current[index] = el;
70
71
  },
72
+ "data-slot": "sliding-panel",
73
+ "data-state": isActive ? "active" : "inactive",
71
74
  className: cn(
72
75
  "absolute top-0 left-0 w-full transition-transform duration-500 ease-[cubic-bezier(0.32,0.72,0,1)]",
73
76
  isActive && "translate-x-0",
74
77
  isLeft && "-translate-x-[calc(100%+8px)]",
75
78
  isRight && "translate-x-[calc(100%+8px)]"
76
79
  ),
80
+ inert: !isActive || void 0,
77
81
  "aria-hidden": !isActive,
78
82
  children: [
79
83
  panel.showBackButton && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-4", children: [
@@ -1,5 +1,5 @@
1
1
  import { __objRest, __spreadValues } from '../chunk-3GWWZKX7.js';
2
- import { Loader2Icon, OctagonXIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon } from 'lucide-react';
2
+ import { Loader2Icon, CircleAlertIcon, TriangleAlertIcon, InfoIcon, CircleCheckIcon } from 'lucide-react';
3
3
  import { useTheme } from 'next-themes';
4
4
  import { Toaster as Toaster$1 } from 'sonner';
5
5
  import { jsx } from 'react/jsx-runtime';
@@ -16,7 +16,7 @@ var Toaster = (_a) => {
16
16
  success: /* @__PURE__ */ jsx(CircleCheckIcon, { className: "size-4" }),
17
17
  info: /* @__PURE__ */ jsx(InfoIcon, { className: "size-4" }),
18
18
  warning: /* @__PURE__ */ jsx(TriangleAlertIcon, { className: "size-4" }),
19
- error: /* @__PURE__ */ jsx(OctagonXIcon, { className: "size-4" }),
19
+ error: /* @__PURE__ */ jsx(CircleAlertIcon, { className: "size-4" }),
20
20
  loading: /* @__PURE__ */ jsx(Loader2Icon, { className: "size-4 animate-spin" })
21
21
  },
22
22
  style: {
@@ -58,8 +58,11 @@ var Stepper = React.forwardRef(
58
58
  {
59
59
  className: cn(
60
60
  "whitespace-nowrap transition-colors",
61
+ // current and complete share a weight; COLOUR carries the
62
+ // state (full → 80% → 40%). `complete` was 500, the one
63
+ // step that is not in the 400/600/700 system.
61
64
  status === "current" && "font-semibold text-foreground",
62
- status === "complete" && "font-medium text-foreground/80",
65
+ status === "complete" && "font-semibold text-foreground/80",
63
66
  status === "upcoming" && "text-foreground/40"
64
67
  ),
65
68
  children: step.title
@@ -51,7 +51,7 @@ var TableFooter = React.forwardRef((_a, ref) => {
51
51
  __spreadValues({
52
52
  ref,
53
53
  "data-slot": "table-footer",
54
- className: cn("border-t border-border bg-muted/50 font-medium [&>tr]:last:border-b-0", className)
54
+ className: cn("border-t border-border bg-muted/50 font-semibold [&>tr]:last:border-b-0", className)
55
55
  }, props)
56
56
  );
57
57
  });
@@ -77,7 +77,7 @@ var TabsTrigger = React.forwardRef((_a, ref) => {
77
77
  ref: composedRef,
78
78
  "data-slot": "tabs-trigger",
79
79
  className: cn(
80
- "relative inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
80
+ "relative inline-flex items-center justify-center whitespace-nowrap text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
81
81
  variant === "pill" && "rounded-xl px-4 py-1.5 text-muted-foreground hover:text-foreground data-[state=active]:text-foreground",
82
82
  variant === "underline" && orientation === "horizontal" && "h-11 rounded-none px-4 text-muted-foreground hover:text-foreground data-[state=active]:text-foreground",
83
83
  variant === "underline" && orientation === "vertical" && "rounded-none px-4 py-2 -mr-px text-muted-foreground hover:text-foreground data-[state=active]:text-foreground justify-start",
@@ -15,7 +15,7 @@ var TagGroup = React.forwardRef((_a, ref) => {
15
15
  className: cn("flex flex-wrap items-center gap-1.5", className)
16
16
  }, props), {
17
17
  children: [
18
- label && !srLabel && /* @__PURE__ */ jsx("span", { className: "mr-1 text-xs font-medium text-muted-foreground", children: label }),
18
+ label && !srLabel && /* @__PURE__ */ jsx("span", { className: "mr-1 text-xs font-semibold text-muted-foreground", children: label }),
19
19
  children
20
20
  ]
21
21
  })
@@ -1,3 +1,3 @@
1
- export { Tag, tagVariants } from '../chunk-YLNYXPIH.js';
1
+ export { Tag, tagVariants } from '../chunk-VBA45GLP.js';
2
2
  import '../chunk-FEK5XGZW.js';
3
3
  import '../chunk-3GWWZKX7.js';