@sikka/hawa 0.27.4-next → 0.27.6-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.
- package/dist/{Radio-K1WGpnGA.d.ts → Radio-PmNrOjLQ.d.ts} +2 -1
- package/dist/{Radio-hsrLKNxE.d.mts → Radio-RSPNWT03.d.mts} +2 -1
- package/dist/alert/index.js +10 -1
- package/dist/alert/index.js.map +1 -1
- package/dist/alert/index.mjs +10 -1
- package/dist/alert/index.mjs.map +1 -1
- package/dist/appLayout/index.js +26 -3
- package/dist/appLayout/index.js.map +1 -1
- package/dist/appLayout/index.mjs +26 -3
- package/dist/appLayout/index.mjs.map +1 -1
- package/dist/backToTop/index.js +10 -1
- package/dist/backToTop/index.js.map +1 -1
- package/dist/backToTop/index.mjs +10 -1
- package/dist/backToTop/index.mjs.map +1 -1
- package/dist/blocks/auth/index.js +29 -3
- package/dist/blocks/auth/index.mjs +4 -4
- package/dist/blocks/feedback/index.d.mts +1 -0
- package/dist/blocks/feedback/index.d.ts +1 -0
- package/dist/blocks/feedback/index.js +38 -9
- package/dist/blocks/feedback/index.mjs +7 -6
- package/dist/blocks/index.d.mts +2 -1
- package/dist/blocks/index.d.ts +2 -1
- package/dist/blocks/index.js +37 -4
- package/dist/blocks/index.mjs +10 -3
- package/dist/blocks/misc/index.js +29 -3
- package/dist/blocks/misc/index.mjs +5 -5
- package/dist/blocks/pricing/index.js +35 -3
- package/dist/blocks/pricing/index.mjs +10 -4
- package/dist/button/index.js +10 -1
- package/dist/button/index.js.map +1 -1
- package/dist/button/index.mjs +10 -1
- package/dist/button/index.mjs.map +1 -1
- package/dist/{chunk-ROYGC4RA.mjs → chunk-7YVLGY5B.mjs} +1 -1
- package/dist/{chunk-MKRPDQOM.mjs → chunk-ABI2Q4UV.mjs} +1 -1
- package/dist/{chunk-USKURX7W.mjs → chunk-AQO6QVMV.mjs} +1 -1
- package/dist/{chunk-V2ANNDSC.mjs → chunk-CVOMACRL.mjs} +1 -1
- package/dist/{chunk-CA3JPYZA.mjs → chunk-F4MGQ5JV.mjs} +1 -1
- package/dist/{chunk-ABEN43H7.mjs → chunk-GCRMEJAI.mjs} +29 -3
- package/dist/{chunk-SOE62VBZ.mjs → chunk-HMQOYBTW.mjs} +1 -1
- package/dist/{chunk-N3AIWCPY.mjs → chunk-I5EJUQ4E.mjs} +29 -3
- package/dist/{chunk-O5VU32JT.mjs → chunk-KZ72VALG.mjs} +1 -1
- package/dist/{chunk-FEL67JJQ.mjs → chunk-MNCROATO.mjs} +1 -1
- package/dist/codeBlock/index.js +26 -3
- package/dist/codeBlock/index.js.map +1 -1
- package/dist/codeBlock/index.mjs +26 -3
- package/dist/codeBlock/index.mjs.map +1 -1
- package/dist/colorPicker/index.js +19 -2
- package/dist/colorPicker/index.js.map +1 -1
- package/dist/colorPicker/index.mjs +19 -2
- package/dist/colorPicker/index.mjs.map +1 -1
- package/dist/combobox/index.js +19 -2
- package/dist/combobox/index.js.map +1 -1
- package/dist/combobox/index.mjs +19 -2
- package/dist/combobox/index.mjs.map +1 -1
- package/dist/dataTable/index.js +29 -3
- package/dist/dataTable/index.js.map +1 -1
- package/dist/dataTable/index.mjs +29 -3
- package/dist/dataTable/index.mjs.map +1 -1
- package/dist/docsLayout/index.js +10 -1
- package/dist/docsLayout/index.js.map +1 -1
- package/dist/docsLayout/index.mjs +10 -1
- package/dist/docsLayout/index.mjs.map +1 -1
- package/dist/elements/index.d.mts +7 -4
- package/dist/elements/index.d.ts +7 -4
- package/dist/elements/index.js +31 -3
- package/dist/elements/index.mjs +5 -3
- package/dist/fileDropzone/index.js +10 -1
- package/dist/fileDropzone/index.js.map +1 -1
- package/dist/fileDropzone/index.mjs +10 -1
- package/dist/fileDropzone/index.mjs.map +1 -1
- package/dist/index.css +7 -0
- package/dist/index.d.mts +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.js +39 -4
- package/dist/index.mjs +39 -4
- package/dist/input/index.d.mts +1 -1
- package/dist/input/index.d.ts +1 -1
- package/dist/input/index.js +19 -2
- package/dist/input/index.js.map +1 -1
- package/dist/input/index.mjs +19 -2
- package/dist/input/index.mjs.map +1 -1
- package/dist/interfaceSettings/index.js +18 -2
- package/dist/interfaceSettings/index.js.map +1 -1
- package/dist/interfaceSettings/index.mjs +18 -2
- package/dist/interfaceSettings/index.mjs.map +1 -1
- package/dist/label/index.js +16 -2
- package/dist/label/index.js.map +1 -1
- package/dist/label/index.mjs +16 -2
- package/dist/label/index.mjs.map +1 -1
- package/dist/layout/index.js +29 -3
- package/dist/layout/index.mjs +2 -2
- package/dist/loading/index.js +10 -1
- package/dist/loading/index.js.map +1 -1
- package/dist/loading/index.mjs +10 -1
- package/dist/loading/index.mjs.map +1 -1
- package/dist/passwordInput/index.js +19 -2
- package/dist/passwordInput/index.js.map +1 -1
- package/dist/passwordInput/index.mjs +19 -2
- package/dist/passwordInput/index.mjs.map +1 -1
- package/dist/phoneInput/index.js +19 -2
- package/dist/phoneInput/index.js.map +1 -1
- package/dist/phoneInput/index.mjs +19 -2
- package/dist/phoneInput/index.mjs.map +1 -1
- package/dist/radio/index.d.mts +2 -1
- package/dist/radio/index.d.ts +2 -1
- package/dist/radio/index.js +16 -2
- package/dist/radio/index.js.map +1 -1
- package/dist/radio/index.mjs +16 -2
- package/dist/radio/index.mjs.map +1 -1
- package/dist/select/index.js +19 -2
- package/dist/select/index.js.map +1 -1
- package/dist/select/index.mjs +19 -2
- package/dist/select/index.mjs.map +1 -1
- package/dist/signature/index.js +16 -2
- package/dist/signature/index.js.map +1 -1
- package/dist/signature/index.mjs +16 -2
- package/dist/signature/index.mjs.map +1 -1
- package/dist/simpleTable/index.js +3 -0
- package/dist/simpleTable/index.js.map +1 -1
- package/dist/simpleTable/index.mjs +3 -0
- package/dist/simpleTable/index.mjs.map +1 -1
- package/dist/skeleton/index.d.mts +2 -1
- package/dist/skeleton/index.d.ts +2 -1
- package/dist/skeleton/index.js +3 -0
- package/dist/skeleton/index.js.map +1 -1
- package/dist/skeleton/index.mjs +3 -0
- package/dist/skeleton/index.mjs.map +1 -1
- package/dist/sortButton/index.js +10 -1
- package/dist/sortButton/index.js.map +1 -1
- package/dist/sortButton/index.mjs +10 -1
- package/dist/sortButton/index.mjs.map +1 -1
- package/dist/splitButton/index.js +10 -1
- package/dist/splitButton/index.js.map +1 -1
- package/dist/splitButton/index.mjs +10 -1
- package/dist/splitButton/index.mjs.map +1 -1
- package/dist/stats/index.js +3 -0
- package/dist/stats/index.js.map +1 -1
- package/dist/stats/index.mjs +3 -0
- package/dist/stats/index.mjs.map +1 -1
- package/dist/textarea/index.js +19 -2
- package/dist/textarea/index.js.map +1 -1
- package/dist/textarea/index.mjs +19 -2
- package/dist/textarea/index.mjs.map +1 -1
- package/dist/tooltip/index.d.mts +2 -0
- package/dist/tooltip/index.d.ts +2 -0
- package/dist/tooltip/index.js +16 -2
- package/dist/tooltip/index.js.map +1 -1
- package/dist/tooltip/index.mjs +16 -2
- package/dist/tooltip/index.mjs.map +1 -1
- package/package.json +6 -6
package/dist/index.js
CHANGED
@@ -352,7 +352,7 @@ Card.displayName = "Card";
|
|
352
352
|
var import_react = __toESM(require("react"));
|
353
353
|
var Loading = ({
|
354
354
|
design = "spinner",
|
355
|
-
size = "
|
355
|
+
size = "normal",
|
356
356
|
themeMode = "light",
|
357
357
|
classNames,
|
358
358
|
color,
|
@@ -366,6 +366,14 @@ var Loading = ({
|
|
366
366
|
lg: "hawa-h-14 hawa-w-14",
|
367
367
|
xl: "hawa-h-24 hawa-w-24"
|
368
368
|
};
|
369
|
+
let progressSizes = {
|
370
|
+
button: "hawa-h-1",
|
371
|
+
xs: "hawa-h-1 hawa-w-1",
|
372
|
+
sm: "hawa-h-6 hawa-w-6",
|
373
|
+
normal: "",
|
374
|
+
lg: "hawa-h-6",
|
375
|
+
xl: "hawa-h-10 hawa-w-64"
|
376
|
+
};
|
369
377
|
let animationStyles = {
|
370
378
|
pulse: "hawa-animate-in hawa-fade-in hawa-duration-1000",
|
371
379
|
bounce: "hawa-animate-bounce"
|
@@ -496,6 +504,7 @@ var Loading = ({
|
|
496
504
|
{
|
497
505
|
className: cn(
|
498
506
|
"progress-loading after:hawa-rounded hawa-rounded",
|
507
|
+
progressSizes[size],
|
499
508
|
classNames == null ? void 0 : classNames.container
|
500
509
|
)
|
501
510
|
}
|
@@ -560,13 +569,17 @@ var Loading = ({
|
|
560
569
|
// elements/tooltip/Tooltip.tsx
|
561
570
|
var import_react2 = __toESM(require("react"));
|
562
571
|
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
|
563
|
-
var TooltipContent = import_react2.default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ import_react2.default.createElement(
|
572
|
+
var TooltipContent = import_react2.default.forwardRef(({ className, sideOffset = 4, size = "default", ...props }, ref) => /* @__PURE__ */ import_react2.default.createElement(
|
564
573
|
TooltipPrimitive.Content,
|
565
574
|
{
|
566
575
|
ref,
|
567
576
|
sideOffset,
|
568
577
|
className: cn(
|
569
578
|
"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
|
579
|
+
{
|
580
|
+
"hawa-text-xs": size === "small",
|
581
|
+
"hawa-text-xl": size === "large"
|
582
|
+
},
|
570
583
|
className
|
571
584
|
),
|
572
585
|
...props
|
@@ -577,6 +590,7 @@ var TooltipArrow = import_react2.default.forwardRef(({ className, ...props }, re
|
|
577
590
|
TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
|
578
591
|
var Tooltip = ({
|
579
592
|
side,
|
593
|
+
size,
|
580
594
|
open,
|
581
595
|
content,
|
582
596
|
children,
|
@@ -603,7 +617,16 @@ var Tooltip = ({
|
|
603
617
|
...props
|
604
618
|
},
|
605
619
|
/* @__PURE__ */ import_react2.default.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
|
606
|
-
/* @__PURE__ */ import_react2.default.createElement(
|
620
|
+
/* @__PURE__ */ import_react2.default.createElement(
|
621
|
+
TooltipContent,
|
622
|
+
{
|
623
|
+
size,
|
624
|
+
side,
|
625
|
+
align: "center",
|
626
|
+
...contentProps
|
627
|
+
},
|
628
|
+
content
|
629
|
+
)
|
607
630
|
)
|
608
631
|
);
|
609
632
|
};
|
@@ -614,6 +637,7 @@ function Skeleton({
|
|
614
637
|
className,
|
615
638
|
content,
|
616
639
|
animation = "pulse",
|
640
|
+
fade,
|
617
641
|
...props
|
618
642
|
}) {
|
619
643
|
const animationStyles = {
|
@@ -621,12 +645,14 @@ function Skeleton({
|
|
621
645
|
pulse: "hawa-animate-pulse hawa-rounded hawa-bg-muted",
|
622
646
|
shimmer: "hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10"
|
623
647
|
};
|
648
|
+
const fadeStyle = `[mask-image:linear-gradient(to_${fade},#D1D4DC_50%,transparent_100%)]`;
|
624
649
|
return /* @__PURE__ */ import_react3.default.createElement(
|
625
650
|
"div",
|
626
651
|
{
|
627
652
|
className: cn(
|
628
653
|
animationStyles[animation],
|
629
654
|
content && "hawa-flex hawa-flex-col hawa-items-center hawa-justify-center",
|
655
|
+
fade && fadeStyle,
|
630
656
|
className
|
631
657
|
),
|
632
658
|
...props
|
@@ -7714,6 +7740,7 @@ var InterfaceSettings = ({
|
|
7714
7740
|
return /* @__PURE__ */ import_react35.default.createElement("div", { className: cn(orientationStyle[orientation]) }, /* @__PURE__ */ import_react35.default.createElement(
|
7715
7741
|
Radio,
|
7716
7742
|
{
|
7743
|
+
name: "language",
|
7717
7744
|
width,
|
7718
7745
|
defaultValue: language,
|
7719
7746
|
onChange: (e) => {
|
@@ -7731,6 +7758,7 @@ var InterfaceSettings = ({
|
|
7731
7758
|
), /* @__PURE__ */ import_react35.default.createElement(
|
7732
7759
|
Radio,
|
7733
7760
|
{
|
7761
|
+
name: "theme",
|
7734
7762
|
width,
|
7735
7763
|
defaultValue: color,
|
7736
7764
|
onChange: (e) => {
|
@@ -10290,6 +10318,7 @@ var UserReferralSource = ({
|
|
10290
10318
|
return /* @__PURE__ */ import_react53.default.createElement(
|
10291
10319
|
Radio,
|
10292
10320
|
{
|
10321
|
+
name: "source",
|
10293
10322
|
direction: props.direction,
|
10294
10323
|
orientation: "vertical",
|
10295
10324
|
options: optionsWithOther,
|
@@ -10648,7 +10677,7 @@ var FeedbackForm = (props) => {
|
|
10648
10677
|
}
|
10649
10678
|
}
|
10650
10679
|
),
|
10651
|
-
/* @__PURE__ */ import_react56.default.createElement(Button, { type: "submit" }, (_i = props.texts) == null ? void 0 : _i.submit)
|
10680
|
+
/* @__PURE__ */ import_react56.default.createElement(Button, { isLoading: props.loadingSubmission, type: "submit" }, (_i = props.texts) == null ? void 0 : _i.submit)
|
10652
10681
|
))
|
10653
10682
|
);
|
10654
10683
|
};
|
@@ -11366,6 +11395,7 @@ var PricingPlans = ({
|
|
11366
11395
|
return /* @__PURE__ */ import_react70.default.createElement("div", { ...mainContainerProps }, /* @__PURE__ */ import_react70.default.createElement("div", { className: "hawa-mb-2 hawa-flex hawa-w-full hawa-justify-between" }, /* @__PURE__ */ import_react70.default.createElement(
|
11367
11396
|
Radio,
|
11368
11397
|
{
|
11398
|
+
name: "cycle",
|
11369
11399
|
design: "tabs",
|
11370
11400
|
defaultValue: props.currentCycle.value,
|
11371
11401
|
options: props.billingCycles,
|
@@ -11378,6 +11408,7 @@ var PricingPlans = ({
|
|
11378
11408
|
), /* @__PURE__ */ import_react70.default.createElement(
|
11379
11409
|
Radio,
|
11380
11410
|
{
|
11411
|
+
name: "currency",
|
11381
11412
|
design: "tabs",
|
11382
11413
|
defaultValue: props.currentCurrency.value,
|
11383
11414
|
options: props.currencies,
|
@@ -11437,6 +11468,7 @@ var ComparingPlans = (props) => {
|
|
11437
11468
|
return /* @__PURE__ */ import_react71.default.createElement("div", { id: "detailed-pricing", className: "hawa-w-full" }, /* @__PURE__ */ import_react71.default.createElement("div", { className: "hawa-mb-2 hawa-flex hawa-w-full hawa-flex-col hawa-justify-between hawa-gap-2 sm:hawa-flex-row" }, /* @__PURE__ */ import_react71.default.createElement(
|
11438
11469
|
Radio,
|
11439
11470
|
{
|
11471
|
+
name: "cycle",
|
11440
11472
|
tabsContainerClassName: "hawa-w-full sm:hawa-max-w-fit",
|
11441
11473
|
width: "none",
|
11442
11474
|
design: "tabs",
|
@@ -11451,6 +11483,7 @@ var ComparingPlans = (props) => {
|
|
11451
11483
|
), /* @__PURE__ */ import_react71.default.createElement(
|
11452
11484
|
Radio,
|
11453
11485
|
{
|
11486
|
+
name: "currency",
|
11454
11487
|
tabsContainerClassName: "hawa-w-full sm:hawa-max-w-fit",
|
11455
11488
|
width: "none",
|
11456
11489
|
design: "tabs",
|
@@ -11602,6 +11635,7 @@ var HorizontalPricing = (props) => {
|
|
11602
11635
|
return /* @__PURE__ */ import_react72.default.createElement("div", { className: "hawa-z-10 hawa-w-full hawa-max-w-screen-sm" }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "hawa-max-w-2xl " }, /* @__PURE__ */ import_react72.default.createElement("div", { className: "hawa-flex hawa-flex-row hawa-justify-between" }, /* @__PURE__ */ import_react72.default.createElement(
|
11603
11636
|
Radio,
|
11604
11637
|
{
|
11638
|
+
name: "currency",
|
11605
11639
|
design: "tabs",
|
11606
11640
|
options: props.currencies,
|
11607
11641
|
defaultValue: props.currentCurrency
|
@@ -11609,6 +11643,7 @@ var HorizontalPricing = (props) => {
|
|
11609
11643
|
), /* @__PURE__ */ import_react72.default.createElement(
|
11610
11644
|
Radio,
|
11611
11645
|
{
|
11646
|
+
name: "cycle",
|
11612
11647
|
design: "tabs",
|
11613
11648
|
options: props.billingCycles,
|
11614
11649
|
defaultValue: props.currentCycle
|
package/dist/index.mjs
CHANGED
@@ -119,7 +119,7 @@ Card.displayName = "Card";
|
|
119
119
|
import React2 from "react";
|
120
120
|
var Loading = ({
|
121
121
|
design = "spinner",
|
122
|
-
size = "
|
122
|
+
size = "normal",
|
123
123
|
themeMode = "light",
|
124
124
|
classNames,
|
125
125
|
color,
|
@@ -133,6 +133,14 @@ var Loading = ({
|
|
133
133
|
lg: "hawa-h-14 hawa-w-14",
|
134
134
|
xl: "hawa-h-24 hawa-w-24"
|
135
135
|
};
|
136
|
+
let progressSizes = {
|
137
|
+
button: "hawa-h-1",
|
138
|
+
xs: "hawa-h-1 hawa-w-1",
|
139
|
+
sm: "hawa-h-6 hawa-w-6",
|
140
|
+
normal: "",
|
141
|
+
lg: "hawa-h-6",
|
142
|
+
xl: "hawa-h-10 hawa-w-64"
|
143
|
+
};
|
136
144
|
let animationStyles = {
|
137
145
|
pulse: "hawa-animate-in hawa-fade-in hawa-duration-1000",
|
138
146
|
bounce: "hawa-animate-bounce"
|
@@ -263,6 +271,7 @@ var Loading = ({
|
|
263
271
|
{
|
264
272
|
className: cn(
|
265
273
|
"progress-loading after:hawa-rounded hawa-rounded",
|
274
|
+
progressSizes[size],
|
266
275
|
classNames == null ? void 0 : classNames.container
|
267
276
|
)
|
268
277
|
}
|
@@ -327,13 +336,17 @@ var Loading = ({
|
|
327
336
|
// elements/tooltip/Tooltip.tsx
|
328
337
|
import React3 from "react";
|
329
338
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
330
|
-
var TooltipContent = React3.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React3.createElement(
|
339
|
+
var TooltipContent = React3.forwardRef(({ className, sideOffset = 4, size = "default", ...props }, ref) => /* @__PURE__ */ React3.createElement(
|
331
340
|
TooltipPrimitive.Content,
|
332
341
|
{
|
333
342
|
ref,
|
334
343
|
sideOffset,
|
335
344
|
className: cn(
|
336
345
|
"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
|
346
|
+
{
|
347
|
+
"hawa-text-xs": size === "small",
|
348
|
+
"hawa-text-xl": size === "large"
|
349
|
+
},
|
337
350
|
className
|
338
351
|
),
|
339
352
|
...props
|
@@ -344,6 +357,7 @@ var TooltipArrow = React3.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
344
357
|
TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
|
345
358
|
var Tooltip = ({
|
346
359
|
side,
|
360
|
+
size,
|
347
361
|
open,
|
348
362
|
content,
|
349
363
|
children,
|
@@ -370,7 +384,16 @@ var Tooltip = ({
|
|
370
384
|
...props
|
371
385
|
},
|
372
386
|
/* @__PURE__ */ React3.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
|
373
|
-
/* @__PURE__ */ React3.createElement(
|
387
|
+
/* @__PURE__ */ React3.createElement(
|
388
|
+
TooltipContent,
|
389
|
+
{
|
390
|
+
size,
|
391
|
+
side,
|
392
|
+
align: "center",
|
393
|
+
...contentProps
|
394
|
+
},
|
395
|
+
content
|
396
|
+
)
|
374
397
|
)
|
375
398
|
);
|
376
399
|
};
|
@@ -381,6 +404,7 @@ function Skeleton({
|
|
381
404
|
className,
|
382
405
|
content,
|
383
406
|
animation = "pulse",
|
407
|
+
fade,
|
384
408
|
...props
|
385
409
|
}) {
|
386
410
|
const animationStyles = {
|
@@ -388,12 +412,14 @@ function Skeleton({
|
|
388
412
|
pulse: "hawa-animate-pulse hawa-rounded hawa-bg-muted",
|
389
413
|
shimmer: "hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10"
|
390
414
|
};
|
415
|
+
const fadeStyle = `[mask-image:linear-gradient(to_${fade},#D1D4DC_50%,transparent_100%)]`;
|
391
416
|
return /* @__PURE__ */ React4.createElement(
|
392
417
|
"div",
|
393
418
|
{
|
394
419
|
className: cn(
|
395
420
|
animationStyles[animation],
|
396
421
|
content && "hawa-flex hawa-flex-col hawa-items-center hawa-justify-center",
|
422
|
+
fade && fadeStyle,
|
397
423
|
className
|
398
424
|
),
|
399
425
|
...props
|
@@ -7496,6 +7522,7 @@ var InterfaceSettings = ({
|
|
7496
7522
|
return /* @__PURE__ */ React60.createElement("div", { className: cn(orientationStyle[orientation]) }, /* @__PURE__ */ React60.createElement(
|
7497
7523
|
Radio,
|
7498
7524
|
{
|
7525
|
+
name: "language",
|
7499
7526
|
width,
|
7500
7527
|
defaultValue: language,
|
7501
7528
|
onChange: (e) => {
|
@@ -7513,6 +7540,7 @@ var InterfaceSettings = ({
|
|
7513
7540
|
), /* @__PURE__ */ React60.createElement(
|
7514
7541
|
Radio,
|
7515
7542
|
{
|
7543
|
+
name: "theme",
|
7516
7544
|
width,
|
7517
7545
|
defaultValue: color,
|
7518
7546
|
onChange: (e) => {
|
@@ -10072,6 +10100,7 @@ var UserReferralSource = ({
|
|
10072
10100
|
return /* @__PURE__ */ React80.createElement(
|
10073
10101
|
Radio,
|
10074
10102
|
{
|
10103
|
+
name: "source",
|
10075
10104
|
direction: props.direction,
|
10076
10105
|
orientation: "vertical",
|
10077
10106
|
options: optionsWithOther,
|
@@ -10430,7 +10459,7 @@ var FeedbackForm = (props) => {
|
|
10430
10459
|
}
|
10431
10460
|
}
|
10432
10461
|
),
|
10433
|
-
/* @__PURE__ */ React83.createElement(Button, { type: "submit" }, (_i = props.texts) == null ? void 0 : _i.submit)
|
10462
|
+
/* @__PURE__ */ React83.createElement(Button, { isLoading: props.loadingSubmission, type: "submit" }, (_i = props.texts) == null ? void 0 : _i.submit)
|
10434
10463
|
))
|
10435
10464
|
);
|
10436
10465
|
};
|
@@ -11148,6 +11177,7 @@ var PricingPlans = ({
|
|
11148
11177
|
return /* @__PURE__ */ React97.createElement("div", { ...mainContainerProps }, /* @__PURE__ */ React97.createElement("div", { className: "hawa-mb-2 hawa-flex hawa-w-full hawa-justify-between" }, /* @__PURE__ */ React97.createElement(
|
11149
11178
|
Radio,
|
11150
11179
|
{
|
11180
|
+
name: "cycle",
|
11151
11181
|
design: "tabs",
|
11152
11182
|
defaultValue: props.currentCycle.value,
|
11153
11183
|
options: props.billingCycles,
|
@@ -11160,6 +11190,7 @@ var PricingPlans = ({
|
|
11160
11190
|
), /* @__PURE__ */ React97.createElement(
|
11161
11191
|
Radio,
|
11162
11192
|
{
|
11193
|
+
name: "currency",
|
11163
11194
|
design: "tabs",
|
11164
11195
|
defaultValue: props.currentCurrency.value,
|
11165
11196
|
options: props.currencies,
|
@@ -11219,6 +11250,7 @@ var ComparingPlans = (props) => {
|
|
11219
11250
|
return /* @__PURE__ */ React98.createElement("div", { id: "detailed-pricing", className: "hawa-w-full" }, /* @__PURE__ */ React98.createElement("div", { className: "hawa-mb-2 hawa-flex hawa-w-full hawa-flex-col hawa-justify-between hawa-gap-2 sm:hawa-flex-row" }, /* @__PURE__ */ React98.createElement(
|
11220
11251
|
Radio,
|
11221
11252
|
{
|
11253
|
+
name: "cycle",
|
11222
11254
|
tabsContainerClassName: "hawa-w-full sm:hawa-max-w-fit",
|
11223
11255
|
width: "none",
|
11224
11256
|
design: "tabs",
|
@@ -11233,6 +11265,7 @@ var ComparingPlans = (props) => {
|
|
11233
11265
|
), /* @__PURE__ */ React98.createElement(
|
11234
11266
|
Radio,
|
11235
11267
|
{
|
11268
|
+
name: "currency",
|
11236
11269
|
tabsContainerClassName: "hawa-w-full sm:hawa-max-w-fit",
|
11237
11270
|
width: "none",
|
11238
11271
|
design: "tabs",
|
@@ -11384,6 +11417,7 @@ var HorizontalPricing = (props) => {
|
|
11384
11417
|
return /* @__PURE__ */ React99.createElement("div", { className: "hawa-z-10 hawa-w-full hawa-max-w-screen-sm" }, /* @__PURE__ */ React99.createElement("div", { className: "hawa-max-w-2xl " }, /* @__PURE__ */ React99.createElement("div", { className: "hawa-flex hawa-flex-row hawa-justify-between" }, /* @__PURE__ */ React99.createElement(
|
11385
11418
|
Radio,
|
11386
11419
|
{
|
11420
|
+
name: "currency",
|
11387
11421
|
design: "tabs",
|
11388
11422
|
options: props.currencies,
|
11389
11423
|
defaultValue: props.currentCurrency
|
@@ -11391,6 +11425,7 @@ var HorizontalPricing = (props) => {
|
|
11391
11425
|
), /* @__PURE__ */ React99.createElement(
|
11392
11426
|
Radio,
|
11393
11427
|
{
|
11428
|
+
name: "cycle",
|
11394
11429
|
design: "tabs",
|
11395
11430
|
options: props.billingCycles,
|
11396
11431
|
defaultValue: props.currentCycle
|
package/dist/input/index.d.mts
CHANGED
@@ -42,7 +42,7 @@ type TextFieldTypes = React__default.InputHTMLAttributes<HTMLInputElement> & {
|
|
42
42
|
declare const Input: React__default.ForwardRefExoticComponent<React__default.InputHTMLAttributes<HTMLInputElement> & {
|
43
43
|
isLoading?: boolean | undefined;
|
44
44
|
containerClassName?: string | undefined;
|
45
|
-
margin?: "none" | "
|
45
|
+
margin?: "none" | "large" | "normal" | undefined;
|
46
46
|
width?: "full" | "small" | "auto" | "normal" | undefined;
|
47
47
|
/** The label of the input field */
|
48
48
|
label?: any;
|
package/dist/input/index.d.ts
CHANGED
@@ -42,7 +42,7 @@ type TextFieldTypes = React__default.InputHTMLAttributes<HTMLInputElement> & {
|
|
42
42
|
declare const Input: React__default.ForwardRefExoticComponent<React__default.InputHTMLAttributes<HTMLInputElement> & {
|
43
43
|
isLoading?: boolean | undefined;
|
44
44
|
containerClassName?: string | undefined;
|
45
|
-
margin?: "none" | "
|
45
|
+
margin?: "none" | "large" | "normal" | undefined;
|
46
46
|
width?: "full" | "small" | "auto" | "normal" | undefined;
|
47
47
|
/** The label of the input field */
|
48
48
|
label?: any;
|
package/dist/input/index.js
CHANGED
@@ -50,13 +50,17 @@ var React2 = __toESM(require("react"));
|
|
50
50
|
// elements/tooltip/Tooltip.tsx
|
51
51
|
var import_react = __toESM(require("react"));
|
52
52
|
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
|
53
|
-
var TooltipContent = import_react.default.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ import_react.default.createElement(
|
53
|
+
var TooltipContent = import_react.default.forwardRef(({ className, sideOffset = 4, size = "default", ...props }, ref) => /* @__PURE__ */ import_react.default.createElement(
|
54
54
|
TooltipPrimitive.Content,
|
55
55
|
{
|
56
56
|
ref,
|
57
57
|
sideOffset,
|
58
58
|
className: cn(
|
59
59
|
"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
|
60
|
+
{
|
61
|
+
"hawa-text-xs": size === "small",
|
62
|
+
"hawa-text-xl": size === "large"
|
63
|
+
},
|
60
64
|
className
|
61
65
|
),
|
62
66
|
...props
|
@@ -67,6 +71,7 @@ var TooltipArrow = import_react.default.forwardRef(({ className, ...props }, ref
|
|
67
71
|
TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
|
68
72
|
var Tooltip = ({
|
69
73
|
side,
|
74
|
+
size,
|
70
75
|
open,
|
71
76
|
content,
|
72
77
|
children,
|
@@ -93,7 +98,16 @@ var Tooltip = ({
|
|
93
98
|
...props
|
94
99
|
},
|
95
100
|
/* @__PURE__ */ import_react.default.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
|
96
|
-
/* @__PURE__ */ import_react.default.createElement(
|
101
|
+
/* @__PURE__ */ import_react.default.createElement(
|
102
|
+
TooltipContent,
|
103
|
+
{
|
104
|
+
size,
|
105
|
+
side,
|
106
|
+
align: "center",
|
107
|
+
...contentProps
|
108
|
+
},
|
109
|
+
content
|
110
|
+
)
|
97
111
|
)
|
98
112
|
);
|
99
113
|
};
|
@@ -146,6 +160,7 @@ function Skeleton({
|
|
146
160
|
className,
|
147
161
|
content,
|
148
162
|
animation = "pulse",
|
163
|
+
fade,
|
149
164
|
...props
|
150
165
|
}) {
|
151
166
|
const animationStyles = {
|
@@ -153,12 +168,14 @@ function Skeleton({
|
|
153
168
|
pulse: "hawa-animate-pulse hawa-rounded hawa-bg-muted",
|
154
169
|
shimmer: "hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10"
|
155
170
|
};
|
171
|
+
const fadeStyle = `[mask-image:linear-gradient(to_${fade},#D1D4DC_50%,transparent_100%)]`;
|
156
172
|
return /* @__PURE__ */ import_react2.default.createElement(
|
157
173
|
"div",
|
158
174
|
{
|
159
175
|
className: cn(
|
160
176
|
animationStyles[animation],
|
161
177
|
content && "hawa-flex hawa-flex-col hawa-items-center hawa-justify-center",
|
178
|
+
fade && fadeStyle,
|
162
179
|
className
|
163
180
|
),
|
164
181
|
...props
|
package/dist/input/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../elements/input/index.ts","../../elements/input/Input.tsx","../../util/index.ts","../../elements/label/Label.tsx","../../elements/tooltip/Tooltip.tsx","../../elements/skeleton/Skeleton.tsx"],"sourcesContent":["export * from \"./Input\";\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { Label, LabelProps } from \"../label/Label\";\nimport { Skeleton } from \"../skeleton/Skeleton\";\n\nexport type TextFieldTypes = React.InputHTMLAttributes<HTMLInputElement> & {\n isLoading?: boolean;\n containerClassName?: string;\n margin?: \"none\" | \"normal\" | \"large\";\n width?: \"small\" | \"normal\" | \"full\" | \"auto\";\n /** The label of the input field */\n label?: any;\n labelProps?: LabelProps;\n hideSeparator?: boolean;\n /** The small red text under the input field to show validation. */\n helperText?: any;\n forceHideHelperText?: boolean;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /** The icon inside the input field */\n icon?: any;\n /** Boolean to enable/disable editing the input field and using it as a text field */\n preview?: boolean;\n // maxLength?: any;\n iconInside?: React.ReactNode;\n endIcon?: React.ReactNode;\n endIconProps?: { className?: string };\n startIcon?: React.ReactNode;\n placeholder?: React.ReactNode;\n /** Show the count of characters left in the input field. Works along with maxLength prop. */\n showCount?: boolean;\n countPosition?: \"top\" | \"bottom\" | \"center\";\n popup?: boolean;\n popupContent?: React.ReactNode;\n};\nexport const Input = forwardRef<HTMLInputElement, TextFieldTypes>(\n (\n {\n margin = \"none\",\n width = \"full\",\n preview = false,\n forceHideHelperText = false,\n labelProps,\n placeholder,\n showCount,\n inputProps,\n countPosition = \"bottom\",\n ...props\n },\n ref\n ) => {\n let marginStyles = {\n none: \"hawa-mb-0\",\n normal: \"hawa-mb-3\",\n large: \"hawa-mb-5\"\n };\n let widthStyles = {\n small: \"hawa-w-full hawa-max-w-2xs\",\n normal: \"hawa-w-1/2\",\n full: \"hawa-w-full\",\n auto: \"\"\n };\n\n let defaultStyle =\n \"hawa-flex hawa-max-h-fit hawa-h-fit hawa-relative hawa-flex-col hawa-justify-center hawa-gap-0\";\n let defaultInputStyle =\n \"hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm \";\n\n return (\n <div\n className={cn(\n defaultStyle,\n marginStyles[margin],\n widthStyles[width],\n props.containerClassName,\n \"hawa-w-full hawa-gap-2\"\n )}\n >\n {props.label && <Label {...labelProps}>{props.label}</Label>}\n {props.isLoading ? (\n <div className=\"hawa-pb-2\">\n <Skeleton className=\"hawa-h-[40px] hawa-w-full\" />\n </div>\n ) : (\n <>\n {!props.hideSeparator && (\n <div\n className={cn(\n \"hawa-absolute hawa-top-[22px] hawa-h-[0.8px] hawa-w-full hawa-bg-gray-200 hawa-transition-all dark:hawa-bg-gray-800\",\n preview ? \"hawa-opacity-100\" : \"hawa-opacity-0\"\n )}\n ></div>\n )}\n <>\n <div className={\"hawa-relative\"}>\n {props.startIcon && (\n <div className=\"hawa-absolute hawa-start-3 hawa-top-1/2 hawa--translate-y-1/2\">\n {props.startIcon}\n </div>\n )}\n {props.endIcon && (\n <div\n className={cn(\n \"hawa-absolute hawa-end-3 hawa-top-1/2 hawa--translate-y-1/2\",\n props.endIconProps?.className\n )}\n >\n {props.endIcon}\n </div>\n )}\n <input\n required\n dir={props.dir}\n type={props.type}\n value={props.value}\n onChange={props.onChange}\n autoComplete={props.autoComplete}\n defaultValue={props.defaultValue}\n placeholder={placeholder}\n disabled={props.disabled || preview}\n style={{ height: 40 }}\n {...inputProps}\n className={cn(\n defaultInputStyle,\n \" focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-0 dark:hawa-text-white\",\n {\n \"hawa-pe-9\": props.endIcon,\n \"hawa-ps-9\": props.startIcon,\n \"hawa-pe-[60px]\": countPosition === \"center\"\n },\n preview &&\n \"hawa-border-transparent hawa-bg-transparent hawa-px-0\",\n inputProps?.className\n )}\n />\n </div>\n\n {/* Regular helper text */}\n {!forceHideHelperText && (\n <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-xs hawa-text-helper-color hawa-transition-all\",\n props.helperText\n ? \"hawa-h-4 hawa-opacity-100\"\n : \"hawa-h-0 hawa-opacity-0\"\n )}\n >\n {props.helperText}\n </p>\n )}\n {/* Popover helper text */}\n {!props.disabled && forceHideHelperText && (\n <div\n className={cn(\n \"hawa-absolute hawa-end-0 hawa-top-[47px] hawa-z-20 hawa-translate-y-1/2 hawa-rounded hawa-bg-background hawa-text-start hawa-text-xs hawa-text-helper-color hawa-drop-shadow-md hawa-transition-all\",\n props.helperText\n ? \"hawa-border hawa-p-1\"\n : \"hawa-border-none hawa-p-0\"\n )}\n >\n {props.helperText}\n </div>\n )}\n {/* Character Counter */}\n {showCount && (\n <div\n className={cn(\n \"hawa-absolute hawa-translate-y-1/2 hawa-text-start hawa-text-xs hawa-transition-all\",\n {\n \"hawa-end-0 hawa-top-[62px]\": countPosition === \"bottom\",\n \"hawa-bottom-[62px] hawa-end-0\": countPosition === \"top\",\n \"hawa-end-2\": countPosition === \"center\"\n }\n )}\n >\n {props.value ? String(props.value).length : 0}/\n {props.maxLength}\n </div>\n )}\n\n {/* Popover helper text */}\n {/* {props.popup && (\n <div\n className={cn(\n \"hawa-absolute hawa-top-[47px] hawa-min-h-fit hawa-w-full hawa-text-xs hawa-text-helper-color hawa-transition-all hawa-text-start hawa-rounded hawa-end-0 hawa-z-20 hawa-drop-shadow-md hawa-bg-background hawa-translate-y-1/2\",\n props.helperText\n ? \"hawa-border hawa-p-1\"\n : \"hawa-border-none hawa-p-0\"\n )}\n >\n {props.popupContent}\n </div>\n )} */}\n </>\n </>\n )}\n </div>\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","import * as React from \"react\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\nimport { Tooltip } from \"../tooltip\";\n\nexport type LabelProps = {\n hint?: React.ReactNode;\n hintSide?: PositionType;\n htmlFor?: string;\n required?: boolean;\n};\n\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & LabelProps\n>(({ className, hint, hintSide, required, children, ...props }, ref) => (\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all\">\n <label\n ref={ref}\n className={cn(\n \"hawa-text-sm hawa-font-medium hawa-leading-none peer-disabled:hawa-cursor-not-allowed peer-disabled:hawa-opacity-70\",\n className\n )}\n {...props}\n >\n {children}\n {required && <span className=\"hawa-mx-0.5 hawa-text-red-500\">*</span>}\n </label>\n {hint && (\n <Tooltip\n content={hint}\n side={hintSide}\n triggerProps={{\n tabIndex: -1,\n onClick: (event) => event.preventDefault()\n }}\n >\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"hawa-h-[14px] hawa-w-[14px] hawa-cursor-help\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <path d=\"M12 17h.01\" />\n </svg>\n </div>\n </Tooltip>\n )}\n </div>\n));\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n","import React from \"react\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nconst TooltipArrow = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Arrow>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>\n>(({ className, ...props }, ref) => (\n <TooltipPrimitive.Arrow ref={ref} className={cn(className)} {...props} />\n));\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\n\ntype TooltipTypes = {\n /** Controls the open state of the tooltip. */\n open?: any;\n /** Specifies the side where the tooltip will appear. */\n side?: PositionType;\n /** Content to be displayed within the tooltip. */\n content?: any;\n /** Elements to which the tooltip is anchored. */\n children?: any;\n /** Sets the default open state of the tooltip. */\n defaultOpen?: any;\n /** Event handler for open state changes. */\n onOpenChange?: any;\n /** Duration of the delay before the tooltip appears. */\n delayDuration?: any;\n triggerProps?: TooltipPrimitive.TooltipTriggerProps;\n contentProps?: TooltipPrimitive.TooltipContentProps;\n providerProps?: TooltipPrimitive.TooltipProviderProps;\n};\n\nconst Tooltip: React.FunctionComponent<TooltipTypes> = ({\n side,\n open,\n content,\n children,\n defaultOpen,\n onOpenChange,\n triggerProps,\n contentProps,\n providerProps,\n delayDuration = 300,\n ...props\n}) => {\n return (\n <TooltipPrimitive.TooltipProvider\n delayDuration={delayDuration}\n {...providerProps}\n >\n <TooltipPrimitive.Root\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n {...props}\n >\n <TooltipPrimitive.Trigger {...triggerProps}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipContent side={side} align=\"center\" {...contentProps}>\n {content}\n </TooltipContent>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.TooltipProvider>\n );\n};\n\nexport { Tooltip };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n animation?: \"none\" | \"pulse\" | \"shimmer\";\n content?: any;\n}\n\nfunction Skeleton({\n className,\n content,\n animation = \"pulse\",\n ...props\n}: SkeletonProps) {\n const animationStyles = {\n none: \"hawa-rounded hawa-bg-muted\",\n pulse: \"hawa-animate-pulse hawa-rounded hawa-bg-muted\",\n shimmer:\n \"hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10\"\n };\n return (\n <div\n className={cn(\n animationStyles[animation],\n content &&\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\",\n className\n )}\n {...props}\n >\n {content && content}\n </div>\n );\n}\n\nexport { Skeleton };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,gBAAkC;;;ACAlC,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ACLA,IAAAC,SAAuB;;;ACAvB,mBAAkB;AAElB,uBAAkC;AAMlC,IAAM,iBAAiB,aAAAC,QAAM,WAG3B,CAAC,EAAE,WAAW,aAAa,GAAG,GAAG,MAAM,GAAG,QAC1C,6BAAAA,QAAA;AAAA,EAAkB;AAAA,EAAjB;AAAA,IACC;AAAA,IACA;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAe,cAA+B,yBAAQ;AAEtD,IAAM,eAAe,aAAAA,QAAM,WAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,6BAAAA,QAAA,cAAkB,wBAAjB,EAAuB,KAAU,WAAW,GAAG,SAAS,GAAI,GAAG,OAAO,CACxE;AACD,aAAa,cAA+B,uBAAM;AAsBlD,IAAM,UAAiD,CAAC;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB;AAAA,EAChB,GAAG;AACL,MAAM;AACJ,SACE,6BAAAA,QAAA;AAAA,IAAkB;AAAA,IAAjB;AAAA,MACC;AAAA,MACC,GAAG;AAAA;AAAA,IAEJ,6BAAAA,QAAA;AAAA,MAAkB;AAAA,MAAjB;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ,6BAAAA,QAAA,cAAkB,0BAAjB,EAA0B,GAAG,gBAC3B,QACH;AAAA,MACA,6BAAAA,QAAA,cAAC,kBAAe,MAAY,OAAM,UAAU,GAAG,gBAC5C,OACH;AAAA,IACF;AAAA,EACF;AAEJ;;;ADvEA,IAAM,QAAc,kBAGlB,CAAC,EAAE,WAAW,MAAM,UAAU,UAAU,UAAU,GAAG,MAAM,GAAG,QAC9D,qCAAC,SAAI,WAAU,8EACb;AAAA,EAAC;AAAA;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AAAA,EAEH;AAAA,EACA,YAAY,qCAAC,UAAK,WAAU,mCAAgC,GAAC;AAChE,GACC,QACC;AAAA,EAAC;AAAA;AAAA,IACC,SAAS;AAAA,IACT,MAAM;AAAA,IACN,cAAc;AAAA,MACZ,UAAU;AAAA,MACV,SAAS,CAAC,UAAU,MAAM,eAAe;AAAA,IAC3C;AAAA;AAAA,EAEA,qCAAC,aACC;AAAA,IAAC;AAAA;AAAA,MACC,OAAM;AAAA,MACN,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA;AAAA,IAEf,qCAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK;AAAA,IAC/B,qCAAC,UAAK,GAAE,wCAAuC;AAAA,IAC/C,qCAAC,UAAK,GAAE,cAAa;AAAA,EACvB,CACF;AACF,CAEJ,CACD;AAED,MAAM,cAAc;;;AE5DpB,IAAAC,gBAAkB;AAUlB,SAAS,SAAS;AAAA,EAChB;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,GAAG;AACL,GAAkB;AAChB,QAAM,kBAAkB;AAAA,IACtB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SACE;AAAA,EACJ;AACA,SACE,8BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT,gBAAgB,SAAS;AAAA,QACzB,WACE;AAAA,QACF;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,IAEH,WAAW;AAAA,EACd;AAEJ;;;AJCO,IAAM,YAAQ;AAAA,EACnB,CACE;AAAA,IACE,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,sBAAsB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB;AAAA,IAChB,GAAG;AAAA,EACL,GACA,QACG;AAnDP;AAoDI,QAAI,eAAe;AAAA,MACjB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,OAAO;AAAA,IACT;AACA,QAAI,cAAc;AAAA,MAChB,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AAEA,QAAI,eACF;AACF,QAAI,oBACF;AAEF,WACE,8BAAAC,QAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,aAAa,MAAM;AAAA,UACnB,YAAY,KAAK;AAAA,UACjB,MAAM;AAAA,UACN;AAAA,QACF;AAAA;AAAA,MAEC,MAAM,SAAS,8BAAAA,QAAA,cAAC,SAAO,GAAG,cAAa,MAAM,KAAM;AAAA,MACnD,MAAM,YACL,8BAAAA,QAAA,cAAC,SAAI,WAAU,eACb,8BAAAA,QAAA,cAAC,YAAS,WAAU,6BAA4B,CAClD,IAEA,8BAAAA,QAAA,4BAAAA,QAAA,gBACG,CAAC,MAAM,iBACN,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,UAAU,qBAAqB;AAAA,UACjC;AAAA;AAAA,MACD,GAEH,8BAAAA,QAAA,4BAAAA,QAAA,gBACE,8BAAAA,QAAA,cAAC,SAAI,WAAW,mBACb,MAAM,aACL,8BAAAA,QAAA,cAAC,SAAI,WAAU,mEACZ,MAAM,SACT,GAED,MAAM,WACL,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,aACA,WAAM,iBAAN,mBAAoB;AAAA,UACtB;AAAA;AAAA,QAEC,MAAM;AAAA,MACT,GAEF,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,UAAQ;AAAA,UACR,KAAK,MAAM;AAAA,UACX,MAAM,MAAM;AAAA,UACZ,OAAO,MAAM;AAAA,UACb,UAAU,MAAM;AAAA,UAChB,cAAc,MAAM;AAAA,UACpB,cAAc,MAAM;AAAA,UACpB;AAAA,UACA,UAAU,MAAM,YAAY;AAAA,UAC5B,OAAO,EAAE,QAAQ,GAAG;AAAA,UACnB,GAAG;AAAA,UACJ,WAAW;AAAA,YACT;AAAA,YACA;AAAA,YACA;AAAA,cACE,aAAa,MAAM;AAAA,cACnB,aAAa,MAAM;AAAA,cACnB,kBAAkB,kBAAkB;AAAA,YACtC;AAAA,YACA,WACE;AAAA,YACF,yCAAY;AAAA,UACd;AAAA;AAAA,MACF,CACF,GAGC,CAAC,uBACA,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,MAAM,aACF,8BACA;AAAA,UACN;AAAA;AAAA,QAEC,MAAM;AAAA,MACT,GAGD,CAAC,MAAM,YAAY,uBAClB,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,MAAM,aACF,yBACA;AAAA,UACN;AAAA;AAAA,QAEC,MAAM;AAAA,MACT,GAGD,aACC,8BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA;AAAA,cACE,8BAA8B,kBAAkB;AAAA,cAChD,iCAAiC,kBAAkB;AAAA,cACnD,cAAc,kBAAkB;AAAA,YAClC;AAAA,UACF;AAAA;AAAA,QAEC,MAAM,QAAQ,OAAO,MAAM,KAAK,EAAE,SAAS;AAAA,QAAE;AAAA,QAC7C,MAAM;AAAA,MACT,CAgBJ,CACF;AAAA,IAEJ;AAAA,EAEJ;AACF;","names":["import_react","React","React","import_react","React","React"]}
|
1
|
+
{"version":3,"sources":["../../elements/input/index.ts","../../elements/input/Input.tsx","../../util/index.ts","../../elements/label/Label.tsx","../../elements/tooltip/Tooltip.tsx","../../elements/skeleton/Skeleton.tsx"],"sourcesContent":["export * from \"./Input\";\n","import React, { forwardRef } from \"react\";\n\nimport { cn } from \"@util/index\";\n\nimport { Label, LabelProps } from \"../label/Label\";\nimport { Skeleton } from \"../skeleton/Skeleton\";\n\nexport type TextFieldTypes = React.InputHTMLAttributes<HTMLInputElement> & {\n isLoading?: boolean;\n containerClassName?: string;\n margin?: \"none\" | \"normal\" | \"large\";\n width?: \"small\" | \"normal\" | \"full\" | \"auto\";\n /** The label of the input field */\n label?: any;\n labelProps?: LabelProps;\n hideSeparator?: boolean;\n /** The small red text under the input field to show validation. */\n helperText?: any;\n forceHideHelperText?: boolean;\n inputProps?: React.InputHTMLAttributes<HTMLInputElement>;\n /** The icon inside the input field */\n icon?: any;\n /** Boolean to enable/disable editing the input field and using it as a text field */\n preview?: boolean;\n // maxLength?: any;\n iconInside?: React.ReactNode;\n endIcon?: React.ReactNode;\n endIconProps?: { className?: string };\n startIcon?: React.ReactNode;\n placeholder?: React.ReactNode;\n /** Show the count of characters left in the input field. Works along with maxLength prop. */\n showCount?: boolean;\n countPosition?: \"top\" | \"bottom\" | \"center\";\n popup?: boolean;\n popupContent?: React.ReactNode;\n};\nexport const Input = forwardRef<HTMLInputElement, TextFieldTypes>(\n (\n {\n margin = \"none\",\n width = \"full\",\n preview = false,\n forceHideHelperText = false,\n labelProps,\n placeholder,\n showCount,\n inputProps,\n countPosition = \"bottom\",\n ...props\n },\n ref\n ) => {\n let marginStyles = {\n none: \"hawa-mb-0\",\n normal: \"hawa-mb-3\",\n large: \"hawa-mb-5\"\n };\n let widthStyles = {\n small: \"hawa-w-full hawa-max-w-2xs\",\n normal: \"hawa-w-1/2\",\n full: \"hawa-w-full\",\n auto: \"\"\n };\n\n let defaultStyle =\n \"hawa-flex hawa-max-h-fit hawa-h-fit hawa-relative hawa-flex-col hawa-justify-center hawa-gap-0\";\n let defaultInputStyle =\n \"hawa-block hawa-w-full hawa-rounded hawa-border hawa-transition-all hawa-bg-background hawa-p-3 hawa-text-sm \";\n\n return (\n <div\n className={cn(\n defaultStyle,\n marginStyles[margin],\n widthStyles[width],\n props.containerClassName,\n \"hawa-w-full hawa-gap-2\"\n )}\n >\n {props.label && <Label {...labelProps}>{props.label}</Label>}\n {props.isLoading ? (\n <div className=\"hawa-pb-2\">\n <Skeleton className=\"hawa-h-[40px] hawa-w-full\" />\n </div>\n ) : (\n <>\n {!props.hideSeparator && (\n <div\n className={cn(\n \"hawa-absolute hawa-top-[22px] hawa-h-[0.8px] hawa-w-full hawa-bg-gray-200 hawa-transition-all dark:hawa-bg-gray-800\",\n preview ? \"hawa-opacity-100\" : \"hawa-opacity-0\"\n )}\n ></div>\n )}\n <>\n <div className={\"hawa-relative\"}>\n {props.startIcon && (\n <div className=\"hawa-absolute hawa-start-3 hawa-top-1/2 hawa--translate-y-1/2\">\n {props.startIcon}\n </div>\n )}\n {props.endIcon && (\n <div\n className={cn(\n \"hawa-absolute hawa-end-3 hawa-top-1/2 hawa--translate-y-1/2\",\n props.endIconProps?.className\n )}\n >\n {props.endIcon}\n </div>\n )}\n <input\n required\n dir={props.dir}\n type={props.type}\n value={props.value}\n onChange={props.onChange}\n autoComplete={props.autoComplete}\n defaultValue={props.defaultValue}\n placeholder={placeholder}\n disabled={props.disabled || preview}\n style={{ height: 40 }}\n {...inputProps}\n className={cn(\n defaultInputStyle,\n \" focus-visible:hawa-outline-none focus-visible:hawa-ring-2 focus-visible:hawa-ring-ring focus-visible:hawa-ring-offset-0 dark:hawa-text-white\",\n {\n \"hawa-pe-9\": props.endIcon,\n \"hawa-ps-9\": props.startIcon,\n \"hawa-pe-[60px]\": countPosition === \"center\"\n },\n preview &&\n \"hawa-border-transparent hawa-bg-transparent hawa-px-0\",\n inputProps?.className\n )}\n />\n </div>\n\n {/* Regular helper text */}\n {!forceHideHelperText && (\n <p\n className={cn(\n \"hawa-my-0 hawa-text-start hawa-text-xs hawa-text-helper-color hawa-transition-all\",\n props.helperText\n ? \"hawa-h-4 hawa-opacity-100\"\n : \"hawa-h-0 hawa-opacity-0\"\n )}\n >\n {props.helperText}\n </p>\n )}\n {/* Popover helper text */}\n {!props.disabled && forceHideHelperText && (\n <div\n className={cn(\n \"hawa-absolute hawa-end-0 hawa-top-[47px] hawa-z-20 hawa-translate-y-1/2 hawa-rounded hawa-bg-background hawa-text-start hawa-text-xs hawa-text-helper-color hawa-drop-shadow-md hawa-transition-all\",\n props.helperText\n ? \"hawa-border hawa-p-1\"\n : \"hawa-border-none hawa-p-0\"\n )}\n >\n {props.helperText}\n </div>\n )}\n {/* Character Counter */}\n {showCount && (\n <div\n className={cn(\n \"hawa-absolute hawa-translate-y-1/2 hawa-text-start hawa-text-xs hawa-transition-all\",\n {\n \"hawa-end-0 hawa-top-[62px]\": countPosition === \"bottom\",\n \"hawa-bottom-[62px] hawa-end-0\": countPosition === \"top\",\n \"hawa-end-2\": countPosition === \"center\"\n }\n )}\n >\n {props.value ? String(props.value).length : 0}/\n {props.maxLength}\n </div>\n )}\n\n {/* Popover helper text */}\n {/* {props.popup && (\n <div\n className={cn(\n \"hawa-absolute hawa-top-[47px] hawa-min-h-fit hawa-w-full hawa-text-xs hawa-text-helper-color hawa-transition-all hawa-text-start hawa-rounded hawa-end-0 hawa-z-20 hawa-drop-shadow-md hawa-bg-background hawa-translate-y-1/2\",\n props.helperText\n ? \"hawa-border hawa-p-1\"\n : \"hawa-border-none hawa-p-0\"\n )}\n >\n {props.popupContent}\n </div>\n )} */}\n </>\n </>\n )}\n </div>\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","import * as React from \"react\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nimport { cn } from \"@util/index\";\nimport { Tooltip } from \"../tooltip\";\n\nexport type LabelProps = {\n hint?: React.ReactNode;\n hintSide?: PositionType;\n htmlFor?: string;\n required?: boolean;\n};\n\nconst Label = React.forwardRef<\n HTMLLabelElement,\n React.LabelHTMLAttributes<HTMLLabelElement> & LabelProps\n>(({ className, hint, hintSide, required, children, ...props }, ref) => (\n <div className=\"hawa-flex hawa-flex-row hawa-items-center hawa-gap-1 hawa-transition-all\">\n <label\n ref={ref}\n className={cn(\n \"hawa-text-sm hawa-font-medium hawa-leading-none peer-disabled:hawa-cursor-not-allowed peer-disabled:hawa-opacity-70\",\n className\n )}\n {...props}\n >\n {children}\n {required && <span className=\"hawa-mx-0.5 hawa-text-red-500\">*</span>}\n </label>\n {hint && (\n <Tooltip\n content={hint}\n side={hintSide}\n triggerProps={{\n tabIndex: -1,\n onClick: (event) => event.preventDefault()\n }}\n >\n <div>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"hawa-h-[14px] hawa-w-[14px] hawa-cursor-help\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <path d=\"M12 17h.01\" />\n </svg>\n </div>\n </Tooltip>\n )}\n </div>\n));\n\nLabel.displayName = \"Label\";\n\nexport { Label };\n","import React from \"react\";\n\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"@util/index\";\n\nimport { PositionType } from \"@_types/commonTypes\";\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> & {\n size?: \"default\" | \"small\" | \"large\";\n }\n>(({ className, sideOffset = 4, size = \"default\", ...props }, ref) => (\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2\",\n {\n \"hawa-text-xs\": size === \"small\",\n \"hawa-text-xl\": size === \"large\"\n },\n className\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nconst TooltipArrow = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Arrow>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Arrow>\n>(({ className, ...props }, ref) => (\n <TooltipPrimitive.Arrow ref={ref} className={cn(className)} {...props} />\n));\nTooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;\n\ntype TooltipTypes = {\n /** Controls the open state of the tooltip. */\n open?: any;\n /** Specifies the side where the tooltip will appear. */\n side?: PositionType;\n /** Content to be displayed within the tooltip. */\n content?: any;\n /** Elements to which the tooltip is anchored. */\n children?: any;\n /** Sets the default open state of the tooltip. */\n defaultOpen?: any;\n /** Event handler for open state changes. */\n onOpenChange?: any;\n /** Duration of the delay before the tooltip appears. */\n delayDuration?: any;\n /** Size of the tooltip. */\n size?: \"default\" | \"small\" | \"large\";\n triggerProps?: TooltipPrimitive.TooltipTriggerProps;\n contentProps?: TooltipPrimitive.TooltipContentProps;\n providerProps?: TooltipPrimitive.TooltipProviderProps;\n};\n\nconst Tooltip: React.FunctionComponent<TooltipTypes> = ({\n side,\n size,\n open,\n content,\n children,\n defaultOpen,\n onOpenChange,\n triggerProps,\n contentProps,\n providerProps,\n delayDuration = 300,\n ...props\n}) => {\n return (\n <TooltipPrimitive.TooltipProvider\n delayDuration={delayDuration}\n {...providerProps}\n >\n <TooltipPrimitive.Root\n open={open}\n defaultOpen={defaultOpen}\n onOpenChange={onOpenChange}\n {...props}\n >\n <TooltipPrimitive.Trigger {...triggerProps}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipContent\n size={size}\n side={side}\n align=\"center\"\n {...contentProps}\n >\n {content}\n </TooltipContent>\n </TooltipPrimitive.Root>\n </TooltipPrimitive.TooltipProvider>\n );\n};\n\nexport { Tooltip };\n","import React from \"react\";\n\nimport { cn } from \"@util/index\";\n\ninterface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n className?: string;\n animation?: \"none\" | \"pulse\" | \"shimmer\";\n content?: any;\n fade?: \"top\" | \"bottom\" | \"left\" | \"right\";\n}\n\nfunction Skeleton({\n className,\n content,\n animation = \"pulse\",\n fade,\n ...props\n}: SkeletonProps) {\n const animationStyles = {\n none: \"hawa-rounded hawa-bg-muted\",\n pulse: \"hawa-animate-pulse hawa-rounded hawa-bg-muted\",\n shimmer:\n \"hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10\"\n };\n const fadeStyle = `[mask-image:linear-gradient(to_${fade},#D1D4DC_50%,transparent_100%)]`;\n\n return (\n <div\n className={cn(\n animationStyles[animation],\n content &&\n \"hawa-flex hawa-flex-col hawa-items-center hawa-justify-center\",\n fade && fadeStyle,\n className\n )}\n {...props}\n >\n {content && content}\n </div>\n );\n}\n\nexport { Skeleton };\n"],"mappings":"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","names":["import_react","React","React","import_react","React","React"]}
|
package/dist/input/index.mjs
CHANGED
@@ -14,13 +14,17 @@ import * as React2 from "react";
|
|
14
14
|
// elements/tooltip/Tooltip.tsx
|
15
15
|
import React from "react";
|
16
16
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
17
|
-
var TooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React.createElement(
|
17
|
+
var TooltipContent = React.forwardRef(({ className, sideOffset = 4, size = "default", ...props }, ref) => /* @__PURE__ */ React.createElement(
|
18
18
|
TooltipPrimitive.Content,
|
19
19
|
{
|
20
20
|
ref,
|
21
21
|
sideOffset,
|
22
22
|
className: cn(
|
23
23
|
"hawa-z-50 hawa-overflow-hidden hawa-rounded-md hawa-border hawa-bg-popover hawa-px-3 hawa-py-1.5 hawa-text-sm hawa-text-popover-foreground hawa-shadow-md hawa-animate-in hawa-fade-in-0 hawa-zoom-in-95 data-[state=closed]:hawa-animate-out data-[state=closed]:hawa-fade-out-0 data-[state=closed]:hawa-zoom-out-95 data-[side=bottom]:hawa-slide-in-from-top-2 data-[side=left]:hawa-slide-in-from-right-2 data-[side=right]:hawa-slide-in-from-left-2 data-[side=top]:hawa-slide-in-from-bottom-2",
|
24
|
+
{
|
25
|
+
"hawa-text-xs": size === "small",
|
26
|
+
"hawa-text-xl": size === "large"
|
27
|
+
},
|
24
28
|
className
|
25
29
|
),
|
26
30
|
...props
|
@@ -31,6 +35,7 @@ var TooltipArrow = React.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
31
35
|
TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
|
32
36
|
var Tooltip = ({
|
33
37
|
side,
|
38
|
+
size,
|
34
39
|
open,
|
35
40
|
content,
|
36
41
|
children,
|
@@ -57,7 +62,16 @@ var Tooltip = ({
|
|
57
62
|
...props
|
58
63
|
},
|
59
64
|
/* @__PURE__ */ React.createElement(TooltipPrimitive.Trigger, { ...triggerProps }, children),
|
60
|
-
/* @__PURE__ */ React.createElement(
|
65
|
+
/* @__PURE__ */ React.createElement(
|
66
|
+
TooltipContent,
|
67
|
+
{
|
68
|
+
size,
|
69
|
+
side,
|
70
|
+
align: "center",
|
71
|
+
...contentProps
|
72
|
+
},
|
73
|
+
content
|
74
|
+
)
|
61
75
|
)
|
62
76
|
);
|
63
77
|
};
|
@@ -110,6 +124,7 @@ function Skeleton({
|
|
110
124
|
className,
|
111
125
|
content,
|
112
126
|
animation = "pulse",
|
127
|
+
fade,
|
113
128
|
...props
|
114
129
|
}) {
|
115
130
|
const animationStyles = {
|
@@ -117,12 +132,14 @@ function Skeleton({
|
|
117
132
|
pulse: "hawa-animate-pulse hawa-rounded hawa-bg-muted",
|
118
133
|
shimmer: "hawa-space-y-5 hawa-rounded hawa-bg-muted hawa-p-4 hawa-relative before:hawa-absolute before:hawa-inset-0 before:hawa--translate-x-full before:hawa-animate-[shimmer_2s_infinite] before:hawa-bg-gradient-to-r before:hawa-from-transparent before:hawa-via-gray-300/40 dark:before:hawa-via-white/10 before:hawa-to-transparent hawa-isolate hawa-overflow-hidden before:hawa-border-t before:hawa-border-rose-100/10"
|
119
134
|
};
|
135
|
+
const fadeStyle = `[mask-image:linear-gradient(to_${fade},#D1D4DC_50%,transparent_100%)]`;
|
120
136
|
return /* @__PURE__ */ React3.createElement(
|
121
137
|
"div",
|
122
138
|
{
|
123
139
|
className: cn(
|
124
140
|
animationStyles[animation],
|
125
141
|
content && "hawa-flex hawa-flex-col hawa-items-center hawa-justify-center",
|
142
|
+
fade && fadeStyle,
|
126
143
|
className
|
127
144
|
),
|
128
145
|
...props
|