@usefui/components 1.5.3 → 1.6.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 (38) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/index.d.mts +237 -1
  3. package/dist/index.d.ts +237 -1
  4. package/dist/index.js +702 -231
  5. package/dist/index.mjs +668 -210
  6. package/package.json +12 -12
  7. package/src/__tests__/MessageBubble.test.tsx +179 -0
  8. package/src/__tests__/Shimmer.test.tsx +122 -0
  9. package/src/__tests__/Tree.test.tsx +275 -0
  10. package/src/accordion/hooks/index.tsx +3 -1
  11. package/src/badge/index.tsx +2 -3
  12. package/src/checkbox/hooks/index.tsx +5 -1
  13. package/src/collapsible/hooks/index.tsx +3 -1
  14. package/src/dialog/hooks/index.tsx +5 -1
  15. package/src/dropdown/hooks/index.tsx +3 -1
  16. package/src/dropdown/index.tsx +9 -9
  17. package/src/field/hooks/index.tsx +5 -1
  18. package/src/index.ts +6 -0
  19. package/src/message-bubble/MessageBubble.stories.tsx +91 -0
  20. package/src/message-bubble/hooks/index.tsx +41 -0
  21. package/src/message-bubble/index.tsx +153 -0
  22. package/src/message-bubble/styles/index.ts +61 -0
  23. package/src/otp-field/hooks/index.tsx +3 -1
  24. package/src/otp-field/index.tsx +5 -3
  25. package/src/sheet/hooks/index.tsx +5 -1
  26. package/src/shimmer/Shimmer.stories.tsx +95 -0
  27. package/src/shimmer/index.tsx +64 -0
  28. package/src/shimmer/styles/index.ts +33 -0
  29. package/src/switch/hooks/index.tsx +5 -1
  30. package/src/tabs/hooks/index.tsx +5 -1
  31. package/src/toolbar/hooks/index.tsx +5 -1
  32. package/src/tree/Tree.stories.tsx +139 -0
  33. package/src/tree/hooks/tree-node-provider.tsx +50 -0
  34. package/src/tree/hooks/tree-provider.tsx +75 -0
  35. package/src/tree/index.tsx +231 -0
  36. package/src/tree/styles/index.ts +23 -0
  37. package/tsconfig.build.json +20 -0
  38. package/tsconfig.json +1 -3
