@overmap-ai/blocks 1.0.40-phone-input.0 → 1.0.40-slide-out-resize-handle.0

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.
Files changed (39) hide show
  1. package/dist/Layout/SlideOutClose.d.ts +5 -0
  2. package/dist/Layout/SlideOutContent.d.ts +6 -0
  3. package/dist/Layout/SlideOutHandle.d.ts +5 -0
  4. package/dist/Layout/SlideOutOverlay.d.ts +2 -5
  5. package/dist/Layout/SlideOutRoot.d.ts +10 -0
  6. package/dist/Layout/SlideOutTrigger.d.ts +2 -6
  7. package/dist/Layout/SlideOutViewport.d.ts +5 -0
  8. package/dist/Layout/context.d.ts +0 -1
  9. package/dist/Layout/index.d.ts +11 -3
  10. package/dist/Layout/typings.d.ts +3 -0
  11. package/dist/LuIcon/LuIcon.d.ts +4 -6
  12. package/dist/LuIcon/index.d.ts +1 -1
  13. package/dist/LuIcon/typings.d.ts +2 -2
  14. package/dist/SlideOut/Close.d.ts +4 -0
  15. package/dist/SlideOut/Content.d.ts +12 -0
  16. package/dist/SlideOut/Handle.d.ts +5 -0
  17. package/dist/SlideOut/Overlay.d.ts +4 -0
  18. package/dist/SlideOut/Root.d.ts +8 -0
  19. package/dist/SlideOut/Trigger.d.ts +4 -0
  20. package/dist/SlideOut/Viewport.d.ts +4 -0
  21. package/dist/SlideOut/constants.d.ts +1 -0
  22. package/dist/SlideOut/context.d.ts +16 -0
  23. package/dist/SlideOut/index.d.ts +18 -1
  24. package/dist/SlideOut/typings.d.ts +2 -0
  25. package/dist/blocks.js +373 -360
  26. package/dist/blocks.js.map +1 -1
  27. package/dist/blocks.umd.cjs +371 -356
  28. package/dist/blocks.umd.cjs.map +1 -1
  29. package/dist/index.d.ts +0 -1
  30. package/package.json +1 -2
  31. package/dist/Layout/SlideOut.d.ts +0 -20
  32. package/dist/PhoneNumberInput/CountrySelect.d.ts +0 -11
  33. package/dist/PhoneNumberInput/FlagComponent.d.ts +0 -2
  34. package/dist/PhoneNumberInput/InputComponent.d.ts +0 -5
  35. package/dist/PhoneNumberInput/PhoneNumberInput.d.ts +0 -6
  36. package/dist/PhoneNumberInput/context.d.ts +0 -4
  37. package/dist/PhoneNumberInput/index.d.ts +0 -2
  38. package/dist/PhoneNumberInput/typings.d.ts +0 -9
  39. package/dist/SlideOut/SlideOut.d.ts +0 -49
