@fakhrirafiki/theme-engine 0.4.18 → 0.4.19

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.
package/dist/index.js CHANGED
@@ -4742,27 +4742,9 @@ var ThemeToggle = (0, import_react3.forwardRef)(
4742
4742
  const { clientX: x, clientY: y } = event;
4743
4743
  toggleMode({ x, y });
4744
4744
  };
4745
- const sizeClasses = {
4746
- sm: "h-8 w-8 p-1.5",
4747
- md: "h-9 w-9 p-2",
4748
- lg: "h-10 w-10 p-2.5"
4749
- };
4750
- const variantClasses = {
4751
- default: "bg-background border border-input hover:bg-accent hover:text-accent-foreground",
4752
- outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
4753
- ghost: "hover:bg-accent hover:text-accent-foreground"
4754
- };
4755
4745
  const baseClasses = (0, import_clsx.clsx)(
4756
4746
  // Base button styles
4757
4747
  "theme-toggle",
4758
- "inline-flex items-center justify-center",
4759
- "rounded-md text-sm font-medium",
4760
- "ring-offset-background transition-colors",
4761
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
4762
- "disabled:pointer-events-none disabled:opacity-50",
4763
- // Size and variant
4764
- sizeClasses[size],
4765
- variantClasses[variant],
4766
4748
  className
4767
4749
  );
4768
4750
  const renderIcon = () => {
@@ -4784,6 +4766,8 @@ var ThemeToggle = (0, import_react3.forwardRef)(
4784
4766
  ref,
4785
4767
  className: baseClasses,
4786
4768
  onClick: handleClick,
4769
+ "data-size": size,
4770
+ "data-variant": variant,
4787
4771
  "data-mode": resolvedMode,
4788
4772
  "data-theme": resolvedMode,
4789
4773
  "aria-label": `Switch to ${resolvedMode === "light" ? "dark" : "light"} mode`,
package/dist/index.mjs CHANGED
@@ -4698,27 +4698,9 @@ var ThemeToggle = forwardRef(
4698
4698
  const { clientX: x, clientY: y } = event;
4699
4699
  toggleMode({ x, y });
4700
4700
  };
4701
- const sizeClasses = {
4702
- sm: "h-8 w-8 p-1.5",
4703
- md: "h-9 w-9 p-2",
4704
- lg: "h-10 w-10 p-2.5"
4705
- };
4706
- const variantClasses = {
4707
- default: "bg-background border border-input hover:bg-accent hover:text-accent-foreground",
4708
- outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
4709
- ghost: "hover:bg-accent hover:text-accent-foreground"
4710
- };
4711
4701
  const baseClasses = clsx(
4712
4702
  // Base button styles
4713
4703
  "theme-toggle",
4714
- "inline-flex items-center justify-center",
4715
- "rounded-md text-sm font-medium",
4716
- "ring-offset-background transition-colors",
4717
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
4718
- "disabled:pointer-events-none disabled:opacity-50",
4719
- // Size and variant
4720
- sizeClasses[size],
4721
- variantClasses[variant],
4722
4704
  className
4723
4705
  );
4724
4706
  const renderIcon = () => {
@@ -4740,6 +4722,8 @@ var ThemeToggle = forwardRef(
4740
4722
  ref,
4741
4723
  className: baseClasses,
4742
4724
  onClick: handleClick,
4725
+ "data-size": size,
4726
+ "data-variant": variant,
4743
4727
  "data-mode": resolvedMode,
4744
4728
  "data-theme": resolvedMode,
4745
4729
  "aria-label": `Switch to ${resolvedMode === "light" ? "dark" : "light"} mode`,
@@ -8,6 +8,44 @@
8
8
  border: 1px solid hsl(var(--border));
9
9
  background-color: hsl(var(--background));
10
10
  color: hsl(var(--foreground));
11
+
12
+ box-sizing: border-box;
13
+ display: inline-flex;
14
+ align-items: center;
15
+ justify-content: center;
16
+ border-radius: calc(var(--radius) + 0.125rem);
17
+ font-size: 0.875rem;
18
+ font-weight: 500;
19
+ line-height: 1;
20
+ }
21
+
22
+ .theme-toggle:disabled {
23
+ opacity: 0.5;
24
+ cursor: not-allowed;
25
+ pointer-events: none;
26
+ }
27
+
28
+ .theme-toggle[data-size="sm"] {
29
+ width: 2rem;
30
+ height: 2rem;
31
+ padding: 0.375rem;
32
+ }
33
+
34
+ .theme-toggle[data-size="md"] {
35
+ width: 2.25rem;
36
+ height: 2.25rem;
37
+ padding: 0.5rem;
38
+ }
39
+
40
+ .theme-toggle[data-size="lg"] {
41
+ width: 2.5rem;
42
+ height: 2.5rem;
43
+ padding: 0.625rem;
44
+ }
45
+
46
+ .theme-toggle[data-variant="ghost"] {
47
+ border-color: transparent;
48
+ background-color: transparent;
11
49
  }
12
50
 
13
51
  .theme-toggle:hover {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fakhrirafiki/theme-engine",
3
- "version": "0.4.18",
3
+ "version": "0.4.19",
4
4
  "description": "Elegant theming system with smooth transitions, custom presets, semantic accent colors, and complete shadcn/ui support for modern React applications",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",