@opensite/ui 0.0.9 → 0.1.1

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 (47) hide show
  1. package/dist/animated-dialog.cjs +1 -0
  2. package/dist/animated-dialog.js +1 -0
  3. package/dist/{button-variants-CSFRwdBy.d.cts → button-variants-CbpzhUdJ.d.cts} +1 -7
  4. package/dist/{button-variants-CSFRwdBy.d.ts → button-variants-CbpzhUdJ.d.ts} +1 -7
  5. package/dist/button.cjs +139 -25
  6. package/dist/button.cjs.map +1 -1
  7. package/dist/button.d.cts +1 -1
  8. package/dist/button.d.ts +1 -1
  9. package/dist/button.js +139 -25
  10. package/dist/button.js.map +1 -1
  11. package/dist/components.cjs +140 -25
  12. package/dist/components.cjs.map +1 -1
  13. package/dist/components.d.cts +1 -1
  14. package/dist/components.d.ts +1 -1
  15. package/dist/components.js +140 -25
  16. package/dist/components.js.map +1 -1
  17. package/dist/dynamic-icon.cjs +1 -0
  18. package/dist/dynamic-icon.js +1 -0
  19. package/dist/feature-showcase.cjs +140 -25
  20. package/dist/feature-showcase.cjs.map +1 -1
  21. package/dist/feature-showcase.js +140 -25
  22. package/dist/feature-showcase.js.map +1 -1
  23. package/dist/hooks.cjs +1 -0
  24. package/dist/hooks.js +1 -0
  25. package/dist/index.cjs +140 -25
  26. package/dist/index.cjs.map +1 -1
  27. package/dist/index.d.cts +1 -1
  28. package/dist/index.d.ts +1 -1
  29. package/dist/index.js +140 -25
  30. package/dist/index.js.map +1 -1
  31. package/dist/media-hover-ctas.cjs +1 -0
  32. package/dist/media-hover-ctas.js +1 -0
  33. package/dist/page-hero-banner.cjs +1 -0
  34. package/dist/page-hero-banner.js +1 -0
  35. package/dist/pressable.cjs +140 -25
  36. package/dist/pressable.cjs.map +1 -1
  37. package/dist/pressable.d.cts +1 -1
  38. package/dist/pressable.d.ts +1 -1
  39. package/dist/pressable.js +140 -25
  40. package/dist/pressable.js.map +1 -1
  41. package/dist/registry.cjs +139 -25
  42. package/dist/registry.cjs.map +1 -1
  43. package/dist/registry.js +139 -25
  44. package/dist/registry.js.map +1 -1
  45. package/dist/use-navigation.cjs +1 -0
  46. package/dist/use-navigation.js +1 -0
  47. package/package.json +1 -1
