@algorithm-shift/design-system 1.2.3 → 1.2.5

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/dist/index.mjs CHANGED
@@ -54,50 +54,1585 @@ function Button({
54
54
  );
55
55
  }
56
56
 
57
- // src/components/CustomButton.tsx
57
+ // src/components/Layout/Flex.tsx
58
58
  import { jsx as jsx2 } from "react/jsx-runtime";
59
- function CustomButton({
59
+ var Flex = ({
60
+ children,
61
+ className,
62
+ style
63
+ }) => {
64
+ return /* @__PURE__ */ jsx2("div", { className, style, children });
65
+ };
66
+ var Flex_default = Flex;
67
+
68
+ // src/components/Layout/Grid.tsx
69
+ import { jsx as jsx3 } from "react/jsx-runtime";
70
+ var Grid = ({
71
+ children,
72
+ className,
73
+ style
74
+ }) => {
75
+ return /* @__PURE__ */ jsx3("div", { className, style, children });
76
+ };
77
+ var Grid_default = Grid;
78
+
79
+ // src/components/Basic/Typography/Typography.tsx
80
+ import React from "react";
81
+ var Typography = ({
82
+ className,
83
+ style,
84
+ tagName,
85
+ textContent
86
+ }) => {
87
+ const Tag = tagName || "h1";
88
+ return React.createElement(
89
+ Tag,
90
+ {
91
+ style,
92
+ className: cn(className, "pointer-events-auto")
93
+ },
94
+ [
95
+ React.createElement("span", {
96
+ key: "html",
97
+ className: "pointer-events-none",
98
+ dangerouslySetInnerHTML: { __html: textContent }
99
+ })
100
+ ]
101
+ );
102
+ };
103
+ var Typography_default = Typography;
104
+
105
+ // src/components/Basic/Shape/Shape.tsx
106
+ import { jsx as jsx4 } from "react/jsx-runtime";
107
+
108
+ // src/components/Inputs/TextInput/TextInput.tsx
109
+ import * as React2 from "react";
110
+
111
+ // src/components/ui/input.tsx
112
+ import { jsx as jsx5 } from "react/jsx-runtime";
113
+ function Input({ className, type, ...props }) {
114
+ return /* @__PURE__ */ jsx5(
115
+ "input",
116
+ {
117
+ type,
118
+ "data-slot": "input",
119
+ className: cn(
120
+ "file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
121
+ "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
122
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
123
+ className
124
+ ),
125
+ ...props
126
+ }
127
+ );
128
+ }
129
+
130
+ // src/components/Inputs/TextInput/TextInput.tsx
131
+ import { Fragment, jsx as jsx6, jsxs } from "react/jsx-runtime";
132
+ var TextInput = ({ className, style, ...props }) => {
133
+ const placeholder = props.placeholder || "Placeholder text";
134
+ const regexPattern = props.regexPattern ?? "";
135
+ const errorMessage = props.errorMessage ?? "Required";
136
+ const noOfCharacters = props.noOfCharacters ?? 100;
137
+ const isRequired = props.isRequired ?? false;
138
+ const isEditable = props.isEditable ?? true;
139
+ const isDisabled = props.isDisabled ?? false;
140
+ const isReadonly = props.isReadonly ?? false;
141
+ const isAutocomplete = props.isAutocomplete ?? false;
142
+ const [value, setValue] = React2.useState("");
143
+ const [error, setError] = React2.useState(null);
144
+ const handleChange = (e) => {
145
+ const val = e.target.value;
146
+ if (val.length > noOfCharacters) return;
147
+ setValue(val);
148
+ if (isRequired && val.trim() === "") {
149
+ setError(errorMessage);
150
+ } else if (regexPattern && !new RegExp(regexPattern).test(val)) {
151
+ setError(errorMessage);
152
+ } else {
153
+ setError(null);
154
+ }
155
+ };
156
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
157
+ /* @__PURE__ */ jsx6(
158
+ Input,
159
+ {
160
+ type: "text",
161
+ className,
162
+ style,
163
+ value,
164
+ autoComplete: isAutocomplete ? "on" : "off",
165
+ placeholder,
166
+ onChange: handleChange,
167
+ disabled: isDisabled || !isEditable,
168
+ readOnly: isReadonly,
169
+ required: isRequired,
170
+ maxLength: noOfCharacters,
171
+ pattern: regexPattern || void 0
172
+ }
173
+ ),
174
+ error && /* @__PURE__ */ jsx6("p", { className: "mt-1 text-xs text-red-500", children: error })
175
+ ] });
176
+ };
177
+
178
+ // src/components/Inputs/EmailInput/EmailInput.tsx
179
+ import * as React3 from "react";
180
+
181
+ // node_modules/lucide-react/dist/esm/createLucideIcon.js
182
+ import { forwardRef as forwardRef2, createElement as createElement2 } from "react";
183
+
184
+ // node_modules/lucide-react/dist/esm/shared/src/utils.js
185
+ var toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
186
+ var toCamelCase = (string) => string.replace(
187
+ /^([A-Z])|[\s-_]+(\w)/g,
188
+ (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
189
+ );
190
+ var toPascalCase = (string) => {
191
+ const camelCase = toCamelCase(string);
192
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
193
+ };
194
+ var mergeClasses = (...classes) => classes.filter((className, index, array) => {
195
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
196
+ }).join(" ").trim();
197
+ var hasA11yProp = (props) => {
198
+ for (const prop in props) {
199
+ if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
200
+ return true;
201
+ }
202
+ }
203
+ };
204
+
205
+ // node_modules/lucide-react/dist/esm/Icon.js
206
+ import { forwardRef, createElement } from "react";
207
+
208
+ // node_modules/lucide-react/dist/esm/defaultAttributes.js
209
+ var defaultAttributes = {
210
+ xmlns: "http://www.w3.org/2000/svg",
211
+ width: 24,
212
+ height: 24,
213
+ viewBox: "0 0 24 24",
214
+ fill: "none",
215
+ stroke: "currentColor",
216
+ strokeWidth: 2,
217
+ strokeLinecap: "round",
218
+ strokeLinejoin: "round"
219
+ };
220
+
221
+ // node_modules/lucide-react/dist/esm/Icon.js
222
+ var Icon = forwardRef(
223
+ ({
224
+ color = "currentColor",
225
+ size = 24,
226
+ strokeWidth = 2,
227
+ absoluteStrokeWidth,
228
+ className = "",
229
+ children,
230
+ iconNode,
231
+ ...rest
232
+ }, ref) => createElement(
233
+ "svg",
234
+ {
235
+ ref,
236
+ ...defaultAttributes,
237
+ width: size,
238
+ height: size,
239
+ stroke: color,
240
+ strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
241
+ className: mergeClasses("lucide", className),
242
+ ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
243
+ ...rest
244
+ },
245
+ [
246
+ ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
247
+ ...Array.isArray(children) ? children : [children]
248
+ ]
249
+ )
250
+ );
251
+
252
+ // node_modules/lucide-react/dist/esm/createLucideIcon.js
253
+ var createLucideIcon = (iconName, iconNode) => {
254
+ const Component = forwardRef2(
255
+ ({ className, ...props }, ref) => createElement2(Icon, {
256
+ ref,
257
+ iconNode,
258
+ className: mergeClasses(
259
+ `lucide-${toKebabCase(toPascalCase(iconName))}`,
260
+ `lucide-${iconName}`,
261
+ className
262
+ ),
263
+ ...props
264
+ })
265
+ );
266
+ Component.displayName = toPascalCase(iconName);
267
+ return Component;
268
+ };
269
+
270
+ // node_modules/lucide-react/dist/esm/icons/check.js
271
+ var __iconNode = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]];
272
+ var Check = createLucideIcon("check", __iconNode);
273
+
274
+ // node_modules/lucide-react/dist/esm/icons/chevron-down.js
275
+ var __iconNode2 = [["path", { d: "m6 9 6 6 6-6", key: "qrunsl" }]];
276
+ var ChevronDown = createLucideIcon("chevron-down", __iconNode2);
277
+
278
+ // node_modules/lucide-react/dist/esm/icons/chevron-left.js
279
+ var __iconNode3 = [["path", { d: "m15 18-6-6 6-6", key: "1wnfg3" }]];
280
+ var ChevronLeft = createLucideIcon("chevron-left", __iconNode3);
281
+
282
+ // node_modules/lucide-react/dist/esm/icons/chevron-right.js
283
+ var __iconNode4 = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
284
+ var ChevronRight = createLucideIcon("chevron-right", __iconNode4);
285
+
286
+ // node_modules/lucide-react/dist/esm/icons/chevron-up.js
287
+ var __iconNode5 = [["path", { d: "m18 15-6-6-6 6", key: "153udz" }]];
288
+ var ChevronUp = createLucideIcon("chevron-up", __iconNode5);
289
+
290
+ // node_modules/lucide-react/dist/esm/icons/circle.js
291
+ var __iconNode6 = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
292
+ var Circle = createLucideIcon("circle", __iconNode6);
293
+
294
+ // node_modules/lucide-react/dist/esm/icons/mail.js
295
+ var __iconNode7 = [
296
+ ["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
297
+ ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
298
+ ];
299
+ var Mail = createLucideIcon("mail", __iconNode7);
300
+
301
+ // node_modules/lucide-react/dist/esm/icons/scan-eye.js
302
+ var __iconNode8 = [
303
+ ["path", { d: "M3 7V5a2 2 0 0 1 2-2h2", key: "aa7l1z" }],
304
+ ["path", { d: "M17 3h2a2 2 0 0 1 2 2v2", key: "4qcy5o" }],
305
+ ["path", { d: "M21 17v2a2 2 0 0 1-2 2h-2", key: "6vwrx8" }],
306
+ ["path", { d: "M7 21H5a2 2 0 0 1-2-2v-2", key: "ioqczr" }],
307
+ ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
308
+ [
309
+ "path",
310
+ {
311
+ d: "M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0",
312
+ key: "11ak4c"
313
+ }
314
+ ]
315
+ ];
316
+ var ScanEye = createLucideIcon("scan-eye", __iconNode8);
317
+
318
+ // src/components/Inputs/EmailInput/EmailInput.tsx
319
+ import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs2 } from "react/jsx-runtime";
320
+ var EmailInput = ({ className, style, ...props }) => {
321
+ const placeholder = props.placeholder ?? "Placeholder text";
322
+ const regexPattern = props.regexPattern ?? "";
323
+ const errorMessage = props.errorMessage ?? "Required";
324
+ const noOfCharacters = props.noOfCharacters ?? 100;
325
+ const isRequired = props.isRequired ?? false;
326
+ const isEditable = props.isEditable ?? true;
327
+ const isDisabled = props.isDisabled ?? false;
328
+ const isReadonly = props.isReadonly ?? false;
329
+ const isAutocomplete = props.isAutocomplete ?? false;
330
+ const [value, setValue] = React3.useState("");
331
+ const [error, setError] = React3.useState(null);
332
+ const handleChange = (e) => {
333
+ const val = e.target.value;
334
+ if (val.length > noOfCharacters) return;
335
+ setValue(val);
336
+ if (isRequired && val.trim() === "") {
337
+ setError(errorMessage);
338
+ } else if (regexPattern && !new RegExp(regexPattern).test(val)) {
339
+ setError(errorMessage);
340
+ } else {
341
+ setError(null);
342
+ }
343
+ };
344
+ return /* @__PURE__ */ jsxs2(Fragment2, { children: [
345
+ /* @__PURE__ */ jsxs2("div", { className: "flex justify-start items-center relative", children: [
346
+ /* @__PURE__ */ jsx7(Mail, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]" }),
347
+ /* @__PURE__ */ jsx7(
348
+ Input,
349
+ {
350
+ type: "email",
351
+ value,
352
+ className,
353
+ style,
354
+ autoComplete: isAutocomplete ? "on" : "off",
355
+ placeholder,
356
+ onChange: handleChange,
357
+ disabled: isDisabled || !isEditable,
358
+ readOnly: isReadonly,
359
+ required: isRequired,
360
+ maxLength: noOfCharacters,
361
+ pattern: regexPattern || void 0
362
+ }
363
+ )
364
+ ] }),
365
+ error && /* @__PURE__ */ jsx7("p", { className: "mt-1 text-xs text-red-500", children: error })
366
+ ] });
367
+ };
368
+
369
+ // src/components/Inputs/PasswordInput/PasswordInput.tsx
370
+ import * as React4 from "react";
371
+ import { Fragment as Fragment3, jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
372
+ var PasswordInput = ({ className, style, ...props }) => {
373
+ const placeholder = props.placeholder ?? "Placeholder text";
374
+ const regexPattern = props.regexPattern ?? "";
375
+ const errorMessage = props.errorMessage ?? "Required";
376
+ const noOfCharacters = props.noOfCharacters ?? 100;
377
+ const isRequired = props.isRequired ?? false;
378
+ const isEditable = props.isEditable ?? true;
379
+ const isDisabled = props.isDisabled ?? false;
380
+ const isReadonly = props.isReadonly ?? false;
381
+ const isAutocomplete = props.isAutocomplete ?? false;
382
+ const [value, setValue] = React4.useState("");
383
+ const [error, setError] = React4.useState(null);
384
+ const handleChange = (e) => {
385
+ const val = e.target.value;
386
+ if (val.length > noOfCharacters) return;
387
+ setValue(val);
388
+ if (isRequired && val.trim() === "") {
389
+ setError(errorMessage);
390
+ } else if (regexPattern && !new RegExp(regexPattern).test(val)) {
391
+ setError(errorMessage);
392
+ } else {
393
+ setError(null);
394
+ }
395
+ };
396
+ return /* @__PURE__ */ jsxs3(Fragment3, { children: [
397
+ /* @__PURE__ */ jsxs3("div", { className: "flex justify-start items-center relative", children: [
398
+ /* @__PURE__ */ jsx8(ScanEye, { className: "absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]" }),
399
+ /* @__PURE__ */ jsx8(
400
+ Input,
401
+ {
402
+ type: "password",
403
+ id: "password-field",
404
+ className,
405
+ style,
406
+ value,
407
+ autoComplete: isAutocomplete ? "on" : "off",
408
+ placeholder,
409
+ onChange: handleChange,
410
+ disabled: isDisabled || !isEditable,
411
+ readOnly: isReadonly,
412
+ required: isRequired,
413
+ maxLength: noOfCharacters,
414
+ pattern: regexPattern || void 0
415
+ }
416
+ )
417
+ ] }),
418
+ error && /* @__PURE__ */ jsx8("p", { className: "mt-1 text-xs text-red-500", children: error })
419
+ ] });
420
+ };
421
+
422
+ // src/components/Inputs/Textarea/Textarea.tsx
423
+ import * as React5 from "react";
424
+
425
+ // src/components/ui/textarea.tsx
426
+ import { jsx as jsx9 } from "react/jsx-runtime";
427
+ function Textarea({ className, ...props }) {
428
+ return /* @__PURE__ */ jsx9(
429
+ "textarea",
430
+ {
431
+ "data-slot": "textarea",
432
+ className: cn(
433
+ "border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
434
+ className
435
+ ),
436
+ ...props
437
+ }
438
+ );
439
+ }
440
+
441
+ // src/components/Inputs/Textarea/Textarea.tsx
442
+ import { Fragment as Fragment4, jsx as jsx10, jsxs as jsxs4 } from "react/jsx-runtime";
443
+ var Textarea2 = ({ className, style, ...props }) => {
444
+ const placeholder = props.placeholder ?? "Placeholder text";
445
+ const regexPattern = props.regexPattern ?? "";
446
+ const errorMessage = props.errorMessage ?? "Required";
447
+ const noOfCharacters = props.noOfCharacters ?? 100;
448
+ const isRequired = props.isRequired ?? false;
449
+ const isEditable = props.isEditable ?? true;
450
+ const isDisabled = props.isDisabled ?? false;
451
+ const isReadonly = props.isReadonly ?? false;
452
+ const isAutocomplete = props.isAutocomplete ?? false;
453
+ const [value, setValue] = React5.useState("");
454
+ const [error, setError] = React5.useState(null);
455
+ const handleChange = (e) => {
456
+ const val = e.target.value;
457
+ if (val.length > noOfCharacters) return;
458
+ setValue(val);
459
+ if (isRequired && val.trim() === "") {
460
+ setError(errorMessage);
461
+ } else if (regexPattern && !new RegExp(regexPattern).test(val)) {
462
+ setError(errorMessage);
463
+ } else {
464
+ setError(null);
465
+ }
466
+ };
467
+ return /* @__PURE__ */ jsxs4(Fragment4, { children: [
468
+ /* @__PURE__ */ jsx10(
469
+ Textarea,
470
+ {
471
+ id: "textarea-field",
472
+ className,
473
+ style,
474
+ value,
475
+ autoComplete: isAutocomplete ? "on" : "off",
476
+ placeholder,
477
+ onChange: handleChange,
478
+ disabled: isDisabled || !isEditable,
479
+ readOnly: isReadonly,
480
+ required: isRequired,
481
+ maxLength: noOfCharacters
482
+ }
483
+ ),
484
+ error && /* @__PURE__ */ jsx10("p", { className: "mt-1 text-xs text-red-500", children: error })
485
+ ] });
486
+ };
487
+
488
+ // src/components/Inputs/UrlInput/UrlInput.tsx
489
+ import * as React6 from "react";
490
+ import { Fragment as Fragment5, jsx as jsx11, jsxs as jsxs5 } from "react/jsx-runtime";
491
+ var UrlInput = ({ className, style, ...props }) => {
492
+ const placeholder = props.placeholder ?? "Placeholder text";
493
+ const regexPattern = props.regexPattern ?? "";
494
+ const errorMessage = props.errorMessage ?? "Required";
495
+ const noOfCharacters = props.noOfCharacters ?? 100;
496
+ const isRequired = props.isRequired ?? false;
497
+ const isEditable = props.isEditable ?? true;
498
+ const isDisabled = props.isDisabled ?? false;
499
+ const isReadonly = props.isReadonly ?? false;
500
+ const isAutocomplete = props.isAutocomplete ?? false;
501
+ const [value, setValue] = React6.useState("");
502
+ const [error, setError] = React6.useState(null);
503
+ const handleChange = (e) => {
504
+ const val = e.target.value;
505
+ if (val.length > noOfCharacters) return;
506
+ setValue(val);
507
+ if (isRequired && val.trim() === "") {
508
+ setError(errorMessage);
509
+ } else if (regexPattern && !new RegExp(regexPattern).test(val)) {
510
+ setError(errorMessage);
511
+ } else {
512
+ setError(null);
513
+ }
514
+ };
515
+ return /* @__PURE__ */ jsxs5(Fragment5, { children: [
516
+ /* @__PURE__ */ jsxs5("div", { className: "flex justify-start items-center relative", children: [
517
+ /* @__PURE__ */ jsx11("div", { className: "bg-[#E9E9E9] absolute px-10 text-center top-1/2 h-full justify-center items-center flex w-10 -translate-y-1/2 text-[#383838] font-[500] text-[12px]", children: "https://" }),
518
+ /* @__PURE__ */ jsx11(
519
+ Input,
520
+ {
521
+ type: "url",
522
+ className,
523
+ style,
524
+ id: "url-field",
525
+ value,
526
+ autoComplete: isAutocomplete ? "on" : "off",
527
+ placeholder,
528
+ onChange: handleChange,
529
+ disabled: isDisabled || !isEditable,
530
+ readOnly: isReadonly,
531
+ required: isRequired,
532
+ maxLength: noOfCharacters,
533
+ pattern: regexPattern || void 0
534
+ }
535
+ )
536
+ ] }),
537
+ error && /* @__PURE__ */ jsx11("p", { className: "mt-1 text-xs text-red-500", children: error })
538
+ ] });
539
+ };
540
+
541
+ // src/components/ui/checkbox.tsx
542
+ import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
543
+ import { jsx as jsx12 } from "react/jsx-runtime";
544
+ function Checkbox({
60
545
  className,
61
- asChild = false,
62
546
  ...props
63
547
  }) {
64
- return /* @__PURE__ */ jsx2(
65
- "button",
548
+ return /* @__PURE__ */ jsx12(
549
+ CheckboxPrimitive.Root,
66
550
  {
67
- "data-slot": "button",
68
- className: "bg-red-500 text-white shadow-xs hover:bg-red-600 focus-visible:ring-red-200 dark:focus-visible:ring-red-400 dark:bg-red-700",
551
+ "data-slot": "checkbox",
552
+ className: cn(
553
+ "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
554
+ className
555
+ ),
556
+ ...props,
557
+ children: /* @__PURE__ */ jsx12(
558
+ CheckboxPrimitive.Indicator,
559
+ {
560
+ "data-slot": "checkbox-indicator",
561
+ className: "flex items-center justify-center text-current transition-none",
562
+ children: /* @__PURE__ */ jsx12(Check, { className: "size-3.5" })
563
+ }
564
+ )
565
+ }
566
+ );
567
+ }
568
+
569
+ // src/components/ui/label.tsx
570
+ import * as LabelPrimitive from "@radix-ui/react-label";
571
+ import { jsx as jsx13 } from "react/jsx-runtime";
572
+ function Label({
573
+ className,
574
+ ...props
575
+ }) {
576
+ return /* @__PURE__ */ jsx13(
577
+ LabelPrimitive.Root,
578
+ {
579
+ "data-slot": "label",
580
+ className: cn(
581
+ "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
582
+ className
583
+ ),
69
584
  ...props
70
585
  }
71
586
  );
72
587
  }
73
588
 
74
- // src/components/Layout/Flex.tsx
75
- import { jsx as jsx3 } from "react/jsx-runtime";
76
- var Flex = ({
77
- children,
589
+ // src/components/Inputs/Checkbox/Checkbox.tsx
590
+ import { jsx as jsx14, jsxs as jsxs6 } from "react/jsx-runtime";
591
+ var CheckboxInput = ({ className, style, ...props }) => {
592
+ const text = props.text ? props.text : "Subscribe";
593
+ return /* @__PURE__ */ jsx14("div", { className, style, children: /* @__PURE__ */ jsxs6("div", { className: "flex items-center space-x-2", children: [
594
+ /* @__PURE__ */ jsx14(Checkbox, { id: "newsletter" }),
595
+ /* @__PURE__ */ jsx14(Label, { htmlFor: "newsletter", children: text })
596
+ ] }) });
597
+ };
598
+
599
+ // src/components/ui/radio-group.tsx
600
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
601
+ import { jsx as jsx15 } from "react/jsx-runtime";
602
+ function RadioGroup({
78
603
  className,
79
- style
80
- }) => {
81
- return /* @__PURE__ */ jsx3("div", { className, style, children });
604
+ ...props
605
+ }) {
606
+ return /* @__PURE__ */ jsx15(
607
+ RadioGroupPrimitive.Root,
608
+ {
609
+ "data-slot": "radio-group",
610
+ className: cn("grid gap-3", className),
611
+ ...props
612
+ }
613
+ );
614
+ }
615
+ function RadioGroupItem({
616
+ className,
617
+ ...props
618
+ }) {
619
+ return /* @__PURE__ */ jsx15(
620
+ RadioGroupPrimitive.Item,
621
+ {
622
+ "data-slot": "radio-group-item",
623
+ className: cn(
624
+ "border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
625
+ className
626
+ ),
627
+ ...props,
628
+ children: /* @__PURE__ */ jsx15(
629
+ RadioGroupPrimitive.Indicator,
630
+ {
631
+ "data-slot": "radio-group-indicator",
632
+ className: "relative flex items-center justify-center",
633
+ children: /* @__PURE__ */ jsx15(Circle, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" })
634
+ }
635
+ )
636
+ }
637
+ );
638
+ }
639
+
640
+ // src/components/Inputs/RadioInput/RadioInput.tsx
641
+ import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
642
+ var RadioInput = ({ className, style, ...props }) => {
643
+ const text = Array.isArray(props.text) ? props.text : [props.text ?? "Subscribe"];
644
+ return /* @__PURE__ */ jsx16("div", { className, style, children: /* @__PURE__ */ jsx16(RadioGroup, { defaultValue: "option-1", children: text?.map((item, index) => /* @__PURE__ */ jsxs7("div", { className: "flex items-center space-x-2", children: [
645
+ /* @__PURE__ */ jsx16(RadioGroupItem, { value: item, id: `r${index}` }),
646
+ /* @__PURE__ */ jsx16(Label, { htmlFor: `r${index}`, children: item })
647
+ ] }, index)) }) });
82
648
  };
83
- var Flex_default = Flex;
84
649
 
85
- // src/components/Layout/Grid.tsx
86
- import { jsx as jsx4 } from "react/jsx-runtime";
87
- var Grid = ({
650
+ // src/components/Inputs/MultiCheckbox/MultiCheckbox.tsx
651
+ import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
652
+ var MultiCheckbox = ({ className, style, ...props }) => {
653
+ const text = Array.isArray(props.text) ? props.text : [props.text ?? "Subscribe"];
654
+ return /* @__PURE__ */ jsx17("div", { className, style, children: /* @__PURE__ */ jsx17("div", { className: "flex gap-3 flex-col", children: text?.map((item, index) => /* @__PURE__ */ jsxs8("div", { className: "flex items-center space-x-2", children: [
655
+ /* @__PURE__ */ jsx17(Checkbox, { id: `newsletter-${index}` }),
656
+ /* @__PURE__ */ jsx17(Label, { htmlFor: `newsletter-${index}`, children: item })
657
+ ] }, index)) }) });
658
+ };
659
+
660
+ // src/components/Global/TinyMceEditor.tsx
661
+ import { useMemo, useRef } from "react";
662
+ import { Editor } from "@tinymce/tinymce-react";
663
+ import { jsx as jsx18 } from "react/jsx-runtime";
664
+
665
+ // src/components/Inputs/RichText/RichText.tsx
666
+ import { jsx as jsx19 } from "react/jsx-runtime";
667
+
668
+ // src/components/Inputs/Dropdown/Dropdown.tsx
669
+ import * as React7 from "react";
670
+
671
+ // src/components/ui/select.tsx
672
+ import * as SelectPrimitive from "@radix-ui/react-select";
673
+ import { jsx as jsx20, jsxs as jsxs9 } from "react/jsx-runtime";
674
+ function Select({
675
+ ...props
676
+ }) {
677
+ return /* @__PURE__ */ jsx20(SelectPrimitive.Root, { "data-slot": "select", ...props });
678
+ }
679
+ function SelectValue({
680
+ ...props
681
+ }) {
682
+ return /* @__PURE__ */ jsx20(SelectPrimitive.Value, { "data-slot": "select-value", ...props });
683
+ }
684
+ function SelectTrigger({
685
+ className,
686
+ size = "default",
88
687
  children,
688
+ ...props
689
+ }) {
690
+ return /* @__PURE__ */ jsxs9(
691
+ SelectPrimitive.Trigger,
692
+ {
693
+ "data-slot": "select-trigger",
694
+ "data-size": size,
695
+ className: cn(
696
+ "border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
697
+ className
698
+ ),
699
+ ...props,
700
+ children: [
701
+ children,
702
+ /* @__PURE__ */ jsx20(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx20(ChevronDown, { className: "size-4 opacity-50" }) })
703
+ ]
704
+ }
705
+ );
706
+ }
707
+ function SelectContent({
708
+ className,
709
+ children,
710
+ position = "popper",
711
+ ...props
712
+ }) {
713
+ return /* @__PURE__ */ jsx20(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs9(
714
+ SelectPrimitive.Content,
715
+ {
716
+ "data-slot": "select-content",
717
+ className: cn(
718
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md",
719
+ position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
720
+ className
721
+ ),
722
+ position,
723
+ ...props,
724
+ children: [
725
+ /* @__PURE__ */ jsx20(SelectScrollUpButton, {}),
726
+ /* @__PURE__ */ jsx20(
727
+ SelectPrimitive.Viewport,
728
+ {
729
+ className: cn(
730
+ "p-1",
731
+ position === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"
732
+ ),
733
+ children
734
+ }
735
+ ),
736
+ /* @__PURE__ */ jsx20(SelectScrollDownButton, {})
737
+ ]
738
+ }
739
+ ) });
740
+ }
741
+ function SelectItem({
742
+ className,
743
+ children,
744
+ ...props
745
+ }) {
746
+ return /* @__PURE__ */ jsxs9(
747
+ SelectPrimitive.Item,
748
+ {
749
+ "data-slot": "select-item",
750
+ className: cn(
751
+ "focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
752
+ className
753
+ ),
754
+ ...props,
755
+ children: [
756
+ /* @__PURE__ */ jsx20("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsx20(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx20(Check, { className: "size-4" }) }) }),
757
+ /* @__PURE__ */ jsx20(SelectPrimitive.ItemText, { children })
758
+ ]
759
+ }
760
+ );
761
+ }
762
+ function SelectScrollUpButton({
763
+ className,
764
+ ...props
765
+ }) {
766
+ return /* @__PURE__ */ jsx20(
767
+ SelectPrimitive.ScrollUpButton,
768
+ {
769
+ "data-slot": "select-scroll-up-button",
770
+ className: cn(
771
+ "flex cursor-default items-center justify-center py-1",
772
+ className
773
+ ),
774
+ ...props,
775
+ children: /* @__PURE__ */ jsx20(ChevronUp, { className: "size-4" })
776
+ }
777
+ );
778
+ }
779
+ function SelectScrollDownButton({
780
+ className,
781
+ ...props
782
+ }) {
783
+ return /* @__PURE__ */ jsx20(
784
+ SelectPrimitive.ScrollDownButton,
785
+ {
786
+ "data-slot": "select-scroll-down-button",
787
+ className: cn(
788
+ "flex cursor-default items-center justify-center py-1",
789
+ className
790
+ ),
791
+ ...props,
792
+ children: /* @__PURE__ */ jsx20(ChevronDown, { className: "size-4" })
793
+ }
794
+ );
795
+ }
796
+
797
+ // src/components/Global/SelectDropdown.tsx
798
+ import { jsx as jsx21, jsxs as jsxs10 } from "react/jsx-runtime";
799
+ function SelectDropdown({
800
+ options,
801
+ placeholder = "Select an option",
802
+ value,
803
+ onChange,
89
804
  className,
805
+ id,
806
+ disabled,
807
+ readOnly,
90
808
  style
809
+ }) {
810
+ return /* @__PURE__ */ jsxs10(Select, { value, onValueChange: onChange, disabled, children: [
811
+ /* @__PURE__ */ jsx21(
812
+ SelectTrigger,
813
+ {
814
+ id,
815
+ className,
816
+ style: style ?? {},
817
+ "aria-readonly": readOnly,
818
+ children: /* @__PURE__ */ jsx21(SelectValue, { placeholder })
819
+ }
820
+ ),
821
+ /* @__PURE__ */ jsx21(SelectContent, { children: options.map((opt) => /* @__PURE__ */ jsx21(SelectItem, { value: opt.value, children: opt.label }, opt.value)) })
822
+ ] });
823
+ }
824
+
825
+ // src/components/Inputs/Dropdown/Dropdown.tsx
826
+ import { Fragment as Fragment6, jsx as jsx22, jsxs as jsxs11 } from "react/jsx-runtime";
827
+ var Dropdown = ({ className, style, ...props }) => {
828
+ const text = Array.isArray(props.text) ? props.text : [props.text ?? "Default"];
829
+ const placeholder = props.placeholder ? props.placeholder : "Placeholder text";
830
+ const formatList = text.map((item) => ({
831
+ label: item || "value1",
832
+ value: item
833
+ }));
834
+ const regexPattern = props.regexPattern ?? "";
835
+ const errorMessage = props.errorMessage ?? "Required";
836
+ const isRequired = props.isRequired ?? false;
837
+ const isEditable = props.isEditable ?? true;
838
+ const isDisabled = props.isDisabled ?? false;
839
+ const isReadonly = props.isReadonly ?? false;
840
+ const isAutocomplete = props.isAutocomplete ?? false;
841
+ const [value, setValue] = React7.useState("");
842
+ const [error, setError] = React7.useState(null);
843
+ const handleChange = (val) => {
844
+ setValue(val);
845
+ if (isRequired && val.trim() === "") {
846
+ setError(errorMessage);
847
+ } else if (regexPattern && !new RegExp(regexPattern).test(val)) {
848
+ setError(errorMessage);
849
+ } else {
850
+ setError(null);
851
+ }
852
+ };
853
+ return /* @__PURE__ */ jsxs11(Fragment6, { children: [
854
+ /* @__PURE__ */ jsx22("div", { className: "flex gap-3 flex-col", children: /* @__PURE__ */ jsx22(
855
+ SelectDropdown,
856
+ {
857
+ options: formatList,
858
+ placeholder,
859
+ id: "select-field",
860
+ value,
861
+ className,
862
+ style,
863
+ autoComplete: isAutocomplete ? "on" : "off",
864
+ onChange: handleChange,
865
+ disabled: isDisabled || !isEditable,
866
+ readOnly: isReadonly,
867
+ required: isRequired,
868
+ pattern: regexPattern || void 0
869
+ }
870
+ ) }),
871
+ error && /* @__PURE__ */ jsx22("p", { className: "mt-1 text-xs text-red-500", children: error })
872
+ ] });
873
+ };
874
+
875
+ // src/components/ui/switch.tsx
876
+ import * as SwitchPrimitive from "@radix-ui/react-switch";
877
+ import { jsx as jsx23 } from "react/jsx-runtime";
878
+ function Switch({
879
+ className,
880
+ ...props
881
+ }) {
882
+ return /* @__PURE__ */ jsx23(
883
+ SwitchPrimitive.Root,
884
+ {
885
+ "data-slot": "switch",
886
+ className: cn(
887
+ "peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
888
+ className
889
+ ),
890
+ ...props,
891
+ children: /* @__PURE__ */ jsx23(
892
+ SwitchPrimitive.Thumb,
893
+ {
894
+ "data-slot": "switch-thumb",
895
+ className: cn(
896
+ "bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0"
897
+ )
898
+ }
899
+ )
900
+ }
901
+ );
902
+ }
903
+
904
+ // src/components/Inputs/SwitchToggle/SwitchToggle.tsx
905
+ import { jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
906
+ var SwitchToggle = ({ className, style, ...props }) => {
907
+ const text = Array.isArray(props.text) ? props.text : [props.text ?? "Subscribe"];
908
+ return /* @__PURE__ */ jsx24("div", { className, style, children: text?.map((item, index) => /* @__PURE__ */ jsxs12("div", { className: "flex items-center space-x-2 mb-2", children: [
909
+ /* @__PURE__ */ jsx24(Switch, { id: `switch-${index}` }),
910
+ /* @__PURE__ */ jsx24(Label, { htmlFor: `switch-${index}`, children: item })
911
+ ] }, index)) });
912
+ };
913
+
914
+ // src/components/Inputs/PhoneInput/PhoneInput.tsx
915
+ import * as React8 from "react";
916
+ import { PhoneInput as PhoneInputField } from "react-international-phone";
917
+ import "react-international-phone/style.css";
918
+ import { Fragment as Fragment7, jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
919
+ var PhoneInput = ({ className, style, ...props }) => {
920
+ const placeholder = props.placeholder ?? "Enter phone number";
921
+ const [value, setValue] = React8.useState("");
922
+ const regexPattern = props.regexPattern ?? "";
923
+ const errorMessage = props.errorMessage ?? "Required";
924
+ const noOfCharacters = props.noOfCharacters ?? 100;
925
+ const isRequired = props.isRequired ?? false;
926
+ const isEditable = props.isEditable ?? true;
927
+ const isDisabled = props.isDisabled ?? false;
928
+ const [error, setError] = React8.useState(null);
929
+ const handleChange = (val) => {
930
+ if (val.length > noOfCharacters) return;
931
+ setValue(val);
932
+ if (isRequired && val.trim() === "") {
933
+ setError(errorMessage);
934
+ } else if (regexPattern && !new RegExp(regexPattern).test(val)) {
935
+ setError(errorMessage);
936
+ } else {
937
+ setError(null);
938
+ }
939
+ };
940
+ return /* @__PURE__ */ jsxs13(Fragment7, { children: [
941
+ /* @__PURE__ */ jsx25(
942
+ PhoneInputField,
943
+ {
944
+ defaultCountry: "in",
945
+ value,
946
+ onChange: (phone) => handleChange(phone),
947
+ inputProps: {
948
+ id: "phone-field",
949
+ required: isRequired
950
+ },
951
+ placeholder,
952
+ disabled: isDisabled || !isEditable,
953
+ required: isRequired,
954
+ className,
955
+ style
956
+ }
957
+ ),
958
+ error && /* @__PURE__ */ jsx25("p", { className: "mt-1 text-xs text-red-500", children: error })
959
+ ] });
960
+ };
961
+
962
+ // src/components/Inputs/DatePicker/DatePicker.tsx
963
+ import React9 from "react";
964
+ import { Fragment as Fragment8, jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
965
+
966
+ // src/components/Inputs/DateRange/DateRange.tsx
967
+ import * as React11 from "react";
968
+ import { addDays, format } from "date-fns";
969
+
970
+ // src/components/ui/calendar.tsx
971
+ import * as React10 from "react";
972
+ import { DayPicker, getDefaultClassNames } from "react-day-picker";
973
+ import { jsx as jsx27 } from "react/jsx-runtime";
974
+ function Calendar({
975
+ className,
976
+ classNames,
977
+ showOutsideDays = true,
978
+ captionLayout = "label",
979
+ buttonVariant = "ghost",
980
+ formatters,
981
+ components,
982
+ ...props
983
+ }) {
984
+ const defaultClassNames = getDefaultClassNames();
985
+ return /* @__PURE__ */ jsx27(
986
+ DayPicker,
987
+ {
988
+ showOutsideDays,
989
+ className: cn(
990
+ "bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",
991
+ String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,
992
+ String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,
993
+ className
994
+ ),
995
+ captionLayout,
996
+ formatters: {
997
+ formatMonthDropdown: (date) => date.toLocaleString("default", { month: "short" }),
998
+ ...formatters
999
+ },
1000
+ classNames: {
1001
+ root: cn("w-fit", defaultClassNames.root),
1002
+ months: cn(
1003
+ "flex gap-4 flex-col md:flex-row relative",
1004
+ defaultClassNames.months
1005
+ ),
1006
+ month: cn("flex flex-col w-full gap-4", defaultClassNames.month),
1007
+ nav: cn(
1008
+ "flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between",
1009
+ defaultClassNames.nav
1010
+ ),
1011
+ button_previous: cn(
1012
+ buttonVariants({ variant: buttonVariant }),
1013
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
1014
+ defaultClassNames.button_previous
1015
+ ),
1016
+ button_next: cn(
1017
+ buttonVariants({ variant: buttonVariant }),
1018
+ "size-(--cell-size) aria-disabled:opacity-50 p-0 select-none",
1019
+ defaultClassNames.button_next
1020
+ ),
1021
+ month_caption: cn(
1022
+ "flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)",
1023
+ defaultClassNames.month_caption
1024
+ ),
1025
+ dropdowns: cn(
1026
+ "w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5",
1027
+ defaultClassNames.dropdowns
1028
+ ),
1029
+ dropdown_root: cn(
1030
+ "relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md",
1031
+ defaultClassNames.dropdown_root
1032
+ ),
1033
+ dropdown: cn(
1034
+ "absolute bg-popover inset-0 opacity-0",
1035
+ defaultClassNames.dropdown
1036
+ ),
1037
+ caption_label: cn(
1038
+ "select-none font-medium",
1039
+ captionLayout === "label" ? "text-sm" : "rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5",
1040
+ defaultClassNames.caption_label
1041
+ ),
1042
+ table: "w-full border-collapse",
1043
+ weekdays: cn("flex", defaultClassNames.weekdays),
1044
+ weekday: cn(
1045
+ "text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none",
1046
+ defaultClassNames.weekday
1047
+ ),
1048
+ week: cn("flex w-full mt-2", defaultClassNames.week),
1049
+ week_number_header: cn(
1050
+ "select-none w-(--cell-size)",
1051
+ defaultClassNames.week_number_header
1052
+ ),
1053
+ week_number: cn(
1054
+ "text-[0.8rem] select-none text-muted-foreground",
1055
+ defaultClassNames.week_number
1056
+ ),
1057
+ day: cn(
1058
+ "relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none",
1059
+ defaultClassNames.day
1060
+ ),
1061
+ range_start: cn(
1062
+ "rounded-l-md bg-accent",
1063
+ defaultClassNames.range_start
1064
+ ),
1065
+ range_middle: cn("rounded-none", defaultClassNames.range_middle),
1066
+ range_end: cn("rounded-r-md bg-accent", defaultClassNames.range_end),
1067
+ today: cn(
1068
+ "bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",
1069
+ defaultClassNames.today
1070
+ ),
1071
+ outside: cn(
1072
+ "text-muted-foreground aria-selected:text-muted-foreground",
1073
+ defaultClassNames.outside
1074
+ ),
1075
+ disabled: cn(
1076
+ "text-muted-foreground opacity-50",
1077
+ defaultClassNames.disabled
1078
+ ),
1079
+ hidden: cn("invisible", defaultClassNames.hidden),
1080
+ ...classNames
1081
+ },
1082
+ components: {
1083
+ Root: ({ className: className2, rootRef, ...props2 }) => {
1084
+ return /* @__PURE__ */ jsx27(
1085
+ "div",
1086
+ {
1087
+ "data-slot": "calendar",
1088
+ ref: rootRef,
1089
+ className: cn(className2),
1090
+ ...props2
1091
+ }
1092
+ );
1093
+ },
1094
+ Chevron: ({ className: className2, orientation, ...props2 }) => {
1095
+ if (orientation === "left") {
1096
+ return /* @__PURE__ */ jsx27(ChevronLeft, { className: cn("size-4", className2), ...props2 });
1097
+ }
1098
+ if (orientation === "right") {
1099
+ return /* @__PURE__ */ jsx27(
1100
+ ChevronRight,
1101
+ {
1102
+ className: cn("size-4", className2),
1103
+ ...props2
1104
+ }
1105
+ );
1106
+ }
1107
+ return /* @__PURE__ */ jsx27(ChevronDown, { className: cn("size-4", className2), ...props2 });
1108
+ },
1109
+ DayButton: CalendarDayButton,
1110
+ WeekNumber: ({ children, ...props2 }) => {
1111
+ return /* @__PURE__ */ jsx27("td", { ...props2, children: /* @__PURE__ */ jsx27("div", { className: "flex size-(--cell-size) items-center justify-center text-center", children }) });
1112
+ },
1113
+ ...components
1114
+ },
1115
+ ...props
1116
+ }
1117
+ );
1118
+ }
1119
+ function CalendarDayButton({
1120
+ className,
1121
+ day,
1122
+ modifiers,
1123
+ ...props
1124
+ }) {
1125
+ const defaultClassNames = getDefaultClassNames();
1126
+ const ref = React10.useRef(null);
1127
+ React10.useEffect(() => {
1128
+ if (modifiers.focused) ref.current?.focus();
1129
+ }, [modifiers.focused]);
1130
+ return /* @__PURE__ */ jsx27(
1131
+ Button,
1132
+ {
1133
+ ref,
1134
+ variant: "ghost",
1135
+ size: "icon",
1136
+ "data-day": day.date.toLocaleDateString(),
1137
+ "data-selected-single": modifiers.selected && !modifiers.range_start && !modifiers.range_end && !modifiers.range_middle,
1138
+ "data-range-start": modifiers.range_start,
1139
+ "data-range-end": modifiers.range_end,
1140
+ "data-range-middle": modifiers.range_middle,
1141
+ className: cn(
1142
+ "data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70",
1143
+ defaultClassNames.day,
1144
+ className
1145
+ ),
1146
+ ...props
1147
+ }
1148
+ );
1149
+ }
1150
+
1151
+ // src/components/ui/popover.tsx
1152
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
1153
+ import { jsx as jsx28 } from "react/jsx-runtime";
1154
+ function Popover({
1155
+ ...props
1156
+ }) {
1157
+ return /* @__PURE__ */ jsx28(PopoverPrimitive.Root, { "data-slot": "popover", ...props });
1158
+ }
1159
+ function PopoverTrigger({
1160
+ ...props
1161
+ }) {
1162
+ return /* @__PURE__ */ jsx28(PopoverPrimitive.Trigger, { "data-slot": "popover-trigger", ...props });
1163
+ }
1164
+ function PopoverContent({
1165
+ className,
1166
+ align = "center",
1167
+ sideOffset = 4,
1168
+ ...props
1169
+ }) {
1170
+ return /* @__PURE__ */ jsx28(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx28(
1171
+ PopoverPrimitive.Content,
1172
+ {
1173
+ "data-slot": "popover-content",
1174
+ align,
1175
+ sideOffset,
1176
+ className: cn(
1177
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",
1178
+ className
1179
+ ),
1180
+ ...props
1181
+ }
1182
+ ) });
1183
+ }
1184
+
1185
+ // src/components/Inputs/DateRange/DateRange.tsx
1186
+ import { Fragment as Fragment9, jsx as jsx29, jsxs as jsxs15 } from "react/jsx-runtime";
1187
+ var DateRange = ({ className, style }) => {
1188
+ const [date, setDate] = React11.useState({
1189
+ from: /* @__PURE__ */ new Date(),
1190
+ to: addDays(/* @__PURE__ */ new Date(), 7)
1191
+ });
1192
+ return /* @__PURE__ */ jsx29("div", { className, style, children: /* @__PURE__ */ jsxs15(Popover, { children: [
1193
+ /* @__PURE__ */ jsx29(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsx29(
1194
+ Button,
1195
+ {
1196
+ id: "date",
1197
+ variant: "outline",
1198
+ className: cn(
1199
+ "w-[300px] justify-start text-left font-normal text-[11px]",
1200
+ !date && "text-muted-foreground"
1201
+ ),
1202
+ children: date?.from ? date.to ? /* @__PURE__ */ jsxs15(Fragment9, { children: [
1203
+ format(date.from, "LLL dd, y"),
1204
+ " -",
1205
+ " ",
1206
+ format(date.to, "LLL dd, y")
1207
+ ] }) : format(date.from, "LLL dd, y") : /* @__PURE__ */ jsx29("span", { children: "Pick a date range" })
1208
+ }
1209
+ ) }),
1210
+ /* @__PURE__ */ jsx29(PopoverContent, { className: "w-auto p-0", align: "start", children: /* @__PURE__ */ jsx29(
1211
+ Calendar,
1212
+ {
1213
+ mode: "range",
1214
+ defaultMonth: date?.from,
1215
+ selected: date,
1216
+ onSelect: setDate,
1217
+ numberOfMonths: 2
1218
+ }
1219
+ ) })
1220
+ ] }) });
1221
+ };
1222
+
1223
+ // src/components/ui/data-table.tsx
1224
+ import {
1225
+ flexRender,
1226
+ getCoreRowModel,
1227
+ useReactTable
1228
+ } from "@tanstack/react-table";
1229
+
1230
+ // src/components/ui/table.tsx
1231
+ import { jsx as jsx30 } from "react/jsx-runtime";
1232
+ function Table({ className, ...props }) {
1233
+ return /* @__PURE__ */ jsx30(
1234
+ "div",
1235
+ {
1236
+ "data-slot": "table-container",
1237
+ className: "relative w-full overflow-x-auto rounded-md border border-gray-200 bg-white",
1238
+ children: /* @__PURE__ */ jsx30(
1239
+ "table",
1240
+ {
1241
+ "data-slot": "table",
1242
+ className: cn("w-full text-sm", className),
1243
+ ...props
1244
+ }
1245
+ )
1246
+ }
1247
+ );
1248
+ }
1249
+ function TableHeader({ className, ...props }) {
1250
+ return /* @__PURE__ */ jsx30(
1251
+ "thead",
1252
+ {
1253
+ "data-slot": "table-header",
1254
+ className: cn(
1255
+ "bg-gray-100 text-gray-700 [&>tr]:border-b [&>tr]:border-gray-200 [&>tr>th]:border-r [&>tr>th]:border-gray-200 [&>tr>th]:last:border-r-0",
1256
+ className
1257
+ ),
1258
+ ...props
1259
+ }
1260
+ );
1261
+ }
1262
+ function TableBody({ className, ...props }) {
1263
+ return /* @__PURE__ */ jsx30(
1264
+ "tbody",
1265
+ {
1266
+ "data-slot": "table-body",
1267
+ className: cn(
1268
+ "[&>tr]:border-b [&>tr]:border-gray-200 [&>tr:last-child]:border-0 [&>tr>td]:border-r [&>tr>td]:border-gray-200 [&>tr>td]:last:border-r-0",
1269
+ className
1270
+ ),
1271
+ ...props
1272
+ }
1273
+ );
1274
+ }
1275
+ function TableRow({ className, ...props }) {
1276
+ return /* @__PURE__ */ jsx30(
1277
+ "tr",
1278
+ {
1279
+ "data-slot": "table-row",
1280
+ className: cn(
1281
+ "border-b border-gray-200 hover:bg-gray-50 transition-colors",
1282
+ className
1283
+ ),
1284
+ ...props
1285
+ }
1286
+ );
1287
+ }
1288
+ function TableHead({ className, ...props }) {
1289
+ return /* @__PURE__ */ jsx30(
1290
+ "th",
1291
+ {
1292
+ "data-slot": "table-head",
1293
+ className: cn(
1294
+ "h-12 px-6 text-left align-middle font-semibold whitespace-nowrap",
1295
+ className
1296
+ ),
1297
+ ...props
1298
+ }
1299
+ );
1300
+ }
1301
+ function TableCell({ className, ...props }) {
1302
+ return /* @__PURE__ */ jsx30(
1303
+ "td",
1304
+ {
1305
+ "data-slot": "table-cell",
1306
+ className: cn(
1307
+ "px-6 py-4 align-middle text-gray-700",
1308
+ className
1309
+ ),
1310
+ ...props
1311
+ }
1312
+ );
1313
+ }
1314
+
1315
+ // src/components/ui/data-table.tsx
1316
+ import { Fragment as Fragment10, jsx as jsx31, jsxs as jsxs16 } from "react/jsx-runtime";
1317
+ function DataTable({
1318
+ columns,
1319
+ rowActions,
1320
+ data,
1321
+ loading,
1322
+ getRowSelection,
1323
+ onCellClick,
1324
+ cellClickEnabled = () => false
1325
+ }) {
1326
+ const table = useReactTable({
1327
+ data,
1328
+ columns,
1329
+ enableRowSelection: true,
1330
+ onRowSelectionChange: getRowSelection ? (updaterOrValue) => {
1331
+ const value = typeof updaterOrValue === "function" ? updaterOrValue(table.getState().rowSelection) : updaterOrValue;
1332
+ getRowSelection(value);
1333
+ } : void 0,
1334
+ getCoreRowModel: getCoreRowModel()
1335
+ });
1336
+ const handleCellClick = (rowData, columnId) => {
1337
+ if (onCellClick) {
1338
+ onCellClick(rowData, columnId);
1339
+ }
1340
+ };
1341
+ return /* @__PURE__ */ jsx31("div", { className: "overflow-hidden rounded-md border w-full", children: /* @__PURE__ */ jsxs16(Table, { children: [
1342
+ /* @__PURE__ */ jsx31(TableHeader, { children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx31(TableRow, { children: headerGroup.headers.map((header) => {
1343
+ return /* @__PURE__ */ jsx31(TableHead, { children: header.isPlaceholder ? null : flexRender(
1344
+ header.column.columnDef.header,
1345
+ header.getContext()
1346
+ ) }, header.id);
1347
+ }) }, headerGroup.id)) }),
1348
+ /* @__PURE__ */ jsx31(TableBody, { children: loading ? /* @__PURE__ */ jsx31(TableRow, { children: /* @__PURE__ */ jsx31(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "Loading..." }) }) : /* @__PURE__ */ jsx31(Fragment10, { children: table.getRowModel().rows?.length ? table.getRowModel().rows.map((row) => /* @__PURE__ */ jsxs16(
1349
+ TableRow,
1350
+ {
1351
+ "data-state": row.getIsSelected() && "selected",
1352
+ className: "relative group",
1353
+ children: [
1354
+ row.getVisibleCells().map((cell) => {
1355
+ const isCellClickable = cellClickEnabled(row.original, cell.column.id);
1356
+ const dynamicClass = cell.column.columnDef.meta?.cellClass || "";
1357
+ const dynamicStyle = cell.column.columnDef.meta?.cellStyle || {};
1358
+ return /* @__PURE__ */ jsx31(
1359
+ TableCell,
1360
+ {
1361
+ className: `${dynamicClass} ${isCellClickable ? "underline cursor-pointer" : ""}`,
1362
+ style: dynamicStyle,
1363
+ onClick: () => {
1364
+ if (isCellClickable) {
1365
+ handleCellClick(row.original, cell.column.id);
1366
+ }
1367
+ },
1368
+ children: flexRender(cell.column.columnDef.cell, cell.getContext())
1369
+ },
1370
+ cell.id
1371
+ );
1372
+ }),
1373
+ rowActions.length > 0 && /* @__PURE__ */ jsx31("div", { className: "absolute top-0 right-0 bg-white py-3 min-w-[100px] z-50 shadow-md flex items-center justify-center gap-3 p-2 opacity-0 group-hover:opacity-100 duration-300 h-full", children: rowActions.map((action, index) => /* @__PURE__ */ jsx31("p", { className: "text-[#383838] text-[12px] cursor-pointer font-[400]", children: action.header }, index)) })
1374
+ ]
1375
+ },
1376
+ row.id
1377
+ )) : /* @__PURE__ */ jsx31(TableRow, { children: /* @__PURE__ */ jsx31(TableCell, { colSpan: columns.length, className: "h-24 text-center", children: "No results." }) }) }) })
1378
+ ] }) });
1379
+ }
1380
+
1381
+ // src/components/DataDisplay/Table/Table.tsx
1382
+ import { jsx as jsx32 } from "react/jsx-runtime";
1383
+ var Table2 = ({ columns, data, rowActions }) => {
1384
+ const rawColumns = Array.isArray(columns) ? columns : [];
1385
+ const rawData = Array.isArray(data) ? data : [];
1386
+ const rawRowActions = Array.isArray(rowActions) ? rowActions : [];
1387
+ return /* @__PURE__ */ jsx32(DataTable, { columns: rawColumns, data: rawData, rowActions: rawRowActions });
1388
+ };
1389
+ var Table_default = Table2;
1390
+
1391
+ // src/components/ui/dropdown-menu.tsx
1392
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1393
+ import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
1394
+ function DropdownMenu({
1395
+ ...props
1396
+ }) {
1397
+ return /* @__PURE__ */ jsx33(DropdownMenuPrimitive.Root, { "data-slot": "dropdown-menu", ...props });
1398
+ }
1399
+ function DropdownMenuTrigger({
1400
+ ...props
1401
+ }) {
1402
+ return /* @__PURE__ */ jsx33(
1403
+ DropdownMenuPrimitive.Trigger,
1404
+ {
1405
+ "data-slot": "dropdown-menu-trigger",
1406
+ ...props
1407
+ }
1408
+ );
1409
+ }
1410
+ function DropdownMenuContent({
1411
+ className,
1412
+ sideOffset = 4,
1413
+ ...props
1414
+ }) {
1415
+ return /* @__PURE__ */ jsx33(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx33(
1416
+ DropdownMenuPrimitive.Content,
1417
+ {
1418
+ "data-slot": "dropdown-menu-content",
1419
+ sideOffset,
1420
+ className: cn(
1421
+ "bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
1422
+ className
1423
+ ),
1424
+ ...props
1425
+ }
1426
+ ) });
1427
+ }
1428
+ function DropdownMenuItem({
1429
+ className,
1430
+ inset,
1431
+ variant = "default",
1432
+ ...props
1433
+ }) {
1434
+ return /* @__PURE__ */ jsx33(
1435
+ DropdownMenuPrimitive.Item,
1436
+ {
1437
+ "data-slot": "dropdown-menu-item",
1438
+ "data-inset": inset,
1439
+ "data-variant": variant,
1440
+ className: cn(
1441
+ "focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
1442
+ className
1443
+ ),
1444
+ ...props
1445
+ }
1446
+ );
1447
+ }
1448
+
1449
+ // src/components/Navigation/Tabs/Tabs.tsx
1450
+ import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
1451
+ var Tabs = ({ tabs, className, style }) => {
1452
+ const rawTabs = Array.isArray(tabs) ? tabs : [];
1453
+ const baseClasses = "text-[12px] text-[#E9E9E9] p-2 text-center rounded-md transition-colors border-none outline-none focus:outline-none focus:ring-0 focus:ring-offset-0 cursor-pointer select-none ";
1454
+ const activeClasses = "bg-white/10 text-white";
1455
+ const hoverClasses = "hover:bg-white/5";
1456
+ return /* @__PURE__ */ jsx34("div", { className, style, children: rawTabs.map((tab, index) => {
1457
+ const finalClasses = [
1458
+ baseClasses,
1459
+ tab.isActive ? activeClasses : hoverClasses,
1460
+ tab.className || ""
1461
+ ].join(" ");
1462
+ const hasDropdown = Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown;
1463
+ if (hasDropdown) {
1464
+ return /* @__PURE__ */ jsxs18(DropdownMenu, { children: [
1465
+ /* @__PURE__ */ jsxs18(
1466
+ DropdownMenuTrigger,
1467
+ {
1468
+ className: `${finalClasses} inline-flex items-center gap-1`,
1469
+ children: [
1470
+ tab.header,
1471
+ /* @__PURE__ */ jsx34(ChevronDown, { className: "h-4 w-4 opacity-80" })
1472
+ ]
1473
+ }
1474
+ ),
1475
+ /* @__PURE__ */ jsx34(
1476
+ DropdownMenuContent,
1477
+ {
1478
+ align: "start",
1479
+ sideOffset: 6,
1480
+ className: "z-50 min-w-[160px] rounded-md border border-gray-200 bg-white p-1 shadow-lg",
1481
+ children: tab.children.map((item) => /* @__PURE__ */ jsx34(
1482
+ DropdownMenuItem,
1483
+ {
1484
+ asChild: true,
1485
+ className: "cursor-pointer rounded-sm px-3 py-2 text-[12px] text-gray-800 hover:bg-gray-100 focus:bg-gray-100",
1486
+ children: item.header
1487
+ },
1488
+ item.id
1489
+ ))
1490
+ }
1491
+ )
1492
+ ] }, index);
1493
+ }
1494
+ return /* @__PURE__ */ jsx34("div", { className: finalClasses, style: { backgroundColor: "transparent", border: "none", ...tab.style }, role: "button", tabIndex: 0, children: tab.header }, index);
1495
+ }) });
1496
+ };
1497
+ var Tabs_default = Tabs;
1498
+
1499
+ // src/components/Navigation/Stages/Stages.tsx
1500
+ import React12 from "react";
1501
+ import { jsx as jsx35, jsxs as jsxs19 } from "react/jsx-runtime";
1502
+ var StagesComponent = ({ stages, isShowBtn, buttonText, className, style }) => {
1503
+ return /* @__PURE__ */ jsx35("div", { className, style, children: /* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between bg-gray-50 p-2 rounded-lg border border-gray-200 w-full", children: [
1504
+ /* @__PURE__ */ jsx35("div", { className: "flex items-center", children: /* @__PURE__ */ jsx35("button", { className: "p-2 hover:bg-gray-100 rounded", children: /* @__PURE__ */ jsx35("svg", { className: "w-4 h-4 text-gray-600", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx35("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M19 9l-7 7-7-7" }) }) }) }),
1505
+ /* @__PURE__ */ jsx35("div", { className: "flex items-center flex-1 px-2", children: stages.map((stage, index) => /* @__PURE__ */ jsxs19(React12.Fragment, { children: [
1506
+ /* @__PURE__ */ jsx35(
1507
+ "button",
1508
+ {
1509
+ className: `
1510
+ min-w-[120px] px-4 py-2 rounded-full text-sm font-medium transition-colors duration-200 whitespace-nowrap ${stage.isActive ? "bg-[#034486] text-white shadow-md" : "bg-white text-gray-700 hover:bg-gray-100 border border-gray-200"}`,
1511
+ children: stage.header
1512
+ }
1513
+ ),
1514
+ index < stages.length - 1 && /* @__PURE__ */ jsx35("div", { className: "flex-shrink-0 w-3 h-px bg-gray-300" })
1515
+ ] }, stage.id)) }),
1516
+ isShowBtn && /* @__PURE__ */ jsx35("div", { className: "flex items-center", children: /* @__PURE__ */ jsx35("button", { className: "bg-[#034486] text-white px-6 py-2 rounded-lg text-sm font-medium transition-colors duration-200 shadow-sm", children: buttonText }) })
1517
+ ] }) });
1518
+ };
1519
+ var Stages_default = StagesComponent;
1520
+
1521
+ // src/components/Navigation/Spacer/Spacer.tsx
1522
+ import { jsx as jsx36 } from "react/jsx-runtime";
1523
+ var Spacer = ({ className, style }) => {
1524
+ return /* @__PURE__ */ jsx36("div", { className: `${className}`, style });
1525
+ };
1526
+ var Spacer_default = Spacer;
1527
+
1528
+ // src/components/Navigation/Profile/Profile.tsx
1529
+ import { jsx as jsx37, jsxs as jsxs20 } from "react/jsx-runtime";
1530
+ var Profile = ({ profileType, showName, userName, className, style }) => {
1531
+ return /* @__PURE__ */ jsx37("div", { className, style, children: /* @__PURE__ */ jsxs20("div", { className: "flex gap-2 items-center justify-between w-30 cursor-pointer", children: [
1532
+ showName && /* @__PURE__ */ jsx37("h4", { className: "text-[#000000] dark:text-[#fff] text-[13px] font-[500] mb-0", children: userName }),
1533
+ profileType === "avatar" ? /* @__PURE__ */ jsx37(
1534
+ "img",
1535
+ {
1536
+ src: "https://builder.development.algorithmshift.ai/images/toolset/profile.svg",
1537
+ alt: "auto",
1538
+ width: 24,
1539
+ height: 24
1540
+ }
1541
+ ) : /* @__PURE__ */ jsx37("div", { className: "w-6 h-6 bg-[#12715b] rounded-full text-[#fff] text-center text-[11px] flex items-center justify-center", children: "A" })
1542
+ ] }) });
1543
+ };
1544
+ var Profile_default = Profile;
1545
+
1546
+ // src/components/Navigation/Notification/Notification.tsx
1547
+ import { jsx as jsx38, jsxs as jsxs21 } from "react/jsx-runtime";
1548
+ var Notification = ({ className, style, badgeType, badgeCount, hideBadgeWhenZero }) => {
1549
+ return /* @__PURE__ */ jsx38("div", { className, style, children: /* @__PURE__ */ jsxs21("div", { className: "w-[34px] h-[34px] bg-[#E9E9E9] rounded-md text-center flex items-center justify-center relative", children: [
1550
+ /* @__PURE__ */ jsx38(
1551
+ "img",
1552
+ {
1553
+ src: "https://builder.development.algorithmshift.ai/images/toolset/notification.svg",
1554
+ alt: "auto",
1555
+ width: 18,
1556
+ height: 18
1557
+ }
1558
+ ),
1559
+ badgeType === "number" && !(hideBadgeWhenZero && badgeCount === 0) && badgeCount > 0 ? /* @__PURE__ */ jsx38("span", { className: "text-[10px] text-[#fff] bg-[#FF4A4A] w-[20px] h-[20px] rounded-full absolute top-0 right-0 transform translate-x-1/2 -translate-y-1/2 leading-[20px]", children: badgeCount }) : /* @__PURE__ */ jsx38("span", { className: "bg-[#FF4A4A] w-[10px] h-[10px] rounded-full absolute top-0 right-0 transform translate-x-1/2 -translate-y-1/2 leading-[20px]" })
1560
+ ] }) });
1561
+ };
1562
+ var Notification_default = Notification;
1563
+
1564
+ // src/components/Navigation/Logo/Logo.tsx
1565
+ import { jsx as jsx39 } from "react/jsx-runtime";
1566
+ var ImageControl = ({
1567
+ className,
1568
+ style,
1569
+ imageUrl
91
1570
  }) => {
92
- return /* @__PURE__ */ jsx4("div", { className, style, children });
1571
+ let src;
1572
+ let extraProps;
1573
+ if (imageUrl) {
1574
+ src = imageUrl;
1575
+ extraProps = {
1576
+ className: "w-full h-full"
1577
+ };
1578
+ } else {
1579
+ src = "https://builder.development.algorithmshift.ai/_next/image?url=%2Fdrag_and_drop.png&w=1920&q=75";
1580
+ extraProps = {
1581
+ width: 50,
1582
+ height: 50,
1583
+ className: "opacity-50"
1584
+ };
1585
+ }
1586
+ return /* @__PURE__ */ jsx39("div", { className, style, children: /* @__PURE__ */ jsx39("img", { src, alt: "Preview", sizes: "100vw", ...extraProps }) });
93
1587
  };
