@iblai/iblai-js 1.22.6 → 1.23.1

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.
@@ -6,7 +6,7 @@ import { useGetUserMetadataQuery, useGetUserMetadataEdxQuery, useUpdateUserMetad
6
6
  import { getInitials, useTenantMetadata, WithPermissions, useStripeUpgrade, openExternalUrl, CHAT_AREA_SIZE, isAlphaNumeric32, checkRbacPermission, selectNumberOfActiveChatMessages, useUsername, selectStreaming, isLoggedIn, TOOLS, isSafariBrowser, useShowAttachment, useShowVoiceCall, useShowVoiceRecorder, useMentorSettings, selectShowingSharedChat, selectRbacPermissions, useShowFreeTrialDialog, useEmbedMode, chatInputSliceSelectors, useResponsive, useAccessingPublicRoute, useVisitingTenant, useModelFileUploadCapabilities, useChatFileUpload, useVoiceChat, selectAttachedFiles, MENTOR_CHAT_DOCUMENTS_EXTENSIONS, removeFile, chatInputSliceActions, chatActions, WithFormPermissions, useTenantContext, TimeTracker, advancedTabsProperties, defaultSessionIds, ANONYMOUS_USERNAME as ANONYMOUS_USERNAME$2, redirectToAuthSpaJoinTenant, selectActiveTab, useAxdToken, useWelcomeMessage, markdownToPlainText, useCachedSessionId, use402ErrorCheck, selectTokenEnabled, selectToken, useServiceWorker, useUserAgreement, useAdvancedChat, sendMessageToParentWebsite, useMentorTools, useFileDragDrop, eventBus, RemoteEvents, selectEnableChatActionsPopup, advancedTabs, isInIframe, getAuthSpaJoinUrl, addMessage, clearFiles, MENTOR_VISIBILITY } from '@iblai/web-utils';
7
7
  import { useDispatch, useSelector } from 'react-redux';
8
8
  import { toast } from 'sonner';
9
- import { useSearchParams, useParams, usePathname } from 'next/navigation';
9
+ import { useSearchParams, useParams, useRouter, usePathname } from 'next/navigation';
10
10
  import Image$4 from 'next/image';
11
11
  import Link$2 from 'next/link';
12
12
  import * as ReactDOM from 'react-dom';
@@ -18,7 +18,7 @@ import { MentorVisibilityEnum, TransportEnum, PromptVisibilityEnum } from '@ibla
18
18
  import '@reduxjs/toolkit/query';
19
19
  import dynamic from 'next/dynamic';
20
20
  import Script from 'next/script';
21
- import { useRouter } from 'next/router';
21
+ import { useRouter as useRouter$1 } from 'next/router';
22
22
  import { Room, RoomEvent, ConnectionState, VideoPresets, Track, ParticipantEvent } from 'livekit-client';
23
23
  import { RoomContext, RoomAudioRenderer, VideoConference, formatChatMessageLinks, useRoomContext } from '@livekit/components-react';
24
24
  import { createRoot } from 'react-dom/client';
@@ -49337,12 +49337,12 @@ const __iconNode$oC = [
49337
49337
  ["path", { d: "M5 12H2a10 10 0 0 0 20 0h-3", key: "1hv3nh" }],
49338
49338
  ["circle", { cx: "12", cy: "5", r: "3", key: "rqqgnr" }]
49339
49339
  ];
49340
- const Anchor$3 = createLucideIcon("anchor", __iconNode$oC);
49340
+ const Anchor$4 = createLucideIcon("anchor", __iconNode$oC);
49341
49341
 
49342
49342
  var anchor = /*#__PURE__*/Object.freeze({
49343
49343
  __proto__: null,
49344
49344
  __iconNode: __iconNode$oC,
49345
- default: Anchor$3
49345
+ default: Anchor$4
49346
49346
  });
49347
49347
 
49348
49348
  /**
@@ -90901,8 +90901,8 @@ const arrow$2 = (options, deps) => {
90901
90901
  };
90902
90902
 
90903
90903
  // packages/react/arrow/src/arrow.tsx
90904
- var NAME$8 = "Arrow";
90905
- var Arrow$3 = React.forwardRef((props, forwardedRef) => {
90904
+ var NAME$9 = "Arrow";
90905
+ var Arrow$5 = React.forwardRef((props, forwardedRef) => {
90906
90906
  const { children, width = 10, height = 5, ...arrowProps } = props;
90907
90907
  return /* @__PURE__ */ jsx(
90908
90908
  Primitive$4.svg,
@@ -90917,8 +90917,8 @@ var Arrow$3 = React.forwardRef((props, forwardedRef) => {
90917
90917
  }
90918
90918
  );
90919
90919
  });
90920
- Arrow$3.displayName = NAME$8;
90921
- var Root$e = Arrow$3;
90920
+ Arrow$5.displayName = NAME$9;
90921
+ var Root$g = Arrow$5;
90922
90922
 
90923
90923
  // packages/react/use-size/src/use-size.tsx
