@faskai/ui-commons 0.0.0-alpha.11 → 0.0.0-alpha.12

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/README.md CHANGED
@@ -6,16 +6,16 @@ A collection of reusable React components for Fask applications built with Mater
6
6
 
7
7
  ### BetaMarketingBanner
8
8
 
9
- A modern marketing banner component that highlights USPs (Unique Selling Propositions) and Beta launch offer.
9
+ A modern, lightweight marketing banner component that highlights USPs (Unique Selling Propositions) and Beta launch offer. Built with Tailwind CSS for maximum compatibility.
10
10
 
11
11
  #### Features
12
12
 
13
- - **Fastest AI Voice Chat** - Industry-leading response times
14
- - **Self-Learning AI Agents** - Fine-tune with your data or bring your own LLM
15
- - **Easiest Setup** - 1-click deployment worldwide
16
- - **Any Language** - Human-sounding in 100+ languages
17
- - **Truly Multi-Modal** - Voice, Video, and Text channels
18
- - **Infinitely Scalable** - Grows with your business needs
13
+ - **Fastest AI Voice Chat** - Industry-leading response times
14
+ - 🧠 **Self-Learning AI Agents** - Fine-tune with your data or bring your own LLM
15
+ - 👆 **Easiest Setup** - 1-click deployment worldwide
16
+ - 🌍 **Any Language** - Human-sounding in 100+ languages
17
+ - 🎥 **Truly Multi-Modal** - Voice, Video, and Text channels
18
+ - 📈 **Infinitely Scalable** - Grows with your business needs
19
19
 
20
20
  #### Props
21
21
 
