funuicss 3.8.8 → 3.8.9

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
@@ -5999,6 +5999,316 @@ color: var(--primary) !important;
5999
5999
  }
6000
6000
 
6001
6001
 
6002
+
6003
+ /* form */
6004
+ /* Form Component CSS */
6005
+ .funui-form {
6006
+ width: 100%;
6007
+ }
6008
+
6009
+ .funui-form-wrapper {
6010
+ width: 100%;
6011
+ max-width: 100%;
6012
+ }
6013
+
6014
+ /* Form Labels */
6015
+ .funui-form-label {
6016
+ display: block;
6017
+ margin-bottom: 0.5rem;
6018
+ font-weight: 500;
6019
+ color: var(--text);
6020
+ }
6021
+
6022
+ .funui-form-label.required::after {
6023
+ content: " *";
6024
+ color: var(--danger);
6025
+ }
6026
+
6027
+ /* Form Fields */
6028
+ .funui-form-field {
6029
+ margin-bottom: 1.5rem;
6030
+ width: 100%;
6031
+ }
6032
+
6033
+ .funui-form-field-error {
6034
+ animation: shake 0.3s ease-in-out;
6035
+ }
6036
+
6037
+ @keyframes shake {
6038
+ 0%, 100% { transform: translateX(0); }
6039
+ 10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
6040
+ 20%, 40%, 60%, 80% { transform: translateX(5px); }
6041
+ }
6042
+
6043
+ /* Checkbox Styles */
6044
+ .funui-form-checkbox {
6045
+ display: flex;
6046
+ align-items: center;
6047
+ gap: 0.75rem;
6048
+ cursor: pointer;
6049
+ user-select: none;
6050
+ padding: 0.5rem 0;
6051
+ transition: all 0.2s ease;
6052
+ width: fit-content;
6053
+ border-radius: 0.375rem;
6054
+ }
6055
+
6056
+ .funui-form-checkbox:hover {
6057
+ background-color: rgba(var(--primary-rgb, 59, 130, 246), 0.05);
6058
+ }
6059
+
6060
+ .funui-form-checkbox.disabled {
6061
+ cursor: not-allowed;
6062
+ opacity: 0.6;
6063
+ }
6064
+
6065
+ .funui-form-checkbox-box {
6066
+ width: 1.25rem;
6067
+ height: 1.25rem;
6068
+ border: 2px solid var(--border);
6069
+ border-radius: 0.375rem;
6070
+ background-color: white;
6071
+ position: relative;
6072
+ transition: all 0.2s ease;
6073
+ flex-shrink: 0;
6074
+ display: flex;
6075
+ align-items: center;
6076
+ justify-content: center;
6077
+ }
6078
+
6079
+ .funui-form-checkbox-box:hover {
6080
+ border-color: var(--primary-light);
6081
+ }
6082
+
6083
+ .funui-form-checkbox-box.checked {
6084
+ border-color: var(--primary);
6085
+ background-color: var(--primary);
6086
+ }
6087
+
6088
+ .funui-form-checkbox-box.checked::after {
6089
+ content: '';
6090
+ position: absolute;
6091
+ width: 0.75rem;
6092
+ height: 0.75rem;
6093
+ background-color: white;
6094
+ border-radius: 0.125rem;
6095
+ transform: scale(1);
6096
+ transition: transform 0.2s ease;
6097
+ }
6098
+
6099
+ /* Alternative checkmark style (using SVG-like pseudo-element) */
6100
+ .funui-form-checkbox-box.checked.checkmark::after {
6101
+ content: '';
6102
+ width: 0.375rem;
6103
+ height: 0.75rem;
6104
+ border: solid white;
6105
+ border-width: 0 2px 2px 0;
6106
+ background-color: transparent;
6107
+ border-radius: 0;
6108
+ transform: rotate(45deg) translate(-1px, -1px);
6109
+ margin-top: -2px;
6110
+ }
6111
+
6112
+ .funui-form-checkbox-label {
6113
+ font-size: 0.9375rem;
6114
+ color: var(--text);
6115
+ font-weight: 400;
6116
+ line-height: 1.4;
6117
+ }
6118
+
6119
+ .funui-form-checkbox-label.checked {
6120
+ font-weight: 500;
6121
+ color: var(--primary);
6122
+ }
6123
+
6124
+ .funui-form-checkbox-label.required::after {
6125
+ content: " *";
6126
+ color: var(--danger);
6127
+ }
6128
+
6129
+ /* Radio Button Styles */
6130
+ .funui-form-radio {
6131
+ display: flex;
6132
+ align-items: center;
6133
+ gap: 0.75rem;
6134
+ cursor: pointer;
6135
+ user-select: none;
6136
+ padding: 0.5rem 0;
6137
+ transition: all 0.2s ease;
6138
+ width: fit-content;
6139
+ border-radius: 0.375rem;
6140
+ }
6141
+
6142
+ .funui-form-radio:hover {
6143
+ background-color: rgba(var(--primary-rgb, 59, 130, 246), 0.05);
6144
+ }
6145
+
6146
+ .funui-form-radio.disabled {
6147
+ cursor: not-allowed;
6148
+ opacity: 0.6;
6149
+ }
6150
+
6151
+ .funui-form-radio-circle {
6152
+ width: 1.25rem;
6153
+ height: 1.25rem;
6154
+ border: 2px solid var(--border);
6155
+ border-radius: 50%;
6156
+ background-color: white;
6157
+ position: relative;
6158
+ transition: all 0.2s ease;
6159
+ flex-shrink: 0;
6160
+ display: flex;
6161
+ align-items: center;
6162
+ justify-content: center;
6163
+ }
6164
+
6165
+ .funui-form-radio-circle:hover {
6166
+ border-color: var(--primary-light);
6167
+ }
6168
+
6169
+ .funui-form-radio-circle.checked {
6170
+ border-color: var(--primary);
6171
+ }
6172
+
6173
+ .funui-form-radio-circle.checked::after {
6174
+ content: '';
6175
+ position: absolute;
6176
+ width: 0.75rem;
6177
+ height: 0.75rem;
6178
+ background-color: var(--primary);
6179
+ border-radius: 50%;
6180
+ transform: scale(1);
6181
+ transition: transform 0.2s ease;
6182
+ }
6183
+
6184
+ .funui-form-radio-label {
6185
+ font-size: 0.9375rem;
6186
+ color: var(--text);
6187
+ font-weight: 400;
6188
+ line-height: 1.4;
6189
+ }
6190
+
6191
+ .funui-form-radio-label.checked {
6192
+ font-weight: 500;
6193
+ color: var(--primary);
6194
+ }
6195
+
6196
+ .funui-form-radio-label.required::after {
6197
+ content: " *";
6198
+ color: var(--danger);
6199
+ }
6200
+
6201
+ /* Form Groups (for multiple checkboxes/radios) */
6202
+ .funui-form-group {
6203
+ display: flex;
6204
+ flex-direction: column;
6205
+ gap: 0.75rem;
6206
+ margin-bottom: 1rem;
6207
+ }
6208
+
6209
+ .funui-form-group.horizontal {
6210
+ flex-direction: row;
6211
+ flex-wrap: wrap;
6212
+ gap: 1.5rem;
6213
+ }
6214
+
6215
+ /* Form States */
6216
+ .funui-form-checkbox-box.error,
6217
+ .funui-form-radio-circle.error {
6218
+ border-color: var(--danger);
6219
+ animation: pulse-error 1.5s ease-in-out infinite;
6220
+ }
6221
+
6222
+ .funui-form-checkbox-box.success,
6223
+ .funui-form-radio-circle.success {
6224
+ border-color: var(--success);
6225
+ }
6226
+
6227
+ .funui-form-checkbox-box.warning,
6228
+ .funui-form-radio-circle.warning {
6229
+ border-color: var(--warning);
6230
+ }
6231
+
6232
+ @keyframes pulse-error {
6233
+ 0%, 100% { box-shadow: 0 0 0 0 rgba(var(--danger-rgb, 239, 68, 68), 0.4); }
6234
+ 50% { box-shadow: 0 0 0 4px rgba(var(--danger-rgb, 239, 68, 68), 0); }
6235
+ }
6236
+
6237
+ /* Focus States */
6238
+ .funui-form-checkbox input[type="checkbox"]:focus + .funui-form-checkbox-box,
6239
+ .funui-form-radio input[type="radio"]:focus + .funui-form-radio-circle {
6240
+ outline: 2px solid var(--primary-light);
6241
+ outline-offset: 2px;
6242
+ }
6243
+
6244
+ /* Compact Variant */
6245
+ .funui-form-checkbox.compact,
6246
+ .funui-form-radio.compact {
6247
+ padding: 0.25rem 0;
6248
+ gap: 0.5rem;
6249
+ }
6250
+
6251
+ .funui-form-checkbox.compact .funui-form-checkbox-box,
6252
+ .funui-form-radio.compact .funui-form-radio-circle {
6253
+ width: 1rem;
6254
+ height: 1rem;
6255
+ }
6256
+
6257
+ .funui-form-checkbox.compact .funui-form-checkbox-box.checked::after,
6258
+ .funui-form-radio.compact .funui-form-radio-circle.checked::after {
6259
+ width: 0.5rem;
6260
+ height: 0.5rem;
6261
+ }
6262
+
6263
+ /* Full Width Variant */
6264
+ .funui-form-checkbox.full-width,
6265
+ .funui-form-radio.full-width {
6266
+ width: 100%;
6267
+ justify-content: space-between;
6268
+ padding: 0.75rem 1rem;
6269
+ border: 1px solid var(--border);
6270
+ border-radius: 0.5rem;
6271
+ background-color: white;
6272
+ }
6273
+
6274
+ .funui-form-checkbox.full-width:hover,
6275
+ .funui-form-radio.full-width:hover {
6276
+ border-color: var(--primary-light);
6277
+ background-color: rgba(var(--primary-rgb, 59, 130, 246), 0.03);
6278
+ }
6279
+
6280
+ .funui-form-checkbox.full-width.checked,
6281
+ .funui-form-radio.full-width.checked {
6282
+ border-color: var(--primary);
6283
+ background-color: rgba(var(--primary-rgb, 59, 130, 246), 0.08);
6284
+ }
6285
+
6286
+ /* Accessibility */
6287
+ .funui-form-checkbox input[type="checkbox"],
6288
+ .funui-form-radio input[type="radio"] {
6289
+ position: absolute;
6290
+ opacity: 0;
6291
+ width: 1px;
6292
+ height: 1px;
6293
+ margin: -1px;
6294
+ padding: 0;
6295
+ overflow: hidden;
6296
+ clip: rect(0, 0, 0, 0);
6297
+ white-space: nowrap;
6298
+ border: 0;
6299
+ }
6300
+
6301
+ /* Form Error States */
6302
+ .funui-form-error {
6303
+ padding: 0.75rem;
6304
+ background-color: var(--danger-light);
6305
+ border: 1px solid var(--danger);
6306
+ border-radius: 0.375rem;
6307
+ margin-bottom: 1rem;
6308
+ animation: slideDown 0.3s ease;
6309
+ }
6310
+
6311
+
6002
6312
  /* Spinner Animation */
6003
6313
  .spin {
6004
6314
  animation: spin 1s linear infinite;
@@ -6020,6 +6330,7 @@ color: var(--primary) !important;
6020
6330
  }
6021
6331
 
6022
6332
 
6333
+
6023
6334
 
6024
6335
 
6025
6336
  /* 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.9",
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;