@intentai/react 2.0.1 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +60 -97
- package/dist/index.mjs +60 -97
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -219,30 +219,6 @@ var contentVariants = {
|
|
|
219
219
|
transition: { duration: 0.2 }
|
|
220
220
|
}
|
|
221
221
|
};
|
|
222
|
-
var categoryVariants = {
|
|
223
|
-
hidden: { opacity: 0, y: 20, scale: 0.9 },
|
|
224
|
-
visible: (i) => ({
|
|
225
|
-
opacity: 1,
|
|
226
|
-
y: 0,
|
|
227
|
-
scale: 1,
|
|
228
|
-
transition: {
|
|
229
|
-
delay: i * 0.05,
|
|
230
|
-
...springPresets.smooth
|
|
231
|
-
}
|
|
232
|
-
}),
|
|
233
|
-
hover: {
|
|
234
|
-
scale: 1.05,
|
|
235
|
-
y: -2,
|
|
236
|
-
transition: springPresets.bouncy
|
|
237
|
-
},
|
|
238
|
-
tap: {
|
|
239
|
-
scale: 0.95
|
|
240
|
-
},
|
|
241
|
-
selected: {
|
|
242
|
-
scale: 1,
|
|
243
|
-
borderColor: "var(--widget-primary)"
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
222
|
var BreathingRing = ({ isActive }) => {
|
|
247
223
|
const { reducedMotion } = useWidget();
|
|
248
224
|
if (reducedMotion) return null;
|
|
@@ -518,20 +494,6 @@ var TranscriptionDisplay = ({ text, isLive }) => {
|
|
|
518
494
|
}
|
|
519
495
|
);
|
|
520
496
|
};
|
|
521
|
-
var CategoryIcon = ({ icon, selected }) => {
|
|
522
|
-
const color = selected ? "white" : "var(--widget-primary)";
|
|
523
|
-
const size = 20;
|
|
524
|
-
const icons = {
|
|
525
|
-
bug: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
526
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M8 2l1.88 1.88M14.12 3.88L16 2M9 7.13v-1a3.003 3.003 0 116 0v1" }),
|
|
527
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 014-4h4a4 4 0 014 4v3c0 3.3-2.7 6-6 6" }),
|
|
528
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 20v-9M6.53 9C4.6 8.8 3 7.1 3 5M6 13H2M3 21c0-2.1 1.7-3.9 3.8-4M20.97 5c0 2.1-1.6 3.8-3.5 4M22 13h-4M17.2 17c2.1.1 3.8 1.9 3.8 4" })
|
|
529
|
-
] }),
|
|
530
|
-
sparkles: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M12 3l1.912 5.813a2 2 0 001.275 1.275L21 12l-5.813 1.912a2 2 0 00-1.275 1.275L12 21l-1.912-5.813a2 2 0 00-1.275-1.275L3 12l5.813-1.912a2 2 0 001.275-1.275L12 3z" }) }),
|
|
531
|
-
message: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2v10z" }) })
|
|
532
|
-
};
|
|
533
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: icons[icon] || icons.message });
|
|
534
|
-
};
|
|
535
497
|
var ListeningDots = () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { display: "flex", gap: 4 }, children: [0, 1, 2].map((i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
536
498
|
import_framer_motion.motion.span,
|
|
537
499
|
{
|
|
@@ -560,68 +522,47 @@ var CategorySelector = ({ categories, selected, onSelect }) => {
|
|
|
560
522
|
{
|
|
561
523
|
style: {
|
|
562
524
|
display: "block",
|
|
563
|
-
fontSize:
|
|
564
|
-
fontWeight:
|
|
565
|
-
color: "var(--widget-text-
|
|
566
|
-
marginBottom: 10
|
|
567
|
-
textTransform: "uppercase",
|
|
568
|
-
letterSpacing: "0.05em"
|
|
525
|
+
fontSize: 12,
|
|
526
|
+
fontWeight: 500,
|
|
527
|
+
color: "var(--widget-text-muted)",
|
|
528
|
+
marginBottom: 10
|
|
569
529
|
},
|
|
570
|
-
children: "
|
|
530
|
+
children: "What's this about?"
|
|
571
531
|
}
|
|
572
532
|
),
|
|
573
533
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
574
534
|
"div",
|
|
575
535
|
{
|
|
576
536
|
style: {
|
|
577
|
-
display: "
|
|
578
|
-
|
|
579
|
-
gap:
|
|
537
|
+
display: "flex",
|
|
538
|
+
flexWrap: "wrap",
|
|
539
|
+
gap: 8
|
|
580
540
|
},
|
|
581
|
-
children: categories.map((category
|
|
541
|
+
children: categories.map((category) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
582
542
|
import_framer_motion.motion.button,
|
|
583
543
|
{
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
initial: "hidden",
|
|
587
|
-
animate: selected === category.id ? "selected" : "visible",
|
|
588
|
-
whileHover: "hover",
|
|
589
|
-
whileTap: "tap",
|
|
544
|
+
whileHover: { scale: 1.03 },
|
|
545
|
+
whileTap: { scale: 0.97 },
|
|
590
546
|
onClick: () => onSelect(category.id),
|
|
591
547
|
style: {
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
padding: "12px 8px",
|
|
597
|
-
background: selected === category.id ? "var(--widget-primary)" : "var(--widget-glass-bg)",
|
|
598
|
-
border: `2px solid ${selected === category.id ? "var(--widget-primary)" : "var(--widget-glass-border)"}`,
|
|
599
|
-
borderRadius: 12,
|
|
548
|
+
padding: "8px 16px",
|
|
549
|
+
background: selected === category.id ? "var(--widget-primary)" : "transparent",
|
|
550
|
+
border: `1.5px solid ${selected === category.id ? "var(--widget-primary)" : "var(--widget-glass-border)"}`,
|
|
551
|
+
borderRadius: 20,
|
|
600
552
|
cursor: "pointer",
|
|
601
|
-
transition: "
|
|
553
|
+
transition: "all 0.2s ease"
|
|
602
554
|
},
|
|
603
|
-
children:
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
{
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
"span",
|
|
615
|
-
{
|
|
616
|
-
style: {
|
|
617
|
-
fontSize: 12,
|
|
618
|
-
fontWeight: 500,
|
|
619
|
-
color: selected === category.id ? "white" : "var(--widget-text-primary)"
|
|
620
|
-
},
|
|
621
|
-
children: category.label
|
|
622
|
-
}
|
|
623
|
-
)
|
|
624
|
-
]
|
|
555
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
556
|
+
"span",
|
|
557
|
+
{
|
|
558
|
+
style: {
|
|
559
|
+
fontSize: 13,
|
|
560
|
+
fontWeight: 500,
|
|
561
|
+
color: selected === category.id ? "white" : "var(--widget-text-primary)"
|
|
562
|
+
},
|
|
563
|
+
children: category.label
|
|
564
|
+
}
|
|
565
|
+
)
|
|
625
566
|
},
|
|
626
567
|
category.id
|
|
627
568
|
))
|
|
@@ -776,7 +717,7 @@ var SuccessCelebration = ({ onComplete }) => {
|
|
|
776
717
|
}
|
|
777
718
|
);
|
|
778
719
|
};
|
|
779
|
-
var MagneticButton = ({ children, onClick, variant = "primary", disabled, loading }) => {
|
|
720
|
+
var MagneticButton = ({ children, onClick, onPressStart, onPressEnd, variant = "primary", disabled, loading }) => {
|
|
780
721
|
const buttonRef = (0, import_react.useRef)(null);
|
|
781
722
|
const [magnetOffset, setMagnetOffset] = (0, import_react.useState)({ x: 0, y: 0 });
|
|
782
723
|
const handleMouseMove = (e) => {
|
|
@@ -819,8 +760,20 @@ var MagneticButton = ({ children, onClick, variant = "primary", disabled, loadin
|
|
|
819
760
|
ghost: {
|
|
820
761
|
background: "transparent",
|
|
821
762
|
color: "var(--widget-text-secondary)"
|
|
763
|
+
},
|
|
764
|
+
recording: {
|
|
765
|
+
background: "var(--widget-recording)",
|
|
766
|
+
color: "white"
|
|
822
767
|
}
|
|
823
768
|
};
|
|
769
|
+
const handlePressStart = () => {
|
|
770
|
+
if (disabled || loading) return;
|
|
771
|
+
onPressStart?.();
|
|
772
|
+
};
|
|
773
|
+
const handlePressEnd = () => {
|
|
774
|
+
if (disabled || loading) return;
|
|
775
|
+
onPressEnd?.();
|
|
776
|
+
};
|
|
824
777
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
825
778
|
import_framer_motion.motion.button,
|
|
826
779
|
{
|
|
@@ -828,7 +781,14 @@ var MagneticButton = ({ children, onClick, variant = "primary", disabled, loadin
|
|
|
828
781
|
onClick,
|
|
829
782
|
disabled: disabled || loading,
|
|
830
783
|
onMouseMove: handleMouseMove,
|
|
831
|
-
onMouseLeave:
|
|
784
|
+
onMouseLeave: () => {
|
|
785
|
+
handleMouseLeave();
|
|
786
|
+
if (onPressEnd) handlePressEnd();
|
|
787
|
+
},
|
|
788
|
+
onMouseDown: onPressStart ? handlePressStart : void 0,
|
|
789
|
+
onMouseUp: onPressEnd ? handlePressEnd : void 0,
|
|
790
|
+
onTouchStart: onPressStart ? handlePressStart : void 0,
|
|
791
|
+
onTouchEnd: onPressEnd ? handlePressEnd : void 0,
|
|
832
792
|
animate: {
|
|
833
793
|
x: magnetOffset.x,
|
|
834
794
|
y: magnetOffset.y,
|
|
@@ -856,9 +816,11 @@ var MagneticButton = ({ children, onClick, variant = "primary", disabled, loadin
|
|
|
856
816
|
);
|
|
857
817
|
};
|
|
858
818
|
var DEFAULT_CATEGORIES = [
|
|
859
|
-
{ id: "bug", label: "Bug", icon: "
|
|
860
|
-
{ id: "feature", label: "Feature", icon: "
|
|
861
|
-
{ id: "
|
|
819
|
+
{ id: "bug", label: "Bug", icon: "" },
|
|
820
|
+
{ id: "feature", label: "Feature", icon: "" },
|
|
821
|
+
{ id: "improvement", label: "Improve", icon: "" },
|
|
822
|
+
{ id: "praise", label: "Praise", icon: "" },
|
|
823
|
+
{ id: "other", label: "Other", icon: "" }
|
|
862
824
|
];
|
|
863
825
|
var PremiumVoiceWidget = ({
|
|
864
826
|
position = "bottom-right",
|
|
@@ -1353,7 +1315,7 @@ var PremiumVoiceWidget = ({
|
|
|
1353
1315
|
fontSize: 14,
|
|
1354
1316
|
marginTop: 16
|
|
1355
1317
|
},
|
|
1356
|
-
children: "
|
|
1318
|
+
children: "Hold to record"
|
|
1357
1319
|
}
|
|
1358
1320
|
),
|
|
1359
1321
|
(isRecording || transcription) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { marginTop: 20 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -1366,8 +1328,9 @@ var PremiumVoiceWidget = ({
|
|
|
1366
1328
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { style: { marginTop: 20 }, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
1367
1329
|
MagneticButton,
|
|
1368
1330
|
{
|
|
1369
|
-
|
|
1370
|
-
|
|
1331
|
+
onPressStart: handleStartRecording,
|
|
1332
|
+
onPressEnd: handleStopRecording,
|
|
1333
|
+
variant: isRecording ? "recording" : "primary",
|
|
1371
1334
|
children: isRecording ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
1372
1335
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
1373
1336
|
"svg",
|
|
@@ -1376,11 +1339,11 @@ var PremiumVoiceWidget = ({
|
|
|
1376
1339
|
height: 16,
|
|
1377
1340
|
viewBox: "0 0 24 24",
|
|
1378
1341
|
fill: "currentColor",
|
|
1379
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("
|
|
1342
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: 12, cy: 12, r: 6 })
|
|
1380
1343
|
}
|
|
1381
1344
|
),
|
|
1382
|
-
"
|
|
1383
|
-
] }) :
|
|
1345
|
+
"Recording..."
|
|
1346
|
+
] }) : transcription ? "Hold to record more" : "Hold to record"
|
|
1384
1347
|
}
|
|
1385
1348
|
) })
|
|
1386
1349
|
] }),
|
package/dist/index.mjs
CHANGED
|
@@ -201,30 +201,6 @@ var contentVariants = {
|
|
|
201
201
|
transition: { duration: 0.2 }
|
|
202
202
|
}
|
|
203
203
|
};
|
|
204
|
-
var categoryVariants = {
|
|
205
|
-
hidden: { opacity: 0, y: 20, scale: 0.9 },
|
|
206
|
-
visible: (i) => ({
|
|
207
|
-
opacity: 1,
|
|
208
|
-
y: 0,
|
|
209
|
-
scale: 1,
|
|
210
|
-
transition: {
|
|
211
|
-
delay: i * 0.05,
|
|
212
|
-
...springPresets.smooth
|
|
213
|
-
}
|
|
214
|
-
}),
|
|
215
|
-
hover: {
|
|
216
|
-
scale: 1.05,
|
|
217
|
-
y: -2,
|
|
218
|
-
transition: springPresets.bouncy
|
|
219
|
-
},
|
|
220
|
-
tap: {
|
|
221
|
-
scale: 0.95
|
|
222
|
-
},
|
|
223
|
-
selected: {
|
|
224
|
-
scale: 1,
|
|
225
|
-
borderColor: "var(--widget-primary)"
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
204
|
var BreathingRing = ({ isActive }) => {
|
|
229
205
|
const { reducedMotion } = useWidget();
|
|
230
206
|
if (reducedMotion) return null;
|
|
@@ -500,20 +476,6 @@ var TranscriptionDisplay = ({ text, isLive }) => {
|
|
|
500
476
|
}
|
|
501
477
|
);
|
|
502
478
|
};
|
|
503
|
-
var CategoryIcon = ({ icon, selected }) => {
|
|
504
|
-
const color = selected ? "white" : "var(--widget-primary)";
|
|
505
|
-
const size = 20;
|
|
506
|
-
const icons = {
|
|
507
|
-
bug: /* @__PURE__ */ jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
508
|
-
/* @__PURE__ */ jsx("path", { d: "M8 2l1.88 1.88M14.12 3.88L16 2M9 7.13v-1a3.003 3.003 0 116 0v1" }),
|
|
509
|
-
/* @__PURE__ */ jsx("path", { d: "M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 014-4h4a4 4 0 014 4v3c0 3.3-2.7 6-6 6" }),
|
|
510
|
-
/* @__PURE__ */ jsx("path", { d: "M12 20v-9M6.53 9C4.6 8.8 3 7.1 3 5M6 13H2M3 21c0-2.1 1.7-3.9 3.8-4M20.97 5c0 2.1-1.6 3.8-3.5 4M22 13h-4M17.2 17c2.1.1 3.8 1.9 3.8 4" })
|
|
511
|
-
] }),
|
|
512
|
-
sparkles: /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "M12 3l1.912 5.813a2 2 0 001.275 1.275L21 12l-5.813 1.912a2 2 0 00-1.275 1.275L12 21l-1.912-5.813a2 2 0 00-1.275-1.275L3 12l5.813-1.912a2 2 0 001.275-1.275L12 3z" }) }),
|
|
513
|
-
message: /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx("path", { d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2v10z" }) })
|
|
514
|
-
};
|
|
515
|
-
return /* @__PURE__ */ jsx(Fragment, { children: icons[icon] || icons.message });
|
|
516
|
-
};
|
|
517
479
|
var ListeningDots = () => /* @__PURE__ */ jsx("div", { style: { display: "flex", gap: 4 }, children: [0, 1, 2].map((i) => /* @__PURE__ */ jsx(
|
|
518
480
|
motion.span,
|
|
519
481
|
{
|
|
@@ -542,68 +504,47 @@ var CategorySelector = ({ categories, selected, onSelect }) => {
|
|
|
542
504
|
{
|
|
543
505
|
style: {
|
|
544
506
|
display: "block",
|
|
545
|
-
fontSize:
|
|
546
|
-
fontWeight:
|
|
547
|
-
color: "var(--widget-text-
|
|
548
|
-
marginBottom: 10
|
|
549
|
-
textTransform: "uppercase",
|
|
550
|
-
letterSpacing: "0.05em"
|
|
507
|
+
fontSize: 12,
|
|
508
|
+
fontWeight: 500,
|
|
509
|
+
color: "var(--widget-text-muted)",
|
|
510
|
+
marginBottom: 10
|
|
551
511
|
},
|
|
552
|
-
children: "
|
|
512
|
+
children: "What's this about?"
|
|
553
513
|
}
|
|
554
514
|
),
|
|
555
515
|
/* @__PURE__ */ jsx(
|
|
556
516
|
"div",
|
|
557
517
|
{
|
|
558
518
|
style: {
|
|
559
|
-
display: "
|
|
560
|
-
|
|
561
|
-
gap:
|
|
519
|
+
display: "flex",
|
|
520
|
+
flexWrap: "wrap",
|
|
521
|
+
gap: 8
|
|
562
522
|
},
|
|
563
|
-
children: categories.map((category
|
|
523
|
+
children: categories.map((category) => /* @__PURE__ */ jsx(
|
|
564
524
|
motion.button,
|
|
565
525
|
{
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
initial: "hidden",
|
|
569
|
-
animate: selected === category.id ? "selected" : "visible",
|
|
570
|
-
whileHover: "hover",
|
|
571
|
-
whileTap: "tap",
|
|
526
|
+
whileHover: { scale: 1.03 },
|
|
527
|
+
whileTap: { scale: 0.97 },
|
|
572
528
|
onClick: () => onSelect(category.id),
|
|
573
529
|
style: {
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
padding: "12px 8px",
|
|
579
|
-
background: selected === category.id ? "var(--widget-primary)" : "var(--widget-glass-bg)",
|
|
580
|
-
border: `2px solid ${selected === category.id ? "var(--widget-primary)" : "var(--widget-glass-border)"}`,
|
|
581
|
-
borderRadius: 12,
|
|
530
|
+
padding: "8px 16px",
|
|
531
|
+
background: selected === category.id ? "var(--widget-primary)" : "transparent",
|
|
532
|
+
border: `1.5px solid ${selected === category.id ? "var(--widget-primary)" : "var(--widget-glass-border)"}`,
|
|
533
|
+
borderRadius: 20,
|
|
582
534
|
cursor: "pointer",
|
|
583
|
-
transition: "
|
|
535
|
+
transition: "all 0.2s ease"
|
|
584
536
|
},
|
|
585
|
-
children:
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
{
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
"span",
|
|
597
|
-
{
|
|
598
|
-
style: {
|
|
599
|
-
fontSize: 12,
|
|
600
|
-
fontWeight: 500,
|
|
601
|
-
color: selected === category.id ? "white" : "var(--widget-text-primary)"
|
|
602
|
-
},
|
|
603
|
-
children: category.label
|
|
604
|
-
}
|
|
605
|
-
)
|
|
606
|
-
]
|
|
537
|
+
children: /* @__PURE__ */ jsx(
|
|
538
|
+
"span",
|
|
539
|
+
{
|
|
540
|
+
style: {
|
|
541
|
+
fontSize: 13,
|
|
542
|
+
fontWeight: 500,
|
|
543
|
+
color: selected === category.id ? "white" : "var(--widget-text-primary)"
|
|
544
|
+
},
|
|
545
|
+
children: category.label
|
|
546
|
+
}
|
|
547
|
+
)
|
|
607
548
|
},
|
|
608
549
|
category.id
|
|
609
550
|
))
|
|
@@ -758,7 +699,7 @@ var SuccessCelebration = ({ onComplete }) => {
|
|
|
758
699
|
}
|
|
759
700
|
);
|
|
760
701
|
};
|
|
761
|
-
var MagneticButton = ({ children, onClick, variant = "primary", disabled, loading }) => {
|
|
702
|
+
var MagneticButton = ({ children, onClick, onPressStart, onPressEnd, variant = "primary", disabled, loading }) => {
|
|
762
703
|
const buttonRef = useRef(null);
|
|
763
704
|
const [magnetOffset, setMagnetOffset] = useState({ x: 0, y: 0 });
|
|
764
705
|
const handleMouseMove = (e) => {
|
|
@@ -801,8 +742,20 @@ var MagneticButton = ({ children, onClick, variant = "primary", disabled, loadin
|
|
|
801
742
|
ghost: {
|
|
802
743
|
background: "transparent",
|
|
803
744
|
color: "var(--widget-text-secondary)"
|
|
745
|
+
},
|
|
746
|
+
recording: {
|
|
747
|
+
background: "var(--widget-recording)",
|
|
748
|
+
color: "white"
|
|
804
749
|
}
|
|
805
750
|
};
|
|
751
|
+
const handlePressStart = () => {
|
|
752
|
+
if (disabled || loading) return;
|
|
753
|
+
onPressStart?.();
|
|
754
|
+
};
|
|
755
|
+
const handlePressEnd = () => {
|
|
756
|
+
if (disabled || loading) return;
|
|
757
|
+
onPressEnd?.();
|
|
758
|
+
};
|
|
806
759
|
return /* @__PURE__ */ jsx(
|
|
807
760
|
motion.button,
|
|
808
761
|
{
|
|
@@ -810,7 +763,14 @@ var MagneticButton = ({ children, onClick, variant = "primary", disabled, loadin
|
|
|
810
763
|
onClick,
|
|
811
764
|
disabled: disabled || loading,
|
|
812
765
|
onMouseMove: handleMouseMove,
|
|
813
|
-
onMouseLeave:
|
|
766
|
+
onMouseLeave: () => {
|
|
767
|
+
handleMouseLeave();
|
|
768
|
+
if (onPressEnd) handlePressEnd();
|
|
769
|
+
},
|
|
770
|
+
onMouseDown: onPressStart ? handlePressStart : void 0,
|
|
771
|
+
onMouseUp: onPressEnd ? handlePressEnd : void 0,
|
|
772
|
+
onTouchStart: onPressStart ? handlePressStart : void 0,
|
|
773
|
+
onTouchEnd: onPressEnd ? handlePressEnd : void 0,
|
|
814
774
|
animate: {
|
|
815
775
|
x: magnetOffset.x,
|
|
816
776
|
y: magnetOffset.y,
|
|
@@ -838,9 +798,11 @@ var MagneticButton = ({ children, onClick, variant = "primary", disabled, loadin
|
|
|
838
798
|
);
|
|
839
799
|
};
|
|
840
800
|
var DEFAULT_CATEGORIES = [
|
|
841
|
-
{ id: "bug", label: "Bug", icon: "
|
|
842
|
-
{ id: "feature", label: "Feature", icon: "
|
|
843
|
-
{ id: "
|
|
801
|
+
{ id: "bug", label: "Bug", icon: "" },
|
|
802
|
+
{ id: "feature", label: "Feature", icon: "" },
|
|
803
|
+
{ id: "improvement", label: "Improve", icon: "" },
|
|
804
|
+
{ id: "praise", label: "Praise", icon: "" },
|
|
805
|
+
{ id: "other", label: "Other", icon: "" }
|
|
844
806
|
];
|
|
845
807
|
var PremiumVoiceWidget = ({
|
|
846
808
|
position = "bottom-right",
|
|
@@ -1335,7 +1297,7 @@ var PremiumVoiceWidget = ({
|
|
|
1335
1297
|
fontSize: 14,
|
|
1336
1298
|
marginTop: 16
|
|
1337
1299
|
},
|
|
1338
|
-
children: "
|
|
1300
|
+
children: "Hold to record"
|
|
1339
1301
|
}
|
|
1340
1302
|
),
|
|
1341
1303
|
(isRecording || transcription) && /* @__PURE__ */ jsx("div", { style: { marginTop: 20 }, children: /* @__PURE__ */ jsx(
|
|
@@ -1348,8 +1310,9 @@ var PremiumVoiceWidget = ({
|
|
|
1348
1310
|
/* @__PURE__ */ jsx("div", { style: { marginTop: 20 }, children: /* @__PURE__ */ jsx(
|
|
1349
1311
|
MagneticButton,
|
|
1350
1312
|
{
|
|
1351
|
-
|
|
1352
|
-
|
|
1313
|
+
onPressStart: handleStartRecording,
|
|
1314
|
+
onPressEnd: handleStopRecording,
|
|
1315
|
+
variant: isRecording ? "recording" : "primary",
|
|
1353
1316
|
children: isRecording ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1354
1317
|
/* @__PURE__ */ jsx(
|
|
1355
1318
|
"svg",
|
|
@@ -1358,11 +1321,11 @@ var PremiumVoiceWidget = ({
|
|
|
1358
1321
|
height: 16,
|
|
1359
1322
|
viewBox: "0 0 24 24",
|
|
1360
1323
|
fill: "currentColor",
|
|
1361
|
-
children: /* @__PURE__ */ jsx("
|
|
1324
|
+
children: /* @__PURE__ */ jsx("circle", { cx: 12, cy: 12, r: 6 })
|
|
1362
1325
|
}
|
|
1363
1326
|
),
|
|
1364
|
-
"
|
|
1365
|
-
] }) :
|
|
1327
|
+
"Recording..."
|
|
1328
|
+
] }) : transcription ? "Hold to record more" : "Hold to record"
|
|
1366
1329
|
}
|
|
1367
1330
|
) })
|
|
1368
1331
|
] }),
|
package/package.json
CHANGED