funuicss 3.8.8 → 3.8.10

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
@@ -2294,7 +2294,6 @@ z-index: 9999 !important;
2294
2294
  padding-top: 1rem !important;
2295
2295
  height: var(--inputButtonHeight);
2296
2296
 
2297
-
2298
2297
  }
2299
2298
 
2300
2299
 
@@ -5999,6 +5998,316 @@ color: var(--primary) !important;
5999
5998
  }
6000
5999
 
6001
6000
 
6001
+
6002
+ /* form */
6003
+ /* Form Component CSS */
6004
+ .funui-form {
6005
+ width: 100%;
6006
+ }
6007
+
6008
+ .funui-form-wrapper {
6009
+ width: 100%;
6010
+ max-width: 100%;
6011
+ }
6012
+
6013
+ /* Form Labels */
6014
+ .funui-form-label {
6015
+ display: block;
6016
+ margin-bottom: 0.5rem;
6017
+ font-weight: 500;
6018
+ color: var(--text);
6019
+ }
6020
+
6021
+ .funui-form-label.required::after {
6022
+ content: " *";
6023
+ color: var(--danger);
6024
+ }
6025
+
6026
+ /* Form Fields */
6027
+ .funui-form-field {
6028
+ margin-bottom: 1.5rem;
6029
+ width: 100%;
6030
+ }
6031
+
6032
+ .funui-form-field-error {
6033
+ animation: shake 0.3s ease-in-out;
6034
+ }
6035
+
6036
+ @keyframes shake {
6037
+ 0%, 100% { transform: translateX(0); }
6038
+ 10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
6039
+ 20%, 40%, 60%, 80% { transform: translateX(5px); }
6040
+ }
6041
+
6042
+ /* Checkbox Styles */
6043
+ .funui-form-checkbox {
6044
+ display: flex;
6045
+ align-items: center;
6046
+ gap: 0.75rem;
6047
+ cursor: pointer;
6048
+ user-select: none;
6049
+ padding: 0.5rem 0;
6050
+ transition: all 0.2s ease;
6051
+ width: fit-content;
6052
+ border-radius: 0.375rem;
6053
+ }
6054
+
6055
+ .funui-form-checkbox:hover {
6056
+ background-color: rgba(var(--primary-rgb, 59, 130, 246), 0.05);
6057
+ }
6058
+
6059
+ .funui-form-checkbox.disabled {
6060
+ cursor: not-allowed;
6061
+ opacity: 0.6;
6062
+ }
6063
+
6064
+ .funui-form-checkbox-box {
6065
+ width: 1.25rem;
6066
+ height: 1.25rem;
6067
+ border: 2px solid var(--border);
6068
+ border-radius: 0.375rem;
6069
+ background-color: white;
6070
+ position: relative;
6071
+ transition: all 0.2s ease;
6072
+ flex-shrink: 0;
6073
+ display: flex;
6074
+ align-items: center;
6075
+ justify-content: center;
6076
+ }
6077
+
6078
+ .funui-form-checkbox-box:hover {
6079
+ border-color: var(--primary-light);
6080
+ }
6081
+
6082
+ .funui-form-checkbox-box.checked {
6083
+ border-color: var(--primary);
6084
+ background-color: var(--primary);
6085
+ }
6086
+
6087
+ .funui-form-checkbox-box.checked::after {
6088
+ content: '';
6089
+ position: absolute;
6090
+ width: 0.75rem;
6091
+ height: 0.75rem;
6092
+ background-color: white;
6093
+ border-radius: 0.125rem;
6094
+ transform: scale(1);
6095
+ transition: transform 0.2s ease;
6096
+ }
6097
+
6098
+ /* Alternative checkmark style (using SVG-like pseudo-element) */
6099
+ .funui-form-checkbox-box.checked.checkmark::after {
6100
+ content: '';
6101
+ width: 0.375rem;
6102
+ height: 0.75rem;
6103
+ border: solid white;
6104
+ border-width: 0 2px 2px 0;
6105
+ background-color: transparent;
6106
+ border-radius: 0;
6107
+ transform: rotate(45deg) translate(-1px, -1px);
6108
+ margin-top: -2px;
6109
+ }
6110
+
6111
+ .funui-form-checkbox-label {
6112
+ font-size: 0.9375rem;
6113
+ color: var(--text);
6114
+ font-weight: 400;
6115
+ line-height: 1.4;
6116
+ }
6117
+
6118
+ .funui-form-checkbox-label.checked {
6119
+ font-weight: 500;
6120
+ color: var(--primary);
6121
+ }
6122
+
6123
+ .funui-form-checkbox-label.required::after {
6124
+ content: " *";
6125
+ color: var(--danger);
6126
+ }
6127
+
6128
+ /* Radio Button Styles */
6129
+ .funui-form-radio {
6130
+ display: flex;
6131
+ align-items: center;
6132
+ gap: 0.75rem;
6133
+ cursor: pointer;
6134
+ user-select: none;
6135
+ padding: 0.5rem 0;
6136
+ transition: all 0.2s ease;
6137
+ width: fit-content;
6138
+ border-radius: 0.375rem;
6139
+ }
6140
+
6141
+ .funui-form-radio:hover {
6142
+ background-color: rgba(var(--primary-rgb, 59, 130, 246), 0.05);
6143
+ }
6144
+
6145
+ .funui-form-radio.disabled {
6146
+ cursor: not-allowed;
6147
+ opacity: 0.6;
6148
+ }
6149
+
6150
+ .funui-form-radio-circle {
6151
+ width: 1.25rem;
6152
+ height: 1.25rem;
6153
+ border: 2px solid var(--border);
6154
+ border-radius: 50%;
6155
+ background-color: white;
6156
+ position: relative;
6157
+ transition: all 0.2s ease;
6158
+ flex-shrink: 0;
6159
+ display: flex;
6160
+ align-items: center;
6161
+ justify-content: center;
6162
+ }
6163
+
6164
+ .funui-form-radio-circle:hover {
6165
+ border-color: var(--primary-light);
6166
+ }
6167
+
6168
+ .funui-form-radio-circle.checked {
6169
+ border-color: var(--primary);
6170
+ }
6171
+
6172
+ .funui-form-radio-circle.checked::after {
6173
+ content: '';
6174
+ position: absolute;
6175
+ width: 0.75rem;
6176
+ height: 0.75rem;
6177
+ background-color: var(--primary);
6178
+ border-radius: 50%;
6179
+ transform: scale(1);
6180
+ transition: transform 0.2s ease;
6181
+ }
6182
+
6183
+ .funui-form-radio-label {
6184
+ font-size: 0.9375rem;
6185
+ color: var(--text);
6186
+ font-weight: 400;
6187
+ line-height: 1.4;
6188
+ }
6189
+
6190
+ .funui-form-radio-label.checked {
6191
+ font-weight: 500;
6192
+ color: var(--primary);
6193
+ }
6194
+
6195
+ .funui-form-radio-label.required::after {
6196
+ content: " *";
6197
+ color: var(--danger);
6198
+ }
6199
+
6200
+ /* Form Groups (for multiple checkboxes/radios) */
6201
+ .funui-form-group {
6202
+ display: flex;
6203
+ flex-direction: column;
6204
+ gap: 0.75rem;
6205
+ margin-bottom: 1rem;
6206
+ }
6207
+
6208
+ .funui-form-group.horizontal {
6209
+ flex-direction: row;
6210
+ flex-wrap: wrap;
6211
+ gap: 1.5rem;
6212
+ }
6213
+
6214
+ /* Form States */
6215
+ .funui-form-checkbox-box.error,
6216
+ .funui-form-radio-circle.error {
6217
+ border-color: var(--danger);
6218
+ animation: pulse-error 1.5s ease-in-out infinite;
6219
+ }
6220
+
6221
+ .funui-form-checkbox-box.success,
6222
+ .funui-form-radio-circle.success {
6223
+ border-color: var(--success);
6224
+ }
6225
+
6226
+ .funui-form-checkbox-box.warning,
6227
+ .funui-form-radio-circle.warning {
6228
+ border-color: var(--warning);
6229
+ }
6230
+
6231
+ @keyframes pulse-error {
6232
+ 0%, 100% { box-shadow: 0 0 0 0 rgba(var(--danger-rgb, 239, 68, 68), 0.4); }
6233
+ 50% { box-shadow: 0 0 0 4px rgba(var(--danger-rgb, 239, 68, 68), 0); }
6234
+ }
6235
+
6236
+ /* Focus States */
6237
+ .funui-form-checkbox input[type="checkbox"]:focus + .funui-form-checkbox-box,
6238
+ .funui-form-radio input[type="radio"]:focus + .funui-form-radio-circle {
6239
+ outline: 2px solid var(--primary-light);
6240
+ outline-offset: 2px;
6241
+ }
6242
+
6243
+ /* Compact Variant */
6244
+ .funui-form-checkbox.compact,
6245
+ .funui-form-radio.compact {
6246
+ padding: 0.25rem 0;
6247
+ gap: 0.5rem;
6248
+ }
6249
+
6250
+ .funui-form-checkbox.compact .funui-form-checkbox-box,
6251
+ .funui-form-radio.compact .funui-form-radio-circle {
6252
+ width: 1rem;
6253
+ height: 1rem;
6254
+ }
6255
+
6256
+ .funui-form-checkbox.compact .funui-form-checkbox-box.checked::after,
6257
+ .funui-form-radio.compact .funui-form-radio-circle.checked::after {
6258
+ width: 0.5rem;
6259
+ height: 0.5rem;
6260
+ }
6261
+
6262
+ /* Full Width Variant */
6263
+ .funui-form-checkbox.full-width,
6264
+ .funui-form-radio.full-width {
6265
+ width: 100%;
6266
+ justify-content: space-between;
6267
+ padding: 0.75rem 1rem;
6268
+ border: 1px solid var(--border);
6269
+ border-radius: 0.5rem;
6270
+ background-color: white;
6271
+ }
6272
+
6273
+ .funui-form-checkbox.full-width:hover,
6274
+ .funui-form-radio.full-width:hover {
6275
+ border-color: var(--primary-light);
6276
+ background-color: rgba(var(--primary-rgb, 59, 130, 246), 0.03);
6277
+ }
6278
+
6279
+ .funui-form-checkbox.full-width.checked,
6280
+ .funui-form-radio.full-width.checked {
6281
+ border-color: var(--primary);
6282
+ background-color: rgba(var(--primary-rgb, 59, 130, 246), 0.08);
6283
+ }
6284
+
6285
+ /* Accessibility */
6286
+ .funui-form-checkbox input[type="checkbox"],
6287
+ .funui-form-radio input[type="radio"] {
6288
+ position: absolute;
6289
+ opacity: 0;
6290
+ width: 1px;
6291
+ height: 1px;
6292
+ margin: -1px;
6293
+ padding: 0;
6294
+ overflow: hidden;
6295
+ clip: rect(0, 0, 0, 0);
6296
+ white-space: nowrap;
6297
+ border: 0;
6298
+ }
6299
+
6300
+ /* Form Error States */
6301
+ .funui-form-error {
6302
+ padding: 0.75rem;
6303
+ background-color: var(--danger-light);
6304
+ border: 1px solid var(--danger);
6305
+ border-radius: 0.375rem;
6306
+ margin-bottom: 1rem;
6307
+ animation: slideDown 0.3s ease;
6308
+ }
6309
+
6310
+
6002
6311
  /* Spinner Animation */
