@usefui/components 1.5.1 → 1.5.3

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 (42) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/index.d.mts +237 -9
  3. package/dist/index.d.ts +237 -9
  4. package/dist/index.js +1095 -311
  5. package/dist/index.mjs +1049 -278
  6. package/package.json +6 -6
  7. package/src/avatar/index.tsx +1 -1
  8. package/src/badge/index.tsx +3 -3
  9. package/src/breadcrumb/Breadcrumb.stories.tsx +36 -0
  10. package/src/breadcrumb/index.tsx +117 -0
  11. package/src/breadcrumb/styles/index.ts +19 -0
  12. package/src/button/Button.stories.tsx +80 -8
  13. package/src/button/index.tsx +67 -5
  14. package/src/button/styles/index.ts +82 -10
  15. package/src/card/Card.stories.tsx +57 -0
  16. package/src/card/index.tsx +55 -0
  17. package/src/card/styles/index.ts +72 -0
  18. package/src/copy-button/CopyButton.stories.tsx +29 -0
  19. package/src/copy-button/index.tsx +101 -0
  20. package/src/dialog/index.tsx +1 -1
  21. package/src/dropdown/index.tsx +1 -1
  22. package/src/field/Field.stories.tsx +39 -8
  23. package/src/field/index.tsx +5 -0
  24. package/src/field/styles/index.ts +38 -12
  25. package/src/index.ts +8 -0
  26. package/src/page/index.tsx +1 -1
  27. package/src/privacy-field/PrivacyField.stories.tsx +29 -0
  28. package/src/privacy-field/index.tsx +56 -0
  29. package/src/privacy-field/styles/index.ts +17 -0
  30. package/src/resizable/Resizable.stories.tsx +40 -0
  31. package/src/resizable/index.tsx +108 -0
  32. package/src/resizable/styles/index.ts +65 -0
  33. package/src/skeleton/Skeleton.stories.tsx +32 -0
  34. package/src/skeleton/index.tsx +43 -0
  35. package/src/skeleton/styles/index.ts +56 -0
  36. package/src/spinner/Spinner.stories.tsx +27 -0
  37. package/src/spinner/index.tsx +19 -0
  38. package/src/spinner/styles/index.ts +43 -0
  39. package/src/text-area/Textarea.stories.tsx +32 -0
  40. package/src/text-area/index.tsx +78 -0
  41. package/src/text-area/styles/index.ts +84 -0
  42. package/src/tooltip/index.tsx +4 -3
package/dist/index.js CHANGED
@@ -37,7 +37,14 @@ __export(index_exports, {
37
37
  AvataStatusEnum: () => AvataStatusEnum,
38
38
  Avatar: () => Avatar,
39
39
  Badge: () => Badge,
40
+ Breadcrumb: () => Breadcrumb,
41
+ BreadcrumbItem: () => BreadcrumbItem,
42
+ BreadcrumbSeparator: () => BreadcrumbSeparator,
40
43
  Button: () => Button,
44
+ Card: () => Card,
45
+ CardBody: () => CardBody,
46
+ CardGrid: () => CardGrid,
47
+ CardMeta: () => CardMeta,
41
48
  Checkbox: () => Checkbox,
42
49
  CheckboxIndicator: () => CheckboxIndicator,
43
50
  CheckboxRoot: () => CheckboxRoot,
@@ -45,6 +52,7 @@ __export(index_exports, {
45
52
  CollapsibleContent: () => CollapsibleContent,
46
53
  CollapsibleRoot: () => CollapsibleRoot,
47
54
  CollapsibleTrigger: () => CollapsibleTrigger,
55
+ CopyButton: () => CopyButton,
48
56
  Dialog: () => Dialog,
49
57
  DialogControl: () => DialogControl,
50
58
  DialogMenu: () => DialogMenu,
@@ -74,10 +82,14 @@ __export(index_exports, {
74
82
  PageTools: () => PageTools,
75
83
  PageWrapper: () => PageWrapper,
76
84
  Portal: () => Portal,
85
+ PrivacyField: () => PrivacyField,
86
+ Resizable: () => Resizable,
77
87
  ScrollArea: () => ScrollArea,
78
88
  Sheet: () => Sheet,
79
89
  SheetRoot: () => SheetRoot,
80
90
  SheetTrigger: () => SheetTrigger,
91
+ Skeleton: () => Skeleton,
92
+ Spinner: () => Spinner,
81
93
  Switch: () => Switch,
82
94
  SwitchRoot: () => SwitchRoot,
83
95
  SwitchThumb: () => SwitchThumb,
@@ -92,6 +104,7 @@ __export(index_exports, {
92
104
  TabsContent: () => TabsContent,
93
105
  TabsRoot: () => TabsRoot,
94
106
  TabsTrigger: () => TabsTrigger,
107
+ Textarea: () => Textarea,
95
108
  Toggle: () => Toggle,
96
109
  Toolbar: () => Toolbar,
97
110
  ToolbarItem: () => ToolbarItem,
@@ -176,6 +189,11 @@ var ButtonDefaultStyles = import_styled_components.css`
176
189
  opacity: 0.6;
177
190
  }
178
191
 
192
+ svg,
193
+ span {
194
+ transition: all 0.2s ease-in-out;
195
+ }
196
+
179
197
  &:hover,
180
198
  &:focus,
181
199
  &:active {
@@ -228,19 +246,19 @@ var ButtonVariantsStyles = import_styled_components.css`
228
246
  }
229
247
  &[data-variant="secondary"] {
230
248
  color: var(--font-color-alpha-60);
231
- background-color: var(--body-color);
249
+ background-color: transparent;
232
250
  border-color: var(--font-color-alpha-10);
233
251
 
234
252
  &:hover,
235
253
  &:focus,
236
254
  &:active {
237
255
  color: var(--font-color);
238
- border-color: var(--font-color-alpha-30);
256
+ background-color: var(--font-color-alpha-10);
257
+ border-color: transparent;
239
258
  }
240
259
  }
241
260
  &[data-variant="tertiary"] {
242
- color: var(--font-color-alpha-60);
243
- border-color: var(--font-color-alpha-10);
261
+ color: var(--font-color-alpha-80);
244
262
  background-color: transparent;
245
263
 
246
264
  &:hover,
@@ -248,7 +266,6 @@ var ButtonVariantsStyles = import_styled_components.css`
248
266
  &:active {
249
267
  color: var(--font-color);
250
268
  background-color: var(--font-color-alpha-10);
251
- border-color: transparent;
252
269
  }
253
270
  }
254
271
  &[data-variant="border"] {
@@ -260,6 +277,27 @@ var ButtonVariantsStyles = import_styled_components.css`
260
277
  &:focus,
261
278
  &:active {
262
279
  color: var(--font-color);
280
+ border-color: var(--font-color-alpha-20);
281
+ }
282
+ }
283
+ &[data-variant="danger"] {
284
+ color: var(--color-mono-white);
285
+ background-color: var(--color-red);
286
+
287
+ &:hover,
288
+ &:focus,
289
+ &:active {
290
+ background-color: var(--shade-red-10);
291
+ }
292
+ }
293
+ &[data-variant="warning"] {
294
+ color: var(--color-mono-dark);
295
+ background-color: var(--color-orange);
296
+
297
+ &:hover,
298
+ &:focus,
299
+ &:active {
300
+ background-color: var(--shade-orange-10);
263
301
  }
264
302
  }
265
303
  &[data-variant="mono"] {
@@ -290,8 +328,7 @@ var ButtonVariantsStyles = import_styled_components.css`
290
328
  `;
291
329
  var ButtonSizeStyles = import_styled_components.css`
292
330
  &[data-size="small"] {
293
- border-radius: var(--measurement-medium-20);
294
- font-size: var(--fontsize-medium-10);
331
+ font-size: var(--fontsize-small-60);
295
332
 
296
333
  gap: var(--measurement-medium-10);
297
334
  padding: var(--measurement-medium-10) var(--measurement-medium-30);
@@ -304,39 +341,83 @@ var ButtonSizeStyles = import_styled_components.css`
304
341
  }
305
342
  }
306
343
  &[data-size="medium"] {
307
- border-radius: var(--measurement-medium-30);
308
344
  padding: var(--measurement-medium-10) var(--measurement-medium-60);
309
345
  min-width: var(--measurement-medium-90);
310
346
  min-height: var(--measurement-medium-80);
311
347
  }
312
348
  &[data-size="large"] {
313
- border-radius: var(--measurement-medium-30);
314
349
  padding: var(--measurement-medium-10) var(--measurement-medium-60);
315
350
  min-width: var(--measurement-medium-90);
316
351
  min-height: var(--measurement-medium-90);
317
352
  }
318
353
  `;
354
+ var ButtonShapeStyles = import_styled_components.css`
355
+ &[data-shape="square"] {
356
+ border-radius: 0;
357
+ }
358
+ &[data-shape="smooth"] {
359
+ border-radius: var(--measurement-medium-20);
360
+ }
361
+ &[data-shape="round"] {
362
+ border-radius: var(--measurement-large-90);
363
+ }
364
+ `;
319
365
  var ButtonWrapper = import_styled_components.default.button`
320
366
  &[data-raw="false"] {
321
367
  ${ButtonDefaultStyles}
322
368
  ${ButtonSizeStyles}
369
+ ${ButtonShapeStyles}
323
370
  ${ButtonVariantsStyles}
324
-
325
371
  &[data-rawIcon="false"] {
326
372
  ${ButtonIconStyles}
327
373
  }
328
374
  }
329
375
  `;
376
+ var ButtonOverlay = import_styled_components.default.div`
377
+ position: absolute;
378
+ inset: -1px;
379
+ pointer-events: none;
380
+ opacity: ${(props) => props.$isHovering ? 1 : 0};
381
+ background: transparent;
382
+ transition: opacity 0.2s ease-in-out;
383
+
384
+ ${ButtonShapeStyles}
385
+ `;
386
+ var ButtonMaskElement = import_styled_components.default.div`
387
+ position: absolute;
388
+ inset: 0;
389
+ background: transparent;
390
+ border: var(--measurement-small-10) solid var(--font-color-alpha-20);
391
+ clip-path: inset(0 round var(--measurement-medium-30));
392
+
393
+ mask-image: radial-gradient(
394
+ circle at ${(props) => props.$mouseX}% ${(props) => props.$mouseY}%,
395
+ var(--body-color),
396
+ transparent 100%
397
+ );
398
+ -webkit-mask-image: radial-gradient(
399
+ circle at ${(props) => props.$mouseX}% ${(props) => props.$mouseY}%,
400
+ var(--body-color),
401
+ transparent 100%
402
+ );
403
+
404
+ ${ButtonShapeStyles}
405
+ `;
330
406
 
331
407
  // src/button/index.tsx
332
408
  var Button = import_react2.default.forwardRef(
333
409
  (props, forwardedRef) => {
334
410
  const {
335
411
  name,
336
- variant = "mono" /* Mono */,
412
+ variant = "primary" /* Primary */,
337
413
  sizing = "medium" /* Medium */,
414
+ shape = "smooth",
415
+ animation,
338
416
  raw,
339
417
  rawicon,
418
+ onMouseMove,
419
+ onMouseEnter,
420
+ onMouseLeave,
340
421
  children,
341
422
  ...restProps
342
423
  } = props;
@@ -347,6 +428,37 @@ var Button = import_react2.default.forwardRef(
347
428
  const buttonDescription = `${ariaLabel}:${buttonType}`;
348
429
  const buttonStateDescription = `disabled:${disabledState}`;
349
430
  const ButtonFullDesc = `${buttonDescription}/${buttonStateDescription}`;
431
+ const isReflective = animation === "reflective" && variant !== "ghost";
432
+ const [position, setPosition] = import_react2.default.useState({ x: 0, y: 0 });
433
+ const [isHovering, setIsHovering] = import_react2.default.useState(false);
434
+ const handleMouseMove = import_react2.default.useCallback(
435
+ (e) => {
436
+ if (onMouseMove) onMouseMove(e);
437
+ if (!isReflective) return;
438
+ const rect = e.currentTarget.getBoundingClientRect();
439
+ setPosition({
440
+ x: (e.clientX - rect.left) / rect.width * 100,
441
+ y: (e.clientY - rect.top) / rect.height * 100
442
+ });
443
+ },
444
+ []
445
+ );
446
+ const handleMouseEnter = import_react2.default.useCallback(
447
+ (e) => {
448
+ if (onMouseEnter) onMouseEnter(e);
449
+ if (!isReflective) return;
450
+ setIsHovering(true);
451
+ },
452
+ []
453
+ );
454
+ const handleMouseLeave = import_react2.default.useCallback(
455
+ (e) => {
456
+ if (onMouseLeave) onMouseLeave(e);
457
+ if (!isReflective) return;
458
+ setIsHovering(false);
459
+ },
460
+ []
461
+ );
350
462
  return /* @__PURE__ */ import_react2.default.createElement(
351
463
  ButtonWrapper,
352
464
  {
@@ -359,11 +471,24 @@ var Button = import_react2.default.forwardRef(
359
471
  "aria-disabled": disabledState,
360
472
  "data-variant": variant,
361
473
  "data-size": sizing,
474
+ "data-shape": shape,
475
+ "data-animation": animation,
362
476
  "data-raw": Boolean(raw),
363
477
  "data-rawicon": Boolean(rawicon),
364
478
  tabIndex: 0,
479
+ onMouseMove: handleMouseMove,
480
+ onMouseEnter: handleMouseEnter,
481
+ onMouseLeave: handleMouseLeave,
365
482
  ...restProps
366
483
  },
484
+ isReflective && /* @__PURE__ */ import_react2.default.createElement(ButtonOverlay, { $isHovering: isHovering, "data-shape": shape }, /* @__PURE__ */ import_react2.default.createElement(
485
+ ButtonMaskElement,
486
+ {
487
+ $mouseX: position.x,
488
+ $mouseY: position.y,
489
+ "data-shape": shape
490
+ }
491
+ )),
367
492
  children
368
493
  );
369
494
  }
@@ -718,25 +843,186 @@ var Badge = (props) => {
718
843
  };
719
844
  Badge.displayName = "Badge";
720
845
 
721
- // src/checkbox/index.tsx
846
+ // src/breadcrumb/index.tsx
847
+ var import_react6 = __toESM(require("react"));
848
+
849
+ // src/breadcrumb/styles/index.ts
850
+ var import_styled_components4 = __toESM(require("styled-components"));
851
+ var ItemWrapper = import_styled_components4.default.span`
852
+ width: 100%;
853
+ line-clamp: 2;
854
+ word-break: break-all;
855
+
856
+ &[data-current="true"] {
857
+ opacity: 1 !important;
858
+ }
859
+ `;
860
+ var SeparatorItem = import_styled_components4.default.span`
861
+ color: var(--font-color-alpha-10) !important;
862
+ user-select: none;
863
+ pointer-events: none;
864
+ `;
865
+
866
+ // src/breadcrumb/index.tsx
867
+ var SEGMENT_SEPARATOR = "/";
868
+ var BreadcrumbItem = (props) => {
869
+ const { isLastItem = false, children, ...restProps } = props;
870
+ return /* @__PURE__ */ import_react6.default.createElement(Button, { sizing: "small", variant: "ghost", ...restProps }, /* @__PURE__ */ import_react6.default.createElement(ItemWrapper, { "data-current": isLastItem }, children));
871
+ };
872
+ BreadcrumbItem.displayName = "Breadcrumb.Item";
873
+ var BreadcrumbSeparator = (props) => {
874
+ const { children } = props;
875
+ return /* @__PURE__ */ import_react6.default.createElement(SeparatorItem, null, children ?? SEGMENT_SEPARATOR);
876
+ };
877
+ BreadcrumbSeparator.displayName = "Breadcrumb.Separator";
878
+ var Breadcrumb = (props) => {
879
+ const { path, navigate, capitalizeItems = true, children } = props;
880
+ const segments = path.split(SEGMENT_SEPARATOR).filter(Boolean);
881
+ const items = segments.map((segment, index) => {
882
+ const href = `/${segments.slice(0, index + 1).join(SEGMENT_SEPARATOR)}`;
883
+ const isLastItem = index === segments.length - 1;
884
+ return {
885
+ href,
886
+ label: segment,
887
+ isLastItem
888
+ };
889
+ });
890
+ const breadcrumbLabel = (segment) => {
891
+ return capitalizeItems ? segment.charAt(0).toUpperCase() + segment.slice(1).replace(/-/g, " ") : segment.replace(/-/g, " ");
892
+ };
893
+ const handleNavigate = import_react6.default.useCallback((href) => {
894
+ if (navigate) navigate(href);
895
+ }, []);
896
+ if (path === SEGMENT_SEPARATOR) return null;
897
+ return /* @__PURE__ */ import_react6.default.createElement("div", { className: "flex align-center g-medium-30" }, children && /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, null, children, /* @__PURE__ */ import_react6.default.createElement(Breadcrumb.Separator, null)), items.map((item, key) => /* @__PURE__ */ import_react6.default.createElement(import_react6.default.Fragment, { key }, /* @__PURE__ */ import_react6.default.createElement(
898
+ Breadcrumb.Item,
899
+ {
900
+ isLastItem: item.isLastItem,
901
+ disabled: !navigate,
902
+ onClick: () => handleNavigate(item.href)
903
+ },
904
+ breadcrumbLabel(item.label)
905
+ ), !item.isLastItem && /* @__PURE__ */ import_react6.default.createElement(Breadcrumb.Separator, null))));
906
+ };
907
+ Breadcrumb.displayName = "Breadcrumb";
908
+ Breadcrumb.Item = BreadcrumbItem;
909
+ Breadcrumb.Separator = BreadcrumbSeparator;
910
+
911
+ // src/card/index.tsx
722
912
  var import_react7 = __toESM(require("react"));
723
913
 
914
+ // src/card/styles/index.ts
915
+ var import_styled_components5 = __toESM(require("styled-components"));
916
+ var GridDefaultStyles = import_styled_components5.css`
917
+ display: grid;
918
+ grid-gap: var(--measurement-medium-30) var(--measurement-medium-30);
919
+ box-sizing: border-box;
920
+
921
+ @media (max-width: 768px) {
922
+ grid-template-columns: repeat(auto-fill, minmax(100%, 1fr));
923
+ }
924
+ `;
925
+ var GridSizeStyles = import_styled_components5.css`
926
+ &[data-size="small"] {
927
+ grid-template-columns: repeat(
928
+ auto-fill,
929
+ minmax(var(--measurement-large-80), 1fr)
930
+ );
931
+ }
932
+ &[data-size="medium"] {
933
+ grid-template-columns: repeat(
934
+ auto-fill,
935
+ minmax(var(--measurement-large-90), 1fr)
936
+ );
937
+ }
938
+ &[data-size="large"] {
939
+ grid-template-columns: repeat(
940
+ auto-fill,
941
+ minmax(calc(var(--measurement-large-90) * 1.2), 1fr)
942
+ );
943
+ }
944
+ `;
945
+ var CardShapeStyles = import_styled_components5.css`
946
+ &[data-shape="square"] {
947
+ border-radius: 0;
948
+ }
949
+ &[data-shape="smooth"] {
950
+ border-radius: var(--measurement-medium-30);
951
+ }
952
+ &[data-shape="round"] {
953
+ border-radius: var(--measurement-medium-60);
954
+ }
955
+ `;
956
+ var CardDefaultStyles = import_styled_components5.css`
957
+ ${CardShapeStyles}
958
+
959
+ box-sizing: border-box;
960
+ `;
961
+ var CardContainer = import_styled_components5.default.div`
962
+ width: 100%;
963
+ background-color: var(--font-color-alpha-10);
964
+
965
+ ${CardDefaultStyles}
966
+ `;
967
+ var CardWrapper = import_styled_components5.default.div`
968
+ display: flex;
969
+ flex-direction: column;
970
+ gap: var(--measurement-large-10);
971
+ padding: var(--measurement-medium-60);
972
+ background-color: var(--contrast-color);
973
+ border: var(--measurement-small-10) solid var(--font-color-alpha-10);
974
+
975
+ ${CardDefaultStyles}
976
+ `;
977
+ var CardsGrid = import_styled_components5.default.div`
978
+ ${GridDefaultStyles}
979
+ ${GridSizeStyles}
980
+ `;
981
+
982
+ // src/card/index.tsx
983
+ var CardGrid = (props) => {
984
+ const { sizing = "medium", children } = props;
985
+ return /* @__PURE__ */ import_react7.default.createElement(CardsGrid, { "data-size": sizing }, children);
986
+ };
987
+ CardGrid.displayName = "Card.Grid";
988
+ var CardMeta = (props) => {
989
+ const { children } = props;
990
+ return /* @__PURE__ */ import_react7.default.createElement("div", { className: "p-y-medium-20 p-x-medium-30", ...props }, children);
991
+ };
992
+ CardMeta.displayName = "Card.Meta";
993
+ var CardBody = (props) => {
994
+ const { shape = "smooth", children } = props;
995
+ return /* @__PURE__ */ import_react7.default.createElement(CardWrapper, { "data-shape": shape }, children);
996
+ };
997
+ CardBody.displayName = "Card.Body";
998
+ var Card = (props) => {
999
+ const { shape = "smooth", children } = props;
1000
+ return /* @__PURE__ */ import_react7.default.createElement(CardContainer, { "data-shape": shape }, " ", children);
1001
+ };
1002
+ Card.displayName = "Card";
1003
+ Card.Grid = CardGrid;
1004
+ Card.Meta = CardMeta;
1005
+ Card.Body = CardBody;
1006
+
1007
+ // src/checkbox/index.tsx
1008
+ var import_react9 = __toESM(require("react"));
1009
+
724
1010
  // src/checkbox/hooks/index.tsx
725
- var import_react6 = __toESM(require("react"));
1011
+ var import_react8 = __toESM(require("react"));
726
1012
  var defaultComponentAPI2 = {
727
1013
  id: "",
728
1014
  states: {},
729
1015
  methods: {}
730
1016
  };
731
- var CheckboxContext = (0, import_react6.createContext)(defaultComponentAPI2);
732
- var useCheckbox = () => (0, import_react6.useContext)(CheckboxContext);
1017
+ var CheckboxContext = (0, import_react8.createContext)(defaultComponentAPI2);
1018
+ var useCheckbox = () => (0, import_react8.useContext)(CheckboxContext);
733
1019
  var CheckboxProvider = ({ children }) => {
734
1020
  const context = useCheckboxProvider();
735
- return /* @__PURE__ */ import_react6.default.createElement(CheckboxContext.Provider, { value: context }, children);
1021
+ return /* @__PURE__ */ import_react8.default.createElement(CheckboxContext.Provider, { value: context }, children);
736
1022
  };
737
1023
  function useCheckboxProvider() {
738
- const [checked, setChecked] = (0, import_react6.useState)(false);
739
- const checkboxId = import_react6.default.useId();
1024
+ const [checked, setChecked] = (0, import_react8.useState)(false);
1025
+ const checkboxId = import_react8.default.useId();
740
1026
  return {
741
1027
  id: checkboxId,
742
1028
  states: {
@@ -750,8 +1036,8 @@ function useCheckboxProvider() {
750
1036
  }
751
1037
 
752
1038
  // src/checkbox/styles/index.ts
753
- var import_styled_components4 = __toESM(require("styled-components"));
754
- var CheckboxDefaultStyles = import_styled_components4.css`
1039
+ var import_styled_components6 = __toESM(require("styled-components"));
1040
+ var CheckboxDefaultStyles = import_styled_components6.css`
755
1041
  position: relative;
756
1042
  display: flex;
757
1043
  align-items: center;
@@ -759,7 +1045,7 @@ var CheckboxDefaultStyles = import_styled_components4.css`
759
1045
  backdrop-filter: blur(var(--measurement-small-10));
760
1046
  transition: all ease-in-out 0.2s;
761
1047
  `;
762
- var CheckboxVariantsStyles = import_styled_components4.css`
1048
+ var CheckboxVariantsStyles = import_styled_components6.css`
763
1049
  &[data-variant="primary"] {
764
1050
  background-color: var(--font-color-alpha-10);
765
1051
  border: var(--measurement-small-10) solid transparent;
@@ -831,7 +1117,7 @@ var CheckboxVariantsStyles = import_styled_components4.css`
831
1117
  }
832
1118
  }
833
1119
  `;
834
- var CheckboxSizeStyles = import_styled_components4.css`
1120
+ var CheckboxSizeStyles = import_styled_components6.css`
835
1121
  &[data-size="small"] {
836
1122
  width: var(--measurement-medium-60);
837
1123
  height: var(--measurement-medium-60);
@@ -848,7 +1134,7 @@ var CheckboxSizeStyles = import_styled_components4.css`
848
1134
  border-radius: var(--measurement-medium-20);
849
1135
  }
850
1136
  `;
851
- var CheckboxWrapper = import_styled_components4.default.div`
1137
+ var CheckboxWrapper = import_styled_components6.default.div`
852
1138
  cursor: pointer;
853
1139
 
854
1140
  &[data-raw="false"] {
@@ -866,7 +1152,7 @@ var CheckboxWrapper = import_styled_components4.default.div`
866
1152
  }
867
1153
  }
868
1154
  `;
869
- var NativeInput = import_styled_components4.default.input`
1155
+ var NativeInput = import_styled_components6.default.input`
870
1156
  &[data-raw="false"] {
871
1157
  appearance: none;
872
1158
  background: none;
@@ -883,7 +1169,7 @@ var NativeInput = import_styled_components4.default.input`
883
1169
  }