@@ -23,14 +23,14 @@ A modern marketing banner component that highlights USPs (Unique Selling Proposi
23
23
  interface BetaMarketingBannerProps {
24
24
  variant?: 'full' | 'compact'; // Layout variant (default: 'full')
25
25
  showBetaOffer?: boolean; // Show/hide beta offer section (default: true)
26
- className?: string; // Additional CSS classes
26
+ className?: string; // Additional Tailwind classes
27
27
  }
28
28
  ```
29
29
 
30
30
  #### Usage
31
31
 
32
32
  ```tsx
33
- import { BetaMarketingBanner } from 'fask-ui-commons';
33
+ import { BetaMarketingBanner } from '@faskai/ui-commons';
34
34
 
35
35
  // Full banner with beta offer
36
36
  <BetaMarketingBanner />
@@ -39,24 +39,25 @@ import { BetaMarketingBanner } from 'fask-ui-commons';
39
39
  <BetaMarketingBanner showBetaOffer={false} />
40
40
 
41
41
  // With custom styling
42
- <BetaMarketingBanner className="my-custom-class" />
42
+ <BetaMarketingBanner className="mb-8 shadow-xl" />
43
43
  ```
44
44
 
45
45
  #### Beta Offer Details
46
46
 
47
47
  - **50% OFF First Year** for limited customers
48
48
  - Links to: `https://biz.fask.ai/billing?price-tier=beta&period=year`
49
- - Includes animated "LIMITED TIME" chip
50
- - Professional call-to-action button
49
+ - Includes animated "LIMITED TIME" badge
50
+ - Modern call-to-action button
51
51
 
52
52
  #### Styling
53
53
 
54
- The component uses Material-UI theming and includes:
55
- - Gradient backgrounds and borders
54
+ The component uses Tailwind CSS and includes:
55
+ - Gradient backgrounds and emojis instead of icons
56
56
  - Hover animations and transitions
57
57
  - Responsive design for mobile/desktop
58
- - Modern glassmorphism effects
58
+ - Modern glassmorphism effects with backdrop-blur
59
59
  - Pulse animations for urgency
60
+ - Zero external dependencies beyond React
60
61
 
61
62
  ## Installation
62
63
 
@@ -67,8 +68,7 @@ npm install fask-ui-commons
67
68
  ## Dependencies
68
69
 
69
70
  - React 18+
70
- - Material-UI 5+
71
- - @mui/icons-material
71
+ - Tailwind CSS (for styling)
72
72
 
73
73
  ## License
74
74
 
@@ -1,140 +1,48 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.default = BetaMarketingBanner;
7
4
  const jsx_runtime_1 = require("react/jsx-runtime");
8
- const icons_material_1 = require("@mui/icons-material");
9
- const material_1 = require("@mui/material");
10
- const react_1 = __importDefault(require("react"));
11
5
  const features = [
12
6
  {
13
- icon: (0, jsx_runtime_1.jsx)(icons_material_1.Speed, {}),
7
+ emoji: '⚡',
14
8
  title: 'Fastest AI Voice Chat',
15
9
  description: 'Industry-leading response times',
16
- color: '#2196F3',
10
+ bgColor: 'bg-blue-500',
17
11
  },
18
12
  {
19
- icon: (0, jsx_runtime_1.jsx)(icons_material_1.Psychology, {}),
13
+ emoji: '🧠',
20
14
  title: 'Self-Learning AI Agents',
21
15
  description: 'Fine-tune with your data or bring your own LLM',
22
- color: '#9C27B0',
16
+ bgColor: 'bg-purple-500',
23
17
  },
24
18
  {
25
- icon: (0, jsx_runtime_1.jsx)(icons_material_1.TouchApp, {}),
19
+ emoji: '👆',
26
20
  title: 'Easiest Setup',
27
21
  description: '1-click deployment worldwide',
28
- color: '#FF9800',
22
+ bgColor: 'bg-orange-500',
29
23
  },
30
24
  {
31
- icon: (0, jsx_runtime_1.jsx)(icons_material_1.Language, {}),
25
+ emoji: '🌍',
32
26
  title: 'Any Language',
33
27
  description: 'Human-sounding in 100+ languages',
34
- color: '#4CAF50',
28
+ bgColor: 'bg-green-500',
35
29
  },
36
30
  {
37
- icon: (0, jsx_runtime_1.jsx)(icons_material_1.Videocam, {}),
31
+ emoji: '🎥',
38
32
  title: 'Truly Multi-Modal',
39
33
  description: 'Voice, Video, and Text channels',
40
- color: '#F44336',
34
+ bgColor: 'bg-red-500',
41
35
  },
42
36
  {
43
- icon: (0, jsx_runtime_1.jsx)(icons_material_1.TrendingUp, {}),
37
+ emoji: '📈',
44
38
  title: 'Infinitely Scalable',
45
39
  description: 'Grows with your business needs',
46
- color: '#795548',
40
+ bgColor: 'bg-yellow-600',
47
41
  },
48
42
  ];
49
- function BetaMarketingBanner({ variant = 'full', showBetaOffer = true, className, }) {
50
- const theme = (0, material_1.useTheme)();
43
+ function BetaMarketingBanner({ variant = 'full', showBetaOffer = true, className = '', }) {
51
44
  const handleSubscribeClick = () => {
52
45
  window.open('https://biz.fask.ai/billing?price-tier=beta&period=year', '_blank');
53
46
  };
54
- return ((0, jsx_runtime_1.jsx)(material_1.Box, { className: className, sx: {
55
- background: `linear-gradient(135deg, ${(0, material_1.alpha)(theme.palette.primary.main, 0.1)} 0%, ${(0, material_1.alpha)(theme.palette.secondary.main, 0.05)} 100%)`,
56
- borderRadius: 3,
57
- overflow: 'hidden',
58
- position: 'relative',
59
- '&::before': {
60
- content: '""',
61
- position: 'absolute',
62
- top: 0,
63
- left: 0,
64
- right: 0,
65
- height: '4px',
66
- background: `linear-gradient(90deg, ${theme.palette.primary.main}, ${theme.palette.secondary.main})`,
67
- },
68
- }, children: (0, jsx_runtime_1.jsxs)(material_1.Container, { maxWidth: "lg", sx: { py: { xs: 4, md: 6 } }, children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { textAlign: "center", sx: { mb: { xs: 4, md: 6 } }, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h3", component: "h2", gutterBottom: true, sx: {
69
- fontSize: { xs: '2rem', md: '2.5rem' },
70
- fontWeight: 700,
71
- background: `linear-gradient(45deg, ${theme.palette.primary.main}, ${theme.palette.secondary.main})`,
72
- backgroundClip: 'text',
73
- WebkitBackgroundClip: 'text',
74
- WebkitTextFillColor: 'transparent',
75
- mb: 2,
76
- }, children: "Best-in-Class AI Features" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", color: "text.secondary", sx: { maxWidth: 600, mx: 'auto', lineHeight: 1.6 }, children: "Experience the future of customer engagement with our cutting-edge AI technology" })] }), (0, jsx_runtime_1.jsx)(material_1.Grid, { container: true, spacing: 3, sx: { mb: showBetaOffer ? 5 : 0 }, children: features.map((feature, index) => ((0, jsx_runtime_1.jsx)(material_1.Grid, { size: { xs: 12, sm: 6, md: 4 }, children: (0, jsx_runtime_1.jsx)(material_1.Card, { elevation: 0, sx: {
77
- height: '100%',
78
- background: (0, material_1.alpha)(theme.palette.background.paper, 0.8),
79
- backdropFilter: 'blur(10px)',
80
- border: `1px solid ${(0, material_1.alpha)(theme.palette.divider, 0.1)}`,
81
- transition: 'all 0.3s ease-in-out',
82
- '&:hover': {
83
- transform: 'translateY(-4px)',
84
- boxShadow: `0 8px 32px ${(0, material_1.alpha)(feature.color, 0.2)}`,
85
- border: `1px solid ${(0, material_1.alpha)(feature.color, 0.3)}`,
86
- },
87
- }, children: (0, jsx_runtime_1.jsxs)(material_1.CardContent, { sx: { p: 3, textAlign: 'center' }, children: [(0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
88
- width: 56,
89
- height: 56,
90
- borderRadius: '50%',
91
- background: `linear-gradient(135deg, ${feature.color}, ${(0, material_1.alpha)(feature.color, 0.7)})`,
92
- display: 'flex',
93
- alignItems: 'center',
94
- justifyContent: 'center',
95
- mx: 'auto',
96
- mb: 2,
97
- color: 'white',
98
- }, children: react_1.default.cloneElement(feature.icon, { fontSize: 'large' }) }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", component: "h3", gutterBottom: true, sx: { fontWeight: 600, color: 'text.primary' }, children: feature.title }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body2", color: "text.secondary", sx: { lineHeight: 1.5 }, children: feature.description })] }) }) }, index))) }), showBetaOffer && ((0, jsx_runtime_1.jsx)(material_1.Card, { elevation: 0, sx: {
99
- background: `linear-gradient(135deg, ${(0, material_1.alpha)(theme.palette.success.main, 0.1)}, ${(0, material_1.alpha)(theme.palette.primary.main, 0.05)})`,
100
- border: `2px solid ${(0, material_1.alpha)(theme.palette.success.main, 0.2)}`,
101
- borderRadius: 3,
102
- overflow: 'hidden',
103
- position: 'relative',
104
- }, children: (0, jsx_runtime_1.jsxs)(material_1.CardContent, { sx: { p: { xs: 3, md: 4 }, textAlign: 'center' }, children: [(0, jsx_runtime_1.jsx)(material_1.Stack, { direction: "row", justifyContent: "center", sx: { mb: 2 }, children: (0, jsx_runtime_1.jsx)(material_1.Chip, { label: "LIMITED TIME", size: "small", sx: {
105
- background: theme.palette.success.main,
106
- color: 'white',
107
- fontWeight: 600,
108
- fontSize: '0.75rem',
109
- animation: 'pulse 2s infinite',
110
- '@keyframes pulse': {
111
- '0%': { opacity: 1 },
112
- '50%': { opacity: 0.8 },
113
- '100%': { opacity: 1 },
114
- },
115
- } }) }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h4", component: "h3", gutterBottom: true, sx: {
116
- fontSize: { xs: '1.75rem', md: '2.25rem' },
117
- fontWeight: 700,
118
- color: 'text.primary',
119
- mb: 1,
120
- }, children: "\uD83D\uDE80 Beta Launch Special" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h5", sx: {
121
- color: theme.palette.success.main,
122
- fontWeight: 600,
123
- mb: 2,
124
- }, children: "50% OFF First Year" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body1", color: "text.secondary", sx: { mb: 3, maxWidth: 500, mx: 'auto', lineHeight: 1.6 }, children: "Join our exclusive Beta program and save 50% on your first year. Limited spots available for early adopters." }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", size: "large", onClick: handleSubscribeClick, sx: {
125
- background: `linear-gradient(45deg, ${theme.palette.primary.main}, ${theme.palette.secondary.main})`,
126
- color: 'white',
127
- px: 4,
128
- py: 1.5,
129
- fontSize: '1.1rem',
130
- fontWeight: 600,
131
- borderRadius: 2,
132
- boxShadow: `0 4px 20px ${(0, material_1.alpha)(theme.palette.primary.main, 0.4)}`,
133
- transition: 'all 0.3s ease-in-out',
134
- '&:hover': {
135
- transform: 'translateY(-2px)',
136
- boxShadow: `0 6px 28px ${(0, material_1.alpha)(theme.palette.primary.main, 0.5)}`,
137
- background: `linear-gradient(45deg, ${theme.palette.primary.dark}, ${theme.palette.secondary.dark})`,
138
- },
139
- }, children: "Subscribe Now" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "caption", display: "block", color: "text.secondary", sx: { mt: 2, opacity: 0.8 }, children: "* Billed annually. Offer valid for limited customers only." })] }) }))] }) }));
47
+ return ((0, jsx_runtime_1.jsxs)("div", { className: `relative overflow-hidden rounded-2xl bg-gradient-to-br from-blue-50 via-white to-purple-50 ${className}`, children: [(0, jsx_runtime_1.jsx)("div", { className: "absolute top-0 left-0 right-0 h-1 bg-gradient-to-r from-blue-500 to-purple-500" }), (0, jsx_runtime_1.jsxs)("div", { className: "max-w-6xl mx-auto px-4 py-8 md:py-12", children: [(0, jsx_runtime_1.jsxs)("div", { className: "text-center mb-8 md:mb-12", children: [(0, jsx_runtime_1.jsx)("h2", { className: "text-3xl md:text-4xl font-bold mb-4 bg-gradient-to-r from-blue-600 to-purple-600 bg-clip-text text-transparent", children: "Best-in-Class AI Features" }), (0, jsx_runtime_1.jsx)("p", { className: "text-lg text-gray-600 max-w-2xl mx-auto leading-relaxed", children: "Experience the future of customer engagement with our cutting-edge AI technology" })] }), (0, jsx_runtime_1.jsx)("div", { className: `grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-6 ${showBetaOffer ? 'mb-12' : ''}`, children: features.map((feature, index) => ((0, jsx_runtime_1.jsxs)("div", { className: "group bg-white/70 backdrop-blur-sm rounded-xl p-6 border border-gray-100 hover:border-gray-200 hover:shadow-lg hover:-translate-y-1 transition-all duration-300 text-center", children: [(0, jsx_runtime_1.jsx)("div", { className: `w-14 h-14 rounded-full ${feature.bgColor} flex items-center justify-center mx-auto mb-4 text-2xl shadow-lg group-hover:shadow-xl transition-shadow duration-300`, children: feature.emoji }), (0, jsx_runtime_1.jsx)("h3", { className: "text-lg font-semibold text-gray-900 mb-2", children: feature.title }), (0, jsx_runtime_1.jsx)("p", { className: "text-sm text-gray-600 leading-relaxed", children: feature.description })] }, index))) }), showBetaOffer && ((0, jsx_runtime_1.jsxs)("div", { className: "bg-gradient-to-br from-green-50 to-blue-50 rounded-2xl border-2 border-green-200 p-6 md:p-8 text-center relative overflow-hidden", children: [(0, jsx_runtime_1.jsx)("div", { className: "absolute inset-0 bg-gradient-to-r from-green-100/20 to-blue-100/20 animate-pulse" }), (0, jsx_runtime_1.jsxs)("div", { className: "relative z-10", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex justify-center mb-4", children: (0, jsx_runtime_1.jsx)("span", { className: "inline-flex items-center px-3 py-1 rounded-full text-xs font-medium bg-green-500 text-white animate-pulse", children: "LIMITED TIME" }) }), (0, jsx_runtime_1.jsx)("h3", { className: "text-2xl md:text-3xl font-bold text-gray-900 mb-2", children: "\uD83D\uDE80 Beta Launch Special" }), (0, jsx_runtime_1.jsx)("p", { className: "text-xl md:text-2xl font-bold text-green-600 mb-4", children: "50% OFF First Year" }), (0, jsx_runtime_1.jsx)("p", { className: "text-gray-600 mb-6 max-w-lg mx-auto leading-relaxed", children: "Join our exclusive Beta program and save 50% on your first year. Limited spots available for early adopters." }), (0, jsx_runtime_1.jsx)("button", { onClick: handleSubscribeClick, className: "inline-flex items-center px-8 py-3 rounded-lg bg-gradient-to-r from-blue-600 to-purple-600 hover:from-blue-700 hover:to-purple-700 text-white font-semibold text-lg shadow-lg hover:shadow-xl hover:-translate-y-0.5 transition-all duration-300", children: "Subscribe Now" }), (0, jsx_runtime_1.jsx)("p", { className: "text-xs text-gray-500 mt-4 opacity-80", children: "* Billed annually. Offer valid for limited customers only." })] })] }))] })] }));
140
48
  }
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
- export * from './components';
1
+ export { GTMProvider } from './components/gtm/gtm-provider';
2
+ export { default as BetaMarketingBanner } from './components/marketing/BetaMarketingBanner';
package/dist/index.js CHANGED
@@ -1,17 +1,10 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
4
  };
16
5
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./components"), exports);
6
+ exports.BetaMarketingBanner = exports.GTMProvider = void 0;
7
+ var gtm_provider_1 = require("./components/gtm/gtm-provider");
8
+ Object.defineProperty(exports, "GTMProvider", { enumerable: true, get: function () { return gtm_provider_1.GTMProvider; } });
9
+ var BetaMarketingBanner_1 = require("./components/marketing/BetaMarketingBanner");
10
+ Object.defineProperty(exports, "BetaMarketingBanner", { enumerable: true, get: function () { return __importDefault(BetaMarketingBanner_1).default; } });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@faskai/ui-commons",
3
3
  "author": "Fask AI <arko@fask.ai>",
4
- "version": "0.0.0-alpha.11",
4
+ "version": "0.0.0-alpha.12",
5
5
  "description": "Common UI components for Fask applications.",
6
6
  "private": false,
7
7
  "main": "dist/index.js",
@@ -14,10 +14,6 @@
14
14
  "build": "tsc"
15
15
  },
16
16
  "peerDependencies": {
17
- "@emotion/react": ">=11.0.0",
18
- "@emotion/styled": ">=11.0.0",
19
- "@mui/icons-material": ">=5.0.0",
20
- "@mui/material": ">=5.0.0",
21
17
  "next": ">=13.0.0",
22
18
  "react": ">=18.0.0"
23
19
  },
@@ -26,10 +22,5 @@
26
22
  "next": "^14.0.0",
27
23
  "typescript": "^5.0.0"
28
24
  },
29
- "dependencies": {
30
- "@emotion/react": "^11.14.0",
31
- "@emotion/styled": "^11.14.0",
32
- "@mui/icons-material": "^7.1.2",
33
- "@mui/material": "^7.1.2"
34
- }
25
+ "dependencies": {}
35
26
  }