6003
6312
  .spin {
6004
6313
  animation: spin 1s linear infinite;
@@ -6020,6 +6329,7 @@ color: var(--primary) !important;
6020
6329
  }
6021
6330
 
6022
6331
 
6332
+
6023
6333
 
6024
6334
 
6025
6335
  /* Spinner Animation */
package/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export { default as Alert } from "./ui/alert/Alert";
2
2
  export { default as ThemeProvider } from "./ui/theme/theme";
3
3
  export { default as Button } from "./ui/button/Button";
4
+ export { default as Badge } from "./ui/button/Button";
4
5
  export { default as Card } from "./ui/card/Card";
5
6
  export { default as BreadCrumb } from "./ui/breadcrumb/BreadCrumb";
6
7
  export { default as Container } from "./ui/container/Container";
@@ -34,6 +35,7 @@ export { default as Tip } from "./ui/tooltip/Tip";
34
35
  export { default as RowFlex } from "./ui/specials/RowFlex";
35
36
  export { default as Section } from "./ui/specials/Section";
36
37
  export { default as Hr } from "./ui/specials/Hr";
38
+ export { default as Divider } from "./ui/specials/Hr";
37
39
  export { default as Circle } from "./ui/specials/Circle";
38
40
  export { default as CircleGroup } from "./ui/specials/CircleGroup";