94
- var Grid_default = Grid;
1588
+ var Logo_default = ImageControl;
95
1589
  export {
96
1590
  Button,
97
- CustomButton,
1591
+ CheckboxInput,
1592
+ DateRange,
1593
+ Dropdown,
1594
+ EmailInput,
98
1595
  Flex_default as FlexLayout,
99
1596
  Grid_default as GridLayout,
1597
+ Logo_default as Logo,
1598
+ MultiCheckbox,
1599
+ Notification_default as Notification,
1600
+ PasswordInput,
1601
+ PhoneInput,
1602
+ Profile_default as Profile,
1603
+ RadioInput,
1604
+ Spacer_default as Spacer,
1605
+ Stages_default as Stages,
1606
+ SwitchToggle,
1607
+ Table_default as Table,
1608
+ Tabs_default as Tabs,
1609
+ TextInput,
1610
+ Textarea2 as Textarea,
1611
+ Typography_default as Typography,
1612
+ UrlInput,
100
1613
  buttonVariants,
101
1614
  cn
102
1615
  };
1616
+ /*! Bundled license information:
1617
+
1618
+ lucide-react/dist/esm/shared/src/utils.js:
1619
+ lucide-react/dist/esm/defaultAttributes.js:
1620
+ lucide-react/dist/esm/Icon.js:
1621
+ lucide-react/dist/esm/createLucideIcon.js:
1622
+ lucide-react/dist/esm/icons/check.js:
1623
+ lucide-react/dist/esm/icons/chevron-down.js:
1624
+ lucide-react/dist/esm/icons/chevron-left.js:
1625
+ lucide-react/dist/esm/icons/chevron-right.js:
1626
+ lucide-react/dist/esm/icons/chevron-up.js:
1627
+ lucide-react/dist/esm/icons/circle.js:
1628
+ lucide-react/dist/esm/icons/mail.js:
1629
+ lucide-react/dist/esm/icons/scan-eye.js:
1630
+ lucide-react/dist/esm/lucide-react.js:
1631
+ (**
1632
+ * @license lucide-react v0.542.0 - ISC
1633
+ *
1634
+ * This source code is licensed under the ISC license.
1635
+ * See the LICENSE file in the root directory of this source tree.
1636
+ *)
1637
+ */
103
1638
  //# sourceMappingURL=index.mjs.map