884
1170
  }
885
1171
  `;
886
- var Indicator = import_styled_components4.default.span`
1172
+ var Indicator = import_styled_components6.default.span`
887
1173
  line-height: 0;
888
1174
  pointer-events: none;
889
1175
  `;
@@ -910,10 +1196,10 @@ var Checkbox = (props) => {
910
1196
  if (toggleChecked) toggleChecked();
911
1197
  if (onClick) onClick(event);
912
1198
  };
913
- import_react7.default.useEffect(() => {
1199
+ import_react9.default.useEffect(() => {
914
1200
  if (defaultChecked && applyChecked) applyChecked(defaultChecked);
915
1201
  }, []);
916
- return /* @__PURE__ */ import_react7.default.createElement(
1202
+ return /* @__PURE__ */ import_react9.default.createElement(
917
1203
  CheckboxWrapper,
918
1204
  {
919
1205
  role: "checkbox",
@@ -925,7 +1211,7 @@ var Checkbox = (props) => {
925
1211
  "data-variant": variant,
926
1212
  "aria-label": props["aria-label"] ?? `${name}-checkbox`
927
1213
  },
928
- /* @__PURE__ */ import_react7.default.createElement(
1214
+ /* @__PURE__ */ import_react9.default.createElement(
929
1215
  NativeInput,
930
1216
  {
931
1217
  type: "checkbox",
@@ -951,13 +1237,13 @@ var Checkbox = (props) => {
951
1237
  Checkbox.displayName = "Checkbox";
952
1238
  var CheckboxRoot = (props) => {
953
1239
  const { children, ...restProps } = props;
954
- return /* @__PURE__ */ import_react7.default.createElement(CheckboxProvider, { ...restProps }, children);
1240
+ return /* @__PURE__ */ import_react9.default.createElement(CheckboxProvider, { ...restProps }, children);
955
1241
  };
956
1242
  CheckboxRoot.displayName = "Checkbox.Root";
957
1243
  var CheckboxIndicator = (props) => {
958
1244
  const { states } = useCheckbox();
959
1245
  const { children, ...restProps } = props;
960
- return /* @__PURE__ */ import_react7.default.createElement(import_react7.default.Fragment, null, states.checked && /* @__PURE__ */ import_react7.default.createElement(Indicator, { ...restProps }, children ?? /* @__PURE__ */ import_react7.default.createElement(
1246
+ return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, states.checked && /* @__PURE__ */ import_react9.default.createElement(Indicator, { ...restProps }, children ?? /* @__PURE__ */ import_react9.default.createElement(
961
1247
  "svg",
962
1248
  {
963
1249
  tabIndex: -1,
@@ -969,8 +1255,8 @@ var CheckboxIndicator = (props) => {
969
1255
  viewBox: "0 0 10 10",
970
1256
  fill: "none"
971
1257
  },
972
- /* @__PURE__ */ import_react7.default.createElement("title", null, "Checked"),
973
- /* @__PURE__ */ import_react7.default.createElement(
1258
+ /* @__PURE__ */ import_react9.default.createElement("title", null, "Checked"),
1259
+ /* @__PURE__ */ import_react9.default.createElement(
974
1260
  "path",
975
1261
  {
976
1262
  d: "M2 5.5L4.12132 7.62132L8.36396 3.37868",
@@ -986,27 +1272,27 @@ Checkbox.Root = CheckboxRoot;
986
1272
  Checkbox.Indicator = CheckboxIndicator;
987
1273
 
988
1274
  // src/collapsible/index.tsx
989
- var import_react9 = __toESM(require("react"));
1275
+ var import_react11 = __toESM(require("react"));
990
1276
 
991
1277
  // src/collapsible/hooks/index.tsx
992
- var import_react8 = __toESM(require("react"));
1278
+ var import_react10 = __toESM(require("react"));
993
1279
  var defaultComponentAPI3 = {
994
1280
  id: "",
995
1281
  states: {},
996
1282
  methods: {}
997
1283
  };
998
- var CollapsibleContext = (0, import_react8.createContext)(defaultComponentAPI3);
999
- var useCollapsible = () => (0, import_react8.useContext)(CollapsibleContext);
1284
+ var CollapsibleContext = (0, import_react10.createContext)(defaultComponentAPI3);
1285
+ var useCollapsible = () => (0, import_react10.useContext)(CollapsibleContext);
1000
1286
  var CollapsibleProvider = ({
1001
1287
  children
1002
1288
  }) => {
1003
1289
  const context = useCollapsibleProvider();
1004
- return /* @__PURE__ */ import_react8.default.createElement(CollapsibleContext.Provider, { value: context }, children);
1290
+ return /* @__PURE__ */ import_react10.default.createElement(CollapsibleContext.Provider, { value: context }, children);
1005
1291
  };
1006
1292
  function useCollapsibleProvider() {
1007
- const [expanded, setExpanded] = (0, import_react8.useState)(false);
1008
- const [defaultOpen, setDefaultOpen] = (0, import_react8.useState)(false);
1009
- const collapsibleId = import_react8.default.useId();
1293
+ const [expanded, setExpanded] = (0, import_react10.useState)(false);
1294
+ const [defaultOpen, setDefaultOpen] = (0, import_react10.useState)(false);
1295
+ const collapsibleId = import_react10.default.useId();
1010
1296
  const toggleCollapsible = () => {
1011
1297
  setExpanded(!expanded);
1012
1298
  setDefaultOpen(false);
@@ -1035,7 +1321,7 @@ var applyDataState = (condition) => condition ? "open" : "closed";
1035
1321
  var Collapsible = (props) => {
1036
1322
  const { children, ...restProps } = props;
1037
1323
  const collapsibleContext = useCollapsible();
1038
- return /* @__PURE__ */ import_react9.default.createElement(
1324
+ return /* @__PURE__ */ import_react11.default.createElement(
1039
1325
  "div",
1040
1326
  {
1041
1327
  "data-state": applyDataState(Boolean(collapsibleContext.states.expanded)),
@@ -1046,7 +1332,7 @@ var Collapsible = (props) => {
1046
1332
  };
1047
1333
  Collapsible.displayName = "Collapsible";
1048
1334
  var CollapsibleRoot = ({ children }) => {
1049
- return /* @__PURE__ */ import_react9.default.createElement(CollapsibleProvider, null, children);
1335
+ return /* @__PURE__ */ import_react11.default.createElement(CollapsibleProvider, null, children);
1050
1336
  };
1051
1337
  CollapsibleRoot.displayName = "Collapsible.Root";
1052
1338
  var CollapsibleTrigger = (props) => {
@@ -1057,7 +1343,7 @@ var CollapsibleTrigger = (props) => {
1057
1343
  if (toggleCollapsible) toggleCollapsible();
1058
1344
  if (onClick) onClick(event);
1059
1345
  };
1060
- return /* @__PURE__ */ import_react9.default.createElement(
1346
+ return /* @__PURE__ */ import_react11.default.createElement(
1061
1347
  Button,
1062
1348
  {
1063
1349
  disabled,
@@ -1076,13 +1362,13 @@ var CollapsibleContent = (props) => {
1076
1362
  const { defaultOpen = false, showFirstChild, children, ...restProps } = props;
1077
1363
  const { id, states, methods } = useCollapsible();
1078
1364
  const { applyDefaultOpen } = methods;
1079
- const childArray = import_react9.default.Children.toArray(children);
1365
+ const childArray = import_react11.default.Children.toArray(children);
1080
1366
  const displayChildren = states.expanded ?? states.defaultOpen;
1081
1367
  const displayFirstChild = showFirstChild && childArray.length > 1 && !states.expanded;
1082
- import_react9.default.useEffect(() => {
1368
+ import_react11.default.useEffect(() => {
1083
1369
  if (defaultOpen && applyDefaultOpen) applyDefaultOpen();
1084
1370
  }, []);
1085
- return /* @__PURE__ */ import_react9.default.createElement(
1371
+ return /* @__PURE__ */ import_react11.default.createElement(
1086
1372
  "div",
1087
1373
  {
1088
1374
  id,
@@ -1099,25 +1385,88 @@ Collapsible.Root = CollapsibleRoot;
1099
1385
  Collapsible.Trigger = CollapsibleTrigger;
1100
1386
  Collapsible.Content = CollapsibleContent;
1101
1387
 
1388
+ // src/copy-button/index.tsx
1389
+ var import_react12 = __toESM(require("react"));
1390
+ var CopyButton = ({
1391
+ value,
1392
+ delay,
1393
+ tooltip,
1394
+ children,
1395
+ ...restProps
1396
+ }) => {
1397
+ const timerRef = import_react12.default.useRef(null);
1398
+ const [copied, setCopied] = import_react12.default.useState(false);
1399
+ const tooltipLabels = import_react12.default.useMemo(() => {
1400
+ return {
1401
+ copy: tooltip?.copyLabel ?? "Copy",
1402
+ copied: tooltip?.copiedLabel ?? "Copied!"
1403
+ };
1404
+ }, [tooltip]);
1405
+ const copyToClipboard = async () => {
1406
+ if (value == null) return;
1407
+ try {
1408
+ await navigator.clipboard.writeText(value);
1409
+ setCopied(true);
1410
+ } catch {
1411
+ const ta = document.createElement("textarea");
1412
+ ta.value = value;
1413
+ ta.style.position = "fixed";
1414
+ ta.style.opacity = "0";
1415
+ document.body.appendChild(ta);
1416
+ ta.select();
1417
+ try {
1418
+ document.execCommand("copy");
1419
+ setCopied(true);
1420
+ } finally {
1421
+ document.body.removeChild(ta);
1422
+ }
1423
+ }
1424
+ if (timerRef.current != null) window.clearTimeout(timerRef.current);
1425
+ timerRef.current = window.setTimeout(() => setCopied(false), delay ?? 1e3);
1426
+ };
1427
+ import_react12.default.useEffect(() => {
1428
+ return () => {
1429
+ if (timerRef.current != null) {
1430
+ window.clearTimeout(timerRef.current);
1431
+ timerRef.current = null;
1432
+ }
1433
+ };
1434
+ }, []);
1435
+ return /* @__PURE__ */ import_react12.default.createElement(Tooltip, { content: copied ? tooltipLabels.copied : tooltipLabels.copy }, /* @__PURE__ */ import_react12.default.createElement(
1436
+ Button,
1437
+ {
1438
+ "data-testId": "copy-code",
1439
+ "aria-label": "copy-code",
1440
+ disabled: value == null,
1441
+ "aria-disabled": value == null,
1442
+ variant: restProps?.variant ?? "ghost",
1443
+ onClick: copyToClipboard,
1444
+ ...restProps
1445
+ },
1446
+ children
1447
+ ));
1448
+ };
1449
+ CopyButton.displayName = "CopyButton";
1450
+
1102
1451
  // src/dialog/index.tsx
1103
- var import_react14 = __toESM(require("react"));
1452
+ var import_react17 = __toESM(require("react"));
1104
1453
 
1105
1454
  // src/dialog/hooks/index.tsx
1106
- var import_react10 = __toESM(require("react"));
1455
+ var import_react13 = __toESM(require("react"));
1107
1456
  var defaultComponentAPI4 = {
1108
1457
  id: "",
1109
1458
  states: {},
1110
1459
  methods: {}
1111
1460
  };
1112
- var DialogContext = (0, import_react10.createContext)(defaultComponentAPI4);
1113
- var useDialog = () => (0, import_react10.useContext)(DialogContext);
1461
+ var DialogContext = (0, import_react13.createContext)(defaultComponentAPI4);
1462
+ var useDialog = () => (0, import_react13.useContext)(DialogContext);
1114
1463
  var DialogProvider = ({ children }) => {
1115
1464
  const context = useDialogProvider();
1116
- return /* @__PURE__ */ import_react10.default.createElement(DialogContext.Provider, { value: context }, children);
1465
+ return /* @__PURE__ */ import_react13.default.createElement(DialogContext.Provider, { value: context }, children);
1117
1466
  };
1118
1467
  function useDialogProvider() {
1119
- const [open, setOpen] = (0, import_react10.useState)(false);
1120
- const dialogId = import_react10.default.useId();
1468
+ const [open, setOpen] = (0, import_react13.useState)(false);
1469
+ const dialogId = import_react13.default.useId();
1121
1470
  return {
1122
1471
  id: dialogId,
1123
1472
  states: {
@@ -1131,15 +1480,15 @@ function useDialogProvider() {
1131
1480
  }
1132
1481
 
1133
1482
  // ../hooks/dist/index.mjs
1134
- var import_react11 = require("react");
1135
- var import_react12 = require("react");
1136
- var import_react13 = __toESM(require("react"), 1);
1483
+ var import_react14 = require("react");
1484
+ var import_react15 = require("react");
1485
+ var import_react16 = __toESM(require("react"), 1);
1137
1486
  function useEventListener(eventName, handler, element) {
1138
- const savedHandler = (0, import_react11.useRef)(handler);
1139
- (0, import_react11.useEffect)(() => {
1487
+ const savedHandler = (0, import_react14.useRef)(handler);
1488
+ (0, import_react14.useEffect)(() => {
1140
1489
  savedHandler.current = handler;
1141
1490
  }, [handler]);
1142
- (0, import_react11.useEffect)(() => {
1491
+ (0, import_react14.useEffect)(() => {
1143
1492
  const targetElement = element && element.current || window;
1144
1493
  if (!(targetElement && targetElement.addEventListener)) return;
1145
1494
  const eventListener = (event) => savedHandler.current(event);
@@ -1156,8 +1505,8 @@ function useClickOutside(ref, handler, mouseEvent = "mousedown") {
1156
1505
  });
1157
1506
  }
1158
1507
  function useKeyPress(targetKey, hotkey, bindKey) {
1159
- const [keyPressed, setKeyPressed] = (0, import_react12.useState)(false);
1160
- const switchStoredKeyPressed = (0, import_react12.useCallback)(
1508
+ const [keyPressed, setKeyPressed] = (0, import_react15.useState)(false);
1509
+ const switchStoredKeyPressed = (0, import_react15.useCallback)(
1161
1510
  (event, state) => {
1162
1511
  if (!hotkey && event.key === targetKey) {
1163
1512
  return setKeyPressed(state);
@@ -1172,15 +1521,15 @@ function useKeyPress(targetKey, hotkey, bindKey) {
1172
1521
  },
1173
1522
  [bindKey, hotkey, targetKey]
1174
1523
  );
1175
- const KeyDownHandler = (0, import_react12.useCallback)(
1524
+ const KeyDownHandler = (0, import_react15.useCallback)(
1176
1525
  (event) => switchStoredKeyPressed(event, true),
1177
1526
  [switchStoredKeyPressed]
1178
1527
  );
1179
- const KeyUpHandler = (0, import_react12.useCallback)(
1528
+ const KeyUpHandler = (0, import_react15.useCallback)(
1180
1529
  (event) => switchStoredKeyPressed(event, false),
1181
1530
  [switchStoredKeyPressed]
1182
1531
  );
1183
- (0, import_react12.useEffect)(() => {
1532
+ (0, import_react15.useEffect)(() => {
1184
1533
  window.addEventListener("keydown", KeyDownHandler);
1185
1534
  window.addEventListener("keyup", KeyUpHandler);
1186
1535
  return () => {
@@ -1192,7 +1541,7 @@ function useKeyPress(targetKey, hotkey, bindKey) {
1192
1541
  }
1193
1542
  var useDisabledScroll = (state) => {
1194
1543
  const overflow = state ? "hidden" : "";
1195
- import_react13.default.useEffect(() => {
1544
+ import_react16.default.useEffect(() => {
1196
1545
  document.body.style.overflowY = overflow;
1197
1546
  }, [state]);
1198
1547
  return {
@@ -1202,8 +1551,8 @@ var useDisabledScroll = (state) => {
1202
1551
  };
1203
1552
 
1204
1553
  // src/dialog/styles/index.ts
1205
- var import_styled_components5 = __toESM(require("styled-components"));
1206
- var DialogDefaultStyles = import_styled_components5.css`
1554
+ var import_styled_components7 = __toESM(require("styled-components"));
1555
+ var DialogDefaultStyles = import_styled_components7.css`
1207
1556
  position: fixed;
1208
1557
  top: 15dvh;
1209
1558
  padding: var(--measurement-medium-60);
@@ -1216,7 +1565,7 @@ var DialogDefaultStyles = import_styled_components5.css`
1216
1565
  transition: all ease-in-out 0.2s;
1217
1566
  z-index: var(--depth-default-100);
1218
1567
  `;
1219
- var DialogSizeStyles = import_styled_components5.css`
1568
+ var DialogSizeStyles = import_styled_components7.css`
1220
1569
  --base-size: var(--measurement-medium-60);
1221
1570
  --computed-size: calc(100% - (var(--base-size) * 2));
1222
1571
  --max-height: 75dvh;
@@ -1237,7 +1586,7 @@ var DialogSizeStyles = import_styled_components5.css`
1237
1586
  padding: var(--measurement-medium-80);
1238
1587
  }
1239
1588
  `;
1240
- var Menu = import_styled_components5.default.menu`
1589
+ var Menu = import_styled_components7.default.menu`
1241
1590
  margin: 0;
1242
1591
  padding: 0;
1243
1592
 
@@ -1247,7 +1596,7 @@ var Menu = import_styled_components5.default.menu`
1247
1596
  gap: var(--measurement-medium-30);
1248
1597
  }
1249
1598
  `;
1250
- var DialogWrapper = import_styled_components5.default.dialog`
1599
+ var DialogWrapper = import_styled_components7.default.dialog`
1251
1600
  @keyframes slide-in {
1252
1601
  0% {
1253
1602
  opacity: 0;
@@ -1287,11 +1636,11 @@ var Dialog = (props) => {
1287
1636
  const { getDialogId, toggleDialog } = methods;
1288
1637
  const triggerId = getDialogId && getDialogId("trigger");
1289
1638
  const contentId = getDialogId && getDialogId("content");
1290
- import_react14.default.useEffect(() => {
1639
+ import_react17.default.useEffect(() => {
1291
1640
  if (open && toggleDialog) toggleDialog();
1292
1641
  }, []);
1293
1642
  if (lock) useDisabledScroll(Boolean(states.open));
1294
- return /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, states.open && /* @__PURE__ */ import_react14.default.createElement(
1643
+ return /* @__PURE__ */ import_react17.default.createElement(import_react17.default.Fragment, null, states.open && /* @__PURE__ */ import_react17.default.createElement(
1295
1644
  ScrollArea,
1296
1645
  {
1297
1646
  as: DialogWrapper,
@@ -1310,7 +1659,7 @@ var Dialog = (props) => {
1310
1659
  };
1311
1660
  Dialog.displayName = "Dialog";
1312
1661
  var DialogRoot = ({ children }) => {
1313
- return /* @__PURE__ */ import_react14.default.createElement(DialogProvider, null, children);
1662
+ return /* @__PURE__ */ import_react17.default.createElement(DialogProvider, null, children);
1314
1663
  };
1315
1664
  DialogRoot.displayName = "Dialog.Root";
1316
1665
  var DialogOverlay = (props) => {
@@ -1321,7 +1670,7 @@ var DialogOverlay = (props) => {
1321
1670
  if (closeOnInteract && toggleDialog) toggleDialog();
1322
1671
  if (onClick) onClick(event);
1323
1672
  };
1324
- return /* @__PURE__ */ import_react14.default.createElement(
1673
+ return /* @__PURE__ */ import_react17.default.createElement(
1325
1674
  Overlay,
1326
1675
  {
1327
1676
  visible: Boolean(states.open),
@@ -1342,7 +1691,7 @@ var DialogTrigger = (props) => {
1342
1691
  if (toggleDialog) toggleDialog();
1343
1692
  if (onClick) onClick(event);
1344
1693
  };
1345
- return /* @__PURE__ */ import_react14.default.createElement(
1694
+ return /* @__PURE__ */ import_react17.default.createElement(
1346
1695
  Button,
1347
1696
  {
1348
1697
  id: String(triggerId),
@@ -1358,7 +1707,7 @@ var DialogTrigger = (props) => {
1358
1707
  DialogTrigger.displayName = "Dialog.Trigger";
1359
1708
  var DialogMenu = (props) => {
1360
1709
  const { raw, children, ...restProps } = props;
1361
- return /* @__PURE__ */ import_react14.default.createElement(Menu, { "data-raw": Boolean(raw), ...restProps }, children);
1710
+ return /* @__PURE__ */ import_react17.default.createElement(Menu, { "data-raw": Boolean(raw), ...restProps }, children);
1362
1711
  };
1363
1712
  DialogMenu.displayName = "Dialog.Menu";
1364
1713
  var DialogControl = (props) => {
@@ -1371,7 +1720,7 @@ var DialogControl = (props) => {
1371
1720
  if (toggleDialog) toggleDialog();
1372
1721
  if (onClick) onClick(event);
1373
1722
  };
1374
- return /* @__PURE__ */ import_react14.default.createElement(
1723
+ return /* @__PURE__ */ import_react17.default.createElement(
1375
1724
  Button,
1376
1725
  {
1377
1726
  id: String(innerControlId),
@@ -1392,8 +1741,8 @@ Dialog.Menu = DialogMenu;
1392
1741
  Dialog.Overlay = DialogOverlay;
1393
1742
 
1394
1743
  // src/divider/index.ts
1395
- var import_styled_components6 = __toESM(require("styled-components"));
1396
- var Divider = import_styled_components6.default.hr`
1744
+ var import_styled_components8 = __toESM(require("styled-components"));
1745
+ var Divider = import_styled_components8.default.hr`
1397
1746
  height: var(--measurement-small-10);
1398
1747
  margin: var(--measurement-medium-30) 0;
1399
1748
  background: var(--font-color-alpha-10);
@@ -1401,10 +1750,10 @@ var Divider = import_styled_components6.default.hr`
1401
1750
  `;
1402
1751
 
1403
1752
  // src/dropdown/index.tsx
1404
- var import_react16 = __toESM(require("react"));
1753
+ var import_react19 = __toESM(require("react"));
1405
1754
 
1406
1755
  // src/dropdown/hooks/index.tsx
1407
- var import_react15 = __toESM(require("react"));
1756
+ var import_react18 = __toESM(require("react"));
1408
1757
  var DEFAULT_API = {
1409
1758
  id: "",
1410
1759
  states: {},
@@ -1420,26 +1769,26 @@ var DEFAULT_DIMENSIONS = {
1420
1769
  width: 0,
1421
1770
  height: 0
1422
1771
  };
1423
- var DropdownMenuContext = import_react15.default.createContext(DEFAULT_API);
1424
- var useDropdownMenu = () => import_react15.default.useContext(DropdownMenuContext);
1772
+ var DropdownMenuContext = import_react18.default.createContext(DEFAULT_API);
1773
+ var useDropdownMenu = () => import_react18.default.useContext(DropdownMenuContext);
1425
1774
  var DropdownMenuProvider = ({
1426
1775
  children
1427
1776
  }) => {
1428
1777
  const context = useDropdownMenuProvider();
1429
- return /* @__PURE__ */ import_react15.default.createElement(DropdownMenuContext.Provider, { value: context }, children);
1778
+ return /* @__PURE__ */ import_react18.default.createElement(DropdownMenuContext.Provider, { value: context }, children);
1430
1779
  };
1431
1780
  function useDropdownMenuProvider() {
1432
- const [open, setOpen] = import_react15.default.useState(false);
1433
- const [contentProps, setContentProps] = import_react15.default.useState({
1781
+ const [open, setOpen] = import_react18.default.useState(false);
1782
+ const [contentProps, setContentProps] = import_react18.default.useState({
1434
1783
  ...DEFAULT_POSITIONS,
1435
1784
  ...DEFAULT_DIMENSIONS
1436
1785
  });
1437
- const [triggerProps, setTriggerProps] = import_react15.default.useState({
1786
+ const [triggerProps, setTriggerProps] = import_react18.default.useState({
1438
1787
  ...DEFAULT_POSITIONS,
1439
1788
  ...DEFAULT_DIMENSIONS
1440
1789
  });
1441
- const triggerId = import_react15.default.useId();
1442
- const dropdownId = import_react15.default.useId();
1790
+ const triggerId = import_react18.default.useId();
1791
+ const dropdownId = import_react18.default.useId();
1443
1792
  const composedId = `${triggerId}|${dropdownId}`;
1444
1793
  return {
1445
1794
  id: composedId,
@@ -1457,8 +1806,8 @@ function useDropdownMenuProvider() {
1457
1806
  }
1458
1807
 
1459
1808
  // src/dropdown/styles/index.ts
1460
- var import_styled_components7 = __toESM(require("styled-components"));
1461
- var FadeIn = import_styled_components7.keyframes`
1809
+ var import_styled_components9 = __toESM(require("styled-components"));
1810
+ var FadeIn = import_styled_components9.keyframes`
1462
1811
  0% {
1463
1812
  opacity: 0;
1464
1813
  }
@@ -1466,7 +1815,7 @@ var FadeIn = import_styled_components7.keyframes`
1466
1815
  opacity: 1;
1467
1816
  }
1468
1817
  `;
1469
- var ContentWrapperSizes = import_styled_components7.css`
1818
+ var ContentWrapperSizes = import_styled_components9.css`
1470
1819
  --small: var(--measurement-large-60);
1471
1820
  --medium: var(--measurement-large-80);
1472
1821
  --large: var(--measurement-large-90);
@@ -1488,10 +1837,10 @@ var ContentWrapperSizes = import_styled_components7.css`
1488
1837
  max-width: var(--large);
1489
1838
  }
1490
1839
  `;
1491
- var RootWrapper = import_styled_components7.default.div`
1840
+ var RootWrapper = import_styled_components9.default.div`
1492
1841
  position: relative;
1493
1842
  `;
1494
- var ContentWrapper = import_styled_components7.default.ul`
1843
+ var ContentWrapper = import_styled_components9.default.ul`
1495
1844
  --small: var(--measurement-large-60);
1496
1845
  --medium: var(--measurement-large-80);
1497
1846
  --large: var(--measurement-large-90);
@@ -1515,7 +1864,7 @@ var ContentWrapper = import_styled_components7.default.ul`
1515
1864
  ${ContentWrapperSizes}
1516
1865
  }
1517
1866
  `;
1518
- var ItemWrapper = import_styled_components7.default.li`
1867
+ var ItemWrapper2 = import_styled_components9.default.li`
1519
1868
  list-style: none;
1520
1869
  padding: 0;
1521
1870
  margin: 0;
@@ -1547,7 +1896,7 @@ var ItemWrapper = import_styled_components7.default.li`
1547
1896
 
1548
1897
  // src/dropdown/index.tsx
1549
1898
  var DropdownMenu = ({ children }) => {
1550
- const DropdownContentRef = import_react16.default.useRef(null);
1899
+ const DropdownContentRef = import_react19.default.useRef(null);
1551
1900
  const { states, methods } = useDropdownMenu();
1552
1901
  const { toggleOpen } = methods;
1553
1902
  const handleClickOutside = () => {
@@ -1555,15 +1904,15 @@ var DropdownMenu = ({ children }) => {
1555
1904
  };
1556
1905
  useClickOutside(DropdownContentRef, handleClickOutside);
1557
1906
  useDisabledScroll(Boolean(states.open));
1558
- return /* @__PURE__ */ import_react16.default.createElement(RootWrapper, { ref: DropdownContentRef }, children);
1907
+ return /* @__PURE__ */ import_react19.default.createElement(RootWrapper, { ref: DropdownContentRef }, children);
1559
1908
  };
1560
1909
  DropdownMenu.displayName = "DropdownMenu";
1561
1910
  var DropdownMenuRoot = ({ children }) => {
1562
- return /* @__PURE__ */ import_react16.default.createElement(DropdownMenuProvider, null, children);
1911
+ return /* @__PURE__ */ import_react19.default.createElement(DropdownMenuProvider, null, children);
1563
1912
  };
1564
1913
  DropdownMenuRoot.displayName = "DropdownMenu.Root";
1565
1914
  var DropdownMenuTrigger = (props) => {
1566
- const triggerRef = import_react16.default.useRef(null);
1915
+ const triggerRef = import_react19.default.useRef(null);
1567
1916
  const triggerRect = () => triggerRef.current?.getBoundingClientRect();
1568
1917
  const { variant = "ghost", onClick, children, ...restProps } = props;
1569
1918
  const { id, states, methods } = useDropdownMenu();
@@ -1581,7 +1930,7 @@ var DropdownMenuTrigger = (props) => {
1581
1930
  height: Number(triggerRect()?.height)
1582
1931
  });
1583
1932
  };
1584
- return /* @__PURE__ */ import_react16.default.createElement(
1933
+ return /* @__PURE__ */ import_react19.default.createElement(
1585
1934
  Button,
1586
1935
  {
1587
1936
  ref: triggerRef,
@@ -1596,12 +1945,12 @@ var DropdownMenuTrigger = (props) => {
1596
1945
  );
1597
1946
  };
1598
1947
  DropdownMenuTrigger.displayName = "DropdownMenu.Trigger";
1599
- var DropdownMenuContent = import_react16.default.forwardRef((props, _) => {
1948
+ var DropdownMenuContent = import_react19.default.forwardRef((props, _) => {
1600
1949
  const { raw, sizing = "medium", defaultOpen, children, ...restProps } = props;
1601
1950
  const { id, states, methods } = useDropdownMenu();
1602
1951
  const { toggleOpen, setContentProps } = methods;
1603
- const mounted = import_react16.default.useRef(false);
1604
- const contentRef = import_react16.default.useRef(null);
1952
+ const mounted = import_react19.default.useRef(false);
1953
+ const contentRef = import_react19.default.useRef(null);
1605
1954
  const contentRect = () => contentRef?.current?.getBoundingClientRect();
1606
1955
  const bodyRect = () => {
1607
1956
  if (typeof document !== "undefined") {
@@ -1625,10 +1974,10 @@ var DropdownMenuContent = import_react16.default.forwardRef((props, _) => {
1625
1974
  };
1626
1975
  const hasEnoughHorizontalSpace = dimensions.body_width - dimensions.content_left > dimensions.content_width * 1.1;
1627
1976
  const hasEnoughVerticalSpace = dimensions.body_height - dimensions.content_bottom > dimensions.content_height - dimensions.content_height * 0.9;
1628
- import_react16.default.useEffect(() => {
1977
+ import_react19.default.useEffect(() => {
1629
1978
  if (defaultOpen && toggleOpen) toggleOpen();
1630
1979
  }, []);
1631
- import_react16.default.useEffect(() => {
1980
+ import_react19.default.useEffect(() => {
1632
1981
  mounted.current = true;
1633
1982
  setContentProps && setContentProps({
1634
1983
  top: Number(contentRect()?.top),
@@ -1642,7 +1991,7 @@ var DropdownMenuContent = import_react16.default.forwardRef((props, _) => {
1642
1991
  mounted.current = false;
1643
1992
  };
1644
1993
  }, [states.open]);
1645
- return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, states.open && /* @__PURE__ */ import_react16.default.createElement(
1994
+ return /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, states.open && /* @__PURE__ */ import_react19.default.createElement(
1646
1995
  ContentWrapper,
1647
1996
  {
1648
1997
  ref: contentRef,
@@ -1696,8 +2045,8 @@ var DropdownMenuItem = (props) => {
1696
2045
  EventsHandler.toggle();
1697
2046
  }
1698
2047
  };
1699
- return /* @__PURE__ */ import_react16.default.createElement(
1700
- ItemWrapper,
2048
+ return /* @__PURE__ */ import_react19.default.createElement(
2049
+ ItemWrapper2,
1701
2050
  {
1702
2051
  role: "menuitem",
1703
2052
  tabIndex: 0,
@@ -1718,23 +2067,23 @@ DropdownMenu.Content = DropdownMenuContent;
1718
2067
  DropdownMenu.Item = DropdownMenuItem;
1719
2068
 
1720
2069
  // src/field/index.tsx
1721
- var import_react18 = __toESM(require("react"));
2070
+ var import_react21 = __toESM(require("react"));
1722
2071
 
1723
2072
  // src/field/hooks/index.tsx
1724
- var import_react17 = __toESM(require("react"));
2073
+ var import_react20 = __toESM(require("react"));
1725
2074
  var defaultComponentAPI5 = {
1726
2075
  id: "",
1727
2076
  states: {},
1728
2077
  methods: {}
1729
2078
  };
1730
- var FieldContext = (0, import_react17.createContext)(defaultComponentAPI5);
1731
- var useField = () => (0, import_react17.useContext)(FieldContext);
2079
+ var FieldContext = (0, import_react20.createContext)(defaultComponentAPI5);
2080
+ var useField = () => (0, import_react20.useContext)(FieldContext);
1732
2081
  var FieldProvider = ({ children }) => {
1733
2082
  const context = useFieldProvider();
1734
- return /* @__PURE__ */ import_react17.default.createElement(FieldContext.Provider, { value: context }, children);
2083
+ return /* @__PURE__ */ import_react20.default.createElement(FieldContext.Provider, { value: context }, children);
1735
2084
  };
1736
2085
  function useFieldProvider() {
1737
- const fieldId = import_react17.default.useId();
2086
+ const fieldId = import_react20.default.useId();
1738
2087
  return {
1739
2088
  id: fieldId,
1740
2089
  states: {},
@@ -1743,23 +2092,23 @@ function useFieldProvider() {
1743
2092
  }
1744
2093
 
1745
2094
  // src/field/styles/index.ts
1746
- var import_styled_components8 = __toESM(require("styled-components"));
1747
- var FieldDefaultStyles = import_styled_components8.css`
2095
+ var import_styled_components10 = __toESM(require("styled-components"));
2096
+ var FieldDefaultStyles = import_styled_components10.css`
1748
2097
  outline: none;
1749
- cursor: pointer;
2098
+ cursor: text;
1750
2099
  display: flex;
1751
2100
  align-items: center;
1752
2101
  justify-content: center;
2102
+ box-sizing: border-box;
2103
+
2104
+ font-size: var(--fontsize-medium-20);
1753
2105
 
1754
- font-size: var(--fontsize-small-80);
1755
- font-weight: 500;
1756
2106
  line-height: 1.1;
1757
2107
  letter-spacing: calc(
1758
2108
  var(--fontsize-small-10) - ((var(--fontsize-small-10) * 1.066))
1759
2109
  );
1760
2110
 
1761
2111
  border: var(--measurement-small-10) solid transparent;
1762
- border-radius: var(--measurement-medium-30);
1763
2112
  backdrop-filter: blur(var(--measurement-small-10));
1764
2113
  color: var(--font-color-alpha-60);
1765
2114
  width: fit-content;
@@ -1777,29 +2126,37 @@ var FieldDefaultStyles = import_styled_components8.css`
1777
2126
  &:focus,
1778
2127
  &:active {
1779
2128
  color: var(--font-color);
1780
-
1781
2129
  svg,
1782
2130
  span,
1783
2131
  img {
1784
2132
  opacity: 1;
1785
2133
  }
1786
2134
  }
2135
+
1787
2136
  &::placeholder {
1788
2137
  color: var(--font-color-alpha-30);
1789
2138
  }
2139
+
1790
2140
  &:disabled {
1791
2141
  cursor: not-allowed;
1792
2142
  opacity: 0.6;
1793
2143
  }
1794
2144
  `;
1795
- var FieldVariantsStyles = import_styled_components8.css`
2145
+ var FieldVariantsStyles = import_styled_components10.css`
1796
2146
  &[data-variant="primary"] {
1797
2147
  background-color: var(--font-color-alpha-10);
2148
+ border-color: var(--font-color-alpha-10);
2149
+
2150
+ &:focus,
2151
+ &:active {
2152
+ box-shadow: 0 0 0 var(--measurement-small-30) var(--font-color-alpha-10);
2153
+ }
1798
2154
 
1799
2155
  &[data-error="true"] {
1800
2156
  color: var(--color-red);
1801
2157
  background-color: var(--alpha-red-10);
1802
2158
  border-color: var(--alpha-red-10);
2159
+ box-shadow: 0 0 0 var(--measurement-small-30) var(--alpha-red-10);
1803
2160
  }
1804
2161
  }
1805
2162
 
@@ -1810,7 +2167,12 @@ var FieldVariantsStyles = import_styled_components8.css`
1810
2167
  &:hover,
1811
2168
  &:focus,
1812
2169
  &:active {
1813
- background-color: var(--font-color-alpha-10);
2170
+ border-color: var(--font-color-alpha-20);
2171
+ }
2172
+
2173
+ &:focus,
2174
+ &:active {
2175
+ box-shadow: 0 0 0 var(--measurement-small-30) var(--font-color-alpha-10);
1814
2176
  }
1815
2177
 
1816
2178
  &[data-error="true"] {
@@ -1821,6 +2183,7 @@ var FieldVariantsStyles = import_styled_components8.css`
1821
2183
  &:focus,
1822
2184
  &:active {
1823
2185
  background-color: var(--alpha-red-10);
2186
+ box-shadow: 0 0 0 var(--measurement-small-30) var(--alpha-red-10);
1824
2187
  }
1825
2188
  }
1826
2189
  }
@@ -1844,39 +2207,51 @@ var FieldVariantsStyles = import_styled_components8.css`
1844
2207
  }
1845
2208
  }
1846
2209
  `;
1847
- var FieldSizeStyles = import_styled_components8.css`
2210
+ var FieldSizeStyles = import_styled_components10.css`
1848
2211
  &[data-size="small"] {
1849
- gap: var(--measurement-medium-10);
2212
+ font-size: var(--fontsize-small-60);
2213
+
1850
2214
  padding: 0 var(--measurement-medium-30);
1851
2215
  min-width: var(--measurement-medium-60);
1852
2216
  min-height: var(--measurement-medium-80);
1853
2217
  }
1854
2218
  &[data-size="medium"] {
1855
- gap: var(--measurement-medium-30);
1856
2219
  padding: 0 var(--measurement-medium-30);
1857
2220
  min-width: var(--measurement-medium-90);
1858
2221
  min-height: var(--measurement-medium-90);
1859
2222
  width: fit-content;
1860
2223
  }
1861
2224
  &[data-size="large"] {
1862
- padding: var(--measurement-medium-20) var(--measurement-medium-40);
2225
+ padding: var(--measurement-medium-50);
1863
2226
  min-width: var(--measurement-medium-90);
1864
2227
  min-height: var(--measurement-medium-90);
1865
2228
  }
1866
2229
  `;
1867
- var Fieldset = import_styled_components8.default.fieldset`
2230
+ var FieldShapeStyles = import_styled_components10.css`
2231
+ &[data-shape="square"] {
2232
+ border-radius: 0;
2233
+ }
2234
+ &[data-shape="smooth"] {
2235
+ border-radius: var(--measurement-medium-20);
2236
+ }
2237
+ &[data-shape="round"] {
2238
+ border-radius: var(--measurement-large-90);
2239
+ }
2240
+ `;
2241
+ var Fieldset = import_styled_components10.default.fieldset`
1868
2242
  all: unset;
1869
2243
  display: grid;
1870
2244
  gap: var(--measurement-medium-10);
1871
2245
  `;
1872
- var Sup = import_styled_components8.default.sup`
2246
+ var Sup = import_styled_components10.default.sup`
1873
2247
  color: var(--color-red);
1874
2248
  `;
1875
- var Input = import_styled_components8.default.input`
2249
+ var Input = import_styled_components10.default.input`
1876
2250
  &[data-raw="false"] {
1877
2251
  ${FieldDefaultStyles}
1878
2252
  ${FieldVariantsStyles}
1879
2253
  ${FieldSizeStyles}
2254
+ ${FieldShapeStyles}
1880
2255
 
1881
2256
  &[data-error="true"] {
1882
2257
  &::placeholder {
@@ -1885,7 +2260,7 @@ var Input = import_styled_components8.default.input`
1885
2260
  }
1886
2261
  }
1887
2262
  `;
1888
- var Label = import_styled_components8.default.label`
2263
+ var Label = import_styled_components10.default.label`
1889
2264
  &[data-raw="false"] {
1890
2265
  font-weight: 500;
1891
2266
  line-height: 1.1;
@@ -1894,7 +2269,7 @@ var Label = import_styled_components8.default.label`
1894
2269
  );
1895
2270
  }
1896
2271
  `;
1897
- var Def = import_styled_components8.default.dfn`
2272
+ var Def = import_styled_components10.default.dfn`
1898
2273
  &[data-raw="false"] {
1899
2274
  font-style: normal;
1900
2275
  font-size: var(--fontsize-medium-10);
@@ -1921,13 +2296,14 @@ var Field = (props) => {
1921
2296
  raw,
1922
2297
  sizing = "medium" /* Medium */,
1923
2298
  variant = "primary" /* Primary */,
2299
+ shape = "smooth",
1924
2300
  error,
1925
2301
  hint,
1926
2302
  ...restProps
1927
2303
  } = props;
1928
- const metaId = import_react18.default.useId();
2304
+ const metaId = import_react21.default.useId();
1929
2305
  const { id } = useField();
1930
- return /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement(
2306
+ return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement(
1931
2307
  Input,
1932
2308
  {
1933
2309
  id,
@@ -1937,10 +2313,11 @@ var Field = (props) => {
1937
2313
  "data-error": Boolean(error),
1938
2314
  "data-variant": variant,
1939
2315
  "data-size": sizing,
2316
+ "data-shape": shape,
1940
2317
  "data-raw": Boolean(raw),
1941
2318
  ...restProps
1942
2319
  }
1943
- ), (error ?? hint) && /* @__PURE__ */ import_react18.default.createElement(
2320
+ ), (error ?? hint) && /* @__PURE__ */ import_react21.default.createElement(
1944
2321
  FieldMeta,
1945
2322
  {
1946
2323
  raw,
@@ -1951,20 +2328,20 @@ var Field = (props) => {
1951
2328
  };
1952
2329
  Field.displayName = "Field";
1953
2330
  var FieldRoot = ({ children }) => {
1954
- return /* @__PURE__ */ import_react18.default.createElement(FieldProvider, null, children);
2331
+ return /* @__PURE__ */ import_react21.default.createElement(FieldProvider, null, children);
1955
2332
  };
1956
2333
  FieldRoot.displayName = "Field.Root";
1957
2334
  var FieldWrapper = ({
1958
2335
  children,
1959
2336
  ...restProps
1960
2337
  }) => {
1961
- return /* @__PURE__ */ import_react18.default.createElement(Fieldset, { ...restProps }, children);
2338
+ return /* @__PURE__ */ import_react21.default.createElement(Fieldset, { ...restProps }, children);
1962
2339
  };
1963
2340
  FieldWrapper.displayName = "Field.Wrapper";
1964
2341
  var FieldLabel = (props) => {
1965
2342
  const { raw, optional = false, children, ...restProps } = props;
1966
2343
  const { id } = useField();
1967
- return /* @__PURE__ */ import_react18.default.createElement(Label, { htmlFor: id, "data-raw": Boolean(raw), ...restProps }, children, !optional && /* @__PURE__ */ import_react18.default.createElement(Sup, null, "*"));
2344
+ return /* @__PURE__ */ import_react21.default.createElement(Label, { htmlFor: id, "data-raw": Boolean(raw), ...restProps }, children, !optional && /* @__PURE__ */ import_react21.default.createElement(Sup, null, "*"));
1968
2345
  };
1969
2346
  FieldLabel.displayName = "Field.Label";
1970
2347
  var FieldMeta = (props) => {
@@ -1974,9 +2351,9 @@ var FieldMeta = (props) => {
1974
2351
  children,
1975
2352
  ...restProps
1976
2353
  } = props;
1977
- const metaId = import_react18.default.useId();
2354
+ const metaId = import_react21.default.useId();
1978
2355
  const { id } = useField();
1979
- return /* @__PURE__ */ import_react18.default.createElement(
2356
+ return /* @__PURE__ */ import_react21.default.createElement(
1980
2357
  Def,
1981
2358
  {
1982
2359
  id: metaId,
@@ -1995,22 +2372,22 @@ Field.Label = FieldLabel;
1995
2372
  Field.Meta = FieldMeta;
1996
2373
 
1997
2374
  // src/otp-field/index.tsx
1998
- var import_react20 = __toESM(require("react"));
2375
+ var import_react23 = __toESM(require("react"));
1999
2376
 
2000
2377
  // src/otp-field/hooks/index.tsx
2001
- var import_react19 = __toESM(require("react"));
2002
- var OTPFieldContext = import_react19.default.createContext(
2378
+ var import_react22 = __toESM(require("react"));
2379
+ var OTPFieldContext = import_react22.default.createContext(
2003
2380
  null
2004
2381
  );
2005
2382
  var useOTPField = () => {
2006
- const context = import_react19.default.useContext(OTPFieldContext);
2383
+ const context = import_react22.default.useContext(OTPFieldContext);
2007
2384
  if (!context) return null;
2008
2385
  return context;
2009
2386
  };
2010
2387
 
2011
2388
  // src/otp-field/styles/index.ts
2012
- var import_styled_components9 = __toESM(require("styled-components"));
2013
- var OTPCell = import_styled_components9.default.input`
2389
+ var import_styled_components11 = __toESM(require("styled-components"));
2390
+ var OTPCell = import_styled_components11.default.input`
2014
2391
  width: var(--measurement-medium-90);
2015
2392
  height: var(--measurement-medium-90);
2016
2393
  border: var(--measurement-small-10) solid var(--font-color-alpha-10);
@@ -2045,11 +2422,11 @@ var OTPCell = import_styled_components9.default.input`
2045
2422
  // src/otp-field/index.tsx
2046
2423
  var OTPField = ({ children, length, onComplete }) => {
2047
2424
  const defaultLength = length ?? 6;
2048
- const inputRefs = import_react20.default.useRef([]);
2049
- const [otp, setOtp] = import_react20.default.useState(
2425
+ const inputRefs = import_react23.default.useRef([]);
2426
+ const [otp, setOtp] = import_react23.default.useState(
2050
2427
  Array.from({ length: defaultLength }, () => "")
2051
2428
  );
2052
- const [activeIndex, setActiveIndex] = import_react20.default.useState(0);
2429
+ const [activeIndex, setActiveIndex] = import_react23.default.useState(0);
2053
2430
  const handleChange = (index, value) => {
2054
2431
  const newOtp = [...otp];
2055
2432
  newOtp[index] = value.substring(value.length - 1);
@@ -2110,13 +2487,13 @@ var OTPField = ({ children, length, onComplete }) => {
2110
2487
  );
2111
2488
  return () => clearTimeout(timeout);
2112
2489
  };
2113
- import_react20.default.useEffect(() => {
2490
+ import_react23.default.useEffect(() => {
2114
2491
  const otpString = otp.join("");
2115
2492
  if (otpString.length === defaultLength && onComplete) {
2116
2493
  onComplete(otpString);
2117
2494
  }
2118
2495
  }, [otp, defaultLength, onComplete]);
2119
- const contextValue = import_react20.default.useMemo(() => {
2496
+ const contextValue = import_react23.default.useMemo(() => {
2120
2497
  return {
2121
2498
  otp,
2122
2499
  activeIndex,
@@ -2139,11 +2516,11 @@ var OTPField = ({ children, length, onComplete }) => {
2139
2516
  handleClick,
2140
2517
  handlePaste
2141
2518
  ]);
2142
- return /* @__PURE__ */ import_react20.default.createElement(OTPFieldContext.Provider, { value: contextValue }, children);
2519
+ return /* @__PURE__ */ import_react23.default.createElement(OTPFieldContext.Provider, { value: contextValue }, children);
2143
2520
  };
2144
2521
  OTPField.displayName = "OTPField";
2145
- var OTPFieldGroup = import_react20.default.forwardRef(({ ...props }, ref) => {
2146
- return /* @__PURE__ */ import_react20.default.createElement("span", { ref, className: "flex g-medium-10 align-center", ...props });
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 });
2147
2524
  });
2148
2525
  OTPFieldGroup.displayName = "OTPField.Group";
2149
2526
  var OTPFieldSlot = ({
@@ -2162,7 +2539,7 @@ var OTPFieldSlot = ({
2162
2539
  handleClick,
2163
2540
  handlePaste
2164
2541
  } = context;
2165
- return /* @__PURE__ */ import_react20.default.createElement(
2542
+ return /* @__PURE__ */ import_react23.default.createElement(
2166
2543
  OTPCell,
2167
2544
  {
2168
2545
  ref: (el) => inputRefs.current[index] = el,
@@ -2188,11 +2565,11 @@ OTPField.Group = OTPFieldGroup;
2188
2565
  OTPField.Slot = OTPFieldSlot;
2189
2566
 
2190
2567
  // src/overlay/index.tsx
2191
- var import_react21 = __toESM(require("react"));
2568
+ var import_react24 = __toESM(require("react"));
2192
2569
 
2193
2570
  // src/overlay/styles/index.ts
2194
- var import_styled_components10 = __toESM(require("styled-components"));
2195
- var OverlayWrapper = import_styled_components10.default.div`
2571
+ var import_styled_components12 = __toESM(require("styled-components"));
2572
+ var OverlayWrapper = import_styled_components12.default.div`
2196
2573
  @keyframes animate-fade {
2197
2574
  0% {
2198
2575
  opacity: 0;
@@ -2220,15 +2597,15 @@ var OverlayWrapper = import_styled_components10.default.div`
2220
2597
  // src/overlay/index.tsx
2221
2598
  var Overlay = (props) => {
2222
2599
  const { raw, visible, closeOnInteract, onClick, ...restProps } = props;
2223
- const [mounted, setMounted] = import_react21.default.useState(Boolean(visible));
2600
+ const [mounted, setMounted] = import_react24.default.useState(Boolean(visible));
2224
2601
  const handleClick = (event) => {
2225
2602
  if (onClick) onClick(event);
2226
2603
  if (closeOnInteract) setMounted(false);
2227
2604
  };
2228
- import_react21.default.useEffect(() => {
2605
+ import_react24.default.useEffect(() => {
2229
2606
  if (visible !== mounted) setMounted(Boolean(visible));
2230
2607
  }, [visible]);
2231
- return /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, mounted && /* @__PURE__ */ import_react21.default.createElement(
2608
+ return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, mounted && /* @__PURE__ */ import_react24.default.createElement(
2232
2609
  OverlayWrapper,
2233
2610
  {
2234
2611
  tabIndex: -1,
@@ -2242,14 +2619,14 @@ var Overlay = (props) => {
2242
2619
  Overlay.displayName = "Overlay";
2243
2620
 
2244
2621
  // src/page/index.tsx
2245
- var import_react22 = __toESM(require("react"));
2622
+ var import_react25 = __toESM(require("react"));
2246
2623
 
2247
2624
  // src/page/styles/index.ts
2248
- var import_styled_components12 = __toESM(require("styled-components"));
2625
+ var import_styled_components14 = __toESM(require("styled-components"));
2249
2626
 
2250
2627
  // src/scrollarea/styles/index.ts
2251
- var import_styled_components11 = __toESM(require("styled-components"));
2252
- var HiddenScrollbar = import_styled_components11.css`
2628
+ var import_styled_components13 = __toESM(require("styled-components"));
2629
+ var HiddenScrollbar = import_styled_components13.css`
2253
2630
  scrollbar-width: none;
2254
2631
 
2255
2632
  &::-webkit-scrollbar {
@@ -2261,7 +2638,7 @@ var HiddenScrollbar = import_styled_components11.css`
2261
2638
  display: none;
2262
2639
  }
2263
2640
  `;
2264
- var CustomScrollbar = import_styled_components11.css`
2641
+ var CustomScrollbar = import_styled_components13.css`
2265
2642
  height: ${({ $height }) => $height || "100%"};
2266
2643
  width: ${({ $width }) => $width || "100%"};
2267
2644
  overflow-y: auto;
@@ -2293,7 +2670,7 @@ var CustomScrollbar = import_styled_components11.css`
2293
2670
  scrollbar-width: thin;
2294
2671
  scrollbar-color: ${({ $thumbColor, $trackColor }) => `${$thumbColor || "var(--font-color-alpha-10)"} ${$trackColor || "transparent"}`};
2295
2672
  `;
2296
- var ScrollAreaWrapper = import_styled_components11.default.div`
2673
+ var ScrollAreaWrapper = import_styled_components13.default.div`
2297
2674
  overflow: scroll;
2298
2675
 
2299
2676
  &[data-scrollbar="true"] {
@@ -2305,11 +2682,11 @@ var ScrollAreaWrapper = import_styled_components11.default.div`
2305
2682
  `;
2306
2683
 
2307
2684
  // src/page/styles/index.ts
2308
- var PageRootWrapper = import_styled_components12.default.div`
2685
+ var PageRootWrapper = import_styled_components14.default.div`
2309
2686
  height: 100dvh;
2310
2687
  width: 100%;
2311
2688
  `;
2312
- var PageNavWrapper = import_styled_components12.default.nav`
2689
+ var PageNavWrapper = import_styled_components14.default.nav`
2313
2690
  background-color: var(--body-color);
2314
2691
  border: var(--measurement-small-10) solid transparent;
2315
2692
  border-bottom-color: var(--font-color-alpha-10);
@@ -2318,7 +2695,7 @@ var PageNavWrapper = import_styled_components12.default.nav`
2318
2695
  max-height: var(--measurement-large-20);
2319
2696
  padding: var(--measurement-medium-30);
2320
2697
  `;
2321
- var PageMenuWrapper = import_styled_components12.default.menu`
2698
+ var PageMenuWrapper = import_styled_components14.default.menu`
2322
2699
  background-color: var(--body-color);
2323
2700
  border: var(--measurement-small-10) solid transparent;
2324
2701
  border-bottom-color: var(--font-color-alpha-10);
@@ -2328,19 +2705,19 @@ var PageMenuWrapper = import_styled_components12.default.menu`
2328
2705
  margin: 0;
2329
2706
  padding: var(--measurement-medium-60) var(--measurement-medium-30);
2330
2707
  `;
2331
- var PagePanelWrapper = import_styled_components12.default.aside`
2708
+ var PagePanelWrapper = import_styled_components14.default.aside`
2332
2709
  position: absolute;
2333
2710
  bottom: 0;
2334
2711
  width: 100%;
2335
2712
  overflow: scroll;
2336
2713
  ${HiddenScrollbar}
2337
2714
  `;
2338
- var PageSectionWrapper = import_styled_components12.default.div`
2715
+ var PageSectionWrapper = import_styled_components14.default.div`
2339
2716
  background: var(--body-color);
2340
2717
  width: 100%;
2341
2718
  height: 100%;
2342
2719
  `;
2343
- var PageBodyWrapper = import_styled_components12.default.div`
2720
+ var PageBodyWrapper = import_styled_components14.default.div`
2344
2721
  --menus-height: calc(
2345
2722
  var(--measurement-large-30) *
2346
2723
  ${({ $menus }) => $menus ? Number($menus) : 0}
@@ -2365,12 +2742,12 @@ var PageBodyWrapper = import_styled_components12.default.div`
2365
2742
  // src/page/index.tsx
2366
2743
  var Page = (props) => {
2367
2744
  const { children } = props;
2368
- return /* @__PURE__ */ import_react22.default.createElement(PageRootWrapper, { className: "flex", ...props }, children);
2745
+ return /* @__PURE__ */ import_react25.default.createElement(PageRootWrapper, { className: "flex", ...props }, children);
2369
2746
  };
2370
2747
  Page.displayName = "Page";
2371
2748
  var PageNavigation = (props) => {
2372
2749
  const { children } = props;
2373
- return /* @__PURE__ */ import_react22.default.createElement(PageNavWrapper, { ...props }, children);
2750
+ return /* @__PURE__ */ import_react25.default.createElement(PageNavWrapper, { ...props }, children);
2374
2751
  };
2375
2752
  PageNavigation.displayName = "Page.Navigation";
2376
2753
  var PageTools = (props) => {
@@ -2392,7 +2769,7 @@ var PageTools = (props) => {
2392
2769
  const handleClick = (event) => {
2393
2770
  if (onClick) onClick(event);
2394
2771
  };
2395
- return /* @__PURE__ */ import_react22.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react22.default.createElement(
2772
+ return /* @__PURE__ */ import_react25.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react25.default.createElement(
2396
2773
  Toolbar,
2397
2774
  {
2398
2775
  raw,
@@ -2404,27 +2781,27 @@ var PageTools = (props) => {
2404
2781
  defaultOpen,
2405
2782
  ...props
2406
2783
  },
2407
- /* @__PURE__ */ import_react22.default.createElement(Toolbar.Section, { showoncollapse }, children),
2408
- !fixed && /* @__PURE__ */ import_react22.default.createElement(
2784
+ /* @__PURE__ */ import_react25.default.createElement(Toolbar.Section, { showoncollapse }, children),
2785
+ !fixed && /* @__PURE__ */ import_react25.default.createElement(
2409
2786
  Toolbar.Trigger,
2410
2787
  {
2411
2788
  title: shortcut ? `${bindkey ?? "ctrl"} + ${hotkey}` : "toolbar-trigger",
2412
2789
  onClick: handleClick,
2413
2790
  ...triggerProps
2414
2791
  },
2415
- trigger ?? /* @__PURE__ */ import_react22.default.createElement("span", null, "\u2194")
2792
+ trigger ?? /* @__PURE__ */ import_react25.default.createElement("span", null, "\u2194")
2416
2793
  )
2417
2794
  ));
2418
2795
  };
2419
2796
  PageTools.displayName = "Page.Tools";
2420
2797
  var PageContent = (props) => {
2421
2798
  const { children } = props;
2422
- return /* @__PURE__ */ import_react22.default.createElement(ScrollArea, { as: PageSectionWrapper, ...props }, children);
2799
+ return /* @__PURE__ */ import_react25.default.createElement(ScrollArea, { as: PageSectionWrapper, ...props }, children);
2423
2800
  };
2424
2801
  PageContent.displayName = "Page.Content";
2425
2802
  var PageWrapper = (props) => {
2426
2803
  const { children } = props;
2427
- return /* @__PURE__ */ import_react22.default.createElement(PageBodyWrapper, { ...props }, children);
2804
+ return /* @__PURE__ */ import_react25.default.createElement(PageBodyWrapper, { ...props }, children);
2428
2805
  };
2429
2806
  PageWrapper.displayName = "Page.Wrapper";
2430
2807
  var PagePanel = (props) => {
@@ -2447,7 +2824,7 @@ var PagePanel = (props) => {
2447
2824
  const handleClick = (event) => {
2448
2825
  if (onClick) onClick(event);
2449
2826
  };
2450
- return /* @__PURE__ */ import_react22.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react22.default.createElement(
2827
+ return /* @__PURE__ */ import_react25.default.createElement(Toolbar.Root, null, /* @__PURE__ */ import_react25.default.createElement(
2451
2828
  PagePanelWrapper,
2452
2829
  {
2453
2830
  as: Toolbar,
@@ -2461,22 +2838,22 @@ var PagePanel = (props) => {
2461
2838
  defaultOpen,
2462
2839
  "aria-label": props["aria-label"]
2463
2840
  },
2464
- !fixed && /* @__PURE__ */ import_react22.default.createElement(
2841
+ !fixed && /* @__PURE__ */ import_react25.default.createElement(
2465
2842
  Toolbar.Trigger,
2466
2843
  {
2467
2844
  title: shortcut ? `${bindkey ?? "ctrl"} + ${hotkey}` : "toolbar-trigger",
2468
2845
  onClick: handleClick,
2469
2846
  ...triggerProps
2470
2847
  },
2471
- trigger ?? /* @__PURE__ */ import_react22.default.createElement("span", { style: { transform: "rotate(90deg)" } }, "\u2194")
2848
+ trigger ?? /* @__PURE__ */ import_react25.default.createElement("span", { style: { transform: "rotate(90deg)" } }, "\u2194")
2472
2849
  ),
2473
- /* @__PURE__ */ import_react22.default.createElement(Toolbar.Section, { showoncollapse }, children)
2850
+ /* @__PURE__ */ import_react25.default.createElement(Toolbar.Section, { showoncollapse }, children)
2474
2851
  ));
2475
2852
  };
2476
2853
  PagePanel.displayName = "Page.Panel";
2477
2854
  var PageMenu = (props) => {
2478
2855
  const { children } = props;
2479
- return /* @__PURE__ */ import_react22.default.createElement(PageMenuWrapper, { ...props }, children);
2856
+ return /* @__PURE__ */ import_react25.default.createElement(PageMenuWrapper, { ...props }, children);
2480
2857
  };
2481
2858
  PageMenu.displayName = "Page.Menu";
2482
2859
  Page.Navigation = PageNavigation;
@@ -2487,14 +2864,14 @@ Page.Panel = PagePanel;
2487
2864
  Page.Menu = PageMenu;
2488
2865
 
2489
2866
  // src/portal/index.tsx
2490
- var import_react23 = __toESM(require("react"));
2867
+ var import_react26 = __toESM(require("react"));
2491
2868
  var import_react_dom = require("react-dom");
2492
2869
  var Portal = (props) => {
2493
2870
  if (typeof document === "undefined") return null;
2494
2871
  const { container, children } = props;
2495
- const [hasMounted, setHasMounted] = import_react23.default.useState(false);
2496
- const [portalRoot, setPortalRoot] = import_react23.default.useState(null);
2497
- import_react23.default.useEffect(() => {
2872
+ const [hasMounted, setHasMounted] = import_react26.default.useState(false);
2873
+ const [portalRoot, setPortalRoot] = import_react26.default.useState(null);
2874
+ import_react26.default.useEffect(() => {
2498
2875
  setHasMounted(true);
2499
2876
  setPortalRoot(document.querySelector(`#${container}`));
2500
2877
  }, [container]);
@@ -2503,26 +2880,188 @@ var Portal = (props) => {
2503
2880
  };
2504
2881
  Portal.displayName = "Portal";
2505
2882
 
2883
+ // src/privacy-field/index.tsx
2884
+ var import_react27 = __toESM(require("react"));
2885
+
2886
+ // 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)`
2889
+ position: relative;
2890
+
2891
+ input {
2892
+ width: 100% !important;
2893
+ }
2894
+ `;
2895
+ var Trigger = (0, import_styled_components15.default)(Button)`
2896
+ position: absolute !important;
2897
+ right: var(--measurement-medium-50);
2898
+ top: calc(var(--measurement-medium-50));
2899
+ `;
2900
+
2901
+ // src/privacy-field/index.tsx
2902
+ var PrivacyField = ({
2903
+ defaultType,
2904
+ textIcon,
2905
+ passwordIcon,
2906
+ ...restProps
2907
+ }) => {
2908
+ const [type, setType] = import_react27.default.useState(
2909
+ defaultType ?? "password"
2910
+ );
2911
+ const handleChangeType = import_react27.default.useCallback(() => {
2912
+ if (type === "text") setType("password");
2913
+ if (type === "password") setType("text");
2914
+ }, [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));
2916
+ };
2917
+ PrivacyField.displayName = "PrivacyField";
2918
+
2919
+ // src/resizable/index.tsx
2920
+ var import_react28 = __toESM(require("react"));
2921
+
2922
+ // src/resizable/styles/index.ts
2923
+ var import_styled_components16 = __toESM(require("styled-components"));
2924
+ var SplitContainer = import_styled_components16.default.div`
2925
+ position: relative;
2926
+ `;
2927
+ var Panel = import_styled_components16.default.div`
2928
+ overflow: hidden;
2929
+ width: ${(props) => props.width}%;
2930
+ `;
2931
+ var Divider2 = import_styled_components16.default.div`
2932
+ width: var(--measurement-medium-10);
2933
+ height: 100%;
2934
+ top: 0;
2935
+
2936
+ border-radius: var(--measurement-medium-60);
2937
+ background-color: transparent;
2938
+
2939
+ /* background-color: ${(props) => props.$dragging ? "var(--font-color-alpha-10)" : "transparent"}; */
2940
+
2941
+ cursor: col-resize;
2942
+ transition: background-color 0.2s;
2943
+ position: relative;
2944
+
2945
+ /** Shows DragIndicator on hover */
2946
+ &:hover .drag-indicator-handle,
2947
+ &:active .drag-indicator-handle {
2948
+ opacity: 1;
2949
+ }
2950
+
2951
+ .drag-indicator-handle {
2952
+ height: ${(props) => props.$dragging ? "var(--measurement-large-10)" : "var(--measurement-medium-60)"};
2953
+ }
2954
+ `;
2955
+ var DragHandle = import_styled_components16.default.div`
2956
+ position: absolute;
2957
+ top: 0;
2958
+ bottom: 0;
2959
+ left: calc(var(--measurement-medium-10) * -1);
2960
+ right: calc(var(--measurement-medium-10) * -1);
2961
+ `;
2962
+ var DragIndicator = import_styled_components16.default.div`
2963
+ position: fixed;
2964
+ width: var(--measurement-medium-10);
2965
+ /* height: var(--measurement-medium-60); */
2966
+ background-color: var(--font-color-alpha-60);
2967
+ border-radius: var(--measurement-large-10);
2968
+
2969
+ opacity: 0;
2970
+ transition: all 0.2s;
2971
+ `;
2972
+ var DragOverlay = import_styled_components16.default.div`
2973
+ position: fixed;
2974
+ top: 0;
2975
+ left: 0;
2976
+ right: 0;
2977
+ bottom: 0;
2978
+ z-index: var(--depth-default-90);
2979
+ cursor: col-resize;
2980
+ `;
2981
+
2982
+ // src/resizable/index.tsx
2983
+ var Resizable = ({
2984
+ defaultWidth,
2985
+ left,
2986
+ right
2987
+ }) => {
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(
2994
+ (e) => {
2995
+ if (!isDragging || !containerRef.current) return;
2996
+ const containerRect = containerRef.current.getBoundingClientRect();
2997
+ const newLeftWidth = (e.clientX - containerRect.left) / containerRect.width * 100;
2998
+ const threshold = { min: 30, max: 70 };
2999
+ const constrainedWidth = Math.min(
3000
+ Math.max(newLeftWidth, threshold.min),
3001
+ threshold.max
3002
+ );
3003
+ setLeftWidth(constrainedWidth);
3004
+ },
3005
+ [isDragging]
3006
+ );
3007
+ import_react28.default.useEffect(() => {
3008
+ if (isDragging) {
3009
+ document.addEventListener("mousemove", handleMouseMove);
3010
+ document.addEventListener("mouseup", handleMouseUp);
3011
+ document.body.style.cursor = "col-resize";
3012
+ document.body.style.userSelect = "none";
3013
+ } else {
3014
+ document.removeEventListener("mousemove", handleMouseMove);
3015
+ document.removeEventListener("mouseup", handleMouseUp);
3016
+ document.body.style.cursor = "";
3017
+ document.body.style.userSelect = "";
3018
+ }
3019
+ return () => {
3020
+ document.removeEventListener("mousemove", handleMouseMove);
3021
+ document.removeEventListener("mouseup", handleMouseUp);
3022
+ document.body.style.cursor = "";
3023
+ document.body.style.userSelect = "";
3024
+ };
3025
+ }, [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(
3027
+ Divider2,
3028
+ {
3029
+ $dragging: isDragging,
3030
+ onMouseDown: handleMouseDown,
3031
+ onTouchStart: handleMouseDown
3032
+ },
3033
+ /* @__PURE__ */ import_react28.default.createElement(
3034
+ DragHandle,
3035
+ {
3036
+ className: "flex align-center justify-center",
3037
+ id: "drag-handle"
3038
+ },
3039
+ /* @__PURE__ */ import_react28.default.createElement(DragIndicator, { className: "drag-indicator-handle" })
3040
+ )
3041
+ ), /* @__PURE__ */ import_react28.default.createElement(Panel, { width: 100 - leftWidth }, right)), isDragging && /* @__PURE__ */ import_react28.default.createElement(DragOverlay, null));
3042
+ };
3043
+ Resizable.displayName = "Resizable";
3044
+
2506
3045
  // src/sheet/index.tsx
2507
- var import_react25 = __toESM(require("react"));
3046
+ var import_react30 = __toESM(require("react"));
2508
3047
 
2509
3048
  // src/sheet/hooks/index.tsx
2510
- var import_react24 = __toESM(require("react"));
2511
- var SheetContext = import_react24.default.createContext({
3049
+ var import_react29 = __toESM(require("react"));
3050
+ var SheetContext = import_react29.default.createContext({
2512
3051
  id: {},
2513
3052
  states: {},
2514
3053
  methods: {}
2515
3054
  });
2516
- var useSheet = () => import_react24.default.useContext(SheetContext);
3055
+ var useSheet = () => import_react29.default.useContext(SheetContext);
2517
3056
  var SheetProvider = ({ children }) => {
2518
3057
  const context = useSheetProvider();
2519
- return /* @__PURE__ */ import_react24.default.createElement(SheetContext.Provider, { value: context }, children);
3058
+ return /* @__PURE__ */ import_react29.default.createElement(SheetContext.Provider, { value: context }, children);
2520
3059
  };
2521
3060
  function useSheetProvider() {
2522
- const containerId = import_react24.default.useId();
2523
- const triggerId = import_react24.default.useId();
2524
- const controlId = import_react24.default.useId();
2525
- const [open, setOpen] = import_react24.default.useState(false);
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);
2526
3065
  return {
2527
3066
  id: {
2528
3067
  containerId,
@@ -2540,8 +3079,8 @@ function useSheetProvider() {
2540
3079
  }
2541
3080
 
2542
3081
  // src/sheet/styles/index.ts
2543
- var import_styled_components13 = __toESM(require("styled-components"));
2544
- var SheetStyles = import_styled_components13.css`
3082
+ var import_styled_components17 = __toESM(require("styled-components"));
3083
+ var SheetStyles = import_styled_components17.css`
2545
3084
  all: unset;
2546
3085
  position: fixed;
2547
3086
  background-color: var(--body-color);
@@ -2572,7 +3111,7 @@ var SheetStyles = import_styled_components13.css`
2572
3111
  animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
2573
3112
  animation-fill-mode: backwards;
2574
3113
  `;
2575
- var SheetSizeStyles = import_styled_components13.css`
3114
+ var SheetSizeStyles = import_styled_components17.css`
2576
3115
  &[data-size="small"] {
2577
3116
  width: var(--measurement-large-80);
2578
3117
  }
@@ -2585,7 +3124,7 @@ var SheetSizeStyles = import_styled_components13.css`
2585
3124
  width: calc(var(--measurement-large-90) * 1.5);
2586
3125
  }
2587
3126
  `;
2588
- var SheetSideStyles = import_styled_components13.css`
3127
+ var SheetSideStyles = import_styled_components17.css`
2589
3128
  top: 0;
2590
3129
 
2591
3130
  &[data-side="right"] {
@@ -2600,7 +3139,7 @@ var SheetSideStyles = import_styled_components13.css`
2600
3139
  animation-name: slide-left;
2601
3140
  }
2602
3141
  `;
2603
- var SheetWrapper = import_styled_components13.default.dialog`
3142
+ var SheetWrapper = import_styled_components17.default.dialog`
2604
3143
  &[data-raw="false"] {
2605
3144
  ${SheetStyles}
2606
3145
  ${SheetSideStyles}
@@ -2610,7 +3149,7 @@ var SheetWrapper = import_styled_components13.default.dialog`
2610
3149
 
2611
3150
  // src/sheet/index.tsx
2612
3151
  var SheetRoot = ({ children }) => {
2613
- return /* @__PURE__ */ import_react25.default.createElement(SheetProvider, null, children);
3152
+ return /* @__PURE__ */ import_react30.default.createElement(SheetProvider, null, children);
2614
3153
  };
2615
3154
  SheetRoot.displayName = "Sheet.Root";
2616
3155
  var Sheet = (props) => {
@@ -2631,16 +3170,16 @@ var Sheet = (props) => {
2631
3170
  const { id, states, methods } = useSheet();
2632
3171
  const { toggle } = methods;
2633
3172
  const shortcutControls = useKeyPress(String(hotkey), true, bindkey);
2634
- import_react25.default.useEffect(() => {
3173
+ import_react30.default.useEffect(() => {
2635
3174
  if (open && toggle) return toggle();
2636
3175
  }, [open]);
2637
- import_react25.default.useEffect(() => {
3176
+ import_react30.default.useEffect(() => {
2638
3177
  if (shortcut && shortcutControls && toggle) {
2639
3178
  return toggle();
2640
3179
  }
2641
3180
  }, [shortcutControls]);
2642
3181
  useDisabledScroll(lock && Boolean(states.open));
2643
- return /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, states.open && /* @__PURE__ */ import_react25.default.createElement(import_react25.default.Fragment, null, /* @__PURE__ */ import_react25.default.createElement(
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(
2644
3183
  SheetWrapper,
2645
3184
  {
2646
3185
  role: "dialog",
@@ -2657,7 +3196,7 @@ var Sheet = (props) => {
2657
3196
  ...restProps
2658
3197
  },
2659
3198
  children
2660
- ), overlay && /* @__PURE__ */ import_react25.default.createElement(
3199
+ ), overlay && /* @__PURE__ */ import_react30.default.createElement(
2661
3200
  Overlay,
2662
3201
  {
2663
3202
  onClick: () => toggle && toggle(!states.open),
@@ -2683,7 +3222,7 @@ var SheetTrigger = (props) => {
2683
3222
  if (onClick) onClick(event);
2684
3223
  if (toggle) toggle(!states.open);
2685
3224
  };
2686
- return /* @__PURE__ */ import_react25.default.createElement(
3225
+ return /* @__PURE__ */ import_react30.default.createElement(
2687
3226
  Button,
2688
3227
  {
2689
3228
  id: id.triggerId,
@@ -2703,13 +3242,13 @@ Sheet.Root = SheetRoot;
2703
3242
  Sheet.Trigger = SheetTrigger;
2704
3243
 
2705
3244
  // src/scrollarea/index.tsx
2706
- var import_react26 = __toESM(require("react"));
3245
+ var import_react31 = __toESM(require("react"));
2707
3246
  var ScrollArea = ({
2708
3247
  scrollbar = false,
2709
3248
  children,
2710
3249
  ...restProps
2711
3250
  }) => {
2712
- return /* @__PURE__ */ import_react26.default.createElement(
3251
+ return /* @__PURE__ */ import_react31.default.createElement(
2713
3252
  ScrollAreaWrapper,
2714
3253
  {
2715
3254
  "aria-hidden": "true",
@@ -2720,25 +3259,148 @@ var ScrollArea = ({
2720
3259
  );
2721
3260
  };
2722
3261
 
3262
+ // src/spinner/index.tsx
3263
+ var import_react32 = __toESM(require("react"));
3264
+
3265
+ // src/spinner/styles/index.ts
3266
+ var import_styled_components18 = __toESM(require("styled-components"));
3267
+ var Rotate = import_styled_components18.keyframes`
3268
+ 0% {
3269
+ transform: rotate(0deg);
3270
+ }
3271
+ 100% {
3272
+ transform: rotate(360deg);
3273
+ }
3274
+ `;
3275
+ var FieldSizeStyles2 = import_styled_components18.css`
3276
+ &[data-size="small"] {
3277
+ width: var(--measurement-medium-40);
3278
+ height: var(--measurement-medium-40);
3279
+ }
3280
+ &[data-size="medium"] {
3281
+ width: var(--measurement-medium-50);
3282
+ height: var(--measurement-medium-50);
3283
+ }
3284
+ &[data-size="large"] {
3285
+ width: var(--measurement-medium-60);
3286
+ height: var(--measurement-medium-60);
3287
+ }
3288
+ `;
3289
+ var RotatingSpinner = import_styled_components18.default.span`
3290
+ padding: 0;
3291
+ margin: 0;
3292
+
3293
+ display: inline-block;
3294
+ box-sizing: border-box;
3295
+
3296
+ border: var(--measurement-small-60) solid var(--font-color-alpha-30);
3297
+ border-bottom-color: transparent;
3298
+ border-radius: var(--measurement-large-90);
3299
+
3300
+ animation: ${Rotate} 1s linear infinite;
3301
+
3302
+ ${FieldSizeStyles2}
3303
+ `;
3304
+
3305
+ // src/spinner/index.tsx
3306
+ var Spinner = (props) => {
3307
+ return /* @__PURE__ */ import_react32.default.createElement(RotatingSpinner, { "data-size": props.sizing ?? "medium" });
3308
+ };
3309
+
3310
+ // src/skeleton/index.tsx
3311
+ var import_react33 = __toESM(require("react"));
3312
+
3313
+ // src/skeleton/styles/index.ts
3314
+ var import_styled_components19 = __toESM(require("styled-components"));
3315
+ var SkeletonBlink = import_styled_components19.keyframes`
3316
+ 0% {
3317
+ opacity: 0.3;
3318
+ }
3319
+ 100% {
3320
+ opacity: 0.1;
3321
+ }
3322
+ `;
3323
+ var SkeletonBaseStyles = import_styled_components19.css`
3324
+ background: linear-gradient(
3325
+ 45deg,
3326
+ var(--font-color-alpha-10),
3327
+ var(--font-color-alpha-20)
3328
+ );
3329
+ animation: ${SkeletonBlink} 1s ease-in-out alternate-reverse infinite;
3330
+ `;
3331
+ var SkeletonSizeStyles = import_styled_components19.css`
3332
+ &[data-size="small"] {
3333
+ width: 100%;
3334
+
3335
+ min-width: var(--measurement-medium-60);
3336
+ min-height: var(--measurement-medium-70);
3337
+ }
3338
+ &[data-size="medium"] {
3339
+ width: 100%;
3340
+ min-width: var(--measurement-medium-90);
3341
+ min-height: var(--measurement-medium-80);
3342
+ }
3343
+ &[data-size="large"] {
3344
+ width: 100%;
3345
+ min-width: var(--measurement-medium-90);
3346
+ min-height: var(--measurement-medium-90);
3347
+ }
3348
+ `;
3349
+ var SkeletonShapeStyles = import_styled_components19.css`
3350
+ &[data-shape="square"] {
3351
+ border-radius: 0;
3352
+ }
3353
+ &[data-shape="smooth"] {
3354
+ border-radius: var(--measurement-medium-20);
3355
+ }
3356
+ &[data-shape="round"] {
3357
+ border-radius: var(--measurement-large-90);
3358
+ }
3359
+ `;
3360
+ var SkeletonLoader = import_styled_components19.default.span`
3361
+ ${SkeletonBaseStyles}
3362
+ ${SkeletonSizeStyles}
3363
+ ${SkeletonShapeStyles}
3364
+ `;
3365
+
3366
+ // src/skeleton/index.tsx
3367
+ var Skeleton = (props) => {
3368
+ const {
3369
+ sizing = "medium" /* Medium */,
3370
+ shape = "smooth",
3371
+ ...restProps
3372
+ } = props;
3373
+ return /* @__PURE__ */ import_react33.default.createElement(
3374
+ SkeletonLoader,
3375
+ {
3376
+ "data-size": sizing,
3377
+ "data-shape": shape,
3378
+ tabIndex: 0,
3379
+ ...restProps
3380
+ }
3381
+ );
3382
+ };
3383
+ Skeleton.displayName = "Skeleton";
3384
+
2723
3385
  // src/switch/index.tsx
2724
- var import_react28 = __toESM(require("react"));
3386
+ var import_react35 = __toESM(require("react"));
2725
3387
 
2726
3388
  // src/switch/hooks/index.tsx
2727
- var import_react27 = __toESM(require("react"));
3389
+ var import_react34 = __toESM(require("react"));
2728
3390
  var defaultComponentAPI6 = {
2729
3391
  id: "",
2730
3392
  states: {},
2731
3393
  methods: {}
2732
3394
  };
2733
- var SwitchContext = (0, import_react27.createContext)(defaultComponentAPI6);
2734
- var useSwitch = () => (0, import_react27.useContext)(SwitchContext);
3395
+ var SwitchContext = (0, import_react34.createContext)(defaultComponentAPI6);
3396
+ var useSwitch = () => (0, import_react34.useContext)(SwitchContext);
2735
3397
  var SwitchProvider = ({ children }) => {
2736
3398
  const context = useSwitchProvider();
2737
- return /* @__PURE__ */ import_react27.default.createElement(SwitchContext.Provider, { value: context }, children);
3399
+ return /* @__PURE__ */ import_react34.default.createElement(SwitchContext.Provider, { value: context }, children);
2738
3400
  };
2739
3401
  function useSwitchProvider() {
2740
- const [checked, setChecked] = (0, import_react27.useState)(false);
2741
- const switchId = import_react27.default.useId();
3402
+ const [checked, setChecked] = (0, import_react34.useState)(false);
3403
+ const switchId = import_react34.default.useId();
2742
3404
  return {
2743
3405
  id: switchId,
2744
3406
  states: {
@@ -2751,8 +3413,8 @@ function useSwitchProvider() {
2751
3413
  }
2752
3414
 
2753
3415
  // src/switch/styles/index.ts
2754
- var import_styled_components14 = __toESM(require("styled-components"));
2755
- var SwitchDefaultStyles = import_styled_components14.css`
3416
+ var import_styled_components20 = __toESM(require("styled-components"));
3417
+ var SwitchDefaultStyles = import_styled_components20.css`
2756
3418
  all: unset;
2757
3419
 
2758
3420
  border: var(--measurement-small-10) solid transparent;
@@ -2766,7 +3428,7 @@ var SwitchDefaultStyles = import_styled_components14.css`
2766
3428
  opacity: 0.6;
2767
3429
  }
2768
3430
  `;
2769
- var SwitchVariantsStyles = import_styled_components14.css`
3431
+ var SwitchVariantsStyles = import_styled_components20.css`
2770
3432
  &[data-variant="primary"] {
2771
3433
  &[aria-checked="true"] {
2772
3434
  background-color: var(--color-green);
@@ -2797,7 +3459,7 @@ var SwitchVariantsStyles = import_styled_components14.css`
2797
3459
  }
2798
3460
  }
2799
3461
  `;
2800
- var SwitchSizeStyles = import_styled_components14.css`
3462
+ var SwitchSizeStyles = import_styled_components20.css`
2801
3463
  &[data-size="small"] {
2802
3464
  width: calc(var(--measurement-medium-60) * 1.33);
2803
3465
  height: var(--measurement-medium-50);
@@ -2846,14 +3508,14 @@ var SwitchSizeStyles = import_styled_components14.css`
2846
3508
  }
2847
3509
  }
2848
3510
  `;
2849
- var TriggerWrapper = import_styled_components14.default.button`
3511
+ var TriggerWrapper = import_styled_components20.default.button`
2850
3512
  &[data-raw="false"] {
2851
3513
  ${SwitchDefaultStyles}
2852
3514
  ${SwitchVariantsStyles}
2853
3515
  ${SwitchSizeStyles}
2854
3516
  }
2855
3517
  `;
2856
- var Thumb = import_styled_components14.default.span`
3518
+ var Thumb = import_styled_components20.default.span`
2857
3519
  &[data-raw="false"] {
2858
3520
  all: unset;
2859
3521
  display: block;
@@ -2887,10 +3549,10 @@ var Switch = (props) => {
2887
3549
  if (onClick) onClick(event);
2888
3550
  if (toggleSwitch) toggleSwitch();
2889
3551
  };
2890
- import_react28.default.useEffect(() => {
3552
+ import_react35.default.useEffect(() => {
2891
3553
  if (defaultChecked && toggleSwitch) toggleSwitch();
2892
3554
  }, [defaultChecked]);
2893
- return /* @__PURE__ */ import_react28.default.createElement(
3555
+ return /* @__PURE__ */ import_react35.default.createElement(
2894
3556
  TriggerWrapper,
2895
3557
  {
2896
3558
  type: "button",
@@ -2906,19 +3568,19 @@ var Switch = (props) => {
2906
3568
  "data-raw": Boolean(raw),
2907
3569
  ...restProps
2908
3570
  },
2909
- /* @__PURE__ */ import_react28.default.createElement("title", null, "Switch"),
3571
+ /* @__PURE__ */ import_react35.default.createElement("title", null, "Switch"),
2910
3572
  children
2911
3573
  );
2912
3574
  };
2913
3575
  Switch.displayName = "Switch";
2914
3576
  var SwitchRoot = ({ children }) => {
2915
- return /* @__PURE__ */ import_react28.default.createElement(SwitchProvider, null, children);
3577
+ return /* @__PURE__ */ import_react35.default.createElement(SwitchProvider, null, children);
2916
3578
  };
2917
3579
  SwitchRoot.displayName = "Switch.Root";
2918
3580
  var SwitchThumb = (props) => {
2919
3581
  const { raw, sizing } = props;
2920
3582
  const { id, states } = useSwitch();
2921
- return /* @__PURE__ */ import_react28.default.createElement(
3583
+ return /* @__PURE__ */ import_react35.default.createElement(
2922
3584
  Thumb,
2923
3585
  {
2924
3586
  role: "presentation",
@@ -2938,11 +3600,11 @@ Switch.Root = SwitchRoot;
2938
3600
  Switch.Thumb = SwitchThumb;
2939
3601
 
2940
3602
  // src/table/index.tsx
2941
- var import_react29 = __toESM(require("react"));
3603
+ var import_react36 = __toESM(require("react"));
2942
3604
 
2943
3605
  // src/table/styles/index.ts
2944
- var import_styled_components15 = __toESM(require("styled-components"));
2945
- var CellStyles = import_styled_components15.css`
3606
+ var import_styled_components21 = __toESM(require("styled-components"));
3607
+ var CellStyles = import_styled_components21.css`
2946
3608
  box-sizing: border-box;
2947
3609
  border: none;
2948
3610
  line-height: 1;
@@ -2952,11 +3614,11 @@ var CellStyles = import_styled_components15.css`
2952
3614
  var(--fontsize-small-10) - ((var(--fontsize-small-10) * 1.066))
2953
3615
  );
2954
3616
  `;
2955
- var TableLayer = import_styled_components15.default.div`
3617
+ var TableLayer = import_styled_components21.default.div`
2956
3618
  border-radius: var(--measurement-medium-30);
2957
3619
  border: var(--measurement-small-10) solid var(--font-color-alpha-10);
2958
3620
  `;
2959
- var TableWrapper = import_styled_components15.default.table`
3621
+ var TableWrapper = import_styled_components21.default.table`
2960
3622
  border-collapse: collapse;
2961
3623
 
2962
3624
  tbody {
@@ -2967,7 +3629,7 @@ var TableWrapper = import_styled_components15.default.table`
2967
3629
  }
2968
3630
  }
2969
3631
  `;
2970
- var RowWrapper = import_styled_components15.default.tr`
3632
+ var RowWrapper = import_styled_components21.default.tr`
2971
3633
  border-bottom: var(--measurement-small-10) solid var(--font-color-alpha-10);
2972
3634
 
2973
3635
  transition: background-color linear 0.1s;
@@ -2976,7 +3638,7 @@ var RowWrapper = import_styled_components15.default.tr`
2976
3638
  background-color: var(--font-color-alpha-10);
2977
3639
  }
2978
3640
  `;
2979
- var HeadCellWrapper = import_styled_components15.default.th`
3641
+ var HeadCellWrapper = import_styled_components21.default.th`
2980
3642
  font-size: var(--fontsize-medium-10);
2981
3643
  ${CellStyles}
2982
3644
 
@@ -2984,7 +3646,7 @@ var HeadCellWrapper = import_styled_components15.default.th`
2984
3646
  color: var(--font-color-alpha-60);
2985
3647
  }
2986
3648
  `;
2987
- var CellWrapper = import_styled_components15.default.td`
3649
+ var CellWrapper = import_styled_components21.default.td`
2988
3650
  ${CellStyles}
2989
3651
  `;
2990
3652
 
@@ -2993,43 +3655,43 @@ var Table = ({
2993
3655
  children,
2994
3656
  ...restProps
2995
3657
  }) => {
2996
- return /* @__PURE__ */ import_react29.default.createElement(ScrollArea, { as: TableLayer, role: "presentation", tabIndex: -1 }, /* @__PURE__ */ import_react29.default.createElement(TableWrapper, { ...restProps, cellSpacing: "0", cellPadding: "0" }, children));
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));
2997
3659
  };
2998
3660
  Table.displayName = "Table";
2999
3661
  var TableHead = ({
3000
3662
  children,
3001
3663
  ...restProps
3002
3664
  }) => {
3003
- return /* @__PURE__ */ import_react29.default.createElement("thead", { ...restProps }, children);
3665
+ return /* @__PURE__ */ import_react36.default.createElement("thead", { ...restProps }, children);
3004
3666
  };
3005
3667
  TableHead.displayName = "Table.Head";
3006
3668
  var TableBody = ({
3007
3669
  children,
3008
3670
  ...restProps
3009
3671
  }) => {
3010
- return /* @__PURE__ */ import_react29.default.createElement("tbody", { ...restProps }, children);
3672
+ return /* @__PURE__ */ import_react36.default.createElement("tbody", { ...restProps }, children);
3011
3673
  };
3012
3674
  TableBody.displayName = "Table.Body";
3013
3675
  var TableHeadCell = ({
3014
3676
  children,
3015
3677
  ...restProps
3016
3678
  }) => {
3017
- return /* @__PURE__ */ import_react29.default.createElement(HeadCellWrapper, { colSpan: 1, ...restProps }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
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));
3018
3680
  };
3019
3681
  TableHeadCell.displayName = "Table.HeadCell";
3020
3682
  var TableRow = ({ children, ...restProps }) => {
3021
- return /* @__PURE__ */ import_react29.default.createElement(RowWrapper, { className: "p-medium-30", ...restProps }, children);
3683
+ return /* @__PURE__ */ import_react36.default.createElement(RowWrapper, { className: "p-medium-30", ...restProps }, children);
3022
3684
  };
3023
3685
  TableRow.displayName = "Table.Row";
3024
3686
  var TableCell = ({ children, ...restProps }) => {
3025
- return /* @__PURE__ */ import_react29.default.createElement(CellWrapper, { ...restProps }, /* @__PURE__ */ import_react29.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
3687
+ return /* @__PURE__ */ import_react36.default.createElement(CellWrapper, { ...restProps }, /* @__PURE__ */ import_react36.default.createElement("div", { className: "flex align-center g-medium-30" }, children));
3026
3688
  };
3027
3689
  TableCell.displayName = "Table.Cell";
3028
3690
  var TableFooter = ({
3029
3691
  children,
3030
3692
  ...restProps
3031
3693
  }) => {
3032
- return /* @__PURE__ */ import_react29.default.createElement("tfoot", { ...restProps }, children);
3694
+ return /* @__PURE__ */ import_react36.default.createElement("tfoot", { ...restProps }, children);
3033
3695
  };
3034
3696
  TableFooter.displayName = "Table.Footer";
3035
3697
  Table.Head = TableHead;
@@ -3040,24 +3702,24 @@ Table.Cell = TableCell;
3040
3702
  Table.Footer = TableFooter;
3041
3703
 
3042
3704
  // src/tabs/index.tsx
3043
- var import_react31 = __toESM(require("react"));
3705
+ var import_react38 = __toESM(require("react"));
3044
3706
 
3045
3707
  // src/tabs/hooks/index.tsx
3046
- var import_react30 = __toESM(require("react"));
3708
+ var import_react37 = __toESM(require("react"));
3047
3709
  var defaultComponentAPI7 = {
3048
3710
  id: "",
3049
3711
  states: {},
3050
3712
  methods: {}
3051
3713
  };
3052
- var TabsContext = (0, import_react30.createContext)(defaultComponentAPI7);
3053
- var useTabs = () => (0, import_react30.useContext)(TabsContext);
3714
+ var TabsContext = (0, import_react37.createContext)(defaultComponentAPI7);
3715
+ var useTabs = () => (0, import_react37.useContext)(TabsContext);
3054
3716
  var TabsProvider = ({ children }) => {
3055
3717
  const context = useTabsProvider();
3056
- return /* @__PURE__ */ import_react30.default.createElement(TabsContext.Provider, { value: context }, children);
3718
+ return /* @__PURE__ */ import_react37.default.createElement(TabsContext.Provider, { value: context }, children);
3057
3719
  };
3058
3720
  function useTabsProvider() {
3059
- const [value, setValue] = (0, import_react30.useState)(null);
3060
- const tabsId = import_react30.default.useId();
3721
+ const [value, setValue] = (0, import_react37.useState)(null);
3722
+ const tabsId = import_react37.default.useId();
3061
3723
  return {
3062
3724
  id: tabsId,
3063
3725
  states: {
@@ -3071,8 +3733,8 @@ function useTabsProvider() {
3071
3733
  }
3072
3734
 
3073
3735
  // src/tabs/styles/index.ts
3074
- var import_styled_components16 = __toESM(require("styled-components"));
3075
- var TabWrapper = import_styled_components16.default.div`
3736
+ var import_styled_components22 = __toESM(require("styled-components"));
3737
+ var TabWrapper = import_styled_components22.default.div`
3076
3738
  button {
3077
3739
  &[aria-selected="true"] {
3078
3740
  color: var(--font-color) !important;
@@ -3085,22 +3747,22 @@ var Tabs = (props) => {
3085
3747
  const { defaultOpen, children, ...restProps } = props;
3086
3748
  const { methods } = useTabs();
3087
3749
  const { applyValue } = methods;
3088
- const childArray = import_react31.Children.toArray(children);
3750
+ const childArray = import_react38.Children.toArray(children);
3089
3751
  const firstChild = childArray[0];
3090
- import_react31.default.useEffect(() => {
3091
- if (import_react31.default.isValidElement(firstChild)) {
3752
+ import_react38.default.useEffect(() => {
3753
+ if (import_react38.default.isValidElement(firstChild)) {
3092
3754
  if (childArray.length > 0 && applyValue)
3093
3755
  applyValue(firstChild.props.value);
3094
3756
  }
3095
3757
  }, []);
3096
- import_react31.default.useEffect(() => {
3758
+ import_react38.default.useEffect(() => {
3097
3759
  if (defaultOpen && applyValue) applyValue(defaultOpen);
3098
3760
  }, []);
3099
- return /* @__PURE__ */ import_react31.default.createElement(TabWrapper, { role: "tablist", ...restProps }, children);
3761
+ return /* @__PURE__ */ import_react38.default.createElement(TabWrapper, { role: "tablist", ...restProps }, children);
3100
3762
  };
3101
3763
  Tabs.displayName = "Tabs";
3102
3764
  var TabsRoot = ({ children }) => {
3103
- return /* @__PURE__ */ import_react31.default.createElement(TabsProvider, null, children);
3765
+ return /* @__PURE__ */ import_react38.default.createElement(TabsProvider, null, children);
3104
3766
  };
3105
3767
  TabsRoot.displayName = "Tabs.Root";
3106
3768
  var TabsTrigger = (props) => {
@@ -3116,7 +3778,7 @@ var TabsTrigger = (props) => {
3116
3778
  if (applyValue) applyValue(value);
3117
3779
  if (onClick) onClick(event);
3118
3780
  };
3119
- return /* @__PURE__ */ import_react31.default.createElement(
3781
+ return /* @__PURE__ */ import_react38.default.createElement(
3120
3782
  Button,
3121
3783
  {
3122
3784
  type: "button",
@@ -3144,7 +3806,7 @@ var TabsContent = (props) => {
3144
3806
  trigger: getTabsId && getTabsId({ value, type: "trigger" }),
3145
3807
  content: getTabsId && getTabsId({ value, type: "content" })
3146
3808
  };
3147
- return /* @__PURE__ */ import_react31.default.createElement(
3809
+ return /* @__PURE__ */ import_react38.default.createElement(
3148
3810
  "div",
3149
3811
  {
3150
3812
  tabIndex: 0,
@@ -3164,23 +3826,131 @@ Tabs.Root = TabsRoot;
3164
3826
  Tabs.Trigger = TabsTrigger;
3165
3827
  Tabs.Content = TabsContent;
3166
3828
 
3829
+ // src/text-area/index.tsx
3830
+ var import_react39 = __toESM(require("react"));
3831
+
3832
+ // src/text-area/styles/index.ts
3833
+ var import_styled_components23 = __toESM(require("styled-components"));
3834
+ var CustomScrollbar2 = import_styled_components23.css`
3835
+ height: ${({ $height }) => $height ?? "100%"};
3836
+ width: ${({ $width }) => $width ?? "100%"};
3837
+ overflow-y: auto;
3838
+ overflow-x: hidden;
3839
+
3840
+ &::-webkit-scrollbar {
3841
+ cursor: pointer;
3842
+
3843
+ width: var(--measurement-medium-10);
3844
+ }
3845
+
3846
+ &::-webkit-scrollbar-track {
3847
+ background: ${({ $trackColor }) => $trackColor ?? "transparent"};
3848
+ border-radius: var(--measurement-medium-30);
3849
+ border: none;
3850
+ }
3851
+
3852
+ &::-webkit-scrollbar-thumb {
3853
+ background: ${({ $thumbColor }) => $thumbColor ?? "var(--font-color-alpha-10)"};
3854
+ border-radius: var(--measurement-medium-30);
3855
+ transition: background-color 0.2s ease;
3856
+ }
3857
+
3858
+ &::-webkit-scrollbar-thumb:hover {
3859
+ background: ${({ $thumbHoverColor, $thumbColor }) => $thumbHoverColor ?? $thumbColor ?? "var(--font-color-alpha-20)"};
3860
+ }
3861
+
3862
+ // Firefox
3863
+ scrollbar-width: thin;
3864
+ scrollbar-color: ${({ $thumbColor, $trackColor }) => `${$thumbColor ?? "var(--font-color-alpha-10)"} ${$trackColor ?? "transparent"}`};
3865
+ `;
3866
+ var TextareaSizeStyles = import_styled_components23.css`
3867
+ padding: var(--measurement-medium-30);
3868
+ max-height: var(--measurement-large-60);
3869
+
3870
+ &[data-size="small"] {
3871
+ min-height: var(--measurement-large-30);
3872
+ }
3873
+ &[data-size="medium"] {
3874
+ min-height: var(--measurement-large-50);
3875
+ }
3876
+ &[data-size="large"] {
3877
+ min-height: var(--measurement-large-60);
3878
+ max-height: var(--measurement-large-80);
3879
+ }
3880
+ `;
3881
+ var TextareaResizableStyles = import_styled_components23.css`
3882
+ &[data-resizable="true"] {
3883
+ resize: vertical;
3884
+ }
3885
+ &[data-resizable="false"] {
3886
+ resize: none;
3887
+ }
3888
+ `;
3889
+ var TextAreaContainer = import_styled_components23.default.textarea`
3890
+ &[data-raw="false"] {
3891
+ ${FieldDefaultStyles}
3892
+ ${FieldShapeStyles}
3893
+
3894
+ ${TextareaSizeStyles}
3895
+ ${TextareaResizableStyles}
3896
+
3897
+ ${CustomScrollbar2}
3898
+ ${FieldVariantsStyles}
3899
+ }
3900
+ `;
3901
+
3902
+ // src/text-area/index.tsx
3903
+ var Textarea = (props) => {
3904
+ const { raw, shape, sizing, variant, resizable, onChange } = props;
3905
+ const textareaRef = import_react39.default.useRef(null);
3906
+ const adjustHeight = () => {
3907
+ const textarea = textareaRef.current;
3908
+ if (textarea) {
3909
+ textarea.style.height = "auto";
3910
+ textarea.style.height = `${Math.min(
3911
+ textarea.scrollHeight,
3912
+ parseInt(getComputedStyle(textarea).maxHeight)
3913
+ )}px`;
3914
+ }
3915
+ };
3916
+ const handleChange = (e) => {
3917
+ adjustHeight();
3918
+ onChange?.(e);
3919
+ };
3920
+ import_react39.default.useEffect(() => adjustHeight(), [props.value]);
3921
+ return /* @__PURE__ */ import_react39.default.createElement(
3922
+ TextAreaContainer,
3923
+ {
3924
+ ref: textareaRef,
3925
+ onChange: handleChange,
3926
+ "data-variant": variant ?? "secondary",
3927
+ "data-shape": shape ?? "smooth",
3928
+ "data-size": sizing ?? "medium" /* Medium */,
3929
+ "data-resizable": resizable,
3930
+ "data-raw": String(Boolean(raw)),
3931
+ ...props
3932
+ }
3933
+ );
3934
+ };
3935
+ Textarea.displayName = "Textarea";
3936
+
3167
3937
  // src/toggle/index.tsx
3168
- var import_react32 = __toESM(require("react"));
3938
+ var import_react40 = __toESM(require("react"));
3169
3939
  var Toggle = (props) => {
3170
3940
  const { defaultChecked, onClick, disabled, children, ...restProps } = props;
3171
- const [checked, setChecked] = import_react32.default.useState(
3941
+ const [checked, setChecked] = import_react40.default.useState(
3172
3942
  defaultChecked ?? false
3173
3943
  );
3174
3944
  const handleClick = (event) => {
3175
3945
  if (onClick) onClick(event);
3176
3946
  if (!disabled) setChecked((prevChecked) => !prevChecked);
3177
3947
  };
3178
- import_react32.default.useEffect(() => {
3948
+ import_react40.default.useEffect(() => {
3179
3949
  if (defaultChecked !== void 0) {
3180
3950
  setChecked(Boolean(defaultChecked));
3181
3951
  }
3182
3952
  }, [defaultChecked]);
3183
- return /* @__PURE__ */ import_react32.default.createElement(
3953
+ return /* @__PURE__ */ import_react40.default.createElement(
3184
3954
  Button,
3185
3955
  {
3186
3956
  role: "switch",
@@ -3198,24 +3968,24 @@ var Toggle = (props) => {
3198
3968
  Toggle.displayName = "Toggle";
3199
3969
 
3200
3970
  // src/toolbar/index.tsx
3201
- var import_react34 = __toESM(require("react"));
3971
+ var import_react42 = __toESM(require("react"));
3202
3972
 
3203
3973
  // src/toolbar/hooks/index.tsx
3204
- var import_react33 = __toESM(require("react"));
3974
+ var import_react41 = __toESM(require("react"));
3205
3975
  var defaultComponentAPI8 = {
3206
3976
  id: "",
3207
3977
  states: {},
3208
3978
  methods: {}
3209
3979
  };
3210
- var ToolbarContext = (0, import_react33.createContext)(defaultComponentAPI8);
3211
- var useToolbar = () => (0, import_react33.useContext)(ToolbarContext);
3980
+ var ToolbarContext = (0, import_react41.createContext)(defaultComponentAPI8);
3981
+ var useToolbar = () => (0, import_react41.useContext)(ToolbarContext);
3212
3982
  var ToolbarProvider = ({ children }) => {
3213
3983
  const context = useToolbarProvider();
3214
- return /* @__PURE__ */ import_react33.default.createElement(ToolbarContext.Provider, { value: context }, children);
3984
+ return /* @__PURE__ */ import_react41.default.createElement(ToolbarContext.Provider, { value: context }, children);
3215
3985
  };
3216
3986
  function useToolbarProvider() {
3217
- const [expanded, setExpanded] = (0, import_react33.useState)(false);
3218
- const toolbarId = import_react33.default.useId();
3987
+ const [expanded, setExpanded] = (0, import_react41.useState)(false);
3988
+ const toolbarId = import_react41.default.useId();
3219
3989
  return {
3220
3990
  id: toolbarId,
3221
3991
  states: {
@@ -3228,8 +3998,8 @@ function useToolbarProvider() {
3228
3998
  }
3229
3999
 
3230
4000
  // src/toolbar/styles/index.ts
3231
- var import_styled_components17 = __toESM(require("styled-components"));
3232
- var ToolbarDefaultStyles = import_styled_components17.css`
4001
+ var import_styled_components24 = __toESM(require("styled-components"));
4002
+ var ToolbarDefaultStyles = import_styled_components24.css`
3233
4003
  margin: 0;
3234
4004
  display: grid;
3235
4005
  grid-template-rows: min-content;
@@ -3263,7 +4033,7 @@ var ToolbarDefaultStyles = import_styled_components17.css`
3263
4033
  }
3264
4034
  }
3265
4035
  `;
3266
- var ToolbarSizeStyles = import_styled_components17.css`
4036
+ var ToolbarSizeStyles = import_styled_components24.css`
3267
4037
  &[data-size="small"] {
3268
4038
  &[aria-orientation="vertical"] {
3269
4039
  max-width: var(--measurement-large-70);
@@ -3309,7 +4079,7 @@ var ToolbarSizeStyles = import_styled_components17.css`
3309
4079
  }
3310
4080
  }
3311
4081
  `;
3312
- var ToolbarSideStyles = import_styled_components17.css`
4082
+ var ToolbarSideStyles = import_styled_components24.css`
3313
4083
  &[data-side="top"] {
3314
4084
  border-bottom-color: var(--font-color-alpha-10);
3315
4085
  }
@@ -3341,7 +4111,7 @@ var ToolbarSideStyles = import_styled_components17.css`
3341
4111
  }
3342
4112
  }
3343
4113
  `;
3344
- var ToolbarWrapper = import_styled_components17.default.menu`
4114
+ var ToolbarWrapper = import_styled_components24.default.menu`
3345
4115
  &[data-raw="false"] {
3346
4116
  ${ToolbarDefaultStyles}
3347
4117
  ${ToolbarSizeStyles}
@@ -3349,7 +4119,7 @@ var ToolbarWrapper = import_styled_components17.default.menu`
3349
4119
  ${ToolbarSideStyles}
3350
4120
  }
3351
4121
  `;
3352
- var ToolbarTriggerWrapper = import_styled_components17.default.menu`
4122
+ var ToolbarTriggerWrapper = import_styled_components24.default.menu`
3353
4123
  &[data-raw="false"] {
3354
4124
  all: unset;
3355
4125
  align-self: flex-end;
@@ -3374,13 +4144,13 @@ var Toolbar = (props) => {
3374
4144
  const { toggleToolbar } = methods;
3375
4145
  const shortcutControls = useKeyPress(String(hotkey), true, bindkey);
3376
4146
  const orientation = side && ["left", "right"].includes(side) ? "vertical" : "horizontal";
3377
- import_react34.default.useEffect(() => {
4147
+ import_react42.default.useEffect(() => {
3378
4148
  if (defaultOpen && toggleToolbar) return toggleToolbar(true);
3379
4149
  }, [defaultOpen]);
3380
- import_react34.default.useEffect(() => {
4150
+ import_react42.default.useEffect(() => {
3381
4151
  if (shortcut && shortcutControls && toggleToolbar) toggleToolbar();
3382
4152
  }, [shortcutControls]);
3383
- return /* @__PURE__ */ import_react34.default.createElement(
4153
+ return /* @__PURE__ */ import_react42.default.createElement(
3384
4154
  ToolbarWrapper,
3385
4155
  {
3386
4156
  id,
@@ -3400,7 +4170,7 @@ var Toolbar = (props) => {
3400
4170
  };
3401
4171
  Toolbar.displayName = "Toolbar";
3402
4172
  var ToolbarRoot = ({ children }) => {
3403
- return /* @__PURE__ */ import_react34.default.createElement(ToolbarProvider, null, children);
4173
+ return /* @__PURE__ */ import_react42.default.createElement(ToolbarProvider, null, children);
3404
4174
  };
3405
4175
  ToolbarRoot.displayName = "Toolbar.Root";
3406
4176
  var ToolbarTrigger = (props) => {
@@ -3418,7 +4188,7 @@ var ToolbarTrigger = (props) => {
3418
4188
  if (onClick) onClick(event);
3419
4189
  if (toggleToolbar) toggleToolbar(!states.expanded);
3420
4190
  };
3421
- return /* @__PURE__ */ import_react34.default.createElement(ToolbarTriggerWrapper, { "data-raw": Boolean(raw) }, /* @__PURE__ */ import_react34.default.createElement(
4191
+ return /* @__PURE__ */ import_react42.default.createElement(ToolbarTriggerWrapper, { "data-raw": Boolean(raw) }, /* @__PURE__ */ import_react42.default.createElement(
3422
4192
  Button,
3423
4193
  {
3424
4194
  id: `${id}-trigger`,
@@ -3436,13 +4206,13 @@ var ToolbarSection = (props) => {
3436
4206
  const { showoncollapse, children, ...restProps } = props;
3437
4207
  const { states } = useToolbar();
3438
4208
  const { expanded } = states;
3439
- if (showoncollapse) return /* @__PURE__ */ import_react34.default.createElement("section", { ...restProps }, children);
3440
- return /* @__PURE__ */ import_react34.default.createElement("section", { ...restProps }, expanded && children);
4209
+ if (showoncollapse) return /* @__PURE__ */ import_react42.default.createElement("section", { ...restProps }, children);
4210
+ return /* @__PURE__ */ import_react42.default.createElement("section", { ...restProps }, expanded && children);
3441
4211
  };
3442
4212
  ToolbarSection.displayName = "Toolbar.Section";
3443
4213
  var ToolbarItem = (props) => {
3444
4214
  const { showfirstchild, onClick, children, ...restProps } = props;
3445
- const childArray = import_react34.default.Children.toArray(children);
4215
+ const childArray = import_react42.default.Children.toArray(children);
3446
4216
  const { id, states, methods } = useToolbar();
3447
4217
  const { expanded } = states;
3448
4218
  const { toggleToolbar } = methods;
@@ -3451,7 +4221,7 @@ var ToolbarItem = (props) => {
3451
4221
  if (onClick) onClick(event);
3452
4222
  if (toggleToolbar && !expanded) toggleToolbar(true);
3453
4223
  };
3454
- return /* @__PURE__ */ import_react34.default.createElement(
4224
+ return /* @__PURE__ */ import_react42.default.createElement(
3455
4225
  "div",
3456
4226
  {
3457
4227
  tabIndex: -1,
@@ -3472,11 +4242,11 @@ Toolbar.Item = ToolbarItem;
3472
4242
  Toolbar.Section = ToolbarSection;
3473
4243
 
3474
4244
  // src/tooltip/index.tsx
3475
- var import_react35 = __toESM(require("react"));
4245
+ var import_react43 = __toESM(require("react"));
3476
4246
 
3477
4247
  // src/tooltip/styles/index.ts
3478
- var import_styled_components18 = __toESM(require("styled-components"));
3479
- var FadeIn2 = import_styled_components18.keyframes`
4248
+ var import_styled_components25 = __toESM(require("styled-components"));
4249
+ var FadeIn2 = import_styled_components25.keyframes`
3480
4250
  0% {
3481
4251
  opacity: 0;
3482
4252
  }
@@ -3484,11 +4254,11 @@ var FadeIn2 = import_styled_components18.keyframes`
3484
4254
  opacity: 1;
3485
4255
  }
3486
4256
  `;
3487
- var ContentBox = import_styled_components18.default.div`
4257
+ var ContentBox = import_styled_components25.default.div`
3488
4258
  display: inline-block;
3489
4259
  position: relative;
3490
4260
  `;
3491
- var ContentWrapper2 = import_styled_components18.default.span`
4261
+ var ContentWrapper2 = import_styled_components25.default.span`
3492
4262
  &[data-raw="false"] {
3493
4263
  width: fit-content;
3494
4264
  max-width: var(--measurement-large-60);
@@ -3519,19 +4289,20 @@ var Tooltip = ({
3519
4289
  children,
3520
4290
  ...restProps
3521
4291
  }) => {
3522
- const [visible, setVisible] = import_react35.default.useState(false);
3523
- const [triggerProps, setTriggerProps] = import_react35.default.useState(null);
3524
- const [contentProps, setContentProps] = import_react35.default.useState(null);
3525
- const mounted = import_react35.default.useRef(false);
3526
- const containerRef = import_react35.default.useRef(null);
3527
- const contentRef = import_react35.default.useRef(null);
3528
- const timeoutRef = import_react35.default.useRef(null);
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);
3529
4299
  const contentRect = () => contentRef?.current?.getBoundingClientRect();
3530
- const bodyRect = import_react35.default.useCallback(() => {
4300
+ const bodyRect = () => {
3531
4301
  if (typeof document !== "undefined") {
3532
- return document.body.getBoundingClientRect();
4302
+ return document?.body?.getBoundingClientRect();
3533
4303
  }
3534
- }, []);
4304
+ return void 0;
4305
+ };
3535
4306
  const positions = {
3536
4307
  btt: `calc((${triggerProps?.top}px - ${contentProps?.height}px) - (var(--measurement-medium-10)))`,
3537
4308
  ttb: `calc((${triggerProps?.top}px + ${triggerProps?.height}px) + var(--measurement-medium-10))`,
@@ -3548,14 +4319,14 @@ var Tooltip = ({
3548
4319
  };
3549
4320
  const hasEnoughHorizontalSpace = Number(dimensions.body_width) - Number(dimensions.content_left) > Number(dimensions.content_width) * 1.1;
3550
4321
  const hasEnoughVerticalSpace = Number(dimensions.body_height) - Number(dimensions.content_bottom) > Number(dimensions.content_height) * 0.9;
3551
- const showTooltip = import_react35.default.useCallback(() => {
4322
+ const showTooltip = import_react43.default.useCallback(() => {
3552
4323
  timeoutRef.current = setTimeout(() => setVisible(true), delay);
3553
4324
  }, [delay]);
3554
- const hideTooltip = import_react35.default.useCallback(() => {
4325
+ const hideTooltip = import_react43.default.useCallback(() => {
3555
4326
  if (timeoutRef.current) clearTimeout(timeoutRef.current);
3556
4327
  setVisible(false);
3557
4328
  }, []);
3558
- const handleMouseEnter = import_react35.default.useCallback(() => {
4329
+ const handleMouseEnter = import_react43.default.useCallback(() => {
3559
4330
  const rect = containerRef.current?.getBoundingClientRect();
3560
4331
  if (rect) {
3561
4332
  setTriggerProps({
@@ -3569,11 +4340,11 @@ var Tooltip = ({
3569
4340
  showTooltip();
3570
4341
  }
3571
4342
  }, [showTooltip]);
3572
- const handleMouseLeave = import_react35.default.useCallback(
4343
+ const handleMouseLeave = import_react43.default.useCallback(
3573
4344
  () => hideTooltip(),
3574
4345
  [hideTooltip]
3575
4346
  );
3576
- import_react35.default.useEffect(() => {
4347
+ import_react43.default.useEffect(() => {
3577
4348
  mounted.current = true;
3578
4349
  setContentProps && setContentProps({
3579
4350
  top: Number(contentRect()?.top),
@@ -3587,7 +4358,7 @@ var Tooltip = ({
3587
4358
  mounted.current = false;
3588
4359
  };
3589
4360
  }, [visible]);
3590
- return /* @__PURE__ */ import_react35.default.createElement(
4361
+ return /* @__PURE__ */ import_react43.default.createElement(
3591
4362
  ContentBox,
3592
4363
  {
3593
4364
  ref: containerRef,
@@ -3597,7 +4368,7 @@ var Tooltip = ({
3597
4368
  ...restProps
3598
4369
  },
3599
4370
  children,
3600
- visible && /* @__PURE__ */ import_react35.default.createElement(
4371
+ visible && /* @__PURE__ */ import_react43.default.createElement(
3601
4372
  ContentWrapper2,
3602
4373
  {
3603
4374
  ref: contentRef,
@@ -3612,7 +4383,7 @@ var Tooltip = ({
3612
4383
  "data-side": hasEnoughHorizontalSpace ? "left" /* Left */ : "right" /* Right */,
3613
4384
  "data-align": hasEnoughHorizontalSpace ? "left" /* Left */ : "right" /* Right */
3614
4385
  },
3615
- /* @__PURE__ */ import_react35.default.createElement("div", null, content)
4386
+ /* @__PURE__ */ import_react43.default.createElement("div", null, content)
3616
4387
  )
3617
4388
  );
3618
4389
  };
@@ -3626,7 +4397,14 @@ Tooltip.displayName = "Tooltip";
3626
4397
  AvataStatusEnum,
3627
4398
  Avatar,
3628
4399
  Badge,
4400
+ Breadcrumb,
4401
+ BreadcrumbItem,
4402
+ BreadcrumbSeparator,
3629
4403
  Button,
4404
+ Card,
4405
+ CardBody,
4406
+ CardGrid,
4407
+ CardMeta,
3630
4408
  Checkbox,
3631
4409
  CheckboxIndicator,
3632
4410
  CheckboxRoot,
@@ -3634,6 +4412,7 @@ Tooltip.displayName = "Tooltip";
3634
4412
  CollapsibleContent,
3635
4413
  CollapsibleRoot,
3636
4414
  CollapsibleTrigger,
4415
+ CopyButton,
3637
4416
  Dialog,
3638
4417
  DialogControl,
3639
4418
  DialogMenu,
@@ -3663,10 +4442,14 @@ Tooltip.displayName = "Tooltip";
3663
4442
  PageTools,
3664
4443
  PageWrapper,
3665
4444
  Portal,
4445
+ PrivacyField,
4446
+ Resizable,
3666
4447
  ScrollArea,
3667
4448
  Sheet,
3668
4449
  SheetRoot,
3669
4450
  SheetTrigger,
4451
+ Skeleton,
4452
+ Spinner,
3670
4453
  Switch,
3671
4454
  SwitchRoot,
3672
4455
  SwitchThumb,
@@ -3681,6 +4464,7 @@ Tooltip.displayName = "Tooltip";
3681
4464
  TabsContent,
3682
4465
  TabsRoot,
3683
4466
  TabsTrigger,
4467
+ Textarea,
3684
4468
  Toggle,
3685
4469
  Toolbar,
3686
4470
  ToolbarItem,