90924
90924
  function useSize$1(element) {
@@ -90956,20 +90956,20 @@ function useSize$1(element) {
90956
90956
  return size;
90957
90957
  }
90958
90958
 
90959
- var POPPER_NAME$1 = "Popper";
90960
- var [createPopperContext$1, createPopperScope$1] = createContextScope$1(POPPER_NAME$1);
90961
- var [PopperProvider$1, usePopperContext$1] = createPopperContext$1(POPPER_NAME$1);
90962
- var Popper$1 = (props) => {
90959
+ var POPPER_NAME$2 = "Popper";
90960
+ var [createPopperContext$2, createPopperScope$2] = createContextScope$1(POPPER_NAME$2);
90961
+ var [PopperProvider$2, usePopperContext$2] = createPopperContext$2(POPPER_NAME$2);
90962
+ var Popper$2 = (props) => {
90963
90963
  const { __scopePopper, children } = props;
90964
90964
  const [anchor, setAnchor] = React.useState(null);
90965
- return /* @__PURE__ */ jsx(PopperProvider$1, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
90965
+ return /* @__PURE__ */ jsx(PopperProvider$2, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
90966
90966
  };
90967
- Popper$1.displayName = POPPER_NAME$1;
90968
- var ANCHOR_NAME$3 = "PopperAnchor";
90969
- var PopperAnchor$1 = React.forwardRef(
90967
+ Popper$2.displayName = POPPER_NAME$2;
90968
+ var ANCHOR_NAME$4 = "PopperAnchor";
90969
+ var PopperAnchor$2 = React.forwardRef(
90970
90970
  (props, forwardedRef) => {
90971
90971
  const { __scopePopper, virtualRef, ...anchorProps } = props;
90972
- const context = usePopperContext$1(ANCHOR_NAME$3, __scopePopper);
90972
+ const context = usePopperContext$2(ANCHOR_NAME$4, __scopePopper);
90973
90973
  const ref = React.useRef(null);
90974
90974
  const composedRefs = useComposedRefs$1(forwardedRef, ref);
90975
90975
  React.useEffect(() => {
@@ -90978,10 +90978,10 @@ var PopperAnchor$1 = React.forwardRef(
90978
90978
  return virtualRef ? null : /* @__PURE__ */ jsx(Primitive$4.div, { ...anchorProps, ref: composedRefs });
90979
90979
  }
90980
90980
  );
90981
- PopperAnchor$1.displayName = ANCHOR_NAME$3;
90982
- var CONTENT_NAME$8 = "PopperContent";
90983
- var [PopperContentProvider$1, useContentContext$1] = createPopperContext$1(CONTENT_NAME$8);
90984
- var PopperContent$1 = React.forwardRef(
90981
+ PopperAnchor$2.displayName = ANCHOR_NAME$4;
90982
+ var CONTENT_NAME$b = "PopperContent";
90983
+ var [PopperContentProvider$2, useContentContext$2] = createPopperContext$2(CONTENT_NAME$b);
90984
+ var PopperContent$2 = React.forwardRef(
90985
90985
  (props, forwardedRef) => {
90986
90986
  const {
90987
90987
  __scopePopper,
@@ -90999,7 +90999,7 @@ var PopperContent$1 = React.forwardRef(
90999
90999
  onPlaced,
91000
91000
  ...contentProps
91001
91001
  } = props;
91002
- const context = usePopperContext$1(CONTENT_NAME$8, __scopePopper);
91002
+ const context = usePopperContext$2(CONTENT_NAME$b, __scopePopper);
91003
91003
  const [content, setContent] = React.useState(null);
91004
91004
  const composedRefs = useComposedRefs$1(forwardedRef, (node) => setContent(node));
91005
91005
  const [arrow, setArrow] = React.useState(null);
@@ -91012,7 +91012,7 @@ var PopperContent$1 = React.forwardRef(
91012
91012
  const hasExplicitBoundaries = boundary.length > 0;
91013
91013
  const detectOverflowOptions = {
91014
91014
  padding: collisionPadding,
91015
- boundary: boundary.filter(isNotNull$1),
91015
+ boundary: boundary.filter(isNotNull$2),
91016
91016
  // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
91017
91017
  altBoundary: hasExplicitBoundaries
91018
91018
  };
@@ -91050,11 +91050,11 @@ var PopperContent$1 = React.forwardRef(
91050
91050
  }
91051
91051
  }),
91052
91052
  arrow && arrow$2({ element: arrow, padding: arrowPadding }),
91053
- transformOrigin$2({ arrowWidth, arrowHeight }),
91053
+ transformOrigin$3({ arrowWidth, arrowHeight }),
91054
91054
  hideWhenDetached && hide({ strategy: "referenceHidden", ...detectOverflowOptions })
91055
91055
  ]
91056
91056
  });
91057
- const [placedSide, placedAlign] = getSideAndAlignFromPlacement$1(placement);
91057
+ const [placedSide, placedAlign] = getSideAndAlignFromPlacement$2(placement);
91058
91058
  const handlePlaced = useCallbackRef$2(onPlaced);
91059
91059
  useLayoutEffect2$1(() => {
91060
91060
  if (isPositioned) {
@@ -91093,7 +91093,7 @@ var PopperContent$1 = React.forwardRef(
91093
91093
  },
91094
91094
  dir: props.dir,
91095
91095
  children: /* @__PURE__ */ jsx(
91096
- PopperContentProvider$1,
91096
+ PopperContentProvider$2,
91097
91097
  {
91098
91098
  scope: __scopePopper,
91099
91099
  placedSide,
@@ -91122,18 +91122,18 @@ var PopperContent$1 = React.forwardRef(
91122
91122
  );
91123
91123
  }
91124
91124
  );
91125
- PopperContent$1.displayName = CONTENT_NAME$8;
91126
- var ARROW_NAME$6 = "PopperArrow";
91127
- var OPPOSITE_SIDE$1 = {
91125
+ PopperContent$2.displayName = CONTENT_NAME$b;
91126
+ var ARROW_NAME$8 = "PopperArrow";
91127
+ var OPPOSITE_SIDE$2 = {
91128
91128
  top: "bottom",
91129
91129
  right: "left",
91130
91130
  bottom: "top",
91131
91131
  left: "right"
91132
91132
  };
91133
- var PopperArrow$1 = React.forwardRef(function PopperArrow2(props, forwardedRef) {
91133
+ var PopperArrow$2 = React.forwardRef(function PopperArrow2(props, forwardedRef) {
91134
91134
  const { __scopePopper, ...arrowProps } = props;
91135
- const contentContext = useContentContext$1(ARROW_NAME$6, __scopePopper);
91136
- const baseSide = OPPOSITE_SIDE$1[contentContext.placedSide];
91135
+ const contentContext = useContentContext$2(ARROW_NAME$8, __scopePopper);
91136
+ const baseSide = OPPOSITE_SIDE$2[contentContext.placedSide];
91137
91137
  return (
91138
91138
  // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
91139
91139
  // doesn't report size as we'd expect on SVG elements.
@@ -91162,7 +91162,7 @@ var PopperArrow$1 = React.forwardRef(function PopperArrow2(props, forwardedRef)
91162
91162
  visibility: contentContext.shouldHideArrow ? "hidden" : void 0
91163
91163
  },
91164
91164
  children: /* @__PURE__ */ jsx(
91165
- Root$e,
91165
+ Root$g,
91166
91166
  {
91167
91167
  ...arrowProps,
91168
91168
  ref: forwardedRef,
@@ -91177,11 +91177,11 @@ var PopperArrow$1 = React.forwardRef(function PopperArrow2(props, forwardedRef)
91177
91177
  )
91178
91178
  );
91179
91179
  });
91180
- PopperArrow$1.displayName = ARROW_NAME$6;
91181
- function isNotNull$1(value) {
91180
+ PopperArrow$2.displayName = ARROW_NAME$8;
91181
+ function isNotNull$2(value) {
91182
91182
  return value !== null;
91183
91183
  }
91184
- var transformOrigin$2 = (options) => ({
91184
+ var transformOrigin$3 = (options) => ({
91185
91185
  name: "transformOrigin",
91186
91186
  options,
91187
91187
  fn(data) {
@@ -91190,7 +91190,7 @@ var transformOrigin$2 = (options) => ({
91190
91190
  const isArrowHidden = cannotCenterArrow;
91191
91191
  const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;
91192
91192
  const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;
91193
- const [placedSide, placedAlign] = getSideAndAlignFromPlacement$1(placement);
91193
+ const [placedSide, placedAlign] = getSideAndAlignFromPlacement$2(placement);
91194
91194
  const noArrowAlign = { start: "0%", center: "50%", end: "100%" }[placedAlign];
91195
91195
  const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;
91196
91196
  const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;
@@ -91212,24 +91212,24 @@ var transformOrigin$2 = (options) => ({
91212
91212
  return { data: { x, y } };
91213
91213
  }
91214
91214
  });
91215
- function getSideAndAlignFromPlacement$1(placement) {
91215
+ function getSideAndAlignFromPlacement$2(placement) {
91216
91216
  const [side, align = "center"] = placement.split("-");
91217
91217
  return [side, align];
91218
91218
  }
91219
- var Root2$8 = Popper$1;
91220
- var Anchor$2 = PopperAnchor$1;
91221
- var Content$2 = PopperContent$1;
91222
- var Arrow$2 = PopperArrow$1;
91219
+ var Root2$a = Popper$2;
91220
+ var Anchor$3 = PopperAnchor$2;
91221
+ var Content$3 = PopperContent$2;
91222
+ var Arrow$4 = PopperArrow$2;
91223
91223
 
91224
- var PORTAL_NAME$8 = "Portal";
91225
- var Portal$6 = React.forwardRef((props, forwardedRef) => {
91224
+ var PORTAL_NAME$9 = "Portal";
91225
+ var Portal$7 = React.forwardRef((props, forwardedRef) => {
91226
91226
  const { container: containerProp, ...portalProps } = props;
91227
91227
  const [mounted, setMounted] = React.useState(false);
91228
91228
  useLayoutEffect2$1(() => setMounted(true), []);
91229
91229
  const container = containerProp || mounted && globalThis?.document?.body;
91230
91230
  return container ? ReactDOM__default.createPortal(/* @__PURE__ */ jsx(Primitive$4.div, { ...portalProps, ref: forwardedRef }), container) : null;
91231
91231
  });
91232
- Portal$6.displayName = PORTAL_NAME$8;
91232
+ Portal$7.displayName = PORTAL_NAME$9;
91233
91233
 
91234
91234
  function useStateMachine$4(initialState, machine) {
91235
91235
  return React.useReducer((state, event) => {
@@ -91560,7 +91560,7 @@ function focusFirst$3(candidates, preventScroll = false) {
91560
91560
  function wrapArray$3(array, startIndex) {
91561
91561
  return array.map((_, index) => array[(startIndex + index) % array.length]);
91562
91562
  }
91563
- var Root$d = RovingFocusGroup$1;
91563
+ var Root$f = RovingFocusGroup$1;
91564
91564
  var Item$3 = RovingFocusGroupItem$1;
91565
91565
 
91566
91566
  var getDefaultParent = function (originalTarget) {
@@ -92473,16 +92473,16 @@ var MENU_NAME = "Menu";
92473
92473
  var [Collection$3, useCollection$3, createCollectionScope$3] = createCollection$2(MENU_NAME);
92474
92474
  var [createMenuContext, createMenuScope] = createContextScope$1(MENU_NAME, [
92475
92475
  createCollectionScope$3,
92476
- createPopperScope$1,
92476
+ createPopperScope$2,
92477
92477
  createRovingFocusGroupScope$1
92478
92478
  ]);
92479
- var usePopperScope$3 = createPopperScope$1();
92479
+ var usePopperScope$4 = createPopperScope$2();
92480
92480
  var useRovingFocusGroupScope$2 = createRovingFocusGroupScope$1();
92481
92481
  var [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);
92482
92482
  var [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);
92483
92483
  var Menu = (props) => {
92484
92484
  const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;
92485
- const popperScope = usePopperScope$3(__scopeMenu);
92485
+ const popperScope = usePopperScope$4(__scopeMenu);
92486
92486
  const [content, setContent] = React.useState(null);
92487
92487
  const isUsingKeyboardRef = React.useRef(false);
92488
92488
  const handleOpenChange = useCallbackRef$2(onOpenChange);
@@ -92501,7 +92501,7 @@ var Menu = (props) => {
92501
92501
  document.removeEventListener("pointermove", handlePointer, { capture: true });
92502
92502
  };
92503
92503
  }, []);
92504
- return /* @__PURE__ */ jsx(Root2$8, { ...popperScope, children: /* @__PURE__ */ jsx(
92504
+ return /* @__PURE__ */ jsx(Root2$a, { ...popperScope, children: /* @__PURE__ */ jsx(
92505
92505
  MenuProvider,
92506
92506
  {
92507
92507
  scope: __scopeMenu,
@@ -92524,39 +92524,39 @@ var Menu = (props) => {
92524
92524
  ) });
92525
92525
  };
92526
92526
  Menu.displayName = MENU_NAME;
92527
- var ANCHOR_NAME$2 = "MenuAnchor";
92527
+ var ANCHOR_NAME$3 = "MenuAnchor";
92528
92528
  var MenuAnchor = React.forwardRef(
92529
92529
  (props, forwardedRef) => {
92530
92530
  const { __scopeMenu, ...anchorProps } = props;
92531
- const popperScope = usePopperScope$3(__scopeMenu);
92532
- return /* @__PURE__ */ jsx(Anchor$2, { ...popperScope, ...anchorProps, ref: forwardedRef });
92531
+ const popperScope = usePopperScope$4(__scopeMenu);
92532
+ return /* @__PURE__ */ jsx(Anchor$3, { ...popperScope, ...anchorProps, ref: forwardedRef });
92533
92533
  }
92534
92534
  );
92535
- MenuAnchor.displayName = ANCHOR_NAME$2;
92536
- var PORTAL_NAME$7 = "MenuPortal";
92537
- var [PortalProvider$2, usePortalContext$2] = createMenuContext(PORTAL_NAME$7, {
92535
+ MenuAnchor.displayName = ANCHOR_NAME$3;
92536
+ var PORTAL_NAME$8 = "MenuPortal";
92537
+ var [PortalProvider$3, usePortalContext$3] = createMenuContext(PORTAL_NAME$8, {
92538
92538
  forceMount: void 0
92539
92539
  });
92540
92540
  var MenuPortal = (props) => {
92541
92541
  const { __scopeMenu, forceMount, children, container } = props;
92542
- const context = useMenuContext(PORTAL_NAME$7, __scopeMenu);
92543
- return /* @__PURE__ */ jsx(PortalProvider$2, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence$3, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$6, { asChild: true, container, children }) }) });
92542
+ const context = useMenuContext(PORTAL_NAME$8, __scopeMenu);
92543
+ return /* @__PURE__ */ jsx(PortalProvider$3, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence$3, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$7, { asChild: true, container, children }) }) });
92544
92544
  };
92545
- MenuPortal.displayName = PORTAL_NAME$7;
92546
- var CONTENT_NAME$7 = "MenuContent";
92547
- var [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME$7);
92545
+ MenuPortal.displayName = PORTAL_NAME$8;
92546
+ var CONTENT_NAME$a = "MenuContent";
92547
+ var [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME$a);
92548
92548
  var MenuContent = React.forwardRef(
92549
92549
  (props, forwardedRef) => {
92550
- const portalContext = usePortalContext$2(CONTENT_NAME$7, props.__scopeMenu);
92550
+ const portalContext = usePortalContext$3(CONTENT_NAME$a, props.__scopeMenu);
92551
92551
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
92552
- const context = useMenuContext(CONTENT_NAME$7, props.__scopeMenu);
92553
- const rootContext = useMenuRootContext(CONTENT_NAME$7, props.__scopeMenu);
92552
+ const context = useMenuContext(CONTENT_NAME$a, props.__scopeMenu);
92553
+ const rootContext = useMenuRootContext(CONTENT_NAME$a, props.__scopeMenu);
92554
92554
  return /* @__PURE__ */ jsx(Collection$3.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence$3, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection$3.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });
92555
92555
  }
92556
92556
  );
92557
92557
  var MenuRootContentModal = React.forwardRef(
92558
92558
  (props, forwardedRef) => {
92559
- const context = useMenuContext(CONTENT_NAME$7, props.__scopeMenu);
92559
+ const context = useMenuContext(CONTENT_NAME$a, props.__scopeMenu);
92560
92560
  const ref = React.useRef(null);
92561
92561
  const composedRefs = useComposedRefs$1(forwardedRef, ref);
92562
92562
  React.useEffect(() => {
@@ -92582,7 +92582,7 @@ var MenuRootContentModal = React.forwardRef(
92582
92582
  }
92583
92583
  );
92584
92584
  var MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {
92585
- const context = useMenuContext(CONTENT_NAME$7, props.__scopeMenu);
92585
+ const context = useMenuContext(CONTENT_NAME$a, props.__scopeMenu);
92586
92586
  return /* @__PURE__ */ jsx(
92587
92587
  MenuContentImpl,
92588
92588
  {
@@ -92614,9 +92614,9 @@ var MenuContentImpl = React.forwardRef(
92614
92614
  disableOutsideScroll,
92615
92615
  ...contentProps
92616
92616
  } = props;
92617
- const context = useMenuContext(CONTENT_NAME$7, __scopeMenu);
92618
- const rootContext = useMenuRootContext(CONTENT_NAME$7, __scopeMenu);
92619
- const popperScope = usePopperScope$3(__scopeMenu);
92617
+ const context = useMenuContext(CONTENT_NAME$a, __scopeMenu);
92618
+ const rootContext = useMenuRootContext(CONTENT_NAME$a, __scopeMenu);
92619
+ const popperScope = usePopperScope$4(__scopeMenu);
92620
92620
  const rovingFocusGroupScope = useRovingFocusGroupScope$2(__scopeMenu);
92621
92621
  const getItems = useCollection$3(__scopeMenu);
92622
92622
  const [currentItemId, setCurrentItemId] = React.useState(null);
@@ -92705,7 +92705,7 @@ var MenuContentImpl = React.forwardRef(
92705
92705
  onInteractOutside,
92706
92706
  onDismiss,
92707
92707
  children: /* @__PURE__ */ jsx(
92708
- Root$d,
92708
+ Root$f,
92709
92709
  {
92710
92710
  asChild: true,
92711
92711
  ...rovingFocusGroupScope,
@@ -92719,7 +92719,7 @@ var MenuContentImpl = React.forwardRef(
92719
92719
  }),
92720
92720
  preventScrollOnEntryFocus: true,
92721
92721
  children: /* @__PURE__ */ jsx(
92722
- Content$2,
92722
+ Content$3,
92723
92723
  {
92724
92724
  role: "menu",
92725
92725
  "aria-orientation": "vertical",
@@ -92778,7 +92778,7 @@ var MenuContentImpl = React.forwardRef(
92778
92778
  );
92779
92779
  }
92780
92780
  );
92781
- MenuContent.displayName = CONTENT_NAME$7;
92781
+ MenuContent.displayName = CONTENT_NAME$a;
92782
92782
  var GROUP_NAME$3 = "MenuGroup";
92783
92783
  var MenuGroup = React.forwardRef(
92784
92784
  (props, forwardedRef) => {
@@ -93003,15 +93003,15 @@ var MenuSeparator = React.forwardRef(
93003
93003
  }
93004
93004
  );
93005
93005
  MenuSeparator.displayName = SEPARATOR_NAME$2;
93006
- var ARROW_NAME$5 = "MenuArrow";
93006
+ var ARROW_NAME$7 = "MenuArrow";
93007
93007
  var MenuArrow = React.forwardRef(
93008
93008
  (props, forwardedRef) => {
93009
93009
  const { __scopeMenu, ...arrowProps } = props;
93010
- const popperScope = usePopperScope$3(__scopeMenu);
93011
- return /* @__PURE__ */ jsx(Arrow$2, { ...popperScope, ...arrowProps, ref: forwardedRef });
93010
+ const popperScope = usePopperScope$4(__scopeMenu);
93011
+ return /* @__PURE__ */ jsx(Arrow$4, { ...popperScope, ...arrowProps, ref: forwardedRef });
93012
93012
  }
93013
93013
  );
93014
- MenuArrow.displayName = ARROW_NAME$5;
93014
+ MenuArrow.displayName = ARROW_NAME$7;
93015
93015
  var SUB_NAME = "MenuSub";
93016
93016
  var [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);
93017
93017
  var SUB_TRIGGER_NAME$1 = "MenuSubTrigger";
@@ -93118,10 +93118,10 @@ MenuSubTrigger.displayName = SUB_TRIGGER_NAME$1;
93118
93118
  var SUB_CONTENT_NAME$1 = "MenuSubContent";
93119
93119
  var MenuSubContent = React.forwardRef(
93120
93120
  (props, forwardedRef) => {
93121
- const portalContext = usePortalContext$2(CONTENT_NAME$7, props.__scopeMenu);
93121
+ const portalContext = usePortalContext$3(CONTENT_NAME$a, props.__scopeMenu);
93122
93122
  const { forceMount = portalContext.forceMount, ...subContentProps } = props;
93123
- const context = useMenuContext(CONTENT_NAME$7, props.__scopeMenu);
93124
- const rootContext = useMenuRootContext(CONTENT_NAME$7, props.__scopeMenu);
93123
+ const context = useMenuContext(CONTENT_NAME$a, props.__scopeMenu);
93124
+ const rootContext = useMenuRootContext(CONTENT_NAME$a, props.__scopeMenu);
93125
93125
  const subContext = useMenuSubContext(SUB_CONTENT_NAME$1, props.__scopeMenu);
93126
93126
  const ref = React.useRef(null);
93127
93127
  const composedRefs = useComposedRefs$1(forwardedRef, ref);
@@ -93218,8 +93218,8 @@ function whenMouse(handler) {
93218
93218
  }
93219
93219
  var Root3$1 = Menu;
93220
93220
  var Anchor2$1 = MenuAnchor;
93221
- var Portal$5 = MenuPortal;
93222
- var Content2$5 = MenuContent;
93221
+ var Portal$6 = MenuPortal;
93222
+ var Content2$6 = MenuContent;
93223
93223
  var Group = MenuGroup;
93224
93224
  var Label$4 = MenuLabel;
93225
93225
  var Item2$2 = MenuItem;
@@ -93272,11 +93272,11 @@ var DropdownMenu$1 = (props) => {
93272
93272
  );
93273
93273
  };
93274
93274
  DropdownMenu$1.displayName = DROPDOWN_MENU_NAME;
93275
- var TRIGGER_NAME$5 = "DropdownMenuTrigger";
93275
+ var TRIGGER_NAME$7 = "DropdownMenuTrigger";
93276
93276
  var DropdownMenuTrigger$1 = React.forwardRef(
93277
93277
  (props, forwardedRef) => {
93278
93278
  const { __scopeDropdownMenu, disabled = false, ...triggerProps } = props;
93279
- const context = useDropdownMenuContext(TRIGGER_NAME$5, __scopeDropdownMenu);
93279
+ const context = useDropdownMenuContext(TRIGGER_NAME$7, __scopeDropdownMenu);
93280
93280
  const menuScope = useMenuScope(__scopeDropdownMenu);
93281
93281
  return /* @__PURE__ */ jsx(Anchor2$1, { asChild: true, ...menuScope, children: /* @__PURE__ */ jsx(
93282
93282
  Primitive$4.button,
@@ -93307,23 +93307,23 @@ var DropdownMenuTrigger$1 = React.forwardRef(
93307
93307
  ) });
93308
93308
  }
93309
93309
  );
93310
- DropdownMenuTrigger$1.displayName = TRIGGER_NAME$5;
93311
- var PORTAL_NAME$6 = "DropdownMenuPortal";
93310
+ DropdownMenuTrigger$1.displayName = TRIGGER_NAME$7;
93311
+ var PORTAL_NAME$7 = "DropdownMenuPortal";
93312
93312
  var DropdownMenuPortal = (props) => {
93313
93313
  const { __scopeDropdownMenu, ...portalProps } = props;
93314
93314
  const menuScope = useMenuScope(__scopeDropdownMenu);
93315
- return /* @__PURE__ */ jsx(Portal$5, { ...menuScope, ...portalProps });
93315
+ return /* @__PURE__ */ jsx(Portal$6, { ...menuScope, ...portalProps });
93316
93316
  };
93317
- DropdownMenuPortal.displayName = PORTAL_NAME$6;
93318
- var CONTENT_NAME$6 = "DropdownMenuContent";
93317
+ DropdownMenuPortal.displayName = PORTAL_NAME$7;
93318
+ var CONTENT_NAME$9 = "DropdownMenuContent";
93319
93319
  var DropdownMenuContent$1 = React.forwardRef(
93320
93320
  (props, forwardedRef) => {
93321
93321
  const { __scopeDropdownMenu, ...contentProps } = props;
93322
- const context = useDropdownMenuContext(CONTENT_NAME$6, __scopeDropdownMenu);
93322
+ const context = useDropdownMenuContext(CONTENT_NAME$9, __scopeDropdownMenu);
93323
93323
  const menuScope = useMenuScope(__scopeDropdownMenu);
93324
93324
  const hasInteractedOutsideRef = React.useRef(false);
93325
93325
  return /* @__PURE__ */ jsx(
93326
- Content2$5,
93326
+ Content2$6,
93327
93327
  {
93328
93328
  id: context.contentId,
93329
93329
  "aria-labelledby": context.triggerId,
@@ -93356,7 +93356,7 @@ var DropdownMenuContent$1 = React.forwardRef(
93356
93356
  );
93357
93357
  }
93358
93358
  );
93359
- DropdownMenuContent$1.displayName = CONTENT_NAME$6;
93359
+ DropdownMenuContent$1.displayName = CONTENT_NAME$9;
93360
93360
  var GROUP_NAME$2 = "DropdownMenuGroup";
93361
93361
  var DropdownMenuGroup = React.forwardRef(
93362
93362
  (props, forwardedRef) => {
@@ -93419,7 +93419,7 @@ var DropdownMenuSeparator$1 = React.forwardRef((props, forwardedRef) => {
93419
93419
  return /* @__PURE__ */ jsx(Separator$3, { ...menuScope, ...separatorProps, ref: forwardedRef });
93420
93420
  });
93421
93421
  DropdownMenuSeparator$1.displayName = SEPARATOR_NAME$1;
93422
- var ARROW_NAME$4 = "DropdownMenuArrow";
93422
+ var ARROW_NAME$6 = "DropdownMenuArrow";
93423
93423
  var DropdownMenuArrow = React.forwardRef(
93424
93424
  (props, forwardedRef) => {
93425
93425
  const { __scopeDropdownMenu, ...arrowProps } = props;
@@ -93427,7 +93427,7 @@ var DropdownMenuArrow = React.forwardRef(
93427
93427
  return /* @__PURE__ */ jsx(Arrow2$1, { ...menuScope, ...arrowProps, ref: forwardedRef });
93428
93428
  }
93429
93429
  );
93430
- DropdownMenuArrow.displayName = ARROW_NAME$4;
93430
+ DropdownMenuArrow.displayName = ARROW_NAME$6;
93431
93431
  var SUB_TRIGGER_NAME = "DropdownMenuSubTrigger";
93432
93432
  var DropdownMenuSubTrigger = React.forwardRef((props, forwardedRef) => {
93433
93433
  const { __scopeDropdownMenu, ...subTriggerProps } = props;
@@ -93460,10 +93460,10 @@ var DropdownMenuSubContent = React.forwardRef((props, forwardedRef) => {
93460
93460
  );
93461
93461
  });
93462
93462
  DropdownMenuSubContent.displayName = SUB_CONTENT_NAME;
93463
- var Root2$7 = DropdownMenu$1;
93464
- var Trigger$4 = DropdownMenuTrigger$1;
93463
+ var Root2$9 = DropdownMenu$1;
93464
+ var Trigger$5 = DropdownMenuTrigger$1;
93465
93465
  var Portal2$1 = DropdownMenuPortal;
93466
- var Content2$4 = DropdownMenuContent$1;
93466
+ var Content2$5 = DropdownMenuContent$1;
93467
93467
  var Item2$1 = DropdownMenuItem$1;
93468
93468
  var Separator2 = DropdownMenuSeparator$1;
93469
93469
 
@@ -93473,14 +93473,14 @@ function useFloatingPortalContainer() {
93473
93473
  }
93474
93474
 
93475
93475
  function DropdownMenu({ ...props }) {
93476
- return jsx(Root2$7, { "data-slot": "dropdown-menu", ...props });
93476
+ return jsx(Root2$9, { "data-slot": "dropdown-menu", ...props });
93477
93477
  }
93478
93478
  function DropdownMenuTrigger({ ...props }) {
93479
- return jsx(Trigger$4, { "data-slot": "dropdown-menu-trigger", ...props });
93479
+ return jsx(Trigger$5, { "data-slot": "dropdown-menu-trigger", ...props });
93480
93480
  }
93481
93481
  function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
93482
93482
  const portalContainer = useFloatingPortalContainer();
93483
- return (jsx(Portal2$1, { container: portalContainer !== null && portalContainer !== void 0 ? portalContainer : undefined, children: jsx(Content2$4, { "data-slot": "dropdown-menu-content", "data-iblai-dialog-interaction-layer": true, sideOffset: sideOffset, className: cn('bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md', className), ...props }) }));
93483
+ return (jsx(Portal2$1, { container: portalContainer !== null && portalContainer !== void 0 ? portalContainer : undefined, children: jsx(Content2$5, { "data-slot": "dropdown-menu-content", "data-iblai-dialog-interaction-layer": true, sideOffset: sideOffset, className: cn('bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md', className), ...props }) }));
93484
93484
  }
93485
93485
  function DropdownMenuItem({ className, inset, variant = 'default', ...props }) {
93486
93486
  return (jsx(Item2$1, { "data-slot": "dropdown-menu-item", "data-inset": inset, "data-variant": variant, className: cn("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props }));
@@ -93833,12 +93833,12 @@ function useImageLoadingStatus(src, { referrerPolicy, crossOrigin }) {
93833
93833
  }, [image, crossOrigin, referrerPolicy]);
93834
93834
  return loadingStatus;
93835
93835
  }
93836
- var Root$c = Avatar$1;
93836
+ var Root$e = Avatar$1;
93837
93837
  var Image$2 = AvatarImage$1;
93838
93838
  var Fallback = AvatarFallback$1;
93839
93839
 
93840
- const Avatar = React.forwardRef(({ className, onClick, ...props }, ref) => (jsx(Root$c, { ref: ref, className: cn("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className), onClick: onClick, ...props })));
93841
- Avatar.displayName = Root$c.displayName;
93840
+ const Avatar = React.forwardRef(({ className, onClick, ...props }, ref) => (jsx(Root$e, { ref: ref, className: cn("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", className), onClick: onClick, ...props })));
93841
+ Avatar.displayName = Root$e.displayName;
93842
93842
  const AvatarImage = React.forwardRef(({ className, onClick, ...props }, ref) => (jsx(Image$2, { ref: ref, className: cn("aspect-square h-full w-full cursor-pointer rounded-full border-0 object-cover", // Changed object-center to object-cover for better image fitting
93843
93843
  className), onClick: onClick, ...props })));
93844
93844
  AvatarImage.displayName = "AvatarImage";
@@ -93881,7 +93881,7 @@ function usePrevious$1(value) {
93881
93881
  }
93882
93882
 
93883
93883
  // packages/react/visually-hidden/src/visually-hidden.tsx
93884
- var NAME$7 = "VisuallyHidden";
93884
+ var NAME$8 = "VisuallyHidden";
93885
93885
  var VisuallyHidden$2 = React.forwardRef(
93886
93886
  (props, forwardedRef) => {
93887
93887
  return /* @__PURE__ */ jsx(
@@ -93907,7 +93907,7 @@ var VisuallyHidden$2 = React.forwardRef(
93907
93907
  );
93908
93908
  }
93909
93909
  );
93910
- VisuallyHidden$2.displayName = NAME$7;
93910
+ VisuallyHidden$2.displayName = NAME$8;
93911
93911
 
93912
93912
  var OPEN_KEYS = [" ", "Enter", "ArrowUp", "ArrowDown"];
93913
93913
  var SELECTION_KEYS = [" ", "Enter"];
@@ -93915,9 +93915,9 @@ var SELECT_NAME = "Select";
93915
93915
  var [Collection$2, useCollection$2, createCollectionScope$2] = createCollection$2(SELECT_NAME);
93916
93916
  var [createSelectContext] = createContextScope$1(SELECT_NAME, [
93917
93917
  createCollectionScope$2,
93918
- createPopperScope$1
93918
+ createPopperScope$2
93919
93919
  ]);
93920
- var usePopperScope$2 = createPopperScope$1();
93920
+ var usePopperScope$3 = createPopperScope$2();
93921
93921
  var [SelectProvider, useSelectContext] = createSelectContext(SELECT_NAME);
93922
93922
  var [SelectNativeOptionsProvider, useSelectNativeOptionsContext] = createSelectContext(SELECT_NAME);
93923
93923
  var Select$2 = (props) => {
@@ -93937,7 +93937,7 @@ var Select$2 = (props) => {
93937
93937
  required,
93938
93938
  form
93939
93939
  } = props;
93940
- const popperScope = usePopperScope$2(__scopeSelect);
93940
+ const popperScope = usePopperScope$3(__scopeSelect);
93941
93941
  const [trigger, setTrigger] = React.useState(null);
93942
93942
  const [valueNode, setValueNode] = React.useState(null);
93943
93943
  const [valueNodeHasChildren, setValueNodeHasChildren] = React.useState(false);
@@ -93956,7 +93956,7 @@ var Select$2 = (props) => {
93956
93956
  const isFormControl = trigger ? form || !!trigger.closest("form") : true;
93957
93957
  const [nativeOptionsSet, setNativeOptionsSet] = React.useState(/* @__PURE__ */ new Set());
93958
93958
  const nativeSelectKey = Array.from(nativeOptionsSet).map((option) => option.props.value).join(";");
93959
- return /* @__PURE__ */ jsx(Root2$8, { ...popperScope, children: /* @__PURE__ */ jsxs(
93959
+ return /* @__PURE__ */ jsx(Root2$a, { ...popperScope, children: /* @__PURE__ */ jsxs(
93960
93960
  SelectProvider,
93961
93961
  {
93962
93962
  required,
@@ -94017,12 +94017,12 @@ var Select$2 = (props) => {
94017
94017
  ) });
94018
94018
  };
94019
94019
  Select$2.displayName = SELECT_NAME;
94020
- var TRIGGER_NAME$4 = "SelectTrigger";
94020
+ var TRIGGER_NAME$6 = "SelectTrigger";
94021
94021
  var SelectTrigger$1 = React.forwardRef(
94022
94022
  (props, forwardedRef) => {
94023
94023
  const { __scopeSelect, disabled = false, ...triggerProps } = props;
94024
- const popperScope = usePopperScope$2(__scopeSelect);
94025
- const context = useSelectContext(TRIGGER_NAME$4, __scopeSelect);
94024
+ const popperScope = usePopperScope$3(__scopeSelect);
94025
+ const context = useSelectContext(TRIGGER_NAME$6, __scopeSelect);
94026
94026
  const isDisabled = context.disabled || disabled;
94027
94027
  const composedRefs = useComposedRefs$1(forwardedRef, context.onTriggerChange);
94028
94028
  const getItems = useCollection$2(__scopeSelect);
@@ -94047,7 +94047,7 @@ var SelectTrigger$1 = React.forwardRef(
94047
94047
  };
94048
94048
  }
94049
94049
  };
94050
- return /* @__PURE__ */ jsx(Anchor$2, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(
94050
+ return /* @__PURE__ */ jsx(Anchor$3, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(
94051
94051
  Primitive$4.button,
94052
94052
  {
94053
94053
  type: "button",
@@ -94094,7 +94094,7 @@ var SelectTrigger$1 = React.forwardRef(
94094
94094
  ) });
94095
94095
  }
94096
94096
  );
94097
- SelectTrigger$1.displayName = TRIGGER_NAME$4;
94097
+ SelectTrigger$1.displayName = TRIGGER_NAME$6;
94098
94098
  var VALUE_NAME = "SelectValue";
94099
94099
  var SelectValue$1 = React.forwardRef(
94100
94100
  (props, forwardedRef) => {
@@ -94126,15 +94126,15 @@ var SelectIcon = React.forwardRef(
94126
94126
  }
94127
94127
  );
94128
94128
  SelectIcon.displayName = ICON_NAME;
94129
- var PORTAL_NAME$5 = "SelectPortal";
94129
+ var PORTAL_NAME$6 = "SelectPortal";
94130
94130
  var SelectPortal = (props) => {
94131
- return /* @__PURE__ */ jsx(Portal$6, { asChild: true, ...props });
94131
+ return /* @__PURE__ */ jsx(Portal$7, { asChild: true, ...props });
94132
94132
  };
94133
- SelectPortal.displayName = PORTAL_NAME$5;
94134
- var CONTENT_NAME$5 = "SelectContent";
94133
+ SelectPortal.displayName = PORTAL_NAME$6;
94134
+ var CONTENT_NAME$8 = "SelectContent";
94135
94135
  var SelectContent$1 = React.forwardRef(
94136
94136
  (props, forwardedRef) => {
94137
- const context = useSelectContext(CONTENT_NAME$5, props.__scopeSelect);
94137
+ const context = useSelectContext(CONTENT_NAME$8, props.__scopeSelect);
94138
94138
  const [fragment, setFragment] = React.useState();
94139
94139
  useLayoutEffect2$1(() => {
94140
94140
  setFragment(new DocumentFragment());
@@ -94149,9 +94149,9 @@ var SelectContent$1 = React.forwardRef(
94149
94149
  return /* @__PURE__ */ jsx(SelectContentImpl, { ...props, ref: forwardedRef });
94150
94150
  }
94151
94151
  );
94152
- SelectContent$1.displayName = CONTENT_NAME$5;
94152
+ SelectContent$1.displayName = CONTENT_NAME$8;
94153
94153
  var CONTENT_MARGIN = 10;
94154
- var [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME$5);
94154
+ var [SelectContentProvider, useSelectContentContext] = createSelectContext(CONTENT_NAME$8);
94155
94155
  var CONTENT_IMPL_NAME = "SelectContentImpl";
94156
94156
  var Slot$2 = createSlot$1("SelectContent.RemoveScroll");
94157
94157
  var SelectContentImpl = React.forwardRef(
@@ -94177,7 +94177,7 @@ var SelectContentImpl = React.forwardRef(
94177
94177
  //
94178
94178
  ...contentProps
94179
94179
  } = props;
94180
- const context = useSelectContext(CONTENT_NAME$5, __scopeSelect);
94180
+ const context = useSelectContext(CONTENT_NAME$8, __scopeSelect);
94181
94181
  const [content, setContent] = React.useState(null);
94182
94182
  const [viewport, setViewport] = React.useState(null);
94183
94183
  const composedRefs = useComposedRefs$1(forwardedRef, (node) => setContent(node));
@@ -94390,8 +94390,8 @@ SelectContentImpl.displayName = CONTENT_IMPL_NAME;
94390
94390
  var ITEM_ALIGNED_POSITION_NAME = "SelectItemAlignedPosition";
94391
94391
  var SelectItemAlignedPosition = React.forwardRef((props, forwardedRef) => {
94392
94392
  const { __scopeSelect, onPlaced, ...popperProps } = props;
94393
- const context = useSelectContext(CONTENT_NAME$5, __scopeSelect);
94394
- const contentContext = useSelectContentContext(CONTENT_NAME$5, __scopeSelect);
94393
+ const context = useSelectContext(CONTENT_NAME$8, __scopeSelect);
94394
+ const contentContext = useSelectContentContext(CONTENT_NAME$8, __scopeSelect);
94395
94395
  const [contentWrapper, setContentWrapper] = React.useState(null);
94396
94396
  const [content, setContent] = React.useState(null);
94397
94397
  const composedRefs = useComposedRefs$1(forwardedRef, (node) => setContent(node));
@@ -94559,9 +94559,9 @@ var SelectPopperPosition = React.forwardRef((props, forwardedRef) => {
94559
94559
  collisionPadding = CONTENT_MARGIN,
94560
94560
  ...popperProps
94561
94561
  } = props;
94562
- const popperScope = usePopperScope$2(__scopeSelect);
94562
+ const popperScope = usePopperScope$3(__scopeSelect);
94563
94563
  return /* @__PURE__ */ jsx(
94564
- Content$2,
94564
+ Content$3,
94565
94565
  {
94566
94566
  ...popperScope,
94567
94567
  ...popperProps,
@@ -94585,7 +94585,7 @@ var SelectPopperPosition = React.forwardRef((props, forwardedRef) => {
94585
94585
  );
94586
94586
  });
94587
94587
  SelectPopperPosition.displayName = POPPER_POSITION_NAME;
94588
- var [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME$5, {});
94588
+ var [SelectViewportProvider, useSelectViewportContext] = createSelectContext(CONTENT_NAME$8, {});
94589
94589
  var VIEWPORT_NAME$2 = "SelectViewport";
94590
94590
  var SelectViewport = React.forwardRef(
94591
94591
  (props, forwardedRef) => {
@@ -94934,17 +94934,17 @@ var SelectSeparator$1 = React.forwardRef(
94934
94934
  }
94935
94935
  );
94936
94936
  SelectSeparator$1.displayName = SEPARATOR_NAME;
94937
- var ARROW_NAME$3 = "SelectArrow";
94937
+ var ARROW_NAME$5 = "SelectArrow";
94938
94938
  var SelectArrow = React.forwardRef(
94939
94939
  (props, forwardedRef) => {
94940
94940
  const { __scopeSelect, ...arrowProps } = props;
94941
- const popperScope = usePopperScope$2(__scopeSelect);
94942
- const context = useSelectContext(ARROW_NAME$3, __scopeSelect);
94943
- const contentContext = useSelectContentContext(ARROW_NAME$3, __scopeSelect);
94944
- return context.open && contentContext.position === "popper" ? /* @__PURE__ */ jsx(Arrow$2, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
94941
+ const popperScope = usePopperScope$3(__scopeSelect);
94942
+ const context = useSelectContext(ARROW_NAME$5, __scopeSelect);
94943
+ const contentContext = useSelectContentContext(ARROW_NAME$5, __scopeSelect);
94944
+ return context.open && contentContext.position === "popper" ? /* @__PURE__ */ jsx(Arrow$4, { ...popperScope, ...arrowProps, ref: forwardedRef }) : null;
94945
94945
  }
94946
94946
  );
94947
- SelectArrow.displayName = ARROW_NAME$3;
94947
+ SelectArrow.displayName = ARROW_NAME$5;
94948
94948
  function shouldShowPlaceholder(value) {
94949
94949
  return value === "" || value === void 0;
94950
94950
  }
@@ -95012,12 +95012,12 @@ function findNextItem(items, search, currentItem) {
95012
95012
  function wrapArray$1(array, startIndex) {
95013
95013
  return array.map((_, index) => array[(startIndex + index) % array.length]);
95014
95014
  }
95015
- var Root2$6 = Select$2;
95016
- var Trigger$3 = SelectTrigger$1;
95015
+ var Root2$8 = Select$2;
95016
+ var Trigger$4 = SelectTrigger$1;
95017
95017
  var Value = SelectValue$1;
95018
95018
  var Icon$3 = SelectIcon;
95019
- var Portal$4 = SelectPortal;
95020
- var Content2$3 = SelectContent$1;
95019
+ var Portal$5 = SelectPortal;
95020
+ var Content2$4 = SelectContent$1;
95021
95021
  var Viewport$2 = SelectViewport;
95022
95022
  var Label$3 = SelectLabel$1;
95023
95023
  var Item$2 = SelectItem$1;
@@ -95027,22 +95027,22 @@ var ScrollUpButton = SelectScrollUpButton$1;
95027
95027
  var ScrollDownButton = SelectScrollDownButton$1;
95028
95028
  var Separator$2 = SelectSeparator$1;
95029
95029
 
95030
- const Select$1 = Root2$6;
95030
+ const Select$1 = Root2$8;
95031
95031
  const SelectValue = Value;
95032
- const SelectTrigger = React.forwardRef(({ className, children, ...props }, ref) => (jsxs(Trigger$3, { ref: ref, className: cn('border-input ring-offset-background data-[placeholder]:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1', className), ...props, children: [children, jsx(Icon$3, { asChild: true, children: jsx(ChevronDown, { className: "h-4 w-4 opacity-50" }) })] })));
95033
- SelectTrigger.displayName = Trigger$3.displayName;
95032
+ const SelectTrigger = React.forwardRef(({ className, children, ...props }, ref) => (jsxs(Trigger$4, { ref: ref, className: cn('border-input ring-offset-background data-[placeholder]:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1', className), ...props, children: [children, jsx(Icon$3, { asChild: true, children: jsx(ChevronDown, { className: "h-4 w-4 opacity-50" }) })] })));
95033
+ SelectTrigger.displayName = Trigger$4.displayName;
95034
95034
  const SelectScrollUpButton = React.forwardRef(({ className, ...props }, ref) => (jsx(ScrollUpButton, { ref: ref, className: cn('flex cursor-default items-center justify-center py-1', className), ...props, children: jsx(ChevronUp, { className: "h-4 w-4" }) })));
95035
95035
  SelectScrollUpButton.displayName = ScrollUpButton.displayName;
95036
95036
  const SelectScrollDownButton = React.forwardRef(({ className, ...props }, ref) => (jsx(ScrollDownButton, { ref: ref, className: cn('flex cursor-default items-center justify-center py-1', className), ...props, children: jsx(ChevronDown, { className: "h-4 w-4" }) })));
95037
95037
  SelectScrollDownButton.displayName = ScrollDownButton.displayName;
95038
95038
  const SelectContent = React.forwardRef(({ className, children, position = 'popper', ...props }, ref) => {
95039
95039
  const portalContainer = useFloatingPortalContainer();
95040
- return (jsx(Portal$4, { container: portalContainer !== null && portalContainer !== void 0 ? portalContainer : undefined, children: jsxs(Content2$3, { ref: ref, className: cn('bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-60 min-w-[8rem] overflow-hidden rounded-md border shadow-md', position === 'popper' &&
95040
+ return (jsx(Portal$5, { container: portalContainer !== null && portalContainer !== void 0 ? portalContainer : undefined, children: jsxs(Content2$4, { ref: ref, className: cn('bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-60 min-w-[8rem] overflow-hidden rounded-md border shadow-md', position === 'popper' &&
95041
95041
  'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', className), position: position, ...props, children: [jsx(SelectScrollUpButton, {}), jsx(Viewport$2, { className: cn('h-[var(--radix-select-viewport-height)] overflow-auto p-1', position === 'popper' && 'w-full min-w-[var(--radix-select-trigger-width)]'), style: {
95042
95042
  '--radix-select-viewport-height': 'var(--radix-select-content-available-height)',
95043
95043
  }, children: children }), jsx(SelectScrollDownButton, {})] }) }));
95044
95044
  });
95045
- SelectContent.displayName = Content2$3.displayName;
95045
+ SelectContent.displayName = Content2$4.displayName;
95046
95046
  const SelectLabel = React.forwardRef(({ className, ...props }, ref) => (jsx(Label$3, { ref: ref, className: cn('px-2 py-1.5 text-sm font-semibold', className), ...props })));
95047
95047
  SelectLabel.displayName = Label$3.displayName;
95048
95048
  const SelectItem = React.forwardRef(({ className, children, ...props }, ref) => (jsxs(Item$2, { ref: ref, className: cn('focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50', className), ...props, children: [jsx("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: jsx(ItemIndicator, { children: jsx(Check, { className: "h-4 w-4" }) }) }), jsx(ItemText, { children: children })] })));
@@ -95445,18 +95445,18 @@ function handleAndDispatchCustomEvent$2(name, handler, detail, { discrete }) {
95445
95445
  target.dispatchEvent(event);
95446
95446
  }
95447
95447
  }
95448
- var Root$b = DismissableLayer$1;
95448
+ var Root$d = DismissableLayer$1;
95449
95449
  var Branch$1 = DismissableLayerBranch$1;
95450
95450
 
95451
- var PORTAL_NAME$4 = "Portal";
95452
- var Portal$3 = React.forwardRef((props, forwardedRef) => {
95451
+ var PORTAL_NAME$5 = "Portal";
95452
+ var Portal$4 = React.forwardRef((props, forwardedRef) => {
95453
95453
  const { container: containerProp, ...portalProps } = props;
95454
95454
  const [mounted, setMounted] = React.useState(false);
95455
95455
  useLayoutEffect2$1(() => setMounted(true), []);
95456
95456
  const container = containerProp || mounted && globalThis?.document?.body;
95457
95457
  return container ? ReactDOM__default.createPortal(/* @__PURE__ */ jsx(Primitive$2.div, { ...portalProps, ref: forwardedRef }), container) : null;
95458
95458
  });
95459
- Portal$3.displayName = PORTAL_NAME$4;
95459
+ Portal$4.displayName = PORTAL_NAME$5;
95460
95460
 
95461
95461
  function useStateMachine$3(initialState, machine) {
95462
95462
  return React.useReducer((state, event) => {
@@ -95663,7 +95663,7 @@ var VISUALLY_HIDDEN_STYLES$1 = Object.freeze({
95663
95663
  whiteSpace: "nowrap",
95664
95664
  wordWrap: "normal"
95665
95665
  });
95666
- var NAME$6 = "VisuallyHidden";
95666
+ var NAME$7 = "VisuallyHidden";
95667
95667
  var VisuallyHidden$1 = React.forwardRef(
95668
95668
  (props, forwardedRef) => {
95669
95669
  return /* @__PURE__ */ jsx(
@@ -95676,7 +95676,7 @@ var VisuallyHidden$1 = React.forwardRef(
95676
95676
  );
95677
95677
  }
95678
95678
  );
95679
- VisuallyHidden$1.displayName = NAME$6;
95679
+ VisuallyHidden$1.displayName = NAME$7;
95680
95680
 
95681
95681
  var PROVIDER_NAME$1 = "ToastProvider";
95682
95682
  var [Collection$1, useCollection$1, createCollectionScope$1] = createCollection$1("Toast");
@@ -96035,7 +96035,7 @@ var ToastImpl = React.forwardRef(
96035
96035
  ),
96036
96036
  /* @__PURE__ */ jsx(ToastInteractiveProvider, { scope: __scopeToast, onClose: handleClose, children: ReactDOM.createPortal(
96037
96037
  /* @__PURE__ */ jsx(Collection$1.ItemSlot, { scope: __scopeToast, children: /* @__PURE__ */ jsx(
96038
- Root$b,
96038
+ Root$d,
96039
96039
  {
96040
96040
  asChild: true,
96041
96041
  onEscapeKeyDown: composeEventHandlers$1(onEscapeKeyDown, () => {
@@ -96139,7 +96139,7 @@ var ToastAnnounce = (props) => {
96139
96139
  const timer = window.setTimeout(() => setIsAnnounced(true), 1e3);
96140
96140
  return () => window.clearTimeout(timer);
96141
96141
  }, []);
96142
- return isAnnounced ? null : /* @__PURE__ */ jsx(Portal$3, { asChild: true, children: /* @__PURE__ */ jsx(VisuallyHidden$1, { ...announceProps, children: renderAnnounceText && /* @__PURE__ */ jsxs(Fragment$1, { children: [
96142
+ return isAnnounced ? null : /* @__PURE__ */ jsx(Portal$4, { asChild: true, children: /* @__PURE__ */ jsx(VisuallyHidden$1, { ...announceProps, children: renderAnnounceText && /* @__PURE__ */ jsxs(Fragment$1, { children: [
96143
96143
  context.label,
96144
96144
  " ",
96145
96145
  children
@@ -96282,7 +96282,7 @@ function focusFirst$1(candidates) {
96282
96282
  }
96283
96283
  var Provider$1 = ToastProvider$1;
96284
96284
  var Viewport$1 = ToastViewport$1;
96285
- var Root2$5 = Toast$1;
96285
+ var Root2$7 = Toast$1;
96286
96286
  var Title = ToastTitle$1;
96287
96287
  var Description = ToastDescription$1;
96288
96288
  var Action$1 = ToastAction$1;
@@ -96303,9 +96303,9 @@ const toastVariants = cva("group pointer-events-auto relative flex w-full items-
96303
96303
  },
96304
96304
  });
96305
96305
  const Toast = React.forwardRef(({ className, variant, ...props }, ref) => {
96306
- return (jsx(Root2$5, { ref: ref, className: cn(toastVariants({ variant }), className), ...props }));
96306
+ return (jsx(Root2$7, { ref: ref, className: cn(toastVariants({ variant }), className), ...props }));
96307
96307
  });
96308
- Toast.displayName = Root2$5.displayName;
96308
+ Toast.displayName = Root2$7.displayName;
96309
96309
  const ToastAction = React.forwardRef(({ className, ...props }, ref) => (jsx(Action$1, { ref: ref, className: cn("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive", className), ...props })));
96310
96310
  ToastAction.displayName = Action$1.displayName;
96311
96311
  const ToastClose = React.forwardRef(({ className, ...props }, ref) => (jsx(Close, { ref: ref, className: cn("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600", className), "toast-close": "", ...props, children: jsx(X$2, { className: "h-4 w-4" }) })));
@@ -96350,7 +96350,7 @@ var Switch$1 = React.forwardRef(
96350
96350
  role: "switch",
96351
96351
  "aria-checked": checked,
96352
96352
  "aria-required": required,
96353
- "data-state": getState$3(checked),
96353
+ "data-state": getState$4(checked),
96354
96354
  "data-disabled": disabled ? "" : void 0,
96355
96355
  disabled,
96356
96356
  value,
@@ -96391,7 +96391,7 @@ var SwitchThumb = React.forwardRef(
96391
96391
  return /* @__PURE__ */ jsx(
96392
96392
  Primitive$2.span,
96393
96393
  {
96394
- "data-state": getState$3(context.checked),
96394
+ "data-state": getState$4(context.checked),
96395
96395
  "data-disabled": context.disabled ? "" : void 0,
96396
96396
  ...thumbProps,
96397
96397
  ref: forwardedRef
@@ -96450,14 +96450,14 @@ var SwitchBubbleInput = React.forwardRef(
96450
96450
  }
96451
96451
  );
96452
96452
  SwitchBubbleInput.displayName = BUBBLE_INPUT_NAME$1;
96453
- function getState$3(checked) {
96453
+ function getState$4(checked) {
96454
96454
  return checked ? "checked" : "unchecked";
96455
96455
  }
96456
- var Root$a = Switch$1;
96456
+ var Root$c = Switch$1;
96457
96457
  var Thumb = SwitchThumb;
96458
96458
 
96459
- const Switch = React.forwardRef(({ className, ...props }, ref) => (jsx(Root$a, { className: cn("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", className), ...props, ref: ref, children: jsx(Thumb, { className: cn("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0") }) })));
96460
- Switch.displayName = Root$a.displayName;
96459
+ const Switch = React.forwardRef(({ className, ...props }, ref) => (jsx(Root$c, { className: cn("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", className), ...props, ref: ref, children: jsx(Thumb, { className: cn("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0") }) })));
96460
+ Switch.displayName = Root$c.displayName;
96461
96461
 
96462
96462
  var TABS_NAME = "Tabs";
96463
96463
  var [createTabsContext] = createContextScope$1(TABS_NAME, [
@@ -96514,7 +96514,7 @@ var TabsList$1 = React.forwardRef(
96514
96514
  const context = useTabsContext(TAB_LIST_NAME, __scopeTabs);
96515
96515
  const rovingFocusGroupScope = useRovingFocusGroupScope$1(__scopeTabs);
96516
96516
  return /* @__PURE__ */ jsx(
96517
- Root$d,
96517
+ Root$f,
96518
96518
  {
96519
96519
  asChild: true,
96520
96520
  ...rovingFocusGroupScope,
@@ -96535,11 +96535,11 @@ var TabsList$1 = React.forwardRef(
96535
96535
  }
96536
96536
  );
96537
96537
  TabsList$1.displayName = TAB_LIST_NAME;
96538
- var TRIGGER_NAME$3 = "TabsTrigger";
96538
+ var TRIGGER_NAME$5 = "TabsTrigger";
96539
96539
  var TabsTrigger$1 = React.forwardRef(
96540
96540
  (props, forwardedRef) => {
96541
96541
  const { __scopeTabs, value, disabled = false, ...triggerProps } = props;
96542
- const context = useTabsContext(TRIGGER_NAME$3, __scopeTabs);
96542
+ const context = useTabsContext(TRIGGER_NAME$5, __scopeTabs);
96543
96543
  const rovingFocusGroupScope = useRovingFocusGroupScope$1(__scopeTabs);
96544
96544
  const triggerId = makeTriggerId(context.baseId, value);
96545
96545
  const contentId = makeContentId(context.baseId, value);
@@ -96586,12 +96586,12 @@ var TabsTrigger$1 = React.forwardRef(
96586
96586
  );
96587
96587
  }
96588
96588
  );
96589
- TabsTrigger$1.displayName = TRIGGER_NAME$3;
96590
- var CONTENT_NAME$4 = "TabsContent";
96589
+ TabsTrigger$1.displayName = TRIGGER_NAME$5;
96590
+ var CONTENT_NAME$7 = "TabsContent";
96591
96591
  var TabsContent$1 = React.forwardRef(
96592
96592
  (props, forwardedRef) => {
96593
96593
  const { __scopeTabs, value, forceMount, children, ...contentProps } = props;
96594
- const context = useTabsContext(CONTENT_NAME$4, __scopeTabs);
96594
+ const context = useTabsContext(CONTENT_NAME$7, __scopeTabs);
96595
96595
  const triggerId = makeTriggerId(context.baseId, value);
96596
96596
  const contentId = makeContentId(context.baseId, value);
96597
96597
  const isSelected = value === context.value;
@@ -96621,25 +96621,25 @@ var TabsContent$1 = React.forwardRef(
96621
96621
  ) });
96622
96622
  }
96623
96623
  );
96624
- TabsContent$1.displayName = CONTENT_NAME$4;
96624
+ TabsContent$1.displayName = CONTENT_NAME$7;
96625
96625
  function makeTriggerId(baseId, value) {
96626
96626
  return `${baseId}-trigger-${value}`;
96627
96627
  }
96628
96628
  function makeContentId(baseId, value) {
96629
96629
  return `${baseId}-content-${value}`;
96630
96630
  }
96631
- var Root2$4 = Tabs$1;
96631
+ var Root2$6 = Tabs$1;
96632
96632
  var List = TabsList$1;
96633
- var Trigger$2 = TabsTrigger$1;
96634
- var Content$1 = TabsContent$1;
96633
+ var Trigger$3 = TabsTrigger$1;
96634
+ var Content$2 = TabsContent$1;
96635
96635
 
96636
- const Tabs = Root2$4;
96636
+ const Tabs = Root2$6;
96637
96637
  const TabsList = React.forwardRef(({ className, ...props }, ref) => (jsx(List, { ref: ref, className: cn("bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1", className), ...props })));
96638
96638
  TabsList.displayName = List.displayName;
96639
- const TabsTrigger = React.forwardRef(({ className, ...props }, ref) => (jsx(Trigger$2, { ref: ref, className: cn("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow", className), ...props })));
96640
- TabsTrigger.displayName = Trigger$2.displayName;
96641
- const TabsContent = React.forwardRef(({ className, ...props }, ref) => (jsx(Content$1, { ref: ref, className: cn("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none", className), ...props })));
96642
- TabsContent.displayName = Content$1.displayName;
96639
+ const TabsTrigger = React.forwardRef(({ className, ...props }, ref) => (jsx(Trigger$3, { ref: ref, className: cn("ring-offset-background focus-visible:ring-ring data-[state=active]:bg-background data-[state=active]:text-foreground inline-flex items-center justify-center rounded-md px-3 py-1 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow", className), ...props })));
96640
+ TabsTrigger.displayName = Trigger$3.displayName;
96641
+ const TabsContent = React.forwardRef(({ className, ...props }, ref) => (jsx(Content$2, { ref: ref, className: cn("ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none", className), ...props })));
96642
+ TabsContent.displayName = Content$2.displayName;
96643
96643
 
96644
96644
  /**
96645
96645
  * Default locale for the application
@@ -101872,6 +101872,26 @@ var ltiTabLabels$3 = {
101872
101872
  toolError: "Something went wrong with the LTI tool"
101873
101873
  }
101874
101874
  };
101875
+ var platformSidebar$3 = {
101876
+ collapseSidebar: "Collapse sidebar",
101877
+ expandSidebar: "Expand sidebar",
101878
+ mainNavigation: "Main navigation",
101879
+ notifications: "Notifications",
101880
+ invites: "Invites",
101881
+ management: "Management",
101882
+ integrations: "Integrations",
101883
+ monetization: "Monetization",
101884
+ advanced: "Advanced",
101885
+ support: "Support",
101886
+ accountTabOrganization: "Organization",
101887
+ accountTabBilling: "Billing",
101888
+ accountDescOrganization: "Manage your organization settings.",
101889
+ accountDescManagement: "Manage users and their permissions in the system.",
101890
+ accountDescIntegrations: "Manage your integrations with other services.",
101891
+ accountDescMonetization: "Configure paywalls, pricing, and revenue.",
101892
+ accountDescAdvanced: "Configure advanced organization settings.",
101893
+ accountDescBilling: "Manage your billing and subscription."
101894
+ };
101875
101895
  var en = {
101876
101896
  accessTabAddAccess: accessTabAddAccess$3,
101877
101897
  accessTabLabels: accessTabLabels$3,
@@ -102106,7 +102126,8 @@ var en = {
102106
102126
  workflowsCreateWorkflowModal: workflowsCreateWorkflowModal$3,
102107
102127
  workflowsDeleteWorkflowModal: workflowsDeleteWorkflowModal$3,
102108
102128
  workflowsToolDialogs: workflowsToolDialogs$3,
102109
- ltiTabLabels: ltiTabLabels$3
102129
+ ltiTabLabels: ltiTabLabels$3,
102130
+ platformSidebar: platformSidebar$3
102110
102131
  };
102111
102132
 
102112
102133
  var accessTabAddAccess$2 = {
@@ -107154,6 +107175,26 @@ var ltiTabLabels$2 = {
107154
107175
  toolError: "Un problème est survenu avec l'outil LTI"
107155
107176
  }
107156
107177
  };
107178
+ var platformSidebar$2 = {
107179
+ collapseSidebar: "Réduire la barre latérale",
107180
+ expandSidebar: "Développer la barre latérale",
107181
+ mainNavigation: "Navigation principale",
107182
+ notifications: "Notifications",
107183
+ invites: "Invitations",
107184
+ management: "Gestion",
107185
+ integrations: "Intégrations",
107186
+ monetization: "Monétisation",
107187
+ advanced: "Avancé",
107188
+ support: "Support",
107189
+ accountTabOrganization: "Organisation",
107190
+ accountTabBilling: "Facturation",
107191
+ accountDescOrganization: "Gérez les paramètres de votre organisation.",
107192
+ accountDescManagement: "Gérez les utilisateurs et leurs permissions dans le système.",
107193
+ accountDescIntegrations: "Gérez vos intégrations avec d'autres services.",
107194
+ accountDescMonetization: "Configurez les paywalls, la tarification et les revenus.",
107195
+ accountDescAdvanced: "Configurez les paramètres avancés de l'organisation.",
107196
+ accountDescBilling: "Gérez votre facturation et votre abonnement."
107197
+ };
107157
107198
  var fr = {
107158
107199
  accessTabAddAccess: accessTabAddAccess$2,
107159
107200
  accessTabLabels: accessTabLabels$2,
@@ -107388,7 +107429,8 @@ var fr = {
107388
107429
  workflowsCreateWorkflowModal: workflowsCreateWorkflowModal$2,
107389
107430
  workflowsDeleteWorkflowModal: workflowsDeleteWorkflowModal$2,
107390
107431
  workflowsToolDialogs: workflowsToolDialogs$2,
107391
- ltiTabLabels: ltiTabLabels$2
107432
+ ltiTabLabels: ltiTabLabels$2,
107433
+ platformSidebar: platformSidebar$2
107392
107434
  };
107393
107435
 
107394
107436
  var accessTabAddAccess$1 = {
@@ -112436,6 +112478,26 @@ var ltiTabLabels$1 = {
112436
112478
  toolError: "Algo salió mal con la herramienta LTI"
112437
112479
  }
112438
112480
  };
112481
+ var platformSidebar$1 = {
112482
+ collapseSidebar: "Contraer barra lateral",
112483
+ expandSidebar: "Expandir barra lateral",
112484
+ mainNavigation: "Navegación principal",
112485
+ notifications: "Notificaciones",
112486
+ invites: "Invitaciones",
112487
+ management: "Gestión",
112488
+ integrations: "Integraciones",
112489
+ monetization: "Monetización",
112490
+ advanced: "Avanzado",
112491
+ support: "Soporte",
112492
+ accountTabOrganization: "Organización",
112493
+ accountTabBilling: "Facturación",
112494
+ accountDescOrganization: "Gestiona los ajustes de tu organización.",
112495
+ accountDescManagement: "Gestiona los usuarios y sus permisos en el sistema.",
112496
+ accountDescIntegrations: "Gestiona tus integraciones con otros servicios.",
112497
+ accountDescMonetization: "Configura muros de pago, precios e ingresos.",
112498
+ accountDescAdvanced: "Configura los ajustes avanzados de la organización.",
112499
+ accountDescBilling: "Gestiona tu facturación y suscripción."
112500
+ };
112439
112501
  var es = {
112440
112502
  accessTabAddAccess: accessTabAddAccess$1,
112441
112503
  accessTabLabels: accessTabLabels$1,
@@ -112670,7 +112732,8 @@ var es = {
112670
112732
  workflowsCreateWorkflowModal: workflowsCreateWorkflowModal$1,
112671
112733
  workflowsDeleteWorkflowModal: workflowsDeleteWorkflowModal$1,
112672
112734
  workflowsToolDialogs: workflowsToolDialogs$1,
112673
- ltiTabLabels: ltiTabLabels$1
112735
+ ltiTabLabels: ltiTabLabels$1,
112736
+ platformSidebar: platformSidebar$1
112674
112737
  };
112675
112738
 
112676
112739
  var accessTabAddAccess = {
@@ -117718,6 +117781,26 @@ var ltiTabLabels = {
117718
117781
  toolError: "LTI 工具出现问题"
117719
117782
  }
117720
117783
  };
117784
+ var platformSidebar = {
117785
+ collapseSidebar: "收起侧边栏",
117786
+ expandSidebar: "展开侧边栏",
117787
+ mainNavigation: "主导航",
117788
+ notifications: "通知",
117789
+ invites: "邀请",
117790
+ management: "管理",
117791
+ integrations: "集成",
117792
+ monetization: "变现",
117793
+ advanced: "高级",
117794
+ support: "支持",
117795
+ accountTabOrganization: "组织",
117796
+ accountTabBilling: "账单",
117797
+ accountDescOrganization: "管理您的组织设置。",
117798
+ accountDescManagement: "管理系统中的用户及其权限。",
117799
+ accountDescIntegrations: "管理与其他服务的集成。",
117800
+ accountDescMonetization: "配置付费墙、定价和收入。",
117801
+ accountDescAdvanced: "配置组织的高级设置。",
117802
+ accountDescBilling: "管理您的账单和订阅。"
117803
+ };
117721
117804
  var zh = {
117722
117805
  accessTabAddAccess: accessTabAddAccess,
117723
117806
  accessTabLabels: accessTabLabels,
@@ -117952,7 +118035,8 @@ var zh = {
117952
118035
  workflowsCreateWorkflowModal: workflowsCreateWorkflowModal,
117953
118036
  workflowsDeleteWorkflowModal: workflowsDeleteWorkflowModal,
117954
118037
  workflowsToolDialogs: workflowsToolDialogs,
117955
- ltiTabLabels: ltiTabLabels
118038
+ ltiTabLabels: ltiTabLabels,
118039
+ platformSidebar: platformSidebar
117956
118040
  };
117957
118041
 
117958
118042
  /**
@@ -122884,8 +122968,8 @@ function handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {
122884
122968
  }
122885
122969
 
122886
122970
  // src/arrow.tsx
122887
- var NAME$5 = "Arrow";
122888
- var Arrow$1 = React.forwardRef((props, forwardedRef) => {
122971
+ var NAME$6 = "Arrow";
122972
+ var Arrow$3 = React.forwardRef((props, forwardedRef) => {
122889
122973
  const { children, width = 10, height = 5, ...arrowProps } = props;
122890
122974
  return /* @__PURE__ */ jsx(
122891
122975
  Primitive$3.svg,
@@ -122900,23 +122984,23 @@ var Arrow$1 = React.forwardRef((props, forwardedRef) => {
122900
122984
  }
122901
122985
  );
122902
122986
  });
122903
- Arrow$1.displayName = NAME$5;
122904
- var Root$9 = Arrow$1;
122987
+ Arrow$3.displayName = NAME$6;
122988
+ var Root$b = Arrow$3;
122905
122989
 
122906
- var POPPER_NAME = "Popper";
122907
- var [createPopperContext, createPopperScope] = createContextScope$1(POPPER_NAME);
122908
- var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
122909
- var Popper = (props) => {
122990
+ var POPPER_NAME$1 = "Popper";
122991
+ var [createPopperContext$1, createPopperScope$1] = createContextScope$1(POPPER_NAME$1);
122992
+ var [PopperProvider$1, usePopperContext$1] = createPopperContext$1(POPPER_NAME$1);
122993
+ var Popper$1 = (props) => {
122910
122994
  const { __scopePopper, children } = props;
122911
122995
  const [anchor, setAnchor] = React.useState(null);
122912
- return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
122996
+ return /* @__PURE__ */ jsx(PopperProvider$1, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
122913
122997
  };
122914
- Popper.displayName = POPPER_NAME;
122915
- var ANCHOR_NAME$1 = "PopperAnchor";
122916
- var PopperAnchor = React.forwardRef(
122998
+ Popper$1.displayName = POPPER_NAME$1;
122999
+ var ANCHOR_NAME$2 = "PopperAnchor";
123000
+ var PopperAnchor$1 = React.forwardRef(
122917
123001
  (props, forwardedRef) => {
122918
123002
  const { __scopePopper, virtualRef, ...anchorProps } = props;
122919
- const context = usePopperContext(ANCHOR_NAME$1, __scopePopper);
123003
+ const context = usePopperContext$1(ANCHOR_NAME$2, __scopePopper);
122920
123004
  const ref = React.useRef(null);
122921
123005
  const composedRefs = useComposedRefs$1(forwardedRef, ref);
122922
123006
  React.useEffect(() => {
@@ -122925,10 +123009,10 @@ var PopperAnchor = React.forwardRef(
122925
123009
  return virtualRef ? null : /* @__PURE__ */ jsx(Primitive$3.div, { ...anchorProps, ref: composedRefs });
122926
123010
  }
122927
123011
  );
122928
- PopperAnchor.displayName = ANCHOR_NAME$1;
122929
- var CONTENT_NAME$3 = "PopperContent";
122930
- var [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME$3);
122931
- var PopperContent = React.forwardRef(
123012
+ PopperAnchor$1.displayName = ANCHOR_NAME$2;
123013
+ var CONTENT_NAME$6 = "PopperContent";
123014
+ var [PopperContentProvider$1, useContentContext$1] = createPopperContext$1(CONTENT_NAME$6);
123015
+ var PopperContent$1 = React.forwardRef(
122932
123016
  (props, forwardedRef) => {
122933
123017
  const {
122934
123018
  __scopePopper,
@@ -122946,7 +123030,7 @@ var PopperContent = React.forwardRef(
122946
123030
  onPlaced,
122947
123031
  ...contentProps
122948
123032
  } = props;
122949
- const context = usePopperContext(CONTENT_NAME$3, __scopePopper);
123033
+ const context = usePopperContext$1(CONTENT_NAME$6, __scopePopper);
122950
123034
  const [content, setContent] = React.useState(null);
122951
123035
  const composedRefs = useComposedRefs$1(forwardedRef, (node) => setContent(node));
122952
123036
  const [arrow, setArrow] = React.useState(null);
@@ -122959,7 +123043,7 @@ var PopperContent = React.forwardRef(
122959
123043
  const hasExplicitBoundaries = boundary.length > 0;
122960
123044
  const detectOverflowOptions = {
122961
123045
  padding: collisionPadding,
122962
- boundary: boundary.filter(isNotNull),
123046
+ boundary: boundary.filter(isNotNull$1),
122963
123047
  // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
122964
123048
  altBoundary: hasExplicitBoundaries
122965
123049
  };
@@ -122997,11 +123081,11 @@ var PopperContent = React.forwardRef(
122997
123081
  }
122998
123082
  }),
122999
123083
  arrow && arrow$2({ element: arrow, padding: arrowPadding }),
123000
- transformOrigin$1({ arrowWidth, arrowHeight }),
123084
+ transformOrigin$2({ arrowWidth, arrowHeight }),
123001
123085
  hideWhenDetached && hide({ strategy: "referenceHidden", ...detectOverflowOptions })
123002
123086
  ]
123003
123087
  });
123004
- const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
123088
+ const [placedSide, placedAlign] = getSideAndAlignFromPlacement$1(placement);
123005
123089
  const handlePlaced = useCallbackRef$2(onPlaced);
123006
123090
  useLayoutEffect2$1(() => {
123007
123091
  if (isPositioned) {
@@ -123040,7 +123124,7 @@ var PopperContent = React.forwardRef(
123040
123124
  },
123041
123125
  dir: props.dir,
123042
123126
  children: /* @__PURE__ */ jsx(
123043
- PopperContentProvider,
123127
+ PopperContentProvider$1,
123044
123128
  {
123045
123129
  scope: __scopePopper,
123046
123130
  placedSide,
@@ -123069,18 +123153,18 @@ var PopperContent = React.forwardRef(
123069
123153
  );
123070
123154
  }
123071
123155
  );
123072
- PopperContent.displayName = CONTENT_NAME$3;
123073
- var ARROW_NAME$2 = "PopperArrow";
123074
- var OPPOSITE_SIDE = {
123156
+ PopperContent$1.displayName = CONTENT_NAME$6;
123157
+ var ARROW_NAME$4 = "PopperArrow";
123158
+ var OPPOSITE_SIDE$1 = {
123075
123159
  top: "bottom",
123076
123160
  right: "left",
123077
123161
  bottom: "top",
123078
123162
  left: "right"
123079
123163
  };
123080
- var PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {
123164
+ var PopperArrow$1 = React.forwardRef(function PopperArrow2(props, forwardedRef) {
123081
123165
  const { __scopePopper, ...arrowProps } = props;
123082
- const contentContext = useContentContext(ARROW_NAME$2, __scopePopper);
123083
- const baseSide = OPPOSITE_SIDE[contentContext.placedSide];
123166
+ const contentContext = useContentContext$1(ARROW_NAME$4, __scopePopper);
123167
+ const baseSide = OPPOSITE_SIDE$1[contentContext.placedSide];
123084
123168
  return (
123085
123169
  // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
123086
123170
  // doesn't report size as we'd expect on SVG elements.
@@ -123109,7 +123193,7 @@ var PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {
123109
123193
  visibility: contentContext.shouldHideArrow ? "hidden" : void 0
123110
123194
  },
123111
123195
  children: /* @__PURE__ */ jsx(
123112
- Root$9,
123196
+ Root$b,
123113
123197
  {
123114
123198
  ...arrowProps,
123115
123199
  ref: forwardedRef,
@@ -123124,11 +123208,11 @@ var PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {
123124
123208
  )
123125
123209
  );
123126
123210
  });
123127
- PopperArrow.displayName = ARROW_NAME$2;
123128
- function isNotNull(value) {
123211
+ PopperArrow$1.displayName = ARROW_NAME$4;
123212
+ function isNotNull$1(value) {
123129
123213
  return value !== null;
123130
123214
  }
123131
- var transformOrigin$1 = (options) => ({
123215
+ var transformOrigin$2 = (options) => ({
123132
123216
  name: "transformOrigin",
123133
123217
  options,
123134
123218
  fn(data) {
@@ -123137,7 +123221,7 @@ var transformOrigin$1 = (options) => ({
123137
123221
  const isArrowHidden = cannotCenterArrow;
123138
123222
  const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;
123139
123223
  const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;
123140
- const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
123224
+ const [placedSide, placedAlign] = getSideAndAlignFromPlacement$1(placement);
123141
123225
  const noArrowAlign = { start: "0%", center: "50%", end: "100%" }[placedAlign];
123142
123226
  const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;
123143
123227
  const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;
@@ -123159,24 +123243,24 @@ var transformOrigin$1 = (options) => ({
123159
123243
  return { data: { x, y } };
123160
123244
  }
123161
123245
  });
123162
- function getSideAndAlignFromPlacement(placement) {
123246
+ function getSideAndAlignFromPlacement$1(placement) {
123163
123247
  const [side, align = "center"] = placement.split("-");
123164
123248
  return [side, align];
123165
123249
  }
123166
- var Root2$3 = Popper;
123167
- var Anchor$1 = PopperAnchor;
123168
- var Content = PopperContent;
123169
- var Arrow = PopperArrow;
123250
+ var Root2$5 = Popper$1;
123251
+ var Anchor$2 = PopperAnchor$1;
123252
+ var Content$1 = PopperContent$1;
123253
+ var Arrow$2 = PopperArrow$1;
123170
123254
 
123171
- var PORTAL_NAME$3 = "Portal";
123172
- var Portal$2 = React.forwardRef((props, forwardedRef) => {
123255
+ var PORTAL_NAME$4 = "Portal";
123256
+ var Portal$3 = React.forwardRef((props, forwardedRef) => {
123173
123257
  const { container: containerProp, ...portalProps } = props;
123174
123258
  const [mounted, setMounted] = React.useState(false);
123175
123259
  useLayoutEffect2$1(() => setMounted(true), []);
123176
123260
  const container = containerProp || mounted && globalThis?.document?.body;
123177
123261
  return container ? ReactDOM__default.createPortal(/* @__PURE__ */ jsx(Primitive$3.div, { ...portalProps, ref: forwardedRef }), container) : null;
123178
123262
  });
123179
- Portal$2.displayName = PORTAL_NAME$3;
123263
+ Portal$3.displayName = PORTAL_NAME$4;
123180
123264
 
123181
123265
  function useStateMachine$2(initialState, machine) {
123182
123266
  return React.useReducer((state, event) => {
@@ -123317,7 +123401,7 @@ var VISUALLY_HIDDEN_STYLES = Object.freeze({
123317
123401
  whiteSpace: "nowrap",
123318
123402
  wordWrap: "normal"
123319
123403
  });
123320
- var NAME$4 = "VisuallyHidden";
123404
+ var NAME$5 = "VisuallyHidden";
123321
123405
  var VisuallyHidden = React.forwardRef(
123322
123406
  (props, forwardedRef) => {
123323
123407
  return /* @__PURE__ */ jsx(
@@ -123330,13 +123414,13 @@ var VisuallyHidden = React.forwardRef(
123330
123414
  );
123331
123415
  }
123332
123416
  );
123333
- VisuallyHidden.displayName = NAME$4;
123334
- var Root$8 = VisuallyHidden;
123417
+ VisuallyHidden.displayName = NAME$5;
123418
+ var Root$a = VisuallyHidden;
123335
123419
 
123336
123420
  var [createTooltipContext] = createContextScope$1("Tooltip", [
123337
- createPopperScope
123421
+ createPopperScope$1
123338
123422
  ]);
123339
- var usePopperScope$1 = createPopperScope();
123423
+ var usePopperScope$2 = createPopperScope$1();
123340
123424
  var PROVIDER_NAME = "TooltipProvider";
123341
123425
  var DEFAULT_DELAY_DURATION = 700;
123342
123426
  var TOOLTIP_OPEN = "tooltip.open";
@@ -123396,7 +123480,7 @@ var Tooltip$2 = (props) => {
123396
123480
  delayDuration: delayDurationProp
123397
123481
  } = props;
123398
123482
  const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);
123399
- const popperScope = usePopperScope$1(__scopeTooltip);
123483
+ const popperScope = usePopperScope$2(__scopeTooltip);
123400
123484
  const [trigger, setTrigger] = React.useState(null);
123401
123485
  const contentId = useId$1();
123402
123486
  const openTimerRef = React.useRef(0);
@@ -123447,7 +123531,7 @@ var Tooltip$2 = (props) => {
123447
123531
  }
123448
123532
  };
123449
123533
  }, []);
123450
- return /* @__PURE__ */ jsx(Root2$3, { ...popperScope, children: /* @__PURE__ */ jsx(
123534
+ return /* @__PURE__ */ jsx(Root2$5, { ...popperScope, children: /* @__PURE__ */ jsx(
123451
123535
  TooltipContextProvider,
123452
123536
  {
123453
123537
  scope: __scopeTooltip,
@@ -123476,13 +123560,13 @@ var Tooltip$2 = (props) => {
123476
123560
  ) });
123477
123561
  };
123478
123562
  Tooltip$2.displayName = TOOLTIP_NAME;
123479
- var TRIGGER_NAME$2 = "TooltipTrigger";
123563
+ var TRIGGER_NAME$4 = "TooltipTrigger";
123480
123564
  var TooltipTrigger$1 = React.forwardRef(
123481
123565
  (props, forwardedRef) => {
123482
123566
  const { __scopeTooltip, ...triggerProps } = props;
123483
- const context = useTooltipContext(TRIGGER_NAME$2, __scopeTooltip);
123484
- const providerContext = useTooltipProviderContext(TRIGGER_NAME$2, __scopeTooltip);
123485
- const popperScope = usePopperScope$1(__scopeTooltip);
123567
+ const context = useTooltipContext(TRIGGER_NAME$4, __scopeTooltip);
123568
+ const providerContext = useTooltipProviderContext(TRIGGER_NAME$4, __scopeTooltip);
123569
+ const popperScope = usePopperScope$2(__scopeTooltip);
123486
123570
  const ref = React.useRef(null);
123487
123571
  const composedRefs = useComposedRefs$1(forwardedRef, ref, context.onTriggerChange);
123488
123572
  const isPointerDownRef = React.useRef(false);
@@ -123491,7 +123575,7 @@ var TooltipTrigger$1 = React.forwardRef(
123491
123575
  React.useEffect(() => {
123492
123576
  return () => document.removeEventListener("pointerup", handlePointerUp);
123493
123577
  }, [handlePointerUp]);
123494
- return /* @__PURE__ */ jsx(Anchor$1, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(
123578
+ return /* @__PURE__ */ jsx(Anchor$2, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(
123495
123579
  Primitive$3.button,
123496
123580
  {
123497
123581
  "aria-describedby": context.open ? context.contentId : void 0,
@@ -123525,29 +123609,29 @@ var TooltipTrigger$1 = React.forwardRef(
123525
123609
  ) });
123526
123610
  }
123527
123611
  );
123528
- TooltipTrigger$1.displayName = TRIGGER_NAME$2;
123529
- var PORTAL_NAME$2 = "TooltipPortal";
123530
- var [PortalProvider$1, usePortalContext$1] = createTooltipContext(PORTAL_NAME$2, {
123612
+ TooltipTrigger$1.displayName = TRIGGER_NAME$4;
123613
+ var PORTAL_NAME$3 = "TooltipPortal";
123614
+ var [PortalProvider$2, usePortalContext$2] = createTooltipContext(PORTAL_NAME$3, {
123531
123615
  forceMount: void 0
123532
123616
  });
123533
123617
  var TooltipPortal = (props) => {
123534
123618
  const { __scopeTooltip, forceMount, children, container } = props;
123535
- const context = useTooltipContext(PORTAL_NAME$2, __scopeTooltip);
123536
- return /* @__PURE__ */ jsx(PortalProvider$1, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence$1, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$2, { asChild: true, container, children }) }) });
123619
+ const context = useTooltipContext(PORTAL_NAME$3, __scopeTooltip);
123620
+ return /* @__PURE__ */ jsx(PortalProvider$2, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence$1, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$3, { asChild: true, container, children }) }) });
123537
123621
  };
123538
- TooltipPortal.displayName = PORTAL_NAME$2;
123539
- var CONTENT_NAME$2 = "TooltipContent";
123622
+ TooltipPortal.displayName = PORTAL_NAME$3;
123623
+ var CONTENT_NAME$5 = "TooltipContent";
123540
123624
  var TooltipContent$1 = React.forwardRef(
123541
123625
  (props, forwardedRef) => {
123542
- const portalContext = usePortalContext$1(CONTENT_NAME$2, props.__scopeTooltip);
123626
+ const portalContext = usePortalContext$2(CONTENT_NAME$5, props.__scopeTooltip);
123543
123627
  const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
123544
- const context = useTooltipContext(CONTENT_NAME$2, props.__scopeTooltip);
123628
+ const context = useTooltipContext(CONTENT_NAME$5, props.__scopeTooltip);
123545
123629
  return /* @__PURE__ */ jsx(Presence$1, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });
123546
123630
  }
123547
123631
  );
123548
123632
  var TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {
123549
- const context = useTooltipContext(CONTENT_NAME$2, props.__scopeTooltip);
123550
- const providerContext = useTooltipProviderContext(CONTENT_NAME$2, props.__scopeTooltip);
123633
+ const context = useTooltipContext(CONTENT_NAME$5, props.__scopeTooltip);
123634
+ const providerContext = useTooltipProviderContext(CONTENT_NAME$5, props.__scopeTooltip);
123551
123635
  const ref = React.useRef(null);
123552
123636
  const composedRefs = useComposedRefs$1(forwardedRef, ref);
123553
123637
  const [pointerGraceArea, setPointerGraceArea] = React.useState(null);
@@ -123618,8 +123702,8 @@ var TooltipContentImpl = React.forwardRef(
123618
123702
  onPointerDownOutside,
123619
123703
  ...contentProps
123620
123704
  } = props;
123621
- const context = useTooltipContext(CONTENT_NAME$2, __scopeTooltip);
123622
- const popperScope = usePopperScope$1(__scopeTooltip);
123705
+ const context = useTooltipContext(CONTENT_NAME$5, __scopeTooltip);
123706
+ const popperScope = usePopperScope$2(__scopeTooltip);
123623
123707
  const { onClose } = context;
123624
123708
  React.useEffect(() => {
123625
123709
  document.addEventListener(TOOLTIP_OPEN, onClose);
@@ -123645,7 +123729,7 @@ var TooltipContentImpl = React.forwardRef(
123645
123729
  onFocusOutside: (event) => event.preventDefault(),
123646
123730
  onDismiss: onClose,
123647
123731
  children: /* @__PURE__ */ jsxs(
123648
- Content,
123732
+ Content$1,
123649
123733
  {
123650
123734
  "data-state": context.stateAttribute,
123651
123735
  ...popperScope,
@@ -123664,7 +123748,7 @@ var TooltipContentImpl = React.forwardRef(
123664
123748
  },
123665
123749
  children: [
123666
123750
  /* @__PURE__ */ jsx(Slottable$2, { children }),
123667
- /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(Root$8, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
123751
+ /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(Root$a, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
123668
123752
  ]
123669
123753
  }
123670
123754
  )
@@ -123672,20 +123756,20 @@ var TooltipContentImpl = React.forwardRef(
123672
123756
  );
123673
123757
  }
123674
123758
  );
123675
- TooltipContent$1.displayName = CONTENT_NAME$2;
123676
- var ARROW_NAME$1 = "TooltipArrow";
123759
+ TooltipContent$1.displayName = CONTENT_NAME$5;
123760
+ var ARROW_NAME$3 = "TooltipArrow";
123677
123761
  var TooltipArrow = React.forwardRef(
123678
123762
  (props, forwardedRef) => {
123679
123763
  const { __scopeTooltip, ...arrowProps } = props;
123680
- const popperScope = usePopperScope$1(__scopeTooltip);
123764
+ const popperScope = usePopperScope$2(__scopeTooltip);
123681
123765
  const visuallyHiddenContentContext = useVisuallyHiddenContentContext(
123682
- ARROW_NAME$1,
123766
+ ARROW_NAME$3,
123683
123767
  __scopeTooltip
123684
123768
  );
123685
- return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
123769
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(Arrow$2, { ...popperScope, ...arrowProps, ref: forwardedRef });
123686
123770
  }
123687
123771
  );
123688
- TooltipArrow.displayName = ARROW_NAME$1;
123772
+ TooltipArrow.displayName = ARROW_NAME$3;
123689
123773
  function getExitSideFromRect(point, rect) {
123690
123774
  const top = Math.abs(rect.top - point.y);
123691
123775
  const bottom = Math.abs(rect.bottom - point.y);
@@ -123803,9 +123887,9 @@ function getHullPresorted(points) {
123803
123887
  }
123804
123888
  var Provider = TooltipProvider$1;
123805
123889
  var Root3 = Tooltip$2;
123806
- var Trigger$1 = TooltipTrigger$1;
123807
- var Portal$1 = TooltipPortal;
123808
- var Content2$2 = TooltipContent$1;
123890
+ var Trigger$2 = TooltipTrigger$1;
123891
+ var Portal$2 = TooltipPortal;
123892
+ var Content2$3 = TooltipContent$1;
123809
123893
  var Arrow2 = TooltipArrow;
123810
123894
 
123811
123895
  function TooltipProvider({ delayDuration = 0, ...props }) {
@@ -123815,10 +123899,10 @@ function Tooltip$1({ ...props }) {
123815
123899
  return (jsx(TooltipProvider, { children: jsx(Root3, { "data-slot": "tooltip", ...props }) }));
123816
123900
  }
123817
123901
  function TooltipTrigger({ ...props }) {
123818
- return jsx(Trigger$1, { "data-slot": "tooltip-trigger", ...props });
123902
+ return jsx(Trigger$2, { "data-slot": "tooltip-trigger", ...props });
123819
123903
  }
123820
123904
  function TooltipContent({ className, sideOffset = 0, children, ...props }) {
123821
- return (jsx(Portal$1, { children: jsxs(Content2$2, { "data-slot": "tooltip-content", sideOffset: sideOffset, className: cn("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance", className), ...props, children: [children, jsx(Arrow2, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })] }) }));
123905
+ return (jsx(Portal$2, { children: jsxs(Content2$3, { "data-slot": "tooltip-content", sideOffset: sideOffset, className: cn("bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance", className), ...props, children: [children, jsx(Arrow2, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })] }) }));
123822
123906
  }
123823
123907
 
123824
123908
  // packages/react/context/src/createContext.tsx
@@ -124108,11 +124192,11 @@ function getInvalidValueError(propValue, componentName) {
124108
124192
 
124109
124193
  Defaulting to \`null\`.`;
124110
124194
  }
124111
- var Root$7 = Progress$1;
124195
+ var Root$9 = Progress$1;
124112
124196
  var Indicator$2 = ProgressIndicator;
124113
124197
 
124114
- const Progress = React.forwardRef(({ className, value, ...props }, ref) => (jsx(Root$7, { ref: ref, className: cn('bg-secondary relative h-4 w-full overflow-hidden rounded-full', className), ...props, children: jsx(Indicator$2, { className: "bg-primary h-full w-full flex-1 transition-all", style: { transform: `translateX(-${100 - (value || 0)}%)` } }) })));
124115
- Progress.displayName = Root$7.displayName;
124198
+ const Progress = React.forwardRef(({ className, value, ...props }, ref) => (jsx(Root$9, { ref: ref, className: cn('bg-secondary relative h-4 w-full overflow-hidden rounded-full', className), ...props, children: jsx(Indicator$2, { className: "bg-primary h-full w-full flex-1 transition-all", style: { transform: `translateX(-${100 - (value || 0)}%)` } }) })));
124199
+ Progress.displayName = Root$9.displayName;
124116
124200
 
124117
124201
  var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
124118
124202
  // @__NO_SIDE_EFFECTS__
@@ -124136,7 +124220,7 @@ var AlertDialog$1 = (props) => {
124136
124220
  return /* @__PURE__ */ jsx(DialogPrimitive.Root, { ...dialogScope, ...alertDialogProps, modal: true });
124137
124221
  };
124138
124222
  AlertDialog$1.displayName = ROOT_NAME;
124139
- var TRIGGER_NAME$1 = "AlertDialogTrigger";
124223
+ var TRIGGER_NAME$3 = "AlertDialogTrigger";
124140
124224
  var AlertDialogTrigger = React.forwardRef(
124141
124225
  (props, forwardedRef) => {
124142
124226
  const { __scopeAlertDialog, ...triggerProps } = props;
@@ -124144,14 +124228,14 @@ var AlertDialogTrigger = React.forwardRef(
124144
124228
  return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { ...dialogScope, ...triggerProps, ref: forwardedRef });
124145
124229
  }
124146
124230
  );
124147
- AlertDialogTrigger.displayName = TRIGGER_NAME$1;
124148
- var PORTAL_NAME$1 = "AlertDialogPortal";
124231
+ AlertDialogTrigger.displayName = TRIGGER_NAME$3;
124232
+ var PORTAL_NAME$2 = "AlertDialogPortal";
124149
124233
  var AlertDialogPortal$1 = (props) => {
124150
124234
  const { __scopeAlertDialog, ...portalProps } = props;
124151
124235
  const dialogScope = useDialogScope(__scopeAlertDialog);
124152
124236
  return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { ...dialogScope, ...portalProps });
124153
124237
  };
124154
- AlertDialogPortal$1.displayName = PORTAL_NAME$1;
124238
+ AlertDialogPortal$1.displayName = PORTAL_NAME$2;
124155
124239
  var OVERLAY_NAME = "AlertDialogOverlay";
124156
124240
  var AlertDialogOverlay$1 = React.forwardRef(
124157
124241
  (props, forwardedRef) => {
@@ -124161,8 +124245,8 @@ var AlertDialogOverlay$1 = React.forwardRef(
124161
124245
  }
124162
124246
  );
124163
124247
  AlertDialogOverlay$1.displayName = OVERLAY_NAME;
124164
- var CONTENT_NAME$1 = "AlertDialogContent";
124165
- var [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME$1);
124248
+ var CONTENT_NAME$4 = "AlertDialogContent";
124249
+ var [AlertDialogContentProvider, useAlertDialogContentContext] = createAlertDialogContext(CONTENT_NAME$4);
124166
124250
  var Slottable = createSlottable("AlertDialogContent");
124167
124251
  var AlertDialogContent$1 = React.forwardRef(
124168
124252
  (props, forwardedRef) => {
@@ -124174,7 +124258,7 @@ var AlertDialogContent$1 = React.forwardRef(
124174
124258
  return /* @__PURE__ */ jsx(
124175
124259
  DialogPrimitive.WarningProvider,
124176
124260
  {
124177
- contentName: CONTENT_NAME$1,
124261
+ contentName: CONTENT_NAME$4,
124178
124262
  titleName: TITLE_NAME,
124179
124263
  docsSlug: "alert-dialog",
124180
124264
  children: /* @__PURE__ */ jsx(AlertDialogContentProvider, { scope: __scopeAlertDialog, cancelRef, children: /* @__PURE__ */ jsxs(
@@ -124200,7 +124284,7 @@ var AlertDialogContent$1 = React.forwardRef(
124200
124284
  );
124201
124285
  }
124202
124286
  );
124203
- AlertDialogContent$1.displayName = CONTENT_NAME$1;
124287
+ AlertDialogContent$1.displayName = CONTENT_NAME$4;
124204
124288
  var TITLE_NAME = "AlertDialogTitle";
124205
124289
  var AlertDialogTitle$1 = React.forwardRef(
124206
124290
  (props, forwardedRef) => {
@@ -124238,11 +124322,11 @@ var AlertDialogCancel$1 = React.forwardRef(
124238
124322
  );
124239
124323
  AlertDialogCancel$1.displayName = CANCEL_NAME;
124240
124324
  var DescriptionWarning = ({ contentRef }) => {
124241
- const MESSAGE = `\`${CONTENT_NAME$1}\` requires a description for the component to be accessible for screen reader users.
124325
+ const MESSAGE = `\`${CONTENT_NAME$4}\` requires a description for the component to be accessible for screen reader users.
124242
124326
 
124243
- You can add a description to the \`${CONTENT_NAME$1}\` by passing a \`${DESCRIPTION_NAME}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
124327
+ You can add a description to the \`${CONTENT_NAME$4}\` by passing a \`${DESCRIPTION_NAME}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
124244
124328
 
124245
- Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${CONTENT_NAME$1}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
124329
+ Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${CONTENT_NAME$4}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
124246
124330
 
124247
124331
  For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;
124248
124332
  React.useEffect(() => {
@@ -124253,21 +124337,21 @@ For more information, see https://radix-ui.com/primitives/docs/components/alert-
124253
124337
  }, [MESSAGE, contentRef]);
124254
124338
  return null;
124255
124339
  };
124256
- var Root2$2 = AlertDialog$1;
124340
+ var Root2$4 = AlertDialog$1;
124257
124341
  var Portal2 = AlertDialogPortal$1;
124258
124342
  var Overlay2 = AlertDialogOverlay$1;
124259
- var Content2$1 = AlertDialogContent$1;
124343
+ var Content2$2 = AlertDialogContent$1;
124260
124344
  var Action = AlertDialogAction$1;
124261
124345
  var Cancel = AlertDialogCancel$1;
124262
124346
  var Title2 = AlertDialogTitle$1;
124263
124347
  var Description2 = AlertDialogDescription$1;
124264
124348
 
124265
- const AlertDialog = Root2$2;
124349
+ const AlertDialog = Root2$4;
124266
124350
  const AlertDialogPortal = Portal2;
124267
124351
  const AlertDialogOverlay = React.forwardRef(({ className, ...props }, ref) => (jsx(Overlay2, { className: cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80', className), ...props, ref: ref })));
124268
124352
  AlertDialogOverlay.displayName = Overlay2.displayName;
124269
- const AlertDialogContent = React.forwardRef(({ className, ...props }, ref) => (jsxs(AlertDialogPortal, { children: [jsx(AlertDialogOverlay, {}), jsx(Content2$1, { ref: ref, className: cn('bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg', className), ...props })] })));
124270
- AlertDialogContent.displayName = Content2$1.displayName;
124353
+ const AlertDialogContent = React.forwardRef(({ className, ...props }, ref) => (jsxs(AlertDialogPortal, { children: [jsx(AlertDialogOverlay, {}), jsx(Content2$2, { ref: ref, className: cn('bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 sm:rounded-lg', className), ...props })] })));
124354
+ AlertDialogContent.displayName = Content2$2.displayName;
124271
124355
  const AlertDialogHeader = ({ className, ...props }) => (jsx("div", { className: cn('flex flex-col space-y-2 text-center sm:text-left', className), ...props }));
124272
124356
  AlertDialogHeader.displayName = 'AlertDialogHeader';
124273
124357
  const AlertDialogFooter = ({ className, ...props }) => (jsx("div", { className: cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className), ...props }));
@@ -125170,7 +125254,7 @@ var Primitive = NODES.reduce((primitive, node) => {
125170
125254
  return { ...primitive, [node]: Node };
125171
125255
  }, {});
125172
125256
 
125173
- var NAME$3 = "Label";
125257
+ var NAME$4 = "Label";
125174
125258
  var Label$2 = React.forwardRef((props, forwardedRef) => {
125175
125259
  return /* @__PURE__ */ jsx(
125176
125260
  Primitive.label,
@@ -125186,12 +125270,12 @@ var Label$2 = React.forwardRef((props, forwardedRef) => {
125186
125270
  }
125187
125271
  );
125188
125272
  });
125189
- Label$2.displayName = NAME$3;
125190
- var Root$6 = Label$2;
125273
+ Label$2.displayName = NAME$4;
125274
+ var Root$8 = Label$2;
125191
125275
 
125192
125276
  const labelVariants = cva("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70");
125193
- const Label$1 = React.forwardRef(({ className, ...props }, ref) => (jsx(Root$6, { ref: ref, className: cn(labelVariants(), className), ...props })));
125194
- Label$1.displayName = Root$6.displayName;
125277
+ const Label$1 = React.forwardRef(({ className, ...props }, ref) => (jsx(Root$8, { ref: ref, className: cn(labelVariants(), className), ...props })));
125278
+ Label$1.displayName = Root$8.displayName;
125195
125279
 
125196
125280
  var dayjs_min = {exports: {}};
125197
125281
 
@@ -173815,7 +173899,7 @@ var Checkbox$1 = React.forwardRef(
173815
173899
  role: "checkbox",
173816
173900
  "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
173817
173901
  "aria-required": required,
173818
- "data-state": getState$2(checked),
173902
+ "data-state": getState$3(checked),
173819
173903
  "data-disabled": disabled ? "" : void 0,
173820
173904
  disabled,
173821
173905
  value,
@@ -173860,7 +173944,7 @@ var CheckboxIndicator = React.forwardRef(
173860
173944
  return /* @__PURE__ */ jsx(Presence$1, { present: forceMount || isIndeterminate(context.state) || context.state === true, children: /* @__PURE__ */ jsx(
173861
173945
  Primitive$3.span,
173862
173946
  {
173863
- "data-state": getState$2(context.state),
173947
+ "data-state": getState$3(context.state),
173864
173948
  "data-disabled": context.disabled ? "" : void 0,
173865
173949
  ...indicatorProps,
173866
173950
  ref: forwardedRef,
@@ -173926,14 +174010,14 @@ CheckboxBubbleInput.displayName = BUBBLE_INPUT_NAME;
173926
174010
  function isIndeterminate(checked) {
173927
174011
  return checked === "indeterminate";
173928
174012
  }
173929
- function getState$2(checked) {
174013
+ function getState$3(checked) {
173930
174014
  return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
173931
174015
  }
173932
- var Root$5 = Checkbox$1;
174016
+ var Root$7 = Checkbox$1;
173933
174017
  var Indicator$1 = CheckboxIndicator;
173934
174018
 
173935
- const Checkbox = React.forwardRef(({ className, ...props }, ref) => (jsx(Root$5, { ref: ref, className: cn("peer border-primary focus-visible:ring-ring h-4 w-4 shrink-0 rounded-sm border shadow-sm focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-blue-500 data-[state=checked]:text-white", className), ...props, children: jsx(Indicator$1, { className: cn("flex items-center justify-center text-current"), children: jsx(Check, { className: "h-4 w-4" }) }) })));
173936
- Checkbox.displayName = Root$5.displayName;
174019
+ const Checkbox = React.forwardRef(({ className, ...props }, ref) => (jsx(Root$7, { ref: ref, className: cn("peer border-primary focus-visible:ring-ring h-4 w-4 shrink-0 rounded-sm border shadow-sm focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-blue-500 data-[state=checked]:text-white", className), ...props, children: jsx(Indicator$1, { className: cn("flex items-center justify-center text-current"), children: jsx(Check, { className: "h-4 w-4" }) }) })));
174020
+ Checkbox.displayName = Root$7.displayName;
173937
174021
 
173938
174022
  function CoursesTab({ tenant, currentPage, itemsPerPage, hasManageUsersPermission = false, }) {
173939
174023
  var _a;
@@ -174851,9 +174935,9 @@ const AdvancedPagination = ({ currentPage, totalPages, onPageChange, totalCount,
174851
174935
 
174852
174936
  var POPOVER_NAME = "Popover";
174853
174937
  var [createPopoverContext] = createContextScope$1(POPOVER_NAME, [
174854
- createPopperScope$1
174938
+ createPopperScope$2
174855
174939
  ]);
174856
- var usePopperScope = createPopperScope$1();
174940
+ var usePopperScope$1 = createPopperScope$2();
174857
174941
  var [PopoverProvider, usePopoverContext] = createPopoverContext(POPOVER_NAME);
174858
174942
  var Popover$1 = (props) => {
174859
174943
  const {
@@ -174864,7 +174948,7 @@ var Popover$1 = (props) => {
174864
174948
  onOpenChange,
174865
174949
  modal = false
174866
174950
  } = props;
174867
- const popperScope = usePopperScope(__scopePopover);
174951
+ const popperScope = usePopperScope$1(__scopePopover);
174868
174952
  const triggerRef = React.useRef(null);
174869
174953
  const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);
174870
174954
  const [open = false, setOpen] = useControllableState$2({
@@ -174872,7 +174956,7 @@ var Popover$1 = (props) => {
174872
174956
  defaultProp: defaultOpen,
174873
174957
  onChange: onOpenChange
174874
174958
  });
174875
- return /* @__PURE__ */ jsx(Root2$8, { ...popperScope, children: /* @__PURE__ */ jsx(
174959
+ return /* @__PURE__ */ jsx(Root2$a, { ...popperScope, children: /* @__PURE__ */ jsx(
174876
174960
  PopoverProvider,
174877
174961
  {
174878
174962
  scope: __scopePopover,
@@ -174890,27 +174974,27 @@ var Popover$1 = (props) => {
174890
174974
  ) });
174891
174975
  };
174892
174976
  Popover$1.displayName = POPOVER_NAME;
174893
- var ANCHOR_NAME = "PopoverAnchor";
174977
+ var ANCHOR_NAME$1 = "PopoverAnchor";
174894
174978
  var PopoverAnchor$1 = React.forwardRef(
174895
174979
  (props, forwardedRef) => {
174896
174980
  const { __scopePopover, ...anchorProps } = props;
174897
- const context = usePopoverContext(ANCHOR_NAME, __scopePopover);
174898
- const popperScope = usePopperScope(__scopePopover);
174981
+ const context = usePopoverContext(ANCHOR_NAME$1, __scopePopover);
174982
+ const popperScope = usePopperScope$1(__scopePopover);
174899
174983
  const { onCustomAnchorAdd, onCustomAnchorRemove } = context;
174900
174984
  React.useEffect(() => {
174901
174985
  onCustomAnchorAdd();
174902
174986
  return () => onCustomAnchorRemove();
174903
174987
  }, [onCustomAnchorAdd, onCustomAnchorRemove]);
174904
- return /* @__PURE__ */ jsx(Anchor$2, { ...popperScope, ...anchorProps, ref: forwardedRef });
174988
+ return /* @__PURE__ */ jsx(Anchor$3, { ...popperScope, ...anchorProps, ref: forwardedRef });
174905
174989
  }
174906
174990
  );
174907
- PopoverAnchor$1.displayName = ANCHOR_NAME;
174908
- var TRIGGER_NAME = "PopoverTrigger";
174991
+ PopoverAnchor$1.displayName = ANCHOR_NAME$1;
174992
+ var TRIGGER_NAME$2 = "PopoverTrigger";
174909
174993
  var PopoverTrigger$1 = React.forwardRef(
174910
174994
  (props, forwardedRef) => {
174911
174995
  const { __scopePopover, ...triggerProps } = props;
174912
- const context = usePopoverContext(TRIGGER_NAME, __scopePopover);
174913
- const popperScope = usePopperScope(__scopePopover);
174996
+ const context = usePopoverContext(TRIGGER_NAME$2, __scopePopover);
174997
+ const popperScope = usePopperScope$1(__scopePopover);
174914
174998
  const composedTriggerRef = useComposedRefs$1(forwardedRef, context.triggerRef);
174915
174999
  const trigger = /* @__PURE__ */ jsx(
174916
175000
  Primitive$4.button,
@@ -174919,40 +175003,40 @@ var PopoverTrigger$1 = React.forwardRef(
174919
175003
  "aria-haspopup": "dialog",
174920
175004
  "aria-expanded": context.open,
174921
175005
  "aria-controls": context.contentId,
174922
- "data-state": getState$1(context.open),
175006
+ "data-state": getState$2(context.open),
174923
175007
  ...triggerProps,
174924
175008
  ref: composedTriggerRef,
174925
175009
  onClick: composeEventHandlers$2(props.onClick, context.onOpenToggle)
174926
175010
  }
174927
175011
  );
174928
- return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(Anchor$2, { asChild: true, ...popperScope, children: trigger });
175012
+ return context.hasCustomAnchor ? trigger : /* @__PURE__ */ jsx(Anchor$3, { asChild: true, ...popperScope, children: trigger });
174929
175013
  }
174930
175014
  );
174931
- PopoverTrigger$1.displayName = TRIGGER_NAME;
174932
- var PORTAL_NAME = "PopoverPortal";
174933
- var [PortalProvider, usePortalContext] = createPopoverContext(PORTAL_NAME, {
175015
+ PopoverTrigger$1.displayName = TRIGGER_NAME$2;
175016
+ var PORTAL_NAME$1 = "PopoverPortal";
175017
+ var [PortalProvider$1, usePortalContext$1] = createPopoverContext(PORTAL_NAME$1, {
174934
175018
  forceMount: void 0
174935
175019
  });
174936
175020
  var PopoverPortal = (props) => {
174937
175021
  const { __scopePopover, forceMount, children, container } = props;
174938
- const context = usePopoverContext(PORTAL_NAME, __scopePopover);
174939
- return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence$3, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$6, { asChild: true, container, children }) }) });
175022
+ const context = usePopoverContext(PORTAL_NAME$1, __scopePopover);
175023
+ return /* @__PURE__ */ jsx(PortalProvider$1, { scope: __scopePopover, forceMount, children: /* @__PURE__ */ jsx(Presence$3, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$7, { asChild: true, container, children }) }) });
174940
175024
  };
174941
- PopoverPortal.displayName = PORTAL_NAME;
174942
- var CONTENT_NAME = "PopoverContent";
175025
+ PopoverPortal.displayName = PORTAL_NAME$1;
175026
+ var CONTENT_NAME$3 = "PopoverContent";
174943
175027
  var PopoverContent$1 = React.forwardRef(
174944
175028
  (props, forwardedRef) => {
174945
- const portalContext = usePortalContext(CONTENT_NAME, props.__scopePopover);
175029
+ const portalContext = usePortalContext$1(CONTENT_NAME$3, props.__scopePopover);
174946
175030
  const { forceMount = portalContext.forceMount, ...contentProps } = props;
174947
- const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
175031
+ const context = usePopoverContext(CONTENT_NAME$3, props.__scopePopover);
174948
175032
  return /* @__PURE__ */ jsx(Presence$3, { present: forceMount || context.open, children: context.modal ? /* @__PURE__ */ jsx(PopoverContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(PopoverContentNonModal, { ...contentProps, ref: forwardedRef }) });
174949
175033
  }
174950
175034
  );
174951
- PopoverContent$1.displayName = CONTENT_NAME;
175035
+ PopoverContent$1.displayName = CONTENT_NAME$3;
174952
175036
  var Slot = createSlot$1("PopoverContent.RemoveScroll");
174953
175037
  var PopoverContentModal = React.forwardRef(
174954
175038
  (props, forwardedRef) => {
174955
- const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
175039
+ const context = usePopoverContext(CONTENT_NAME$3, props.__scopePopover);
174956
175040
  const contentRef = React.useRef(null);
174957
175041
  const composedRefs = useComposedRefs$1(forwardedRef, contentRef);
174958
175042
  const isRightClickOutsideRef = React.useRef(false);
@@ -174992,7 +175076,7 @@ var PopoverContentModal = React.forwardRef(
174992
175076
  );
174993
175077
  var PopoverContentNonModal = React.forwardRef(
174994
175078
  (props, forwardedRef) => {
174995
- const context = usePopoverContext(CONTENT_NAME, props.__scopePopover);
175079
+ const context = usePopoverContext(CONTENT_NAME$3, props.__scopePopover);
174996
175080
  const hasInteractedOutsideRef = React.useRef(false);
174997
175081
  const hasPointerDownOutsideRef = React.useRef(false);
174998
175082
  return /* @__PURE__ */ jsx(
@@ -175044,8 +175128,8 @@ var PopoverContentImpl = React.forwardRef(
175044
175128
  onInteractOutside,
175045
175129
  ...contentProps
175046
175130
  } = props;
175047
- const context = usePopoverContext(CONTENT_NAME, __scopePopover);
175048
- const popperScope = usePopperScope(__scopePopover);
175131
+ const context = usePopoverContext(CONTENT_NAME$3, __scopePopover);
175132
+ const popperScope = usePopperScope$1(__scopePopover);
175049
175133
  useFocusGuards();
175050
175134
  return /* @__PURE__ */ jsx(
175051
175135
  FocusScope,
@@ -175066,9 +175150,9 @@ var PopoverContentImpl = React.forwardRef(
175066
175150
  onFocusOutside,
175067
175151
  onDismiss: () => context.onOpenChange(false),
175068
175152
  children: /* @__PURE__ */ jsx(
175069
- Content$2,
175153
+ Content$3,
175070
175154
  {
175071
- "data-state": getState$1(context.open),
175155
+ "data-state": getState$2(context.open),
175072
175156
  role: "dialog",
175073
175157
  id: context.contentId,
175074
175158
  ...popperScope,
@@ -175110,38 +175194,38 @@ var PopoverClose = React.forwardRef(
175110
175194
  }
175111
175195
  );
175112
175196
  PopoverClose.displayName = CLOSE_NAME;
175113
- var ARROW_NAME = "PopoverArrow";
175197
+ var ARROW_NAME$2 = "PopoverArrow";
175114
175198
  var PopoverArrow = React.forwardRef(
175115
175199
  (props, forwardedRef) => {
175116
175200
  const { __scopePopover, ...arrowProps } = props;
175117
- const popperScope = usePopperScope(__scopePopover);
175118
- return /* @__PURE__ */ jsx(Arrow$2, { ...popperScope, ...arrowProps, ref: forwardedRef });
175201
+ const popperScope = usePopperScope$1(__scopePopover);
175202
+ return /* @__PURE__ */ jsx(Arrow$4, { ...popperScope, ...arrowProps, ref: forwardedRef });
175119
175203
  }
175120
175204
  );
175121
- PopoverArrow.displayName = ARROW_NAME;
175122
- function getState$1(open) {
175205
+ PopoverArrow.displayName = ARROW_NAME$2;
175206
+ function getState$2(open) {
175123
175207
  return open ? "open" : "closed";
175124
175208
  }
175125
- var Root2$1 = Popover$1;
175209
+ var Root2$3 = Popover$1;
175126
175210
  var Anchor2 = PopoverAnchor$1;
175127
- var Trigger = PopoverTrigger$1;
175128
- var Portal = PopoverPortal;
175129
- var Content2 = PopoverContent$1;
175211
+ var Trigger$1 = PopoverTrigger$1;
175212
+ var Portal$1 = PopoverPortal;
175213
+ var Content2$1 = PopoverContent$1;
175130
175214
 
175131
- const Popover = Root2$1;
175132
- const PopoverTrigger = Trigger;
175215
+ const Popover = Root2$3;
175216
+ const PopoverTrigger = Trigger$1;
175133
175217
  const PopoverAnchor = Anchor2;
175134
175218
  const PopoverContent = React.forwardRef(({ className, align = 'center', sideOffset = 4, portalled = true, container, ...props }, ref) => {
175135
175219
  var _a;
175136
175220
  const portalContainer = useFloatingPortalContainer();
175137
175221
  const resolvedContainer = (_a = container !== null && container !== void 0 ? container : portalContainer) !== null && _a !== void 0 ? _a : undefined;
175138
- const content = (jsx(Content2, { ref: ref, "data-iblai-dialog-interaction-layer": true, align: align, sideOffset: sideOffset, className: cn('bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none', className), ...props }));
175222
+ const content = (jsx(Content2$1, { ref: ref, "data-iblai-dialog-interaction-layer": true, align: align, sideOffset: sideOffset, className: cn('bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none', className), ...props }));
175139
175223
  if (!portalled) {
175140
175224
  return content;
175141
175225
  }
175142
- return jsx(Portal, { container: resolvedContainer, children: content });
175226
+ return jsx(Portal$1, { container: resolvedContainer, children: content });
175143
175227
  });
175144
- PopoverContent.displayName = Content2.displayName;
175228
+ PopoverContent.displayName = Content2$1.displayName;
175145
175229
 
175146
175230
  function UsersTab({ tenant, onInviteClick, currentSpa, showGradebookTab = false, }) {
175147
175231
  const t = useT();
@@ -178564,7 +178648,7 @@ function PreviousMonthButton(props) {
178564
178648
  * @group Components
178565
178649
  * @see https://daypicker.dev/guides/custom-components
178566
178650
  */
178567
- function Root$4(props) {
178651
+ function Root$6(props) {
178568
178652
  const { rootRef, ...rest } = props;
178569
178653
  return React__default.createElement("div", { ...rest, ref: rootRef });
178570
178654
  }
@@ -178672,7 +178756,7 @@ var components$1 = /*#__PURE__*/Object.freeze({
178672
178756
  NextMonthButton: NextMonthButton,
178673
178757
  Option: Option,
178674
178758
  PreviousMonthButton: PreviousMonthButton,
178675
- Root: Root$4,
178759
+ Root: Root$6,
178676
178760
  Select: Select,
178677
178761
  Week: Week,
178678
178762
  WeekNumber: WeekNumber,
@@ -210964,7 +211048,7 @@ function useUncontrolledState({
210964
211048
  return uncontrolledState;
210965
211049
  }
210966
211050
 
210967
- var NAME$2 = "Toggle";
211051
+ var NAME$3 = "Toggle";
210968
211052
  var Toggle$1 = React.forwardRef((props, forwardedRef) => {
210969
211053
  const { pressed: pressedProp, defaultPressed = false, onPressedChange, ...buttonProps } = props;
210970
211054
  const [pressed = false, setPressed] = useControllableState({
@@ -210989,8 +211073,8 @@ var Toggle$1 = React.forwardRef((props, forwardedRef) => {
210989
211073
  }
210990
211074
  );
210991
211075
  });
210992
- Toggle$1.displayName = NAME$2;
210993
- var Root$3 = Toggle$1;
211076
+ Toggle$1.displayName = NAME$3;
211077
+ var Root$5 = Toggle$1;
210994
211078
 
210995
211079
  const toggleVariants = cva('inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground', {
210996
211080
  variants: {
@@ -211009,11 +211093,11 @@ const toggleVariants = cva('inline-flex items-center justify-center rounded-md t
211009
211093
  size: 'default',
211010
211094
  },
211011
211095
  });
211012
- const Toggle = React.forwardRef(({ className, variant, size, ...props }, ref) => (jsx(Root$3, { ref: ref, className: cn(toggleVariants({ variant, size, className })), ...props })));
211013
- Toggle.displayName = Root$3.displayName;
211096
+ const Toggle = React.forwardRef(({ className, variant, size, ...props }, ref) => (jsx(Root$5, { ref: ref, className: cn(toggleVariants({ variant, size, className })), ...props })));
211097
+ Toggle.displayName = Root$5.displayName;
211014
211098
 
211015
211099
  // src/separator.tsx
211016
- var NAME$1 = "Separator";
211100
+ var NAME$2 = "Separator";
211017
211101
  var DEFAULT_ORIENTATION = "horizontal";
211018
211102
  var ORIENTATIONS = ["horizontal", "vertical"];
211019
211103
  var Separator$1 = React.forwardRef((props, forwardedRef) => {
@@ -211031,14 +211115,14 @@ var Separator$1 = React.forwardRef((props, forwardedRef) => {
211031
211115
  }
211032
211116
  );
211033
211117
  });
211034
- Separator$1.displayName = NAME$1;
211118
+ Separator$1.displayName = NAME$2;
211035
211119
  function isValidOrientation(orientation) {
211036
211120
  return ORIENTATIONS.includes(orientation);
211037
211121
  }
211038
- var Root$2 = Separator$1;
211122
+ var Root$4 = Separator$1;
211039
211123
 
211040
- const Separator = React.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => (jsx(Root$2, { ref: ref, decorative: decorative, orientation: orientation, className: cn("shrink-0 bg-border", orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", className), ...props })));
211041
- Separator.displayName = Root$2.displayName;
211124
+ const Separator = React.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => (jsx(Root$4, { ref: ref, decorative: decorative, orientation: orientation, className: cn("shrink-0 bg-border", orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", className), ...props })));
211125
+ Separator.displayName = Root$4.displayName;
211042
211126
 
211043
211127
  // Custom Div extension to preserve div elements with inline styles
211044
211128
  const Div = Node3.create({
@@ -211875,7 +211959,7 @@ function focusFirst(candidates, preventScroll = false) {
211875
211959
  function wrapArray(array, startIndex) {
211876
211960
  return array.map((_, index) => array[(startIndex + index) % array.length]);
211877
211961
  }
211878
- var Root$1 = RovingFocusGroup;
211962
+ var Root$3 = RovingFocusGroup;
211879
211963
  var Item = RovingFocusGroupItem;
211880
211964
 
211881
211965
  // packages/react/use-size/src/useSize.tsx
@@ -212078,7 +212162,7 @@ var Radio = React.forwardRef(
212078
212162
  type: "button",
212079
212163
  role: "radio",
212080
212164
  "aria-checked": checked,
212081
- "data-state": getState(checked),
212165
+ "data-state": getState$1(checked),
212082
212166
  "data-disabled": disabled ? "" : void 0,
212083
212167
  disabled,
212084
212168
  value,
@@ -212119,7 +212203,7 @@ var RadioIndicator = React.forwardRef(
212119
212203
  return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.checked, children: /* @__PURE__ */ jsx(
212120
212204
  Primitive$1.span,
212121
212205
  {
212122
- "data-state": getState(context.checked),
212206
+ "data-state": getState$1(context.checked),
212123
212207
  "data-disabled": context.disabled ? "" : void 0,
212124
212208
  ...indicatorProps,
212125
212209
  ref: forwardedRef
@@ -212164,7 +212248,7 @@ var BubbleInput = (props) => {
212164
212248
  }
212165
212249
  );
212166
212250
  };
212167
- function getState(checked) {
212251
+ function getState$1(checked) {
212168
212252
  return checked ? "checked" : "unchecked";
212169
212253
  }
212170
212254
  var ARROW_KEYS = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
@@ -212208,7 +212292,7 @@ var RadioGroup$1 = React.forwardRef(
212208
212292
  value,
212209
212293
  onValueChange: setValue,
212210
212294
  children: /* @__PURE__ */ jsx(
212211
- Root$1,
212295
+ Root$3,
212212
212296
  {
212213
212297
  asChild: true,
212214
212298
  ...rovingFocusGroupScope,
@@ -212300,12 +212384,12 @@ var RadioGroupIndicator = React.forwardRef(
212300
212384
  }
212301
212385
  );
212302
212386
  RadioGroupIndicator.displayName = INDICATOR_NAME2;
212303
- var Root2 = RadioGroup$1;
212387
+ var Root2$2 = RadioGroup$1;
212304
212388
  var Item2 = RadioGroupItem$1;
212305
212389
  var Indicator = RadioGroupIndicator;
212306
212390
 
212307
212391
  function RadioGroup({ className, ...props }) {
212308
- return (jsx(Root2, { "data-slot": "radio-group", className: cn('grid gap-3', className), ...props }));
212392
+ return (jsx(Root2$2, { "data-slot": "radio-group", className: cn('grid gap-3', className), ...props }));
212309
212393
  }
212310
212394
  function RadioGroupItem({ className, ...props }) {
212311
212395
  return (jsx(Item2, { "data-slot": "radio-group-item", className: cn('border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50', className), ...props, children: jsx(Indicator, { "data-slot": "radio-group-indicator", className: "relative flex items-center justify-center", children: jsx(Circle, { className: "fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2" }) }) }));
@@ -255515,9 +255599,1011 @@ function NavBar({ username, isAuthenticated = false, onNewChat, onSettings, onLo
255515
255599
  return (jsxs("header", { className: "flex h-20 shrink-0 items-center gap-2 bg-white px-4 border-b border-[#D0E0FF]", children: [jsx(SidebarTrigger, { className: "-ml-1" }), mentorName && !showMentorDropdown && (jsx("div", { className: "flex items-center gap-2 ml-4", children: jsx("h1", { className: "text-lg font-semibold text-gray-900", children: mentorName }) })), mentorName && showMentorDropdown && (jsxs(DropdownMenu, { children: [jsx(DropdownMenuTrigger, { asChild: true, children: jsxs(Button$1, { variant: "ghost", className: "gap-2 text-gray-900 hover:bg-gray-100 ml-4", children: [jsx("span", { className: "font-semibold", children: mentorName }), jsx(ChevronDown, { className: "h-4 w-4" })] }) }), jsxs(DropdownMenuContent, { align: "start", className: "w-[200px]", children: [jsx(DropdownMenuItem, { children: t('navbar.switchAgent') }), jsx(DropdownMenuItem, { children: t('navbar.exploreAgents') })] })] })), jsxs("div", { className: "flex items-center gap-2 ml-auto", children: [onNewChat && (jsxs(Button$1, { variant: "ghost", size: "sm", onClick: onNewChat, className: "gap-2 text-[#646464] hover:text-[#484848] hover:bg-transparent", children: [jsx(MessageSquare, { className: "h-4 w-4" }), jsx("span", { className: "hidden sm:inline", children: t('navbar.newChat') })] })), isAuthenticated ? (jsxs(DropdownMenu, { children: [jsx(DropdownMenuTrigger, { asChild: true, children: jsxs(Button$1, { variant: "ghost", size: "sm", className: "gap-2 text-[#646464] hover:text-[#484848] hover:bg-transparent", children: [jsxs(Avatar, { className: "h-6 w-6", children: [jsx(AvatarImage, { src: `https://api.dicebear.com/7.x/initials/svg?seed=${username}` }), jsx(AvatarFallback, { children: username === null || username === void 0 ? void 0 : username.charAt(0).toUpperCase() })] }), jsx("span", { className: "hidden sm:inline", children: username })] }) }), jsxs(DropdownMenuContent, { align: "end", className: "w-[180px] rounded-md border border-gray-200 bg-white p-2 shadow-lg", children: [additionalMenuItems.map((item, index) => (jsxs(React__default.Fragment, { children: [item.separator && jsx(DropdownMenuSeparator, {}), jsxs(DropdownMenuItem, { onClick: item.onClick, className: "flex cursor-pointer items-center rounded-md px-3 py-2 text-sm text-gray-700 hover:bg-gray-100", children: [jsx(item.icon, { className: "mr-3 h-4 w-4 text-gray-600" }), item.label] })] }, item.label))), onSettings && (jsxs(DropdownMenuItem, { onClick: onSettings, className: "flex cursor-pointer items-center rounded-md px-3 py-2 text-sm text-gray-700 hover:bg-gray-100", children: [jsx(Settings$1, { className: "mr-3 h-4 w-4 text-gray-600" }), t('common.settings')] })), onLogout && (jsxs(Fragment$1, { children: [jsx(DropdownMenuSeparator, {}), jsxs(DropdownMenuItem, { onClick: onLogout, className: "flex cursor-pointer items-center rounded-md px-3 py-2 text-sm text-gray-700 hover:bg-gray-100", children: [jsx(LogOut, { className: "mr-3 h-4 w-4 text-gray-600" }), t('common.logout')] })] }))] })] })) : (onLogin && (jsxs(Button$1, { onClick: onLogin, size: "sm", className: "gap-2", children: [jsx(LogIn, { className: "h-4 w-4" }), t('common.login')] })))] })] }));
255516
255600
  }
255517
255601
 
255602
+ var COLLAPSIBLE_NAME = "Collapsible";
255603
+ var [createCollapsibleContext] = createContextScope$1(COLLAPSIBLE_NAME);
255604
+ var [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);
255605
+ var Collapsible$1 = React.forwardRef(
255606
+ (props, forwardedRef) => {
255607
+ const {
255608
+ __scopeCollapsible,
255609
+ open: openProp,
255610
+ defaultOpen,
255611
+ disabled,
255612
+ onOpenChange,
255613
+ ...collapsibleProps
255614
+ } = props;
255615
+ const [open, setOpen] = useControllableState$1({
255616
+ prop: openProp,
255617
+ defaultProp: defaultOpen ?? false,
255618
+ onChange: onOpenChange,
255619
+ caller: COLLAPSIBLE_NAME
255620
+ });
255621
+ return /* @__PURE__ */ jsx(
255622
+ CollapsibleProvider,
255623
+ {
255624
+ scope: __scopeCollapsible,
255625
+ disabled,
255626
+ contentId: useId$1(),
255627
+ open,
255628
+ onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),
255629
+ children: /* @__PURE__ */ jsx(
255630
+ Primitive$2.div,
255631
+ {
255632
+ "data-state": getState(open),
255633
+ "data-disabled": disabled ? "" : void 0,
255634
+ ...collapsibleProps,
255635
+ ref: forwardedRef
255636
+ }
255637
+ )
255638
+ }
255639
+ );
255640
+ }
255641
+ );
255642
+ Collapsible$1.displayName = COLLAPSIBLE_NAME;
255643
+ var TRIGGER_NAME$1 = "CollapsibleTrigger";
255644
+ var CollapsibleTrigger$1 = React.forwardRef(
255645
+ (props, forwardedRef) => {
255646
+ const { __scopeCollapsible, ...triggerProps } = props;
255647
+ const context = useCollapsibleContext(TRIGGER_NAME$1, __scopeCollapsible);
255648
+ return /* @__PURE__ */ jsx(
255649
+ Primitive$2.button,
255650
+ {
255651
+ type: "button",
255652
+ "aria-controls": context.contentId,
255653
+ "aria-expanded": context.open || false,
255654
+ "data-state": getState(context.open),
255655
+ "data-disabled": context.disabled ? "" : void 0,
255656
+ disabled: context.disabled,
255657
+ ...triggerProps,
255658
+ ref: forwardedRef,
255659
+ onClick: composeEventHandlers$1(props.onClick, context.onOpenToggle)
255660
+ }
255661
+ );
255662
+ }
255663
+ );
255664
+ CollapsibleTrigger$1.displayName = TRIGGER_NAME$1;
255665
+ var CONTENT_NAME$2 = "CollapsibleContent";
255666
+ var CollapsibleContent$1 = React.forwardRef(
255667
+ (props, forwardedRef) => {
255668
+ const { forceMount, ...contentProps } = props;
255669
+ const context = useCollapsibleContext(CONTENT_NAME$2, props.__scopeCollapsible);
255670
+ return /* @__PURE__ */ jsx(Presence$2, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });
255671
+ }
255672
+ );
255673
+ CollapsibleContent$1.displayName = CONTENT_NAME$2;
255674
+ var CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {
255675
+ const { __scopeCollapsible, present, children, ...contentProps } = props;
255676
+ const context = useCollapsibleContext(CONTENT_NAME$2, __scopeCollapsible);
255677
+ const [isPresent, setIsPresent] = React.useState(present);
255678
+ const ref = React.useRef(null);
255679
+ const composedRefs = useComposedRefs$1(forwardedRef, ref);
255680
+ const heightRef = React.useRef(0);
255681
+ const height = heightRef.current;
255682
+ const widthRef = React.useRef(0);
255683
+ const width = widthRef.current;
255684
+ const isOpen = context.open || isPresent;
255685
+ const isMountAnimationPreventedRef = React.useRef(isOpen);
255686
+ const originalStylesRef = React.useRef(void 0);
255687
+ React.useEffect(() => {
255688
+ const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);
255689
+ return () => cancelAnimationFrame(rAF);
255690
+ }, []);
255691
+ useLayoutEffect2$1(() => {
255692
+ const node = ref.current;
255693
+ if (node) {
255694
+ originalStylesRef.current = originalStylesRef.current || {
255695
+ transitionDuration: node.style.transitionDuration,
255696
+ animationName: node.style.animationName
255697
+ };
255698
+ node.style.transitionDuration = "0s";
255699
+ node.style.animationName = "none";
255700
+ const rect = node.getBoundingClientRect();
255701
+ heightRef.current = rect.height;
255702
+ widthRef.current = rect.width;
255703
+ if (!isMountAnimationPreventedRef.current) {
255704
+ node.style.transitionDuration = originalStylesRef.current.transitionDuration;
255705
+ node.style.animationName = originalStylesRef.current.animationName;
255706
+ }
255707
+ setIsPresent(present);
255708
+ }
255709
+ }, [context.open, present]);
255710
+ return /* @__PURE__ */ jsx(
255711
+ Primitive$2.div,
255712
+ {
255713
+ "data-state": getState(context.open),
255714
+ "data-disabled": context.disabled ? "" : void 0,
255715
+ id: context.contentId,
255716
+ hidden: !isOpen,
255717
+ ...contentProps,
255718
+ ref: composedRefs,
255719
+ style: {
255720
+ [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,
255721
+ [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,
255722
+ ...props.style
255723
+ },
255724
+ children: isOpen && children
255725
+ }
255726
+ );
255727
+ });
255728
+ function getState(open) {
255729
+ return open ? "open" : "closed";
255730
+ }
255731
+ var Root$2 = Collapsible$1;
255732
+
255733
+ const Collapsible = Root$2;
255734
+ const CollapsibleTrigger = CollapsibleTrigger$1;
255735
+ const CollapsibleContent = CollapsibleContent$1;
255736
+
255737
+ // src/arrow.tsx
255738
+ var NAME$1 = "Arrow";
255739
+ var Arrow$1 = React.forwardRef((props, forwardedRef) => {
255740
+ const { children, width = 10, height = 5, ...arrowProps } = props;
255741
+ return /* @__PURE__ */ jsx(
255742
+ Primitive$2.svg,
255743
+ {
255744
+ ...arrowProps,
255745
+ ref: forwardedRef,
255746
+ width,
255747
+ height,
255748
+ viewBox: "0 0 30 10",
255749
+ preserveAspectRatio: "none",
255750
+ children: props.asChild ? children : /* @__PURE__ */ jsx("polygon", { points: "0,0 30,0 15,10" })
255751
+ }
255752
+ );
255753
+ });
255754
+ Arrow$1.displayName = NAME$1;
255755
+ var Root$1 = Arrow$1;
255756
+
255757
+ var POPPER_NAME = "Popper";
255758
+ var [createPopperContext, createPopperScope] = createContextScope$1(POPPER_NAME);
255759
+ var [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);
255760
+ var Popper = (props) => {
255761
+ const { __scopePopper, children } = props;
255762
+ const [anchor, setAnchor] = React.useState(null);
255763
+ return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });
255764
+ };
255765
+ Popper.displayName = POPPER_NAME;
255766
+ var ANCHOR_NAME = "PopperAnchor";
255767
+ var PopperAnchor = React.forwardRef(
255768
+ (props, forwardedRef) => {
255769
+ const { __scopePopper, virtualRef, ...anchorProps } = props;
255770
+ const context = usePopperContext(ANCHOR_NAME, __scopePopper);
255771
+ const ref = React.useRef(null);
255772
+ const composedRefs = useComposedRefs$1(forwardedRef, ref);
255773
+ const anchorRef = React.useRef(null);
255774
+ React.useEffect(() => {
255775
+ const previousAnchor = anchorRef.current;
255776
+ anchorRef.current = virtualRef?.current || ref.current;
255777
+ if (previousAnchor !== anchorRef.current) {
255778
+ context.onAnchorChange(anchorRef.current);
255779
+ }
255780
+ });
255781
+ return virtualRef ? null : /* @__PURE__ */ jsx(Primitive$2.div, { ...anchorProps, ref: composedRefs });
255782
+ }
255783
+ );
255784
+ PopperAnchor.displayName = ANCHOR_NAME;
255785
+ var CONTENT_NAME$1 = "PopperContent";
255786
+ var [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME$1);
255787
+ var PopperContent = React.forwardRef(
255788
+ (props, forwardedRef) => {
255789
+ const {
255790
+ __scopePopper,
255791
+ side = "bottom",
255792
+ sideOffset = 0,
255793
+ align = "center",
255794
+ alignOffset = 0,
255795
+ arrowPadding = 0,
255796
+ avoidCollisions = true,
255797
+ collisionBoundary = [],
255798
+ collisionPadding: collisionPaddingProp = 0,
255799
+ sticky = "partial",
255800
+ hideWhenDetached = false,
255801
+ updatePositionStrategy = "optimized",
255802
+ onPlaced,
255803
+ ...contentProps
255804
+ } = props;
255805
+ const context = usePopperContext(CONTENT_NAME$1, __scopePopper);
255806
+ const [content, setContent] = React.useState(null);
255807
+ const composedRefs = useComposedRefs$1(forwardedRef, (node) => setContent(node));
255808
+ const [arrow, setArrow] = React.useState(null);
255809
+ const arrowSize = useSize$1(arrow);
255810
+ const arrowWidth = arrowSize?.width ?? 0;
255811
+ const arrowHeight = arrowSize?.height ?? 0;
255812
+ const desiredPlacement = side + (align !== "center" ? "-" + align : "");
255813
+ const collisionPadding = typeof collisionPaddingProp === "number" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };
255814
+ const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];
255815
+ const hasExplicitBoundaries = boundary.length > 0;
255816
+ const detectOverflowOptions = {
255817
+ padding: collisionPadding,
255818
+ boundary: boundary.filter(isNotNull),
255819
+ // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries
255820
+ altBoundary: hasExplicitBoundaries
255821
+ };
255822
+ const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({
255823
+ // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
255824
+ strategy: "fixed",
255825
+ placement: desiredPlacement,
255826
+ whileElementsMounted: (...args) => {
255827
+ const cleanup = autoUpdate(...args, {
255828
+ animationFrame: updatePositionStrategy === "always"
255829
+ });
255830
+ return cleanup;
255831
+ },
255832
+ elements: {
255833
+ reference: context.anchor
255834
+ },
255835
+ middleware: [
255836
+ offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),
255837
+ avoidCollisions && shift$1({
255838
+ mainAxis: true,
255839
+ crossAxis: false,
255840
+ limiter: sticky === "partial" ? limitShift() : void 0,
255841
+ ...detectOverflowOptions
255842
+ }),
255843
+ avoidCollisions && flip({ ...detectOverflowOptions }),
255844
+ size({
255845
+ ...detectOverflowOptions,
255846
+ apply: ({ elements, rects, availableWidth, availableHeight }) => {
255847
+ const { width: anchorWidth, height: anchorHeight } = rects.reference;
255848
+ const contentStyle = elements.floating.style;
255849
+ contentStyle.setProperty("--radix-popper-available-width", `${availableWidth}px`);
255850
+ contentStyle.setProperty("--radix-popper-available-height", `${availableHeight}px`);
255851
+ contentStyle.setProperty("--radix-popper-anchor-width", `${anchorWidth}px`);
255852
+ contentStyle.setProperty("--radix-popper-anchor-height", `${anchorHeight}px`);
255853
+ }
255854
+ }),
255855
+ arrow && arrow$2({ element: arrow, padding: arrowPadding }),
255856
+ transformOrigin$1({ arrowWidth, arrowHeight }),
255857
+ hideWhenDetached && hide({ strategy: "referenceHidden", ...detectOverflowOptions })
255858
+ ]
255859
+ });
255860
+ const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
255861
+ const handlePlaced = useCallbackRef$2(onPlaced);
255862
+ useLayoutEffect2$1(() => {
255863
+ if (isPositioned) {
255864
+ handlePlaced?.();
255865
+ }
255866
+ }, [isPositioned, handlePlaced]);
255867
+ const arrowX = middlewareData.arrow?.x;
255868
+ const arrowY = middlewareData.arrow?.y;
255869
+ const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
255870
+ const [contentZIndex, setContentZIndex] = React.useState();
255871
+ useLayoutEffect2$1(() => {
255872
+ if (content) setContentZIndex(window.getComputedStyle(content).zIndex);
255873
+ }, [content]);
255874
+ return /* @__PURE__ */ jsx(
255875
+ "div",
255876
+ {
255877
+ ref: refs.setFloating,
255878
+ "data-radix-popper-content-wrapper": "",
255879
+ style: {
255880
+ ...floatingStyles,
255881
+ transform: isPositioned ? floatingStyles.transform : "translate(0, -200%)",
255882
+ // keep off the page when measuring
255883
+ minWidth: "max-content",
255884
+ zIndex: contentZIndex,
255885
+ ["--radix-popper-transform-origin"]: [
255886
+ middlewareData.transformOrigin?.x,
255887
+ middlewareData.transformOrigin?.y
255888
+ ].join(" "),
255889
+ // hide the content if using the hide middleware and should be hidden
255890
+ // set visibility to hidden and disable pointer events so the UI behaves
255891
+ // as if the PopperContent isn't there at all
255892
+ ...middlewareData.hide?.referenceHidden && {
255893
+ visibility: "hidden",
255894
+ pointerEvents: "none"
255895
+ }
255896
+ },
255897
+ dir: props.dir,
255898
+ children: /* @__PURE__ */ jsx(
255899
+ PopperContentProvider,
255900
+ {
255901
+ scope: __scopePopper,
255902
+ placedSide,
255903
+ onArrowChange: setArrow,
255904
+ arrowX,
255905
+ arrowY,
255906
+ shouldHideArrow: cannotCenterArrow,
255907
+ children: /* @__PURE__ */ jsx(
255908
+ Primitive$2.div,
255909
+ {
255910
+ "data-side": placedSide,
255911
+ "data-align": placedAlign,
255912
+ ...contentProps,
255913
+ ref: composedRefs,
255914
+ style: {
255915
+ ...contentProps.style,
255916
+ // if the PopperContent hasn't been placed yet (not all measurements done)
255917
+ // we prevent animations so that users's animation don't kick in too early referring wrong sides
255918
+ animation: !isPositioned ? "none" : void 0
255919
+ }
255920
+ }
255921
+ )
255922
+ }
255923
+ )
255924
+ }
255925
+ );
255926
+ }
255927
+ );
255928
+ PopperContent.displayName = CONTENT_NAME$1;
255929
+ var ARROW_NAME$1 = "PopperArrow";
255930
+ var OPPOSITE_SIDE = {
255931
+ top: "bottom",
255932
+ right: "left",
255933
+ bottom: "top",
255934
+ left: "right"
255935
+ };
255936
+ var PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {
255937
+ const { __scopePopper, ...arrowProps } = props;
255938
+ const contentContext = useContentContext(ARROW_NAME$1, __scopePopper);
255939
+ const baseSide = OPPOSITE_SIDE[contentContext.placedSide];
255940
+ return (
255941
+ // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)
255942
+ // doesn't report size as we'd expect on SVG elements.
255943
+ // it reports their bounding box which is effectively the largest path inside the SVG.
255944
+ /* @__PURE__ */ jsx(
255945
+ "span",
255946
+ {
255947
+ ref: contentContext.onArrowChange,
255948
+ style: {
255949
+ position: "absolute",
255950
+ left: contentContext.arrowX,
255951
+ top: contentContext.arrowY,
255952
+ [baseSide]: 0,
255953
+ transformOrigin: {
255954
+ top: "",
255955
+ right: "0 0",
255956
+ bottom: "center 0",
255957
+ left: "100% 0"
255958
+ }[contentContext.placedSide],
255959
+ transform: {
255960
+ top: "translateY(100%)",
255961
+ right: "translateY(50%) rotate(90deg) translateX(-50%)",
255962
+ bottom: `rotate(180deg)`,
255963
+ left: "translateY(50%) rotate(-90deg) translateX(50%)"
255964
+ }[contentContext.placedSide],
255965
+ visibility: contentContext.shouldHideArrow ? "hidden" : void 0
255966
+ },
255967
+ children: /* @__PURE__ */ jsx(
255968
+ Root$1,
255969
+ {
255970
+ ...arrowProps,
255971
+ ref: forwardedRef,
255972
+ style: {
255973
+ ...arrowProps.style,
255974
+ // ensures the element can be measured correctly (mostly for if SVG)
255975
+ display: "block"
255976
+ }
255977
+ }
255978
+ )
255979
+ }
255980
+ )
255981
+ );
255982
+ });
255983
+ PopperArrow.displayName = ARROW_NAME$1;
255984
+ function isNotNull(value) {
255985
+ return value !== null;
255986
+ }
255987
+ var transformOrigin$1 = (options) => ({
255988
+ name: "transformOrigin",
255989
+ options,
255990
+ fn(data) {
255991
+ const { placement, rects, middlewareData } = data;
255992
+ const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;
255993
+ const isArrowHidden = cannotCenterArrow;
255994
+ const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;
255995
+ const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;
255996
+ const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
255997
+ const noArrowAlign = { start: "0%", center: "50%", end: "100%" }[placedAlign];
255998
+ const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;
255999
+ const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;
256000
+ let x = "";
256001
+ let y = "";
256002
+ if (placedSide === "bottom") {
256003
+ x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
256004
+ y = `${-arrowHeight}px`;
256005
+ } else if (placedSide === "top") {
256006
+ x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;
256007
+ y = `${rects.floating.height + arrowHeight}px`;
256008
+ } else if (placedSide === "right") {
256009
+ x = `${-arrowHeight}px`;
256010
+ y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
256011
+ } else if (placedSide === "left") {
256012
+ x = `${rects.floating.width + arrowHeight}px`;
256013
+ y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;
256014
+ }
256015
+ return { data: { x, y } };
256016
+ }
256017
+ });
256018
+ function getSideAndAlignFromPlacement(placement) {
256019
+ const [side, align = "center"] = placement.split("-");
256020
+ return [side, align];
256021
+ }
256022
+ var Root2$1 = Popper;
256023
+ var Anchor$1 = PopperAnchor;
256024
+ var Content = PopperContent;
256025
+ var Arrow = PopperArrow;
256026
+
256027
+ var originalBodyUserSelect;
256028
+ var HOVERCARD_NAME = "HoverCard";
256029
+ var [createHoverCardContext] = createContextScope$1(HOVERCARD_NAME, [
256030
+ createPopperScope
256031
+ ]);
256032
+ var usePopperScope = createPopperScope();
256033
+ var [HoverCardProvider, useHoverCardContext] = createHoverCardContext(HOVERCARD_NAME);
256034
+ var HoverCard$1 = (props) => {
256035
+ const {
256036
+ __scopeHoverCard,
256037
+ children,
256038
+ open: openProp,
256039
+ defaultOpen,
256040
+ onOpenChange,
256041
+ openDelay = 700,
256042
+ closeDelay = 300
256043
+ } = props;
256044
+ const popperScope = usePopperScope(__scopeHoverCard);
256045
+ const openTimerRef = React.useRef(0);
256046
+ const closeTimerRef = React.useRef(0);
256047
+ const hasSelectionRef = React.useRef(false);
256048
+ const isPointerDownOnContentRef = React.useRef(false);
256049
+ const [open, setOpen] = useControllableState$1({
256050
+ prop: openProp,
256051
+ defaultProp: defaultOpen ?? false,
256052
+ onChange: onOpenChange,
256053
+ caller: HOVERCARD_NAME
256054
+ });
256055
+ const handleOpen = React.useCallback(() => {
256056
+ clearTimeout(closeTimerRef.current);
256057
+ openTimerRef.current = window.setTimeout(() => setOpen(true), openDelay);
256058
+ }, [openDelay, setOpen]);
256059
+ const handleClose = React.useCallback(() => {
256060
+ clearTimeout(openTimerRef.current);
256061
+ if (!hasSelectionRef.current && !isPointerDownOnContentRef.current) {
256062
+ closeTimerRef.current = window.setTimeout(() => setOpen(false), closeDelay);
256063
+ }
256064
+ }, [closeDelay, setOpen]);
256065
+ const handleDismiss = React.useCallback(() => setOpen(false), [setOpen]);
256066
+ React.useEffect(() => {
256067
+ return () => {
256068
+ clearTimeout(openTimerRef.current);
256069
+ clearTimeout(closeTimerRef.current);
256070
+ };
256071
+ }, []);
256072
+ return /* @__PURE__ */ jsx(
256073
+ HoverCardProvider,
256074
+ {
256075
+ scope: __scopeHoverCard,
256076
+ open,
256077
+ onOpenChange: setOpen,
256078
+ onOpen: handleOpen,
256079
+ onClose: handleClose,
256080
+ onDismiss: handleDismiss,
256081
+ hasSelectionRef,
256082
+ isPointerDownOnContentRef,
256083
+ children: /* @__PURE__ */ jsx(Root2$1, { ...popperScope, children })
256084
+ }
256085
+ );
256086
+ };
256087
+ HoverCard$1.displayName = HOVERCARD_NAME;
256088
+ var TRIGGER_NAME = "HoverCardTrigger";
256089
+ var HoverCardTrigger$1 = React.forwardRef(
256090
+ (props, forwardedRef) => {
256091
+ const { __scopeHoverCard, ...triggerProps } = props;
256092
+ const context = useHoverCardContext(TRIGGER_NAME, __scopeHoverCard);
256093
+ const popperScope = usePopperScope(__scopeHoverCard);
256094
+ return /* @__PURE__ */ jsx(Anchor$1, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(
256095
+ Primitive$2.a,
256096
+ {
256097
+ "data-state": context.open ? "open" : "closed",
256098
+ ...triggerProps,
256099
+ ref: forwardedRef,
256100
+ onPointerEnter: composeEventHandlers$1(props.onPointerEnter, excludeTouch(context.onOpen)),
256101
+ onPointerLeave: composeEventHandlers$1(props.onPointerLeave, excludeTouch(context.onClose)),
256102
+ onFocus: composeEventHandlers$1(props.onFocus, context.onOpen),
256103
+ onBlur: composeEventHandlers$1(props.onBlur, context.onClose),
256104
+ onTouchStart: composeEventHandlers$1(props.onTouchStart, (event) => event.preventDefault())
256105
+ }
256106
+ ) });
256107
+ }
256108
+ );
256109
+ HoverCardTrigger$1.displayName = TRIGGER_NAME;
256110
+ var PORTAL_NAME = "HoverCardPortal";
256111
+ var [PortalProvider, usePortalContext] = createHoverCardContext(PORTAL_NAME, {
256112
+ forceMount: void 0
256113
+ });
256114
+ var HoverCardPortal = (props) => {
256115
+ const { __scopeHoverCard, forceMount, children, container } = props;
256116
+ const context = useHoverCardContext(PORTAL_NAME, __scopeHoverCard);
256117
+ return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeHoverCard, forceMount, children: /* @__PURE__ */ jsx(Presence$2, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$4, { asChild: true, container, children }) }) });
256118
+ };
256119
+ HoverCardPortal.displayName = PORTAL_NAME;
256120
+ var CONTENT_NAME = "HoverCardContent";
256121
+ var HoverCardContent$1 = React.forwardRef(
256122
+ (props, forwardedRef) => {
256123
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeHoverCard);
256124
+ const { forceMount = portalContext.forceMount, ...contentProps } = props;
256125
+ const context = useHoverCardContext(CONTENT_NAME, props.__scopeHoverCard);
256126
+ return /* @__PURE__ */ jsx(Presence$2, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(
256127
+ HoverCardContentImpl,
256128
+ {
256129
+ "data-state": context.open ? "open" : "closed",
256130
+ ...contentProps,
256131
+ onPointerEnter: composeEventHandlers$1(props.onPointerEnter, excludeTouch(context.onOpen)),
256132
+ onPointerLeave: composeEventHandlers$1(props.onPointerLeave, excludeTouch(context.onClose)),
256133
+ ref: forwardedRef
256134
+ }
256135
+ ) });
256136
+ }
256137
+ );
256138
+ HoverCardContent$1.displayName = CONTENT_NAME;
256139
+ var HoverCardContentImpl = React.forwardRef((props, forwardedRef) => {
256140
+ const {
256141
+ __scopeHoverCard,
256142
+ onEscapeKeyDown,
256143
+ onPointerDownOutside,
256144
+ onFocusOutside,
256145
+ onInteractOutside,
256146
+ ...contentProps
256147
+ } = props;
256148
+ const context = useHoverCardContext(CONTENT_NAME, __scopeHoverCard);
256149
+ const popperScope = usePopperScope(__scopeHoverCard);
256150
+ const ref = React.useRef(null);
256151
+ const composedRefs = useComposedRefs$1(forwardedRef, ref);
256152
+ const [containSelection, setContainSelection] = React.useState(false);
256153
+ React.useEffect(() => {
256154
+ if (containSelection) {
256155
+ const body = document.body;
256156
+ originalBodyUserSelect = body.style.userSelect || body.style.webkitUserSelect;
256157
+ body.style.userSelect = "none";
256158
+ body.style.webkitUserSelect = "none";
256159
+ return () => {
256160
+ body.style.userSelect = originalBodyUserSelect;
256161
+ body.style.webkitUserSelect = originalBodyUserSelect;
256162
+ };
256163
+ }
256164
+ }, [containSelection]);
256165
+ React.useEffect(() => {
256166
+ if (ref.current) {
256167
+ const handlePointerUp = () => {
256168
+ setContainSelection(false);
256169
+ context.isPointerDownOnContentRef.current = false;
256170
+ setTimeout(() => {
256171
+ const hasSelection = document.getSelection()?.toString() !== "";
256172
+ if (hasSelection) context.hasSelectionRef.current = true;
256173
+ });
256174
+ };
256175
+ document.addEventListener("pointerup", handlePointerUp);
256176
+ return () => {
256177
+ document.removeEventListener("pointerup", handlePointerUp);
256178
+ context.hasSelectionRef.current = false;
256179
+ context.isPointerDownOnContentRef.current = false;
256180
+ };
256181
+ }
256182
+ }, [context.isPointerDownOnContentRef, context.hasSelectionRef]);
256183
+ React.useEffect(() => {
256184
+ if (ref.current) {
256185
+ const tabbables = getTabbableNodes(ref.current);
256186
+ tabbables.forEach((tabbable) => tabbable.setAttribute("tabindex", "-1"));
256187
+ }
256188
+ });
256189
+ return /* @__PURE__ */ jsx(
256190
+ DismissableLayer$1,
256191
+ {
256192
+ asChild: true,
256193
+ disableOutsidePointerEvents: false,
256194
+ onInteractOutside,
256195
+ onEscapeKeyDown,
256196
+ onPointerDownOutside,
256197
+ onFocusOutside: composeEventHandlers$1(onFocusOutside, (event) => {
256198
+ event.preventDefault();
256199
+ }),
256200
+ onDismiss: context.onDismiss,
256201
+ children: /* @__PURE__ */ jsx(
256202
+ Content,
256203
+ {
256204
+ ...popperScope,
256205
+ ...contentProps,
256206
+ onPointerDown: composeEventHandlers$1(contentProps.onPointerDown, (event) => {
256207
+ if (event.currentTarget.contains(event.target)) {
256208
+ setContainSelection(true);
256209
+ }
256210
+ context.hasSelectionRef.current = false;
256211
+ context.isPointerDownOnContentRef.current = true;
256212
+ }),
256213
+ ref: composedRefs,
256214
+ style: {
256215
+ ...contentProps.style,
256216
+ userSelect: containSelection ? "text" : void 0,
256217
+ // Safari requires prefix
256218
+ WebkitUserSelect: containSelection ? "text" : void 0,
256219
+ // re-namespace exposed content custom properties
256220
+ ...{
256221
+ "--radix-hover-card-content-transform-origin": "var(--radix-popper-transform-origin)",
256222
+ "--radix-hover-card-content-available-width": "var(--radix-popper-available-width)",
256223
+ "--radix-hover-card-content-available-height": "var(--radix-popper-available-height)",
256224
+ "--radix-hover-card-trigger-width": "var(--radix-popper-anchor-width)",
256225
+ "--radix-hover-card-trigger-height": "var(--radix-popper-anchor-height)"
256226
+ }
256227
+ }
256228
+ }
256229
+ )
256230
+ }
256231
+ );
256232
+ });
256233
+ var ARROW_NAME = "HoverCardArrow";
256234
+ var HoverCardArrow = React.forwardRef(
256235
+ (props, forwardedRef) => {
256236
+ const { __scopeHoverCard, ...arrowProps } = props;
256237
+ const popperScope = usePopperScope(__scopeHoverCard);
256238
+ return /* @__PURE__ */ jsx(Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
256239
+ }
256240
+ );
256241
+ HoverCardArrow.displayName = ARROW_NAME;
256242
+ function excludeTouch(eventHandler) {
256243
+ return (event) => event.pointerType === "touch" ? void 0 : eventHandler();
256244
+ }
256245
+ function getTabbableNodes(container) {
256246
+ const nodes = [];
256247
+ const walker = document.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
256248
+ acceptNode: (node) => {
256249
+ return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
256250
+ }
256251
+ });
256252
+ while (walker.nextNode()) nodes.push(walker.currentNode);
256253
+ return nodes;
256254
+ }
256255
+ var Root2 = HoverCard$1;
256256
+ var Trigger = HoverCardTrigger$1;
256257
+ var Portal = HoverCardPortal;
256258
+ var Content2 = HoverCardContent$1;
256259
+
256260
+ const HoverCard = Root2;
256261
+ const HoverCardTrigger = Trigger;
256262
+ const HoverCardContent = React.forwardRef(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (
256263
+ // Portal lifts the content out of the trigger's stacking/clipping
256264
+ // context. Without it, hover-cards rendered from inside `<Sidebar>`
256265
+ // (which has `overflow-hidden` and lives in a `z-10` container) get
256266
+ // clipped at the sidebar edge and hidden behind the main content.
256267
+ jsx(Portal, { children: jsx(Content2, { ref: ref, align: align, sideOffset: sideOffset, className: cn('bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 rounded-md border p-4 shadow-md outline-none', className), ...props }) })));
256268
+ HoverCardContent.displayName = Content2.displayName;
256269
+
256270
+ /** Muted icon/label color shared by every nav row. Exported so host apps
256271
+ * can build custom sections that match the shell's palette. */
256272
+ const PLATFORM_SIDEBAR_NAV_MUTED = '#5f5f61';
256273
+ const PLATFORM_SIDEBAR_FLYOUT_TITLE_COLOR = '#646676';
256274
+ const PLATFORM_SIDEBAR_FLYOUT_ITEM_COLOR = '#1f1f20';
256275
+ const PLATFORM_SIDEBAR_NAV_ACTIVE_BG_OPEN = 'data-[state=open]:bg-[#cfe8fa]/40 data-[state=open]:hover:bg-[#cfe8fa]/50';
256276
+ const SidebarNavCallbackContext = React.createContext({});
256277
+ const PlatformSidebarNavCallbackProvider = SidebarNavCallbackContext.Provider;
256278
+ /** After-nav callback (closes the mobile sheet, etc.) for items rendered
256279
+ * anywhere inside the PlatformSidebar — including host-app custom sections. */
256280
+ function usePlatformSidebarNavCallback() {
256281
+ return React.useContext(SidebarNavCallbackContext);
256282
+ }
256283
+ function PlatformSidebarCollapsedLabelFlyout({ label, children, }) {
256284
+ return (jsxs(HoverCard, { openDelay: 180, closeDelay: 120, children: [jsx(HoverCardTrigger, { asChild: true, children: children }), jsx(HoverCardContent, { side: "right", align: "start", sideOffset: 10, className: "z-[200] w-max max-w-[280px] min-w-[120px] rounded-2xl border border-[#e6e6e8] bg-white px-3 py-2.5 shadow-[0_10px_40px_-12px_rgba(15,23,42,0.18)]", children: jsx("span", { className: "text-[13px] leading-tight font-medium", style: { color: PLATFORM_SIDEBAR_FLYOUT_TITLE_COLOR }, children: label }) })] }));
256285
+ }
256286
+ function PlatformSidebarNavDivider() {
256287
+ return jsx("div", { role: "separator", className: "my-2.5 h-px w-full shrink-0 bg-[#e9e9ea]", "aria-hidden": true });
256288
+ }
256289
+ function PlatformSidebarSubNavItem({ id, label, href, exact, emptyState, onItemSelect, }) {
256290
+ const { onAfterNav } = usePlatformSidebarNavCallback();
256291
+ const router = useRouter();
256292
+ const pathname = usePathname();
256293
+ const [isPending, startTransition] = React.useTransition();
256294
+ const active = React.useMemo(() => {
256295
+ if (!href || !pathname)
256296
+ return false;
256297
+ if (href === '/')
256298
+ return pathname === '/';
256299
+ const normalizedHref = href.endsWith('/') ? href.slice(0, -1) : href;
256300
+ const normalizedPath = pathname.endsWith('/') ? pathname.slice(0, -1) : pathname;
256301
+ if (exact)
256302
+ return normalizedPath === normalizedHref;
256303
+ return normalizedPath === normalizedHref || normalizedPath.startsWith(`${normalizedHref}/`);
256304
+ }, [href, pathname, exact]);
256305
+ return (jsxs("button", { type: "button", disabled: isPending || emptyState, "aria-busy": isPending, className: cn('flex w-full min-w-0 cursor-pointer items-center gap-2 rounded-md px-2 py-2 text-left text-[14px] font-normal transition-colors', emptyState
256306
+ ? 'cursor-default text-[#94a3b8] italic hover:bg-transparent'
256307
+ : active
256308
+ ? 'bg-[#eef6fc] text-[#1e40af]'
256309
+ : 'text-[#4a5568] hover:bg-[#f4f4f4]', isPending && 'opacity-70'), onClick: () => {
256310
+ if (emptyState)
256311
+ return;
256312
+ const result = onItemSelect === null || onItemSelect === void 0 ? void 0 : onItemSelect(id);
256313
+ if (result === false)
256314
+ return;
256315
+ if (href) {
256316
+ if (/^https?:\/\//i.test(href)) {
256317
+ window.open(href, '_blank', 'noopener,noreferrer');
256318
+ }
256319
+ else {
256320
+ startTransition(() => {
256321
+ router.push(href);
256322
+ });
256323
+ }
256324
+ }
256325
+ onAfterNav === null || onAfterNav === void 0 ? void 0 : onAfterNav();
256326
+ }, children: [jsx("span", { className: "min-w-0 flex-1 truncate", children: label }), isPending && (jsx(LoaderCircle, { className: "size-3.5 shrink-0 animate-spin text-[#7d7e82]", "aria-hidden": true }))] }));
256327
+ }
256328
+ function PlatformSidebarCollapsedNavFlyout({ icon: Icon, label, items, onIconClick, onItemSelect, }) {
256329
+ const router = useRouter();
256330
+ const { onAfterNav } = usePlatformSidebarNavCallback();
256331
+ return (jsxs(HoverCard, { openDelay: 180, closeDelay: 120, children: [jsx(HoverCardTrigger, { asChild: true, children: jsx("button", { type: "button", onClick: onIconClick, className: "text-foreground inline-flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-[8px] transition-colors outline-none hover:bg-[#f0f0f0] focus-visible:ring-2 focus-visible:ring-[#c4c4c8] focus-visible:ring-offset-2 focus-visible:ring-offset-[#fafafa]", "aria-label": label, children: jsx(Icon, { className: "size-4 shrink-0", style: { color: PLATFORM_SIDEBAR_NAV_MUTED }, strokeWidth: 1.5 }) }) }), jsxs(HoverCardContent, { side: "right", align: "start", sideOffset: 10, className: "z-[200] flex max-h-[70vh] w-max max-w-[280px] min-w-[200px] flex-col rounded-2xl border border-[#e6e6e8] bg-white px-3 py-2.5 shadow-[0_10px_40px_-12px_rgba(15,23,42,0.18)]", children: [jsx("div", { className: "mb-1.5 flex shrink-0 flex-wrap items-center gap-2", children: jsx("span", { className: "text-[13px] leading-tight font-medium", style: { color: PLATFORM_SIDEBAR_FLYOUT_TITLE_COLOR }, children: label }) }), jsx("ul", { className: "scrollbar-thin m-0 min-h-0 list-none space-y-0 overflow-y-auto p-0 pr-1", children: items.map((item) => (jsx("li", { children: jsx("button", { type: "button", onClick: () => {
256332
+ if ((onItemSelect === null || onItemSelect === void 0 ? void 0 : onItemSelect(item.id)) === false)
256333
+ return;
256334
+ if (item.href)
256335
+ router.push(item.href);
256336
+ onAfterNav === null || onAfterNav === void 0 ? void 0 : onAfterNav();
256337
+ }, className: cn('flex w-full cursor-pointer rounded-md px-1.5 py-1.5 text-left text-[14px] leading-snug font-medium transition-colors', item.emptyState
256338
+ ? 'cursor-default text-[#94a3b8] italic hover:bg-transparent'
256339
+ : 'hover:bg-[#f4f4f4]'), style: item.emptyState ? undefined : { color: PLATFORM_SIDEBAR_FLYOUT_ITEM_COLOR }, children: item.label }) }, item.id))) })] })] }));
256340
+ }
256341
+ function PlatformSidebarNavSection({ collapsed, menu, open, onOpenChange, onCollapsedIconClick, onItemSelect, }) {
256342
+ const Icon = menu.icon;
256343
+ if (collapsed) {
256344
+ return (jsx(PlatformSidebarCollapsedNavFlyout, { icon: Icon, label: menu.label, items: menu.items, onIconClick: onCollapsedIconClick, onItemSelect: onItemSelect }));
256345
+ }
256346
+ const triggerClassName = cn('flex h-9 w-full min-w-0 cursor-pointer items-center gap-2 rounded-md px-2 text-left text-[14px] font-normal text-[#5f5f61] outline-none transition-colors hover:bg-[#f4f4f4] focus-visible:ring-2 focus-visible:ring-[#cfe8fa] focus-visible:ring-offset-2 focus-visible:ring-offset-[#fafafa]', PLATFORM_SIDEBAR_NAV_ACTIVE_BG_OPEN);
256347
+ return (jsxs(Collapsible, { open: open, onOpenChange: onOpenChange, className: "w-full", children: [jsx(CollapsibleTrigger, { asChild: true, children: jsxs("button", { type: "button", className: triggerClassName, children: [jsx(Icon, { className: "size-4 shrink-0", style: { color: PLATFORM_SIDEBAR_NAV_MUTED }, strokeWidth: 1.5 }), jsx("span", { className: "min-w-0 flex-1 truncate", children: menu.label }), open ? (jsx(ChevronDown, { className: "size-4 shrink-0 text-[#7d7e82]", "aria-hidden": true })) : (jsx(ChevronRight, { className: "size-4 shrink-0 text-[#7d7e82]", "aria-hidden": true }))] }) }), jsx(CollapsibleContent, { className: "overflow-hidden", children: jsx("div", { className: "mt-0.5 mr-1 ml-1.5 border-l-2 border-[#e2e8f0] pb-0.5 pl-2.5", children: jsx("ul", { className: "flex flex-col gap-0.5", role: "list", children: menu.items.map((item) => (jsx("li", { children: jsx(PlatformSidebarSubNavItem, { ...item, onItemSelect: onItemSelect }) }, item.id))) }) }) })] }));
256348
+ }
256349
+
256350
+ const DEFAULT_SUPPORT_URL = 'https://ibl.ai/docs';
256351
+ /**
256352
+ * The INVARIANT footer visibility rules, shared by every SPA:
256353
+ *
256354
+ * - Notifications: gated by the host-supplied user-type signal only —
256355
+ * regular users have notifications too.
256356
+ * - Live admins get the admin cluster narrowed by their RBAC platform
256357
+ * permissions (Invites, Management, Monetization) plus the ungated
256358
+ * Integrations and Advanced rows.
256359
+ * - Trial-gated non-admins (main/advertising tenants) and anonymous
256360
+ * users get the FULL admin cluster; the host's `onAction` handler is
256361
+ * expected to route clicks to the upgrade dialog / login instead of
256362
+ * the real surface.
256363
+ * - A genuine non-admin in an RBAC-enabled tenant sees only the rows
256364
+ * whose platform permission they actually hold. Integrations and
256365
+ * Advanced have no dedicated RBAC permission, so they stay
256366
+ * admin/trial/anonymous-only.
256367
+ */
256368
+ function usePlatformSidebarFooterActions(config) {
256369
+ const t = useT();
256370
+ const { isAdmin, isLiveAdmin, showTrialGatedAdminMenu, showAnonymousAdminMenu, enableRbac, rbacPermissions, tenantKey, currentTenant, notificationsAllowed, invitesUserTypeAllowed, } = config;
256371
+ return React.useMemo(() => {
256372
+ var _a;
256373
+ const actions = [];
256374
+ if (notificationsAllowed) {
256375
+ actions.push({
256376
+ id: 'notifications',
256377
+ label: t('platformSidebar.notifications'),
256378
+ icon: Bell,
256379
+ });
256380
+ }
256381
+ const tenantKeyForRbac = (_a = currentTenant === null || currentTenant === void 0 ? void 0 : currentTenant.key) !== null && _a !== void 0 ? _a : tenantKey;
256382
+ const hasInviteUserPermission = checkRbacPermission(rbacPermissions, `/platforms/${tenantKeyForRbac}/#can_invite`, enableRbac);
256383
+ // Management surfaces a row when ANY of its sub-tab permissions
256384
+ // resolves true — matches the Admin component's `hasManagementPermissions`.
256385
+ const hasManagementPermissions = checkRbacPermission(rbacPermissions, `/platforms/${tenantKeyForRbac}/#can_manage_users`, enableRbac) ||
256386
+ checkRbacPermission(rbacPermissions, `/groups/#list`, enableRbac) ||
256387
+ checkRbacPermission(rbacPermissions, `/policies/#list`, enableRbac) ||
256388
+ checkRbacPermission(rbacPermissions, `/roles/#list`, enableRbac) ||
256389
+ checkRbacPermission(rbacPermissions, `/usergroups/#list|/platforms/${tenantKeyForRbac}/#can_invite`, enableRbac) ||
256390
+ checkRbacPermission(rbacPermissions, `/watchedgroups/#list`, enableRbac);
256391
+ const hasMonetizationPermission = checkRbacPermission(rbacPermissions, `/platforms/${tenantKeyForRbac}/#can_sell_items`, enableRbac);
256392
+ const canMonetize = !!(currentTenant === null || currentTenant === void 0 ? void 0 : currentTenant.enable_monetization) && hasMonetizationPermission;
256393
+ if (isLiveAdmin) {
256394
+ if (hasInviteUserPermission && invitesUserTypeAllowed) {
256395
+ actions.push({ id: 'invites', label: t('platformSidebar.invites'), icon: Mail });
256396
+ }
256397
+ if (hasManagementPermissions) {
256398
+ actions.push({
256399
+ id: 'management',
256400
+ label: t('platformSidebar.management'),
256401
+ icon: Users,
256402
+ });
256403
+ }
256404
+ actions.push({
256405
+ id: 'integrations',
256406
+ label: t('platformSidebar.integrations'),
256407
+ icon: KeyRound,
256408
+ });
256409
+ if (canMonetize) {
256410
+ actions.push({
256411
+ id: 'monetization',
256412
+ label: t('platformSidebar.monetization'),
256413
+ icon: Coins,
256414
+ });
256415
+ }
256416
+ actions.push({
256417
+ id: 'advanced',
256418
+ label: t('platformSidebar.advanced'),
256419
+ icon: Settings$1,
256420
+ });
256421
+ }
256422
+ else if (showTrialGatedAdminMenu || showAnonymousAdminMenu) {
256423
+ // Full admin cluster; the host's onAction routes these to the
256424
+ // upgrade dialog (trial users) or the auth SPA login (anonymous).
256425
+ actions.push({ id: 'invites', label: t('platformSidebar.invites'), icon: Mail });
256426
+ actions.push({
256427
+ id: 'management',
256428
+ label: t('platformSidebar.management'),
256429
+ icon: Users,
256430
+ });
256431
+ actions.push({
256432
+ id: 'integrations',
256433
+ label: t('platformSidebar.integrations'),
256434
+ icon: KeyRound,
256435
+ });
256436
+ actions.push({
256437
+ id: 'monetization',
256438
+ label: t('platformSidebar.monetization'),
256439
+ icon: Coins,
256440
+ });
256441
+ actions.push({
256442
+ id: 'advanced',
256443
+ label: t('platformSidebar.advanced'),
256444
+ icon: Settings$1,
256445
+ });
256446
+ }
256447
+ else if (!isAdmin && enableRbac) {
256448
+ // A GENUINE non-admin in an RBAC-enabled tenant sees ONLY the rows
256449
+ // whose platform permission they actually hold. The `enableRbac`
256450
+ // guard is required because `checkRbacPermission` returns true when
256451
+ // RBAC is off, which would otherwise expose these to every non-admin.
256452
+ if (hasInviteUserPermission) {
256453
+ actions.push({ id: 'invites', label: t('platformSidebar.invites'), icon: Mail });
256454
+ }
256455
+ if (hasManagementPermissions) {
256456
+ actions.push({
256457
+ id: 'management',
256458
+ label: t('platformSidebar.management'),
256459
+ icon: Users,
256460
+ });
256461
+ }
256462
+ if (canMonetize) {
256463
+ actions.push({
256464
+ id: 'monetization',
256465
+ label: t('platformSidebar.monetization'),
256466
+ icon: Coins,
256467
+ });
256468
+ }
256469
+ }
256470
+ return actions;
256471
+ }, [
256472
+ t,
256473
+ isAdmin,
256474
+ isLiveAdmin,
256475
+ showTrialGatedAdminMenu,
256476
+ showAnonymousAdminMenu,
256477
+ enableRbac,
256478
+ rbacPermissions,
256479
+ tenantKey,
256480
+ currentTenant,
256481
+ notificationsAllowed,
256482
+ invitesUserTypeAllowed,
256483
+ ]);
256484
+ }
256485
+ function PlatformSidebarFooter({ collapsed, config, }) {
256486
+ var _a;
256487
+ const t = useT();
256488
+ const actions = usePlatformSidebarFooterActions(config);
256489
+ const supportUrl = (_a = config.supportUrl) !== null && _a !== void 0 ? _a : DEFAULT_SUPPORT_URL;
256490
+ if (collapsed) {
256491
+ return (jsxs("div", { className: "flex shrink-0 flex-col items-center gap-0.5 border-t border-[#e2e8f0] px-2 py-3", children: [actions.map((action) => {
256492
+ const Icon = action.icon;
256493
+ return (jsx(PlatformSidebarCollapsedLabelFlyout, { label: action.label, children: jsx("button", { type: "button", className: "inline-flex size-10 cursor-pointer items-center justify-center rounded-lg text-[#5f5f61] transition-colors hover:bg-[#f0f0f0]", "aria-label": action.label, onClick: () => config.onAction(action.id), children: jsx(Icon, { className: "size-4 shrink-0", strokeWidth: 1.5 }) }) }, action.id));
256494
+ }), jsx(PlatformSidebarCollapsedLabelFlyout, { label: t('platformSidebar.support'), children: jsx("a", { href: supportUrl, target: "_blank", rel: "noopener noreferrer", className: "inline-flex size-10 items-center justify-center rounded-lg text-[#5f5f61] transition-colors hover:bg-[#f0f0f0]", "aria-label": t('platformSidebar.support'), children: jsx(BookOpen, { className: "size-4 shrink-0", strokeWidth: 1.5 }) }) })] }));
256495
+ }
256496
+ return (jsxs("div", { className: "shrink-0 space-y-0.5 border-t border-[#e2e8f0] px-2 py-2", children: [actions.map((action) => {
256497
+ const Icon = action.icon;
256498
+ return (jsxs("button", { type: "button", className: "flex h-9 w-full min-w-0 cursor-pointer items-center gap-2 rounded-md px-2 text-left text-[14px] font-normal text-[#5f5f61] transition-colors hover:bg-[#f4f4f4]", onClick: () => config.onAction(action.id), children: [jsx(Icon, { className: "size-4 shrink-0", style: { color: PLATFORM_SIDEBAR_NAV_MUTED }, strokeWidth: 1.5 }), jsx("span", { className: "min-w-0 flex-1 truncate", children: action.label })] }, action.id));
256499
+ }), jsxs("a", { href: supportUrl, target: "_blank", rel: "noopener noreferrer", className: "flex h-9 w-full min-w-0 items-center gap-2 rounded-md px-2 text-left text-[14px] font-normal text-[#5f5f61] transition-colors hover:bg-[#f4f4f4]", children: [jsx(BookOpen, { className: "size-4 shrink-0", style: { color: PLATFORM_SIDEBAR_NAV_MUTED }, strokeWidth: 1.5 }), jsx("span", { className: "min-w-0 flex-1 truncate", children: t('platformSidebar.support') })] })] }));
256500
+ }
256501
+
256502
+ /**
256503
+ * Renders one of the organization-level tab components in its own
256504
+ * dialog — `Admin` (Users), `IntegrationsTab` (API), `BillingTab`,
256505
+ * `MonetizationTab`, `AdvancedTab` (Settings). Each sidebar footer
256506
+ * action opens this dialog with a different `tab`; the body switches
256507
+ * the component, so there's no shared tab rail and nothing to hide.
256508
+ *
256509
+ * `organization` doesn't have a sidebar footer entry today, but it's
256510
+ * defined for completeness so adding "Organization" later is a one-line
256511
+ * change.
256512
+ */
256513
+ function PlatformAccountSheet({ tab, onClose, tenantKey, username, email, onInviteClick, mainPlatformKey, authUrl, currentSpa, platformBaseDomain, }) {
256514
+ const t = useT();
256515
+ const open = tab !== null;
256516
+ const accountTabTitles = {
256517
+ organization: t('platformSidebar.accountTabOrganization'),
256518
+ management: t('platformSidebar.management'),
256519
+ integrations: t('platformSidebar.integrations'),
256520
+ monetization: t('platformSidebar.monetization'),
256521
+ advanced: t('platformSidebar.advanced'),
256522
+ billing: t('platformSidebar.accountTabBilling'),
256523
+ };
256524
+ const accountTabDescriptions = {
256525
+ organization: t('platformSidebar.accountDescOrganization'),
256526
+ management: t('platformSidebar.accountDescManagement'),
256527
+ integrations: t('platformSidebar.accountDescIntegrations'),
256528
+ monetization: t('platformSidebar.accountDescMonetization'),
256529
+ advanced: t('platformSidebar.accountDescAdvanced'),
256530
+ billing: t('platformSidebar.accountDescBilling'),
256531
+ };
256532
+ return (jsx(Dialog, { open: open, onOpenChange: (o) => !o && onClose(), children: jsxs(DialogContent, { className: "mx-auto my-auto flex h-[90vh] w-[95vw] max-w-none flex-col justify-between gap-0 rounded-lg p-0 sm:max-w-7xl", children: [jsxs(DialogHeader, { className: "flex-shrink-0 border-b border-gray-200 p-4 pt-[30px]", children: [jsx(DialogTitle, { className: "text-lg font-medium text-gray-900 dark:text-gray-100", children: tab ? accountTabTitles[tab] : '' }), jsx(DialogDescription, { className: "text-sm leading-relaxed text-gray-600", children: tab ? accountTabDescriptions[tab] : '' })] }), jsxs("div", { className: "min-h-0 flex-1 overflow-y-auto p-6", children: [tab === 'management' && (jsx(Admin, { tenant: tenantKey, onInviteClick: onInviteClick,
256533
+ // RBAC is off for this entry point — admin users see every
256534
+ // sub-tab. Tenant-level access is already gated by the
256535
+ // sidebar footer visibility rules.
256536
+ hasUserTabPermission: true, hasGroupsTabPermission: true, hasRolesTabPermission: true, hasPoliciesTabPermission: true, hasTeamsTabPermission: true, hasAlertsTabPermission: true, hasInviteUserPermission: true, hasCreateTeamPermission: true, enableRbac: false, rbacPermissions: {} })), tab === 'integrations' && jsx(IntegrationsTab, { tenantKey: tenantKey, username: username }), tab === 'billing' && (jsx(BillingTab, { tenant: tenantKey, username: username, mainPlatformKey: mainPlatformKey, currentUserEmail: email })), tab === 'monetization' && jsx(MonetizationTab, { platformKey: tenantKey, authURL: authUrl }), tab === 'advanced' && (jsx(AdvancedTab, { platformKey: tenantKey, username: username, currentSPA: currentSpa, authURL: authUrl, currentPlatformBaseDomain: platformBaseDomain }))] })] }) }));
256537
+ }
256538
+
256539
+ /**
256540
+ * Cross-SPA sidebar shell.
256541
+ *
256542
+ * Invariant chrome (owned here): header with logo slot + collapse
256543
+ * toggle, the collapsed icon rail behavior, single-open accordion state
256544
+ * for sections, and the footer cluster (Notifications, Invites,
256545
+ * Management, Integrations, Monetization, Advanced, Support) with its
256546
+ * RBAC/admin visibility rules.
256547
+ *
256548
+ * Variable content (owned by the host SPA): the primary action button
256549
+ * (e.g. "New Chat") and the nav sections — declarative menus or fully
256550
+ * custom sections rendered through `PlatformSidebarSectionContext`.
256551
+ */
256552
+ function PlatformSidebar({ logo, primaryAction, sections, footer, openSectionId, onOpenSectionChange, onAfterNav: onAfterNavProp, className, sidebarInnerClassName, }) {
256553
+ var _a;
256554
+ const t = useT();
256555
+ const { state, open, openMobile, setOpenMobile, toggleSidebar, isMobile } = useSidebar();
256556
+ const isExpanded = isMobile ? openMobile : open;
256557
+ const railCollapsed = !isMobile && !open;
256558
+ const onAfterNav = React.useCallback(() => {
256559
+ if (isMobile)
256560
+ setOpenMobile(false);
256561
+ onAfterNavProp === null || onAfterNavProp === void 0 ? void 0 : onAfterNavProp();
256562
+ }, [isMobile, setOpenMobile, onAfterNavProp]);
256563
+ // Single-open accordion for sections. Controlled when `openSectionId`
256564
+ // is provided, uncontrolled otherwise.
256565
+ const [internalOpenSection, setInternalOpenSection] = React.useState(null);
256566
+ const isControlled = openSectionId !== undefined;
256567
+ const openSection = isControlled ? openSectionId : internalOpenSection;
256568
+ const setOpenSection = React.useCallback((sectionId) => {
256569
+ if (!isControlled)
256570
+ setInternalOpenSection(sectionId);
256571
+ onOpenSectionChange === null || onOpenSectionChange === void 0 ? void 0 : onOpenSectionChange(sectionId);
256572
+ }, [isControlled, onOpenSectionChange]);
256573
+ const expandFromRail = React.useCallback((sectionId) => {
256574
+ toggleSidebar();
256575
+ setOpenSection(sectionId);
256576
+ }, [toggleSidebar, setOpenSection]);
256577
+ const sectionContext = React.useCallback((sectionId) => ({
256578
+ collapsed: railCollapsed,
256579
+ open: openSection === sectionId,
256580
+ onOpenChange: (o) => setOpenSection(o ? sectionId : null),
256581
+ expandFromRail: () => expandFromRail(sectionId),
256582
+ onAfterNav,
256583
+ }), [railCollapsed, openSection, setOpenSection, expandFromRail, onAfterNav]);
256584
+ const renderSection = (section) => {
256585
+ if (section.type === 'divider') {
256586
+ return jsx(PlatformSidebarNavDivider, {}, section.id);
256587
+ }
256588
+ if (section.type === 'custom') {
256589
+ return (jsx(React.Fragment, { children: section.render(sectionContext(section.id)) }, section.id));
256590
+ }
256591
+ if (section.menu.items.length === 0)
256592
+ return null;
256593
+ const ctx = sectionContext(section.menu.id);
256594
+ return (jsx(PlatformSidebarNavSection, { collapsed: railCollapsed, menu: section.menu, open: ctx.open, onOpenChange: ctx.onOpenChange, onItemSelect: section.onItemSelect, onCollapsedIconClick: railCollapsed ? ctx.expandFromRail : undefined }, section.menu.id));
256595
+ };
256596
+ const PrimaryActionIcon = (_a = primaryAction === null || primaryAction === void 0 ? void 0 : primaryAction.icon) !== null && _a !== void 0 ? _a : SquarePen;
256597
+ return (jsx(PlatformSidebarNavCallbackProvider, { value: { onAfterNav }, children: jsx(Sidebar, { collapsible: "icon", variant: "sidebar", className: cn('flex flex-col border-r border-[#e9e9ea]', className), sidebarInnerClassName: sidebarInnerClassName !== null && sidebarInnerClassName !== void 0 ? sidebarInnerClassName : 'bg-[#fafafa]', children: jsxs("aside", { "data-state": state, className: cn('flex h-full flex-col', railCollapsed ? 'w-[65px]' : 'w-full'), children: [jsx("div", { className: cn('shrink-0', railCollapsed ? 'px-2 pt-[18px] pb-[25px]' : 'px-[10px] py-[10px]'), children: jsxs("div", { className: cn('flex items-center gap-2 font-sans', railCollapsed ? 'justify-center px-0' : 'px-1'), children: [!railCollapsed && (jsxs(Fragment$1, { children: [jsx("span", { className: "size-7 shrink-0", "aria-hidden": true }), jsx("div", { className: "flex min-w-0 flex-1 items-center justify-center", children: logo })] })), jsx(PlatformSidebarCollapsedLabelFlyout, { label: isExpanded
256598
+ ? t('platformSidebar.collapseSidebar')
256599
+ : t('platformSidebar.expandSidebar'), children: jsx("button", { type: "button", onClick: toggleSidebar, className: "inline-flex size-7 shrink-0 cursor-pointer items-center justify-center rounded-md font-sans text-[#7d7e82] transition-colors hover:bg-[#f0f0f0]", "aria-label": isExpanded
256600
+ ? t('platformSidebar.collapseSidebar')
256601
+ : t('platformSidebar.expandSidebar'), "aria-expanded": isExpanded, children: jsx("svg", { width: 20, height: 20, viewBox: "0 0 20 20", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", className: "shrink-0", "aria-hidden": true, children: jsx("path", { d: "M16.5 4A1.5 1.5 0 0 1 18 5.5v9a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 2 14.5v-9A1.5 1.5 0 0 1 3.5 4zM7 15h9.5a.5.5 0 0 0 .5-.5v-9a.5.5 0 0 0-.5-.5H7zM3.5 5a.5.5 0 0 0-.5.5v9a.5.5 0 0 0 .5.5H6V5z" }) }) }) })] }) }), railCollapsed ? (jsxs("nav", { className: "flex min-h-0 flex-1 flex-col items-center gap-1 overflow-y-auto px-2 pt-1 pb-2", "aria-label": t('platformSidebar.mainNavigation'), children: [primaryAction && (jsx(PlatformSidebarCollapsedLabelFlyout, { label: primaryAction.label, children: jsx("button", { type: "button", onClick: primaryAction.onClick, className: "text-foreground inline-flex size-8 shrink-0 cursor-pointer items-center justify-center rounded-[8px] border border-[#e0e0e2] bg-white transition-colors hover:bg-[#f8f8f9]", "aria-label": primaryAction.label, children: jsx(PrimaryActionIcon, { className: "size-4 shrink-0", strokeWidth: 1.5 }) }) })), sections.map(renderSection)] })) : (jsx("nav", { className: "min-h-0 flex-1 overflow-y-auto px-2 pt-1 pb-2", "aria-label": t('platformSidebar.mainNavigation'), children: jsxs("div", { className: "space-y-0.5", children: [primaryAction && (jsx("div", { className: "px-0 pb-0.5", children: jsxs("button", { type: "button", onClick: primaryAction.onClick, className: "inline-flex h-9 w-full cursor-pointer items-center justify-start gap-2 rounded-[8px] border border-[#e0e0e2] bg-white px-2 text-[14px] font-normal text-[#687482] antialiased transition-colors hover:bg-[#f8f8f9] active:bg-[#f2f2f3]", children: [jsx(PrimaryActionIcon, { className: "size-4 shrink-0", strokeWidth: 1.5, "aria-hidden": true }), jsx("span", { children: primaryAction.label })] }) })), sections.map(renderSection)] }) })), footer && jsx(PlatformSidebarFooter, { collapsed: railCollapsed, config: footer })] }) }) }));
256602
+ }
256603
+
255518
256604
  function useTimeTracker(config) {
255519
256605
  var _a;
255520
- const router = useRouter();
256606
+ const router = useRouter$1();
255521
256607
  const trackerRef = useRef(null);
255522
256608
  const enabledRef = useRef((_a = config.enabled) !== null && _a !== void 0 ? _a : true);
255523
256609
  const getCurrentUrl = useCallback(() => {
@@ -256566,8 +257652,8 @@ const CourseContentLayout = ({ courseId, isPlatformAdmin, currentTenant, tabHref
256566
257652
  }, children: children }) })] })] })] }) }));
256567
257653
  };
256568
257654
 
256569
- const CustomSwitch = React.forwardRef(({ className, checked, onCheckedChange, ...props }, ref) => (jsx(Root$a, { checked: checked, onCheckedChange: onCheckedChange, className: cn('peer focus-visible:ring-ring focus-visible:ring-offset-background inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-blue-500 data-[state=unchecked]:bg-gray-200', className), ...props, ref: ref, children: jsx(Thumb, { className: cn('pointer-events-none block h-5 w-5 rounded-full bg-white shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0') }) })));
256570
- CustomSwitch.displayName = Root$a.displayName;
257655
+ const CustomSwitch = React.forwardRef(({ className, checked, onCheckedChange, ...props }, ref) => (jsx(Root$c, { checked: checked, onCheckedChange: onCheckedChange, className: cn('peer focus-visible:ring-ring focus-visible:ring-offset-background inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-blue-500 data-[state=unchecked]:bg-gray-200', className), ...props, ref: ref, children: jsx(Thumb, { className: cn('pointer-events-none block h-5 w-5 rounded-full bg-white shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0') }) })));
257656
+ CustomSwitch.displayName = Root$c.displayName;
256571
257657
 
256572
257658
  /**
256573
257659
  * Label contract for the Settings tab and its two sub-modals.
@@ -321530,5 +322616,5 @@ var index_es = /*#__PURE__*/Object.freeze({
321530
322616
  vectorsRatio: vectorsRatio
321531
322617
  });
321532
322618
 
321533
- export { AGENT_ACCESS_TAB_LABELS, AGENT_API_TAB_LABELS, AGENT_DATASETS_TAB_LABELS, AGENT_DISCLAIMERS_TAB_LABELS, AGENT_EMBED_TAB_LABELS, AGENT_HISTORY_TAB_LABELS, AGENT_LLM_TAB_LABELS, AGENT_LTI_TAB_LABELS, AGENT_MEMORY_TAB_LABELS, AGENT_PICKER_LABELS, AGENT_PRIVACY_TAB_LABELS, AGENT_PROMPTS_TAB_LABELS, AGENT_SAFETY_TAB_LABELS, AGENT_SCREENSHARE_TAB_LABELS, AGENT_SEARCH_LABELS, AGENT_SETTINGS_TAB_LABELS, AGENT_TASKS_TAB_LABELS, AGENT_TOOLS_TAB_LABELS, AGENT_VOICE_TAB_LABELS, Account, AgentAccessTab, AgentApiTab, AgentCard, AgentDatasetsTab, AgentDisclaimersTab, AgentEmbedTab, AgentEmptyState, AgentHistoryTab, AgentLLMTab, AgentLtiTab, AgentMemoryTab, AgentPrivacyTab, AgentPromptsTab, AgentSafetyTab, AgentScreenShareTab, AgentSearch, AgentSearchFilters, AgentSearchInput, AgentSettingsProvider, AgentSettingsTab, AgentTasksTab, AgentToolsTab, AgentVoiceTab, AppSidebar, CATALOGS, Chat, ClientErrorPage, ConversationStarters$1 as ConversationStarters, CopyButton, CopyMentorModal, CourseBox, CourseContentLayout, CourseContentTabPage, CreatePathwayModal, CredentialDetailModal, CredentialMiniBox, DEFAULT_LOCALE, DeleteMentorModal, EMPTY_PROGRAM_SETTINGS_FORM, EdxIframe, ErrorPage, GreetingMethod, McpTab, MediaBox, MentorSelectionGrid, NavBar, OrganizationTab, PathwayDetailModal, ProfileInfoCards, ProfileTabs, ProgramDetailModal, ProjectsSidebarDropdown, SUPPORTED_LOCALES, SidebarInset, SidebarProvider, SidebarTrigger, SsoLogin, StarButton, UserProfileDropdown, UserProfileModal, WebContainersI18nProvider, formatDateString, getCatalog, getLLMProviderDetails, initializeLocalStorageWithObject, isValidLocale, resolveAgentPickerLabels, resolveAgentSearchLabels, resolveSettingsTabLabels, useAgentSearch, useAgentSearchWithPagination, useAgentSettings, useAgentStar, useGetChatDetails, useSidebar, useT, useTimeTracker, useWebContainersI18n, useWebContainersLocale };
322619
+ export { AGENT_ACCESS_TAB_LABELS, AGENT_API_TAB_LABELS, AGENT_DATASETS_TAB_LABELS, AGENT_DISCLAIMERS_TAB_LABELS, AGENT_EMBED_TAB_LABELS, AGENT_HISTORY_TAB_LABELS, AGENT_LLM_TAB_LABELS, AGENT_LTI_TAB_LABELS, AGENT_MEMORY_TAB_LABELS, AGENT_PICKER_LABELS, AGENT_PRIVACY_TAB_LABELS, AGENT_PROMPTS_TAB_LABELS, AGENT_SAFETY_TAB_LABELS, AGENT_SCREENSHARE_TAB_LABELS, AGENT_SEARCH_LABELS, AGENT_SETTINGS_TAB_LABELS, AGENT_TASKS_TAB_LABELS, AGENT_TOOLS_TAB_LABELS, AGENT_VOICE_TAB_LABELS, Account, AgentAccessTab, AgentApiTab, AgentCard, AgentDatasetsTab, AgentDisclaimersTab, AgentEmbedTab, AgentEmptyState, AgentHistoryTab, AgentLLMTab, AgentLtiTab, AgentMemoryTab, AgentPrivacyTab, AgentPromptsTab, AgentSafetyTab, AgentScreenShareTab, AgentSearch, AgentSearchFilters, AgentSearchInput, AgentSettingsProvider, AgentSettingsTab, AgentTasksTab, AgentToolsTab, AgentVoiceTab, AppSidebar, CATALOGS, Chat, ClientErrorPage, ConversationStarters$1 as ConversationStarters, CopyButton, CopyMentorModal, CourseBox, CourseContentLayout, CourseContentTabPage, CreatePathwayModal, CredentialDetailModal, CredentialMiniBox, DEFAULT_LOCALE, DeleteMentorModal, EMPTY_PROGRAM_SETTINGS_FORM, EdxIframe, ErrorPage, GreetingMethod, McpTab, MediaBox, MentorSelectionGrid, NavBar, OrganizationTab, PLATFORM_SIDEBAR_FLYOUT_ITEM_COLOR, PLATFORM_SIDEBAR_FLYOUT_TITLE_COLOR, PLATFORM_SIDEBAR_NAV_ACTIVE_BG_OPEN, PLATFORM_SIDEBAR_NAV_MUTED, PathwayDetailModal, PlatformAccountSheet, PlatformSidebar, PlatformSidebarCollapsedLabelFlyout, PlatformSidebarCollapsedNavFlyout, PlatformSidebarFooter, PlatformSidebarNavDivider, PlatformSidebarNavSection, PlatformSidebarSubNavItem, ProfileInfoCards, ProfileTabs, ProgramDetailModal, ProjectsSidebarDropdown, SUPPORTED_LOCALES, SidebarInset, SidebarProvider, SidebarTrigger, SsoLogin, StarButton, UserProfileDropdown, UserProfileModal, WebContainersI18nProvider, formatDateString, getCatalog, getLLMProviderDetails, initializeLocalStorageWithObject, isValidLocale, resolveAgentPickerLabels, resolveAgentSearchLabels, resolveSettingsTabLabels, useAgentSearch, useAgentSearchWithPagination, useAgentSettings, useAgentStar, useGetChatDetails, usePlatformSidebarFooterActions, usePlatformSidebarNavCallback, useSidebar, useT, useTimeTracker, useWebContainersI18n, useWebContainersLocale };
321534
322620
  //# sourceMappingURL=index.esm.js.map