@wow-two-beta/ui 0.0.53 → 0.0.55

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 (68) hide show
  1. package/dist/actions/index.js +2 -2
  2. package/dist/{chunk-X7SQOMHC.js → chunk-7Q25FEQB.js} +5 -5
  3. package/dist/{chunk-X7SQOMHC.js.map → chunk-7Q25FEQB.js.map} +1 -1
  4. package/dist/{chunk-SA7OVNKQ.js → chunk-AKNT7FUA.js} +3 -3
  5. package/dist/{chunk-SA7OVNKQ.js.map → chunk-AKNT7FUA.js.map} +1 -1
  6. package/dist/{chunk-MN46ESLR.js → chunk-BKR7A7WH.js} +51 -26
  7. package/dist/chunk-BKR7A7WH.js.map +1 -0
  8. package/dist/{chunk-X5INLQTJ.js → chunk-CRKW4VXA.js} +3 -3
  9. package/dist/{chunk-X5INLQTJ.js.map → chunk-CRKW4VXA.js.map} +1 -1
  10. package/dist/{chunk-2SIB3MZL.js → chunk-HS5BIBT2.js} +23 -4
  11. package/dist/chunk-HS5BIBT2.js.map +1 -0
  12. package/dist/{chunk-FIZJCXNN.js → chunk-LLNJ3GD2.js} +39 -19
  13. package/dist/chunk-LLNJ3GD2.js.map +1 -0
  14. package/dist/{chunk-SGMG6NZB.js → chunk-O2DK3E3E.js} +23 -4
  15. package/dist/chunk-O2DK3E3E.js.map +1 -0
  16. package/dist/{chunk-UJDAJMFJ.js → chunk-OMSOGGGK.js} +18 -6
  17. package/dist/chunk-OMSOGGGK.js.map +1 -0
  18. package/dist/{chunk-EZ2NOHIL.js → chunk-OO7UYVI7.js} +15 -16
  19. package/dist/chunk-OO7UYVI7.js.map +1 -0
  20. package/dist/{chunk-TZETHHW5.js → chunk-RDDIOVK4.js} +114 -162
  21. package/dist/chunk-RDDIOVK4.js.map +1 -0
  22. package/dist/{chunk-OP3FW6PX.js → chunk-S6RT24VI.js} +6 -6
  23. package/dist/{chunk-OP3FW6PX.js.map → chunk-S6RT24VI.js.map} +1 -1
  24. package/dist/{chunk-2YI5Y2U3.js → chunk-T6ZDMPHL.js} +3 -3
  25. package/dist/{chunk-2YI5Y2U3.js.map → chunk-T6ZDMPHL.js.map} +1 -1
  26. package/dist/{chunk-V5RYX33D.js → chunk-VIWAIXVK.js} +3 -3
  27. package/dist/{chunk-V5RYX33D.js.map → chunk-VIWAIXVK.js.map} +1 -1
  28. package/dist/display/card/Card.d.ts +4 -8
  29. package/dist/display/card/Card.d.ts.map +1 -1
  30. package/dist/display/chatBubble/ChatBubble.d.ts.map +1 -1
  31. package/dist/display/index.js +3 -3
  32. package/dist/feedback/index.js +3 -3
  33. package/dist/feedback/notificationCenter/NotificationCenter.d.ts.map +1 -1
  34. package/dist/feedback/toastSimple/ToastSimple.d.ts +3 -7
  35. package/dist/feedback/toastSimple/ToastSimple.d.ts.map +1 -1
  36. package/dist/feedback/undoBar/UndoBar.d.ts.map +1 -1
  37. package/dist/forms/index.js +7 -7
  38. package/dist/icons/index.js +1 -1
  39. package/dist/index.js +13 -13
  40. package/dist/layout/index.js +4 -4
  41. package/dist/nav/index.js +4 -4
  42. package/dist/nav/menu/Menu.d.ts +5 -3
  43. package/dist/nav/menu/Menu.d.ts.map +1 -1
  44. package/dist/nav/navigationMenu/NavigationMenu.d.ts.map +1 -1
  45. package/dist/overlays/bottomSheet/BottomSheet.d.ts +3 -1
  46. package/dist/overlays/bottomSheet/BottomSheet.d.ts.map +1 -1
  47. package/dist/overlays/dialog/Dialog.d.ts +5 -3
  48. package/dist/overlays/dialog/Dialog.d.ts.map +1 -1
  49. package/dist/overlays/drawer/Drawer.d.ts +3 -1
  50. package/dist/overlays/drawer/Drawer.d.ts.map +1 -1
  51. package/dist/overlays/index.js +4 -4
  52. package/dist/utils/StyleTokens.d.ts +11 -0
  53. package/dist/utils/StyleTokens.d.ts.map +1 -0
  54. package/dist/utils/SurfaceStyles.d.ts +1 -1
  55. package/dist/utils/SurfaceStyles.d.ts.map +1 -1
  56. package/dist/utils/Tones.d.ts +6 -0
  57. package/dist/utils/Tones.d.ts.map +1 -0
  58. package/dist/utils/index.d.ts +2 -0
  59. package/dist/utils/index.d.ts.map +1 -1
  60. package/dist/utils/index.js +1 -1
  61. package/package.json +1 -1
  62. package/dist/chunk-2SIB3MZL.js.map +0 -1
  63. package/dist/chunk-EZ2NOHIL.js.map +0 -1
  64. package/dist/chunk-FIZJCXNN.js.map +0 -1
  65. package/dist/chunk-MN46ESLR.js.map +0 -1
  66. package/dist/chunk-SGMG6NZB.js.map +0 -1
  67. package/dist/chunk-TZETHHW5.js.map +0 -1
  68. package/dist/chunk-UJDAJMFJ.js.map +0 -1