@@ -1,6 +1,6 @@
1
1
  (function(global, factory) {
2
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@radix-ui/react-alert-dialog"), require("react/jsx-runtime"), require("class-variance-authority"), require("react"), require("@radix-ui/react-avatar"), require("@radix-ui/react-checkbox"), require("react-responsive"), require("cmdk"), require("@radix-ui/react-dialog"), require("react-day-picker"), require("lucide-react/dynamic"), require("@radix-ui/react-hover-card"), require("react-transition-group"), require("react-dom"), require("@radix-ui/react-slot"), require("@floating-ui/react"), require("@radix-ui/react-separator"), require("@radix-ui/react-one-time-password-field"), require("react-error-boundary"), require("react-phone-number-input"), require("lucide-react"), require("react-phone-number-input/min"), require("@radix-ui/react-popover"), require("@radix-ui/react-progress"), require("@radix-ui/react-radio-group"), require("@radix-ui/react-toggle-group"), require("@radix-ui/react-tabs"), require("@radix-ui/react-slider"), require("@radix-ui/react-switch"), require("@radix-ui/react-toast"), require("@radix-ui/react-toggle"), require("@radix-ui/react-tooltip")) : typeof define === "function" && define.amd ? define(["exports", "@radix-ui/react-alert-dialog", "react/jsx-runtime", "class-variance-authority", "react", "@radix-ui/react-avatar", "@radix-ui/react-checkbox", "react-responsive", "cmdk", "@radix-ui/react-dialog", "react-day-picker", "lucide-react/dynamic", "@radix-ui/react-hover-card", "react-transition-group", "react-dom", "@radix-ui/react-slot", "@floating-ui/react", "@radix-ui/react-separator", "@radix-ui/react-one-time-password-field", "react-error-boundary", "react-phone-number-input", "lucide-react", "react-phone-number-input/min", "@radix-ui/react-popover", "@radix-ui/react-progress", "@radix-ui/react-radio-group", "@radix-ui/react-toggle-group", "@radix-ui/react-tabs", "@radix-ui/react-slider", "@radix-ui/react-switch", "@radix-ui/react-toast", "@radix-ui/react-toggle", "@radix-ui/react-tooltip"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.blocks = {}, global.RadixAlertDialog, global.jsxRuntime, global.classVarianceAuthority, global.react, global.RadixAvatar, global.RadixCheckbox, global.reactResponsive, global.cmdk, global.RadixDialog, global.reactDayPicker, global.dynamic, global.RadixHoverCard, global.reactTransitionGroup, global.ReactDOM, global.reactSlot, global.react$1, global.RadixSeparator, global.RadixOneTimePasswordField, global.reactErrorBoundary, global.PhoneInput, global.lucideReact, global.min, global.RadixPopover, global.RadixProgress, global.RadixRadioGroup, global.RadixToggleGroup, global.RadixTabs, global.RadixSlider, global.RadixSwitch, global.RadixToast, global.Toggle, global.RadixTooltip));
3
- })(this, function(exports2, RadixAlertDialog, jsxRuntime, classVarianceAuthority, react, RadixAvatar, RadixCheckbox, reactResponsive, cmdk, RadixDialog, reactDayPicker, dynamic, RadixHoverCard, reactTransitionGroup, ReactDOM, reactSlot, react$1, RadixSeparator, RadixOneTimePasswordField, reactErrorBoundary, PhoneInput, lucideReact, min, RadixPopover, RadixProgress, RadixRadioGroup, RadixToggleGroup, RadixTabs, RadixSlider, RadixSwitch, RadixToast, Toggle, RadixTooltip) {
2
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@radix-ui/react-alert-dialog"), require("react/jsx-runtime"), require("class-variance-authority"), require("react"), require("@radix-ui/react-avatar"), require("@radix-ui/react-checkbox"), require("react-responsive"), require("cmdk"), require("@radix-ui/react-dialog"), require("react-day-picker"), require("lucide-react"), require("@radix-ui/react-hover-card"), require("@radix-ui/react-slot"), require("react-transition-group"), require("react-transition-group/CSSTransition"), require("react-dom"), require("@floating-ui/react"), require("@radix-ui/react-separator"), require("@radix-ui/react-one-time-password-field"), require("react-error-boundary"), require("@radix-ui/react-popover"), require("@radix-ui/react-progress"), require("@radix-ui/react-radio-group"), require("@radix-ui/react-toggle-group"), require("@radix-ui/react-tabs"), require("@radix-ui/react-slider"), require("@radix-ui/react-switch"), require("@radix-ui/react-toast"), require("@radix-ui/react-toggle"), require("@radix-ui/react-tooltip")) : typeof define === "function" && define.amd ? define(["exports", "@radix-ui/react-alert-dialog", "react/jsx-runtime", "class-variance-authority", "react", "@radix-ui/react-avatar", "@radix-ui/react-checkbox", "react-responsive", "cmdk", "@radix-ui/react-dialog", "react-day-picker", "lucide-react", "@radix-ui/react-hover-card", "@radix-ui/react-slot", "react-transition-group", "react-transition-group/CSSTransition", "react-dom", "@floating-ui/react", "@radix-ui/react-separator", "@radix-ui/react-one-time-password-field", "react-error-boundary", "@radix-ui/react-popover", "@radix-ui/react-progress", "@radix-ui/react-radio-group", "@radix-ui/react-toggle-group", "@radix-ui/react-tabs", "@radix-ui/react-slider", "@radix-ui/react-switch", "@radix-ui/react-toast", "@radix-ui/react-toggle", "@radix-ui/react-tooltip"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.blocks = {}, global.RadixAlertDialog, global.jsxRuntime, global.classVarianceAuthority, global.react, global.RadixAvatar, global.RadixCheckbox, global.reactResponsive, global.cmdk, global.RadixDialog, global.reactDayPicker, global.lucideReact, global.RadixHoverCard, global.reactSlot, global.reactTransitionGroup, null, global.ReactDOM, global.react$1, global.RadixSeparator, global.RadixOneTimePasswordField, global.reactErrorBoundary, global.RadixPopover, global.RadixProgress, global.RadixRadioGroup, global.RadixToggleGroup, global.RadixTabs, global.RadixSlider, global.RadixSwitch, global.RadixToast, global.Toggle, global.RadixTooltip));
3
+ })(this, function(exports2, RadixAlertDialog, jsxRuntime, classVarianceAuthority, react, RadixAvatar, RadixCheckbox, reactResponsive, cmdk, RadixDialog, reactDayPicker, lucideReact, RadixHoverCard, reactSlot, reactTransitionGroup, CSSTransition, ReactDOM, react$1, RadixSeparator, RadixOneTimePasswordField, reactErrorBoundary, RadixPopover, RadixProgress, RadixRadioGroup, RadixToggleGroup, RadixTabs, RadixSlider, RadixSwitch, RadixToast, Toggle, RadixTooltip) {
4
4
  "use strict";
5
5
  function _interopNamespaceDefault(e) {
6
6
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
@@ -1655,21 +1655,21 @@
1655
1655
  PageTriggerItem: CommandMenuPageTriggerItem
1656
1656
  };
1657
1657
  const LuIcon = react.memo((props) => {
1658
- const { ref, icon, className, size = "1em", ...rest } = props;
1659
- return /* @__PURE__ */ jsxRuntime.jsx(dynamic.DynamicIcon, { ref, className: classVarianceAuthority.cx("shrink-0", className), size, name: icon, ...rest });
1658
+ const { ref, icon: Icon, className, size = "1em", ...rest } = props;
1659
+ return /* @__PURE__ */ jsxRuntime.jsx(Icon, { ref, className: classVarianceAuthority.cx("shrink-0", className), size, ...rest });
1660
1660
  });
1661
1661
  LuIcon.displayName = "LuIcon";
1662
1662
  const Chevron = (props) => {
1663
1663
  const { orientation, ...rest } = props;
1664
1664
  switch (orientation) {
1665
1665
  case "up":
1666
- return /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: "chevron-up", ...rest });
1666
+ return /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: lucideReact.ChevronUp, ...rest });
1667
1667
  case "down":
1668
- return /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: "chevron-down", ...rest });
1668
+ return /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: lucideReact.ChevronDown, ...rest });
1669
1669
  case "left":
1670
- return /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: "chevron-left", ...rest });
1670
+ return /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: lucideReact.ChevronLeft, ...rest });
1671
1671
  default:
1672
- return /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: "chevron-right", ...rest });
1672
+ return /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: lucideReact.ChevronRight, ...rest });
1673
1673
  }
1674
1674
  };
1675
1675
  const rootCva = classVarianceAuthority.cva(["relative", "size-max"], {
@@ -2234,9 +2234,9 @@
2234
2234
  const LayoutContext = react.createContext({});
2235
2235
  const useLayoutContext = () => react.useContext(LayoutContext);
2236
2236
  const LayoutContainer = react.memo((props) => {
2237
- const { ref, children, className, ...rest } = props;
2237
+ const { ref, children, ...rest } = props;
2238
2238
  const { hideLayout = false } = useLayoutContext();
2239
- return !hideLayout && /* @__PURE__ */ jsxRuntime.jsx("div", { className: classVarianceAuthority.cx("flex h-full grow", className), ref, ...rest, children });
2239
+ return !hideLayout && /* @__PURE__ */ jsxRuntime.jsx("div", { ref, ...rest, children });
2240
2240
  });
2241
2241
  LayoutContainer.displayName = "LayoutContainer";
2242
2242
  const LayoutRoot = react.memo((props) => {
@@ -2263,6 +2263,23 @@
2263
2263
  return /* @__PURE__ */ jsxRuntime.jsx(LayoutContext.Provider, { value: contextValue, children });
2264
2264
  });
2265
2265
  LayoutRoot.displayName = "LayoutRoot";
2266
+ const SlideOutRootContext = react.createContext({});
2267
+ const SlideOutContextContext = react.createContext({});
2268
+ const SlideOutClose = react.memo((props) => {
2269
+ const { ref, onClick, disabled, ...rest } = props;
2270
+ const { setOpen } = react.use(SlideOutRootContext);
2271
+ const handleClick = react.useCallback(
2272
+ (e) => {
2273
+ onClick == null ? void 0 : onClick(e);
2274
+ if (e.defaultPrevented) return;
2275
+ setOpen(false);
2276
+ },
2277
+ [onClick, setOpen]
2278
+ );
2279
+ return /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slot, { ref, onClick: handleClick, "data-disabled": disabled ?? false, ...rest });
2280
+ });
2281
+ SlideOutClose.displayName = "SlideOutClose";
2282
+ const TIMEOUT_DURATION = 200;
2266
2283
  function usePointerDownOutside(onPointerDownOutside, ownerElement = globalThis == null ? void 0 : globalThis.document.body) {
2267
2284
  const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);
2268
2285
  const isPointerInsideReactTreeRef = react.useRef(false);
@@ -2324,293 +2341,372 @@
2324
2341
  return (_a = callbackRef.current) == null ? void 0 : _a.call(callbackRef, ...args);
2325
2342
  }, []);
