@usefui/components 1.7.0 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -127,11 +127,6 @@ __export(index_exports, {
127
127
  ToolbarSection: () => ToolbarSection,
128
128
  ToolbarTrigger: () => ToolbarTrigger,
129
129
  Tooltip: () => Tooltip,
130
- Tree: () => Tree,
131
- TreeContent: () => TreeContent,
132
- TreeNode: () => TreeNode,
133
- TreeRoot: () => TreeRoot,
134
- TreeTrigger: () => TreeTrigger,
135
130
  useAccordion: () => useAccordion,
136
131
  useCheckbox: () => useCheckbox,
137
132
  useCollapsible: () => useCollapsible,
@@ -143,9 +138,7 @@ __export(index_exports, {
143
138
  useSheet: () => useSheet,
144
139
  useSwitch: () => useSwitch,
145
140
  useTabs: () => useTabs,
146
- useToolbar: () => useToolbar,
147
- useTree: () => useTree,
148
- useTreeNode: () => useTreeNode
141
+ useToolbar: () => useToolbar
149
142
  });
150
143
  module.exports = __toCommonJS(index_exports);
151
144
 
@@ -236,25 +229,6 @@ var ButtonIconStyles = import_styled_components.css`
236
229
  svg {
237
230
  width: var(--fontsize-medium-20);
238
231
  height: var(--fontsize-medium-20);
239
- fill: currentColor;
240
- }
241
-
242
- svg {
243
- opacity: 0.6;
244
- }
245
-
246
- &:hover,
247
- &:focus,
248
- &:active {
249
- svg {
250
- opacity: 1;
251
- }
252
- }
253
-
254
- &[data-variant="primary"] {
255
- svg {
256
- fill: var(--body-color);
257
- }
258
232
  }
259
233
  `;
260
234
  var ButtonSizeStyles = import_styled_components.css`
@@ -310,7 +284,6 @@ var ButtonBeforeDefaultStyles = import_styled_components.css`
310
284
  `;
311
285
  var ButtonVariantsStyles = import_styled_components.css`
312
286
  &[data-variant="primary"] {
313
- color: var(--body-color-alpha-80);
314
287
  background-color: var(--font-color);
315
288
  background: linear-gradient(
316
289
  180deg,
@@ -320,6 +293,11 @@ var ButtonVariantsStyles = import_styled_components.css`
320
293
  background-size: 100% 200%;
321
294
  background-position: 0% 50%;
322
295
 
296
+ color: var(--body-color-alpha-80) !important;
297
+ svg * {
298
+ stroke: var(--body-color-alpha-80) !important;
299
+ }
300
+
323
301
  ::before {
324
302
  ${ButtonBeforeDefaultStyles}
325
303
  border-color: var(--body-color-alpha-20);
@@ -338,7 +316,6 @@ var ButtonVariantsStyles = import_styled_components.css`
338
316
  }
339
317
  }
340
318
  &[data-variant="secondary"] {
341
- color: var(--font-color-alpha-60);
342
319
  border-color: var(--font-color-alpha-10);
343
320
 
344
321
  background-color: var(--body-color);
@@ -350,6 +327,8 @@ var ButtonVariantsStyles = import_styled_components.css`
350
327
  background-size: 100% 200%;
351
328
  background-position: 0% 50%;
352
329
 
330
+ color: var(--font-color-alpha-60) !important;
331
+
353
332
  ::before {
354
333
  ${ButtonBeforeDefaultStyles}
355
334
  border-color: var(--font-color-alpha-10);
@@ -366,8 +345,6 @@ var ButtonVariantsStyles = import_styled_components.css`
366
345
  }
367
346
  }
368
347
  &[data-variant="tertiary"] {
369
- color: var(--font-color-alpha-60);
370
-
371
348
  background-color: transparent;
372
349
  background: linear-gradient(
373
350
  -180deg,
@@ -377,6 +354,8 @@ var ButtonVariantsStyles = import_styled_components.css`
377
354
  background-size: 100% 200%;
378
355
  background-position: 0% 10%;
379
356
 
357
+ color: var(--font-color-alpha-60) !important;
358
+
380
359
  &:hover,
381
360
  &:focus,
382
361
  &:active {
@@ -392,8 +371,8 @@ var ButtonVariantsStyles = import_styled_components.css`
392
371
  }
393
372
  }
394
373
  &[data-variant="mono"] {
395
- color: var(--font-color-alpha-80);
396
374
  background-color: var(--contrast-color);
375
+ color: var(--font-color-alpha-80) !important;
397
376
 
398
377
  ::before {
399
378
  ${ButtonBeforeDefaultStyles}
@@ -412,9 +391,9 @@ var ButtonVariantsStyles = import_styled_components.css`
412
391
  }
413
392
  }
414
393
  &[data-variant="border"] {
415
- color: var(--font-color-alpha-60);
416
394
  background-color: transparent;
417
395
  border-color: var(--font-color-alpha-10);
396
+ color: var(--font-color-alpha-60) !important;
418
397
 
419
398
  &:hover,
420
399
  &:focus,
@@ -456,7 +435,6 @@ var ButtonVariantsStyles = import_styled_components.css`
456
435
  }
457
436
 
458
437
  &[data-variant="meta"] {
459
- color: var(--alpha-mono-white-80);
460
438
  background-color: var(--color-blue);
461
439
  background: linear-gradient(
462
440
  180deg,
@@ -466,6 +444,8 @@ var ButtonVariantsStyles = import_styled_components.css`
466
444
  background-size: 100% 200%;
467
445
  background-position: 0% 50%;
468
446
 
447
+ color: var(--alpha-mono-white-80) !important;
448
+
469
449
  ::before {
470
450
  ${ButtonBeforeDefaultStyles}
471
451
  border-color: var(--tint-blue-30);
@@ -486,7 +466,6 @@ var ButtonVariantsStyles = import_styled_components.css`
486
466
  }
487
467
  }
488
468
  &[data-variant="hint"] {
489
- color: var(--alpha-mono-white-80);
490
469
  background-color: var(--color-purple);
491
470
  background: linear-gradient(
492
471
  180deg,
@@ -496,6 +475,8 @@ var ButtonVariantsStyles = import_styled_components.css`
496
475
  background-size: 100% 200%;
497
476
  background-position: 0% 50%;
498
477
 
478
+ color: var(--alpha-mono-white-80) !important;
479
+
499
480
  ::before {
500
481
  ${ButtonBeforeDefaultStyles}
501
482
  border-color: var(--shade-purple-20);
@@ -512,7 +493,6 @@ var ButtonVariantsStyles = import_styled_components.css`
512
493
  }
513
494
  }
514
495
  &[data-variant="success"] {
515
- color: var(--alpha-mono-white-90);
516
496
  background-color: var(--shade-green-30);
517
497
  background: linear-gradient(
518
498
  180deg,
@@ -522,6 +502,8 @@ var ButtonVariantsStyles = import_styled_components.css`
522
502
  background-size: 100% 200%;
523
503
  background-position: 0% 50%;
524
504
 
505
+ color: var(--alpha-mono-white-80) !important;
506
+
525
507
  ::before {
526
508
  ${ButtonBeforeDefaultStyles}
527
509
  border-color: var(--shade-green-20);
@@ -538,7 +520,6 @@ var ButtonVariantsStyles = import_styled_components.css`
538
520
  }
539
521
  }
540
522
  &[data-variant="danger"] {
541
- color: var(--alpha-mono-white-80);
542
523
  background-color: var(--color-red);
543
524
  background: linear-gradient(
544
525
  180deg,
@@ -548,6 +529,8 @@ var ButtonVariantsStyles = import_styled_components.css`
548
529
  background-size: 100% 200%;
549
530
  background-position: 0% 50%;
550
531
 
532
+ color: var(--alpha-mono-white-80) !important;
533
+
551
534
  ::before {
552
535
  ${ButtonBeforeDefaultStyles}
553
536
  border-color: var(--tint-red-60);
@@ -567,7 +550,6 @@ var ButtonVariantsStyles = import_styled_components.css`
567
550
  }
568
551
  }
569
552
  &[data-variant="warning"] {
570
- color: var(--alpha-mono-dark-80);
571
553
  background-color: var(--color-orange);
572
554
  background: linear-gradient(
573
555
  180deg,
@@ -577,6 +559,8 @@ var ButtonVariantsStyles = import_styled_components.css`
577
559
  background-size: 100% 200%;
578
560
  background-position: 0% 50%;
579
561
 
562
+ color: var(--alpha-mono-dark-80) !important;
563
+
580
564
  ::before {
581
565
  ${ButtonBeforeDefaultStyles}
582
566
  border-color: var(--tint-orange-30);
@@ -653,7 +637,8 @@ var ButtonWrapper = import_styled_components.default.button`
653
637
  ${ButtonSizeStyles}
654
638
  ${ButtonShapeStyles}
655
639
  ${ButtonVariantsStyles}
656
- &[data-rawIcon="false"] {
640
+
641
+ &[data-rawIcon="false"] {
657
642
  ${ButtonIconStyles}
658
643
  }
659
644
  }
@@ -1163,6 +1148,28 @@ var BadgeVariantStyles = import_styled_components3.css`
1163
1148
  }
1164
1149
  }
1165
1150
  `;
1151
+ var BadgeEmphasisVariantStyles = import_styled_components3.css`
1152
+ &[data-variant="danger"] {
1153
+ background-color: var(--color-red) !important;
1154
+ color: var(--color-mono-white) !important;
1155
+ }
1156
+ &[data-variant="warning"] {
1157
+ background-color: var(--color-orange) !important;
1158
+ color: var(--color-mono-dark) !important;
1159
+ }
1160
+ &[data-variant="success"] {
1161
+ background-color: var(--color-green) !important;
1162
+ color: var(--color-mono-white) !important;
1163
+ }
1164
+ &[data-variant="meta"] {
1165
+ background-color: var(--color-blue) !important;
1166
+ color: var(--color-mono-white) !important;
1167
+ }
1168
+ &[data-variant="hint"] {
1169
+ background-color: var(--color-purple) !important;
1170
+ color: var(--color-mono-white) !important;
1171
+ }
1172
+ `;
1166
1173
  var BadgeShapeStyles = import_styled_components3.css`
1167
1174
  &[data-shape="square"] {
1168
1175
  border-radius: 0;
@@ -1200,6 +1207,10 @@ var BadgeWrapper2 = import_styled_components3.default.div`
1200
1207
  ${BadgeVariantStyles}
1201
1208
  ${BadgeShapeStyles}
1202
1209
  ${BadgeSizeStyles}
1210
+
1211
+ &[data-emphasis="true"] {
1212
+ ${BadgeEmphasisVariantStyles}
1213
+ }
1203
1214
  }
1204
1215
  `;
1205
1216
 
@@ -1207,6 +1218,7 @@ var BadgeWrapper2 = import_styled_components3.default.div`
1207
1218
  var Badge = (props) => {
1208
1219
  const {
1209
1220
  raw = false,
1221
+ emphasis = false,
1210
1222
  sizing = "small" /* Small */,
1211
1223
  variant = "primary" /* Primary */,
1212
1224
  shape = "smooth" /* Smooth */,
@@ -1220,6 +1232,7 @@ var Badge = (props) => {
1220
1232
  "data-variant": variant,
1221
1233
  "data-shape": shape,
1222
1234
  "data-size": sizing,
1235
+ "data-emphasis": emphasis,
1223
1236
  ...restProps
1224
1237
  },
1225
1238
  children
@@ -2164,8 +2177,6 @@ var DialogDefaultStyles = import_styled_components7.css`
2164
2177
  position: fixed;
2165
2178
  top: 15dvh;
2166
2179
  bottom: auto;
2167
- left: auto;
2168
- right: auto;
2169
2180
 
2170
2181
  padding: var(--measurement-medium-30);
2171
2182
  width: 100%;
@@ -2255,7 +2266,8 @@ var Dialog = (props) => {
2255
2266
  if (open && toggleDialog) toggleDialog();
2256
2267
  }, []);
2257
2268
  if (lock) useDisabledScroll(Boolean(states.open));
2258
- return /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, states.open && /* @__PURE__ */ import_react17.default.createElement(
2269
+ if (!states.open) return null;
2270
+ return /* @__PURE__ */ import_react17.default.createElement(
2259
2271
  ScrollArea,
2260
2272
  {
2261
2273
  as: DialogWrapper,
@@ -2270,7 +2282,7 @@ var Dialog = (props) => {
2270
2282
  ...restProps
2271
2283
  },
2272
2284
  children
2273
- ));
2285
+ );
2274
2286
  };
2275
2287
  Dialog.displayName = "Dialog";
2276
2288
  var DialogRoot = ({ children }) => {
@@ -2444,6 +2456,15 @@ var ContentWrapperSizes = import_styled_components9.css`
2444
2456
  max-width: var(--large);
2445
2457
  }
2446
2458
  `;
2459
+ var ContentWrapperVariants = import_styled_components9.css`
2460
+ &[data-variant="body"] {
2461
+ background-color: var(--body-color);
2462
+ }
2463
+
2464
+ &[data-variant="contrast"] {
2465
+ background-color: var(--contrast-color);
2466
+ }
2467
+ `;
2447
2468
  var RootWrapper = import_styled_components9.default.div`
2448
2469
  position: relative;
2449
2470
  `;
@@ -2470,13 +2491,14 @@ var ContentWrapper = import_styled_components9.default.ul`
2470
2491
  padding: var(--measurement-medium-30);
2471
2492
  margin: var(--measurement-medium-10) 0;
2472
2493
 
2473
- background-color: var(--body-color);
2474
2494
  border: var(--measurement-small-10) solid var(--font-color-alpha-10);
2475
2495
  border-radius: var(--measurement-medium-30);
2476
2496
 
2477
2497
  z-index: var(--depth-default-100);
2478
2498
 
2479
2499
  ${ContentWrapperSizes}
2500
+ ${ContentWrapperVariants}
2501
+
2480
2502
  animation-duration: 0.2s;
2481
2503
  animation-name: slide-in;
2482
2504
  animation-fill-mode: backwards;
@@ -2491,14 +2513,13 @@ var ItemWrapper2 = import_styled_components9.default.li`
2491
2513
  &[data-raw="false"] {
2492
2514
  padding: var(--measurement-medium-10) var(--measurement-medium-30);
2493
2515
  border-radius: var(--measurement-medium-20);
2516
+ color: var(--font-color);
2494
2517
 
2495
- text-align: left;
2496
- font-weight: 600;
2497
2518
  letter-spacing: calc(
2498
2519
  var(--fontsize-small-10) - ((var(--fontsize-small-10) * 1.066))
2499
2520
  );
2500
- font-size: var(--fontsize-medium-10);
2501
- color: var(--font-color);
2521
+ font-size: inherit;
2522
+ text-align: left;
2502
2523
 
2503
2524
  outline: none;
2504
2525
  cursor: pointer;
@@ -2510,7 +2531,7 @@ var ItemWrapper2 = import_styled_components9.default.li`
2510
2531
  &:active,
2511
2532
  &:focus-within,
2512
2533
  &:has(:active) {
2513
- background-color: var(--contrast-color);
2534
+ background-color: var(--font-color-alpha-10);
2514
2535
  }
2515
2536
  }
2516
2537
 
@@ -2575,7 +2596,14 @@ var DropdownMenuTrigger = (props) => {
2575
2596
  };
2576
2597
  DropdownMenuTrigger.displayName = "DropdownMenu.Trigger";
2577
2598
  var DropdownMenuContent = import_react19.default.forwardRef((props, _) => {
2578
- const { raw, sizing = "medium", defaultOpen, children, ...restProps } = props;
2599
+ const {
2600
+ raw,
2601
+ sizing = "medium" /* Medium */,
2602
+ variant = "body",
2603
+ defaultOpen,
2604
+ children,
2605
+ ...restProps
2606
+ } = props;
2579
2607
  const { id, states, methods } = useDropdownMenu();
2580
2608
  const { toggleOpen, setContentProps } = methods;
2581
2609
  const mounted = import_react19.default.useRef(false);
@@ -2641,6 +2669,7 @@ var DropdownMenuContent = import_react19.default.forwardRef((props, _) => {
2641
2669
  "aria-labelledby": id.split("|").at(0),
2642
2670
  "data-state": applyDataState(Boolean(states.open)),
2643
2671
  "data-sizing": sizing,
2672
+ "data-variant": variant,
2644
2673
  "data-side": hasEnoughHorizontalSpace ? "left" /* Left */ : "right" /* Right */,
2645
2674
  "data-align": hasEnoughHorizontalSpace ? "left" /* Left */ : "right" /* Right */,
2646
2675
  "data-raw": Boolean(raw),
@@ -3022,12 +3051,8 @@ var InnerWrapper = import_styled_components10.default.div`
3022
3051
  display: flex;
3023
3052
  flex-direction: column;
3024
3053
 
3025
- right: 0;
3026
- &[data-multiple="true"] {
3027
- right: var(--measurement-small-10) !important;
3028
- }
3029
-
3030
3054
  top: var(--measurement-small-10);
3055
+ right: var(--measurement-small-10);
3031
3056
  bottom: var(--measurement-small-10);
3032
3057
 
3033
3058
  border-left: var(--measurement-small-10) solid var(--font-color-alpha-10);
@@ -3038,7 +3063,6 @@ var InnerWrapper = import_styled_components10.default.div`
3038
3063
  &[data-error="true"] {
3039
3064
  border-color: var(--alpha-red-10) !important;
3040
3065
  }
3041
-
3042
3066
  &[data-shape="round"] {
3043
3067
  border-radius: 0 var(--measurement-large-90) var(--measurement-large-90) 0;
3044
3068
  }
@@ -3064,16 +3088,7 @@ var InnerTrigger = import_styled_components10.default.button`
3064
3088
  padding: 0 var(--measurement-medium-40);
3065
3089
 
3066
3090
  color: var(--font-color-alpha-60);
3067
-
3068
- background-color: var(--body-color);
3069
- background: linear-gradient(
3070
- 180deg,
3071
- transparent 50%,
3072
- var(--font-color-alpha-10) 100%
3073
- );
3074
- background-size: 100% 200%;
3075
- background-position: 0% 0%;
3076
- backdrop-filter: blur(var(--measurement-medium-10));
3091
+ backdrop-filter: blur(var(--measurement-small-60));
3077
3092
 
3078
3093
  cursor: pointer;
3079
3094
  transition: all ease-in-out 0.2s;
@@ -3083,7 +3098,7 @@ var InnerTrigger = import_styled_components10.default.button`
3083
3098
  transition: all ease-in-out 0.2s;
3084
3099
  }
3085
3100
 
3086
- ::before {
3101
+ /* ::before {
3087
3102
  content: "";
3088
3103
  inset: 0;
3089
3104
 
@@ -3097,12 +3112,12 @@ var InnerTrigger = import_styled_components10.default.button`
3097
3112
 
3098
3113
  transition: all ease-in-out 0.2s;
3099
3114
  mask-image: linear-gradient(var(--font-color), transparent);
3100
- }
3115
+ } */
3101
3116
 
3102
3117
  &:hover,
3103
3118
  &:active {
3104
3119
  color: var(--font-color);
3105
- background-position: 0% 50%;
3120
+ /* background-position: 0% 50%; */
3106
3121
 
3107
3122
  svg {
3108
3123
  opacity: 0.8;
@@ -3121,7 +3136,7 @@ var InnerSegment = import_styled_components10.default.span`
3121
3136
  text-align: center;
3122
3137
  outline: none;
3123
3138
  color: inherit;
3124
- transition: background-color ease-in-out 0.2s;
3139
+ /* transition: background-color ease-in-out 0.2s; */
3125
3140
 
3126
3141
  &[data-placeholder="true"] {
3127
3142
  color: var(--font-color-alpha-30);
@@ -3132,7 +3147,7 @@ var InnerSegment = import_styled_components10.default.span`
3132
3147
  &:active,
3133
3148
  &:focus-within,
3134
3149
  &:has(:active) {
3135
- background-color: var(--font-color-alpha-10);
3150
+ /* background-color: var(--font-color-alpha-10); */
3136
3151
  color: var(--font-color);
3137
3152
  }
3138
3153
  }
@@ -4029,7 +4044,7 @@ var MessageBubble = (props) => {
4029
4044
  };
4030
4045
  MessageBubble.displayName = "MessageBubble";
4031
4046
  var MessageBubbleContent = (props) => {
4032
- const { sizing, shape, variant, children, raw, ...restProps } = props;
4047
+ const { emphasis, sizing, shape, variant, children, raw, ...restProps } = props;
4033
4048
  const { id, states } = useMessageBubble();
4034
4049
  return /* @__PURE__ */ import_react23.default.createElement(
4035
4050
  MessageBubbleBadge,
@@ -4037,8 +4052,9 @@ var MessageBubbleContent = (props) => {
4037
4052
  "data-raw": Boolean(raw),
4038
4053
  "data-side": states?.side,
4039
4054
  variant: variant ?? "border" /* Border */,
4040
- shape: shape ?? "smooth" /* Smooth */,
4055
+ shape: shape ?? "round" /* Round */,
4041
4056
  sizing: sizing ?? "medium" /* Medium */,
4057
+ emphasis,
4042
4058
  "aria-label": `message-bubble-content-${id}`,
4043
4059
  ...restProps
4044
4060
  },
@@ -4692,7 +4708,8 @@ var SplitContainer = import_styled_components16.default.div`
4692
4708
  `;
4693
4709
  var Panel = import_styled_components16.default.div`
4694
4710
  overflow: hidden;
4695
- width: ${(props) => props.width}%;
4711
+ width: ${(props) => props.width}dvw;
4712
+ min-width: var(--measurement-large-60);
4696
4713
  `;
4697
4714
  var Divider2 = import_styled_components16.default.div`
4698
4715
  width: var(--measurement-medium-10);
@@ -4748,6 +4765,8 @@ var DragOverlay = import_styled_components16.default.div`
4748
4765
  // src/resizable/index.tsx
4749
4766
  var Resizable = ({
4750
4767
  defaultWidth,
4768
+ minWidth,
4769
+ maxWidth,
4751
4770
  left,
4752
4771
  right
4753
4772
  }) => {
@@ -4761,7 +4780,7 @@ var Resizable = ({
4761
4780
  if (!isDragging || !containerRef.current) return;
4762
4781
  const containerRect = containerRef.current.getBoundingClientRect();
4763
4782
  const newLeftWidth = (e.clientX - containerRect.left) / containerRect.width * 100;
4764
- const threshold = { min: 30, max: 70 };
4783
+ const threshold = { min: minWidth ?? 30, max: maxWidth ?? 70 };
4765
4784
  const constrainedWidth = Math.min(
4766
4785
  Math.max(newLeftWidth, threshold.min),
4767
4786
  threshold.max
@@ -6250,235 +6269,23 @@ var Tooltip = ({
6250
6269
  };
6251
6270
  Tooltip.displayName = "Tooltip";
6252
6271
 
6253
- // src/tree/index.tsx
6254
- var import_react48 = __toESM(require("react"));
6255
-
6256
- // src/tree/hooks/tree-provider.tsx
6257
- var import_react46 = __toESM(require("react"));
6258
- var defaultTreeAPI = {
6259
- id: "",
6260
- states: {},
6261
- methods: {}
6262
- };
6263
- var TreeContext = (0, import_react46.createContext)(defaultTreeAPI);
6264
- var useTree = () => (0, import_react46.useContext)(TreeContext);
6265
- var TreeProvider = ({
6266
- children,
6267
- defaultExpandedIds = [],
6268
- onSelectionChange
6269
- }) => {
6270
- const context = useTreeProviderContext({
6271
- defaultExpandedIds,
6272
- onSelectionChange
6273
- });
6274
- return /* @__PURE__ */ import_react46.default.createElement(TreeContext.Provider, { value: context }, children);
6275
- };
6276
- function useTreeProviderContext({
6277
- defaultExpandedIds,
6278
- onSelectionChange
6279
- }) {
6280
- const treeId = import_react46.default.useId();
6281
- const [expandedIds, setExpandedIds] = (0, import_react46.useState)(
6282
- () => new Set(defaultExpandedIds)
6283
- );
6284
- const [selectedIds, setSelectedIds] = (0, import_react46.useState)(() => /* @__PURE__ */ new Set());
6285
- return {
6286
- id: treeId,
6287
- states: {
6288
- expandedIds,
6289
- selectedIds
6290
- },
6291
- methods: {
6292
- isExpanded: (id) => expandedIds.has(id),
6293
- isSelected: (id) => selectedIds.has(id),
6294
- toggleExpanded: (id) => {
6295
- setExpandedIds((prev) => {
6296
- const next = new Set(prev);
6297
- next.has(id) ? next.delete(id) : next.add(id);
6298
- return next;
6299
- });
6300
- },
6301
- toggleSelected: (id) => {
6302
- setSelectedIds((prev) => {
6303
- const next = new Set(prev);
6304
- next.has(id) ? next.delete(id) : next.add(id);
6305
- onSelectionChange?.(Array.from(next));
6306
- return next;
6307
- });
6308
- },
6309
- getTreeId: ({ nodeId, type }) => `${treeId}-${type}-${nodeId}`
6310
- }
6311
- };
6312
- }
6313
-
6314
- // src/tree/hooks/tree-node-provider.tsx
6315
- var import_react47 = __toESM(require("react"));
6316
- var defaultTreeNodeAPI = {
6317
- id: "",
6318
- states: {},
6319
- methods: {}
6320
- };
6321
- var TreeNodeContext = (0, import_react47.createContext)(defaultTreeNodeAPI);
6322
- var useTreeNode = () => (0, import_react47.useContext)(TreeNodeContext);
6323
- var TreeNodeProvider = ({
6324
- children,
6325
- nodeId,
6326
- level,
6327
- isLast
6328
- }) => {
6329
- const context = useTreeNodeProviderContext({ nodeId, level, isLast });
6330
- return /* @__PURE__ */ import_react47.default.createElement(TreeNodeContext.Provider, { value: context }, children);
6331
- };
6332
- function useTreeNodeProviderContext({
6333
- nodeId,
6334
- level,
6335
- isLast
6336
- }) {
6337
- return {
6338
- id: nodeId,
6339
- states: {
6340
- nodeId,
6341
- level,
6342
- isLast
6343
- },
6344
- methods: {}
6345
- };
6346
- }
6347
-
6348
- // src/tree/styles/index.ts
6349
- var import_styled_components27 = __toESM(require("styled-components"));
6350
- var TreeView = import_styled_components27.default.ul`
6351
- display: flex;
6352
- flex-direction: column;
6353
- list-style: none;
6354
- margin: 0;
6355
- padding: 0;
6356
- `;
6357
- var TreeItem = import_styled_components27.default.li`
6358
- display: flex;
6359
- flex-direction: column;
6360
- list-style: none;
6361
- `;
6362
- var TreeNodeContent = import_styled_components27.default.ul`
6363
- display: flex;
6364
- flex-direction: column;
6365
- list-style: none;
6366
- margin: 0;
6367
- padding: 0;
6368
- `;
6369
-
6370
- // src/tree/index.tsx
6371
- var Tree = (props) => {
6372
- const { children, ...restProps } = props;
6373
- const { id } = useTree();
6374
- return /* @__PURE__ */ import_react48.default.createElement(TreeView, { id, role: "tree", ...restProps }, children);
6375
- };
6376
- Tree.displayName = "Tree";
6377
- var TreeRoot = ({
6378
- children,
6379
- defaultExpandedIds,
6380
- onSelectionChange
6381
- }) => {
6382
- return /* @__PURE__ */ import_react48.default.createElement(
6383
- TreeProvider,
6384
- {
6385
- defaultExpandedIds,
6386
- onSelectionChange
6387
- },
6388
- children
6389
- );
6390
- };
6391
- TreeRoot.displayName = "Tree.Root";
6392
- var TreeNode = (props) => {
6393
- const { nodeId, level = 0, isLast = false, children, ...restProps } = props;
6394
- return /* @__PURE__ */ import_react48.default.createElement(TreeNodeProvider, { nodeId, level, isLast }, /* @__PURE__ */ import_react48.default.createElement(TreeItem, { role: "treeitem", "aria-level": level + 1, ...restProps }, children));
6395
- };
6396
- TreeNode.displayName = "Tree.Node";
6397
- var TreeTrigger = (props) => {
6398
- const { nodeId, disabled, onClick, children, ...restProps } = props;
6399
- const { methods } = useTree();
6400
- const { getTreeId, toggleExpanded, toggleSelected } = methods;
6401
- const isExpanded = methods.isExpanded && methods.isExpanded(nodeId);
6402
- const isSelected = methods.isSelected && methods.isSelected(nodeId);
6403
- const IdHandler = {
6404
- trigger: getTreeId && getTreeId({ nodeId, type: "trigger" }),
6405
- content: getTreeId && getTreeId({ nodeId, type: "content" })
6406
- };
6407
- const { states: nodeStates } = useTreeNode();
6408
- const level = nodeStates.level ?? 0;
6409
- const handleClick = (event) => {
6410
- if (!disabled) {
6411
- onClick && onClick(event);
6412
- toggleExpanded && toggleExpanded(nodeId);
6413
- toggleSelected && toggleSelected(nodeId);
6414
- }
6415
- };
6416
- return /* @__PURE__ */ import_react48.default.createElement(
6417
- Button,
6418
- {
6419
- id: String(IdHandler.trigger),
6420
- disabled: disabled ?? false,
6421
- onClick: handleClick,
6422
- "data-state": isExpanded ? "expanded" : "collapsed",
6423
- "data-selected": isSelected || void 0,
6424
- variant: props.variant ?? "ghost" /* Ghost */,
6425
- style: { paddingLeft: `calc(${level} * 1rem + 0.5rem)` },
6426
- rawicon: true,
6427
- ...restProps
6428
- },
6429
- children
6430
- );
6431
- };
6432
- TreeTrigger.displayName = "Tree.Trigger";
6433
- var TreeContent = (props) => {
6434
- const { nodeId, defaultOpen = false, children, ...restProps } = props;
6435
- const { methods } = useTree();
6436
- const { getTreeId, toggleExpanded } = methods;
6437
- const isExpanded = methods.isExpanded && methods.isExpanded(nodeId);
6438
- const IdHandler = {
6439
- trigger: getTreeId && getTreeId({ nodeId, type: "trigger" }),
6440
- content: getTreeId && getTreeId({ nodeId, type: "content" })
6441
- };
6442
- import_react48.default.useEffect(() => {
6443
- if (defaultOpen && !isExpanded && toggleExpanded) toggleExpanded(nodeId);
6444
- }, []);
6445
- if (isExpanded)
6446
- return /* @__PURE__ */ import_react48.default.createElement(
6447
- TreeNodeContent,
6448
- {
6449
- role: "group",
6450
- id: String(IdHandler.content),
6451
- "aria-labelledby": String(IdHandler.trigger),
6452
- "data-nodeId": nodeId,
6453
- ...restProps
6454
- },
6455
- children
6456
- );
6457
- return /* @__PURE__ */ import_react48.default.createElement(import_react48.default.Fragment, null);
6458
- };
6459
- TreeContent.displayName = "Tree.Content";
6460
- Tree.Root = TreeRoot;
6461
- Tree.Node = TreeNode;
6462
- Tree.Trigger = TreeTrigger;
6463
- Tree.Content = TreeContent;
6464
-
6465
6272
  // src/select/index.tsx
6466
- var import_react50 = __toESM(require("react"));
6273
+ var import_react47 = __toESM(require("react"));
6467
6274
 
6468
6275
  // src/select/hooks/index.tsx
6469
- var import_react49 = __toESM(require("react"));
6276
+ var import_react46 = __toESM(require("react"));
6470
6277
  var defaultComponentAPI10 = {
6471
6278
  id: "",
6472
6279
  states: {},
6473
6280
  methods: {}
6474
6281
  };
6475
- var SelectContext = import_react49.default.createContext(defaultComponentAPI10);
6476
- var useSelect = () => import_react49.default.useContext(SelectContext);
6282
+ var SelectContext = import_react46.default.createContext(defaultComponentAPI10);
6283
+ var useSelect = () => import_react46.default.useContext(SelectContext);
6477
6284
  var SelectProvider = ({
6478
6285
  children
6479
6286
  }) => {
6480
6287
  const context = useSelectProvider();
6481
- return /* @__PURE__ */ import_react49.default.createElement(SelectContext.Provider, { value: context }, children);
6288
+ return /* @__PURE__ */ import_react46.default.createElement(SelectContext.Provider, { value: context }, children);
6482
6289
  };
6483
6290
  function useSelectProvider() {
6484
6291
  const DEFAULT_POSITIONS2 = {
@@ -6491,19 +6298,19 @@ function useSelectProvider() {
6491
6298
  width: 0,
6492
6299
  height: 0
6493
6300
  };
6494
- const [open, setOpen] = import_react49.default.useState(false);
6495
- const [value, setValue] = import_react49.default.useState(null);
6496
- const [label, setLabel] = import_react49.default.useState("");
6497
- const [contentProps, setContentProps] = import_react49.default.useState({
6301
+ const [open, setOpen] = import_react46.default.useState(false);
6302
+ const [value, setValue] = import_react46.default.useState(null);
6303
+ const [label, setLabel] = import_react46.default.useState("");
6304
+ const [contentProps, setContentProps] = import_react46.default.useState({
6498
6305
  ...DEFAULT_POSITIONS2,
6499
6306
  ...DEFAULT_DIMENSIONS2
6500
6307
  });
6501
- const [triggerProps, setTriggerProps] = import_react49.default.useState({
6308
+ const [triggerProps, setTriggerProps] = import_react46.default.useState({
6502
6309
  ...DEFAULT_POSITIONS2,
6503
6310
  ...DEFAULT_DIMENSIONS2
6504
6311
  });
6505
- const triggerId = import_react49.default.useId();
6506
- const listboxId = import_react49.default.useId();
6312
+ const triggerId = import_react46.default.useId();
6313
+ const listboxId = import_react46.default.useId();
6507
6314
  const composedId = `${triggerId}|${listboxId}`;
6508
6315
  return {
6509
6316
  id: composedId,
@@ -6526,12 +6333,12 @@ function useSelectProvider() {
6526
6333
  }
6527
6334
 
6528
6335
  // src/select/styles/index.tsx
6529
- var import_styled_components28 = __toESM(require("styled-components"));
6530
- var Wrapper = import_styled_components28.default.div`
6336
+ var import_styled_components27 = __toESM(require("styled-components"));
6337
+ var Wrapper = import_styled_components27.default.div`
6531
6338
  position: relative;
6532
6339
  width: 100%;
6533
6340
  `;
6534
- var Trigger = import_styled_components28.default.button`
6341
+ var Trigger = import_styled_components27.default.button`
6535
6342
  all: unset;
6536
6343
  box-sizing: border-box;
6537
6344
 
@@ -6549,7 +6356,7 @@ var Trigger = import_styled_components28.default.button`
6549
6356
 
6550
6357
  cursor: pointer !important;
6551
6358
  `;
6552
- var Label2 = import_styled_components28.default.span`
6359
+ var Label2 = import_styled_components27.default.span`
6553
6360
  flex: 1;
6554
6361
  text-align: left;
6555
6362
  font-weight: 400;
@@ -6557,7 +6364,7 @@ var Label2 = import_styled_components28.default.span`
6557
6364
  overflow: hidden;
6558
6365
  text-overflow: ellipsis;
6559
6366
  `;
6560
- var Content = import_styled_components28.default.ul`
6367
+ var Content = import_styled_components27.default.ul`
6561
6368
  @keyframes select-slide-in-down {
6562
6369
  0% {
6563
6370
  opacity: 0;
@@ -6611,7 +6418,7 @@ var Content = import_styled_components28.default.ul`
6611
6418
  }
6612
6419
  }
6613
6420
  `;
6614
- var List = import_styled_components28.default.li`
6421
+ var List = import_styled_components27.default.li`
6615
6422
  list-style: none;
6616
6423
  padding: 0;
6617
6424
  margin: 0;
@@ -6660,7 +6467,7 @@ var List = import_styled_components28.default.li`
6660
6467
  opacity: 0.6;
6661
6468
  }
6662
6469
  `;
6663
- var Item = import_styled_components28.default.span`
6470
+ var Item = import_styled_components27.default.span`
6664
6471
  display: flex;
6665
6472
  align-items: center;
6666
6473
  gap: var(--measurement-small-60);
@@ -6672,11 +6479,11 @@ var Item = import_styled_components28.default.span`
6672
6479
 
6673
6480
  // src/select/index.tsx
6674
6481
  var SelectRoot = ({ children }) => {
6675
- return /* @__PURE__ */ import_react50.default.createElement(SelectProvider, null, children);
6482
+ return /* @__PURE__ */ import_react47.default.createElement(SelectProvider, null, children);
6676
6483
  };
6677
6484
  SelectRoot.displayName = "Select.Root";
6678
6485
  var Select = ({ children }) => {
6679
- const selectRef = import_react50.default.useRef(null);
6486
+ const selectRef = import_react47.default.useRef(null);
6680
6487
  const { states, methods } = useSelect();
6681
6488
  const handleClickOutside = () => {
6682
6489
  if (states.open && methods.setOpen) {
@@ -6687,7 +6494,7 @@ var Select = ({ children }) => {
6687
6494
  selectRef,
6688
6495
  handleClickOutside
6689
6496
  );
6690
- return /* @__PURE__ */ import_react50.default.createElement(Wrapper, { ref: selectRef }, children);
6497
+ return /* @__PURE__ */ import_react47.default.createElement(Wrapper, { ref: selectRef }, children);
6691
6498
  };
6692
6499
  Select.displayName = "Select";
6693
6500
  var SelectTrigger = (props) => {
@@ -6701,7 +6508,7 @@ var SelectTrigger = (props) => {
6701
6508
  children,
6702
6509
  ...restProps
6703
6510
  } = props;
6704
- const triggerRef = import_react50.default.useRef(null);
6511
+ const triggerRef = import_react47.default.useRef(null);
6705
6512
  const triggerRect = () => triggerRef.current?.getBoundingClientRect();
6706
6513
  const { id, states, methods } = useSelect();
6707
6514
  const { toggleOpen, setTriggerProps } = methods;
@@ -6719,7 +6526,7 @@ var SelectTrigger = (props) => {
6719
6526
  });
6720
6527
  }
6721
6528
  };
6722
- return /* @__PURE__ */ import_react50.default.createElement(
6529
+ return /* @__PURE__ */ import_react47.default.createElement(
6723
6530
  Trigger,
6724
6531
  {
6725
6532
  ref: triggerRef,
@@ -6739,7 +6546,7 @@ var SelectTrigger = (props) => {
6739
6546
  disabled,
6740
6547
  ...restProps
6741
6548
  },
6742
- /* @__PURE__ */ import_react50.default.createElement(Label2, null, children)
6549
+ /* @__PURE__ */ import_react47.default.createElement(Label2, null, children)
6743
6550
  );
6744
6551
  };
6745
6552
  SelectTrigger.displayName = "Select.Trigger";
@@ -6747,8 +6554,8 @@ var SelectContent = (props) => {
6747
6554
  const { raw, defaultOpen, children, ...restProps } = props;
6748
6555
  const { id, states, methods } = useSelect();
6749
6556
  const { toggleOpen, setContentProps } = methods;
6750
- const mounted = import_react50.default.useRef(false);
6751
- const contentRef = import_react50.default.useRef(null);
6557
+ const mounted = import_react47.default.useRef(false);
6558
+ const contentRef = import_react47.default.useRef(null);
6752
6559
  const contentRect = () => contentRef?.current?.getBoundingClientRect();
6753
6560
  const bodyRect = () => {
6754
6561
  if (typeof document !== "undefined") {
@@ -6766,10 +6573,10 @@ var SelectContent = (props) => {
6766
6573
  content_bottom: states.contentProps.bottom
6767
6574
  };
6768
6575
  const hasEnoughVerticalSpace = dimensions.body_height - dimensions.content_bottom > dimensions.content_height - dimensions.content_height * 0.9;
6769
- import_react50.default.useEffect(() => {
6576
+ import_react47.default.useEffect(() => {
6770
6577
  if (defaultOpen && toggleOpen) toggleOpen();
6771
6578
  }, []);
6772
- import_react50.default.useEffect(() => {
6579
+ import_react47.default.useEffect(() => {
6773
6580
  mounted.current = true;
6774
6581
  if (setContentProps) {
6775
6582
  setContentProps({
@@ -6785,7 +6592,7 @@ var SelectContent = (props) => {
6785
6592
  mounted.current = false;
6786
6593
  };
6787
6594
  }, [states.open]);
6788
- import_react50.default.useEffect(() => {
6595
+ import_react47.default.useEffect(() => {
6789
6596
  if (!states.open) return;
6790
6597
  const handleKeyDown = (event) => {
6791
6598
  if (event.key === "Escape" && methods.setOpen) {
@@ -6796,7 +6603,7 @@ var SelectContent = (props) => {
6796
6603
  return () => document.removeEventListener("keydown", handleKeyDown);
6797
6604
  }, [states.open]);
6798
6605
  if (!states.open) return null;
6799
- return /* @__PURE__ */ import_react50.default.createElement(
6606
+ return /* @__PURE__ */ import_react47.default.createElement(
6800
6607
  ScrollArea,
6801
6608
  {
6802
6609
  scrollbar: true,
@@ -6836,7 +6643,7 @@ var SelectItem = (props) => {
6836
6643
  handleSelect(event);
6837
6644
  }
6838
6645
  };
6839
- return /* @__PURE__ */ import_react50.default.createElement(
6646
+ return /* @__PURE__ */ import_react47.default.createElement(
6840
6647
  List,
6841
6648
  {
6842
6649
  role: "option",
@@ -6850,7 +6657,7 @@ var SelectItem = (props) => {
6850
6657
  onKeyDown: handleKeyDown,
6851
6658
  ...restProps
6852
6659
  },
6853
- /* @__PURE__ */ import_react50.default.createElement(Item, null, children)
6660
+ /* @__PURE__ */ import_react47.default.createElement(Item, null, children)
6854
6661
  );
6855
6662
  };
6856
6663
  SelectItem.displayName = "Select.Item";
@@ -6957,11 +6764,6 @@ Select.Item = SelectItem;
6957
6764
  ToolbarSection,
6958
6765
  ToolbarTrigger,
6959
6766
  Tooltip,
6960
- Tree,
6961
- TreeContent,
6962
- TreeNode,
6963
- TreeRoot,
6964
- TreeTrigger,
6965
6767
  useAccordion,
6966
6768
  useCheckbox,
6967
6769
  useCollapsible,
@@ -6973,7 +6775,5 @@ Select.Item = SelectItem;
6973
6775
  useSheet,
6974
6776
  useSwitch,
6975
6777
  useTabs,
6976
- useToolbar,
6977
- useTree,
6978
- useTreeNode
6778
+ useToolbar
6979
6779
  });