39
41
  export { default as FullCenteredPage } from "./ui/specials/FullCenteredPage";
package/index.js CHANGED
@@ -3,14 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
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.Form = exports.Empty = exports.Store = exports.Feature = exports.Footer = exports.FileUpload = exports.Select = exports.ScrollToTop = exports.FlexItem = exports.Slider = exports.Vista = exports.Calendar = exports.DatePicker = void 0;
6
+ 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.Divider = 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.Badge = 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.Form = exports.Empty = exports.Store = exports.Feature = exports.Footer = exports.FileUpload = exports.Select = exports.ScrollToTop = exports.FlexItem = exports.Slider = exports.Vista = exports.Calendar = exports.DatePicker = exports.View = exports.ScrollInView = 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");
11
11
  Object.defineProperty(exports, "ThemeProvider", { enumerable: true, get: function () { return __importDefault(theme_1).default; } });
12
12
  var Button_1 = require("./ui/button/Button");
13
13
  Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return __importDefault(Button_1).default; } });
14
+ var Button_2 = require("./ui/button/Button");
15
+ Object.defineProperty(exports, "Badge", { enumerable: true, get: function () { return __importDefault(Button_2).default; } });
14
16
  var Card_1 = require("./ui/card/Card");
15
17
  Object.defineProperty(exports, "Card", { enumerable: true, get: function () { return __importDefault(Card_1).default; } });