2326
2343
  }
2327
- const TIMEOUT_DURATION = 200;
2328
- const SlideOut = react.memo((props) => {
2329
- const {
2330
- ref,
2331
- children,
2332
- className,
2333
- style,
2334
- open,
2335
- hide = false,
2336
- modal = false,
2337
- overlayComponent,
2338
- resizeable = true,
2339
- side,
2340
- position = "relative",
2341
- initialWidth,
2342
- minWidth,
2343
- maxWidth,
2344
- onDismiss,
2345
- onOpening,
2346
- onClosed,
2347
- content,
2348
- ...otherProps
2349
- } = props;
2350
- const isLeft = side === "left";
2351
- const [parentContainer, setParentContainer] = react.useState(document.body);
2352
- const childrenContainerRef = react.useRef(null);
2353
- const localRef = react.useRef(null);
2354
- const nodeRef = react.useRef(null);
2355
- const mergedRefs = mergeRefs([ref, localRef, nodeRef]);
2356
- const [isResizing, setIsResizing] = react.useState(false);
2357
- const [computedWidth, setComputedWidth] = react.useState(null);
2358
- const prevClientX = react.useRef(null);
2359
- const handleDismiss = react.useCallback(() => {
2360
- if (modal && onDismiss) {
2361
- onDismiss();
2362
- }
2363
- }, [modal, onDismiss]);
2364
- const handleAssignParentContainer = react.useCallback((element) => {
2365
- if (element) {
2366
- setParentContainer(element);
2344
+ const SlideOutContent = react.memo((props) => {
2345
+ const { ref, children, style, side, type, resizeable = false, initialSize, minSize, maxSize, hide, ...rest } = props;
2346
+ const internalRef = react.useRef(null);
2347
+ const { open, setOpen, parentElement, modal } = react.use(SlideOutRootContext);
2348
+ const [computedSize, setComputedSize] = react.useState(null);
2349
+ const handleClose = react.useCallback(() => {
2350
+ if (modal) setOpen(false);
2351
+ }, [modal, setOpen]);
2352
+ const { onPointerDownCapture: handlePointerDownCapture } = usePointerDownOutside(
2353
+ handleClose,
2354
+ parentElement ?? void 0
2355
+ );
2356
+ react.useLayoutEffect(() => {
2357
+ if (!open || !internalRef.current) return;
2358
+ const { offsetWidth, offsetHeight } = internalRef.current;
2359
+ switch (side) {
2360
+ case "left":
2361
+ case "right":
2362
+ setComputedSize(offsetWidth);
2363
+ break;
2364
+ case "top":
2365
+ case "bottom":
2366
+ setComputedSize(offsetHeight);
2367
+ }
2368
+ }, [open, side]);
2369
+ const computedStyle = react.useMemo(() => {
2370
+ switch (side) {
2371
+ case "left":
2372
+ return {
2373
+ ...style,
2374
+ left: 0,
2375
+ width: computedSize ?? initialSize,
2376
+ maxWidth: maxSize,
2377
+ minWidth: minSize,
2378
+ position: type === "inline" ? "relative" : "absolute",
2379
+ "--slide-out-size": `${computedSize}px`
2380
+ };
2381
+ case "right":
2382
+ return {
2383
+ ...style,
2384
+ right: 0,
2385
+ width: computedSize ?? initialSize,
2386
+ maxWidth: maxSize,
2387
+ minWidth: minSize,
2388
+ position: type === "inline" ? "relative" : "absolute",
2389
+ "--slide-out-size": `${computedSize}px`
2390
+ };
2391
+ case "top":
2392
+ return {
2393
+ ...style,
2394
+ top: 0,
2395
+ height: computedSize ?? initialSize,
2396
+ maxHeight: maxSize,
2397
+ minHeight: minSize,
2398
+ position: type === "inline" ? "relative" : "absolute",
2399
+ "--slide-out-size": `${computedSize}px`
2400
+ };
2401
+ case "bottom":
2402
+ return {
2403
+ ...style,
2404
+ bottom: 0,
2405
+ height: computedSize ?? initialSize,
2406
+ maxHeight: maxSize,
2407
+ minHeight: minSize,
2408
+ position: type === "inline" ? "relative" : "absolute",
2409
+ "--slide-out-size": `${computedSize}px`
2410
+ };
2367
2411
  }
2368
- }, []);
2369
- react.useEffect(() => {
2370
- if (!childrenContainerRef.current) return;
2371
- const originalParentPointerEvents = childrenContainerRef.current.style.pointerEvents;
2372
- if (open && modal) {
2373
- childrenContainerRef.current.style.pointerEvents = "none";
2412
+ }, [computedSize, initialSize, maxSize, minSize, side, style, type]);
2413
+ const transitionClassNames = react.useMemo(() => {
2414
+ switch (side) {
2415
+ case "left":
2416
+ return {
2417
+ enter: "-ml-(--slide-out-size)",
2418
+ enterActive: "ease-linear duration-200 transition-[margin-left] ml-0",
2419
+ enterDone: "ml-0",
2420
+ exitActive: "ease-linear duration-200 transition-[margin-left] -ml-(--slide-out-size)",
2421
+ exitDone: "-ml-(--slide-out-size)"
2422
+ };
2423
+ case "right":
2424
+ return {
2425
+ enter: "-mr-(--slide-out-size)",
2426
+ enterActive: "ease-linear duration-200 transition-[margin-right] mr-0",
2427
+ enterDone: "mr-0",
2428
+ exitActive: "ease-linear duration-200 transition-[margin-right] -mr-(--slide-out-size)",
2429
+ exitDone: "-mr-(--slide-out-size)"
2430
+ };
2431
+ case "top":
2432
+ return {
2433
+ enter: "-mt-(--slide-out-size)",
2434
+ enterActive: "ease-linear duration-200 transition-[margin-top] mt-0",
2435
+ enterDone: "mt-0",
2436
+ exitActive: "ease-linear duration-200 transition-[margin-top] -mt-(--slide-out-size)",
2437
+ exitDone: "-mt-(--slide-out-size)"
2438
+ };
2439
+ case "bottom":
2440
+ return {
2441
+ enter: "-mb-(--slide-out-size)",
2442
+ enterActive: "ease-linear duration-200 transition-[margin-bottom] mb-0",
2443
+ enterDone: "mb-0",
2444
+ exitActive: "ease-linear duration-200 transition-[margin-bottom] -mb-(--slide-out-size)",
2445
+ exitDone: "-mb-(--slide-out-size)"
2446
+ };
2374
2447
  }
2375
- return () => {
2376
- if (childrenContainerRef.current) {
2377
- childrenContainerRef.current.style.pointerEvents = originalParentPointerEvents;
2378
- }
2379
- };
2380
- }, [modal, open, parentContainer.style]);
2381
- const { onPointerDownCapture: handlePointerDownCapture } = usePointerDownOutside(handleDismiss, parentContainer);
2382
- const CSSTransitionClassNames = react.useMemo(
2448
+ }, [side]);
2449
+ const contextValue = react.useMemo(
2383
2450
  () => ({
2384
- enter: isLeft ? "-ml-(--slide-out-width)" : "-mr-(--slide-out-width)",
2385
- enterActive: isLeft ? "ease-linear duration-200 transition-[margin-left] ml-0" : "ease-linear duration-200 transition-[margin-right] mr-0",
2386
- enterDone: isLeft ? "ml-0" : "mr-0",
2387
- exitActive: isLeft ? "ease-linear duration-200 transition-[margin-left] -ml-(--slide-out-width)" : "ease-linear duration-200 transition-[margin-right] -mr-(--slide-out-width)",
2388
- exitDone: isLeft ? "-ml-(--slide-out-width)" : "-mr-(--slide-out-width)"
2451
+ side,
2452
+ type,
2453
+ resizeable,
2454
+ computedSize,
2455
+ setComputedSize
2389
2456
  }),
2390
- [isLeft]
2457
+ [computedSize, resizeable, side, type]
2391
2458
  );
2392
- const handleMouseDown = react.useCallback((e) => {
2393
- const { clientX } = e;
2394
- prevClientX.current = clientX;
2395
- setIsResizing(true);
2396
- }, []);
2397
- const handleMouseMove = react.useCallback(
2459
+ return !hide ? (
2460
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2461
+ // @ts-ignore
2462
+ /* @__PURE__ */ jsxRuntime.jsx(
2463
+ reactTransitionGroup.CSSTransition,
2464
+ {
2465
+ classNames: transitionClassNames,
2466
+ in: open,
2467
+ timeout: TIMEOUT_DURATION,
2468
+ unmountOnExit: true,
2469
+ mountOnEnter: true,
2470
+ nodeRef: internalRef,
2471
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2472
+ "div",
2473
+ {
2474
+ ref: mergeRefs([ref, internalRef]),
2475
+ onPointerDownCapture: handlePointerDownCapture,
2476
+ "data-open": open,
2477
+ "data-side": side,
2478
+ "data-type": type,
2479
+ style: computedStyle,
2480
+ ...rest,
2481
+ children: /* @__PURE__ */ jsxRuntime.jsx(SlideOutContextContext, { value: contextValue, children })
2482
+ }
2483
+ )
2484
+ }
2485
+ )
2486
+ ) : null;
2487
+ });
2488
+ SlideOutContent.displayName = "SlideOutContent";
2489
+ const SlideOutHandle = react.memo((props) => {
2490
+ const { ref, onMouseDown, disabled, ...rest } = props;
2491
+ const prevClientCoord = react.useRef(null);
2492
+ const [isResizing, setIsResizing] = react.useState(false);
2493
+ const { side, resizeable, computedSize, setComputedSize } = react.use(SlideOutContextContext);
2494
+ const computedDisabled = disabled ?? !resizeable;
2495
+ const setPrevClientCoord = react.useCallback(
2496
+ (clientX, clientY) => {
2497
+ switch (side) {
2498
+ case "left":
2499
+ prevClientCoord.current = clientX;
2500
+ break;
2501
+ case "right":
2502
+ prevClientCoord.current = clientX;
2503
+ break;
2504
+ case "top":
2505
+ prevClientCoord.current = clientY;
2506
+ break;
2507
+ case "bottom":
2508
+ prevClientCoord.current = clientY;
2509
+ break;
2510
+ }
2511
+ },
2512
+ [side]
2513
+ );
2514
+ const handlePointerDown = react.useCallback(
2398
2515
  (e) => {
2399
- if (!isResizing) return;
2400
- const { clientX } = e;
2401
- const deltaX = (clientX - prevClientX.current) * (isLeft ? 1 : -1);
2402
- prevClientX.current = clientX;
2403
- setComputedWidth((prevWidth) => prevWidth + deltaX);
2516
+ onMouseDown == null ? void 0 : onMouseDown(e);
2517
+ if (e.defaultPrevented || computedDisabled) return;
2518
+ e.preventDefault();
2519
+ setPrevClientCoord(e.clientX, e.clientY);
2520
+ setIsResizing(true);
2404
2521
  },
2405
- [isLeft, isResizing]
2522
+ [computedDisabled, onMouseDown, setPrevClientCoord]
2406
2523
  );
2407
- const handleMouseUp = react.useCallback(() => {
2408
- if (!isResizing) return;
2409
- prevClientX.current = null;
2524
+ const handlePointerMove = react.useCallback(
2525
+ (e) => {
2526
+ if (!isResizing || !prevClientCoord.current || computedDisabled) return;
2527
+ e.preventDefault();
2528
+ const { clientX, clientY } = e;
2529
+ let delta = 0;
2530
+ switch (side) {
2531
+ case "left":
2532
+ delta = clientX - prevClientCoord.current;
2533
+ break;
2534
+ case "right":
2535
+ delta = (clientX - prevClientCoord.current) * -1;
2536
+ break;
2537
+ case "top":
2538
+ delta = clientY - prevClientCoord.current;
2539
+ break;
2540
+ case "bottom":
2541
+ delta = (clientY - prevClientCoord.current) * -1;
2542
+ break;
2543
+ }
2544
+ setPrevClientCoord(clientX, clientY);
2545
+ setComputedSize(computedSize + delta);
2546
+ },
2547
+ [computedDisabled, computedSize, isResizing, setComputedSize, setPrevClientCoord, side]
2548
+ );
2549
+ const handlePointerUp = react.useCallback(() => {
2550
+ if (!isResizing || computedDisabled) return;
2551
+ prevClientCoord.current = null;
2410
2552
  setIsResizing(false);
2411
- }, [isResizing]);
2553
+ }, [computedDisabled, isResizing]);
2412
2554
  react.useEffect(() => {
2413
- window.addEventListener("mousemove", handleMouseMove);
2414
- window.addEventListener("mouseup", handleMouseUp);
2555
+ document.addEventListener("pointermove", handlePointerMove);
2556
+ document.addEventListener("pointerup", handlePointerUp);
2415
2557
  return () => {
2416
- window.removeEventListener("mousemove", handleMouseMove);
2417
- window.removeEventListener("mouseup", handleMouseUp);
2558
+ document.removeEventListener("pointermove", handlePointerMove);
2559
+ document.removeEventListener("pointerup", handlePointerUp);
2418
2560
  };
2419
- }, [handleMouseMove, handleMouseUp]);
2420
- react.useLayoutEffect(() => {
2421
- if (!open) return;
2422
- setComputedWidth(localRef.current.offsetWidth);
2423
- }, [open]);
2424
- const resizableStyle = react.useMemo(
2425
- () => ({
2426
- ...style,
2427
- width: computedWidth ?? initialWidth,
2428
- maxWidth,
2429
- minWidth,
2430
- position,
2431
- "--slide-out-width": `${computedWidth}${typeof computedWidth === "number" ? "px" : ""}`
2432
- }),
2433
- [computedWidth, initialWidth, maxWidth, minWidth, position, style]
2434
- );
2435
- const resizableEnable = react.useMemo(
2436
- () => ({ left: resizeable && !isLeft, right: resizeable && isLeft }),
2437
- [isLeft, resizeable]
2438
- );
2439
- const SlideOut2 = react.useMemo(
2440
- () => (
2441
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2442
- // @ts-ignore
2443
- /* @__PURE__ */ jsxRuntime.jsx(
2444
- reactTransitionGroup.CSSTransition,
2445
- {
2446
- classNames: CSSTransitionClassNames,
2447
- in: open,
2448
- timeout: TIMEOUT_DURATION,
2449
- unmountOnExit: true,
2450
- mountOnEnter: true,
2451
- onEntering: onOpening,
2452
- onExited: onClosed,
2453
- nodeRef,
2454
- children: /* @__PURE__ */ jsxRuntime.jsxs(
2455
- "div",
2456
- {
2457
- className: classVarianceAuthority.cx(
2458
- "top-0",
2459
- "bottom-0",
2460
- {
2461
- "left-0": isLeft,
2462
- "right-0": !isLeft,
2463
- absolute: position === "absolute",
2464
- relative: position === "relative"
2465
- },
2466
- className
2467
- ),
2468
- ref: mergedRefs,
2469
- onPointerDownCapture: handlePointerDownCapture,
2470
- "data-side": side,
2471
- style: resizableStyle,
2472
- children: [
2473
- /* @__PURE__ */ jsxRuntime.jsx(
2474
- "div",
2475
- {
2476
- className: classVarianceAuthority.cx("absolute top-0 bottom-0 w-[3px]", {
2477
- "right-0": isLeft,
2478
- "left-0": !isLeft,
2479
- "pointer-events-none": !resizableEnable
2480
- }),
2481
- onMouseDown: handleMouseDown,
2482
- "data-resizing": isResizing ? "" : void 0
2483
- }
2484
- ),
2485
- content
2486
- ]
2487
- }
2488
- )
2489
- }
2490
- )
2491
- ),
2492
- [
2493
- CSSTransitionClassNames,
2494
- open,
2495
- onOpening,
2496
- onClosed,
2497
- className,
2498
- isLeft,
2499
- position,
2500
- mergedRefs,
2501
- handlePointerDownCapture,
2502
- side,
2503
- resizableStyle,
2504
- handleMouseDown,
2505
- isResizing,
2506
- resizableEnable,
2507
- content
2508
- ]
2509
- );
2510
- return /* @__PURE__ */ jsxRuntime.jsxs(
2561
+ }, [handlePointerMove, handlePointerUp]);
2562
+ return /* @__PURE__ */ jsxRuntime.jsx(
2511
2563
  "div",
2512
2564
  {
2513
- className: "relative flex h-full max-h-full w-full max-w-full overflow-hidden",
2514
- ref: handleAssignParentContainer,
2515
- ...otherProps,
2516
- children: [
2517
- side === "left" && !hide && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2518
- open && overlayComponent,
2519
- " ",
2520
- content && SlideOut2
2521
- ] }),
2522
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full max-w-full grow overflow-hidden", ref: childrenContainerRef, children }),
2523
- side === "right" && !hide && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2524
- open && overlayComponent,
2525
- " ",
2526
- content && SlideOut2
2527
- ] })
2528
- ]
2565
+ ref,
2566
+ onPointerDown: handlePointerDown,
2567
+ "data-resizing": isResizing,
2568
+ "data-side": side,
2569
+ "data-disabled": computedDisabled,
2570
+ ...rest
2529
2571
  }
2530
2572
  );
