funuicss 3.7.15 → 3.7.16

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/css/fun.css CHANGED
@@ -5449,6 +5449,242 @@ background-color: rgba(0, 0, 0, 0.2);
5449
5449
 
5450
5450
 
5451
5451
 
5452
+ /* feature Section */
5453
+ /* Feature Section Base Styles */
5454
+ .feature-section {
5455
+ position: relative;
5456
+ width: 100%;
5457
+ }
5458
+
5459
+ .feature-section__container {
5460
+ width: 100%;
5461
+ }
5462
+
5463
+ /* Header Styles */
5464
+ .feature-section__header {
5465
+ text-align: center;
5466
+ }
5467
+
5468
+ .feature-section__subtitle {
5469
+ opacity: 0.8;
5470
+ }
5471
+
5472
+ .feature-section__main-title {
5473
+ line-height: 1.2;
5474
+ }
5475
+
5476
+ .feature-section__section-description {
5477
+ line-height: 1.6;
5478
+ opacity: 0.8;
5479
+ }
5480
+
5481
+ /* Icon Styles */
5482
+ .feature-section__icon-container {
5483
+ display: flex;
5484
+ align-items: center;
5485
+ }
5486
+
5487
+ .feature-section__icon-wrapper {
5488
+ display: inline-flex;
5489
+ align-items: center;
5490
+ justify-content: center;
5491
+ }
5492
+
5493
+ .feature-section__icon,
5494
+ .feature-section__checkmark {
5495
+ transition: all 0.3s ease;
5496
+ }
5497
+
5498
+ .feature-section__image {
5499
+ border-radius: 50%;
5500
+ object-fit: cover;
5501
+ }
5502
+
5503
+ /* Item Styles */
5504
+ .feature-section__item {
5505
+ height: 100%;
5506
+ }
5507
+
5508
+ .feature-section__title {
5509
+ font-weight: 600;
5510
+ line-height: 1.3;
5511
+ }
5512
+
5513
+ .feature-section__description {
5514
+ line-height: 1.5;
5515
+ opacity: 0.8;
5516
+ }
5517
+
5518
+ .feature-section__additional-content {
5519
+ line-height: 1.6;
5520
+ }
5521
+
5522
+ /* Card Styles */
5523
+ .feature-section__card {
5524
+ transition: all 0.3s ease;
5525
+ height: 100%;
5526
+ box-shadow: var(--card);
5527
+ }
5528
+
5529
+ .feature-section__card--hover-lift:hover {
5530
+ transform: translateY(-4px);
5531
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
5532
+ }
5533
+
5534
+ .feature-section__card--hover-glow:hover {
5535
+ box-shadow: 0 0 20px rgba(var(--primary-rgb, 59, 130, 246), 0.15);
5536
+ }
5537
+
5538
+ .feature-section__card--hover-scale:hover {
5539
+ transform: scale(1.02);
5540
+ }
5541
+
5542
+ /* Grid Layout */
5543
+ .feature-section__grid {
5544
+ display: grid;
5545
+ width: 100%;
5546
+ }
5547
+
5548
+ .feature-section__grid-item {
5549
+ height: 100%;
5550
+ }
5551
+
5552
+ /* Centered Layout */
5553
+ .feature-section--centered .feature-section__item {
5554
+ text-align: center;
5555
+ max-width: 48rem;
5556
+ margin: 0 auto;
5557
+ }
5558
+
5559
+ .feature-section--centered .feature-section__icon-container {
5560
+ justify-content: center;
5561
+ }
5562
+
5563
+ /* Checklist Layout */
5564
+ .feature-section--checklist .feature-section__item {
5565
+ display: flex;
5566
+ align-items: flex-start;
5567
+ gap: 1rem;
5568
+ text-align: left;
5569
+ }
5570
+
5571
+ .feature-section--checklist .feature-section__icon-container {
5572
+ margin-bottom: 0;
5573
+ flex-shrink: 0;
5574
+ }
5575
+
5576
+ .feature-section--checklist .feature-section__title {
5577
+ margin-bottom: 0.25rem;
5578
+ }
5579
+
5580
+ /* CTA Styles */
5581
+ .feature-section__item-cta {
5582
+ transition: all 0.2s ease;
5583
+ }
5584
+
5585
+ .feature-section__item-cta:hover {
5586
+ opacity: 0.9;
5587
+ }
5588
+
5589
+ .feature-section__cta-container {
5590
+ text-align: center;
5591
+ }
5592
+
5593
+ /* Carousel Layout */
5594
+ .feature-section--carousel .feature-section__content {
5595
+ width: 100%;
5596
+ }
5597
+
5598
+ .feature-section__carousel-slide {
5599
+ padding: 0 0.5rem;
5600
+ }
5601
+
5602
+ /* Responsive Styles */
5603
+ @media (max-width: 640px) {
5604
+ .feature-section__grid {
5605
+ grid-template-columns: 1fr !important;
5606
+ gap: 2rem !important;
5607
+ }
5608
+
5609
+ .feature-section__container {
5610
+ padding: 0 0.75rem;
5611
+ }
5612
+
5613
+ .feature-section__header {
5614
+ margin-bottom: 2rem;
5615
+ }
5616
+
5617
+ .feature-section__main-title {
5618
+ font-size: 1.5rem;
5619
+ }
5620
+
5621
+ .feature-section__section-description {
5622
+ font-size: 1rem;
5623
+ }
5624
+ }
5625
+
5626
+ @media (min-width: 641px) and (max-width: 768px) {
5627
+ .feature-section__grid {
5628
+ grid-template-columns: repeat(2, 1fr) !important;
5629
+ }
5630
+
5631
+ .feature-section--checklist .feature-section__grid {
5632
+ grid-template-columns: 1fr !important;
5633
+ }
5634
+ }
5635
+
5636
+ @media (min-width: 769px) and (max-width: 1024px) {
5637
+ .feature-section__grid {
5638
+ grid-template-columns: repeat(2, 1fr) !important;
5639
+ }
5640
+
5641
+ .feature-section__grid[data-columns="3"] {
5642
+ grid-template-columns: repeat(3, 1fr) !important;
5643
+ }
5644
+
5645
+ .feature-section__grid[data-columns="4"] {
5646
+ grid-template-columns: repeat(2, 1fr) !important;
5647
+ }
5648
+ }
5649
+
5650
+ @media (min-width: 1025px) {
5651
+ .feature-section__grid {
5652
+ grid-template-columns: repeat(3, 1fr) !important;
5653
+ }
5654
+
5655
+ .feature-section__grid[data-columns="2"] {
5656
+ grid-template-columns: repeat(2, 1fr) !important;
5657
+ }
5658
+
5659
+ .feature-section__grid[data-columns="4"] {
5660
+ grid-template-columns: repeat(4, 1fr) !important;
5661
+ }
5662
+
5663
+ .feature-section__grid[data-columns="5"] {
5664
+ grid-template-columns: repeat(5, 1fr) !important;
5665
+ }
5666
+
5667
+ .feature-section__grid[data-columns="6"] {
5668
+ grid-template-columns: repeat(6, 1fr) !important;
5669
+ }
5670
+ }
5671
+
5672
+ /* Print Styles */
5673
+ @media print {
5674
+ .feature-section {
5675
+ break-inside: avoid;
5676
+ }
5677
+
5678
+ .feature-section__card {
5679
+ border: 1px solid #ddd !important;
5680
+ box-shadow: none !important;
5681
+ }
5682
+
5683
+ .feature-section__item-cta {
5684
+ display: none;
5685
+ }
5686
+ }
5687
+
5452
5688
 
