@refraction-ui/react 0.3.4 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var React41 = require('react');
3
+ var React42 = require('react');
4
4
  var jsxRuntime = require('react/jsx-runtime');
5
5
  var ReactDOM = require('react-dom');
6
6
 
@@ -22,7 +22,7 @@ function _interopNamespace(e) {
22
22
  return Object.freeze(n);
23
23
  }
24
24
 
25
- var React41__namespace = /*#__PURE__*/_interopNamespace(React41);
25
+ var React42__namespace = /*#__PURE__*/_interopNamespace(React42);
26
26
  var ReactDOM__namespace = /*#__PURE__*/_interopNamespace(ReactDOM);
27
27
 
28
28
  var __create = Object.create;
@@ -91,6 +91,7 @@ __export(index_exports, {
91
91
  AccordionContent: () => AccordionContent,
92
92
  AccordionItem: () => AccordionItem,
93
93
  AccordionTrigger: () => AccordionTrigger,
94
+ AltHintState: () => AltHintState,
94
95
  AnimatedText: () => AnimatedText,
95
96
  AppShell: () => AppShell,
96
97
  AuthGuard: () => AuthGuard,
@@ -191,6 +192,7 @@ __export(index_exports, {
191
192
  ResizableDivider: () => ResizableDivider,
192
193
  ResizableLayout: () => ResizableLayout,
193
194
  ResizablePane: () => ResizablePane,
195
+ SANE_DEFAULTS: () => SANE_DEFAULTS,
194
196
  STATUS_COLORS: () => STATUS_COLORS2,
195
197
  STATUS_LABELS: () => STATUS_LABELS2,
196
198
  SearchBar: () => SearchBar,
@@ -201,6 +203,10 @@ __export(index_exports, {
201
203
  SelectItem: () => SelectItem,
202
204
  SelectTrigger: () => SelectTrigger,
203
205
  ShortcutBadge: () => ShortcutBadge,
206
+ ShortcutContext: () => ShortcutContext,
207
+ ShortcutHint: () => ShortcutHint,
208
+ ShortcutProvider: () => ShortcutProvider,
209
+ ShortcutRegistry: () => ShortcutRegistry,
204
210
  Sidebar: () => Sidebar,
205
211
  Skeleton: () => Skeleton,
206
212
  SkeletonText: () => SkeletonText,
@@ -229,6 +235,7 @@ __export(index_exports, {
229
235
  TypewriterText: () => TypewriterText,
230
236
  VersionSelector: () => VersionSelector,
231
237
  VideoPlayer: () => VideoPlayer,
238
+ altHintState: () => altHintState,
232
239
  animatedTextVariants: () => animatedTextVariants,
233
240
  avatarFallbackVariants: () => avatarFallbackVariants,
234
241
  avatarImageVariants: () => avatarImageVariants,
@@ -286,6 +293,7 @@ __export(index_exports, {
286
293
  getAssignableRoles: () => getAssignableRoles,
287
294
  getDefaultPortal: () => getDefaultPortal,
288
295
  getInitials: () => getInitials,
296
+ globalShortcutRegistry: () => globalShortcutRegistry,
289
297
  hasAllRoles: () => hasAllRoles,
290
298
  hasAnyRole: () => hasAnyRole,
291
299
  hasRole: () => hasRole,
@@ -375,6 +383,7 @@ __export(index_exports, {
375
383
  tooltipContentVariants: () => tooltipContentVariants,
376
384
  typewriterVariants: () => typewriterVariants,
377
385
  useAuth: () => useAuth,
386
+ useShortcut: () => useShortcut,
378
387
  useTheme: () => useTheme,
379
388
  useToast: () => useToast,
380
389
  versionSelectorOptionVariants: () => optionVariants2,
@@ -496,14 +505,14 @@ function applyThemeToDOM(resolved, attribute = "class") {
496
505
  }
497
506
 
498
507
  // ../react-theme/dist/index.js
499
- var ThemeContext = React41__namespace.createContext(null);
508
+ var ThemeContext = React42__namespace.createContext(null);
500
509
  function ThemeProvider({
501
510
  children,
502
511
  defaultMode = "system",
503
512
  storageKey = "rfr-theme",
504
513
  attribute = "class"
505
514
  }) {
506
- const themeRef = React41__namespace.useRef(null);
515
+ const themeRef = React42__namespace.useRef(null);
507
516
  if (!themeRef.current) {
508
517
  const isBrowser = typeof window !== "undefined";
509
518
  themeRef.current = createTheme(
@@ -512,8 +521,8 @@ function ThemeProvider({
512
521
  isBrowser ? createMediaQueryAdapter() : void 0
513
522
  );
514
523
  }
515
- const [state, setState] = React41__namespace.useState(() => themeRef.current.getState());
516
- React41__namespace.useEffect(() => {
524
+ const [state, setState] = React42__namespace.useState(() => themeRef.current.getState());
525
+ React42__namespace.useEffect(() => {
517
526
  const theme = themeRef.current;
518
527
  applyThemeToDOM(theme.getState().resolved, attribute);
519
528
  const unsub = theme.subscribe((newState) => {
@@ -525,7 +534,7 @@ function ThemeProvider({
525
534
  theme.destroy();
526
535
  };
527
536
  }, [attribute]);
528
- const contextValue = React41__namespace.useMemo(
537
+ const contextValue = React42__namespace.useMemo(
529
538
  () => ({
530
539
  mode: state.mode,
531
540
  resolved: state.resolved,
@@ -533,10 +542,10 @@ function ThemeProvider({
533
542
  }),
534
543
  [state.mode, state.resolved]
535
544
  );
536
- return React41__namespace.createElement(ThemeContext.Provider, { value: contextValue }, children);
545
+ return React42__namespace.createElement(ThemeContext.Provider, { value: contextValue }, children);
537
546
  }
538
547
  function useTheme() {
539
- const context = React41__namespace.useContext(ThemeContext);
548
+ const context = React42__namespace.useContext(ThemeContext);
540
549
  if (!context) {
541
550
  throw new Error("useTheme must be used within a <ThemeProvider>");
542
551
  }
@@ -548,7 +557,7 @@ var modes = [
548
557
  { value: "system", label: "System", icon: "monitor" }
549
558
  ];
550
559
  var icons = {
551
- sun: React41__namespace.createElement(
560
+ sun: React42__namespace.createElement(
552
561
  "svg",
553
562
  {
554
563
  xmlns: "http://www.w3.org/2000/svg",
@@ -561,10 +570,10 @@ var icons = {
561
570
  strokeLinecap: "round",
562
571
  strokeLinejoin: "round"
563
572
  },
564
- React41__namespace.createElement("circle", { cx: 12, cy: 12, r: 5 }),
565
- React41__namespace.createElement("path", { d: "M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42" })
573
+ React42__namespace.createElement("circle", { cx: 12, cy: 12, r: 5 }),
574
+ React42__namespace.createElement("path", { d: "M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42" })
566
575
  ),
567
- moon: React41__namespace.createElement(
576
+ moon: React42__namespace.createElement(
568
577
  "svg",
569
578
  {
570
579
  xmlns: "http://www.w3.org/2000/svg",
@@ -577,9 +586,9 @@ var icons = {
577
586
  strokeLinecap: "round",
578
587
  strokeLinejoin: "round"
579
588
  },
580
- React41__namespace.createElement("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" })
589
+ React42__namespace.createElement("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" })
581
590
  ),
582
- monitor: React41__namespace.createElement(
591
+ monitor: React42__namespace.createElement(
583
592
  "svg",
584
593
  {
585
594
  xmlns: "http://www.w3.org/2000/svg",
@@ -592,15 +601,15 @@ var icons = {
592
601
  strokeLinecap: "round",
593
602
  strokeLinejoin: "round"
594
603
  },
595
- React41__namespace.createElement("rect", { x: 2, y: 3, width: 20, height: 14, rx: 2, ry: 2 }),
596
- React41__namespace.createElement("line", { x1: 8, y1: 21, x2: 16, y2: 21 }),
597
- React41__namespace.createElement("line", { x1: 12, y1: 17, x2: 12, y2: 21 })
604
+ React42__namespace.createElement("rect", { x: 2, y: 3, width: 20, height: 14, rx: 2, ry: 2 }),
605
+ React42__namespace.createElement("line", { x1: 8, y1: 21, x2: 16, y2: 21 }),
606
+ React42__namespace.createElement("line", { x1: 12, y1: 17, x2: 12, y2: 21 })
598
607
  )
599
608
  };
600
609
  function ThemeToggle({ className, variant = "segmented" }) {
601
610
  const { mode, setMode } = useTheme();
602
611
  if (variant === "segmented") {
603
- return React41__namespace.createElement(
612
+ return React42__namespace.createElement(
604
613
  "div",
605
614
  {
606
615
  className: `inline-flex items-center gap-1 rounded-lg border p-1 ${className ?? ""}`,
@@ -608,7 +617,7 @@ function ThemeToggle({ className, variant = "segmented" }) {
608
617
  "aria-label": "Theme"
609
618
  },
610
619
  modes.map(
611
- ({ value, label, icon }) => React41__namespace.createElement("button", {
620
+ ({ value, label, icon }) => React42__namespace.createElement("button", {
612
621
  key: value,
613
622
  type: "button",
614
623
  role: "radio",
@@ -620,9 +629,9 @@ function ThemeToggle({ className, variant = "segmented" }) {
620
629
  )
621
630
  );
622
631
  }
623
- const [open, setOpen] = React41__namespace.useState(false);
624
- const ref = React41__namespace.useRef(null);
625
- React41__namespace.useEffect(() => {
632
+ const [open, setOpen] = React42__namespace.useState(false);
633
+ const ref = React42__namespace.useRef(null);
634
+ React42__namespace.useEffect(() => {
626
635
  if (!open) return;
627
636
  const handler = (e) => {
628
637
  if (ref.current && !ref.current.contains(e.target)) setOpen(false);
@@ -631,24 +640,24 @@ function ThemeToggle({ className, variant = "segmented" }) {
631
640
  return () => document.removeEventListener("mousedown", handler);
632
641
  }, [open]);
633
642
  const currentIcon = modes.find((m) => m.value === mode)?.icon ?? "monitor";
634
- return React41__namespace.createElement(
643
+ return React42__namespace.createElement(
635
644
  "div",
636
645
  { ref, className: `relative ${className ?? ""}` },
637
- React41__namespace.createElement("button", {
646
+ React42__namespace.createElement("button", {
638
647
  type: "button",
639
648
  "aria-label": "Toggle theme",
640
649
  "aria-expanded": open,
641
650
  className: "inline-flex items-center justify-center rounded-md p-2 text-sm transition-colors hover:bg-muted",
642
651
  onClick: () => setOpen(!open)
643
652
  }, icons[currentIcon]),
644
- open && React41__namespace.createElement(
653
+ open && React42__namespace.createElement(
645
654
  "div",
646
655
  {
647
656
  className: "absolute right-0 top-full mt-1 z-50 min-w-[8rem] rounded-md border bg-popover p-1 shadow-md",
648
657
  role: "menu"
649
658
  },
650
659
  modes.map(
651
- ({ value, label, icon }) => React41__namespace.createElement("button", {
660
+ ({ value, label, icon }) => React42__namespace.createElement("button", {
652
661
  key: value,
653
662
  type: "button",
654
663
  role: "menuitem",
@@ -666,7 +675,7 @@ function ThemeScript({
666
675
  storageKey = "rfr-theme",
667
676
  attribute = "class"
668
677
  }) {
669
- return React41__namespace.createElement("script", {
678
+ return React42__namespace.createElement("script", {
670
679
  dangerouslySetInnerHTML: {
671
680
  __html: getThemeScript(storageKey, attribute)
672
681
  }
@@ -784,14 +793,14 @@ function cva(config) {
784
793
  return classes.filter(Boolean).join(" ");
785
794
  };
786
795
  }
787
- var AccordionContext = React41__namespace.createContext(null);
788
- var Accordion = React41__namespace.forwardRef(
796
+ var AccordionContext = React42__namespace.createContext(null);
797
+ var Accordion = React42__namespace.forwardRef(
789
798
  ({ className, type = "single", collapsible, value: controlledValue, defaultValue, onValueChange, ...props }, ref) => {
790
- const [uncontrolledValue, setUncontrolledValue] = React41__namespace.useState(
799
+ const [uncontrolledValue, setUncontrolledValue] = React42__namespace.useState(
791
800
  defaultValue ?? (type === "multiple" ? [] : "")
792
801
  );
793
802
  const value = controlledValue !== void 0 ? controlledValue : uncontrolledValue;
794
- const handleValueChange = React41__namespace.useCallback(
803
+ const handleValueChange = React42__namespace.useCallback(
795
804
  (itemValue) => {
796
805
  if (type === "single") {
797
806
  const newValue = value === itemValue && collapsible ? "" : itemValue;
@@ -810,20 +819,20 @@ var Accordion = React41__namespace.forwardRef(
810
819
  }
811
820
  );
812
821
  Accordion.displayName = "Accordion";
813
- var AccordionItemContext = React41__namespace.createContext(null);
814
- var AccordionItem = React41__namespace.forwardRef(
822
+ var AccordionItemContext = React42__namespace.createContext(null);
823
+ var AccordionItem = React42__namespace.forwardRef(
815
824
  ({ className, value, ...props }, ref) => {
816
- const context = React41__namespace.useContext(AccordionContext);
825
+ const context = React42__namespace.useContext(AccordionContext);
817
826
  if (!context) throw new Error("AccordionItem must be within Accordion");
818
827
  const isOpen = context.type === "single" ? context.value === value : Array.isArray(context.value) && context.value.includes(value);
819
828
  return /* @__PURE__ */ jsxRuntime.jsx(AccordionItemContext.Provider, { value: { value, isOpen }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("border-b border-border", className), "data-state": isOpen ? "open" : "closed", ...props }) });
820
829
  }
821
830
  );
822
831
  AccordionItem.displayName = "AccordionItem";
823
- var AccordionTrigger = React41__namespace.forwardRef(
832
+ var AccordionTrigger = React42__namespace.forwardRef(
824
833
  ({ className, children, ...props }, ref) => {
825
- const accordionContext = React41__namespace.useContext(AccordionContext);
826
- const itemContext = React41__namespace.useContext(AccordionItemContext);
834
+ const accordionContext = React42__namespace.useContext(AccordionContext);
835
+ const itemContext = React42__namespace.useContext(AccordionItemContext);
827
836
  if (!accordionContext || !itemContext) throw new Error("AccordionTrigger missing context");
828
837
  return /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "flex m-0 p-0", children: /* @__PURE__ */ jsxRuntime.jsxs(
829
838
  "button",
@@ -862,9 +871,9 @@ var AccordionTrigger = React41__namespace.forwardRef(
862
871
  }
863
872
  );
864
873
  AccordionTrigger.displayName = "AccordionTrigger";
865
- var AccordionContent = React41__namespace.forwardRef(
874
+ var AccordionContent = React42__namespace.forwardRef(
866
875
  ({ className, children, ...props }, ref) => {
867
- const itemContext = React41__namespace.useContext(AccordionItemContext);
876
+ const itemContext = React42__namespace.useContext(AccordionItemContext);
868
877
  if (!itemContext) throw new Error("AccordionContent missing context");
869
878
  return /* @__PURE__ */ jsxRuntime.jsx(
870
879
  "div",
@@ -946,16 +955,16 @@ var typewriterVariants = cva({
946
955
  cursor: "blinking"
947
956
  }
948
957
  });
949
- var AnimatedText = React41__namespace.forwardRef(
958
+ var AnimatedText = React42__namespace.forwardRef(
950
959
  ({ words, interval = 2500, transitionDuration = 1e3, className, ...props }, ref) => {
951
- const apiRef = React41__namespace.useRef(
960
+ const apiRef = React42__namespace.useRef(
952
961
  createAnimatedText({ words})
953
962
  );
954
963
  const api = apiRef.current;
955
- const [currentIndex, setCurrentIndex] = React41__namespace.useState(0);
956
- const [isExiting, setIsExiting] = React41__namespace.useState(false);
964
+ const [currentIndex, setCurrentIndex] = React42__namespace.useState(0);
965
+ const [isExiting, setIsExiting] = React42__namespace.useState(false);
957
966
  const prefersReducedMotion = typeof globalThis !== "undefined" && typeof globalThis.matchMedia === "function" && globalThis.matchMedia("(prefers-reduced-motion: reduce)").matches;
958
- React41__namespace.useEffect(() => {
967
+ React42__namespace.useEffect(() => {
959
968
  if (words.length <= 1) return;
960
969
  const tick = setInterval(() => {
961
970
  if (prefersReducedMotion) {
@@ -991,13 +1000,13 @@ var AnimatedText = React41__namespace.forwardRef(
991
1000
  }
992
1001
  );
993
1002
  AnimatedText.displayName = "AnimatedText";
994
- var TypewriterText = React41__namespace.forwardRef(
1003
+ var TypewriterText = React42__namespace.forwardRef(
995
1004
  ({ text, speed = 50, startDelay = 0, className, ...props }, ref) => {
996
- const apiRef = React41__namespace.useRef(createTypewriter({ text}));
1005
+ const apiRef = React42__namespace.useRef(createTypewriter({ text}));
997
1006
  const api = apiRef.current;
998
- const [currentIndex, setCurrentIndex] = React41__namespace.useState(0);
1007
+ const [currentIndex, setCurrentIndex] = React42__namespace.useState(0);
999
1008
  const prefersReducedMotion = typeof globalThis !== "undefined" && typeof globalThis.matchMedia === "function" && globalThis.matchMedia("(prefers-reduced-motion: reduce)").matches;
1000
- React41__namespace.useEffect(() => {
1009
+ React42__namespace.useEffect(() => {
1001
1010
  if (prefersReducedMotion) {
1002
1011
  api.state.currentIndex = text.length;
1003
1012
  setCurrentIndex(text.length);
@@ -1158,24 +1167,24 @@ function getAssignableRoles(user) {
1158
1167
  }
1159
1168
 
1160
1169
  // ../react-auth/dist/index.js
1161
- var AuthContext = React41__namespace.createContext(null);
1170
+ var AuthContext = React42__namespace.createContext(null);
1162
1171
  function AuthProvider({ children, ...config }) {
1163
- const authRef = React41__namespace.useRef(null);
1172
+ const authRef = React42__namespace.useRef(null);
1164
1173
  if (!authRef.current) {
1165
1174
  if (!config.adapter && !config.testMode) {
1166
1175
  throw new Error("[refraction-ui/react-auth] You must provide an `adapter` to AuthProvider.");
1167
1176
  }
1168
1177
  authRef.current = createAuth(config.adapter, config);
1169
1178
  }
1170
- const [state, setState] = React41__namespace.useState(() => authRef.current.getState());
1171
- React41__namespace.useEffect(() => {
1179
+ const [state, setState] = React42__namespace.useState(() => authRef.current.getState());
1180
+ React42__namespace.useEffect(() => {
1172
1181
  const unsub = authRef.current.subscribe(setState);
1173
1182
  return () => {
1174
1183
  unsub();
1175
1184
  authRef.current.destroy();
1176
1185
  };
1177
1186
  }, []);
1178
- const value = React41__namespace.useMemo(
1187
+ const value = React42__namespace.useMemo(
1179
1188
  () => ({
1180
1189
  user: state.user,
1181
1190
  isLoading: state.status === "loading",
@@ -1189,10 +1198,10 @@ function AuthProvider({ children, ...config }) {
1189
1198
  }),
1190
1199
  [state.user, state.status]
1191
1200
  );
1192
- return React41__namespace.createElement(AuthContext.Provider, { value }, children);
1201
+ return React42__namespace.createElement(AuthContext.Provider, { value }, children);
1193
1202
  }
1194
1203
  function useAuth() {
1195
- const ctx = React41__namespace.useContext(AuthContext);
1204
+ const ctx = React42__namespace.useContext(AuthContext);
1196
1205
  if (!ctx) {
1197
1206
  throw new Error("useAuth must be used within an <AuthProvider>");
1198
1207
  }
@@ -1206,15 +1215,15 @@ function AuthGuard({
1206
1215
  }) {
1207
1216
  const { isLoading, isAuthenticated, user } = useAuth();
1208
1217
  if (isLoading) {
1209
- return React41__namespace.createElement(React41__namespace.Fragment, null, fallback ?? null);
1218
+ return React42__namespace.createElement(React42__namespace.Fragment, null, fallback ?? null);
1210
1219
  }
1211
1220
  if (!isAuthenticated) {
1212
- return React41__namespace.createElement(React41__namespace.Fragment, null, fallback ?? null);
1221
+ return React42__namespace.createElement(React42__namespace.Fragment, null, fallback ?? null);
1213
1222
  }
1214
1223
  if (roles && roles.length > 0 && !hasAnyRole(user, roles)) {
1215
- return React41__namespace.createElement(React41__namespace.Fragment, null, unauthorized ?? null);
1224
+ return React42__namespace.createElement(React42__namespace.Fragment, null, unauthorized ?? null);
1216
1225
  }
1217
- return React41__namespace.createElement(React41__namespace.Fragment, null, children);
1226
+ return React42__namespace.createElement(React42__namespace.Fragment, null, children);
1218
1227
  }
1219
1228
 
1220
1229
  // ../badge/dist/index.js
@@ -1254,7 +1263,7 @@ var badgeVariants = cva({
1254
1263
  size: "md"
1255
1264
  }
1256
1265
  });
1257
- var Badge = React41__namespace.forwardRef(
1266
+ var Badge = React42__namespace.forwardRef(
1258
1267
  ({ variant, size, className, children, ...props }, ref) => {
1259
1268
  const api = createBadge({ variant});
1260
1269
  const classes = cn(badgeVariants({ variant, size }), className);
@@ -1301,7 +1310,7 @@ var bottomNavTabVariants = cva({
1301
1310
  active: "false"
1302
1311
  }
1303
1312
  });
1304
- var BottomNav = React41__namespace.forwardRef(
1313
+ var BottomNav = React42__namespace.forwardRef(
1305
1314
  ({ tabs = [], currentPath, className, ...props }, ref) => {
1306
1315
  const api = createBottomNav({ currentPath });
1307
1316
  const classes = cn(bottomNavVariants(), className);
@@ -1374,7 +1383,7 @@ var breadcrumbItemVariants = cva({
1374
1383
  }
1375
1384
  });
1376
1385
  var breadcrumbSeparatorStyles = "text-muted-foreground/50 select-none";
1377
- var Breadcrumbs = React41__namespace.forwardRef(
1386
+ var Breadcrumbs = React42__namespace.forwardRef(
1378
1387
  ({
1379
1388
  pathname,
1380
1389
  items,
@@ -1481,31 +1490,341 @@ var buttonVariants = cva({
1481
1490
  size: "default"
1482
1491
  }
1483
1492
  });
1484
- var Button = React41__namespace.forwardRef(
1485
- ({ variant, size, loading, asChild, className, disabled, children, ...props }, ref) => {
1493
+
1494
+ // ../keyboard-shortcut/dist/index.js
1495
+ var MODIFIER_KEYS = /* @__PURE__ */ new Set(["Ctrl", "Control", "Alt", "Shift", "Meta", "Cmd", "Command"]);
1496
+ var KEY_DISPLAY = {
1497
+ "Ctrl": "Ctrl",
1498
+ "Control": "Ctrl",
1499
+ "Alt": "Alt",
1500
+ "Shift": "Shift",
1501
+ "Meta": "Meta",
1502
+ "Cmd": "Cmd",
1503
+ "Command": "Cmd",
1504
+ "Enter": "\u21B5",
1505
+ "Backspace": "\u232B",
1506
+ "Delete": "Del",
1507
+ "Escape": "Esc",
1508
+ "ArrowUp": "\u2191",
1509
+ "ArrowDown": "\u2193",
1510
+ "ArrowLeft": "\u2190",
1511
+ "ArrowRight": "\u2192",
1512
+ "Tab": "Tab",
1513
+ " ": "Space"
1514
+ };
1515
+ var MAC_KEY_DISPLAY = {
1516
+ "Ctrl": "\u2303",
1517
+ "Control": "\u2303",
1518
+ "Alt": "\u2325",
1519
+ "Shift": "\u21E7",
1520
+ "Meta": "\u2318",
1521
+ "Cmd": "\u2318",
1522
+ "Command": "\u2318",
1523
+ "Enter": "\u21B5",
1524
+ "Backspace": "\u232B",
1525
+ "Delete": "\u2326",
1526
+ "Escape": "\u238B",
1527
+ "ArrowUp": "\u2191",
1528
+ "ArrowDown": "\u2193",
1529
+ "ArrowLeft": "\u2190",
1530
+ "ArrowRight": "\u2192",
1531
+ "Tab": "\u21E5",
1532
+ " ": "\u2423"
1533
+ };
1534
+ function normalizeKey(key) {
1535
+ if (key === "Command" || key === "Cmd") return "Meta";
1536
+ if (key === "Control") return "Ctrl";
1537
+ return key;
1538
+ }
1539
+ function isMac() {
1540
+ if (typeof navigator !== "undefined") {
1541
+ return navigator.platform?.includes("Mac") || navigator.userAgent?.includes("Mac");
1542
+ }
1543
+ return false;
1544
+ }
1545
+ function formatShortcut(keys, mac) {
1546
+ const displayMap = mac ? MAC_KEY_DISPLAY : KEY_DISPLAY;
1547
+ return keys.map((key) => displayMap[key] ?? key.toUpperCase()).join(mac ? "" : "+");
1548
+ }
1549
+ function createKeyboardShortcut(props) {
1550
+ const {
1551
+ keys,
1552
+ onTrigger,
1553
+ enabled: enabledProp = true,
1554
+ preventDefault: preventDefaultProp = true
1555
+ } = props;
1556
+ const normalizedKeys = keys.map(normalizeKey);
1557
+ const modifiers = normalizedKeys.filter((k) => MODIFIER_KEYS.has(k));
1558
+ const regularKeys = normalizedKeys.filter((k) => !MODIFIER_KEYS.has(k));
1559
+ function handler(event) {
1560
+ if (!enabledProp) return false;
1561
+ const ctrlRequired = modifiers.includes("Ctrl");
1562
+ const altRequired = modifiers.includes("Alt");
1563
+ const shiftRequired = modifiers.includes("Shift");
1564
+ const metaRequired = modifiers.includes("Meta");
1565
+ if (ctrlRequired !== (event.ctrlKey || event.metaKey && !metaRequired)) ;
1566
+ const ctrlMatch = ctrlRequired ? event.ctrlKey : !event.ctrlKey;
1567
+ const altMatch = altRequired ? event.altKey : !event.altKey;
1568
+ const shiftMatch = shiftRequired ? event.shiftKey : !event.shiftKey;
1569
+ const metaMatch = metaRequired ? event.metaKey : !event.metaKey;
1570
+ if (!ctrlMatch || !altMatch || !shiftMatch || !metaMatch) return false;
1571
+ if (regularKeys.length > 0) {
1572
+ const eventKey = event.key.length === 1 ? event.key.toUpperCase() : event.key;
1573
+ const targetKey = regularKeys[0].length === 1 ? regularKeys[0].toUpperCase() : regularKeys[0];
1574
+ if (eventKey !== targetKey) return false;
1575
+ }
1576
+ if (preventDefaultProp) {
1577
+ event.preventDefault();
1578
+ }
1579
+ onTrigger();
1580
+ return true;
1581
+ }
1582
+ const mac = isMac();
1583
+ const display = formatShortcut(keys, false);
1584
+ const platformDisplay = formatShortcut(keys, mac);
1585
+ const badgeAriaProps = {
1586
+ "aria-hidden": true,
1587
+ role: "presentation"
1588
+ };
1589
+ return {
1590
+ handler,
1591
+ display,
1592
+ platformDisplay,
1593
+ enabled: enabledProp,
1594
+ keys,
1595
+ badgeAriaProps
1596
+ };
1597
+ }
1598
+ var SANE_DEFAULTS = {
1599
+ save: ["Meta", "s"],
1600
+ search: ["Meta", "k"],
1601
+ close: ["Escape"],
1602
+ submit: ["Meta", "Enter"],
1603
+ undo: ["Meta", "z"],
1604
+ redo: ["Meta", "Shift", "z"],
1605
+ copy: ["Meta", "c"],
1606
+ paste: ["Meta", "v"],
1607
+ cut: ["Meta", "x"],
1608
+ new: ["Meta", "n"],
1609
+ print: ["Meta", "p"],
1610
+ help: ["?"]
1611
+ };
1612
+ var ShortcutRegistry = class {
1613
+ shortcuts = /* @__PURE__ */ new Map();
1614
+ register(keys, handler) {
1615
+ const keyStr = keys.map((k) => k.toLowerCase()).sort().join("+");
1616
+ if (this.shortcuts.has(keyStr)) {
1617
+ console.warn(`Shortcut ${keyStr} is already registered.`);
1618
+ }
1619
+ this.shortcuts.set(keyStr, handler);
1620
+ }
1621
+ unregister(keys) {
1622
+ const keyStr = keys.map((k) => k.toLowerCase()).sort().join("+");
1623
+ this.shortcuts.delete(keyStr);
1624
+ }
1625
+ };
1626
+ var globalShortcutRegistry = new ShortcutRegistry();
1627
+ var AltHintState = class {
1628
+ showHints = false;
1629
+ listeners = /* @__PURE__ */ new Set();
1630
+ initialized = false;
1631
+ init() {
1632
+ if (this.initialized || typeof window === "undefined") return;
1633
+ this.initialized = true;
1634
+ const handleKeyDown = (e) => {
1635
+ if (e.key === "Alt") {
1636
+ this.setShowHints(true);
1637
+ }
1638
+ };
1639
+ const handleKeyUp = (e) => {
1640
+ if (e.key === "Alt") {
1641
+ this.setShowHints(false);
1642
+ }
1643
+ };
1644
+ const handleBlur = () => {
1645
+ this.setShowHints(false);
1646
+ };
1647
+ window.addEventListener("keydown", handleKeyDown);
1648
+ window.addEventListener("keyup", handleKeyUp);
1649
+ window.addEventListener("blur", handleBlur);
1650
+ }
1651
+ setShowHints(value) {
1652
+ if (this.showHints !== value) {
1653
+ this.showHints = value;
1654
+ this.listeners.forEach((listener) => listener(value));
1655
+ }
1656
+ }
1657
+ subscribe(listener) {
1658
+ this.listeners.add(listener);
1659
+ listener(this.showHints);
1660
+ return () => {
1661
+ this.listeners.delete(listener);
1662
+ };
1663
+ }
1664
+ get snapshot() {
1665
+ return this.showHints;
1666
+ }
1667
+ };
1668
+ var altHintState = new AltHintState();
1669
+ var shortcutBadgeStyles = "inline-flex items-center gap-0.5 rounded border bg-muted px-1.5 py-0.5 text-xs font-mono text-muted-foreground";
1670
+ var shortcutKeyStyles = "inline-flex items-center justify-center min-w-[1.25rem] rounded bg-background px-1 py-0.5 text-xs font-mono border shadow-sm";
1671
+ var shortcutSeparatorStyles = "text-muted-foreground text-xs";
1672
+ var ShortcutContext = React42__namespace.createContext(false);
1673
+ function ShortcutProvider({ children }) {
1674
+ const [showHints, setShowHints] = React42__namespace.useState(altHintState.snapshot);
1675
+ React42__namespace.useEffect(() => {
1676
+ altHintState.init();
1677
+ return altHintState.subscribe(setShowHints);
1678
+ }, []);
1679
+ return /* @__PURE__ */ jsxRuntime.jsx(ShortcutContext.Provider, { value: showHints, children });
1680
+ }
1681
+ function useShortcut({
1682
+ shortcut,
1683
+ action,
1684
+ onTrigger,
1685
+ enabled = true,
1686
+ preventDefault = true
1687
+ }) {
1688
+ const showHints = React42__namespace.useContext(ShortcutContext);
1689
+ const keys = React42__namespace.useMemo(() => {
1690
+ if (shortcut) {
1691
+ return shortcut.split("+").map((s) => s.trim());
1692
+ }
1693
+ if (action && SANE_DEFAULTS[action]) {
1694
+ return SANE_DEFAULTS[action];
1695
+ }
1696
+ return [];
1697
+ }, [shortcut, action]);
1698
+ const apiRef = React42__namespace.useRef(
1699
+ createKeyboardShortcut({ keys, onTrigger, enabled, preventDefault })
1700
+ );
1701
+ React42__namespace.useEffect(() => {
1702
+ apiRef.current = createKeyboardShortcut({ keys, onTrigger, enabled, preventDefault });
1703
+ }, [keys, onTrigger, enabled, preventDefault]);
1704
+ React42__namespace.useEffect(() => {
1705
+ if (!enabled || keys.length === 0) return;
1706
+ const handler = () => {
1707
+ apiRef.current.handler(new KeyboardEvent("keydown"));
1708
+ };
1709
+ globalShortcutRegistry.register(keys, handler);
1710
+ const handleKeyDown = (e) => {
1711
+ apiRef.current.handler(e);
1712
+ };
1713
+ document.addEventListener("keydown", handleKeyDown);
1714
+ return () => {
1715
+ document.removeEventListener("keydown", handleKeyDown);
1716
+ globalShortcutRegistry.unregister(keys);
1717
+ };
1718
+ }, [enabled, keys]);
1719
+ return { keys, showHints };
1720
+ }
1721
+ function ShortcutHint({ shortcut, action, className, platform = true, ...props }) {
1722
+ const showHints = React42__namespace.useContext(ShortcutContext);
1723
+ const keys = React42__namespace.useMemo(() => {
1724
+ if (shortcut) {
1725
+ return shortcut.split("+").map((s) => s.trim());
1726
+ }
1727
+ if (action && SANE_DEFAULTS[action]) {
1728
+ return SANE_DEFAULTS[action];
1729
+ }
1730
+ return [];
1731
+ }, [shortcut, action]);
1732
+ if (!showHints || keys.length === 0) return null;
1733
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none z-10", className), children: /* @__PURE__ */ jsxRuntime.jsx(ShortcutBadge, { keys, platform, ...props }) });
1734
+ }
1735
+ function KeyboardShortcut({
1736
+ keys,
1737
+ onTrigger,
1738
+ enabled = true,
1739
+ preventDefault = true
1740
+ }) {
1741
+ const apiRef = React42__namespace.useRef(
1742
+ createKeyboardShortcut({ keys, onTrigger, enabled, preventDefault })
1743
+ );
1744
+ React42__namespace.useEffect(() => {
1745
+ apiRef.current = createKeyboardShortcut({ keys, onTrigger, enabled, preventDefault });
1746
+ }, [keys, onTrigger, enabled, preventDefault]);
1747
+ React42__namespace.useEffect(() => {
1748
+ if (!enabled) return;
1749
+ const handleKeyDown = (e) => {
1750
+ apiRef.current.handler(e);
1751
+ };
1752
+ document.addEventListener("keydown", handleKeyDown);
1753
+ return () => document.removeEventListener("keydown", handleKeyDown);
1754
+ }, [enabled]);
1755
+ return null;
1756
+ }
1757
+ KeyboardShortcut.displayName = "KeyboardShortcut";
1758
+ function ShortcutBadge({ keys, platform = true, className }) {
1759
+ const api = createKeyboardShortcut({ keys, onTrigger: () => {
1760
+ }, enabled: false });
1761
+ const displayKeys = platform ? api.platformDisplay : api.display;
1762
+ const isMacDisplay = platform && displayKeys !== api.display;
1763
+ return React42__namespace.createElement(
1764
+ "kbd",
1765
+ { ...api.badgeAriaProps, className: cn(shortcutBadgeStyles, className) },
1766
+ isMacDisplay ? React42__namespace.createElement("span", null, displayKeys) : keys.map(
1767
+ (key, i) => React42__namespace.createElement(
1768
+ React42__namespace.Fragment,
1769
+ { key: i },
1770
+ i > 0 && React42__namespace.createElement("span", { className: shortcutSeparatorStyles }, "+"),
1771
+ React42__namespace.createElement(
1772
+ "span",
1773
+ { className: shortcutKeyStyles },
1774
+ formatShortcut([key], false)
1775
+ )
1776
+ )
1777
+ )
1778
+ );
1779
+ }
1780
+ ShortcutBadge.displayName = "ShortcutBadge";
1781
+ var Button = React42__namespace.forwardRef(
1782
+ ({ variant, size, loading, asChild, className, disabled, children, shortcut, action, ...props }, ref) => {
1486
1783
  const api = createButton({ disabled, loading, type: props.type });
1487
1784
  const classes = cn(buttonVariants({ variant, size }), className);
1488
- if (asChild && React41__namespace.isValidElement(children)) {
1489
- return React41__namespace.cloneElement(children, {
1490
- ref,
1491
- className: cn(classes, children.props.className),
1785
+ const internalRef = React42__namespace.useRef(null);
1786
+ const mergedRef = React42__namespace.useCallback(
1787
+ (node) => {
1788
+ internalRef.current = node;
1789
+ if (typeof ref === "function") ref(node);
1790
+ else if (ref) ref.current = node;
1791
+ },
1792
+ [ref]
1793
+ );
1794
+ useShortcut({
1795
+ shortcut,
1796
+ action,
1797
+ enabled: !disabled && !loading && (!!shortcut || !!action),
1798
+ onTrigger: () => {
1799
+ internalRef.current?.click();
1800
+ }
1801
+ });
1802
+ if (asChild && React42__namespace.isValidElement(children)) {
1803
+ return React42__namespace.cloneElement(children, {
1804
+ ref: mergedRef,
1805
+ className: cn(classes, children.props.className, "relative"),
1492
1806
  type: getButtonType({ type: props.type }),
1493
1807
  ...api.ariaProps,
1494
1808
  ...api.dataAttributes,
1495
- ...props
1809
+ ...props,
1810
+ children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1811
+ (shortcut || action) && /* @__PURE__ */ jsxRuntime.jsx(ShortcutHint, { shortcut, action, className: "right-4" }),
1812
+ children.props.children
1813
+ ] })
1496
1814
  });
1497
1815
  }
1498
1816
  return /* @__PURE__ */ jsxRuntime.jsxs(
1499
1817
  "button",
1500
1818
  {
1501
- ref,
1819
+ ref: mergedRef,
1502
1820
  type: getButtonType({ type: props.type }),
1503
- className: classes,
1821
+ className: cn(classes, "relative"),
1504
1822
  disabled: disabled || loading,
1505
1823
  ...api.ariaProps,
1506
1824
  ...api.dataAttributes,
1507
1825
  ...props,
1508
1826
  children: [
1827
+ (shortcut || action) && /* @__PURE__ */ jsxRuntime.jsx(ShortcutHint, { shortcut, action, className: "right-4" }),
1509
1828
  loading && /* @__PURE__ */ jsxRuntime.jsxs(
1510
1829
  "svg",
1511
1830
  {
@@ -1693,15 +2012,15 @@ function Calendar({
1693
2012
  maxDate,
1694
2013
  disabledDates
1695
2014
  }) {
1696
- const [uncontrolledValue, setUncontrolledValue] = React41__namespace.useState(defaultValue);
1697
- const [uncontrolledMonth, setUncontrolledMonth] = React41__namespace.useState(
2015
+ const [uncontrolledValue, setUncontrolledValue] = React42__namespace.useState(defaultValue);
2016
+ const [uncontrolledMonth, setUncontrolledMonth] = React42__namespace.useState(
1698
2017
  () => month ?? value ?? defaultValue ?? /* @__PURE__ */ new Date()
1699
2018
  );
1700
2019
  const isValueControlled = value !== void 0;
1701
2020
  const isMonthControlled = month !== void 0;
1702
2021
  const selectedValue = isValueControlled ? value : uncontrolledValue;
1703
2022
  const displayMonth = isMonthControlled ? month : uncontrolledMonth;
1704
- const handleSelect = React41__namespace.useCallback(
2023
+ const handleSelect = React42__namespace.useCallback(
1705
2024
  (date) => {
1706
2025
  if (!isValueControlled) {
1707
2026
  setUncontrolledValue(date);
@@ -1710,7 +2029,7 @@ function Calendar({
1710
2029
  },
1711
2030
  [isValueControlled, onSelect]
1712
2031
  );
1713
- const handleMonthChange = React41__namespace.useCallback(
2032
+ const handleMonthChange = React42__namespace.useCallback(
1714
2033
  (m) => {
1715
2034
  if (!isMonthControlled) {
1716
2035
  setUncontrolledMonth(m);
@@ -1736,28 +2055,28 @@ function Calendar({
1736
2055
  return "default";
1737
2056
  }
1738
2057
  const monthLabel = `${MONTH_NAMES[api.state.currentMonth.getMonth()]} ${api.state.currentMonth.getFullYear()}`;
1739
- return React41__namespace.createElement(
2058
+ return React42__namespace.createElement(
1740
2059
  "div",
1741
2060
  {
1742
2061
  className: cn(calendarVariants(), className),
1743
2062
  ...api.ariaProps
1744
2063
  },
1745
2064
  // Header row: prev, month label, next
1746
- React41__namespace.createElement(CalendarHeader, {
2065
+ React42__namespace.createElement(CalendarHeader, {
1747
2066
  label: monthLabel,
1748
2067
  labelId: api.ids.label,
1749
2068
  onPrevMonth: api.prevMonth,
1750
2069
  onNextMonth: api.nextMonth
1751
2070
  }),
1752
2071
  // Day-of-week headers
1753
- React41__namespace.createElement(
2072
+ React42__namespace.createElement(
1754
2073
  "div",
1755
2074
  {
1756
2075
  className: "grid grid-cols-7 gap-1 mb-1",
1757
2076
  role: "row"
1758
2077
  },
1759
2078
  DAY_HEADERS.map(
1760
- (d) => React41__namespace.createElement(
2079
+ (d) => React42__namespace.createElement(
1761
2080
  "div",
1762
2081
  {
1763
2082
  key: d,
@@ -1770,7 +2089,7 @@ function Calendar({
1770
2089
  )
1771
2090
  ),
1772
2091
  // Day grid
1773
- React41__namespace.createElement(
2092
+ React42__namespace.createElement(
1774
2093
  "div",
1775
2094
  {
1776
2095
  className: "grid grid-cols-7 gap-1",
@@ -1779,7 +2098,7 @@ function Calendar({
1779
2098
  api.days.map((day, i) => {
1780
2099
  const dayAriaProps = api.getDayAriaProps(day);
1781
2100
  const state = getDayState(day);
1782
- return React41__namespace.createElement(
2101
+ return React42__namespace.createElement(
1783
2102
  "button",
1784
2103
  {
1785
2104
  key: i,
@@ -1803,12 +2122,12 @@ function CalendarHeader({
1803
2122
  onNextMonth,
1804
2123
  className
1805
2124
  }) {
1806
- return React41__namespace.createElement(
2125
+ return React42__namespace.createElement(
1807
2126
  "div",
1808
2127
  {
1809
2128
  className: cn("flex items-center justify-between mb-2", className)
1810
2129
  },
1811
- React41__namespace.createElement(
2130
+ React42__namespace.createElement(
1812
2131
  "button",
1813
2132
  {
1814
2133
  type: "button",
@@ -1818,7 +2137,7 @@ function CalendarHeader({
1818
2137
  },
1819
2138
  "\u2039"
1820
2139
  ),
1821
- React41__namespace.createElement(
2140
+ React42__namespace.createElement(
1822
2141
  "div",
1823
2142
  {
1824
2143
  id: labelId,
@@ -1827,7 +2146,7 @@ function CalendarHeader({
1827
2146
  },
1828
2147
  label
1829
2148
  ),
1830
- React41__namespace.createElement(
2149
+ React42__namespace.createElement(
1831
2150
  "button",
1832
2151
  {
1833
2152
  type: "button",
@@ -1960,7 +2279,7 @@ var codeEditorVariants = cva({
1960
2279
  size: "default"
1961
2280
  }
1962
2281
  });
1963
- var CodeEditor = React41__namespace.forwardRef(
2282
+ var CodeEditor = React42__namespace.forwardRef(
1964
2283
  ({
1965
2284
  value = "",
1966
2285
  onChange,
@@ -2076,9 +2395,9 @@ var collapsibleContentVariants = cva({
2076
2395
  });
2077
2396
 
2078
2397
  // ../react-collapsible/dist/index.js
2079
- var CollapsibleContext = React41__namespace.createContext(null);
2398
+ var CollapsibleContext = React42__namespace.createContext(null);
2080
2399
  function useCollapsibleContext() {
2081
- const ctx = React41__namespace.useContext(CollapsibleContext);
2400
+ const ctx = React42__namespace.useContext(CollapsibleContext);
2082
2401
  if (!ctx) {
2083
2402
  throw new Error(
2084
2403
  "Collapsible compound components must be used within <Collapsible>"
@@ -2094,10 +2413,10 @@ function Collapsible({
2094
2413
  children,
2095
2414
  className
2096
2415
  }) {
2097
- const [uncontrolledOpen, setUncontrolledOpen] = React41__namespace.useState(defaultOpen);
2416
+ const [uncontrolledOpen, setUncontrolledOpen] = React42__namespace.useState(defaultOpen);
2098
2417
  const isControlled = controlledOpen !== void 0;
2099
2418
  const open = isControlled ? controlledOpen : uncontrolledOpen;
2100
- const handleOpenChange = React41__namespace.useCallback(
2419
+ const handleOpenChange = React42__namespace.useCallback(
2101
2420
  (next) => {
2102
2421
  if (!isControlled) {
2103
2422
  setUncontrolledOpen(next);
@@ -2106,12 +2425,12 @@ function Collapsible({
2106
2425
  },
2107
2426
  [isControlled, onOpenChange]
2108
2427
  );
2109
- const apiRef = React41__namespace.useRef(null);
2428
+ const apiRef = React42__namespace.useRef(null);
2110
2429
  if (apiRef.current === null) {
2111
2430
  apiRef.current = createCollapsible({ open, defaultOpen, disabled });
2112
2431
  }
2113
2432
  const contentId = apiRef.current.contentProps.id;
2114
- const ctx = React41__namespace.useMemo(
2433
+ const ctx = React42__namespace.useMemo(
2115
2434
  () => ({
2116
2435
  open,
2117
2436
  onOpenChange: handleOpenChange,
@@ -2120,10 +2439,10 @@ function Collapsible({
2120
2439
  }),
2121
2440
  [open, handleOpenChange, disabled, contentId]
2122
2441
  );
2123
- return React41__namespace.createElement(
2442
+ return React42__namespace.createElement(
2124
2443
  CollapsibleContext.Provider,
2125
2444
  { value: ctx },
2126
- React41__namespace.createElement(
2445
+ React42__namespace.createElement(
2127
2446
  "div",
2128
2447
  {
2129
2448
  "data-state": open ? "open" : "closed",
@@ -2135,7 +2454,7 @@ function Collapsible({
2135
2454
  );
2136
2455
  }
2137
2456
  Collapsible.displayName = "Collapsible";
2138
- var CollapsibleTrigger = React41__namespace.forwardRef(({ onClick, disabled: disabledProp, children, ...props }, ref) => {
2457
+ var CollapsibleTrigger = React42__namespace.forwardRef(({ onClick, disabled: disabledProp, children, ...props }, ref) => {
2139
2458
  const { open, onOpenChange, disabled: ctxDisabled, contentId } = useCollapsibleContext();
2140
2459
  const disabled = disabledProp ?? ctxDisabled;
2141
2460
  const handleClick = (e) => {
@@ -2144,7 +2463,7 @@ var CollapsibleTrigger = React41__namespace.forwardRef(({ onClick, disabled: dis
2144
2463
  }
2145
2464
  onClick?.(e);
2146
2465
  };
2147
- return React41__namespace.createElement(
2466
+ return React42__namespace.createElement(
2148
2467
  "button",
2149
2468
  {
2150
2469
  ref,
@@ -2161,11 +2480,11 @@ var CollapsibleTrigger = React41__namespace.forwardRef(({ onClick, disabled: dis
2161
2480
  );
2162
2481
  });
2163
2482
  CollapsibleTrigger.displayName = "CollapsibleTrigger";
2164
- var CollapsibleContent = React41__namespace.forwardRef(({ className, children, ...props }, ref) => {
2483
+ var CollapsibleContent = React42__namespace.forwardRef(({ className, children, ...props }, ref) => {
2165
2484
  const { open, contentId } = useCollapsibleContext();
2166
2485
  const dataState = open ? "open" : "closed";
2167
2486
  if (!open) return null;
2168
- return React41__namespace.createElement(
2487
+ return React42__namespace.createElement(
2169
2488
  "div",
2170
2489
  {
2171
2490
  ref,
@@ -2310,9 +2629,9 @@ var commandGroupVariants = cva({
2310
2629
  });
2311
2630
 
2312
2631
  // ../react-command/dist/index.js
2313
- var CommandContext = React41__namespace.createContext(null);
2632
+ var CommandContext = React42__namespace.createContext(null);
2314
2633
  function useCommandContext() {
2315
- const ctx = React41__namespace.useContext(CommandContext);
2634
+ const ctx = React42__namespace.useContext(CommandContext);
2316
2635
  if (!ctx) {
2317
2636
  throw new Error("Command compound components must be used within <Command>");
2318
2637
  }
@@ -2325,11 +2644,11 @@ function Command({
2325
2644
  className,
2326
2645
  children
2327
2646
  }) {
2328
- const [items, setItems] = React41__namespace.useState([]);
2329
- const [search, setSearch] = React41__namespace.useState("");
2330
- const [selectedIndex, setSelectedIndex] = React41__namespace.useState(0);
2331
- const apiRef = React41__namespace.useRef(null);
2332
- const api = React41__namespace.useMemo(() => {
2647
+ const [items, setItems] = React42__namespace.useState([]);
2648
+ const [search, setSearch] = React42__namespace.useState("");
2649
+ const [selectedIndex, setSelectedIndex] = React42__namespace.useState(0);
2650
+ const apiRef = React42__namespace.useRef(null);
2651
+ const api = React42__namespace.useMemo(() => {
2333
2652
  const instance = createCommand({ open, onOpenChange, filter }, items);
2334
2653
  if (search) {
2335
2654
  instance.search(search);
@@ -2338,23 +2657,23 @@ function Command({
2338
2657
  return instance;
2339
2658
  }, [open, onOpenChange, filter, items, search]);
2340
2659
  const filteredItems = api.state.filteredItems;
2341
- const handleSearch = React41__namespace.useCallback((query) => {
2660
+ const handleSearch = React42__namespace.useCallback((query) => {
2342
2661
  setSearch(query);
2343
2662
  setSelectedIndex(0);
2344
2663
  }, []);
2345
- const handleSelect = React41__namespace.useCallback((index) => {
2664
+ const handleSelect = React42__namespace.useCallback((index) => {
2346
2665
  setSelectedIndex(index);
2347
2666
  }, []);
2348
- const registerItem = React41__namespace.useCallback((item) => {
2667
+ const registerItem = React42__namespace.useCallback((item) => {
2349
2668
  setItems((prev) => {
2350
2669
  if (prev.some((i) => i.id === item.id)) return prev;
2351
2670
  return [...prev, item];
2352
2671
  });
2353
2672
  }, []);
2354
- const unregisterItem = React41__namespace.useCallback((id) => {
2673
+ const unregisterItem = React42__namespace.useCallback((id) => {
2355
2674
  setItems((prev) => prev.filter((i) => i.id !== id));
2356
2675
  }, []);
2357
- const handleKeyDown = React41__namespace.useCallback(
2676
+ const handleKeyDown = React42__namespace.useCallback(
2358
2677
  (e) => {
2359
2678
  const handler = createKeyboardHandler({
2360
2679
  [Keys.ArrowDown]: (ev) => {
@@ -2381,7 +2700,7 @@ function Command({
2381
2700
  },
2382
2701
  [filteredItems.length, onOpenChange]
2383
2702
  );
2384
- const ctx = React41__namespace.useMemo(
2703
+ const ctx = React42__namespace.useMemo(
2385
2704
  () => ({
2386
2705
  search,
2387
2706
  onSearch: handleSearch,
@@ -2396,10 +2715,10 @@ function Command({
2396
2715
  }),
2397
2716
  [search, handleSearch, selectedIndex, handleSelect, items, filteredItems, registerItem, unregisterItem, api.ids.list, api.ids.input]
2398
2717
  );
2399
- return React41__namespace.createElement(
2718
+ return React42__namespace.createElement(
2400
2719
  CommandContext.Provider,
2401
2720
  { value: ctx },
2402
- React41__namespace.createElement(
2721
+ React42__namespace.createElement(
2403
2722
  "div",
2404
2723
  {
2405
2724
  className: cn(commandVariants(), className),
@@ -2411,14 +2730,14 @@ function Command({
2411
2730
  );
2412
2731
  }
2413
2732
  Command.displayName = "Command";
2414
- var CommandInput = React41__namespace.forwardRef(
2733
+ var CommandInput = React42__namespace.forwardRef(
2415
2734
  ({ className, onChange, ...props }, ref) => {
2416
2735
  const { search, onSearch, inputId, listId } = useCommandContext();
2417
2736
  const handleChange = (e) => {
2418
2737
  onSearch(e.target.value);
2419
2738
  onChange?.(e);
2420
2739
  };
2421
- return React41__namespace.createElement("input", {
2740
+ return React42__namespace.createElement("input", {
2422
2741
  ref,
2423
2742
  id: inputId,
2424
2743
  type: "text",
@@ -2433,10 +2752,10 @@ var CommandInput = React41__namespace.forwardRef(
2433
2752
  }
2434
2753
  );
2435
2754
  CommandInput.displayName = "CommandInput";
2436
- var CommandList = React41__namespace.forwardRef(
2755
+ var CommandList = React42__namespace.forwardRef(
2437
2756
  ({ className, children, ...props }, ref) => {
2438
2757
  const { listId } = useCommandContext();
2439
- return React41__namespace.createElement(
2758
+ return React42__namespace.createElement(
2440
2759
  "div",
2441
2760
  {
2442
2761
  ref,
@@ -2451,11 +2770,11 @@ var CommandList = React41__namespace.forwardRef(
2451
2770
  }
2452
2771
  );
2453
2772
  CommandList.displayName = "CommandList";
2454
- var CommandEmpty = React41__namespace.forwardRef(
2773
+ var CommandEmpty = React42__namespace.forwardRef(
2455
2774
  ({ className, children, ...props }, ref) => {
2456
2775
  const { filteredItems } = useCommandContext();
2457
2776
  if (filteredItems.length > 0) return null;
2458
- return React41__namespace.createElement(
2777
+ return React42__namespace.createElement(
2459
2778
  "div",
2460
2779
  {
2461
2780
  ref,
@@ -2468,9 +2787,9 @@ var CommandEmpty = React41__namespace.forwardRef(
2468
2787
  }
2469
2788
  );
2470
2789
  CommandEmpty.displayName = "CommandEmpty";
2471
- var CommandGroup = React41__namespace.forwardRef(
2790
+ var CommandGroup = React42__namespace.forwardRef(
2472
2791
  ({ className, heading, children, ...props }, ref) => {
2473
- return React41__namespace.createElement(
2792
+ return React42__namespace.createElement(
2474
2793
  "div",
2475
2794
  {
2476
2795
  ref,
@@ -2479,7 +2798,7 @@ var CommandGroup = React41__namespace.forwardRef(
2479
2798
  "aria-label": heading,
2480
2799
  ...props
2481
2800
  },
2482
- heading ? React41__namespace.createElement(
2801
+ heading ? React42__namespace.createElement(
2483
2802
  "div",
2484
2803
  { className: "px-2 py-1.5 text-xs font-medium text-muted-foreground" },
2485
2804
  heading
@@ -2489,10 +2808,10 @@ var CommandGroup = React41__namespace.forwardRef(
2489
2808
  }
2490
2809
  );
2491
2810
  CommandGroup.displayName = "CommandGroup";
2492
- var CommandItem = React41__namespace.forwardRef(
2811
+ var CommandItem = React42__namespace.forwardRef(
2493
2812
  ({ className, value, disabled, onSelect: onItemSelect, children, ...props }, ref) => {
2494
2813
  const state = disabled ? "disabled" : "default";
2495
- return React41__namespace.createElement(
2814
+ return React42__namespace.createElement(
2496
2815
  "div",
2497
2816
  {
2498
2817
  ref,
@@ -2513,9 +2832,9 @@ var CommandItem = React41__namespace.forwardRef(
2513
2832
  }
2514
2833
  );
2515
2834
  CommandItem.displayName = "CommandItem";
2516
- var CommandSeparator = React41__namespace.forwardRef(
2835
+ var CommandSeparator = React42__namespace.forwardRef(
2517
2836
  ({ className, ...props }, ref) => {
2518
- return React41__namespace.createElement("div", {
2837
+ return React42__namespace.createElement("div", {
2519
2838
  ref,
2520
2839
  role: "separator",
2521
2840
  className: cn("-mx-1 h-px bg-border", className),
@@ -2562,7 +2881,7 @@ var contentProtectionVariants = cva({
2562
2881
  var watermarkVariants = cva({
2563
2882
  base: "pointer-events-none absolute inset-0 z-50 overflow-hidden"
2564
2883
  });
2565
- var ContentProtection = React41__namespace.forwardRef(
2884
+ var ContentProtection = React42__namespace.forwardRef(
2566
2885
  ({
2567
2886
  enabled,
2568
2887
  disableCopy,
@@ -2809,10 +3128,10 @@ function DataTable({
2809
3128
  className,
2810
3129
  emptyMessage = "No data available"
2811
3130
  }) {
2812
- const [sortBy, setSortBy] = React41__namespace.useState(controlledSortBy ?? null);
2813
- const [sortDir, setSortDir] = React41__namespace.useState(controlledSortDir);
2814
- const [filters, setFilters] = React41__namespace.useState(controlledFilters ?? {});
2815
- const api = React41__namespace.useMemo(
3131
+ const [sortBy, setSortBy] = React42__namespace.useState(controlledSortBy ?? null);
3132
+ const [sortDir, setSortDir] = React42__namespace.useState(controlledSortDir);
3133
+ const [filters, setFilters] = React42__namespace.useState(controlledFilters ?? {});
3134
+ const api = React42__namespace.useMemo(
2816
3135
  () => createDataTable({
2817
3136
  columns,
2818
3137
  data,
@@ -2823,7 +3142,7 @@ function DataTable({
2823
3142
  }),
2824
3143
  [columns, data, sortBy, sortDir, onSort, filters]
2825
3144
  );
2826
- const handleSort = React41__namespace.useCallback(
3145
+ const handleSort = React42__namespace.useCallback(
2827
3146
  (columnId) => {
2828
3147
  const col = columns.find((c) => c.id === columnId);
2829
3148
  if (!col?.sortable) return;
@@ -2837,7 +3156,7 @@ function DataTable({
2837
3156
  },
2838
3157
  [columns, sortBy, sortDir, onSort]
2839
3158
  );
2840
- const handleFilter = React41__namespace.useCallback(
3159
+ const handleFilter = React42__namespace.useCallback(
2841
3160
  (columnId, value) => {
2842
3161
  setFilters((prev) => ({ ...prev, [columnId]: value }));
2843
3162
  },
@@ -2845,26 +3164,26 @@ function DataTable({
2845
3164
  );
2846
3165
  const sortedData = api.state.sortedData;
2847
3166
  const hasFilterable = columns.some((c) => c.filterable);
2848
- return React41__namespace.createElement(
3167
+ return React42__namespace.createElement(
2849
3168
  "div",
2850
3169
  { className: "relative w-full overflow-auto" },
2851
- React41__namespace.createElement(
3170
+ React42__namespace.createElement(
2852
3171
  "table",
2853
3172
  {
2854
3173
  className: cn(tableVariants(), className),
2855
3174
  role: "table"
2856
3175
  },
2857
3176
  // thead
2858
- React41__namespace.createElement(
3177
+ React42__namespace.createElement(
2859
3178
  "thead",
2860
3179
  null,
2861
3180
  // Header row
2862
- React41__namespace.createElement(
3181
+ React42__namespace.createElement(
2863
3182
  "tr",
2864
3183
  { role: "row" },
2865
3184
  ...columns.map((col) => {
2866
3185
  const headerProps = api.getHeaderProps(col);
2867
- return React41__namespace.createElement(
3186
+ return React42__namespace.createElement(
2868
3187
  "th",
2869
3188
  {
2870
3189
  key: col.id,
@@ -2873,19 +3192,19 @@ function DataTable({
2873
3192
  onClick: col.sortable ? () => handleSort(col.id) : void 0
2874
3193
  },
2875
3194
  col.header,
2876
- col.sortable && sortBy === col.id ? React41__namespace.createElement("span", { "aria-hidden": true }, sortDir === "asc" ? " \u2191" : " \u2193") : null
3195
+ col.sortable && sortBy === col.id ? React42__namespace.createElement("span", { "aria-hidden": true }, sortDir === "asc" ? " \u2191" : " \u2193") : null
2877
3196
  );
2878
3197
  })
2879
3198
  ),
2880
3199
  // Filter row
2881
- hasFilterable ? React41__namespace.createElement(
3200
+ hasFilterable ? React42__namespace.createElement(
2882
3201
  "tr",
2883
3202
  { role: "row", "data-filter-row": "true" },
2884
3203
  ...columns.map(
2885
- (col) => React41__namespace.createElement(
3204
+ (col) => React42__namespace.createElement(
2886
3205
  "th",
2887
3206
  { key: `filter-${col.id}` },
2888
- col.filterable ? React41__namespace.createElement("input", {
3207
+ col.filterable ? React42__namespace.createElement("input", {
2889
3208
  type: "text",
2890
3209
  "aria-label": `Filter ${col.header}`,
2891
3210
  value: filters[col.id] ?? "",
@@ -2897,13 +3216,13 @@ function DataTable({
2897
3216
  ) : null
2898
3217
  ),
2899
3218
  // tbody
2900
- React41__namespace.createElement(
3219
+ React42__namespace.createElement(
2901
3220
  "tbody",
2902
3221
  null,
2903
- sortedData.length === 0 ? React41__namespace.createElement(
3222
+ sortedData.length === 0 ? React42__namespace.createElement(
2904
3223
  "tr",
2905
3224
  { role: "row" },
2906
- React41__namespace.createElement(
3225
+ React42__namespace.createElement(
2907
3226
  "td",
2908
3227
  {
2909
3228
  colSpan: columns.length,
@@ -2913,7 +3232,7 @@ function DataTable({
2913
3232
  emptyMessage
2914
3233
  )
2915
3234
  ) : sortedData.map(
2916
- (row, rowIndex) => React41__namespace.createElement(
3235
+ (row, rowIndex) => React42__namespace.createElement(
2917
3236
  "tr",
2918
3237
  {
2919
3238
  key: rowIndex,
@@ -2921,7 +3240,7 @@ function DataTable({
2921
3240
  className: rowVariants()
2922
3241
  },
2923
3242
  ...columns.map(
2924
- (col) => React41__namespace.createElement(
3243
+ (col) => React42__namespace.createElement(
2925
3244
  "td",
2926
3245
  {
2927
3246
  key: col.id,
@@ -3031,7 +3350,7 @@ function DeviceFrame({
3031
3350
  children
3032
3351
  }) {
3033
3352
  const api = createDeviceFrame({ device, orientation });
3034
- return React41__namespace.createElement(
3353
+ return React42__namespace.createElement(
3035
3354
  "div",
3036
3355
  {
3037
3356
  className: cn(deviceFrameVariants({ device, orientation }), className),
@@ -3043,13 +3362,13 @@ function DeviceFrame({
3043
3362
  ...api.dataAttributes
3044
3363
  },
3045
3364
  // Notch decoration
3046
- api.dimensions.notch ? React41__namespace.createElement("div", {
3365
+ api.dimensions.notch ? React42__namespace.createElement("div", {
3047
3366
  className: "absolute top-0 left-1/2 -translate-x-1/2 w-[40%] h-[30px] bg-black rounded-b-2xl z-10",
3048
3367
  "aria-hidden": "true",
3049
3368
  "data-part": "notch"
3050
3369
  }) : null,
3051
3370
  // Screen area
3052
- React41__namespace.createElement(
3371
+ React42__namespace.createElement(
3053
3372
  "div",
3054
3373
  {
3055
3374
  className: "relative w-full h-full overflow-hidden bg-white",
@@ -3058,7 +3377,7 @@ function DeviceFrame({
3058
3377
  children
3059
3378
  ),
3060
3379
  // Home indicator decoration
3061
- api.dimensions.homeIndicator ? React41__namespace.createElement("div", {
3380
+ api.dimensions.homeIndicator ? React42__namespace.createElement("div", {
3062
3381
  className: "absolute bottom-2 left-1/2 -translate-x-1/2 w-[35%] h-[5px] bg-gray-300 rounded-full z-10",
3063
3382
  "aria-hidden": "true",
3064
3383
  "data-part": "home-indicator"
@@ -3147,9 +3466,9 @@ var dialogContentVariants = cva({
3147
3466
  });
3148
3467
 
3149
3468
  // ../react-dialog/dist/index.js
3150
- var DialogContext = React41__namespace.createContext(null);
3469
+ var DialogContext = React42__namespace.createContext(null);
3151
3470
  function useDialogContext() {
3152
- const ctx = React41__namespace.useContext(DialogContext);
3471
+ const ctx = React42__namespace.useContext(DialogContext);
3153
3472
  if (!ctx) {
3154
3473
  throw new Error("Dialog compound components must be used within <Dialog>");
3155
3474
  }
@@ -3162,10 +3481,10 @@ function Dialog({
3162
3481
  modal = true,
3163
3482
  children
3164
3483
  }) {
3165
- const [uncontrolledOpen, setUncontrolledOpen] = React41__namespace.useState(defaultOpen);
3484
+ const [uncontrolledOpen, setUncontrolledOpen] = React42__namespace.useState(defaultOpen);
3166
3485
  const isControlled = controlledOpen !== void 0;
3167
3486
  const open = isControlled ? controlledOpen : uncontrolledOpen;
3168
- const handleOpenChange = React41__namespace.useCallback(
3487
+ const handleOpenChange = React42__namespace.useCallback(
3169
3488
  (next) => {
3170
3489
  if (!isControlled) {
3171
3490
  setUncontrolledOpen(next);
@@ -3174,12 +3493,12 @@ function Dialog({
3174
3493
  },
3175
3494
  [isControlled, onOpenChange]
3176
3495
  );
3177
- const apiRef = React41__namespace.useRef(null);
3496
+ const apiRef = React42__namespace.useRef(null);
3178
3497
  if (apiRef.current === null) {
3179
3498
  apiRef.current = createDialog({ open, modal });
3180
3499
  }
3181
3500
  const api = apiRef.current;
3182
- const ctx = React41__namespace.useMemo(
3501
+ const ctx = React42__namespace.useMemo(
3183
3502
  () => ({
3184
3503
  open,
3185
3504
  onOpenChange: handleOpenChange,
@@ -3190,17 +3509,17 @@ function Dialog({
3190
3509
  }),
3191
3510
  [open, handleOpenChange, modal, api.ids.content, api.ids.title, api.ids.description]
3192
3511
  );
3193
- return React41__namespace.createElement(DialogContext.Provider, { value: ctx }, children);
3512
+ return React42__namespace.createElement(DialogContext.Provider, { value: ctx }, children);
3194
3513
  }
3195
3514
  Dialog.displayName = "Dialog";
3196
- var DialogTrigger = React41__namespace.forwardRef(
3515
+ var DialogTrigger = React42__namespace.forwardRef(
3197
3516
  ({ onClick, children, ...props }, ref) => {
3198
3517
  const { open, onOpenChange, contentId } = useDialogContext();
3199
3518
  const handleClick = (e) => {
3200
3519
  onOpenChange(!open);
3201
3520
  onClick?.(e);
3202
3521
  };
3203
- return React41__namespace.createElement(
3522
+ return React42__namespace.createElement(
3204
3523
  "button",
3205
3524
  {
3206
3525
  ref,
@@ -3216,7 +3535,7 @@ var DialogTrigger = React41__namespace.forwardRef(
3216
3535
  }
3217
3536
  );
3218
3537
  DialogTrigger.displayName = "DialogTrigger";
3219
- var DialogOverlay = React41__namespace.forwardRef(
3538
+ var DialogOverlay = React42__namespace.forwardRef(
3220
3539
  ({ className, onClick, ...props }, ref) => {
3221
3540
  const { open, onOpenChange } = useDialogContext();
3222
3541
  if (!open) return null;
@@ -3226,7 +3545,7 @@ var DialogOverlay = React41__namespace.forwardRef(
3226
3545
  }
3227
3546
  onClick?.(e);
3228
3547
  };
3229
- return React41__namespace.createElement("div", {
3548
+ return React42__namespace.createElement("div", {
3230
3549
  ref,
3231
3550
  className: cn(overlayStyles, className),
3232
3551
  "data-state": open ? "open" : "closed",
@@ -3236,10 +3555,10 @@ var DialogOverlay = React41__namespace.forwardRef(
3236
3555
  }
3237
3556
  );
3238
3557
  DialogOverlay.displayName = "DialogOverlay";
3239
- var DialogContent = React41__namespace.forwardRef(
3558
+ var DialogContent = React42__namespace.forwardRef(
3240
3559
  ({ className, children, onKeyDown, ...props }, ref) => {
3241
3560
  const { open, onOpenChange, modal, contentId, titleId, descriptionId } = useDialogContext();
3242
- React41__namespace.useMemo(
3561
+ React42__namespace.useMemo(
3243
3562
  () => createDialog({ open, modal }),
3244
3563
  [open, modal]
3245
3564
  );
@@ -3254,7 +3573,7 @@ var DialogContent = React41__namespace.forwardRef(
3254
3573
  onKeyDown?.(e);
3255
3574
  };
3256
3575
  if (!open) return null;
3257
- const content = React41__namespace.createElement(
3576
+ const content = React42__namespace.createElement(
3258
3577
  "div",
3259
3578
  {
3260
3579
  ref,
@@ -3277,9 +3596,9 @@ var DialogContent = React41__namespace.forwardRef(
3277
3596
  }
3278
3597
  );
3279
3598
  DialogContent.displayName = "DialogContent";
3280
- var DialogHeader = React41__namespace.forwardRef(
3599
+ var DialogHeader = React42__namespace.forwardRef(
3281
3600
  ({ className, ...props }, ref) => {
3282
- return React41__namespace.createElement("div", {
3601
+ return React42__namespace.createElement("div", {
3283
3602
  ref,
3284
3603
  className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className),
3285
3604
  ...props
@@ -3287,9 +3606,9 @@ var DialogHeader = React41__namespace.forwardRef(
3287
3606
  }
3288
3607
  );
3289
3608
  DialogHeader.displayName = "DialogHeader";
3290
- var DialogFooter = React41__namespace.forwardRef(
3609
+ var DialogFooter = React42__namespace.forwardRef(
3291
3610
  ({ className, ...props }, ref) => {
3292
- return React41__namespace.createElement("div", {
3611
+ return React42__namespace.createElement("div", {
3293
3612
  ref,
3294
3613
  className: cn(
3295
3614
  "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
@@ -3300,10 +3619,10 @@ var DialogFooter = React41__namespace.forwardRef(
3300
3619
  }
3301
3620
  );
3302
3621
  DialogFooter.displayName = "DialogFooter";
3303
- var DialogTitle = React41__namespace.forwardRef(
3622
+ var DialogTitle = React42__namespace.forwardRef(
3304
3623
  ({ className, ...props }, ref) => {
3305
3624
  const { titleId } = useDialogContext();
3306
- return React41__namespace.createElement("h2", {
3625
+ return React42__namespace.createElement("h2", {
3307
3626
  ref,
3308
3627
  id: titleId,
3309
3628
  className: cn("text-lg font-semibold leading-none tracking-tight", className),
@@ -3312,9 +3631,9 @@ var DialogTitle = React41__namespace.forwardRef(
3312
3631
  }
3313
3632
  );
3314
3633
  DialogTitle.displayName = "DialogTitle";
3315
- var DialogDescription = React41__namespace.forwardRef(({ className, ...props }, ref) => {
3634
+ var DialogDescription = React42__namespace.forwardRef(({ className, ...props }, ref) => {
3316
3635
  const { descriptionId } = useDialogContext();
3317
- return React41__namespace.createElement("p", {
3636
+ return React42__namespace.createElement("p", {
3318
3637
  ref,
3319
3638
  id: descriptionId,
3320
3639
  className: cn("text-sm text-muted-foreground", className),
@@ -3322,14 +3641,14 @@ var DialogDescription = React41__namespace.forwardRef(({ className, ...props },
3322
3641
  });
3323
3642
  });
3324
3643
  DialogDescription.displayName = "DialogDescription";
3325
- var DialogClose = React41__namespace.forwardRef(
3644
+ var DialogClose = React42__namespace.forwardRef(
3326
3645
  ({ onClick, children, ...props }, ref) => {
3327
3646
  const { onOpenChange } = useDialogContext();
3328
3647
  const handleClick = (e) => {
3329
3648
  onOpenChange(false);
3330
3649
  onClick?.(e);
3331
3650
  };
3332
- return React41__namespace.createElement(
3651
+ return React42__namespace.createElement(
3333
3652
  "button",
3334
3653
  {
3335
3654
  ref,
@@ -3434,9 +3753,9 @@ var menuItemVariants = cva({
3434
3753
  });
3435
3754
 
3436
3755
  // ../react-dropdown-menu/dist/index.js
3437
- var DropdownMenuContext = React41__namespace.createContext(null);
3756
+ var DropdownMenuContext = React42__namespace.createContext(null);
3438
3757
  function useDropdownMenuContext() {
3439
- const ctx = React41__namespace.useContext(DropdownMenuContext);
3758
+ const ctx = React42__namespace.useContext(DropdownMenuContext);
3440
3759
  if (!ctx) {
3441
3760
  throw new Error("DropdownMenu compound components must be used within <DropdownMenu>");
3442
3761
  }
@@ -3448,10 +3767,10 @@ function DropdownMenu({
3448
3767
  onOpenChange,
3449
3768
  children
3450
3769
  }) {
3451
- const [uncontrolledOpen, setUncontrolledOpen] = React41__namespace.useState(defaultOpen);
3770
+ const [uncontrolledOpen, setUncontrolledOpen] = React42__namespace.useState(defaultOpen);
3452
3771
  const isControlled = controlledOpen !== void 0;
3453
3772
  const open = isControlled ? controlledOpen : uncontrolledOpen;
3454
- const handleOpenChange = React41__namespace.useCallback(
3773
+ const handleOpenChange = React42__namespace.useCallback(
3455
3774
  (next) => {
3456
3775
  if (!isControlled) {
3457
3776
  setUncontrolledOpen(next);
@@ -3460,12 +3779,12 @@ function DropdownMenu({
3460
3779
  },
3461
3780
  [isControlled, onOpenChange]
3462
3781
  );
3463
- const apiRef = React41__namespace.useRef(null);
3782
+ const apiRef = React42__namespace.useRef(null);
3464
3783
  if (apiRef.current === null) {
3465
3784
  apiRef.current = createDropdownMenu({ open });
3466
3785
  }
3467
3786
  const api = apiRef.current;
3468
- const ctx = React41__namespace.useMemo(
3787
+ const ctx = React42__namespace.useMemo(
3469
3788
  () => ({
3470
3789
  open,
3471
3790
  onOpenChange: handleOpenChange,
@@ -3473,17 +3792,17 @@ function DropdownMenu({
3473
3792
  }),
3474
3793
  [open, handleOpenChange, api.ids.content]
3475
3794
  );
3476
- return React41__namespace.createElement(DropdownMenuContext.Provider, { value: ctx }, children);
3795
+ return React42__namespace.createElement(DropdownMenuContext.Provider, { value: ctx }, children);
3477
3796
  }
3478
3797
  DropdownMenu.displayName = "DropdownMenu";
3479
- var DropdownMenuTrigger = React41__namespace.forwardRef(
3798
+ var DropdownMenuTrigger = React42__namespace.forwardRef(
3480
3799
  ({ onClick, children, ...props }, ref) => {
3481
3800
  const { open, onOpenChange, contentId } = useDropdownMenuContext();
3482
3801
  const handleClick = (e) => {
3483
3802
  onOpenChange(!open);
3484
3803
  onClick?.(e);
3485
3804
  };
3486
- return React41__namespace.createElement(
3805
+ return React42__namespace.createElement(
3487
3806
  "button",
3488
3807
  {
3489
3808
  ref,
@@ -3499,7 +3818,7 @@ var DropdownMenuTrigger = React41__namespace.forwardRef(
3499
3818
  }
3500
3819
  );
3501
3820
  DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
3502
- var DropdownMenuContent = React41__namespace.forwardRef(
3821
+ var DropdownMenuContent = React42__namespace.forwardRef(
3503
3822
  ({ className, children, onKeyDown, ...props }, ref) => {
3504
3823
  const { open, onOpenChange, contentId } = useDropdownMenuContext();
3505
3824
  const handleKeyDown = (e) => {
@@ -3513,7 +3832,7 @@ var DropdownMenuContent = React41__namespace.forwardRef(
3513
3832
  onKeyDown?.(e);
3514
3833
  };
3515
3834
  if (!open) return null;
3516
- const content = React41__namespace.createElement(
3835
+ const content = React42__namespace.createElement(
3517
3836
  "div",
3518
3837
  {
3519
3838
  ref,
@@ -3534,7 +3853,7 @@ var DropdownMenuContent = React41__namespace.forwardRef(
3534
3853
  }
3535
3854
  );
3536
3855
  DropdownMenuContent.displayName = "DropdownMenuContent";
3537
- var DropdownMenuItem = React41__namespace.forwardRef(
3856
+ var DropdownMenuItem = React42__namespace.forwardRef(
3538
3857
  ({ className, disabled, onSelect, onClick, children, ...props }, ref) => {
3539
3858
  const { onOpenChange } = useDropdownMenuContext();
3540
3859
  const handleClick = (e) => {
@@ -3551,7 +3870,7 @@ var DropdownMenuItem = React41__namespace.forwardRef(
3551
3870
  onOpenChange(false);
3552
3871
  }
3553
3872
  };
3554
- return React41__namespace.createElement(
3873
+ return React42__namespace.createElement(
3555
3874
  "div",
3556
3875
  {
3557
3876
  ref,
@@ -3569,9 +3888,9 @@ var DropdownMenuItem = React41__namespace.forwardRef(
3569
3888
  }
3570
3889
  );
3571
3890
  DropdownMenuItem.displayName = "DropdownMenuItem";
3572
- var DropdownMenuSeparator = React41__namespace.forwardRef(
3891
+ var DropdownMenuSeparator = React42__namespace.forwardRef(
3573
3892
  ({ className, ...props }, ref) => {
3574
- return React41__namespace.createElement("div", {
3893
+ return React42__namespace.createElement("div", {
3575
3894
  ref,
3576
3895
  role: "separator",
3577
3896
  className: cn("-mx-1 my-1 h-px bg-muted", className),
@@ -3580,9 +3899,9 @@ var DropdownMenuSeparator = React41__namespace.forwardRef(
3580
3899
  }
3581
3900
  );
3582
3901
  DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
3583
- var DropdownMenuLabel = React41__namespace.forwardRef(
3902
+ var DropdownMenuLabel = React42__namespace.forwardRef(
3584
3903
  ({ className, ...props }, ref) => {
3585
- return React41__namespace.createElement("div", {
3904
+ return React42__namespace.createElement("div", {
3586
3905
  ref,
3587
3906
  className: cn("px-2 py-1.5 text-sm font-semibold", className),
3588
3907
  ...props
@@ -3694,15 +4013,15 @@ function FeedbackDialog({
3694
4013
  type = "general",
3695
4014
  className
3696
4015
  }) {
3697
- const [open, setOpen] = React41__namespace.useState(controlledOpen ?? false);
3698
- const [comment, setComment] = React41__namespace.useState("");
3699
- const [email, setEmail] = React41__namespace.useState("");
3700
- const [honeypot, setHoneypot] = React41__namespace.useState("");
3701
- const [isSubmitting, setIsSubmitting] = React41__namespace.useState(false);
3702
- const [isSubmitted, setIsSubmitted] = React41__namespace.useState(false);
4016
+ const [open, setOpen] = React42__namespace.useState(controlledOpen ?? false);
4017
+ const [comment, setComment] = React42__namespace.useState("");
4018
+ const [email, setEmail] = React42__namespace.useState("");
4019
+ const [honeypot, setHoneypot] = React42__namespace.useState("");
4020
+ const [isSubmitting, setIsSubmitting] = React42__namespace.useState(false);
4021
+ const [isSubmitted, setIsSubmitted] = React42__namespace.useState(false);
3703
4022
  const isControlled = controlledOpen !== void 0;
3704
4023
  const isOpen = isControlled ? controlledOpen : open;
3705
- const handleOpenChange = React41__namespace.useCallback(
4024
+ const handleOpenChange = React42__namespace.useCallback(
3706
4025
  (next) => {
3707
4026
  if (!isControlled) {
3708
4027
  setOpen(next);
@@ -3711,11 +4030,11 @@ function FeedbackDialog({
3711
4030
  },
3712
4031
  [isControlled, onOpenChange]
3713
4032
  );
3714
- const apiRef = React41__namespace.useRef(null);
4033
+ const apiRef = React42__namespace.useRef(null);
3715
4034
  if (apiRef.current === null) {
3716
4035
  apiRef.current = createFeedbackDialog({ open: isOpen, onOpenChange: handleOpenChange, onSubmit, type });
3717
4036
  }
3718
- const handleSubmit = React41__namespace.useCallback(async () => {
4037
+ const handleSubmit = React42__namespace.useCallback(async () => {
3719
4038
  if (honeypot) return;
3720
4039
  if (!comment.trim()) return;
3721
4040
  setIsSubmitting(true);
@@ -3732,7 +4051,7 @@ function FeedbackDialog({
3732
4051
  setIsSubmitting(false);
3733
4052
  }
3734
4053
  }, [comment, email, honeypot, type, onSubmit]);
3735
- const handleReset = React41__namespace.useCallback(() => {
4054
+ const handleReset = React42__namespace.useCallback(() => {
3736
4055
  setComment("");
3737
4056
  setEmail("");
3738
4057
  setHoneypot("");
@@ -3742,15 +4061,15 @@ function FeedbackDialog({
3742
4061
  if (!isOpen) return null;
3743
4062
  const api = apiRef.current;
3744
4063
  if (isSubmitted) {
3745
- return React41__namespace.createElement(
4064
+ return React42__namespace.createElement(
3746
4065
  "div",
3747
4066
  {
3748
4067
  className: cn(feedbackDialogVariants({ type }), className),
3749
4068
  ...api.ariaProps,
3750
4069
  "data-state": "submitted"
3751
4070
  },
3752
- React41__namespace.createElement("p", { "data-testid": "success-message" }, "Thank you for your feedback!"),
3753
- React41__namespace.createElement(
4071
+ React42__namespace.createElement("p", { "data-testid": "success-message" }, "Thank you for your feedback!"),
4072
+ React42__namespace.createElement(
3754
4073
  "button",
3755
4074
  {
3756
4075
  type: "button",
@@ -3763,22 +4082,22 @@ function FeedbackDialog({
3763
4082
  )
3764
4083
  );
3765
4084
  }
3766
- return React41__namespace.createElement(
4085
+ return React42__namespace.createElement(
3767
4086
  "div",
3768
4087
  {
3769
4088
  className: cn(feedbackDialogVariants({ type }), className),
3770
4089
  ...api.ariaProps,
3771
4090
  "data-state": "open"
3772
4091
  },
3773
- React41__namespace.createElement("h2", { id: `${api.ariaProps.id}-title` }, "Send Feedback"),
3774
- React41__namespace.createElement("textarea", {
4092
+ React42__namespace.createElement("h2", { id: `${api.ariaProps.id}-title` }, "Send Feedback"),
4093
+ React42__namespace.createElement("textarea", {
3775
4094
  "aria-label": "Feedback comment",
3776
4095
  value: comment,
3777
4096
  onChange: (e) => setComment(e.target.value),
3778
4097
  placeholder: "Your feedback...",
3779
4098
  disabled: isSubmitting
3780
4099
  }),
3781
- React41__namespace.createElement("input", {
4100
+ React42__namespace.createElement("input", {
3782
4101
  type: "email",
3783
4102
  "aria-label": "Email",
3784
4103
  value: email,
@@ -3787,7 +4106,7 @@ function FeedbackDialog({
3787
4106
  disabled: isSubmitting
3788
4107
  }),
3789
4108
  // Honeypot field — hidden from real users
3790
- React41__namespace.createElement("input", {
4109
+ React42__namespace.createElement("input", {
3791
4110
  type: "text",
3792
4111
  "aria-hidden": true,
3793
4112
  tabIndex: -1,
@@ -3797,7 +4116,7 @@ function FeedbackDialog({
3797
4116
  autoComplete: "off",
3798
4117
  name: "website"
3799
4118
  }),
3800
- React41__namespace.createElement(
4119
+ React42__namespace.createElement(
3801
4120
  "button",
3802
4121
  {
3803
4122
  type: "button",
@@ -3809,9 +4128,9 @@ function FeedbackDialog({
3809
4128
  );
3810
4129
  }
3811
4130
  FeedbackDialog.displayName = "FeedbackDialog";
3812
- var FeedbackButton = React41__namespace.forwardRef(
4131
+ var FeedbackButton = React42__namespace.forwardRef(
3813
4132
  ({ children, ...props }, ref) => {
3814
- return React41__namespace.createElement(
4133
+ return React42__namespace.createElement(
3815
4134
  "button",
3816
4135
  {
3817
4136
  ref,
@@ -3838,7 +4157,7 @@ function createFooter(props = {}) {
3838
4157
  var footerVariants = cva({
3839
4158
  base: "border-t bg-background py-8"
3840
4159
  });
3841
- var Footer = React41__namespace.forwardRef(
4160
+ var Footer = React42__namespace.forwardRef(
3842
4161
  ({
3843
4162
  copyright,
3844
4163
  socialLinks = [],
@@ -3976,34 +4295,34 @@ function InlineEditor({
3976
4295
  onCancel,
3977
4296
  className
3978
4297
  }) {
3979
- const [isEditing, setIsEditing] = React41__namespace.useState(false);
3980
- const [editValue, setEditValue] = React41__namespace.useState(initialValue);
3981
- const apiRef = React41__namespace.useRef(null);
4298
+ const [isEditing, setIsEditing] = React42__namespace.useState(false);
4299
+ const [editValue, setEditValue] = React42__namespace.useState(initialValue);
4300
+ const apiRef = React42__namespace.useRef(null);
3982
4301
  if (apiRef.current === null) {
3983
4302
  apiRef.current = createInlineEditor({ value: initialValue, onSave, onCancel });
3984
4303
  }
3985
4304
  const api = apiRef.current;
3986
- const handleStartEditing = React41__namespace.useCallback(() => {
4305
+ const handleStartEditing = React42__namespace.useCallback(() => {
3987
4306
  setIsEditing(true);
3988
4307
  setEditValue(initialValue);
3989
4308
  }, [initialValue]);
3990
- const handleCancel = React41__namespace.useCallback(() => {
4309
+ const handleCancel = React42__namespace.useCallback(() => {
3991
4310
  setIsEditing(false);
3992
4311
  setEditValue(initialValue);
3993
4312
  onCancel?.();
3994
4313
  }, [initialValue, onCancel]);
3995
- const handleSave = React41__namespace.useCallback(() => {
4314
+ const handleSave = React42__namespace.useCallback(() => {
3996
4315
  setIsEditing(false);
3997
4316
  onSave?.(editValue);
3998
4317
  }, [editValue, onSave]);
3999
- const handleInsert = React41__namespace.useCallback(
4318
+ const handleInsert = React42__namespace.useCallback(
4000
4319
  (syntax) => {
4001
4320
  setEditValue((prev) => prev + syntax);
4002
4321
  },
4003
4322
  []
4004
4323
  );
4005
4324
  if (!isEditing) {
4006
- return React41__namespace.createElement(
4325
+ return React42__namespace.createElement(
4007
4326
  "div",
4008
4327
  {
4009
4328
  className: cn(editorVariants({ state: "viewing" }), className),
@@ -4018,20 +4337,20 @@ function InlineEditor({
4018
4337
  }
4019
4338
  }
4020
4339
  },
4021
- React41__namespace.createElement("div", { className: previewVariants() }, editValue || initialValue)
4340
+ React42__namespace.createElement("div", { className: previewVariants() }, editValue || initialValue)
4022
4341
  );
4023
4342
  }
4024
- return React41__namespace.createElement(
4343
+ return React42__namespace.createElement(
4025
4344
  "div",
4026
4345
  {
4027
4346
  className: cn(editorVariants({ state: "editing" }), className)
4028
4347
  },
4029
4348
  // Toolbar
4030
- React41__namespace.createElement(
4349
+ React42__namespace.createElement(
4031
4350
  "div",
4032
4351
  { className: toolbarVariants(), role: "toolbar", "aria-label": "Formatting toolbar" },
4033
4352
  ...api.toolbarActions.map(
4034
- (action) => React41__namespace.createElement(
4353
+ (action) => React42__namespace.createElement(
4035
4354
  "button",
4036
4355
  {
4037
4356
  key: action.name,
@@ -4045,16 +4364,16 @@ function InlineEditor({
4045
4364
  )
4046
4365
  ),
4047
4366
  // Editor area: side-by-side textarea + preview
4048
- React41__namespace.createElement(
4367
+ React42__namespace.createElement(
4049
4368
  "div",
4050
4369
  { className: "flex gap-2 p-2" },
4051
- React41__namespace.createElement("textarea", {
4370
+ React42__namespace.createElement("textarea", {
4052
4371
  value: editValue,
4053
4372
  onChange: (e) => setEditValue(e.target.value),
4054
4373
  className: "flex-1 min-h-[100px] resize-y border rounded p-2",
4055
4374
  "aria-label": "Editor content"
4056
4375
  }),
4057
- React41__namespace.createElement(
4376
+ React42__namespace.createElement(
4058
4377
  "div",
4059
4378
  {
4060
4379
  className: cn("flex-1", previewVariants()),
@@ -4064,15 +4383,15 @@ function InlineEditor({
4064
4383
  )
4065
4384
  ),
4066
4385
  // Action buttons
4067
- React41__namespace.createElement(
4386
+ React42__namespace.createElement(
4068
4387
  "div",
4069
4388
  { className: "flex justify-end gap-2 p-2 border-t" },
4070
- React41__namespace.createElement(
4389
+ React42__namespace.createElement(
4071
4390
  "button",
4072
4391
  { type: "button", onClick: handleCancel },
4073
4392
  "Cancel"
4074
4393
  ),
4075
- React41__namespace.createElement(
4394
+ React42__namespace.createElement(
4076
4395
  "button",
4077
4396
  { type: "button", onClick: handleSave },
4078
4397
  "Save"
@@ -4128,7 +4447,7 @@ var inputVariants = cva({
4128
4447
  size: "default"
4129
4448
  }
4130
4449
  });
4131
- var Input = React41__namespace.forwardRef(
4450
+ var Input = React42__namespace.forwardRef(
4132
4451
  ({ type = "text", size, className, disabled, readOnly, required, "aria-invalid": ariaInvalid, ...props }, ref) => {
4133
4452
  const api = createInput({
4134
4453
  disabled,
@@ -4221,7 +4540,7 @@ var inputGroupButtonVariants = cva({
4221
4540
  orientation: "horizontal"
4222
4541
  }
4223
4542
  });
4224
- var InputGroup = React41__namespace.forwardRef(
4543
+ var InputGroup = React42__namespace.forwardRef(
4225
4544
  ({ orientation = "horizontal", className, children, ...props }, ref) => {
4226
4545
  const api = createInputGroup({
4227
4546
  orientation,
@@ -4243,7 +4562,7 @@ var InputGroup = React41__namespace.forwardRef(
4243
4562
  }
4244
4563
  );
4245
4564
  InputGroup.displayName = "InputGroup";
4246
- var InputGroupAddon = React41__namespace.forwardRef(
4565
+ var InputGroupAddon = React42__namespace.forwardRef(
4247
4566
  ({ orientation = "horizontal", className, children, ...props }, ref) => {
4248
4567
  return /* @__PURE__ */ jsxRuntime.jsx(
4249
4568
  "div",
@@ -4257,7 +4576,7 @@ var InputGroupAddon = React41__namespace.forwardRef(
4257
4576
  }
4258
4577
  );
4259
4578
  InputGroupAddon.displayName = "InputGroupAddon";
4260
- var InputGroupText = React41__namespace.forwardRef(
4579
+ var InputGroupText = React42__namespace.forwardRef(
4261
4580
  ({ className, children, ...props }, ref) => {
4262
4581
  return /* @__PURE__ */ jsxRuntime.jsx(
4263
4582
  "span",
@@ -4271,7 +4590,7 @@ var InputGroupText = React41__namespace.forwardRef(
4271
4590
  }
4272
4591
  );
4273
4592
  InputGroupText.displayName = "InputGroupText";
4274
- var InputGroupButton = React41__namespace.forwardRef(
4593
+ var InputGroupButton = React42__namespace.forwardRef(
4275
4594
  ({ orientation = "horizontal", className, children, ...props }, ref) => {
4276
4595
  return /* @__PURE__ */ jsxRuntime.jsx(
4277
4596
  "button",
@@ -4337,7 +4656,7 @@ function createLocalStorage() {
4337
4656
  }
4338
4657
  };
4339
4658
  }
4340
- var InstallPrompt = React41__namespace.forwardRef(
4659
+ var InstallPrompt = React42__namespace.forwardRef(
4341
4660
  ({
4342
4661
  delay = 3e3,
4343
4662
  storageKey,
@@ -4347,14 +4666,14 @@ var InstallPrompt = React41__namespace.forwardRef(
4347
4666
  className,
4348
4667
  ...props
4349
4668
  }, ref) => {
4350
- const storageRef = React41__namespace.useRef(void 0);
4669
+ const storageRef = React42__namespace.useRef(void 0);
4351
4670
  if (typeof window !== "undefined" && !storageRef.current) {
4352
4671
  storageRef.current = createLocalStorage();
4353
4672
  }
4354
4673
  const api = createInstallPrompt({ storageKey }, storageRef.current);
4355
- const [visible, setVisible] = React41__namespace.useState(false);
4356
- const promptEventRef = React41__namespace.useRef(null);
4357
- React41__namespace.useEffect(() => {
4674
+ const [visible, setVisible] = React42__namespace.useState(false);
4675
+ const promptEventRef = React42__namespace.useRef(null);
4676
+ React42__namespace.useEffect(() => {
4358
4677
  if (api.state.isDismissed) return;
4359
4678
  const handleBeforeInstall = (e) => {
4360
4679
  e.preventDefault();
@@ -4595,7 +4914,7 @@ function sanitizeHtml(html) {
4595
4914
  sanitized = sanitized.replace(/(href|src)\s*=\s*["']?\s*javascript\s*:[^"'>]*/gi, '$1=""');
4596
4915
  return sanitized;
4597
4916
  }
4598
- var MarkdownRenderer = React41__namespace.forwardRef(
4917
+ var MarkdownRenderer = React42__namespace.forwardRef(
4599
4918
  ({ content, components, linkResolver, className, size }, ref) => {
4600
4919
  const coreProps = { content, components, linkResolver };
4601
4920
  const api = createMarkdownRenderer(coreProps);
@@ -4684,20 +5003,20 @@ var mobileNavLinkVariants = cva({
4684
5003
  base: "block w-full px-4 py-2 text-sm transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2",
4685
5004
  variants: {}
4686
5005
  });
4687
- var MobileNavContext = React41__namespace.createContext(null);
5006
+ var MobileNavContext = React42__namespace.createContext(null);
4688
5007
  function useMobileNavContext() {
4689
- const ctx = React41__namespace.useContext(MobileNavContext);
5008
+ const ctx = React42__namespace.useContext(MobileNavContext);
4690
5009
  if (!ctx) {
4691
5010
  throw new Error("MobileNav compound components must be used within <MobileNav>");
4692
5011
  }
4693
5012
  return ctx;
4694
5013
  }
4695
- var MobileNav = React41__namespace.forwardRef(
5014
+ var MobileNav = React42__namespace.forwardRef(
4696
5015
  ({ open: controlledOpen, onOpenChange, defaultOpen = false, className, children, ...props }, ref) => {
4697
- const [uncontrolledOpen, setUncontrolledOpen] = React41__namespace.useState(defaultOpen);
5016
+ const [uncontrolledOpen, setUncontrolledOpen] = React42__namespace.useState(defaultOpen);
4698
5017
  const isControlled = controlledOpen !== void 0;
4699
5018
  const open = isControlled ? controlledOpen : uncontrolledOpen;
4700
- const setOpen = React41__namespace.useCallback(
5019
+ const setOpen = React42__namespace.useCallback(
4701
5020
  (value) => {
4702
5021
  if (!isControlled) {
4703
5022
  setUncontrolledOpen(value);
@@ -4707,11 +5026,11 @@ var MobileNav = React41__namespace.forwardRef(
4707
5026
  [isControlled, onOpenChange]
4708
5027
  );
4709
5028
  const api = createMobileNav({ open, onOpenChange: setOpen, id: props.id });
4710
- const handleKeyDown = React41__namespace.useMemo(
5029
+ const handleKeyDown = React42__namespace.useMemo(
4711
5030
  () => createKeyboardHandler(api.keyboardHandlers),
4712
5031
  [open]
4713
5032
  );
4714
- const contextValue = React41__namespace.useMemo(
5033
+ const contextValue = React42__namespace.useMemo(
4715
5034
  () => ({ open, setOpen, contentId: api.contentProps.id }),
4716
5035
  [open, setOpen, api.contentProps.id]
4717
5036
  );
@@ -4728,7 +5047,7 @@ var MobileNav = React41__namespace.forwardRef(
4728
5047
  }
4729
5048
  );
4730
5049
  MobileNav.displayName = "MobileNav";
4731
- var MobileNavTrigger = React41__namespace.forwardRef(
5050
+ var MobileNavTrigger = React42__namespace.forwardRef(
4732
5051
  ({ className, children, ...props }, ref) => {
4733
5052
  const { open, setOpen, contentId } = useMobileNavContext();
4734
5053
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -4769,7 +5088,7 @@ var MobileNavTrigger = React41__namespace.forwardRef(
4769
5088
  }
4770
5089
  );
4771
5090
  MobileNavTrigger.displayName = "MobileNavTrigger";
4772
- var MobileNavContent = React41__namespace.forwardRef(
5091
+ var MobileNavContent = React42__namespace.forwardRef(
4773
5092
  ({ className, children, ...props }, ref) => {
4774
5093
  const { open, contentId } = useMobileNavContext();
4775
5094
  const state = open ? "open" : "closed";
@@ -4788,7 +5107,7 @@ var MobileNavContent = React41__namespace.forwardRef(
4788
5107
  }
4789
5108
  );
4790
5109
  MobileNavContent.displayName = "MobileNavContent";
4791
- var MobileNavLink = React41__namespace.forwardRef(
5110
+ var MobileNavLink = React42__namespace.forwardRef(
4792
5111
  ({ className, children, ...props }, ref) => {
4793
5112
  return /* @__PURE__ */ jsxRuntime.jsx(
4794
5113
  "a",
@@ -4847,7 +5166,7 @@ var navLinkVariants = cva({
4847
5166
  active: "false"
4848
5167
  }
4849
5168
  });
4850
- var Navbar = React41__namespace.forwardRef(
5169
+ var Navbar = React42__namespace.forwardRef(
4851
5170
  ({
4852
5171
  links = [],
4853
5172
  currentPath,
@@ -4942,19 +5261,19 @@ var popoverContentVariants = cva({
4942
5261
  side: "bottom"
4943
5262
  }
4944
5263
  });
4945
- var PopoverContext = React41__namespace.createContext(null);
5264
+ var PopoverContext = React42__namespace.createContext(null);
4946
5265
  function usePopoverContext() {
4947
- const ctx = React41__namespace.useContext(PopoverContext);
5266
+ const ctx = React42__namespace.useContext(PopoverContext);
4948
5267
  if (!ctx) {
4949
5268
  throw new Error("Popover compound components must be used within <Popover>");
4950
5269
  }
4951
5270
  return ctx;
4952
5271
  }
4953
5272
  function Popover({ open: controlledOpen, defaultOpen = false, onOpenChange, placement, children }) {
4954
- const [internalOpen, setInternalOpen] = React41__namespace.useState(controlledOpen ?? defaultOpen);
5273
+ const [internalOpen, setInternalOpen] = React42__namespace.useState(controlledOpen ?? defaultOpen);
4955
5274
  const isControlled = controlledOpen !== void 0;
4956
5275
  const isOpen = isControlled ? controlledOpen : internalOpen;
4957
- const handleOpenChange = React41__namespace.useCallback(
5276
+ const handleOpenChange = React42__namespace.useCallback(
4958
5277
  (value) => {
4959
5278
  if (!isControlled) {
4960
5279
  setInternalOpen(value);
@@ -4963,18 +5282,18 @@ function Popover({ open: controlledOpen, defaultOpen = false, onOpenChange, plac
4963
5282
  },
4964
5283
  [isControlled, onOpenChange]
4965
5284
  );
4966
- const api = React41__namespace.useMemo(
5285
+ const api = React42__namespace.useMemo(
4967
5286
  () => createPopover({ open: isOpen, onOpenChange: handleOpenChange, placement }),
4968
5287
  [isOpen, handleOpenChange, placement]
4969
5288
  );
4970
- const ctx = React41__namespace.useMemo(
5289
+ const ctx = React42__namespace.useMemo(
4971
5290
  () => ({ api, open: isOpen, setOpen: handleOpenChange }),
4972
5291
  [api, isOpen, handleOpenChange]
4973
5292
  );
4974
- return React41__namespace.createElement(PopoverContext.Provider, { value: ctx }, children);
5293
+ return React42__namespace.createElement(PopoverContext.Provider, { value: ctx }, children);
4975
5294
  }
4976
5295
  Popover.displayName = "Popover";
4977
- var PopoverTrigger = React41__namespace.forwardRef(
5296
+ var PopoverTrigger = React42__namespace.forwardRef(
4978
5297
  ({ onClick, children, ...props }, ref) => {
4979
5298
  const { api, setOpen, open } = usePopoverContext();
4980
5299
  const handleClick = (e) => {
@@ -4997,7 +5316,7 @@ var PopoverTrigger = React41__namespace.forwardRef(
4997
5316
  }
4998
5317
  );
4999
5318
  PopoverTrigger.displayName = "PopoverTrigger";
5000
- var PopoverContent = React41__namespace.forwardRef(
5319
+ var PopoverContent = React42__namespace.forwardRef(
5001
5320
  ({ side, className, children, onKeyDown, ...props }, ref) => {
5002
5321
  const { api, open, setOpen } = usePopoverContext();
5003
5322
  const handleKeyDown = (e) => {
@@ -5026,7 +5345,7 @@ var PopoverContent = React41__namespace.forwardRef(
5026
5345
  }
5027
5346
  );
5028
5347
  PopoverContent.displayName = "PopoverContent";
5029
- var PopoverClose = React41__namespace.forwardRef(
5348
+ var PopoverClose = React42__namespace.forwardRef(
5030
5349
  ({ onClick, children, ...props }, ref) => {
5031
5350
  const { setOpen } = usePopoverContext();
5032
5351
  const handleClick = (e) => {
@@ -5147,9 +5466,9 @@ var searchResultVariants = cva({
5147
5466
  });
5148
5467
 
5149
5468
  // ../react-search-bar/dist/index.js
5150
- var SearchBarContext = React41__namespace.createContext(null);
5469
+ var SearchBarContext = React42__namespace.createContext(null);
5151
5470
  function useSearchBarContext() {
5152
- const ctx = React41__namespace.useContext(SearchBarContext);
5471
+ const ctx = React42__namespace.useContext(SearchBarContext);
5153
5472
  if (!ctx) {
5154
5473
  throw new Error("SearchBar compound components must be used within <SearchBar>");
5155
5474
  }
@@ -5167,11 +5486,11 @@ function SearchBar({
5167
5486
  children,
5168
5487
  ...inputProps
5169
5488
  }) {
5170
- const [internalValue, setInternalValue] = React41__namespace.useState(controlledValue ?? defaultValue);
5489
+ const [internalValue, setInternalValue] = React42__namespace.useState(controlledValue ?? defaultValue);
5171
5490
  const isControlled = controlledValue !== void 0;
5172
5491
  const currentValue = isControlled ? controlledValue : internalValue;
5173
- const debounceRef = React41__namespace.useRef(void 0);
5174
- const handleValueChange = React41__namespace.useCallback(
5492
+ const debounceRef = React42__namespace.useRef(void 0);
5493
+ const handleValueChange = React42__namespace.useCallback(
5175
5494
  (val) => {
5176
5495
  if (!isControlled) {
5177
5496
  setInternalValue(val);
@@ -5180,8 +5499,8 @@ function SearchBar({
5180
5499
  },
5181
5500
  [isControlled, onValueChange]
5182
5501
  );
5183
- const [isSearching, setIsSearching] = React41__namespace.useState(loading);
5184
- const handleSearch = React41__namespace.useCallback(
5502
+ const [isSearching, setIsSearching] = React42__namespace.useState(loading);
5503
+ const handleSearch = React42__namespace.useCallback(
5185
5504
  (val) => {
5186
5505
  if (debounceRef.current !== void 0) {
5187
5506
  clearTimeout(debounceRef.current);
@@ -5198,7 +5517,7 @@ function SearchBar({
5198
5517
  },
5199
5518
  [onSearch, debounceMs]
5200
5519
  );
5201
- const handleChange = React41__namespace.useCallback(
5520
+ const handleChange = React42__namespace.useCallback(
5202
5521
  (e) => {
5203
5522
  const val = e.target.value;
5204
5523
  handleValueChange(val);
@@ -5206,14 +5525,14 @@ function SearchBar({
5206
5525
  },
5207
5526
  [handleValueChange, handleSearch]
5208
5527
  );
5209
- const clear = React41__namespace.useCallback(() => {
5528
+ const clear = React42__namespace.useCallback(() => {
5210
5529
  if (debounceRef.current !== void 0) {
5211
5530
  clearTimeout(debounceRef.current);
5212
5531
  }
5213
5532
  handleValueChange("");
5214
5533
  setIsSearching(false);
5215
5534
  }, [handleValueChange]);
5216
- const api = React41__namespace.useMemo(
5535
+ const api = React42__namespace.useMemo(
5217
5536
  () => createSearchBar({
5218
5537
  value: currentValue,
5219
5538
  onValueChange: handleValueChange,
@@ -5224,7 +5543,7 @@ function SearchBar({
5224
5543
  }),
5225
5544
  [currentValue, handleValueChange, onSearch, debounceMs, placeholder, loading]
5226
5545
  );
5227
- const handleKeyDown = React41__namespace.useCallback(
5546
+ const handleKeyDown = React42__namespace.useCallback(
5228
5547
  (e) => {
5229
5548
  if (e.key === "Escape") {
5230
5549
  clear();
@@ -5238,18 +5557,18 @@ function SearchBar({
5238
5557
  },
5239
5558
  [clear, onSearch, currentValue]
5240
5559
  );
5241
- const ctx = React41__namespace.useMemo(
5560
+ const ctx = React42__namespace.useMemo(
5242
5561
  () => ({ api, value: currentValue, isSearching, setValue: handleValueChange, clear }),
5243
5562
  [api, currentValue, isSearching, handleValueChange, clear]
5244
5563
  );
5245
- return React41__namespace.createElement(
5564
+ return React42__namespace.createElement(
5246
5565
  SearchBarContext.Provider,
5247
5566
  { value: ctx },
5248
- React41__namespace.createElement(
5567
+ React42__namespace.createElement(
5249
5568
  "div",
5250
5569
  { className: cn(searchBarVariants(), className) },
5251
- React41__namespace.createElement("span", { className: "rfr-search-icon", "aria-hidden": "true" }, "\u{1F50D}"),
5252
- React41__namespace.createElement("input", {
5570
+ React42__namespace.createElement("span", { className: "rfr-search-icon", "aria-hidden": "true" }, "\u{1F50D}"),
5571
+ React42__namespace.createElement("input", {
5253
5572
  ...inputProps,
5254
5573
  role: api.inputProps.role,
5255
5574
  "aria-expanded": api.inputProps["aria-expanded"],
@@ -5261,8 +5580,8 @@ function SearchBar({
5261
5580
  onKeyDown: handleKeyDown,
5262
5581
  className: "rfr-search-input flex-1 bg-transparent outline-none"
5263
5582
  }),
5264
- isSearching && React41__namespace.createElement("span", { className: "rfr-search-spinner", "aria-label": "Loading" }, "\u23F3"),
5265
- currentValue.length > 0 && !isSearching && React41__namespace.createElement(
5583
+ isSearching && React42__namespace.createElement("span", { className: "rfr-search-spinner", "aria-label": "Loading" }, "\u23F3"),
5584
+ currentValue.length > 0 && !isSearching && React42__namespace.createElement(
5266
5585
  "button",
5267
5586
  {
5268
5587
  type: "button",
@@ -5277,11 +5596,11 @@ function SearchBar({
5277
5596
  );
5278
5597
  }
5279
5598
  SearchBar.displayName = "SearchBar";
5280
- var SearchResults = React41__namespace.forwardRef(
5599
+ var SearchResults = React42__namespace.forwardRef(
5281
5600
  ({ className, children, ...props }, ref) => {
5282
5601
  const { api, value } = useSearchBarContext();
5283
5602
  if (value.length === 0) return null;
5284
- return React41__namespace.createElement(
5603
+ return React42__namespace.createElement(
5285
5604
  "ul",
5286
5605
  {
5287
5606
  ref,
@@ -5295,9 +5614,9 @@ var SearchResults = React41__namespace.forwardRef(
5295
5614
  }
5296
5615
  );
5297
5616
  SearchResults.displayName = "SearchResults";
5298
- var SearchResultItem = React41__namespace.forwardRef(
5617
+ var SearchResultItem = React42__namespace.forwardRef(
5299
5618
  ({ className, children, ...props }, ref) => {
5300
- return React41__namespace.createElement(
5619
+ return React42__namespace.createElement(
5301
5620
  "li",
5302
5621
  {
5303
5622
  ref,
@@ -5358,7 +5677,7 @@ var sidebarItemVariants = cva({
5358
5677
  active: "false"
5359
5678
  }
5360
5679
  });
5361
- var Sidebar = React41__namespace.forwardRef(
5680
+ var Sidebar = React42__namespace.forwardRef(
5362
5681
  ({
5363
5682
  sections = [],
5364
5683
  currentPath,
@@ -5428,7 +5747,7 @@ var skeletonVariants = cva({
5428
5747
  });
5429
5748
 
5430
5749
  // ../react-skeleton/dist/index.js
5431
- var Skeleton = React41__namespace.forwardRef(
5750
+ var Skeleton = React42__namespace.forwardRef(
5432
5751
  ({ shape, width, height, animate, className, style, ...props }, ref) => {
5433
5752
  const api = createSkeleton({ shape, animate });
5434
5753
  const classes = cn(skeletonVariants({ shape }), className);
@@ -5437,7 +5756,7 @@ var Skeleton = React41__namespace.forwardRef(
5437
5756
  ...width !== void 0 ? { width } : {},
5438
5757
  ...height !== void 0 ? { height } : {}
5439
5758
  };
5440
- return React41__namespace.createElement("div", {
5759
+ return React42__namespace.createElement("div", {
5441
5760
  ref,
5442
5761
  className: classes,
5443
5762
  style: Object.keys(mergedStyle).length > 0 ? mergedStyle : void 0,
@@ -5449,13 +5768,13 @@ var Skeleton = React41__namespace.forwardRef(
5449
5768
  );
5450
5769
  Skeleton.displayName = "Skeleton";
5451
5770
  var lineWidths = ["100%", "92%", "85%", "96%", "78%", "88%", "94%", "82%"];
5452
- var SkeletonText = React41__namespace.forwardRef(
5771
+ var SkeletonText = React42__namespace.forwardRef(
5453
5772
  ({ lines = 3, animate, className, ...props }, ref) => {
5454
5773
  const children = [];
5455
5774
  for (let i = 0; i < lines; i++) {
5456
5775
  const width = lineWidths[i % lineWidths.length];
5457
5776
  children.push(
5458
- React41__namespace.createElement(Skeleton, {
5777
+ React42__namespace.createElement(Skeleton, {
5459
5778
  key: i,
5460
5779
  shape: "text",
5461
5780
  width,
@@ -5463,7 +5782,7 @@ var SkeletonText = React41__namespace.forwardRef(
5463
5782
  })
5464
5783
  );
5465
5784
  }
5466
- return React41__namespace.createElement(
5785
+ return React42__namespace.createElement(
5467
5786
  "div",
5468
5787
  {
5469
5788
  ref,
@@ -5571,9 +5890,9 @@ var tabsTriggerVariants = cva({
5571
5890
  });
5572
5891
 
5573
5892
  // ../react-tabs/dist/index.js
5574
- var TabsContext = React41__namespace.createContext(null);
5893
+ var TabsContext = React42__namespace.createContext(null);
5575
5894
  function useTabsContext() {
5576
- const ctx = React41__namespace.useContext(TabsContext);
5895
+ const ctx = React42__namespace.useContext(TabsContext);
5577
5896
  if (!ctx) {
5578
5897
  throw new Error("Tabs compound components must be used within <Tabs>");
5579
5898
  }
@@ -5587,10 +5906,10 @@ function Tabs({
5587
5906
  className,
5588
5907
  children
5589
5908
  }) {
5590
- const [uncontrolledValue, setUncontrolledValue] = React41__namespace.useState(defaultValue);
5909
+ const [uncontrolledValue, setUncontrolledValue] = React42__namespace.useState(defaultValue);
5591
5910
  const isControlled = controlledValue !== void 0;
5592
5911
  const value = isControlled ? controlledValue : uncontrolledValue;
5593
- const handleValueChange = React41__namespace.useCallback(
5912
+ const handleValueChange = React42__namespace.useCallback(
5594
5913
  (next) => {
5595
5914
  if (!isControlled) {
5596
5915
  setUncontrolledValue(next);
@@ -5599,12 +5918,12 @@ function Tabs({
5599
5918
  },
5600
5919
  [isControlled, onValueChange]
5601
5920
  );
5602
- const apiRef = React41__namespace.useRef(null);
5921
+ const apiRef = React42__namespace.useRef(null);
5603
5922
  if (apiRef.current === null) {
5604
5923
  apiRef.current = createTabs({ value, orientation });
5605
5924
  }
5606
5925
  const api = apiRef.current;
5607
- const ctx = React41__namespace.useMemo(
5926
+ const ctx = React42__namespace.useMemo(
5608
5927
  () => ({
5609
5928
  value,
5610
5929
  onValueChange: handleValueChange,
@@ -5613,17 +5932,17 @@ function Tabs({
5613
5932
  }),
5614
5933
  [value, handleValueChange, orientation, api.idPrefix]
5615
5934
  );
5616
- return React41__namespace.createElement(
5935
+ return React42__namespace.createElement(
5617
5936
  "div",
5618
5937
  { className, "data-orientation": orientation },
5619
- React41__namespace.createElement(TabsContext.Provider, { value: ctx }, children)
5938
+ React42__namespace.createElement(TabsContext.Provider, { value: ctx }, children)
5620
5939
  );
5621
5940
  }
5622
5941
  Tabs.displayName = "Tabs";
5623
- var TabsList = React41__namespace.forwardRef(
5942
+ var TabsList = React42__namespace.forwardRef(
5624
5943
  ({ className, ...props }, ref) => {
5625
5944
  const { orientation } = useTabsContext();
5626
- return React41__namespace.createElement("div", {
5945
+ return React42__namespace.createElement("div", {
5627
5946
  ref,
5628
5947
  role: "tablist",
5629
5948
  "aria-orientation": orientation,
@@ -5633,7 +5952,7 @@ var TabsList = React41__namespace.forwardRef(
5633
5952
  }
5634
5953
  );
5635
5954
  TabsList.displayName = "TabsList";
5636
- var TabsTrigger = React41__namespace.forwardRef(
5955
+ var TabsTrigger = React42__namespace.forwardRef(
5637
5956
  ({ value, className, onClick, onKeyDown, children, ...props }, ref) => {
5638
5957
  const { value: activeValue, onValueChange, orientation, idPrefix } = useTabsContext();
5639
5958
  const isSelected = activeValue === value;
@@ -5646,7 +5965,7 @@ var TabsTrigger = React41__namespace.forwardRef(
5646
5965
  const handleKeyDown = (e) => {
5647
5966
  onKeyDown?.(e);
5648
5967
  };
5649
- return React41__namespace.createElement(
5968
+ return React42__namespace.createElement(
5650
5969
  "button",
5651
5970
  {
5652
5971
  ref,
@@ -5667,14 +5986,14 @@ var TabsTrigger = React41__namespace.forwardRef(
5667
5986
  }
5668
5987
  );
5669
5988
  TabsTrigger.displayName = "TabsTrigger";
5670
- var TabsContent = React41__namespace.forwardRef(
5989
+ var TabsContent = React42__namespace.forwardRef(
5671
5990
  ({ value, className, children, ...props }, ref) => {
5672
5991
  const { value: activeValue, idPrefix } = useTabsContext();
5673
5992
  const isSelected = activeValue === value;
5674
5993
  const tabId = `${idPrefix}-tab-${value}`;
5675
5994
  const panelId = `${idPrefix}-panel-${value}`;
5676
5995
  if (!isSelected) return null;
5677
- return React41__namespace.createElement(
5996
+ return React42__namespace.createElement(
5678
5997
  "div",
5679
5998
  {
5680
5999
  ref,
@@ -5738,7 +6057,7 @@ var textareaVariants = cva({
5738
6057
  size: "default"
5739
6058
  }
5740
6059
  });
5741
- var Textarea = React41__namespace.forwardRef(
6060
+ var Textarea = React42__namespace.forwardRef(
5742
6061
  ({ size, className, disabled, readOnly, required, rows, maxRows, "aria-invalid": ariaInvalid, ...props }, ref) => {
5743
6062
  const api = createTextarea({
5744
6063
  disabled,
@@ -5895,30 +6214,30 @@ var toastVariants = cva({
5895
6214
  });
5896
6215
 
5897
6216
  // ../react-toast/dist/index.js
5898
- var ToastContext = React41__namespace.createContext(null);
6217
+ var ToastContext = React42__namespace.createContext(null);
5899
6218
  function useToastContext() {
5900
- const ctx = React41__namespace.useContext(ToastContext);
6219
+ const ctx = React42__namespace.useContext(ToastContext);
5901
6220
  if (!ctx) {
5902
6221
  throw new Error("useToast must be used within a <ToastProvider>");
5903
6222
  }
5904
6223
  return ctx;
5905
6224
  }
5906
6225
  function ToastProvider({ children }) {
5907
- const managerRef = React41__namespace.useRef(null);
6226
+ const managerRef = React42__namespace.useRef(null);
5908
6227
  if (managerRef.current === null) {
5909
6228
  managerRef.current = createToastManager();
5910
6229
  }
5911
- const ctx = React41__namespace.useMemo(
6230
+ const ctx = React42__namespace.useMemo(
5912
6231
  () => ({ manager: managerRef.current }),
5913
6232
  []
5914
6233
  );
5915
- return React41__namespace.createElement(ToastContext.Provider, { value: ctx }, children);
6234
+ return React42__namespace.createElement(ToastContext.Provider, { value: ctx }, children);
5916
6235
  }
5917
6236
  ToastProvider.displayName = "ToastProvider";
5918
6237
  function useToast() {
5919
6238
  const { manager } = useToastContext();
5920
- const [toasts, setToasts] = React41__namespace.useState(manager.toasts);
5921
- React41__namespace.useEffect(() => {
6239
+ const [toasts, setToasts] = React42__namespace.useState(manager.toasts);
6240
+ React42__namespace.useEffect(() => {
5922
6241
  setToasts(manager.toasts);
5923
6242
  const unsub = manager.subscribe(setToasts);
5924
6243
  return unsub;
@@ -5929,13 +6248,13 @@ function useToast() {
5929
6248
  toasts
5930
6249
  };
5931
6250
  }
5932
- var Toast = React41__namespace.forwardRef(
6251
+ var Toast = React42__namespace.forwardRef(
5933
6252
  ({ entry, onDismiss, className, children, onMouseEnter, onMouseLeave, ...props }, ref) => {
5934
- const api = React41__namespace.useMemo(
6253
+ const api = React42__namespace.useMemo(
5935
6254
  () => createToast({ variant: entry.variant, duration: entry.duration }),
5936
6255
  [entry.variant, entry.duration]
5937
6256
  );
5938
- React41__namespace.useEffect(() => {
6257
+ React42__namespace.useEffect(() => {
5939
6258
  api.startTimer();
5940
6259
  return () => api.pauseTimer();
5941
6260
  }, [api]);
@@ -5947,7 +6266,7 @@ var Toast = React41__namespace.forwardRef(
5947
6266
  api.resumeTimer();
5948
6267
  onMouseLeave?.(e);
5949
6268
  };
5950
- return React41__namespace.createElement(
6269
+ return React42__namespace.createElement(
5951
6270
  "div",
5952
6271
  {
5953
6272
  ref,
@@ -5957,9 +6276,9 @@ var Toast = React41__namespace.forwardRef(
5957
6276
  onMouseLeave: handleMouseLeave,
5958
6277
  ...props
5959
6278
  },
5960
- React41__namespace.createElement("div", { className: "flex-1" }, entry.message),
6279
+ React42__namespace.createElement("div", { className: "flex-1" }, entry.message),
5961
6280
  children,
5962
- onDismiss && React41__namespace.createElement(
6281
+ onDismiss && React42__namespace.createElement(
5963
6282
  "button",
5964
6283
  {
5965
6284
  type: "button",
@@ -5973,10 +6292,10 @@ var Toast = React41__namespace.forwardRef(
5973
6292
  }
5974
6293
  );
5975
6294
  Toast.displayName = "Toast";
5976
- var Toaster = React41__namespace.forwardRef(
6295
+ var Toaster = React42__namespace.forwardRef(
5977
6296
  ({ className, ...props }, ref) => {
5978
6297
  const { toasts, dismiss } = useToast();
5979
- return React41__namespace.createElement(
6298
+ return React42__namespace.createElement(
5980
6299
  "div",
5981
6300
  {
5982
6301
  ref,
@@ -5987,7 +6306,7 @@ var Toaster = React41__namespace.forwardRef(
5987
6306
  ...props
5988
6307
  },
5989
6308
  toasts.map(
5990
- (entry) => React41__namespace.createElement(Toast, {
6309
+ (entry) => React42__namespace.createElement(Toast, {
5991
6310
  key: entry.id,
5992
6311
  entry,
5993
6312
  onDismiss: dismiss
@@ -6074,9 +6393,9 @@ var tooltipContentVariants = cva({
6074
6393
  side: "top"
6075
6394
  }
6076
6395
  });
6077
- var TooltipContext = React41__namespace.createContext(null);
6396
+ var TooltipContext = React42__namespace.createContext(null);
6078
6397
  function useTooltipContext() {
6079
- const ctx = React41__namespace.useContext(TooltipContext);
6398
+ const ctx = React42__namespace.useContext(TooltipContext);
6080
6399
  if (!ctx) {
6081
6400
  throw new Error("Tooltip compound components must be used within <Tooltip>");
6082
6401
  }
@@ -6090,11 +6409,11 @@ function Tooltip({
6090
6409
  delayDuration = 300,
6091
6410
  children
6092
6411
  }) {
6093
- const [internalOpen, setInternalOpen] = React41__namespace.useState(controlledOpen ?? defaultOpen);
6412
+ const [internalOpen, setInternalOpen] = React42__namespace.useState(controlledOpen ?? defaultOpen);
6094
6413
  const isControlled = controlledOpen !== void 0;
6095
6414
  const isOpen = isControlled ? controlledOpen : internalOpen;
6096
- const timerRef = React41__namespace.useRef(null);
6097
- const handleOpenChange = React41__namespace.useCallback(
6415
+ const timerRef = React42__namespace.useRef(null);
6416
+ const handleOpenChange = React42__namespace.useCallback(
6098
6417
  (value) => {
6099
6418
  if (!isControlled) {
6100
6419
  setInternalOpen(value);
@@ -6103,17 +6422,17 @@ function Tooltip({
6103
6422
  },
6104
6423
  [isControlled, onOpenChange]
6105
6424
  );
6106
- const api = React41__namespace.useMemo(
6425
+ const api = React42__namespace.useMemo(
6107
6426
  () => createTooltip({ open: isOpen, onOpenChange: handleOpenChange, placement, delayDuration }),
6108
6427
  [isOpen, handleOpenChange, placement, delayDuration]
6109
6428
  );
6110
- const cancelDelay = React41__namespace.useCallback(() => {
6429
+ const cancelDelay = React42__namespace.useCallback(() => {
6111
6430
  if (timerRef.current !== null) {
6112
6431
  clearTimeout(timerRef.current);
6113
6432
  timerRef.current = null;
6114
6433
  }
6115
6434
  }, []);
6116
- const openWithDelay = React41__namespace.useCallback(() => {
6435
+ const openWithDelay = React42__namespace.useCallback(() => {
6117
6436
  cancelDelay();
6118
6437
  if (delayDuration <= 0) {
6119
6438
  handleOpenChange(true);
@@ -6124,21 +6443,21 @@ function Tooltip({
6124
6443
  timerRef.current = null;
6125
6444
  }, delayDuration);
6126
6445
  }, [cancelDelay, delayDuration, handleOpenChange]);
6127
- React41__namespace.useEffect(() => {
6446
+ React42__namespace.useEffect(() => {
6128
6447
  return () => {
6129
6448
  if (timerRef.current !== null) {
6130
6449
  clearTimeout(timerRef.current);
6131
6450
  }
6132
6451
  };
6133
6452
  }, []);
6134
- const ctx = React41__namespace.useMemo(
6453
+ const ctx = React42__namespace.useMemo(
6135
6454
  () => ({ api, open: isOpen, setOpen: handleOpenChange, openWithDelay, cancelDelay }),
6136
6455
  [api, isOpen, handleOpenChange, openWithDelay, cancelDelay]
6137
6456
  );
6138
- return React41__namespace.createElement(TooltipContext.Provider, { value: ctx }, children);
6457
+ return React42__namespace.createElement(TooltipContext.Provider, { value: ctx }, children);
6139
6458
  }
6140
6459
  Tooltip.displayName = "Tooltip";
6141
- var TooltipTrigger = React41__namespace.forwardRef(
6460
+ var TooltipTrigger = React42__namespace.forwardRef(
6142
6461
  ({ onMouseEnter, onMouseLeave, onFocus, onBlur, children, ...props }, ref) => {
6143
6462
  const { api, setOpen, openWithDelay, cancelDelay } = useTooltipContext();
6144
6463
  const handleMouseEnter = (e) => {
@@ -6175,7 +6494,7 @@ var TooltipTrigger = React41__namespace.forwardRef(
6175
6494
  }
6176
6495
  );
6177
6496
  TooltipTrigger.displayName = "TooltipTrigger";
6178
- var TooltipContent = React41__namespace.forwardRef(
6497
+ var TooltipContent = React42__namespace.forwardRef(
6179
6498
  ({ side, className, children, ...props }, ref) => {
6180
6499
  const { api, open } = useTooltipContext();
6181
6500
  if (!open) return null;
@@ -6295,7 +6614,7 @@ var overlayVariants = cva({
6295
6614
  visibility: "visible"
6296
6615
  }
6297
6616
  });
6298
- var VideoPlayer = React41__namespace.forwardRef(
6617
+ var VideoPlayer = React42__namespace.forwardRef(
6299
6618
  ({
6300
6619
  src,
6301
6620
  poster,
@@ -6305,9 +6624,9 @@ var VideoPlayer = React41__namespace.forwardRef(
6305
6624
  className,
6306
6625
  ...props
6307
6626
  }, ref) => {
6308
- const [, setTick] = React41__namespace.useState(0);
6309
- const rerender = React41__namespace.useCallback(() => setTick((t) => t + 1), []);
6310
- const apiRef = React41__namespace.useRef(
6627
+ const [, setTick] = React42__namespace.useState(0);
6628
+ const rerender = React42__namespace.useCallback(() => setTick((t) => t + 1), []);
6629
+ const apiRef = React42__namespace.useRef(
6311
6630
  createVideoPlayer({ muted: initialMuted})
6312
6631
  );
6313
6632
  const api = apiRef.current;
@@ -6474,7 +6793,7 @@ var progressBarVariants = cva({
6474
6793
  size: "md"
6475
6794
  }
6476
6795
  });
6477
- var StatsGrid = React41__namespace.forwardRef(
6796
+ var StatsGrid = React42__namespace.forwardRef(
6478
6797
  ({ stats, badges = [], className, ...props }, ref) => {
6479
6798
  const api = createProgressDisplay({ stats, badges });
6480
6799
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -6503,7 +6822,7 @@ var StatsGrid = React41__namespace.forwardRef(
6503
6822
  }
6504
6823
  );
6505
6824
  StatsGrid.displayName = "StatsGrid";
6506
- var ProgressBar = React41__namespace.forwardRef(
6825
+ var ProgressBar = React42__namespace.forwardRef(
6507
6826
  ({ value, max = 100, size, className, ...props }, ref) => {
6508
6827
  const percent = Math.min(100, Math.max(0, value / max * 100));
6509
6828
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -6528,7 +6847,7 @@ var ProgressBar = React41__namespace.forwardRef(
6528
6847
  }
6529
6848
  );
6530
6849
  ProgressBar.displayName = "ProgressBar";
6531
- var BadgeDisplay = React41__namespace.forwardRef(
6850
+ var BadgeDisplay = React42__namespace.forwardRef(
6532
6851
  ({ badges, className, ...props }, ref) => {
6533
6852
  const api = createProgressDisplay({ stats: [], badges });
6534
6853
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -6696,7 +7015,7 @@ var slideTypeBadgeVariants = cva({
6696
7015
  type: "lesson"
6697
7016
  }
6698
7017
  });
6699
- var SlideViewer = React41__namespace.forwardRef(
7018
+ var SlideViewer = React42__namespace.forwardRef(
6700
7019
  ({
6701
7020
  slides,
6702
7021
  initialSlide,
@@ -6706,9 +7025,9 @@ var SlideViewer = React41__namespace.forwardRef(
6706
7025
  size,
6707
7026
  renderSlide
6708
7027
  }, ref) => {
6709
- const [, setTick] = React41__namespace.useState(0);
7028
+ const [, setTick] = React42__namespace.useState(0);
6710
7029
  const rerender = () => setTick((t) => t + 1);
6711
- const apiRef = React41__namespace.useRef(
7030
+ const apiRef = React42__namespace.useRef(
6712
7031
  createSlideViewer({ slides, initialSlide, onSlideChange, onComplete })
6713
7032
  );
6714
7033
  const api = apiRef.current;
@@ -6910,7 +7229,7 @@ var optionVariants = cva({
6910
7229
  });
6911
7230
 
6912
7231
  // ../react-language-selector/dist/index.js
6913
- var LanguageSelectorContext = React41__namespace.createContext(null);
7232
+ var LanguageSelectorContext = React42__namespace.createContext(null);
6914
7233
  function LanguageSelector({
6915
7234
  value: controlledValue,
6916
7235
  onValueChange,
@@ -6920,10 +7239,10 @@ function LanguageSelector({
6920
7239
  className
6921
7240
  }) {
6922
7241
  const initialValues = Array.isArray(controlledValue) ? controlledValue : controlledValue ? [controlledValue] : [];
6923
- const [selectedValues, setSelectedValues] = React41__namespace.useState(initialValues);
6924
- const [isOpen, setIsOpen] = React41__namespace.useState(false);
6925
- const containerRef = React41__namespace.useRef(null);
6926
- const handleValueChange = React41__namespace.useCallback(
7242
+ const [selectedValues, setSelectedValues] = React42__namespace.useState(initialValues);
7243
+ const [isOpen, setIsOpen] = React42__namespace.useState(false);
7244
+ const containerRef = React42__namespace.useRef(null);
7245
+ const handleValueChange = React42__namespace.useCallback(
6927
7246
  (val) => {
6928
7247
  const arr = Array.isArray(val) ? val : [val];
6929
7248
  setSelectedValues(arr);
@@ -6931,7 +7250,7 @@ function LanguageSelector({
6931
7250
  },
6932
7251
  [onValueChange]
6933
7252
  );
6934
- const api = React41__namespace.useMemo(
7253
+ const api = React42__namespace.useMemo(
6935
7254
  () => createLanguageSelector({
6936
7255
  value: multiple ? selectedValues : selectedValues[0],
6937
7256
  onValueChange: handleValueChange,
@@ -6939,7 +7258,7 @@ function LanguageSelector({
6939
7258
  }),
6940
7259
  [selectedValues, handleValueChange, options, multiple]
6941
7260
  );
6942
- const handleToggle = React41__namespace.useCallback(
7261
+ const handleToggle = React42__namespace.useCallback(
6943
7262
  (val) => {
6944
7263
  if (multiple) {
6945
7264
  const index = selectedValues.indexOf(val);
@@ -6954,10 +7273,10 @@ function LanguageSelector({
6954
7273
  },
6955
7274
  [multiple, selectedValues, onValueChange]
6956
7275
  );
6957
- const handleTriggerClick = React41__namespace.useCallback(() => {
7276
+ const handleTriggerClick = React42__namespace.useCallback(() => {
6958
7277
  setIsOpen((prev) => !prev);
6959
7278
  }, []);
6960
- const handleKeyDown = React41__namespace.useCallback(
7279
+ const handleKeyDown = React42__namespace.useCallback(
6961
7280
  (e) => {
6962
7281
  if (e.key === "Escape") {
6963
7282
  setIsOpen(false);
@@ -6972,7 +7291,7 @@ function LanguageSelector({
6972
7291
  },
6973
7292
  [isOpen]
6974
7293
  );
6975
- React41__namespace.useEffect(() => {
7294
+ React42__namespace.useEffect(() => {
6976
7295
  if (!isOpen) return;
6977
7296
  function handleClickOutside(e) {
6978
7297
  if (containerRef.current && !containerRef.current.contains(e.target)) {
@@ -6982,7 +7301,7 @@ function LanguageSelector({
6982
7301
  document.addEventListener("mousedown", handleClickOutside);
6983
7302
  return () => document.removeEventListener("mousedown", handleClickOutside);
6984
7303
  }, [isOpen]);
6985
- const ctx = React41__namespace.useMemo(
7304
+ const ctx = React42__namespace.useMemo(
6986
7305
  () => ({
6987
7306
  api,
6988
7307
  isOpen,
@@ -6993,7 +7312,7 @@ function LanguageSelector({
6993
7312
  }),
6994
7313
  [api, isOpen, handleToggle, options, multiple]
6995
7314
  );
6996
- const grouped = React41__namespace.useMemo(() => {
7315
+ const grouped = React42__namespace.useMemo(() => {
6997
7316
  const groups = /* @__PURE__ */ new Map();
6998
7317
  const ungrouped = [];
6999
7318
  for (const opt of options) {
@@ -7008,14 +7327,14 @@ function LanguageSelector({
7008
7327
  return { groups, ungrouped };
7009
7328
  }, [options]);
7010
7329
  const displayLabel = selectedValues.length > 0 ? options.filter((o) => selectedValues.includes(o.value)).map((o) => o.label).join(", ") : placeholder;
7011
- return React41__namespace.createElement(
7330
+ return React42__namespace.createElement(
7012
7331
  LanguageSelectorContext.Provider,
7013
7332
  { value: ctx },
7014
- React41__namespace.createElement(
7333
+ React42__namespace.createElement(
7015
7334
  "div",
7016
7335
  { ref: containerRef, className: cn("rfr-language-selector relative inline-block", className) },
7017
7336
  // Trigger
7018
- React41__namespace.createElement(
7337
+ React42__namespace.createElement(
7019
7338
  "button",
7020
7339
  {
7021
7340
  type: "button",
@@ -7027,11 +7346,11 @@ function LanguageSelector({
7027
7346
  onClick: handleTriggerClick,
7028
7347
  onKeyDown: handleKeyDown
7029
7348
  },
7030
- React41__namespace.createElement("span", null, displayLabel),
7031
- React41__namespace.createElement("span", { "aria-hidden": "true", className: "ml-2" }, "\u25BE")
7349
+ React42__namespace.createElement("span", null, displayLabel),
7350
+ React42__namespace.createElement("span", { "aria-hidden": "true", className: "ml-2" }, "\u25BE")
7032
7351
  ),
7033
7352
  // Dropdown
7034
- isOpen && React41__namespace.createElement(
7353
+ isOpen && React42__namespace.createElement(
7035
7354
  "ul",
7036
7355
  {
7037
7356
  role: api.contentProps.role,
@@ -7040,21 +7359,21 @@ function LanguageSelector({
7040
7359
  className: "absolute top-full left-0 w-full mt-1 rounded-md border bg-popover text-popover-foreground shadow-md z-50 overflow-auto max-h-60"
7041
7360
  },
7042
7361
  ...[...grouped.groups.entries()].map(
7043
- ([group, opts]) => React41__namespace.createElement(
7362
+ ([group, opts]) => React42__namespace.createElement(
7044
7363
  "li",
7045
7364
  { key: group, role: "presentation" },
7046
- React41__namespace.createElement(
7365
+ React42__namespace.createElement(
7047
7366
  "div",
7048
7367
  { className: "px-3 py-1 text-xs font-semibold text-muted-foreground uppercase" },
7049
7368
  group
7050
7369
  ),
7051
- React41__namespace.createElement(
7370
+ React42__namespace.createElement(
7052
7371
  "ul",
7053
7372
  { role: "group", "aria-label": group },
7054
7373
  ...opts.map((opt) => {
7055
7374
  const optProps = api.getOptionProps(opt.value);
7056
7375
  const isSelected = selectedValues.includes(opt.value);
7057
- return React41__namespace.createElement(
7376
+ return React42__namespace.createElement(
7058
7377
  "li",
7059
7378
  {
7060
7379
  key: opt.value,
@@ -7062,8 +7381,8 @@ function LanguageSelector({
7062
7381
  className: optionVariants({ selected: isSelected ? "true" : "false" }),
7063
7382
  onClick: () => handleToggle(opt.value)
7064
7383
  },
7065
- isSelected && React41__namespace.createElement("span", { "aria-hidden": "true" }, "\u2713"),
7066
- React41__namespace.createElement("span", null, opt.label)
7384
+ isSelected && React42__namespace.createElement("span", { "aria-hidden": "true" }, "\u2713"),
7385
+ React42__namespace.createElement("span", null, opt.label)
7067
7386
  );
7068
7387
  })
7069
7388
  )
@@ -7072,7 +7391,7 @@ function LanguageSelector({
7072
7391
  ...grouped.ungrouped.map((opt) => {
7073
7392
  const optProps = api.getOptionProps(opt.value);
7074
7393
  const isSelected = selectedValues.includes(opt.value);
7075
- return React41__namespace.createElement(
7394
+ return React42__namespace.createElement(
7076
7395
  "li",
7077
7396
  {
7078
7397
  key: opt.value,
@@ -7080,8 +7399,8 @@ function LanguageSelector({
7080
7399
  className: optionVariants({ selected: isSelected ? "true" : "false" }),
7081
7400
  onClick: () => handleToggle(opt.value)
7082
7401
  },
7083
- isSelected && React41__namespace.createElement("span", { "aria-hidden": "true" }, "\u2713"),
7084
- React41__namespace.createElement("span", null, opt.label)
7402
+ isSelected && React42__namespace.createElement("span", { "aria-hidden": "true" }, "\u2713"),
7403
+ React42__namespace.createElement("span", null, opt.label)
7085
7404
  );
7086
7405
  })
7087
7406
  )
@@ -7206,7 +7525,7 @@ var latestBadgeVariants = cva({
7206
7525
  });
7207
7526
 
7208
7527
  // ../react-version-selector/dist/index.js
7209
- var VersionSelectorContext = React41__namespace.createContext(null);
7528
+ var VersionSelectorContext = React42__namespace.createContext(null);
7210
7529
  function VersionSelector({
7211
7530
  value: controlledValue,
7212
7531
  onValueChange,
@@ -7214,17 +7533,17 @@ function VersionSelector({
7214
7533
  placeholder = "Select version...",
7215
7534
  className
7216
7535
  }) {
7217
- const [selectedVersion, setSelectedVersion] = React41__namespace.useState(controlledValue ?? "");
7218
- const [isOpen, setIsOpen] = React41__namespace.useState(false);
7219
- const containerRef = React41__namespace.useRef(null);
7220
- const handleValueChange = React41__namespace.useCallback(
7536
+ const [selectedVersion, setSelectedVersion] = React42__namespace.useState(controlledValue ?? "");
7537
+ const [isOpen, setIsOpen] = React42__namespace.useState(false);
7538
+ const containerRef = React42__namespace.useRef(null);
7539
+ const handleValueChange = React42__namespace.useCallback(
7221
7540
  (val) => {
7222
7541
  setSelectedVersion(val);
7223
7542
  onValueChange?.(val);
7224
7543
  },
7225
7544
  [onValueChange]
7226
7545
  );
7227
- const api = React41__namespace.useMemo(
7546
+ const api = React42__namespace.useMemo(
7228
7547
  () => createVersionSelector({
7229
7548
  value: selectedVersion,
7230
7549
  onValueChange: handleValueChange,
@@ -7232,7 +7551,7 @@ function VersionSelector({
7232
7551
  }),
7233
7552
  [selectedVersion, handleValueChange, versions]
7234
7553
  );
7235
- const handleSelect = React41__namespace.useCallback(
7554
+ const handleSelect = React42__namespace.useCallback(
7236
7555
  (val) => {
7237
7556
  setSelectedVersion(val);
7238
7557
  onValueChange?.(val);
@@ -7240,10 +7559,10 @@ function VersionSelector({
7240
7559
  },
7241
7560
  [onValueChange]
7242
7561
  );
7243
- const handleTriggerClick = React41__namespace.useCallback(() => {
7562
+ const handleTriggerClick = React42__namespace.useCallback(() => {
7244
7563
  setIsOpen((prev) => !prev);
7245
7564
  }, []);
7246
- const handleKeyDown = React41__namespace.useCallback(
7565
+ const handleKeyDown = React42__namespace.useCallback(
7247
7566
  (e) => {
7248
7567
  if (e.key === "Escape") {
7249
7568
  setIsOpen(false);
@@ -7258,7 +7577,7 @@ function VersionSelector({
7258
7577
  },
7259
7578
  [isOpen]
7260
7579
  );
7261
- React41__namespace.useEffect(() => {
7580
+ React42__namespace.useEffect(() => {
7262
7581
  if (!isOpen) return;
7263
7582
  function handleClickOutside(e) {
7264
7583
  if (containerRef.current && !containerRef.current.contains(e.target)) {
@@ -7268,7 +7587,7 @@ function VersionSelector({
7268
7587
  document.addEventListener("mousedown", handleClickOutside);
7269
7588
  return () => document.removeEventListener("mousedown", handleClickOutside);
7270
7589
  }, [isOpen]);
7271
- const ctx = React41__namespace.useMemo(
7590
+ const ctx = React42__namespace.useMemo(
7272
7591
  () => ({
7273
7592
  api,
7274
7593
  isOpen,
@@ -7280,14 +7599,14 @@ function VersionSelector({
7280
7599
  );
7281
7600
  const selectedOpt = versions.find((v) => v.value === selectedVersion);
7282
7601
  const displayLabel = selectedOpt ? selectedOpt.label : placeholder;
7283
- return React41__namespace.createElement(
7602
+ return React42__namespace.createElement(
7284
7603
  VersionSelectorContext.Provider,
7285
7604
  { value: ctx },
7286
- React41__namespace.createElement(
7605
+ React42__namespace.createElement(
7287
7606
  "div",
7288
7607
  { ref: containerRef, className: cn("rfr-version-selector relative inline-block", className) },
7289
7608
  // Trigger
7290
- React41__namespace.createElement(
7609
+ React42__namespace.createElement(
7291
7610
  "button",
7292
7611
  {
7293
7612
  type: "button",
@@ -7299,16 +7618,16 @@ function VersionSelector({
7299
7618
  onClick: handleTriggerClick,
7300
7619
  onKeyDown: handleKeyDown
7301
7620
  },
7302
- React41__namespace.createElement("span", null, displayLabel),
7303
- selectedOpt?.isLatest && React41__namespace.createElement(
7621
+ React42__namespace.createElement("span", null, displayLabel),
7622
+ selectedOpt?.isLatest && React42__namespace.createElement(
7304
7623
  "span",
7305
7624
  { className: cn(latestBadgeVariants(), "ml-2") },
7306
7625
  "Latest"
7307
7626
  ),
7308
- React41__namespace.createElement("span", { "aria-hidden": "true", className: "ml-2" }, "\u25BE")
7627
+ React42__namespace.createElement("span", { "aria-hidden": "true", className: "ml-2" }, "\u25BE")
7309
7628
  ),
7310
7629
  // Dropdown
7311
- isOpen && React41__namespace.createElement(
7630
+ isOpen && React42__namespace.createElement(
7312
7631
  "ul",
7313
7632
  {
7314
7633
  role: api.contentProps.role,
@@ -7318,7 +7637,7 @@ function VersionSelector({
7318
7637
  ...versions.map((ver) => {
7319
7638
  const optProps = api.getOptionProps(ver.value);
7320
7639
  const isSelected = selectedVersion === ver.value;
7321
- return React41__namespace.createElement(
7640
+ return React42__namespace.createElement(
7322
7641
  "li",
7323
7642
  {
7324
7643
  key: ver.value,
@@ -7326,8 +7645,8 @@ function VersionSelector({
7326
7645
  className: optionVariants2({ selected: isSelected ? "true" : "false" }),
7327
7646
  onClick: () => handleSelect(ver.value)
7328
7647
  },
7329
- React41__namespace.createElement("span", null, ver.label),
7330
- ver.isLatest && React41__namespace.createElement(
7648
+ React42__namespace.createElement("span", null, ver.label),
7649
+ ver.isLatest && React42__namespace.createElement(
7331
7650
  "span",
7332
7651
  { className: latestBadgeVariants() },
7333
7652
  "Latest"
@@ -7470,15 +7789,15 @@ var resizablePaneVariants = cva({
7470
7789
  orientation: "horizontal"
7471
7790
  }
7472
7791
  });
7473
- var ResizableLayoutContext = React41__namespace.createContext(null);
7792
+ var ResizableLayoutContext = React42__namespace.createContext(null);
7474
7793
  function useResizableLayoutContext() {
7475
- const ctx = React41__namespace.useContext(ResizableLayoutContext);
7794
+ const ctx = React42__namespace.useContext(ResizableLayoutContext);
7476
7795
  if (!ctx) {
7477
7796
  throw new Error("Resizable compound components must be used within <ResizableLayout>");
7478
7797
  }
7479
7798
  return ctx;
7480
7799
  }
7481
- var ResizableLayout = React41__namespace.forwardRef(
7800
+ var ResizableLayout = React42__namespace.forwardRef(
7482
7801
  ({
7483
7802
  orientation = "horizontal",
7484
7803
  defaultSizes = [50, 50],
@@ -7491,7 +7810,7 @@ var ResizableLayout = React41__namespace.forwardRef(
7491
7810
  children,
7492
7811
  ...props
7493
7812
  }, ref) => {
7494
- const apiRef = React41__namespace.useRef(null);
7813
+ const apiRef = React42__namespace.useRef(null);
7495
7814
  if (!apiRef.current) {
7496
7815
  apiRef.current = createResizableLayout({
7497
7816
  orientation,
@@ -7502,22 +7821,22 @@ var ResizableLayout = React41__namespace.forwardRef(
7502
7821
  });
7503
7822
  }
7504
7823
  const api = apiRef.current;
7505
- const [sizes, setSizesState] = React41__namespace.useState(api.sizes);
7506
- const setSizes = React41__namespace.useCallback(
7824
+ const [sizes, setSizesState] = React42__namespace.useState(api.sizes);
7825
+ const setSizes = React42__namespace.useCallback(
7507
7826
  (newSizes) => {
7508
7827
  setSizesState([...newSizes]);
7509
7828
  onSizesChange?.(newSizes);
7510
7829
  },
7511
7830
  [onSizesChange]
7512
7831
  );
7513
- const cssVars = React41__namespace.useMemo(() => {
7832
+ const cssVars = React42__namespace.useMemo(() => {
7514
7833
  const vars = {};
7515
7834
  for (let i = 0; i < sizes.length; i++) {
7516
7835
  vars[`--rfr-pane-${i}-size`] = `${sizes[i]}%`;
7517
7836
  }
7518
7837
  return vars;
7519
7838
  }, [sizes]);
7520
- const contextValue = React41__namespace.useMemo(
7839
+ const contextValue = React42__namespace.useMemo(
7521
7840
  () => ({ api, orientation, sizes, setSizes }),
7522
7841
  [api, orientation, sizes, setSizes]
7523
7842
  );
@@ -7535,7 +7854,7 @@ var ResizableLayout = React41__namespace.forwardRef(
7535
7854
  }
7536
7855
  );
7537
7856
  ResizableLayout.displayName = "ResizableLayout";
7538
- var ResizablePane = React41__namespace.forwardRef(
7857
+ var ResizablePane = React42__namespace.forwardRef(
7539
7858
  ({ index, className, style, children, ...props }, ref) => {
7540
7859
  const { orientation, sizes } = useResizableLayoutContext();
7541
7860
  const size = sizes[index] ?? 50;
@@ -7559,12 +7878,12 @@ var ResizablePane = React41__namespace.forwardRef(
7559
7878
  }
7560
7879
  );
7561
7880
  ResizablePane.displayName = "ResizablePane";
7562
- var ResizableDivider = React41__namespace.forwardRef(
7881
+ var ResizableDivider = React42__namespace.forwardRef(
7563
7882
  ({ index, className, ...props }, ref) => {
7564
7883
  const { api, orientation, setSizes } = useResizableLayoutContext();
7565
- const startPosRef = React41__namespace.useRef(0);
7566
- const containerSizeRef = React41__namespace.useRef(0);
7567
- const onPointerDown = React41__namespace.useCallback(
7884
+ const startPosRef = React42__namespace.useRef(0);
7885
+ const containerSizeRef = React42__namespace.useRef(0);
7886
+ const onPointerDown = React42__namespace.useCallback(
7568
7887
  (e) => {
7569
7888
  e.preventDefault();
7570
7889
  const target = e.currentTarget;
@@ -7578,7 +7897,7 @@ var ResizableDivider = React41__namespace.forwardRef(
7578
7897
  },
7579
7898
  [api, index, orientation]
7580
7899
  );
7581
- const onPointerMove = React41__namespace.useCallback(
7900
+ const onPointerMove = React42__namespace.useCallback(
7582
7901
  (e) => {
7583
7902
  if (containerSizeRef.current === 0) return;
7584
7903
  const currentPos = orientation === "horizontal" ? e.clientX : e.clientY;
@@ -7589,7 +7908,7 @@ var ResizableDivider = React41__namespace.forwardRef(
7589
7908
  },
7590
7909
  [api, orientation, setSizes]
7591
7910
  );
7592
- const onPointerUp = React41__namespace.useCallback(
7911
+ const onPointerUp = React42__namespace.useCallback(
7593
7912
  (e) => {
7594
7913
  e.currentTarget.releasePointerCapture(e.pointerId);
7595
7914
  containerSizeRef.current = 0;
@@ -7842,26 +8161,26 @@ function createAuthShell(config) {
7842
8161
  }
7843
8162
 
7844
8163
  // ../react-app-shell/dist/index.js
7845
- var AppShellContext = React41__namespace.createContext(null);
8164
+ var AppShellContext = React42__namespace.createContext(null);
7846
8165
  function useAppShell() {
7847
- const ctx = React41__namespace.useContext(AppShellContext);
8166
+ const ctx = React42__namespace.useContext(AppShellContext);
7848
8167
  if (!ctx) {
7849
8168
  throw new Error("useAppShell must be used within <AppShell>");
7850
8169
  }
7851
8170
  return ctx;
7852
8171
  }
7853
8172
  function AppShellRoot({ config, children, className }) {
7854
- const apiRef = React41__namespace.useRef(null);
8173
+ const apiRef = React42__namespace.useRef(null);
7855
8174
  if (apiRef.current === null) {
7856
8175
  apiRef.current = createAppShell(config);
7857
8176
  }
7858
8177
  const api = apiRef.current;
7859
- const [state, setState] = React41__namespace.useState(() => api.state);
7860
- React41__namespace.useEffect(() => {
8178
+ const [state, setState] = React42__namespace.useState(() => api.state);
8179
+ React42__namespace.useEffect(() => {
7861
8180
  setState(api.state);
7862
8181
  return api.subscribe((s) => setState(s));
7863
8182
  }, [api]);
7864
- React41__namespace.useEffect(() => {
8183
+ React42__namespace.useEffect(() => {
7865
8184
  if (typeof window === "undefined") return;
7866
8185
  const { mobileBreakpoint, tabletBreakpoint } = api.config;
7867
8186
  const mobileQuery = window.matchMedia(`(max-width: ${mobileBreakpoint - 1}px)`);
@@ -7882,14 +8201,14 @@ function AppShellRoot({ config, children, className }) {
7882
8201
  };
7883
8202
  }, [api]);
7884
8203
  const cssVars = api.getCSSVariables();
7885
- const ctxValue = React41__namespace.useMemo(
8204
+ const ctxValue = React42__namespace.useMemo(
7886
8205
  () => ({ api, state }),
7887
8206
  [api, state]
7888
8207
  );
7889
- return React41__namespace.createElement(
8208
+ return React42__namespace.createElement(
7890
8209
  AppShellContext.Provider,
7891
8210
  { value: ctxValue },
7892
- React41__namespace.createElement(
8211
+ React42__namespace.createElement(
7893
8212
  "div",
7894
8213
  {
7895
8214
  className: cn("flex h-screen w-full overflow-hidden", className),
@@ -7919,7 +8238,7 @@ function Sidebar2({ children, className }) {
7919
8238
  "w-[var(--shell-sidebar-full-width)]",
7920
8239
  state.sidebarOpen ? "translate-x-0" : isRight ? "translate-x-full" : "-translate-x-full"
7921
8240
  ] : ["relative", "w-[var(--shell-sidebar-width)]"];
7922
- return React41__namespace.createElement(
8241
+ return React42__namespace.createElement(
7923
8242
  "aside",
7924
8243
  {
7925
8244
  ...api.sidebarAriaProps,
@@ -7932,7 +8251,7 @@ function Sidebar2({ children, className }) {
7932
8251
  }
7933
8252
  Sidebar2.displayName = "AppShell.Sidebar";
7934
8253
  function Main({ children, className }) {
7935
- return React41__namespace.createElement(
8254
+ return React42__namespace.createElement(
7936
8255
  "div",
7937
8256
  {
7938
8257
  className: cn("flex flex-1 flex-col min-w-0 h-full", className)
@@ -7943,7 +8262,7 @@ function Main({ children, className }) {
7943
8262
  Main.displayName = "AppShell.Main";
7944
8263
  function Header({ children, className }) {
7945
8264
  const { api, state } = useAppShell();
7946
- const hamburger = state.isMobile ? React41__namespace.createElement(
8265
+ const hamburger = state.isMobile ? React42__namespace.createElement(
7947
8266
  "button",
7948
8267
  {
7949
8268
  type: "button",
@@ -7953,7 +8272,7 @@ function Header({ children, className }) {
7953
8272
  onClick: () => api.toggleSidebar(),
7954
8273
  className: "inline-flex items-center justify-center p-2 mr-2"
7955
8274
  },
7956
- React41__namespace.createElement(
8275
+ React42__namespace.createElement(
7957
8276
  "svg",
7958
8277
  {
7959
8278
  xmlns: "http://www.w3.org/2000/svg",
@@ -7967,12 +8286,12 @@ function Header({ children, className }) {
7967
8286
  strokeLinejoin: "round",
7968
8287
  "aria-hidden": "true"
7969
8288
  },
7970
- React41__namespace.createElement("line", { x1: 3, y1: 6, x2: 21, y2: 6 }),
7971
- React41__namespace.createElement("line", { x1: 3, y1: 12, x2: 21, y2: 12 }),
7972
- React41__namespace.createElement("line", { x1: 3, y1: 18, x2: 21, y2: 18 })
8289
+ React42__namespace.createElement("line", { x1: 3, y1: 6, x2: 21, y2: 6 }),
8290
+ React42__namespace.createElement("line", { x1: 3, y1: 12, x2: 21, y2: 12 }),
8291
+ React42__namespace.createElement("line", { x1: 3, y1: 18, x2: 21, y2: 18 })
7973
8292
  )
7974
8293
  ) : null;
7975
- return React41__namespace.createElement(
8294
+ return React42__namespace.createElement(
7976
8295
  "header",
7977
8296
  {
7978
8297
  ...api.headerAriaProps,
@@ -7991,7 +8310,7 @@ Header.displayName = "AppShell.Header";
7991
8310
  function Content({ children, className, maxWidth }) {
7992
8311
  const { api } = useAppShell();
7993
8312
  const mwClass = maxWidth ? `max-w-${maxWidth}` : "";
7994
- return React41__namespace.createElement(
8313
+ return React42__namespace.createElement(
7995
8314
  "main",
7996
8315
  {
7997
8316
  ...api.mainAriaProps,
@@ -8010,7 +8329,7 @@ function MobileNav2({ children, className }) {
8010
8329
  const { api, state } = useAppShell();
8011
8330
  if (!state.isMobile) return null;
8012
8331
  if (api.config.mobileNavPosition === "none") return null;
8013
- return React41__namespace.createElement(
8332
+ return React42__namespace.createElement(
8014
8333
  "nav",
8015
8334
  {
8016
8335
  ...api.mobileNavAriaProps,
@@ -8029,7 +8348,7 @@ MobileNav2.displayName = "AppShell.MobileNav";
8029
8348
  function Overlay({ className }) {
8030
8349
  const { api, state } = useAppShell();
8031
8350
  if (!state.isMobile || !state.sidebarOpen) return null;
8032
- return React41__namespace.createElement("div", {
8351
+ return React42__namespace.createElement("div", {
8033
8352
  ...api.overlayAriaProps,
8034
8353
  className: cn(
8035
8354
  "fixed inset-0 z-30 bg-black/50 transition-opacity",
@@ -8048,29 +8367,29 @@ var AppShell = Object.assign(AppShellRoot, {
8048
8367
  MobileNav: MobileNav2,
8049
8368
  Overlay
8050
8369
  });
8051
- var PageShellContext = React41__namespace.createContext(null);
8370
+ var PageShellContext = React42__namespace.createContext(null);
8052
8371
  function usePageShell() {
8053
- const ctx = React41__namespace.useContext(PageShellContext);
8372
+ const ctx = React42__namespace.useContext(PageShellContext);
8054
8373
  if (!ctx) {
8055
8374
  throw new Error("PageShell compound components must be used within <PageShell>");
8056
8375
  }
8057
8376
  return ctx;
8058
8377
  }
8059
8378
  function PageShellRoot({ config, children, className }) {
8060
- const apiRef = React41__namespace.useRef(null);
8379
+ const apiRef = React42__namespace.useRef(null);
8061
8380
  if (apiRef.current === null) {
8062
8381
  apiRef.current = createPageShell(config);
8063
8382
  }
8064
8383
  const api = apiRef.current;
8065
8384
  const cssVars = api.getCSSVariables();
8066
- const ctxValue = React41__namespace.useMemo(
8385
+ const ctxValue = React42__namespace.useMemo(
8067
8386
  () => ({ api }),
8068
8387
  [api]
8069
8388
  );
8070
- return React41__namespace.createElement(
8389
+ return React42__namespace.createElement(
8071
8390
  PageShellContext.Provider,
8072
8391
  { value: ctxValue },
8073
- React41__namespace.createElement(
8392
+ React42__namespace.createElement(
8074
8393
  "div",
8075
8394
  {
8076
8395
  className: cn("flex min-h-screen flex-col", className),
@@ -8086,7 +8405,7 @@ function Nav({ children, className }) {
8086
8405
  const { api } = usePageShell();
8087
8406
  const stickyClass = api.config.navSticky ? "sticky top-0 z-40" : "";
8088
8407
  const transparentClass = api.config.navTransparent ? "bg-transparent" : "bg-background border-b";
8089
- return React41__namespace.createElement(
8408
+ return React42__namespace.createElement(
8090
8409
  "nav",
8091
8410
  {
8092
8411
  ...api.navAriaProps,
@@ -8111,7 +8430,7 @@ function Section({
8111
8430
  }) {
8112
8431
  const { api } = usePageShell();
8113
8432
  const sectionClasses = api.getSectionClasses({ fullWidth, maxWidth, padding, background });
8114
- return React41__namespace.createElement(
8433
+ return React42__namespace.createElement(
8115
8434
  "section",
8116
8435
  {
8117
8436
  className: cn("py-12", sectionClasses, className)
@@ -8123,7 +8442,7 @@ Section.displayName = "PageShell.Section";
8123
8442
  function Footer2({ children, className, columns }) {
8124
8443
  const { api } = usePageShell();
8125
8444
  const cols = columns ?? api.config.footerColumns;
8126
- return React41__namespace.createElement(
8445
+ return React42__namespace.createElement(
8127
8446
  "footer",
8128
8447
  {
8129
8448
  ...api.footerAriaProps,
@@ -8132,7 +8451,7 @@ function Footer2({ children, className, columns }) {
8132
8451
  className
8133
8452
  )
8134
8453
  },
8135
- React41__namespace.createElement(
8454
+ React42__namespace.createElement(
8136
8455
  "div",
8137
8456
  {
8138
8457
  className: `mx-auto max-w-[var(--page-max-width)] grid gap-8`,
@@ -8150,28 +8469,28 @@ Object.assign(PageShellRoot, {
8150
8469
  Section,
8151
8470
  Footer: Footer2
8152
8471
  });
8153
- var AuthShellContext = React41__namespace.createContext(null);
8472
+ var AuthShellContext = React42__namespace.createContext(null);
8154
8473
  function useAuthShell() {
8155
- const ctx = React41__namespace.useContext(AuthShellContext);
8474
+ const ctx = React42__namespace.useContext(AuthShellContext);
8156
8475
  if (!ctx) {
8157
8476
  throw new Error("AuthShell compound components must be used within <AuthShell>");
8158
8477
  }
8159
8478
  return ctx;
8160
8479
  }
8161
8480
  function AuthShellRoot({ config, children, className }) {
8162
- const apiRef = React41__namespace.useRef(null);
8481
+ const apiRef = React42__namespace.useRef(null);
8163
8482
  if (apiRef.current === null) {
8164
8483
  apiRef.current = createAuthShell(config);
8165
8484
  }
8166
8485
  const api = apiRef.current;
8167
- const ctxValue = React41__namespace.useMemo(
8486
+ const ctxValue = React42__namespace.useMemo(
8168
8487
  () => ({ api }),
8169
8488
  [api]
8170
8489
  );
8171
- return React41__namespace.createElement(
8490
+ return React42__namespace.createElement(
8172
8491
  AuthShellContext.Provider,
8173
8492
  { value: ctxValue },
8174
- React41__namespace.createElement(
8493
+ React42__namespace.createElement(
8175
8494
  "div",
8176
8495
  {
8177
8496
  ...api.ariaProps,
@@ -8185,7 +8504,7 @@ function AuthShellRoot({ config, children, className }) {
8185
8504
  AuthShellRoot.displayName = "AuthShell";
8186
8505
  function Card({ children, className }) {
8187
8506
  const { api } = useAuthShell();
8188
- return React41__namespace.createElement(
8507
+ return React42__namespace.createElement(
8189
8508
  "div",
8190
8509
  {
8191
8510
  className: cn(api.cardClasses, className),
@@ -8273,7 +8592,7 @@ var avatarFallbackVariants = cva({
8273
8592
  size: "md"
8274
8593
  }
8275
8594
  });
8276
- var AvatarContext = React41__namespace.createContext({
8595
+ var AvatarContext = React42__namespace.createContext({
8277
8596
  size: "md",
8278
8597
  imageLoaded: false,
8279
8598
  imageError: false,
@@ -8282,10 +8601,10 @@ var AvatarContext = React41__namespace.createContext({
8282
8601
  setImageError: () => {
8283
8602
  }
8284
8603
  });
8285
- var Avatar = React41__namespace.forwardRef(
8604
+ var Avatar = React42__namespace.forwardRef(
8286
8605
  ({ size = "md", className, children, ...props }, ref) => {
8287
- const [imageLoaded, setImageLoaded] = React41__namespace.useState(false);
8288
- const [imageError, setImageError] = React41__namespace.useState(false);
8606
+ const [imageLoaded, setImageLoaded] = React42__namespace.useState(false);
8607
+ const [imageError, setImageError] = React42__namespace.useState(false);
8289
8608
  const api = createAvatar({ size });
8290
8609
  return /* @__PURE__ */ jsxRuntime.jsx(AvatarContext.Provider, { value: { size, imageLoaded, imageError, setImageLoaded, setImageError }, children: /* @__PURE__ */ jsxRuntime.jsx(
8291
8610
  "span",
@@ -8301,9 +8620,9 @@ var Avatar = React41__namespace.forwardRef(
8301
8620
  }
8302
8621
  );
8303
8622
  Avatar.displayName = "Avatar";
8304
- var AvatarImage = React41__namespace.forwardRef(
8623
+ var AvatarImage = React42__namespace.forwardRef(
8305
8624
  ({ className, src, alt = "", onLoad, onError, ...props }, ref) => {
8306
- const { setImageLoaded, setImageError } = React41__namespace.useContext(AvatarContext);
8625
+ const { setImageLoaded, setImageError } = React42__namespace.useContext(AvatarContext);
8307
8626
  const handleLoad = (e) => {
8308
8627
  setImageLoaded(true);
8309
8628
  onLoad?.(e);
@@ -8327,9 +8646,9 @@ var AvatarImage = React41__namespace.forwardRef(
8327
8646
  }
8328
8647
  );
8329
8648
  AvatarImage.displayName = "AvatarImage";
8330
- var AvatarFallback = React41__namespace.forwardRef(
8649
+ var AvatarFallback = React42__namespace.forwardRef(
8331
8650
  ({ className, children, ...props }, ref) => {
8332
- const { size } = React41__namespace.useContext(AvatarContext);
8651
+ const { size } = React42__namespace.useContext(AvatarContext);
8333
8652
  return /* @__PURE__ */ jsxRuntime.jsx(
8334
8653
  "span",
8335
8654
  {
@@ -8446,28 +8765,28 @@ var avatarPresenceDotVariants = cva({
8446
8765
  // ../react-avatar-group/dist/index.js
8447
8766
  function AvatarGroup({ users, max, size = "md", className }) {
8448
8767
  const api = createAvatarGroup({ users, max});
8449
- return React41__namespace.createElement(
8768
+ return React42__namespace.createElement(
8450
8769
  "div",
8451
8770
  { ...api.ariaProps, className: cn(avatarGroupStyles, className) },
8452
8771
  api.visibleUsers.map(
8453
- (user) => React41__namespace.createElement(
8772
+ (user) => React42__namespace.createElement(
8454
8773
  "div",
8455
8774
  {
8456
8775
  key: user.id,
8457
8776
  className: avatarVariants2({ size }),
8458
8777
  ...api.getAvatarAriaProps(user)
8459
8778
  },
8460
- user.src ? React41__namespace.createElement("img", {
8779
+ user.src ? React42__namespace.createElement("img", {
8461
8780
  src: user.src,
8462
8781
  alt: user.name,
8463
8782
  className: avatarImageStyles
8464
- }) : React41__namespace.createElement("span", null, api.getInitials(user.name)),
8465
- user.status && React41__namespace.createElement("span", {
8783
+ }) : React42__namespace.createElement("span", null, api.getInitials(user.name)),
8784
+ user.status && React42__namespace.createElement("span", {
8466
8785
  className: avatarPresenceDotVariants({ size, status: user.status })
8467
8786
  })
8468
8787
  )
8469
8788
  ),
8470
- api.overflowCount > 0 && React41__namespace.createElement(
8789
+ api.overflowCount > 0 && React42__namespace.createElement(
8471
8790
  "div",
8472
8791
  {
8473
8792
  className: avatarOverflowBadgeVariants({ size }),
@@ -8551,7 +8870,7 @@ var cardContentVariants = cva({
8551
8870
  var cardFooterVariants = cva({
8552
8871
  base: "flex items-center p-6 pt-0"
8553
8872
  });
8554
- var Card2 = React41__namespace.forwardRef(
8873
+ var Card2 = React42__namespace.forwardRef(
8555
8874
  ({ className, ...props }, ref) => {
8556
8875
  const api = createCard();
8557
8876
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -8567,7 +8886,7 @@ var Card2 = React41__namespace.forwardRef(
8567
8886
  }
8568
8887
  );
8569
8888
  Card2.displayName = "Card";
8570
- var CardHeader = React41__namespace.forwardRef(
8889
+ var CardHeader = React42__namespace.forwardRef(
8571
8890
  ({ className, ...props }, ref) => {
8572
8891
  const api = createCardHeader();
8573
8892
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -8582,7 +8901,7 @@ var CardHeader = React41__namespace.forwardRef(
8582
8901
  }
8583
8902
  );
8584
8903
  CardHeader.displayName = "CardHeader";
8585
- var CardTitle = React41__namespace.forwardRef(
8904
+ var CardTitle = React42__namespace.forwardRef(
8586
8905
  ({ className, ...props }, ref) => {
8587
8906
  const api = createCardTitle();
8588
8907
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -8597,7 +8916,7 @@ var CardTitle = React41__namespace.forwardRef(
8597
8916
  }
8598
8917
  );
8599
8918
  CardTitle.displayName = "CardTitle";
8600
- var CardDescription = React41__namespace.forwardRef(
8919
+ var CardDescription = React42__namespace.forwardRef(
8601
8920
  ({ className, ...props }, ref) => {
8602
8921
  const api = createCardDescription();
8603
8922
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -8612,7 +8931,7 @@ var CardDescription = React41__namespace.forwardRef(
8612
8931
  }
8613
8932
  );
8614
8933
  CardDescription.displayName = "CardDescription";
8615
- var CardContent = React41__namespace.forwardRef(
8934
+ var CardContent = React42__namespace.forwardRef(
8616
8935
  ({ className, ...props }, ref) => {
8617
8936
  const api = createCardContent();
8618
8937
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -8627,7 +8946,7 @@ var CardContent = React41__namespace.forwardRef(
8627
8946
  }
8628
8947
  );
8629
8948
  CardContent.displayName = "CardContent";
8630
- var CardFooter = React41__namespace.forwardRef(
8949
+ var CardFooter = React42__namespace.forwardRef(
8631
8950
  ({ className, ...props }, ref) => {
8632
8951
  const api = createCardFooter();
8633
8952
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -8708,7 +9027,7 @@ var checkboxVariants = cva({
8708
9027
  size: "default"
8709
9028
  }
8710
9029
  });
8711
- var Checkbox = React41__namespace.forwardRef(
9030
+ var Checkbox = React42__namespace.forwardRef(
8712
9031
  ({ checked = false, onCheckedChange, disabled = false, size = "default", className, ...props }, ref) => {
8713
9032
  const api = createCheckbox({ checked, disabled });
8714
9033
  const checkedVariant = checked === "indeterminate" ? "indeterminate" : checked ? "true" : "false";
@@ -9019,13 +9338,13 @@ function DatePicker({
9019
9338
  className,
9020
9339
  disabled = false
9021
9340
  }) {
9022
- const [open, setOpen] = React41__namespace.useState(false);
9023
- const [currentMonth, setCurrentMonth] = React41__namespace.useState(
9341
+ const [open, setOpen] = React42__namespace.useState(false);
9342
+ const [currentMonth, setCurrentMonth] = React42__namespace.useState(
9024
9343
  () => value ? new Date(value.getFullYear(), value.getMonth(), 1) : new Date((/* @__PURE__ */ new Date()).getFullYear(), (/* @__PURE__ */ new Date()).getMonth(), 1)
9025
9344
  );
9026
- const [view, setView] = React41__namespace.useState("calendar");
9027
- const containerRef = React41__namespace.useRef(null);
9028
- const api = React41__namespace.useMemo(
9345
+ const [view, setView] = React42__namespace.useState("calendar");
9346
+ const containerRef = React42__namespace.useRef(null);
9347
+ const api = React42__namespace.useMemo(
9029
9348
  () => createDatePicker({
9030
9349
  value,
9031
9350
  onChange,
@@ -9039,7 +9358,7 @@ function DatePicker({
9039
9358
  }),
9040
9359
  [value, onChange, minDate, maxDate, showTime, format, placeholder, open]
9041
9360
  );
9042
- React41__namespace.useMemo(() => {
9361
+ React42__namespace.useMemo(() => {
9043
9362
  createDatePicker({
9044
9363
  value,
9045
9364
  minDate,
@@ -9054,7 +9373,7 @@ function DatePicker({
9054
9373
  });
9055
9374
  return tempApi.days;
9056
9375
  }, [value, minDate, maxDate, currentMonth]);
9057
- React41__namespace.useEffect(() => {
9376
+ React42__namespace.useEffect(() => {
9058
9377
  if (!open) return;
9059
9378
  function handleClick(e) {
9060
9379
  if (containerRef.current && !containerRef.current.contains(e.target)) {
@@ -9064,7 +9383,7 @@ function DatePicker({
9064
9383
  document.addEventListener("mousedown", handleClick);
9065
9384
  return () => document.removeEventListener("mousedown", handleClick);
9066
9385
  }, [open]);
9067
- React41__namespace.useEffect(() => {
9386
+ React42__namespace.useEffect(() => {
9068
9387
  if (!open) return;
9069
9388
  function handleKeyDown(e) {
9070
9389
  if (e.key === "Escape") {
@@ -9102,10 +9421,10 @@ function DatePicker({
9102
9421
  onChange?.(newDate);
9103
9422
  };
9104
9423
  const monthLabel = currentMonth.toLocaleDateString("en-US", { month: "long", year: "numeric" });
9105
- return React41__namespace.createElement(
9424
+ return React42__namespace.createElement(
9106
9425
  "div",
9107
9426
  { ref: containerRef, className: cn("relative inline-block", className) },
9108
- React41__namespace.createElement(
9427
+ React42__namespace.createElement(
9109
9428
  "button",
9110
9429
  {
9111
9430
  type: "button",
@@ -9117,17 +9436,17 @@ function DatePicker({
9117
9436
  },
9118
9437
  displayValue
9119
9438
  ),
9120
- open && React41__namespace.createElement(
9439
+ open && React42__namespace.createElement(
9121
9440
  "div",
9122
9441
  {
9123
9442
  className: datePickerDropdownStyles,
9124
9443
  role: "dialog",
9125
9444
  "aria-modal": true
9126
9445
  },
9127
- React41__namespace.createElement(
9446
+ React42__namespace.createElement(
9128
9447
  "div",
9129
9448
  { className: "flex items-center justify-between mb-3" },
9130
- React41__namespace.createElement(
9449
+ React42__namespace.createElement(
9131
9450
  "button",
9132
9451
  {
9133
9452
  type: "button",
@@ -9137,8 +9456,8 @@ function DatePicker({
9137
9456
  },
9138
9457
  "\u2039"
9139
9458
  ),
9140
- React41__namespace.createElement("span", { className: "text-sm font-medium" }, monthLabel),
9141
- React41__namespace.createElement(
9459
+ React42__namespace.createElement("span", { className: "text-sm font-medium" }, monthLabel),
9460
+ React42__namespace.createElement(
9142
9461
  "button",
9143
9462
  {
9144
9463
  type: "button",
@@ -9149,11 +9468,11 @@ function DatePicker({
9149
9468
  "\u203A"
9150
9469
  )
9151
9470
  ),
9152
- React41__namespace.createElement(
9471
+ React42__namespace.createElement(
9153
9472
  "div",
9154
9473
  { className: "grid grid-cols-7 gap-0 text-center", role: "grid" },
9155
9474
  ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map(
9156
- (d) => React41__namespace.createElement("div", { key: d, className: "text-xs text-muted-foreground py-1 font-medium" }, d)
9475
+ (d) => React42__namespace.createElement("div", { key: d, className: "text-xs text-muted-foreground py-1 font-medium" }, d)
9157
9476
  ),
9158
9477
  api.days.map((day, i) => {
9159
9478
  let state = "default";
@@ -9161,7 +9480,7 @@ function DatePicker({
9161
9480
  else if (day.isSelected) state = "selected";
9162
9481
  else if (day.isToday) state = "today";
9163
9482
  else if (!day.isCurrentMonth) state = "outside";
9164
- return React41__namespace.createElement(
9483
+ return React42__namespace.createElement(
9165
9484
  "button",
9166
9485
  {
9167
9486
  key: i,
@@ -9176,11 +9495,11 @@ function DatePicker({
9176
9495
  );
9177
9496
  })
9178
9497
  ),
9179
- showTime && React41__namespace.createElement(
9498
+ showTime && React42__namespace.createElement(
9180
9499
  "div",
9181
9500
  { className: datePickerTimeStyles },
9182
- React41__namespace.createElement("span", { className: "text-sm text-muted-foreground" }, "Time:"),
9183
- React41__namespace.createElement("input", {
9501
+ React42__namespace.createElement("span", { className: "text-sm text-muted-foreground" }, "Time:"),
9502
+ React42__namespace.createElement("input", {
9184
9503
  type: "number",
9185
9504
  min: 0,
9186
9505
  max: 23,
@@ -9189,8 +9508,8 @@ function DatePicker({
9189
9508
  className: datePickerTimeInputStyles,
9190
9509
  "aria-label": "Hours"
9191
9510
  }),
9192
- React41__namespace.createElement("span", { className: "text-muted-foreground" }, ":"),
9193
- React41__namespace.createElement("input", {
9511
+ React42__namespace.createElement("span", { className: "text-muted-foreground" }, ":"),
9512
+ React42__namespace.createElement("input", {
9194
9513
  type: "number",
9195
9514
  min: 0,
9196
9515
  max: 59,
@@ -9580,10 +9899,10 @@ var emojiPickerSectionLabelStyles = "px-2 py-1 text-xs font-medium text-muted-fo
9580
9899
 
9581
9900
  // ../react-emoji-picker/dist/index.js
9582
9901
  function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className }) {
9583
- const [search, setSearch] = React41__namespace.useState("");
9584
- const [activeCategory, setActiveCategory] = React41__namespace.useState("smileys");
9585
- const [recentEmojis, setRecentEmojis] = React41__namespace.useState(initialRecent);
9586
- const api = React41__namespace.useMemo(
9902
+ const [search, setSearch] = React42__namespace.useState("");
9903
+ const [activeCategory, setActiveCategory] = React42__namespace.useState("smileys");
9904
+ const [recentEmojis, setRecentEmojis] = React42__namespace.useState(initialRecent);
9905
+ const api = React42__namespace.useMemo(
9587
9906
  () => createEmojiPicker({
9588
9907
  onSelect: void 0,
9589
9908
  search,
@@ -9591,7 +9910,7 @@ function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className })
9591
9910
  }),
9592
9911
  [search, recentEmojis]
9593
9912
  );
9594
- const filteredEmojis = React41__namespace.useMemo(() => {
9913
+ const filteredEmojis = React42__namespace.useMemo(() => {
9595
9914
  if (search.trim()) {
9596
9915
  const query = search.toLowerCase().trim();
9597
9916
  const allEmojis = EMOJI_CATEGORIES.flatMap((cat) => EMOJI_DATA[cat]);
@@ -9611,22 +9930,22 @@ function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className })
9611
9930
  setActiveCategory(cat);
9612
9931
  setSearch("");
9613
9932
  };
9614
- return React41__namespace.createElement(
9933
+ return React42__namespace.createElement(
9615
9934
  "div",
9616
9935
  { className: cn(emojiPickerContainerStyles, className), ...api.ariaProps },
9617
9936
  // Search input
9618
- React41__namespace.createElement("input", {
9937
+ React42__namespace.createElement("input", {
9619
9938
  ...api.searchInputProps,
9620
9939
  className: emojiPickerSearchStyles,
9621
9940
  value: search,
9622
9941
  onChange: (e) => setSearch(e.target.value)
9623
9942
  }),
9624
9943
  // Category tabs
9625
- !search && React41__namespace.createElement(
9944
+ !search && React42__namespace.createElement(
9626
9945
  "div",
9627
9946
  { className: emojiPickerCategoryBarStyles },
9628
9947
  api.categoryTabs.map(
9629
- (tab) => React41__namespace.createElement(
9948
+ (tab) => React42__namespace.createElement(
9630
9949
  "button",
9631
9950
  {
9632
9951
  key: tab.category,
@@ -9643,15 +9962,15 @@ function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className })
9643
9962
  )
9644
9963
  ),
9645
9964
  // Recent emojis section
9646
- !search && recentEmojis.length > 0 && React41__namespace.createElement(
9965
+ !search && recentEmojis.length > 0 && React42__namespace.createElement(
9647
9966
  "div",
9648
9967
  null,
9649
- React41__namespace.createElement("div", { className: emojiPickerSectionLabelStyles }, "Recent"),
9650
- React41__namespace.createElement(
9968
+ React42__namespace.createElement("div", { className: emojiPickerSectionLabelStyles }, "Recent"),
9969
+ React42__namespace.createElement(
9651
9970
  "div",
9652
9971
  { className: emojiPickerGridStyles },
9653
9972
  recentEmojis.map(
9654
- (emoji, i) => React41__namespace.createElement(
9973
+ (emoji, i) => React42__namespace.createElement(
9655
9974
  "button",
9656
9975
  {
9657
9976
  key: `recent-${emoji.emoji}-${i}`,
@@ -9666,19 +9985,19 @@ function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className })
9666
9985
  )
9667
9986
  ),
9668
9987
  // Emoji grid
9669
- React41__namespace.createElement(
9988
+ React42__namespace.createElement(
9670
9989
  "div",
9671
9990
  null,
9672
- !search && React41__namespace.createElement(
9991
+ !search && React42__namespace.createElement(
9673
9992
  "div",
9674
9993
  { className: emojiPickerSectionLabelStyles },
9675
9994
  CATEGORY_LABELS[activeCategory]
9676
9995
  ),
9677
- React41__namespace.createElement(
9996
+ React42__namespace.createElement(
9678
9997
  "div",
9679
9998
  { className: emojiPickerGridStyles },
9680
9999
  filteredEmojis.map(
9681
- (emoji, i) => React41__namespace.createElement(
10000
+ (emoji, i) => React42__namespace.createElement(
9682
10001
  "button",
9683
10002
  {
9684
10003
  key: `${emoji.emoji}-${i}`,
@@ -9690,7 +10009,7 @@ function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className })
9690
10009
  emoji.emoji
9691
10010
  )
9692
10011
  ),
9693
- filteredEmojis.length === 0 && React41__namespace.createElement(
10012
+ filteredEmojis.length === 0 && React42__namespace.createElement(
9694
10013
  "div",
9695
10014
  { className: "col-span-8 text-center text-sm text-muted-foreground py-4" },
9696
10015
  "No emojis found"
@@ -9890,10 +10209,10 @@ function FileUpload({
9890
10209
  className,
9891
10210
  children
9892
10211
  }) {
9893
- const [files, setFiles] = React41__namespace.useState([]);
9894
- const [isDragging, setIsDragging] = React41__namespace.useState(false);
9895
- const inputRef = React41__namespace.useRef(null);
9896
- const api = React41__namespace.useMemo(
10212
+ const [files, setFiles] = React42__namespace.useState([]);
10213
+ const [isDragging, setIsDragging] = React42__namespace.useState(false);
10214
+ const inputRef = React42__namespace.useRef(null);
10215
+ const api = React42__namespace.useMemo(
9897
10216
  () => createFileUpload({
9898
10217
  accept,
9899
10218
  maxSize,
@@ -9958,17 +10277,17 @@ function FileUpload({
9958
10277
  handleClick();
9959
10278
  }
9960
10279
  };
9961
- return React41__namespace.createElement(
10280
+ return React42__namespace.createElement(
9962
10281
  "div",
9963
10282
  { className },
9964
10283
  // Hidden file input
9965
- React41__namespace.createElement("input", {
10284
+ React42__namespace.createElement("input", {
9966
10285
  ref: inputRef,
9967
10286
  ...api.inputProps,
9968
10287
  onChange: handleInputChange
9969
10288
  }),
9970
10289
  // Drop zone
9971
- React41__namespace.createElement(
10290
+ React42__namespace.createElement(
9972
10291
  "div",
9973
10292
  {
9974
10293
  ...api.dropZoneProps,
@@ -9982,21 +10301,21 @@ function FileUpload({
9982
10301
  onDragOver: handleDragOver,
9983
10302
  onDrop: handleDrop
9984
10303
  },
9985
- children ?? React41__namespace.createElement(
9986
- React41__namespace.Fragment,
10304
+ children ?? React42__namespace.createElement(
10305
+ React42__namespace.Fragment,
9987
10306
  null,
9988
- React41__namespace.createElement("div", { className: "text-2xl mb-2" }, "\u{1F4C1}"),
9989
- React41__namespace.createElement(
10307
+ React42__namespace.createElement("div", { className: "text-2xl mb-2" }, "\u{1F4C1}"),
10308
+ React42__namespace.createElement(
9990
10309
  "p",
9991
10310
  { className: "text-sm text-muted-foreground" },
9992
10311
  "Drag & drop files here, or click to select"
9993
10312
  ),
9994
- accept && React41__namespace.createElement(
10313
+ accept && React42__namespace.createElement(
9995
10314
  "p",
9996
10315
  { className: "text-xs text-muted-foreground mt-1" },
9997
10316
  `Accepted: ${accept}`
9998
10317
  ),
9999
- maxSize && React41__namespace.createElement(
10318
+ maxSize && React42__namespace.createElement(
10000
10319
  "p",
10001
10320
  { className: "text-xs text-muted-foreground" },
10002
10321
  `Max size: ${formatFileSize(maxSize)}`
@@ -10004,37 +10323,37 @@ function FileUpload({
10004
10323
  )
10005
10324
  ),
10006
10325
  // File list
10007
- files.length > 0 && React41__namespace.createElement(
10326
+ files.length > 0 && React42__namespace.createElement(
10008
10327
  "div",
10009
10328
  { className: fileUploadFileListStyles },
10010
10329
  files.map(
10011
- (file) => React41__namespace.createElement(
10330
+ (file) => React42__namespace.createElement(
10012
10331
  "div",
10013
10332
  { key: file.id, className: fileUploadFileItemStyles },
10014
- React41__namespace.createElement(
10333
+ React42__namespace.createElement(
10015
10334
  "div",
10016
10335
  { className: "flex-1 min-w-0" },
10017
- React41__namespace.createElement("div", { className: "font-medium truncate" }, file.name),
10018
- React41__namespace.createElement(
10336
+ React42__namespace.createElement("div", { className: "font-medium truncate" }, file.name),
10337
+ React42__namespace.createElement(
10019
10338
  "div",
10020
10339
  { className: "text-xs text-muted-foreground" },
10021
10340
  formatFileSize(file.size)
10022
10341
  ),
10023
- file.status === "uploading" && React41__namespace.createElement(
10342
+ file.status === "uploading" && React42__namespace.createElement(
10024
10343
  "div",
10025
10344
  { className: cn(fileUploadProgressStyles, "mt-1") },
10026
- React41__namespace.createElement("div", {
10345
+ React42__namespace.createElement("div", {
10027
10346
  className: fileUploadProgressBarStyles,
10028
10347
  style: { width: `${file.progress}%` }
10029
10348
  })
10030
10349
  ),
10031
- file.error && React41__namespace.createElement(
10350
+ file.error && React42__namespace.createElement(
10032
10351
  "div",
10033
10352
  { className: "text-xs text-destructive mt-0.5" },
10034
10353
  file.error
10035
10354
  )
10036
10355
  ),
10037
- React41__namespace.createElement(
10356
+ React42__namespace.createElement(
10038
10357
  "button",
10039
10358
  {
10040
10359
  type: "button",
@@ -10054,162 +10373,6 @@ function FileUpload({
10054
10373
  }
10055
10374
  FileUpload.displayName = "FileUpload";
10056
10375
 
10057
- // ../keyboard-shortcut/dist/index.js
10058
- var MODIFIER_KEYS = /* @__PURE__ */ new Set(["Ctrl", "Control", "Alt", "Shift", "Meta", "Cmd", "Command"]);
10059
- var KEY_DISPLAY = {
10060
- "Ctrl": "Ctrl",
10061
- "Control": "Ctrl",
10062
- "Alt": "Alt",
10063
- "Shift": "Shift",
10064
- "Meta": "Meta",
10065
- "Cmd": "Cmd",
10066
- "Command": "Cmd",
10067
- "Enter": "\u21B5",
10068
- "Backspace": "\u232B",
10069
- "Delete": "Del",
10070
- "Escape": "Esc",
10071
- "ArrowUp": "\u2191",
10072
- "ArrowDown": "\u2193",
10073
- "ArrowLeft": "\u2190",
10074
- "ArrowRight": "\u2192",
10075
- "Tab": "Tab",
10076
- " ": "Space"
10077
- };
10078
- var MAC_KEY_DISPLAY = {
10079
- "Ctrl": "\u2303",
10080
- "Control": "\u2303",
10081
- "Alt": "\u2325",
10082
- "Shift": "\u21E7",
10083
- "Meta": "\u2318",
10084
- "Cmd": "\u2318",
10085
- "Command": "\u2318",
10086
- "Enter": "\u21B5",
10087
- "Backspace": "\u232B",
10088
- "Delete": "\u2326",
10089
- "Escape": "\u238B",
10090
- "ArrowUp": "\u2191",
10091
- "ArrowDown": "\u2193",
10092
- "ArrowLeft": "\u2190",
10093
- "ArrowRight": "\u2192",
10094
- "Tab": "\u21E5",
10095
- " ": "\u2423"
10096
- };
10097
- function normalizeKey(key) {
10098
- if (key === "Command" || key === "Cmd") return "Meta";
10099
- if (key === "Control") return "Ctrl";
10100
- return key;
10101
- }
10102
- function isMac() {
10103
- if (typeof navigator !== "undefined") {
10104
- return navigator.platform?.includes("Mac") || navigator.userAgent?.includes("Mac");
10105
- }
10106
- return false;
10107
- }
10108
- function formatShortcut(keys, mac) {
10109
- const displayMap = mac ? MAC_KEY_DISPLAY : KEY_DISPLAY;
10110
- return keys.map((key) => displayMap[key] ?? key.toUpperCase()).join(mac ? "" : "+");
10111
- }
10112
- function createKeyboardShortcut(props) {
10113
- const {
10114
- keys,
10115
- onTrigger,
10116
- enabled: enabledProp = true,
10117
- preventDefault: preventDefaultProp = true
10118
- } = props;
10119
- const normalizedKeys = keys.map(normalizeKey);
10120
- const modifiers = normalizedKeys.filter((k) => MODIFIER_KEYS.has(k));
10121
- const regularKeys = normalizedKeys.filter((k) => !MODIFIER_KEYS.has(k));
10122
- function handler(event) {
10123
- if (!enabledProp) return false;
10124
- const ctrlRequired = modifiers.includes("Ctrl");
10125
- const altRequired = modifiers.includes("Alt");
10126
- const shiftRequired = modifiers.includes("Shift");
10127
- const metaRequired = modifiers.includes("Meta");
10128
- if (ctrlRequired !== (event.ctrlKey || event.metaKey && !metaRequired)) ;
10129
- const ctrlMatch = ctrlRequired ? event.ctrlKey : !event.ctrlKey;
10130
- const altMatch = altRequired ? event.altKey : !event.altKey;
10131
- const shiftMatch = shiftRequired ? event.shiftKey : !event.shiftKey;
10132
- const metaMatch = metaRequired ? event.metaKey : !event.metaKey;
10133
- if (!ctrlMatch || !altMatch || !shiftMatch || !metaMatch) return false;
10134
- if (regularKeys.length > 0) {
10135
- const eventKey = event.key.length === 1 ? event.key.toUpperCase() : event.key;
10136
- const targetKey = regularKeys[0].length === 1 ? regularKeys[0].toUpperCase() : regularKeys[0];
10137
- if (eventKey !== targetKey) return false;
10138
- }
10139
- if (preventDefaultProp) {
10140
- event.preventDefault();
10141
- }
10142
- onTrigger();
10143
- return true;
10144
- }
10145
- const mac = isMac();
10146
- const display = formatShortcut(keys, false);
10147
- const platformDisplay = formatShortcut(keys, mac);
10148
- const badgeAriaProps = {
10149
- "aria-hidden": true,
10150
- role: "presentation"
10151
- };
10152
- return {
10153
- handler,
10154
- display,
10155
- platformDisplay,
10156
- enabled: enabledProp,
10157
- keys,
10158
- badgeAriaProps
10159
- };
10160
- }
10161
- var shortcutBadgeStyles = "inline-flex items-center gap-0.5 rounded border bg-muted px-1.5 py-0.5 text-xs font-mono text-muted-foreground";
10162
- var shortcutKeyStyles = "inline-flex items-center justify-center min-w-[1.25rem] rounded bg-background px-1 py-0.5 text-xs font-mono border shadow-sm";
10163
- var shortcutSeparatorStyles = "text-muted-foreground text-xs";
10164
-
10165
- // ../react-keyboard-shortcut/dist/index.js
10166
- function KeyboardShortcut({
10167
- keys,
10168
- onTrigger,
10169
- enabled = true,
10170
- preventDefault = true
10171
- }) {
10172
- const apiRef = React41__namespace.useRef(
10173
- createKeyboardShortcut({ keys, onTrigger, enabled, preventDefault })
10174
- );
10175
- React41__namespace.useEffect(() => {
10176
- apiRef.current = createKeyboardShortcut({ keys, onTrigger, enabled, preventDefault });
10177
- }, [keys, onTrigger, enabled, preventDefault]);
10178
- React41__namespace.useEffect(() => {
10179
- if (!enabled) return;
10180
- const handleKeyDown = (e) => {
10181
- apiRef.current.handler(e);
10182
- };
10183
- document.addEventListener("keydown", handleKeyDown);
10184
- return () => document.removeEventListener("keydown", handleKeyDown);
10185
- }, [enabled]);
10186
- return null;
10187
- }
10188
- KeyboardShortcut.displayName = "KeyboardShortcut";
10189
- function ShortcutBadge({ keys, platform = true, className }) {
10190
- const api = createKeyboardShortcut({ keys, onTrigger: () => {
10191
- }, enabled: false });
10192
- const displayKeys = platform ? api.platformDisplay : api.display;
10193
- const isMacDisplay = platform && displayKeys !== api.display;
10194
- return React41__namespace.createElement(
10195
- "kbd",
10196
- { ...api.badgeAriaProps, className: cn(shortcutBadgeStyles, className) },
10197
- isMacDisplay ? React41__namespace.createElement("span", null, displayKeys) : keys.map(
10198
- (key, i) => React41__namespace.createElement(
10199
- React41__namespace.Fragment,
10200
- { key: i },
10201
- i > 0 && React41__namespace.createElement("span", { className: shortcutSeparatorStyles }, "+"),
10202
- React41__namespace.createElement(
10203
- "span",
10204
- { className: shortcutKeyStyles },
10205
- formatShortcut([key], false)
10206
- )
10207
- )
10208
- )
10209
- );
10210
- }
10211
- ShortcutBadge.displayName = "ShortcutBadge";
10212
-
10213
10376
  // ../otp-input/dist/index.js
10214
10377
  function createOtpInput(props = {}) {
10215
10378
  const {
@@ -10375,7 +10538,7 @@ var otpInputSlotVariants = cva({
10375
10538
  filled: "false"
10376
10539
  }
10377
10540
  });
10378
- var OtpInput = React41__namespace.forwardRef(
10541
+ var OtpInput = React42__namespace.forwardRef(
10379
10542
  ({
10380
10543
  length = 6,
10381
10544
  value = "",
@@ -10387,15 +10550,15 @@ var OtpInput = React41__namespace.forwardRef(
10387
10550
  className,
10388
10551
  ...props
10389
10552
  }, ref) => {
10390
- const inputRefs = React41__namespace.useRef([]);
10391
- const [focusedIndex, setFocusedIndex] = React41__namespace.useState(autoFocus ? 0 : -1);
10392
- const [values, setValues] = React41__namespace.useState(
10553
+ const inputRefs = React42__namespace.useRef([]);
10554
+ const [focusedIndex, setFocusedIndex] = React42__namespace.useState(autoFocus ? 0 : -1);
10555
+ const [values, setValues] = React42__namespace.useState(
10393
10556
  () => Array.from({ length }, (_, i) => value.charAt(i) || "")
10394
10557
  );
10395
- React41__namespace.useEffect(() => {
10558
+ React42__namespace.useEffect(() => {
10396
10559
  setValues(Array.from({ length }, (_, i) => value.charAt(i) || ""));
10397
10560
  }, [value, length]);
10398
- React41__namespace.useEffect(() => {
10561
+ React42__namespace.useEffect(() => {
10399
10562
  if (autoFocus && inputRefs.current[0]) {
10400
10563
  inputRefs.current[0].focus();
10401
10564
  }
@@ -10575,13 +10738,13 @@ function PresenceIndicator({
10575
10738
  className
10576
10739
  }) {
10577
10740
  const api = createPresence({ status, showLabel, label });
10578
- return React41__namespace.createElement(
10741
+ return React42__namespace.createElement(
10579
10742
  "span",
10580
10743
  { ...api.ariaProps, className: cn(presenceContainerStyles, className) },
10581
- React41__namespace.createElement("span", {
10744
+ React42__namespace.createElement("span", {
10582
10745
  className: presenceDotVariants({ status, size })
10583
10746
  }),
10584
- api.showLabel && React41__namespace.createElement("span", { className: presenceLabelStyles }, api.label)
10747
+ api.showLabel && React42__namespace.createElement("span", { className: presenceLabelStyles }, api.label)
10585
10748
  );
10586
10749
  }
10587
10750
  PresenceIndicator.displayName = "PresenceIndicator";
@@ -10669,7 +10832,7 @@ var radioCircleVariants = cva({
10669
10832
  });
10670
10833
 
10671
10834
  // ../react-radio/dist/index.js
10672
- var RadioContext = React41__namespace.createContext(null);
10835
+ var RadioContext = React42__namespace.createContext(null);
10673
10836
  function RadioGroup({
10674
10837
  children,
10675
10838
  className,
@@ -10680,25 +10843,25 @@ function RadioGroup({
10680
10843
  disabled = false,
10681
10844
  orientation = "vertical"
10682
10845
  }) {
10683
- const [internalValue, setInternalValue] = React41__namespace.useState(defaultValue);
10846
+ const [internalValue, setInternalValue] = React42__namespace.useState(defaultValue);
10684
10847
  const isControlled = controlledValue !== void 0;
10685
10848
  const currentValue = isControlled ? controlledValue : internalValue;
10686
10849
  const api = createRadioGroup({ value: currentValue, name, disabled, orientation });
10687
- const handleChange = React41__namespace.useCallback(
10850
+ const handleChange = React42__namespace.useCallback(
10688
10851
  (val) => {
10689
10852
  if (!isControlled) setInternalValue(val);
10690
10853
  onValueChange?.(val);
10691
10854
  },
10692
10855
  [isControlled, onValueChange]
10693
10856
  );
10694
- const ctx = React41__namespace.useMemo(
10857
+ const ctx = React42__namespace.useMemo(
10695
10858
  () => ({ value: currentValue, onValueChange: handleChange, name, disabled }),
10696
10859
  [currentValue, handleChange, name, disabled]
10697
10860
  );
10698
- return React41__namespace.createElement(
10861
+ return React42__namespace.createElement(
10699
10862
  RadioContext.Provider,
10700
10863
  { value: ctx },
10701
- React41__namespace.createElement(
10864
+ React42__namespace.createElement(
10702
10865
  "div",
10703
10866
  { ...api.groupProps, className: cn(radioGroupVariants({ orientation }), className) },
10704
10867
  children
@@ -10706,17 +10869,17 @@ function RadioGroup({
10706
10869
  );
10707
10870
  }
10708
10871
  function RadioItem({ value, children, disabled = false, className }) {
10709
- const ctx = React41__namespace.useContext(RadioContext);
10872
+ const ctx = React42__namespace.useContext(RadioContext);
10710
10873
  if (!ctx) throw new Error("RadioItem must be used within RadioGroup");
10711
10874
  const isChecked = ctx.value === value;
10712
10875
  const isDisabled = ctx.disabled || disabled;
10713
- return React41__namespace.createElement(
10876
+ return React42__namespace.createElement(
10714
10877
  "label",
10715
10878
  {
10716
10879
  className: cn(radioItemVariants({ disabled: isDisabled ? "true" : "false" }), className),
10717
10880
  "data-state": isChecked ? "checked" : "unchecked"
10718
10881
  },
10719
- React41__namespace.createElement(
10882
+ React42__namespace.createElement(
10720
10883
  "button",
10721
10884
  {
10722
10885
  type: "button",
@@ -10728,12 +10891,12 @@ function RadioItem({ value, children, disabled = false, className }) {
10728
10891
  className: cn(radioCircleVariants({ checked: isChecked ? "true" : "false" })),
10729
10892
  onClick: () => !isDisabled && ctx.onValueChange(value)
10730
10893
  },
10731
- isChecked && React41__namespace.createElement(
10894
+ isChecked && React42__namespace.createElement(
10732
10895
  "span",
10733
10896
  { className: "block h-2 w-2 rounded-full bg-primary-foreground mx-auto" }
10734
10897
  )
10735
10898
  ),
10736
- children && React41__namespace.createElement("span", { className: "text-sm" }, children)
10899
+ children && React42__namespace.createElement("span", { className: "text-sm" }, children)
10737
10900
  );
10738
10901
  }
10739
10902
  RadioGroup.displayName = "RadioGroup";
@@ -10805,11 +10968,11 @@ function ReactionBar({
10805
10968
  className
10806
10969
  }) {
10807
10970
  const api = createReactionBar({ reactions, onToggle, onAdd });
10808
- return React41__namespace.createElement(
10971
+ return React42__namespace.createElement(
10809
10972
  "div",
10810
10973
  { ...api.ariaProps, className: cn(reactionBarStyles, className) },
10811
10974
  api.reactions.map(
10812
- (reaction, i) => React41__namespace.createElement(
10975
+ (reaction, i) => React42__namespace.createElement(
10813
10976
  "button",
10814
10977
  {
10815
10978
  key: `${reaction.emoji}-${i}`,
@@ -10820,11 +10983,11 @@ function ReactionBar({
10820
10983
  onClick: () => api.toggle(reaction.emoji),
10821
10984
  ...api.getReactionAriaProps(reaction)
10822
10985
  },
10823
- React41__namespace.createElement("span", { className: reactionEmojiStyles }, reaction.emoji),
10824
- React41__namespace.createElement("span", { className: reactionCountStyles }, reaction.count)
10986
+ React42__namespace.createElement("span", { className: reactionEmojiStyles }, reaction.emoji),
10987
+ React42__namespace.createElement("span", { className: reactionCountStyles }, reaction.count)
10825
10988
  )
10826
10989
  ),
10827
- showAddButton && React41__namespace.createElement(
10990
+ showAddButton && React42__namespace.createElement(
10828
10991
  "button",
10829
10992
  {
10830
10993
  type: "button",
@@ -10973,7 +11136,7 @@ var selectItemVariants = cva({
10973
11136
  selected: "false"
10974
11137
  }
10975
11138
  });
10976
- var SelectContext = React41__namespace.createContext({
11139
+ var SelectContext = React42__namespace.createContext({
10977
11140
  value: void 0,
10978
11141
  onValueChange: () => {
10979
11142
  },
@@ -10993,7 +11156,7 @@ function Select({
10993
11156
  children,
10994
11157
  placeholder = "Select an option"
10995
11158
  }) {
10996
- const [open, setOpen] = React41__namespace.useState(false);
11159
+ const [open, setOpen] = React42__namespace.useState(false);
10997
11160
  const api = createSelect({ value, disabled, open, placeholder });
10998
11161
  return /* @__PURE__ */ jsxRuntime.jsx(
10999
11162
  SelectContext.Provider,
@@ -11016,9 +11179,9 @@ function Select({
11016
11179
  }
11017
11180
  );
11018
11181
  }
11019
- var SelectTrigger = React41__namespace.forwardRef(
11182
+ var SelectTrigger = React42__namespace.forwardRef(
11020
11183
  ({ className, children, size = "default", ...props }, ref) => {
11021
- const { open, setOpen, disabled, triggerId, contentId } = React41__namespace.useContext(SelectContext);
11184
+ const { open, setOpen, disabled, triggerId, contentId } = React42__namespace.useContext(SelectContext);
11022
11185
  const api = createSelect({ disabled, open });
11023
11186
  const handleClick = () => {
11024
11187
  if (!disabled) {
@@ -11075,11 +11238,11 @@ var SelectTrigger = React41__namespace.forwardRef(
11075
11238
  }
11076
11239
  );
11077
11240
  SelectTrigger.displayName = "SelectTrigger";
11078
- var SelectContent = React41__namespace.forwardRef(
11241
+ var SelectContent = React42__namespace.forwardRef(
11079
11242
  ({ className, children, ...props }, forwardedRef) => {
11080
- const { open, contentId, triggerId, setOpen } = React41__namespace.useContext(SelectContext);
11081
- const containerRef = React41__namespace.useRef(null);
11082
- const ref = React41__namespace.useCallback(
11243
+ const { open, contentId, triggerId, setOpen } = React42__namespace.useContext(SelectContext);
11244
+ const containerRef = React42__namespace.useRef(null);
11245
+ const ref = React42__namespace.useCallback(
11083
11246
  (node) => {
11084
11247
  containerRef.current = node;
11085
11248
  if (typeof forwardedRef === "function") forwardedRef(node);
@@ -11087,7 +11250,7 @@ var SelectContent = React41__namespace.forwardRef(
11087
11250
  },
11088
11251
  [forwardedRef]
11089
11252
  );
11090
- React41__namespace.useEffect(() => {
11253
+ React42__namespace.useEffect(() => {
11091
11254
  if (open && containerRef.current) {
11092
11255
  const firstOption = containerRef.current.querySelector('[role="option"]:not([aria-disabled="true"])');
11093
11256
  if (firstOption) {
@@ -11136,9 +11299,9 @@ var SelectContent = React41__namespace.forwardRef(
11136
11299
  }
11137
11300
  );
11138
11301
  SelectContent.displayName = "SelectContent";
11139
- var SelectItem = React41__namespace.forwardRef(
11302
+ var SelectItem = React42__namespace.forwardRef(
11140
11303
  ({ className, children, value: itemValue, disabled: itemDisabled = false, ...props }, ref) => {
11141
- const { value, onValueChange, setOpen, triggerId } = React41__namespace.useContext(SelectContext);
11304
+ const { value, onValueChange, setOpen, triggerId } = React42__namespace.useContext(SelectContext);
11142
11305
  const isSelected = value === itemValue;
11143
11306
  const handleClick = () => {
11144
11307
  if (!itemDisabled) {
@@ -11274,11 +11437,11 @@ function StatusIndicator({
11274
11437
  }) {
11275
11438
  const api = createStatusIndicator({ type, label, pulse });
11276
11439
  const dotClassName = api.pulse ? statusPulseVariants({ type }) : statusDotVariants({ type });
11277
- return React41__namespace.createElement(
11440
+ return React42__namespace.createElement(
11278
11441
  "span",
11279
11442
  { ...api.ariaProps, className: cn(statusContainerStyles, className) },
11280
- React41__namespace.createElement("span", { className: dotClassName }),
11281
- showLabel && React41__namespace.createElement("span", { className: statusLabelStyles }, api.label)
11443
+ React42__namespace.createElement("span", { className: dotClassName }),
11444
+ showLabel && React42__namespace.createElement("span", { className: statusLabelStyles }, api.label)
11282
11445
  );
11283
11446
  }
11284
11447
  StatusIndicator.displayName = "StatusIndicator";
@@ -11365,7 +11528,7 @@ var switchThumbVariants = cva({
11365
11528
  { checked: "true", size: "lg", class: "translate-x-5" }
11366
11529
  ]
11367
11530
  });
11368
- var Switch = React41__namespace.forwardRef(
11531
+ var Switch = React42__namespace.forwardRef(
11369
11532
  ({ checked = false, onCheckedChange, disabled = false, size = "default", className, ...props }, ref) => {
11370
11533
  const api = createSwitch({ checked, disabled });
11371
11534
  const handleClick = () => {
@@ -11504,41 +11667,41 @@ function MessageComponent({
11504
11667
  message,
11505
11668
  api
11506
11669
  }) {
11507
- return React41__namespace.createElement(
11670
+ return React42__namespace.createElement(
11508
11671
  "div",
11509
11672
  { className: threadMessageStyles, ...api.getMessageAriaProps(message) },
11510
11673
  // Avatar
11511
- React41__namespace.createElement(
11674
+ React42__namespace.createElement(
11512
11675
  "div",
11513
11676
  { className: threadAvatarStyles },
11514
- message.author.avatarUrl ? React41__namespace.createElement("img", {
11677
+ message.author.avatarUrl ? React42__namespace.createElement("img", {
11515
11678
  src: message.author.avatarUrl,
11516
11679
  alt: message.author.name,
11517
11680
  className: "h-full w-full object-cover"
11518
11681
  }) : message.author.name.charAt(0).toUpperCase()
11519
11682
  ),
11520
11683
  // Content
11521
- React41__namespace.createElement(
11684
+ React42__namespace.createElement(
11522
11685
  "div",
11523
11686
  { className: threadContentStyles },
11524
- React41__namespace.createElement(
11687
+ React42__namespace.createElement(
11525
11688
  "div",
11526
11689
  { className: "flex items-baseline" },
11527
- React41__namespace.createElement("span", { className: threadAuthorStyles }, message.author.name),
11528
- React41__namespace.createElement(
11690
+ React42__namespace.createElement("span", { className: threadAuthorStyles }, message.author.name),
11691
+ React42__namespace.createElement(
11529
11692
  "span",
11530
11693
  { className: threadTimestampStyles },
11531
11694
  api.formatTimestamp(message.timestamp)
11532
11695
  ),
11533
- message.edited && React41__namespace.createElement("span", { className: threadEditedStyles }, "(edited)")
11696
+ message.edited && React42__namespace.createElement("span", { className: threadEditedStyles }, "(edited)")
11534
11697
  ),
11535
- React41__namespace.createElement("div", { className: threadBodyStyles }, message.content),
11698
+ React42__namespace.createElement("div", { className: threadBodyStyles }, message.content),
11536
11699
  // Reactions
11537
- message.reactions && message.reactions.length > 0 && React41__namespace.createElement(
11700
+ message.reactions && message.reactions.length > 0 && React42__namespace.createElement(
11538
11701
  "div",
11539
11702
  { className: threadReactionsStyles },
11540
11703
  message.reactions.map(
11541
- (reaction, i) => React41__namespace.createElement(
11704
+ (reaction, i) => React42__namespace.createElement(
11542
11705
  "button",
11543
11706
  {
11544
11707
  key: `${reaction.emoji}-${i}`,
@@ -11554,25 +11717,25 @@ function MessageComponent({
11554
11717
  )
11555
11718
  ),
11556
11719
  // Reply indicator
11557
- message.replies && message.replies.length > 0 && React41__namespace.createElement(
11720
+ message.replies && message.replies.length > 0 && React42__namespace.createElement(
11558
11721
  "div",
11559
11722
  { className: threadReplyIndicatorStyles },
11560
11723
  `${message.replies.length} ${message.replies.length === 1 ? "reply" : "replies"}`
11561
11724
  ),
11562
11725
  // Attachments
11563
11726
  message.attachments && message.attachments.map(
11564
- (attachment) => React41__namespace.createElement(
11727
+ (attachment) => React42__namespace.createElement(
11565
11728
  "div",
11566
11729
  { key: attachment.id, className: threadAttachmentStyles },
11567
- React41__namespace.createElement("span", null, "\u{1F4CE}"),
11568
- React41__namespace.createElement("span", { className: "truncate" }, attachment.name)
11730
+ React42__namespace.createElement("span", null, "\u{1F4CE}"),
11731
+ React42__namespace.createElement("span", { className: "truncate" }, attachment.name)
11569
11732
  )
11570
11733
  ),
11571
11734
  // Actions (reply button)
11572
- React41__namespace.createElement(
11735
+ React42__namespace.createElement(
11573
11736
  "div",
11574
11737
  { className: threadActionsStyles },
11575
- React41__namespace.createElement(
11738
+ React42__namespace.createElement(
11576
11739
  "button",
11577
11740
  {
11578
11741
  type: "button",
@@ -11594,11 +11757,11 @@ function ThreadView({
11594
11757
  className
11595
11758
  }) {
11596
11759
  const api = createThreadView({ messages, onReply, onReact, currentUserId });
11597
- return React41__namespace.createElement(
11760
+ return React42__namespace.createElement(
11598
11761
  "div",
11599
11762
  { ...api.ariaProps, className: cn(threadContainerStyles, className) },
11600
11763
  messages.map(
11601
- (message) => React41__namespace.createElement(MessageComponent, {
11764
+ (message) => React42__namespace.createElement(MessageComponent, {
11602
11765
  key: message.id,
11603
11766
  message,
11604
11767
  api
@@ -11632,11 +11795,11 @@ function observeHeadings(headingIds, callback, options) {
11632
11795
  });
11633
11796
  return () => observer.disconnect();
11634
11797
  }
11635
- var TableOfContents = React41__namespace.forwardRef(
11798
+ var TableOfContents = React42__namespace.forwardRef(
11636
11799
  ({ className, containerRef, selectors = "h2, h3, h4", onActiveIdChange, ...props }, ref) => {
11637
- const [headings, setHeadings] = React41__namespace.useState([]);
11638
- const [activeId, setActiveId] = React41__namespace.useState("");
11639
- React41__namespace.useEffect(() => {
11800
+ const [headings, setHeadings] = React42__namespace.useState([]);
11801
+ const [activeId, setActiveId] = React42__namespace.useState("");
11802
+ React42__namespace.useEffect(() => {
11640
11803
  const container = containerRef?.current || document.body;
11641
11804
  if (!container) return;
11642
11805
  const parsedHeadings = parseHeadings(container, selectors);
@@ -11675,14 +11838,14 @@ var TableOfContents = React41__namespace.forwardRef(
11675
11838
  }
11676
11839
  );
11677
11840
  TableOfContents.displayName = "TableOfContents";
11678
- var CarouselContext = React41__namespace.createContext(null);
11679
- var Carousel = React41__namespace.forwardRef(
11841
+ var CarouselContext = React42__namespace.createContext(null);
11842
+ var Carousel = React42__namespace.forwardRef(
11680
11843
  ({ className, type = "single", collapsible, value: controlledValue, defaultValue, onValueChange, ...props }, ref) => {
11681
- const [uncontrolledValue, setUncontrolledValue] = React41__namespace.useState(
11844
+ const [uncontrolledValue, setUncontrolledValue] = React42__namespace.useState(
11682
11845
  defaultValue ?? (type === "multiple" ? [] : "")
11683
11846
  );
11684
11847
  const value = controlledValue !== void 0 ? controlledValue : uncontrolledValue;
11685
- const handleValueChange = React41__namespace.useCallback(
11848
+ const handleValueChange = React42__namespace.useCallback(
11686
11849
  (itemValue) => {
11687
11850
  if (type === "single") {
11688
11851
  const newValue = value === itemValue && collapsible ? "" : itemValue;
@@ -11701,20 +11864,20 @@ var Carousel = React41__namespace.forwardRef(
11701
11864
  }
11702
11865
  );
11703
11866
  Carousel.displayName = "Carousel";
11704
- var CarouselItemContext = React41__namespace.createContext(null);
11705
- var CarouselItem = React41__namespace.forwardRef(
11867
+ var CarouselItemContext = React42__namespace.createContext(null);
11868
+ var CarouselItem = React42__namespace.forwardRef(
11706
11869
  ({ className, value, ...props }, ref) => {
11707
- const context = React41__namespace.useContext(CarouselContext);
11870
+ const context = React42__namespace.useContext(CarouselContext);
11708
11871
  if (!context) throw new Error("CarouselItem must be within Carousel");
11709
11872
  const isOpen = context.type === "single" ? context.value === value : Array.isArray(context.value) && context.value.includes(value);
11710
11873
  return /* @__PURE__ */ jsxRuntime.jsx(CarouselItemContext.Provider, { value: { value, isOpen }, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("border-b border-border", className), "data-state": isOpen ? "open" : "closed", ...props }) });
11711
11874
  }
11712
11875
  );
11713
11876
  CarouselItem.displayName = "CarouselItem";
11714
- var CarouselTrigger = React41__namespace.forwardRef(
11877
+ var CarouselTrigger = React42__namespace.forwardRef(
11715
11878
  ({ className, children, ...props }, ref) => {
11716
- const carouselContext = React41__namespace.useContext(CarouselContext);
11717
- const itemContext = React41__namespace.useContext(CarouselItemContext);
11879
+ const carouselContext = React42__namespace.useContext(CarouselContext);
11880
+ const itemContext = React42__namespace.useContext(CarouselItemContext);
11718
11881
  if (!carouselContext || !itemContext) throw new Error("CarouselTrigger missing context");
11719
11882
  return /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "flex m-0 p-0", children: /* @__PURE__ */ jsxRuntime.jsxs(
11720
11883
  "button",
@@ -11753,9 +11916,9 @@ var CarouselTrigger = React41__namespace.forwardRef(
11753
11916
  }
11754
11917
  );
11755
11918
  CarouselTrigger.displayName = "CarouselTrigger";
11756
- var CarouselContent = React41__namespace.forwardRef(
11919
+ var CarouselContent = React42__namespace.forwardRef(
11757
11920
  ({ className, children, ...props }, ref) => {
11758
- const itemContext = React41__namespace.useContext(CarouselItemContext);
11921
+ const itemContext = React42__namespace.useContext(CarouselItemContext);
11759
11922
  if (!itemContext) throw new Error("CarouselContent missing context");
11760
11923
  return /* @__PURE__ */ jsxRuntime.jsx(
11761
11924
  "div",
@@ -11774,7 +11937,7 @@ var CarouselContent = React41__namespace.forwardRef(
11774
11937
  }
11775
11938
  );
11776
11939
  CarouselContent.displayName = "CarouselContent";
11777
- var Pagination = React41__namespace.forwardRef(
11940
+ var Pagination = React42__namespace.forwardRef(
11778
11941
  ({ className, ...props }, ref) => {
11779
11942
  return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("", className), ...props });
11780
11943
  }
@@ -11803,7 +11966,7 @@ function createLinkCard(_props = {}) {
11803
11966
  dataAttributes: { "data-slot": "link-card" }
11804
11967
  };
11805
11968
  }
11806
- var LinkCard = React41__namespace.forwardRef(
11969
+ var LinkCard = React42__namespace.forwardRef(
11807
11970
  ({ className, ...props }, ref) => {
11808
11971
  const api = createLinkCard(props);
11809
11972
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -11825,7 +11988,7 @@ function createCardGrid(_props = {}) {
11825
11988
  dataAttributes: { "data-slot": "card-grid" }
11826
11989
  };
11827
11990
  }
11828
- var CardGrid = React41__namespace.forwardRef(
11991
+ var CardGrid = React42__namespace.forwardRef(
11829
11992
  ({ className, columns = 3, ...props }, ref) => {
11830
11993
  const api = createCardGrid({ });
11831
11994
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -11850,7 +12013,7 @@ function createPayment(props = {}) {
11850
12013
  }
11851
12014
  };
11852
12015
  }
11853
- var Payment = React41__namespace.forwardRef(
12016
+ var Payment = React42__namespace.forwardRef(
11854
12017
  ({ className, disabled, ...props }, ref) => {
11855
12018
  const api = createPayment({ disabled });
11856
12019
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -11869,27 +12032,27 @@ var Payment = React41__namespace.forwardRef(
11869
12032
  }
11870
12033
  );
11871
12034
  Payment.displayName = "Payment";
11872
- var PaymentHeader = React41__namespace.forwardRef(
12035
+ var PaymentHeader = React42__namespace.forwardRef(
11873
12036
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("mb-6 flex flex-col gap-1.5", className), ...props })
11874
12037
  );
11875
12038
  PaymentHeader.displayName = "PaymentHeader";
11876
- var PaymentTitle = React41__namespace.forwardRef(
12039
+ var PaymentTitle = React42__namespace.forwardRef(
11877
12040
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("h3", { ref, className: cn("text-xl font-semibold leading-none tracking-tight", className), ...props })
11878
12041
  );
11879
12042
  PaymentTitle.displayName = "PaymentTitle";
11880
- var PaymentDescription = React41__namespace.forwardRef(
12043
+ var PaymentDescription = React42__namespace.forwardRef(
11881
12044
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("p", { ref, className: cn("text-sm text-muted-foreground", className), ...props })
11882
12045
  );
11883
12046
  PaymentDescription.displayName = "PaymentDescription";
11884
- var PaymentContent = React41__namespace.forwardRef(
12047
+ var PaymentContent = React42__namespace.forwardRef(
11885
12048
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex flex-col gap-4", className), ...props })
11886
12049
  );
11887
12050
  PaymentContent.displayName = "PaymentContent";
11888
- var PaymentFooter = React41__namespace.forwardRef(
12051
+ var PaymentFooter = React42__namespace.forwardRef(
11889
12052
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("mt-6 flex flex-col gap-3", className), ...props })
11890
12053
  );
11891
12054
  PaymentFooter.displayName = "PaymentFooter";
11892
- var PaymentButton = React41__namespace.forwardRef(
12055
+ var PaymentButton = React42__namespace.forwardRef(
11893
12056
  ({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
11894
12057
  "button",
11895
12058
  {
@@ -11908,6 +12071,7 @@ exports.Accordion = Accordion;
11908
12071
  exports.AccordionContent = AccordionContent;
11909
12072
  exports.AccordionItem = AccordionItem;
11910
12073
  exports.AccordionTrigger = AccordionTrigger;
12074
+ exports.AltHintState = AltHintState;
11911
12075
  exports.AnimatedText = AnimatedText;
11912
12076
  exports.AppShell = AppShell;
11913
12077
  exports.AuthGuard = AuthGuard;
@@ -12008,6 +12172,7 @@ exports.ReactionBar = ReactionBar;
12008
12172
  exports.ResizableDivider = ResizableDivider;
12009
12173
  exports.ResizableLayout = ResizableLayout;
12010
12174
  exports.ResizablePane = ResizablePane;
12175
+ exports.SANE_DEFAULTS = SANE_DEFAULTS;
12011
12176
  exports.STATUS_COLORS = STATUS_COLORS2;
12012
12177
  exports.STATUS_LABELS = STATUS_LABELS2;
12013
12178
  exports.SearchBar = SearchBar;
@@ -12018,6 +12183,10 @@ exports.SelectContent = SelectContent;
12018
12183
  exports.SelectItem = SelectItem;
12019
12184
  exports.SelectTrigger = SelectTrigger;
12020
12185
  exports.ShortcutBadge = ShortcutBadge;
12186
+ exports.ShortcutContext = ShortcutContext;
12187
+ exports.ShortcutHint = ShortcutHint;
12188
+ exports.ShortcutProvider = ShortcutProvider;
12189
+ exports.ShortcutRegistry = ShortcutRegistry;
12021
12190
  exports.Sidebar = Sidebar;
12022
12191
  exports.Skeleton = Skeleton;
12023
12192
  exports.SkeletonText = SkeletonText;
@@ -12046,6 +12215,7 @@ exports.TooltipTrigger = TooltipTrigger;
12046
12215
  exports.TypewriterText = TypewriterText;
12047
12216
  exports.VersionSelector = VersionSelector;
12048
12217
  exports.VideoPlayer = VideoPlayer;
12218
+ exports.altHintState = altHintState;
12049
12219
  exports.animatedTextVariants = animatedTextVariants;
12050
12220
  exports.avatarFallbackVariants = avatarFallbackVariants;
12051
12221
  exports.avatarImageVariants = avatarImageVariants;
@@ -12103,6 +12273,7 @@ exports.formatTimestamp = formatTimestamp;
12103
12273
  exports.getAssignableRoles = getAssignableRoles;
12104
12274
  exports.getDefaultPortal = getDefaultPortal;
12105
12275
  exports.getInitials = getInitials;
12276
+ exports.globalShortcutRegistry = globalShortcutRegistry;
12106
12277
  exports.hasAllRoles = hasAllRoles;
12107
12278
  exports.hasAnyRole = hasAnyRole;
12108
12279
  exports.hasRole = hasRole;
@@ -12192,6 +12363,7 @@ exports.toolbarVariants = toolbarVariants;
12192
12363
  exports.tooltipContentVariants = tooltipContentVariants;
12193
12364
  exports.typewriterVariants = typewriterVariants;
12194
12365
  exports.useAuth = useAuth;
12366
+ exports.useShortcut = useShortcut;
12195
12367
  exports.useTheme = useTheme;
12196
12368
  exports.useToast = useToast;
12197
12369
  exports.versionSelectorOptionVariants = optionVariants2;