2531
2573
  });
2532
- SlideOut.displayName = "SlideOut";
2533
- const DEFAULT_INITIAL_WIDTH = "30%";
2534
- const LayoutSlideOut = react.memo((props) => {
2535
- const { small, hideLayout, isOpen, setOpen } = useLayoutContext();
2536
- const {
2537
- ref,
2538
- id,
2539
- children,
2540
- className,
2541
- defaultOpen,
2542
- side,
2543
- initialWidth = DEFAULT_INITIAL_WIDTH,
2544
- onDismiss,
2545
- ...rest
2546
- } = props;
2547
- const open = isOpen(id);
2548
- react.useEffect(() => {
2549
- if (small && (defaultOpen == null ? void 0 : defaultOpen.small) !== void 0) {
2550
- setOpen(id, defaultOpen == null ? void 0 : defaultOpen.small);
2551
- } else if (!small && (defaultOpen == null ? void 0 : defaultOpen.large) !== void 0) {
2552
- setOpen(id, defaultOpen == null ? void 0 : defaultOpen.large);
2553
- }
2554
- }, [defaultOpen, id, setOpen, small]);
2555
- const handleDismiss = react.useCallback(() => {
2556
- setOpen(id, false);
2557
- onDismiss == null ? void 0 : onDismiss();
2558
- }, [id, onDismiss, setOpen]);
2559
- return !hideLayout && /* @__PURE__ */ jsxRuntime.jsx(
2560
- SlideOut,
2561
- {
2562
- className: classVarianceAuthority.cx(`overmap-layout-slideOut-${side}`, className),
2563
- side,
2564
- ref,
2574
+ SlideOutHandle.displayName = "SlideOutHandle";
2575
+ const SlideOutOverlay = react.memo((props) => {
2576
+ const { ref, ...rest } = props;
2577
+ const { open } = react.use(SlideOutRootContext);
2578
+ return open ? /* @__PURE__ */ jsxRuntime.jsx("div", { ref, "data-open": open, ...rest }) : null;
2579
+ });
2580
+ SlideOutOverlay.displayName = "SlideOutOverlay";
2581
+ const SlideOutRoot = react.memo((props) => {
2582
+ const { ref, children, defaultOpen = false, open: controlledOpen, onOpenChange, modal = false, ...rest } = props;
2583
+ const [parentElement, setParentElement] = react.useState(null);
2584
+ const [open, setOpen] = useControlledState(defaultOpen, controlledOpen, onOpenChange);
2585
+ const contextValue = react.useMemo(
2586
+ () => ({
2587
+ parentElement,
2565
2588
  open,
2566
- initialWidth,
2567
- modal: small,
2568
- onDismiss: handleDismiss,
2569
- position: small ? "absolute" : "relative",
2570
- ...rest,
2571
- children
2572
- }
2589
+ setOpen,
2590
+ modal
2591
+ }),
2592
+ [modal, open, parentElement, setOpen]
2593
+ );
2594
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: mergeRefs([ref, setParentElement]), ...rest, children: /* @__PURE__ */ jsxRuntime.jsx(SlideOutRootContext, { value: contextValue, children }) });
2595
+ });
2596
+ SlideOutRoot.displayName = "SlideOutRoot";
2597
+ const SlideOutTrigger = react.memo((props) => {
2598
+ const { ref, onClick, ...rest } = props;
2599
+ const { open, setOpen } = react.use(SlideOutRootContext);
2600
+ const handleClick = react.useCallback(
2601
+ (e) => {
2602
+ onClick == null ? void 0 : onClick(e);
2603
+ if (e.defaultPrevented) return;
2604
+ setOpen(!open);
2605
+ },
2606
+ [onClick, open, setOpen]
2573
2607
  );
2608
+ return /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slot, { ref, onClick: handleClick, "data-disabled": props.disabled ?? false, ...rest });
2609
+ });
2610
+ SlideOutTrigger.displayName = "SlideOutTrigger";
2611
+ const SlideOutViewport = react.memo((props) => {
2612
+ const { ref, ...rest } = props;
2613
+ const internalRef = react.useRef(null);
2614
+ const { open, modal, parentElement } = react.use(SlideOutRootContext);
2615
+ react.useEffect(() => {
2616
+ if (!internalRef.current) return;
2617
+ const internalElement = internalRef.current;
2618
+ const originalParentPointerEvents = internalElement.style.pointerEvents;
2619
+ if (open && modal) {
2620
+ internalElement.style.pointerEvents = "none";
2621
+ }
2622
+ return () => {
2623
+ internalElement.style.pointerEvents = originalParentPointerEvents;
2624
+ };
2625
+ }, [modal, open, parentElement == null ? void 0 : parentElement.style]);
2626
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: mergeRefs([ref, internalRef]), ...rest });
2627
+ });
2628
+ SlideOutViewport.displayName = "SlideOutViewport";
2629
+ const SlideOut = {
2630
+ Close: SlideOutClose,
2631
+ Content: SlideOutContent,
2632
+ Handle: SlideOutHandle,
2633
+ Overlay: SlideOutOverlay,
2634
+ Root: SlideOutRoot,
2635
+ Trigger: SlideOutTrigger,
2636
+ Viewport: SlideOutViewport
2637
+ };
2638
+ const LayoutSlideOutClose = react.memo((props) => {
2639
+ const { ref, ...rest } = props;
2640
+ return /* @__PURE__ */ jsxRuntime.jsx(SlideOutClose, { ref, ...rest });
2641
+ });
2642
+ LayoutSlideOutClose.displayName = "LayoutSlideOutClose";
2643
+ const LayoutSlideOutContent = react.memo((props) => {
2644
+ const { ref, type, hide, ...rest } = props;
2645
+ const { small, hideLayout } = react.use(LayoutContext);
2646
+ return /* @__PURE__ */ jsxRuntime.jsx(SlideOutContent, { ref, type: type ?? (small ? "overlay" : "inline"), hide: hide ?? hideLayout, ...rest });
2574
2647
  });
