@sikka/hawa 0.35.6-next → 0.36.0-next

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.
Files changed (94) hide show
  1. package/dist/{Chip-BtgTAs8x.d.mts → Chip-CGl24Kd9.d.mts} +2 -2
  2. package/dist/{Chip-DQsP5hFS.d.ts → Chip-Cato49ar.d.ts} +2 -2
  3. package/dist/accordion/index.d.mts +1 -1
  4. package/dist/accordion/index.d.ts +1 -1
  5. package/dist/accordion/index.js +6 -4
  6. package/dist/accordion/index.js.map +1 -1
  7. package/dist/accordion/index.mjs +6 -4
  8. package/dist/accordion/index.mjs.map +1 -1
  9. package/dist/appLayout/index.js +7 -6
  10. package/dist/appLayout/index.js.map +1 -1
  11. package/dist/appLayout/index.mjs +7 -6
  12. package/dist/appLayout/index.mjs.map +1 -1
  13. package/dist/blocks/auth/index.js +28 -5
  14. package/dist/blocks/auth/index.mjs +4 -4
  15. package/dist/blocks/feedback/index.js +0 -1
  16. package/dist/blocks/feedback/index.mjs +1 -1
  17. package/dist/blocks/index.js +34 -9
  18. package/dist/blocks/index.mjs +2 -2
  19. package/dist/blocks/misc/index.js +32 -7
  20. package/dist/blocks/misc/index.mjs +3 -3
  21. package/dist/blocks/pricing/index.js +6 -4
  22. package/dist/blocks/pricing/index.mjs +1 -1
  23. package/dist/chip/index.d.mts +2 -2
  24. package/dist/chip/index.d.ts +2 -2
  25. package/dist/chip/index.js +6 -4
  26. package/dist/chip/index.js.map +1 -1
  27. package/dist/chip/index.mjs +6 -4
  28. package/dist/chip/index.mjs.map +1 -1
  29. package/dist/{chunk-MZRUEJED.mjs → chunk-6QIOEUE2.mjs} +1 -1
  30. package/dist/{chunk-JEZLVXSU.mjs → chunk-BXBSZD5X.mjs} +26 -2
  31. package/dist/{chunk-LVXG3SMD.mjs → chunk-CJ57JBYA.mjs} +6 -4
  32. package/dist/{chunk-CD6AQVU3.mjs → chunk-HLYAX77R.mjs} +0 -1
  33. package/dist/{chunk-ANXGMZXS.mjs → chunk-NNPNQK6F.mjs} +6 -4
  34. package/dist/{chunk-57EAKTAP.mjs → chunk-T33FXOHA.mjs} +29 -6
  35. package/dist/colorPicker/index.js +1 -1
  36. package/dist/colorPicker/index.js.map +1 -1
  37. package/dist/colorPicker/index.mjs +1 -1
  38. package/dist/colorPicker/index.mjs.map +1 -1
  39. package/dist/dataTable/index.js +41 -5
  40. package/dist/dataTable/index.js.map +1 -1
  41. package/dist/dataTable/index.mjs +41 -5
  42. package/dist/dataTable/index.mjs.map +1 -1
  43. package/dist/datePicker/index.d.mts +1 -0
  44. package/dist/datePicker/index.d.ts +1 -0
  45. package/dist/datePicker/index.js +3 -2
  46. package/dist/datePicker/index.js.map +1 -1
  47. package/dist/datePicker/index.mjs +3 -2
  48. package/dist/datePicker/index.mjs.map +1 -1
  49. package/dist/elements/index.d.mts +8 -4
  50. package/dist/elements/index.d.ts +8 -4
  51. package/dist/elements/index.js +50 -13
  52. package/dist/elements/index.mjs +19 -7
  53. package/dist/index.css +10 -0
  54. package/dist/index.d.mts +8 -4
  55. package/dist/index.d.ts +8 -4
  56. package/dist/index.js +51 -15
  57. package/dist/index.mjs +51 -15
  58. package/dist/input/index.d.mts +6 -2
  59. package/dist/input/index.d.ts +6 -2
  60. package/dist/input/index.js +26 -2
  61. package/dist/input/index.js.map +1 -1
  62. package/dist/input/index.mjs +26 -2
  63. package/dist/input/index.mjs.map +1 -1
  64. package/dist/layout/index.d.mts +1 -1
  65. package/dist/layout/index.d.ts +1 -1
  66. package/dist/layout/index.js +7 -6
  67. package/dist/layout/index.mjs +3 -4
  68. package/dist/passwordInput/index.js +26 -2
  69. package/dist/passwordInput/index.js.map +1 -1
  70. package/dist/passwordInput/index.mjs +26 -2
  71. package/dist/passwordInput/index.mjs.map +1 -1
  72. package/dist/phoneInput/index.js +1 -2
  73. package/dist/phoneInput/index.js.map +1 -1
  74. package/dist/phoneInput/index.mjs +1 -2
  75. package/dist/phoneInput/index.mjs.map +1 -1
  76. package/dist/pinInput/index.js +1 -1
  77. package/dist/pinInput/index.js.map +1 -1
  78. package/dist/pinInput/index.mjs +1 -1
  79. package/dist/pinInput/index.mjs.map +1 -1
  80. package/dist/select/index.js +0 -1
  81. package/dist/select/index.js.map +1 -1
  82. package/dist/select/index.mjs +0 -1
  83. package/dist/select/index.mjs.map +1 -1
  84. package/dist/sidebar/index.js +6 -4
  85. package/dist/sidebar/index.js.map +1 -1
  86. package/dist/sidebar/index.mjs +6 -4
  87. package/dist/sidebar/index.mjs.map +1 -1
  88. package/dist/tabs/index.d.mts +1 -1
  89. package/dist/tabs/index.d.ts +1 -1
  90. package/dist/tabs/index.js +6 -4
  91. package/dist/tabs/index.js.map +1 -1
  92. package/dist/tabs/index.mjs +6 -4
  93. package/dist/tabs/index.mjs.map +1 -1
  94. package/package.json +7 -8
@@ -1233,7 +1233,7 @@ var Input = (0, import_react8.forwardRef)(
1233
1233
  auto: ""
1234
1234
  };
1235
1235
  let defaultStyle = "hawa-flex hawa-max-h-fit hawa-h-fit hawa-relative hawa-flex-col hawa-justify-center hawa-gap-0";
