@xaui/hybrid 0.0.2 → 0.0.3

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.
@@ -482,7 +482,7 @@ var buttonStyles = (0, import_tailwind_variants2.tv)({
482
482
 
483
483
  // src/components/button/button.hook.ts
484
484
  var import_react4 = require("react");
485
- var useButtonStyles = (themeColor, variant, size, radius) => {
485
+ var useVariantSizesStyles = (themeColor, variant, size) => {
486
486
  const theme = useXUITheme();
487
487
  const colorScheme = theme.colors[themeColor];
488
488
  const sizeStyles = (0, import_react4.useMemo)(() => {
@@ -526,16 +526,6 @@ var useButtonStyles = (themeColor, variant, size, radius) => {
526
526
  };
527
527
  return sizes[size];
528
528
  }, [size, theme]);
529
- const radiusStyles = (0, import_react4.useMemo)(() => {
530
- const radii = {
531
- none: theme.borderRadius.none,
532
- sm: theme.borderRadius.sm,
533
- md: theme.borderRadius.md,
534
- lg: theme.borderRadius.lg,
535
- full: theme.borderRadius.full
536
- };
537
- return { borderRadius: `${radii[radius]}px` };
538
- }, [radius, theme]);
539
529
  const variantStyles = (0, import_react4.useMemo)(() => {
540
530
  const styles = {
541
531
  solid: {
@@ -591,6 +581,30 @@ var useButtonStyles = (themeColor, variant, size, radius) => {
591
581
  };
592
582
  return sizes[size];
593
583
  }, [size]);
584
+ return {
585
+ sizeStyles,
586
+ variantStyles,
587
+ textColor,
588
+ spinnerSize
589
+ };
590
+ };
591
+ var useButtonStyles = (themeColor, variant, size, radius) => {
592
+ const theme = useXUITheme();
593
+ const { sizeStyles, variantStyles, textColor, spinnerSize } = useVariantSizesStyles(
594
+ themeColor,
595
+ variant,
596
+ size
597
+ );
598
+ const radiusStyles = (0, import_react4.useMemo)(() => {
599
+ const radii = {
600
+ none: theme.borderRadius.none,
601
+ sm: theme.borderRadius.sm,
602
+ md: theme.borderRadius.md,
603
+ lg: theme.borderRadius.lg,
604
+ full: theme.borderRadius.full
605
+ };
606
+ return { borderRadius: `${radii[radius]}px` };
607
+ }, [radius, theme]);
594
608
  return {
595
609
  sizeStyles,
596
610
  radiusStyles,
@@ -669,7 +683,7 @@ var Button = ({
669
683
  ...userStyle
670
684
  },
671
685
  animate: {
672
- scale: isPressed ? 0.95 : 1,
686
+ scale: isPressed ? 0.99 : 1,
673
687
  opacity: isPressed ? 0.8 : 1
674
688
  },
675
689
  transition: {
@@ -677,11 +691,11 @@ var Button = ({
677
691
  ease: "easeInOut"
678
692
  },
679
693
  children: [
680
- startContent,
694
+ startContent && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "inline-flex items-center shrink-0", children: startContent }),
681
695
  isLoading && spinnerPlacement === "start" && spinnerElement,
682
696
  children,
683
697
  isLoading && spinnerPlacement === "end" && spinnerElement,
684
- endContent
698
+ endContent && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: "inline-flex items-center shrink-0", children: endContent })
685
699
  ]
686
700
  }
687
701
  );
@@ -52,7 +52,7 @@ var buttonStyles = tv({
52
52
 
53
53
  // src/components/button/button.hook.ts
54
54
  import { useMemo } from "react";
55
- var useButtonStyles = (themeColor, variant, size, radius) => {
55
+ var useVariantSizesStyles = (themeColor, variant, size) => {
56
56
  const theme = useXUITheme();
57
57
  const colorScheme = theme.colors[themeColor];
58
58
  const sizeStyles = useMemo(() => {
@@ -96,16 +96,6 @@ var useButtonStyles = (themeColor, variant, size, radius) => {
96
96
  };
97
97
  return sizes[size];
98
98
  }, [size, theme]);
99
- const radiusStyles = useMemo(() => {
100
- const radii = {
101
- none: theme.borderRadius.none,
102
- sm: theme.borderRadius.sm,
103
- md: theme.borderRadius.md,
104
- lg: theme.borderRadius.lg,
105
- full: theme.borderRadius.full
106
- };
107
- return { borderRadius: `${radii[radius]}px` };
108
- }, [radius, theme]);
109
99
  const variantStyles = useMemo(() => {
110
100
  const styles = {
111
101
  solid: {
@@ -161,6 +151,30 @@ var useButtonStyles = (themeColor, variant, size, radius) => {
161
151
  };
162
152
  return sizes[size];
163
153
  }, [size]);
154
+ return {
155
+ sizeStyles,
156
+ variantStyles,
157
+ textColor,
158
+ spinnerSize
159
+ };
160
+ };
161
+ var useButtonStyles = (themeColor, variant, size, radius) => {
162
+ const theme = useXUITheme();
163
+ const { sizeStyles, variantStyles, textColor, spinnerSize } = useVariantSizesStyles(
164
+ themeColor,
165
+ variant,
166
+ size
167
+ );
168
+ const radiusStyles = useMemo(() => {
169
+ const radii = {
170
+ none: theme.borderRadius.none,
171
+ sm: theme.borderRadius.sm,
172
+ md: theme.borderRadius.md,
173
+ lg: theme.borderRadius.lg,
174
+ full: theme.borderRadius.full
175
+ };
176
+ return { borderRadius: `${radii[radius]}px` };
177
+ }, [radius, theme]);
164
178
  return {
165
179
  sizeStyles,
166
180
  radiusStyles,
@@ -239,7 +253,7 @@ var Button = ({
239
253
  ...userStyle
240
254
  },
241
255
  animate: {
242
- scale: isPressed ? 0.95 : 1,
256
+ scale: isPressed ? 0.99 : 1,
243
257
  opacity: isPressed ? 0.8 : 1
244
258
  },
245
259
  transition: {
@@ -247,11 +261,11 @@ var Button = ({
247
261
  ease: "easeInOut"
248
262
  },
249
263
  children: [
250
- startContent,
264
+ startContent && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center shrink-0", children: startContent }),
251
265
  isLoading && spinnerPlacement === "start" && spinnerElement,
252
266
  children,
253
267
  isLoading && spinnerPlacement === "end" && spinnerElement,
254
- endContent
268
+ endContent && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center shrink-0", children: endContent })
255
269
  ]
256
270
  }
257
271
  );
package/package.json CHANGED
@@ -1,12 +1,17 @@
1
1
  {
2
2
  "name": "@xaui/hybrid",
3
- "version": "0.0.2",
4
- "description": "Web UI components for XUI",
3
+ "version": "0.0.3",
4
+ "description": "Flutter-inspired React UI components for web and mobile webview applications with Framer Motion animations and Tailwind CSS styling",
5
5
  "keywords": [
6
6
  "react",
7
7
  "web",
8
+ "webview",
9
+ "hybrid",
8
10
  "ui",
9
11
  "components",
12
+ "flutter",
13
+ "framer-motion",
14
+ "tailwindcss",
10
15
  "xaui"
11
16
  ],
12
17
  "type": "module",
@@ -47,22 +52,13 @@
47
52
  "repository": {
48
53
  "type": "git",
49
54
  "url": "git+https://github.com/rygrams/xaui.git",
50
- "directory": "packages/web"
51
- },
52
- "scripts": {
53
- "build": "tsup --config tsup.config.ts",
54
- "dev": "tsup --config tsup.config.ts --watch",
55
- "test": "vitest",
56
- "test:ui": "vitest --ui",
57
- "test:coverage": "vitest --coverage",
58
- "lint": "eslint src/",
59
- "type-check": "tsc --noEmit"
55
+ "directory": "packages/hybrid"
60
56
  },
61
57
  "dependencies": {
62
- "@xaui/core": "workspace:*",
63
58
  "clsx": "^2.1.1",
64
59
  "tailwind-merge": "^3.4.0",
65
- "tailwind-variants": "^0.3.1"
60
+ "tailwind-variants": "^0.3.1",
61
+ "@xaui/core": "0.1.6"
66
62
  },
67
63
  "peerDependencies": {
68
64
  "framer-motion": "^11.0.0",
@@ -81,5 +77,14 @@
81
77
  },
82
78
  "publishConfig": {
83
79
  "access": "public"
80
+ },
81
+ "scripts": {
82
+ "build": "tsup --config tsup.config.ts",
83
+ "dev": "tsup --config tsup.config.ts --watch",
84
+ "test": "vitest",
85
+ "test:ui": "vitest --ui",
86
+ "test:coverage": "vitest --coverage",
87
+ "lint": "eslint src/",
88
+ "type-check": "tsc --noEmit"
84
89
  }
85
- }
90
+ }