2575
- LayoutSlideOut.displayName = "LayoutSlideOut";
2648
+ LayoutSlideOutContent.displayName = "LayoutSlideOutContent";
2649
+ const LayoutSlideOutHandle = react.memo((props) => {
2650
+ const { ref, ...rest } = props;
2651
+ return /* @__PURE__ */ jsxRuntime.jsx(SlideOutHandle, { ref, ...rest });
2652
+ });
2653
+ LayoutSlideOutHandle.displayName = "LayoutSlideOutHandle";
2576
2654
  const LayoutSlideOutOverlay = react.memo((props) => {
2577
- const { ref, children, className, active, slideOutId, smallModeOnly = false, ...rest } = props;
2578
- const { small, hideLayout, isOpen } = useLayoutContext();
2655
+ const { ref, smallModeOnly = false, ...rest } = props;
2656
+ const { small, hideLayout } = useLayoutContext();
2579
2657
  const showOverlay = react.useMemo(() => {
2580
- if (active !== void 0) return active;
2581
2658
  if (hideLayout) return false;
2582
2659
  if (smallModeOnly && !small) return false;
2583
- return isOpen(slideOutId);
2584
- }, [active, hideLayout, isOpen, slideOutId, small, smallModeOnly]);
2585
- return showOverlay && /* @__PURE__ */ jsxRuntime.jsx("div", { className: classVarianceAuthority.cx("overmap-layout-overlay", "fixed inset-0", className), ref, ...rest, children });
2660
+ return true;
2661
+ }, [hideLayout, small, smallModeOnly]);
2662
+ return showOverlay ? /* @__PURE__ */ jsxRuntime.jsx(SlideOutOverlay, { ref, ...rest }) : null;
2586
2663
  });
