@bearmenu/ui 0.8.31 → 0.8.33

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.
@@ -75,7 +75,7 @@ var buttonVariants = cva(
75
75
  /** The `ink` action's shape. Owns the radius so no variant fights it. */
76
76
  pill: "h-11 rounded-full px-5 text-[13.5px] font-bold",
77
77
  /** The booking design's action: 46px, 12px radius, 15px semibold. */
78
- cta: "h-[46px] rounded-xl px-5 text-[15px] font-semibold",
78
+ cta: "h-[46px] rounded-[12px] px-5 text-[15px] font-semibold",
79
79
  /** Its compact form, in dense footers and inline rows: 38px, 10px radius. */
80
80
  "cta-sm": "h-[38px] rounded-[10px] px-4 text-[13.5px] font-semibold",
81
81
  icon: "h-11 w-11 rounded-full",
@@ -1,4 +1,4 @@
1
- import { buttonVariants } from '../chunk-5HHRVJOT.js';
1
+ import { buttonVariants } from '../chunk-5SGKGFMN.js';
2
2
  import '../chunk-RIH2IS7X.js';
3
3
  import '../chunk-5YNIQ2BL.js';
4
4
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -1,4 +1,4 @@
1
- export { Button, buttonVariants } from '../chunk-5HHRVJOT.js';
1
+ export { Button, buttonVariants } from '../chunk-5SGKGFMN.js';
2
2
  import '../chunk-RIH2IS7X.js';
3
3
  import '../chunk-5YNIQ2BL.js';
4
4
  import '../chunk-FEK5XGZW.js';
@@ -1,4 +1,4 @@
1
- import { buttonVariants, Button } from '../chunk-5HHRVJOT.js';
1
+ import { buttonVariants, Button } from '../chunk-5SGKGFMN.js';
2
2
  import '../chunk-RIH2IS7X.js';
3
3
  import '../chunk-5YNIQ2BL.js';
4
4
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -1,4 +1,4 @@
1
- import { Button } from '../chunk-5HHRVJOT.js';
1
+ import { Button } from '../chunk-5SGKGFMN.js';
2
2
  import '../chunk-RIH2IS7X.js';
3
3
  import '../chunk-5YNIQ2BL.js';
4
4
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -1,4 +1,4 @@
1
- import { Button } from '../chunk-5HHRVJOT.js';
1
+ import { Button } from '../chunk-5SGKGFMN.js';
2
2
  import '../chunk-RIH2IS7X.js';
3
3
  import '../chunk-5YNIQ2BL.js';
4
4
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -1,7 +1,7 @@
1
1
  import { Popover, PopoverTrigger, PopoverContent } from '../chunk-2ADCZXZJ.js';
2
2
  import { Command, CommandInput, CommandList, CommandLoading, CommandEmpty, CommandGroup, CommandItem } from '../chunk-ZJMCU7MI.js';
3
3
  import '../chunk-JWTN7MNK.js';
4
- import { Button } from '../chunk-5HHRVJOT.js';
4
+ import { Button } from '../chunk-5SGKGFMN.js';
5
5
  import '../chunk-RIH2IS7X.js';
6
6
  import '../chunk-5YNIQ2BL.js';
7
7
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -1,4 +1,4 @@
1
- import { Button } from '../chunk-5HHRVJOT.js';
1
+ import { Button } from '../chunk-5SGKGFMN.js';
2
2
  import '../chunk-RIH2IS7X.js';
3
3
  import '../chunk-5YNIQ2BL.js';
4
4
  import { Text } from '../chunk-ZLMRVBD7.js';
@@ -2,7 +2,7 @@ import { resolveEventEntryFee } from '../chunk-DNSXMHYX.js';
2
2
  import { Separator } from '../chunk-NWZGSLPU.js';
3
3
  import { EventPosterFallback } from '../chunk-FDITZ2VM.js';
4
4
  import { Skeleton } from '../chunk-XBBEX4SF.js';
5
- import { Button } from '../chunk-5HHRVJOT.js';
5
+ import { Button } from '../chunk-5SGKGFMN.js';
6
6
  import '../chunk-RIH2IS7X.js';
7
7
  import '../chunk-5YNIQ2BL.js';
8
8
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -3,7 +3,7 @@ import { Tag } from '../chunk-MWB7S54O.js';
3
3
  import { Separator } from '../chunk-NWZGSLPU.js';
4
4
  import { EventPosterFallback } from '../chunk-FDITZ2VM.js';
5
5
  import { Skeleton } from '../chunk-XBBEX4SF.js';
6
- import { buttonVariants } from '../chunk-5HHRVJOT.js';
6
+ import { buttonVariants } from '../chunk-5SGKGFMN.js';
7
7
  import '../chunk-RIH2IS7X.js';
8
8
  import '../chunk-5YNIQ2BL.js';
9
9
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -3,7 +3,7 @@ import '../chunk-MMUBH76A.js';
3
3
  import * as React from 'react';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
5
5
 
6
- var HOLD_BORDER = "border-[oklch(0.62_0.15_70)] dark:border-warning";
6
+ var HOLD_BORDER = "border-warning-deep";
7
7
  function remainingSeconds(expiresAt, now) {
8
8
  const end = typeof expiresAt === "number" ? expiresAt : Date.parse(expiresAt);
9
9
  return Math.max(0, Math.ceil((end - now) / 1e3));
@@ -1,4 +1,4 @@
1
- import { Button } from '../chunk-5HHRVJOT.js';
1
+ import { Button } from '../chunk-5SGKGFMN.js';
2
2
  import '../chunk-RIH2IS7X.js';
3
3
  import '../chunk-5YNIQ2BL.js';
4
4
  import '../chunk-FEK5XGZW.js';
@@ -3,7 +3,7 @@ import { HueChip } from '../chunk-6VOWT4YR.js';
3
3
  import { Separator } from '../chunk-NWZGSLPU.js';
4
4
  import { PhotoGround, PHOTO_GROUND } from '../chunk-SWD6CJ35.js';
5
5
  import { Skeleton } from '../chunk-XBBEX4SF.js';
6
- import { buttonVariants } from '../chunk-5HHRVJOT.js';
6
+ import { buttonVariants } from '../chunk-5SGKGFMN.js';
7
7
  import '../chunk-RIH2IS7X.js';
8
8
  import '../chunk-5YNIQ2BL.js';
9
9
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -1,6 +1,6 @@
1
1
  import { Separator } from '../chunk-NWZGSLPU.js';
2
2
  import { Skeleton } from '../chunk-XBBEX4SF.js';
3
- import { Button } from '../chunk-5HHRVJOT.js';
3
+ import { Button } from '../chunk-5SGKGFMN.js';
4
4
  import '../chunk-RIH2IS7X.js';
5
5
  import '../chunk-5YNIQ2BL.js';
6
6
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -2,7 +2,7 @@ import { Checkbox } from '../chunk-L3CDXVEP.js';
2
2
  import { Popover, PopoverTrigger, PopoverContent } from '../chunk-2ADCZXZJ.js';
3
3
  import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-ZJMCU7MI.js';
4
4
  import '../chunk-JWTN7MNK.js';
5
- import { Button } from '../chunk-5HHRVJOT.js';
5
+ import { Button } from '../chunk-5SGKGFMN.js';
6
6
  import '../chunk-RIH2IS7X.js';
7
7
  import '../chunk-5YNIQ2BL.js';
8
8
  import { Badge } from '../chunk-ZU4NAYN7.js';
@@ -1,4 +1,4 @@
1
- import { buttonVariants } from '../chunk-5HHRVJOT.js';
1
+ import { buttonVariants } from '../chunk-5SGKGFMN.js';
2
2
  import '../chunk-RIH2IS7X.js';
3
3
  import '../chunk-5YNIQ2BL.js';
4
4
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -1,7 +1,7 @@
1
1
  import { Popover, PopoverTrigger, PopoverContent } from '../chunk-2ADCZXZJ.js';
2
2
  import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../chunk-ZJMCU7MI.js';
3
3
  import '../chunk-JWTN7MNK.js';
4
- import { Button } from '../chunk-5HHRVJOT.js';
4
+ import { Button } from '../chunk-5SGKGFMN.js';
5
5
  import '../chunk-RIH2IS7X.js';
6
6
  import '../chunk-5YNIQ2BL.js';
7
7
  import { cn } from '../chunk-FEK5XGZW.js';
@@ -1,4 +1,4 @@
1
- import { Button } from '../chunk-5HHRVJOT.js';
1
+ import { Button } from '../chunk-5SGKGFMN.js';
2
2
  import '../chunk-RIH2IS7X.js';
3
3
  import '../chunk-5YNIQ2BL.js';
4
4
  import { cn } from '../chunk-FEK5XGZW.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bearmenu/ui",
3
- "version": "0.8.31",
3
+ "version": "0.8.33",
4
4
  "packageManager": "pnpm@10.28.1",
5
5
  "description": "BearMenu design system — shared UI tokens, primitives, and components",
6
6
  "license": "UNLICENSED",
@@ -80,7 +80,7 @@ const buttonVariants = cva(
80
80
  /** The `ink` action's shape. Owns the radius so no variant fights it. */
81
81
  pill: "h-11 rounded-full px-5 text-[13.5px] font-bold",
82
82
  /** The booking design's action: 46px, 12px radius, 15px semibold. */
83
- cta: "h-[46px] rounded-xl px-5 text-[15px] font-semibold",
83
+ cta: "h-[46px] rounded-[12px] px-5 text-[15px] font-semibold",
84
84
  /** Its compact form, in dense footers and inline rows: 38px, 10px radius. */
85
85
  "cta-sm": "h-[38px] rounded-[10px] px-4 text-[13.5px] font-semibold",
86
86
  icon: "h-11 w-11 rounded-full",
@@ -49,7 +49,7 @@ export type HoldCountdownProps = {
49
49
  * design's as a timer. Dark mode takes the lifted token, which already has
50
50
  * the contrast against the dark card.
51
51
  */
52
- const HOLD_BORDER = "border-[oklch(0.62_0.15_70)] dark:border-warning";
52
+ const HOLD_BORDER = "border-warning-deep";
53
53
 
54
54
  function remainingSeconds(expiresAt: string | number, now: number): number {
55
55
  const end = typeof expiresAt === "number" ? expiresAt : Date.parse(expiresAt);
package/src/globals.css CHANGED
@@ -94,6 +94,19 @@ h6 {
94
94
  */
95
95
  --destructive-ink: oklch(0.52 0.16 25);
96
96
  --success-ink: oklch(0.42 0.13 155);
97
+ /**
98
+ * Warning as INK, the missing twin of the two above. `--warning` is tuned
99
+ * to be a fill and a border; as a GLYPH on its own 15–20% wash it measures
100
+ * 2.2:1 in light, which is a graphic nobody can see. This is the design's
101
+ * own value for that glyph, and it clears 3:1 against the wash.
102
+ */
103
+ --warning-ink: oklch(0.45 0.1 70);
104
+ /**
105
+ * The hold hairline: deeper than `--warning`, which on white reads as a
106
+ * yellow alert where the design's reads as a timer. Dark takes the lifted
107
+ * token, which already has its contrast against the dark card.
108
+ */
109
+ --warning-deep: oklch(0.62 0.15 70);
97
110
  --border: oklch(0.895 0 0);
98
111
  --input: oklch(0.895 0 0);
99
112
  --ring: oklch(0.25 0.05 35);
@@ -164,8 +177,14 @@ h6 {
164
177
  /* The dim behind a sheet or a dialog. It has to be mode-aware: this value
165
178
  over a white page separates plane 2 from plane 0 by 3.6:1, and the same
166
179
  value over a near-black one dims nothing at all (the dark block below
167
- carries the deeper, more opaque sibling). */
168
- --scrim: oklch(0.16 0.01 55 / 0.5);
180
+ carries the deeper, more opaque sibling).
181
+
182
+ NOT `--scrim`: the consumer app's own stylesheet is imported after this
183
+ one and defines a `--scrim` of its own (an OPAQUE photo-banner hue,
184
+ consumed through Tailwind's fractional stops). A token named `--scrim`
185
+ here is silently shadowed there, and `bg-scrim` then paints the banner
186
+ colour at full alpha over the whole page. */
187
+ --scrim-overlay: oklch(0.16 0.01 55 / 0.5);
169
188
 
170
189
  /* Brown variant — replaces hardcoded #482E1F across button/badge */
171
190
  --brown: oklch(0.31 0.05 45);
@@ -292,6 +311,9 @@ h6 {
292
311
  /** Lifted for text on `--card`, where the solid token measures ~3.8:1. */
293
312
  --destructive-ink: oklch(0.72 0.15 25);
294
313
  --success-ink: oklch(0.72 0.15 155);
314
+ /** Lifted for a glyph on the dark wash, as its siblings are. */
315
+ --warning-ink: oklch(0.82 0.13 70);
316
+ --warning-deep: var(--warning);
295
317
  --border: oklch(0.32 0.01 45);
296
318
  --input: oklch(0.32 0.01 45);
297
319
  --ring: oklch(0.98 0 0);
@@ -320,7 +342,7 @@ h6 {
320
342
  composites to the canvas itself, leaving a sheet with no edge at all —
321
343
  in dark, elevation is carried by the scrim and by lightness, not by a
322
344
  shadow nobody can see. */
323
- --scrim: oklch(0.05 0.01 55 / 0.78);
345
+ --scrim-overlay: oklch(0.05 0.01 55 / 0.78);
324
346
  --sidebar: oklch(0.205 0 0);
325
347
  --sidebar-foreground: oklch(0.985 0 0);
326
348
  --sidebar-primary: oklch(0.488 0.243 264.376);
@@ -388,8 +410,10 @@ h6 {
388
410
  --color-destructive-foreground: var(--destructive-foreground);
389
411
  --color-destructive-ink: var(--destructive-ink);
390
412
  --color-success-ink: var(--success-ink);
391
- /* `bg-scrim` — the dim behind a sheet or a dialog. */
392
- --color-scrim: var(--scrim);
413
+ --color-warning-ink: var(--warning-ink);
414
+ --color-warning-deep: var(--warning-deep);
415
+ /* `bg-scrim-overlay` — the dim behind a sheet or a dialog. */
416
+ --color-scrim-overlay: var(--scrim-overlay);
393
417
  --color-border: var(--border);
394
418
  --color-input: var(--input);
395
419
  --color-ring: var(--ring);