package/dist/index.js CHANGED
@@ -70,6 +70,10 @@ __export(index_exports, {
70
70
  FieldMeta: () => FieldMeta,
71
71
  FieldRoot: () => FieldRoot,
72
72
  FieldWrapper: () => FieldWrapper,
73
+ MessageBubble: () => MessageBubble,
74
+ MessageBubbleContent: () => MessageBubbleContent,
75
+ MessageBubbleMeta: () => MessageBubbleMeta,
76
+ MessageBubbleRoot: () => MessageBubbleRoot,
73
77
  MetaVariantEnum: () => MetaVariantEnum,
74
78
  OTPField: () => OTPField,
75
79
  OTPFieldSlot: () => OTPFieldSlot,
@@ -88,6 +92,7 @@ __export(index_exports, {
88
92
  Sheet: () => Sheet,
89
93
  SheetRoot: () => SheetRoot,
90
94
  SheetTrigger: () => SheetTrigger,
95
+ Shimmer: () => Shimmer,
91
96
  Skeleton: () => Skeleton,
92
97
  Spinner: () => Spinner,
93
98
  Switch: () => Switch,
@@ -112,16 +117,24 @@ __export(index_exports, {
112
117
  ToolbarSection: () => ToolbarSection,
113
118
  ToolbarTrigger: () => ToolbarTrigger,
114
119
  Tooltip: () => Tooltip,
120
+ Tree: () => Tree,
121
+ TreeContent: () => TreeContent,
122
+ TreeNode: () => TreeNode,
123
+ TreeRoot: () => TreeRoot,
124
+ TreeTrigger: () => TreeTrigger,
115
125
  useAccordion: () => useAccordion,
116
126
  useCheckbox: () => useCheckbox,
117
127
  useCollapsible: () => useCollapsible,
118
128
  useDialog: () => useDialog,
119
129
  useDropdownMenu: () => useDropdownMenu,
120
130
  useField: () => useField,
131
+ useMessageBubble: () => useMessageBubble,
121
132
  useSheet: () => useSheet,
122
133
  useSwitch: () => useSwitch,
123
134
  useTabs: () => useTabs,
124
- useToolbar: () => useToolbar
135
+ useToolbar: () => useToolbar,
136
+ useTree: () => useTree,
137
+ useTreeNode: () => useTreeNode
125
138
  });
126
139
  module.exports = __toCommonJS(index_exports);
127
140
 
@@ -1016,7 +1029,9 @@ var defaultComponentAPI2 = {
1016
1029
  };
1017
1030
  var CheckboxContext = (0, import_react8.createContext)(defaultComponentAPI2);
1018
1031
  var useCheckbox = () => (0, import_react8.useContext)(CheckboxContext);
1019
- var CheckboxProvider = ({ children }) => {
1032
+ var CheckboxProvider = ({
1033
+ children
1034
+ }) => {
1020
1035
  const context = useCheckboxProvider();
1021
1036
  return /* @__PURE__ */ import_react8.default.createElement(CheckboxContext.Provider, { value: context }, children);
1022
1037
  };
@@ -1460,7 +1475,9 @@ var defaultComponentAPI4 = {
1460
1475
  };
1461
1476
  var DialogContext = (0, import_react13.createContext)(defaultComponentAPI4);
1462
1477
  var useDialog = () => (0, import_react13.useContext)(DialogContext);
1463
- var DialogProvider = ({ children }) => {
1478
+ var DialogProvider = ({
1479
+ children
1480
+ }) => {
1464
1481
  const context = useDialogProvider();
1465
1482
  return /* @__PURE__ */ import_react13.default.createElement(DialogContext.Provider, { value: context }, children);
1466
1483
  };
@@ -1902,7 +1919,10 @@ var DropdownMenu = ({ children }) => {
1902
1919
  const handleClickOutside = () => {
1903
1920
  if (states.open && toggleOpen) toggleOpen();
1904
1921
  };
1905
- useClickOutside(DropdownContentRef, handleClickOutside);
1922
+ useClickOutside(
1923
+ DropdownContentRef,
1924
+ handleClickOutside
1925
+ );
1906
1926
  useDisabledScroll(Boolean(states.open));
1907
1927
  return /* @__PURE__ */ import_react19.default.createElement(RootWrapper, { ref: DropdownContentRef }, children);
1908
1928
  };
@@ -2078,7 +2098,9 @@ var defaultComponentAPI5 = {
2078
2098
  };
2079
2099
  var FieldContext = (0, import_react20.createContext)(defaultComponentAPI5);
2080
2100
  var useField = () => (0, import_react20.useContext)(FieldContext);
2081
- var FieldProvider = ({ children }) => {
2101
+ var FieldProvider = ({
2102
+ children
2103
+ }) => {
2082
2104
  const context = useFieldProvider();
2083
2105
  return /* @__PURE__ */ import_react20.default.createElement(FieldContext.Provider, { value: context }, children);
2084
2106
  };
@@ -2371,23 +2393,175 @@ Field.Wrapper = FieldWrapper;
2371
2393
  Field.Label = FieldLabel;
2372
2394
  Field.Meta = FieldMeta;
2373
2395
 
2374
- // src/otp-field/index.tsx
2396
+ // src/message-bubble/index.tsx
2375
2397
  var import_react23 = __toESM(require("react"));
2376
2398
 
2377
- // src/otp-field/hooks/index.tsx
2399
+ // src/message-bubble/hooks/index.tsx
2378
2400
  var import_react22 = __toESM(require("react"));
2379
- var OTPFieldContext = import_react22.default.createContext(
2401
+ var defaultComponentAPI6 = {
2402
+ id: "",
2403
+ states: {},
2404
+ methods: {}
2405
+ };
2406
+ var MessageBubbleContext = (0, import_react22.createContext)(defaultComponentAPI6);
2407
+ var useMessageBubble = () => (0, import_react22.useContext)(MessageBubbleContext);
2408
+ var MessageBubbleProvider = ({
2409
+ children
2410
+ }) => {
2411
+ const context = useMessageBubbleProvider();
2412
+ return /* @__PURE__ */ import_react22.default.createElement(MessageBubbleContext.Provider, { value: context }, children);
2413
+ };
2414
+ function useMessageBubbleProvider() {
2415
+ const [side, setSide] = (0, import_react22.useState)(null);
2416
+ const MessageBubbleId = import_react22.default.useId();
2417
+ return {
2418
+ id: MessageBubbleId,
2419
+ states: {
2420
+ side
2421
+ },
2422
+ methods: {
2423
+ applySide: (side2) => setSide(side2)
2424
+ }
2425
+ };
2426
+ }
2427
+
2428
+ // src/message-bubble/styles/index.ts
2429
+ var import_styled_components11 = __toESM(require("styled-components"));
2430
+ var MessageBubbleWrapper = import_styled_components11.default.div`
2431
+ display: flex;
2432
+ flex-direction: column;
2433
+ gap: var(--measurement-medium-10);
2434
+
2435
+ &[data-side="right"] {
2436
+ align-items: flex-end;
2437
+ }
2438
+
2439
+ &[data-side="left"] {
2440
+ align-items: flex-start;
2441
+ }
2442
+ `;
2443
+ var MessageBubbleBadge = (0, import_styled_components11.default)(Badge)`
2444
+ position: relative;
2445
+ max-width: var(--measurement-large-90);
2446
+ width: 100%;
2447
+ justify-self: flex-end;
2448
+ padding: var(--measurement-medium-30) var(--measurement-medium-50) !important;
2449
+ border-radius: var(--measurement-medium-60) !important;
2450
+
2451
+ &[data-side="left"] {
2452
+ background-color: var(--contrast-color) !important;
2453
+ border-bottom-left-radius: 0 !important;
2454
+ }
2455
+
2456
+ &[data-side="right"] {
2457
+ background-color: var(--font-color-alpha-10) !important;
2458
+ border-bottom-right-radius: 0 !important;
2459
+ }
2460
+ `;
2461
+ var MessageBubbleContentWrapper = import_styled_components11.default.div`
2462
+ line-height: 1.5;
2463
+ font-weight: 500;
2464
+ word-break: keep-all;
2465
+ width: 100%;
2466
+
2467
+ * {
2468
+ font-size: var(--fontsize-medium-10) !important;
2469
+ }
2470
+ `;
2471
+ var MessageBubbleMetaWrapper = import_styled_components11.default.div`
2472
+ display: flex;
2473
+ align-items: center;
2474
+ gap: var(--measurement-medium-10);
2475
+ width: 100%;
2476
+
2477
+ &[data-side="right"] {
2478
+ justify-content: flex-end;
2479
+ }
2480
+
2481
+ &[data-side="left"] {
2482
+ justify-content: flex-start;
2483
+ }
2484
+ `;
2485
+
2486
+ // src/message-bubble/index.tsx
2487
+ var MessageBubbleRoot = ({ children }) => {
2488
+ return /* @__PURE__ */ import_react23.default.createElement(MessageBubbleProvider, null, children);
2489
+ };
2490
+ MessageBubbleRoot.displayName = "MessageBubble.Root";
2491
+ var MessageBubble = (props) => {
2492
+ const { side, raw, children, ...restProps } = props;
2493
+ const { methods } = useMessageBubble();
2494
+ import_react23.default.useEffect(() => {
2495
+ if (side && methods?.applySide) methods.applySide(side);
2496
+ }, [side]);
2497
+ return /* @__PURE__ */ import_react23.default.createElement(
2498
+ MessageBubbleWrapper,
2499
+ {
2500
+ "data-raw": Boolean(raw),
2501
+ "data-side": side,
2502
+ "aria-label": restProps["aria-label"] ?? `message-bubble-${side}`,
2503
+ ...restProps
2504
+ },
2505
+ children
2506
+ );
2507
+ };
2508
+ MessageBubble.displayName = "MessageBubble";
2509
+ var MessageBubbleContent = (props) => {
2510
+ const { children, raw, ...restProps } = props;
2511
+ const { id, states } = useMessageBubble();
2512
+ return /* @__PURE__ */ import_react23.default.createElement(
2513
+ MessageBubbleBadge,
2514
+ {
2515
+ variant: "secondary",
2516
+ "data-raw": Boolean(raw),
2517
+ "data-side": states?.side,
2518
+ "aria-label": `message-bubble-content-${id}`,
2519
+ ...restProps
2520
+ },
2521
+ /* @__PURE__ */ import_react23.default.createElement(MessageBubbleContentWrapper, null, children)
2522
+ );
2523
+ };
2524
+ MessageBubbleContent.displayName = "MessageBubble.Content";
2525
+ var MessageBubbleMeta = (props) => {
2526
+ const { createdAt, raw, ...restProps } = props;
2527
+ const { states } = useMessageBubble();
2528
+ const formattedDate = new Intl.DateTimeFormat("en-US", {
2529
+ dateStyle: "medium",
2530
+ timeStyle: "short"
2531
+ }).format(createdAt);
2532
+ return /* @__PURE__ */ import_react23.default.createElement(
2533
+ MessageBubbleMetaWrapper,
2534
+ {
2535
+ "data-raw": Boolean(raw),
2536
+ "data-side": states?.side,
2537
+ "aria-label": `message-bubble-meta-${states?.side}`,
2538
+ ...restProps
2539
+ },
2540
+ formattedDate
2541
+ );
2542
+ };
2543
+ MessageBubbleMeta.displayName = "MessageBubble.Meta";
2544
+ MessageBubble.Root = MessageBubbleRoot;
2545
+ MessageBubble.Content = MessageBubbleContent;
2546
+ MessageBubble.Meta = MessageBubbleMeta;
2547
+
2548
+ // src/otp-field/index.tsx
2549
+ var import_react25 = __toESM(require("react"));
2550
+
2551
+ // src/otp-field/hooks/index.tsx
2552
+ var import_react24 = __toESM(require("react"));
2553
+ var OTPFieldContext = import_react24.default.createContext(
2380
2554
  null
2381
2555
  );
2382
2556
  var useOTPField = () => {
2383
- const context = import_react22.default.useContext(OTPFieldContext);
2557
+ const context = import_react24.default.useContext(OTPFieldContext);
2384
2558
  if (!context) return null;
2385
2559
  return context;
2386
2560
  };
2387
2561
 
2388
2562
  // src/otp-field/styles/index.ts
2389
- var import_styled_components11 = __toESM(require("styled-components"));
2390
- var OTPCell = import_styled_components11.default.input`
2563
+ var import_styled_components12 = __toESM(require("styled-components"));
2564
+ var OTPCell = import_styled_components12.default.input`
2391
2565
  width: var(--measurement-medium-90);
2392
2566
  height: var(--measurement-medium-90);
2393
2567
  border: var(--measurement-small-10) solid var(--font-color-alpha-10);
@@ -2422,11 +2596,11 @@ var OTPCell = import_styled_components11.default.input`
2422
2596
  // src/otp-field/index.tsx
2423
2597
  var OTPField = ({ children, length, onComplete }) => {
2424
2598
  const defaultLength = length ?? 6;
2425
- const inputRefs = import_react23.default.useRef([]);
2426
- const [otp, setOtp] = import_react23.default.useState(
2599
+ const inputRefs = import_react25.default.useRef([]);
2600
+ const [otp, setOtp] = import_react25.default.useState(
2427
2601
  Array.from({ length: defaultLength }, () => "")
2428
2602
  );
2429
- const [activeIndex, setActiveIndex] = import_react23.default.useState(0);
2603
+ const [activeIndex, setActiveIndex] = import_react25.default.useState(0);
2430
2604
  const handleChange = (index, value) => {
2431
2605
  const newOtp = [...otp];
2432
2606
  newOtp[index] = value.substring(value.length - 1);
@@ -2487,13 +2661,13 @@ var OTPField = ({ children, length, onComplete }) => {
2487
2661
  );
2488
2662
  return () => clearTimeout(timeout);
2489
2663
  };
2490
- import_react23.default.useEffect(() => {
2664
+ import_react25.default.useEffect(() => {
2491
2665
  const otpString = otp.join("");
2492
2666
  if (otpString.length === defaultLength && onComplete) {
2493
2667
  onComplete(otpString);
2494
2668
  }
2495
2669
  }, [otp, defaultLength, onComplete]);
2496
- const contextValue = import_react23.default.useMemo(() => {
2670
+ const contextValue = import_react25.default.useMemo(() => {
2497
2671
  return {
2498
2672
  otp,
2499
2673
  activeIndex,
@@ -2516,11 +2690,11 @@ var OTPField = ({ children, length, onComplete }) => {
2516
2690
  handleClick,
2517
2691
  handlePaste
2518
2692
  ]);
2519
- return /* @__PURE__ */ import_react23.default.createElement(OTPFieldContext.Provider, { value: contextValue }, children);
2693
+ return /* @__PURE__ */ import_react25.default.createElement(OTPFieldContext.Provider, { value: contextValue }, children);
2520
2694
  };
2521
2695
  OTPField.displayName = "OTPField";
2522
- var OTPFieldGroup = import_react23.default.forwardRef(({ ...props }, ref) => {
2523
- return /* @__PURE__ */ import_react23.default.createElement("span", { ref, className: "flex g-medium-10 align-center", ...props });
2696
+ var OTPFieldGroup = import_react25.default.forwardRef(({ ...props }, ref) => {
2697
+ return /* @__PURE__ */ import_react25.default.createElement("span", { ref, className: "flex g-medium-10 align-center", ...props });
2524
2698
  });
2525
2699
  OTPFieldGroup.displayName = "OTPField.Group";
2526
2700
  var OTPFieldSlot = ({
@@ -2539,10 +2713,12 @@ var OTPFieldSlot = ({
2539
2713
  handleClick,
2540
2714
  handlePaste
2541
2715
  } = context;
2542
- return /* @__PURE__ */ import_react23.default.createElement(
2716
+ return /* @__PURE__ */ import_react25.default.createElement(
2543
2717
  OTPCell,
2544
2718
  {
2545
- ref: (el) => inputRefs.current[index] = el,
2719
+ ref: (el) => {
2720
+ inputRefs.current[index] = el;
2721
+ },
2546
2722
  type: "text",
2547
2723
  "data-testid": "otp-field-slot",
2548
2724
  "data-active": activeIndex === index,
@@ -2565,11 +2741,11 @@ OTPField.Group = OTPFieldGroup;
2565
2741
  OTPField.Slot = OTPFieldSlot;
2566
2742
 
2567
2743
  // src/overlay/index.tsx
2568
- var import_react24 = __toESM(require("react"));
2744
+ var import_react26 = __toESM(require("react"));
2569
2745
 
2570
2746
  // src/overlay/styles/index.ts
2571
- var import_styled_components12 = __toESM(require("styled-components"));
2572
- var OverlayWrapper = import_styled_components12.default.div`
2747
+ var import_styled_components13 = __toESM(require("styled-components"));
2748
+ var OverlayWrapper = import_styled_components13.default.div`
2573
2749
  @keyframes animate-fade {
2574
2750
  0% {
2575
2751
  opacity: 0;
@@ -2597,15 +2773,15 @@ var OverlayWrapper = import_styled_components12.default.div`
2597
2773
  // src/overlay/index.tsx
2598
2774
  var Overlay = (props) => {
2599
2775
  const { raw, visible, closeOnInteract, onClick, ...restProps } = props;
2600
- const [mounted, setMounted] = import_react24.default.useState(Boolean(visible));
2776
+ const [mounted, setMounted] = import_react26.default.useState(Boolean(visible));
2601
2777
  const handleClick = (event) => {
2602
2778
  if (onClick) onClick(event);
2603
2779
  if (closeOnInteract) setMounted(false);
2604
2780
  };
2605
- import_react24.default.useEffect(() => {
2781
+ import_react26.default.useEffect(() => {
2606
2782
  if (visible !== mounted) setMounted(Boolean(visible));
2607
2783
  }, [visible]);
2608
- return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, mounted && /* @__PURE__ */ import_react24.default.createElement(
2784
+ return /* @__PURE__ */ import_react26.default.createElement(import_react26.default.Fragment, null, mounted && /* @__PURE__ */ import_react26.default.createElement(
2609
2785
  OverlayWrapper,
2610
2786
  {
2611
2787
  tabIndex: -1,
@@ -2619,14 +2795,14 @@ var Overlay = (props) => {
2619
2795
  Overlay.displayName = "Overlay";
2620
2796
 
2621
2797
  // src/page/index.tsx
2622
- var import_react25 = __toESM(require("react"));
2798
+ var import_react27 = __toESM(require("react"));
2623
2799
 
2624
2800
  // src/page/styles/index.ts
2625
- var import_styled_components14 = __toESM(require("styled-components"));
2801
+ var import_styled_components15 = __toESM(require("styled-components"));
2626
2802
 
2627
2803
  // src/scrollarea/styles/index.ts
2628
- var import_styled_components13 = __toESM(require("styled-components"));
2629
- var HiddenScrollbar = import_styled_components13.css`
2804
+ var import_styled_components14 = __toESM(require("styled-components"));
2805
+ var HiddenScrollbar = import_styled_components14.css`
2630
2806
  scrollbar-width: none;
2631
2807
 
2632
2808
  &::-webkit-scrollbar {
@@ -2638,7 +2814,7 @@ var HiddenScrollbar = import_styled_components13.css`
2638
2814
  display: none;
2639
2815
  }
2640
2816
  `;
2641
- var CustomScrollbar = import_styled_components13.css`
2817
+ var CustomScrollbar = import_styled_components14.css`
2642
2818
  height: ${({ $height }) => $height || "100%"};
2643
2819
  width: ${({ $width }) => $width || "100%"};
2644
2820
  overflow-y: auto;
@@ -2670,7 +2846,7 @@ var CustomScrollbar = import_styled_components13.css`
2670
2846
  scrollbar-width: thin;
2671
2847
  scrollbar-color: ${({ $thumbColor, $trackColor }) => `${$thumbColor || "var(--font-color-alpha-10)"} ${$trackColor || "transparent"}`};
2672
2848
  `;
2673
- var ScrollAreaWrapper = import_styled_components13.default.div`
2849
+ var ScrollAreaWrapper = import_styled_components14.default.div`
2674
2850
  overflow: scroll;
2675
2851
 
2676
2852
  &[data-scrollbar="true"] {
@@ -2682,11 +2858,11 @@ var ScrollAreaWrapper = import_styled_components13.default.div`
2682
2858
  `;
2683
2859
 
2684
2860
  // src/page/styles/index.ts
2685
- var PageRootWrapper = import_styled_components14.default.div`
2861
+ var PageRootWrapper = import_styled_components15.default.div`
2686
2862
  height: 100dvh;
2687
2863
  width: 100%;
2688
2864
  `;
2689
- var PageNavWrapper = import_styled_components14.default.nav`
2865
+ var PageNavWrapper = import_styled_components15.default.nav`
2690
2866
  background-color: var(--body-color);
2691
2867
  border: var(--measurement-small-10) solid transparent;
2692
2868
  border-bottom-color: var(--font-color-alpha-10);
@@ -2695,7 +2871,7 @@ var PageNavWrapper = import_styled_components14.default.nav`
2695
2871
  max-height: var(--measurement-large-20);
2696
2872
  padding: var(--measurement-medium-30);
2697
2873
  `;
2698
- var PageMenuWrapper = import_styled_components14.default.menu`
2874
+ var PageMenuWrapper = import_styled_components15.default.menu`
2699
2875
  background-color: var(--body-color);
2700
2876
  border: var(--measurement-small-10) solid transparent;
2701
2877
  border-bottom-color: var(--font-color-alpha-10);
@@ -2705,19 +2881,19 @@ var PageMenuWrapper = import_styled_components14.default.menu`
2705
2881
  margin: 0;
2706
2882
  padding: var(--measurement-medium-60) var(--measurement-medium-30);
2707
2883
  `;
2708
- var PagePanelWrapper = import_styled_components14.default.aside`
2884
+ var PagePanelWrapper = import_styled_components15.default.aside`
2709
2885
  position: absolute;
2710
2886
  bottom: 0;
2711
2887
  width: 100%;
2712
2888
  overflow: scroll;
2713
2889
  ${HiddenScrollbar}
2714
2890
  `;
2715
- var PageSectionWrapper = import_styled_components14.default.div`
2891
+ var PageSectionWrapper = import_styled_components15.default.div`
2716
2892
  background: var(--body-color);
2717
2893
  width: 100%;
2718
2894
  height: 100%;
2719
2895
  `;
2720
- var PageBodyWrapper = import_styled_components14.default.div`
2896
+ var PageBodyWrapper = import_styled_components15.default.div`
2721
2897
  --menus-height: calc(
2722
2898
  var(--measurement-large-30) *
2723
2899
  ${({ $menus }) => $menus ? Number($menus) : 0}
@@ -2742,12 +2918,12 @@ var PageBodyWrapper = import_styled_components14.default.div`
2742
2918
  // src/page/index.tsx
2743
2919
  var Page = (props) => {
2744
2920
  const { children } = props;
2745
- return /* @__PURE__ */ import_react25.default.createElement(PageRootWrapper, { className: "flex", ...props }, children);
2921
+ return /* @__PURE__ */ import_react27.default.createElement(PageRootWrapper, { className: "flex", ...props }, children);
2746
2922
  };
2747
2923
  Page.displayName = "Page";
2748
2924
  var PageNavigation = (props) => {
2749
2925
  const { children } = props;
2750
- return /* @__PURE__ */ import_react25.default.createElement(PageNavWrapper, { ...props }, children);
2926
+ return /* @__PURE__ */ import_react27.default.createElement(PageNavWrapper, { ...props }, children);
2751
2927
  };
2752
2928
  PageNavigation.displayName = "Page.Navigation";
2753
2929
  var PageTools = (props) => {
@@ -2769,7 +2945,7 @@ var PageTools = (props) => {
2769
2945
  const handleClick = (event) => {
2770
2946
  if (onClick) onClick(event);
2771
2947
  };
2772
- return /* @__PURE__ */ import_react25.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react25.default.createElement(
2948
+ return /* @__PURE__ */ import_react27.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react27.default.createElement(
2773
2949
  Toolbar,
2774
2950
  {
2775
2951
  raw,
@@ -2781,27 +2957,27 @@ var PageTools = (props) => {
2781
2957
  defaultOpen,
2782
2958
  ...props
2783
2959
  },
2784
- /* @__PURE__ */ import_react25.default.createElement(Toolbar.Section, { showoncollapse }, children),
2785
- !fixed && /* @__PURE__ */ import_react25.default.createElement(
2960
+ /* @__PURE__ */ import_react27.default.createElement(Toolbar.Section, { showoncollapse }, children),
2961
+ !fixed && /* @__PURE__ */ import_react27.default.createElement(
2786
2962
  Toolbar.Trigger,
2787
2963
  {
2788
2964
  title: shortcut ? `${bindkey ?? "ctrl"} + ${hotkey}` : "toolbar-trigger",
2789
2965
  onClick: handleClick,
2790
2966
  ...triggerProps
2791
2967
  },
2792
- trigger ?? /* @__PURE__ */ import_react25.default.createElement("span", null, "\u2194")
2968
+ trigger ?? /* @__PURE__ */ import_react27.default.createElement("span", null, "\u2194")
2793
2969
  )
2794
2970
  ));
2795
2971
  };
2796
2972
  PageTools.displayName = "Page.Tools";
2797
2973
  var PageContent = (props) => {
2798
2974
  const { children } = props;
2799
- return /* @__PURE__ */ import_react25.default.createElement(ScrollArea, { as: PageSectionWrapper, ...props }, children);
2975
+ return /* @__PURE__ */ import_react27.default.createElement(ScrollArea, { as: PageSectionWrapper, ...props }, children);
2800
2976
  };
2801
2977
  PageContent.displayName = "Page.Content";
2802
2978
  var PageWrapper = (props) => {
2803
2979
  const { children } = props;
2804
- return /* @__PURE__ */ import_react25.default.createElement(PageBodyWrapper, { ...props }, children);
2980
+ return /* @__PURE__ */ import_react27.default.createElement(PageBodyWrapper, { ...props }, children);
2805
2981
  };
2806
2982
  PageWrapper.displayName = "Page.Wrapper";
2807
2983
  var PagePanel = (props) => {
@@ -2824,7 +3000,7 @@ var PagePanel = (props) => {
2824
3000
  const handleClick = (event) => {
2825
3001
  if (onClick) onClick(event);
2826
3002
  };
2827
- return /* @__PURE__ */ import_react25.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react25.default.createElement(
3003
+ return /* @__PURE__ */ import_react27.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react27.default.createElement(
2828
3004
  PagePanelWrapper,
2829
3005
  {
2830
3006
  as: Toolbar,
@@ -2838,22 +3014,22 @@ var PagePanel = (props) => {
2838
3014
  defaultOpen,
2839
3015
  "aria-label": props["aria-label"]
2840
3016
  },
2841
- !fixed && /* @__PURE__ */ import_react25.default.createElement(
3017
+ !fixed && /* @__PURE__ */ import_react27.default.createElement(
2842
3018
  Toolbar.Trigger,
2843
3019
  {
2844
3020
  title: shortcut ? `${bindkey ?? "ctrl"} + ${hotkey}` : "toolbar-trigger",
2845
3021
  onClick: handleClick,
2846
3022
  ...triggerProps
2847
3023
  },
2848
- trigger ?? /* @__PURE__ */ import_react25.default.createElement("span", { style: { transform: "rotate(90deg)" } }, "\u2194")
3024
+ trigger ?? /* @__PURE__ */ import_react27.default.createElement("span", { style: { transform: "rotate(90deg)" } }, "\u2194")
2849
3025
  ),
2850
- /* @__PURE__ */ import_react25.default.createElement(Toolbar.Section, { showoncollapse }, children)
3026
+ /* @__PURE__ */ import_react27.default.createElement(Toolbar.Section, { showoncollapse }, children)
2851
3027
  ));
2852
3028
  };
2853
3029
  PagePanel.displayName = "Page.Panel";
2854
3030
  var PageMenu = (props) => {
2855
3031
  const { children } = props;
2856
- return /* @__PURE__ */ import_react25.default.createElement(PageMenuWrapper, { ...props }, children);
3032
+ return /* @__PURE__ */ import_react27.default.createElement(PageMenuWrapper, { ...props }, children);
2857
3033
  };
2858
3034
  PageMenu.displayName = "Page.Menu";
2859
3035
  Page.Navigation = PageNavigation;
@@ -2864,14 +3040,14 @@ Page.Panel = PagePanel;
2864
3040
  Page.Menu = PageMenu;
2865
3041
 
2866
3042
  // src/portal/index.tsx
2867
- var import_react26 = __toESM(require("react"));
3043
+ var import_react28 = __toESM(require("react"));
2868
3044
  var import_react_dom = require("react-dom");
2869
3045
  var Portal = (props) => {
2870
3046
  if (typeof document === "undefined") return null;
2871
3047
  const { container, children } = props;
2872
- const [hasMounted, setHasMounted] = import_react26.default.useState(false);
2873
- const [portalRoot, setPortalRoot] = import_react26.default.useState(null);
2874
- import_react26.default.useEffect(() => {
3048
+ const [hasMounted, setHasMounted] = import_react28.default.useState(false);
3049
+ const [portalRoot, setPortalRoot] = import_react28.default.useState(null);
3050
+ import_react28.default.useEffect(() => {
2875
3051
  setHasMounted(true);
2876
3052
  setPortalRoot(document.querySelector(`#${container}`));
2877
3053
  }, [container]);
@@ -2881,18 +3057,18 @@ var Portal = (props) => {
2881
3057
  Portal.displayName = "Portal";
2882
3058
 
2883
3059
  // src/privacy-field/index.tsx
2884
- var import_react27 = __toESM(require("react"));
3060
+ var import_react29 = __toESM(require("react"));
2885
3061
 
2886
3062
  // src/privacy-field/styles/index.ts
2887
- var import_styled_components15 = __toESM(require("styled-components"));
2888
- var Wrapper = (0, import_styled_components15.default)(Field.Wrapper)`
3063
+ var import_styled_components16 = __toESM(require("styled-components"));
3064
+ var Wrapper = (0, import_styled_components16.default)(Field.Wrapper)`
2889
3065
  position: relative;
2890
3066
 
2891
3067
  input {
2892
3068
  width: 100% !important;
2893
3069
  }
2894
3070
  `;
2895
- var Trigger = (0, import_styled_components15.default)(Button)`
3071
+ var Trigger = (0, import_styled_components16.default)(Button)`
2896
3072
  position: absolute !important;
2897
3073
  right: var(--measurement-medium-50);
2898
3074
  top: calc(var(--measurement-medium-50));
@@ -2905,30 +3081,30 @@ var PrivacyField = ({
2905
3081
  passwordIcon,
2906
3082
  ...restProps
2907
3083
  }) => {
2908
- const [type, setType] = import_react27.default.useState(
3084
+ const [type, setType] = import_react29.default.useState(
2909
3085
  defaultType ?? "password"
2910
3086
  );
2911
- const handleChangeType = import_react27.default.useCallback(() => {
3087
+ const handleChangeType = import_react29.default.useCallback(() => {
2912
3088
  if (type === "text") setType("password");
2913
3089
  if (type === "password") setType("text");
2914
3090
  }, [type, setType]);
2915
- return /* @__PURE__ */ import_react27.default.createElement(Wrapper, { className: "flex" }, /* @__PURE__ */ import_react27.default.createElement(Field, { autoComplete: "off", type, ...restProps }), /* @__PURE__ */ import_react27.default.createElement(Trigger, { variant: "ghost", sizing: "small", onClick: handleChangeType }, type === "text" && textIcon, type === "password" && passwordIcon));
3091
+ return /* @__PURE__ */ import_react29.default.createElement(Wrapper, { className: "flex" }, /* @__PURE__ */ import_react29.default.createElement(Field, { autoComplete: "off", type, ...restProps }), /* @__PURE__ */ import_react29.default.createElement(Trigger, { variant: "ghost", sizing: "small", onClick: handleChangeType }, type === "text" && textIcon, type === "password" && passwordIcon));
2916
3092
  };
2917
3093
  PrivacyField.displayName = "PrivacyField";
2918
3094
 
2919
3095
  // src/resizable/index.tsx
2920
- var import_react28 = __toESM(require("react"));
3096
+ var import_react30 = __toESM(require("react"));
2921
3097
 
2922
3098
  // src/resizable/styles/index.ts
2923
- var import_styled_components16 = __toESM(require("styled-components"));
2924
- var SplitContainer = import_styled_components16.default.div`
3099
+ var import_styled_components17 = __toESM(require("styled-components"));
3100
+ var SplitContainer = import_styled_components17.default.div`
2925
3101
  position: relative;
2926
3102
  `;
2927
- var Panel = import_styled_components16.default.div`
3103
+ var Panel = import_styled_components17.default.div`
2928
3104
  overflow: hidden;
2929
3105
  width: ${(props) => props.width}%;
2930
3106
  `;
2931
- var Divider2 = import_styled_components16.default.div`
3107
+ var Divider2 = import_styled_components17.default.div`
2932
3108
  width: var(--measurement-medium-10);
2933
3109
  height: 100%;
2934
3110
  top: 0;
@@ -2952,14 +3128,14 @@ var Divider2 = import_styled_components16.default.div`
2952
3128
  height: ${(props) => props.$dragging ? "var(--measurement-large-10)" : "var(--measurement-medium-60)"};
2953
3129
  }
2954
3130
  `;
2955
- var DragHandle = import_styled_components16.default.div`
3131
+ var DragHandle = import_styled_components17.default.div`
2956
3132
  position: absolute;
2957
3133
  top: 0;
2958
3134
  bottom: 0;
2959
3135
  left: calc(var(--measurement-medium-10) * -1);
2960
3136
  right: calc(var(--measurement-medium-10) * -1);
2961
3137
  `;
2962
- var DragIndicator = import_styled_components16.default.div`
3138
+ var DragIndicator = import_styled_components17.default.div`
2963
3139
  position: fixed;
2964
3140
  width: var(--measurement-medium-10);
2965
3141
  /* height: var(--measurement-medium-60); */
@@ -2969,7 +3145,7 @@ var DragIndicator = import_styled_components16.default.div`
2969
3145
  opacity: 0;
2970
3146
  transition: all 0.2s;
2971
3147
  `;
2972
- var DragOverlay = import_styled_components16.default.div`
3148
+ var DragOverlay = import_styled_components17.default.div`
2973
3149
  position: fixed;
2974
3150
  top: 0;
2975
3151
  left: 0;
@@ -2985,12 +3161,12 @@ var Resizable = ({
2985
3161
  left,
2986
3162
  right
2987
3163
  }) => {
2988
- const containerRef = import_react28.default.useRef(null);
2989
- const [leftWidth, setLeftWidth] = import_react28.default.useState(defaultWidth ?? 50);
2990
- const [isDragging, setIsDragging] = import_react28.default.useState(false);
2991
- const handleMouseDown = import_react28.default.useCallback(() => setIsDragging(true), []);
2992
- const handleMouseUp = import_react28.default.useCallback(() => setIsDragging(false), []);
2993
- const handleMouseMove = import_react28.default.useCallback(
3164
+ const containerRef = import_react30.default.useRef(null);
3165
+ const [leftWidth, setLeftWidth] = import_react30.default.useState(defaultWidth ?? 50);
3166
+ const [isDragging, setIsDragging] = import_react30.default.useState(false);
3167
+ const handleMouseDown = import_react30.default.useCallback(() => setIsDragging(true), []);
3168
+ const handleMouseUp = import_react30.default.useCallback(() => setIsDragging(false), []);
3169
+ const handleMouseMove = import_react30.default.useCallback(
2994
3170
  (e) => {
2995
3171
  if (!isDragging || !containerRef.current) return;
2996
3172
  const containerRect = containerRef.current.getBoundingClientRect();
@@ -3004,7 +3180,7 @@ var Resizable = ({
3004
3180
  },
3005
3181
  [isDragging]
3006
3182
  );
3007
- import_react28.default.useEffect(() => {
3183
+ import_react30.default.useEffect(() => {
3008
3184
  if (isDragging) {
3009
3185
  document.addEventListener("mousemove", handleMouseMove);
3010
3186
  document.addEventListener("mouseup", handleMouseUp);
@@ -3023,45 +3199,47 @@ var Resizable = ({
3023
3199
  document.body.style.userSelect = "";
3024
3200
  };
3025
3201
  }, [isDragging, handleMouseMove, handleMouseUp]);
3026
- return /* @__PURE__ */ import_react28.default.createElement(import_react28.default.Fragment, null, /* @__PURE__ */ import_react28.default.createElement(SplitContainer, { ref: containerRef, className: "h-100 flex" }, /* @__PURE__ */ import_react28.default.createElement(Panel, { width: leftWidth }, left), /* @__PURE__ */ import_react28.default.createElement(
3202
+ return /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(SplitContainer, { ref: containerRef, className: "h-100 flex" }, /* @__PURE__ */ import_react30.default.createElement(Panel, { width: leftWidth }, left), /* @__PURE__ */ import_react30.default.createElement(
3027
3203
  Divider2,
3028
3204
  {
3029
3205
  $dragging: isDragging,
3030
3206
  onMouseDown: handleMouseDown,
3031
3207
  onTouchStart: handleMouseDown
3032
3208
  },
3033
- /* @__PURE__ */ import_react28.default.createElement(
3209
+ /* @__PURE__ */ import_react30.default.createElement(
3034
3210
  DragHandle,
3035
3211
  {
3036
3212
  className: "flex align-center justify-center",
3037
3213
  id: "drag-handle"
3038
3214
  },
3039
- /* @__PURE__ */ import_react28.default.createElement(DragIndicator, { className: "drag-indicator-handle" })
3215
+ /* @__PURE__ */ import_react30.default.createElement(DragIndicator, { className: "drag-indicator-handle" })
3040
3216
  )
3041
- ), /* @__PURE__ */ import_react28.default.createElement(Panel, { width: 100 - leftWidth }, right)), isDragging && /* @__PURE__ */ import_react28.default.createElement(DragOverlay, null));
3217
+ ), /* @__PURE__ */ import_react30.default.createElement(Panel, { width: 100 - leftWidth }, right)), isDragging && /* @__PURE__ */ import_react30.default.createElement(DragOverlay, null));
3042
3218
  };
3043
3219
  Resizable.displayName = "Resizable";
3044
3220
 
3045
3221
  // src/sheet/index.tsx
3046
- var import_react30 = __toESM(require("react"));
3222
+ var import_react32 = __toESM(require("react"));
3047
3223
 
3048
3224
  // src/sheet/hooks/index.tsx
3049
- var import_react29 = __toESM(require("react"));
3050
- var SheetContext = import_react29.default.createContext({
3225
+ var import_react31 = __toESM(require("react"));
3226
+ var SheetContext = import_react31.default.createContext({
3051
3227
  id: {},
3052
3228
  states: {},
3053
3229
  methods: {}
3054
3230
  });
3055
- var useSheet = () => import_react29.default.useContext(SheetContext);
3056
- var SheetProvider = ({ children }) => {
3231
+ var useSheet = () => import_react31.default.useContext(SheetContext);
3232
+ var SheetProvider = ({
3233
+ children
3234
+ }) => {
3057
3235
  const context = useSheetProvider();
3058
- return /* @__PURE__ */ import_react29.default.createElement(SheetContext.Provider, { value: context }, children);
3236
+ return /* @__PURE__ */ import_react31.default.createElement(SheetContext.Provider, { value: context }, children);
3059
3237
  };
3060
3238
  function useSheetProvider() {
3061
- const containerId = import_react29.default.useId();
3062
- const triggerId = import_react29.default.useId();
3063
- const controlId = import_react29.default.useId();
3064
- const [open, setOpen] = import_react29.default.useState(false);
3239
+ const containerId = import_react31.default.useId();
3240
+ const triggerId = import_react31.default.useId();
3241
+ const controlId = import_react31.default.useId();
3242
+ const [open, setOpen] = import_react31.default.useState(false);
3065
3243
  return {
3066
3244
  id: {
3067
3245
  containerId,
@@ -3079,8 +3257,8 @@ function useSheetProvider() {
3079
3257
  }
3080
3258
 
3081
3259
  // src/sheet/styles/index.ts
3082
- var import_styled_components17 = __toESM(require("styled-components"));
3083
- var SheetStyles = import_styled_components17.css`
3260
+ var import_styled_components18 = __toESM(require("styled-components"));
3261
+ var SheetStyles = import_styled_components18.css`
3084
3262
  all: unset;
3085
3263
  position: fixed;
3086
3264
  background-color: var(--body-color);
@@ -3111,7 +3289,7 @@ var SheetStyles = import_styled_components17.css`
3111
3289
  animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
3112
3290
  animation-fill-mode: backwards;
3113
3291
  `;
3114
- var SheetSizeStyles = import_styled_components17.css`
3292
+ var SheetSizeStyles = import_styled_components18.css`
3115
3293
  &[data-size="small"] {
3116
3294
  width: var(--measurement-large-80);
3117
3295
  }
@@ -3124,7 +3302,7 @@ var SheetSizeStyles = import_styled_components17.css`
3124
3302
  width: calc(var(--measurement-large-90) * 1.5);
3125
3303
  }
3126
3304
  `;
3127
- var SheetSideStyles = import_styled_components17.css`
3305
+ var SheetSideStyles = import_styled_components18.css`
3128
3306
  top: 0;
3129
3307
 
3130
3308
  &[data-side="right"] {
@@ -3139,7 +3317,7 @@ var SheetSideStyles = import_styled_components17.css`
3139
3317
  animation-name: slide-left;
3140
3318
  }
3141
3319
  `;
3142
- var SheetWrapper = import_styled_components17.default.dialog`
3320
+ var SheetWrapper = import_styled_components18.default.dialog`
3143
3321
  &[data-raw="false"] {
3144
3322
  ${SheetStyles}
3145
3323
  ${SheetSideStyles}
@@ -3149,7 +3327,7 @@ var SheetWrapper = import_styled_components17.default.dialog`
3149
3327
 
3150
3328
  // src/sheet/index.tsx
3151
3329
  var SheetRoot = ({ children }) => {
3152
- return /* @__PURE__ */ import_react30.default.createElement(SheetProvider, null, children);
3330
+ return /* @__PURE__ */ import_react32.default.createElement(SheetProvider, null, children);
3153
3331
  };
3154
3332
  SheetRoot.displayName = "Sheet.Root";
3155
3333
  var Sheet = (props) => {
@@ -3170,16 +3348,16 @@ var Sheet = (props) => {
3170
3348
  const { id, states, methods } = useSheet();
3171
3349
  const { toggle } = methods;
3172
3350
  const shortcutControls = useKeyPress(String(hotkey), true, bindkey);
3173
- import_react30.default.useEffect(() => {
3351
+ import_react32.default.useEffect(() => {
3174
3352
  if (open && toggle) return toggle();
3175
3353
  }, [open]);
3176
- import_react30.default.useEffect(() => {
3354
+ import_react32.default.useEffect(() => {
3177
3355
  if (shortcut && shortcutControls && toggle) {
3178
3356
  return toggle();
3179
3357
  }
3180
3358
  }, [shortcutControls]);
3181
3359
  useDisabledScroll(lock && Boolean(states.open));
3182
- return /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, states.open && /* @__PURE__ */ import_react30.default.createElement(import_react30.default.Fragment, null, /* @__PURE__ */ import_react30.default.createElement(
3360
+ return /* @__PURE__ */ import_react32.default.createElement(import_react32.default.Fragment, null, states.open && /* @__PURE__ */ import_react32.default.createElement(import_react32.default.Fragment, null, /* @__PURE__ */ import_react32.default.createElement(
3183
3361
  SheetWrapper,
3184
3362
  {
3185
3363
  role: "dialog",
@@ -3196,7 +3374,7 @@ var Sheet = (props) => {
3196
3374
  ...restProps
3197
3375
  },
3198
3376
  children
3199
- ), overlay && /* @__PURE__ */ import_react30.default.createElement(
3377
+ ), overlay && /* @__PURE__ */ import_react32.default.createElement(
3200
3378
  Overlay,
3201
3379
  {
3202
3380
  onClick: () => toggle && toggle(!states.open),
@@ -3222,7 +3400,7 @@ var SheetTrigger = (props) => {
3222
3400
  if (onClick) onClick(event);
3223
3401
  if (toggle) toggle(!states.open);
3224
3402
  };
3225
- return /* @__PURE__ */ import_react30.default.createElement(
3403
+ return /* @__PURE__ */ import_react32.default.createElement(
3226
3404
  Button,
3227
3405
  {
3228
3406
  id: id.triggerId,
@@ -3241,14 +3419,76 @@ SheetTrigger.displayName = "Sheet.Trigger";
3241
3419
  Sheet.Root = SheetRoot;
3242
3420
  Sheet.Trigger = SheetTrigger;
3243
3421
 
3422
+ // src/shimmer/index.tsx
3423
+ var import_react33 = __toESM(require("react"));
3424
+
3425
+ // src/shimmer/styles/index.ts
3426
+ var import_styled_components19 = __toESM(require("styled-components"));
3427
+ var shimmer = import_styled_components19.keyframes`
3428
+ 0% {
3429
+ background-position: 200% center;
3430
+ }
3431
+ 100% {
3432
+ background-position: -200% center;
3433
+ }
3434
+ `;
3435
+ var TextShimmerWrapper = import_styled_components19.default.span`
3436
+ background: linear-gradient(
3437
+ 90deg,
3438
+ ${({ "data-base-color": baseColor }) => baseColor} 0%,
3439
+ ${({ "data-shimmer-color": shimmerColor }) => shimmerColor} 40%,
3440
+ ${({ "data-base-color": baseColor }) => baseColor} 60%,
3441
+ ${({ "data-base-color": baseColor }) => baseColor} 100%
3442
+ );
3443
+ background-size: ${({ "data-spread": spread }) => spread}% auto;
3444
+ background-clip: text;
3445
+ -webkit-background-clip: text;
3446
+ -webkit-text-fill-color: transparent;
3447
+ color: transparent;
3448
+ animation: ${shimmer} ${({ "data-duration": duration }) => duration}s linear
3449
+ infinite;
3450
+ display: inline-block;
3451
+ `;
3452
+
3453
+ // src/shimmer/index.tsx
3454
+ var DEFAULT_DURATION = 2;
3455
+ var DEFAULT_SPREAD = 200;
3456
+ var DEFAULT_SHIMMER_COLOR = "var(--font-color-alpha-60)";
3457
+ var DEFAULT_BASE_COLOR = "var(--font-color-alpha-30)";
3458
+ var Shimmer = (props) => {
3459
+ const {
3460
+ children,
3461
+ raw,
3462
+ duration = DEFAULT_DURATION,
3463
+ spread = DEFAULT_SPREAD,
3464
+ shimmerColor = DEFAULT_SHIMMER_COLOR,
3465
+ baseColor = DEFAULT_BASE_COLOR,
3466
+ ...restProps
3467
+ } = props;
3468
+ return /* @__PURE__ */ import_react33.default.createElement(
3469
+ TextShimmerWrapper,
3470
+ {
3471
+ "data-raw": Boolean(raw),
3472
+ "data-duration": duration,
3473
+ "data-spread": spread,
3474
+ "data-shimmer-color": shimmerColor,
3475
+ "data-base-color": baseColor,
3476
+ "aria-label": restProps["aria-label"] ?? "shimmer-text",
3477
+ ...restProps
3478
+ },
3479
+ children
3480
+ );
3481
+ };
3482
+ Shimmer.displayName = "Shimmer";
3483
+
3244
3484
  // src/scrollarea/index.tsx
3245
- var import_react31 = __toESM(require("react"));
3485
+ var import_react34 = __toESM(require("react"));
3246
3486
  var ScrollArea = ({
3247
3487
  scrollbar = false,
3248
3488
  children,
3249
3489
  ...restProps
3250
3490
  }) => {
3251
- return /* @__PURE__ */ import_react31.default.createElement(
3491
+ return /* @__PURE__ */ import_react34.default.createElement(
3252
3492
  ScrollAreaWrapper,
3253
3493
  {
3254
3494
  "aria-hidden": "true",
@@ -3260,11 +3500,11 @@ var ScrollArea = ({
3260
3500
  };
3261
3501
 
3262
3502
  // src/spinner/index.tsx
3263
- var import_react32 = __toESM(require("react"));
3503
+ var import_react35 = __toESM(require("react"));
3264
3504
 
3265
3505
  // src/spinner/styles/index.ts
3266
- var import_styled_components18 = __toESM(require("styled-components"));
3267
- var Rotate = import_styled_components18.keyframes`
3506
+ var import_styled_components20 = __toESM(require("styled-components"));
3507
+ var Rotate = import_styled_components20.keyframes`
3268
3508
  0% {
3269
3509
  transform: rotate(0deg);
3270
3510
  }
@@ -3272,7 +3512,7 @@ var Rotate = import_styled_components18.keyframes`
3272
3512
  transform: rotate(360deg);
3273
3513
  }
3274
3514
  `;
3275
- var FieldSizeStyles2 = import_styled_components18.css`
3515
+ var FieldSizeStyles2 = import_styled_components20.css`
3276
3516
  &[data-size="small"] {
3277
3517
  width: var(--measurement-medium-40);
3278
3518
  height: var(--measurement-medium-40);
@@ -3286,7 +3526,7 @@ var FieldSizeStyles2 = import_styled_components18.css`
3286
3526
  height: var(--measurement-medium-60);
3287
3527
  }
3288
3528
  `;
3289
- var RotatingSpinner = import_styled_components18.default.span`
3529
+ var RotatingSpinner = import_styled_components20.default.span`
3290
3530
  padding: 0;
3291
3531
  margin: 0;
3292
3532
 
@@ -3304,15 +3544,15 @@ var RotatingSpinner = import_styled_components18.default.span`
3304
3544
 
3305
3545
  // src/spinner/index.tsx
3306
3546
  var Spinner = (props) => {
3307
- return /* @__PURE__ */ import_react32.default.createElement(RotatingSpinner, { "data-size": props.sizing ?? "medium" });
3547
+ return /* @__PURE__ */ import_react35.default.createElement(RotatingSpinner, { "data-size": props.sizing ?? "medium" });
3308
3548
  };
3309
3549
 
3310
3550
  // src/skeleton/index.tsx
3311
- var import_react33 = __toESM(require("react"));
3551
+ var import_react36 = __toESM(require("react"));
3312
3552
 
3313
3553
  // src/skeleton/styles/index.ts
3314
- var import_styled_components19 = __toESM(require("styled-components"));
3315
- var SkeletonBlink = import_styled_components19.keyframes`
3554
+ var import_styled_components21 = __toESM(require("styled-components"));
3555
+ var SkeletonBlink = import_styled_components21.keyframes`
3316
3556
  0% {
3317
3557
  opacity: 0.3;
3318
3558
  }
@@ -3320,7 +3560,7 @@ var SkeletonBlink = import_styled_components19.keyframes`
3320
3560
  opacity: 0.1;
3321
3561
  }
3322
3562
  `;
3323
- var SkeletonBaseStyles = import_styled_components19.css`
3563
+ var SkeletonBaseStyles = import_styled_components21.css`
3324
3564
  background: linear-gradient(
3325
3565
  45deg,
3326
3566
  var(--font-color-alpha-10),
@@ -3328,7 +3568,7 @@ var SkeletonBaseStyles = import_styled_components19.css`
3328
3568
  );
3329
3569
  animation: ${SkeletonBlink} 1s ease-in-out alternate-reverse infinite;
3330
3570
  `;
3331
- var SkeletonSizeStyles = import_styled_components19.css`
3571
+ var SkeletonSizeStyles = import_styled_components21.css`
3332
3572
  &[data-size="small"] {
3333
3573
  width: 100%;
3334
3574
 
@@ -3346,7 +3586,7 @@ var SkeletonSizeStyles = import_styled_components19.css`
3346
3586
  min-height: var(--measurement-medium-90);
3347
3587
  }
3348
3588
  `;
3349
- var SkeletonShapeStyles = import_styled_components19.css`
3589
+ var SkeletonShapeStyles = import_styled_components21.css`
3350
3590
  &[data-shape="square"] {
3351
3591
  border-radius: 0;
3352
3592
  }
@@ -3357,7 +3597,7 @@ var SkeletonShapeStyles = import_styled_components19.css`
3357
3597
  border-radius: var(--measurement-large-90);
3358
3598
  }
3359
3599
  `;
3360
- var SkeletonLoader = import_styled_components19.default.span`
3600
+ var SkeletonLoader = import_styled_components21.default.span`
3361
3601
  ${SkeletonBaseStyles}
3362
3602
  ${SkeletonSizeStyles}
3363
3603
  ${SkeletonShapeStyles}
@@ -3370,7 +3610,7 @@ var Skeleton = (props) => {
3370
3610
  shape = "smooth",
3371
3611
  ...restProps
3372
3612
  } = props;
3373
- return /* @__PURE__ */ import_react33.default.createElement(
3613
+ return /* @__PURE__ */ import_react36.default.createElement(
3374
3614
  SkeletonLoader,
3375
3615
  {
3376
3616
  "data-size": sizing,
@@ -3383,24 +3623,26 @@ var Skeleton = (props) => {
3383
3623
  Skeleton.displayName = "Skeleton";
3384
3624
 
3385
3625
  // src/switch/index.tsx
3386
- var import_react35 = __toESM(require("react"));
3626
+ var import_react38 = __toESM(require("react"));
3387
3627
 
3388
3628
  // src/switch/hooks/index.tsx
3389
- var import_react34 = __toESM(require("react"));
3390
- var defaultComponentAPI6 = {
3629
+ var import_react37 = __toESM(require("react"));
3630
+ var defaultComponentAPI7 = {
3391
3631
  id: "",
3392
3632
  states: {},
3393
3633
  methods: {}
3394
3634
  };
3395
- var SwitchContext = (0, import_react34.createContext)(defaultComponentAPI6);
3396
- var useSwitch = () => (0, import_react34.useContext)(SwitchContext);
3397
- var SwitchProvider = ({ children }) => {
3635
+ var SwitchContext = (0, import_react37.createContext)(defaultComponentAPI7);
3636
+ var useSwitch = () => (0, import_react37.useContext)(SwitchContext);
3637
+ var SwitchProvider = ({
3638
+ children
3639
+ }) => {
3398
3640
  const context = useSwitchProvider();
3399
- return /* @__PURE__ */ import_react34.default.createElement(SwitchContext.Provider, { value: context }, children);
3641
+ return /* @__PURE__ */ import_react37.default.createElement(SwitchContext.Provider, { value: context }, children);
3400
3642
  };
3401
3643
  function useSwitchProvider() {
3402
- const [checked, setChecked] = (0, import_react34.useState)(false);
3403
- const switchId = import_react34.default.useId();
3644
+ const [checked, setChecked] = (0, import_react37.useState)(false);
3645
+ const switchId = import_react37.default.useId();
3404
3646
  return {
3405
3647
  id: switchId,
3406
3648
  states: {
@@ -3413,8 +3655,8 @@ function useSwitchProvider() {
3413
3655
  }
3414
3656
 
3415
3657
  // src/switch/styles/index.ts
3416
- var import_styled_components20 = __toESM(require("styled-components"));
3417
- var SwitchDefaultStyles = import_styled_components20.css`
3658
+ var import_styled_components22 = __toESM(require("styled-components"));
3659
+ var SwitchDefaultStyles = import_styled_components22.css`
3418
3660
  all: unset;
3419
3661
 
3420
3662
  border: var(--measurement-small-10) solid transparent;
@@ -3428,7 +3670,7 @@ var SwitchDefaultStyles = import_styled_components20.css`
3428
3670
  opacity: 0.6;
3429
3671
  }
3430
3672
  `;
3431
- var SwitchVariantsStyles = import_styled_components20.css`
3673
+ var SwitchVariantsStyles = import_styled_components22.css`
3432
3674
  &[data-variant="primary"] {
3433
3675
  &[aria-checked="true"] {
3434
3676
  background-color: var(--color-green);
@@ -3459,7 +3701,7 @@ var SwitchVariantsStyles = import_styled_components20.css`
3459
3701
  }
3460
3702
  }
3461
3703
  `;
3462
- var SwitchSizeStyles = import_styled_components20.css`
3704
+ var SwitchSizeStyles = import_styled_components22.css`
3463
3705
  &[data-size="small"] {
3464
3706
  width: calc(var(--measurement-medium-60) * 1.33);
3465
3707
  height: var(--measurement-medium-50);
@@ -3508,14 +3750,14 @@ var SwitchSizeStyles = import_styled_components20.css`
3508
3750
  }
3509
3751
  }
3510
3752
  `;
3511
- var TriggerWrapper = import_styled_components20.default.button`
3753
+ var TriggerWrapper = import_styled_components22.default.button`
3512
3754
  &[data-raw="false"] {
3513
3755
  ${SwitchDefaultStyles}
3514
3756
  ${SwitchVariantsStyles}
3515
3757
  ${SwitchSizeStyles}
3516
3758
  }
3517
3759
  `;
3518
- var Thumb = import_styled_components20.default.span`
3760
+ var Thumb = import_styled_components22.default.span`
3519
3761
  &[data-raw="false"] {
3520
3762
  all: unset;
3521
3763
  display: block;
@@ -3549,10 +3791,10 @@ var Switch = (props) => {
3549
3791
  if (onClick) onClick(event);
3550
3792
  if (toggleSwitch) toggleSwitch();
3551
3793
  };
3552
- import_react35.default.useEffect(() => {
3794
+ import_react38.default.useEffect(() => {
3553
3795
  if (defaultChecked && toggleSwitch) toggleSwitch();
3554
3796
  }, [defaultChecked]);
3555
- return /* @__PURE__ */ import_react35.default.createElement(
3797
+ return /* @__PURE__ */ import_react38.default.createElement(
3556
3798
  TriggerWrapper,
3557
3799
  {
3558
3800
  type: "button",
@@ -3568,19 +3810,19 @@ var Switch = (props) => {
3568
3810
  "data-raw": Boolean(raw),
3569
3811
  ...restProps
3570
3812
  },
3571
- /* @__PURE__ */ import_react35.default.createElement("title", null, "Switch"),
3813
+ /* @__PURE__ */ import_react38.default.createElement("title", null, "Switch"),
3572
3814
  children
3573
3815
  );
3574
3816
  };
3575
3817
  Switch.displayName = "Switch";
3576
3818
  var SwitchRoot = ({ children }) => {
3577
- return /* @__PURE__ */ import_react35.default.createElement(SwitchProvider, null, children);
3819
+ return /* @__PURE__ */ import_react38.default.createElement(SwitchProvider, null, children);
3578
3820
  };
3579
3821
  SwitchRoot.displayName = "Switch.Root";
3580
3822
  var SwitchThumb = (props) => {
3581
3823
  const { raw, sizing } = props;
3582
3824
  const { id, states } = useSwitch();
3583
- return /* @__PURE__ */ import_react35.default.createElement(
3825
+ return /* @__PURE__ */ import_react38.default.createElement(
3584
3826
  Thumb,
3585
3827
  {
3586
3828
  role: "presentation",
@@ -3600,11 +3842,11 @@ Switch.Root = SwitchRoot;
3600
3842
  Switch.Thumb = SwitchThumb;
3601
3843
 
3602
3844
  // src/table/index.tsx
3603
- var import_react36 = __toESM(require("react"));
3845
+ var import_react39 = __toESM(require("react"));
3604
3846
 
3605
3847
  // src/table/styles/index.ts
3606
- var import_styled_components21 = __toESM(require("styled-components"));
3607
- var CellStyles = import_styled_components21.css`
3848
+ var import_styled_components23 = __toESM(require("styled-components"));
3849
+ var CellStyles = import_styled_components23.css`
3608
3850
  box-sizing: border-box;
3609
3851
  border: none;
3610
3852
  line-height: 1;
@@ -3614,11 +3856,11 @@ var CellStyles = import_styled_components21.css`
3614
3856
  var(--fontsize-small-10) - ((var(--fontsize-small-10) * 1.066))
3615
3857
  );
3616
3858
  `;
3617
- var TableLayer = import_styled_components21.default.div`
3859
+ var TableLayer = import_styled_components23.default.div`
3618
3860
  border-radius: var(--measurement-medium-30);
3619
3861
  border: var(--measurement-small-10) solid var(--font-color-alpha-10);
3620
3862
  `;
3621
- var TableWrapper = import_styled_components21.default.table`
3863
+ var TableWrapper = import_styled_components23.default.table`
3622
3864
  border-collapse: collapse;
3623
3865
 
3624
3866
  tbody {
@@ -3629,7 +3871,7 @@ var TableWrapper = import_styled_components21.default.table`
3629
3871
  }
3630
3872
  }
3631
3873
  `;
3632
- var RowWrapper = import_styled_components21.default.tr`
3874
+ var RowWrapper = import_styled_components23.default.tr`
3633
3875
  border-bottom: var(--measurement-small-10) solid var(--font-color-alpha-10);
3634
3876
 
3635
3877
  transition: background-color linear 0.1s;
@@ -3638,7 +3880,7 @@ var RowWrapper = import_styled_components21.default.tr`
3638
3880
  background-color: var(--font-color-alpha-10);
3639
3881
  }
3640
3882
  `;
3641
- var HeadCellWrapper = import_styled_components21.default.th`
3883
+ var HeadCellWrapper = import_styled_components23.default.th`
3642
3884
  font-size: var(--fontsize-medium-10);
3643
3885
  ${CellStyles}
3644
3886
 
@@ -3646,7 +3888,7 @@ var HeadCellWrapper = import_styled_components21.default.th`
3646
3888
  color: var(--font-color-alpha-60);
3647
3889
  }
3648
3890
  `;
3649
- var CellWrapper = import_styled_components21.default.td`
3891
+ var CellWrapper = import_styled_components23.default.td`
3650
3892
  ${CellStyles}
3651
3893
  `;
3652
3894
 
@@ -3655,43 +3897,43 @@ var Table = ({
3655
3897
  children,
3656
3898
  ...restProps
3657
3899
  }) => {
3658
- return /* @__PURE__ */ import_react36.default.createElement(ScrollArea, { as: TableLayer, role: "presentation", tabIndex: -1 }, /* @__PURE__ */ import_react36.default.createElement(TableWrapper, { ...restProps, cellSpacing: "0", cellPadding: "0" }, children));
3900
+ return /* @__PURE__ */ import_react39.default.createElement(ScrollArea, { as: TableLayer, role: "presentation", tabIndex: -1 }, /* @__PURE__ */ import_react39.default.createElement(TableWrapper, { ...restProps, cellSpacing: "0", cellPadding: "0" }, children));
3659
3901
  };
3660
3902
  Table.displayName = "Table";
3661
3903
  var TableHead = ({
3662
3904
  children,
3663
3905
  ...restProps
3664
3906
  }) => {
3665
- return /* @__PURE__ */ import_react36.default.createElement("thead", { ...restProps }, children);
3907
+ return /* @__PURE__ */ import_react39.default.createElement("thead", { ...restProps }, children);
3666
3908
  };
3667
3909
  TableHead.displayName = "Table.Head";
3668
3910
  var TableBody = ({
3669
3911
  children,
3670
3912
  ...restProps
3671
3913
  }) => {
3672
- return /* @__PURE__ */ import_react36.default.createElement("tbody", { ...restProps }, children);
3914
+ return /* @__PURE__ */ import_react39.default.createElement("tbody", { ...restProps }, children);
3673
3915
  };
3674
3916
  TableBody.displayName = "Table.Body";
3675
3917
  var TableHeadCell = ({
3676
3918
  children,
3677
3919
  ...restProps
3678
3920
  }) => {
3679
- return /* @__PURE__ */ import_react36.default.createElement(HeadCellWrapper, { colSpan: 1, ...restProps }, /* @__PURE__ */ import_react36.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
3921
+ return /* @__PURE__ */ import_react39.default.createElement(HeadCellWrapper, { colSpan: 1, ...restProps }, /* @__PURE__ */ import_react39.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
3680
3922
  };
3681
3923
  TableHeadCell.displayName = "Table.HeadCell";
3682
3924
  var TableRow = ({ children, ...restProps }) => {
3683
- return /* @__PURE__ */ import_react36.default.createElement(RowWrapper, { className: "p-medium-30", ...restProps }, children);
3925
+ return /* @__PURE__ */ import_react39.default.createElement(RowWrapper, { className: "p-medium-30", ...restProps }, children);
3684
3926
  };
3685
3927
  TableRow.displayName = "Table.Row";
3686
3928
  var TableCell = ({ children, ...restProps }) => {
3687
- return /* @__PURE__ */ import_react36.default.createElement(CellWrapper, { ...restProps }, /* @__PURE__ */ import_react36.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
3929
+ return /* @__PURE__ */ import_react39.default.createElement(CellWrapper, { ...restProps }, /* @__PURE__ */ import_react39.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
3688
3930
  };
3689
3931
  TableCell.displayName = "Table.Cell";
3690
3932
  var TableFooter = ({
3691
3933
  children,
3692
3934
  ...restProps
3693
3935
  }) => {
3694
- return /* @__PURE__ */ import_react36.default.createElement("tfoot", { ...restProps }, children);
3936
+ return /* @__PURE__ */ import_react39.default.createElement("tfoot", { ...restProps }, children);
3695
3937
  };
3696
3938
  TableFooter.displayName = "Table.Footer";
3697
3939
  Table.Head = TableHead;
@@ -3702,24 +3944,26 @@ Table.Cell = TableCell;
3702
3944
  Table.Footer = TableFooter;
3703
3945
 
3704
3946
  // src/tabs/index.tsx
3705
- var import_react38 = __toESM(require("react"));
3947
+ var import_react41 = __toESM(require("react"));
3706
3948
 
3707
3949
  // src/tabs/hooks/index.tsx
3708
- var import_react37 = __toESM(require("react"));
3709
- var defaultComponentAPI7 = {
3950
+ var import_react40 = __toESM(require("react"));
3951
+ var defaultComponentAPI8 = {
3710
3952
  id: "",
3711
3953
  states: {},
3712
3954
  methods: {}
3713
3955
  };
3714
- var TabsContext = (0, import_react37.createContext)(defaultComponentAPI7);
3715
- var useTabs = () => (0, import_react37.useContext)(TabsContext);
3716
- var TabsProvider = ({ children }) => {
3956
+ var TabsContext = (0, import_react40.createContext)(defaultComponentAPI8);
3957
+ var useTabs = () => (0, import_react40.useContext)(TabsContext);
3958
+ var TabsProvider = ({
3959
+ children
3960
+ }) => {
3717
3961
  const context = useTabsProvider();
3718
- return /* @__PURE__ */ import_react37.default.createElement(TabsContext.Provider, { value: context }, children);
3962
+ return /* @__PURE__ */ import_react40.default.createElement(TabsContext.Provider, { value: context }, children);
3719
3963
  };
3720
3964
  function useTabsProvider() {
3721
- const [value, setValue] = (0, import_react37.useState)(null);
3722
- const tabsId = import_react37.default.useId();
3965
+ const [value, setValue] = (0, import_react40.useState)(null);
3966
+ const tabsId = import_react40.default.useId();
3723
3967
  return {
3724
3968
  id: tabsId,
3725
3969
  states: {
@@ -3733,8 +3977,8 @@ function useTabsProvider() {
3733
3977
  }
3734
3978
 
3735
3979
  // src/tabs/styles/index.ts
3736
- var import_styled_components22 = __toESM(require("styled-components"));
3737
- var TabWrapper = import_styled_components22.default.div`
3980
+ var import_styled_components24 = __toESM(require("styled-components"));
3981
+ var TabWrapper = import_styled_components24.default.div`
3738
3982
  button {
3739
3983
  &[aria-selected="true"] {
3740
3984
  color: var(--font-color) !important;
@@ -3747,22 +3991,22 @@ var Tabs = (props) => {
3747
3991
  const { defaultOpen, children, ...restProps } = props;
3748
3992
  const { methods } = useTabs();
3749
3993
  const { applyValue } = methods;
3750
- const childArray = import_react38.Children.toArray(children);
3994
+ const childArray = import_react41.Children.toArray(children);
3751
3995
  const firstChild = childArray[0];
3752
- import_react38.default.useEffect(() => {
3753
- if (import_react38.default.isValidElement(firstChild)) {
3996
+ import_react41.default.useEffect(() => {
3997
+ if (import_react41.default.isValidElement(firstChild)) {
3754
3998
  if (childArray.length > 0 && applyValue)
3755
3999
  applyValue(firstChild.props.value);
3756
4000
  }
3757
4001
  }, []);
3758
- import_react38.default.useEffect(() => {
4002
+ import_react41.default.useEffect(() => {
3759
4003
  if (defaultOpen && applyValue) applyValue(defaultOpen);
3760
4004
  }, []);
3761
- return /* @__PURE__ */ import_react38.default.createElement(TabWrapper, { role: "tablist", ...restProps }, children);
4005
+ return /* @__PURE__ */ import_react41.default.createElement(TabWrapper, { role: "tablist", ...restProps }, children);
3762
4006
  };
3763
4007
  Tabs.displayName = "Tabs";
3764
4008
  var TabsRoot = ({ children }) => {
3765
- return /* @__PURE__ */ import_react38.default.createElement(TabsProvider, null, children);
4009
+ return /* @__PURE__ */ import_react41.default.createElement(TabsProvider, null, children);
3766
4010
  };
3767
4011
  TabsRoot.displayName = "Tabs.Root";
3768
4012
  var TabsTrigger = (props) => {
@@ -3778,7 +4022,7 @@ var TabsTrigger = (props) => {
3778
4022
  if (applyValue) applyValue(value);
3779
4023
  if (onClick) onClick(event);
3780
4024
  };
3781
- return /* @__PURE__ */ import_react38.default.createElement(
4025
+ return /* @__PURE__ */ import_react41.default.createElement(
3782
4026
  Button,
3783
4027
  {
3784
4028
  type: "button",
@@ -3806,7 +4050,7 @@ var TabsContent = (props) => {
3806
4050
  trigger: getTabsId && getTabsId({ value, type: "trigger" }),
3807
4051
  content: getTabsId && getTabsId({ value, type: "content" })
3808
4052
  };
3809
- return /* @__PURE__ */ import_react38.default.createElement(
4053
+ return /* @__PURE__ */ import_react41.default.createElement(
3810
4054
  "div",
3811
4055
  {
3812
4056
  tabIndex: 0,
@@ -3827,11 +4071,11 @@ Tabs.Trigger = TabsTrigger;
3827
4071
  Tabs.Content = TabsContent;
3828
4072
 
3829
4073
  // src/text-area/index.tsx
3830
- var import_react39 = __toESM(require("react"));
4074
+ var import_react42 = __toESM(require("react"));
3831
4075
 
3832
4076
  // src/text-area/styles/index.ts
3833
- var import_styled_components23 = __toESM(require("styled-components"));
3834
- var CustomScrollbar2 = import_styled_components23.css`
4077
+ var import_styled_components25 = __toESM(require("styled-components"));
4078
+ var CustomScrollbar2 = import_styled_components25.css`
3835
4079
  height: ${({ $height }) => $height ?? "100%"};
3836
4080
  width: ${({ $width }) => $width ?? "100%"};
3837
4081
  overflow-y: auto;
@@ -3863,7 +4107,7 @@ var CustomScrollbar2 = import_styled_components23.css`
3863
4107
  scrollbar-width: thin;
3864
4108
  scrollbar-color: ${({ $thumbColor, $trackColor }) => `${$thumbColor ?? "var(--font-color-alpha-10)"} ${$trackColor ?? "transparent"}`};
3865
4109
  `;
3866
- var TextareaSizeStyles = import_styled_components23.css`
4110
+ var TextareaSizeStyles = import_styled_components25.css`
3867
4111
  padding: var(--measurement-medium-30);
3868
4112
  max-height: var(--measurement-large-60);
3869
4113
 
@@ -3878,7 +4122,7 @@ var TextareaSizeStyles = import_styled_components23.css`
3878
4122
  max-height: var(--measurement-large-80);
3879
4123
  }
3880
4124
  `;
3881
- var TextareaResizableStyles = import_styled_components23.css`
4125
+ var TextareaResizableStyles = import_styled_components25.css`
3882
4126
  &[data-resizable="true"] {
3883
4127
  resize: vertical;
3884
4128
  }
@@ -3886,7 +4130,7 @@ var TextareaResizableStyles = import_styled_components23.css`
3886
4130
  resize: none;
3887
4131
  }
3888
4132
  `;
3889
- var TextAreaContainer = import_styled_components23.default.textarea`
4133
+ var TextAreaContainer = import_styled_components25.default.textarea`
3890
4134
  &[data-raw="false"] {
3891
4135
  ${FieldDefaultStyles}
3892
4136
  ${FieldShapeStyles}
@@ -3902,7 +4146,7 @@ var TextAreaContainer = import_styled_components23.default.textarea`
3902
4146
  // src/text-area/index.tsx
3903
4147
  var Textarea = (props) => {
3904
4148
  const { raw, shape, sizing, variant, resizable, onChange } = props;
3905
- const textareaRef = import_react39.default.useRef(null);
4149
+ const textareaRef = import_react42.default.useRef(null);
3906
4150
  const adjustHeight = () => {
3907
4151
  const textarea = textareaRef.current;
3908
4152
  if (textarea) {
@@ -3917,8 +4161,8 @@ var Textarea = (props) => {
3917
4161
  adjustHeight();
3918
4162
  onChange?.(e);
3919
4163
  };
3920
- import_react39.default.useEffect(() => adjustHeight(), [props.value]);
3921
- return /* @__PURE__ */ import_react39.default.createElement(
4164
+ import_react42.default.useEffect(() => adjustHeight(), [props.value]);
4165
+ return /* @__PURE__ */ import_react42.default.createElement(
3922
4166
  TextAreaContainer,
3923
4167
  {
3924
4168
  ref: textareaRef,
@@ -3935,22 +4179,22 @@ var Textarea = (props) => {
3935
4179
  Textarea.displayName = "Textarea";
3936
4180
 
3937
4181
  // src/toggle/index.tsx
3938
- var import_react40 = __toESM(require("react"));
4182
+ var import_react43 = __toESM(require("react"));
3939
4183
  var Toggle = (props) => {
3940
4184
  const { defaultChecked, onClick, disabled, children, ...restProps } = props;
3941
- const [checked, setChecked] = import_react40.default.useState(
4185
+ const [checked, setChecked] = import_react43.default.useState(
3942
4186
  defaultChecked ?? false
3943
4187
  );
3944
4188
  const handleClick = (event) => {
3945
4189
  if (onClick) onClick(event);
3946
4190
  if (!disabled) setChecked((prevChecked) => !prevChecked);
3947
4191
  };
3948
- import_react40.default.useEffect(() => {
4192
+ import_react43.default.useEffect(() => {
3949
4193
  if (defaultChecked !== void 0) {
3950
4194
  setChecked(Boolean(defaultChecked));
3951
4195
  }
3952
4196
  }, [defaultChecked]);
3953
- return /* @__PURE__ */ import_react40.default.createElement(
4197
+ return /* @__PURE__ */ import_react43.default.createElement(
3954
4198
  Button,
3955
4199
  {
3956
4200
  role: "switch",
@@ -3968,24 +4212,26 @@ var Toggle = (props) => {
3968
4212
  Toggle.displayName = "Toggle";
3969
4213
 
3970
4214
  // src/toolbar/index.tsx
3971
- var import_react42 = __toESM(require("react"));
4215
+ var import_react45 = __toESM(require("react"));
3972
4216
 
3973
4217
  // src/toolbar/hooks/index.tsx
3974
- var import_react41 = __toESM(require("react"));
3975
- var defaultComponentAPI8 = {
4218
+ var import_react44 = __toESM(require("react"));
4219
+ var defaultComponentAPI9 = {
3976
4220
  id: "",
3977
4221
  states: {},
3978
4222
  methods: {}
3979
4223
  };
3980
- var ToolbarContext = (0, import_react41.createContext)(defaultComponentAPI8);
3981
- var useToolbar = () => (0, import_react41.useContext)(ToolbarContext);
3982
- var ToolbarProvider = ({ children }) => {
4224
+ var ToolbarContext = (0, import_react44.createContext)(defaultComponentAPI9);
4225
+ var useToolbar = () => (0, import_react44.useContext)(ToolbarContext);
4226
+ var ToolbarProvider = ({
4227
+ children
4228
+ }) => {
3983
4229
  const context = useToolbarProvider();
3984
- return /* @__PURE__ */ import_react41.default.createElement(ToolbarContext.Provider, { value: context }, children);
4230
+ return /* @__PURE__ */ import_react44.default.createElement(ToolbarContext.Provider, { value: context }, children);
3985
4231
  };
3986
4232
  function useToolbarProvider() {
3987
- const [expanded, setExpanded] = (0, import_react41.useState)(false);
3988
- const toolbarId = import_react41.default.useId();
4233
+ const [expanded, setExpanded] = (0, import_react44.useState)(false);
4234
+ const toolbarId = import_react44.default.useId();
3989
4235
  return {
3990
4236
  id: toolbarId,
3991
4237
  states: {
@@ -3998,8 +4244,8 @@ function useToolbarProvider() {
3998
4244
  }
3999
4245
 
4000
4246
  // src/toolbar/styles/index.ts
4001
- var import_styled_components24 = __toESM(require("styled-components"));
4002
- var ToolbarDefaultStyles = import_styled_components24.css`
4247
+ var import_styled_components26 = __toESM(require("styled-components"));
4248
+ var ToolbarDefaultStyles = import_styled_components26.css`
4003
4249
  margin: 0;
4004
4250
  display: grid;
4005
4251
  grid-template-rows: min-content;
@@ -4033,7 +4279,7 @@ var ToolbarDefaultStyles = import_styled_components24.css`
4033
4279
  }
4034
4280
  }
4035
4281
  `;
4036
- var ToolbarSizeStyles = import_styled_components24.css`
4282
+ var ToolbarSizeStyles = import_styled_components26.css`
4037
4283
  &[data-size="small"] {
4038
4284
  &[aria-orientation="vertical"] {
4039
4285
  max-width: var(--measurement-large-70);
@@ -4079,7 +4325,7 @@ var ToolbarSizeStyles = import_styled_components24.css`
4079
4325
  }
4080
4326
  }
4081
4327
  `;
4082
- var ToolbarSideStyles = import_styled_components24.css`
4328
+ var ToolbarSideStyles = import_styled_components26.css`
4083
4329
  &[data-side="top"] {
4084
4330
  border-bottom-color: var(--font-color-alpha-10);
4085
4331
  }
@@ -4111,7 +4357,7 @@ var ToolbarSideStyles = import_styled_components24.css`
4111
4357
  }
4112
4358
  }
4113
4359
  `;
4114
- var ToolbarWrapper = import_styled_components24.default.menu`
4360
+ var ToolbarWrapper = import_styled_components26.default.menu`
4115
4361
  &[data-raw="false"] {
4116
4362
  ${ToolbarDefaultStyles}
4117
4363
  ${ToolbarSizeStyles}
@@ -4119,7 +4365,7 @@ var ToolbarWrapper = import_styled_components24.default.menu`
4119
4365
  ${ToolbarSideStyles}
4120
4366
  }
4121
4367
  `;
4122
- var ToolbarTriggerWrapper = import_styled_components24.default.menu`
4368
+ var ToolbarTriggerWrapper = import_styled_components26.default.menu`
4123
4369
  &[data-raw="false"] {
4124
4370
  all: unset;
4125
4371
  align-self: flex-end;
@@ -4144,13 +4390,13 @@ var Toolbar = (props) => {
4144
4390
  const { toggleToolbar } = methods;
4145
4391
  const shortcutControls = useKeyPress(String(hotkey), true, bindkey);
4146
4392
  const orientation = side && ["left", "right"].includes(side) ? "vertical" : "horizontal";
4147
- import_react42.default.useEffect(() => {
4393
+ import_react45.default.useEffect(() => {
4148
4394
  if (defaultOpen && toggleToolbar) return toggleToolbar(true);
4149
4395
  }, [defaultOpen]);
4150
- import_react42.default.useEffect(() => {
4396
+ import_react45.default.useEffect(() => {
4151
4397
  if (shortcut && shortcutControls && toggleToolbar) toggleToolbar();
4152
4398
  }, [shortcutControls]);
4153
- return /* @__PURE__ */ import_react42.default.createElement(
4399
+ return /* @__PURE__ */ import_react45.default.createElement(
4154
4400
  ToolbarWrapper,
4155
4401
  {
4156
4402
  id,
@@ -4170,7 +4416,7 @@ var Toolbar = (props) => {
4170
4416
  };
4171
4417
  Toolbar.displayName = "Toolbar";
4172
4418
  var ToolbarRoot = ({ children }) => {
4173
- return /* @__PURE__ */ import_react42.default.createElement(ToolbarProvider, null, children);
4419
+ return /* @__PURE__ */ import_react45.default.createElement(ToolbarProvider, null, children);
4174
4420
  };
4175
4421
  ToolbarRoot.displayName = "Toolbar.Root";
4176
4422
  var ToolbarTrigger = (props) => {
@@ -4188,7 +4434,7 @@ var ToolbarTrigger = (props) => {
4188
4434
  if (onClick) onClick(event);
4189
4435
  if (toggleToolbar) toggleToolbar(!states.expanded);
4190
4436
  };
4191
- return /* @__PURE__ */ import_react42.default.createElement(ToolbarTriggerWrapper, { "data-raw": Boolean(raw) }, /* @__PURE__ */ import_react42.default.createElement(
4437
+ return /* @__PURE__ */ import_react45.default.createElement(ToolbarTriggerWrapper, { "data-raw": Boolean(raw) }, /* @__PURE__ */ import_react45.default.createElement(
4192
4438
  Button,
4193
4439
  {
4194
4440
  id: `${id}-trigger`,
@@ -4206,13 +4452,13 @@ var ToolbarSection = (props) => {
4206
4452
  const { showoncollapse, children, ...restProps } = props;
4207
4453
  const { states } = useToolbar();
4208
4454
  const { expanded } = states;
4209
- if (showoncollapse) return /* @__PURE__ */ import_react42.default.createElement("section", { ...restProps }, children);
4210
- return /* @__PURE__ */ import_react42.default.createElement("section", { ...restProps }, expanded && children);
4455
+ if (showoncollapse) return /* @__PURE__ */ import_react45.default.createElement("section", { ...restProps }, children);
4456
+ return /* @__PURE__ */ import_react45.default.createElement("section", { ...restProps }, expanded && children);
4211
4457
  };
4212
4458
  ToolbarSection.displayName = "Toolbar.Section";
4213
4459
  var ToolbarItem = (props) => {
4214
4460
  const { showfirstchild, onClick, children, ...restProps } = props;
4215
- const childArray = import_react42.default.Children.toArray(children);
4461
+ const childArray = import_react45.default.Children.toArray(children);
4216
4462
  const { id, states, methods } = useToolbar();
4217
4463
  const { expanded } = states;
4218
4464
  const { toggleToolbar } = methods;
@@ -4221,7 +4467,7 @@ var ToolbarItem = (props) => {
4221
4467
  if (onClick) onClick(event);
4222
4468
  if (toggleToolbar && !expanded) toggleToolbar(true);
4223
4469
  };
4224
- return /* @__PURE__ */ import_react42.default.createElement(
4470
+ return /* @__PURE__ */ import_react45.default.createElement(
4225
4471
  "div",
4226
4472
  {
4227
4473
  tabIndex: -1,
@@ -4242,11 +4488,11 @@ Toolbar.Item = ToolbarItem;
4242
4488
  Toolbar.Section = ToolbarSection;
4243
4489
 
4244
4490
  // src/tooltip/index.tsx
4245
- var import_react43 = __toESM(require("react"));
4491
+ var import_react46 = __toESM(require("react"));
4246
4492
 
4247
4493
  // src/tooltip/styles/index.ts
4248
- var import_styled_components25 = __toESM(require("styled-components"));
4249
- var FadeIn2 = import_styled_components25.keyframes`
4494
+ var import_styled_components27 = __toESM(require("styled-components"));
4495
+ var FadeIn2 = import_styled_components27.keyframes`
4250
4496
  0% {
4251
4497
  opacity: 0;
4252
4498
  }
@@ -4254,11 +4500,11 @@ var FadeIn2 = import_styled_components25.keyframes`
4254
4500
  opacity: 1;
4255
4501
  }
4256
4502
  `;
4257
- var ContentBox = import_styled_components25.default.div`
4503
+ var ContentBox = import_styled_components27.default.div`
4258
4504
  display: inline-block;
4259
4505
  position: relative;
4260
4506
  `;
4261
- var ContentWrapper2 = import_styled_components25.default.span`
4507
+ var ContentWrapper2 = import_styled_components27.default.span`
4262
4508
  &[data-raw="false"] {
4263
4509
  width: fit-content;
4264
4510
  max-width: var(--measurement-large-60);
@@ -4289,13 +4535,13 @@ var Tooltip = ({
4289
4535
  children,
4290
4536
  ...restProps
4291
4537
  }) => {
4292
- const [visible, setVisible] = import_react43.default.useState(false);
4293
- const [triggerProps, setTriggerProps] = import_react43.default.useState(null);
4294
- const [contentProps, setContentProps] = import_react43.default.useState(null);
4295
- const mounted = import_react43.default.useRef(false);
4296
- const containerRef = import_react43.default.useRef(null);
4297
- const contentRef = import_react43.default.useRef(null);
4298
- const timeoutRef = import_react43.default.useRef(null);
4538
+ const [visible, setVisible] = import_react46.default.useState(false);
4539
+ const [triggerProps, setTriggerProps] = import_react46.default.useState(null);
4540
+ const [contentProps, setContentProps] = import_react46.default.useState(null);
4541
+ const mounted = import_react46.default.useRef(false);
4542
+ const containerRef = import_react46.default.useRef(null);
4543
+ const contentRef = import_react46.default.useRef(null);
4544
+ const timeoutRef = import_react46.default.useRef(null);
4299
4545
  const contentRect = () => contentRef?.current?.getBoundingClientRect();
4300
4546
  const bodyRect = () => {
4301
4547
  if (typeof document !== "undefined") {
@@ -4319,14 +4565,14 @@ var Tooltip = ({
4319
4565
  };
4320
4566
  const hasEnoughHorizontalSpace = Number(dimensions.body_width) - Number(dimensions.content_left) > Number(dimensions.content_width) * 1.1;
4321
4567
  const hasEnoughVerticalSpace = Number(dimensions.body_height) - Number(dimensions.content_bottom) > Number(dimensions.content_height) * 0.9;
4322
- const showTooltip = import_react43.default.useCallback(() => {
4568
+ const showTooltip = import_react46.default.useCallback(() => {
4323
4569
  timeoutRef.current = setTimeout(() => setVisible(true), delay);
4324
4570
  }, [delay]);
4325
- const hideTooltip = import_react43.default.useCallback(() => {
4571
+ const hideTooltip = import_react46.default.useCallback(() => {
4326
4572
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
4327
4573
  setVisible(false);
4328
4574
  }, []);
4329
- const handleMouseEnter = import_react43.default.useCallback(() => {
4575
+ const handleMouseEnter = import_react46.default.useCallback(() => {
4330
4576
  const rect = containerRef.current?.getBoundingClientRect();
4331
4577
  if (rect) {
4332
4578
  setTriggerProps({
@@ -4340,11 +4586,11 @@ var Tooltip = ({
4340
4586
  showTooltip();
4341
4587
  }
4342
4588
  }, [showTooltip]);
4343
- const handleMouseLeave = import_react43.default.useCallback(
4589
+ const handleMouseLeave = import_react46.default.useCallback(
4344
4590
  () => hideTooltip(),
4345
4591
  [hideTooltip]
4346
4592
  );
4347
- import_react43.default.useEffect(() => {
4593
+ import_react46.default.useEffect(() => {
4348
4594
  mounted.current = true;
4349
4595
  setContentProps && setContentProps({
4350
4596
  top: Number(contentRect()?.top),
@@ -4358,7 +4604,7 @@ var Tooltip = ({
4358
4604
  mounted.current = false;
4359
4605
  };
4360
4606
  }, [visible]);
4361
- return /* @__PURE__ */ import_react43.default.createElement(
4607
+ return /* @__PURE__ */ import_react46.default.createElement(
4362
4608
  ContentBox,
4363
4609
  {
4364
4610
  ref: containerRef,
@@ -4368,7 +4614,7 @@ var Tooltip = ({
4368
4614
  ...restProps
4369
4615
  },
4370
4616
  children,
4371
- visible && /* @__PURE__ */ import_react43.default.createElement(
4617
+ visible && /* @__PURE__ */ import_react46.default.createElement(
4372
4618
  ContentWrapper2,
4373
4619
  {
4374
4620
  ref: contentRef,
@@ -4383,11 +4629,223 @@ var Tooltip = ({
4383
4629
  "data-side": hasEnoughHorizontalSpace ? "left" /* Left */ : "right" /* Right */,
4384
4630
  "data-align": hasEnoughHorizontalSpace ? "left" /* Left */ : "right" /* Right */
4385
4631
  },
4386
- /* @__PURE__ */ import_react43.default.createElement("div", null, content)
4632
+ /* @__PURE__ */ import_react46.default.createElement("div", null, content)
4387
4633
  )
4388
4634
  );
4389
4635
  };
4390
4636
  Tooltip.displayName = "Tooltip";
4637
+
4638
+ // src/tree/index.tsx
4639
+ var import_react49 = __toESM(require("react"));
4640
+
4641
+ // src/tree/hooks/tree-provider.tsx
4642
+ var import_react47 = __toESM(require("react"));
4643
+ var defaultTreeAPI = {
4644
+ id: "",
4645
+ states: {},
4646
+ methods: {}
4647
+ };
4648
+ var TreeContext = (0, import_react47.createContext)(defaultTreeAPI);
4649
+ var useTree = () => (0, import_react47.useContext)(TreeContext);
4650
+ var TreeProvider = ({
4651
+ children,
4652
+ defaultExpandedIds = [],
4653
+ onSelectionChange
4654
+ }) => {
4655
+ const context = useTreeProviderContext({
4656
+ defaultExpandedIds,
4657
+ onSelectionChange
4658
+ });
4659
+ return /* @__PURE__ */ import_react47.default.createElement(TreeContext.Provider, { value: context }, children);
4660
+ };
4661
+ function useTreeProviderContext({
4662
+ defaultExpandedIds,
4663
+ onSelectionChange
4664
+ }) {
4665
+ const treeId = import_react47.default.useId();
4666
+ const [expandedIds, setExpandedIds] = (0, import_react47.useState)(
4667
+ () => new Set(defaultExpandedIds)
4668
+ );
4669
+ const [selectedIds, setSelectedIds] = (0, import_react47.useState)(() => /* @__PURE__ */ new Set());
4670
+ return {
4671
+ id: treeId,
4672
+ states: {
4673
+ expandedIds,
4674
+ selectedIds
4675
+ },
4676
+ methods: {
4677
+ isExpanded: (id) => expandedIds.has(id),
4678
+ isSelected: (id) => selectedIds.has(id),
4679
+ toggleExpanded: (id) => {
4680
+ setExpandedIds((prev) => {
4681
+ const next = new Set(prev);
4682
+ next.has(id) ? next.delete(id) : next.add(id);
4683
+ return next;
4684
+ });
4685
+ },
4686
+ toggleSelected: (id) => {
4687
+ setSelectedIds((prev) => {
4688
+ const next = new Set(prev);
4689
+ next.has(id) ? next.delete(id) : next.add(id);
4690
+ onSelectionChange?.(Array.from(next));
4691
+ return next;
4692
+ });
4693
+ },
4694
+ getTreeId: ({ nodeId, type }) => `${treeId}-${type}-${nodeId}`
4695
+ }
4696
+ };
4697
+ }
4698
+
4699
+ // src/tree/hooks/tree-node-provider.tsx
4700
+ var import_react48 = __toESM(require("react"));
4701
+ var defaultTreeNodeAPI = {
4702
+ id: "",
4703
+ states: {},
4704
+ methods: {}
4705
+ };
4706
+ var TreeNodeContext = (0, import_react48.createContext)(defaultTreeNodeAPI);
4707
+ var useTreeNode = () => (0, import_react48.useContext)(TreeNodeContext);
4708
+ var TreeNodeProvider = ({
4709
+ children,
4710
+ nodeId,
4711
+ level,
4712
+ isLast
4713
+ }) => {
4714
+ const context = useTreeNodeProviderContext({ nodeId, level, isLast });
4715
+ return /* @__PURE__ */ import_react48.default.createElement(TreeNodeContext.Provider, { value: context }, children);
4716
+ };
4717
+ function useTreeNodeProviderContext({
4718
+ nodeId,
4719
+ level,
4720
+ isLast
4721
+ }) {
4722
+ return {
4723
+ id: nodeId,
4724
+ states: {
4725
+ nodeId,
4726
+ level,
4727
+ isLast
4728
+ },
4729
+ methods: {}
4730
+ };
4731
+ }
4732
+
4733
+ // src/tree/styles/index.ts
4734
+ var import_styled_components28 = __toESM(require("styled-components"));
4735
+ var TreeView = import_styled_components28.default.ul`
4736
+ display: flex;
4737
+ flex-direction: column;
4738
+ list-style: none;
4739
+ margin: 0;
4740
+ padding: 0;
4741
+ `;
4742
+ var TreeItem = import_styled_components28.default.li`
4743
+ display: flex;
4744
+ flex-direction: column;
4745
+ list-style: none;
4746
+ `;
4747
+ var TreeNodeContent = import_styled_components28.default.ul`
4748
+ display: flex;
4749
+ flex-direction: column;
4750
+ list-style: none;
4751
+ margin: 0;
4752
+ padding: 0;
4753
+ `;
4754
+
4755
+ // src/tree/index.tsx
4756
+ var Tree = (props) => {
4757
+ const { children, ...restProps } = props;
4758
+ const { id } = useTree();
4759
+ return /* @__PURE__ */ import_react49.default.createElement(TreeView, { id, role: "tree", ...restProps }, children);
4760
+ };
4761
+ Tree.displayName = "Tree";
4762
+ var TreeRoot = ({
4763
+ children,
4764
+ defaultExpandedIds,
4765
+ onSelectionChange
4766
+ }) => {
4767
+ return /* @__PURE__ */ import_react49.default.createElement(
4768
+ TreeProvider,
4769
+ {
4770
+ defaultExpandedIds,
4771
+ onSelectionChange
4772
+ },
4773
+ children
4774
+ );
4775
+ };
4776
+ TreeRoot.displayName = "Tree.Root";
4777
+ var TreeNode = (props) => {
4778
+ const { nodeId, level = 0, isLast = false, children, ...restProps } = props;
4779
+ return /* @__PURE__ */ import_react49.default.createElement(TreeNodeProvider, { nodeId, level, isLast }, /* @__PURE__ */ import_react49.default.createElement(TreeItem, { role: "treeitem", "aria-level": level + 1, ...restProps }, children));
4780
+ };
4781
+ TreeNode.displayName = "Tree.Node";
4782
+ var TreeTrigger = (props) => {
4783
+ const { nodeId, disabled, onClick, children, ...restProps } = props;
4784
+ const { methods } = useTree();
4785
+ const { getTreeId, toggleExpanded, toggleSelected } = methods;
4786
+ const isExpanded = methods.isExpanded && methods.isExpanded(nodeId);
4787
+ const isSelected = methods.isSelected && methods.isSelected(nodeId);
4788
+ const IdHandler = {
4789
+ trigger: getTreeId && getTreeId({ nodeId, type: "trigger" }),
4790
+ content: getTreeId && getTreeId({ nodeId, type: "content" })
4791
+ };
4792
+ const { states: nodeStates } = useTreeNode();
4793
+ const level = nodeStates.level ?? 0;
4794
+ const handleClick = (event) => {
4795
+ if (!disabled) {
4796
+ onClick && onClick(event);
4797
+ toggleExpanded && toggleExpanded(nodeId);
4798
+ toggleSelected && toggleSelected(nodeId);
4799
+ }
4800
+ };
4801
+ return /* @__PURE__ */ import_react49.default.createElement(
4802
+ Button,
4803
+ {
4804
+ id: String(IdHandler.trigger),
4805
+ disabled: disabled ?? false,
4806
+ onClick: handleClick,
4807
+ "data-state": isExpanded ? "expanded" : "collapsed",
4808
+ "data-selected": isSelected || void 0,
4809
+ variant: props.variant ?? "ghost" /* Ghost */,
4810
+ style: { paddingLeft: `calc(${level} * 1rem + 0.5rem)` },
4811
+ rawicon: true,
4812
+ ...restProps
4813
+ },
4814
+ children
4815
+ );
4816
+ };
4817
+ TreeTrigger.displayName = "Tree.Trigger";
4818
+ var TreeContent = (props) => {
4819
+ const { nodeId, defaultOpen = false, children, ...restProps } = props;
4820
+ const { methods } = useTree();
4821
+ const { getTreeId, toggleExpanded } = methods;
4822
+ const isExpanded = methods.isExpanded && methods.isExpanded(nodeId);
4823
+ const IdHandler = {
4824
+ trigger: getTreeId && getTreeId({ nodeId, type: "trigger" }),
4825
+ content: getTreeId && getTreeId({ nodeId, type: "content" })
4826
+ };
4827
+ import_react49.default.useEffect(() => {
4828
+ if (defaultOpen && !isExpanded && toggleExpanded) toggleExpanded(nodeId);
4829
+ }, []);
4830
+ if (isExpanded)
4831
+ return /* @__PURE__ */ import_react49.default.createElement(
4832
+ TreeNodeContent,
4833
+ {
4834
+ role: "group",
4835
+ id: String(IdHandler.content),
4836
+ "aria-labelledby": String(IdHandler.trigger),
4837
+ "data-nodeId": nodeId,
4838
+ ...restProps
4839
+ },
4840
+ children
4841
+ );
4842
+ return /* @__PURE__ */ import_react49.default.createElement(import_react49.default.Fragment, null);
4843
+ };
4844
+ TreeContent.displayName = "Tree.Content";
4845
+ Tree.Root = TreeRoot;
4846
+ Tree.Node = TreeNode;
4847
+ Tree.Trigger = TreeTrigger;
4848
+ Tree.Content = TreeContent;
4391
4849
  // Annotate the CommonJS export names for ESM import in node:
4392
4850
  0 && (module.exports = {
4393
4851
  Accordion,
@@ -4430,6 +4888,10 @@ Tooltip.displayName = "Tooltip";
4430
4888
  FieldMeta,
4431
4889
  FieldRoot,
4432
4890
  FieldWrapper,
4891
+ MessageBubble,
4892
+ MessageBubbleContent,
4893
+ MessageBubbleMeta,
4894
+ MessageBubbleRoot,
4433
4895
  MetaVariantEnum,
4434
4896
  OTPField,
4435
4897
  OTPFieldSlot,
@@ -4448,6 +4910,7 @@ Tooltip.displayName = "Tooltip";
4448
4910
  Sheet,
4449
4911
  SheetRoot,
4450
4912
  SheetTrigger,
4913
+ Shimmer,
4451
4914
  Skeleton,
4452
4915
  Spinner,
4453
4916
  Switch,
@@ -4472,14 +4935,22 @@ Tooltip.displayName = "Tooltip";
4472
4935
  ToolbarSection,
4473
4936
  ToolbarTrigger,
4474
4937
  Tooltip,
4938
+ Tree,
4939
+ TreeContent,
4940
+ TreeNode,
4941
+ TreeRoot,
4942
+ TreeTrigger,
4475
4943
  useAccordion,
4476
4944
  useCheckbox,
4477
4945
  useCollapsible,
4478
4946
  useDialog,
4479
4947
  useDropdownMenu,
4480
4948
  useField,
4949
+ useMessageBubble,
4481
4950
  useSheet,
4482
4951
  useSwitch,
4483
4952
  useTabs,
4484
- useToolbar
4953
+ useToolbar,
4954
+ useTree,
4955
+ useTreeNode
4485
4956
  });