2587
2664
  LayoutSlideOutOverlay.displayName = "SlideOutOverlay";
2588
- function nextStateBasedOnType(open, type) {
2589
- switch (type) {
2590
- case "toggle":
2591
- return !open;
2592
- case "open":
2593
- return true;
2594
- case "close":
2595
- return false;
2596
- }
2597
- }
2665
+ const LayoutSlideOutRoot = react.memo((props) => {
2666
+ const { ref, slideOutId, defaultOpen, ...rest } = props;
2667
+ const { isOpen, setOpen, small } = react.use(LayoutContext);
2668
+ const open = isOpen(slideOutId);
2669
+ const handleOpenChange = react.useCallback(
2670
+ (open2) => {
2671
+ if (!open2) setOpen(slideOutId, false);
2672
+ },
2673
+ [setOpen, slideOutId]
2674
+ );
2675
+ react.useEffect(() => {
2676
+ if (small && (defaultOpen == null ? void 0 : defaultOpen.small) !== void 0) {
2677
+ setOpen(slideOutId, defaultOpen == null ? void 0 : defaultOpen.small);
2678
+ } else if (!small && (defaultOpen == null ? void 0 : defaultOpen.large) !== void 0) {
2679
+ setOpen(slideOutId, defaultOpen == null ? void 0 : defaultOpen.large);
2680
+ }
2681
+ }, [defaultOpen, slideOutId, setOpen, small]);
2682
+ return /* @__PURE__ */ jsxRuntime.jsx(SlideOutRoot, { ref, open, onOpenChange: handleOpenChange, modal: small, ...rest });
2683
+ });
2684
+ LayoutSlideOutRoot.displayName = "LayoutSlideOutRoot";
2598
2685
  const LayoutSlideOutTrigger = react.memo((props) => {
2599
- const { ref, slideOutId, type = "toggle", children, ...rest } = props;
2686
+ const { ref, slideOutId, children, ...rest } = props;
2600
2687
  const { isOpen, setOpen } = useLayoutContext();
2601
2688
  const open = isOpen(slideOutId);
2602
2689
  const handleClick = react.useCallback(() => {
2603
- setOpen(slideOutId, nextStateBasedOnType(open, type));
2604
- }, [open, setOpen, slideOutId, type]);
2690
+ setOpen(slideOutId, !open);
2691
+ }, [open, setOpen, slideOutId]);
2605
2692
  return /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slot, { "data-state": getOpenState(open), ref, onClick: handleClick, ...rest, children });