@@ -14,6 +14,6 @@ export { AlternatingBlockSection, AlternatingBlocksProps, AnimatedDialogProps, A
14
14
  import 'react';
15
15
  import 'react/jsx-runtime';
16
16
  import 'class-variance-authority';
17
- import './button-variants-CSFRwdBy.cjs';
17
+ import './button-variants-CbpzhUdJ.cjs';
18
18
  import 'class-variance-authority/types';
19
19
  import '@radix-ui/react-popover';
@@ -14,6 +14,6 @@ export { AlternatingBlockSection, AlternatingBlocksProps, AnimatedDialogProps, A
14
14
  import 'react';
15
15
  import 'react/jsx-runtime';
16
16
  import 'class-variance-authority';
17
- import './button-variants-CSFRwdBy.js';
17
+ import './button-variants-CbpzhUdJ.js';
18
18
  import 'class-variance-authority/types';
19
19
  import '@radix-ui/react-popover';
@@ -1,3 +1,4 @@
1
+ "use client";
1
2
  import * as React4 from 'react';
2
3
  import React4__default, { useId, useRef, useEffect } from 'react';
3
4
  import { clsx } from 'clsx';
@@ -323,34 +324,148 @@ function PageHeroBanner({
323
324
  }
324
325
  );
325
326
  }
326
- var buttonVariants = cva(
327
- "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-button text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
328
- {
329
- variants: {
330
- variant: {
331
- default: "bg-[var(--button-default-bg,hsl(var(--primary)))] text-[var(--button-default-fg,hsl(var(--primary-foreground)))] hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
332
- destructive: "bg-[var(--button-destructive-bg,hsl(var(--destructive)))] text-[var(--button-destructive-fg,white)] hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))] focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
333
- outline: "border-[var(--button-outline-border-width,1px)] border-[var(--button-outline-border,hsl(var(--border)))] bg-[var(--button-outline-bg,hsl(var(--background)))] text-[var(--button-outline-fg,inherit)] shadow-xs hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))] hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))] dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
334
- secondary: "bg-[var(--button-secondary-bg,hsl(var(--secondary)))] text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))] hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
335
- ghost: "bg-[var(--button-ghost-bg,transparent)] text-[var(--button-ghost-fg,inherit)] hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))] hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))] dark:hover:bg-accent/50",
336
- link: "text-[var(--button-link-fg,hsl(var(--primary)))] underline-offset-4 hover:underline"
337
- },
338
- size: {
339
- default: "h-[var(--button-height-md,2.25rem)] px-[var(--button-padding-x-md,1rem)] py-2 has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]",
340
- sm: "h-[var(--button-height-sm,2rem)] rounded-button gap-1.5 px-[var(--button-padding-x-sm,0.75rem)] has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]",
341
- md: "h-[var(--button-height-md,2.25rem)] px-[var(--button-padding-x-md,1rem)] py-2 has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]",
342
- lg: "h-[var(--button-height-lg,2.5rem)] rounded-button px-[var(--button-padding-x-lg,1.5rem)] has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]",
343
- icon: "size-[var(--button-height-md,2.25rem)]",
344
- "icon-sm": "size-[var(--button-height-sm,2rem)]",
345
- "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
346
- }
327
+ var baseStyles = [
328
+ // Layout
329
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
330
+ // Typography - using CSS variables with sensible defaults
331
+ "font-[var(--button-font-family,inherit)]",
332
+ "font-[var(--button-font-weight,500)]",
333
+ "tracking-[var(--button-letter-spacing,0)]",
334
+ "leading-[var(--button-line-height,1.25)]",
335
+ "[text-transform:var(--button-text-transform,none)]",
336
+ "text-sm",
337
+ // Border radius
338
+ "rounded-[var(--button-radius,var(--radius,0.375rem))]",
339
+ // Smooth transition - slower and smoother default
340
+ "transition-[var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
341
+ // Box shadow (master level)
342
+ "shadow-[var(--button-shadow,none)]",
343
+ "hover:shadow-[var(--button-shadow-hover,var(--button-shadow,none))]",
344
+ // Disabled state
345
+ "disabled:pointer-events-none disabled:opacity-50",
346
+ // SVG handling
347
+ "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
348
+ // Focus styles
349
+ "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
350
+ // Invalid state
351
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
352
+ ].join(" ");
353
+ var buttonVariants = cva(baseStyles, {
354
+ variants: {
355
+ variant: {
356
+ // Default (Primary) variant - full customization
357
+ default: [
358
+ "bg-[var(--button-default-bg,hsl(var(--primary)))]",
359
+ "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
360
+ "border-[length:var(--button-default-border-width,0px)]",
361
+ "border-[color:var(--button-default-border,transparent)]",
362
+ "shadow-[var(--button-default-shadow,var(--button-shadow,none))]",
363
+ "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
364
+ "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
365
+ "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
366
+ "hover:shadow-[var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
367
+ ].join(" "),
368
+ // Destructive variant - full customization
369
+ destructive: [
370
+ "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
371
+ "text-[var(--button-destructive-fg,white)]",
372
+ "border-[length:var(--button-destructive-border-width,0px)]",
373
+ "border-[color:var(--button-destructive-border,transparent)]",
374
+ "shadow-[var(--button-destructive-shadow,var(--button-shadow,none))]",
375
+ "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
376
+ "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
377
+ "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
378
+ "hover:shadow-[var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
379
+ "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
380
+ "dark:bg-destructive/60"
381
+ ].join(" "),
382
+ // Outline variant - full customization with proper border handling
383
+ outline: [
384
+ "bg-[var(--button-outline-bg,hsl(var(--background)))]",
385
+ "text-[var(--button-outline-fg,inherit)]",
386
+ "border-[length:var(--button-outline-border-width,1px)]",
387
+ "border-[color:var(--button-outline-border,hsl(var(--border)))]",
388
+ "shadow-[var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
389
+ "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
390
+ "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
391
+ "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
392
+ "hover:shadow-[var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
393
+ "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
394
+ ].join(" "),
395
+ // Secondary variant - full customization
396
+ secondary: [
397
+ "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
398
+ "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
399
+ "border-[length:var(--button-secondary-border-width,0px)]",
400
+ "border-[color:var(--button-secondary-border,transparent)]",
401
+ "shadow-[var(--button-secondary-shadow,var(--button-shadow,none))]",
402
+ "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
403
+ "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
404
+ "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
405
+ "hover:shadow-[var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
406
+ ].join(" "),
407
+ // Ghost variant - full customization
408
+ ghost: [
409
+ "bg-[var(--button-ghost-bg,transparent)]",
410
+ "text-[var(--button-ghost-fg,inherit)]",
411
+ "border-[length:var(--button-ghost-border-width,0px)]",
412
+ "border-[color:var(--button-ghost-border,transparent)]",
413
+ "shadow-[var(--button-ghost-shadow,var(--button-shadow,none))]",
414
+ "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
415
+ "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
416
+ "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
417
+ "hover:shadow-[var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
418
+ "dark:hover:bg-accent/50"
419
+ ].join(" "),
420
+ // Link variant - full customization
421
+ link: [
422
+ "bg-[var(--button-link-bg,transparent)]",
423
+ "text-[var(--button-link-fg,hsl(var(--primary)))]",
424
+ "border-[length:var(--button-link-border-width,0px)]",
425
+ "border-[color:var(--button-link-border,transparent)]",
426
+ "shadow-[var(--button-link-shadow,none)]",
427
+ "hover:bg-[var(--button-link-hover-bg,transparent)]",
428
+ "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
429
+ "hover:shadow-[var(--button-link-shadow-hover,none)]",
430
+ "underline-offset-4 hover:underline"
431
+ ].join(" ")
347
432
  },
348
- defaultVariants: {
349
- variant: "default",
350
- size: "default"
433
+ size: {
434
+ default: [
435
+ "h-[var(--button-height-md,2.25rem)]",
436
+ "px-[var(--button-padding-x-md,1rem)]",
437
+ "py-[var(--button-padding-y-md,0.5rem)]",
438
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
439
+ ].join(" "),
440
+ sm: [
441
+ "h-[var(--button-height-sm,2rem)]",
442
+ "px-[var(--button-padding-x-sm,0.75rem)]",
443
+ "py-[var(--button-padding-y-sm,0.25rem)]",
444
+ "gap-1.5",
445
+ "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
446
+ ].join(" "),
447
+ md: [
448
+ "h-[var(--button-height-md,2.25rem)]",
449
+ "px-[var(--button-padding-x-md,1rem)]",
450
+ "py-[var(--button-padding-y-md,0.5rem)]",
451
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
452
+ ].join(" "),
453
+ lg: [
454
+ "h-[var(--button-height-lg,2.5rem)]",
455
+ "px-[var(--button-padding-x-lg,1.5rem)]",
456
+ "py-[var(--button-padding-y-lg,0.5rem)]",
457
+ "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
458
+ ].join(" "),
459
+ icon: "size-[var(--button-height-md,2.25rem)]",
460
+ "icon-sm": "size-[var(--button-height-sm,2rem)]",
461
+ "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
351
462
  }
463
+ },
464
+ defaultVariants: {
465
+ variant: "default",
466
+ size: "default"
352
467
  }
353
- );
468
+ });
354
469
  function Button({
355
470
  className,
356
471
  variant = "default",