@@ -15,6 +15,7 @@ __export(utils_exports, {
15
15
  Layer: () => Layer,
16
16
  OptionalExtensions: () => OptionalExtensions,
17
17
  PressExtensions: () => PressExtensions,
18
+ Tones: () => Tones,
18
19
  TransitionExtensions: () => TransitionExtensions,
19
20
  cn: () => cn,
20
21
  composeEventHandlers: () => composeEventHandlers,
@@ -249,36 +250,87 @@ var TransitionExtensions = {
249
250
  duration: { default: DEFAULT_DURATION_MS }
250
251
  };
251
252
 
253
+ // src/utils/Tones.ts
254
+ var Tones = {
255
+ /** Opaque tone bg + foreground. Used by `solid`, `elevated`, `flat`, button defaults. */
256
+ solid: {
257
+ neutral: "bg-popover text-popover-foreground",
258
+ primary: "bg-primary text-primary-foreground",
259
+ danger: "bg-destructive text-destructive-foreground",
260
+ success: "bg-success text-success-foreground",
261
+ warning: "bg-warning text-warning-foreground",
262
+ info: "bg-info text-info-foreground"
263
+ },
264
+ /** Muted/tinted bg + tone-readable foreground. */
265
+ soft: {
266
+ neutral: "bg-muted text-foreground",
267
+ primary: "bg-primary-soft text-primary",
268
+ danger: "bg-destructive-soft text-destructive",
269
+ success: "bg-success-soft text-success",
270
+ warning: "bg-warning-soft text-warning",
271
+ info: "bg-info-soft text-info"
272
+ },
273
+ /** Popover bg + tone-accent border. The "default" subtle look. */
274
+ surface: {
275
+ neutral: "border-border bg-popover text-popover-foreground",
276
+ primary: "border-primary/40 bg-popover text-popover-foreground",
277
+ danger: "border-destructive/40 bg-popover text-popover-foreground",
278
+ success: "border-success/40 bg-popover text-popover-foreground",
279
+ warning: "border-warning/40 bg-popover text-popover-foreground",
280
+ info: "border-info/40 bg-popover text-popover-foreground"
281
+ },
282
+ /** Transparent bg, tone border + tone text. */
283
+ outline: {
284
+ neutral: "border-border text-foreground",
285
+ primary: "border-primary text-primary",
286
+ danger: "border-destructive text-destructive",
287
+ success: "border-success text-success",
288
+ warning: "border-warning text-warning",
289
+ info: "border-info text-info"
290
+ },
291
+ /** Translucent tone bg + blur — used by `glass`. */
292
+ glass: {
293
+ neutral: "bg-popover/70 text-popover-foreground",
294
+ primary: "bg-primary/30 text-primary-foreground",
295
+ danger: "bg-destructive/30 text-destructive-foreground",
296
+ success: "bg-success/30 text-success-foreground",
297
+ warning: "bg-warning/30 text-warning-foreground",
298
+ info: "bg-info/30 text-info-foreground"
299
+ },
300
+ /** Glass + tone-accent border at 50% alpha. */
301
+ glassOutline: {
302
+ neutral: "border-border/50 bg-popover/70 text-popover-foreground",
303
+ primary: "border-primary/50 bg-primary/30 text-primary-foreground",
304
+ danger: "border-destructive/50 bg-destructive/30 text-destructive-foreground",
305
+ success: "border-success/50 bg-success/30 text-success-foreground",
306
+ warning: "border-warning/50 bg-warning/30 text-warning-foreground",
307
+ info: "border-info/50 bg-info/30 text-info-foreground"
308
+ }
309
+ };
310
+
252
311
  // src/utils/SurfaceStyles.ts
253
312
  var surfaceVariants = tv({
254
313
  base: "outline-none transition-colors",
255
314
  variants: {
256
315
  variant: {
257
- /* Opaque fill, no border, light shadow. Tooltips, chips, inline pills. */
316
+ /* Opaque fill, no border, light shadow — tooltips, chips, inline pills. */
258
317
  solid: "shadow-sm",
259
- /* Muted/tinted fill, no border, light shadow. Chat bubbles, inline groups. */
318
+ /* Muted/tinted fill, no border, light shadow chat bubbles, inline groups. */
260
319
  soft: "shadow-sm",
261
- /* Opaque fill + visible border + medium shadow. Default for popovers/menus. */
320
+ /* Opaque fill + visible border + medium shadow default for popovers/menus. */
262
321
  surface: "border shadow-md",
263
- /* Transparent fill + visible border. Static cards, embedded info blocks. */
322
+ /* Transparent fill + visible border static cards, embedded info blocks. */
264
323
  outline: "border bg-transparent",
265
- /* Translucent + blur, no border, medium shadow. Image overlays. */
324
+ /* Translucent + blur, no border, medium shadow image overlays. */
266
325
  glass: "backdrop-blur-md shadow-md",
267
- /* Translucent + blur + subtle border. Premium / hero overlays. */
326
+ /* Translucent + blur + subtle border premium / hero overlays. */
268
327
  "glass-outline": "border backdrop-blur-md shadow-md",
269
- /* Opaque fill, no border, heavy shadow. Modals, drawers, command palette. */
328
+ /* Opaque fill, no border, heavy shadow — modals, drawers, command palette. */
270
329
  elevated: "shadow-xl",
271
- /* Opaque fill, no border, no shadow. Embedded sub-panels inside another surface. */
330
+ /* Opaque fill, no border, no shadow embedded sub-panels inside another surface. */
272
331
  flat: ""
273
332
  },
274
- tone: {
275
- neutral: "",
276
- primary: "",
277
- danger: "",
278
- success: "",
279
- warning: "",
280
- info: ""
281
- },
333
+ tone: { neutral: "", primary: "", danger: "", success: "", warning: "", info: "" },
282
334
  radius: {
283
335
  none: "rounded-none",
284
336
  sm: "rounded-sm",
@@ -297,8 +349,7 @@ var surfaceVariants = tv({
297
349
  xl: "p-6",
298
350
  "2xl": "p-8"
299
351
  },
300
- /* Optional shadow override — when set, beats variant's default shadow via
301
- tailwind-merge precedence. Leave undefined to inherit from variant. */
352
+ /* Optional shadow override — beats variant's default shadow via tailwind-merge precedence. */
302
353
  elevation: {
303
354
  0: "shadow-none",
304
355
  1: "shadow-sm",
@@ -309,147 +360,48 @@ var surfaceVariants = tv({
309
360
  }
310
361
  },
311
362
  compoundVariants: [
312
- /* SOLID + ELEVATED + FLAT — opaque, tone bg, tone foreground. Same color matrix
313
- across these three variants shadow is the only diff (handled by variant base). */
314
- {
315
- variant: ["solid", "elevated", "flat"],
316
- tone: "neutral",
317
- class: "bg-popover text-popover-foreground"
318
- },
319
- {
320
- variant: ["solid", "elevated", "flat"],
321
- tone: "primary",
322
- class: "bg-primary text-primary-foreground"
323
- },
324
- {
325
- variant: ["solid", "elevated", "flat"],
326
- tone: "danger",
327
- class: "bg-destructive text-destructive-foreground"
328
- },
329
- {
330
- variant: ["solid", "elevated", "flat"],
331
- tone: "success",
332
- class: "bg-success text-success-foreground"
333
- },
334
- {
335
- variant: ["solid", "elevated", "flat"],
336
- tone: "warning",
337
- class: "bg-warning text-warning-foreground"
338
- },
339
- {
340
- variant: ["solid", "elevated", "flat"],
341
- tone: "info",
342
- class: "bg-info text-info-foreground"
343
- },
344
- /* SOFT muted/tinted bg, tone-readable text. */
345
- { variant: "soft", tone: "neutral", class: "bg-muted text-foreground" },
346
- { variant: "soft", tone: "primary", class: "bg-primary-soft text-primary" },
347
- { variant: "soft", tone: "danger", class: "bg-destructive-soft text-destructive" },
348
- { variant: "soft", tone: "success", class: "bg-success-soft text-success" },
349
- { variant: "soft", tone: "warning", class: "bg-warning-soft text-warning" },
350
- { variant: "soft", tone: "info", class: "bg-info-soft text-info" },
351
- /* SURFACE popover bg + tone-accent border. Border colours subtly to keep
352
- the panel reading as "neutral surface with [tone] context". */
353
- {
354
- variant: "surface",
355
- tone: "neutral",
356
- class: "border-border bg-popover text-popover-foreground"
357
- },
358
- {
359
- variant: "surface",
360
- tone: "primary",
361
- class: "border-primary/40 bg-popover text-popover-foreground"
362
- },
363
- {
364
- variant: "surface",
365
- tone: "danger",
366
- class: "border-destructive/40 bg-popover text-popover-foreground"
367
- },
368
- {
369
- variant: "surface",
370
- tone: "success",
371
- class: "border-success/40 bg-popover text-popover-foreground"
372
- },
373
- {
374
- variant: "surface",
375
- tone: "warning",
376
- class: "border-warning/40 bg-popover text-popover-foreground"
377
- },
378
- {
379
- variant: "surface",
380
- tone: "info",
381
- class: "border-info/40 bg-popover text-popover-foreground"
382
- },
383
- /* OUTLINE — fully transparent fill, tone border + tone-readable text. */
384
- { variant: "outline", tone: "neutral", class: "border-border text-foreground" },
385
- { variant: "outline", tone: "primary", class: "border-primary text-primary" },
386
- { variant: "outline", tone: "danger", class: "border-destructive text-destructive" },
387
- { variant: "outline", tone: "success", class: "border-success text-success" },
388
- { variant: "outline", tone: "warning", class: "border-warning text-warning" },
389
- { variant: "outline", tone: "info", class: "border-info text-info" },
390
- /* GLASS — translucent tinted fill + blur. Tone fills with alpha; foreground
391
- must read clearly across the blurred background underneath. */
392
- {
393
- variant: "glass",
394
- tone: "neutral",
395
- class: "bg-popover/70 text-popover-foreground"
396
- },
397
- {
398
- variant: "glass",
399
- tone: "primary",
400
- class: "bg-primary/30 text-primary-foreground"
401
- },
402
- {
403
- variant: "glass",
404
- tone: "danger",
405
- class: "bg-destructive/30 text-destructive-foreground"
406
- },
407
- {
408
- variant: "glass",
409
- tone: "success",
410
- class: "bg-success/30 text-success-foreground"
411
- },
412
- {
413
- variant: "glass",
414
- tone: "warning",
415
- class: "bg-warning/30 text-warning-foreground"
416
- },
417
- {
418
- variant: "glass",
419
- tone: "info",
420
- class: "bg-info/30 text-info-foreground"
421
- },
422
- /* GLASS-OUTLINE — glass + tone-accent border at 50% alpha. */
423
- {
424
- variant: "glass-outline",
425
- tone: "neutral",
426
- class: "border-border/50 bg-popover/70 text-popover-foreground"
427
- },
428
- {
429
- variant: "glass-outline",
430
- tone: "primary",
431
- class: "border-primary/50 bg-primary/30 text-primary-foreground"
432
- },
433
- {
434
- variant: "glass-outline",
435
- tone: "danger",
436
- class: "border-destructive/50 bg-destructive/30 text-destructive-foreground"
437
- },
438
- {
439
- variant: "glass-outline",
440
- tone: "success",
441
- class: "border-success/50 bg-success/30 text-success-foreground"
442
- },
443
- {
444
- variant: "glass-outline",
445
- tone: "warning",
446
- class: "border-warning/50 bg-warning/30 text-warning-foreground"
447
- },
448
- {
449
- variant: "glass-outline",
450
- tone: "info",
451
- class: "border-info/50 bg-info/30 text-info-foreground"
452
- }
363
+ /* solid / elevated / flat share the same palette — opaque tone bg + tone foreground. */
364
+ { variant: ["solid", "elevated", "flat"], tone: "neutral", class: Tones.solid.neutral },
365
+ { variant: ["solid", "elevated", "flat"], tone: "primary", class: Tones.solid.primary },
366
+ { variant: ["solid", "elevated", "flat"], tone: "danger", class: Tones.solid.danger },
367
+ { variant: ["solid", "elevated", "flat"], tone: "success", class: Tones.solid.success },
368
+ { variant: ["solid", "elevated", "flat"], tone: "warning", class: Tones.solid.warning },
369
+ { variant: ["solid", "elevated", "flat"], tone: "info", class: Tones.solid.info },
370
+ /* soft — muted/tinted bg, tone-readable text. */
371
+ { variant: "soft", tone: "neutral", class: Tones.soft.neutral },
372
+ { variant: "soft", tone: "primary", class: Tones.soft.primary },
373
+ { variant: "soft", tone: "danger", class: Tones.soft.danger },
374
+ { variant: "soft", tone: "success", class: Tones.soft.success },
375
+ { variant: "soft", tone: "warning", class: Tones.soft.warning },
376
+ { variant: "soft", tone: "info", class: Tones.soft.info },
377
+ /* surface — popover bg + tone-accent border. */
378
+ { variant: "surface", tone: "neutral", class: Tones.surface.neutral },
379
+ { variant: "surface", tone: "primary", class: Tones.surface.primary },
380
+ { variant: "surface", tone: "danger", class: Tones.surface.danger },
381
+ { variant: "surface", tone: "success", class: Tones.surface.success },
382
+ { variant: "surface", tone: "warning", class: Tones.surface.warning },
383
+ { variant: "surface", tone: "info", class: Tones.surface.info },
384
+ /* outline — transparent fill, tone border + tone text. */
385
+ { variant: "outline", tone: "neutral", class: Tones.outline.neutral },
386
+ { variant: "outline", tone: "primary", class: Tones.outline.primary },
387
+ { variant: "outline", tone: "danger", class: Tones.outline.danger },
388
+ { variant: "outline", tone: "success", class: Tones.outline.success },
389
+ { variant: "outline", tone: "warning", class: Tones.outline.warning },
390
+ { variant: "outline", tone: "info", class: Tones.outline.info },
391
+ /* glass translucent tinted fill + blur. */
392
+ { variant: "glass", tone: "neutral", class: Tones.glass.neutral },
393
+ { variant: "glass", tone: "primary", class: Tones.glass.primary },
394
+ { variant: "glass", tone: "danger", class: Tones.glass.danger },
395
+ { variant: "glass", tone: "success", class: Tones.glass.success },
396
+ { variant: "glass", tone: "warning", class: Tones.glass.warning },
397
+ { variant: "glass", tone: "info", class: Tones.glass.info },
398
+ /* glass-outline glass + tone border at 50% alpha. */
399
+ { variant: "glass-outline", tone: "neutral", class: Tones.glassOutline.neutral },
400
+ { variant: "glass-outline", tone: "primary", class: Tones.glassOutline.primary },
401
+ { variant: "glass-outline", tone: "danger", class: Tones.glassOutline.danger },
402
+ { variant: "glass-outline", tone: "success", class: Tones.glassOutline.success },
403
+ { variant: "glass-outline", tone: "warning", class: Tones.glassOutline.warning },
404
+ { variant: "glass-outline", tone: "info", class: Tones.glassOutline.info }
453
405
  ],
454
406
  defaultVariants: {
455
407
  variant: "surface",
@@ -511,6 +463,6 @@ var Equality = {
511
463
  }
512
464
  };
513
465
 
514
- export { ButtonType, ColorExtensions, CssExtensions, Equality, HtmlElement, Key, Layer, OptionalExtensions, PressExtensions, TransitionExtensions, composeEventHandlers, dataAttr, layerStyle, surfaceVariants, utils_exports };
515
- //# sourceMappingURL=chunk-TZETHHW5.js.map
516
- //# sourceMappingURL=chunk-TZETHHW5.js.map
466
+ export { ButtonType, ColorExtensions, CssExtensions, Equality, HtmlElement, Key, Layer, OptionalExtensions, PressExtensions, Tones, TransitionExtensions, composeEventHandlers, dataAttr, layerStyle, surfaceVariants, utils_exports };
467
+ //# sourceMappingURL=chunk-RDDIOVK4.js.map
468
+ //# sourceMappingURL=chunk-RDDIOVK4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/index.ts","../src/utils/composeEventHandlers.ts","../src/utils/dataAttr.ts","../src/utils/CssExtensions.ts","../src/utils/ColorExtensions.ts","../src/utils/OptionalExtensions.ts","../src/utils/PressExtensions.ts","../src/utils/HtmlExtensions.ts","../src/utils/KeyboardExtensions.ts","../src/utils/TransitionExtensions.ts","../src/utils/Tones.ts","../src/utils/SurfaceStyles.ts","../src/utils/Layers.ts","../src/utils/Equality.ts"],"names":[],"mappings":"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","file":"chunk-RDDIOVK4.js","sourcesContent":["export { cn } from './cn';\nexport { composeRefs } from './composeRefs';\nexport { composeEventHandlers } from './composeEventHandlers';\nexport { dataAttr } from './dataAttr';\nexport { tv, type VariantProps } from './tv';\nexport type {\n PolymorphicProps,\n PolymorphicPropsWithoutRef,\n PolymorphicRef,\n} from './polymorphic';\nexport { CssExtensions } from './CssExtensions';\nexport type {\n PaddingToken,\n RadiusToken,\n SizeValue,\n PaddingProp,\n RadiusProp,\n BoxSizeOverrides,\n SizeUnion,\n SizePreset,\n AbsolutePositionPreset,\n AbsoluteInsetOverrides,\n AbsolutePosition,\n} from './CssExtensions';\nexport { ColorExtensions } from './ColorExtensions';\nexport type { ColorTone, ColorOverride, ColorProp } from './ColorExtensions';\nexport { OptionalExtensions } from './OptionalExtensions';\nexport { PressExtensions, type PressEvent } from './PressExtensions';\nexport { HtmlElement, ButtonType } from './HtmlExtensions';\nexport { Key } from './KeyboardExtensions';\nexport { TransitionExtensions } from './TransitionExtensions';\nexport type {\n PresenceAnimationDurationProp,\n PresenceAnimationDuration,\n} from './TransitionExtensions';\nexport { surfaceVariants } from './SurfaceStyles';\nexport type {\n SurfaceVariants,\n SurfaceVariant,\n SurfaceTone,\n SurfaceRadius,\n SurfacePadding,\n SurfaceElevation,\n} from './SurfaceStyles';\nexport { Layer, layerStyle, type LayerName } from './Layers';\nexport { Equality, type EqualityComparer } from './Equality';\nexport type { Tone, Size, Radius, Padding, Elevation } from './StyleTokens';\nexport { Tones, type ToneFamily } from './Tones';\n","import type { SyntheticEvent } from 'react';\n\n/**\n * Chain two event handlers. The first handler runs, then the second — unless\n * the first called `event.preventDefault()`, in which case the second is skipped.\n * Use when overriding a default handler from a parent while still allowing\n * the consumer to provide their own.\n */\nexport function composeEventHandlers<E extends SyntheticEvent>(\n theirHandler: ((event: E) => void) | undefined,\n ourHandler: (event: E) => void,\n { checkForDefaultPrevented = true }: { checkForDefaultPrevented?: boolean } = {},\n): (event: E) => void {\n return (event) => {\n theirHandler?.(event);\n if (!checkForDefaultPrevented || !event.defaultPrevented) {\n ourHandler(event);\n }\n };\n}\n","/**\n * Returns `\"\"` when the condition is true, `undefined` otherwise.\n * Use for boolean `data-*` attributes — React strips the attr when value is undefined,\n * so the DOM cleanly toggles `data-state` rather than `data-state=\"false\"`.\n */\nexport function dataAttr(condition: boolean | undefined): '' | undefined {\n return condition ? '' : undefined;\n}\n","import type { CSSProperties } from 'react';\n\n/** CSS-value extensions — types, token maps, resolvers. Call as `CssExtensions.x(...)`. */\n\n// =============================================================================\n// Tokens (types — individually exported; types are erased, no shaking concern)\n// =============================================================================\n\nexport type PaddingToken = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type RadiusToken = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\nexport type SizeValue = string | number;\nexport type PaddingProp = PaddingToken | { x?: SizeValue; y?: SizeValue };\nexport type RadiusProp = RadiusToken | SizeValue;\nexport interface BoxSizeOverrides {\n width?: SizeValue;\n height?: SizeValue;\n minWidth?: SizeValue;\n minHeight?: SizeValue;\n maxWidth?: SizeValue;\n maxHeight?: SizeValue;\n /** Shorthand for square boxes — applied as fallback for both `width` and `height`. Explicit `width`/`height` win when both are set. */\n boxSize?: SizeValue;\n /** CSS `aspect-ratio`. String like `'16/9'` or number like `1.5`. Pairs naturally with a single width/height. */\n aspectRatio?: string | number;\n}\n\n/** Canonical size preset vocabulary — shared across components. Each component picks the subset it supports via `Extract<SizePreset, ...>` and owns its internal dimension mapping. */\nexport type SizePreset = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\n/* Absolute-positioning tokens — preset 9-anchor enum + raw inset overrides. */\n\nexport type AbsolutePositionPreset =\n | 'top-right'\n | 'top-left'\n | 'bottom-right'\n | 'bottom-left'\n | 'top'\n | 'bottom'\n | 'left'\n | 'right'\n | 'center';\n\nexport interface AbsoluteInsetOverrides {\n top?: SizeValue;\n right?: SizeValue;\n bottom?: SizeValue;\n left?: SizeValue;\n}\n\nexport type AbsolutePosition = AbsolutePositionPreset | AbsoluteInsetOverrides;\n\n// =============================================================================\n// Token → CSS maps\n// =============================================================================\n\nconst PADDING_TOKEN_TO_CSS: Record<Exclude<PaddingToken, 'none'>, string> = {\n xs: '0.5rem',\n sm: '0.75rem',\n md: '1rem',\n lg: '1.5rem',\n xl: '2rem',\n};\n\nconst RADIUS_TOKEN_TO_CSS: Record<Exclude<RadiusToken, 'none' | 'full'>, string> = {\n xs: '0.125rem',\n sm: '0.25rem',\n md: '0.5rem',\n lg: '0.75rem',\n xl: '1rem',\n};\n\n// =============================================================================\n// Internal resolvers\n// =============================================================================\n\nfunction toCss(v: SizeValue): string {\n return typeof v === 'number' ? `${v}px` : v;\n}\n\nfunction resolvePadding(padding: PaddingProp | undefined): CSSProperties | undefined {\n if (!padding) return undefined;\n if (typeof padding === 'string') {\n if (padding === 'none') {\n return { paddingLeft: 0, paddingRight: 0, paddingTop: 0, paddingBottom: 0 };\n }\n const v = PADDING_TOKEN_TO_CSS[padding];\n return { paddingLeft: v, paddingRight: v, paddingTop: v, paddingBottom: v };\n }\n const style: CSSProperties = {};\n if (padding.x !== undefined) {\n const v = toCss(padding.x);\n style.paddingLeft = v;\n style.paddingRight = v;\n }\n if (padding.y !== undefined) {\n const v = toCss(padding.y);\n style.paddingTop = v;\n style.paddingBottom = v;\n }\n return style;\n}\n\nfunction resolveRadius(radius: RadiusProp | undefined): CSSProperties | undefined {\n if (radius === undefined || radius === null) return undefined;\n if (typeof radius === 'number') return { borderRadius: `${radius}px` };\n if (radius === 'none') return { borderRadius: 0 };\n if (radius === 'full') return { borderRadius: '9999px' };\n if (radius in RADIUS_TOKEN_TO_CSS) {\n return {\n borderRadius:\n RADIUS_TOKEN_TO_CSS[radius as Exclude<RadiusToken, 'none' | 'full'>],\n };\n }\n return { borderRadius: radius };\n}\n\nfunction resolveBoxSize(overrides: BoxSizeOverrides): CSSProperties | undefined {\n const style: CSSProperties = {};\n let hasAny = false;\n // boxSize is the fallback for width AND height — explicit dims win.\n const effectiveWidth = overrides.width ?? overrides.boxSize;\n const effectiveHeight = overrides.height ?? overrides.boxSize;\n if (effectiveWidth !== undefined) {\n style.width = toCss(effectiveWidth);\n hasAny = true;\n }\n if (effectiveHeight !== undefined) {\n style.height = toCss(effectiveHeight);\n hasAny = true;\n }\n if (overrides.minWidth !== undefined) {\n style.minWidth = toCss(overrides.minWidth);\n hasAny = true;\n }\n if (overrides.minHeight !== undefined) {\n style.minHeight = toCss(overrides.minHeight);\n hasAny = true;\n }\n if (overrides.maxWidth !== undefined) {\n style.maxWidth = toCss(overrides.maxWidth);\n hasAny = true;\n }\n if (overrides.maxHeight !== undefined) {\n style.maxHeight = toCss(overrides.maxHeight);\n hasAny = true;\n }\n if (overrides.aspectRatio !== undefined) {\n style.aspectRatio = String(overrides.aspectRatio);\n hasAny = true;\n }\n return hasAny ? style : undefined;\n}\n\n/** Union type for size props that accept either a named preset, a raw value (applied as `boxSize`), or an explicit dim object. */\nexport type SizeUnion<P extends string> =\n | P\n | (string & {}) // keeps preset literals in autocomplete while accepting any CSS unit string\n | number\n | BoxSizeOverrides;\n\n/**\n * Parse a union-style size prop into (a) a preset name (if matched), or (b) a `BoxSizeOverrides` payload.\n *\n * Resolution order:\n * - `undefined` → `{}`\n * - object → `{ box: input }`\n * - preset string → `{ preset: input }`\n * - any other string → `{ box: { boxSize: input } }`\n * - number → `{ box: { boxSize: input } }`\n */\nfunction parseSizeUnion<P extends string>(\n input: SizeUnion<P> | undefined,\n presets: ReadonlySet<string>,\n): { preset?: P; box?: BoxSizeOverrides } {\n if (input === undefined) return {};\n if (typeof input === 'object' && input !== null) return { box: input };\n if (typeof input === 'string' && presets.has(input)) return { preset: input as P };\n if (typeof input === 'number' || typeof input === 'string') {\n return { box: { boxSize: input } };\n }\n return {};\n}\n\n// =============================================================================\n// Grouped namespace export\n// =============================================================================\n\nexport const CssExtensions = {\n toCss,\n resolvePadding,\n resolveRadius,\n resolveBoxSize,\n parseSizeUnion,\n PADDING_TOKEN_TO_CSS,\n RADIUS_TOKEN_TO_CSS,\n} as const;\n","import type { CSSProperties } from 'react';\n\n/* Tone vocabulary shared by tone-aware components (Button, Checkbox, ToggleButton, Tag, Alert, etc.). */\nexport type ColorTone = 'primary' | 'neutral' | 'danger' | 'success' | 'warning';\n\n/* Explicit color overrides for the active tone's slot set. Pair with a base `tone` prop on the component. */\nexport interface ColorOverride {\n /* Main background / fill color. Drives `bg-{tone}`, `hover:bg-{tone}/X`, `active:bg-{tone}/X`, `border-{tone}`, `ring-{tone}`. */\n bg?: string;\n\n /* Text/icon color on top of `bg`. Drives `text-{tone}-foreground`. */\n text?: string;\n\n /* Light tinted background for soft variants. Drives `bg-{tone}-soft`. */\n soft?: string;\n\n /* Text on top of `soft` background. Drives `text-{tone}-soft-foreground`. */\n softText?: string;\n\n /* Focus ring color override (else inherits the component's tone). */\n ring?: string;\n}\n\n/* Accepted shapes for the `color` prop: a single seed string (lib derives rest) OR an explicit slot override object. */\nexport type ColorProp = string | ColorOverride;\n\n/* Per-tone CSS variable name suffixes (after `--color-`). */\nconst TONE_TOKEN_MAP: Record<\n ColorTone,\n { main: string; fg: string; soft: string; softFg: string }\n> = {\n primary: { main: 'primary', fg: 'primary-foreground', soft: 'primary-soft', softFg: 'primary-soft-foreground' },\n neutral: { main: 'foreground', fg: 'background', soft: 'muted', softFg: 'foreground' },\n danger: { main: 'destructive', fg: 'destructive-foreground', soft: 'destructive-soft', softFg: 'destructive-soft-foreground' },\n success: { main: 'success', fg: 'success-foreground', soft: 'success-soft', softFg: 'success-soft-foreground' },\n warning: { main: 'warning', fg: 'warning-foreground', soft: 'warning-soft', softFg: 'warning-soft-foreground' },\n};\n\n/**\n * Convert a `color` / `colors` prop into a CSS-variable override style for\n * the active tone's slot set. Returned style overrides the component's theme\n * tokens locally — every Tailwind utility (`bg-{tone}`, `hover:bg-{tone}/X`,\n * `text-{tone}-foreground`, etc.) that references the var picks it up\n * automatically. No variant config refactor required.\n *\n * Single-seed mode (`input` is a string):\n * - `bg` ← seed\n * - `text` ← white (default contrast; override via `colors.text`)\n * - `soft` ← seed mixed 12% over white via `color-mix(in oklch, ...)`\n * - `softText` ← seed\n * - `ring` ← seed\n *\n * Object mode (`input` is a `ColorOverride`):\n * - Each slot independently overridable; unset slots retain the theme default.\n */\nfunction toneColorOverride(\n input: ColorProp | undefined,\n tone: ColorTone | undefined,\n): CSSProperties | undefined {\n if (input === undefined || input === null) return undefined;\n const activeTone = tone ?? 'primary';\n const tokens = TONE_TOKEN_MAP[activeTone];\n const out: Record<string, string> = {};\n\n if (typeof input === 'string') {\n out[`--color-${tokens.main}`] = input;\n out[`--color-${tokens.fg}`] = '#ffffff';\n out[`--color-${tokens.soft}`] = `color-mix(in oklch, ${input} 12%, white)`;\n out[`--color-${tokens.softFg}`] = input;\n out['--color-ring'] = input;\n } else {\n if (input.bg !== undefined) out[`--color-${tokens.main}`] = input.bg;\n if (input.text !== undefined) out[`--color-${tokens.fg}`] = input.text;\n if (input.soft !== undefined) out[`--color-${tokens.soft}`] = input.soft;\n if (input.softText !== undefined) out[`--color-${tokens.softFg}`] = input.softText;\n if (input.ring !== undefined) out['--color-ring'] = input.ring;\n }\n\n return Object.keys(out).length > 0 ? (out as CSSProperties) : undefined;\n}\n\n// =============================================================================\n// Grouped namespace export\n// =============================================================================\n\nexport const ColorExtensions = {\n toneColorOverride,\n TONE_TOKEN_MAP,\n} as const;\n","/** Optional value extensions — call as `OptionalExtensions.x(...)`. */\n\n/**\n * Construct an optional from a `(condition, value)` pair: returns `value` when\n * `condition` is truthy, otherwise `undefined`. Use to keep DOM attributes\n * absent when their default/false meaning is what we want (e.g. `aria-busy`,\n * `tabIndex`, `disabled`).\n */\nfunction from<T>(condition: unknown, value: T): T | undefined {\n return condition ? value : undefined;\n}\n\nexport const OptionalExtensions = {\n from,\n} as const;\n","import type { KeyboardEvent, PointerEvent } from 'react';\n\n/** Press-interaction extensions — types + constants shared by interactive components. */\n\n/** Unified press event — pointer OR keyboard activation on any HTML element. */\nexport type PressEvent<T extends HTMLElement = HTMLElement> =\n | PointerEvent<T>\n | KeyboardEvent<T>;\n\nexport const PressExtensions = {\n /**\n * Bounds for `longPressDelay` props. Below `min`: overlaps with normal\n * click latency, too easy to trigger accidentally. Above `max`: clearly a\n * developer error (5-min hold). `default` is the conventional 500ms.\n */\n longPressDelay: {\n min: 200,\n max: 300_000,\n default: 500,\n },\n} as const;\n","/* HTML attribute & element value enums (const + type pairs). */\n\n/* HTML element tag names — for JSX intrinsics and polymorphic `Comp` variables. */\nexport const HtmlElement = {\n Button: 'button',\n Anchor: 'a',\n Span: 'span',\n Div: 'div',\n} as const;\nexport type HtmlElement = (typeof HtmlElement)[keyof typeof HtmlElement];\n\n/* HTML `<button type=\"\">` attribute. */\nexport const ButtonType = {\n Button: 'button',\n Submit: 'submit',\n Reset: 'reset',\n} as const;\nexport type ButtonType = (typeof ButtonType)[keyof typeof ButtonType];\n","/* Keyboard key values from `KeyboardEvent.key`. Add new entries as components need them. */\nexport const Key = {\n Space: ' ',\n Enter: 'Enter',\n Escape: 'Escape',\n Tab: 'Tab',\n Backspace: 'Backspace',\n Delete: 'Delete',\n Home: 'Home',\n End: 'End',\n PageUp: 'PageUp',\n PageDown: 'PageDown',\n ArrowUp: 'ArrowUp',\n ArrowDown: 'ArrowDown',\n ArrowLeft: 'ArrowLeft',\n ArrowRight: 'ArrowRight',\n} as const;\nexport type Key = (typeof Key)[keyof typeof Key];\n","/* Transition / animation utility extensions — duration normalization, defaults. Call as `TransitionExtensions.x(...)`. */\n\n// =============================================================================\n// Types — presence-style asymmetric durations (enter/exit). Not every animation\n// has an enter/exit phase (loops, one-shots, springs); this shape applies\n// specifically to mount/unmount or appear/disappear transitions.\n// =============================================================================\n\n/** Input prop — symmetric number OR asymmetric `{ enter, exit }`. */\nexport type PresenceAnimationDurationProp =\n | number\n | { enter?: number; exit?: number };\n\n/** Resolved (canonical) — both sides always present. */\nexport interface PresenceAnimationDuration {\n enter: number;\n exit: number;\n}\n\n// =============================================================================\n// Defaults\n// =============================================================================\n\nconst DEFAULT_DURATION_MS = 200;\n\n// =============================================================================\n// Internal resolvers\n// =============================================================================\n\nfunction resolveDuration(\n d: PresenceAnimationDurationProp | undefined,\n): PresenceAnimationDuration {\n if (typeof d === 'number') return { enter: d, exit: d };\n if (d && typeof d === 'object') {\n return {\n enter: d.enter ?? DEFAULT_DURATION_MS,\n exit: d.exit ?? DEFAULT_DURATION_MS,\n };\n }\n return { enter: DEFAULT_DURATION_MS, exit: DEFAULT_DURATION_MS };\n}\n\n// =============================================================================\n// Grouped namespace export\n// =============================================================================\n\nexport const TransitionExtensions = {\n resolveDuration,\n duration: { default: DEFAULT_DURATION_MS },\n} as const;\n","import type { Tone } from './StyleTokens';\n\n/* Contains the (variant-family × tone) → Tailwind class lookup shared between\n `surfaceVariants` and `buttonVariants` (and any future variant config). */\n\n/** Represents a tone-family — the variant group that picks the same bg/border/text palette. */\nexport type ToneFamily = 'solid' | 'soft' | 'surface' | 'outline' | 'glass' | 'glassOutline';\n\n/** Contains the cross-engine palette: bg / text (+ border where applicable) per tone-family × tone. */\nexport const Tones: Record<ToneFamily, Record<Tone, string>> = {\n /** Opaque tone bg + foreground. Used by `solid`, `elevated`, `flat`, button defaults. */\n solid: {\n neutral: 'bg-popover text-popover-foreground',\n primary: 'bg-primary text-primary-foreground',\n danger: 'bg-destructive text-destructive-foreground',\n success: 'bg-success text-success-foreground',\n warning: 'bg-warning text-warning-foreground',\n info: 'bg-info text-info-foreground',\n },\n /** Muted/tinted bg + tone-readable foreground. */\n soft: {\n neutral: 'bg-muted text-foreground',\n primary: 'bg-primary-soft text-primary',\n danger: 'bg-destructive-soft text-destructive',\n success: 'bg-success-soft text-success',\n warning: 'bg-warning-soft text-warning',\n info: 'bg-info-soft text-info',\n },\n /** Popover bg + tone-accent border. The \"default\" subtle look. */\n surface: {\n neutral: 'border-border bg-popover text-popover-foreground',\n primary: 'border-primary/40 bg-popover text-popover-foreground',\n danger: 'border-destructive/40 bg-popover text-popover-foreground',\n success: 'border-success/40 bg-popover text-popover-foreground',\n warning: 'border-warning/40 bg-popover text-popover-foreground',\n info: 'border-info/40 bg-popover text-popover-foreground',\n },\n /** Transparent bg, tone border + tone text. */\n outline: {\n neutral: 'border-border text-foreground',\n primary: 'border-primary text-primary',\n danger: 'border-destructive text-destructive',\n success: 'border-success text-success',\n warning: 'border-warning text-warning',\n info: 'border-info text-info',\n },\n /** Translucent tone bg + blur — used by `glass`. */\n glass: {\n neutral: 'bg-popover/70 text-popover-foreground',\n primary: 'bg-primary/30 text-primary-foreground',\n danger: 'bg-destructive/30 text-destructive-foreground',\n success: 'bg-success/30 text-success-foreground',\n warning: 'bg-warning/30 text-warning-foreground',\n info: 'bg-info/30 text-info-foreground',\n },\n /** Glass + tone-accent border at 50% alpha. */\n glassOutline: {\n neutral: 'border-border/50 bg-popover/70 text-popover-foreground',\n primary: 'border-primary/50 bg-primary/30 text-primary-foreground',\n danger: 'border-destructive/50 bg-destructive/30 text-destructive-foreground',\n success: 'border-success/50 bg-success/30 text-success-foreground',\n warning: 'border-warning/50 bg-warning/30 text-warning-foreground',\n info: 'border-info/50 bg-info/30 text-info-foreground',\n },\n};\n","/* Provides the cross-domain surface style engine — variant × tone × radius × padding × elevation. */\n\nimport { tv, type VariantProps } from './tv';\nimport { Tones } from './Tones';\n\n/** Provides the tailwind-variants config for every \"block with a visual treatment\" surface. */\nexport const surfaceVariants = tv({\n base: 'outline-none transition-colors',\n variants: {\n variant: {\n /* Opaque fill, no border, light shadow — tooltips, chips, inline pills. */\n solid: 'shadow-sm',\n /* Muted/tinted fill, no border, light shadow — chat bubbles, inline groups. */\n soft: 'shadow-sm',\n /* Opaque fill + visible border + medium shadow — default for popovers/menus. */\n surface: 'border shadow-md',\n /* Transparent fill + visible border — static cards, embedded info blocks. */\n outline: 'border bg-transparent',\n /* Translucent + blur, no border, medium shadow — image overlays. */\n glass: 'backdrop-blur-md shadow-md',\n /* Translucent + blur + subtle border — premium / hero overlays. */\n 'glass-outline': 'border backdrop-blur-md shadow-md',\n /* Opaque fill, no border, heavy shadow — modals, drawers, command palette. */\n elevated: 'shadow-xl',\n /* Opaque fill, no border, no shadow — embedded sub-panels inside another surface. */\n flat: '',\n },\n\n tone: { neutral: '', primary: '', danger: '', success: '', warning: '', info: '' },\n\n radius: {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n full: 'rounded-full',\n },\n\n padding: {\n none: 'p-0',\n xs: 'p-1',\n sm: 'p-2',\n md: 'p-3',\n lg: 'p-4',\n xl: 'p-6',\n '2xl': 'p-8',\n },\n\n /* Optional shadow override — beats variant's default shadow via tailwind-merge precedence. */\n elevation: {\n 0: 'shadow-none',\n 1: 'shadow-sm',\n 2: 'shadow-md',\n 3: 'shadow-lg',\n 4: 'shadow-xl',\n 5: 'shadow-2xl',\n },\n },\n\n compoundVariants: [\n /* solid / elevated / flat share the same palette — opaque tone bg + tone foreground. */\n { variant: ['solid', 'elevated', 'flat'], tone: 'neutral', class: Tones.solid.neutral },\n { variant: ['solid', 'elevated', 'flat'], tone: 'primary', class: Tones.solid.primary },\n { variant: ['solid', 'elevated', 'flat'], tone: 'danger', class: Tones.solid.danger },\n { variant: ['solid', 'elevated', 'flat'], tone: 'success', class: Tones.solid.success },\n { variant: ['solid', 'elevated', 'flat'], tone: 'warning', class: Tones.solid.warning },\n { variant: ['solid', 'elevated', 'flat'], tone: 'info', class: Tones.solid.info },\n\n /* soft — muted/tinted bg, tone-readable text. */\n { variant: 'soft', tone: 'neutral', class: Tones.soft.neutral },\n { variant: 'soft', tone: 'primary', class: Tones.soft.primary },\n { variant: 'soft', tone: 'danger', class: Tones.soft.danger },\n { variant: 'soft', tone: 'success', class: Tones.soft.success },\n { variant: 'soft', tone: 'warning', class: Tones.soft.warning },\n { variant: 'soft', tone: 'info', class: Tones.soft.info },\n\n /* surface — popover bg + tone-accent border. */\n { variant: 'surface', tone: 'neutral', class: Tones.surface.neutral },\n { variant: 'surface', tone: 'primary', class: Tones.surface.primary },\n { variant: 'surface', tone: 'danger', class: Tones.surface.danger },\n { variant: 'surface', tone: 'success', class: Tones.surface.success },\n { variant: 'surface', tone: 'warning', class: Tones.surface.warning },\n { variant: 'surface', tone: 'info', class: Tones.surface.info },\n\n /* outline — transparent fill, tone border + tone text. */\n { variant: 'outline', tone: 'neutral', class: Tones.outline.neutral },\n { variant: 'outline', tone: 'primary', class: Tones.outline.primary },\n { variant: 'outline', tone: 'danger', class: Tones.outline.danger },\n { variant: 'outline', tone: 'success', class: Tones.outline.success },\n { variant: 'outline', tone: 'warning', class: Tones.outline.warning },\n { variant: 'outline', tone: 'info', class: Tones.outline.info },\n\n /* glass — translucent tinted fill + blur. */\n { variant: 'glass', tone: 'neutral', class: Tones.glass.neutral },\n { variant: 'glass', tone: 'primary', class: Tones.glass.primary },\n { variant: 'glass', tone: 'danger', class: Tones.glass.danger },\n { variant: 'glass', tone: 'success', class: Tones.glass.success },\n { variant: 'glass', tone: 'warning', class: Tones.glass.warning },\n { variant: 'glass', tone: 'info', class: Tones.glass.info },\n\n /* glass-outline — glass + tone border at 50% alpha. */\n { variant: 'glass-outline', tone: 'neutral', class: Tones.glassOutline.neutral },\n { variant: 'glass-outline', tone: 'primary', class: Tones.glassOutline.primary },\n { variant: 'glass-outline', tone: 'danger', class: Tones.glassOutline.danger },\n { variant: 'glass-outline', tone: 'success', class: Tones.glassOutline.success },\n { variant: 'glass-outline', tone: 'warning', class: Tones.glassOutline.warning },\n { variant: 'glass-outline', tone: 'info', class: Tones.glassOutline.info },\n ],\n\n defaultVariants: {\n variant: 'surface',\n tone: 'neutral',\n radius: 'md',\n padding: 'none',\n },\n});\n\n/** Represents the union of every surface variant prop. */\nexport type SurfaceVariants = VariantProps<typeof surfaceVariants>;\n\n/** Represents the visual-recipe axis (solid · soft · surface · outline · glass · etc.). */\nexport type SurfaceVariant = NonNullable<SurfaceVariants['variant']>;\n\n/** Represents the semantic colour axis (neutral · primary · danger · success · warning · info). */\nexport type SurfaceTone = NonNullable<SurfaceVariants['tone']>;\n\n/** Represents the corner-roundness axis (none · sm · md · lg · xl · 2xl · full). */\nexport type SurfaceRadius = NonNullable<SurfaceVariants['radius']>;\n\n/** Represents the interior-padding axis (none · xs · sm · md · lg · xl · 2xl). */\nexport type SurfacePadding = NonNullable<SurfaceVariants['padding']>;\n\n/** Represents the shadow-depth override (0–5); omitted means the variant decides. */\nexport type SurfaceElevation = NonNullable<SurfaceVariants['elevation']>;\n","/* Provides semantic z-index tiers — the single source of truth for stacking order. */\n\n/** Contains the semantic z-index tiers; matching `z-{name}` utilities ship via @theme. */\nexport const Layer = {\n /** Slips under the base layer; visually hidden. */\n Hide: -1,\n /** Sits in the default DOM flow with no z-index applied. */\n Base: 0,\n /** Slightly elevates over siblings — badges, sticky list items, in-grid overlays. */\n Raised: 10,\n /** Pins widgets inside a section — panels, inline overlays. */\n Docked: 20,\n /** Anchors a page-level sticky header or footer. */\n Sticky: 30,\n /** Hosts system banners — cookie notice, status banner, persistent FAB. */\n Banner: 40,\n /** Hosts dropdowns, popovers, comboboxes, menus, hover-cards anchored to a trigger. */\n Dropdown: 50,\n /** Dims the page behind a modal — backdrop / scrim layer. */\n Overlay: 60,\n /** Hosts modal / dialog / drawer / sheet content above its backdrop. */\n Modal: 70,\n /** Hosts popovers / menus opened FROM inside a modal — must beat Modal. */\n Popover: 80,\n /** Hosts toasts, snackbars, undo bars — survives above modals. */\n Toast: 90,\n /** Hosts tooltips and live-cursors — highest functional layer. */\n Tooltip: 100,\n /** Hosts DevTools / design-system inspector overlays — always wins. */\n Debug: 9999,\n} as const;\n\n/** Represents the name of a semantic z-index tier. */\nexport type LayerName = keyof typeof Layer;\n\n/** Provides an inline `style` object for programmatic z-index assignment. */\nexport function layerStyle(layer: LayerName): { zIndex: number } {\n return { zIndex: Layer[layer] };\n}\n","/* Provides reusable equality comparers for selection components and diff checks. */\n\n/** Represents a function that decides whether two values are equal. */\nexport type EqualityComparer<T> = (a: T, b: T) => boolean;\n\n/** Contains the standard equality comparers. */\nexport const Equality = {\n /** Checks NaN-safe strict equality (Object.is) — fits primitives + reference equality for objects. */\n strictEquals: <T>(a: T, b: T): boolean => Object.is(a, b),\n\n /** Checks plain `===` equality (NaN !== NaN). */\n referenceEquals: <T>(a: T, b: T): boolean => a === b,\n\n /** Provides a comparer that compares two objects by an extracted scalar key. */\n byKey:\n <T, K = unknown>(extract: (item: T) => K): EqualityComparer<T> =>\n (a, b) =>\n Object.is(extract(a), extract(b)),\n\n /** Checks shallow object equality — equal iff every key has identical (Object.is) value. */\n shallowEquals: <T extends Record<string, unknown>>(a: T, b: T): boolean => {\n if (Object.is(a, b)) return true;\n if (a == null || b == null) return false;\n const ak = Object.keys(a);\n const bk = Object.keys(b);\n if (ak.length !== bk.length) return false;\n return ak.every((k) => Object.is(a[k], b[k]));\n },\n} as const;\n"]}
@@ -1,9 +1,9 @@
1
- import { listboxItemVariants, listboxVariants, listboxGroupLabelVariants, listboxSeparatorVariants, listboxEmptyVariants } from './chunk-X5INLQTJ.js';
2
- import { PopoverTrigger, Popover, PopoverContent } from './chunk-UJDAJMFJ.js';
3
- import { startOfMonth, isSameDay, isToday, isDateDisabled, parseISODate, formatISODate, parseISOTime, Tag, addMonths, Kbd, addDays, buildMonthGrid, MONTHS_LONG, WEEKDAYS_SHORT, formatISOTime, startOfDay, isInRange } from './chunk-V5RYX33D.js';
1
+ import { listboxItemVariants, listboxVariants, listboxGroupLabelVariants, listboxSeparatorVariants, listboxEmptyVariants } from './chunk-CRKW4VXA.js';
2
+ import { PopoverTrigger, Popover, PopoverContent } from './chunk-OMSOGGGK.js';
3
+ import { startOfMonth, isSameDay, isToday, isDateDisabled, parseISODate, formatISODate, parseISOTime, Tag, addMonths, Kbd, addDays, buildMonthGrid, MONTHS_LONG, WEEKDAYS_SHORT, formatISOTime, startOfDay, isInRange } from './chunk-VIWAIXVK.js';
4
4
  import { useControlled } from './chunk-NUMFGKPY.js';
5
5
  import { Icon } from './chunk-F227LKWK.js';
6
- import { tv, CssExtensions, ColorExtensions, dataAttr, surfaceVariants, Equality } from './chunk-TZETHHW5.js';
6
+ import { tv, CssExtensions, ColorExtensions, dataAttr, surfaceVariants, Equality } from './chunk-RDDIOVK4.js';
7
7
  import { useFormControl, FormControlProvider, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner, DismissableLayer } from './chunk-BMABNEZX.js';
8
8
  import { useId } from './chunk-KDXJQNB6.js';
9
9
  import { cn, composeRefs } from './chunk-LDRFQG44.js';
@@ -7463,5 +7463,5 @@ var ChatComposer = forwardRef(
7463
7463
  ChatComposer.displayName = "ChatComposer";
7464
7464
 
7465
7465
  export { ADDRESS_COUNTRIES, AddressForm, BUILT_IN_EMOJI, BUILT_IN_FONTS, Calendar, CharacterCount, ChatComposer, Checkbox, CheckboxField, CheckboxGroup, ChoiceCard, CodeEditor, ColorArea, ColorField, ColorPicker, ColorSlider, ColorSwatch, ColorSwatchPicker, ColorWheel, Combobox, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxSeparator, CronInput, CurrencyInput, DateField, DatePicker, DateRangePicker, Editable, EditableCancel, EditableInput, EditablePreview, EditableSubmit, EmailInput, EmojiPicker, Fieldset, FilePicker, FileUpload, FontPicker, FormErrorMessage, FormField, FormHelperText, GradientPicker, IconPicker, InputAddon, InputGroup, JSONEditor, KeyboardShortcutPicker, Knob, Label, LabeledInput, Legend, Listbox, ListboxEmpty, ListboxGroup, ListboxItem, ListboxSeparator, MarkdownEditor, MaskedInput, MultiSelect, MultiSelectContent, MultiSelectItem, MultiSelectTags, MultiSelectTrigger, NumberInput, PHONE_COUNTRIES, PasswordInput, PasswordStrength, PercentInput, PhoneInput, PinInput, Radio, RadioField, RadioGroup, RangeCalendar, ReactionPicker, RecurrenceEditor, SearchInput, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Slider, Stepper, StepperList, StepperPanel, StepperStep, Switch, SwitchField, TagsInput, TelInput, TextInput, Textarea, TimeField, TimePicker, UrlInput, Wizard, WizardFooter, WizardStep, WizardSteps, colorSwatchVariants, gradientToCss, useWizard };
7466
- //# sourceMappingURL=chunk-OP3FW6PX.js.map
7467
- //# sourceMappingURL=chunk-OP3FW6PX.js.map
7466
+ //# sourceMappingURL=chunk-S6RT24VI.js.map
7467
+ //# sourceMappingURL=chunk-S6RT24VI.js.map