2606
2693
  });
2607
- LayoutSlideOutTrigger.displayName = "SlideOutTrigger";
2694
+ LayoutSlideOutTrigger.displayName = "LayoutSlideOutTrigger";
2695
+ const LayoutSlideOutViewport = react.memo((props) => {
2696
+ const { ref, ...rest } = props;
2697
+ return /* @__PURE__ */ jsxRuntime.jsx(SlideOutViewport, { ref, ...rest });
2698
+ });
2699
+ LayoutSlideOutViewport.displayName = "LayoutSlideOutViewport";
2608
2700
  const Layout = {
2609
2701
  Root: LayoutRoot,
2610
2702
  Container: LayoutContainer,
2703
+ SlideOutClose: LayoutSlideOutClose,
2704
+ SlideOutContent: LayoutSlideOutContent,
2705
+ SlideOutHandle: LayoutSlideOutHandle,
2611
2706
  SlideOutOverlay: LayoutSlideOutOverlay,
2612
- SlideOut: LayoutSlideOut,
2613
- SlideOutTrigger: LayoutSlideOutTrigger
2707
+ SlideOutRoot: LayoutSlideOutRoot,
2708
+ SlideOutTrigger: LayoutSlideOutTrigger,
2709
+ SlideOutViewport: LayoutSlideOutViewport
2614
2710
  };
2615
2711
  const linkCva = classVarianceAuthority.cva(["cursor-pointer"], {
2616
2712
  variants: {
@@ -4357,9 +4453,9 @@
4357
4453
  }, [onRetry, resetBoundary]);
4358
4454
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full gap-2", style: outerFlexStyles, children: [
4359
4455
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: { flexGrow: 1 } }),
4360
- /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: "alert-triangle", size: height, style: centerStyles }),
4456
+ /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: lucideReact.AlertTriangle, size: height, style: centerStyles }),
4361
4457
  /* @__PURE__ */ jsxRuntime.jsx("span", { style: { lineHeight: height, ...centerStyles }, children: message }),
4362
- /* @__PURE__ */ jsxRuntime.jsx(IconButton, { "aria-label": "Try again", variant: "soft", onClick: handleRetry, style: centerStyles, children: /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: "rotate-ccw", size: height }) }),
4458
+ /* @__PURE__ */ jsxRuntime.jsx(IconButton, { "aria-label": "Try again", variant: "soft", onClick: handleRetry, style: centerStyles, children: /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: lucideReact.RotateCcw, size: height }) }),
4363
4459
  /* @__PURE__ */ jsxRuntime.jsx("div", { style: { flexGrow: 1 } })
4364
4460
  ] });
4365
4461
  });
@@ -4385,95 +4481,6 @@
4385
4481
  );
4386
4482
  });
4387
4483
  OvermapErrorBoundary.displayName = "OvermapErrorBoundary";