5453
5689
 
5454
5690
 
@@ -8732,7 +8968,6 @@ z-index: 10;
8732
8968
 
8733
8969
 
8734
8970
 
8735
- /* FOOTER */
8736
8971
  /* Footer Base Styles */
8737
8972
  .funui-footer {
8738
8973
  width: 100%;
package/index.d.ts CHANGED
@@ -57,6 +57,7 @@ export { default as ScrollToTop } from "./ui/scrolltotop/ScrollToTop";
57
57
  export { default as Select } from "./ui/select/Select";
58
58
  export { default as FileUpload } from "./ui/input/FileUpload";
59
59
  export { default as Footer } from "./ui/footer/Footer";
60
+ export { default as Feature } from "./ui/feature/Feature";
60
61
  export { default as Cookie } from "./js/Cookie";
61
62
  export { useVariable, useAsset, useAssetType, useAssetValue, useAssets, useVariables, } from "./ui/theme/theme";
62
63
  export { FunGet } from "./js/Fun";
package/index.js CHANGED
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.View = exports.ScrollInView = exports.Accordion = exports.Flex = exports.RichText = exports.Carousel = exports.Video = exports.SideBar = exports.ChartPie = exports.Lines = exports.Bars = exports.FullCenteredPage = exports.CircleGroup = exports.Circle = exports.Hr = exports.Section = exports.RowFlex = exports.Tip = exports.AppBar = exports.ToolTip = exports.Notification = exports.FunLoader = exports.ProgressBar = exports.DropMenu = exports.DropItem = exports.Dropdown = exports.DropDown = exports.DropUp = exports.UnAuthorized = exports.NotFound = exports.StepLine = exports.StepHeader = exports.Step = exports.StepContainer = exports.Div = exports.Text = exports.List = exports.Table = exports.Modal = exports.Loader = exports.SearchableInput = exports.Input = exports.Col = exports.Grid = exports.Container = exports.BreadCrumb = exports.Card = exports.Button = exports.ThemeProvider = exports.Alert = void 0;
7
- exports.GoogleAnalytics = exports.FunGet = exports.useVariables = exports.useAssets = exports.useAssetValue = exports.useAssetType = exports.useAsset = exports.useVariable = exports.Cookie = exports.Footer = exports.FileUpload = exports.Select = exports.ScrollToTop = exports.FlexItem = exports.Slider = exports.Vista = exports.Calendar = exports.DatePicker = void 0;
7
+ exports.GoogleAnalytics = exports.FunGet = exports.useVariables = exports.useAssets = exports.useAssetValue = exports.useAssetType = exports.useAsset = exports.useVariable = exports.Cookie = exports.Feature = exports.Footer = exports.FileUpload = exports.Select = exports.ScrollToTop = exports.FlexItem = exports.Slider = exports.Vista = exports.Calendar = exports.DatePicker = void 0;
8
8
  var Alert_1 = require("./ui/alert/Alert");
9
9
  Object.defineProperty(exports, "Alert", { enumerable: true, get: function () { return __importDefault(Alert_1).default; } });
10
10
  var theme_1 = require("./ui/theme/theme");
@@ -123,6 +123,8 @@ var FileUpload_1 = require("./ui/input/FileUpload");
123
123
  Object.defineProperty(exports, "FileUpload", { enumerable: true, get: function () { return __importDefault(FileUpload_1).default; } });
124
124
  var Footer_1 = require("./ui/footer/Footer");
125
125
  Object.defineProperty(exports, "Footer", { enumerable: true, get: function () { return __importDefault(Footer_1).default; } });
126
+ var Feature_1 = require("./ui/feature/Feature");
127
+ Object.defineProperty(exports, "Feature", { enumerable: true, get: function () { return __importDefault(Feature_1).default; } });
126
128
  // js
127
129
  var Cookie_1 = require("./js/Cookie");
128
130
  Object.defineProperty(exports, "Cookie", { enumerable: true, get: function () { return __importDefault(Cookie_1).default; } });
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.7.15",
2
+ "version": "3.7.16",
3
3
  "name": "funuicss",
4
4
  "description": "React and Next.js component UI Library for creating Easy and good looking websites with fewer lines of code. Elevate your web development experience with our cutting-edge React/Next.js component UI Library. Craft stunning websites effortlessly, boasting both seamless functionality and aesthetic appeal—all achieved with minimal lines of code. Unleash the power of simplicity and style in your projects!",
5
5
  "main": "index.js",
@@ -0,0 +1,130 @@
1
+ import React from 'react';
2
+ type FeatureItem = {
3
+ icon?: string | React.ReactNode;
4
+ iconColor?: string;
5
+ iconSize?: number;
6
+ iconClassName?: string;
7
+ title?: React.ReactNode;
8
+ titleSize?: string;
9
+ titleWeight?: number;
10
+ titleColor?: string;
11
+ titleClassName?: string;
12
+ titleVariant?: string;
13
+ description?: React.ReactNode;
14
+ descriptionSize?: string;
15
+ descriptionWeight?: number;
16
+ descriptionColor?: string;
17
+ descriptionClassName?: string;
18
+ descriptionVariant?: string;
19
+ imageUrl?: string;
20
+ imageAlt?: string;
21
+ imageClassName?: string;
22
+ imageStyle?: React.CSSProperties;
23
+ content?: React.ReactNode;
24
+ className?: string;
25
+ style?: React.CSSProperties;
26
+ cardBg?: string;
27
+ cardPadding?: string;
28
+ cardRounded?: string;
29
+ cardShadow?: 'sm' | 'md' | 'lg' | 'xl' | 'none';
30
+ cardBorder?: boolean;
31
+ cardBorderColor?: string;
32
+ cardHoverEffect?: 'lift' | 'glow' | 'scale' | 'none';
33
+ ctaText?: string;
34
+ ctaUrl?: string;
35
+ ctaVariant?: 'primary' | 'secondary' | 'accent' | 'text' | 'outline';
36
+ ctaOnClick?: () => void;
37
+ ctaCss?: string;
38
+ ctaClassName?: string;
39
+ customRender?: () => React.ReactNode;
40
+ };
41
+ type FeatureProps = {
42
+ variant?: string;
43
+ layout?: 'checklist' | 'centered' | 'grid';
44
+ title?: React.ReactNode;
45
+ titleSize?: string;
46
+ titleWeight?: number;
47
+ titleColor?: string;
48
+ titleClassName?: string;
49
+ titleAlign?: 'left' | 'center' | 'right';
50
+ titleVariant?: string;
51
+ subtitle?: React.ReactNode;
52
+ subtitleSize?: string;
53
+ subtitleWeight?: number;
54
+ subtitleColor?: string;
55
+ subtitleClassName?: string;
56
+ subtitleVariant?: string;
57
+ description?: React.ReactNode;
58
+ descriptionSize?: string;
59
+ descriptionWeight?: number;
60
+ descriptionColor?: string;
61
+ descriptionClassName?: string;
62
+ descriptionVariant?: string;
63
+ features?: FeatureItem[] | string;
64
+ columns?: number;
65
+ gap?: string;
66
+ itemGap?: string;
67
+ align?: 'start' | 'center' | 'end' | 'stretch';
68
+ justify?: 'start' | 'center' | 'end' | 'between' | 'around';
69
+ wrap?: boolean;
70
+ bg?: string;
71
+ padding?: string;
72
+ className?: string;
73
+ style?: React.CSSProperties;
74
+ containerClassName?: string;
75
+ containerStyle?: React.CSSProperties;
76
+ cardBg?: string;
77
+ cardPadding?: string;
78
+ cardRounded?: string;
79
+ cardShadow?: 'sm' | 'md' | 'lg' | 'xl' | 'none';
80
+ cardBorder?: boolean;
81
+ cardBorderColor?: string;
82
+ cardHoverEffect?: 'lift' | 'glow' | 'scale' | 'none';
83
+ cardClassName?: string;
84
+ iconColor?: string;
85
+ iconSize?: number;
86
+ iconClassName?: string;
87
+ itemTitleSize?: string;
88
+ itemTitleWeight?: number;
89
+ itemTitleColor?: string;
90
+ itemTitleVariant?: string;
91
+ itemDescriptionSize?: string;
92
+ itemDescriptionWeight?: number;
93
+ itemDescriptionColor?: string;
94
+ itemDescriptionVariant?: string;
95
+ checkmarkIcon?: string;
96
+ checkmarkColor?: string;
97
+ checkmarkSize?: number;
98
+ checkmarkClassName?: string;
99
+ ctaText?: string;
100
+ ctaUrl?: string;
101
+ ctaVariant?: 'primary' | 'secondary' | 'accent' | 'text' | 'outline';
102
+ ctaOnClick?: () => void;
103
+ ctaClassName?: string;
104
+ ctaCss?: string;
105
+ ctaAlign?: 'left' | 'center' | 'right';
106
+ ctaStringPrefix?: string;
107
+ ctaStringSuffix?: string;
108
+ ctaStartIcon?: React.ReactNode;
109
+ ctaEndIcon?: React.ReactNode;
110
+ ctaIconSize?: number;
111
+ ctaIsLoading?: boolean;
112
+ ctaStatus?: 'success' | 'warning' | 'info' | 'error';
113
+ pattern?: 'grid' | 'dots' | 'diagonal' | 'none';
114
+ patternOpacity?: number;
115
+ patternColor?: string;
116
+ patternSize?: string;
117
+ fade?: boolean;
118
+ fadeColor?: string;
119
+ fadeDirection?: 'top' | 'bottom' | 'left' | 'right';
120
+ fadeRadial?: boolean;
121
+ hoverEffect?: 'lift' | 'glow' | 'scale' | 'none';
122
+ children?: React.ReactNode;
123
+ id?: string;
124
+ funcss?: string;
125
+ sectionClass?: string;
126
+ maxWidth?: string;
127
+ responsiveColumns?: string;
128
+ };
129
+ declare const Feature: React.FC<FeatureProps>;
130
+ export default Feature;