16
18
  var BreadCrumb_1 = require("./ui/breadcrumb/BreadCrumb");
@@ -77,6 +79,8 @@ var Section_1 = require("./ui/specials/Section");
77
79
  Object.defineProperty(exports, "Section", { enumerable: true, get: function () { return __importDefault(Section_1).default; } });
78
80
  var Hr_1 = require("./ui/specials/Hr");
79
81
  Object.defineProperty(exports, "Hr", { enumerable: true, get: function () { return __importDefault(Hr_1).default; } });
82
+ var Hr_2 = require("./ui/specials/Hr");
83
+ Object.defineProperty(exports, "Divider", { enumerable: true, get: function () { return __importDefault(Hr_2).default; } });
80
84
  var Circle_1 = require("./ui/specials/Circle");
81
85
  Object.defineProperty(exports, "Circle", { enumerable: true, get: function () { return __importDefault(Circle_1).default; } });
82
86
  var CircleGroup_1 = require("./ui/specials/CircleGroup");
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.8.8",
2
+ "version": "3.8.10",
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",
@@ -3,12 +3,12 @@ interface ButtonProps {
3
3
  color?: string;
4
4
  bg?: string;
5
5
  funcss?: string;
6
- startIcon?: ReactNode;
7
- endIcon?: ReactNode;
6
+ startIcon?: ReactNode | string;
7
+ endIcon?: ReactNode | string;
8
8
  stringPrefix?: string;
9
9
  stringSuffix?: string;
10
- prefix?: ReactNode;
11
- suffix?: ReactNode;
10
+ prefix?: ReactNode | string;
11
+ suffix?: ReactNode | string;
12
12
  iconSize?: number | string;
13
13
  iconLineHeight?: string | number;
14
14
  text?: string;