4388
- const PhoneNumberInputContext = react.createContext({});
4389
- const FlagComponent = react.memo((props) => {
4390
- const { country } = props;
4391
- return country ? country : /* @__PURE__ */ jsxRuntime.jsx(lucideReact.PhoneIcon, { size: 16 });
4392
- });
4393
- FlagComponent.displayName = "FlagComponent";
4394
- const CountrySelect = react.memo((props) => {
4395
- const { disabled, value, onChange, options } = props;
4396
- const { radius, size, variant, accentColor } = react.use(PhoneNumberInputContext);
4397
- const handleSelect = react.useCallback(
4398
- (e) => {
4399
- onChange(e.target.value);
4400
- },
4401
- [onChange]
4402
- );
4403
- return /* @__PURE__ */ jsxRuntime.jsxs(
4404
- Button,
4405
- {
4406
- className: "relative",
4407
- accentColor,
4408
- radius,
4409
- size,
4410
- variant,
4411
- disabled,
4412
- children: [
4413
- /* @__PURE__ */ jsxRuntime.jsx(FlagComponent, { country: value, countryName: value, "aria-hidden": "true" }),
4414
- /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { size: 16, "aria-hidden": "true" }),
4415
- /* @__PURE__ */ jsxRuntime.jsxs(
4416
- "select",
4417
- {
4418
- disabled,
4419
- value,
4420
- onChange: handleSelect,
4421
- className: "absolute inset-0 text-sm opacity-0",
4422
- "aria-label": "Select country",
4423
- children: [
4424
- /* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: "Select a country" }, "default"),
4425
- options.filter((x) => x.value).map((option, i) => /* @__PURE__ */ jsxRuntime.jsxs("option", { value: option.value, children: [
4426
- option.label,
4427
- " ",
4428
- option.value && `+${min.getCountryCallingCode(option.value)}`
4429
- ] }, option.value ?? `empty-${i}`))
4430
- ]
4431
- }
4432
- )
4433
- ]
4434
- }
4435
- );
4436
- });
4437
- CountrySelect.displayName = "CountrySelect";
4438
- const InputComponent = react.memo((props) => {
4439
- const { accentColor, radius, size, variant } = react.use(PhoneNumberInputContext);
4440
- return /* @__PURE__ */ jsxRuntime.jsx(Input.Root, { variant, size, radius, accentColor, children: /* @__PURE__ */ jsxRuntime.jsx(Input.Field, { ...props }) });
4441
- });
4442
- InputComponent.displayName = "InputComponent";
4443
- const PhoneNumberInput = react.memo((props) => {
4444
- const providerContext = useProvider();
4445
- const {
4446
- ref,
4447
- className,
4448
- size = "md",
4449
- variant = "outline",
4450
- radius = providerContext.radius,
4451
- accentColor = providerContext.accentColor,
4452
- ...rest
4453
- } = props;
4454
- const contextValue = react.useMemo(
4455
- () => ({
4456
- size,
4457
- variant,
4458
- radius,
4459
- accentColor
4460
- }),
4461
- [accentColor, radius, size, variant]
4462
- );
4463
- return /* @__PURE__ */ jsxRuntime.jsx(PhoneNumberInputContext, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
4464
- PhoneInput,
4465
- {
4466
- ref,
4467
- className: classVarianceAuthority.cx(className, "flex gap-1"),
4468
- flagComponent: FlagComponent,
4469
- countrySelectComponent: CountrySelect,
4470
- inputComponent: InputComponent,
4471
- "data-accent-color": accentColor,
4472
- ...rest
4473
- }
4474
- ) });
4475
- });
4476
- PhoneNumberInput.displayName = "PhoneNumberInput";
4477
4484
  const PopoverArrow = react.memo((props) => {
4478
4485
  const { ref, children, className, ...rest } = props;
4479
4486
  return /* @__PURE__ */ jsxRuntime.jsx(RadixPopover__namespace.Arrow, { className: classVarianceAuthority.cx("fill-(--base-6)", className), ref, ...rest, children });
@@ -6124,7 +6131,7 @@
6124
6131
  action && /* @__PURE__ */ jsxRuntime.jsx(RadixToast__namespace.Action, { className: "w-max", altText: action.altText, asChild: true, children: action.content })
6125
6132
  ] })
6126
6133
  ] }),
6127
- /* @__PURE__ */ jsxRuntime.jsx(RadixToast__namespace.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(IconButton, { size, "aria-label": "Close", variant: "ghost", accentColor, children: /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: "x" }) }) })
6134
+ /* @__PURE__ */ jsxRuntime.jsx(RadixToast__namespace.Close, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(IconButton, { size, "aria-label": "Close", variant: "ghost", accentColor, children: /* @__PURE__ */ jsxRuntime.jsx(LuIcon, { icon: lucideReact.X }) }) })
6128
6135
  ]
6129
6136
  }
6130
6137
  );
@@ -6672,10 +6679,12 @@
6672
6679
  exports2.InputSlot = InputSlot;
6673
6680
  exports2.Layout = Layout;
6674
6681
  exports2.LayoutContainer = LayoutContainer;
6675
- exports2.LayoutContext = LayoutContext;
6676
6682
  exports2.LayoutRoot = LayoutRoot;
6677
- exports2.LayoutSlideOut = LayoutSlideOut;
6683
+ exports2.LayoutSlideOutClose = LayoutSlideOutClose;
6684
+ exports2.LayoutSlideOutContent = LayoutSlideOutContent;
6685
+ exports2.LayoutSlideOutHandle = LayoutSlideOutHandle;
6678
6686
  exports2.LayoutSlideOutOverlay = LayoutSlideOutOverlay;
6687
+ exports2.LayoutSlideOutRoot = LayoutSlideOutRoot;
6679
6688
  exports2.LayoutSlideOutTrigger = LayoutSlideOutTrigger;
6680
6689
  exports2.Link = Link;
6681
6690
  exports2.LuIcon = LuIcon;
@@ -6736,7 +6745,6 @@
6736
6745
  exports2.OverlayTitle = OverlayTitle;
6737
6746
  exports2.OverlayTrigger = OverlayTrigger;
6738
6747
  exports2.OvermapErrorBoundary = OvermapErrorBoundary;
6739
- exports2.PhoneNumberInput = PhoneNumberInput;
6740
6748
  exports2.Popover = Popover;
6741
6749
  exports2.PopoverArrow = PopoverArrow;
6742
6750
  exports2.PopoverContent = PopoverContent;
@@ -6762,6 +6770,13 @@
6762
6770
  exports2.SegmentedTabsTrigger = SegmentedTabsTrigger;
6763
6771
  exports2.Separator = Separator;
6764
6772
  exports2.SlideOut = SlideOut;
6773
+ exports2.SlideOutClose = SlideOutClose;
6774
+ exports2.SlideOutContent = SlideOutContent;
6775
+ exports2.SlideOutHandle = SlideOutHandle;
6776
+ exports2.SlideOutOverlay = SlideOutOverlay;
6777
+ exports2.SlideOutRoot = SlideOutRoot;
6778
+ exports2.SlideOutTrigger = SlideOutTrigger;
6779
+ exports2.SlideOutViewport = SlideOutViewport;
6765
6780
  exports2.Slider = Slider;
6766
6781
  exports2.Spinner = Spinner;
6767
6782
  exports2.Switch = Switch;