@hyphen/hyphen-components 9.0.0-beta.1 → 9.1.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.
@@ -4392,7 +4392,8 @@ var ResponsiveProvider = ({
4392
4392
  };
4393
4393
 
4394
4394
  // src/components/Sidebar/Sidebar.tsx
4395
- var import_react62 = __toESM(require("react"));
4395
+ var import_react63 = __toESM(require("react"));
4396
+ var import_react_id = require("@radix-ui/react-id");
4396
4397
  var import_react_slot3 = require("@radix-ui/react-slot");
4397
4398
  var import_classnames34 = __toESM(require("classnames"));
4398
4399
 
@@ -4417,10 +4418,179 @@ function useIsMobile() {
4417
4418
  }
4418
4419
 
4419
4420
  // src/components/Sidebar/Sidebar.module.scss
4420
- var Sidebar_module_default = { "rail": "rail__OwBtB", "group-data-": "group-data-__af4bi" };
4421
+ var Sidebar_module_default = { "rail": "rail__OwBtB", "group-data-": "group-data-__af4bi", "resizeDescription": "resizeDescription__Ou7UB" };
4422
+
4423
+ // src/components/Sidebar/useSidebarResize.ts
4424
+ var import_react62 = __toESM(require("react"));
4425
+ function useSidebarResize({
4426
+ resizable = false,
4427
+ defaultWidth,
4428
+ minWidth = 256,
4429
+ maxWidth = 960,
4430
+ widthStorageKey,
4431
+ side,
4432
+ isMobile,
4433
+ expanded,
4434
+ rootRef
4435
+ }) {
4436
+ const initialWidth = defaultWidth ?? (side === "left" ? 256 : 384);
4437
+ const [preferredWidth, setPreferredWidth] = (0, import_react62.useState)(initialWidth);
4438
+ const [containerWidth, setContainerWidth] = (0, import_react62.useState)(Infinity);
4439
+ const [dragging, setDragging] = (0, import_react62.useState)(false);
4440
+ const gesture = (0, import_react62.useRef)(null);
4441
+ const suppressClick = (0, import_react62.useRef)(false);
4442
+ const currentWidth = (0, import_react62.useRef)(preferredWidth);
4443
+ const enabled = resizable && !isMobile && expanded;
4444
+ const maximum = Math.max(0, Math.min(maxWidth, containerWidth * (2 / 3)));
4445
+ const minimum = Math.min(Math.max(0, minWidth), maximum);
4446
+ const clamp = (value) => Math.max(minimum, Math.min(maximum, value));
4447
+ const width = clamp(preferredWidth);
4448
+ const [settledWidth, setSettledWidth] = (0, import_react62.useState)(width);
4449
+ useIsomorphicLayoutEffect(() => {
4450
+ if (!resizable) return;
4451
+ let savedWidth = initialWidth;
4452
+ try {
4453
+ const saved = widthStorageKey && localStorage.getItem(widthStorageKey);
4454
+ if (saved && Number.isFinite(Number(saved)) && Number(saved) > 0) {
4455
+ savedWidth = Number(saved);
4456
+ }
4457
+ } catch {
4458
+ }
4459
+ setPreferredWidth(savedWidth);
4460
+ }, [resizable, initialWidth, widthStorageKey]);
4461
+ useIsomorphicLayoutEffect(() => {
4462
+ if (!resizable || isMobile) return;
4463
+ const container = rootRef.current?.closest("[data-sidebar-provider]");
4464
+ if (!container) return;
4465
+ const measure = () => setContainerWidth(container.getBoundingClientRect().width);
4466
+ measure();
4467
+ if (typeof ResizeObserver === "undefined") {
4468
+ window.addEventListener("resize", measure);
4469
+ return () => window.removeEventListener("resize", measure);
4470
+ }
4471
+ const observer = new ResizeObserver(measure);
4472
+ observer.observe(container);
4473
+ return () => observer.disconnect();
4474
+ }, [resizable, isMobile, rootRef]);
4475
+ useIsomorphicLayoutEffect(() => {
4476
+ if (dragging || width === settledWidth) return;
4477
+ rootRef.current?.getBoundingClientRect();
4478
+ setSettledWidth(width);
4479
+ }, [dragging, width, settledWidth, rootRef]);
4480
+ (0, import_react62.useEffect)(() => {
4481
+ if (!enabled) {
4482
+ gesture.current = null;
4483
+ setDragging(false);
4484
+ }
4485
+ }, [enabled]);
4486
+ (0, import_react62.useEffect)(() => {
4487
+ if (!dragging) return;
4488
+ const { cursor, userSelect } = document.body.style;
4489
+ document.body.style.cursor = "col-resize";
4490
+ document.body.style.userSelect = "none";
4491
+ return () => {
4492
+ document.body.style.cursor = cursor;
4493
+ document.body.style.userSelect = userSelect;
4494
+ };
4495
+ }, [dragging]);
4496
+ const update = (next) => {
4497
+ currentWidth.current = clamp(next);
4498
+ setPreferredWidth(currentWidth.current);
4499
+ };
4500
+ const persist = () => {
4501
+ if (!widthStorageKey) return;
4502
+ try {
4503
+ localStorage.setItem(widthStorageKey, String(currentWidth.current));
4504
+ } catch {
4505
+ }
4506
+ };
4507
+ const cancel = () => {
4508
+ if (!gesture.current) return;
4509
+ setPreferredWidth(gesture.current.preferred);
4510
+ gesture.current = null;
4511
+ setDragging(false);
4512
+ };
4513
+ const railProps = {
4514
+ onPointerDown: (event) => {
4515
+ suppressClick.current = false;
4516
+ if (!enabled || event.button !== 0 || gesture.current) return;
4517
+ gesture.current = {
4518
+ id: event.pointerId,
4519
+ x: event.clientX,
4520
+ width,
4521
+ preferred: preferredWidth,
4522
+ moved: false
4523
+ };
4524
+ event.currentTarget.setPointerCapture(event.pointerId);
4525
+ },
4526
+ onPointerMove: (event) => {
4527
+ const start = gesture.current;
4528
+ if (!start || start.id !== event.pointerId) return;
4529
+ const delta = event.clientX - start.x;
4530
+ if (!start.moved && Math.abs(delta) < 4) return;
4531
+ start.moved = true;
4532
+ suppressClick.current = true;
4533
+ setDragging(true);
4534
+ update(start.width + (side === "left" ? delta : -delta));
4535
+ },
4536
+ onPointerUp: (event) => {
4537
+ const start = gesture.current;
4538
+ if (!start || start.id !== event.pointerId) return;
4539
+ if (start.moved) {
4540
+ update(
4541
+ start.width + (side === "left" ? 1 : -1) * (event.clientX - start.x)
4542
+ );
4543
+ persist();
4544
+ }
4545
+ gesture.current = null;
4546
+ setDragging(false);
4547
+ event.currentTarget.releasePointerCapture(event.pointerId);
4548
+ },
4549
+ onPointerCancel: cancel,
4550
+ onLostPointerCapture: cancel,
4551
+ onClickCapture: (event) => {
4552
+ if (suppressClick.current && event.detail !== 0) {
4553
+ event.preventDefault();
4554
+ event.stopPropagation();
4555
+ suppressClick.current = false;
4556
+ }
4557
+ },
4558
+ onKeyDown: (event) => {
4559
+ const modified = event.altKey || event.ctrlKey || event.metaKey || event.shiftKey;
4560
+ if (!enabled || modified) return;
4561
+ let next;
4562
+ switch (event.key) {
4563
+ case "ArrowLeft":
4564
+ next = width + (side === "left" ? -10 : 10);
4565
+ break;
4566
+ case "ArrowRight":
4567
+ next = width + (side === "left" ? 10 : -10);
4568
+ break;
4569
+ case "Home":
4570
+ next = minimum;
4571
+ break;
4572
+ case "End":
4573
+ next = maximum;
4574
+ break;
4575
+ default:
4576
+ return;
4577
+ }
4578
+ event.preventDefault();
4579
+ update(next);
4580
+ persist();
4581
+ }
4582
+ };
4583
+ return {
4584
+ width,
4585
+ animate: !dragging && width === settledWidth,
4586
+ enabled,
4587
+ railProps
4588
+ };
4589
+ }
4590
+ var SidebarResizeContext = import_react62.default.createContext(null);
4421
4591
 
4422
4592
  // src/components/Tooltip/Tooltip.tsx
4423
- var React57 = __toESM(require("react"));
4593
+ var React58 = __toESM(require("react"));
4424
4594
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"));
4425
4595
 
4426
4596
  // src/components/Tooltip/Tooltip.module.scss
@@ -4432,7 +4602,7 @@ var TooltipProvider = TooltipPrimitive.Provider;
4432
4602
  var Tooltip = TooltipPrimitive.Root;
4433
4603
  var TooltipTrigger = TooltipPrimitive.Trigger;
4434
4604
  var TooltipPortal = TooltipPrimitive.Portal;
4435
- var TooltipContent = React57.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React57.createElement(
4605
+ var TooltipContent = React58.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ React58.createElement(
4436
4606
  TooltipPrimitive.Content,
4437
4607
  {
4438
4608
  ref,
@@ -4453,14 +4623,14 @@ var SIDEBAR_RIGHT_WIDTH = "24rem";
4453
4623
  var SIDEBAR_WIDTH_ICON = "44px";
4454
4624
  var SIDEBAR_KEYBOARD_SHORTCUT_LEFT = "[";
4455
4625
  var SIDEBAR_KEYBOARD_SHORTCUT_RIGHT = "]";
4456
- var SidebarIsMobileContext = import_react62.default.createContext(null);
4457
- var SidebarLeftContext = import_react62.default.createContext(
4626
+ var SidebarIsMobileContext = import_react63.default.createContext(null);
4627
+ var SidebarLeftContext = import_react63.default.createContext(
4458
4628
  null
4459
4629
  );
4460
- var SidebarRightContext = import_react62.default.createContext(
4630
+ var SidebarRightContext = import_react63.default.createContext(
4461
4631
  null
4462
4632
  );
4463
- var SidebarSideContext = import_react62.default.createContext("left");
4633
+ var SidebarSideContext = import_react63.default.createContext("left");
4464
4634
  var resolveSideValue = (value, side, fallback) => {
4465
4635
  if (typeof value === "boolean") {
4466
4636
  return value;
@@ -4513,21 +4683,21 @@ var useSidebarSideState = ({
4513
4683
  );
4514
4684
  const controlledOpen = resolveControlledOpen(openProp, side);
4515
4685
  const isControlled = typeof controlledOpen === "boolean";
4516
- const [uncontrolledOpen, setUncontrolledOpen] = (0, import_react62.useState)(
4686
+ const [uncontrolledOpen, setUncontrolledOpen] = (0, import_react63.useState)(
4517
4687
  controlledOpen ?? initialDefaultOpen
4518
4688
  );
4519
- const [openMobile, setOpenMobile] = (0, import_react62.useState)(
4689
+ const [openMobile, setOpenMobile] = (0, import_react63.useState)(
4520
4690
  () => isMobile ? false : controlledOpen ?? initialDefaultOpen
4521
4691
  );
4522
4692
  const open = controlledOpen ?? uncontrolledOpen;
4523
- (0, import_react62.useEffect)(() => {
4693
+ (0, import_react63.useEffect)(() => {
4524
4694
  if (isMobile) {
4525
4695
  setOpenMobile(false);
4526
4696
  } else {
4527
4697
  setUncontrolledOpen(controlledOpen ?? initialDefaultOpen);
4528
4698
  }
4529
4699
  }, [isMobile, controlledOpen, initialDefaultOpen]);
4530
- const setOpen = (0, import_react62.useCallback)(
4700
+ const setOpen = (0, import_react63.useCallback)(
4531
4701
  (value) => {
4532
4702
  const newOpenState = typeof value === "function" ? value(open) : value;
4533
4703
  if (newOpenState === open) {
@@ -4542,7 +4712,7 @@ var useSidebarSideState = ({
4542
4712
  },
4543
4713
  [open, isControlled, onOpenChange, side, storageKey]
4544
4714
  );
4545
- const toggleSidebar = (0, import_react62.useCallback)(() => {
4715
+ const toggleSidebar = (0, import_react63.useCallback)(() => {
4546
4716
  lastToggledSideRef.current = side;
4547
4717
  if (isMobile) {
4548
4718
  setOpenMobile((value) => !value);
@@ -4551,7 +4721,7 @@ var useSidebarSideState = ({
4551
4721
  }
4552
4722
  }, [isMobile, setOpen, side, setOpenMobile, lastToggledSideRef]);
4553
4723
  const state = open ? "expanded" : "collapsed";
4554
- return (0, import_react62.useMemo)(
4724
+ return (0, import_react63.useMemo)(
4555
4725
  () => ({
4556
4726
  state,
4557
4727
  open,
@@ -4564,13 +4734,13 @@ var useSidebarSideState = ({
4564
4734
  );
4565
4735
  };
4566
4736
  function useSidebar(sideOverride) {
4567
- const isMobile = import_react62.default.useContext(SidebarIsMobileContext);
4737
+ const isMobile = import_react63.default.useContext(SidebarIsMobileContext);
4568
4738
  if (typeof isMobile !== "boolean") {
4569
4739
  throw new Error("useSidebar must be used within a SidebarProvider.");
4570
4740
  }
4571
- const contextSide = import_react62.default.useContext(SidebarSideContext);
4741
+ const contextSide = import_react63.default.useContext(SidebarSideContext);
4572
4742
  const side = sideOverride ?? contextSide;
4573
- const sideContext = import_react62.default.useContext(
4743
+ const sideContext = import_react63.default.useContext(
4574
4744
  side === "left" ? SidebarLeftContext : SidebarRightContext
4575
4745
  );
4576
4746
  if (!sideContext) {
@@ -4582,7 +4752,7 @@ function useSidebar(sideOverride) {
4582
4752
  side
4583
4753
  };
4584
4754
  }
4585
- var SidebarProvider = (0, import_react62.forwardRef)(
4755
+ var SidebarProvider = (0, import_react63.forwardRef)(
4586
4756
  ({
4587
4757
  defaultOpen = true,
4588
4758
  open: openProp,
@@ -4594,9 +4764,9 @@ var SidebarProvider = (0, import_react62.forwardRef)(
4594
4764
  ...props
4595
4765
  }, ref) => {
4596
4766
  const isMobile = useIsMobile();
4597
- const lastToggledSideRef = import_react62.default.useRef("left");
4598
- const leftToggleRef = import_react62.default.useRef(null);
4599
- const rightToggleRef = import_react62.default.useRef(null);
4767
+ const lastToggledSideRef = import_react63.default.useRef("left");
4768
+ const leftToggleRef = import_react63.default.useRef(null);
4769
+ const rightToggleRef = import_react63.default.useRef(null);
4600
4770
  const leftState = useSidebarSideState({
4601
4771
  side: "left",
4602
4772
  isMobile,
@@ -4615,18 +4785,21 @@ var SidebarProvider = (0, import_react62.forwardRef)(
4615
4785
  storageKey,
4616
4786
  lastToggledSideRef
4617
4787
  });
4618
- (0, import_react62.useEffect)(() => {
4788
+ (0, import_react63.useEffect)(() => {
4619
4789
  leftToggleRef.current = leftState.toggleSidebar;
4620
4790
  }, [leftState.toggleSidebar]);
4621
- (0, import_react62.useEffect)(() => {
4791
+ (0, import_react63.useEffect)(() => {
4622
4792
  rightToggleRef.current = rightState.toggleSidebar;
4623
4793
  }, [rightState.toggleSidebar]);
4624
- (0, import_react62.useEffect)(() => {
4794
+ (0, import_react63.useEffect)(() => {
4625
4795
  const handleKeyDown = (event) => {
4626
4796
  const target = event.target;
4627
4797
  if (target && (target.tagName === "INPUT" || target.tagName === "TEXTAREA" || target.tagName === "SELECT" || target.isContentEditable)) {
4628
4798
  return;
4629
4799
  }
4800
+ if (event.metaKey || event.ctrlKey && !event.getModifierState("AltGraph")) {
4801
+ return;
4802
+ }
4630
4803
  const shortcutSide = event.key === SIDEBAR_KEYBOARD_SHORTCUT_LEFT ? "left" : event.key === SIDEBAR_KEYBOARD_SHORTCUT_RIGHT ? "right" : null;
4631
4804
  if (!shortcutSide) {
4632
4805
  return;
@@ -4638,7 +4811,7 @@ var SidebarProvider = (0, import_react62.forwardRef)(
4638
4811
  window.addEventListener("keydown", handleKeyDown);
4639
4812
  return () => window.removeEventListener("keydown", handleKeyDown);
4640
4813
  }, []);
4641
- return /* @__PURE__ */ import_react62.default.createElement(SidebarIsMobileContext.Provider, { value: isMobile }, /* @__PURE__ */ import_react62.default.createElement(SidebarLeftContext.Provider, { value: leftState }, /* @__PURE__ */ import_react62.default.createElement(SidebarRightContext.Provider, { value: rightState }, /* @__PURE__ */ import_react62.default.createElement(TooltipProvider, { delayDuration: 0 }, /* @__PURE__ */ import_react62.default.createElement(
4814
+ return /* @__PURE__ */ import_react63.default.createElement(SidebarIsMobileContext.Provider, { value: isMobile }, /* @__PURE__ */ import_react63.default.createElement(SidebarLeftContext.Provider, { value: leftState }, /* @__PURE__ */ import_react63.default.createElement(SidebarRightContext.Provider, { value: rightState }, /* @__PURE__ */ import_react63.default.createElement(TooltipProvider, { delayDuration: 0 }, /* @__PURE__ */ import_react63.default.createElement(
4642
4815
  "div",
4643
4816
  {
4644
4817
  style: {
@@ -4652,6 +4825,7 @@ var SidebarProvider = (0, import_react62.forwardRef)(
4652
4825
  className
4653
4826
  ),
4654
4827
  ref,
4828
+ "data-sidebar-provider": "",
4655
4829
  ...props
4656
4830
  },
4657
4831
  children
@@ -4659,23 +4833,54 @@ var SidebarProvider = (0, import_react62.forwardRef)(
4659
4833
  }
4660
4834
  );
4661
4835
  SidebarProvider.displayName = "SidebarProvider";
4662
- var Sidebar = import_react62.default.forwardRef(
4663
- ({ side = "left", collapsible = "offcanvas", className, children, ...props }, ref) => {
4836
+ var Sidebar = import_react63.default.forwardRef(
4837
+ ({
4838
+ side = "left",
4839
+ collapsible = "offcanvas",
4840
+ className,
4841
+ children,
4842
+ resizable,
4843
+ defaultWidth,
4844
+ minWidth,
4845
+ maxWidth,
4846
+ widthStorageKey,
4847
+ ...props
4848
+ }, ref) => {
4664
4849
  const { isMobile, state, openMobile, setOpenMobile } = useSidebar(side);
4665
- const sidebarWidth = side === "right" ? SIDEBAR_RIGHT_WIDTH : SIDEBAR_WIDTH;
4850
+ const rootRef = import_react63.default.useRef(null);
4851
+ const setRootRef = import_react63.default.useCallback(
4852
+ (node) => {
4853
+ rootRef.current = node;
4854
+ if (typeof ref === "function") ref(node);
4855
+ else if (ref) ref.current = node;
4856
+ },
4857
+ [ref]
4858
+ );
4859
+ const resize = useSidebarResize({
4860
+ resizable,
4861
+ defaultWidth,
4862
+ minWidth,
4863
+ maxWidth,
4864
+ widthStorageKey,
4865
+ side,
4866
+ isMobile,
4867
+ expanded: state === "expanded" || collapsible === "none",
4868
+ rootRef
4869
+ });
4870
+ const sidebarWidth = resizable ? `${resize.width}px` : side === "right" ? SIDEBAR_RIGHT_WIDTH : SIDEBAR_WIDTH;
4666
4871
  if (isMobile) {
4667
- return /* @__PURE__ */ import_react62.default.createElement(SidebarSideContext.Provider, { value: side }, /* @__PURE__ */ import_react62.default.createElement(
4872
+ return /* @__PURE__ */ import_react63.default.createElement(SidebarSideContext.Provider, { value: side }, /* @__PURE__ */ import_react63.default.createElement(SidebarResizeContext.Provider, { value: resize }, /* @__PURE__ */ import_react63.default.createElement(
4668
4873
  Drawer,
4669
4874
  {
4670
4875
  isOpen: openMobile,
4671
4876
  onDismiss: () => setOpenMobile(false),
4672
4877
  placement: side
4673
4878
  },
4674
- /* @__PURE__ */ import_react62.default.createElement(Box, { "data-sidebar": "sidebar", "data-mobile": "true", height: "100" }, children)
4675
- ));
4879
+ /* @__PURE__ */ import_react63.default.createElement(Box, { "data-sidebar": "sidebar", "data-mobile": "true", height: "100" }, children)
4880
+ )));
4676
4881
  }
4677
4882
  if (collapsible === "none") {
4678
- return /* @__PURE__ */ import_react62.default.createElement(SidebarSideContext.Provider, { value: side }, /* @__PURE__ */ import_react62.default.createElement(
4883
+ return /* @__PURE__ */ import_react63.default.createElement(SidebarSideContext.Provider, { value: side }, /* @__PURE__ */ import_react63.default.createElement(SidebarResizeContext.Provider, { value: resize }, /* @__PURE__ */ import_react63.default.createElement(
4679
4884
  "div",
4680
4885
  {
4681
4886
  className: (0, import_classnames34.default)(
@@ -4684,18 +4889,19 @@ var Sidebar = import_react62.default.forwardRef(
4684
4889
  ),
4685
4890
  style: {
4686
4891
  "--sidebar-width": sidebarWidth,
4687
- width: "var(--sidebar-width)"
4892
+ width: "var(--sidebar-width)",
4893
+ ...resizable ? { position: "relative", flexShrink: 0 } : {}
4688
4894
  },
4689
- ref,
4895
+ ref: setRootRef,
4690
4896
  ...props
4691
4897
  },
4692
4898
  children
4693
- ));
4899
+ )));
4694
4900
  }
4695
- return /* @__PURE__ */ import_react62.default.createElement(SidebarSideContext.Provider, { value: side }, /* @__PURE__ */ import_react62.default.createElement(
4901
+ return /* @__PURE__ */ import_react63.default.createElement(SidebarSideContext.Provider, { value: side }, /* @__PURE__ */ import_react63.default.createElement(SidebarResizeContext.Provider, { value: resize }, /* @__PURE__ */ import_react63.default.createElement(
4696
4902
  Box,
4697
4903
  {
4698
- ref,
4904
+ ref: setRootRef,
4699
4905
  background: "primary",
4700
4906
  display: { base: "none", desktop: "block" },
4701
4907
  color: "base",
@@ -4709,13 +4915,13 @@ var Sidebar = import_react62.default.forwardRef(
4709
4915
  "data-side": side,
4710
4916
  className: "group"
4711
4917
  },
4712
- /* @__PURE__ */ import_react62.default.createElement(
4918
+ /* @__PURE__ */ import_react63.default.createElement(
4713
4919
  "div",
4714
4920
  {
4715
4921
  style: {
4716
4922
  animationTimingFunction: "var(--sidebar-transition-timing, linear)",
4717
4923
  transitionTimingFunction: "var(--sidebar-transition-timing, linear)",
4718
- transitionDuration: "var(--sidebar-transition-duration, 200ms)",
4924
+ transitionDuration: resize.animate ? "var(--sidebar-transition-duration, 200ms)" : "0ms",
4719
4925
  animationDuration: "var(--sidebar-transition-duration, 200ms)",
4720
4926
  transitionProperty: "width",
4721
4927
  width: getSidebarWidth(state, collapsible),
@@ -4724,7 +4930,7 @@ var Sidebar = import_react62.default.forwardRef(
4724
4930
  className: (0, import_classnames34.default)("position-relative", className)
4725
4931
  }
4726
4932
  ),
4727
- /* @__PURE__ */ import_react62.default.createElement(
4933
+ /* @__PURE__ */ import_react63.default.createElement(
4728
4934
  "div",
4729
4935
  {
4730
4936
  className: (0, import_classnames34.default)(
@@ -4738,7 +4944,7 @@ var Sidebar = import_react62.default.forwardRef(
4738
4944
  zIndex: "var(--size-z-index-drawer)",
4739
4945
  animationTimingFunction: "var(--sidebar-transition-timing, linear)",
4740
4946
  transitionTimingFunction: "var(--sidebar-transition-timing, linear)",
4741
- transitionDuration: "var(--sidebar-transition-duration, 200ms)",
4947
+ transitionDuration: resize.animate ? "var(--sidebar-transition-duration, 200ms)" : "0ms",
4742
4948
  animationDuration: "var(--sidebar-transition-duration, 200ms)",
4743
4949
  transitionProperty: "left, right, width",
4744
4950
  width: state === "collapsed" && collapsible === "icon" ? "var(--sidebar-width-icon)" : "var(--sidebar-width)",
@@ -4746,7 +4952,7 @@ var Sidebar = import_react62.default.forwardRef(
4746
4952
  },
4747
4953
  ...props
4748
4954
  },
4749
- /* @__PURE__ */ import_react62.default.createElement(
4955
+ /* @__PURE__ */ import_react63.default.createElement(
4750
4956
  "div",
4751
4957
  {
4752
4958
  "data-sidebar": "sidebar",
@@ -4760,13 +4966,13 @@ var Sidebar = import_react62.default.forwardRef(
4760
4966
  children
4761
4967
  )
4762
4968
  )
4763
- ));
4969
+ )));
4764
4970
  }
4765
4971
  );
4766
4972
  Sidebar.displayName = "Sidebar";
4767
- var SidebarTrigger = import_react62.default.forwardRef(({ className, onClick, side, iconName = "dock-left", ...props }, ref) => {
4973
+ var SidebarTrigger = import_react63.default.forwardRef(({ className, onClick, side, iconName = "dock-left", ...props }, ref) => {
4768
4974
  const { toggleSidebar, side: contextSide } = useSidebar(side);
4769
- return /* @__PURE__ */ import_react62.default.createElement(
4975
+ return /* @__PURE__ */ import_react63.default.createElement(
4770
4976
  Button,
4771
4977
  {
4772
4978
  ref,
@@ -4791,8 +4997,8 @@ var SidebarTrigger = import_react62.default.forwardRef(({ className, onClick, si
4791
4997
  );
4792
4998
  });
4793
4999
  SidebarTrigger.displayName = "SidebarTrigger";
4794
- var SidebarInset = import_react62.default.forwardRef(({ className, ...props }, ref) => {
4795
- return /* @__PURE__ */ import_react62.default.createElement(
5000
+ var SidebarInset = import_react63.default.forwardRef(({ className, ...props }, ref) => {
5001
+ return /* @__PURE__ */ import_react63.default.createElement(
4796
5002
  "main",
4797
5003
  {
4798
5004
  ref,
@@ -4805,10 +5011,10 @@ var SidebarInset = import_react62.default.forwardRef(({ className, ...props }, r
4805
5011
  );
4806
5012
  });
4807
5013
  SidebarInset.displayName = "SidebarInset";
4808
- var SidebarHeader = import_react62.default.forwardRef(({ className, ...props }, ref) => {
5014
+ var SidebarHeader = import_react63.default.forwardRef(({ className, ...props }, ref) => {
4809
5015
  const { state } = useSidebar();
4810
5016
  const isCollapsed = state === "collapsed";
4811
- return /* @__PURE__ */ import_react62.default.createElement(
5017
+ return /* @__PURE__ */ import_react63.default.createElement(
4812
5018
  "div",
4813
5019
  {
4814
5020
  ref,
@@ -4823,8 +5029,8 @@ var SidebarHeader = import_react62.default.forwardRef(({ className, ...props },
4823
5029
  );
4824
5030
  });
4825
5031
  SidebarHeader.displayName = "SidebarHeader";
4826
- var SidebarFooter = import_react62.default.forwardRef(({ className, ...props }, ref) => {
4827
- return /* @__PURE__ */ import_react62.default.createElement(
5032
+ var SidebarFooter = import_react63.default.forwardRef(({ className, ...props }, ref) => {
5033
+ return /* @__PURE__ */ import_react63.default.createElement(
4828
5034
  "div",
4829
5035
  {
4830
5036
  ref,
@@ -4838,8 +5044,8 @@ var SidebarFooter = import_react62.default.forwardRef(({ className, ...props },
4838
5044
  );
4839
5045
  });
4840
5046
  SidebarFooter.displayName = "SidebarFooter";
4841
- var SidebarContent = import_react62.default.forwardRef(({ className, ...props }, ref) => {
4842
- return /* @__PURE__ */ import_react62.default.createElement(
5047
+ var SidebarContent = import_react63.default.forwardRef(({ className, ...props }, ref) => {
5048
+ return /* @__PURE__ */ import_react63.default.createElement(
4843
5049
  "div",
4844
5050
  {
4845
5051
  ref,
@@ -4854,7 +5060,7 @@ var SidebarContent = import_react62.default.forwardRef(({ className, ...props },
4854
5060
  );
4855
5061
  });
4856
5062
  SidebarContent.displayName = "SidebarContent";
4857
- var SidebarMenu = import_react62.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ import_react62.default.createElement(
5063
+ var SidebarMenu = import_react63.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ import_react63.default.createElement(
4858
5064
  "ul",
4859
5065
  {
4860
5066
  ref,
@@ -4870,7 +5076,7 @@ var SidebarMenu = import_react62.default.forwardRef(({ className, ...props }, re
4870
5076
  }
4871
5077
  ));
4872
5078
  SidebarMenu.displayName = "SidebarMenu";
4873
- var SidebarMenuItem = import_react62.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ import_react62.default.createElement(
5079
+ var SidebarMenuItem = import_react63.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ import_react63.default.createElement(
4874
5080
  "li",
4875
5081
  {
4876
5082
  ref,
@@ -4881,11 +5087,11 @@ var SidebarMenuItem = import_react62.default.forwardRef(({ className, ...props }
4881
5087
  }
4882
5088
  ));
4883
5089
  SidebarMenuItem.displayName = "SidebarMenuItem";
4884
- var SidebarMenuButton = import_react62.default.forwardRef(
5090
+ var SidebarMenuButton = import_react63.default.forwardRef(
4885
5091
  ({ asChild = false, isActive = false, tooltip, className, ...props }, ref) => {
4886
5092
  const Comp = asChild ? import_react_slot3.Slot : "button";
4887
5093
  const { isMobile, state, side } = useSidebar();
4888
- const button = /* @__PURE__ */ import_react62.default.createElement(
5094
+ const button = /* @__PURE__ */ import_react63.default.createElement(
4889
5095
  Comp,
4890
5096
  {
4891
5097
  ref,
@@ -4911,7 +5117,7 @@ var SidebarMenuButton = import_react62.default.forwardRef(
4911
5117
  children: tooltip
4912
5118
  };
4913
5119
  }
4914
- return /* @__PURE__ */ import_react62.default.createElement(Tooltip, null, /* @__PURE__ */ import_react62.default.createElement(TooltipTrigger, { asChild: true }, button), /* @__PURE__ */ import_react62.default.createElement(
5120
+ return /* @__PURE__ */ import_react63.default.createElement(Tooltip, null, /* @__PURE__ */ import_react63.default.createElement(TooltipTrigger, { asChild: true }, button), /* @__PURE__ */ import_react63.default.createElement(
4915
5121
  TooltipContent,
4916
5122
  {
4917
5123
  side: side === "right" ? "left" : "right",
@@ -4923,8 +5129,8 @@ var SidebarMenuButton = import_react62.default.forwardRef(
4923
5129
  }
4924
5130
  );
4925
5131
  SidebarMenuButton.displayName = "SidebarMenuButton";
4926
- var SidebarGroup = import_react62.default.forwardRef(({ className, ...props }, ref) => {
4927
- return /* @__PURE__ */ import_react62.default.createElement(
5132
+ var SidebarGroup = import_react63.default.forwardRef(({ className, ...props }, ref) => {
5133
+ return /* @__PURE__ */ import_react63.default.createElement(
4928
5134
  "div",
4929
5135
  {
4930
5136
  ref,
@@ -4938,8 +5144,8 @@ var SidebarGroup = import_react62.default.forwardRef(({ className, ...props }, r
4938
5144
  );
4939
5145
  });
4940
5146
  SidebarGroup.displayName = "SidebarGroup";
4941
- var SidebarGroupLabel = import_react62.default.forwardRef(({ className, ...props }, ref) => {
4942
- return /* @__PURE__ */ import_react62.default.createElement(
5147
+ var SidebarGroupLabel = import_react63.default.forwardRef(({ className, ...props }, ref) => {
5148
+ return /* @__PURE__ */ import_react63.default.createElement(
4943
5149
  "div",
4944
5150
  {
4945
5151
  ref,
@@ -4953,7 +5159,7 @@ var SidebarGroupLabel = import_react62.default.forwardRef(({ className, ...props
4953
5159
  );
4954
5160
  });
4955
5161
  SidebarGroupLabel.displayName = "SidebarGroupLabel";
4956
- var SidebarMenuSub = import_react62.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ import_react62.default.createElement(
5162
+ var SidebarMenuSub = import_react63.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ import_react63.default.createElement(
4957
5163
  "ul",
4958
5164
  {
4959
5165
  ref,
@@ -4969,11 +5175,11 @@ var SidebarMenuSub = import_react62.default.forwardRef(({ className, ...props },
4969
5175
  }
4970
5176
  ));
4971
5177
  SidebarMenuSub.displayName = "SidebarMenuSub";
4972
- var SidebarMenuSubItem = import_react62.default.forwardRef(({ ...props }, ref) => /* @__PURE__ */ import_react62.default.createElement("li", { ref, ...props }));
5178
+ var SidebarMenuSubItem = import_react63.default.forwardRef(({ ...props }, ref) => /* @__PURE__ */ import_react63.default.createElement("li", { ref, ...props }));
4973
5179
  SidebarMenuSubItem.displayName = "SidebarMenuSubItem";
4974
- var SidebarMenuSubButton = import_react62.default.forwardRef(({ asChild = false, isActive, className, ...props }, ref) => {
5180
+ var SidebarMenuSubButton = import_react63.default.forwardRef(({ asChild = false, isActive, className, ...props }, ref) => {
4975
5181
  const Comp = asChild ? import_react_slot3.Slot : "a";
4976
- return /* @__PURE__ */ import_react62.default.createElement(
5182
+ return /* @__PURE__ */ import_react63.default.createElement(
4977
5183
  Comp,
4978
5184
  {
4979
5185
  ref,
@@ -4992,9 +5198,9 @@ var SidebarMenuSubButton = import_react62.default.forwardRef(({ asChild = false,
4992
5198
  );
4993
5199
  });
4994
5200
  SidebarMenuSubButton.displayName = "SidebarMenuSubButton";
4995
- var SidebarMenuAction = import_react62.default.forwardRef(({ className, asChild = false, ...props }, ref) => {
5201
+ var SidebarMenuAction = import_react63.default.forwardRef(({ className, asChild = false, ...props }, ref) => {
4996
5202
  const Comp = asChild ? import_react_slot3.Slot : "button";
4997
- return /* @__PURE__ */ import_react62.default.createElement(
5203
+ return /* @__PURE__ */ import_react63.default.createElement(
4998
5204
  Comp,
4999
5205
  {
5000
5206
  ref,
@@ -5012,25 +5218,30 @@ var SidebarMenuAction = import_react62.default.forwardRef(({ className, asChild
5012
5218
  );
5013
5219
  });
5014
5220
  SidebarMenuAction.displayName = "SidebarMenuAction";
5015
- var SidebarRail = import_react62.default.forwardRef(({ className, ...props }, ref) => {
5221
+ var SidebarRail = import_react63.default.forwardRef(({ className, ...props }, ref) => {
5016
5222
  const { open, toggleSidebar, side } = useSidebar();
5223
+ const resize = import_react63.default.useContext(SidebarResizeContext);
5224
+ const descriptionId = (0, import_react_id.useId)();
5017
5225
  const shortcutLabel = side === "left" ? SIDEBAR_KEYBOARD_SHORTCUT_LEFT : SIDEBAR_KEYBOARD_SHORTCUT_RIGHT;
5018
5226
  const caretIcon = open ? side === "right" ? "caret-sm-right" : "caret-sm-left" : side === "right" ? "caret-sm-left" : "caret-sm-right";
5019
- return /* @__PURE__ */ import_react62.default.createElement(
5227
+ return /* @__PURE__ */ import_react63.default.createElement(import_react63.default.Fragment, null, /* @__PURE__ */ import_react63.default.createElement(
5020
5228
  "button",
5021
5229
  {
5022
5230
  ref,
5023
5231
  "data-sidebar": "rail",
5024
- "aria-label": "Toggle Sidebar",
5025
- tabIndex: -1,
5232
+ "data-resizable": resize?.enabled || void 0,
5233
+ "aria-label": resize?.enabled ? `Resize or toggle ${side} sidebar` : "Toggle Sidebar",
5234
+ "aria-describedby": resize?.enabled ? descriptionId : void 0,
5235
+ tabIndex: resize?.enabled ? 0 : -1,
5236
+ ...resize?.enabled ? resize.railProps : {},
5026
5237
  onClick: toggleSidebar,
5027
- title: `Toggle Sidebar ${shortcutLabel}`,
5238
+ title: resize?.enabled ? `Drag to resize; click to toggle (${shortcutLabel})` : `Toggle Sidebar ${shortcutLabel}`,
5028
5239
  className: (0, import_classnames34.default)(
5029
5240
  Sidebar_module_default.rail,
5030
5241
  "hover-show-child background-color-transparent display-flex p-top-5xl p-left-xl p-right-0 justify-content-center position-absolute",
5031
5242
  {
5032
- "cursor-w-resize": open && side === "left" || !open && side === "right",
5033
- "cursor-e-resize": !open && side === "left" || open && side === "right"
5243
+ "cursor-w-resize": !resize?.enabled && (open && side === "left" || !open && side === "right"),
5244
+ "cursor-e-resize": !resize?.enabled && (!open && side === "left" || open && side === "right")
5034
5245
  },
5035
5246
  className
5036
5247
  ),
@@ -5039,12 +5250,13 @@ var SidebarRail = import_react62.default.forwardRef(({ className, ...props }, re
5039
5250
  bottom: "20px",
5040
5251
  right: side === "left" ? "-14px" : void 0,
5041
5252
  left: side === "right" ? "-18px" : void 0,
5042
- width: "10px"
5253
+ width: "10px",
5254
+ ...resize?.enabled ? { cursor: "col-resize", touchAction: "none" } : {}
5043
5255
  },
5044
5256
  type: "button",
5045
5257
  ...props
5046
5258
  },
5047
- /* @__PURE__ */ import_react62.default.createElement(
5259
+ /* @__PURE__ */ import_react63.default.createElement(
5048
5260
  Box,
5049
5261
  {
5050
5262
  radius: "xl",
@@ -5061,18 +5273,18 @@ var SidebarRail = import_react62.default.forwardRef(({ className, ...props }, re
5061
5273
  className: (0, import_classnames34.default)(
5062
5274
  "hover-child",
5063
5275
  {
5064
- "cursor-w-resize": open && side === "left" || !open && side === "right",
5065
- "cursor-e-resize": !open && side === "left" || open && side === "right"
5276
+ "cursor-w-resize": !resize?.enabled && (open && side === "left" || !open && side === "right"),
5277
+ "cursor-e-resize": !resize?.enabled && (!open && side === "left" || open && side === "right")
5066
5278
  },
5067
5279
  className
5068
5280
  )
5069
5281
  },
5070
- /* @__PURE__ */ import_react62.default.createElement(Icon, { name: caretIcon })
5282
+ /* @__PURE__ */ import_react63.default.createElement(Icon, { name: caretIcon })
5071
5283
  )
5072
- );
5284
+ ), resize?.enabled && /* @__PURE__ */ import_react63.default.createElement("span", { id: descriptionId, className: Sidebar_module_default.resizeDescription }, "Width ", Math.round(resize.width), " pixels. Use left and right arrows to resize, Home for minimum, End for maximum, and Enter or Space to toggle."));
5073
5285
  });
5074
5286
  SidebarRail.displayName = "SidebarRail";
5075
- var SidebarMenuBadge = import_react62.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ import_react62.default.createElement(
5287
+ var SidebarMenuBadge = import_react63.default.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ import_react63.default.createElement(
5076
5288
  "div",
5077
5289
  {
5078
5290
  ref,
@@ -5091,28 +5303,28 @@ var SidebarMenuBadge = import_react62.default.forwardRef(({ className, ...props
5091
5303
  SidebarMenuBadge.displayName = "SidebarMenuBadge";
5092
5304
 
5093
5305
  // src/components/Table/Table.tsx
5094
- var import_react68 = __toESM(require("react"));
5306
+ var import_react69 = __toESM(require("react"));
5095
5307
  var import_classnames40 = __toESM(require("classnames"));
5096
5308
 
5097
5309
  // src/components/Table/Table.module.scss
5098
5310
  var Table_module_default = { "container": "container__zReWp", "loading-mask": "loading-mask__gwG6j", "scroll-container": "scroll-container__79zJk", "table": "table__ojslm", "auto": "auto__bXEGP", "fixed": "fixed__zPdl3", "borderless": "borderless__AlDGM", "scrollable": "scrollable__HSxT1", "scrollable-x": "scrollable-x__aKmx8", "scrollable-y": "scrollable-y__8nNit", "table-bordered": "table-bordered__oTd6P", "full-height": "full-height__YPJfE" };
5099
5311
 
5100
5312
  // src/components/Table/TableBody/TableBody.tsx
5101
- var import_react66 = __toESM(require("react"));
5313
+ var import_react67 = __toESM(require("react"));
5102
5314
  var import_classnames38 = __toESM(require("classnames"));
5103
5315
 
5104
5316
  // src/components/Table/TableBody/TableBody.module.scss
5105
5317
  var TableBody_module_default = { "table-body": "table-body__cX0OQ", "striped": "striped__1Epqn", "hover": "hover__I3QF4" };
5106
5318
 
5107
5319
  // src/components/Table/common/TableRow/TableRow.tsx
5108
- var import_react65 = __toESM(require("react"));
5320
+ var import_react66 = __toESM(require("react"));
5109
5321
  var import_classnames37 = __toESM(require("classnames"));
5110
5322
 
5111
5323
  // src/components/Table/common/TableRow/TableRow.module.scss
5112
5324
  var TableRow_module_default = { "table-row": "table-row__BdHbx", "hoverable": "hoverable__Bdemq" };
5113
5325
 
5114
5326
  // src/components/Table/TableBody/TableBodyCell/TableBodyCell.tsx
5115
- var import_react63 = __toESM(require("react"));
5327
+ var import_react64 = __toESM(require("react"));
5116
5328
  var import_classnames35 = __toESM(require("classnames"));
5117
5329
 
5118
5330
  // src/components/Table/TableBody/TableBodyCell/TableBodyCell.module.scss
@@ -5145,7 +5357,7 @@ var TableBodyCell = ({
5145
5357
  },
5146
5358
  className
5147
5359
  );
5148
- return /* @__PURE__ */ import_react63.default.createElement(
5360
+ return /* @__PURE__ */ import_react64.default.createElement(
5149
5361
  Box,
5150
5362
  {
5151
5363
  as: columnIsSticky ? "th" : "td",
@@ -5163,7 +5375,7 @@ var TableBodyCell = ({
5163
5375
  var TableBodyCell_default = TableBodyCell;
5164
5376
 
5165
5377
  // src/components/Table/TableHead/TableHeaderCell/TableHeaderCell.tsx
5166
- var import_react64 = __toESM(require("react"));
5378
+ var import_react65 = __toESM(require("react"));
5167
5379
  var import_classnames36 = __toESM(require("classnames"));
5168
5380
 
5169
5381
  // src/components/Table/TableHead/TableHeaderCell/TableHeaderCell.module.scss
@@ -5190,7 +5402,7 @@ var TableHeaderCell = ({
5190
5402
  const renderIcon = () => {
5191
5403
  const renderArrows = () => {
5192
5404
  if (getSortDirection() === "ascending") {
5193
- return /* @__PURE__ */ import_react64.default.createElement(
5405
+ return /* @__PURE__ */ import_react65.default.createElement(
5194
5406
  Icon,
5195
5407
  {
5196
5408
  name: "caret-sm-up",
@@ -5199,7 +5411,7 @@ var TableHeaderCell = ({
5199
5411
  );
5200
5412
  }
5201
5413
  if (getSortDirection() === "descending") {
5202
- return /* @__PURE__ */ import_react64.default.createElement(
5414
+ return /* @__PURE__ */ import_react65.default.createElement(
5203
5415
  Icon,
5204
5416
  {
5205
5417
  name: "caret-sm-down",
@@ -5207,7 +5419,7 @@ var TableHeaderCell = ({
5207
5419
  }
5208
5420
  );
5209
5421
  }
5210
- return /* @__PURE__ */ import_react64.default.createElement(
5422
+ return /* @__PURE__ */ import_react65.default.createElement(
5211
5423
  Box,
5212
5424
  {
5213
5425
  display: "inline-block",
@@ -5218,7 +5430,7 @@ var TableHeaderCell = ({
5218
5430
  }
5219
5431
  );
5220
5432
  };
5221
- return /* @__PURE__ */ import_react64.default.createElement("span", { className: TableHeaderCell_module_default["sort-icon"] }, renderArrows());
5433
+ return /* @__PURE__ */ import_react65.default.createElement("span", { className: TableHeaderCell_module_default["sort-icon"] }, renderArrows());
5222
5434
  };
5223
5435
  const handleKeyPress = (event) => {
5224
5436
  if (!onSort || !isSortable) return;
@@ -5250,7 +5462,7 @@ var TableHeaderCell = ({
5250
5462
  },
5251
5463
  className
5252
5464
  );
5253
- return /* @__PURE__ */ import_react64.default.createElement(
5465
+ return /* @__PURE__ */ import_react65.default.createElement(
5254
5466
  Box,
5255
5467
  {
5256
5468
  as: "th",
@@ -5263,7 +5475,7 @@ var TableHeaderCell = ({
5263
5475
  onKeyDown: handleKeyPress,
5264
5476
  scope: "col"
5265
5477
  },
5266
- /* @__PURE__ */ import_react64.default.createElement("div", { className: TableHeaderCell_module_default.heading }, column.heading, isSortable && renderIcon())
5478
+ /* @__PURE__ */ import_react65.default.createElement("div", { className: TableHeaderCell_module_default.heading }, column.heading, isSortable && renderIcon())
5267
5479
  );
5268
5480
  };
5269
5481
 
@@ -5296,7 +5508,7 @@ var TableRow = ({
5296
5508
  return true;
5297
5509
  }
5298
5510
  if (Array.isArray(value)) return value.every(isRenderableCell);
5299
- return import_react65.default.isValidElement(value);
5511
+ return import_react66.default.isValidElement(value);
5300
5512
  };
5301
5513
  const renderCellContent = (column) => {
5302
5514
  if (column.render) {
@@ -5316,8 +5528,8 @@ var TableRow = ({
5316
5528
  }
5317
5529
  return void 0;
5318
5530
  };
5319
- return /* @__PURE__ */ import_react65.default.createElement("tr", { className: tableRowClasses }, Object.values(columns).map(
5320
- (column, columnIndex) => isTableHead ? /* @__PURE__ */ import_react65.default.createElement(
5531
+ return /* @__PURE__ */ import_react66.default.createElement("tr", { className: tableRowClasses }, Object.values(columns).map(
5532
+ (column, columnIndex) => isTableHead ? /* @__PURE__ */ import_react66.default.createElement(
5321
5533
  TableHeaderCell,
5322
5534
  {
5323
5535
  column,
@@ -5335,7 +5547,7 @@ var TableRow = ({
5335
5547
  hasStickyHeader,
5336
5548
  sticky: column.sticky
5337
5549
  }
5338
- ) : /* @__PURE__ */ import_react65.default.createElement(
5550
+ ) : /* @__PURE__ */ import_react66.default.createElement(
5339
5551
  TableBodyCell_default,
5340
5552
  {
5341
5553
  align: column.align || align,
@@ -5382,7 +5594,7 @@ var TableBody = ({
5382
5594
  }
5383
5595
  return `row-index-${rowIndex}`;
5384
5596
  };
5385
- return /* @__PURE__ */ import_react66.default.createElement("tbody", { className: tableBodyClasses }, rows.map((row, rowIndex) => /* @__PURE__ */ import_react66.default.createElement(
5597
+ return /* @__PURE__ */ import_react67.default.createElement("tbody", { className: tableBodyClasses }, rows.map((row, rowIndex) => /* @__PURE__ */ import_react67.default.createElement(
5386
5598
  TableRow,
5387
5599
  {
5388
5600
  columns,
@@ -5399,7 +5611,7 @@ var TableBody = ({
5399
5611
  };
5400
5612
 
5401
5613
  // src/components/Table/TableHead/TableHead.tsx
5402
- var import_react67 = __toESM(require("react"));
5614
+ var import_react68 = __toESM(require("react"));
5403
5615
  var import_classnames39 = __toESM(require("classnames"));
5404
5616
  var TableHead = ({
5405
5617
  columns,
@@ -5413,7 +5625,7 @@ var TableHead = ({
5413
5625
  truncateOverflow = false
5414
5626
  }) => {
5415
5627
  const tableHeadClasses = (0, import_classnames39.default)(className);
5416
- return /* @__PURE__ */ import_react67.default.createElement("thead", { className: tableHeadClasses }, /* @__PURE__ */ import_react67.default.createElement(
5628
+ return /* @__PURE__ */ import_react68.default.createElement("thead", { className: tableHeadClasses }, /* @__PURE__ */ import_react68.default.createElement(
5417
5629
  TableRow,
5418
5630
  {
5419
5631
  columns,
@@ -5467,13 +5679,13 @@ var Table = ({
5467
5679
  [Table_module_default.borderless]: isBorderless,
5468
5680
  [Table_module_default.compact]: isCompact
5469
5681
  });
5470
- return /* @__PURE__ */ import_react68.default.createElement("div", { className: containerClasses }, isLoading && /* @__PURE__ */ import_react68.default.createElement("div", { className: Table_module_default["loading-mask"] }, /* @__PURE__ */ import_react68.default.createElement(Spinner, { size: "xl" })), /* @__PURE__ */ import_react68.default.createElement(
5682
+ return /* @__PURE__ */ import_react69.default.createElement("div", { className: containerClasses }, isLoading && /* @__PURE__ */ import_react69.default.createElement("div", { className: Table_module_default["loading-mask"] }, /* @__PURE__ */ import_react69.default.createElement(Spinner, { size: "xl" })), /* @__PURE__ */ import_react69.default.createElement(
5471
5683
  "div",
5472
5684
  {
5473
5685
  className: scrollContainerClasses,
5474
5686
  "data-testid": "tableContainerDiv-testid"
5475
5687
  },
5476
- /* @__PURE__ */ import_react68.default.createElement("table", { className: tableClasses }, /* @__PURE__ */ import_react68.default.createElement(
5688
+ /* @__PURE__ */ import_react69.default.createElement("table", { className: tableClasses }, /* @__PURE__ */ import_react69.default.createElement(
5477
5689
  TableHead,
5478
5690
  {
5479
5691
  columns,
@@ -5485,7 +5697,7 @@ var Table = ({
5485
5697
  truncateOverflow,
5486
5698
  hasStickyHeader
5487
5699
  }
5488
- ), /* @__PURE__ */ import_react68.default.createElement(
5700
+ ), /* @__PURE__ */ import_react69.default.createElement(
5489
5701
  TableBody,
5490
5702
  {
5491
5703
  rows,
@@ -5504,22 +5716,22 @@ var Table = ({
5504
5716
  };
5505
5717
 
5506
5718
  // src/components/ThemeProvider/ThemeProvider.tsx
5507
- var import_react69 = __toESM(require("react"));
5719
+ var import_react70 = __toESM(require("react"));
5508
5720
  var initialState = {
5509
5721
  theme: "system",
5510
5722
  setTheme: () => null
5511
5723
  };
5512
- var ThemeProviderContext = (0, import_react69.createContext)(initialState);
5724
+ var ThemeProviderContext = (0, import_react70.createContext)(initialState);
5513
5725
  function ThemeProvider({
5514
5726
  children,
5515
5727
  defaultTheme = "system",
5516
5728
  storageKey = "hyphen-ui-theme",
5517
5729
  ...props
5518
5730
  }) {
5519
- const [theme, setTheme] = (0, import_react69.useState)(
5731
+ const [theme, setTheme] = (0, import_react70.useState)(
5520
5732
  () => localStorage.getItem(storageKey) || defaultTheme
5521
5733
  );
5522
- (0, import_react69.useEffect)(() => {
5734
+ (0, import_react70.useEffect)(() => {
5523
5735
  const root = window.document.documentElement;
5524
5736
  root.classList.remove("light", "dark");
5525
5737
  if (theme === "system") {
@@ -5538,14 +5750,14 @@ function ThemeProvider({
5538
5750
  },
5539
5751
  isDarkMode
5540
5752
  };
5541
- return /* @__PURE__ */ import_react69.default.createElement(ThemeProviderContext.Provider, { ...props, value }, children);
5753
+ return /* @__PURE__ */ import_react70.default.createElement(ThemeProviderContext.Provider, { ...props, value }, children);
5542
5754
  }
5543
5755
 
5544
5756
  // src/components/Toast/ToastContainer.tsx
5545
- var import_react73 = __toESM(require("react"));
5757
+ var import_react74 = __toESM(require("react"));
5546
5758
 
5547
5759
  // src/components/Toast/ToastNotification.tsx
5548
- var import_react70 = __toESM(require("react"));
5760
+ var import_react71 = __toESM(require("react"));
5549
5761
  var import_classnames41 = __toESM(require("classnames"));
5550
5762
 
5551
5763
  // src/components/Toast/ToastNotification.module.scss
@@ -5578,12 +5790,12 @@ var renderToastIcon = (toast2) => {
5578
5790
  iconName = "c-warning";
5579
5791
  iconColor = "white";
5580
5792
  }
5581
- const icon = type !== "loading" ? /* @__PURE__ */ import_react70.default.createElement(Icon, { name: iconName, color: iconColor }) : /* @__PURE__ */ import_react70.default.createElement(Spinner, null);
5582
- return /* @__PURE__ */ import_react70.default.createElement(Box, { justifyContent: "center", height: "100" }, icon);
5793
+ const icon = type !== "loading" ? /* @__PURE__ */ import_react71.default.createElement(Icon, { name: iconName, color: iconColor }) : /* @__PURE__ */ import_react71.default.createElement(Spinner, null);
5794
+ return /* @__PURE__ */ import_react71.default.createElement(Box, { justifyContent: "center", height: "100" }, icon);
5583
5795
  };
5584
5796
  var renderDismissIcon = (toast2, onDismiss) => {
5585
5797
  if (!toast2.canDismiss) return;
5586
- return /* @__PURE__ */ import_react70.default.createElement(
5798
+ return /* @__PURE__ */ import_react71.default.createElement(
5587
5799
  Box,
5588
5800
  {
5589
5801
  as: "button",
@@ -5598,12 +5810,12 @@ var renderDismissIcon = (toast2, onDismiss) => {
5598
5810
  onClick: onDismiss,
5599
5811
  "aria-label": "dismiss notification"
5600
5812
  },
5601
- /* @__PURE__ */ import_react70.default.createElement(Icon, { name: "remove" })
5813
+ /* @__PURE__ */ import_react71.default.createElement(Icon, { name: "remove" })
5602
5814
  );
5603
5815
  };
5604
- var ToastNotification = import_react70.default.memo(
5816
+ var ToastNotification = import_react71.default.memo(
5605
5817
  ({ toast: toast2, position = "top-center", style, children, onDismiss }) => {
5606
- const message = /* @__PURE__ */ import_react70.default.createElement(
5818
+ const message = /* @__PURE__ */ import_react71.default.createElement(
5607
5819
  Box,
5608
5820
  {
5609
5821
  direction: "row",
@@ -5625,7 +5837,7 @@ var ToastNotification = import_react70.default.memo(
5625
5837
  [ToastNotification_module_default["toast-error"]]: toast2.type === "error"
5626
5838
  }
5627
5839
  );
5628
- return /* @__PURE__ */ import_react70.default.createElement(
5840
+ return /* @__PURE__ */ import_react71.default.createElement(
5629
5841
  Box,
5630
5842
  {
5631
5843
  alignItems: "center",
@@ -5642,16 +5854,16 @@ var ToastNotification = import_react70.default.memo(
5642
5854
  },
5643
5855
  typeof children === "function" ? children({
5644
5856
  message
5645
- }) : /* @__PURE__ */ import_react70.default.createElement(import_react70.default.Fragment, null, renderToastIcon(toast2), message, renderDismissIcon(toast2, onDismiss))
5857
+ }) : /* @__PURE__ */ import_react71.default.createElement(import_react71.default.Fragment, null, renderToastIcon(toast2), message, renderDismissIcon(toast2, onDismiss))
5646
5858
  );
5647
5859
  }
5648
5860
  );
5649
5861
 
5650
5862
  // src/components/Toast/useToasts.ts
5651
- var import_react72 = require("react");
5863
+ var import_react73 = require("react");
5652
5864
 
5653
5865
  // src/components/Toast/Toast.store.ts
5654
- var import_react71 = require("react");
5866
+ var import_react72 = require("react");
5655
5867
  var TOAST_LIMIT = 20;
5656
5868
  var toastTimeouts = /* @__PURE__ */ new Map();
5657
5869
  var addToDismissedQueue = (toastId) => {
@@ -5787,8 +5999,8 @@ var defaultTimeouts = {
5787
5999
  custom: 4e3
5788
6000
  };
5789
6001
  var useToastStore = (toastOptions = {}) => {
5790
- const [state, setState] = (0, import_react71.useState)(memoryState);
5791
- (0, import_react71.useEffect)(() => {
6002
+ const [state, setState] = (0, import_react72.useState)(memoryState);
6003
+ (0, import_react72.useEffect)(() => {
5792
6004
  listeners.push(setState);
5793
6005
  return () => {
5794
6006
  const index = listeners.indexOf(setState);
@@ -5875,7 +6087,7 @@ toast.async = function(promise, messages, opts) {
5875
6087
  // src/components/Toast/useToasts.ts
5876
6088
  var useToasts = (toastOptions) => {
5877
6089
  const { toasts, pausedAt } = useToastStore(toastOptions);
5878
- (0, import_react72.useEffect)(() => {
6090
+ (0, import_react73.useEffect)(() => {
5879
6091
  if (pausedAt) {
5880
6092
  return;
5881
6093
  }
@@ -5897,7 +6109,7 @@ var useToasts = (toastOptions) => {
5897
6109
  timeouts.forEach((timeout) => timeout && clearTimeout(timeout));
5898
6110
  };
5899
6111
  }, [toasts, pausedAt]);
5900
- const handlers = (0, import_react72.useMemo)(
6112
+ const handlers = (0, import_react73.useMemo)(
5901
6113
  () => ({
5902
6114
  startPause: () => {
5903
6115
  dispatch({
@@ -5979,7 +6191,7 @@ var renderNotification = (currentToast, children, containerPosition) => {
5979
6191
  if (children) {
5980
6192
  return children(currentToast);
5981
6193
  }
5982
- return /* @__PURE__ */ import_react73.default.createElement(
6194
+ return /* @__PURE__ */ import_react74.default.createElement(
5983
6195
  ToastNotification,
5984
6196
  {
5985
6197
  toast: currentToast,
@@ -5999,7 +6211,7 @@ var ToastContainer = ({
5999
6211
  ...restProps
6000
6212
  }) => {
6001
6213
  const { toasts, handlers } = useToasts(toastOptions);
6002
- return /* @__PURE__ */ import_react73.default.createElement(
6214
+ return /* @__PURE__ */ import_react74.default.createElement(
6003
6215
  Box,
6004
6216
  {
6005
6217
  style: {
@@ -6029,7 +6241,7 @@ var ToastContainer = ({
6029
6241
  const ref = t.height ? void 0 : createRectRef((rect) => {
6030
6242
  handlers.updateHeight(t.id, rect.height);
6031
6243
  });
6032
- return /* @__PURE__ */ import_react73.default.createElement(
6244
+ return /* @__PURE__ */ import_react74.default.createElement(
6033
6245
  Box,
6034
6246
  {
6035
6247
  ref,
@@ -6047,7 +6259,7 @@ var ToastContainer = ({
6047
6259
  };
6048
6260
 
6049
6261
  // src/components/Toggle/Toggle.tsx
6050
- var import_react74 = __toESM(require("react"));
6262
+ var import_react75 = __toESM(require("react"));
6051
6263
  var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"));
6052
6264
 
6053
6265
  // src/components/Toggle/Toggle.module.scss
@@ -6055,7 +6267,7 @@ var Toggle_module_default = { "item": "item__PrPsJ", "outline": "outline__Lkabh"
6055
6267
 
6056
6268
  // src/components/Toggle/Toggle.tsx
6057
6269
  var import_classnames42 = __toESM(require("classnames"));
6058
- var Toggle = (0, import_react74.forwardRef)(({ className, variant = "default", children, ...props }, ref) => /* @__PURE__ */ import_react74.default.createElement(
6270
+ var Toggle = (0, import_react75.forwardRef)(({ className, variant = "default", children, ...props }, ref) => /* @__PURE__ */ import_react75.default.createElement(
6059
6271
  TogglePrimitive.Root,
6060
6272
  {
6061
6273
  ref,
@@ -6072,12 +6284,12 @@ var Toggle = (0, import_react74.forwardRef)(({ className, variant = "default", c
6072
6284
  Toggle.displayName = "Toggle";
6073
6285
 
6074
6286
  // src/hooks/useBreakpoint/useBreakpoint.ts
6075
- var import_react76 = require("react");
6287
+ var import_react77 = require("react");
6076
6288
 
6077
6289
  // src/hooks/useWindowSize/useWindowSize.ts
6078
- var import_react75 = __toESM(require("react"));
6290
+ var import_react76 = __toESM(require("react"));
6079
6291
  var useWindowSize = () => {
6080
- const { innerWidth, innerHeight, outerHeight, outerWidth, isCreated } = import_react75.default.useContext(ResponsiveContext);
6292
+ const { innerWidth, innerHeight, outerHeight, outerWidth, isCreated } = import_react76.default.useContext(ResponsiveContext);
6081
6293
  if (isCreated) {
6082
6294
  return {
6083
6295
  innerHeight,
@@ -6093,7 +6305,7 @@ var useWindowSize = () => {
6093
6305
  var defaultBreakpoint = { name: "base", minWidth: 0 };
6094
6306
  var useBreakpoint = () => {
6095
6307
  const windowSize = useWindowSize();
6096
- const [breakpoint, setBreakpoint] = (0, import_react76.useState)({
6308
+ const [breakpoint, setBreakpoint] = (0, import_react77.useState)({
6097
6309
  ...defaultBreakpoint
6098
6310
  });
6099
6311
  useIsomorphicLayoutEffect(() => {
@@ -6120,7 +6332,7 @@ var useBreakpoint = () => {
6120
6332
  };
6121
6333
 
6122
6334
  // src/hooks/useOpenClose/useOpenClose.tsx
6123
- var import_react77 = require("react");
6335
+ var import_react78 = require("react");
6124
6336
  var useOpenClose = (props = {}) => {
6125
6337
  const {
6126
6338
  defaultIsOpen,
@@ -6128,28 +6340,28 @@ var useOpenClose = (props = {}) => {
6128
6340
  onClose: onCloseProp,
6129
6341
  onOpen: onOpenProp
6130
6342
  } = props;
6131
- const openCallback = (0, import_react77.useCallback)(() => {
6343
+ const openCallback = (0, import_react78.useCallback)(() => {
6132
6344
  onOpenProp?.();
6133
6345
  }, [onOpenProp]);
6134
- const closeCallback = (0, import_react77.useCallback)(() => {
6346
+ const closeCallback = (0, import_react78.useCallback)(() => {
6135
6347
  onCloseProp?.();
6136
6348
  }, [onCloseProp]);
6137
- const [isOpenState, setIsOpen] = (0, import_react77.useState)(defaultIsOpen || false);
6349
+ const [isOpenState, setIsOpen] = (0, import_react78.useState)(defaultIsOpen || false);
6138
6350
  const isOpen = isOpenProp !== void 0 ? isOpenProp : isOpenState;
6139
6351
  const isControlled = isOpenProp !== void 0;
6140
- const handleClose = (0, import_react77.useCallback)(() => {
6352
+ const handleClose = (0, import_react78.useCallback)(() => {
6141
6353
  if (!isControlled) {
6142
6354
  setIsOpen(false);
6143
6355
  }
6144
6356
  closeCallback?.();
6145
6357
  }, [isControlled, closeCallback]);
6146
- const handleOpen = (0, import_react77.useCallback)(() => {
6358
+ const handleOpen = (0, import_react78.useCallback)(() => {
6147
6359
  if (!isControlled) {
6148
6360
  setIsOpen(true);
6149
6361
  }
6150
6362
  openCallback?.();
6151
6363
  }, [isControlled, openCallback]);
6152
- const handleToggle = (0, import_react77.useCallback)(() => {
6364
+ const handleToggle = (0, import_react78.useCallback)(() => {
6153
6365
  if (isOpen) {
6154
6366
  handleClose();
6155
6367
  } else {
@@ -6165,9 +6377,9 @@ var useOpenClose = (props = {}) => {
6165
6377
  };
6166
6378
 
6167
6379
  // src/hooks/useTheme/useTheme.ts
6168
- var import_react78 = __toESM(require("react"));
6380
+ var import_react79 = __toESM(require("react"));
6169
6381
  var useTheme = () => {
6170
- const context = import_react78.default.useContext(ThemeProviderContext);
6382
+ const context = import_react79.default.useContext(ThemeProviderContext);
6171
6383
  if (context === void 0)
6172
6384
  throw new Error(
6173
6385
  "useTheme must be used within a ThemeProvider. Be sure your App is wrapped in ThemeProvider."