@refraction-ui/react 0.16.0 → 0.16.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 CHANGED
@@ -1140,14 +1140,14 @@ function createCalendar(props = {}) {
1140
1140
  const gridId = generateId("rfr-calendar");
1141
1141
  const labelId = generateId("rfr-calendar-label");
1142
1142
  function isDateDisabled(date) {
1143
- if (minDate && date < startOfDay2(minDate)) return true;
1144
- if (maxDate && date > endOfDay2(maxDate)) return true;
1143
+ if (minDate && date < startOfDay(minDate)) return true;
1144
+ if (maxDate && date > endOfDay(maxDate)) return true;
1145
1145
  return disabledDates.some((d) => isSameDay(d, date));
1146
1146
  }
1147
- function startOfDay2(date) {
1147
+ function startOfDay(date) {
1148
1148
  return new Date(date.getFullYear(), date.getMonth(), date.getDate());
1149
1149
  }
1150
- function endOfDay2(date) {
1150
+ function endOfDay(date) {
1151
1151
  return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);
1152
1152
  }
1153
1153
  function buildDays() {
@@ -6433,6 +6433,360 @@ var InstallPrompt = React11.forwardRef(
6433
6433
  );
6434
6434
  InstallPrompt.displayName = "InstallPrompt";
6435
6435
 
6436
+ // ../mascot/dist/index.js
6437
+ function getMascotMoodStyles(mood) {
6438
+ switch (mood) {
6439
+ case "happy":
6440
+ return {
6441
+ "--rfr-mascot-shell": "var(--primary, 138 60% 51%)",
6442
+ "--rfr-mascot-shell-rim": "var(--primary-700, 138 58% 36%)",
6443
+ "--rfr-mascot-belly": "var(--primary-200, 138 60% 83%)",
6444
+ "--rfr-mascot-skin": "var(--primary-400, 138 59% 63%)",
6445
+ "--rfr-mascot-skin-d": "var(--primary-600, 138 58% 43%)",
6446
+ "--rfr-mascot-scute": "var(--sunshine, 42 100% 62%)",
6447
+ "--rfr-mascot-scute-alt": "var(--primary-300, 138 59% 74%)",
6448
+ "--rfr-mascot-cheek": "var(--accent-solid, 26 100% 67%)"
6449
+ };
6450
+ case "think":
6451
+ return {
6452
+ // Indigo / purple tones
6453
+ "--rfr-mascot-shell": "250 65% 55%",
6454
+ "--rfr-mascot-shell-rim": "250 65% 40%",
6455
+ "--rfr-mascot-belly": "250 65% 85%",
6456
+ "--rfr-mascot-skin": "250 65% 72%",
6457
+ "--rfr-mascot-skin-d": "250 65% 62%",
6458
+ "--rfr-mascot-scute": "280 65% 60%",
6459
+ "--rfr-mascot-scute-alt": "280 65% 50%",
6460
+ "--rfr-mascot-cheek": "320 80% 65%"
6461
+ };
6462
+ case "wave":
6463
+ return {
6464
+ // Orange / warm tones
6465
+ "--rfr-mascot-shell": "24 85% 50%",
6466
+ "--rfr-mascot-shell-rim": "24 85% 40%",
6467
+ "--rfr-mascot-belly": "24 85% 85%",
6468
+ "--rfr-mascot-skin": "24 85% 68%",
6469
+ "--rfr-mascot-skin-d": "24 85% 58%",
6470
+ "--rfr-mascot-scute": "160 60% 45%",
6471
+ "--rfr-mascot-scute-alt": "160 60% 35%",
6472
+ "--rfr-mascot-cheek": "15 90% 65%"
6473
+ };
6474
+ }
6475
+ }
6476
+ function startMascotBlinkInterval(onBlinkChange, intervalMs = 4e3, durationMs = 150) {
6477
+ const timer = setInterval(() => {
6478
+ onBlinkChange(true);
6479
+ setTimeout(() => {
6480
+ onBlinkChange(false);
6481
+ }, durationMs);
6482
+ }, intervalMs);
6483
+ return () => {
6484
+ clearInterval(timer);
6485
+ };
6486
+ }
6487
+ function createMascot(props = {}) {
6488
+ const { mood = "happy", animation = "none", size = "md", animate = true } = props;
6489
+ const ariaProps = {
6490
+ role: "img",
6491
+ "aria-label": `Tobi the Tortoise feeling ${mood}`
6492
+ };
6493
+ const dataAttributes = {
6494
+ "data-slot": "mascot",
6495
+ "data-mood": mood,
6496
+ "data-animation": animation,
6497
+ "data-size": size,
6498
+ "data-animate": animate ? "true" : "false"
6499
+ };
6500
+ return {
6501
+ ariaProps,
6502
+ dataAttributes,
6503
+ state: {
6504
+ mood,
6505
+ animation,
6506
+ size,
6507
+ animate
6508
+ },
6509
+ style: getMascotMoodStyles(mood)
6510
+ };
6511
+ }
6512
+ var mascotVariants = cva({
6513
+ base: "inline-block select-none transition-all duration-300",
6514
+ variants: {
6515
+ size: {
6516
+ sm: "w-24 h-auto",
6517
+ md: "w-36 h-auto",
6518
+ lg: "w-48 h-auto",
6519
+ xl: "w-64 h-auto"
6520
+ },
6521
+ animation: {
6522
+ none: "",
6523
+ bounce: "motion-safe:animate-bounce",
6524
+ float: "rfr-mascot-float"
6525
+ }
6526
+ },
6527
+ defaultVariants: {
6528
+ size: "md",
6529
+ animation: "none"
6530
+ }
6531
+ });
6532
+ var Mascot = React11.forwardRef(
6533
+ ({
6534
+ mood = "happy",
6535
+ animation = "none",
6536
+ size = "md",
6537
+ animate = true,
6538
+ animateBobbing,
6539
+ animateBlinking,
6540
+ animateSprout,
6541
+ className,
6542
+ style,
6543
+ ...props
6544
+ }, ref) => {
6545
+ const [isBlinking, setIsBlinking] = React11.useState(false);
6546
+ const shouldBob = animateBobbing ?? animate;
6547
+ const shouldSway = animateSprout ?? animate;
6548
+ const shouldBlink = animateBlinking ?? animate;
6549
+ React11.useEffect(() => {
6550
+ if (!shouldBlink) {
6551
+ setIsBlinking(false);
6552
+ return;
6553
+ }
6554
+ const cleanup = startMascotBlinkInterval(setIsBlinking);
6555
+ return cleanup;
6556
+ }, [shouldBlink]);
6557
+ const api = createMascot({ mood, animation, size, animate });
6558
+ const combinedStyle = {
6559
+ ...api.style,
6560
+ ...style
6561
+ };
6562
+ return /* @__PURE__ */ jsxs(
6563
+ "svg",
6564
+ {
6565
+ ref,
6566
+ className: cn("mascot", mascotVariants({ size, animation }), className),
6567
+ viewBox: "0 0 340 300",
6568
+ xmlns: "http://www.w3.org/2000/svg",
6569
+ style: combinedStyle,
6570
+ ...api.ariaProps,
6571
+ ...api.dataAttributes,
6572
+ "data-blinking": isBlinking ? "true" : "false",
6573
+ "data-bobbing": shouldBob ? "true" : "false",
6574
+ "data-sprout": shouldSway ? "true" : "false",
6575
+ "data-waving": animate ? "true" : "false",
6576
+ ...props,
6577
+ children: [
6578
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("style", { children: `
6579
+ /* Base styles and fallback HSL values */
6580
+ svg.mascot {
6581
+ --primary: 138 60% 51%;
6582
+ --primary-200: 138 60% 83%;
6583
+ --primary-300: 138 59% 74%;
6584
+ --primary-400: 138 59% 63%;
6585
+ --primary-600: 138 58% 43%;
6586
+ --primary-700: 138 58% 36%;
6587
+ --primary-800: 138 58% 29%;
6588
+ --primary-900: 138 58% 22%;
6589
+ --primary-950: 139 59% 16%;
6590
+ --sunshine: 42 100% 62%;
6591
+ --accent-solid: 26 100% 67%;
6592
+
6593
+ fill: none;
6594
+ stroke-linecap: round;
6595
+ stroke-linejoin: round;
6596
+ }
6597
+
6598
+ /* Mapping elements to tokens */
6599
+ svg.mascot .shadow {
6600
+ fill: hsl(var(--primary-900) / 0.15);
6601
+ }
6602
+ svg.mascot .stem {
6603
+ stroke: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6604
+ stroke-width: 3px;
6605
+ fill: none;
6606
+ }
6607
+ svg.mascot .leaf {
6608
+ fill: hsl(var(--rfr-mascot-leaf, var(--primary-400)));
6609
+ stroke: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6610
+ stroke-width: 3px;
6611
+ }
6612
+ svg.mascot .skin-d {
6613
+ fill: hsl(var(--rfr-mascot-skin-d, var(--primary-400)));
6614
+ stroke: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6615
+ stroke-width: 3px;
6616
+ }
6617
+ svg.mascot .skin {
6618
+ fill: hsl(var(--rfr-mascot-skin, var(--primary-300)));
6619
+ stroke: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6620
+ stroke-width: 3px;
6621
+ }
6622
+ svg.mascot .shell-rim {
6623
+ fill: hsl(var(--rfr-mascot-shell-rim, var(--primary-800)));
6624
+ stroke: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6625
+ stroke-width: 3px;
6626
+ }
6627
+ svg.mascot .shell {
6628
+ fill: hsl(var(--rfr-mascot-shell, var(--primary-600)));
6629
+ stroke: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6630
+ stroke-width: 3px;
6631
+ }
6632
+ svg.mascot .belly {
6633
+ fill: hsl(var(--rfr-mascot-belly, var(--primary-200)));
6634
+ stroke: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6635
+ stroke-width: 3px;
6636
+ }
6637
+ svg.mascot .scute {
6638
+ fill: hsl(var(--rfr-mascot-scute, var(--primary-700)));
6639
+ stroke: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6640
+ stroke-width: 2.5px;
6641
+ }
6642
+ svg.mascot .scute.alt {
6643
+ fill: hsl(var(--rfr-mascot-scute-alt, var(--primary-800)));
6644
+ }
6645
+ svg.mascot .ln {
6646
+ stroke: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6647
+ stroke-width: 3px;
6648
+ fill: none;
6649
+ }
6650
+ svg.mascot .eye-w {
6651
+ fill: #ffffff;
6652
+ stroke: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6653
+ stroke-width: 3px;
6654
+ }
6655
+ svg.mascot .pupil {
6656
+ fill: hsl(var(--rfr-mascot-stroke, var(--primary-950)));
6657
+ }
6658
+ svg.mascot .glint {
6659
+ fill: #ffffff;
6660
+ }
6661
+ svg.mascot .cheek {
6662
+ fill: hsl(var(--rfr-mascot-cheek, var(--accent-solid)));
6663
+ }
6664
+
6665
+ /* Float Animation keyframes */
6666
+ @keyframes rfrMascotFloat {
6667
+ 0%, 100% {
6668
+ transform: translateY(0);
6669
+ }
6670
+ 50% {
6671
+ transform: translateY(-8px);
6672
+ }
6673
+ }
6674
+
6675
+ /* Sway/antenna animation keyframes */
6676
+ @keyframes rfrMascotSway {
6677
+ 0%, 100% {
6678
+ transform: rotate(0deg);
6679
+ }
6680
+ 50% {
6681
+ transform: rotate(4deg);
6682
+ }
6683
+ }
6684
+
6685
+ /* Waving animation keyframes */
6686
+ @keyframes rfrMascotWave {
6687
+ 0%, 100% {
6688
+ transform: rotate(0deg);
6689
+ }
6690
+ 50% {
6691
+ transform: rotate(-18deg);
6692
+ }
6693
+ }
6694
+
6695
+ /* Bounce animation keyframes */
6696
+ @keyframes rfrMascotBounce {
6697
+ 0%, 100% {
6698
+ transform: translateY(0) scaleY(1);
6699
+ }
6700
+ 50% {
6701
+ transform: translateY(-16px) scaleY(0.96);
6702
+ }
6703
+ }
6704
+
6705
+ /* Animation hook connections */
6706
+ .rfr-mascot-float[data-bobbing="true"] .m-bob {
6707
+ animation: rfrMascotFloat 3s ease-in-out infinite;
6708
+ }
6709
+ .rfr-mascot-float[data-sprout="true"] .m-sprout {
6710
+ animation: rfrMascotSway 3s ease-in-out infinite;
6711
+ transform-origin: 158px 92px;
6712
+ }
6713
+ .rfr-mascot-float[data-waving="true"] .m-wave {
6714
+ animation: rfrMascotWave 1.2s ease-in-out infinite;
6715
+ transform-origin: 250px 120px;
6716
+ }
6717
+
6718
+ .motion-safe\\:animate-bounce[data-bobbing="true"] .m-bob {
6719
+ animation: rfrMascotBounce 1.2s ease-in-out infinite;
6720
+ }
6721
+ .motion-safe\\:animate-bounce[data-sprout="true"] .m-sprout {
6722
+ animation: rfrMascotSway 1.2s ease-in-out infinite;
6723
+ transform-origin: 158px 92px;
6724
+ }
6725
+
6726
+ /* Stationary wave arm if not floating */
6727
+ .mascot:not(.rfr-mascot-float)[data-waving="true"] .m-wave {
6728
+ animation: rfrMascotWave 1.2s ease-in-out infinite;
6729
+ transform-origin: 250px 120px;
6730
+ }
6731
+ ` }) }),
6732
+ /* @__PURE__ */ jsx("ellipse", { className: "shadow", cx: "166", cy: "280", rx: "116", ry: "16" }),
6733
+ /* @__PURE__ */ jsxs("g", { className: "m-bob", children: [
6734
+ /* @__PURE__ */ jsxs("g", { className: "m-sprout", children: [
6735
+ /* @__PURE__ */ jsx("path", { className: "stem", d: "M158 92 C158 70 158 58 158 44" }),
6736
+ /* @__PURE__ */ jsx("path", { className: "leaf", d: "M158 56 C140 50 126 58 128 74 C146 76 158 70 158 56 Z" }),
6737
+ /* @__PURE__ */ jsx("path", { className: "leaf", d: "M158 50 C176 42 192 50 190 66 C172 70 158 64 158 50 Z" })
6738
+ ] }),
6739
+ /* @__PURE__ */ jsx("ellipse", { className: "skin-d", cx: "96", cy: "222", rx: "27", ry: "32" }),
6740
+ /* @__PURE__ */ jsx("ellipse", { className: "skin-d", cx: "214", cy: "224", rx: "27", ry: "32" }),
6741
+ /* @__PURE__ */ jsx("path", { className: "skin-d", d: "M58 176 C40 178 28 190 26 204 C44 206 60 196 66 182 Z" }),
6742
+ /* @__PURE__ */ jsx("path", { className: "shell-rim", d: "M36 196 C30 86 92 70 162 70 C232 70 294 86 288 196 C288 210 252 220 162 220 C72 220 36 210 36 196 Z" }),
6743
+ /* @__PURE__ */ jsx("path", { className: "shell", d: "M44 190 C40 92 96 78 162 78 C228 78 284 92 280 190 C280 200 246 206 162 206 C78 206 44 200 44 190 Z" }),
6744
+ /* @__PURE__ */ jsx("path", { className: "belly", d: "M50 192 C92 206 232 206 274 192 C274 202 240 210 162 210 C84 210 50 202 50 192 Z" }),
6745
+ /* @__PURE__ */ jsx("polygon", { className: "scute", points: "162,86 190,102 190,134 162,150 134,134 134,102" }),
6746
+ /* @__PURE__ */ jsx("polygon", { className: "scute alt", points: "162,150 186,162 186,184 162,196 138,184 138,162" }),
6747
+ /* @__PURE__ */ jsx("polygon", { className: "scute alt", points: "104,108 126,120 126,148 104,160 82,148 82,120" }),
6748
+ /* @__PURE__ */ jsx("polygon", { className: "scute alt", points: "220,108 242,120 242,148 220,160 198,148 198,120" }),
6749
+ /* @__PURE__ */ jsx("polygon", { className: "scute", points: "108,162 126,172 126,190 108,200 90,190 90,172" }),
6750
+ /* @__PURE__ */ jsx("polygon", { className: "scute", points: "216,162 234,172 234,190 216,200 198,190 198,172" }),
6751
+ /* @__PURE__ */ jsx("ellipse", { className: "skin", cx: "116", cy: "232", rx: "25", ry: "31" }),
6752
+ mood !== "wave" && /* @__PURE__ */ jsx("ellipse", { className: "skin", cx: "236", cy: "234", rx: "25", ry: "31" }),
6753
+ /* @__PURE__ */ jsx("path", { className: "ln", d: mood === "wave" ? "M104 250 H128" : "M104 250 H128 M224 252 H248", opacity: 0.4 }),
6754
+ mood === "wave" && /* @__PURE__ */ jsxs("g", { className: "m-wave", children: [
6755
+ /* @__PURE__ */ jsx("ellipse", { className: "skin", cx: "250", cy: "120", rx: "15", ry: "22" }),
6756
+ /* @__PURE__ */ jsx("path", { className: "ln", d: "M244 104 Q250 96 256 104", opacity: 0.4 })
6757
+ ] }),
6758
+ /* @__PURE__ */ jsx("path", { className: "skin", d: "M262 150 C276 142 296 142 310 150 L312 176 C300 188 274 188 262 178 Z" }),
6759
+ /* @__PURE__ */ jsx("ellipse", { className: "skin", cx: "296", cy: "156", rx: "40", ry: "36" }),
6760
+ /* @__PURE__ */ jsx("ellipse", { className: "cheek", cx: "280", cy: "174", rx: "11", ry: "8" }),
6761
+ isBlinking ? /* @__PURE__ */ jsxs("g", { className: "mascot-face-blinking", children: [
6762
+ /* @__PURE__ */ jsx("path", { className: "ln", d: "M275 150 C280 155 292 155 297 150" }),
6763
+ /* @__PURE__ */ jsx("path", { className: "ln", d: "M304 152 C309 157 319 157 324 152" }),
6764
+ mood === "think" ? /* @__PURE__ */ jsx("path", { className: "ln", d: "M280 174 Q290 169 298 175" }) : /* @__PURE__ */ jsx("path", { className: "ln", d: "M286 172 C294 180 306 180 314 171" })
6765
+ ] }) : mood === "think" ? /* @__PURE__ */ jsxs("g", { className: "mascot-face-think", children: [
6766
+ /* @__PURE__ */ jsx("ellipse", { className: "eye-w", cx: "286", cy: "150", rx: "11", ry: "13" }),
6767
+ /* @__PURE__ */ jsx("ellipse", { className: "eye-w", cx: "314", cy: "152", rx: "10", ry: "12" }),
6768
+ /* @__PURE__ */ jsx("circle", { className: "pupil", cx: "288", cy: "146", r: 5.5 }),
6769
+ /* @__PURE__ */ jsx("circle", { className: "pupil", cx: "315", cy: "148", r: 5 }),
6770
+ /* @__PURE__ */ jsx("circle", { className: "glint", cx: "290", cy: "143", r: 1.9 }),
6771
+ /* @__PURE__ */ jsx("circle", { className: "glint", cx: "317", cy: "145", r: 1.7 }),
6772
+ /* @__PURE__ */ jsx("path", { className: "ln", d: "M280 174 Q290 169 298 175" })
6773
+ ] }) : /* @__PURE__ */ jsxs("g", { className: "mascot-face-happy", children: [
6774
+ /* @__PURE__ */ jsx("ellipse", { className: "eye-w", cx: "286", cy: "150", rx: "11", ry: "13" }),
6775
+ /* @__PURE__ */ jsx("ellipse", { className: "eye-w", cx: "314", cy: "152", rx: "10", ry: "12" }),
6776
+ /* @__PURE__ */ jsx("circle", { className: "pupil", cx: "289", cy: "152", r: 5.5 }),
6777
+ /* @__PURE__ */ jsx("circle", { className: "pupil", cx: "316", cy: "154", r: 5 }),
6778
+ /* @__PURE__ */ jsx("circle", { className: "glint", cx: "291", cy: "149", r: 1.9 }),
6779
+ /* @__PURE__ */ jsx("circle", { className: "glint", cx: "318", cy: "151", r: 1.7 }),
6780
+ /* @__PURE__ */ jsx("path", { className: "ln", d: "M286 172 C294 180 306 180 314 171" })
6781
+ ] })
6782
+ ] })
6783
+ ]
6784
+ }
6785
+ );
6786
+ }
6787
+ );
6788
+ Mascot.displayName = "Mascot";
6789
+
6436
6790
  // ../mobile-nav/dist/index.js
6437
6791
  function createMobileNav(props = {}) {
6438
6792
  const isOpen = props.open ?? false;
@@ -11270,7 +11624,11 @@ var Avatar2 = React11.forwardRef(
11270
11624
  Avatar2.displayName = "Avatar";
11271
11625
  var AvatarImage = React11.forwardRef(
11272
11626
  ({ className, src, alt = "", onLoad, onError, ...props }, ref) => {
11273
- const { setImageLoaded, setImageError } = React11.useContext(AvatarContext);
11627
+ const { imageError, setImageLoaded, setImageError } = React11.useContext(AvatarContext);
11628
+ React11.useEffect(() => {
11629
+ setImageLoaded(false);
11630
+ setImageError(false);
11631
+ }, [src, setImageLoaded, setImageError]);
11274
11632
  const handleLoad = (e) => {
11275
11633
  setImageLoaded(true);
11276
11634
  onLoad?.(e);
@@ -11279,6 +11637,7 @@ var AvatarImage = React11.forwardRef(
11279
11637
  setImageError(true);
11280
11638
  onError?.(e);
11281
11639
  };
11640
+ if (imageError) return null;
11282
11641
  return /* @__PURE__ */ jsx(
11283
11642
  "img",
11284
11643
  {
@@ -11296,7 +11655,8 @@ var AvatarImage = React11.forwardRef(
11296
11655
  AvatarImage.displayName = "AvatarImage";
11297
11656
  var AvatarFallback = React11.forwardRef(
11298
11657
  ({ className, children, ...props }, ref) => {
11299
- const { size } = React11.useContext(AvatarContext);
11658
+ const { size, imageLoaded, imageError } = React11.useContext(AvatarContext);
11659
+ if (imageLoaded && !imageError) return null;
11300
11660
  return /* @__PURE__ */ jsx(
11301
11661
  "span",
11302
11662
  {
@@ -11749,214 +12109,8 @@ var Checkbox = React11.forwardRef(
11749
12109
  Checkbox.displayName = "Checkbox";
11750
12110
 
11751
12111
  // ../date-picker/dist/index.js
11752
- function isSameDay2(a, b) {
11753
- return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();
11754
- }
11755
- function startOfMonth2(date) {
11756
- return new Date(date.getFullYear(), date.getMonth(), 1);
11757
- }
11758
- function startOfDay(date) {
11759
- return new Date(date.getFullYear(), date.getMonth(), date.getDate());
11760
- }
11761
- function endOfDay(date) {
11762
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);
11763
- }
11764
- var DAY_NAMES2 = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
11765
- function padZero(n) {
11766
- return n < 10 ? `0${n}` : `${n}`;
11767
- }
11768
- function formatDate(date, format, showTime) {
11769
- if (!date) return "";
11770
- const year = date.getFullYear();
11771
- const month = padZero(date.getMonth() + 1);
11772
- const day = padZero(date.getDate());
11773
- const hours = padZero(date.getHours());
11774
- const minutes = padZero(date.getMinutes());
11775
- let result = format.replace("YYYY", String(year)).replace("MM", month).replace("DD", day);
11776
- if (showTime) {
11777
- result = result.replace("HH", hours).replace("mm", minutes);
11778
- }
11779
- return result;
11780
- }
11781
- function createDatePicker(props = {}) {
11782
- const {
11783
- value,
11784
- onChange,
11785
- minDate,
11786
- maxDate,
11787
- showTime = false,
11788
- format = showTime ? "YYYY-MM-DD HH:mm" : "YYYY-MM-DD",
11789
- placeholder = "Select date...",
11790
- open: controlledOpen,
11791
- defaultOpen = false,
11792
- onOpenChange
11793
- } = props;
11794
- const today = /* @__PURE__ */ new Date();
11795
- let internalOpen = controlledOpen ?? defaultOpen;
11796
- let currentMonth = value ? startOfMonth2(value) : startOfMonth2(today);
11797
- let view = "calendar";
11798
- const hours = value ? value.getHours() : 0;
11799
- const minutes = value ? value.getMinutes() : 0;
11800
- const triggerId = generateId("rfr-datepicker-trigger");
11801
- const dropdownId = generateId("rfr-datepicker-dropdown");
11802
- const gridId = generateId("rfr-datepicker-grid");
11803
- const labelId = generateId("rfr-datepicker-label");
11804
- function isOpen() {
11805
- if (controlledOpen !== void 0) return controlledOpen;
11806
- return internalOpen;
11807
- }
11808
- function isDateDisabled(date) {
11809
- if (minDate && date < startOfDay(minDate)) return true;
11810
- if (maxDate && date > endOfDay(maxDate)) return true;
11811
- return false;
11812
- }
11813
- function buildDays() {
11814
- const year = currentMonth.getFullYear();
11815
- const month = currentMonth.getMonth();
11816
- const first = new Date(year, month, 1);
11817
- const startDow = first.getDay();
11818
- const gridStart = new Date(year, month, 1 - startDow);
11819
- const days = [];
11820
- for (let i = 0; i < 42; i++) {
11821
- const date = new Date(
11822
- gridStart.getFullYear(),
11823
- gridStart.getMonth(),
11824
- gridStart.getDate() + i
11825
- );
11826
- days.push({
11827
- date,
11828
- isToday: isSameDay2(date, today),
11829
- isSelected: value ? isSameDay2(date, value) : false,
11830
- isCurrentMonth: date.getMonth() === month,
11831
- isDisabled: isDateDisabled(date)
11832
- });
11833
- }
11834
- return days;
11835
- }
11836
- function openPicker() {
11837
- internalOpen = true;
11838
- onOpenChange?.(true);
11839
- }
11840
- function closePicker() {
11841
- internalOpen = false;
11842
- onOpenChange?.(false);
11843
- }
11844
- function togglePicker() {
11845
- if (isOpen()) {
11846
- closePicker();
11847
- } else {
11848
- openPicker();
11849
- }
11850
- }
11851
- function selectDate(date) {
11852
- if (isDateDisabled(date)) return;
11853
- const newDate = new Date(date);
11854
- if (value) {
11855
- newDate.setHours(value.getHours());
11856
- newDate.setMinutes(value.getMinutes());
11857
- }
11858
- onChange?.(newDate);
11859
- if (!showTime) {
11860
- closePicker();
11861
- }
11862
- }
11863
- function setHours(h4) {
11864
- if (h4 < 0 || h4 > 23) return;
11865
- const newDate = value ? new Date(value) : /* @__PURE__ */ new Date();
11866
- newDate.setHours(h4);
11867
- onChange?.(newDate);
11868
- }
11869
- function setMinutes(m) {
11870
- if (m < 0 || m > 59) return;
11871
- const newDate = value ? new Date(value) : /* @__PURE__ */ new Date();
11872
- newDate.setMinutes(m);
11873
- onChange?.(newDate);
11874
- }
11875
- function prevMonth() {
11876
- currentMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, 1);
11877
- }
11878
- function nextMonth() {
11879
- currentMonth = new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 1);
11880
- }
11881
- function setView(v) {
11882
- view = v;
11883
- }
11884
- function formatDisplay() {
11885
- return value ? formatDate(value, format, showTime) : placeholder;
11886
- }
11887
- const keyboardHandlers = {
11888
- [Keys.Escape]: (e) => {
11889
- e.preventDefault();
11890
- closePicker();
11891
- }
11892
- };
11893
- const triggerProps = {
11894
- "aria-expanded": isOpen(),
11895
- "aria-controls": dropdownId,
11896
- "aria-haspopup": "dialog",
11897
- id: triggerId,
11898
- role: "combobox"
11899
- };
11900
- const dropdownProps = {
11901
- role: "dialog",
11902
- "aria-modal": true,
11903
- "aria-labelledby": labelId,
11904
- id: dropdownId
11905
- };
11906
- const gridProps = {
11907
- role: "grid",
11908
- "aria-labelledby": labelId,
11909
- id: gridId
11910
- };
11911
- function getDayAriaProps(day) {
11912
- return {
11913
- role: "gridcell",
11914
- "aria-selected": day.isSelected,
11915
- "aria-disabled": day.isDisabled,
11916
- "aria-current": day.isToday ? "date" : void 0,
11917
- "aria-label": `${DAY_NAMES2[day.date.getDay()]}, ${day.date.toLocaleDateString("en-US", {
11918
- month: "long",
11919
- day: "numeric",
11920
- year: "numeric"
11921
- })}`
11922
- };
11923
- }
11924
- return {
11925
- state: {
11926
- open: isOpen(),
11927
- selectedDate: value,
11928
- view,
11929
- hours,
11930
- minutes,
11931
- currentMonth
11932
- },
11933
- days: buildDays(),
11934
- openPicker,
11935
- closePicker,
11936
- togglePicker,
11937
- selectDate,
11938
- setHours,
11939
- setMinutes,
11940
- prevMonth,
11941
- nextMonth,
11942
- setView,
11943
- formatDisplay,
11944
- triggerProps,
11945
- dropdownProps,
11946
- gridProps,
11947
- getDayAriaProps,
11948
- keyboardHandlers,
11949
- ids: {
11950
- trigger: triggerId,
11951
- dropdown: dropdownId,
11952
- grid: gridId,
11953
- label: labelId
11954
- }
11955
- };
11956
- }
11957
12112
  var datePickerTriggerStyles = "inline-flex items-center gap-2 rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring cursor-pointer";
11958
- var datePickerDropdownStyles = "absolute z-50 mt-1 rounded-md border bg-popover p-4 text-popover-foreground shadow-md";
11959
- var datePickerDayVariants = cva({
12113
+ cva({
11960
12114
  base: "inline-flex h-8 w-8 items-center justify-center rounded-md text-sm cursor-pointer hover:bg-accent hover:text-accent-foreground",
11961
12115
  variants: {
11962
12116
  state: {
@@ -11971,205 +12125,38 @@ var datePickerDayVariants = cva({
11971
12125
  state: "default"
11972
12126
  }
11973
12127
  });
11974
- var datePickerTimeStyles = "flex items-center gap-2 mt-3 pt-3 border-t";
11975
- var datePickerTimeInputStyles = "w-14 rounded-md border border-input bg-background px-2 py-1 text-sm text-center";
11976
-
11977
- // ../react-date-picker/dist/index.js
11978
- function DatePicker({
11979
- value,
11980
- onChange,
11981
- minDate,
11982
- maxDate,
11983
- showTime = false,
11984
- format,
11985
- placeholder,
11986
- className,
11987
- disabled = false
11988
- }) {
11989
- const [open, setOpen] = React11.useState(false);
11990
- const [currentMonth, setCurrentMonth] = React11.useState(
11991
- () => value ? new Date(value.getFullYear(), value.getMonth(), 1) : new Date((/* @__PURE__ */ new Date()).getFullYear(), (/* @__PURE__ */ new Date()).getMonth(), 1)
11992
- );
11993
- const [view, setView] = React11.useState("calendar");
11994
- const containerRef = React11.useRef(null);
11995
- const api = React11.useMemo(
11996
- () => createDatePicker({
11997
- value,
11998
- onChange,
11999
- minDate,
12000
- maxDate,
12001
- showTime,
12002
- format,
12003
- placeholder,
12004
- open,
12005
- onOpenChange: setOpen
12006
- }),
12007
- [value, onChange, minDate, maxDate, showTime, format, placeholder, open]
12008
- );
12009
- React11.useMemo(() => {
12010
- createDatePicker({
12011
- value,
12012
- minDate,
12013
- maxDate,
12014
- open: true
12015
- });
12016
- const tempApi = createDatePicker({
12017
- value,
12018
- minDate,
12019
- maxDate,
12020
- open: true
12021
- });
12022
- return tempApi.days;
12023
- }, [value, minDate, maxDate, currentMonth]);
12024
- React11.useEffect(() => {
12025
- if (!open) return;
12026
- function handleClick(e) {
12027
- if (containerRef.current && !containerRef.current.contains(e.target)) {
12028
- setOpen(false);
12029
- }
12030
- }
12031
- document.addEventListener("mousedown", handleClick);
12032
- return () => document.removeEventListener("mousedown", handleClick);
12033
- }, [open]);
12034
- React11.useEffect(() => {
12035
- if (!open) return;
12036
- function handleKeyDown(e) {
12037
- if (e.key === "Escape") {
12038
- e.preventDefault();
12039
- setOpen(false);
12128
+ var DatePicker = React11.forwardRef(
12129
+ ({ value, onChange, minDate, maxDate, showTime = false, format, placeholder, className, disabled = false, ...props }, ref) => {
12130
+ const dateToString = (date) => {
12131
+ if (!date) return "";
12132
+ const offset = date.getTimezoneOffset() * 6e4;
12133
+ const localDate = new Date(date.getTime() - offset);
12134
+ const iso = localDate.toISOString();
12135
+ return showTime ? iso.slice(0, 16) : iso.slice(0, 10);
12136
+ };
12137
+ const handleChange = (e) => {
12138
+ if (!onChange) return;
12139
+ if (e.target.value) {
12140
+ onChange(new Date(e.target.value));
12040
12141
  }
12041
- }
12042
- document.addEventListener("keydown", handleKeyDown);
12043
- return () => document.removeEventListener("keydown", handleKeyDown);
12044
- }, [open]);
12045
- const displayValue = api.formatDisplay();
12046
- const handleSelectDate = (date) => {
12047
- const newDate = new Date(date);
12048
- if (value) {
12049
- newDate.setHours(value.getHours());
12050
- newDate.setMinutes(value.getMinutes());
12051
- }
12052
- onChange?.(newDate);
12053
- if (!showTime) {
12054
- setOpen(false);
12055
- }
12056
- };
12057
- const handleHoursChange = (e) => {
12058
- const h4 = parseInt(e.target.value, 10);
12059
- if (isNaN(h4) || h4 < 0 || h4 > 23) return;
12060
- const newDate = value ? new Date(value) : /* @__PURE__ */ new Date();
12061
- newDate.setHours(h4);
12062
- onChange?.(newDate);
12063
- };
12064
- const handleMinutesChange = (e) => {
12065
- const m = parseInt(e.target.value, 10);
12066
- if (isNaN(m) || m < 0 || m > 59) return;
12067
- const newDate = value ? new Date(value) : /* @__PURE__ */ new Date();
12068
- newDate.setMinutes(m);
12069
- onChange?.(newDate);
12070
- };
12071
- const monthLabel = currentMonth.toLocaleDateString("en-US", { month: "long", year: "numeric" });
12072
- return React11.createElement(
12073
- "div",
12074
- { ref: containerRef, className: cn("relative inline-block", className) },
12075
- React11.createElement(
12076
- "button",
12077
- {
12078
- type: "button",
12079
- className: cn(datePickerTriggerStyles, disabled && "opacity-50 cursor-not-allowed"),
12080
- onClick: () => !disabled && setOpen(!open),
12081
- "aria-expanded": open,
12082
- "aria-haspopup": "dialog",
12083
- disabled
12084
- },
12085
- displayValue
12086
- ),
12087
- open && React11.createElement(
12088
- "div",
12142
+ };
12143
+ return /* @__PURE__ */ jsx(
12144
+ "input",
12089
12145
  {
12090
- className: datePickerDropdownStyles,
12091
- role: "dialog",
12092
- "aria-modal": true
12093
- },
12094
- React11.createElement(
12095
- "div",
12096
- { className: "flex items-center justify-between mb-3" },
12097
- React11.createElement(
12098
- "button",
12099
- {
12100
- type: "button",
12101
- className: "p-1 hover:bg-accent rounded cursor-pointer",
12102
- onClick: () => setCurrentMonth(new Date(currentMonth.getFullYear(), currentMonth.getMonth() - 1, 1)),
12103
- "aria-label": "Previous month"
12104
- },
12105
- "\u2039"
12106
- ),
12107
- React11.createElement("span", { className: "text-sm font-medium" }, monthLabel),
12108
- React11.createElement(
12109
- "button",
12110
- {
12111
- type: "button",
12112
- className: "p-1 hover:bg-accent rounded cursor-pointer",
12113
- onClick: () => setCurrentMonth(new Date(currentMonth.getFullYear(), currentMonth.getMonth() + 1, 1)),
12114
- "aria-label": "Next month"
12115
- },
12116
- "\u203A"
12117
- )
12118
- ),
12119
- React11.createElement(
12120
- "div",
12121
- { className: "grid grid-cols-7 gap-0 text-center", role: "grid" },
12122
- ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map(
12123
- (d) => React11.createElement("div", { key: d, className: "text-xs text-muted-foreground py-1 font-medium" }, d)
12124
- ),
12125
- api.days.map((day, i) => {
12126
- let state = "default";
12127
- if (day.isDisabled) state = "disabled";
12128
- else if (day.isSelected) state = "selected";
12129
- else if (day.isToday) state = "today";
12130
- else if (!day.isCurrentMonth) state = "outside";
12131
- return React11.createElement(
12132
- "button",
12133
- {
12134
- key: i,
12135
- type: "button",
12136
- className: datePickerDayVariants({ state }),
12137
- onClick: () => !day.isDisabled && handleSelectDate(day.date),
12138
- disabled: day.isDisabled,
12139
- "aria-selected": day.isSelected,
12140
- "aria-disabled": day.isDisabled
12141
- },
12142
- day.date.getDate()
12143
- );
12144
- })
12145
- ),
12146
- showTime && React11.createElement(
12147
- "div",
12148
- { className: datePickerTimeStyles },
12149
- React11.createElement("span", { className: "text-sm text-muted-foreground" }, "Time:"),
12150
- React11.createElement("input", {
12151
- type: "number",
12152
- min: 0,
12153
- max: 23,
12154
- value: value ? value.getHours() : 0,
12155
- onChange: handleHoursChange,
12156
- className: datePickerTimeInputStyles,
12157
- "aria-label": "Hours"
12158
- }),
12159
- React11.createElement("span", { className: "text-muted-foreground" }, ":"),
12160
- React11.createElement("input", {
12161
- type: "number",
12162
- min: 0,
12163
- max: 59,
12164
- value: value ? value.getMinutes() : 0,
12165
- onChange: handleMinutesChange,
12166
- className: datePickerTimeInputStyles,
12167
- "aria-label": "Minutes"
12168
- })
12169
- )
12170
- )
12171
- );
12172
- }
12146
+ ref,
12147
+ type: showTime ? "datetime-local" : "date",
12148
+ className: cn(datePickerTriggerStyles, "justify-start text-left font-normal w-[280px]", className),
12149
+ value: dateToString(value),
12150
+ min: dateToString(minDate),
12151
+ max: dateToString(maxDate),
12152
+ onChange: handleChange,
12153
+ disabled,
12154
+ placeholder,
12155
+ ...props
12156
+ }
12157
+ );
12158
+ }
12159
+ );
12173
12160
  DatePicker.displayName = "DatePicker";
12174
12161
 
12175
12162
  // ../emoji-picker/dist/index.js
@@ -14696,6 +14683,20 @@ var CarouselContent = React11.forwardRef(
14696
14683
  }
14697
14684
  );
14698
14685
  CarouselContent.displayName = "CarouselContent";
14686
+ var Slider = React11.forwardRef(
14687
+ ({ className, variant, ...props }, ref) => {
14688
+ return /* @__PURE__ */ jsx(
14689
+ "input",
14690
+ {
14691
+ type: "range",
14692
+ ref,
14693
+ className: `w-full ${className || ""}`,
14694
+ ...props
14695
+ }
14696
+ );
14697
+ }
14698
+ );
14699
+ Slider.displayName = "Slider";
14699
14700
  var Pagination = React11.forwardRef(
14700
14701
  ({ className, ...props }, ref) => {
14701
14702
  return /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props });
@@ -22416,6 +22417,6 @@ var SlotPicker = React11.forwardRef(
22416
22417
  );
22417
22418
  SlotPicker.displayName = "SlotPicker";
22418
22419
 
22419
- export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AltHintState, AnalyticsProvider, AnimatedText, AppShell, AudienceFeatureCard, AudioRoom, AuthGuard, AuthProvider, Avatar2 as Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, BadgeDisplay, BottomNav, BrandNetworkCell, Breadcrumbs, BrowserChromeMock, Button, CATEGORY_LABELS, CURSOR_COLORS, Calendar, CalendarHeader, CallControlButton, CallControls, Callout, CalloutContent, CalloutDescription, CalloutIcon, CalloutTitle, Card, CardContent, CardDescription, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselTrigger, Chat, Checkbox, Checklist, CodeBlock, CodeBlockContent, CodeBlockHeader, CodeEditor, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, Composer, ConfirmationCard, ContentProtection, CookieConsent, Cursor, DEFAULT_CATEGORIES, DEFAULT_VOICE_PILL_POSITION, DEFAULT_VOICE_PILL_SPEAKER, DEFAULT_WAVEFORM_BAR_COUNT, DEFAULT_WAVEFORM_COLOR, DEFAULT_WAVEFORM_HEIGHT, DEFAULT_WAVEFORM_INTENSITY, DEFAULT_WAVEFORM_SMOOTHING, DataTable, DatePicker, DeviceFrame, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EMOJI_CATEGORIES, EMOJI_DATA, EditorStatusBar, EditorTabs, EmojiPicker, EmptyState, FeedbackButton, FeedbackDialog, FileTree, FileUpload, FloatingReactions, FlowEditor, Footer, GraphView, IconSystem, InfiniteCanvas, InlineEditor, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InstallPrompt, KanbanBoard, KanbanCard, KanbanColumn, KeyboardShortcut, LanguageSelector, LinkCard, LiveCaptions, LiveCursors, LiveTranscript, MarkdownRenderer, MarqueeStrip, MasteryBar, MiniMap, MobileNav, MobileNavContent, MobileNavLink, MobileNavTrigger, Navbar, NumberedSteps, OtpInput, STATUS_COLORS as PRESENCE_STATUS_COLORS, STATUS_LABELS as PRESENCE_STATUS_LABELS, Pagination, PasswordInput, Payment, Popover, PopoverClose, PopoverContent, PopoverTrigger, PreCallLobby, PresenceIndicator, PricingCard, ProgressBar, RadialGauge, RadioGroup, RadioItem, RatingScale, ReactionBar, ReactionBurst, ResizableDivider, ResizableLayout, ResizablePane, SANE_DEFAULTS, STATUS_INDICATOR_COLORS as STATUS_COLORS, STATUS_INDICATOR_LABELS as STATUS_LABELS, STICKY_NOTE_COLORS, SearchBar, SearchResultItem, SearchResults, SectionHead, SegmentedControl, SegmentedControlItem, Select, SelectContent, SelectItem, SelectTrigger, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, ShortcutBadge, ShortcutContext, ShortcutHint, ShortcutProvider, ShortcutRegistry, Sidebar, Skeleton, SkeletonText, SkipToContent, SlideViewer, SlotPicker, SocialAuthButton, SocialAuthRow, SortableList, SpeakingOrb, StatGrid, StatsGrid, StatusIndicator, Step, StepContent, StepDescription, StepIndicator, StepTitle, Steps, StickyNote, Switch, TableOfContents, Tabs, TabsContent, TabsList, TabsTrigger, TelemetryErrorBoundary, TelemetryProvider, Terminal, TestResults, Textarea, ThreadView, Timeline, TimelineItem, Toast, ToastProvider, Toaster, Tooltip, TooltipContent, TooltipTrigger, TypewriterText, VersionSelector, VideoGrid, VideoPlayer, VideoTile, VoicePill, Waveform, Wizard, altHintState, animatedTextVariants, assignCursorColor, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, badgeGridVariants, badgeItemVariants, badgeVariants, bottomNavTabVariants, bottomNavVariants, breadcrumbItemVariants, breadcrumbSeparatorStyles, breadcrumbsVariants, buttonTokens, buttonVariants, calendarVariants, canAccessAdmin, canAccessReviewer, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, cellVariants, checkIconPath, checkboxTokens, checkboxVariants, clampVoicePillIntensity, codeEditorTokens, codeEditorVariants, collapsibleContentVariants, comboboxContentVariants, comboboxEmptyVariants, comboboxInputVariants, comboboxItemVariants, comboboxListVariants, comboboxTriggerVariants, commandGroupVariants, commandInputVariants, commandItemVariants, commandVariants, contentProtectionVariants, controlsVariants, createAnalytics, createAppInsightsSink, createConsoleSink, createConversation, createCookieConsent, createGA4ClientSdkSink, createGA4HttpSink, createGA4Sink, createIntensitySamples, createPostHogClientSdkSink, createPostHogHttpSink, createPostHogSink, createPreCallLobby, createSegmentedControl, createSilentSamples, createTelemetry, createVoicePill, createWaveform, dayVariants, deviceFrameVariants, dialogContentVariants, drawWaveform, editorVariants, emojiPickerContainerStyles, emojiPickerEmojiButtonStyles, emojiPickerGridStyles, feedbackDialogVariants, fileUploadDropZoneVariants, fileUploadFileItemStyles, fileUploadFileListStyles, findMessage, footerVariants, formatFileSize, formatRelativeTime, formatShortcut, formatTimestamp, getAssignableRoles, getDefaultPortal, getInitials, getNextSegmentIndex, getReplyCount, getVoicePillAriaLabel, getVoicePillInitials, getVoicePillPosition, getVoicePillPulseStyle, getVoicePillSpeakerKey, getVoicePillSpeakerLabel, getWaveformPeak, globalShortcutRegistry, hasAllRoles, hasAnyRole, hasRole, headerVariants, indeterminateIconPath, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupTokens, inputGroupVariants, inputVariants, installPromptVariants, isWaveformSampleInput, latestBadgeVariants, markdownRendererTokens, menuContentVariants, menuItemVariants, micLevelToBars, mobileNavContentVariants, mobileNavLinkVariants, mobileNavTokens, mobileNavTriggerVariants, mobileNavVariants, navLinkVariants, navbarVariants, nextStickyColor, normalizeBarCount, normalizeIntensity, normalizeSmoothing, normalizeWaveformConfig, normalizeWaveformSamples, optionVariants, otpInputContainerVariants, otpInputSlotVariants, otpInputTokens, overlayStyles, overlayVariants, playerVariants, popoverContentVariants, prepareWaveformCanvas, previewVariants, progressBarVariants, proseVariants, radioCircleVariants, radioGroupVariants, radioItemVariants, reactionAddButtonStyles, reactionBarStyles, reactionCountStyles, reactionEmojiStyles, reactionPillVariants, resampleWaveformSamples, resizableDividerVariants, resizableLayoutTokens, resizableLayoutVariants, resizablePaneVariants, rootIdOf, rowVariants, scaleWaveformSamples, searchBarVariants, searchResultVariants, segmentedControlItemVariants, segmentedControlVariants, selectContentVariants, selectItemVariants, selectMainTimeline, selectReplies, selectRoots, selectThreadMessages, selectTimelineFromState, selectTokens, selectTriggerVariants, selectorVariants, sheetContentVariants, sheetOverlayStyles, shortcutBadgeStyles, shortcutKeyStyles, shortcutSeparatorStyles, sidebarItemVariants, sidebarVariants, skeletonVariants, slideTypeBadgeVariants, slideViewerProgressBarVariants, slideViewerTokens, slideViewerVariants, smoothWaveformSamples, startSessionReplay, statCardVariants, statColumns, statsGridVariants, statusContainerStyles, statusDotVariants, statusLabelStyles, statusPulseVariants, switchThumbVariants, switchTokens, switchVariants, tableVariants, tabsListVariants, tabsTriggerVariants, textareaVariants, threadAuthorStyles, threadAvatarStyles, threadBodyStyles, threadContainerStyles, threadContentStyles, threadMessageStyles, threadReactionsStyles, threadTimestampStyles, toCssDimension, toastVariants, toolbarVariants, tooltipContentVariants, typewriterVariants, useAnalytics, useAuth, useConversation, useCookieConsent, useFloatingReactions, useLogger, useShortcut, useSpan, useTelemetry, useToast, useTrackEvent, useWizard, versionSelectorOptionVariants, versionSelectorVariants, voicePillAvatarStyles, voicePillAvatarWrapStyles, voicePillLabelStyles, voicePillMuteButtonStyles, voicePillPositionVariants, voicePillPulseRingStyles, voicePillRootStyles, voicePillSpeakerStyles, voicePillSubStyles, voicePillTextStyles, voicePillTokens, watermarkVariants, waveformCanvasVariants, waveformVariants };
22420
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AltHintState, AnalyticsProvider, AnimatedText, AppShell, AudienceFeatureCard, AudioRoom, AuthGuard, AuthProvider, Avatar2 as Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, BadgeDisplay, BottomNav, BrandNetworkCell, Breadcrumbs, BrowserChromeMock, Button, CATEGORY_LABELS, CURSOR_COLORS, Calendar, CalendarHeader, CallControlButton, CallControls, Callout, CalloutContent, CalloutDescription, CalloutIcon, CalloutTitle, Card, CardContent, CardDescription, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselTrigger, Chat, Checkbox, Checklist, CodeBlock, CodeBlockContent, CodeBlockHeader, CodeEditor, Collapsible, CollapsibleContent, CollapsibleTrigger, Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, ComboboxTrigger, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, Composer, ConfirmationCard, ContentProtection, CookieConsent, Cursor, DEFAULT_CATEGORIES, DEFAULT_VOICE_PILL_POSITION, DEFAULT_VOICE_PILL_SPEAKER, DEFAULT_WAVEFORM_BAR_COUNT, DEFAULT_WAVEFORM_COLOR, DEFAULT_WAVEFORM_HEIGHT, DEFAULT_WAVEFORM_INTENSITY, DEFAULT_WAVEFORM_SMOOTHING, DataTable, DatePicker, DeviceFrame, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EMOJI_CATEGORIES, EMOJI_DATA, EditorStatusBar, EditorTabs, EmojiPicker, EmptyState, FeedbackButton, FeedbackDialog, FileTree, FileUpload, FloatingReactions, FlowEditor, Footer, GraphView, IconSystem, InfiniteCanvas, InlineEditor, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InstallPrompt, KanbanBoard, KanbanCard, KanbanColumn, KeyboardShortcut, LanguageSelector, LinkCard, LiveCaptions, LiveCursors, LiveTranscript, MarkdownRenderer, MarqueeStrip, Mascot, MasteryBar, MiniMap, MobileNav, MobileNavContent, MobileNavLink, MobileNavTrigger, Navbar, NumberedSteps, OtpInput, STATUS_COLORS as PRESENCE_STATUS_COLORS, STATUS_LABELS as PRESENCE_STATUS_LABELS, Pagination, PasswordInput, Payment, Popover, PopoverClose, PopoverContent, PopoverTrigger, PreCallLobby, PresenceIndicator, PricingCard, ProgressBar, RadialGauge, RadioGroup, RadioItem, RatingScale, ReactionBar, ReactionBurst, ResizableDivider, ResizableLayout, ResizablePane, SANE_DEFAULTS, STATUS_INDICATOR_COLORS as STATUS_COLORS, STATUS_INDICATOR_LABELS as STATUS_LABELS, STICKY_NOTE_COLORS, SearchBar, SearchResultItem, SearchResults, SectionHead, SegmentedControl, SegmentedControlItem, Select, SelectContent, SelectItem, SelectTrigger, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, ShortcutBadge, ShortcutContext, ShortcutHint, ShortcutProvider, ShortcutRegistry, Sidebar, Skeleton, SkeletonText, SkipToContent, SlideViewer, Slider, SlotPicker, SocialAuthButton, SocialAuthRow, SortableList, SpeakingOrb, StatGrid, StatsGrid, StatusIndicator, Step, StepContent, StepDescription, StepIndicator, StepTitle, Steps, StickyNote, Switch, TableOfContents, Tabs, TabsContent, TabsList, TabsTrigger, TelemetryErrorBoundary, TelemetryProvider, Terminal, TestResults, Textarea, ThreadView, Timeline, TimelineItem, Toast, ToastProvider, Toaster, Tooltip, TooltipContent, TooltipTrigger, TypewriterText, VersionSelector, VideoGrid, VideoPlayer, VideoTile, VoicePill, Waveform, Wizard, altHintState, animatedTextVariants, assignCursorColor, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, badgeGridVariants, badgeItemVariants, badgeVariants, bottomNavTabVariants, bottomNavVariants, breadcrumbItemVariants, breadcrumbSeparatorStyles, breadcrumbsVariants, buttonTokens, buttonVariants, calendarVariants, canAccessAdmin, canAccessReviewer, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, cellVariants, checkIconPath, checkboxTokens, checkboxVariants, clampVoicePillIntensity, codeEditorTokens, codeEditorVariants, collapsibleContentVariants, comboboxContentVariants, comboboxEmptyVariants, comboboxInputVariants, comboboxItemVariants, comboboxListVariants, comboboxTriggerVariants, commandGroupVariants, commandInputVariants, commandItemVariants, commandVariants, contentProtectionVariants, controlsVariants, createAnalytics, createAppInsightsSink, createConsoleSink, createConversation, createCookieConsent, createGA4ClientSdkSink, createGA4HttpSink, createGA4Sink, createIntensitySamples, createPostHogClientSdkSink, createPostHogHttpSink, createPostHogSink, createPreCallLobby, createSegmentedControl, createSilentSamples, createTelemetry, createVoicePill, createWaveform, dayVariants, deviceFrameVariants, dialogContentVariants, drawWaveform, editorVariants, emojiPickerContainerStyles, emojiPickerEmojiButtonStyles, emojiPickerGridStyles, feedbackDialogVariants, fileUploadDropZoneVariants, fileUploadFileItemStyles, fileUploadFileListStyles, findMessage, footerVariants, formatFileSize, formatRelativeTime, formatShortcut, formatTimestamp, getAssignableRoles, getDefaultPortal, getInitials, getNextSegmentIndex, getReplyCount, getVoicePillAriaLabel, getVoicePillInitials, getVoicePillPosition, getVoicePillPulseStyle, getVoicePillSpeakerKey, getVoicePillSpeakerLabel, getWaveformPeak, globalShortcutRegistry, hasAllRoles, hasAnyRole, hasRole, headerVariants, indeterminateIconPath, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupTokens, inputGroupVariants, inputVariants, installPromptVariants, isWaveformSampleInput, latestBadgeVariants, markdownRendererTokens, menuContentVariants, menuItemVariants, micLevelToBars, mobileNavContentVariants, mobileNavLinkVariants, mobileNavTokens, mobileNavTriggerVariants, mobileNavVariants, navLinkVariants, navbarVariants, nextStickyColor, normalizeBarCount, normalizeIntensity, normalizeSmoothing, normalizeWaveformConfig, normalizeWaveformSamples, optionVariants, otpInputContainerVariants, otpInputSlotVariants, otpInputTokens, overlayStyles, overlayVariants, playerVariants, popoverContentVariants, prepareWaveformCanvas, previewVariants, progressBarVariants, proseVariants, radioCircleVariants, radioGroupVariants, radioItemVariants, reactionAddButtonStyles, reactionBarStyles, reactionCountStyles, reactionEmojiStyles, reactionPillVariants, resampleWaveformSamples, resizableDividerVariants, resizableLayoutTokens, resizableLayoutVariants, resizablePaneVariants, rootIdOf, rowVariants, scaleWaveformSamples, searchBarVariants, searchResultVariants, segmentedControlItemVariants, segmentedControlVariants, selectContentVariants, selectItemVariants, selectMainTimeline, selectReplies, selectRoots, selectThreadMessages, selectTimelineFromState, selectTokens, selectTriggerVariants, selectorVariants, sheetContentVariants, sheetOverlayStyles, shortcutBadgeStyles, shortcutKeyStyles, shortcutSeparatorStyles, sidebarItemVariants, sidebarVariants, skeletonVariants, slideTypeBadgeVariants, slideViewerProgressBarVariants, slideViewerTokens, slideViewerVariants, smoothWaveformSamples, startSessionReplay, statCardVariants, statColumns, statsGridVariants, statusContainerStyles, statusDotVariants, statusLabelStyles, statusPulseVariants, switchThumbVariants, switchTokens, switchVariants, tableVariants, tabsListVariants, tabsTriggerVariants, textareaVariants, threadAuthorStyles, threadAvatarStyles, threadBodyStyles, threadContainerStyles, threadContentStyles, threadMessageStyles, threadReactionsStyles, threadTimestampStyles, toCssDimension, toastVariants, toolbarVariants, tooltipContentVariants, typewriterVariants, useAnalytics, useAuth, useConversation, useCookieConsent, useFloatingReactions, useLogger, useShortcut, useSpan, useTelemetry, useToast, useTrackEvent, useWizard, versionSelectorOptionVariants, versionSelectorVariants, voicePillAvatarStyles, voicePillAvatarWrapStyles, voicePillLabelStyles, voicePillMuteButtonStyles, voicePillPositionVariants, voicePillPulseRingStyles, voicePillRootStyles, voicePillSpeakerStyles, voicePillSubStyles, voicePillTextStyles, voicePillTokens, watermarkVariants, waveformCanvasVariants, waveformVariants };
22420
22421
  //# sourceMappingURL=index.js.map
22421
22422
  //# sourceMappingURL=index.js.map