1236
- let defaultInputStyle = "hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm ";
1236
+ let defaultInputStyle = "hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm placeholder:hawa-text-muted-foreground";
1237
1237
  const handleChange = (e) => {
1238
1238
  let newValue = e.target.value;
1239
1239
  if (props.prefixText) {
@@ -1272,7 +1272,31 @@ var Input = (0, import_react8.forwardRef)(
1272
1272
  )
1273
1273
  },
1274
1274
  props.outsidePrefix
1275
- ), props.isLoading ? /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react8.default.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, !props.hideSeparator && /* @__PURE__ */ import_react8.default.createElement(
1275
+ ), props.isLoading ? /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react8.default.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : props.isLoadingError ? /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react8.default.createElement(
1276
+ Skeleton,
1277
+ {
1278
+ animation: "none",
1279
+ className: "hawa-h-[40px] hawa-w-full !hawa-bg-destructive/[0.3]",
1280
+ content: /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-gap-2" }, /* @__PURE__ */ import_react8.default.createElement(
1281
+ "svg",
1282
+ {
1283
+ xmlns: "http://www.w3.org/2000/svg",
1284
+ width: "20",
1285
+ height: "20",
1286
+ viewBox: "0 0 24 24",
1287
+ fill: "none",
1288
+ stroke: "currentColor",
1289
+ strokeWidth: "2",
1290
+ strokeLinecap: "round",
1291
+ strokeLinejoin: "round",
1292
+ className: "hawa-text-destructive"
1293
+ },
1294
+ /* @__PURE__ */ import_react8.default.createElement("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }),
1295
+ /* @__PURE__ */ import_react8.default.createElement("path", { d: "M12 9v4" }),
1296
+ /* @__PURE__ */ import_react8.default.createElement("path", { d: "M12 17h.01" })
1297
+ ), /* @__PURE__ */ import_react8.default.createElement("span", null, /* @__PURE__ */ import_react8.default.createElement("span", { className: "hawa-text-destructive" }, props.loadingErrorMesssage || "Error loading data")))
1298
+ }
1299
+ )) : /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, !props.hideSeparator && /* @__PURE__ */ import_react8.default.createElement(
1276
1300
  "div",
1277
1301
  {
1278
1302
  className: cn(
@@ -3148,7 +3172,6 @@ var Select = ({
3148
3172
  )
3149
3173
  },
3150
3174
  unstyled: true,
3151
- autoFocus: true,
3152
3175
  components: props.hideIndicator ? {
3153
3176
  Option,
3154
3177
  Menu,
@@ -3286,7 +3309,7 @@ var PhoneInput = ({
3286
3309
  onChange: handleInputChange,
3287
3310
  placeholder: props.placeholder,
3288
3311
  className: cn(
3289
- "hawa-block hawa-h-[40px] hawa-w-full hawa-rounded hawa-rounded-l-none hawa-border hawa-border-l-0 hawa-border-l-transparent hawa-bg-background hawa-p-2 hawa-text-sm hawa-transition-all"
3312
+ "placeholder:hawa-text-muted-foreground hawa-block hawa-h-[40px] hawa-w-full hawa-rounded hawa-rounded-l-none hawa-border hawa-border-l-0 hawa-border-l-transparent hawa-bg-background hawa-p-2 hawa-text-sm hawa-transition-all"
3290
3313
  ),
3291
3314
  ...inputProps
3292
3315
  }
@@ -4515,7 +4538,7 @@ var PinInput = ({
4515
4538
  id: `input-${index}`,
4516
4539
  pattern: "[0-9]*",
4517
4540
  className: cn(
4518
- "hawa-h-10 hawa-rounded hawa-border hawa-bg-background hawa-text-center",
4541
+ "hawa-h-10 hawa-rounded hawa-border hawa-bg-background hawa-text-center placeholder:hawa-text-muted-foreground",
4519
4542
  width === "full" ? "hawa-w-full" : "hawa-w-10"
4520
4543
  ),
4521
4544
  onChange: (e) => handleChange(e, index),
@@ -1,13 +1,13 @@
1
1
  "use client";
2
2
  import {
3
3
  Input
4
- } from "../../chunk-JEZLVXSU.mjs";
4
+ } from "../../chunk-BXBSZD5X.mjs";
5
5
  import {
6
6
  StopPropagationWrapper
7
7
  } from "../../chunk-47APBDKK.mjs";
8
8
  import {
9
9
  Select
10
- } from "../../chunk-CD6AQVU3.mjs";
10
+ } from "../../chunk-HLYAX77R.mjs";
11
11
  import {
12
12
  EyeIcon,
13
13
  HiddenEyeIcon
@@ -2379,7 +2379,7 @@ var PhoneInput = ({
2379
2379
  onChange: handleInputChange,
2380
2380
  placeholder: props.placeholder,
2381
2381
  className: cn(
2382
- "hawa-block hawa-h-[40px] hawa-w-full hawa-rounded hawa-rounded-l-none hawa-border hawa-border-l-0 hawa-border-l-transparent hawa-bg-background hawa-p-2 hawa-text-sm hawa-transition-all"
2382
+ "placeholder:hawa-text-muted-foreground hawa-block hawa-h-[40px] hawa-w-full hawa-rounded hawa-rounded-l-none hawa-border hawa-border-l-0 hawa-border-l-transparent hawa-bg-background hawa-p-2 hawa-text-sm hawa-transition-all"
2383
2383
  ),
2384
2384
  ...inputProps
2385
2385
  }
@@ -3560,7 +3560,7 @@ var PinInput = ({
3560
3560
  id: `input-${index}`,
3561
3561
  pattern: "[0-9]*",
3562
3562
  className: cn(
3563
- "hawa-h-10 hawa-rounded hawa-border hawa-bg-background hawa-text-center",
3563
+ "hawa-h-10 hawa-rounded hawa-border hawa-bg-background hawa-text-center placeholder:hawa-text-muted-foreground",
3564
3564
  width === "full" ? "hawa-w-full" : "hawa-w-10"
3565
3565
  ),
3566
3566
  onChange: (e) => handleChange(e, index),
@@ -1562,7 +1562,6 @@ var Select = ({
1562
1562
  )
1563
1563
  },
1564
1564
  unstyled: true,
1565
- autoFocus: true,
1566
1565
  components: props.hideIndicator ? {
1567
1566
  Option,
1568
1567
  Menu,
@@ -4,7 +4,7 @@ import {
4
4
  } from "../../chunk-WABHQMUI.mjs";
5
5
  import {
6
6
  Select
7
- } from "../../chunk-CD6AQVU3.mjs";
7
+ } from "../../chunk-HLYAX77R.mjs";
8
8
  import {
9
9
  Popover,
10
10
  Radio
@@ -1254,7 +1254,7 @@ var Input = (0, import_react8.forwardRef)(
1254
1254
  auto: ""
1255
1255
  };
1256
1256
  let defaultStyle = "hawa-flex hawa-max-h-fit hawa-h-fit hawa-relative hawa-flex-col hawa-justify-center hawa-gap-0";
1257
- let defaultInputStyle = "hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm ";
1257
+ let defaultInputStyle = "hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm placeholder:hawa-text-muted-foreground";
1258
1258
  const handleChange = (e) => {
1259
1259
  let newValue = e.target.value;
1260
1260
  if (props.prefixText) {
@@ -1293,7 +1293,31 @@ var Input = (0, import_react8.forwardRef)(
1293
1293
  )
1294
1294
  },
1295
1295
  props.outsidePrefix
1296
- ), props.isLoading ? /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react8.default.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, !props.hideSeparator && /* @__PURE__ */ import_react8.default.createElement(
1296
+ ), props.isLoading ? /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react8.default.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : props.isLoadingError ? /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react8.default.createElement(
1297
+ Skeleton,
1298
+ {
1299
+ animation: "none",
1300
+ className: "hawa-h-[40px] hawa-w-full !hawa-bg-destructive/[0.3]",
1301
+ content: /* @__PURE__ */ import_react8.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-gap-2" }, /* @__PURE__ */ import_react8.default.createElement(
1302
+ "svg",
1303
+ {
1304
+ xmlns: "http://www.w3.org/2000/svg",
1305
+ width: "20",
1306
+ height: "20",
1307
+ viewBox: "0 0 24 24",
1308
+ fill: "none",
1309
+ stroke: "currentColor",
1310
+ strokeWidth: "2",
1311
+ strokeLinecap: "round",
1312
+ strokeLinejoin: "round",
1313
+ className: "hawa-text-destructive"
1314
+ },
1315
+ /* @__PURE__ */ import_react8.default.createElement("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }),
1316
+ /* @__PURE__ */ import_react8.default.createElement("path", { d: "M12 9v4" }),
1317
+ /* @__PURE__ */ import_react8.default.createElement("path", { d: "M12 17h.01" })
1318
+ ), /* @__PURE__ */ import_react8.default.createElement("span", null, /* @__PURE__ */ import_react8.default.createElement("span", { className: "hawa-text-destructive" }, props.loadingErrorMesssage || "Error loading data")))
1319
+ }
1320
+ )) : /* @__PURE__ */ import_react8.default.createElement(import_react8.default.Fragment, null, !props.hideSeparator && /* @__PURE__ */ import_react8.default.createElement(
1297
1321
  "div",
1298
1322
  {
1299
1323
  className: cn(
@@ -3169,7 +3193,6 @@ var Select = ({
3169
3193
  )
3170
3194
  },
3171
3195
  unstyled: true,
3172
- autoFocus: true,
3173
3196
  components: props.hideIndicator ? {
3174
3197
  Option,
3175
3198
  Menu,
@@ -3307,7 +3330,7 @@ var PhoneInput = ({
3307
3330
  onChange: handleInputChange,
3308
3331
  placeholder: props.placeholder,
3309
3332
  className: cn(
3310
- "hawa-block hawa-h-[40px] hawa-w-full hawa-rounded hawa-rounded-l-none hawa-border hawa-border-l-0 hawa-border-l-transparent hawa-bg-background hawa-p-2 hawa-text-sm hawa-transition-all"
3333
+ "placeholder:hawa-text-muted-foreground hawa-block hawa-h-[40px] hawa-w-full hawa-rounded hawa-rounded-l-none hawa-border hawa-border-l-0 hawa-border-l-transparent hawa-bg-background hawa-p-2 hawa-text-sm hawa-transition-all"
3311
3334
  ),
3312
3335
  ...inputProps
3313
3336
  }
@@ -4672,7 +4695,7 @@ var PinInput = ({
4672
4695
  id: `input-${index}`,
4673
4696
  pattern: "[0-9]*",
4674
4697
  className: cn(
4675
- "hawa-h-10 hawa-rounded hawa-border hawa-bg-background hawa-text-center",
4698
+ "hawa-h-10 hawa-rounded hawa-border hawa-bg-background hawa-text-center placeholder:hawa-text-muted-foreground",
4676
4699
  width === "full" ? "hawa-w-full" : "hawa-w-10"
4677
4700
  ),
4678
4701
  onChange: (e) => handleChange(e, index),
@@ -5782,7 +5805,8 @@ var Chip = import_react45.default.forwardRef(
5782
5805
  icon,
5783
5806
  color,
5784
5807
  radius = "inherit",
5785
- dotType,
5808
+ dot,
5809
+ dotStatus = "none",
5786
5810
  ...rest
5787
5811
  }, ref) => {
5788
5812
  let defaultStyles = "hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold ";
@@ -5801,7 +5825,8 @@ var Chip = import_react45.default.forwardRef(
5801
5825
  normal: "hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full",
5802
5826
  large: "hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full"
5803
5827
  };
5804
- let dotTypeStyles = {
5828
+ let dotStatusStyles = {
5829
+ none: "hawa-bg-gray-500 dark:hawa-bg-gray-800",
5805
5830
  available: "hawa-bg-green-500",
5806
5831
  unavailable: "hawa-bg-red-500"
5807
5832
  };
@@ -5829,10 +5854,10 @@ var Chip = import_react45.default.forwardRef(
5829
5854
  color ? colorStyles[color] : "hawa-border hawa-bg-none"
5830
5855
  )
5831
5856
  },
5832
- dotType && /* @__PURE__ */ import_react45.default.createElement(
5857
+ dot && /* @__PURE__ */ import_react45.default.createElement(
5833
5858
  "span",
5834
5859
  {
5835
- className: cn(dotStyles[size], dotTypeStyles[dotType])
5860
+ className: cn(dotStyles[size], dotStatusStyles[dotStatus])
5836
5861
  }
5837
5862
  ),
5838
5863
  icon && icon,
@@ -17,7 +17,7 @@ import {
17
17
  TabsList,
18
18
  TabsTrigger,
19
19
  Textarea
20
- } from "../chunk-57EAKTAP.mjs";
20
+ } from "../chunk-T33FXOHA.mjs";
21
21
  import "../chunk-OPYDG34F.mjs";
22
22
  import {
23
23
  BadEmoji,
@@ -43,7 +43,7 @@ import {
43
43
  VeryBadEmoji,
44
44
  VeryGoodEmoji,
45
45
  cn
46
- } from "../chunk-ANXGMZXS.mjs";
46
+ } from "../chunk-NNPNQK6F.mjs";
47
47
  import "../chunk-SYGWSBJL.mjs";
48
48
 
49
49
  // blocks/auth/AuthButtons.tsx
@@ -194,7 +194,8 @@ var Chip = import_react17.default.forwardRef(
194
194
  icon,
195
195
  color,
196
196
  radius = "inherit",
197
- dotType,
197
+ dot,
198
+ dotStatus = "none",
198
199
  ...rest
199
200
  }, ref) => {
200
201
  let defaultStyles = "hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold ";
@@ -213,7 +214,8 @@ var Chip = import_react17.default.forwardRef(
213
214
  normal: "hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full",
214
215
  large: "hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full"
215
216
  };
216
- let dotTypeStyles = {
217
+ let dotStatusStyles = {
218
+ none: "hawa-bg-gray-500 dark:hawa-bg-gray-800",
217
219
  available: "hawa-bg-green-500",
218
220
  unavailable: "hawa-bg-red-500"
219
221
  };
@@ -241,10 +243,10 @@ var Chip = import_react17.default.forwardRef(
241
243
  color ? colorStyles[color] : "hawa-border hawa-bg-none"
242
244
  )
243
245
  },
244
- dotType && /* @__PURE__ */ import_react17.default.createElement(
246
+ dot && /* @__PURE__ */ import_react17.default.createElement(
245
247
  "span",
246
248
  {
247
- className: cn(dotStyles[size], dotTypeStyles[dotType])
249
+ className: cn(dotStyles[size], dotStatusStyles[dotStatus])
248
250
  }
249
251
  ),
250
252
  icon && icon,
@@ -1098,7 +1100,7 @@ var Input = (0, import_react25.forwardRef)(
1098
1100
  auto: ""
1099
1101
  };
1100
1102
  let defaultStyle = "hawa-flex hawa-max-h-fit hawa-h-fit hawa-relative hawa-flex-col hawa-justify-center hawa-gap-0";
1101
- let defaultInputStyle = "hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm ";
1103
+ let defaultInputStyle = "hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm placeholder:hawa-text-muted-foreground";
1102
1104
  const handleChange = (e) => {
1103
1105
  let newValue = e.target.value;
1104
1106
  if (props.prefixText) {
@@ -1137,7 +1139,31 @@ var Input = (0, import_react25.forwardRef)(
1137
1139
  )
1138
1140
  },
1139
1141
  props.outsidePrefix
1140
- ), props.isLoading ? /* @__PURE__ */ import_react25.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react25.default.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, !props.hideSeparator && /* @__PURE__ */ import_react25.default.createElement(
1142
+ ), props.isLoading ? /* @__PURE__ */ import_react25.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react25.default.createElement(Skeleton, { className: "hawa-h-[40px] hawa-w-full" })) : props.isLoadingError ? /* @__PURE__ */ import_react25.default.createElement("div", { className: "hawa-pb-2 hawa-w-full" }, /* @__PURE__ */ import_react25.default.createElement(
1143
+ Skeleton,
1144
+ {
1145
+ animation: "none",
1146
+ className: "hawa-h-[40px] hawa-w-full !hawa-bg-destructive/[0.3]",
1147
+ content: /* @__PURE__ */ import_react25.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-gap-2" }, /* @__PURE__ */ import_react25.default.createElement(
1148
+ "svg",
1149
+ {
1150
+ xmlns: "http://www.w3.org/2000/svg",
1151
+ width: "20",
1152
+ height: "20",
1153
+ viewBox: "0 0 24 24",
1154
+ fill: "none",
1155
+ stroke: "currentColor",
1156
+ strokeWidth: "2",
1157
+ strokeLinecap: "round",
1158
+ strokeLinejoin: "round",
1159
+ className: "hawa-text-destructive"
1160
+ },
1161
+ /* @__PURE__ */ import_react25.default.createElement("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }),
1162
+ /* @__PURE__ */ import_react25.default.createElement("path", { d: "M12 9v4" }),
1163
+ /* @__PURE__ */ import_react25.default.createElement("path", { d: "M12 17h.01" })
1164
+ ), /* @__PURE__ */ import_react25.default.createElement("span", null, /* @__PURE__ */ import_react25.default.createElement("span", { className: "hawa-text-destructive" }, props.loadingErrorMesssage || "Error loading data")))
1165
+ }
1166
+ )) : /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, !props.hideSeparator && /* @__PURE__ */ import_react25.default.createElement(
1141
1167
  "div",
1142
1168
  {
1143
1169
  className: cn(
@@ -1408,7 +1434,6 @@ var Select = ({
1408
1434
  )
1409
1435
  },
1410
1436
  unstyled: true,
1411
- autoFocus: true,
1412
1437
  components: props.hideIndicator ? {
1413
1438
  Option,
1414
1439
  Menu,
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import {
3
3
  Input
4
- } from "../../chunk-JEZLVXSU.mjs";
4
+ } from "../../chunk-BXBSZD5X.mjs";
5
5
  import {
6
6
  Chip,
7
7
  ScrollArea
8
- } from "../../chunk-LVXG3SMD.mjs";
8
+ } from "../../chunk-CJ57JBYA.mjs";
9
9
  import {
10
10
  Textarea
11
11
  } from "../../chunk-WABHQMUI.mjs";
12
12
  import {
13
13
  Select
14
- } from "../../chunk-CD6AQVU3.mjs";
14
+ } from "../../chunk-HLYAX77R.mjs";
15
15
  import {
16
16
  Button,
17
17
  Card,
@@ -631,7 +631,8 @@ var Chip = import_react7.default.forwardRef(
631
631
  icon,
632
632
  color,
633
633
  radius = "inherit",
634
- dotType,
634
+ dot,
635
+ dotStatus = "none",
635
636
  ...rest
636
637
  }, ref) => {
637
638
  let defaultStyles = "hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold ";
@@ -650,7 +651,8 @@ var Chip = import_react7.default.forwardRef(
650
651
  normal: "hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full",
651
652
  large: "hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full"
652
653
  };
653
- let dotTypeStyles = {
654
+ let dotStatusStyles = {
655
+ none: "hawa-bg-gray-500 dark:hawa-bg-gray-800",
654
656
  available: "hawa-bg-green-500",
655
657
  unavailable: "hawa-bg-red-500"
656
658
  };
@@ -678,10 +680,10 @@ var Chip = import_react7.default.forwardRef(
678
680
  color ? colorStyles[color] : "hawa-border hawa-bg-none"
679
681
  )
680
682
  },
681
- dotType && /* @__PURE__ */ import_react7.default.createElement(
683
+ dot && /* @__PURE__ */ import_react7.default.createElement(
682
684
  "span",
683
685
  {
684
- className: cn(dotStyles[size], dotTypeStyles[dotType])
686
+ className: cn(dotStyles[size], dotStatusStyles[dotStatus])
685
687
  }
686
688
  ),
687
689
  icon && icon,
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  Chip,
4
4
  ScrollArea
5
- } from "../../chunk-LVXG3SMD.mjs";
5
+ } from "../../chunk-CJ57JBYA.mjs";
6
6
  import "../../chunk-47APBDKK.mjs";
7
7
  import {
8
8
  Radio
@@ -14,7 +14,7 @@ type ChipTypes = React__default.HTMLAttributes<HTMLSpanElement> & {
14
14
  /** Enable/Disable the dot before the label of the chip */
15
15
  dot?: boolean;
16
16
  /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */
17
- dotType?: "available" | "unavailable";
17
+ dotStatus?: "available" | "unavailable" | "none";
18
18
  radius?: RadiusType;
19
19
  };
20
20
  declare const Chip: React__default.ForwardRefExoticComponent<React__default.HTMLAttributes<HTMLSpanElement> & {
@@ -29,7 +29,7 @@ declare const Chip: React__default.ForwardRefExoticComponent<React__default.HTML
29
29
  /** Enable/Disable the dot before the label of the chip */
30
30
  dot?: boolean | undefined;
31
31
  /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */
32
- dotType?: "available" | "unavailable" | undefined;
32
+ dotStatus?: "none" | "available" | "unavailable" | undefined;
33
33
  radius?: RadiusType | undefined;
34
34
  } & React__default.RefAttributes<HTMLSpanElement>>;
35
35
 
@@ -14,7 +14,7 @@ type ChipTypes = React__default.HTMLAttributes<HTMLSpanElement> & {
14
14
  /** Enable/Disable the dot before the label of the chip */
15
15
  dot?: boolean;
16
16
  /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */
17
- dotType?: "available" | "unavailable";
17
+ dotStatus?: "available" | "unavailable" | "none";
18
18
  radius?: RadiusType;
19
19
  };
20
20
  declare const Chip: React__default.ForwardRefExoticComponent<React__default.HTMLAttributes<HTMLSpanElement> & {
@@ -29,7 +29,7 @@ declare const Chip: React__default.ForwardRefExoticComponent<React__default.HTML
29
29
  /** Enable/Disable the dot before the label of the chip */
30
30
  dot?: boolean | undefined;
31
31
  /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */
32
- dotType?: "available" | "unavailable" | undefined;
32
+ dotStatus?: "none" | "available" | "unavailable" | undefined;
33
33
  radius?: RadiusType | undefined;
34
34
  } & React__default.RefAttributes<HTMLSpanElement>>;
35
35
 
@@ -53,7 +53,8 @@ var Chip = import_react.default.forwardRef(
53
53
  icon,
54
54
  color,
55
55
  radius = "inherit",
56
- dotType,
56
+ dot,
57
+ dotStatus = "none",
57
58
  ...rest
58
59
  }, ref) => {
59
60
  let defaultStyles = "hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold ";
@@ -72,7 +73,8 @@ var Chip = import_react.default.forwardRef(
72
73
  normal: "hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full",
73
74
  large: "hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full"
74
75
  };
75
- let dotTypeStyles = {
76
+ let dotStatusStyles = {
77
+ none: "hawa-bg-gray-500 dark:hawa-bg-gray-800",
76
78
  available: "hawa-bg-green-500",
77
79
  unavailable: "hawa-bg-red-500"
78
80
  };
@@ -100,10 +102,10 @@ var Chip = import_react.default.forwardRef(
100
102
  color ? colorStyles[color] : "hawa-border hawa-bg-none"
101
103
  )
102
104
  },
103
- dotType && /* @__PURE__ */ import_react.default.createElement(
105
+ dot && /* @__PURE__ */ import_react.default.createElement(
104
106
  "span",
105
107
  {
106
- className: cn(dotStyles[size], dotTypeStyles[dotType])
108
+ className: cn(dotStyles[size], dotStatusStyles[dotStatus])
107
109
  }
108
110
  ),
109
111
  icon && icon,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/chip/index.ts","../../elements/chip/Chip.tsx","../../util/index.ts"],"sourcesContent":["export * from \"./Chip\";\n","import React from \"react\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\n\nexport type ChipColors =\n | \"green\"\n | \"blue\"\n | \"red\"\n | \"yellow\"\n | \"orange\"\n | \"purple\"\n | \"cyan\"\n | \"hyper\"\n | \"oceanic\";\n\nexport type ChipTypes = React.HTMLAttributes<HTMLSpanElement> & {\n /** The text inside the chip */\n label: string;\n /** The small icon before the chip label */\n icon?: JSX.Element;\n /** The color of the chip, must be a tailwind color */\n color?: ChipColors;\n /** The size of the chip */\n size?: \"small\" | \"normal\" | \"large\";\n /** Enable/Disable the dot before the label of the chip */\n dot?: boolean;\n /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */\n dotType?: \"available\" | \"unavailable\";\n radius?: RadiusType;\n};\n\nexport const Chip = React.forwardRef<HTMLSpanElement, ChipTypes>(\n (\n {\n label,\n size = \"normal\",\n icon,\n color,\n radius = \"inherit\",\n dotType,\n ...rest\n },\n ref\n ) => {\n let defaultStyles =\n \"hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold \";\n let radiusStyles = {\n inherit: \" hawa-rounded\",\n full: \"hawa-rounded-full\",\n none: \"hawa-rounded-none\"\n };\n let sizeStyles = {\n small:\n \"hawa-h-[15px] hawa-leading-4 hawa-px-0 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 \",\n normal: \"hawa-h-fit hawa-text-xs\",\n large: \"hawa-text-base\"\n };\n let dotStyles = {\n small: \"hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full\",\n normal: \"hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full\",\n large: \"hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full\"\n };\n let dotTypeStyles = {\n available: \"hawa-bg-green-500\",\n unavailable: \"hawa-bg-red-500\"\n };\n let colorStyles: any = {\n green:\n \"hawa-bg-green-200 hawa-text-green-700 dark:hawa-bg-green-700 dark:hawa-text-green-200\",\n blue: \"hawa-bg-blue-200 hawa-text-blue-700 dark:hawa-bg-blue-700 dark:hawa-text-blue-100\",\n red: \"hawa-bg-red-200 hawa-text-red-700 dark:hawa-bg-red-700 dark:hawa-text-red-100\",\n yellow:\n \"hawa-bg-yellow-200 hawa-text-yellow-700 dark:hawa-bg-yellow-600 dark:hawa-text-black\",\n orange:\n \"hawa-bg-orange-200 hawa-text-orange-700 dark:hawa-bg-orange-700 dark:hawa-text-orange-100\",\n purple:\n \"hawa-bg-purple-200 hawa-text-purple-700 dark:hawa-bg-purple-700 dark:hawa-text-purple-100\",\n cyan: \"hawa-bg-cyan-200 hawa-text-cyan-700 dark:hawa-bg-cyan-700 dark:hawa-text-cyan-100\",\n hyper:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-tl hawa-from-pink-500 hawa-via-red-500 hawa-to-yellow-500 \",\n oceanic:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-bl hawa-from-green-300 hawa-via-blue-500 hawa-to-purple-600\"\n };\n if (label) {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n defaultStyles,\n sizeStyles[size],\n radiusStyles[radius],\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\"\n )}\n >\n {dotType && (\n <span\n className={cn(dotStyles[size], dotTypeStyles[dotType])}\n ></span>\n )}\n {icon && icon}\n {label}\n </span>\n );\n } else {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n \"hawa-h-2 hawa-w-2 hawa-rounded-full\",\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\"\n )}\n ></span>\n );\n }\n }\n);\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAkB;;;ACAlB,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;AD4BO,IAAM,OAAO,aAAAA,QAAM;AAAA,EACxB,CACE;AAAA,IACE;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,gBACF;AACF,QAAI,eAAe;AAAA,MACjB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AACA,QAAI,aAAa;AAAA,MACf,OACE;AAAA,MACF,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,YAAY;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,gBAAgB;AAAA,MAClB,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AACA,QAAI,cAAmB;AAAA,MACrB,OACE;AAAA,MACF,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QACE;AAAA,MACF,QACE;AAAA,MACF,QACE;AAAA,MACF,MAAM;AAAA,MACN,OACE;AAAA,MACF,SACE;AAAA,IACJ;AACA,QAAI,OAAO;AACT,aACE,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,WAAW,IAAI;AAAA,YACf,aAAa,MAAM;AAAA,YACnB,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,QAEC,WACC,6BAAAA,QAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,UAAU,IAAI,GAAG,cAAc,OAAO,CAAC;AAAA;AAAA,QACtD;AAAA,QAEF,QAAQ;AAAA,QACR;AAAA,MACH;AAAA,IAEJ,OAAO;AACL,aACE,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,MACD;AAAA,IAEL;AAAA,EACF;AACF;","names":["React"]}
1
+ {"version":3,"sources":["../../elements/chip/index.ts","../../elements/chip/Chip.tsx","../../util/index.ts"],"sourcesContent":["export * from \"./Chip\";\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nexport type ChipColors =\n | \"green\"\n | \"blue\"\n | \"red\"\n | \"yellow\"\n | \"orange\"\n | \"purple\"\n | \"cyan\"\n | \"hyper\"\n | \"oceanic\";\n\nexport type ChipTypes = React.HTMLAttributes<HTMLSpanElement> & {\n /** The text inside the chip */\n label: string;\n /** The small icon before the chip label */\n icon?: JSX.Element;\n /** The color of the chip, must be a tailwind color */\n color?: ChipColors;\n /** The size of the chip */\n size?: \"small\" | \"normal\" | \"large\";\n /** Enable/Disable the dot before the label of the chip */\n dot?: boolean;\n /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */\n dotStatus?: \"available\" | \"unavailable\" | \"none\";\n radius?: RadiusType;\n};\n\nexport const Chip = React.forwardRef<HTMLSpanElement, ChipTypes>(\n (\n {\n label,\n size = \"normal\",\n icon,\n color,\n radius = \"inherit\",\n dot,\n dotStatus = \"none\",\n ...rest\n },\n ref,\n ) => {\n let defaultStyles =\n \"hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold \";\n let radiusStyles = {\n inherit: \" hawa-rounded\",\n full: \"hawa-rounded-full\",\n none: \"hawa-rounded-none\",\n };\n let sizeStyles = {\n small:\n \"hawa-h-[15px] hawa-leading-4 hawa-px-0 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 \",\n normal: \"hawa-h-fit hawa-text-xs\",\n large: \"hawa-text-base\",\n };\n let dotStyles = {\n small: \"hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full\",\n normal: \"hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full\",\n large: \"hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full\",\n };\n let dotStatusStyles = {\n none: \"hawa-bg-gray-500 dark:hawa-bg-gray-800\",\n available: \"hawa-bg-green-500\",\n unavailable: \"hawa-bg-red-500\",\n };\n let colorStyles: any = {\n green:\n \"hawa-bg-green-200 hawa-text-green-700 dark:hawa-bg-green-700 dark:hawa-text-green-200\",\n blue: \"hawa-bg-blue-200 hawa-text-blue-700 dark:hawa-bg-blue-700 dark:hawa-text-blue-100\",\n red: \"hawa-bg-red-200 hawa-text-red-700 dark:hawa-bg-red-700 dark:hawa-text-red-100\",\n yellow:\n \"hawa-bg-yellow-200 hawa-text-yellow-700 dark:hawa-bg-yellow-600 dark:hawa-text-black\",\n orange:\n \"hawa-bg-orange-200 hawa-text-orange-700 dark:hawa-bg-orange-700 dark:hawa-text-orange-100\",\n purple:\n \"hawa-bg-purple-200 hawa-text-purple-700 dark:hawa-bg-purple-700 dark:hawa-text-purple-100\",\n cyan: \"hawa-bg-cyan-200 hawa-text-cyan-700 dark:hawa-bg-cyan-700 dark:hawa-text-cyan-100\",\n hyper:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-tl hawa-from-pink-500 hawa-via-red-500 hawa-to-yellow-500 \",\n oceanic:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-bl hawa-from-green-300 hawa-via-blue-500 hawa-to-purple-600\",\n };\n if (label) {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n defaultStyles,\n sizeStyles[size],\n radiusStyles[radius],\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n )}\n >\n {dot && (\n <span\n className={cn(dotStyles[size], dotStatusStyles[dotStatus])}\n ></span>\n )}\n {icon && icon}\n {label}\n </span>\n );\n } else {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n \"hawa-h-2 hawa-w-2 hawa-rounded-full\",\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n )}\n ></span>\n );\n }\n },\n);\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAkB;;;ACAlB,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;AD4BO,IAAM,OAAO,aAAAA,QAAM;AAAA,EACxB,CACE;AAAA,IACE;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,YAAY;AAAA,IACZ,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,gBACF;AACF,QAAI,eAAe;AAAA,MACjB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AACA,QAAI,aAAa;AAAA,MACf,OACE;AAAA,MACF,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,YAAY;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,kBAAkB;AAAA,MACpB,MAAM;AAAA,MACN,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AACA,QAAI,cAAmB;AAAA,MACrB,OACE;AAAA,MACF,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QACE;AAAA,MACF,QACE;AAAA,MACF,QACE;AAAA,MACF,MAAM;AAAA,MACN,OACE;AAAA,MACF,SACE;AAAA,IACJ;AACA,QAAI,OAAO;AACT,aACE,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,WAAW,IAAI;AAAA,YACf,aAAa,MAAM;AAAA,YACnB,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,QAEC,OACC,6BAAAA,QAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,UAAU,IAAI,GAAG,gBAAgB,SAAS,CAAC;AAAA;AAAA,QAC1D;AAAA,QAEF,QAAQ;AAAA,QACR;AAAA,MACH;AAAA,IAEJ,OAAO;AACL,aACE,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,MACD;AAAA,IAEL;AAAA,EACF;AACF;","names":["React"]}
@@ -18,7 +18,8 @@ var Chip = React.forwardRef(
18
18
  icon,
19
19
  color,
20
20
  radius = "inherit",
21
- dotType,
21
+ dot,
22
+ dotStatus = "none",
22
23
  ...rest
23
24
  }, ref) => {
24
25
  let defaultStyles = "hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold ";
@@ -37,7 +38,8 @@ var Chip = React.forwardRef(
37
38
  normal: "hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full",
38
39
  large: "hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full"
39
40
  };
40
- let dotTypeStyles = {
41
+ let dotStatusStyles = {
42
+ none: "hawa-bg-gray-500 dark:hawa-bg-gray-800",
41
43
  available: "hawa-bg-green-500",
42
44
  unavailable: "hawa-bg-red-500"
43
45
  };
@@ -65,10 +67,10 @@ var Chip = React.forwardRef(
65
67
  color ? colorStyles[color] : "hawa-border hawa-bg-none"
66
68
  )
67
69
  },
68
- dotType && /* @__PURE__ */ React.createElement(
70
+ dot && /* @__PURE__ */ React.createElement(
69
71
  "span",
70
72
  {
71
- className: cn(dotStyles[size], dotTypeStyles[dotType])
73
+ className: cn(dotStyles[size], dotStatusStyles[dotStatus])
72
74
  }
73
75
  ),
74
76
  icon && icon,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../elements/chip/Chip.tsx","../../util/index.ts"],"sourcesContent":["import React from \"react\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\n\nexport type ChipColors =\n | \"green\"\n | \"blue\"\n | \"red\"\n | \"yellow\"\n | \"orange\"\n | \"purple\"\n | \"cyan\"\n | \"hyper\"\n | \"oceanic\";\n\nexport type ChipTypes = React.HTMLAttributes<HTMLSpanElement> & {\n /** The text inside the chip */\n label: string;\n /** The small icon before the chip label */\n icon?: JSX.Element;\n /** The color of the chip, must be a tailwind color */\n color?: ChipColors;\n /** The size of the chip */\n size?: \"small\" | \"normal\" | \"large\";\n /** Enable/Disable the dot before the label of the chip */\n dot?: boolean;\n /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */\n dotType?: \"available\" | \"unavailable\";\n radius?: RadiusType;\n};\n\nexport const Chip = React.forwardRef<HTMLSpanElement, ChipTypes>(\n (\n {\n label,\n size = \"normal\",\n icon,\n color,\n radius = \"inherit\",\n dotType,\n ...rest\n },\n ref\n ) => {\n let defaultStyles =\n \"hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold \";\n let radiusStyles = {\n inherit: \" hawa-rounded\",\n full: \"hawa-rounded-full\",\n none: \"hawa-rounded-none\"\n };\n let sizeStyles = {\n small:\n \"hawa-h-[15px] hawa-leading-4 hawa-px-0 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 \",\n normal: \"hawa-h-fit hawa-text-xs\",\n large: \"hawa-text-base\"\n };\n let dotStyles = {\n small: \"hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full\",\n normal: \"hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full\",\n large: \"hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full\"\n };\n let dotTypeStyles = {\n available: \"hawa-bg-green-500\",\n unavailable: \"hawa-bg-red-500\"\n };\n let colorStyles: any = {\n green:\n \"hawa-bg-green-200 hawa-text-green-700 dark:hawa-bg-green-700 dark:hawa-text-green-200\",\n blue: \"hawa-bg-blue-200 hawa-text-blue-700 dark:hawa-bg-blue-700 dark:hawa-text-blue-100\",\n red: \"hawa-bg-red-200 hawa-text-red-700 dark:hawa-bg-red-700 dark:hawa-text-red-100\",\n yellow:\n \"hawa-bg-yellow-200 hawa-text-yellow-700 dark:hawa-bg-yellow-600 dark:hawa-text-black\",\n orange:\n \"hawa-bg-orange-200 hawa-text-orange-700 dark:hawa-bg-orange-700 dark:hawa-text-orange-100\",\n purple:\n \"hawa-bg-purple-200 hawa-text-purple-700 dark:hawa-bg-purple-700 dark:hawa-text-purple-100\",\n cyan: \"hawa-bg-cyan-200 hawa-text-cyan-700 dark:hawa-bg-cyan-700 dark:hawa-text-cyan-100\",\n hyper:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-tl hawa-from-pink-500 hawa-via-red-500 hawa-to-yellow-500 \",\n oceanic:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-bl hawa-from-green-300 hawa-via-blue-500 hawa-to-purple-600\"\n };\n if (label) {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n defaultStyles,\n sizeStyles[size],\n radiusStyles[radius],\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\"\n )}\n >\n {dotType && (\n <span\n className={cn(dotStyles[size], dotTypeStyles[dotType])}\n ></span>\n )}\n {icon && icon}\n {label}\n </span>\n );\n } else {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n \"hawa-h-2 hawa-w-2 hawa-rounded-full\",\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\"\n )}\n ></span>\n );\n }\n }\n);\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n"],"mappings":";;;AAAA,OAAO,WAAW;;;ACAlB,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;AD4BO,IAAM,OAAO,MAAM;AAAA,EACxB,CACE;AAAA,IACE;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,gBACF;AACF,QAAI,eAAe;AAAA,MACjB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AACA,QAAI,aAAa;AAAA,MACf,OACE;AAAA,MACF,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,YAAY;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,gBAAgB;AAAA,MAClB,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AACA,QAAI,cAAmB;AAAA,MACrB,OACE;AAAA,MACF,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QACE;AAAA,MACF,QACE;AAAA,MACF,QACE;AAAA,MACF,MAAM;AAAA,MACN,OACE;AAAA,MACF,SACE;AAAA,IACJ;AACA,QAAI,OAAO;AACT,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,WAAW,IAAI;AAAA,YACf,aAAa,MAAM;AAAA,YACnB,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,QAEC,WACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,UAAU,IAAI,GAAG,cAAc,OAAO,CAAC;AAAA;AAAA,QACtD;AAAA,QAEF,QAAQ;AAAA,QACR;AAAA,MACH;AAAA,IAEJ,OAAO;AACL,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,MACD;AAAA,IAEL;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../elements/chip/Chip.tsx","../../util/index.ts"],"sourcesContent":["import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { RadiusType } from \"@_types/commonTypes\";\n\nexport type ChipColors =\n | \"green\"\n | \"blue\"\n | \"red\"\n | \"yellow\"\n | \"orange\"\n | \"purple\"\n | \"cyan\"\n | \"hyper\"\n | \"oceanic\";\n\nexport type ChipTypes = React.HTMLAttributes<HTMLSpanElement> & {\n /** The text inside the chip */\n label: string;\n /** The small icon before the chip label */\n icon?: JSX.Element;\n /** The color of the chip, must be a tailwind color */\n color?: ChipColors;\n /** The size of the chip */\n size?: \"small\" | \"normal\" | \"large\";\n /** Enable/Disable the dot before the label of the chip */\n dot?: boolean;\n /** Red/Green dot next to the label of the chip indicating online/offline or available/unavailable */\n dotStatus?: \"available\" | \"unavailable\" | \"none\";\n radius?: RadiusType;\n};\n\nexport const Chip = React.forwardRef<HTMLSpanElement, ChipTypes>(\n (\n {\n label,\n size = \"normal\",\n icon,\n color,\n radius = \"inherit\",\n dot,\n dotStatus = \"none\",\n ...rest\n },\n ref,\n ) => {\n let defaultStyles =\n \"hawa-flex hawa-flex-row hawa-w-fit hawa-gap-1 hawa-items-center hawa-px-2.5 hawa-py-1 hawa-font-bold \";\n let radiusStyles = {\n inherit: \" hawa-rounded\",\n full: \"hawa-rounded-full\",\n none: \"hawa-rounded-none\",\n };\n let sizeStyles = {\n small:\n \"hawa-h-[15px] hawa-leading-4 hawa-px-0 hawa-py-0 hawa-text-[9px] hawa-gap-0.5 \",\n normal: \"hawa-h-fit hawa-text-xs\",\n large: \"hawa-text-base\",\n };\n let dotStyles = {\n small: \"hawa-flex hawa-h-1 hawa-w-1 hawa-rounded-full\",\n normal: \"hawa-flex hawa-h-2 hawa-w-2 hawa-rounded-full\",\n large: \"hawa-flex hawa-h-3 hawa-w-3 hawa-rounded-full\",\n };\n let dotStatusStyles = {\n none: \"hawa-bg-gray-500 dark:hawa-bg-gray-800\",\n available: \"hawa-bg-green-500\",\n unavailable: \"hawa-bg-red-500\",\n };\n let colorStyles: any = {\n green:\n \"hawa-bg-green-200 hawa-text-green-700 dark:hawa-bg-green-700 dark:hawa-text-green-200\",\n blue: \"hawa-bg-blue-200 hawa-text-blue-700 dark:hawa-bg-blue-700 dark:hawa-text-blue-100\",\n red: \"hawa-bg-red-200 hawa-text-red-700 dark:hawa-bg-red-700 dark:hawa-text-red-100\",\n yellow:\n \"hawa-bg-yellow-200 hawa-text-yellow-700 dark:hawa-bg-yellow-600 dark:hawa-text-black\",\n orange:\n \"hawa-bg-orange-200 hawa-text-orange-700 dark:hawa-bg-orange-700 dark:hawa-text-orange-100\",\n purple:\n \"hawa-bg-purple-200 hawa-text-purple-700 dark:hawa-bg-purple-700 dark:hawa-text-purple-100\",\n cyan: \"hawa-bg-cyan-200 hawa-text-cyan-700 dark:hawa-bg-cyan-700 dark:hawa-text-cyan-100\",\n hyper:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-tl hawa-from-pink-500 hawa-via-red-500 hawa-to-yellow-500 \",\n oceanic:\n \"hawa-text-white dark:hawa-text-black hawa-bg-gradient-to-bl hawa-from-green-300 hawa-via-blue-500 hawa-to-purple-600\",\n };\n if (label) {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n defaultStyles,\n sizeStyles[size],\n radiusStyles[radius],\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n )}\n >\n {dot && (\n <span\n className={cn(dotStyles[size], dotStatusStyles[dotStatus])}\n ></span>\n )}\n {icon && icon}\n {label}\n </span>\n );\n } else {\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\n \"hawa-h-2 hawa-w-2 hawa-rounded-full\",\n color ? colorStyles[color] : \"hawa-border hawa-bg-none\",\n )}\n ></span>\n );\n }\n },\n);\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\ntype Palette = {\n name: string;\n colors: {\n [key: number]: string;\n };\n};\ntype Rgb = {\n r: number;\n g: number;\n b: number;\n};\nfunction hexToRgb(hex: string): Rgb | null {\n const sanitizedHex = hex.replaceAll(\"##\", \"#\");\n const colorParts = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(\n sanitizedHex\n );\n\n if (!colorParts) {\n return null;\n }\n\n const [, r, g, b] = colorParts;\n\n return {\n r: parseInt(r, 16),\n g: parseInt(g, 16),\n b: parseInt(b, 16)\n } as Rgb;\n}\n\nfunction rgbToHex(r: number, g: number, b: number): string {\n const toHex = (c: number) => `0${c.toString(16)}`.slice(-2);\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`;\n}\n\nexport function getTextColor(color: string): \"#FFF\" | \"#333\" {\n const rgbColor = hexToRgb(color);\n\n if (!rgbColor) {\n return \"#333\";\n }\n\n const { r, g, b } = rgbColor;\n const luma = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n\n return luma < 120 ? \"#FFF\" : \"#333\";\n}\n\nfunction lighten(hex: string, intensity: number): string {\n const color = hexToRgb(`#${hex}`);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r + (255 - color.r) * intensity);\n const g = Math.round(color.g + (255 - color.g) * intensity);\n const b = Math.round(color.b + (255 - color.b) * intensity);\n\n return rgbToHex(r, g, b);\n}\n\nfunction darken(hex: string, intensity: number): string {\n const color = hexToRgb(hex);\n\n if (!color) {\n return \"\";\n }\n\n const r = Math.round(color.r * intensity);\n const g = Math.round(color.g * intensity);\n const b = Math.round(color.b * intensity);\n\n return rgbToHex(r, g, b);\n}\nconst parseColor = (color: any) => {\n if (color.startsWith(\"#\")) {\n // Convert hex to RGB\n let r = parseInt(color.slice(1, 3), 16);\n let g = parseInt(color.slice(3, 5), 16);\n let b = parseInt(color.slice(5, 7), 16);\n return [r, g, b];\n } else if (color.startsWith(\"rgb\")) {\n // Extract RGB values from rgb() format\n return color.match(/\\d+/g).map(Number);\n }\n // Default to white if format is unrecognized\n return [255, 255, 255];\n};\nexport const calculateLuminance = (color: any) => {\n const [r, g, b] = parseColor(color)?.map((c: any) => {\n c /= 255;\n return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;\n });\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n};\n\nfunction getPallette(baseColor: string): Palette {\n const name = baseColor;\n\n const response: Palette = {\n name,\n colors: {\n 500: `#${baseColor}`.replace(\"##\", \"#\")\n }\n };\n\n const intensityMap: {\n [key: number]: number;\n } = {\n 50: 0.95,\n 100: 0.9,\n 200: 0.75,\n 300: 0.6,\n 400: 0.3,\n 600: 0.9,\n 700: 0.75,\n 800: 0.6,\n 900: 0.49\n };\n\n [50, 100, 200, 300, 400].forEach((level) => {\n response.colors[level] = lighten(baseColor, intensityMap[level]);\n });\n [600, 700, 800, 900].forEach((level) => {\n response.colors[level] = darken(baseColor, intensityMap[level]);\n });\n\n return response as Palette;\n}\n\nexport { getPallette };\n\n// const hexToRgb = (hex) => {\n// let d = hex?.split(\"#\")[1];\n// var aRgbHex = d?.match(/.{1,2}/g);\n// var aRgb = [\n// parseInt(aRgbHex[0], 16),\n// parseInt(aRgbHex[1], 16),\n// parseInt(aRgbHex[2], 16)\n// ];\n// return aRgb;\n// };\n// const getTextColor = (backColor) => {\n// let rgbArray = hexToRgb(backColor);\n// if (rgbArray[0] * 0.299 + rgbArray[1] * 0.587 + rgbArray[2] * 0.114 > 186) {\n// return \"#000000\";\n// } else {\n// return \"#ffffff\";\n// }\n// };\n// const replaceAt = function (string, index, replacement) {\n// // if (replacement == \"\" || replacement == \" \") {\n// // return (\n// // string.substring(0, index) +\n// // string.substring(index + replacement.length )\n// // );\n// // }\n// const replaced = string.substring(0, index) + replacement + string.substring(index + 1)\n// return replaced\n// };\n\n// export { hexToRgb, getTextColor, replaceAt };\n"],"mappings":";;;AAAA,OAAO,WAAW;;;ACAlB,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;AD4BO,IAAM,OAAO,MAAM;AAAA,EACxB,CACE;AAAA,IACE;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,YAAY;AAAA,IACZ,GAAG;AAAA,EACL,GACA,QACG;AACH,QAAI,gBACF;AACF,QAAI,eAAe;AAAA,MACjB,SAAS;AAAA,MACT,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AACA,QAAI,aAAa;AAAA,MACf,OACE;AAAA,MACF,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,YAAY;AAAA,MACd,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,kBAAkB;AAAA,MACpB,MAAM;AAAA,MACN,WAAW;AAAA,MACX,aAAa;AAAA,IACf;AACA,QAAI,cAAmB;AAAA,MACrB,OACE;AAAA,MACF,MAAM;AAAA,MACN,KAAK;AAAA,MACL,QACE;AAAA,MACF,QACE;AAAA,MACF,QACE;AAAA,MACF,MAAM;AAAA,MACN,OACE;AAAA,MACF,SACE;AAAA,IACJ;AACA,QAAI,OAAO;AACT,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,WAAW,IAAI;AAAA,YACf,aAAa,MAAM;AAAA,YACnB,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,QAEC,OACC;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,UAAU,IAAI,GAAG,gBAAgB,SAAS,CAAC;AAAA;AAAA,QAC1D;AAAA,QAEF,QAAQ;AAAA,QACR;AAAA,MACH;AAAA,IAEJ,OAAO;AACL,aACE;AAAA,QAAC;AAAA;AAAA,UACE,GAAG;AAAA,UACJ;AAAA,UACA,WAAW;AAAA,YACT;AAAA,YACA,QAAQ,YAAY,KAAK,IAAI;AAAA,UAC/B;AAAA;AAAA,MACD;AAAA,IAEL;AAAA,EACF;AACF;","names":[]}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  cn
4
- } from "./chunk-ANXGMZXS.mjs";
4
+ } from "./chunk-NNPNQK6F.mjs";
5
5
 
6
6
  // elements/sheet/Sheet.tsx
7
7
  import * as React from "react";